3-1 UDP包长度有疑问, 存储信息长度是16位, 自身协议就用了64位, 后者比前者还大,相减不是出现负数吗?

来源:3-1 UDP是什么

qq_胜在终点_0

2020-01-17

图片描述

写回答

2回答

Qiujuer

2020-01-26

不是,这里不是这么理解的。这里是说,一段数据是一段数据,既然要区分就要有长度。所以在UDP中有2个字节专门用来存储长度的,2个字节是16位,在16位中至多可以存下一个65535这个数字进去,这是极限值。

也就是说这一整段数据最多可以有65535字节的数据存在,后面说协议又占用了8字节。所以后面携带的数据就是:65535-8 字节。

watermark,g_7,image_d2F0ZXIvYmFpa2U4MA==这个图中的UDP首部就是这个道理。UDP数据部分也就是我们说的:65535-8的长度。

0
2
qq_Nicochan_0
一开始我也没转过来,看了这个回答一下明朗了。感谢老师
2020-03-13
共2条回复

xxxxjase普通

2020-09-12

我觉得第一行有些误导人;

实际上 2 字节用于存储长度,这个 2 字节是在自身协议的占用的 8 字节里面;

65535 字节只指 协议头 + 数据 的总长度;

所以要减去了,是这样不??

0
0

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2314 学习 · 476 问题

查看课程