| Vers | Length | Service Type |
Packet Length | ||||
| Identification |
|
||||||
| TTL | Transport | Header Checksum | |||||
| Sending Address | |||||||
| Destination Address | |||||||
| Options | Padding | ||||||
| Presence(3 bits) | Delay | Throughput | Reliability | Not used |
| ICMP Header | ICMP Message |
| IP Header |
ICMP Datagram |
| Network Header | IP Datagram |
| Type (8 bits) | Code (8 bits) | Checksum (16 bits) |
| Parameters | ||
| Data | ||
Different types of messages generate different header layouts, e.g. a Source Quench, Time Exceeded message:
| Type | Code | Checksum |
| Unused | ||
| Original IP header + 64 bits | ||
| Version Number | Priority | Flow Label |
| Payload Length | Next Header | Hop Limit |
| Sending IP Address | ||
| Destination IP Address | ||