滑动窗口协议 c语言,TCP滑动窗口协议详解.docx

本文源自CSDN博客: HYPERLINK "/THISISPAN" /THISISPAN欢迎各位访问博客,进行技术交流

滑动窗口机制

(1)?窗口机制

滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送 窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序 号的上下界不一定耍一样,其至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内 的序列号代表了那些己经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。下而举一个例子

(假设发送窗口尺寸为2,接收窗口尺寸为1):

收帧接OV(5)接收确认0号帧6)送顾>收帧(7接已

收帧接OV

(5)接收确认0号帧

6)送顾

>收帧

(7接已

⑻接收确认1号桢

分析:①初始态,发送方没冇帧发出,发送窗口前后沿相巫合。接收方0号窗口打开,等待接收0号帧; ②发送方打开0号窗口,表示己发出0帧但尚确认返回信息。此时接收窗口状态不变;③发送方打开0、1 号窗口,衣示0、4号帧均在等待确认Z列。至此,发送方打开的窗口数己达规定限度,在未收到新的确认 返回帧之前,发送方将暂停发送新的数据帧。接收窗口此吋状态仍未变;④接收方己收到0号帧,0号窗 口关闭,1号窗口打开,表示准备接收1号帧。此时发送窗口状态不变;⑤发送方收到接收方发来的0号 帧确认返回信息,关闭0号窗口,表示从逼发表中删除0号帧。此时接收窗口状态仍不变;⑥发送方继续 发送2号帧,2号窗口打开,表示2号帧也纳入待确认之列。至此,发送方打开的窗口又己达规定限度, 在未收到新的确认返冋帧之前,发送方将新停发送新的数据帧,此时接收窗口状态仍不变;⑦接收方己收 到1号帧,1号窗口关闭,2号窗口打开,表示准备接收2号帧。此吋发送窗口状态不变;⑧发送方收到 接收方发来的1号帧收毕的确认信息,关闭1号窗口,表示从重发表中删除1号帧。此时接收窗口状态仍 不变。

若从滑动窗口的观点來统一看待1比特滑动窗口、后退n及选择重传三种协议,它们的差别仅在于各口 窗口尺寸的人小不同而Bo 1比特滑动窗口协议:发送窗口 =d,接收窗口胡;后退n协议:发窗口>1,接 收窗口>1;选择重传协议:发送窗口>1,接收窗口>1。

.1比特滑动窗口协议

当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stop-and-wait)。该协议 规定发送方每发送一帧后就耍停下來,等待接收方已正确接收的确认(acknowledgement)返回后才能继 续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧 加一个序号。由于停等协议规定只有-?帧完全发送成功后才能发送新的帧,因而只用一比特來编号就够了。 其发送方和接收方运行的流程图如图所示。

.后退n协议

由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又捉出了后退 n协议。后退n协议中,发送方在发完一个数据帧后,不停下來等待应答帧,而是连续发送若干个数据帧, 即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时 都要设置超吋定吋器。只要在所设置的超吋吋间内仍收到确认帧,就要重发相应的数据帧。如:当发送方 发送了 N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢 失,此时发送方就不得不逼新发送出错帧及其后的N帧。

从这里不难看出,后退n协议一方血因连续发送数据帧而提高了效率,但另一方血,在重传时又必须把 原来己正确传送过的数据帧进行重传(仅因这些数据帧Z前有一个数据帧出了错),这种做法乂使传送效

率降低。由此可见,若传输信道的传输质戢很差因而误码率较大时,连续测协议不一定优于停止等待协议。 此协议中的发送窗口的人小为k,接收窗口仍是1。

.选择重传协议

在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。 另一种效率更高的策略是当接收方发现某帧出错后,其后继续送來的正确的帧虽然不能立即递交给接收方 的高层,但接收方仍可收下來,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一口收到 重新传来的帧后,就可以原己存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发 (SELECTICE REPEAT),其工作过程如图所示。显然,选择重发减少了浪费,但要求接收方有足够大的缓 冲区空间。

滑动窗口协议

仍然考虑链路的延迟与带宽的乘积为8KB,帧尺寸为1 K B的悄形。让发送方在收到第一帧的ACK的 同时准备发送第九帧。允许我们这样做的算法称为滑动窗口( sliding window),时间线如图2-21所示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值