挑战408——一周网咯——运输层(2)

本文深入探讨了在不可靠网络环境中实现可靠数据传输的方法,包括停止等待协议和连续ARQ协议的工作原理,以及如何通过自动请求重传(ARQ)机制确保数据的准确送达。

在不可靠的传输网络上实现可靠通信

我们知道,IP层之间的交付时尽最大努力传输的。所以TCP必须采用适当的措施和方式才能保证TCP层之间的可靠传输。可靠传输协议,就是当出现差错的时候重传出现差错的数据。当接收方来不及处理接收的数据的时候就适当放低发送速度

停止等待协议

停止等待,顾名思义,就是在发送完一个分组之后就停止发送分组,等待对方的确认。于是在这个的基础上有三种可能。

  1. 正常发送,并确认
    在这里插入图片描述
  2. 发送的报文丢失
    这种情况,一般停止等待协议会在报文发送之前,设立一个 计时器,当计时器结束后仍然没有收到B发来的确认报文,就可以认为发送的报文丢失了,于是进行重传。
    在这里插入图片描述
  3. 对方的确认报文并没有丢失,只是迟到了
    这个时候,A接收到确认报文,并丢弃。
    在这里插入图片描述
    如果A总是重传分组,且总是收不到对方的确认,就可以认为此时网络线路太差,不能通信。
连续的ARQ协议

刚刚上述所说的,当报文丢失或者发送方未收到确认的时候,就自动重传丢失的报文,这种协议称为自动请求重传协议,简称ARQ协议
但是如果每发送一次报文都要等待计时器的计时后才可以发送下一个,这样效率太低。
在这里插入图片描述
如果一次性发送方发送多个报文,而不用每发一次就等待下来一个确认,这样信道上就一直有数据传输,传输的速率更快。(类比计算机组成原理中的指令流水线就很好理解)。
在这里插入图片描述
这种采用流水线传输的协议,称为连续的ARQ协议

连续的ARQ协议

即使采用一次性发送多个报文的方式,也不能无限制一次性发送多少个报文。发送窗口,就是一次性可以连续发送多少个报文而不用等待确认。例如下图中,位于发送窗口的5个分组都可以同时发送:
在这里插入图片描述
当发送方收到确认后,就把发送窗口往前挪一个分组的位置。
在这里插入图片描述
当5个分组都收到确认的时候,窗口到了6-10之间。于是重复上述操作。
一般的,接收方会只发送最后收到的分组的确认(上诉例子中是对5的确认),表明5之前的所有报文都正确接收了。这样的确认方式称为累计确认
这个时候考虑这样的情况,假如之前的5个分组都发出去了,但是其中的3分组丢失了,这样根据累计确认的规则,发送方返回2的确认,也就是表明3-5这三个分组可能都没有收到。这个时候,只好把后面3个分组再重传一次。这种重传叫做get-backN。即退回来重传已经发过的N个分组(即使分组4,分组5已经收到,只是3没有收到)。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值