1 UDP协议的基本概念
UDP: User Datagram Protocol [RFC 768]
- 基于Internet IP协议
- 复用/分用
- 简单的错误校验
- “Best effort”服务(不可靠),UDP段可能
- 丢失
- 非按序到达
无连接
- UDP发送方和接收方之间不需要握手
- 每个UDP段的处理独立于其他段
常用于流媒体应用
- 容忍丢失
- 速率敏感
- UDP还用于
- DNS
- SNMP
在UDP上实现可靠数据传输?
- 在应用层增加可靠性机制
- 应用特定的错误恢复机制
UDP为什么存在?
- 无需建立连接 (减少延迟)
- 实现简单:无需维护连接状态
- 头部开销少
- 没有拥塞控制: 应用可更好地控制发送时间和速率
2 UDP协议的责任
- 创建进程到进程间的通信(由端口号完成)
- 有限的差错控制,出现差错悄悄丢弃报文分组
3 UDP协议数据格式
UDP校验和(checksum)
目的:检测UDP段在传输中是否发生错误(如位翻转)。
发送方
- 将段的内容视为16-bit整数
- 校验和计算:计算所有整数的和,进位加在和的后面,将得到的
值按位求反,得到校验和 - 发送方将校验和放入校验和字段
接收方
- 计算所收到段的校验和
- 将其与校验和字段进行对比
- 不相等:检测出错误
- 相等:没有检测出错误(但可能有错误)
注意:最高位进位必须被加进去
示例:
4 关于端口
TCP和UDP都用端口(port)号来识别应用层实体,以便准确地把信息提交给上层对应地协议(进程)。