一、关于滑动窗口

1、什么是滑动窗口

滑动窗口是类似于窗口一样的东西,用来告诉发送端一次可以发送数据的大小。即窗口标记了接收端缓存区的大小;

2、滑动窗口出现的原因

(1)对每一个发送的数据段,都要给一个ACK确认应答,收到ACK后发送下一个数据段。这样做大大降低了传递效率。

(2)使用滑动窗口,可以一次发送多条数据,提高性能。

3、滑动窗口的一些知识点

(1)接收端将自己缓冲区大小放进TCP头部的“窗口大小”字段,通过ACK告知发送端;

(2)窗口大小是指无需等待确认应答而可以一次连续发送数据的最大值;

(3)操作系统内核为了维护滑动窗口,需开辟发送缓冲区,来记录哪些数据还没有被应答,只有确认应答后才从缓冲区删除;

(4)接收端发现自己缓存区快满了,将窗口大小设置更小发送给发送端,发送端收到后就会减慢发送速度;

(5)接收端发现自己缓冲区满了,将窗口大小设置为0,此时发送端停止发送数据,而是定期发送一个窗口探测数据段,让接收端告诉它的窗口大小;

二、关于流量控制

1、什么是流量控制

流量控制的目标是接收端,防止发送方发的太快,耗尽接收方资源,使接收方来不及处理;

流量控制的机制是丢包。

2、通过滑动窗口实现流量控制

通过设置滑动窗口大小,用ACK告知发送端自己缓存区还有多大,让发送端以合适的速度发送数据

三、关于拥塞控制

1、什么是拥塞控制

防止发送方发的太快,使网络来不及处理,导致网络拥塞。

2、拥塞控制出现的原因

流量控制虽然可以高效的传递大量数据,但是如果刚开始阶段就发送大量数据,可能导致网络拥塞

3、拥塞控制实现的机制

(1)慢启动

(2)加法增加:执行拥塞控制算法后,在收到对报文的确认后,就把拥塞窗口cwnd增加一个MSS大小,使拥塞窗口缓慢增大,防止网络过早出现拥塞;

(3)乘法减少:出现一次超时(网络拥塞)就把慢开始门限值ssthresh设置为当前拥塞窗口值的0.5倍。

4、发送端如何判断网络出现拥塞(丢包)

(1)定时器超时(没有在规定时间内收到某个发出去的包ACK)

(2)收到三个重复的ACK

滑动窗口协议如何实现流量控制相关推荐

  1. 117.滑动窗口协议

    滑动窗口协议是TCP流量控制的一种方法,提高吞吐量避免阻塞. 把待发送报文或者分组分成四种状态 1.已发送,已接收 2.已发送,未接收 3.可以发送,但还没发送 4.不可以发送 2跟3划分成一个窗口, ...

  2. TCP连续ARQ协议和滑动窗口协议

    TCP协议通过使用连续ARQ协议和滑动窗口协议,来保证数据传输的正确性,从而提供可靠的传输. 一.ARQ协议 ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模 ...

  3. 【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )

    文章目录 一. 数据链路层 流量控制 二. 数据链路层 与 传输层 流量控制 机制 三. 数据链路层 流量控制 四. 数据链路层 流量控制 方法分类 五.停止等待协议 六.滑动窗口协议 七.滑动窗口协 ...

  4. 计算机网络之传输层:6、TCP流量控制、滑动窗口协议

    传输层:6.TCP流量控制 实现流量控制的方法: TCP流量控制: 实现流量控制的方法: 停止等待协议和滑动窗口协议 TCP流量控制:

  5. TCP滑动窗口协议与流量控制

    谈到TCP的滑动窗口协议与流量控制,便会想起当年面试时的场景.那时刚刚毕业,匆匆学了一点TCP的皮毛,仅仅是知道了TCP是面向连接的协议,以对每个报文都进行确认+超时重传的机制来保证端到端的可靠传输: ...

  6. WireShark 探索网络请求过程(五层网络模型、三次握手、滑动窗口协议)

    ​当我们在浏览器输入URL点击确认后,浏览器展示出网页信息.可你曾想过这其中的过程是怎样的?理论性较强的朋友可能知道后续DNS会解析地址,然后TCP/IP三次握手建立起连接,紧接着客户端与服务器开始传 ...

  7. 三句话介绍清楚滑动窗口协议/GBN/SR

    滑动窗口协议.GBN.SR之间不得不说的故事 首先我们来介绍什么是滑动窗口协议 滑动窗口协议(Sliding Window Protocol),属于TCP协议的一种应用,用于网络数据传输时的流量控制, ...

  8. TCP 滑动窗口协议 详解

    滑动窗口机制 (1).窗口机制     滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口:同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口. ...

  9. 计算机网络 TCP 滑动窗口协议 详解

    滑动窗口机制解析: 1.窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口:同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口.发送窗 ...

  10. WireShark抓包 图解探索网络请求过程(五层网络模型、三次握手、滑动窗口协议)

    当我们在浏览器输入URL点击确认后,浏览器展示出网页信息.可你曾想过这其中的过程是怎样的?理论性较强的朋友可能知道后续DNS会解析地址,然后TCP/IP三次握手建立起连接,紧接着客户端与服务器开始传输 ...

最新文章

  1. 自己做的一个小程序 可采集、导出、模板、配置
  2. 6,ORM组件XCode(撬动千万级数据)
  3. QML 信号和处理程序事件系统
  4. 使用Certbot 生成 https 证书
  5. linux sudo 必须属于用户ID0,sudo:/usr/bin/sudo 务必属于用户 ID 0(的用户)并且设置 setuid 位...
  6. UValive4195 Heroes of Money and Magic
  7. 尼克的任务(洛谷-P1280)
  8. 【Level 08】U05 Better option L6 Informative posts
  9. vscode中打开pdf文件_提取pdf文件中的文字
  10. redis的持久化(RDB与AOF)未完待续
  11. python识别_识别串口/ usb设备python
  12. cesium加载天地图矢量地图设置为暗黑系风格地图【独门秘方】
  13. View和ViewGroup的区别
  14. java毕设项目车牌号码识别系统开源了,很好玩,建议尝试
  15. PHP实现用户登录注册(详细教程)
  16. linux panic机制
  17. sampler采样器记录
  18. java常用英文单词发音_java常用英语单词(带音标)
  19. mysql查询最小分数_MySQL数分:简单查询
  20. OpenGL绘制罗纳尔多三维模型-Assimp库

热门文章

  1. 关于XML 编辑工具
  2. 诺基亚如何利用计算机上网,诺基亚E63的WIFI上网功能全教程
  3. 骁龙200/400/600/800芯片型号对应及规格介绍
  4. inception-v1 自复现 有问题尽管问
  5. 南京大学软件学院考研计算机网络汇总
  6. 机器之心深度研学社每周干货:2017年第13周
  7. Linux上如何安装微信! 或登录网页版微信提示:为了你的帐号安全,此微信号不能登录网页微信。你可以使用Windows微信或Mac微信在电脑端登录。
  8. RabbitMQ windows 管理工具
  9. Python爬取房天下二手房信息
  10. win10无线网卡黄色感叹号