Ứng dụng MultiThread để xây dựng chương trình ScanIP trong môi trường mạng
Trang 1ĐỒ ÁN LẬP TRÌNH MẠNG
Trang 2ĐỀ TÀI:
SINH VIÊN THỰC HIỆN
• Ứng dụng MultiThread để xây dựng chương trình ScanIP trong môi
trường mạng.
• Bùi Thị Thanh Tuyền
• Lớp: 07T1
• Nhóm: 8A
Trang 3Nội dung trình bày
• Địa chỉ IP
• Giao thức ICMP
• Xây dựng chương trình
• Demo
Trang 4ĐỊA CHỈ IP (1)
• Các lớp địa chỉ IP:
Trang 5ĐỊA CHỈ IP (2)
• Các địa chỉ IP đặc biệt
Địa chỉ quay vòng: 127.x.y.z
Mặt nạ mạng: các bit tương ứng với phần địa chỉ mạng bằng 1, các bit của phần địa chỉ máy bằng 0
Địa chỉ quảng bá: Địa chỉ này có các bit của phần HostID bằng 1, được sử dụng khi muốn chuyển một gói tin
đến mọi máy tính trong mạng con.
Trang 6GIAO THỨC ICMP
• Vì gói tin IP cung cấp dịch vụ giao nhận gói tin không tin cậy nên cần
có giao thức ICMP để hổ trợ, các bản tin ICMP được đóng gói và
chuyển tải trong các gói tin IP
Tầng TCP đảm nhận việc đảm bảo các datagram được truyền đến đích một cách đầy đủ và an toàn
Trang 7GIAO THỨC ICMP (1)
• Giao thức ICMP (Internet Control Message Protocol) thực hiện truyền các thông tin điều khiển (các báo cáo về các tình trạng lỗi trên mạng, ) giữa các gateway hoặc các máy chủ trên liên mạng theo giao thức IP
• Một thông báo ICMP được khởi tạo và chuyển cho IP IP sẽ bọc (encapsulate) thông báo đó với một IP header và truyền đến cho router
hoặc trạm đích
• Có 2 loại thông báo ICMP
Thông báo lỗi ICMP
Thông báo truy vấn ICMP
Trang 8GIAO THỨC ICMP (2)
• Các thông báo ICMP khác nhau về định dạng tùy theo chức năng từng loại, nhưng kiến trúc tổng quát bao gồm 2 phần:
Phần đầu (ICMP header)
Phần dữ liệu (ICMP data)
• Phần đầu của thông báo ICMP luôn bắt đầu
bằng 3 trường:
TYPE: 8 bit, xác định loại thông báo ICMP
CODE: 8 bit, cung cấp thông tin chi tiết của từng loại thông báo ICMP
CHECKSUM: 16 bit, xác định sự toàn vẹn
dữ liệu trong quá trình truyền
Trang 9GIAO THỨC ICMP (3)
• Thông báo lỗi ICMP:
Có 5 loại
Định dạng chung
Type Loại lỗi
3 Destination Unreachable
4 Source Quench
5 Redirect
11 Time Exceeded
12 Parameter Problem
0 4 8 16 31
Unused
IP header + 64 bit original data
Trang 10GIAO THỨC ICMP (4)
• Thông báo truy vấn ICMP
Có 8 loại:
Type Loại lỗi
0 Echo Reply
8 Echo Request
13 Timestamp Reply
14 Timestamp Request
15 Information Reply
16 Information Request
17 Address Reply
18 Address Request
Trang 11GIAO THỨC ICMP (5)
Định dạng chung
Trong đó:
• Identifier: được sử dụng để phân biệt các
thông báo được gửi đến các host khác nhau.
• Sequence number: được sử dụng để phân
biệt các thông báo được gửi đến cùng một host.
• Data/additional fields phụ thuộc vào từng
loại thông báo truy vấn ICMP
Trang 12XÂY DỰNG CHƯƠNG TRÌNH (1)
• Sử dụng lệnh Ping và Semaphore:
Lệnh Ping (Packet Internet Groper)
được dùng để hỏi (query) hệ thống (máy tính) khác để đảm bảo rằng một kết nối vẫn đang hoạt động (active) Lệnh Ping hoạt động bằng cách gửi đi yêu cầu (echo request) ICMP Nếu như phần mềm IP của máy tính nhận được yêu cầu ICMP
đó, nớ đưa ra một trả lời phản hồi (echo reply) ngay lập tức
Trang 13XÂY DỰNG CHƯƠNG TRÌNH (2)
Mỗi lệnh ping được thực thi trong một
thread riêng và được gửi bất đồng bộ nghĩa
là không phải đợi reply để thực hiện lệnh tiếp theo
Dùng semaphore để giới hạn số thread
(lệnh ping) được thực thi cùng lúc
Trang 14DEMO (1)
• Lúc đang quét:
Trang 15DEMO (2)
• Lúc quét xong:
Trang 16DEMO (3)
• Lúc quét xong:
Trang 17DEMO (4)
• Lúc quét xong:
Trang 18XIN CẢM ƠN!