什么是UDP通信
UDP,英文全称是User Datagram Protocol。即用户数据报协议。UDP是一种通信协议,主要用于在互联网上的应用程序之间建立低延迟和容失连接。UDP通过在接收方提供协议之前启用数据传输来加快传输速度。因此,UDP在时间敏感型通信中非常有用,包括IP语音(VoIP)、域名系统(DNS)查找以及视频或音频播放。TCP发送单个数据包,并被视为可靠的传输介质。另一方面,UDP发送消息,称为数据报,被认为是尽力而为的通信模式。这意味着UDP不提供任何数据将被传递的保证,也不提供特殊功能来重新传输丢失或损坏的消息。UDP是传输控制协议(TCP)的替代方案。UDP和TCP都运行在IP之上,有时被称为UDP/IP或TCP/IP。但是,两者之间存在重要差异。例如,UDP支持进程到进程的通信,而TCP支持主机到主机的通信。
UDP提供IP层未提供的两种服务。它提供端口号以帮助区分不同的用户请求。它还提供可选的校验和功能,以验证数据是否完好无损地到达。
用户数据报协议功能
用户数据报协议具有使其有利于与可以容忍丢失数据的应用程序一起使用的属性。以下是一些示例:- 它允许以与传输顺序不同的顺序丢弃和接收数据包,使其适用于延迟可能是一个问题的实时应用程序。
- 它可用于基于事务的协议,例如DNS或网络时间协议(NTP)。
- 它可用于连接大量客户端且不需要实时纠错的地方,例如游戏、语音或视频会议以及流媒体。
UDP标头组合
UDP在打包消息数据以通过网络连接传输时使用标头。UDP标头包含一组参数(称为字段),这些参数由协议的技术规范定义。- 用户数据报协议标头有四个字段,每个字段为2个字节。它们如下:
- 源端口号,即发送方的端口号;
- 目标端口号,数据报寻址到的端口;
- 长度,UDP标头和任何封装数据的长度(以字节为单位);和
- 校验和,用于错误检查-它在IPv6中是必需的,在IPv4中是可选的。
UDP的工作原理
UDP使用IP将数据报从一台计算机获取到另一台计算机。UDP的工作原理是在UDP数据包中收集数据并将自己的标头信息添加到数据包中。此数据由要通信的源端口和目标端口、数据包长度和校验和组成。UDP数据包封装在IP数据包中后,它们将被发送到其目的地。大多数应用程序等待它们期望收到的任何回复,这是使用UDP发送的数据包的结果。如果应用程序在特定时间范围内未收到回复,则应用程序将再次发送数据包,或者停止尝试。UDP使用不包括握手对话的简单传输模型来提供可靠性、排序或数据完整性。因此,UDP的服务是不可靠的。数据包可能会无序到达,似乎有重复项或消失而不发出警告。尽管这种传输方法不能保证发送的数据将到达目的地,但它的开销确实很低,并且对于第一次不必绝对工作的服务很受欢迎。与TCP不同,UDP不保证数据包会到达正确的目的地。这意味着UDP不会直接连接到接收计算机,而TCP会这样做。相反,它发送数据并依靠发送和接收计算机之间的设备来正确获取数据。
UDP的应用
无损数据传输
UDP可用于需要无损数据传输的应用。例如,配置为管理重新传输丢失数据包的过程并正确排列收到的数据包的应用程序可能使用UDP。与TCP相比,此方法有助于提高大文件的数据传输速率。在开放系统互连(OSI)通信模型中,UDP位于第4层,即传输层。UDP与更高级别的协议结合使用,以帮助管理数据传输服务,包括简单文件传输协议(TFTP)、实时流协议(RTSP)和简单网络管理协议(SNMP)。
游戏、语音和视频
UDP是感知延迟至关重要的网络应用的理想协议,例如在游戏、语音和视频通信中。这些示例可能会遭受一些数据丢失,而不会对感知质量产生负面影响。然而,在某些情况下,除了UDP之外,还使用前向纠错技术来提高音频和视频质量,尽管有一些损失。不需要固定数据包传输的服务
UDP还可用于依赖于可靠信息交换但应有自己的方法来应答数据包的应用程序。这些服务是有利的,因为它们不受固定模式的约束,以保证发送的数据包的完整性和正确性。用户可以决定如何以及何时响应不正确或未排序的信息。组播和路由更新协议
UDP也可用于组播,因为它支持分组交换。此外,UDP还用于某些路由更新协议,例如路由信息协议(RIP)。快速申请
UDP可用于速度而不是可靠性至关重要的应用。例如,在从快速采集发送数据的应用程序中使用UDP可能是谨慎的,因为可以丢失一些数据点。TCP与UDP
TCP和UDP是TCP/IP协议套件的一部分,其中包括许多用于执行网络通信的协议。TCP已成为用于大量互联网连接的主要协议,因为它能够将大型数据集分解为单个数据包,检查并重新发送丢失的数据包,并以正确的顺序重新组装数据包。但是,这些额外的服务是以额外的数据开销和延迟为代价的。
相比之下,UDP被认为是一种无连接协议,因为它不需要在任何数据传输发生之前建立虚拟电路。通信协议只发送数据包,这意味着它具有更低的带宽开销和延迟。使用UDP,数据包可能会在发送方和接收方之间采用不同的路径。因此,某些数据包可能会丢失或无序接收。
UDP特征包括:
- 它是一种无连接协议。
- 它用于VoIP,视频流,游戏和直播。
- 它速度更快,需要的资源更少。
- 数据包不一定按顺序到达。
- 它允许丢失数据包-发送方无法知道是否已收到数据包。
- 它更适合需要快速、高效传输的应用,例如游戏。
- 它是一个面向连接的协议。
- 它是互联网上使用最广泛的协议。
- 它保证没有数据包丢失,并且所有发送的数据都会到达预期的接收者。
- 它按顺序发送数据包,以便可以轻松地将它们缝合在一起。
- 它速度较慢,需要更多资源。
- 它的标头比UDP大。
- 它最适合需要高可靠性的应用,并且传输时间相对不那么重要。