用户数据报协议(UDP)是 ISO 参考模型中一种无连接的传输层协议,提供面向操作的简单不可靠信息传送服务。UDP 协议直接工作于IP协议的顶层。UDP 协议端口不同于多路应用程序,其运行是从一个单个设备到另一个单个设备。
大多数网络应用程序都是在相同的机器上运行。计算机上必须能确保目的地的正确软件应用程序从源地址处获得数据包,以及源计算机上的正确应用程序的回复获得选择路经。这一过程是通过使用 UDP 的“端口号”完成的。例如,如果一个工作站希望在站128.1.123.1上使用域名系统,它就得对欲连接的站128.1.123.1的包进行寻址操作并在 UDP 头插入目标端口号53。源端口号确定被请求域名服务的本地机的应用程序,同时需要对所有由目的站生成的响应包进行寻址。UDP 端口的详细介绍可以参照相关文章。
与 TCP 不同,UDP 并不提供数据传送的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单,UDP 头包含很少的字节,比 TCP 消耗少。
UDP 适用于不需要 TCP 可靠机制的情形,如:高层协议或应用程序提供错误和流控制的情况。 UDP 是传输层协议,应用于个别应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。
协议结构
|
Source Port — 16位。源端口是可选字段。当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。如果不使用,设置值为0。
Destination Port — 16位。目标端口在特殊因特网目标地址的情况下具有意义。
Length — 16位。该用户数据报的八位长度,包括协议头和数据。长度最小值为8。
Checksum — 16位。IP 协议头、UDP 协议头和数据位,最后用0填补的信息假协议头总和。如果必要的话,可以由两个八位复合而成。
Data — 包含上层数据信息。