UDP特点及报文结构
UDP的特点及目的
UDP不提供复杂的控制机制,将应用程序的数据发来的那一刻就立即把原样的数据发送到网络上。
UDP在发送数据之前,发送方与接收方之间不需要建立一个正式的、专用的通信通道;体现UDP无连接的特点。
UDP就算在网络拥堵的情况,它不进行评判,就直接发了就完了,也不管后续的情况。如果传输过程中出现丢包的情况,它也不会重发。如果包在到达后数据的顺序乱了它也没有纠正的功能。体现它的不可靠传输。
UDP以一个个独立、完整的数据报为单位来处理和传输数据。体现它的面向数据报
UDP协议下,数据可以在通信双方之间同时进行双向传输,互不干扰。就好比打电话的过程,我在跟对方讲话时也能听到对方的声音。体现它的全双工特点
因此我们能看到它的特点:无连接、不可靠传输、面向数据报、全双工
因为UDP是无连接的,它可以随时发送数据,虽然它有缺点,但是因它的处理简单又高效,它能应用在:
- 包总量较少的通信
- 视频、音频等多媒体通信
- 限定于LAN等特定区域网络的应用通信
- 广播通信
UDP报文格式
源端口号:表示发送端端口号,字段长16位。这一项是可选项,有时可能没有设置源端口号,没有的话就设置为0,这种情况可以用在不需要返回的通信中。
目标端口号:表示接收端端口号,字段长16位。
包长度:保存了UDP首部长度与数据的长度之和
校验和:为提供可靠的UDP首部与数据而设计。验证数据是否发生修改,这里的验证是看一下是否出现传输过程中的“比特翻转”。就是计算机存储是二进制,因光信号、电信号等外界干扰可能会使高低电平或高低频光信号发生改变。如果发现不一致,直接丢弃,注意UDP没有重发的功能,要想重发,需要程序员自己写代码实现。