300 likes | 380 Views
Learn about ICMP protocol for error reporting in IP communication, handling failures, unreachable destinations, and network congestion. Understand ICMP messages and their formats.
E N D
Error and Control • An IP datagram travels from node to node on the way to its destination • Each router operates autonomously • Failures or problems may occur or develop along the way to a destination • Destinations may not be reachable • Referenced host may not have the appropriate application running • The Time to Live field may decrement to 0 before reaching destination
Error and Control • To assist with such situations a protocol was included within the IP module • Internet Control Message Protocol (ICMP) • Routers and hosts can report certain conditions back to the source of the original datagram • This is strictly a reporting mechanism to the source of the datagram that triggered the condition
ICMP • The ICMP protocol is documented in RFC792 (1981) • ICMP messages are themselves encapsulated as IP datagrams • ICMP messages may themselves encounter reportable conditions • By convention, when ICMP datagrams encounter normally reportable conditions, these are not sent • The reporting of conditions are not mandatory
ICMP • No ICMP message is sent for a fragment datagram except for the first fragment • No ICMP message is sent if source is a multicast address • No ICMP message is sent to special addresses, such as 127.0.0.0
Destination-unreachable format Common Codes 0 Network Unreachable (router) 1 Host Unreachable (router) 2 Protocol (IP) Unreachable (host) 3 Port Unreachable (host) 4 Fragmentation required, NOFRAG bit set (router) 5 Source Route failed (router)
Source-quench format • Routers may become congested and traffic may backup • If there is no buffer for an incoming datagram the router discards the datagram and sends a Source Quench ICMP to the source host • A source Quench ICMP is sent for every datagram discarded • Source must reduce rate of traffic • There is no indication sent when rate can again be increased • Source host can later gradually increase traffic
Time-exceeded message format Code 0 : Time to Live field has decremented to 0 A Time exceeded ICMP is sent to the source host and datagram discarded This is sent by a router Code 1: When all fragments of an original datagram do not arrive at a destination within a certain time, all fragments are discarded and an ICMP Time exceed message sent to source host (byhost)
Parameter-problem message format • Code 0: Problem exists in the basic IP header • Code 1: Problem exits in an Options field • Pointer points to the first byte where error is detected • When a parameter problem is detected, datagram is discarded and this ICMP message is sent • This message may be created by a router or a host
Host Routing Table • Each host start with some minimal routing table • In the simplest case, it contains the address of a default router • As time goes on, this table can be augmented as more information becomes available • For example, the defined default router may not always be the best choice for a destination • The occurs when more than one router is connected to the same network • When this occurs, a router may send a redirection message to the host to notify it of the better choice
Redirection message format Code 0: Network specific Code 1: Host specific Code 2: Network specific (specified service) Code 3: Host specific (specified service) Note: This is sent by a router to a host on the same local network
Echo Request/Reply • A host or a router may send an Echo Request • When a host or router receives an Echo Request it should send the same message to the source of the request as a Reply • This is essentially what the command PING does • This is a useful diagnostic to verify reachability of a destination
Echo-request and echo-reply message format Ping command can use ICMP Request/Reply
Timestamp-request and timestamp-reply message format • Time values are in milliseconds since midnight Universal Time (UT) • UT is the same as Greenwich Mean Time (GMT)
Timestamp Request/Reply • Originate timestamp set by the source of datagram, other values set to 0 • Receive timestamp set by destination when datagram received • Transmit timestamp set when destination sends reply • When reply arrives at source, time of reply noted Sending time = Receive – Originate Receive time = Reply – Transmit Round trip = Sending time + Receive time • The round trip time is accurate even if the two clocks are not synchronized
Timestamp Request/Reply • Synchronizing clocks using timestamp request/reply One-way time = Round-trip/2 Time difference = Receive – (Originate + One-way) • Example Originate timestamp = 46 Receive timestamp = 59 Transmit timestamp = 60 Reply timestamp = 67 Sending time = 59 – 46 = 13 Receive time = 67 – 60 = 7 Round-trip = 13 + 7 = 20 Time difference = 59 – (46 + 10) = 3
Mask-request and mask-reply message format • Purpose is for a host to obtain the mask associated with its IP address • Host sends this request to a router on the local network • If host does not know the address of the router it broadcasts this request • Router responds with the mask for this network • Not really used today • BOOTP and DHCP used instead
Router solicitation message format • Purpose is to allow a host to discover routers on the local network • Even if it has a default gateway configured, this is a way to discover others connected to the local network • A host broadcasts this message • Routers will reply with advertisement messages
Router advertisement message format • May be sent even when not solicited by a request • Advertisement is broadcast on the local network
ICMP Checksum • An ICMP message contains a Checksum much like an IP header • The Checksum calculation is the same as previously described • The Checksum covers the entire ICMP message, the header and the data
Traceroute • Command that attempts to track the path a datagram takes to its destination • Traceroute uses ICMP and the TTL field in the IP header • When TTL decrements to 0 ICMP Time Exceeded message sent to host • ICMP message contains IP address of router generating message
Traceroute • Traceroute sends datagram with TTL = 1 • First router sends ICMP Time Exceeded • Traceroute next sends datagram with TTL =2 • Second router sends ICMP Time Exceeded • This continues until destination reached • Each step logs a hop to the destination • Notes: • Path of subsequent datagrams not guaranteed to be the same each time • Some routers along the way may not respond