TCP 流量控制、拥塞控制

流量控制:

  流量控制是为了控制发送方发送速率,保证接收方来得接收。

  接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为 0,则发送方不能发送数据。

拥塞控制:

  如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。因此当出现拥塞时,应当控制发送方的速率。这一点和流量控制很像,但是出发点不同。流量控制是为了让接收方来得及接受,而拥塞控制是为了降低整个网络的拥塞程度。

TCP主要通过四种算法来进行拥塞控制:慢开始、拥塞避免、快重传、快恢复。发送方需要维护一个叫做拥塞窗口的状态变量。注意拥塞窗口与发送方窗口的区别,拥塞窗口只是一个状态变量,实际决定发送方能发送多少数据的是发送方窗口。

1、慢开始与拥塞避免

  发送的最初执行慢开始,令拥塞窗口=1,发送方只能发送1个字节;当收到确认报文后,将拥塞加倍,因此之后发送的字节数为:2 4 8.....;设置一个慢开始门限ssthresh,当拥塞窗口>=ssthresh时,进入拥塞避免,每个轮次只将拥塞窗口加1;如果出现超时,则令ssthresh=拥塞窗口/2,然后重新执行慢开始。

2、快重传与快恢复

  在接收方,每次要求接收方收到报文段都应该发送对已经收到有序字节的确认,例如已经接收到a1、a2,此时收到a4,应当发送对a2的确认;在发送方,如果收到3个重复确认,那么就可以确认下一个字节丢失,例如收到了3个a2,则a3丢失,此时快重传,立即重传下一个字节;在这种情况下,只是丢失个别字节,而不是网络拥塞,因此执行快恢复,令ssthresh=拥塞窗口/2,拥塞窗口=ssthresh,直接进入拥塞避免。

原文地址:https://www.cnblogs.com/ybf-yyj/p/9147766.html

时间: 2024-08-02 00:01:07

TCP 流量控制、拥塞控制的相关文章

TCP流量控制和拥塞控制

TCP的流量控制 所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受.利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制.TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值. 如图所示,说明了利用可变窗口大小进行流量控制.设主机A向主机B发送数据.双方确定的窗口值是400.再设每一个报文段为100字节长,序号的初始值为seq=1,图中的箭头上面大写ACK,表示首部中的却认为为ACK,小写ack表示确认字段的值. 接收方的主机B进行了

TCP流量控制与拥塞控制

 一.TCP建立连接后,通信双方都同时可以进行数据的传输:在保证可靠性上,采用超时重传和捎带确认机制:在流量控制上,采用滑动窗口协议,协议中规定,窗口内未经确认的分组需要进行重传:在拥塞控制上,采用慢启动算法. (一)拥塞控制: 1. TCP慢启动.拥塞避免.快速重传.快速回复 为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制.最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由"慢启动(Slow start)"和"拥塞避免(Congestio

TCP 流量控制和拥塞控制中的重要机制

停止等待协议: 放送方发送一个数据包,要收到接收方对该包的确认后,才发送下一个数据包. 缺点:慢,信道利用率低. ARQ Automatic Repeat reQuest 接收方采用累加确认的方式,接收方不必对每一个分组进行缺,只需要对按序到达的最后一个分组发送确认. 缺点:当发送方发送了5个分组,中间第3个丢失,那么接收方只对前两个分组进行确认.发送方只好把后面的3个分组都重传一次.这叫做Go-back-N(回退N) 选择确认 selective ack 接收方对接收到的数据字节流中,若有中间

【网络协议】TCP的拥塞控制机制

前言 计算机网络中的带宽.交换节点中的缓存和处理机等,都是网络的资源,在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这样的情况就叫做拥塞. 所谓拥塞控制,就是防止过多的数据注入到网络中,从而使网络中的路由器或链路不致过载.要注意用拥塞控制与流量控制的差别,拥塞控制是一个全局性的过程,涉及到全部的额主机.路由器,以及与减少网 拥塞控制的算法有:慢開始.拥塞避免.快重传.快恢复四种. 慢開始和拥塞避免 发送方维持一个拥塞窗体的状态变量,其大小取决于网络的拥

【网络】TCP的拥塞控制

一.拥塞控制的一般原理 拥塞:对网络中某一资源的需求超过了该资源所能提供的可用部分 拥塞控制是防止过多的数据注入到网络,这样可以使网络中的路由器或链路不致过载,拥塞控制是一个全局性的过程. 流量控制往往指点对点通信量的控制,是个端到端的问题. 二.拥塞控制的四种算法 1.慢开始和拥塞避免 发送方维持一个叫做拥塞窗口cwnd的状态变量.拥塞窗口的大小取决于网络的拥塞程度,并且动态地变化.发送方让自己的发送窗口等于拥塞窗口. 慢开始算法:使用慢开始算法后,每经过一个传输轮次,拥塞窗口就加倍. 为了防

TCP流量控制和拥塞避免

TCP的流量控制 所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受.利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制.TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值. 如图所示,说明了利用可变窗口大小进行流量控制.设主机A向主机B发送数据.双方确定的窗口值是400.再设每一个报文段为100字节长,序号的初始值为seq=1,图中的箭头上面大写ACK,表示首部中的却认为为ACK,小写ack表示确认字段的值. 接收方的主机B进行了

计算机网络(10)-----TCP的拥塞控制

TCP的拥塞控制 拥塞(congestion) 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏. 拥塞控制 拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载. 如图所示,横坐标是提供的负载(offered load),代表单位时间内输入给网络的分组数目.纵坐标是吞吐量(throughput),代表单位时间内从网络输出的分组数目. 理想状态:在吞吐量饱和之前,网络吞吐量应等于提供的负载,故吞吐量曲线是45度的斜线.但当提供的负载

TCP/IP拥塞控制

TCP/IP拥塞控制包括:慢启动和拥塞避免.其操作流程如下所述: 初始化.拥塞窗口cwnd = 1,慢启动门限ssthresh = 65535 如果没有发生拥塞 若 cwnd < ssthresh 则执行慢启动,cwnd = cwnd + 1.相当于发送字节数以指数形式上升 若cwnd >= ssthresh 则执行拥塞避免,cwnd = cwnd + 1/cwnd.相当于发送字节数以线性方式上升 如果发生拥塞 ssthresh = cwnd / 2 若因为超时引发拥塞.cwnd = 1 若因

TCP之拥塞控制

1.拥塞控制 1.1.拥塞 在某段时间,如果对网络中的某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要发生变化,这种情况叫阻塞. 1.2.拥塞控制 防止过多的数据注入到网络当中,这样可以使网络中的路由器或链路不致过载.在发送方维护一个虚拟的拥塞窗口,并利用各种算法使它尽可能的接近真实的拥塞点.(通过拥塞窗口处理网络拥塞现象的一种机制) 拥塞控制的前提是当前网络能够承受现有的网络负荷: 拥塞控制是一个全局性的过程,涉及到所有的主机.路由器,以及与降低网络传输性能有关的所有因素: 拥塞控