IP 协议报文格式 【IPv4】

article/2025/10/3 17:37:57

前言: IP 数据报文由首部(称为报头)和数据两部分组成;首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的;在首部的固定部分的后面是一些可选字段,其长度是可变的

每个 IP 数据报都以一个 IP 报头开始;源计算机构造这个 IP 报头,而目的计算机利用 IP 报头中封装的信息处理数据;IP 报头中包含大量的信息,如源 IP 地址、目的 IP 地址、数据报长度、IP 版本号等;每个信息都被称为一个字段

IP 协议报文格式

    • 版本号
    • 首部长度
    • 区分服务 TOS
    • 总长度
    • 标识 id
    • 标志 flag
    • 片偏移
    • 生存时间 TTL
    • 协议
    • 头部校验和
    • 源地址
    • 目的地址
    • 可选字段
    • 填充
    • 数据部分

如图所示:

在这里插入图片描述

版本号

占 4 位
指定 IP 协议的版本;通信双方使用的 IP 协议版本必须一致;目前使用最广泛的IP协议版本号为 4,即 IPv4

首部长度

占 4 位
可表示的最大十进制数值是 15,IP 首部长度的单位是 32 位字长 (1 个 32 位字长是 4 字节,也就是 length * 4 的字节数,4bit 表示最大的数字是15),因此,当 IP 的首部长度为 1111 时 (即十进制的 15),首部长度就达到最大长度 60 字节,当 IP 分组的首部长度不是 4 字节的整数倍时,必须利用最后的填充字段加以填充

数据部分永远在 4 字节的整数倍开始,这样在实现 IP 协议时比较方便;首部长度限制为 60 字节的缺点是 长度有时可能不够用,之所以限制长度为 60 字节,是希望用户尽量减少开销;最常用的首部长度就是 20 字节 (即首部长度为 0101),这时不使用任何选项

区分服务 TOS

也被称为服务类型,占 8 位;
3位优先权字段 (已经弃用),4位TOS字段,和1位保留字段(必须置为0);4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本;这四者相互冲突,只能选择一个;对于 ssh / telnet 这样的应用程序,最小延时比较重要;对于 ftp 这样的程序,最大吞吐量比较重要

总长度

首部和数据之和,单位为字节;总长度字段为 16 位
因此数据报的最大长度为 216-1=65535 字节

标识 id

用来标识数据报,占 16 位;
IP 协议在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段;当数据报的长度超过网络的 MTU,而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中;具有相同的标识字段值的分片报文会被重组成原来的数据报 (如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id 都是相同的)

标志 flag

占 3 位
第一位未使用,其值为 0;
第二位称为 DF(不分片),表示是否允许分片;取值为 0 时,表示允许分片;取值为 1 时,表示不允许分片;
第三位称为 MF(更多分片),表示是否还有分片正在传输,设置为 0 时,表示没有更多分片需要发送,或数据报没有分片

片偏移

占 13 位
当报文被分片后,该字段标记该分片在原报文中的相对位置;片偏移以 8 个字节为偏移单位;所以,除了最后一个分片,其他分片的偏移值都是 8 字节(64 位)的整数倍

生存时间 TTL

表示数据报在网络中的寿命,占 8 位
该字段由发出数据报的源主机设置,其目的是防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源

路由器在转发数据报之前,先把 TTL 值减 1,若 TTL 值减少到 0,则丢弃这个数据报,不再转发;因此,TTL 指明数据报在网络中最多可经过多少个路由器;TTL 的最大数值为 255;若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送

协议

表示该数据报文所携带的数据所使用的协议类型,占 8 位
该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分,不同的协议有专门不同的协议号

头部校验和

用于校验数据报的首部,占 16 位
数据报每经过一个路由器,首部的字段都可能发生变化(如TTL),所以需要重新校验。而数据部分不发生变化,所以不用重新生成校验值

源地址

表示数据报的源 IP 地址,占 32 位

目的地址

表示数据报的目的 IP 地址,占 32 位
该字段用于校验发送是否正确

可选字段

该字段用于一些可选的报头设置,主要用于测试、调试和安全的目的;这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制

填充

由于可选字段中的长度不是固定的,使用若干个 0 填充该字段,可以保证整个报头的长度是 32 位的整数倍

数据部分

数据部分的长度不固定
表示传输层的数据,如保存 TCP、UDP、ICMP 或 IGMP 的数据

在这里插入图片描述


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

相关文章

TCP和UDP以及IP报文格式

TCP和UDP以及IP报文格式 TCP报文: 源端口: 数据发送方的端口号。 目的端口: 数据接受方的端口号。 序号:本数据报文中的的第一个字节的序号(在数据流中每个字节都对应一个序号)。 确认号:希望…

ipv4 报文格式中文描述

ipv4 报文格式中文描述 ipv4 英文描述 第一行 报文头部 20 byte 选项 40 byte ver 版本:4位 ipv40100hlen 头部长度:4bit 固定头部 选项 用4byte 为单位标记头部长度 (5-15)0101-1111tos服务类型:8位total length 报…

以太网 以太网帧格式与IP报文分片

2.1.0 以太网 以太网帧格式与IP报文分片 一、以太网数据帧信息简介 以太网有两种类型的数据帧,一种是Ethernet_II另一种是IEEE802.3。 两者并没有明确的规定两种类型的使用场景,通常都是由协议/应用程序的开发者定义的。 通过观察发现: …

SOME/IP报文格式-Message ID

–回目录页 SOME/IP报文格式-Message ID Message ID [32 Bit] The Message ID is a 32 Bit identifier that is used to dispatch the RPC call to a method of an application and to identify an event. The Message ID has to uniquely identify a method or event of a …

TCP/IP报文格式详解

1.端口号   标记同一台计算机上的不同进程   源端口:占2个字节,源端口和IP的作用是标记报文的返回地址。   目的端口:占2个字节,指明接收方计算机上的应用程序接口。   TCP报头中的源端口号和目的端口号同IP报头中的源…

ping内网流程以及ARP,ICMP,IP报文格式

ping内网流程 正常ping流程 A->B arp广播报文格式: 以太网目的MAC 以太网源MAC 帧类型 硬件类型 4 6 OP 发送端以太网MAC 发送端IP地址 目的MAC 目的IP FF-FF-FF-FF-FF-FF 00-50-56-C0-00-01 0806 0800 1 00-50-56-C0-00-01 1.1.1.1 00-00-0…

TCP,IP,UDP等各种报文格式

1.TCP:全双工,传输层协议 源端口和目的端口:各占2个字节,是运输层与应用层的服务接口。 序号:占4个字节。TCP连接传送的数据流中的每一个字节都被编上一个序号。首部中序号字段的值指的是本报文段所发送的数据的第一个…

IP报文格式及各字段的意义

IP数据包由报头和数据两部分组成。报头的前一部分是固定长度,共20字节。在报头的固定部分的后面是可选部分——IP选项和填充域。 首部各字段的含义如下 1、版本 占4位,指IP协议的版本。 2、报头长度 占4位,该字段的单位是32位字(1…

IP报文格式和实例分析

上面是IP的报文格式,接下来我们先说明各个字段的意义。然后,用Etheral软件转包分析IP的报文格式。 1.版本:ip报文中,版本占了4位,用来表示该协议采用的是那一个版本的ip,相同版本的ip才能进行通信。一般此…

TCP/IP协议中IP数据保报文格式详解

在 TCP/IP 协议中,使用 IP 协议传输数据的包被称为 IP 数据包,每个数据包都包含 IP 协议规定的内容。IP 协议规定的这些内容被称为 IP 数据报文(IP Datagram)或者 IP 数据包。 IP 数据报文由首部(称为报头)…

TCP/IP报文格式及通讯

目录 1 分层结构 1.1 PHY物理层 1.2 MAC层(LLC逻辑链路层) 1.3 IP层(net网络层) 1.3.1 IP报路由时MAC变IP不变 1.3.2 ARP原理 1.3.3 IP报拆分 1.3.4 生存时间 1.3.5 协议种类 1.3.7 划分子网 1.4 TCP报文、UDP报文 1.5 应…

TCP/IP 报文格式(IP数据包、TCP报头、UDP报头)

TCP/IP 报文格式(IP数据包、TCP报头、UDP报头) 一、IP包格式 IP数据包,是一种可以变长的分组,由首部与数据负载组成。首部长度为20-60字节(Byte),后40字节是可选的,但长度不固定&a…

SOMEIP报文格式部分字段概述(二)

书非借而不能读也! 为了提高效率,现在参考了某网友的(忘记来源了)相关文章。 【SOMEIP报文格式部分字段概述】 【Message ID】 Message ID是一个32位标识符,用于将RPC调用分派给应用程序的method并识别event 。 Mess…

【TCP/IP详解】IP报文格式

我将工作中用到的报文格式进行了汇总,方便查阅: 【TCP/IP协议】各层报文首部数据格式汇总 解析: 4位版本:目前的协议版本号是4,因此IP有时也称作IPv4。4位首部长度:普通的IP首部长为20个字节,除非含有选项字…

IP报文格式

每一行由32bit组成(4字节) 每一个小格子称为“字段” 每一个字段或者某些字段的组合用来表达IP协议相关的功能如下图 字段解释: 1、版本 ver 占4bit表示IP协议的版本 通行双方的版本必须一致,目前广泛使用ipv4版本 2、首部长…

IP 报文格式详解(IPv4、IPv6)

文章目录 1 概述2 IP 报文格式2.1 IPv42.2 IPv62.3 两者区别 3 网工软考真题 1 概述 #mermaid-svg-Z10Ft1t2MtizhS0J {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Z10Ft1t2MtizhS0J .error-icon{fill:#552222;}#m…

IP数据报格式

1、报文格式 前几篇总结过较多网络层的知识,ARP,ip地址、子网掩码等等。这次总结一下IP数据报的报文格式 IP数据报的格式能够说明IP协议都具有什么功能。在TCP/IP的标准中,各种数据格式常常以32位(4字节)为单位来描述…

IP报文格式详解

转载:https://www.cnblogs.com/zhangbing12304/p/11016921.html 下图为常见的IP报文格式表: 上面是IP的报文格式,接下来我们先说明各个字段的意义。然后,用Etheral软件转包分析IP的报文格式。 1.版本:ip报文中&#…

matlab fsolve 与fzero,fsolve / fzero:找不到解决方案,看似常规

您的系统设置方式,绘制它并观察其行为实际上很方便 . 我向你的函数进行了矢量化并绘制了 f(x) = MLNEfun(x)-x ,其中 MLNE(x) 的输出是 newA . 实际上,您对系统的固定点感兴趣 . 我观察到的是: 在A~3800处有一个奇点和一个根交叉 . 我们可以使用 fzero ,因为它是一个括号中…

matlab fsolve实例,转 Matlab非线性方程求解器fsolve总结(含实例)

this.p{ m:2, b:2, loftPermalink:, id:fks_080067080082080074080086083095085085082071082086082074092, blogTitle:转 Matlab非线性方程求解器fsolve总结(含实例), blogAbstract: fsolve是采用最小二乘法来求解非线性方程。它的一般求解方式为: XFSOLVE(FUN,X0,O…