详解UDP协议,UDP数据报格式,头部格式

1.UDP协议概述

1.用户数据报协议(User Datagram Protocol)简称UDP协议,它是在IP的数据报服务上增加了端口和简单的差错检测来实现进程到进程之间的数据传输。

2.UDP协议有如下几个特点:

a.无连接。UDP是无连接的协议,数据传输之前不需要建立数据连接,也没有超时重传等机制,拥塞控制以及流量控制,但是传输速度快,灵活。

b.不可靠,尽最大努力交付。报文有可能存在重复,失序,丢失。

c.面向报文。TCP(面向连接的传输控制协议)是面向字节传输,而UDP是面向报文传输,对于应用层交下来的报文段不进行拆分合并,直接保留原有报文段的边界然后添加UDP的首部就交付给网络层。不论报文的长短,UDP都不会进行处理。因此为了避免报文段过短降低传输效率以及报文段过长导致网络层对IP数据进行分片操作,应用层应该选择合适长度的报文交付给运输层的UDP。

d.支持一对一,一对多,多对一,多对多的交互通信,组播以及广播功能。这点弥补了TCP的不足

f.UDP首部只有8字节(源端口号,目的端口号,UDP总长度,检验和,各16位/2字节)。TCP首部固定20字节。

3.UDP的应用:
应用层协议DNS(域名服务)、DHCP动态主机配置协议)、TFTP(简单文件传输协议)、SNMP(简单网络管理协议)、RIP(路由信息协议)传输层协议都是采用的UDP协议。

应用层协议FTP(文件传输协议)、Telnet(远程终端协议)、SMTP(简单邮件传输协议)、HTTP(超文本传输协议)、BGP(边界网关协议)传输层协议采用的是TCP协议。

3.UDP的首部格式:
详解UDP协议,UDP数据报格式,头部格式

讲解一下:
*UDP头部很简单,包括源端口,目的端口,UDP总长度,校验和,各占16位/2字节,共8字节。
*源端口:长度16位,指定发送方所使用的端口号,若不需要对方回发消息,则可全置为0。
*目的端口:长度16位,指定接收方所使用的端口号。
*UDP总长度:长度16位,指定了UDP数据报的总长度。
*校验和:长度16位,用于UDP的差错检测,防止UDP报文出错,同时伪首部参与计算,避免UDP用户数据报传送到错误的目的地。UDP的首部,数据部分,伪首部都会参与检验和的计算,各字段是按照16比特为单位进行计算的,因此数据部分是要保证是16比特的倍数,不够用0填充。