UDP协议专题

一,什么是UDP?

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议传输可靠性没有保证

二,UDP报文头

UDP报文分为UDP报文头UDP数据区域两部分。报头由源端口、目的端口、报文长度以及校验和组成。

UDP头部的标识如下:

16位源端口号:源主机的应用程序使用的端口号。

16位目的端口号:目的主机的应用程序使用的端口号。

16位UDP长度:是指UDP头部和UDP数据的字节长度。因为UDP头部长度为8字节,所以该字段的最小值为8。

16位UDP校验和:该字段提供了与TCP校验字段同样的功能;该字段是可选的。

三,为什么需要UDP?

UDP传输IP传输非常类似,它的传输方式也是"尽最大能力交付"的,所以UDP协议也是不可靠的。

我们知道TCP就是为了解决IP层不可靠的传输层协议,既然UDP是不可靠的,为什么不直接使用IP协议而要额外增加一个UDP协议呢

1、一个重要的原因是IP协议中并没有端口(port)的概念。IP协议进行的是IP地址到IP地址的传输,这意味者两台计算机之间的对话。但每台计算机中需要有多个通信通道,并将多个通信通道分配给不同的进程使用。一个端口就代表了这样的一个通信通道。UDP协议实现了端口,从而让数据包可以在送到IP地址的基础上,进一步可以送到某个端口。

2、对于一些简单的通信,我们只需要“尽最大能力交付”式的IP传输就可以了,而不需要TCP协议复杂的建立连接的方式(特别是在早期网络环境中,如果过多的建立TCP连接,会造成很大的网络负担,而UDP协议可以相对快速的处理这些简单通信)

3、在使用TCP协议传输数据时,如果一个数据段丢失或者接收端对某个数据段没有确认,发送端会重新发送该数据段。TCP重新发送数据会带来传输延迟和重复数据,降低了用户的体验。对于迟延敏感的应用,少量的数据丢失一般可以被忽略,这时使用UDP传输将能够提升用户的体验

四,UDP应用场景

当应用程序对传输的可靠性要求不高,但是对传输速度和延迟要求较高时,可以用UDP协议来替代TCP协议在传输层控制数据的转发。

UDP适合于实时数据传输,如语音视频通信,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。例如:我们在看视频的时候偶尔丢一两个包也不影响体验。

常用的使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP

UDP端口号有:53(DNS)、69(TFTP)、161(SNMP)。

五,UDP协议的可靠性该由谁保证?

UDP将数据从源端发送到目的端时,无需事先建立连接,没有使用TCP中的确认技术或滑动窗口机制,因此UDP不能保证数据传输的可靠性,也无法避免接收到重复数据的情况。

UDP传输的可靠性由应用层负责由应用程序根据需要提供报文到达确认、排序、流量控制等功能。

六,UDP协议优缺点

优点:UDP协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高,开销更小,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序,如DNS、TFTP、SNMP等。

缺点:UDP报文没有可靠性保证、顺序保证和流量控制字段

七,UDP工作原理

主机A发送数据包时,这些数据包是以有序的方式发送到网络中的,每个数据包独立地在网络中被发送,所以不同的数据包可能会通过不同的网络路径到达主机B。这样的情况下,先发送的数据包不一定先到达主机B。

因为UDP数据包没有序号,主机B将无法通过UDP协议将数据包按照原来的顺序重新组合,所以此时需要应用程序提供报文的到达确认、排序和流量控制等功能。

通常情况下,UDP采用实时传输机制时间戳来传输语音和视频数据。

八,TCP与UDP的区别?

相同点

UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层。

不同点

1、TCP 是面向连接的传输控制协议,而UDP 提供了无连接的数据报服务;

2、TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;

3、UDP 具有较好的实时性,工作效率较 TCP 协议高;

4、UDP 段结构比 TCP 的段结构简单,因此网络开销也小

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nathaniel333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值