一、UDP概述
UDP 只在 IP 的数据报服务上增加了很少的功能:
复用和分用
差错检测
UDP 的主要特点:
(1) UDP 是无连接的,发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。
(2) UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
(3) UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。
(4) UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。
(5) UDP 支持一对一、一对多、多对一和多对多的交互通信。
(6) UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。
二、UDP的首部格式
UDP 首部有两个字段:数据字段和首部字段。
首部字段很简单,只有八个字节,由四个字段组成,每个字段都是两个字节:
(1)源端口 源端口号。在需要对方回信时选用,不需要是全用0.
(2)目的端口 目的端口号。在终点交付报文时必须使用。
(3)长度 UDP用户数据报的长度,最小是是7,即仅包含首部。
(4)检验和 检测UDP用户数据报在传输过程中是否有错,有错就丢弃。
当运输层从 IP 层收到 UDP 数据报时,就根据首部中的目的端口,把 UDP 数据报通过相应的端口,上交最后的终点——应用进程。
UDP差错检测:
前面首部中出现了一个伪首部,它的作用就是用来差错检测。
伪首部既不向下传送也不向上递交,仅仅是在计算检验和的时候临时出现。
该功能是可选的,不需要进行检测时,就全部填0 。
计算时包括三部分:伪首部、首部、数据。