首页 运维 linux运维 IP数据报长啥样——分析IP数据报格式

IP数据报长啥样——分析IP数据报格式

Dec 12, 2020 pm 02:24 PM
1

通过IP数据报的格式,我们能够更清楚的知道IP协议的作用。IPv4的数据报一般以32位为单位来描述,下面的图是一个IP数据报格式图:

我们建议学习IP数据报格式时,可以使用抓包工具(如wireshark),抓取一些IP数据报,认真观察对比。

现在,我们来看IP数据报首部各个字段的作用:

(1)版本:占4位,指IP协议的版本。

(2)首部长度:占4位,指首部长度(不含数据部分),单位为4字节。因为首部固定部分为20字节,所以该字段值最小为5(0101)

(3)区分服务:占8位,目前没啥用途。

(4)总长度:占16位,首部长度数据部分长度,单位为字节。那么理论上,一个IPv4的数据报长度最大为2的16次方减1字节,及65535字节。但数据报最大长度是受MTU(最大传输单元)控制的,一个数据报的长度不可以超过MTU设定值。这个设定值一般设置为1500。因为过长的数据报,路由器的转发速度就会变慢,但如果数据报太小,那么转发效率就会上不去。当一个数据报长度超过MTU的时候,就需要将一个长的数据报拆分成几个数据报分片。

(5)标识:占16位,系统中有一个计数器,每当产生一个数据报,这个计数器就自增1,标识字段的值就是这个自增的数字。通过这个标识值,以及后面会说到的标志字段和偏移量,就可以将分片重装为原来的数据报。

(6)标志:占3位,但目前就只有后两位有意义:

  • 中间位,Don't fragment:不能分片。只有该位为0时,才允许分片

  • 最后一位,More fragments:还有分片。若该值为0表示已经是最后一个分片了,否则表示后面还有分片。

(7)偏移量:占13位。它表示某分片的在原始分组的数据部分的相对位置。单位为8字节。

(8)跳数限制:占8位,它是为了防止一个数据报在网络中无限制的传播。这个字段的值表示该数据报最多能经过多少个路由器,当经过一个路由器时,该值就减1,等到该值为0时数据报还未交付成功,那么路由器就丢弃此数据报。

(9)协议:表示此数据报携带的数据使用哪种协议,常用的协议有:

  • ICMP:值为0

  • IP:值为4

  • TCP:值为6

  • UDP:值为17

(10)首部校验和:占16位,这个字段只校验数据报的首部,但不包括数据部分。通过该字段可以计算该数据报是否出些差错。

(11)源地址:占32位。

(12)目的地址:占32位。

(13)可选部分:几乎用不到。

以上是IP数据报长啥样——分析IP数据报格式的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在Linux中使用正则表达式(REGEX)进行模式匹配? 如何在Linux中使用正则表达式(REGEX)进行模式匹配? Mar 17, 2025 pm 05:25 PM

本文介绍了如何在Linux中使用正则表达式(REGEX)进行模式匹配,文件搜索和文本操作,详细列式,命令和工具,例如GREP,SED和AWK。

如何使用TOP,HTOP和VMSTAT等工具来监视Linux中的系统性能? 如何使用TOP,HTOP和VMSTAT等工具来监视Linux中的系统性能? Mar 17, 2025 pm 05:28 PM

本文讨论了使用TOP,HTOP和VMSTAT监视Linux系统性能,并详细介绍其独特功能和自定义选项,以进行有效的系统管理。

如何在Linux中实现SSH的两因素身份验证(2FA)? 如何在Linux中实现SSH的两因素身份验证(2FA)? Mar 17, 2025 pm 05:31 PM

本文提供了有关使用Google Authenticator在Linux上设置两因素身份验证(2FA)的指南,详细介绍了安装,配置和故障排除步骤。它突出了2FA的安全益处,例如增强的SEC

如何使用软件包管理器(APT,YUM,DNF)管理Linux中的软件包? 如何使用软件包管理器(APT,YUM,DNF)管理Linux中的软件包? Mar 17, 2025 pm 05:26 PM

文章讨论了使用APT,YUM和DNF在Linux中管理软件包,涵盖安装,更新和删除。它比较了它们对不同分布的功能和适用性。

如何使用sudo向Linux的用户授予高架特权? 如何使用sudo向Linux的用户授予高架特权? Mar 17, 2025 pm 05:32 PM

本文解释了如何管理Linux中的Sudo特权,包括授予,撤销和安全性最佳实践。关键重点是安全和sudoers安全和限制访问。Character数量:159

关键Linux操作:初学者指南 关键Linux操作:初学者指南 Apr 09, 2025 pm 04:09 PM

Linux初学者应掌握文件管理、用户管理和网络配置等基本操作。1)文件管理:使用mkdir、touch、ls、rm、mv、cp命令。2)用户管理:使用useradd、passwd、userdel、usermod命令。3)网络配置:使用ifconfig、echo、ufw命令。这些操作是Linux系统管理的基础,熟练掌握它们可以有效管理系统。

如何解读Debian Sniffer的输出结果 如何解读Debian Sniffer的输出结果 Apr 12, 2025 pm 11:00 PM

DebianSniffer是一个网络嗅探工具,用于捕获和分析网络数据包时间戳(Timestamp):显示数据包捕获的时间,通常以秒为单位。源IP地址(SourceIP):发送数据包的设备的网络地址。目标IP地址(DestinationIP):接收数据包的设备的网络地址。源端口(SourcePort):发送数据包的设备使用的端口号。目标端口(Destinatio

如何检查Debian OpenSSL配置 如何检查Debian OpenSSL配置 Apr 12, 2025 pm 11:57 PM

本文介绍几种检查Debian系统OpenSSL配置的方法,助您快速掌握系统安全状态。一、确认OpenSSL版本首先,验证OpenSSL是否已安装及版本信息。在终端输入以下命令:opensslversion若未安装,系统将提示错误。二、查看配置文件OpenSSL主配置文件通常位于/etc/ssl/openssl.cnf。您可以使用文本编辑器(例如nano)查看:sudonano/etc/ssl/openssl.cnf此文件包含密钥、证书路径及加密算法等重要配置信息。三、利用ope

See all articles