数据单位
UDP 传送的数据单位协议是 UDP 报文或用户数据报
特点
UDP 是无连接的,即发送数据之前不需要建立连接
UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制
UDP 是面向报文的.UDP 没有拥塞控制,很适合多媒体通信的要求
UDP 支持一对一、一对多、多对一和多对多的交互通信
UDP 的首部开销小,只有 8 个字节
具体实现
发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层.UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界
应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文
接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文
要求
应用程序必须选择合适大小的报文
UDP首部格式
说明:
- 户数据报 UDP 有两个字段:数据字段和首部字段.首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节
- 在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起,伪首部仅仅是为了计算检验和
图释:
首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。【也就是说伪首部不会添加到数据包里面】
抓包过后才发现,ip数据包首部没有添加可选项,就直接装载 udp数据了。
发送UDP请求的客户端图释
参考:
http://www.cnblogs.com/kzang/articles/2582879.html