固定窗口

● TCP 还提供了流量控制机制。流量控制可以调整给定会话中源和目的之间的 数据流速,有助于保持 TCP 传输的可靠性。流量控制的实施方法包括限制 一次可以转发的数据段数量,并要求在发送更多数据段之前确认接收。

● 要实施流量控制,TCP 要确定的第一件事是目的设备可以接受的数据段数量。

TCP 报头包括一个称为“窗口大小”的 16 位字段。这是 TCP 会话的目的设 备一次可以接受和处理的字节数。

通过源和目标之间的三次握手,会话开始 时即可确定初始窗口大小。

一旦同意,源设备必须根据窗口大小限制发送到 目的设备的数据段数量。只有源设备收到数据段已接收的确认之后,才能继 续发送更多会话数据。

● 在接收确认的延迟过程中,发送方丌会发送任何额外数据段。如果网络拥堵, 或者接收主机资源紧张,延迟时间可能就更长。延迟时间越长,该会话过程 的有效传输速率越低, 当运行多个会话时,减缓每个会话的数据传输有助于 减少网络和目的设备上的资源冲突。

请参看上图中对窗口大小和确认消息的简易展示。在本例中,TCP 会话的初 始窗口大小为 3000 字节。此会话的发送方在传输 3000 字节后等待这些数 据的确认消息,以便继续传输更多数据段。一旦发送方收到接收方发送的确 认消息,它就可以传输另外 3000 字节的数据段。

● TCP 使用窗口大小尝试管理传输速率,将其调整为网络和目的设备可以支持 的最大速度,同时最大限度减少损失和重新传输。

TCP滑动窗口

● 我们也可以通过动态窗口大小来控制数据流量。当网络资源受到限制时,TCP  可以减小窗口的大小,这样,目的主机就需要更加频繁地确认所接收的数据段。由于源主机需要更加频繁地等待数据确认,这便可以大大降低传输的速率。

● 接收主机将窗口大小值发送到发送主机,表示其准备接收的字节数。如果目 的主机由于缓冲内存受限需要降低通信速率,那么它向源主机发送的确认信息 中可以包含一个较小的窗口大小值。

● 如图所示,如果接收主机发生拥堵,它可以向发送主机发送指定了较小窗口大 小的数据段。图中显示,其中一个数据段丢失了。接收方将返回数据段的 TCP 报头中的窗口字段值由 3,000 减为 1,500,即将窗口大小改为 1,500。

● 在没有数据丢失或资源限制的情况下传输一段时间后,接收方开始增加窗口字 段,这样可以减少网络开销,因为必须发送的确认减少。窗口大小持续增加, 直至出现数据丢失,然后窗口大小随之减少。

● 窗口大小的这种动态增减是 TCP 中的一个持续丌断的过程。在高效网络中, 由于丢失数据,窗口可能会相当大。在基层基础设施面临压力的网络中,窗口可能会很小。

【技术】TCP 的固定窗口和滑动窗口相关推荐

  1. 网络(6)-TCP/IP对拥塞控制、滑动窗口如何实现可靠性?

    一.拥塞控制 在拥塞控制上,采用广受好评的TCP拥塞控制算法(也称AIMD算法).该算法主要包括四个主要部分: 1.慢启动 每当建立一个TCP连接时或一个TCP连接发生超时重传后,该连接便进入慢启动阶 ...

  2. TCP/IP卷一:63---TCP基础之(ARQ和重传、分组窗口和滑动窗口、流量控制和拥塞控制、设置重传超时)

    一.前言 到目前为止,我们一直在讨论那些自身不包含可靠传递数据机制的协议 它们可能会使用一种像校验和或CRC这样的数学函数来检测接收到的有差错的数据,但是它们不尝试去纠正差错 对于IP和UDP,根本没 ...

  3. tcp协议头窗口,滑动窗口,流控制,拥塞控制关系

    tcp协议头窗口,滑动窗口,流控制,拥塞控制关系 参考文章 TCP 的那些事儿(下) http://coolshell.cn/articles/11609.html tcp/ip详解--拥塞控制 &a ...

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

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

  5. TCP 是一个可靠传输的协议,那我们来重点介绍 TCP 的重传机制、滑动窗口、流量控制、拥塞控制。

    TCP 巨复杂,它为了保证可靠性,用了巨多的机制来保证,真是个「伟大」的协议,写着写着发现这水太深了... 本文的全部图片都是小林绘画的,非常的辛苦且累,不废话了,直接进入正文,Go! 相信大家都知道 ...

  6. Flink 滚动窗口、滑动窗口详解

    1 滚动窗口(Tumbling Windows) 滚动窗口有固定的大小,是一种对数据进行"均匀切片"的划分方式.窗口之间没有重叠,也不会有间隔,是"首尾相接"的 ...

  7. tcp欢动窗口机制_TCP协议中的窗口机制------滑动窗口详解

    一.窗口机制的分类 在TCP协议当中窗口机制分为两种: 1.固定的窗口大小 2.滑动窗口 二.固定窗口存在的问题 如下图所示: 我们假设这个固定窗口的大小为1,也就是每次只能发送一个数据,只有接收方对 ...

  8. tcp 协议中发送窗口的大小应该是_面试必备--TCP协议中的窗口机制滑动窗口详解...

    窗口机制分类 在TCP协议当中窗口机制分为两种: 1.固定的窗口大小 2.滑动窗口 固定窗口存在的问题 我们假设这个固定窗口的大小为1,也就是每次只能发送一个数据,只有接收方对这个数据进行了确认后才能 ...

  9. tcp checksum incorrect_TCP 协议:滑动窗口

    发送窗口/可用窗口: 第3部分是表示对方的接收窗口大小:第4部分是应用程序已调用write方法明确告知需要发送的 字节大小,但超过了接收方的可处理范围. 其他第3部分大小称为可用窗口,第2部分+第3部 ...

最新文章

  1. 并非所有图像都值16x16个词--- 清华华为提出一种自适应序列长度的动态ViT
  2. 【转】BT5汉化步骤
  3. 一起谈.NET技术,发布NGuestBook(一个基于.NET平台的分层架构留言本小系统)
  4. Android之国际化部分文字生效而部分文字没有生效的坑
  5. 虚拟机安装黑群晖_【群晖系统】HEI群辉DSM 6.2.1 系统安装图文教程 (19年2月)
  6. qq面板(仿版,未完待续中。。。。)---2017-04-24
  7. 解析xml_Mybatis中mapper的xml解析详解
  8. 51单片机之外部引脚及总线接口
  9. Red 编程语言 2019 开发计划:全速前进!
  10. SSH框架之Spring4专题3:Spring与AOP
  11. 用Visual Studio 2005/2008提取EXE文件中的资源[图片|htm|光标文件]
  12. C语言——指针详解(必收藏)
  13. 微信小程序+Node服务器
  14. PHPExcel 锁定表头 设置样式,背景颜色,居中,宽,单元格合并
  15. html中蝴蝶飞飞怎么制作,幼儿园小班《蝴蝶飞飞》教案
  16. JSOI2019 Round1(十二省联考)游记
  17. MacBook Pro使用初体验之Mac快捷键汇总(持续更新中)
  18. 三星note升级android9,Verizon版三星Note 9正式升级Android 10
  19. CPU / GPU / NPU
  20. java quartz 停止_quartz定时程序无故停止并且没有错误

热门文章

  1. 【网络安全】如何使用QueenSono从ICMP提取数据
  2. 记一次 Git 操作的糟心之旅
  3. 19、HTML文件上传域
  4. 16、IN和NOT IN用法详解
  5. 项目: 用Easyx绘制围棋和象棋的棋盘
  6. Keepalived配置日志文件
  7. java读取文件 16进制_Java对文件的16进制读取和操作
  8. 华科博士 201 万,西安交大本科生 100 万!华为「天才少年」校招薪资曝光
  9. 执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?
  10. 程序员必备:Java 日期处理的十个坑