0% found this document useful (0 votes)
41 views42 pages

Error and Control Messages (ICMP) : by Z.A. Solangi

The document discusses Internet Control Message Protocol (ICMP) control messages and error reporting. It provides an overview of ICMP, including that it handles error and control messaging that IP lacks. It describes the two main categories of ICMP messages - error reporting messages and control messages. It also details the format of ICMP messages, including type and code fields, and describes several specific ICMP message types like echo request, echo reply, and destination unreachable.

Uploaded by

Imran Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views42 pages

Error and Control Messages (ICMP) : by Z.A. Solangi

The document discusses Internet Control Message Protocol (ICMP) control messages and error reporting. It provides an overview of ICMP, including that it handles error and control messaging that IP lacks. It describes the two main categories of ICMP messages - error reporting messages and control messages. It also details the format of ICMP messages, including type and code fields, and describes several specific ICMP message types like echo request, echo reply, and destination unreachable.

Uploaded by

Imran Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 42

Error and Control Messages

(ICMP)
By

Z.A. Solangi
Overview

 Knowledge of ICMP control messages is an


essential part of network troubleshooting and is a
key to understand IP networks.
 Introduction to ICMP
 The ICMP message format
 Identify ICMP error message types
 Identify potential causes of specific ICMP error messages
 Describe ICMP control messages
 Identify a variety of ICMP control messages used in
networks today
 Determine the causes for ICMP control messages

2
Overview

IP is a best effort delivery system.


• Data may fail to reach its destination for a variety of reasons, such
as hardware failure, improper configuration or incorrect routing
information.
• IP does not have a built-in mechanism for sending error and control
messages.
• IP also lack a mechanism for host and management queries.
Internet Control Message Protocol (ICMP) was designed to handle
these issues.
3
ICMP

 ICMP messages fall into two categories

 The Cisco curriculum divides it into:


 Error-Reporting Messages
 Control Messages

4
Internet Control Message
Protocol (ICMP)

• IP is an unreliable method for data delivery.


• Nothing in its basic design allows IP to notify the sender that a data
transmission has failed.
• Internet Control Message Protocol (ICMP) is the component of the
TCP/IP protocol stack that addresses this basic limitation of IP.
• ICMP does not overcome the unreliability issues in IP.
• Reliability must be provided by upper layer protocols (TCP or the
application) if it is needed. . 5
Error reporting and
error correction
• When datagram delivery errors
occur, ICMP is used to report
these errors back to the source ICMP X
of the datagram. msg
source
destination

Example
 Workstation 1 is sending a datagram to Workstation 6
 Fa0/0 on Router C goes down
 Router C then utilizes ICMP to send a message back to Workstation 1
indicating that the datagram could not be delivered.
 ICMP does not correct the encountered network problem.
 Router C knows only the source and destination IP addresses of the
datagram, does not know about the exact path the datagram took to
Router C, therefore, Router C can only notify Workstation 1 of the failure
 ICMP reports on the status of the delivered packet only to the source
device.
6
Format of an
ICMP Message
Type Field
Type Name Type Name
---- ------------------------- ---- -------------------------
0 Echo Reply 17 Address Mask Request
1 Unassigned 18 Address Mask Reply
2 Unassigned 19 Reserved (for Security)
3 Destination Unreachable 20-29 Reserved (for Robustness Experiment)
4 Source Quench 30 Traceroute
5 Redirect 31 Datagram Conversion Error
32 Mobile Host Redirect
6 Alternate Host Address
33 IPv6 Where-Are-You
7 Unassigned
34 IPv6 I-Am-Here
8 Echo 35 Mobile Registration Request
9 Router Advertisement 36 Mobile Registration Reply
10 Router Solicitation 37 Domain Name Request
11 Time Exceeded 38 Domain Name Reply
12 Parameter Problem 39 SKIP
13 Timestamp 40 Photuris
14 Timestamp Reply 41-255 Reserved
15 Information Request
16 Information Reply

http://www.iana.org/assignments/icmp-parameters 7
Format of an
ICMP Message
Code Field
Many of these ICMP types have a "code"
Type 3: Destination Unreachable field.
Here are the assigned code fields for Type 3
Codes
Destination Unreachable.
0 Net Unreachable
1 Host Unreachable Codes 2 and 3 are created only by the
2 Protocol Unreachable Destination Host, all others are created only
3 Port Unreachable
by routers.
4 Fragmentation Needed and Don't Fragment was Set
5 Source Route Failed
6 Destination Network Unknown
7 Destination Host Unknown
8 Source Host Isolated
9 Communication with Destination Network is Administratively Prohibited

10 Communication with Destination Host is Administratively Prohibited


11 Destination Network Unreachable for Type of Service
12 Destination Host Unreachable for Type of Service
13 Communication Administratively Prohibited
14 Host Precedence Violation
15 Precedence cutoff in effect
http://www.iana.org/assignments/icmp-parameters
8
ICMP Error Messages
Unreachable Destinations

 Network Unreachable
 Generated by router lacking any route to destination
 Host Unreachable
 Last hop router cannot contact destination
 Port Unreachable
 No process bound to port

10
Unreachable
networks

Network communication depends upon certain basic conditions being


met:
• Sending and receiving devices must have the TCP/IP protocol stack
properly configured.
 proper configuration of IP address and subnet mask.
 A default gateway must also be configured if datagrams are
supposed to travel outside the local network.
• A router must also have TCP/IP protocol properly configured on its
interfaces, and it must use an appropriate routing strategy.
If these conditions are not met, then network communication cannot take
place. 11
Unreachable
networks

Examples of problems:
 Sending device may address the datagram to a non-existent IP
address
 Destination device that is disconnected from its network.
 Router’s connecting interface is down
 Router does not have the information necessary to find the destination
network.

12
Destination unreachable
message
ICMP Destination Unreachable
Type = 3

 If datagrams cannot be forwarded to their destinations, ICMP delivers


back to the sender a destination unreachable message indicating the
sender that the datagram could not be properly forwarded.
 A destination unreachable message may also be sent when packet
fragmentation is required in order to forward a packet.
 Fragmentation is usually necessary when a datagram is forwarded

from a Token-Ring network(4500-18000) to an Ethernet network.


 If the datagram does not allow fragmentation, the packet cannot

be forwarded, so a destination unreachable message will be sent.


 More a little later on fragmentation and MTU Path Discovery!

 Destination unreachable messages may also be generated if IP related


services such as FTP or Web services are unavailable.

13
ICMP Echo (Request) and Echo
Reply

Echo Request = Type 8


Echo Reply = Type 0
Notice that the code is 0 for both
Ethernet Header IP Header ICMP Message Ether.
(Layer 2) (Layer 3) (Layer 3) Tr.
Ethernet Ethernet Frame Source IP Add. Type Code Check- ID Seq. Data FCS
Destination Source Type Dest. IP Add. 0 or 8 0 sum Num.
Address Address Protocol field
(MAC) (MAC)

• The echo request message is typically initiated using the ping


command .

14
Detecting excessively long
IP Header routes
0 15 16 31
4-bit 4-bit 8-bit Type Of
Version Header Service 16-bit Total Length (in bytes)
Length (TOS)
3-bit
16-bit Identification Flags 13-bit Fragment Offset

8 bit Time To Live 8-bit Protocol 16-bit Header Checksum


TTL

32-bit Source IP Address

32-bit Destination IP Address


ICMP Time Exceeded
Type = 11
Options (if any)

Data

• A TTL value is defined in each datagram (IP packet).


• As each router processes the datagram, it decreases the TTL value by
one.
• When the TTL of the datagram value reaches zero, the packet is
discarded.
• ICMP uses a time exceeded message to notify the source device that
the TTL of the datagram has been exceeded.
15
http://www.switch.ch/docs/ttl_default.html
TTL Overview - Disclaimer:
The following list is a best effort overview of some widely used TCP/IP stacks. The
information was provided by vendors and many helpful system administrators. We would like
to thank all these contributors for their precious help ! SWITCH cannot, however, take
any responsibility that the provided information is correct. Furthermore, SWITCH cannot
be made liable for any damage that may arise by the use of this information.

+--------------------+-------+---------+---------+
| OS Version |"safe" | tcp_ttl | udp_ttl |
+--------------------+-------+---------+---------+
AIX n 60 30 Assigned Numbers (RFC
DEC Pathworks V5 n 30 30
1700, J. Reynolds, J.
FreeBSD 2.1R y 64 64
HP/UX 9.0x n 30 30 Postel, October 1994):
HP/UX 10.01 y 64 64
Irix 5.3 y 60 60
IP TIME TO LIVE
Irix 6.x y 60 60 PARAMETER
Linux y 64 64
MacOS/MacTCP 2.0.x y 60 60
The current
OS/2 TCP/IP 3.0 y 64 64 recommended default
OSF/1 V3.2A n 60 30 time to live (TTL)
Solaris 2.x y 255 255 for the Internet
SunOS 4.1.3/4.1.4 y 60 60
Protocol (IP) is 64.
Ultrix V4.1/V4.2A n 60 30
VMS/Multinet y 64 64
VMS/TCPware y 60 64
VMS/Wollongong 1.1.1.1 n 128 30 Safe: TCP and UDP
VMS/UCX (latest rel.) y 128 128 initial TTL values
MS WfW n 32 32
MS Windows 95 n 32 32
should be set to a
MS Windows NT 3.51 n 32 32 "safe" value of at
MS Windows NT 4.0 y 128 128 least 60 today.
16
IP Parameter
Problem
ICMP Parameter Problem
Type = 12

• Devices that process datagrams may not be able to forward a


datagram due to some type of error in the header.
• This error does not relate to the state of the destination host or
network but still prevents the datagram from being processed and
delivered.
• An ICMP type 12 parameter problem message is sent to the source of
the datagram.

17
ICMP Control Messages
Introduction to ICMP Control
Messages
 Unlike error messages, control messages are not the
results of lost packets or error conditions which occur
during packet transmission.
 Instead, they are used to inform hosts of conditions such
as:
 Network congestion
 Existence of a better gateway to a remote network

19
ICMP Redirect 3

ICMP Redirect 2

Type = 5 Code = 0 to 3 1 2
4

 ICMP Redirect messages can only be sent by routers


 Host H sends a packet to Host 10.1.1.1 on network 10.0.0.0/8.
 Since Host H is not directly connected to the same network, it forwards
the packet to its default gateway, Router R1 at 172.16.1.100.
 Router R1 finds the correct route to network 10.0.0.0/8 by looking in its
route table.
 It determines that the path to the network is back out the same
interface the request to forward the packet came from to Router R2 at
172.16.1.200.
 R1 forwards the packet to R2 and sends an ICMP redirect/change
request to Host H telling it to use Router R2 at 172.16.1.200 as the
gateway to forward all future requests to network 10.0.0.0/8.
20
ICMP Redirects
ICMP Redirect
Type = 5 Code = 0 to 3

 Default gateways only send ICMP redirect/change request messages if


the following conditions are met:
 The interface on which the packet comes into the router is the

same interface on which the packet gets routed out.


 The subnet/network of the source IP address is the same

subnet/network of the next-hop IP address of the routed packet.


 The router is configured to send redirects. (By default, Cisco

routers send ICMP redirects. The interface subcommand no ip


redirects will disable ICMP redirects.)

21
Clock synchronization and transit
Replaced by
time estimation
ICMP Timestamp Request
Type = 13 or 14

 The TCP/IP protocol suite allows systems to connect to one another


over vast distance through multiple networks.
 Each of these individual networks provides clock synchronization in its
own way.
 As a result, hosts on different networks who are trying to
communicate using software that requires time
synchronization can sometimes encounter problems.
 The ICMP timestamp message type is designed to remove this problem.
 The ICMP timestamp request message allows a host to ask for the
current time on the remote host.
 The remote host uses an ICMP timestamp reply message to respond to
the request.

22
Clock synchronization and transit
time estimation
Replaced by

ICMP Timestamp
Type = 13 or 14

 All ICMP timestamp reply messages contain the originate, receive and
transmit timestamps.
 Using these three timestamps, the host can estimate transit time across
the network by subtracting the originate time from the transit time.
 It is only an estimate however, as true transit time can vary widely based
on traffic and congestion on the network.
 The host that originated the timestamp request can also estimate the
local time on the remote computer.
 While ICMP timestamp messages provide a simple way to estimate time
on a remote host and total network transit time, this is not the best way
to obtain this information.
 Instead, more robust protocols such as Network Time Protocol (NTP) at
the upper layers of the TCP/IP protocol stack perform clock
synchronization in a more reliable manner.
23
Information requests and reply
message formats
ICMP Information Request/Reply
Type = 15 or 16

Replaced by
 The ICMP information requests and reply
messages were originally intended to
allow a host to determine its network
parameters.
 This particular ICMP message type is
considered obsolete.
 Other protocols such as BOOTP and
Dynamic Host Configuration Protocol
(DHCP) are now used to allow hosts to
obtain their network numbers.
24
Address Masks
ICMP Address Mask Request/Reply
Type = 17 or 18

 This new subnet mask is crucial in


Replaced by
identifying network, subnet, and host bits in
an IP address.
 If a host does not know the subnet
mask, it may send an address mask request
to the local router.
 If the address of the router is known, this
request may be sent directly to the router.
 Otherwise, the request will be broadcast.
 When the router receives the request, it will
respond with an address mask reply.
 Somewhat obsolete, was used with diskless
workstations that used RARP for the IP
address and ICMP for the subnet mask.
25
Router Solicitation and
Advertisement
ICMP Router Solicitation
Type = 10
ICMP Router Advertisement
Type = 9 Replaced by
 When a host on the network boots, and the
host has not been manually configured with a
default gateway, it can learn of available
routers through the process of router discovery.
 This process begins with the host sending a
router solicitation message to all routers,
using the multicast address 224.0.0.2 as the
destination address. (May also be broadcast).
 When a router that supports the discovery
process receives the router discovery message,
a router advertisement is sent in return.
 Routers may also periodically advertise router
advertisement messages.
26
IRDP

 Some newer IP hosts use ICMP Router Discovery


Protocol (IRDP) (RFC 1256 ) to find a new router
when a route becomes unavailable.
 A host that runs IRDP listens for hello multicast
messages from its configured router and uses an
alternate router when it no longer receives those hello
messages.
 The default timer values of IRDP show that it's not
suitable for detection of failure of the first hop.
 The default advertisement rate is once every 7 to 10
minutes, and the default lifetime is 30 minutes.

27
ICMP source-
quench
messages
ICMP Source Quench
Type = 4
 Congestion can also occur for various reasons including when traffic from a
high speed LAN reaches a slower WAN connection.
 Dropping of packets occur when there is too much congestion on a
network.
 ICMP source-quench messages are used to reduce the amount of data lost.
 The source-quench message asks senders to reduce the rate at which they
are transmitting packets.
 In most cases, congestion will subside after a short period of time, and the
source will slowly increase the transmission rate as long as no other
source-quench messages are received.
 Most Cisco routers do not send source-quench messages by default ,
because the source-quench message may itself add to the network
congestion.

28
ICMP source-
quench
messages
ICMP Source Quench
Type = 4

 IP has no mechanism for flow control


 Some issues with ICMP Source Quench:
 A router or destination host (with buffers full) will send one source-

quench message for each discarded packet.


 No mechanism to tell the source that the congestion has been

relieved and source can resume sending at previous rate.


 Remember, TCP/IP uses TCP mechanisms for flow control and
reliability including sliding windows.

29
ICMP Path MTU Discovery
Path MTU
Discovery

Problem:
 How path MTU discovery (PMTU-D) combined with filtering ICMP
messages can result in connectivity problems.
 Path MTU discovery allows a node to dynamically discover and adjust
to differences in the MTU size of every link along a given data path.
 In IPv4, the minimum link MTU size is 68 octets and the recommended
minimum is 576 octets, which is the minimum reassembly buffer size.
 So, any IPv4 packet must be at least 68 octets in length.
 (In IPv6, the minimum link MTU is 1280 octets, but the recommended MTU value for
IPv6 links is 1500 octets. The maximum packet size supported by the basic IPv6 header
is 64,000 octets. Larger packets called jumbograms could be handled using a hop-by-hop
extension header option.)
31
Path MTU Discovery - Terms

 MTU: The maximum transmission unit is a link layer restriction on the


maximum number of bytes of data in a single transmission (ie. frame, cell,
packet, depending on the terminology).
 The table above shows some typical values for MTUs, taken from RFC-1191.

 Path MTU : The smallest MTU of any link on the current path between two
hosts.
 This may change over time since the route between two hosts, especially on

the Internet, may change over time.


 It is not necessarily symmetric and can even vary for different types of

traffic from the same host.


 To verify system’s MTU size

 netsh interface ipv4 show subinterfaces

32
Terms

 Fragmentation: When a packet is too large to be sent across a link as a single


unit, a router can fragment the packet.
 This means that it splits it into multiple parts which contain enough information
for the receiver to glue them together again.
 Note that this is not done on a hop-by-hop basis, but once fragmented a packet
will not be put back together until it reaches its destination.
 Fragmentation is undesirable for numerous reasons, including:
 If any one fragment from a packet is dropped, the entire packet needs to be

retransmitted. This is a very significant problem.


 It imposes extra processing load on the routers that have to split the

packets.
 In some configuration, simpler firewalls will block all fragments because

they don't contain the header information for a higher layer protocol (eg.
TCP) needed for filtering.
33
Terms
3 4

ICMP Destination Unreachable


Fragmentation needed, but DF Set

 DF (Don't Fragment) bit: This is a bit in the IP header that can be set to indicate
that the packet should not be fragmented by routers.
 If the packet needs to be fragmented, an ICMP "can't fragment" error is
returned sent to the sender and the packet is dropped.
 ICMP Can't Fragment Error:
 This error is a type 3 (destination unreachable), code 4 (fragmentation needed
but don't-fragment bit set)
 Returned by a router when it receives a packet that is too large for it to forward
and the DF bit is set.
 The packet is dropped and the ICMP error is sent back to the origin host.
 Normally, this tells the origin host that it needs to reduce the size of its packets
if it wants to get through.
 Recent systems also include the MTU of the next hop in the ICMP message so
the source knows how big its packets can be.
 Note that this error is only sent if the DF bit is set; otherwise, packets are just
fragmented and passed through.
34
Terms

 MSS: The MSS is the maximum segment size.


 It can be announced during the establishment of a TCP connection
to indicate to the other end that the largest amount of data in one
packet should be sent by the remote system.

35
Path MTU Discovery (PMTU-D)

 Now you know that Path MTUs vary.


 You know that fragmentation is bad.
 The solution?
 Well, one solution is Path MTU Discovery.
 The idea behind it is to send packets that are as large as
possible while still avoiding fragmentation.

36
PMTU-D

 A host does this by starting by sending packets that have a maximum


MTU size or size equal to the MSS announced by the remote system.
 These packets are sent with the DF bit set.
 If there is some MTU between the two hosts which is too small to pass
the packet successfully, then an ICMP can't fragment error will be sent
back to the source.
 It will then know to lower the size; if the ICMP message includes the
next hop MTU, it can pick the correct size for that link immediately,
otherwise it has to guess.

37
PMTU-D

 A good indication of if a system is trying to do PMTU-D is to watch the


packets it is sending with something like tcpdump or snoop and see if
they have the DF bit set; if so, it is most likely trying to do PMTU-D.
 Most Windows and Linux/Unix OS’s default to using PMTU-D.

38
The problem with ICMP filtering and
PMTU-D
 Many network administrators usually decide to filter ICMP at a router
or firewall.
 There are valid (and many invalid) reasons for doing this, however it
can cause problems.
 ICMP is an integral part of the Internet and can not be filtered without
due consideration for the effects.
 In this case, if the ICMP can't fragment errors can not get back to the
source host due to a filter, the host will never know that the packets it
is sending are too large.
 This means it will keep trying to send the same large packet, and it will
keep on dropping--silently dropped
 While a small handful of systems that implement PMTU-D also
implement a way to detect such situations, most don't and even for
those that do it has a negative impact on performance.

39
The Symptoms

 If this is happening, typical symptoms include the ability


for small packets (eg. request a very small web page) to
get through, but larger ones (eg. a large web page) will
simply hang.
 This situation can be confusing to the novice administrator
because they obviously have some connectivity to the
host, but it just stops working for no obvious reason on
certain transfers.
40
The Fix
 There is one solution, and several workarounds, for this problem.
 The Fix:

 Fix your filters!


 The real problem here is filtering ICMP messages without

understanding the consequences.


 Many packet filters will allow you to setup filters to only allow

certain types of ICMP messages through.


 If you reconfigure them to let ICMP can't fragment (type 3, code 4)

messages through, the problem should disappear.


 If the filter is somewhere between you and the other end, contact

the administrator of that machine and try to convince them to fix


the problem.

41
The End

Engr. Z. A. Solangi 42

You might also like