UDP协议

271 阅读2分钟

UDP协议

UDP(User Datagram Protocol,用户数据报协议)是一个简单地面向数据报的运输层协议,为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法

UDP的主要特点:

  • UDP 是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延
  • UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表
  • UDP 是面向报文的,发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界
  • UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低
  • UDP 支持一对一、一对多、多对一和多对多的交互通信
  • UDP 的首部开销小,只有8个字节,比TCP的20个字节的首部要短
  • UDP 传输数据报文,每个数据报都独立传输,到达顺序可能不同于发送顺序

UDP报文格式

image.png

  • UDP首部有8个字节,由4个字段构成,每个字段都是两个字节
  • 源端口: 源端口号,需要对方回信时选用,不需要时全部置0
  • 目的端口:目的端口号,在终点交付报文的时候需要用到
  • 长度:UDP的数据报的长度(包括首部和数据)其最小值为8(只有首部)
  • 校验和:检测UDP数据报在传输中是否有错,有错则丢弃。该字段是可选的,当源主机不想计算校验和,则直接令该字段全为0

UDP存在的问题

  • 丢包、乱序 - 数据报可能在网络中丢失或到达顺序错误
  • 没有拥塞控制 - 可能导致网络拥塞
  • 需在应用层实现可靠性、流量控制等机制 - 增加应用开发难度

改进UDP协议

  • 在UDP上实现可靠传输协议 - 如QUIC、SCTP等,通过确认、重传、序号等机制提供可靠、有序的数据传输
  • 应用自适应拥塞控制和流量控制 - 如应用层根据网络负载情况动态调整发送速率
  • 优化网络路径和资源分配 - 通过网络质量检测、多路径传输等技术提高网络可靠性
  • 数据冗余和FEC技术 - 在应用层通过数据分片、重复传输、前向错误校验等实现可靠性保障
  • UDP与TCP协同工作 - 按需适当引入TCP以获得可靠性保证,同时保持UDP的低延迟特点
  • 在网络边缘节点缓存和重传丢失报文 - 也称作报文中继,可以掩盖部分网络不可靠性