IPv4报文格式详解和报文示例

目录

一,IP数据报文的组成

二,IP报文格式

三,IPv4报文示例


作者:柒烨带你飞

一,IP数据报文的组成

一个IP数据报文都是由首部和数据两部分组成。 每个 IP 数据报都以一个 IP 报头开始。IP 报头中包含大量信息,如源 IP 地址、目的 IP 地址、数据报长度、IP 版本号等。每个信息都被称为一个字段。

二,IP报文格式

IPv4详细报头格式字段如下:

35ecafc99e98419f9cf68d9ccd2361b0.png

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

字段长度含义
版本(version)4bit指IP版本协议,如IPv4和IPv6,双方通信的协议必须一致
首部长度(IHL)4bit指IP数据报的首部长度,如果不带选项(Option)字段,则为20,最长为60,该值限制了记录路由选项。以4字节为一个单位。
服务类型(Type of service)8bit用来获得更好的服务。只有在使用Qos区分服务时,这个字段才起作用
总长度(Total Length)16bit

指首部和数据之和的长度,单位为字节,最长为65535字节,以太网最初对报文长度没有限制。

网络层最大可以接收65535个字节,但是数据链路层以太网对于长报文无法可靠地传输,而且丢失后重传也会占用大量的网络资源,所以现在IP数据报的总长度一旦超过最大传输单元MTU, 就会对IP报文进行分片依次传输。

在数据链路层下帧的格式规定,最大传输单元不能超过MTU(目前以太网的MTU=1500字节)

标识(Identification)16bitIP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序号接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
标志(Flags)3bit占3位,但只有2位有意义。
①标志字段中的最低位记为MF(MoreFragment)。
MF=1即表示后面“还有分片”的数据报。
MF=0表示这已是若干数据报片中的最后一个。
②标志字段中的一位记为DF(Don’t Fragment),意思是“不能分片”。
只有当DF=0时才允许分片。
片段偏移(Fragment Offset)13bit较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。
生存时间TTL(Time to Live)8bit生存时间字段常用的的英文缩写是TTL(TimeToLive),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。
每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。
若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。
协议(Protocol)8bit协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
首部效验和(Header Checksum)16bit这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。
源地址(source Address)32bit发送方地址。
目的地址(Destination Address)32bit接收方地址
可选字段 (Options)可变用来支持排错、测量以及安全等措施。在必要的时候插入值为0的填充字节。
填充字段(Padding)可变填充字段,全填0

三,IPv4报文示例

ee9a289f2a9e4d9489b67f5ae5ccd88d.png

  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
IPv4报文格式是一种用于在网络中传输数据的协议头部格式。它由固定长度的20字节(或者更多,取决于选项字段的使用)组成。以下是IPv4报文格式的各个字段: 1. 版本(Version):占4位,表示IPv4协议的版本,通常为4。 2. 首部长度(Header Length):占4位,表示IPv4首部的长度,以32位字为单位。IPv4首部最小长度为20字节。 3. 区分服务(Differentiated Services):占8位,用于定义服务质量和优先级。 4. 总长度(Total Length):占16位,表示整个IPv4数据报的长度,包括首部和数据部分。 5. 标识(Identification):占16位,用于唯一标识一个数据报片段。 6. 标志(Flags):占3位,用于控制数据报的分片和重组。 7. 片偏移(Fragment Offset):占13位,用于指示数据报片段在原始数据报中的位置。 8. 生存时间(Time to Live,TTL):占8位,表示数据报在网络中可经过的最大路由跳数。 9. 协议(Protocol):占8位,表示数据报的封装协议,如TCP或UDP。 10. 首部校验和(Header Checksum):占16位,用于检验IPv4首部的完整性。 11. 源地址(Source Address):占32位,表示发送方的IP地址。 12. 目标地址(Destination Address):占32位,表示接收方的IP地址。 13. 选项字段(Options):占可变长度,用于传输一些额外的控制信息,如时间戳或记录路由。 14. 数据(Data):占变长,包括传输的实际数据。 以上是IPv4报文格式中的主要字段,其中一些字段可以根据具体的使用情况而变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值