无连接协议 UDP User Datagram Protocol 用户数据报协议特点:
1.功能简单
在网络协议IP上增加了一些多路复用/多路分解服务而已以及少量的差错检测
2.作用过程
UDP从应用进程得到数据,附加上用于多路复用/分解服务的源和目的端口号字段以及两个小字段,然后将形成的报文交给网络层,如果该报文段到达接收主机,UDP使用目的端口号将报文段中的数据交付给正确的应用进程
3.使用UDP协议的案例
DNS 是使用UDP的应用层协议的例子,因为无须建立连接,可以低时延
SNMP 简单网络管理协议也运行在UDP上,因为网络管理应用程序必须在网络处于重压状态下运行
4.适用于UDP的应用的特点
应用要求低时延,可以容忍数据丢失
采用UDP,只要应用进程将数据传递给UDP,UDP就会将此数据丢包进UDP报文段并立即传递给网络层,而TCP有一个拥塞控制机制
无须连接建立
UDP不会引入建立连接的时延,HTTP使用TCP,因为对于文本类型的Web网页,可靠性至关重要
无连接状态
TCP需要在端系统中维护连接状态,包括接收和发送缓存,拥塞控制参数,以及序号与确认号的参数
UDP不维护连接状态,也不跟踪这些参数,服务器运行在UDP上比TCP支持更多活跃用户
分组首部开销小
每个TCP报文段都有20字节的首部开销,而UDP仅有8字节的开销
5.UDP报文段结构
8个字节,源端口号、目的端口号、长度、检验和,每个字段由两个字节组成
通过端口号可以让目的主机的运输层执行分解功能
长度字段指示了在UDP报文段中的字节数(首部加数据的长度)
接收方通过检验和来检查在该报文段中是否出现了差错
6.UDP检验和
检验和用于确定当UDP报文段从源到达目的地移动时,其中比特是否发生改变,例如由于链路中噪声干扰或差错在路由器中时引入问题
发送方的UDP四个字段(包括检验和)的每个字段2字节即16比特位加在一起的结果应当是 1111111111111111,如果有一个比特是0,则知道分组出现了差错
7.UDP提供差错检测,但对差错恢复无能为力
UDP对于出现差错的报文有两种处理方式
丢弃受损的报文段
将受损报文段交给应用程序并给出警告