1.UDP传输协议的特点
使用UDP传输协议进行通信,过程类似于寄信,它的特点如下:
- 无连接:知道对端的IP号和端口号就直接进行传输,不需要建立连接;
- 不可靠:没有可靠机制,发送数据包以后,如果因为网络故障等原因,出现数据包丢失的问题,UDP协议层也不会返回故障信息给应用层;
- 面向数据报:应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并;
- 支持全双工通信:UDP的socket能够同时进行读写,能支持同时收发数据;
2.UDP协议格式
- SourcePort和DestinationPort:源端口号和目的端口号,都是16位端口号,即占用两个字节;
- Length:报文长度,占用16位,也是两个字节,表示报头长度和负载长度的总和,单位是字节,因此UDP报文的总长度不能超过65535字节,即一条UDP报文传输的数据不能超过64k;
- Checksum:校验和,占用16位,也是两个字节,UDP协议使用CRC算法计算校验和,如果发送方发送的校验和和接收方计算的校验和相同,则表示数据传输大概率正确,反之,表示数据在传输过程中出现了错误。
3.UDP协议的应用场景
基于UDP协议实现的应用层协议有DNS(域名解析协议),DHCP(动态主机配置协议),TFTP(简单文件传输协议)。
TCP引入了可靠机制来保证数据传输的可靠性,但是同时也牺牲了一部分传输效率。相对于TCP协议,UDP协议虽然没有可靠机制来保证数据的可靠传输,但是UDP传输效率没有受到影响,因此同等网络条件下,传输效率要高于TCP。因此UDP协议适用于对数据可靠传输要求不高,但是对传输效率要求较高的场景。使用UDP协议通信不需要建立连接,可以直接根据IP地址和端口号进行传输,因此UDP可以使用在需要使用广播的场景中。