• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » Networking » Routing » What is ICMP (Internet Control Message Protocol)?
Next →
← Prev

What is ICMP (Internet Control Message Protocol)?

By Dinesh Thakur

The Internet Control Message Protocol (ICMP) is an error reporting protocol that is an integral part of the IP protocol. ICMP communicate control data, information data, and error recovery data across the network. Problems that are less severe than transmission errors result in error conditions that can be reported. For example, suppose some of the physical paths in Internet fail causing the Internet to be partitioned into two sets of networks with no path between the sets. A datagram sent from a host in one set to a host in other cannot be delivered.

The TCP/IP suite includes a protocol called ICMP that IP uses to send error messages when condition such as the one described above arises. The protocol is required for a standard implementation of IP. We will see that the two protocols are co-dependent. IP uses ICMP when it sends an error message, and ICMP uses IP to transport messages.

Following is a brief description of some of the error messages defined by ICMP protocol:

  1. Source Quench A router or host whose receive communication buffers are nearly full normally triggers this message. A source quench message is sent to the sending host, the receiver is simply requesting the sending host to reduce the rate at which it is transmitting until advised otherwise.
  1. Time Exceeded A time-exceeded message is sent in two cases. Whenever a router reduces the TIL field in a data gram to zero. The router discards the datagram and sends a time exceeded message. In addition, a time exceeded message is sent by a host if the reassembly timer expires before all fragments from a given datagram arrive,
  1. Route Redirect A router sends this message to a host that is requesting its routing services. When a host creates a datagram destined for a network, the host sends the datagram to a router, which forwards the datagram to its destination. If a router determines that a host has incorrectly sent a datagram that should be sent to a different router, the router uses route redirect message to cause the host to change its route. In this manner, a route redirect message improves the efficiency of the routing process by informing the req4esting host of a shorter path to the desired destination.
  1. Host Unreachable Whenever a gateway or a router determines that a datagram cannot be delivered to its final destination (due to link failure or bandwidth congestion), an ICMP host unreachable message is sent to the originating node on the network. Normally, the message includes the reason the host cannot be reached.
  1. Fragmentation and Reassembly The largest datagram the IP protocol can handle is 64 Kbytes. The maximum datagram size is dictated by the width of the total length field in the IP header. Realistically, most underlying data link technologies cannot accommodate this data size. For example, the maximum size of the data frame supported by Ethernet is 1,514 bytes. Unless something is done about situations like this, IP has to discard data that is delivered to it from upper layer protocols with sizes exceeding the maximum tolerable size by the data link layer. To circumvent this difficulty, IP is built to provide data fragmentation and reassembly.

Whenever an upper-layer protocol delivers data segments whose sizes exceed the limit allowed by the underlying network, IP breaks the data into smaller pieces that are manageable within the allowed limit. The small data grams are then sent to the target host, which reassembles them for subsequent delivery to an upper-layer protocol.

Although all data fragments are normally delivered using the same route, in some situations a few of them might traverse alternative routes. Fragments following different routes, however, stand the chance of reaching their-destination out of the order in which they were sent. To allow for recovery from such behaviour, IP employs the fragmentation-offset field in its header. The fragmentation-offset field includes sequencing information that the remote IP host uses to recover the sequence in which the data grams were sent. IP also uses the information in the fragmentation offset field to detect missing fragments~ Data is not passed to the protocol described in the protocol field unless all related fragments are duly received and reordered. This process of fragment recovery and re-sequencing is called data reassembly.

Fragments belonging to two or more independent large data can be differentiated by IP using identification field. Fragments belonging to the same datagram are uniquely assigned in the identification field. The receiving 110stuses this number to recover the IP fragments to their respective data grams.

A host that creates a datagram can set a bit in the flag field to specify the fragmentation. Among other bits, the flag field includes a more fragments bit, which is set to I in all fragments belonging to a datagram except for the final fragment. This ensures about the receiving of all fragments of a datagram.

  1. Echo request/Echo reply – These two ICMP messages are exchanged between ICMP software on any two hosts in a bid to check connectivity between them. The ping command is an example of a diagnostic command commonly used by network users to check for the reach ability of a certain host. Whenever ping is invoked at the command line, ICMP echo request message is sent to the target host. If the target host is operational and connected to the network, it responds with an echo reply message as proof of reach ability. In other words, the reply carries the same data as the request.
  1. Address Mask Request/Reply A host broadcasts an address mask request when it boots, and routers that receive the request send an address mask reply that contains the correct 2-bit subnet mask being used on the network.

We’ll be covering the following topics in this tutorial:

  • ICMP Message Transport
  • The Transport or Host-to-Host layer

ICMP Message Transport

ICMP uses IP to transport each error message. When a router has an ICMP message to send, it creates datagram and encapsulates the ICMP message in the datagram. It means that the ICMP message placed in the data area of the IP data gram. The· datagram is forwarded as usual with the complete data gram being encapsulated in a frame for transmission.ICMP Datagram Transmission

 Passing Data to Other Protocols

Passing Data to Other Protocol

As we know from the previous section that all TCP/IP protocols send their data in IP datagrams. Illustrates how data is exchanged across protocol boundaries. A protocol field that is included in IP header assists IP in passing data to other protocols. By TCP/IP standards, each protocol that uses IP routing services is assigned a protocol identification number. Setting the protocol field to 6, for example, designates the data as belonging to the TCP protocol, whereas it designates the ICMP protocol. A protocol number of 0 designates the IP protocol, in which case encapsulated data is processed by IP itself.

The Transport or Host-to-Host layer

The host-to-host layer, also known as the Transport layer, corresponds to the transport layer of the OSI model. Protocols defined at this layer accept data from application protocols running at the application layer. Protocols encapsulate it in the protocol header, and deliver the data segment thus formed to the lower IP layer for subsequent routing. Unlike the IP protocol, however, the transport layer is aware of the identity of the final user representative process. As such, the transport layer, in the TCP/IP suite, embodies what data communications are all about the delivery of information from an application on one computer to an application on another computer.  

At the transport layer, TCP/IP defines two transport protocols namely User Datagram Protocol (UDP) and Transmission Control Protocol (TCP). Applications can use one protocol or the other depending on the type of service they desire. To associate data with applications, TCP and UDP include Source and destination port number fields in their headers. These fields are used in much the same way as IP uses the protocol field for, the internal routing of data to applications utilizing their services.

Application process and protocols

You’ll also like:

  1. IMAP4 (Internet message access protocol)
  2. What is Transmission Control Protocol/Internet Protocol (TCP/IP)?
  3. What is Serial Line Internet Protocol (SLIP)?
  4. (IP) Internet Protocol – What is Internet Protocol (IP)?
  5. IGMP – What is Internet Group Management Protocol (IGMP)?
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

Networking

Networking Tutorials

  • Network - Home
  • Network - Uses
  • Network - Advantages
  • Network - Classification
  • Network - Architecture Type
  • Nework - Networks Vs Comms

Networking Devices

  • Network - Modem
  • Network - Routers Types
  • Network - Bluetooth
  • Network - RS-232C
  • Network - Hub
  • Network - Devices
  • Network - Bridges
  • Network - Repeaters
  • Network - Routers
  • Network - Switching Hubs
  • Network - Transceiver
  • Network - Multiplexer
  • Network - Gateway
  • Network - BNC Connector
  • Network - Optical Connectors
  • Network - NICs
  • Networking Protocol

  • Protocol - Definition
  • Protocol - IP
  • Protocol - Aloha
  • Protocol - MAC Layer
  • Protocol - Sliding Window
  • Protocol - Stop & Wait
  • Protocol - Network Protocols
  • Protocol - Token Passing
  • Protocol - SIP
  • Protocol - Ad-Hoc Networks Routing
  • Protocol - Lap-f
  • Protocol - Point-to-Point
  • Protocol - PPP
  • Protocol - PPP Phases
  • Protocol - LDP
  • Protocol - MPLS
  • Protocol - MPOA
  • Protocol - HDLC
  • Protocol - Distance Vector routing
  • Protocol - IGMP
  • Protocol - ICMP
  • Protocol - SLIP
  • Protocol - DVMRP
  • Protocol - SDLC
  • Protocol - Routing
  • Protocol - UDP
  • Protocol - ARP and RARP
  • Protocol - Link-State
  • Protocol - ARP Table
  • Protocol - RTP
  • Protocol - NHRP
  • Network Addressing

  • Addressing - Home
  • Addressing - SubNetting
  • Addressing - Classless
  • Addressing - Classes or Classful
  • Addressing - IPV4 vs IPV6
  • Addressing - IPv6
  • Addressing - Subnet Mask
  • Addressing - MAC Address
  • Addressing - Supernetting
  • Addressing - Private IP
  • Addressing - IPv4
  • Addressing - Public IP
  • Addressing - Multihomed
  • Addressing - Indirect Addressing
  • Addressing - ASP
  • Addressing - VLSM
  • Addressing - Routing Algorithms
  • Addressing - Hierarchical Routing
  • Addressing - Routing
  • Addressing - Distributed Routing
  • Addressing - Data Routing
  • Addressing - Services
  • Addressing - IP forwarding
  • Addressing - Aging
  • Addressing - Algorithm CR
  • Networking Media

  • Transmission - Home
  • Transmission - Modes
  • Transmission - Media
  • Transmission - System
  • Transmission - Bound
  • Transmission - Unbound
  • Transmission - Baseband
  • Transmission - Wired
  • Transmission - Fiber Benfits
  • Transmission - Infrared
  • Transmission - UnGuided
  • Transmission - Microwave
  • Transmission - Infrared
  • Transmission - Radio Wave
  • Transmission - Network
  • Transmission - Digital Signal
  • Transmission - Data
  • Transmission - Asynchronous
  • Transmission - Sync Vs Async
  • Cable - Twisted-Pair
  • Cable - Coaxial
  • Cable - UTP and STP
  • Cable - Fiber Optics
  • Cable - Gigabit Ethernet
  • Cable - Fast Ethernet
  • Cable - Ethernet Cable
  • Cable - Fiber-Optic Using
  • Cable - CATV
  • Cable - 100Base T
  • Cable - 10BASE T
  • Cable - 10 Base 2
  • Cable - 10 Base 5
  • Networking Types

  • IEEE - 802.11
  • IEEE - 802.5
  • IEEE - 802.15
  • IEEE - 802.11e
  • IEEE - 802.11n
  • Network - Ethernet
  • Network - Arpanet
  • Network - Frame Relay
  • Network - X.25
  • Network - Telephone
  • Network - WSN
  • Network - Metro Ethernet
  • Network - WAN Ethernet
  • Network - Wireless Mesh
  • Network - SAN
  • Network - SNA
  • Network - Cisco Architecture
  • Network - Vlan
  • Network - FDDI
  • Network - 100VG-Any
  • Network - EPON
  • Network - ISDN
  • Network - ARCNet
  • Network - Passive Optical
  • Networking Reference Models

  • Models - TCP/IP
  • Models - OSI
  • Models - MAC Layer
  • Models - Network Layer
  • Models - MAC Layer Functions
  • Models - TCP/IP Vs OSI
  • Models - CSMA
  • Models - CSMA/CD
  • Models - CSMA/CA
  • Models - CDMA
  • Models - STDM
  • Models - FDMA
  • Models - TDMA
  • Models - SDH
  • Models - CDM
  • Models - Multiplexing
  • Models - Reference
  • Models - Random Access Methods
  • Models - TCP/IP Architecture
  • Models - FDM
  • Models - IP Header
  • Models - OTN
  • Models - Amplitude Levels
  • Models - MIMO
  • Models - Plesiochronous Media
  • Models - Half Duplex
  • Models - ISO Architecture
  • Models - Data-Link Layer
  • Models - WDM
  • Models - Duplex
  • Models - Ethernet FDSE
  • Networking Switching Techniques

  • Switching - Home
  • Switching - Techniques
  • Switching - Packet
  • Switching - Circuit
  • Switching - Message
  • Switching - Packet Vs virtual Circuit
  • Switching - Cell
  • Switching - ATM Cell Structure
  • Switching - Virtual Circuit Vs Datagram
  • Switching - Time Space
  • Switching - Modulation
  • Switching - Cell Relay
  • Switching - ATM Structure
  • Switching - VC Vs PVC
  • Switching - Packet and Circuit
  • Switching - VPC
  • Switching - IP
  • Switching - Logical Channels
  • Switching - TDM
  • Switching - FDM
  • Network Codes

  • Codes - CRC
  • Codes - Error Correction and Detection
  • Codes - Hamming
  • Codes - Piggybacking
  • Codes - Encoding Techniques
  • Codes - Error Control
  • Codes - Parity Check
  • Codes - Parity bit
  • Codes - Bit Error
  • Codes - CRC
  • Codes - Transmission Errors
  • Codes - Error Detection and Correction
  • Network Communication

  • Communication - Home
  • Communication - Satellite
  • Communication - Wireless
  • Communication - Data Type
  • Communication - Congestion Control
  • Communication - Network
  • Communication - Data
  • Communication - Software
  • Communication - Layering Process
  • Networking Signaling

  • Signal - Analog
  • Signal - Digital
  • Signal - Analog Vs Digital
  • Signal - Digitization
  • Network Security

  • Security - Home
  • Security - Requirements
  • Security - Threats
  • Security - Services

Other Links

  • Networking - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW