滑动窗口及连续ARQ协议

一、以字节为单位的滑动窗口

    假定从A收到B发来的确认报文段,窗口大小是20(字节),确认号是31(表名B期望收到的下一序号是31,而序号30为止的数据已经收到了)。根据这两个数据,A就构造出自己的发送窗口,位置如下:

                       

       A的发送窗口表示:在没有收到B的确认的情况下,A可以连续吧窗口内的数据都发送出去。凡是已经发送过得数据,在未收到确认之前都必须暂时保留,以便在超时重传时使用。发送窗口里面的序号表示允许发送的序号,显然窗口越大,发送方就可以在收到对方确认之前连续发送更多的数据;发窗口后沿后边的部分表示已发送且已收到确认;发送窗口前沿的前面部分表示不允许发送的,因为接收方没有为这部分数据保留临时存放的缓存空间。

      发送窗口的位置由窗口前沿和后沿的位置共同确定。

      发送窗口后沿的变化有两种情况:不动(没有收到新的确认)和前移(收到了新的确认),发送窗口后沿不可能向后移动,因为不能撤销掉已收到的确认。

       发送窗口前沿通常是不断向前移动,但也有可能不动。对应于两种情况:一是没有收到新的确认,对方通知的窗口大小也不变;二是收到新的确认,但对方通知的窗口缩小了,使得发送窗口前沿正好不动。

二、利用滑动窗口实现流量控制

      所谓流量控制就是让发送方发送的速率不要太快,要让接收方来得及接收。

      利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。在连接建立时,发送方的发送窗口不能超过接收方给出的接收窗口的数值,在此TCP的窗口单位是字节。

      如:A向B发送数据,在连接建立时,B告诉A“我的接收窗口rwnd=400”,设每一个报文段为100字节长,数据报文段序号的初始值为1,则有:

                             


三、连续ARQ协议

      协议规定,发送方每收到一个确认,就把滑动窗口向前滑动一个分组的位置;接收方都是采用累积确认的方式(接收方在收到几个分组后,对按序到达的最后一个分组发送确认)

      优点:简单、容易实现。

      缺点:不能向发送方反映出正确收到的所有分组信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值