计算机网络之传输层-停等协议与滑动窗口协议

1. 可靠数据传输基本原理

不可靠传输信道在数据传输中可能发生:

1. 比特差错: 1001变为1000;

2. 乱序: 数据块1、2、5、6、3、4;

3. 数据丢失: 数据块1、2、5;

为了使传输层提供可靠的数据传输服务,基于不可靠信道实现可靠数据传输需要采取以下措施:

1. 差错检测: 利用编码实现数据包传输过程中的比特差错检测;

2. 确认: 接收方向发送方反馈接收状态;

(1). ACK( 肯定确认),Positive Acknowledgement, 正确接收数据;

(2). NAK( 否定确认),Negative Acknowledgement, 没有正确接收数据;

3. 重传: 发送方重新发送接收方没有正确接收的数据;

4. 序号: 确保数据按序提交;

5. 计时器: 解决数据丢失问题;

2. 停-等协议

停-等协议工作流程:

1. 发送方发送经过差错编码和编号的报文段, 等待接收方的确认;

2. 接收方如果差错检测无误且序号正确, 则接收报文段, 并向发送方发送ACK,发送方收到ACK,继续发送后续报文段;

3. 接收方如果差错检测序号有误,则丢弃报文段, 并向发送方发送NAK,发送方收到NAK, 重发刚刚发送的报文段。

3. 滑动窗口协议

由于停等协议性能差、 信道利用率低,因此产生了流水线协议( 管道协议)。

流水线协议允许发送方在没有收到确认前连续发送多个分组,最典型的流水线协议: 滑动窗口协议

在滑动窗口协议中,增加多个分组序号,发送方和接收方可以缓存多个分组。

发送窗口(Ws): 发送方可以发送未被确认分组的最大数量。

接收窗口(Wr): 接收方可以缓存的正确到达的分组的最大数量。

上图为发送方已经发送的分组序号。

上图为发送方正在发送的分组序号。

上图为发送方待发送的分组序号。

上图为接收方已经确认收到的分组序号。

上图为接收方正在接收的分组序号。

上图为接收方待接收的分组序号。

滑动窗口协议, 根据窗口的大小, 可以具体分为:

3.1. 回退N步协议: GBN协议( Go-Back-N)

GBN协议 :发送窗口Ws≥1 , 接收窗口Wr=1。

GBN协议中发送端缓存能力高, 可以在没有得到确认前发送多个分组。接收端缓存能力很低, 只能接收1个按序到达的分组, 不能缓存未按序到达的分组。

GBN发送方响应的3类事件:

1. 上层调用;

2. 收到1个ACKn,GBN采用累积确认方式, 即发送方收到ACKn时, 表明接收方正确接收序号n以及序号小于n的所有分组;

3. 计时器超时,发送方只使用一个计时器;
 

3.2. 选择重传协议: SR协议( Selective Repeat)

SR协议: 发送窗口WS> 1, 接收窗口Wr> 1。

SR协议中发送端缓存能力高,接收端缓存能力高。

SR发送方响应事件:

1. 上层调用;

2. 计时器超时,发送方对每个分组进行计时;

3. 收到ACKn,SR协议采取逐个确认方式;
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aiguangyuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值