IP协议数据报格式详解

article/2025/10/3 17:43:38

🐱‍🏍写博客的主要原因是为了巩固所学知识 🐱‍🏍


IP数据报格式

 4位版本号(Version)

          由4比特组成,用来指定IP协议的版本。IPv4的版本号为4,即0100。

4位首部长度(Header Length)

        由4比特组成,表示IP协议的头部长度,用来作为header和payload之间的区分。单位为4字节,4比特位组成的最大的数为15,即1111,则header的最大长度则为60字节。其中固定长度(去掉选项)为20字节。

 在数据报中,字节都是连续的。那么怎么区分header和payload呢?就是依靠4位首部长度。

        

8位服务类型(TOS:Type Of Service)

        0~2位优先权字段(已经弃用),3~6位TOS字段,第7位保留字段(必须为0)。

        TOS字段:

                第3位: 最低延迟

                第4位: 最大吞吐量

                第5位: 最高可靠性

                第6位: 最小成本

                这四者互相冲突,只能选中的一个为1,其他的必须为0。不过现在几乎所有的网络都无视这些字段,是因为在符合质量要求的情况下按其要求发送本身的功能实现起来十分困难,还因为若不符合质量要求就可能会产生不公平的现象。

16位总字节长度(Total Length)

        由16比特位组成,表示header和payload合起来的字节数。由于16比特组成最大的数为65536,所以IP数据报的最大长度为65535字节(64K),和UDP一样的大小。

那么IP数据报是如何传输大文件的呢?

        虽然IP协议看起来也是有个最大64k的限制,但是实际上IP协议内置了分包组包的功能 如果一个数据太长了,协议就会自动的拆成多个数据包,进行传输,然后接受方就会重新进行组包。

16位标识(ID:Identification)

             由16比特位组成,由于IP协议会对大的数据进行分片,同一个分片的标志位相同,接受发可用根据16位标识进行组包。但是若标识位相同,但协议、源IP地址或者目的IP地址不同,也会被认为是不同的分片。

3位标志段(Flags)

        由3比特位组成,表示包被分片的相关信息。

        第1位:保留字段(保留的意思是现在不用,以后可能会用到)。

        第2位:指示是否进行分片(don't fragment)

                     如果该位为1,表示禁止分片。如果报文长度超过MTU(最大传输单元)后,

                     IP协议则丢弃该报文。

                     如果该位为0,表示可以分片,如果报文长度超过MTU(最大传输单元)后,

                     IP协议则会对其进行分片。

        第3位:包被分片的情况下,表示是否为最后一个包。

                     0表示为最后一个分片的包。

                     1表示为分片中段的包。

13位分片偏移(framegament offset)

        由13比特位组成,用来标识被分片的每一个分段相对于原始数据的位置。其实就是在表示当前分片在原始数据中处在哪个位置。

        第一个分片的值为0,由于FO域占13位,因此最多可以表示 8192( = 2^{13} )个相对位置。单位为8字节,因此最大可表示原始数据 8×8192=65536字节的位置。

        除了最后一个包之外,其他包的长度必须是8的整数倍(否则报文就不连续了)。

 8位生存时间(TTL:Time To Live)

            由8比特位组成,表示数据包到达目的地的最大报文跳数。它最初的意思是以秒为单位记录当前包的生存期限。在实际中它是指可以中转多少个路由器的意思。 每经过一个路由器,TTL会减少1,直到变成0则丢弃该包(TTL一般初始为64)。

可以在控制台输入 ping + 网址 获取到从本地到达目的地剩余的TTL

 

8位协议(Protocol)

        由8比特位组成,表示上层协议类型。

        TCP: 6

        UDP: 17

16位首部校验和(Header Checksum)

        由16比特位构成,用来校验数据报的首部,不校验数据部分。

        为什么不对数据部分进行效验?

        因为载荷部分就是一个完整的TCP/UDP数据报,由TCP和UDP本身进行效验即可。

 计算方式:

        首先要将该校验和的所有位置设置为0,然后以16比特为单位划分IP首部,并用1补数(1补数    通常计算机中对整数运算采用2补数的方式。但在校验和的计算中采用1补数运算方法。这样做的优点在于即使产生进位也可以回到第1位,可以防止信息缺失并且可以用2个0区分使用。) 计算所有16位字的和。最后将所得到这个和的1补数 赋给首部校验和字段。

源地址(Source Address)

        由32比特位构成,表示发送端IP地址。

目标地址(Destination Address)

        由32比特位构成,表示接收端IP地址。

选项

        长度可变,通常只在进行实验或诊断时使用。

数据

        一个完整的上层数据报。

        

 

        


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

相关文章

IP数据报文格式

【转载】http://blog.csdn.net/shinezhang86/article/details/47145907 由于记性不好的原因, 一直对报文格式的字段记的不是很牢固, 故花了一天时间学习IP报文格式, 第二天来总结. 过两天再继续学习TCP和UDP. IP报文格式如下图所示(图片来源—百度百科): 版本(Version, 4bit):为…

IPv6报文格式

IPv6报文 IPv6报文分为两大部分:报头,负载。 报头 IPv6的报头是固定的320bit,不同与IPv4,IPv6把可选项从标准头部中移除,标准头部包含着版本号、流量类型、流标签、负载数据的长度、下一协议报头、生存时间&#xff08…

IP 协议报文格式 【IPv4】

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

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字节)为单位来描述…