Danh mục

Bài giảng Lập trình mạng nâng cao ICMP protocol - Nguyễn Vũ

Số trang: 29      Loại file: ppt      Dung lượng: 760.50 KB      Lượt xem: 30      Lượt tải: 0    
Thư viện của tui

Hỗ trợ phí lưu trữ khi tải xuống: 15,000 VND Tải xuống file đầy đủ (29 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Lập trình mạng nâng cao ICMP protocol - Nguyễn Vũ nhằm giới thiệu đến bạn đọc về giao thức ICMP (Internetwork Control Message Protocol), hoạt động ở layer 2 – Internetwork trong mô hình TCP/IP hoặc layer 3 – Network trong mô hình OSI. Mời các bạn tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình mạng nâng cao ICMP protocol - Nguyễn Vũ LẬP TRÌNH MẠNG NÂNG CAO ICMP PROTOCOLNguyễn Vũ – IT Faculty, Viet Han Friendship 1 ICMP protocol Giới thiệu về giao thức ICMP (Internetwork Control Message Protocol) Hoạt động ở layer 2 – Internetwork trong mô hình TCP/IP hoặc layer 3 – Network trong mô hình OSI Cho phép kiểm tra và xác định lỗi của layer 2 trong mô hình TCP/IP bằng cách định nghĩa ra các loại thông điệp có thể sử dụng để xác định xem mạng hiện tại có thể truyền được gói tin hay không? ICMP cần các thành phần của mọi gói tin IP để có thể hoạt động được Mục đích của ICMP: Thỉnh thoảng một gateway hoặc một máy đích sẽ liên lạc với máy nguồn để đưa ra những thông điệp lỗi về tiến trình xử lý các gói tin. ICMP sử dụng với một mục đích đơn giản là hỗ trợ cho sự hoạt động của giao thức IP Nguyễn Vũ – IT Faculty, Viet Han Friendship 2 ICMP protocol Giới thiệu về giao thức ICMP (Internetwork Control Message Protocol) Nguyễn Vũ – IT Faculty, Viet Han Friendship 3 ICMP protocol Giới thiệu về giao thức ICMP (Internetwork Control Message Protocol) Cấu trúc của gói tin IP và ICMP Nguyễn Vũ – IT Faculty, Viet Han Friendship 4 ICMP protocol Giới thiệu về giao thức ICMP (Internetwork Control Message Protocol) Cấu trúc của gói tin IP và ICMP  Type: dài 1 byte định nghĩa kiểu thông điệp ICMP trong gói tin  Code: dài 1 byte định nghĩa thêm về kiểu, xác định đây là một query hay một lỗi  Checksum: dài 2 byte cho biết gói ICMP không bị sai lạc thông tin. Checksum được tính toán trên phần ICMP của gói dùng thuật toán được định nghĩa trong RFC 792  Messeage: gồm nhiều byte có nội dung phù hợp với kiểu thông điệp ICMP. Thường có chứa 2 trường là số Identifier và Sequence dùng để xác định duy nhất gói ICMP packet đến host. Nguyễn Vũ – IT Faculty, Viet Han Friendship 5ICMP protocol The ICMP Packet Types: TypeCode Description 0 Echoreply 3 Destinationunreachable 4 Sourcequench 5 Redirect 8 Echorequest 11 Timeexceeded 12 Parameterproblem 13 Timestamprequest 14 Timestampreply 15 Informationrequest 16 Informationreply Nguyễn Vũ – IT Faculty, Viet Han Friendship 6 ICMP protocol Sử dụng Raw socket: Gói tin ICMP không sử dụng TCP hoặc UDP nên chúng ta không thể sử dụng lớp hỗ trợ TcpClient hay UdpClient mà sử dụng một Raw Socket. Muốn sử dụng Raw Socket khi tạo ra Socket ta sử dụng SocketType.Raw và giao thức là ICMP Trong C# để tạo Raw socket ta dùng cú pháp sau: Socket newSocket= new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); Nguyễn Vũ – IT Faculty, Viet Han Friendship 7 ICMP protocol Gửi gói tin Raw socket: Là giao thức không hướng kết nối, không cần bind socket đến cổng cục bộ để gởi gói tin hoặc dùng phương thức Connect() để nối nó với host cụ thể ở xa Sử dụng phương thức SendTo() của lớp Socket để gửi. Cổng trong giao thức ICMP không quan trọng Socket newsock= new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); IPEndPoint iep = new IPEndPoint(IPAddress.Parse(192.168.1.2), 0); newsock.SendTo(packet,iep); Nguyễn Vũ – IT Faculty, Viet Han Friendship 8 ICMP protocol Gửi gói tin Raw socket: Chú ý: Vì raw socket không format dữ liệu nên mảng byte sẽ truyền “đúng y” đến host ở xa. Do đó bạn phải tạo thủ công gói ICMP thành mảng byte rồi mới gởi. Nếu có lỗi bạn sẽ không có gói ICMP trả về. Nguyễn Vũ – IT Faculty, Viet Han Friendship 9 ICMP protocol Nhận gói tin Raw socket: Dữ liệu nhận được từ raw socket phức tạp hơn, ta phải dùng phương thức ReceiveFrom(). Raw socket không xác định giao thức tầng trên, dữ liệu trả về của phương thức ReceiveFrom() chứa toàn bộ nội dung gói IP. Chú ý: Vì phương thức ReceiveFrom() cho toàn bộ gói IP, ta phải khai báo kích thước buffer nhận nhiều hơn dữ liệu chứa bên trong ít nhất là 20 bytes. Nguyễn Vũ – IT Faculty, Viet Han Friendship 10 ICMP protocol Tạo lớp ICMP Class Tạo lớp ICMP Class để dễ dùng trong các ứng dụng mạng có các gói ICMP. Cấu tử lớp ICMP Class Lớp ICMP thường cần có các biến dữ liệu trong bảng sau: Variable Size Type Type 1byte Byte Code 1byte Byte Checksum 2bytes Unsigned16bitinteger Message multibyte Bytearray Nguyễn Vũ – IT Faculty, Viet Han Friendship 11 ICMP protocol Tạo ...

Tài liệu được xem nhiều:

Tài liệu liên quan: