UDP协议分析
UDP原理
-
UDP(User Datagram Protocal,用户数据报协议),提供面向无连接的不可靠传输服务,与TCP协议一起处于传输层,其为应用程序提供了一种无需建立连接就可以发送封装的IP数据报的方法。
-
UDP主要具备不可靠、无连接、不分片、速度快等特点。也就是说,当UDP报文发送之后,是无法得知其是否安全完整到达的,包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。
-
当强调传输性能而不是传输的完整性时,如音频和多媒体应用。相比较于TCP,UDP是最好的选择。对数据传输时延要求较高的服务和应用来说,UDP也是一个好的选择。
-
常见的基于UDP的应用/服务/协议包括DNS、DHCP、SNMP、TFTP(文件传输协议)、OICQ(qq协议)等。
注:使用UDP传输使用的端口为4000、8000;TCP传输用的443端口
UDP特点
-
UDP 是无连接的,即发送数据之前不需要建立连接(发送数据结束时也没有连接可释放),减少了开销和发送数据之前的时延 。
-
UDP 使用尽最大努力交付,即不保证可靠交付,主机不需要维持复杂的连接状态表 。
-
UDP 是面向报文的,发送方的 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界 。
-
UDP 没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的 。
-
UDP 支持一对一、一对多、多对一和多对多的交互通信 。
-
UDP 的首部开销小,只有8个字节,比 TCP 的20个字节的首部要短 。
UDP实战
数据包解读
- Source Port 源端口,标识发送方的端口服务
- Destination Port 目标端口,标识接收方的端口服务
- Length 长度值,标识UDP 数据包大小
- Checksum校验和,用于对数据包进行完整性校验