udp是什么意思(分析UDP简单理解)

网站编辑01 2022-07-31 15:11:04 阅读:15

  UDP是什么

  UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是(Open System Interconnection,OSI) 参考模型中一种无连接的协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。IETF RFC 768 是UDP的正式规范。UDP在IP报文的协议号是17。

  UDP 的首部格式

  用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段很简单,只有8个字节,由四个字段组成,每个字段都是两个字节

udp是什么意思(分析UDP简单理解)

  首部字段

  源端口: 源端口号。因为UDP不需要应答,所以来源端口是可选的,如果来源端口不用,那么置为零。

  目的端口 :目的端口号。这在终点交付报文时必须使用

  长度: UDP 用户数据报的长度,其最小值是8(仅有首部)

  检验和: 检测 UDP 用户数据报在传输中是否有错。有错就丢弃。UDP和TCP的校验和都覆盖到了它们的首部和数据。

  伪首部

  伪首部的源IP地址字段和目的IP地址字段记录了发送UDP报文时使用的源IP地址和目的IP地址。协议字段指明了所使用的协议类型代码(UDP是17),而长度字段是UDP数据报的长度。接收方进行正确性验证的时候,必须要把这些字段的信息从IP报文的首部中抽取出来,以伪首部的格式进行装配,然后再重新计算校验和。

  UDP 用户数据报首部中检验和的计算方法有些特殊。在计算检验和时,要在 UDP 用户数据报之前增加 12 个字节的伪首部。所谓"伪首部"是因为这种伪首部并不是 UDP 用户数据报真正的首部。只是在计算检验和时,临时添加在 UDP 用户数据报前面,得到一个临时的 UDP 用户数据报。检验和就是按照这个临时用户数据报来计算的。伪首部既不向下传也不向上递交,而仅仅是为了计算检验和

  主要特点

  UDP是一个无连接协议。即发送数据之前不需要建立连接(发送数据结束时也没有连接可释放),减少了开销和发送数据之前的时延。传输数据时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。

  尽最大努力交付。即不保证可靠交付,主机不需要维持复杂的连接状态表。

  UDP是面向报文的。发送方的 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

  UDP 的首部开销小。只有8个字节,比 TCP 的20个字节的首部要短

  UDP 没有拥塞控制。吞吐量不受拥挤控制算法的调节,只受生成数据的速率、传输带宽、源端和终端主机性能的限制。网络出现的拥塞不会使源主机的发送速率降低。

  UDP 支持一对一、一对多、多对一和多对多的交互通信。

  UDP的优缺点

  优点

  ①开销更小。TCP为了保证其可靠性,首部包含20字节,以及40字节的可选项,UDP首部只有8字节

  ②速度更快。UDP发送数据之前没有TCP的连接建立过程。TCP提供了过多的保护,在及时性上做了很多的妥协,比如:控制微包(Nagle算法),延时ACK,流量控制,超时重传等,这些设计严重影响了Tcp的速度和及时性

  缺点

  ①丢失和乱序。因为UDP不提供ACK、序列号等机制,所以是没有办法知道是否有报文丢失以及接收方到达等报文顺序是否和发送方发送的报文数据一样;

  ②差错。对于差错问题则是可以通过校验和等检测到,但是不提供差错纠正。

  ③数据完整性。UDP协议头部虽然有16位的校验和,但是IPv4并不强制执行,也就是说UDP无法保证数据的完整

二维码