AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
## 3.4 可靠数据传输原理 可靠数据传输协议(Reliable Data Transfer Protocol):数据可以通过一条可靠的信道进行传输。 ### 3.4.1 构造可靠数据传输协议 **经完全可靠信道的可靠数据传输:rdt1.0** ![](https://img.kancloud.cn/28/03/280327c5e96069cec200754fba723280_364x371.png) **经具有比特差错信道的可靠数据传输:rdt 2.0** 自动重传请求(Automatic Repeat Request,ARQ)协议: * 肯定确认(Positive Acknowledgment,ACK) * 否定确认(Negative Acknowledgment,NAK) 过程: * 发送报文 * 差错检测 * 接收方反馈 * 重传 停待协议(Stop-and-Wait Protocol):发送方在发送一个报文后,需要等待接受方反馈。 ![](https://img.kancloud.cn/5f/a8/5fa842c3b8bbb88060c2b8023b125eec_674x662.png) 考虑ACK和NAK受损的情况: * 在接受到受损ACK和NAK时,询问接收方 -> 将会陷入询问的死循环。 * 增加足够的检验和比特,使得接受方有能力恢复数据。 * 直接重传 -> 会导致冗余分组(Duplicate Packet),无法知道接受到的分组是一个新的分组,还是一个重传的分组。 **分组序号,接受方只需检查分组序号即可,确认收到的分组是否重传:rdt 2.1** 解决了冗余分组的问题,但会无法解决失序分组的问题。 **无NAK,ACK跟随一个分组序号:rdt 2.2** **经具有比特差错和丢包的信道的可靠数据传输:rdt 3.0** 如果一个分组的ACK发生丢包,发送方在等待一定时间后,进行重传;rdt 3.0 也称为比特交替协议,因为分组的序号在01之间交替。 倒计时定时器(Countdown Timer) 分组发送方必须能力:发送一个组,并启动一个定时器;响应定时器;终止定时器。 ### 3.4.2 流水线可靠数据传输协议 rdt 3.0 的性能问题,核心在于它是一个停等协议。流水线(Pipeling)协议:允许发送方发送多个分组而无需等待。 影响: * 必须增加序号范围。 * 协议发送方和接受方必须缓存多个分组。 * 所需序号范围和缓冲要求取决于数据传输协议如何处理丢包、损坏和时延。 ### 3.4.3 回退N步 回退N步(Go-Back-N,GBN):允许发送多个分组,但未确认分组数不能超过N。N也称窗口长度,GBN也是一种滑动窗口协议(Sliding-Window Protocol)。 ![](https://img.kancloud.cn/4d/2a/4d2a02614ca4e28fffcbd3a707f7c4d8_981x268.png) GBN发送方: * 上层调用 * 收到一个ACK * 超时事件 GBN接收方:丢弃所有失序分组。 ### 3.4.4 选择重传 GBN性能问题:窗口长度和带宽时延都很大的情况下,单个分组差错将引起大量分组重传。 选择重传(Selective Repeat,SR): * 让发送方重传那些有问题的分组。 * 接受方,失序分组仍然有效。