Section: icmp
Protocols
Family Number
IPV4 1

Endian: endian_big
Protocol description
Reference: RFC-792

(Internet) gateways communicate between themselves for control purposes via a Gateway to Gateway Protocol (GGP) [3,4]. Occasionally a gateway or destination host will communicate with a source host, for example, to report an error in datagram processing. For such purposes this protocol, the Internet Control Message Protocol (ICMP), is used. ICMP, uses the basic support of IP as if it were a higher level protocol, however, ICMP is actually an integral part of IP, and must be implemented by every IP module.

Hank's icmp support is fairly good. All the sections are supported, although some of them could be made a little more useful by better use of appropriate data types. Still, a pretty good protocol in terms of support.


Sections:
Name: Hdr
Name: Hdr
Field name Field type Field size Field description
type Integer 8 the value of this field determines the format of the remaining data
code Integer 8 context-dependent meaning
checksum Integer 16 The 16 bit one's complement of the one's complement sum of all 16 bit words in the header. For computing the checksum, the checksum field should be zero. This checksum may be replaced in the future.
payload Binary Large Object - (This field is a pointer to the subsidiary encapsulations. Its use is not recommended.)
Name: Unreachable
Name: Unreachable
Field name Field type Field size Field description
unused Integer 32 unused
Name: TTLexceeded
Name: TTLexceeded
Field name Field type Field size Field description
unused Integer 32 unused
Name: Parameter
Name: Parameter
Field name Field type Field size Field description
pointer Integer 8 octet where error was detected
unused Integer 32 unused
Name: SourceQuench
Name: SourceQuench
Field name Field type Field size Field description
unused Integer 32 unused
Name: Redirect
Name: Redirect
Field name Field type Field size Field description
gateway ipv4_addr - Address of the gateway to which traffic for the network specified in the internet destination network field of the original datagram's data should be sent.
Name: Echo
Name: Echo
Field name Field type Field size Field description
id Integer 16 If code = 0, an identifier to aid in matching echos and replies, may be zero.
sequence_number Integer 16 If code = 0, a sequence number to aid in matching echos and replies, may be zero.
payload Binary Large Object - (This) data received in the echo message must be returned in the echo reply message.
Name: Timestamp
Name: Timestamp
Field name Field type Field size Field description
id Integer 16 If code = 0, an identifier to aid in matching timestamp and replies, may be zero.
sequence_number Integer 16 If code = 0, a sequence number to aid in matching timestamp and replies, may be zero.
originate_ts Integer 32 The Originate Timestamp is the time the sender last touched the message before sending it.
receive_ts Integer 32 The Receive Timestamp is the time the echoer first touched it on receipt.
transmit_ts Integer 32 The Transmit Timestamp is the time the echoer last touched the message on sending it.
Name: Information
Name: Information
Field name Field type Field size Field description
id Integer 16 If code = 0, an identifier to aid in matching request and replies, may be zero.
sequence_number Integer 16 If code = 0, a sequence number to aid in matching request and replies, may be zero.

RCS ID: "$Id: icmp.xml,v 1.6 2001/12/04 05:47:11 tlewis Exp $"