TCP/IP协议---UDP
UDP协议
用户数据传输协议 (UDP,User Datagram Protocol) 是一种无连接的协议,提供了简单的数据传输服务,不保证数据的顺序以及完整性。应用层很多通信协议都基于UDP进行传输,比如DNS、CoAP等。
UDP协议源文档
UDP通信特点
- 无连接:数据传输不需要与对端建立连接,只需要知道对端IP地址以及端口号即可传输数据。
- 不可靠:没有确认机制以及重传机制,不能保证数据传输的完整性。但也因此传输速度比TCP快,常用于直播、游戏等应用场景。
- 可广播:可以直接对广播IP地址发送数据,实现一对多通讯。
UDP头部报文
UDP头部报文除去数据长度,一共有8个字节
- Source Port:源端口号,长度为 16 比特,为本地应用端口号。
- Destination Port:目的端口号,长度为 16 比特,为对端应用端口号。
- Length:UDP报文长度,长度为 16 比特, Length=UDP头部(8字节)+UDP数据,因此Length最小值为8。
- Checksum:UDP报文校验和,长度为 16 比特,Checksum的校验范围为UDP伪头部(12字节) + UDP头部(8字节) + UDP数据。Checksum使用二进制反码进行求和运算,最终结果为求和结果的反码。校验时如果数据位数不是偶数的话,会在最后补零。
- data:UDP应用数据,最大为MTU-IP头部 - UDP头部 = 1500 - 20 - 8 = 1472字节。
UDP检验
UDP伪头部不会进行传输,只是用于校验。长度为12字节
- source address:源IP地址,长度为32比特,为本地IP地址。
- destination address:目的IP地址,长度为32比特,为对端IP地址。
- zero:补零,长度为8比特,值为0。
- protocol:UDP协议编号,长度为8比特,值为17。
- UDP length:UDP报文长度,长度为16比特,不包括UDP伪头部的长度。
学习笔记,有问题欢迎指出