120 likes | 225 Views
CSCI 4550/8556 Computer Networks. Comer, Chapter 23: An Error Reporting Mechanism (ICMP). Introduction. IP provides best-effort delivery. Delivery problems can be ignored by IP; datagrams can be “dropped on the floor.”
E N D
CSCI 4550/8556Computer Networks Comer, Chapter 23: An Error Reporting Mechanism (ICMP)
Introduction • IP provides best-effort delivery. • Delivery problems can be ignored by IP; datagrams can be “dropped on the floor.” • The Internet Control Message Protocol (ICMP) provides an error-reporting mechanism for other types of errors.
Error Detection • The internet layer (IP) can detect a variety of errors: • checksum errors (but in the header only!) • TTL expiration • no available route to the destination network • inability to deliver to the destination host (e.g., no ARP reply) • The internet layer discards datagrams with problems. • Some (e.g. those with a checksum error) - cannot trigger error messages, because the source is unknown.
Error Reporting • Some errors can be reported: • The router sends a message back to the source in a datagram. • The message contains information about the problem. • The message, as expected, is encapsulated in an IP datagram.
Types of Messages • The Internet Control Message Protocol (ICMP) defines error and informational messages. • Error messages: • Source quench – tells source to slow down because of congestion • Time exceeded – a datagram’s TTL expired • Destination unreachable – there is no route to the destination • Redirect – router reports that its use is inappropriate • Fragmentation required – a datagram would need to be fragmented • Informational messages: • Echo request/reply – used with the ping program • Address mask request/reply • Router discovery
Summary • The internet layer (IP) provides best-effort delivery of datagrams. • It may choose to report errors for some problems. • The ICMP protocol provides the mechanism by which such error messages are communicated.
ICMP Message Transport • ICMP messages are encapsulated in IP datagrams: • ICMP messages are sent in response to incoming datagrams with problems. • An ICMP message is not sent for an ICMP message.
ICMP and Reachability • An internet host B is said to be reachable from another host A if datagrams can be delivered from A to B. • The ping program tests reachability – it sends a datagram from A to B that B echoes back to A. • Ping uses the ICMP echo request and echo reply messages. • The Internet layer includes code to reply to incoming ICMP echo request messages.
ICMP and Internet Routes • The list of all routers on the path from A to B is called the route from A to B • traceroute uses UDP to a non-existent port and TTL field to find a route using an expanding ring search • It sends ICMP echo messages with increasing TTL values. • A router that decrements a TTL value to 0 sends an ICMP time exceeded message in response, with that router's address as the source address in the message. • The first message, with a TTL value of 1, gets to the first router, which discards the message and sends the time exceeded reply. • The next message, with a TTL value of 2, gets through the first router to the second router. • The procedure continues until a message from the destination is received. • traceroute must accommodate varying network delays. • It must also accommodate dynamically changing routes.
ICMP and Path MTU Discovery • Fragmentation should be avoided, if possible. • How can a source configure outgoing datagrams to avoid fragmentation? • The source determines the path MTU – the smallest network MTU on the path from the source to the destination. • The source probes the path using IP datagrams with the don't fragment flag set. • A router responds with the ICMP fragmentation required message if it would be required to fragment a datagram marked with the don’t fragment flag. • The source sends smaller and smaller probes until the destination is reached.
ICMP and Router Discovery • A router can fail, causing a “black-hole” or isolating a host from the internet. • The ICMP router discovery message is used to find new router. • A host can broadcast a request for router announcements to auto-configure its default route. • A host can broadcast this request if a router fails. • A router can broadcast advertisement of its existence when it is first connected.
ICMP Redirect Messages • A default route may cause an extra hop in a path. • A router that forwards a datagram on the interface where the datagram was received sends an ICMP redirect message. • The host installs the new route with the correct router’s address as the next hop.