TCP的拥塞控制

网络中的链路容量和交换结点中的缓存和处理机都有着工作的极限,当网络的需求超过它们的工作极限时,就出现了拥塞。拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。常用的方法就是
1. 慢开始和拥塞避免
2. 快重传和快恢复

下面分别说一下两种方法:

1. 慢开始和拥塞避免

发送方维持一个叫做“拥塞窗口”的变量,该变量和接收端口共同决定了发送者的发送窗口;
当主机开始发送数据时,避免一下子将大量字节注入到网络,造成或者增加拥塞,选择发送一个1字节的试探报文;
当收到第一个字节的数据的确认后,就发送2个字节的报文;
若再次收到2个字节的确认,则发送4个字节,依次递增2的指数级;
最后会达到一个提前预设的“慢开始门限”,比如24,即一次发送了24个分组。慢开始门限ssthresh的用法如下:
cwnd < ssthresh, 继续使用慢开始算法;
cwnd > ssthresh,停止使用慢开始算法,改用拥塞避免算法;
cwnd = ssthresh,既可以使用慢开始算法,也可以使用拥塞避免算法;

所谓拥塞避免算法就是:每经过一个往返时间RTT就把发送方的拥塞窗口+1,即让拥塞窗口缓慢地增大,按照线性规律增长;
当出现网络拥塞,比如丢包时,将慢开始门限设为原先的一半,然后将cwnd设为1,执行慢开始算法(较低的起点,指数级增长);

时间: 2024-10-08 19:35:13

TCP的拥塞控制的相关文章

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

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

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

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

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.慢开始和拥塞避免 发送方维持一个叫做拥塞窗口cwnd的状态变量.拥塞窗口的大小取决于网络的拥塞程度,并且动态地变化.发送方让自己的发送窗口等于拥塞窗口. 慢开始算法:使用慢开始算法后,每经过一个传输轮次,拥塞窗口就加倍. 为了防

TCP中拥塞控制

TCP拥塞控制,是防止网络中过多数据注入网络,导致路由器或链路过载. TCP拥塞控制十一个全局性过程. 几个窗口值: 发送方窗口值:发送方缓冲区大小 接收方窗口值:接收方缓冲区大小 拥塞窗口值:   cwnd,表示网络拥塞情况 通告窗口值:  接收方通过这个值去通知 发送方 调整其发送缓冲区大小 慢启动窗口值:当拥塞窗口值小于这个值时,为防止网络拥塞,要采用慢启动. 传输效率及Nagle算法 TCP的数据传输分为交互数据流和成块数据流,交互数据流一般是一些交互式应用程序的命令,所以这些数据很小,

TCP之拥塞控制

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

TCP的流量控制和拥塞控制

一.首先和UDP作比较谈谈TCP的特点 (1)UDP是数据报协议,每个数据报都有长度,数据报的长度和数据一起发送和接受,各个数据报的发送和接受相互独立,互不影响.而TCP是字节流协议,所有经TCP发送的数据没有记录边界. (2) UDP是无连接.不可靠的协议,而TCP是有连接,可靠协议.TCP的可靠性主要指经TCP发送的数据要么准确无误的发送到了对端,要么发送失败并且以合适的方式通知应用程序,也就是可靠的传输数据和可靠地报告错误,TCP协议每一次发送数据以后先暂时将数据保存在缓存区,直到接收到对

TCP流量控制和拥塞控制

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

网络拥塞控制(三) TCP拥塞控制算法

为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制.最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”.“快速恢复(Fast Recovery)”算法,再后来在TCP NewReno中又对“快速恢复”算法进行了改进,近些年又出现了选择性应答( selective acknowledge