TCP 滑动窗口用以进行流量控制

news/2024/5/17 20:22:27 标签: tcp, 网络, 路由器
 滑动窗口协议原理是:对所有数据帧按顺序赋予编号,发送方在发送过程中始终保持着一个发送窗口,只有落在发送窗口内的帧才允许被发送;同时接收方也维持着一个接收窗口,只有落在接收窗口内的帧才允许接收。
通过调整发送方窗口和接收方窗口的大小可以实现流量控制,就象通过阀门控制水流速度一样。
     TCP使用滑动窗口进行流控。
 -开始的时候窗口比较小,然后开始增长直到有错误发生时为止。
 -窗口的滑动依赖于网络性能。
也就是说 TCP协议通过滑动窗口来实现流量控制和差错控制以至于实现可靠传输。



 TCP滑动窗口技术通过动态改变窗口大小来调节两台主机间数据传输。每个TCP/IP主机支持全双工数据传输,因此TCP有两个滑动窗口:一个用于接收数据,另一个用于发送数据。TCP使用肯定确认技术,其确认号指的是下一个所期待的字节。
    假定发送方设备以每一次三个数据包的方式发送数据,也就是说,窗口大小为3。发送方发送序列号为1、2、3的三个数据包,接收方设备成功接收数据包,用序列号4确认。发送方设备收到确认,继续以窗口大小3发送数据。当接收方设备要求降低或者增大网络流量时,可以对窗口大小进行减小或者增加,本例降低窗口大小为2,每一次发送两个数据包。当接收方设备要求窗口大小为0,表明接收方已经接收了全部数据,或者接收方应用程序没有时间读取数据,要求暂停发送。发送方接收到携带窗口号为0的确认,停止这一方向的数据传输。
    滑动窗口机制为端到端设备间的数据传输提供了可靠的流量控制机制。然而,它只能在源端设备和目的端设备起作用,当网络中间设备(例如路由器等)发生拥塞时,滑动窗口机制将不起作用。


http://www.niftyadmin.cn/n/566978.html

相关文章

IDEA常用小技巧

1、设置Tab页的最大个数 idea 默认只能同时存在10个Tab页,超过将会关闭最先打开的Tab页 File->Setting->Editor->General->Editor Tabs->Closing Policy->Tab limit设置50 这样就能同时存在50个Tab页。 2、设置代码的字体大小 idea默认字体大…

TCP 滑动窗口协议 详解

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

Java 两个浮点数是否相等

浮点数由于精度丢失的原因不能使用 进行直接比较&#xff0c;只能使用 < 和> 这两个运算符来比较大于或者小于&#xff0c;如果实在需要比较两个浮点数是否相等。请参考以下两种方式&#xff1a; 1、使用阀值的方式 public boolean equalsThreshold(double d1,double …

面向对象方法和结构化方法比较,形式化方法的实际运用困难,及如何结合使用这三种

1.面向对象方法和结构化方法相比&#xff0c;各有何优缺点&#xff1f;&#xff1f; 2.形式化方法在实际运用中有何困难&#xff1f;&#xff1f; 3.怎样是实际应用中结合使用这三种方法&#xff1f;&#xff1f;&#xff1f; 1.结构化方法最为成熟&#xff0c;对于预先制定需…

IDEA 出现Module “**“ must not contain source root “**“. The root already belongs to module ”**“问题解决

具体错误&#xff1a; Module "XudongMaster_V1_0" must not contain source root "D:\idea 2015\XudongMaster_V1_0\CommonService\src\main\java". The root already belongs to module "CommonService" 解决办法&#xff1a; 以上报错的意…

面向对象方法和结构化方法理解

结构化开发方法&#xff1a; 早期的程序开发&#xff0c;如C语言&#xff0c;都是用结构化开发方法。 结构化开发又叫做面向过程开发&#xff0c;具体原理是将一个软件分为多个过程&#xff08;函数&#xff09;进行开发&#xff0c;用结构体&#xff08;struct&#xff09;管理…

JS 绑定下拉框并设置默认值

HTML代码&#xff1a; <select id"selectId"></select> js代码&#xff1a; 从数据库获取数据版本 //通过CodeType和SysName去数据库获取数据绑定到下拉框中&#xff0c;并且可以设置默认值 function BindListCode(selectId,codeType,sysName,defaul…

系统流程图 数据流图 数据字典区别

系统流程图就是表示整个系统处理事物的基本过程&#xff1b;数据流图是描述各个子块之间如何进行数据传递&#xff1a;数据字典相当于数据库中的对照表&#xff0c;把你认识的符号和系统中的符号对应起来&#xff01; 系统流程图是在系统分析员在做系统构架阶段&#xff0c;或…