滑动窗口大小为什么不能是2的n次方大小
1、前言
在计算机网络中的GBN协议中,我们都知道发送方的滑动窗口大小需要小于或等于2的n次方,n表示用多少位对帧编号。本文章用2位对帧编号。
2、举个例子
假设老王有4个女朋友(对帧的四个编号0,1,2,3),分别为A,B,C,D(分别对应0,1,2,3)。这四个女生经常生气(对应发送帧),并且生气顺序为A->B->C->D->A…。生气后老王需要发消息哄他的四个对象(对应发送确认帧)。假设窗口为4,即ABCD能依次生气并告知老王。其中有一种情况ABCD依次生气,老王依次收到她们生气的消息后,并依次回复消息哄她们,但是由于网络原因老王发送给她们的信息都没有发送过去,他的女朋友们没有接受到老王的哄后,就再次生气给老王发消息,此时,A先给老王发送,老王此时想:上一轮每个都生气后,我都哄好了,现在轮到A新生的气了,我用新的消息哄她,是个正常流程。但是实际情况是,ABCD都没有收到老王的"哄",还是因为第一轮的生气,但是老王并不知道。这就对应了接收方无法分辨新帧和旧帧。
另一种情况就是,当发送窗口小于2的n次方时,假设窗口大小为3,也就是一段时间内,老王最多有三个连续的女朋友给老王生气,假设ABC依次生老王的气,老王依然因为网络原因没有将他的花言巧语发送给ABC,但是此时老王知道,该D生气了。但是由于ABC没有收到老王的"哄",就再次给老王说,老王收到A的生气之后就想:坏了,我哄ABC的消息没有发出去。
3、总结
总而言之,滑动窗口大小不能等于2的n次方,否则接收方傻乎乎的不知道。同样,在SR协议中也类似。
滑动窗口大小为什么不能是2的n次方大小相关推荐
- linux下tcp滑动窗口大小设置,转:TCP滑动窗口协议与socket缓冲区之间的关系
一.TCP的滑动窗口大小实际上就是socket的接收缓冲区大小的字节数 注意:在以Unix为核心的一些操作系统中(不一定都是),SO_RCVBUF选项确实决定了TCP窗口的大小.你设置为多少窗口就为多 ...
- android 滑动取值_Android View篇之调整字体大小滑杆的实现
小伙伴们大家好呀,这次介绍一个稍微有点意思的View,在很多阅读类.新闻类的APP上都标配的字体大小调整功能.100多行代码就可以实现,来看看效果吧! 思路分析 1.刻度线代表着每个字体的大小取值,是 ...
- QT设计师无法修改窗口大小,无法通过鼠标拖动窗口改变大小的解决方案
如题,我使用的是pyside6进行设计界面,通过添加布局实现了自动缩放的界面,但遇到了一个很诡异的现象,就是窗口无法缩小,在QT设计师界面,在geometry属性那里怎么修改,一点确定之后宽度和高度都 ...
- unity中定时滑动公告板的实现及动态设置gridLayout的大小
首先贴效果: 1.动态设置gridLayout的大小 核心组件为rectTransform,核心属性一个为rectTransform.anchoredPosition,用来设置和锚点的距离,否则只设置 ...
- java应用窗口大小_java 如何让程序窗口随屏幕大小改变 | 学步园
这个问题一直困扰我很长时间了,虽然工作了一段时间,但感觉连这个问题都解决不好的话,实在对不起自己.今天我终于抽出时间,好好网上找了下资料,然后写了个简单的记事本程序,感觉是我想要的结果.所以在这里把程 ...
- java组件自适应窗口大小_java swing 窗口和控件自适应大小
本文记录java开发CS结构时怎么自适应屏幕大小以及控件跟随frame大小变化大小.位置和字体大小 需要注意: 1.代码必须放置在其构造方法中.如:我的frame1是我frame.java的名,则代码 ...
- html修改当前窗口大小,设置HTML页面和浏览器窗口的大小
这应该工作. Hello World html, body { width: 100%; height: 100%; margin: 0; padding: 0; background-color: ...
- java 改变窗口大小_java 如何让程序窗口随屏幕大小改变
这个问题一直困扰我很长时间了,虽然工作了一段时间,但感觉连这个问题都解决不好的话,实在对不起自己.今天我终于抽出时间,好好网上找了下资料,然后写了个简单的记事本程序,感觉是我想要的结果.所以在这里把程 ...
- Nmap扫描参数解析(转)
Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字Nmap是Network Mapper的简称.Nmap最初是由Fyo ...
最新文章
- linux shell expect 处理 passwd 交互
- 【自动驾驶】19.自动驾驶各个坐标系
- 驱动编程中的头文件与内核源码的关系
- WinCE BSP中的DAT文件介绍
- 33、JSONP跨域
- leetcode 1189 python
- 一步一步学Ruby(八):字符串表达式
- FFMPEG开源音视频项目学习汇总
- 詹姆斯·格雷克《信息简史》读后感记录
- 中移动入侵防御设备集采,总限价1.6亿;爱立信斩获95个5G商用合同
- snmp-cmds 系列工具命令
- 如何将低dpi图片升级到300dpi
- 淘宝天猫商家运营,宝贝标题如何突出卖点,标题编写方法小技巧
- 天猫双十一狂抢优惠券?机智的程序猿这么玩
- 一文讲解单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系
- Poj 3255(dijkstra求次短路)
- Docker 退出容器不停止容器运行
- sql语句查询下级下下级
- YII Framework学习教程-YII的日志
- JS 实现点击图片查看大图(含注释)