IPv4数据报格式

网络层的分组为数据报,数据报为首部和数据两部分组成,如下图所示。

首部的长度是以4个字节为单位,长度可以是20-60字节,这跟首部的HLEN字段有关。

版本:

这个4位字段定义了IP协议的版本,目前主流的版本是4。

首部长度:

这个4位字段定义了数据报首部的长度,以4字节的字为单位

当首部没有选项时,首部长度位20字节;当这个字段值位最大值F时,首部长度最大为60字节

服务类型:

在最初这个字段有一部分用于定义数据报的优先级,剩下的一部分定义了服务类型。IETF已经改变了这个8位字段的解释,现在定义了一组区分服务

码点 未使用

在这种解释种,前6位构成了码点(codepoint),最后两位未使用。

X X X 0 0 0

当码点字段最右边为0时,对最左边的解释为优先级:

这个优先级定义了一些在出现一些问题时数据报的优先级,即当路由器需要丢弃一些数据时,优先级低的将会被首先丢弃。

X X X X X 0

因特网指派的服务

X X X X 1 1

本地指派的服务

X X X X 0 1

临时的或实验的服务

当码点字段最右边的3位不全为0时,这6位定义了54种服务,低延时,高吞吐量等等。

总长度:

这个16位字段定义了数据报总长度,其以字节为单位。故IPv4数据报总长度上限值位65536字节

注:为什么需要这个字段?在许多情况下,我们确实不需要这个字段值。但是有些情况下,封装在一个帧里的并不仅仅是数据报,还可能附加了一些填充。比如,以太网协议对帧的数据有最大值(1500字节)和最小值(46字节)的限制,当数据小于46字节时,数据将含有填充数据。

标识(identification):

这个16位字段标志了从源主机发出的一个数据报,这样就确定了数据报的唯一性。这样使得数据报被分片后,在到达终点时终点能根据标识号将同一个数据报的分片重新组装成一个数据报。

标志(flag):

  D M

第一位保留(未用),第二位为“不分片(do not fragment)”,第三位位“还有分片(more fragment)”。

D为1时,不能对数据进行分片;为0可以进行分片。

M为1时,标识还有分片;为0表示最后一个分片。

分片偏移:

这个13位字段表示的是分片在整个数据报中的相对位置。这是数据在原始数据报中的偏移量,以8字节位单位

注:分片本身还可能进行分片,这种情况下,分片偏移值永远是相对于原始数据报的。

生存时间:

这个8位字段用来控制数据报所经过的最大跳数(路由器),每经过一个路由器,这个字段数值都减1,减1后变位0时,路由器就丢弃这个数据报。

协议:

这个8位字段定义了使用IPv4服务的高层协议,如TCP,UDP,ICMP,IGMP,OSPF等的数据都将被封装到IP数据报中。这个字段指明数据报必须交付给哪个最终目的协议。

注:1表示ICMP,2表示IGMP,6表示TCP,17表示UDP,89表示OSPF

检验和:

检验IP数据报首部。

源地址:

定义了源点的IP地址,这个字段始终保持不变。

目的地址:

定义了终点的IP地址,这个字段始终保持不变。

时间: 2024-08-03 16:42:07

IPv4数据报格式的相关文章

IPv4数据报格式及其语义

一.IP数据报的格式如下图所示 版本 首部长度 服务类型 数据报长度 16比特标识 标志 13比特片偏移 寿命 上层协议 首部检验和 32比特源IP地址 32比特目的IP地址 选项(如果有的话) 数据 IPv4数据报格式 二.各部分语义 1)版本(号):4bit,规定了数据包的IP协议版本:通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分 2)首部长度:因为IPV4数据报可包含一些可变数量的选项,所以需要用这4bit来确定首部的长度,以确定IP数据报的数据部分实际从哪里开始.大多数IP

IPv4与IPv6数据报格式

IPv4: IPv4数据报中的字段: 版本号:规定了数据报的IP协议版本,通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分,因为不同IP版本使用不同的数据报格式. 首部长度:IPv4数据报可能包含一些可变数量的选项,这些选项包括在数据报的首部,所以需要用这 4比特来确定IP数据报中数据部分实际从哪里开始.由于大多数IPv4数据报不包含选项,所以一般的IPv4数据报具有20字节的首部. 服务类型TOS:用于区别不同类型的IPv4数据报,它们可能要求低时延.高吞吐量或可靠性. 总长度:这是

MAC帧格式,IP数据报格式和ARP数据报格式

MAC帧格式: 以太网帧格式由5个字段组成,前两个字段分别是6字节长的目的地址和源地址字段,是指网卡的硬件地址(MAC地址).第三个字段是2字节的类型字段,用来标识上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议.例如,当类型字段的值是0X0800时,就表示上层使用的是IP数据报.第四个字段是数据字段,其长度在46~1500字节之间.最后一个字段是4字节的帧检验序列FCS(CRC检验).最大值1500称为以太网的最大传输单元(MTU),如果数据报长度大于这个长度,需要对数

以太网帧、TCP与UDP段以及IP数据报格式总结

传输层及其以下的机制由内核提供,是操作系统的一部分,应?层由?户进程提供应?层数据通过协议栈发到?络上时,每层协议都要加上?个数据?部(header),称为封装.不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在?络层叫做数据报(datagram),在链路层叫做帧(frame). 1.以太网帧格式 ?源地址和?的地址是指?卡的硬件地址(也叫MAC地址),长度是48位,是在?卡出?时固化的.Linux下可以?ifconfig命令看?下,"HWaddr 00:15:F2:14:9

IP数据报格式,路由表

IP数据报格式 MTU最大传输单元:数据帧中的有效载荷的最大长度,不包括首部的长度,若大于MTU,则需要分片,分片是由IP层完成的.组装也是由IP层自行完成. 在IP分组头中,与分组的分片与组长有关的字段有:16位标识,3位标志,13位片位移 16位标识: 分组可能通过不同的传输路径到达目的主机.属于同一分组的不同片会出现乱序,或者与其他分组混合在一起.若将属于一个分组的所有片分配一个标识值ID,则目的主机可根据标识值将属于同一分组的片挑出来,重新组装.标识ID是片识别的标记. 3位标志: 标志

Linux 网络编程——TCP 和 UDP 数据报格式详解

TCP 报文格式 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. TCP 报文段的报头有 10 个必需的字段和 1 个可选字段.报头至少为 20 字节.报头后面的数据是可选项. 1)源端口(16位) 标识发送报文的计算机端口或进程.一个 TCP 报文段必须包括源端口号,使目的主机知道应该向何处发送确认报文. 2)目的端口(16位) 标识接收报文的目的主机的端口或进程. 3) 序号(也叫序列号)(32位) 用

计算机网络(3)-----IP数据报格式

IP数据报(IP Datagram) 格式 解析 (1)版本 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.目前广泛使用的IP协议版本号为4(即IPv4). (2)首部长度 占4位,可表示的最大十进制数值是15.请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节.当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充.因此数据部分永远在4字节的整数倍开始,这样在实现I

ARP数据报格式

ARP协议的作用 怎么做 3. 每台主机都维护一个ARP缓存表,可以用arp -a命令查看. 4. ARP数据报的格式 前14个字节为以太网首部,以太网目的地址和以太网源地址为MAC地址,源地址已知,目的地址未知,用ff ff ff ff ff ff 填充,类型指上层协议类型,有3种--IP(0800).ARP请求/应答(0806).RARP请求/应答(8035) 后28个字节,以ARP请求/应答为例 a. 硬件类型指链路层网络类型,1为以太网 b. 协议类型指要转换的地址类型,0x0800为I

IP数据报格式 及路由转发算法

ip数据报分首部和数据两部分组成: 首部分为固定部分和可变部分 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是 60 字节. 区分服务——占 8 位,用来获得更好的服务 在旧标准中叫做服务类型,但实际上一直未被使用过. 1998 年这个字段改名为区分服务. 只有在使用区分服务(DiffServ)时,这个字段才起作用. 在一般的情况下都不