UDP是user datagram protocol的缩写。
UDP是轻量级的协议,它仅仅只在网络层之上做了多路复用/分解和少量的差错校验。这是由于数据链路层并不一定提供差错检验,因此UDP提供了差错校验,但是它不恢复差错。
UDP不提供复杂的控制机制,它仅仅利用IP来提供面向无连接的通信服务。UDP也是一种无修饰的传输层协议。它将应用层的数据原封不动的发送出去。UDP会尽最大的可能去传输数据。UDP没有拥塞控制。
UDP协议会尽最大的可能将数据发送出去,但是不保证一定送达,并且它也不保证数据到达的顺序。也就是说,UDP是不可靠的协议,使用UDP的应用程序应当自行解决这个问题。UDP同时还是面向无连接的,也就是说,它不需要和通信的另一方建立连接,甚至通信的另一方存不存在,UDP都不关心。
UDP的首部开销非常小,只有8个字节。而且UDP是面向报文的,它只对应用层交给他的报文添加一个8字节的首部。然后就交给下一层。也就是说,它不对报文做任何的修改。无需拆分报文,当然也就无需合并下层交给他的报文。即:UDP一次发送一个报文。这就要求应用程序产生的报文大小要合理。综合上面的分析,可以看出UDP对应用软件的要求较高。
UDP首部的格式:
其中这个长度是首部和数据的总长度。
由于UDP是面向无连接的通信,它可以随时发生数据。因此常被用于以下这些方面: