UDP: User Datagram Protocol。 是 OSI 七层模型中的传输层的协议。 也是面向数据报的传输层协议。
UDP 的特点
UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。 并且它是将应用程序传递的数据在接收到的那一刻,立即按照原样发送到网络上的一种机制。
应用程序传递数据 ——> UDP 按照原样立即发送。
- 不提供 数据包 的分组 和组装 (如果一次发送的数据过大怎么办?)
- 传输过程中数据包出现丢包,也不会负责重发。
- 接受法的数据包乱序到达的时候,也不提供排序功能。
- 在出现网络拥堵的时候,无法进行流量控制来避免网络阻塞。
如果要实现这些细节控制,那么就应该 交由采用 UDP 的上层应用程序去处理。
UDP: 类似于用户(程序员?)说什么就做什么的机制。 (程序员让它发送什么就发送什么)。 反之, TCP 拥有各种各样的控制机制,所以它在发送数据的时候 未必 会按照程序员的编程思路来发送。(比如说,程序员想要发送一个数据包,但是可能TCP会对其进行分组,虽然这些对程序员是透明的)
由于 UDP 面向无连接的,所以 它可以随时发送数据。(不必知道对方是否存在)。 再加上UDP本身的处理既简单又高效,因此经常用于以下几个方面:
- 包总量较少的通信: DNS(域名系统)、SNMP(简单网络管理协议)、DHCP(动态主机配置)、RIP(路由信息协议)
- 视频音频等多