端口号协议说明0保留7echo报文回送服务器端口53DNS域名服务器端口69TFT中小型文件传输协议端口123NTP网络时问协议端口是用来同步网络中各个计算机时问的协议161SNMP简单网络管理协议端口11.5 UDP报文UDP 报文也被称为用户数据报 。
UDP报文封装:
- UDP的数据区就是用户程序的数据了 。
文章插图

文章插图
源端口号:用户发送数据的进程锁绑定的本地端口号 。
- 用户进程调用UDP相关业务时 , 可以不配置源端口号 。若不配置 , 内部会自动适配一个临时端口号 。
总长度:是UDP数据报的总长度:UDP首部+UDP数据区 。
- 这个字段有点冗余 , 因为在IP报文中就包含了IP首部和IP总长度 , 这样能计算出UDP数据报的长度 。所以 , UDP LITE就把这个字段改为需要进行校验和的UDP报文数据长度(从UDP首部算起) 。
- 对于UDP LITE协议 , 这个字段为0时 , 表示对整个UDP报文进行校验和计算 。参考
RFC 3828 chap. 3.1
。 - 对于UDP LITE协议 , 这个字段要么为0 , 要么不少于UDP报文首部长度(即是校验和至少要涵盖UDP首部) 。参考
RFC 3828 chap. 3.1
。
- 填入0时 , 表示不进行校验和 。而在实际计算校验和得到的结果刚好为0时 , 则向校验和字段填入0FFFF 。
- 填入0XFFFF的可行性证明:如果校验和结果为0 , 即是其它数据的和为0XFFFF 。而对端继续校验和时 , 就是0XFFFF+0XFFFF , 结果还是0XFFFF 。
11.6 UDP伪首部和校验和UDP校验和的计算包括了三部分:UDP伪首部+UDP首部+UDP数据区 。
UDP伪首部包含IP首部一些字段 。其目的是让UDP验证数据是否已经正确到达目的地 。
UDP伪首部只参与校验 , 不参与实际发送 。
伪首部中UDP总长度和UDP首部的总长度字段一致 。

文章插图
11.7 wireshark报文分析

文章插图
11.8 UDP数据结构参考
udp.c
、udp.h
文件11.8.1 UDP首部UDP首部长度:
#define UDP_HLEN 8
UDP首部数据结构:struct udp_hdr {PACK_STRUCT_FIELD(u16_t src); /* 源端口号 */PACK_STRUCT_FIELD(u16_t dest); /* 目的端口号 */PACK_STRUCT_FIELD(u16_t len); /* 总长度 */PACK_STRUCT_FIELD(u16_t chksum); /* 校验和 */} PACK_STRUCT_STRUCT;
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 财随风滚滚来 未来33天这4大星座横财不断
- 未来2年4大星座取得一些巨大的成就 金钱会暴涨生活喜事不断
- 健康吃雪糕的3个技巧 吃雪糕要注意些什么
- 属虎跟属牛的相配吗 做夫妻好不好
- 属鸡人和属鸡人合不合 争论无休应该多多谦让
- 今年小暑是几月几日几点2023
- 2023年小暑时间几点几分几秒
- 戊午日柱配偶 粗中有细相辅相成
- 属猴男和属牛女适合结婚吗 五行相生财运亨通
- 魔力宝贝:旅人声望怎么获取