★什么是 UDP?
UDP(User Datagram Protocol,用户数据报协议)是一种在互联网上作为标准协议使用的协议,就像 IP 和 TCP 一样。
UDP 是在传输层运行的协议,是网络层IP的上层协议。
UDP是网络层 IP与会话层以上协议(如 DNS、NTP、DHCP)之间的桥梁协议。
UDP端口号的概念与 TCP 类似。 不过,与TCP不一样,UDP不会提供三方握手、确认、排序、重传控制、窗口和其他功能。
它是一种几乎什么都不做的协议,没有像 TCP 那样的排序控制、重传控制、窗口控制和流量控制等功能。
UDP 是一种用于通信的协议,其可靠性不如 TCP,但要求速度和实时性。
TCP采用基于连接的通信方式(在通信开始前在对方之间建立虚拟通信通道)。
UDP 使用无连接通信(通信开始前不与对方进行事先交换)。
★UDP 的特点
UDP 是一种无连接协议,这意味着虽然它的可靠性不如 TCP,但它可以高速传输数据。
此外,UDP 报头的大小(8 字节)很小,这意味着可以收发更多的应用数据。 但是,由于不能保证数据包一定能到达目的地,因此会出现数据包丢失等情况。
因此一旦出现数据包丢失等情况,应用程序需要重新传输数据包以建立通信,或者应用程序需要能够容忍数据包丢失。
★UDP 的应用
(1) 传输语音和视频等实时数据时
传输语音数据时,如果每次发送数据时都进行确认,如 TCP,语音通话就会中断或听不清。 在这种需要实时性能的数据通信中
需要的是高速数据传输而不是可靠性。 因此,UDP 为语音通信提供了更好的质量。
(2) 同时向多方传输相同数据时
使用 TCP 通信只能进行单播通信,因为必须与通信伙伴建立一对一的连接。
TCP 不能用于多播或广播通信,即一个数据包发送到多个目的地。
TCP 不能用于向多个目的地发送单个数据包的组播或广播通信。
因此,不需要建立连接的 UDP 适用于一对 N 的通信。
(3) 不要求可靠性,但需要传输少量数据时。
例如,DNS 服务器和客户端 PC 之间的数据通信需要客户端 PC 发出一次查询,DNS 服务器作出一次响应。
通过客户端 PC 的一次查询和 DNS 服务器的一次响应完成通信。
这种交换如果采用三方握手方式。进行 3 次握手,通信效率会很低。
UDP 适用于只需少量数据传输即可完成的通信。
★TCP和UDP的比较