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

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,继续发送后续报文段;

计算机网络之传输层-停等协议与滑动窗口协议_第1张图片

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

计算机网络之传输层-停等协议与滑动窗口协议_第2张图片

 

3. 滑动窗口协议

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

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

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

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

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

计算机网络之传输层-停等协议与滑动窗口协议_第3张图片

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

计算机网络之传输层-停等协议与滑动窗口协议_第4张图片

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

计算机网络之传输层-停等协议与滑动窗口协议_第5张图片

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

计算机网络之传输层-停等协议与滑动窗口协议_第6张图片

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

计算机网络之传输层-停等协议与滑动窗口协议_第7张图片

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

计算机网络之传输层-停等协议与滑动窗口协议_第8张图片

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

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

 

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

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

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

计算机网络之传输层-停等协议与滑动窗口协议_第9张图片

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

1. 上层调用;

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

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

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

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

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

计算机网络之传输层-停等协议与滑动窗口协议_第10张图片

SR发送方响应事件:

1. 上层调用;

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

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

你可能感兴趣的:(Computer,Network)