网络冷知识

本文探讨了IP协议头的长度范围,指出其最小20字节至最大60字节,取决于IHL字段的值。同时,解释了UDP协议报文结构,包括8字节的报头和最大长度的理论计算。并提及UDP数据报在实际应用中会受到MTU限制。最后,对比了TCP与UDP在分段上的不同:TCP在传输层进行分段,而UDP不进行分段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IP 协议中header长度范围

答案:20字节-60字节

网络协议 (IP协议) 在 RFC 791 中定义。RFC 指定 IP 报头的格式。 在报头中有一个 4 位长的 IHL(互联网报头长度)字段,并以 32 位字指定报头长度。 IHL 字段可以保存从 0(二进制 0000)到 15(二进制 1111)的值。

所以最长的 IP协议 Header(IP header)大小可以是15 * 32 Bits = 480 Bits = 60 Bytes。 这就是报头的最大大小为 60 字节的原因。

最短的报头大小为 20 字节,其中 IHL 字段的值为 5 (0101)。 这是因为报头中只包含必需字段,都需要 20 字节的空间。 因此,虽然理论上您可以将 IHL 设置为 < 5 的值,但这始终是一个不正确的值,因此是一个无效的数据包头。

UDP协议报文长度

首先分析UDP协议规范,UDP报文由4部分组成,分别是:

  • Source Port【16位】:源端口,最大65535
  • Destination Port【16位】:目标端口,最大65535
  • Length【16位】:指定UDP Header + UDP Data 长度
  • Checksum【16位】:检验和

UDP协议报头共计64位,8字节。

理论 ① UDP报文的最大长度是65535,其中包括8位报头。注意,只是理论上!

理论 ② DP报文长度取决于底层协议,即您使用的是 IPv4 还是 IPv6。

  • 在 IPv4 中,数据包大小的最大长度为 65,535。 因此,对于 UDP 数据报,您的最大数据长度为 65535 - 20(IP Header) - 8(UDP Header)
  • 在 IPv6 jumbograms 中,UDP 数据报的大小可能大于 65,535 字节

注意:此大小是 UDP 数据报的理论最大大小,但在实践中,此限制进一步受到数据链路层 MTU 的限制(因每种数据链路层技术而异,但不能小于 576 字节)。考虑到这一点,UDP 数据报的最大大小可以进一步计算为(对于 IPv4):

  • 576 bytes - 20 bytes(IP header) = 556 (including 8 bytes UDP header)

UDP和TCP都会分段吗

使用 TCP 时,数据报在传输层被分成块。 这些块被称为 TCP 段【TCP segment】。

使用 UDP 时,数据报不会在传输层被切碎; 它们只是得到一个报头而已。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值