网络基础(六)传输层UDP & 报文格式

UDP

Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。RFC 768 描述了 UDP。
Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。

特点

  1. UDP 是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。
  2. UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
  3. UDP 是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文。
  4. UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。很多的实时应用(如IP电话、实时视频会议等)要去源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太多的时延。UDP正好符合这种要求。
  5. UDP 支持一对一、一对多、多对一和多对多的交互通信。
  6. UDP 的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

虽然某些实时应用需要使用没有拥塞控制的UDP,但当很多的源主机同时都向网络发送高速率的实时视频流时,网络就有可能发生拥塞,结果大家都无法正常接收。因此,不使用拥塞控制功能的UDP有可能会引起网络产生严重的拥塞问题。
还有一些使用UDP的实时应用,需要对UDP的不可靠的传输进行适当的改进,以减少数据的丢失。在这种情况下,应用进程本身可以在不影响应用的实时性的前提下,增加些提高可靠性的措施,如采用前向纠错或重传已丢失的报文。

UDP 和 TCP 区别

  1. 连接方面区别

    TCP面向连接(如打电话要先拨号建立连接)。
    UDP是无连接的,即发送数据之前不需要建立连接。

  2. 安全方面的区别

    TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。
    UDP尽最大努力交付,即不保证可靠交付。

  3. 传输效率的区别

    TCP传输效率相对较低。
    UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。

  4. 连接对象数量的区别

    TCP连接只能是点到点、一对一的。
    UDP支持一对一,一对多,多对一和多对多的交互通信。

网络基础(六)传输层UDP & 报文格式

UDP报文格式

网络基础(六)传输层UDP & 报文格式
字段比较少

  • 源端口
  • 目的端口
  • 长度
  • 校验和
  • 数据

因为UDP是非面向连接的,所以呢在发送数据的时候也不需要 先连接机器。

没错 就这点东西 哈哈…