Chapter 9: Internet Control Message Protocol Version 4 (ICMPV4)
No, its messages are encapsulated in IP datagrams before going down to the lower layer.
Are ICMP messages passed down to the data link layer?
Yes. Each clock contributes twice to the calculation, cancelling out errors in synchronization.
Are round trip calculations always accurate?
No. Only if the clocks are synchronized.
Are sending and receiving time calculations always accurate?
Given actual one-way time: Time difference = Receive timestamp - (original timestamp + one-way time)
How are the timestamp messages used to synchronize clocks?
Through the PING command.
How can a user see if a other host is reachable thorugh echo-request and echo-reply messages?
Source sends ICMP echo request (type: 8, code: 0). If alive, responds with ICMP echo reply. Ping sets sending time in the data section of the message. When it gets the reply, it subtracts the arrival time from the departure time to get the round trip time.
How does ping find round trip time?
An echo-request is sent to the node, containing an information sequence that must be repeated exactly in an echo-reply sent back to the sender.
How exactly can a host be tested with the echo messages?
1. Checksum field set to 0. 2. Sum of all the 16-bit words is calculated. 3. Sum is complemented to get the checksum
How is the checksum calculated?
1. Sum of all words is calculated. 2. Sum is cimplemented 3. If result is 16 0's, the message is accepted. Otherwise, rejected.
How is the checksum tested?
sending time = receive timestamp - original timestamp receive time = returned time - transmit timestamp round trip = sending time + receiving time
How is the round trip value calculated from the timestamps?
Five different pairs of query messages. But 3 are deprecated.
How many different pairs of messages have been designed for diagnosing network problems?
One per dropped datagram.
How many source quench messages are sent by the router that experiences congestion?
Three 32-bit fields.
How many timestamp fields are contained in timestamp-request and reply messages?
5 types.
How many types of errors are handled by ICMP?
Not necessarily. For example, if the datagram traveled through an Ethernet network, the router has no way of knowing if it was delivered because Ethernet has no acknowledgement methods.
If a router does not report a destination unreachable message, did the datagram get delivered?
No. The source continues to quench the sending process until no more source quench messages are received.
Is there a mechanism to tell the source that congestion has been relieved?
True.
T/F ICMP Query messages occur in pairs.
False. ICMP simply reports them.
T/F ICMP corrects errors.
1. Information Request and Replay: Duties are now done by ARP 2: Address Mask Request and Replay: Duties now done by DHCP 3: Router Solicitation and Advertisement: Duties now done by DHCP
What 3 pairs of messages are deprecated by the IETF?
Diagnostic, used for identifying network problems. The combination identifies if a source and destination can communicate with each other. They can determine if communication is possible at the IP level.
What are echo-request and echo-replay messages designed for?
1. No error message is made in response to a datagram carrying an ICMP error message. 2. No error message will be made for a fragmented datagram that is not the first fragment. 3. No error message will be made for a datagram with a multicast address 4. No error message will be made for a datagram with a special address like 0.0.0.0 or 127.0.0.0
What are some important points about ICMP error messages?
Determining the round trip time of a datagram sent to a specific receiver. It can also be used to synchronize clocks used by the machines.
What are the timestamp-request and timestamp-reply messages used for?
1. Error-reporting Messages 2. Query Messages
What categories are ICMP messages divided into?
0: Error or ambiguity in one of the header fields. 1: The required part of an option is missing.
What codes can be used in a parameter problem message field?
0: Redirection for network-specific route 1: Redirection for host-specific route 2: Redirection for network-specific route based on specific type of service 3: Redirection for host-specific route based on specific type of service
What codes can be used in a redirection message field?
0: TTL reached 0. 1: Time Limit reached
What codes can be used in a time exceeded message field?
Help a host or network manager get specific information from a host or router. For example, nodes can discover their neighbors.
What do ICMP Query messages do?
Report problems that a router or host (destination) might encounter when processing an IP packet.
What do ICMP error-reporting messages do?
Milliseconds from midnight at Universal Time
What do the timestamp fields represent?
0: Network is unreachable 1: Host is unreachable 2: Protocol is unreachable 3: Port is unreachable 4: Fragmentation is required, but the Do Not Fragment field has been set. 5: One or more routers in the source routing option can't be reached. 6: Destination network is unknown (not unreachable, but unknown) 7: Destination host is unkown 8: Source host is isolated 9: Communication with destination network is administratively prohibited. 10: Communication with destination host is administratively prohibited 11: Network unreachable for specified type of service. 12: Host is unreachable for specified type of service 13: Host unreachable because administrator put a filter on it 14: Host unreachable because host precedence is violated 15: Host unreachable because its precedence was cut off
What does the code field specify for a destination unreachable message?
It is a network layer protocol that serves as companion to IP.
What exactly is ICMP?
Diagnosing network problems.
What is accomplished through query messages?
The IP header of the original datagram and the first 8 bytes of data of said datagram.
What is contained in all error message data section?
The first 4 bytes. The first is ICMP message type, the second is Code, which specifies the reason for the particular message type, and the last two are checksum.
What is contained in an ICMP header that is common to all message types?
A lack of flow control and congestion control.
What is one of the ramifications of IP's lack of communication betweek source, router and destination?
To find if a host is alive and responding.
What is ping used for?
The entire header and data.
What is the ICMP checksum calculated over?
The source fills the original timestamp field with its own time at departure, the other two timestamp fields are filled with 0's. The destination creates the timestamp-reply message, copying the original timestamp field from the request message, fills the receive timestamp field with its own time when received, and fills the transmit timestamp field at departure.
What is the process used for timestamp request and reply messages?
time exceeded and destination unreachable
What messages does traceroute use to find the route of a packet?
1. Echo request and replay 2. Timestamp request and replay
What pairs of messages are used today?
Two purposes: 1. Informs the source the datagram has been discarded. 2. Warns the source that the path is congested and that the source should slow down (quench) the sending process.
What purposes does the source quench message serve?
Variable length
What size is an ICMP data section?
8-bytes
What size is an ICMP header?
Ping and Traceroute
What tools use ICMP for debugging?
A value of 1.
What value is used in an IP datagram protocol field to indicate that the IP data is an ICMP message?
For IPv4's lack of error control and lack of assistance mechanisms. IP protocol has no error-control or error-correction mechanisms.
What was ICMPV4 designed to compensate for?
To add flow control and congestion control.
What was the source quench message designed to do?
When many sources can be causing the congestion (many-to-many communication). We have no way of knowing who might be contributing to the congestion the most, and we might drop packets from slow sending processes rather than dropping packets and sending messages to the source that causes the congestion.
When are source quench messages not very useful?
When a single source is causing the congestion(one-to-one communication). Telling it to slow down can ease the issue.
When are source quench messages very useful?
When a router cannot route a datagram or a host cannot deliver a datagram.
When is a destination-unreachable message sent?
When a router or host discovers an ambiguity or a missing field in any part of the datagram.
When is a parameter problem message generated?
When a host sends a datagram intended for another network to the wrong router. The router corrects by sending the datagram to the correct router, and sends a redirection message to the host, so that the host can send datagrams to the correct router next time.
When is a redirection message generated?
When a router discards a datagram due to congestion.
When is a source quench message sent?
1. When a datagram's TTL value reaches 0. 2. When NOT all fragments of a datagram arrive at the destination host within a certain time limit, and the fragments are dropped.
When is the time exceeded message generated?
1. Destination Unreachable 2. Source Quench 3. Time Exceeded 4. Parameter Problems 5. Redirection
Which types of errors are handled by ICMP?
Always to the original source because the only info available is the source and destination IPs. ICMP uses the source IP value.
Who are error messages sent to?
Only routers
Who can make all other types of code messages?
Only the destination host
Who can make code 2 and code 3 messages?
Only routers and destination hosts.
Who can make destination unreachable messages?
Higher-level protocols.
Who is in charge of error correction?
They contain information about port numbers and sequence numbers.
Why are the first 8 bytes of data included?
There are many more hosts on the internet than routers.
Why don't hosts take part in the routing update process?