用户数据报协议(UDP)是传输层协议。UDP是Internet协议套件的一部分,称为UDP/IP套件。与TCP不同,它是一种不可靠的无连接协议。因此,在数据传输之前不需要建立连接。& UDP帮助建立通过网络建立的低延迟和允许丢失的连接。UDP使进程能够进行通信。
尽管传输控制协议(TCP)是与大多数因特网服务一起使用的主要传输层协议;提供有保证的交付、可靠性等,但所有这些服务都使我们付出了额外的开销和延迟。在这里,UDP进入画面。用于实时服务,如计算机游戏、语音或视频通信、现场会议;我们需要UDP。由于需要高性能,UDP允许丢弃数据包,而不是处理延迟的数据包。UDP中没有错误检查,因此也节省了带宽。
用户数据报协议(UDP)在延迟和带宽方面更有效。
UDP Header——
UDP报头是8字节的固定且简单的报头,而对于TCP,其可以从20字节到60字节变化。前8个字节包含所有必要的报头信息,其余部分由数据组成。UDP端口号字段每个都是16位长,因此端口号的范围被定义为从0到65535;端口号0被保留。端口号有助于区分不同的用户请求或进程。
- 源端口:源端口是一个2字节长的字段,用于标识源的端口号。
- 目标端口:它是一个2字节长的字段,用于标识目的地数据包的端口。
- 长度:长度是UDP的长度,包括报头和数据。它是一个16位字段。
- 校验和:校验和是2字节长的字段。它是UDP报头、来自IP报头的信息的伪报头和数据的1的补码和的16位1的补码,在结尾处用零八位字节填充(如果需要)以形成两个八位字节的倍数。
注意-与TCP不同,校验和计算在UDP中不是强制性的。UDP不提供错误控制或流量控制。因此UDP依赖于IP和ICMP进行错误报告。 UDP还提供端口号,以便区分用户请求。
UDP的应用:
- 当数据量较小时,用于简单的请求-响应通信,因此对流和错误控制的关注较少。
- 由于UDP支持分组交换,因此它是用于多播的合适协议。
- UDP用于某些路由更新协议,如RIP(路由信息协议)。
- 通常用于不能容忍接收消息各部分之间不均匀延迟的实时应用。
- UDP广泛用于在线游戏,其中低延迟和高速通信对于良好的游戏体验至关重要。游戏服务器经常向客户端发送小而频繁的数据包,UDP非常适合这种类型的通信,因为它快速且轻量级。
- IPTV、在线广播和视频会议等流媒体应用程序使用UDP传输实时音频和视频数据。在这些应用中可以容忍一些分组的丢失,因为数据是连续流动的并且不需要重传。
- VoIP(互联网协议语音)服务,如Skype和WhatsApp,使用UDP进行实时语音通信。如果数据包由于拥塞控制而延迟,则语音通信中的延迟可能是明显的,因此使用UDP来确保快速有效的数据传输。
- DNS(域名系统)也使用UDP来处理其查询/响应消息。DNS查询通常很小,需要快速响应时间,因此UDP是此应用程序的合适协议。
- DHCP(动态主机配置协议)使用UDP动态地将IP地址分配给网络上的设备。DHCP消息通常很小,并且由数据包丢失或重传引起的延迟通常对该应用程序来说并不重要。
- 以下实现使用UDP作为传输层协议:
- 网络时间协议
- DNS(Domain Name Service)域名服务
- BOOTP、DHCP。
- 网络新闻协议
- 每日方案报价
- TFTP、RTSP、RIP。
- 应用层可以通过UDP完成一些任务-
- Trace Route
- 记录路由
- 时间戳
- UDP从网络层获取数据报,附加其报头,并将其发送给用户。所以,它工作得很快。
- 实际上,如果删除校验和字段,UDP就是空协议。
- 减少对计算机资源的需求。
- 使用多播或广播传输时。
- 实时数据包的传输,主要在多媒体应用中。
UDP的优点:
1.速度:UDP比TCP快,因为它没有建立连接和确保可靠数据传输的开销。
2.更低的延迟:由于没有建立连接,所以延迟更低,响应时间更快。
3.简单性:UDP的协议设计比TCP更简单,更易于实现和管理。
4.广播支持:UDP支持向多个接收者广播,这使得它对于视频流和在线游戏等应用非常有用。
5.较小的数据包大小:UDP使用比TCP更小的数据包大小,这可以减少网络拥塞并提高整体网络性能。
UDP的缺点:
1.无可靠性:UDP不保证数据包的传递或传递顺序,这可能导致数据丢失或重复。
2.无拥塞控制:UDP没有拥塞控制,这意味着它可以以可能导致网络拥塞的速率发送数据包。
3.无流量控制:UDP不具有流量控制,这意味着它可以用它无法处理的数据包压倒接收方。
4.易受攻击的:UDP容易受到拒绝服务攻击,攻击者可以用UDP数据包淹没网络,淹没网络并导致其崩溃。
5.有限的用例:UDP不适用于需要可靠数据传输的应用程序,例如电子邮件或文件传输,而更适合于可以容忍一些数据丢失的应用程序,例如视频流或在线游戏。
UDP伪报头:
- 使用伪报头的目的是验证UDP数据包是否已到达正确的目的地
- 正确目的地由特定机器和机器内的特定协议端口号组成
UDP伪头
UDP伪标头详细信息:
- UDP报头本身仅指定协议端口号。因此,为了验证发送机器上的目的UDP,计算一个包括目的IP地址和UDP数据包的校验和。
- 在最终目的地,UDP软件使用从携带UDP消息的IP分组的报头获得的目的地IP地址来验证校验和。
- 如果校验和一致,则分组已经到达预期目的地主机以及该主机内的正确协议端口必须是真的。
用户界面:
用户接口应允许创建新的接收端口,在接收端口上执行返回数据八位组以及源端口和源地址指示的接收操作,以及允许发送数据报的操作,指定要发送的数据、源端口和目的端口和地址。
IP接口:
- UDP模块必须能够确定源和目的地因特网地址以及来自因特网报头的协议字段
- 一个可能的UDP/IP接口将响应于接收操作返回包括整个因特网报头的整个因特网数据报
- 这样的接口还将允许UDP将完整的具有报头的因特网数据报传递给IP以发送。IP将验证某些字段的一致性并计算因特网报头校验和。
- IP接口允许UDP模块与协议栈的网络层交互,该网络层负责在网络上路由和传递数据。
- IP接口通过提供对底层IP协议的访问,为UDP模块提供与网络上的其他主机通信的机制。
- IP接口可以由UDP模块使用,以在IP路由和寻址机制的帮助下通过网络发送和接收数据分组。
- IP接口提供了一个抽象级别,允许UDP模块与网络层交互,而不必直接处理IP路由和寻址的复杂性。
- IP接口还处理IP分组的分段和重组,这对于可能超过网络所允许的最大分组大小的大数据传输是重要的。
- IP接口还可以提供附加服务,诸如对服务质量(QoS)参数和诸如IPsec的安全机制的支持。
- IP接口是互联网协议套件的关键组件,因为它使互联网上的主机之间能够进行通信,并允许在网络上无缝传输数据包。
暂无评论内容