所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。
TCP流量控制的目的是限制发送端的发送速率,使得接收方可以及时接收。
TCP主要是通过滑动窗体来实现流量控制的。实际上,发送窗体的大小不仅受接收窗体rwnd的大小的限制,还受拥塞窗体cwnd窗体的限制,为了实现点到点的流量控制,本文如果拥塞窗体足够大(即网络链路比較流畅),仅考虑发送窗体swnd受接收窗体的限制。
窗体由左臂和右臂组成。左臂右移称为关闭,右臂左移称为收缩,右臂右移称为打开。
发送窗体和接收窗体的移动操作
接收窗体:当接收方收到发送方的很多其它的字节时(不包含反复的报文段),接收窗体关闭。当接收缓存中的字节被接收进程pull时,接收窗体打开,通常接收窗体不会发送收缩操作。
发送窗体:发送窗体的关闭、收缩和打开受接收方的控制。当一个有效的确认时,发送窗体关闭;当接收方通告发送方同意的窗体大小能够更大时,发送窗体会打开。当接收方通告发送方同意的窗体大小更小时。发送窗体就收缩,可是TCP强烈不建议发送窗体收缩。
TCP规定,即使设置为零窗口,也必须接收以下几种报文段:零窗口探测报文段、确认报文段和携带紧急数据的报文段。
1.1 传输效率问题
可以用不同的机制控制TCP报文段的发送时机:
[1]. TCP维持一个变量MSS,等于最大报文段长度。只要缓冲区存放的数据达到MSS字节时,就组装成了一个TCP报文段发送出去。
[2]. 由发送方的应用进程指明要发送的报文段,即:TCP支持推送操作。
[3]. 发送方的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(但长度不能超过MSS大小)发送出去。
1.2 Nagle算法
发送方把第一个数据字节发送出去,把后面到达的数据字节缓存起来。当发送方接收对第一个数据字符的确认后,再把发送缓存中的所有数据组装成一个报文段再发送出去,同时继续对随后到达的数据进行缓存。只有在收到对前一个报文段的确认后,才继续发送下一个报文段。规定一个TCP连接最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组。当数据到达较快而网络速率较慢时,用这样的方法可明显地减少所用的网络带宽。
Nagle算法还规定:当到达的数据已达到发送窗口大小的一半或已经达到报文段的最大长度时,就可立即发送一个报文段。
1.3 糊涂窗口综合症
TCP接收方的缓存已满,而交互式的应用进程一次只从接收缓存中读取1字节(这样就使接收缓存空间仅腾出1字节),然后向发送方发送确认,并把窗口设置为1个字节(但发送的数据报为40字节的的话)。然后,发送方又发来1个字节的数据(发送方的IP数据报是41字节),接收方发回确认,仍然将窗口设置为1个字节。这样,网络的效率很低。要解决这个问题,可让接收方等待一段时间,使得或者接收缓存已有足够空间容纳一个最长的报文段或者等到接收方缓存已有一半的空闲空间。只要出现这两种情况,接收方就发回确认报文,并向发送方通知当前的窗口大小。此外,发送方也不要发送太小的报文段,而是把数据报积累成足够大的报文段,或达到接收方缓存的空间的一半大小。
拥塞控制 - Congestion Control
网络拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时导致网络通信业务陷入停顿出现死锁现象。拥塞控制是通过拥塞窗口处理网络拥塞现象的一种机制。
发送报文段速率确定:
[1]. 全局考虑防止拥塞 <- - 拥塞窗口 (Congestion Window) - -> 发送端流量控制,发送端根据自己估计的网络拥塞程度而设置的窗口值;
[2]. 接收端的接收能力 <- - 接收窗口 (Reciver Window) - -> 接收端流量控制,接收端根据目前的接收缓存大小所许诺的最新窗口值;
发送方窗口的上限值 = Min [ rwind, cwind ]
当rwind < cwind 时,接收方的接收能力限制发送方窗口的最大值。
当cwind < rwind 时,网络的拥塞限制发送方窗口的最大值。
因特网建议标准RFC2581定义了拥塞控制的四种算法:慢开始(Slow-start),拥塞避免(Congestion Avoidance),快重传(Fast Restrangsmit)和快恢复(Fast Recovery)。我们假定
1)数据单方向传送,而另外一个方向只传送确认;
2)接收方总是有足够大的缓存空间,因为发送窗口的大小由网络的拥塞程度来决定。
相同:提高网络性能。
不同:
流量控制:在TCP连接上实现对发送流量的控制,考虑点对点之间对通信量的控制,端到端,即:控制发送端的数据发送速率,使接收端可以来得及接收,保证网络高效稳定运行。
拥塞控制:处理网络拥塞现象,考虑网络能够承受现有的网络负荷,全局性变量,涉及所有的路由器、主机以及与降低网络传输性能有关的因素。防止过多的数据注入到网络,使网络中的路由器或链路不致过载,确保通信子网可以有效为主机传递分组。
相关推荐
网络工程师在备考过程中,对TCP流量控制技术的学习尤为重要。TCP(传输控制协议)作为互联网通信的关键协议之一,其流量控制机制确保了数据传输的顺畅与稳定。本文将对TCP流量控制技术进行深入剖析,阐释其原理、...
流量控制是确保网络通信可靠性的关键技术之一。TCP通过滑动窗口协议实现了有效的流量控制,通过...通过本文的介绍和示例代码,读者应该能够理解TCP流量控制的基本概念,并能够创建基本的TCP客户端和服务器应用程序。
TCP协议中flow control简述。包括窗口控制、Nagle算法等。
TCP流量控制是网络协议中的一个重要概念,其主要目的是确保数据传输的稳定性,避免接收方因数据过快而无法处理,从而导致数据丢失或拥塞。TCP(Transmission Control Protocol)通过滑动窗口机制来实现这一目标。 ...
【TCP流量控制】是TCP协议中的关键机制,用于确保数据在网络中的稳定传输,避免拥塞并提高传输效率。TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,它通过控制发送方的数据发送速率来适应...
通过本文的介绍,我们了解了TCP流量控制的原理、实现机制以及一个简单的代码示例。TCP流量控制通过滑动窗口协议和基于确认的流量控制方法,动态调整数据的发送速率,以避免接收方处理不过来的情况。在实际应用中,...
"TCP流量控制" TCP(Transmission Control Protocol)是一种可靠的、面向连接的传输层协议,流量控制是TCP中一个非常重要的机制。TCP流量控制是指在TCP连接中,发送端和接收端之间的数据传输速率的控制,以免发送端...
在计算机网络中,传输控制协议(Transmission Control Protocol,TCP)是确保数据可靠传输的核心协议之一。...通过对TCP流量控制和拥塞控制机制的深入理解,开发者可以更好地设计和优化网络通信应用。
计算机网络课件:TCP协议的流量控制与拥塞控制 TCP 协议的流量控制与拥塞控制是计算机网络中的一种重要机制,它们旨在确保数据传输的可靠性和效率。在本节中,我们将详细探讨 TCP 协议的流量控制和拥塞控制机制。...
6. 实验与论文:在这个项目中,可能包含了作者使用NS模拟TCP流量控制和拥塞控制的实验,以及实验结果的分析和讨论。小论文可能详细描述了实验目的、方法、结果和结论,有助于理解TCP在实际网络环境中的行为。 7. ...
TCP拥塞控制四个主要过程 TCP拥塞控制是TCP协议中的一种机制,用来避免网络拥塞和提高网络传输效率。TCP拥塞控制主要包括四个阶段:慢启动阶段、拥塞避免阶段、快速重传和快速恢复阶段。 一、慢启动阶段 在TCP...
TCP 滑动窗口、流量控制及拥塞控制详解 TCP 滑动窗口是 TCP 协议中的一种流量控制机制,它可以控制发送方的发送速度,避免网络拥塞和数据丢失。下面我们将详细介绍 TCP 滑动窗口、流量控制及拥塞控制的原理和机制。...
同时,还需要理解滑动窗口机制,它是TCP流量控制和拥塞控制的基础,用于调节发送方的发送速率,避免网络拥塞。 对于IP协议,书中的内容可能涵盖IP地址的结构、子网掩码、CIDR(无类域间路由)表示法,以及IP分片和...
六、TCP流量控制与拥塞控制 TCP内置了流量控制和拥塞控制机制。流量控制通过滑动窗口机制防止接收方被淹没,拥塞控制则在检测到网络拥塞时减缓发送速率。 七、实时应用与TCP 对于实时应用(如语音通话、视频流)...
3. TCP流量控制和拥塞控制:解释滑动窗口机制、慢启动、拥塞避免、快速重传和快速恢复等策略。 4. TCP连接管理:阐述如何通过SYN、ACK等标志位进行连接建立和断开。 5. 客户端编程实践:提供使用编程语言(如Java、...
3. **TCP窗口** - 窗口大小(Window)是TCP流量控制的一种方式,用来指示接收方当前能够接收的数据量。滑动窗口协议允许发送方在等待确认之前发送多个数据包,提高了效率。窗口大小动态调整,如果接收方处理数据的...
CWND的增长策略是TCP流量控制和拥塞控制的核心。 **TCP的流量控制** 流量控制确保接收方能够处理发送方发送的数据速率。TCP通过滑动窗口机制实现流量控制,滑动窗口的大小决定了待发送的数据量。在TCP中,CWND与...
12. **TCP流量控制与拥塞控制**:流量控制防止接收方来不及处理数据,拥塞控制则避免网络拥塞。TCP使用慢启动、拥塞避免、快速重传和快速恢复等算法来实现这些功能。 13. **UDP(用户数据报协议)**:UDP是无连接的...
七、TCP流量控制与拥塞控制 TCP通过滑动窗口机制实现流量控制,避免接收方来不及处理发送方的数据。同时,TCP还通过慢启动、拥塞避免、快速重传和快速恢复算法来应对网络拥塞问题。 八、IP地址与子网掩码 IP地址是...