Home Operation and Maintenance Linux Operation and Maintenance What does an IP datagram look like - Analysis of IP datagram format

What does an IP datagram look like - Analysis of IP datagram format

Dec 12, 2020 pm 02:24 PM
1

Through the format of IP datagram, we can know the role of IP protocol more clearly. IPv4 datagrams are generally described in 32-bit units. The following figure is an IP datagram format diagram:

We recommend that when learning the IP datagram format, you can use packet capture tools (such as wireshark) to capture Take some IP datagrams and carefully observe and compare them.

Now, let’s look at the role of each field in the IP datagram header:

(1) Version: occupies 4 bits and refers to the version of the IP protocol.

(2)Header length: occupies 4 bits, refers to the header length (excluding data part), the unit is 4 bytes. Because the fixed part of the header is 20 bytes, the minimum value of this field is 5 (0101)

(3) Differentiated Services: occupies 8 bits and is currently of no use.

(4)Total length: 16 bits, the length of the header length data part, in bytes. In theory, the maximum length of an IPv4 datagram is 2 to the 16th power minus 1 byte, and 65535 bytes. However, the maximum length of a datagram is controlled by the MTU (Maximum Transmission Unit), and the length of a datagram cannot exceed the MTU setting value. This setting value is generally set to 1500. Because the datagram is too long, the forwarding speed of the router will slow down, but if the datagram is too small, the forwarding efficiency will not increase. When the length of a datagram exceeds the MTU, a long datagram needs to be split into several datagram fragments.

(5)Identification: occupies 16 bits. There is a counter in the system. Whenever a datagram is generated, this counter will increase by 1. The value of the identification field is this increment. number. Through this identification value, as well as the flag field and offset mentioned later, the fragment can be reassembled into the original datagram.

(6)Flag: occupies 3 positions, but currently only the last two are meaningful:

  • Middle position, Don't fragment : Cannot be fragmented. Only when this bit is 0, fragmentation is allowed

  • The last bit, More fragments: There are fragments. If the value is 0, it means that it is the last fragment, otherwise it means that there are still fragments later.

(7)Offset: occupies 13 bits. It represents the relative position of a fragment within the data portion of the original packet. The unit is 8 bytes.

(8)Hop count limit: occupies 8 bits. It is to prevent a datagram from spreading unrestrictedly in the network. The value of this field indicates the maximum number of routers that the datagram can pass through. When it passes through a router, the value is decremented by 1. When the value reaches 0, the datagram has not been successfully delivered, and the router discards the datagram.

(9)Protocol: Indicates which protocol is used for the data carried by this datagram. Commonly used protocols are:

  • ICMP: The value is 0

  • IP: The value is 4

  • TCP: The value is 6

  • UDP: The value It is 17

##(10)

Header checksum: occupies 16 bits. This field only checks the header of the datagram, but does not include the data part. This field can be used to calculate whether there are any errors in the datagram.

(11)

Source address: 32 bits.

(12)

Destination address: 32 bits.

(13)

Optional part: Hardly used.

The above is the detailed content of What does an IP datagram look like - Analysis of IP datagram format. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How do I use regular expressions (regex) in Linux for pattern matching? How do I use regular expressions (regex) in Linux for pattern matching? Mar 17, 2025 pm 05:25 PM

The article explains how to use regular expressions (regex) in Linux for pattern matching, file searching, and text manipulation, detailing syntax, commands, and tools like grep, sed, and awk.

How do I implement two-factor authentication (2FA) for SSH in Linux? How do I implement two-factor authentication (2FA) for SSH in Linux? Mar 17, 2025 pm 05:31 PM

The article provides a guide on setting up two-factor authentication (2FA) for SSH on Linux using Google Authenticator, detailing installation, configuration, and troubleshooting steps. It highlights the security benefits of 2FA, such as enhanced sec

How do I monitor system performance in Linux using tools like top, htop, and vmstat? How do I monitor system performance in Linux using tools like top, htop, and vmstat? Mar 17, 2025 pm 05:28 PM

The article discusses using top, htop, and vmstat for monitoring Linux system performance, detailing their unique features and customization options for effective system management.

How do I configure SELinux or AppArmor to enhance security in Linux? How do I configure SELinux or AppArmor to enhance security in Linux? Mar 12, 2025 pm 06:59 PM

This article compares SELinux and AppArmor, Linux kernel security modules providing mandatory access control. It details their configuration, highlighting the differences in approach (policy-based vs. profile-based) and potential performance impacts

How do I back up and restore a Linux system? How do I back up and restore a Linux system? Mar 12, 2025 pm 07:01 PM

This article details Linux system backup and restoration methods. It compares full system image backups with incremental backups, discusses optimal backup strategies (regularity, multiple locations, versioning, testing, security, rotation), and da

How do I use sudo to grant elevated privileges to users in Linux? How do I use sudo to grant elevated privileges to users in Linux? Mar 17, 2025 pm 05:32 PM

The article explains how to manage sudo privileges in Linux, including granting, revoking, and best practices for security. Key focus is on editing /etc/sudoers safely and limiting access.Character count: 159

How do I set up a firewall in Linux using firewalld or iptables? How do I set up a firewall in Linux using firewalld or iptables? Mar 12, 2025 pm 06:58 PM

This article compares Linux firewall configuration using firewalld and iptables. Firewalld offers a user-friendly interface for managing zones and services, while iptables provides low-level control via command-line manipulation of the netfilter fra

How do I manage software packages in Linux using package managers (apt, yum, dnf)? How do I manage software packages in Linux using package managers (apt, yum, dnf)? Mar 17, 2025 pm 05:26 PM

Article discusses managing software packages in Linux using apt, yum, and dnf, covering installation, updates, and removals. It compares their functionalities and suitability for different distributions.

See all articles