3.3-无连接传输协议-UDP
UDP
基于Internet IP协议
- 复用/分用
- 简单的错误校验
“Best effort”服务(尽力而为)
- 可能丢失
- 可能非按序到达
无连接
- UDP发送方和接收方之间不需要握手
- 每个UDP段的处理独立于其他段
UDP为什么存在
- 无需建立连接(减少延迟)
- 实现简单:无需维护连接状态
- 头部开销少
- 没有拥塞控制:应用可以更好的控制发送的时间和速率
常用于流媒体应用
- 容忍丢失
- 速率敏感
UDP还用于
- DNS(Domain Name System缩写DNS,Domain Name被译为域名)
- SNMP
SNMP具有以下技术优点:
- 基于TCP/IP互联网的标准协议,传输层协议一般采用UDP。
- 自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
- 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。
- 简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。
- 报文种类少,报文格式简单,方便解析,易于实现。
- SNMPv3版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。
UDP上实现可靠数据传输
- 在应用层增加可靠机制
- 应用特定的错误恢复机制
UDP校验和(checksum)
检测UDP段在传输过程中是否发生错误(如位翻转)
发送方
- 将段的内容视为16-bit整数
- 校验和计算
- 计算所有整数的二进制和
- 最高进位和加在和的后面
- 将得到的值按位取反,得到校验和
- 发送方将校验和放入校验和字段
接收方
- 计算收到段的校验和
- 将其与校验和字段进行对比
- 不相等:检测出错误
- 相等:没有检测出错误(有可能有错误,例如多个错误相互抵消)
校验和计算示例