1 / 28

Internet Control Message Protocol (ICMP)

IP provides unreliable and connectionless delivery Provides unreliable delivery Make efficient use of network resources No error reporting, or correcting mechanism No management of queries Network manager might need information about a host/router. What happens if

yale
Download Presentation

Internet Control Message Protocol (ICMP)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IP provides unreliable and connectionless delivery Provides unreliable delivery Make efficient use of network resources No error reporting, or correcting mechanism No management of queries Network manager might need information about a host/router What happens if Router discards a datagram ? TTL expires ? Host didn’t receive all datagram’s fragments ? Internet Control Message Protocol (ICMP)

  2. Position of ICMP in the network layer And Encapsulation • Special purpose message mechanism added to the TCP/IP protocols • Destination of an ICMP message is the ICMP software module • ICMP is a network layer protocol, but its messages are first encapsulated into IP datagrams.

  3. Error reporting vs. Error Correction • ICMP can only report an error to the original source • Up to the source to deal with it. • ICMP cannot be used to inform intermediate routers. • Source has no responsibility of routers problems. • Why restrict ICMP messages to original source? • Except for record route option, datagrams only contains source + destination @. • No global knowledge of routes (i.e. routers establish and change their own routing tables)

  4. ICMP messages

  5. General format of ICMP messages • Data section in • Error Messages carries information to find the original packet that had the error • Rest of Header unused (all 0s), except for Redirection message format • Query Messages carries extra information based on type of the query. • Rest of Header = Identifier (8 bits) + Sequence Number (8 bits)

  6. Error-reporting messages Important points about ICMP error messages:1.No ICMP error message for a datagram carrying an ICMP error message.2. No ICMP error message for a fragmented datagram that is not the first fragment.3. No ICMP error message for a datagram having a multicast address.4. No ICMP error message for a datagram with a special address such as 127.0.0.0 or 0.0.0.0

  7. Contents of data field for error messages • In ICMP error messages • The first 8 bytes of the Transport layer header is included • Provides Information about the port numbers (TCP or UDP) and sequence number (TCP)

  8. Destination-unreachable (Type 3) • ICMP destination unreachable message for codes = 2 and 3 only created by a host • All others are created by a routers !!! Routers cannot detect all Problems that prevent the delivery of a packet.

  9. Source-quench (type =4, code =0) • IP do not provide a flow-control mechanism • Source never knows if routers of destination is congested • A source-quench message informs the source that a datagram has been discarded due to congestion in a router or the destination host • Two purposes: (1) informs the source of dropped packet (2) inform of congestion along the path • Source must slow down (quench) the sending of datagrams until the congestion is relieved. • One source-quench message should be sent to each datagram that has been discarded due to congestion • One-to-one congestion • Many-to-one congestion (congested router has no idea which source is sending datagrams faster)

  10. Time-exceeded message (Type 11) • If router receives a datagram with TTL = 0 • Discard the datagram • Inform the source using a Time-exceeded message (code = 0) • If a host does not receive all fragments of a datagram during within a certain time of receiving the first fragment • Discard all fragments • Inform the source using a Time-exceeded message (code = 1) Code 0: used only by routers Code 1: used only by Hosts

  11. Parameter-problem message • A parameter problem message is created by a router or destination host • If there is an error or ambiguity in the header field (code = 0), pointer points to the byte with problem • An option is missing or incorrect (code = 1) pointer not used • Router discards the datagram and sends a Parameter-problem message

  12. Redirection message format • Updates to routers’ routing tables are dynamic • Updates to hosts’ routing tables are static • Starts with the small routing tables that gets updated one of the tools is redirection message format • Redirection always sent from a router to a host in the same network Code 0: Network specificCode 1: Host specificCode 2: Network specific (specified service) Code 3: Host specific (specified service)

  13. Query messages • Diagnose some network problems. • Information request/reply is now obsolete (replaced by RARP/BOOTP)

  14. Timestamp-request and timestamp-reply message format • Can be used to determine RTT needed for an IP datagram to travel between two machines. • Identifier and Sequence fields allows machine to associate request with replies

  15. Can be used to synchronize two machines clocks. Example: Orig = 83573336, recv = 83573330; trans = 83573330; With RTT = 2 ms, |diff| = 6 ms; implies that recv is 7 ms late. Orig = 83573336, recv = 83573000; trans = 83573000; With RTT = 2 ms; |diff|=336 ms Timestamp req/reply is useless In general: SendingT = recv – orig ReceivingT = packet arrived – trans RTT = (sendingT + ReceivingT) If: One_way_time = RTT/2 outOfSyncT = recv – (orig + RTT/2) Timestamp-request and timestamp-reply message

  16. Router solicitation message format • An important issue is how to accommodate routers in the same netwok: • Designers provided routers advertisement, • Default value 10 mn • Compromise between rapid failure detection and low overhead. • From a Host point of view this delay is very expensive • Example: when a host boots cannot wait 10 mn • Designers provide Router solicitation message to request immediate advertisement. • Host multicasts/broadcasts a router solicitation message • Identifier + Sequence number not used.

  17. Router Advertisement • Static routing works well for a network that has only one router. (no need to discover routes or change routes) • For a network with many routers, and if a router crashes, then host uses router advertisement message. • ICMP route discovery helps in: • Host can get the router address from the router itself, instead via a bootstrap protocol (i.e. static configuration) • Use of Timers to update routes (Soft state technique)

  18. Router advertisement message format • Number of addresses (that follows usually 1) • Address size (IPv4 = 1) • Lifetime: time to use the specified address (a default 30 mn) • Address Preference: Shows the preference of the router’s address.

  19. Mask-request and mask-reply message format • In general to request a subnet mask from a router • Diskless machine can use Mask-request to get its subnet mask.

  20. Echo-request and echo-reply message format • Designed for diagnosis purposes • Host or router can send a echo-request • Receivers echoes back the message with an echo-reply • Echo-request/reply used by network admin to test the reachability of a specific host • Identifier & Sequence Number are not formally used by the protocol, • Can be set to anything by the sender • Example : Ping program : a statistical tool • Does not use Transport protocols (TCP or UDP)

  21. Ping Program • Ping programs uses Echo-request/reply to test reachability of a host • Identifiers : Process ID • If many ping programs are running • Sequence Number : increment for each echo-request • RTT = received_reply_time – requested_time(stored in ICMP data packet) • Other Options: • Use ICMP request message encapsulated into an IP packet with record route option. • Example: Ping –R machine • Limited number of IP addresses • IP header lenght = 4 bits • Allows 15* 4 bytes (60 – 20 IP header– 3 bytes for option information ) Only 9 IP addresses • Use ICMP request message encapsulated into IP packet with timestamp option • More severe limitation

  22. ICMP package

  23. Input Module (handles all types of received ICMP messages) • Receive an ICMP packet from the IP layer • 1- if (type = request type) • 1- Create a reply • 2- Send the reply • 2- if (type = router solicitation) • 1- if (station is a router) • Create router advertisement • Send the advertisement • 3- if (type = one of the 3 reply messages or router advertisement) • 1- Extract information in the data section of the packet • 2- Deliver extracted information to the process that requested it • 4- if (type defines a redirection) • Modify the routing table • 5- if (type = error messages other that redirection) • Inform the appropriate source protocol • 6- return.

  24. Output Module (responsible for: creating requests, solicitation, error messages requested by higher level protocols or IP) • Receive : a demand • 1- if (demand = error messages) • If (demand is from IP) • If (demand is forbidden i.e. 4 cases where ICMP does not error message) • Return • If (type defines a redirection message) • If (station is not a router) • Return • Create the error message using type, code, and original IP packet • 2- If (demand = request or solicitation) • Create a request or solicitation message • 3- send the message • 4- return

  25. Ping Program (example)

  26. If a router crashes or connection between two routers is lost Can take time to re-route In this case TTL function is to avoid routing loops. If TTL =0/1 must not forward the datagram. Router sends ICMP “Exceeded Time” to sender. TRACEROUTE Create UDP datagram(“with unreachable port#”) to send to destination UDP datagram has 12bytes of data, (sequence#, TTL,time). TTL = 1; Send ‘n’ datagrams to destination while (!receive (ICMP “port_unreachable”) (TTLth Router TTL--; Send ICMP “TimeExceeded”) Sender knows IP address of TTLth router in ICMP packet Print (IP address, 1st RTT, 2nd RTT, .., nth RTT) TTL++; Send ‘n’ datagrams to destination } Traceroute Program (ICMP “Time Exceeded” revisited)

  27. Traceroute Program ( IP Source route revisited) • Traceroute can specify a Strict Source routing • If failed, ICMP error source route unfeasible (type =3, code =5) • Can also specify loose source routing • Traceroute [-LooseRoute Destination] Source • Traceroute Round Trips may be different • How many source route IP addresses?

  28. Traceroute stores original time in UDP data. (12 bytes). Ping stores original time in ICMP packet, echoed by receiver. Traceroute or Ping RTT?

More Related