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

前言

计算机网络中的带宽、交换节点中的缓存和处理机等,都是网络的资源,在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这样的情况就叫做拥塞。

所谓拥塞控制,就是防止过多的数据注入到网络中,从而使网络中的路由器或链路不致过载。要注意用拥塞控制与流量控制的差别,拥塞控制是一个全局性的过程,涉及到全部的额主机、路由器,以及与减少网

拥塞控制的算法有:慢開始、拥塞避免、快重传、快恢复四种。

慢開始和拥塞避免

发送方维持一个拥塞窗体的状态变量,其大小取决于网络的拥塞程度,动态地变化,而发送窗体一般取拥塞窗体和对方给出的接收窗体的最小值(为了便于描写叙述,后面的分析中假定对方给出的接收窗体足够大,这样将发送窗体等于拥塞窗体就能够了)。

慢開始算法的核心是从小到大逐渐增大发送窗体,也就是说,从小到大逐渐增大拥塞窗体的数值。通常在刚開始发送报文段时,先把拥塞窗体设置为一个最大报文段MSS的数值,而在每收到对上一轮报文段(,每次加倍后的报文段的个数,可能不止一个报文段)的确认后,就把拥塞窗体的数值加倍。

为了防止拥塞窗体增长过大引起网络拥塞,还须要维护一个慢開始门限的状态变量,当拥塞窗体的值小于慢開始门限时,使用慢開始算法,一旦拥塞窗体的值大于慢開始门限的值,就改用拥塞避免算法。

拥塞避免算法的思路是让拥塞窗体缓慢地增大,收到每一轮的确认后,将拥塞窗体的值加1,而不是加倍,这样拥塞窗体的值依照线性规律缓慢增长。

不管是在慢開始阶段还是在拥塞避免阶段,仅仅要发送方推断网络出现拥塞(没有按时收到确认),就把慢開始门限设置为出现拥塞时发送窗体值的一般,但最小不能小于2个MSS值,而后把拥塞窗体的值又一次设置为1个MSS,运行慢開始算法。

快重传和快恢复

快重传算法首先要求接收方每收到一个失序的报文段后就马上发出反复确认(反复发送对前面有序部分的确认),而不是等待自己发送数据时才进行稍待确认,也不是累积收到的报文发送累积确认,假设发送方连续收到三个反复确认,就应该马上重传对方未收到的报文段(有收到反复确认,说明后面的报文段都送达了,仅仅有中间丢失的报文段没送达)。

快恢复算法与快重传算法配合使用,其过程有例如以下两个要点:

1、当发送方连续收到三个反复确认时,就把慢開始门限减半,这是为了预防网络发生拥塞。注意,接下来不运行慢開始算法。

2、因为发送方如今觉得网络非常非常可能没有发生特别严重的堵塞(假设发生了严重堵塞的话,就不会一连有好几个报文段到达接收方,就不会导致接收方连续发送反复确认),因此与慢開始不同之处是如今不运行慢開始算法(即拥塞窗体的值不设为1个MSSS),而是把拥塞窗体的值设为慢開始门限减半后的值,而后開始运行拥塞避免算法,线性地增大拥塞窗体。

【网络协议】TCP的拥塞控制机制,布布扣,bubuko.com

时间: 2024-10-15 17:06:36

【网络协议】TCP的拥塞控制机制的相关文章

【网络】TCP的拥塞控制

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

网络协议|TCP/IP协议相关

双方会发送保活报文,当一方断开连接时,超过一定次数的保活报文没有被收到,就会停止发送. 在浏览器敲入URL并且按回车之后会发生什么: http状态码 post和get的区别 cookie和session的区别 原文地址:https://www.cnblogs.com/cykfory/p/10353501.html

《网络协议》TCP 拥塞控制

TCP 拥塞控制主要有几种:慢启动.拥塞避免.快重传 以及 快恢复. 慢启动 为了防止网络拥塞,TCP 采用了一种慢启动算法,对发送数据量进行控制.为了调节发送端的数据发送量,引入了拥塞窗口,在慢启动时,将这个拥塞窗口设为 1 个报文段发送数据,之后每收到一次确认应答,拥塞窗口的值就加 1 个报文段.在发送数据包时,将拥塞窗口的大小与接收端主机通知的窗口大小进行比较,然后选择较小的值来控制数据量的发送.拥塞窗口是发送端使用的流量控制,而通告窗口则是接收端使用的流量控制. 慢启动算法步骤如下(cw

网络基础tcp/ip协议五

传输层的作用: ip层提供点到点的链接. 传输层提供端到端的链接. 传输层的协议: TCP: 传输控制协议可靠的,面向链接的协议,传输效率低. UDP: 用户数据报协议,不可靠,无连接的服务,传输效率高. TCP工作原理: TCP的封装格式 链接与断开 流量控制 拥赛控制 差错控制 计时器 TCP的封装格式: 源端口,目标端口 序列号,确认序列号 如序列号为x则确认号为x+1 TCP首部长度至少20字节 控制位: SYN:建立连接时将这个值设为1 ACK:当ACK=1表示确认,ACK=0表示确认

【网络】TCP协议

TCP协议:对于网络协议而言.TCP在传输层中是一个十分钟要的协议,那么什么是TCP协议呢? TCP协议概念: 传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议. 在因特网协议族(Internet protocol suite)中,TCP层是位于I

网络协议之TCP

前言 近年来,随着信息技术的不断发展,各行各业也掀起了信息化浪潮,为了留住用户和吸引用户,各个企业力求为用户提供更好的信息服务,这也导致WEB性能优化成为了一个热点.据分析,网站速度越快,用户的黏性.忠诚度.转化率等也越高.对网络通信有决定性影响的因素有延时和带宽,延时有传播延时.传输延时.处理延时和排队延时构成.对于日常网站浏览来说,延时要比带宽对性能影响更大,因为一个网站需要的资源往往是由很多小文件构成,需要多次请求才能完成,其处理延时.排队延时更大.不同的网络协议具有不同的信息传递方式,也

linux内核工程导论-网络:tcp拥塞控制

这篇文章本来是在tcp那篇里面的,但是那篇太长了,不专一.就完善了一下提取出来了. TCP拥塞控制 拥塞控制讨论的是很多个同时存在的tcp连接应该怎么规划自己的数据包发送和接收速度,以在彼此之间共享带宽,同时与其他实体的机器公平的竞争带宽,而不是自己全占. 拥塞控制的核心是AIMD(additive-increase/multiplicative-decrease ),线性增加乘性减少.为啥不用线性增加线性减少,或者是乘性增加乘性减少呢?这个有人专门研究过,只有AIMD可以收敛聚合使得链路公平.

OSI七层模型,讲解tcp/ip五层涉及的网络协议,网络通信实现,结合协议来看网络通信流程

当我们通过自己电脑的浏览器访问京东的时候, 览器上输入了一个网址,但是我们都知道,互联网连接的电脑互相通信的是电信号,我们的电脑是怎么将我们输入的网址变成了电信号然后发送出去了呢,并且我们发送出去的消息是不是应该让京东的服务器能够知道,我们是在请求它的网站呢,也就是说京东是不是应该知道我发送的消息是什么意思呢.是不是发送的消息应该有一些固定的格式呢?让所有电脑都能识别的消息格式,他就像英语成为世界上所有人通信的统一标准一样,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的intern

深入理解TCP协议及其源代码-拥塞控制算法分析

这是我的第五篇博客,鉴于前面已经有很多人对前四个题目如三次握手等做了很透彻的分析,本博客将对拥塞控制算法做一个介绍. 首先我会简要介绍下TCP协议,其次给出拥塞控制介绍和源代码分析,最后结合源代码具体分析拥塞控制算法. 一.TCP协议 关于TCP协议,其实在我的第二篇博客中:https://www.cnblogs.com/xiaofengustc/p/12012638.html 已有简要的介绍,并且在该博客中我还拿TCP协议与HTTP协议.UDP协议做了相关对比.有兴趣的同学可以参见我的第二篇博