Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
569,42 KB
Nội dung
BỘ MÔN MẠNG VÀ TRUYỀN THÔNG
ĐỀ TÀI
Ứng dụnggiaothứcICMPđểxâydựng
chương trìnhScanIP
Võ Duy Dũng
Lớp 07T4 – Nhóm 09B
1 Bộ môn Mạng và Truyền Thông
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……………………………………………………………………………………
….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
Ứng dụnggiaothứcICMPđểxâydựngchươngtrìnhScanIP 2
……………………………………………………………………………………….
……………………………………………………………………………………
MỤC LỤC
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 4
I. Giới thiệu TCP/IP 4
1. Các lớp trong mô hình TCP/IP 4
2. Các bước đóng gói dữ liệu trong mô hình TCP/IP 5
3. Một số giaothức cơ bản trong mô hình TCP/IP 5
II. GiaothứcICMP 11
1. Giới thiệu ICMP 11
2. Cấu trúc 12
3. Danh sách các thông điệp điều khiển của giaothứcICMP 13
CHƯƠNG II: THIẾT KẾ VÀ XÂYDỰNGCHƯƠNGTRÌNH 16
I. Phân tích yêu cầu 16
II. Phân tích các chức năng 16
1. Phương thức hoạt động của ứng dụng: 16
2. Xâydựng chức năng: 16
III. Xâydựng các chức năng 17
CHƯƠNG III: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 19
I. Môi trường triển khai 19
1. Hệ thống 19
2. Phần mềm 19
II. Kết quả các chức năng của chương trình: 19
1. Giao diện chính của chương trình: 19
2. Chức năng quét địa chỉ của chương trình: 20
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
3 Bộ môn Mạng và Truyền Thông
Code chương trình: 21
1. Lớp ICMP.cs: Xử lý gói tin ICMP 21
2. Lớp Kiemtra.cs: Kiểm tra thông tin trả về của gói tin ICMP 22
3. Form1.cs: Xử lý sự kiện trên Winform 23
DANH MỤC HÌNH VẼ
Hình 1.1. Mô hình TCP/IP 4
Hình 1.2. Các bước đóng gói trong mô hình TCP/IP 5
Hình 1.3. Các giaothức khác nhau TCP/IP 6
Hình 1.4. ARP Header 6
Hình 1.5. IP Header 7
Hình 1.6. Vị trí của ICMP message 8
Hình 1.7. ICMP Header 8
Hình 1.8. IGMP Header 8
Hình 1.9. UDP Header 9
Hình 1.10. Cách thiết lập kết nối giaothức 10
Hình 1.11. Truyền, nhận gói tin trong TCP 11
Hình 2.1 Cấu trúc gói tin ICMP 13
Hình 3.1 Chươngtrình trước khi quét 20
Hình 3.2 Quét dãy địa chỉ mà người dùng nhập vào 20
Hình 3.3 Chức năng quét theo lớp 21
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
Ứng dụnggiaothứcICMPđểxâydựngchươngtrìnhScanIP 4
CHƯƠNG I: CƠ SỞ LÝ THUYẾT
I. Giới thiệu TCP/IP
1. Các lớp trong mô hình TCP/IP
Hình 1.1. Mô hình TCP/IP
Mô hình tham chiếu TCP/IP tương tự như kiến trúc OSI, sau đây là một số tính
chất của các lớp trong mô hình tham chiếu TCP/IP:
Lớp Application: quản lý các giao thức, như hỗ trợ việc trình bày, mã hóa và
quản lý cuộc gọi. Lớp Application cũng hỗ trợ nhiều ứng dụng, như : FTP (File
Transfer Protocol), HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail
Transfer Protocol), DNS (Domain Name System), TFTP (Trivial File Transfer
Protocol)
Lớp Transport: đảm nhiệm việc vận chuyển từ nguồn đến đích. Tầng Transport
đảm nhiệm việc truyền dữ liệu thông qua hai nghi thức: TCP (Transmission
Control Protocol) và UDP (User Datagram Protocol)
Lớp Internet: đảm nhiệm việc lựa chọn đường đi tốt nhất cho các gói tin. Nghi thức
được sử dụng chính ở tầng này là nghi thứcIP (Internet Protocol)
Lớp Network Interface: có tính chất tương tự như như hai lớp Data Link và
Physical của kiến trúc OSI
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
5 Bộ môn Mạng và Truyền Thông
2. Các bước đóng gói dữ liệu trong mô hình TCP/IP
Hình 1.2. Các bước đóng gói trong mô hình TCP/IP
3. Một số giaothức cơ bản trong mô hình TCP/IP
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
Ứng dụnggiaothứcICMPđểxâydựngchươngtrìnhScanIP 6
Hình 1.3. Các giaothức khác nhau TCP/IP
a. Giaothức ARP (Address Resolution Protocol) và giaothức RARP
(Reverse Address Resolution Protocol)
Trên một mạng cục bộ hai trạm chỉ có thể liên lạc với nhau nếu chúng biết địa
chỉ MAC của nhau. Như vậy vấn đề đặt ra là phải thực hiện ánh xạ giữa địa chỉ IP
(32 bit) và địa chỉ MAC (48 bit) của một trạm. Giaothức ARP đã được xâydựng
để chuyển đổi từ địa chỉ IP sang địa chỉ MAC khi cần thiết.Khuôn dạng của một
gói tin ARP được chỉ ra trong hình dưới đây:
Hình 1.4. ARP Header
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
7 Bộ môn Mạng và Truyền Thông
Ngược lại, giaothức RARP được dùngđể chuyển đổi từ địa chỉ MAC sang địa
chỉ IP.
Khuôn dạng của một gói tin RARP tương tự như khuôn dạng của một gói tin
ARP đã được chỉ ra như trong hình trên. Chỉ khác là ở trường Operation nó sẽ có
giá trị là 3 cho gói tin RARP request và giá trị là 4 cho gói tin RARP reply.
Các giaothức ARP và RARP không phải là bộ phận của IP mà IP sẽ dùng đến
chúng khi cần.
b. GiaothứcIP (Internet Protocol)
Giao thứcIP là một trong những giaothức quan trọng nhất của bộ giaothức
TCP/IP. Mục đích của giaothứcIP là cung cấp khả năng kết nối các mạng con
thành liên mạng để truyền dữ liệu. IP là giaothức cung cấp dịch vụ phân phát
datagram theo kiểu không liên kết và không tin cậy nghĩa là không cần có giai
đoạn thiết lập liên kết trước khi truyền dữ liệu, không đảm bảo rằng IP datagram sẽ
tới đích và không duy trì bất kỳ thông tin nào về những datagram đã gửi đi.
Khuôn dạng đơn vị dữ liệu dùng trong IP được mô tả như sau:
Hình 1.5. IP Header
c. GiaothứcICMP (Internet Control Message Protocol)
- ICMP là một giaothức thông điệp, thường được xem như là một phần của lớp
IP, được dùngđể trao đổi các thông tin điều khiển dòng số liệu, thông báo lỗi và
các thông tin trạng thái khác của bộ giaothức TCP/IP.
- Khuôn dạng của một thông điệp ICMP và mối quan hệ của nó với một IP
datagram được minh họa qua hình dưới đây.
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
Ứng dụnggiaothứcICMPđểxâydựngchươngtrìnhScanIP 8
Hình 1.6. Vị trí của ICMP message
Có nhiều loại thông điệp ICMP, mỗi thông điệp ICMP có một khuôn dạng
riêng của nó, mặc dù vậy chúng luôn bắt đầu với 3 trường giống nhau:
Hình 1.7. ICMP Header
• Type (8 bit)
• Code (8 bit)
• Checksum (16 bit)
Có 15 giá trị khác nhau cho trường type, để định nghĩa từng thông điệp ICMP
cụ thể. Một vài loại thông điệp ICMP sử dụng thêm những giá trị khác của trường
code để định nghĩa cho nó.
d. Giaothức IGMP (Internet Group Management Protocol)
IGMP là một giaothức được sử dụng bởi host và router mà hỗ trợ kỹ thuật
multicasting. Giống như ICMP, IGMP thường được xem như là một phần của lớp
IP. Tuy nhiên, IGMP không giống như các giaothức khác, nó là một giaothức
thông điệp có kích thước cố định và không có phần dữ liệu
Hình vẽ sau đây chỉ ra khuôn dạng của một thông điệp IGMP phiên bản 2:
Hình 1.8. IGMP Header
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
9 Bộ môn Mạng và Truyền Thông
Ý nghĩa các tham số:
• Type (8 bit): định nghĩa loại thông điệp IGMP
• Respond time (8 bit): giá trị thời gian tối đa mà một host phải trả lời một
truy vấn
• Checksum (16 bit): kiểm soát lỗi
• Group address (32 bit): dùngđể chỉ định một nhóm cụ thể hay được
thiết lập giá trị 0.0.0.0 để chỉ tất cả các nhóm
e. Giaothức UDP (User Datagram Protocol)
UDP là giaothức không liên kết, cung cấp dịch vụ giao vận không tin cậy, sử
dụng thay thế cho TCP trong tầng giao vận. Khác với TCP, UDP không có chức
năng thiết lập và giải phóng liên kết, không có cơ chế báo nhận (ACK), không sắp
xếp tuần tự các đơn vị dữ liệu (datagram) đến và có thể dẫn đến tình trạng mất
hoặc trùng dữ liệu mà không hề có thông báo lỗi cho người gửi.
Khuôn dạng của UDP datagram được mô tả như sau:
Hình 1.9. UDP Header
Ý nghĩa các tham số:
• Số hiệu cổng nguồn (Source Port - 16 bit): số hiệu cổng nơi đã gửi
datagram
• Số hiệu cổng đích (Destination Port - 16 bit): số hiệu cổng nơi datagram
được chuyển tới
• Độ dài UDP (Length - 16 bit): độ dài tổng cộng kể cả phần header của
gói UDP datagram
• UDP Checksum (16 bit): dùngđể kiểm soát lỗi, nếu phát hiện lỗi thì
UDP datagram sẽ bị loại bỏ mà không có một thông báo nào trả lại cho
trạm gửi
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
[...]... = 10; ipf2 = 0; ipf3 = 0; ipf4 = 0; ipt1 = 10; ipt2 = 255; ipt3 = 255; ipt4 = 255; } else if (cbbLop.SelectedIndex == 1) { ipf1 = 172; ipf2 = 16; ipf3 = 0; ipf4 = 0; ipt1 = 172; ipt2 = 31; ipt3 = 255; ipt4 = 255; } else Võ Duy Dũng – Lớp 07T4 – Nhóm 09B ỨngdụnggiaothứcICMPđể xây dựngchươngtrình Scan IP 26 { ipf1 = 192; ipf2 = 168; ipf3 = 0; ipf4 = 0; ipt1 = 192; ipt2 = 168; ipt3 = 255; ipt4 =... toán SKIP Discovery Protocol, Simple Key – Quản lý giaothức Internet Photuris, bảo mật thất bại Các giaothứcICMP cho thử nghiệm di động như Seamoby [RFC4065] Dành riêng Võ Duy Dũng – Lớp 07T4 – Nhóm 09B ỨngdụnggiaothứcICMPđể xây dựngchươngtrình Scan IPCHƯƠNG II: I 16 THIẾT KẾ VÀ XÂYDỰNGCHƯƠNGTRÌNH Phân tích yêu cầu Ứngdụng phải đảm bảo thực hiện được các yêu cầu sau: • Gửi gói tin ICMP. .. năng của chương trình: 1 Giao diện chính của chương trình: Võ Duy Dũng – Lớp 07T4 – Nhóm 09B ỨngdụnggiaothứcICMPđể xây dựngchươngtrình Scan IP 20 Hình 3.1 Chươngtrình trước khi quét 2 Chức năng quét địa chỉ của chương trình: Hình 3.2 Quét dãy địa chỉ mà người dùng nhập vào Võ Duy Dũng – Lớp 07T4 – Nhóm 09B 21 Bộ môn Mạng và Truyền Thông Hình 3.3 Chức năng quét theo lớp PHỤ LỤC Code chương trình: ... System.Data; System.Drawing; System.Text; System.Windows.Forms; System.Net; Võ Duy Dũng – Lớp 07T4 – Nhóm 09B ỨngdụnggiaothứcICMPđể xây dựngchươngtrình Scan IP 24 using System.Threading; namespace LTM _Scan_ IP { public partial class frMain : Form { int stt; byte ipf1, ipf2, ipf3, ipf4, ipt1, ipt2, ipt3, ipt4; public frMain() { InitializeComponent(); stt = 1; } delegate void DlgThreadCode(); public void.. .Ứng dụnggiaothứcICMPđể xây dựngchươngtrình Scan IP 10 UDP có chế độ gán và quản lý các số hiệu cổng (port number) để định danh duy nhất cho các ứngdụng chạy trên một trạm của mạng Do có ít chức năng phức tạp nên UDP có xu thế hoạt động nhanh hơn so với TCP Nó thường dùng cho các ứngdụng không đòi hỏi có độ tin cậy cao trong giao vận f Giaothức TCP (Transmission Control... 792 thông điệp ICMP thường được tạo ra để đáp ứng Võ Duy Dũng – Lớp 07T4 – Nhóm 09B ỨngdụnggiaothứcICMPđểxâydựngchươngtrìnhScanIP 12 với các lỗi trong IP datagrams (theo quy định tại RFC 1122 ), hoặc cho hay định tuyến nhằm mục đích chẩn đoán ICMP lỗi luôn luôn được báo cáo với nguồn địa chỉ IP gốc của gói dữ liệu có nguồn gốc Một ví dụ ICMP thông báo lỗi là các Thời gian để nhắn Live vượt... packet.Checksum = 0; Để lấy lại gói tin ICMP từ gói IP nhận được ta có phương thức: Võ Duy Dũng – Lớp 07T4 – Nhóm 09B ỨngdụnggiaothứcICMPđểxâydựngchươngtrìnhScanIP 18 public ICMP( byte[] data, int size) { Type = data[20]; Code = data[21]; Checksum = BitConverter.ToUInt16(data, 22); Messagesize = size - 24; Buffer.BlockCopy(data, 24, Message, 0, Messagesize); } Vì gói tin ICMP bắt đầu từ byte... thường được sử dụngđể trao đổi dữ liệu giữa các hệ thống, cũng không phải là thường xuyên làm việc của người sử dụng các ứngdụng mạng lưới cấp (với ngoại lệ của một số công cụ chẩn đoán như ping và traceroute ) ICMP cho giaothức Internet phiên bản 4 (IPv4) cũng được gọi là ICMPv4 IPv6 có một giaothức tương tự, ICMPv6 1 Giới thiệu ICMP Internet Control Message Protocol là một phần của giaothức Internet... DlgThreadCode(ThreadCode)); } else { for (byte i = ipf1; i . – Nhóm 09B
Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 16
CHƯƠNG II: THIẾT KẾ VÀ XÂY DỰNG
CHƯƠNG TRÌNH
I. Phân tích yêu cầu
Ứng dụng phải. điệp ICMP thường được tạo ra để đáp ứng
Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 12
với các lỗi trong IP