UDP的主要特征
1.无需建立连接
通信主机之间不需要建立连接,直接进行数据传输。
2.无连接状态
因为不需要建立连接,所以也不用维护连接状态,节省 运行UDP协议的服务器资源。没有建立连接的时延。
3.分组首部开销小
UDP只有固定的8字节首部开销
4.UDP不提供可靠数据传输服务
使用UDP的应用软件可忍受一些数据丢失。
UDP的缺点
没有拥塞控制机制
1.例如启动过多的高比特视频传输,链路上会有很多分组,路由器产生高丢包率。
2.TCP拥塞机制,会在线路拥挤时减少发送方发送速率。
补充
使用UDP协议的应用可以实现可靠数据传输
在应用程序自身实现可靠性机制来完成。例如谷歌的Chrome浏览器所使用的QUIC协议在UDP之上的应用层协议实现了可靠性。
UDP报文段结构
源端口号:发送方的应用程序端口
目的端口号:接收方的应用程序端口号
长度:UDP报文段字节数。数据+首部
检验和:接收方使用检验和来检查在该报文段中是否出现了差错。
应用数据:报文携带的真实数据。如音视频流式数据。
UDP校验和
举例如下
假定有三个16比特的字
0110 0110 0110 0000
0110 0101 0101 0101
1000 1111 0000 1100
三者相加的结果为
0100 1010 1100 0001
反码
1011 0101 0011 1110
这就成为了校验和
接收方在接收到这些数据后,将这4个16比特字加在一起,如果没有差错,应为 1111 1111 1111 1111 。如果任意位置出现了0,就说明出现了数据错误。
虽然UDP提供差错检测,但是对差错恢复无能为力。UDP的实现只是丢弃受损的报文段;其它实现是将受损的报文段交给应用程序并给出警告。