IP数据报的格式

article/2025/9/16 3:48:53

IP数据报的格式能够说明IP协议具有什么功能,在TCP/IP的标准中,各种数据格式常以32位(4字节)为单位来描述。

一个IP数据包有首部和数据两部分组成。首部的前一部分是固定长度,占20字节,是所有IP必须有的。在首部的固定后面是一些可选字段,其长度是可变的。

(1)版本:占4位,指IP协议的版本。双方通信的版本必须一致。目前使用的版本号是4,即IPv4.

(2)首部长度:占4位,可表示的十进制数是15(二进制:1111) 。首部长度的字段所表示数的单位是32位字(1个32位字长是4字节)。最小固定长度是20字节,因此首部最小长度十进制数是5,二进制数是0101;当首部长度为最大值1111(15)时,就表明首部长度最大值为15个32位字长,为60字节。当IP首部长度不是4字节的整数倍时,必须用填充部分填充。

(3)区分服务:占8位,用来获取更好的服务。在旧的标准中叫做服务类型。一般情况下不使用这个字段。

(4)总长度:总长度=首部长度+数据长度。单位为字节,总长度字段占16位,即2字节,因此数据报的最大长度是2^16-1=65535字节。但是在实际中极少遇到传输这么多的数据字节,因为在链路层中规定了一个数据帧中的数据字段的最大长度,称为最大传送单元MTU(Maximun Transfer Unit).IP数据报封装成链路层的帧时,数据包的总长度不能超过链路层的最大传送单元MTU.如果数据报的数据较大,就必须数据报进行分片处理。

(5)标识:占16位。IP软件在存储中维持一个计数器,每产生一个数据包,计数器加1,并将此赋值给标识字段。当数据包由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后在正确地重装成为原来的数据报。

(6)标志(flag):占3位,但是目前只有2位有意义。标志字段中最低位为MF(more fragment)。MF=1,表示还有分片的数据报。MF=0,表示是若干个数据报片中的最后一个。标志字段中的一位记为MF(Don't fragment),意思是不能分片。只有当DF=0时才可以分片。

(7)偏移片:占13位。偏移片指出:较长的分组在分片后,某片在原分组中对的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。偏移片以8个字节为偏移单位。这就是说,每个分片的长度一定是8(64位)的整数倍。

例如:一个数据报的总长度为3820字节,其数据部分为3800字节长,需要分片为长度不超过1420字节的数据报片。首部固定20字节,因此每个数据部分长度不能超过1400字节。于是分为3个数据报片。其数据部分长度分别为1400,1400,1000字节。原始数据报首部被复制为各个数据报片的首部,但必须修改有关字段。

数据报片的分段举例:

 IP首部中与分片有关字段中的值,其中标识字段任意给定12345,具有相同的标识在数据到达目的后就可以无误的重组。

 FM=1表示还有分片,DF=0表示可以再分片。

(8)生存时间:占8位,生存时间字段常用的英文缩写TTL(Time to Live),表明数据报片在网络中的寿命。

(9)协议:占8位,协议字段指出此数据报携带的数据是何种协议,以便使用目的主机的IP层知道应将数据部分上交给哪个协议进行处理:

(10)首部检验和:占16位。这个字段只是校验数据报的首部,不包括数据部分。

(11)源地址:占32位,Ip地址;

(12)目的地址:占32位,IP地址 ;

(13)可选字段:用来支持排错,测量以及安全等措施,内容丰富。长度从1到40字节不等。


http://chatgpt.dhexx.cn/article/I3GEoH5W.shtml

相关文章

图解IP数据报格式

IP数据报格式详解 IP数据报的首部格式及其内容是实现IP协议的主要功能的基础,因此我们有必要搞清楚这部分的内容。 一个IP数据报由20字节的固定部分和最大40字节的可变部分组成。 ■ 固定部分:指每个IP数据报首部都必须包含的部分。 ■ 可变部分&#…

计算机网络---IP数据报

(一)IP数据报格式 TCP/IP协议栈 IP数据报格式: 版本:IP协议的版本号 IPv4/IPv6 首部长度:单位是4B,最小为5,以4字节为单位 固定部分20B 区分服务:指示期望获得哪种类型的…

【IP协议(一)】——IP数据报格式及其含义,IP数据报的切分

💂 个人主页:努力学习的少年🤟 版权: 本文由【努力学习的少年】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 🚀 IP数据报格式 版本:占4位,指…

IP数据报的首部

IP数据报的首部 注:IP数据报的格式,能够说明IP协议都具有什么功能。 1. IP数据报首部——固定部分 1.1 版本 占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。IP协议版本号为4(即IPv4),IP协议版本号为6(即IPv6)…

计算机网络——IP数据报分析

目录 🛴一、IP数据报简介 🛹二、Wireshark抓包分析 🛴一、IP数据报简介 版本:占4比特,表示IP协议的版本。通信双发使用的IP版本必须一致 首部长度:占4比特,表示IP数据报首部的长度。该字段的取…

IP数据报格式详解

IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据。 IP…

网络层——IP数据报详解

IP数据报格式 各个字段的分析: 版本 4位    指IP协议的版本,通信双方使用的IP协议版本必须保持一致。主要用两个版本IPV4、IPV6首部长度 4位   4位表示的最大十进制数是15。注意,首部长度字段所表示数的单位是32位(也就是4个…

IP数据报

文章目录 前言一、IP数据报的格式1.IP数据报2.数据报中各个字段的意义 二、ICMP(Internet控制报文协议)1.报文格式2.常见应用 三、ARP协议四、路由表 前言 在前面的学习中我们学习了数据的封装和解封装,了解了封装是从发送端由上向下一层一层…

IPv4数据报的首部格式

版本:占4比特,表示IP协议的版本,通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4 首部长度占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。最小十进制取值为5,表示IP数据报首部只有…

EXE4J 错误提醒 Pleasedefine EXE4J_JAVA_HOME to point to an installes 64-bit JDK or JRE

EXE4J 错误提醒 Please define EXE4J_JAVA_HOME to point to an installed 64-bit JDK or JRE 首先查看上一步的提醒,这里显示支持的版本为最小1.8到最大11,而我环境变量配置为13,版本过高 解决办法 1、添加符合版本的jdk 2、升级exe4j …

首次使用exe4j遇见的问题

exe4j安装注册: https://www.cnblogs.com/jepson6669/p/9211208.html 问题一、安装exe4j 问题和解决方法描述: 大概是这个意思,安装这个exe4j需要jvm,你的电脑上要有jdk和jre,并且这个jdk版本必须是1.8~11之间的64…

exe4j下载和使用(超详细)

1、下载exe4j 链接: 点击下载 提取码: b3cy 1.1、安装步骤就不说了,按照提示一步一步进行即可 2、这里使用的jar包是maven项目打包出来的jar PS:注意 这里针对的是maven项目打包成的jar,如果是普通Java项目打包成的jar 请参考别的文章2.1…

exe4j 打包 jar 文件为 exe 文件(GUI程序)

exe4j 打包 jar 文件为 exe 文件(GUI程序) 1、资源分享2、把项目打包成 exe 文件2.1 把项目打包成 jar 包(用 fatjar 打包项目)(1) 把 net.sf.fjep.fatjar_0.0.32.jar 包放入 eclipse\plugins 目录下(2) 完成第一步后,…

exe4j打成的exe文件运行时弹窗this executable was created with an evaluation version of exe4j问题解决

其实这是因为没有激活造成的,激活码网上很多,这里给一个L-g782dn2d-1f1yqxx1rv1sqd 点击welcome页的右下角的License, Name和Company随便输,然后输入激活码确认就可以了

exe4j下载安装

exe4j下载安装 exe4j下载exe4j安装exe4j激活exe4j使用 exe4j下载 exe4j下载地址 1.点击exe4j下载地址 2.点击Setup Executable (55 MB) ZIP Archive (75 MB) 进行下载 exe4j安装 1.双击 exe4j_windows-x64_7_0.exe开始安装 2.点击运行按钮 3.点击Next按钮 4.选择 I ac…

exe4j打包问题解决方案

在我们想要打包java文件时候,由于编译版本与运行环境的问题困扰我们许久:java.lang.UnsupportedClassVersionError: Os/Os 已由 Java 运行时的更新版本(类文件版本 56.0)编译,此版本的 Java 运行时仅识别最高 52.0 的类…

exe4j中,报错:This executable was created with an evaluation version of exe4j

运行exe4j工具打包好的.exe文件,报错:This executable was created with an evaluation version of exe4j 由于是新下载安装的exe4j工具,没有进行注册!所以导致报这个错! 在使用exe4j时,如果exe4j没有注册…

SpringBoot 2.x 使用 exe4j 打包成 exe 可执行文件(附带启动传参)

1.下载安装exe4j 官网地址: exe4j Download 2.注册exe4j 启动exe4j后 点击右下角 Change License 填写用户名公司与注册码 ​​​​​​​ 注册码列表自行百度 3.准备打包文件 创建一个文件夹 文件夹内包含 整个jdk 项目jar包 ico图标 4.运行exe4j开始打包 步骤一 …

exe4j完成Java转exe 自带jre

当用户电脑上没有安装Java环境时,我(们)交付程序时,还需要提交一份jre exe4j支持选择自带的jre;但是好像不支持选择精简的jre,会导致生成的exe不能正常运行 知道怎样用精简jre转exe的朋友请留言…orz,我之前提到了怎…

exe4j打包工具使用

前言:用于将eclipse中的项目打包成.exe形式。 eclipse中的项目打包成jar形式:eclipse项目右键–>Export–>java–>Runnable JAR file–>Next→Export destination(选择jar包导出路径),Library handing(选择第三项 Copy…&#xf…