计算机网络教程-传输层(十二)传输层基础协议:回退N帧协议GBN
2018-03-28 14:21
761 查看
为了提高传输效率(充满管道),当发送端等待确认时,必须传输多个分组。换言之,当发送端等待确认时,我们需要让不止一个分组处于未完成状态,以此确保信道忙碌。回退 N 帧的关键是我们在接收到确认之前,可以发送多个分组,但是接收端只能缓冲一个分组。我们保存被发送分组的副本直到确认到达。
1.发送窗口
在每个窗口位置,某些序号定义了已经被发送的分组;其他序号定义了可以被发送的分组。窗口最大为2^m – 1 。窗口本身是一种抽象;三个变量定义了它任何时候的大小和位置。我们将这些变量称为 Sf(发送窗口,第一个未完成分组)、 Sn(发送窗口,下一个待发送分组)以及 Ssize (发送窗口,大小)。当 ackNo 大于等于 Sf 且小于 Sn(模运算)的无错 ACK 到达时,发送窗口可以滑动一个或多个槽。
2.接受窗口
接收窗口确保正确的数据分组被接收,并且确保正确的确认被发送。在回退 N 帧中,接收窗口的大小总是 1。接收方总是寻找特定分组是否到达。任何失序分组到达都会被丢弃并需要被重发。接收窗口也滑动,但是一次只滑动一个槽。当正确的分组被接收时,窗口滑动 Rn =( Rn + 1)modulo 2m 。3.计时器
尽管每个被发送分组都有计时器,但是在我们的协议中只使用一个计时器。原因是第一个未完成分组的计时器总是最先终止。当这个计时器终止时,我们重发所有未完成分组。当计时器终止时,发送方重发所有未完成分组。这就是为什么称为回退 N 帧。一旦超时,机器回退 N 个位置并重发所有分组。4.有限状态机
5.发送方
准备状态。当发送方处于准备状态,可能发生四个事件。如果请求来自应用层,发送方创建一个序号为 Sn的分组。存储分组的副本,发送分组。如果计时器没有运行,发送方会开启唯一的计时器。 Sn的值增长,( Sn = Sn + 1) modulo 2m。如果窗口已满, Sn =( Sf + Ssize) modulo 2m,发送方进入阻塞状态。
如果无差错 ACK 到达,其 ackNo 与一个未完成分组有关,那么发送方滑动窗口(令 Sf =ackNo),并且如果所有未完成分组都被确认( ackNo = Sn),那么计时器停止。如果并不是所有未完成分组都被确认,那么计时器重新开启。
如果一个被破坏 ACK 或 ackNo 与未完成分组无关的无错 ACK 到达,它就被丢弃。
如果超时发生,发送方重发所有未完成分组并重新开启计时器。
阻塞状态,在这种情况下可能发生三个事件:
如果 ackNo
4000
与一个未完成分组相关的无错 ACK 到达, 那么发送方滑动窗口(令 Sf = ackNo),如果所有未完成分组被确认( ackNo = Sn),那么关闭计时器。如果所有未完成分组没有被确认,那 么重新开启计时器。之后,发送方进入准备状态。
如果一个被破坏 ACK 或 ackNo 与未完成分组无关的无错 ACK 到达,那么 ACK 被丢弃。
如果超时发生,发送方发送所有未完成分组并重新开启计时器。
6.接收方
接收方总是处于准备状态。唯一的变量 Rn被初始化为 0。可能发生三个事件:如果 seqNo = Rn 的无错分组到达,分组中的报文被传递到应用层。之后窗口滑动, Rn =( Rn + 1) modulo 2m。最终 ackNo = Rn的 ACK 被发送。
如果 seqNo 在窗口之外的无错分组到来,分组被丢弃,但是 ackNo = Rn的 ACK 被发送。
如果被破坏分组到达,将被丢弃。
7.发送窗口大小
为什么发送窗口要小于2^m8.积累作用
尽管 ACK2 丢失,但是 ACK3 是积累的并且作为 ACK2 和 ACK3 进行服务。这就是为什么接收窗口一次只能滑动一个槽,而发送窗口可以一次滑动多个槽。
9.一个实例
相关文章推荐
- 计算机网络教程-传输层(十一)传输层基础协议:简单协议与停止-等待协议
- 计算机网络- 可靠数据传输协议-设计和实施的协议,如停止的
- 网络编程(网络基础,OSI参考模型,UDP传输协议,TCP传输协议,URL类和URLConnection类)
- 【RL-TCPnet网络教程】第29章 NTP网络时间协议基础知识
- 计算机网络- 可靠数据传输协议-停等协议的设计与实现
- 计算机网络基础教程
- 计算机网络协议第八章,TCP协议基础
- 网络基础(5)- 传输层和应用层的协议和作用
- 计算机网络基础(四)——数据链路层和网络层协议及设备
- 计算机硬件基础之网络协议(三)
- 计算机网络基础--传输层
- 【计算机网络常见面试题】实现可靠传输的协议
- 计算机网络—传输层协议之UDP
- 计算机网络基础_4_传输层与应用层的作用
- 计算机网络基础(五)——传输层和应用层
- 【计算机网络】传输层协议TCP
- 计算机网络基础(四)TCP协议中的三次握手和四次挥手(图解)
- 计算机网络教程-应用层(七)客户-服务器模式、套接字、使用传输层的服务(tcp、udp)
- 回顾:计算机网络之传输协议