前言
本文梳理UDP协议
UDP:User Datagram Protocol,用户数据报文协议
UDP是一种无连接传输层协议,不像TCP那样需要服务器监听,也不必等待客户端与服务器建立连接后才能通信,当然,最后能否把数据传输成功,UDP是不能保证的。该服务对消息中传输的数据提供不可靠的、尽最大努力的传送。这意味着它不保证数据报的到达,也不保证所传送数据包的顺序是否正确。
TCP采用的是面向连接的报文段(数据段)方式,而UDP采用的是无连接的数据报传输方式。
TCP是以数据段(segment)为单位进行传输的,UDP是以数据报(datagram)为单位进行传输的。
UDP的主要特性
-
无连接性
UDP是无连接的,减少开销和发送数据之前的延迟。 -
不可靠性
因为UDP传输数据时是不需要事先建立专门的传输连接的,所以它的传输是不可靠的,会使用最大努力交付,即不保证可靠交付。 -
以报文为边界
UDP直接对应用层提交的报文进行封装、传输,但不拆分,也不合并,保留原来报文的边界。
因此,UDP是报文流,而TCP是字节流。
因为UDP不拆分报文,自然也就没有报文段之说,但UDP报文传输到网络层后,在网络层仍然可以根据网络的MTU值进行分割,所以适合一次性传输少量数据的网络应用。比如适用于一些短消息类的数据传输,如DHCP、DNS中的一些消息就是采用UDP进行传输的。 -
无流量控制和拥塞控制
使用UD