ICMPv4 In-Depth Notes Textbook

Internet Control Message Protocol Version 4 (ICMPv4)

Objectives

  • Discuss the rationale for the existence of ICMP.

  • Explain the categories of ICMP messages: error-reporting and query messages.

  • Describe the purpose and format of error-reporting messages.

  • Describe the purpose and format of query messages.

  • Explain how the checksum for ICMP messages is calculated.

  • Discuss debugging tools that utilize the ICMP protocol.

  • Outline the organization of a simple software package implementing ICMP.

9.1 Introduction

  • The IP protocol lacks an error-reporting or error-correcting mechanism.

  • Situations where errors occur, such as when a router discards a datagram due to:

    • An unknown final destination.

    • Time-to-live (TTL) value reaching zero.

  • ICMP provides a method for notifying the original host about such errors.

Topics Discussed in This Section

  • Position of ICMP in the TCP/IP suite.

  • Encapsulation of ICMP packets.

9.2 Messages

  • Categories of ICMP Messages:

    • Error-reporting Messages: Report problems encountered by routers or hosts processing IP packets.

    • Query Messages: Facilitate communication between hosts and routers, allowing for information retrieval and network discovery.

Message Format
  • General structure of ICMP messages:

    • 8 bits for Type

    • 8 bits for Code

    • 8 bits for Checksum

    • Additional header and data sections as necessary.

Types of ICMP Messages
  • Error Reporting Messages:

    • Type 3: Destination Unreachable

    • Type 4: Source Quench

    • Type 11: Time Exceeded

    • Type 12: Parameter Problem

  • Query Messages:

    • Type 8: Echo Request

    • Type 0: Echo Reply

    • Type 13: Timestamp Request

    • Type 14: Timestamp Reply

ICMP Error Reporting Details
  • Destination Unreachable:

    • Sent when a router or host cannot forward a packet.

    • Messages are reported back to the original source.

  • Source Quench:

    • Indicates a datagram was discarded due to congestion, instructing the source to slow down transmission.

  • Time Exceeded:

    • Sent when a datagram's TTL reaches zero or when fragments aren't received in a timely manner.

  • Parameter Problem:

    • Indicates issues with IP header parameters, generated by routers or the destination host.

  • Redirection:

    • Helps hosts use the correct routers when multiple options are available.

9.3 Debugging Tools

  • Ping: Tests if a server is alive by sending echo requests.

    • Results indicate the number of packets sent and received, and round-trip time.

  • Traceroute: Maps the pathway of packets to a destination, gathering response time from each hop.

9.4 ICMP Package

  • ICMP operates through two main modules:

    • Input Module: Receives ICMP messages and processes them, creating replies or modifying routing tables as needed.

    • Output Module: Prepares ICMP messages for sending out, deciding on whether to create error messages, requests, or responses.

Example of Checksum Calculation
  • Checksum calculated by summing 16-bit words in the message, then complemented for transmission.

    • Example with arbitrary identifier and sequence number provided in technical discussions.

This detailed overview goes into the workings of ICMP, how messages are structured, their types, purposes, and how they facilitate network communication and debugging. Understanding this will be critical for mastering TCP/IP networking concepts.