【计算机网络】第三章 传输层(2)
三.UDP协议
1. UDP:用户数据报协议
(1)基于Internet IP协议增加了复用/分用功能和简单的错误校验
(2)提供“尽力而为”的服务:没有数据恢复,可能丢失、非按序到达
(3)无连接:不需要握手,每个UDP段的处理独立于其他段
2. UDP存在的价值
(1)不需连接 -> 减少延迟
(2)实现简单 -> 无需维护连接状态,头部开销少
(3)没有拥塞控制 -> 应用可更好地控制发送时间和速率
3. UDP的应用:流媒体应用、DNS、SNMP
4. UDP实现可靠数据传输
(1)在应用层增加可靠性机制
(2)应用特定的错误回复机制
5. UDP校验和checksum:监测UDP在传输中是否发生错误
(1)发送方:将段的内容视为16-bit整数,计算所有整数的和,进位加在后面,得到的值按位求反,得到校验和,放入校验和字段
(2)接收方:计算所收到段的校验和,将其与校验和字段进行对比,不相等则有错误,相等则没有检测出错误
(3)示例:
四.可靠数据传输原理
1. 可靠数据传输协议
(1)信道的不可靠特性决定了可靠数据传输协议的复杂性
(2)提供服务:向应用层提供可靠信道,向传输层提供正确交互
(3)基本结构:接口
(4)渐进地设计可靠数据传输协议的发送方和接收方
(5)只考虑单向数据流动,但控制信息双向流动
(6)利用状态机(FSM)刻画传输协议
2. Rdt 1.0:可靠信道上的可靠数据传输
(1)底层信道完全可靠:不会发生错误,不会丢弃分组
(2)发送方和接收方的FSM独立
3. Rdt 2.0:产生位错误的信道
(1)利用校验和检测底层信道位错误
(2)从错误中恢复
·确认机制(ACK):接收方显式地告诉发送方分组已正确接收
·NAK:接收方显式地告诉发送方分组有错误,发送方收到后重传分组
(3)基于该重传机制的Rdt协议称为ARQ
(4)引入的新机制:差错检测、接收方反馈控制消息ACK/NAK、重传
(5)FSM规约:
(6)缺陷
·ACK/NAK消息被破坏
·重传时产生重复分组
4. Rdt 2.1
(1)改进Rdt 2.0
·为ACK/NAK增加校验和,检错纠错
·添加额外的控制消息告诉发送方错在何处
·发送方给每个分组增加序列号,接收方丢弃重复分组
(2)接收方FSM:
5. Rdt 2.2:无NAK消息协议
(1)在ACK消息中显式地加入被确认分组地序列号
(2)告知发送方最后一个正确接收的分组
6. Rdt 3.0:增加定时器
(1)如果信道既可能发生错误,也可能丢失分组,则等待合理时间后重传
(2)若ACK并未丢失,只是延迟,则接收方丢弃重复分组即可
(3)时延过短,可能产生早熟
(4)性能分析:正确工作,性能较差