<commit_before>---
title: ICMP Header
---
## ICMP Header Format

Below is the Internet Control Message Protocol (ICMP) header format for IPv4 according to [RFC792](https://tools.ietf.org/html/rfc792):

![ICMP Header](https://i.imgur.com/W3amiIr.png)

ICMP for IPv4 is encapsulated within an IPv4 packet and contains a data section that includes a copy of the entire IPv4 header along with at least the first 64 bits (8 bytes) of the original datagram's data.  The additional 8 bytes of data is used by the receiving host to match the message to an internal process.  IP-in-IP tunneling (encapsulating an IP packet within another IP header), adds additional bytes in the form of the added IPv4 header(s) and may require additional bytes are included in the data portion of the ICMP packet to allow the host to identify the associated process [[RFC1812](https://tools.ietf.org/html/rfc1812#section-4.3.2.3)].

ICMP packets for IPv4 may not exceed 576 bytes in length, including headers.

##### Type [8-bits]
  * Type field refers to the type of ICMP message<commit_msg>Added "NAT" to the article (#32977)<commit_after>---
title: ICMP Header
---
## ICMP Header Format

Below is the Internet Control Message Protocol (ICMP) header format for IPv4 according to [RFC792](https://tools.ietf.org/html/rfc792):

![ICMP Header](https://i.imgur.com/W3amiIr.png)

ICMP for IPv4 is encapsulated within an IPv4 packet and contains a data section that includes a copy of the entire IPv4 header along with at least the first 64 bits (8 bytes) of the original datagram's data.  The additional 8 bytes of data is used by the receiving host to match the message to an internal process.  IP-in-IP tunneling (encapsulating an IP packet within another IP header), adds additional bytes in the form of the added IPv4 header(s) and may require additional bytes are included in the data portion of the ICMP packet to allow the host to identify the associated process [[RFC1812](https://tools.ietf.org/html/rfc1812#section-4.3.2.3)].

ICMP packets for IPv4 may not exceed 576 bytes in length, including headers.

##### Network Address Translation [NAT]
* During traffic flow, packets are sent out in order to remap an IP address to modify to another address. This process only works with IPv4. Lastly, this is process ensures that IPv4 addresses will not run out by IP modification on a normal basis. 

##### Type [8-bits]
  * Type field refers to the type of ICMP message
{'fraction_non_alphanumeric': 0.07277187244480784, 'fraction_numerical': 0.029844644317252658, 'mean_word_length': 4.331154684095861, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6884775', 'n_tokens_mistral': 716, 'n_tokens_neox': 648, 'n_words': 356}