计算机网络

传输层——可靠数据传输概述

2020-02-20  本文已影响0人  YAN_DAOJIANG

可靠数据传输原理

可靠数据传输原理的实现问题不仅出现在运输层,也会出现在链路层和应用层,如果要确定所有网络中最为重要的“前十个”问题排名的话,可靠数据传输原理将是名列榜首的候选者。

实现这种服务抽象是可靠数据传输协议的责任。由于可靠数据传输协议的下层可能是不可靠的,因此只是一项困难的任务。然而,就我们而言,我们可以将较低层直接视为不可靠的点对点信道。

构造可靠数据传输协议

rdt1.0:可靠信道上的可靠数据传输协议

发送方FSM

image
接收方FSM
image

rdt2.0:产生位错误的信道

此时我们底层信道不可靠,可能产生位错误,因此在接收方要判断是否产生错误,如果有错误需要进行恢复。在进行的恢复的过程中仅有接收方是无法解决的。

基于上述重传机制的rdt协议称为ARQ协议。因此通过与rdt1.0对比,rdt2.0中引入的新的机制主要有以下一些:

下面是设计出的rdt2.0:FSM规约
发送方:

image
由于发送之后要处于一个等待对方控制消息的状态,因此这样的协议也称为停—等协议
接收方:
image

rdt2.1:发送方应对ACK/NAK破坏

发送方

image

接收方

image

rdt2.2:无NAK消息协议

与rdt2.1的功能相同,但是只使用ACK
实现方案

rdt3.0: 信道既可能发生错误,也可能丢失分组

方法:发送方等待"合理"的时间

在这里插入图片描述

流水线可靠数据传输协议

上面设计出来的rdt3.0虽然能够正确的工作,但是性能很差。(关于性能具体的分析示例见《计算机网络——自顶向下方法》第六版P145)此时设计的协议限制了物理资源的利用,因此协议必须要和硬件资源匹配,在计算机科学中称为软硬件协同设计
解决性能问题的一个简单方法就是不采用停等方式运行,允许发送发发送多个分组无需等待确认。如下图所示,如果发送方可以在等待确认之前就发送三个报文,其利用率基本上也会提高三倍。因为许多从发送方向接收方属性的分组被看成是填充到一条流水线中,故这种技术也被称为流水线

image
流水线技术也将对可靠数据传输协议带来如下影响:

要想实现流水线机制,需要滑动窗口协议(Sliding-window protocol)

上一篇 下一篇

猜你喜欢

热点阅读