IPv4 报文格式

今天上课讲到这,感觉老师讲的挺好的,一些设计原理也讲的比较细致,特此记录一下。

首先 IPv4 整体报文格式如下(图来自 https://wenku.baidu.com/view/78c7a218590216fc700abb68a98271fe910eaf38.html):
在这里插入图片描述
因为书上网上讲 IPv4 的很多了,这里主要讲一些它们可能没提到或者我感兴趣的部分,所以看之前最好已经对这部分有一定了解。不想看全文的话,可以拖到最底下,那里是我写本文的主要目的。

版本号

IPv4 这部分填 4,IPv6 填 6

报头长度

报头长度字段占 4 位。其中每位的单位是 4 字节1。报头包括任选项。由于它是一个 4 位字段,因此报头最长为 60 字节。

对于一般数据报(没有任何 IP 选项),该字段的值为 5,即报头长度为 20 字节。

报头长度的计算公式为:报头长度 = 基本长度(20 字节)+ IP 选项长度

总长度

总长度字段是指整个 IP 数据报的长度,以字节为单位,占 16 比特。

由于该字段的长度为 16 比特,所以 IP 数据报的最大长度可达到 65536 字节。但是由于底层传输时对每次传送报文的长度有限制,当 IP 数据报的长度超过这个限制的时候2,传送这个数据报就得分片传送。例如,通常较为典型的用于以太网的该字段最大长度为 1500 字节。其中每片的区分靠 标识、标志和偏移量3 这三项来区分。当数据报分片的时候,总长度字段的值也应该变化成此片的长度,而不是 IP 数据报的总长度。

尽管 IP 支持传输一个长达 65536 字节的数据报,但是大多数的数据链路层都会对它进行分片处理;而且主机也要求不能接收超过 576 字节的数据报。由于 TCP 把用户数据报划分为若干段,因此一般来说这一点不会影响 TCP 的使用。另外大量使用 UDP 的应用(RIP、TFTP、BOOTP、DNS、SNMP 等等),它们都限制用户数据报长度为 512 字节,小于 576 字节,因此 IP 的这种限制也不会影响 UDP 的使用。

总长度的计算公式为:总长度 = 报头长度 + 数据长度

标识字段

标识字段相当于每个 IP 数据报的 ID,用于唯一的标识主机发送的每一个数据报。当一

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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报文格式中的主要字段,其中一些字段可以根据具体的使用情况而变化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值