UDP

UDP是user datagram protocol的缩写。

UDP是轻量级的协议,它仅仅只在网络层之上做了多路复用/分解和少量的差错校验。这是由于数据链路层并不一定提供差错检验,因此UDP提供了差错校验,但是它不恢复差错。

UDP不提供复杂的控制机制,它仅仅利用IP来提供面向无连接的通信服务。UDP也是一种无修饰的传输层协议。它将应用层的数据原封不动的发送出去。UDP会尽最大的可能去传输数据。UDP没有拥塞控制。

UDP协议会尽最大的可能将数据发送出去,但是不保证一定送达,并且它也不保证数据到达的顺序。也就是说,UDP是不可靠的协议,使用UDP的应用程序应当自行解决这个问题。UDP同时还是面向无连接的,也就是说,它不需要和通信的另一方建立连接,甚至通信的另一方存不存在,UDP都不关心。

UDP的首部开销非常小,只有8个字节。而且UDP是面向报文的,它只对应用层交给他的报文添加一个8字节的首部。然后就交给下一层。也就是说,它不对报文做任何的修改。无需拆分报文,当然也就无需合并下层交给他的报文。即:UDP一次发送一个报文。这就要求应用程序产生的报文大小要合理。综合上面的分析,可以看出UDP对应用软件的要求较高。

UDP首部的格式:

其中这个长度是首部和数据的总长度。

由于UDP是面向无连接的通信,它可以随时发生数据。因此常被用于以下这些方面:

  • 包总量较少的通信(DNS,SNMP)
  • 视频,音频等多媒体网络通信(即时通信)
  • 限定于LAN等特殊网络中的应用通信
  • 广播通信(广播,多播)

UDP编程示例

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券