User Datagram Protocol
UDP 是一个无连接的(connectionless)的传输层协议
UDP传输数据段,无须建立连接
UDP 在 RFC 768中描述
很多C/S应用(如: DNS),都使用UDP发送一个请求, 然后对方应答
UDP 数据段头
UDP 数据段包括8字节( 8-Byte)的头部和数据两个部分
其中的长度域表示的长度包括头部和数据总共的长度
校验和(checksum)是可选的,如果不计算校验和,则该域置为 0
UDP比IP好的地方在于它可以使用源端口和目的端口
端口(port)定义
16 位,共有 2 16 个端口
端口范围:0~65535
<1023 用于公共应用(保留,全局分配,用于标准服务器),IANA分配
1024~49151 用户端口,注册端口
>49152 动态端口,私人端口
自由端口(Free port)
本地分配
动态的随机端口
UDP 保留端口
UDP 校验和
TCP/UDP伪头部(pseudo header)
注意
如果收方的校验和为全1,传输无错
二进制反码求和
从低位到高位逐列计算
0和0相加是0,0和1相加是1,1和1相加是0,但产生进位
最高位相加产生进位,该位为1
检错能力较弱,但简单快速
使用协议地址,破坏了分层原则
小结:UDP
提供端点标识,端到端的数据传输
不提供差错检测和可靠传输,但简洁高效
UDP是传输层的一个轻量级协议,提供高效的端到端的数据段传输。
UDP数据段包括头部和载荷两部分,头部有8个字节,共4个字段。
UDP不提供数据传输的可靠保证