TCP/IP 用户数据报协议
用户数据报协议
- 传输层的协议
- 区分统一主机的应用
- 对于通讯而言(最终目标):区分任务
UDP 用户报文协议
无连接的服务,不可靠的传输,由应用解决差错
报文格式
结构 : 首部 + 数据
首部:
源端口号,目标端口 (16bit)
UDP报文长度:长度包括了头部的长度
UDP报文校验和 (整个报文+伪头部) (针对IP的扩展,校验自身报文确保数据的完整性)
Checksum:实现的时候如果值为零,双方则在通信的时候默认不校验。UDP伪首部:加入通讯双方的IP地址,将通讯双方明确的区分
IPv4伪首部格式:源IP 目标IP 报文的协议号(同于 IP协议的协议编号字段protocol)(UDP对应值为17) 报文长度:指收到的实际的报文长度
(分组发送的时候不包含伪首部,仅仅用在校验的计算)
IPv6伪首部格式:
NEXT HEADER 字段填写的与UDP的协议号一致 (17)
UDP 协议的封装关系
1 | UDP:message,user datagram protocol |
UDP 多路复用 与 解多路复用
- 依据:端口号
- 发送方:收到报文后交付IP层再交付到链路层
- 接收方:根据分组的首部协议号交给UDP模块处理,UDP根据端口号交给对应的应用进程
接收队列(关联应用进程,队列长度有限
端口号的获取
1 | 1 中心管理机构统一分配(全球分配方法,well-known) |
参考资料:
- INTERNETWORKING WITH TCP/IP PRINCIPLES, PROTOCOLS, AND ARCHITECTURE Vol1 (6th Edition). DOUGLASE E. COMER