Internet Control Message Protocol

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 32

Internet Control Message

Protocol

1
Position of ICMP in the network layer

2
ICMP encapsulation

Note that ICMP messages are encapsulated within


IP datagrams.

3
General format of ICMP messages

All the ICMP messages are different. The only thing that is
common amongst all is the first 4 bytes.

Type field tells what type of message (as we saw on the


previous slide); Code field gives further information on the
type of message.
4
ICMP messages

ICMP messages are divided into error-reporting messages and


query messages. The error-reporting messages report problems
that a router or a host (destination) may encounter. The query
messages get specific information from a router or another host.

5
ERROR REPORTING
IP, as an unreliable protocol, is not concerned with error checking and
error control. ICMP was designed, in part, to compensate for this
shortcoming.

ICMP does not correct errors, it simply reports them.

ICMP always reports the message back to the source.

The topics discussed in this section include:

Destination Unreachable
Source Quench
Time Exceeded
Parameter Problem
Redirection

6
Error-reporting messages

7
Note:

The following are important points about ICMP


error messages:
❏ No ICMP error message will be generated in response
to a datagram carrying an ICMP error message.
❏ No ICMP error message will be generated for a
fragmented datagram that is not the first fragment.
❏ No ICMP error message will be generated for a
datagram having a multicast address.
❏ No ICMP error message will be generated for a
datagram having a special address such as 127.0.0.0 or
0.0.0.0.

8
Contents of data field for the error messages

Destination Unreachable

When a router cannot route a datagram or a host cannot


deliver a datagram, the datagram is discarded and the router
or host sends a destination-unreachable ICMP message.

There are 15 different codes:


network unreachable(0);
host unreachable(1);
protocol unreachable(2);
port unreachable(3);
fragmentation required but DF bit set(4);
source routing cannot be accomplished (5);
destination network unknown(6);
destination host unknown(7);
source host isolated(8);
communication with destination network
is prohibited(9); and six more
9
Destination-unreachable format

8 bits 8 bits 16 bits

10
Source-quench format

There is no flow control mechanism in IP, so ICMP


allows a router to tell a source to slow down (we
just discarded one of your datagrams because our
buffers are full). This is source quench.

One source quench message is sent for each datagram


discarded.

11
Time-exceeded message format

When a router decrements a Time-to-Live counter to zero,


the datagram is tossed and a time-exceeded message is
returned to the source.

Likewise if a destination does not receive all the fragments


in a set amount of time.

12
Note:

In a time-exceeded message, code 0 is


used only by routers to show that the
value of the time-to-live field is zero.
Code 1 is used only by the destination
host to show that not all of the
fragments have arrived within a set
time.
13
Parameter-problem message format

A parameter problem message can be created by a router


or the destination host.

Code 0 - there is an error or ambiguity in one of the header


fields.
Code 1 - the required part of an option is missing.

14
Redirection concept

Routers are constantly updating themselves with new


routing information.

Not so with hosts. A host has to know where the next


router is too, but its table is usually static (for efficiency).

Host routing tables start off small, usually with only one
entry - the default router.

When the host sends a datagram to the wrong router


(because its routing table is incomplete), the router that
receives the datagram sends the datagram to the
correct router AND sends a redirection message to the
host.

The host uses this info to update its routing table.

15
Redirection concept

16
Redirection message format

17
9.4 QUERY
ICMP can also diagnose some network problems through the query
messages, a group of four different pairs of messages. In this type of
ICMP message, a node sends a message that is answered in a specific
format by the destination node.

The four different types of request and reply are:

Echo Request and Reply


Timestamp Request and Reply
Address-Mask Request and Reply
Router Solicitation and Advertisement

18
Note:

An echo-request message can be sent


by a host or router. An echo-reply
message is sent by the host or router
which receives an echo-request
message.

TCP/IP Protocol Suite 19


Note:

Echo-request and echo-reply messages


can be used by network managers to
check the operation of the IP protocol.
If a router returns a reply, then it and
IP are working.

TCP/IP Protocol Suite 20


Note:

Echo-request and echo-reply messages


can test the reachability of a host. This
is usually done by invoking the ping
command.

TCP/IP Protocol Suite 21


Figure 9.14 Echo-request and echo-reply messages

Identifier field and Sequence number field are not used


and can be arbitrarily set by the sender.
Identifier field is often the same as the process ID.

TCP/IP Protocol Suite 22


Note:

Timestamp-request and timestamp-


reply messages can be used to
calculate the round-trip time between
a source and a destination machine
even if their clocks are not
synchronized.

TCP/IP Protocol Suite 23


Note:

The timestamp-request and timestamp-


reply messages can be used to
synchronize two clocks in two
machines if the exact one-way time
duration is known.

TCP/IP Protocol Suite 24


Figure 9.15 Timestamp-request and timestamp-reply message format

Sending time = receive timestamp - original timestamp


Receiving time = returned time - transmit time
Round-trip time = sending time + receiving time

TCP/IP Protocol Suite 25


Figure 9.15 Timestamp-request and timestamp-reply message format

Example - An IP and ICMP packet comes back with the


following information:

Original timestamp = 46
Receive timestamp = 59
Transmit timestamp = 60
Return time = 67

What is:
Sending time =

Receiving time =

Round-trip time =

TCP/IP Protocol Suite 26


Figure 9.16 Address-mask-request and address-mask-reply message format

If a thin-client host does not know its IP mask, it may


issue an address-mask-request. Can also use BOOTP
or DHCP to obtain this information.

Address mask is 0 in request message.

Identifier and Sequence number fields are not used.

TCP/IP Protocol Suite 27


Figure 9.17 Router-solicitation message format

How does a host find out what routers are connected to its
own network? Or if those routers are functioning? It can
send out a router-solicitation message.

This can be broadcast on current network.

Identifier and Sequence number fields are not used.

TCP/IP Protocol Suite 28


Figure 9.18 Router-advertisement message format
This is the reply that comes back from the previous request.
Lifetime field shows the number of seconds that the entries
are considered to be valid.

If address preference = 0, then this should be the default router.


TCP/IP Protocol Suite 29
Figure 9.18 Ping and Traceroute

Ping and Traceroute (in Unix) and Ping and Tracert in Microsoft
both use ICMP and its various options to perform.

For the Ping command, the source host sends ICMP echo request
messages (type 8, code 0); the destination,if alive, responds
with ICMP echo reply messages.

TCP/IP Protocol Suite 30


9.7 ICMP PACKAGE
To give an idea of how ICMP can handle the sending and receiving of
ICMP messages, we present our version of an ICMP package made of
two modules: an input module and an output module.

The topics discussed in this section include:


Input Module
Output Module

TCP/IP Protocol Suite 31


Figure 9.21 ICMP package

TCP/IP Protocol Suite 32

You might also like