3.2.1 UDP报文结构

UDP协议的主要功能是提供协议端口以便区分在一台计算机上运行的多个程序,它提供与IP一样的不可靠、无连接的数据报交付服务。因此,UDP报文可能出现丢失、重复或乱序到达等现象。由于协议的工作简单,因此,UDP的报文格式也比较简单。

UDP报文结构如下图所示:

当今有很多应用程序是基于UDP传输的,包括网络文件系统NFS、简单网络管理协议SNMP、域名系统DNS以及简单文件传输系统TFTP、动态主机配置协议DHCP和路由信息协议RIP等,另外用于在线欣赏视频或音频内容的流媒体软件往往也采用了UDP传输。因为UDP虽然不保证传输可靠性,但是网络传输代价小,实时性好。流媒体传输的完整性并不是最重要的,即使少量数据丢失,可能也仅仅影响欣赏视频和音乐的某个瞬间,因此适合采用UDP传输。

源端口和目的端口字段为16比特的UDP协议端口号,其中源端口是可选的,目的端口必须填写。若源端口不选,则取值为0。

长度字段记录UDP数据报的总长度,包括UDP首部和用户数据。长度以八位组为单位。

校验和字段的内容为整个UDP报文加上伪首部的校验和,其计算方法与IP数据报首部校验和的算法相同。该字段如果填写全0,则表示不计算校验和,主要用于一些需要高效率传输的场合。如果校验和本身计算出来为全0,由于采用反码表示,可以用全0或全1表示0,于是UDP使用全1来表示校验和值为0。