Gói tin icmp là gì
Giao thức ICMP là gì?Click để hiển thị dàn ý chính bài viết Show
ICMP (Internet Control Message Protocol) là một giao thức báo cáo lỗi, thông báo cho sender biết việc gửi data đi có vấn đề, cũng giống như bộ định tuyến sử dụng để tạo thông báo lỗi đến địa chỉ IP nguồn khi các sự cố mạng ngăn chặn việc phân phối các IP packages. ICMP tạo và gửi thư đến địa chỉ IP nguồn, cho biết rằng một gateway vào Internet mà không thể truy cập được. Mọi thiết bị mạng IP đều có khả năng gửi, nhận hoặc xử lý tin nhắn ICMP. Giao thức ICMP là gì, có mấy loại gói tin, hạn chế của ICMP là gì Lưu ý về định nghĩa của ICMPCác bạn nên nhớ rằng ICMP không phải là giao thức truyền tải gửi dữ liệu giữa các hệ thống với nhau mà chúng được xem như bộ định tuyến. Ngay sau khi phát hiện lỗi thì lập tức ICMP sẽ tạo và gửi thông báo đến địa chỉ IP nguồn. Trong trường hợp có các sự cố mạng ngăn chặn việc phân phối các IP packages hay một gateway không thể truy cập internet được. ICMP không được sử dụng thường xuyên trong các ứng dụng người dùng cuối, nó được sử dụng bởi các quản trị mạng, nhằm mục đích khắc phục các kết nối Internet trong các tiện ích chẩn đoán (diagnostic utilities) bao gồm ping và traceroute. Một trong những giao thức chính của Internet Protocol suite là ICMP, ICMP được sử dụng bởi các routes, thiết bị trung gian hoặc máy chủ để truyền thông tin lỗi hoặc cập nhật cho các routes, thiết bị trung gian hoặc máy chủ khác. IPv4 được sử dụng rộng rãi (Giao thức Internet phiên bản 4), còn IPv6 mới hơn sử dụng các phiên bản tương tự của giao thức ICMP (ICMPv4 và ICMPv6 tương ứng). Các thông điệp ICMP được truyền dưới dạng các datagrams, bao gồm một IP header đóng gói dữ liệu ICMP. CMP packets là IP packets với ICMP trong phần dữ liệu IP. Các tin nhắn ICMP cũng chứa toàn bộ tiêu đề IP từ tin nhắn gốc, vì vậy end system sẽ biết được packet nào đang có vấn đề. ICMP header xuất hiện sau IPv4 hoặc IPv6 packet header và được xác định là IP protocol số 1. Thông thường, một giao thức phức tạp chứa ba trường: – Loại chính (major type) xác định ICMP message. – Mã phụ (minor code) có chứa nhiều thông tin hơn về type field. – Việc kiểm tra tổng (checksum) giúp phát hiện các lỗi được phát sinh trong quá trình truyền tải. – Dựa theo ba trường là dữ liệu ICMP và IP header ban đầu, chúng ta có thể xác định được các gói nào thực sự không thành công. – ICMP đã được sử dụng để thực hiện các cuộc tấn công từ chối dịch vụ (còn gọi là ping of death) bằng cách gửi một gói IP lớn hơn số byte được cho phép bởi giao thức IP. Đã nói đến ping thì phải nói đến ICMP, vậy ICMP là cái gì?– IP không có cơ chế để biết được data nó gửi đã đến được đích chưa, nên mới sinh ra cái gọi là Internet Control Messenger Protocol(ICMP). ICMP sinh ra không phải để giải quyết cái thuộc tính không đáng tin cậy(unreliability) vốn có của IP mà ICMP messenger có nhiệm vụ đơn giản là thông báo cho sender biết việc gửi data đi có vấn đề. – VD: host A gửi 1 datagram tới host Z, nhưng do một số nguyên nhân mà gói thông tin gửi tới không đúng đích.
– Khi đó thiết bị trung gian(router) nơi xảy ra vấn đề sẽ gửi lại một gói tin trong đó có ICMP messenger chỉ dành cho sender để thông báo về nguyên nhân. Các thiết bị trung gian khác không nhận được messenger trên và hoàn toàn không biết là có vấn đề trên đường truyền. – Đã là một messenger được truyền đi trong mạng thì nó cũng phải đi qua những lớp dưới. Và dữ liệu (nội dung chính của messenger đó) sẽ được encap cũng như các loại data khác( nghĩa là cũng phải có Frame header, IP datagram header..) sau đó nó sẽ được chuyền đi. – Để tránh trường hợp khi truyền ICMP messenger lại xảy ra lỗi và lại sinh ra một cái error report nữa ( và làm tăng congestion( tắc nghẽn)) ICMP sẽ không có error report nữa. – Có nhiều loại ICMP messenger khác nhau và mỗi loại mang 1 thông điệp lỗi cụ thể khác nhau. Kiểu messenger được nhận ra nhờ format dữ liệu của messenger đó. Trong một số trường hợp thực hiện lệnh Ping lần đầu ta nhận thấy có một gói Request Timeout và ba gói còn lại thành công, gói đầu ấy là do ARP đang làm việc nên mới không thành công. Có hai loại Ping là Standard Ping và Extended Ping. Extended Ping cho phép ta lựa chọn một Source Interface chính xác để kiểm tra kết nối giữa một điểm bắt đầu và đích đến cụ thể. Tại sao lại phải có Extended Ping với Source cụ thể? Ping Source hay Extended Ping chỉ được dùng trên Router mà thôi còn trên Host ta sẽ không dùng Ping Source được, với vai trò là một nhà quản trị khi ta cần kiểm tra kết nối giữa các Host với nhau ta thường sẽ kiểm tra Ping trên Router với Source. Standard Ping là cách Ping bình thường tới một địa chỉ đích nên ta không thể biết được kết nối giữa các Host có thật sự thông với nhau hay không bởi vì trên Router có nhiều Interface nên nó sẽ chọn ngẫu nhiên một Interface mà nó Ping thành công. Do đó trong nhiều trường hợp ta Ping thì thành công nhưng thực chất Interface đó không thể đi tới Host đích được vì thật ra là ta đang Ping giữa một con Router đi tới Host chứ không phải giữa hai Host cụ thể. Ngoài Ping ra thì đại diện cho ICMP còn có tiện ích “Traceroute” dùng để liệt kê và thăm dò tất cả các đường đi tới đích. Thông điệp ICMP được đóng gói vào trong gói IP Packet vì thế người ta thường hay nghĩ ICMP nằm ở tầng 4 (Transport) nhưng ICMP là một phần quan trọng của giao thức IP nên thật ra nó nằm ở tầng 3 (Network). Giải thích điều dễ gây nhầm lẫn trên là do lệnh Traceroute chỉ hoạt động ở tầng 4 (Transport) Tương tự lệnh Ping thì Traceroute cũng có hai loại là Standard Straceroute và Extended Traceroute (Dùng Source cụ thể). Khi Traceroute một mạng mà ta nhận về một thông báo hết hạn TTL Exceeded thì nghĩa là đã xảy ra Loop mạng, thường thì TTL mặc định sẽ là 32 và khi qua mỗi thiết bị sẽ giảm đi một đơn vị cho tới khi về 0 thì hết hạn. Định dạng của bản tin ICMPBản tin ICMP được mang trong phần dữ liệu của gói tin IP. Mặcdù mỗi bản tin ICMP có dạng riêng của nó, nhưng chúng đều bắt đầu với ba trường sau:
Hơn nữa, các thông điệp ICMP thông báo lỗi luôn luôn bao gồm phần đầu và 64bit đầu tiên của packet gây nên lỗi. Lý do có thêm phần đầu này cùng với phần đầu packet là để cho phép nơi nhận xác định chính xác hơn những giao thức nào và chương trình ứng dụng có trách nhiệm đối với packet. ICMP có tác dụng gì?ICMP có rất nhiều ứng dụng, trong đó ứng dụng Ping được sử dụng nhiều nhất. Giao thức ICMP là gì, có mấy loại gói tin, hạn chế của ICMP là gì
Các thông số cơ bản trong ICMP
Các kết quả có thể trả về sau khi Ping: Ping thành công Giao thức ICMP là gì, có mấy loại gói tin, hạn chế của ICMP là gì Ping không thành công : Request time out: PC gửi gói tin ICMP request đi, sau khoảng thời gian “time out” mà không thấy gói tin trở về. Giao thức ICMP là gì, có mấy loại gói tin, hạn chế của ICMP là gì Nguyên nhân:
Destination host unreachable do đâu?Giao thức ICMP là gì, có mấy loại gói tin, hạn chế của ICMP là gì TH 1: 2 host khác lớp mạng Gói tin đi đến default gateway nhưng default gateway lại không biết đường đi tới đích (không có trong bảng định tuyến). Nó gửi lai gói “reply from < IP default gateway > destination host unreachable” với ý nghĩa: gói tin đến Router là “cụt đường”. TH2: 2 host cùng lớp mạng Đương nhiên khi 2 host cùng lớp mạng thì không có sự góp mặt của Router, Host A gửi nếu không thể đến được thì trả về gói “reply from < IP source> destination host unreachable”. Nguyên nhân:
Lệnh Ping giúp cho chúng ta chuẩn đoán nhanh chóng và hiệu quả các sự cố mạng, ping là ứng dụng luôn được sử dụng đầu tiên khi có lỗi xảy ra. Chức năng của ICMP1. Điều khiển dòng dữ liệuKhi trạm nguồn gửi dữ liệu tới quá nhanh, trạm đích không kịp xử lý, trạm đích – hay một thiết bị dẫn đường gửi trả trạm nguồn một thông báo để trạm nguồn tạm ngừng việc truyền thông tin. 2. Thông báo lỗi– Khi không tìm thấy trạm đích, một thông báo lỗi Destination Unreachable được Router gửi trả lại trạm nguồn. – Nếu số hiệu cổng không phù hợp, trạm đích gửi thông báo lỗi lại cho trạm nguồn. 3. Kiểm tra trạm làm việcKhi một máy tính muốn kiểm tra một máy khác có tồn tại và đang hoạt động hay không, nó gửi một thông báo Echo Request. Khi trạm đích nhận được thông báo đó, nó gửi lại một Echo Reply. Lệnh ping sử dụng các thông báo này. Ping là một lệnh phổ biến và thường được sử dụng để kiểm tra kết nối . Giao thức ICMP là gì, có mấy loại gói tin, hạn chế của ICMP là gì Bạn có thể thực hiện lệnh Ping đến một địa chỉ IP hay tên miền cụ thể nào đó như sau : Vào Start -> Run -> Gõ lệnh cmd ( với Window xp, 2K ), lệnh command ( với Window 9x ) -> Xuất hiện cửa sổ MS-DOS -> sau đó bạn gõ lệnh C:\>Ping 10.0.0.2. Nếu màn hình xuất hiện như dưới :
Như vậy là lệnh Ping thành công và kết nối từ PC của tôi đến 10.0.0.2 là OK Khi Ping tên miền bạn làm tương tự, ví dụ : C:\>ping massageishealthy.com
Như vậy là kết nối thành công . Với một lệnh Ping không thành công :
Với kết quả này, tức kết nối không thành công. Các bạn có thể thử Ping default Gateway, DNS server của các bạn để kiểm tra mỗi khi không kết nối được ra mạng ngoài. Các loại ICMP message thường thấy1. ICMP echo messagesCó hai loại là echo request và echo reply message tương ứng với các trường:
Ngoài ra còn có 2 trường (size 16 bit/field) là ID và sequence Number dùng để nhận biết giữ các cặp reply/request. 2. ICMP Destination Unreachable messageNếu bị Destination Unreachable, thiết bị trung gian sẽ gửi một Destination Unreachable message về sender. Destination Unreachable có nhiều loại ứng với các nguyên nhân khác nhau và chúng sẽ có các cặp giá trị code khác nhau: Ví dụ:
3. ICMP Parameter Problem messageThông điệp này xuất hiện khi có một vài error trong header của datagram (ở một vài octet) và không thể chuyển nó đi tiếp được. Lúc này thiết bị trung gian gửi một ICMP Parameter Problem message cho sender với các trường sau.
4. ICMP Redirect/Change Request messageLà loại Control Messages, được gửi đi bởi một default gateway, báo cho host nhận biết là có best path: – Tại Interface mà packet đã đi vào sau đó lại đựơc routed đi ra. – Tại subnet/network của địa chỉ IP nguồn cùng subnet/network với nexthop. Khi host được để mặc định là gửi ICMP Redirect message. Có thể bỏ default này bằng command: “no ip redirects”. Các loại Redirect Require Message ứng với các type và code sau:
5. ICMP Timestamp Request messageĐồng bộ thời gian cho các ứng dụng giữa nơi chuyền và nơi nhận:
Ngoài ra còn có 2 trường có size là 16 bit là ID và sequence Number dùng để nhận biết giữ các cặp reply/request. 6. ICMP Information Request and Reply messageĐể xác định số network được sử dụng.
Ngoài ra còn có 2 trường có size là 16 bit là ID và sequence Number dùng để nhận biết giữ các cặp reply/request. 7. ICMP Address Mask Request messageHost tìm được subnetmask của mình khi không được cấu hình bằng tay.
Ngoài ra còn có 2 trường có size là 16 bit là ID và sequence Number dùng để nhận biết giữ các cặp reply/request. Và thêm 1 trường 32 bit dành cho Address Mask (với request message thì nó được cho về not use với reply message thì nó là Address Mask correct của host). 8. ICMP Router Discover message
9. ICMP Router Solicitation message
10. ICMP Source Quench messageĐược sử dụng để báo cho sender biết là có congestion và hỏi sender xem có giảm tốc độ gửi packet đi không, thuộc loại Flow-Control Message.
Giao thức ARP và giao thức RARP là gì, có ý nghĩa gì?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ỉ vật lý 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 bits) và địa chỉ vật lý (48 bits) của một trạm. Giao thức ARP (Address Resolution Protocol)Giao thức ARP (Address Resolution Protocol) đã được xây dựng để chuyển đổi từ địa chỉ IP sang địa chỉ vật lý khi cần thiết. Ngược lại, giao thức RARP (Reverse Address Resolution Protocol) được dùng để chuyển đổi địa chỉ vật lý sang địa chỉ IP. Các giao thứ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. Giao thức TCPTCP (Transmission Control Protocol) là một giao thức “có liên kết” (connection – oriented), nghĩa là cần thiết lập liên kết (logic), giữa một cặp thực thể TCP trước khi chúng trao đổi dữ liệu với nhau. TCP cung cấp khả năng truyền dữ liệu một cách an toàn giữa các máy trạm trong hệ thống các mạng. Nó cung cấp thêm các chức năng nhằm kiểm tra tính chính xác của dữ liệu khi đến và bao gồm cả việc gửi lại dữ liệu khi có lỗi xảy ra. TCP cung cấp các chức năng chính sau:
Thông tin tổng hợp nhiều nguồn từ Massageishealthy. |