一种基于主动网络技术的拥塞控制算法
- 格式:pdf
- 大小:358.43 KB
- 文档页数:5
TCP拥塞控制算法转⾃本篇⽂章介绍了⼏种经典的TCP拥塞控制算法,包括算法原理及各⾃适⽤场景。
回顾上篇⽂章:前⾔TCP 通过维护⼀个拥塞窗⼝来进⾏拥塞控制,拥塞控制的原则是,只要⽹络中没有出现拥塞,拥塞窗⼝的值就可以再增⼤⼀些,以便把更多的数据包发送出去,但只要⽹络出现拥塞,拥塞窗⼝的值就应该减⼩⼀些,以减少注⼊到⽹络中的数据包数。
TCP 拥塞控制算法发展的过程中出现了如下⼏种不同的思路:基于丢包的拥塞控制:将丢包视为出现拥塞,采取缓慢探测的⽅式,逐渐增⼤拥塞窗⼝,当出现丢包时,将拥塞窗⼝减⼩,如 Reno、Cubic 等。
基于时延的拥塞控制:将时延增加视为出现拥塞,延时增加时增⼤拥塞窗⼝,延时减⼩时减⼩拥塞窗⼝,如 Vegas、FastTCP 等。
基于链路容量的拥塞控制:实时测量⽹络带宽和时延,认为⽹络上报⽂总量⼤于带宽时延乘积时出现了拥塞,如 BBR。
基于学习的拥塞控制:没有特定的拥塞信号,⽽是借助评价函数,基于训练数据,使⽤机器学习的⽅法形成⼀个控制策略,如 Remy。
拥塞控制算法的核⼼是选择⼀个有效的策略来控制拥塞窗⼝的变化,下⾯介绍⼏种经典的拥塞控制算法。
VegasVegas[1]将时延 RTT 的增加作为⽹络出现拥塞的信号,RTT 增加,拥塞窗⼝减⼩,RTT 减⼩,拥塞窗⼝增加。
具体来说,Vegas 通过⽐较实际吞吐量和期望吞吐量来调节拥塞窗⼝的⼤⼩,期望吞吐量:Expected = cwnd / BaseRTT,实际吞吐量:Actual = cwnd / RTT,diff = (Expected-Actual) * BaseRTT,BaseRTT 是所有观测来回响应时间的最⼩值,⼀般是建⽴连接后所发的第⼀个数据包的 RTT,cwnd 是⽬前的拥塞窗⼝的⼤⼩。
Vegas 定义了两个阈值a,b,当 diff > b 时,拥塞窗⼝减⼩,当 a <= diff <=b 时,拥塞窗⼝不变,当 diff < a 时,拥塞窗⼝增加。
tcp的拥塞控制方法摘要:TCP是一种面向连接的、可靠的、全双工传输控制协议,它的拥塞控制算法是它可靠性的重要保障。
本文旨在介绍tcp的拥塞控制方法,并探讨它们的实现原理和特点,以期为其它研究者提供参考。
关键词:TCP;拥塞控制;窗口调整1 引言拥塞控制是Internet协议栈的重要组成部分,它不仅控制网络中的流量,也提高了数据传输的可靠性。
随着网络的发展,拥塞控制算法也发生了很大的变化研究者们也不断对它们进行改进,以提高数据传输的效率。
其中TCP协议的拥塞控制算法是最为重要的,它是数据传输可靠性的重要保障。
本文旨在介绍TCP的拥塞控制方法,并探讨它们的实现原理以及特点,以期为其它研究者提供参考。
2 TCP的拥塞控制2.1 概述TCP的拥塞控制机制是在数据传输过程中通过窗口调整策略来控制网络容量的,它涉及到两个方面:1. 控制发送方的发送速率;2. 保证接收方的最大接收速率。
它的基本原理是:当网络中发生拥塞,接收方可能收到部分数据丢失或者超时,此时发送方会根据接收方的反馈信息进行窗口调节,降低发送的速率以免网络中的数据流过大,从而保证网络的可靠性。
2.2 方法TCP的拥塞控制方法一般有以下三种:(1)慢启动:慢启动的机制是一种自适应的机制,它根据网络的情况自动调整窗口大小,以保证最大的传输效率。
它的基本原理是:发送方在发送数据时,以慢启动的速率给网络中的接收方发送数据,接收方收到正确数据,则慢启动的窗口大小会加倍,直到达到最大窗口大小限制;如果接收方收到的数据有丢失,则发送方会减少窗口大小。
(2)拥塞避免:拥塞避免的机制是一种更为激进的窗口调整机制,它的基本原理是发送方根据网络状态,在慢启动的基础上逐渐增加窗口大小,但不会超过最大窗口大小限制。
(3)快速重传:快速重传是TCP协议的一种重要拥塞控制机制,它的基本原理是在发送方发现超时时,会立即以双倍的速率重发超时的数据,以避免因超时而引起的拥塞。
深⼊理解TCP协议及其源代码-拥塞控制算法分析这是我的第五篇博客,鉴于前⾯已经有很多⼈对前四个题⽬如三次握⼿等做了很透彻的分析,本博客将对拥塞控制算法做⼀个介绍。
⾸先我会简要介绍下TCP协议,其次给出拥塞控制介绍和源代码分析,最后结合源代码具体分析拥塞控制算法。
⼀、TCP协议1.TCP协议产⽣背景:互联⽹络与单个⽹络有很⼤的不同,因为互联⽹络的不同部分可能有截然不同的拓扑结构、带宽、延迟、数据包⼤⼩和其他参数,且不同主机的应⽤层之间经常需要可靠的、像管道⼀样的连接,但是IP层不提供这样的流机制,⽽是提供不可靠的包交换。
2.TCP是能够动态地适应互联⽹络的这些特性,⽽且具备⾯对各种故障时的健壮性,且能够在不可靠的互联⽹络上提供可靠的端到端字节流⽽专门设计的⼀个传输协议。
3.TCP作⽤原理过程:应⽤层向TCP层发送⽤于⽹间传输的、⽤8位字节表⽰的数据流,然后TCP把数据流分区成适当长度的报⽂段(通常受该计算机连接的⽹络的数据链路层的最⼤传输单元(MTU)的限制)。
之后TCP把结果包传给IP层,由它来通过⽹络将包传送给接收端实体的TCP层。
TCP为了保证不发⽣丢包,就给每个包⼀个序号,同时序号也保证了传送到接收端实体的包的按序接收。
然后接收端实体对已成功收到的包发回⼀个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进⾏重传。
TCP⽤⼀个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
4.TCP协议作⽤过程的7个要点:数据分⽚、到达确认、超时重发、滑动窗⼝、失序处理、重复处理、数据校验(具体可参见百度百科对TCP的解释)5.TCP⾸部格式图:⼏个重要参数解释如下:紧急 URG —— 当 URG =1 时,表明紧急指针字段有效。
它告诉系统此报⽂段中有紧急数据,应尽快传送(相当于⾼优先级的数据)。
确认 ACK —— 只有当 ACK = 1 时确认号字段才有效。
Ad-hoc网络PSD拥塞控制算法陈亮;张宏【期刊名称】《计算机科学》【年(卷),期】2011(38)6【摘要】Neuron PID algorithm can control queue length successfully, but its neuron gain is sensitive for controlled object state. So it is difficult to guarantee the control performance because the gain depends on experience and trial method. Congestion window size, loss probability and queue length differential equations were deduced based on TCP window additive-increase and multiplicative-decrease (AIMD) principle and queuing mechanism. TCP/AQM control model was obtained in Ad-hoc network through the equations linearization. Then it introduced recursion and modification gain to neuron PID based on the model. Finally, a neuron adaptive proportional summation differential (PSD) AQM was proposed. PSD algorithm can modify neuron gain dynamically. NS simulations demonstrate that PSD queue management performance is better than neuron PID under conditions of wireless packet loss, sudden flow and different link capacity.%神经元PID算法能较好地控制队列长度,但其神经元增益对被控对象的状态较为敏感,基于试凑和经验的设定往往使控制效果难以保证.基于TCP拥塞窗口加法增大、乘法减小原则和排队机制,推导出拥塞窗口与丢弃概率、队列长度的微分方程,再对方程进行线性化,获得Ad-hoc网络TCP/AQM控制系统模型.基于该模型,将递推计算修正功能引入神经元PID,设计了一种神经元自适应PSD的AQM.该算法可以在线调整神经元增益.NS仿真表明,在无线分组丢失、突发流及链路容量变化的Ad-hoc网络中,PSD队列管理性能优于神经元PID.【总页数】5页(P45-48,69)【作者】陈亮;张宏【作者单位】南京理工大学计算机科学与技术学院,南京,210094;南通纺织职业技术学院信息系,南通,226007;南京理工大学计算机科学与技术学院,南京,210094【正文语种】中文【中图分类】TP393【相关文献】1.基于改进网络模型的大时滞网络拥塞控制算法 [J], 王晓曦;王永吉;周津慧;王秀利2.一种基于通信量趋势预测的Ad-hoc网络拥塞控制策略 [J], 王文涛;王豪;朱容波;郭峰;郑芳3.舰艇编队网络拥塞控制算法研究 [J], 武树斌;温玉屏;杨心武;范佳欣;李含辉4.主动队列管理下大时滞网络路径拥塞控制算法 [J], 刘国芳;张炜5.基于异构网络的TCP Vegas拥塞控制算法改进研究 [J], 张奎;刘晨因版权原因,仅展示原文概要,查看原文内容请购买。
TCP系列39—拥塞控制—2、拥塞相关算法及基础知识⼀、拥塞控制的相关算法早期的TCP协议只有基于窗⼝的流控(flow control)机制⽽没有拥塞控制机制,因⽽易导致⽹络拥塞。
1988年Jacobson针对TCP在⽹络拥塞控制⽅⾯的不⾜,提出了“慢启动(Slow Start)”和“拥塞避免(Congestion Avoidance)”算法。
1990年Jacobson⼜做了两个修正。
在这⼆⼗来年的发展过程中,与拥塞控制相关的有四个⽐较重要的版本:TCP Tahoe、TCP Reno、TCP NewReno和TCP SACK。
TCP Tahoe是早期的TCP版本,它包括了3个最基本的算法-“慢启动”、“拥塞避免”和“快速重传(Fast Retransmit)”,但是在Tahoe版本中对于超时重传和快速重传的处理相同,⼀旦发⽣重传就会开始慢启动过程。
TCP Reno则在TCP Tahoe基础上增加了“快速恢复(Fast Recovery)”算法,针对快速重传作出特殊处理,避免了⽹络拥塞不严重时采⽤“慢启动”算法⽽造成过度减⼩发送窗⼝尺⼨的现象。
TCP NewReno对TCP Reno中的“快速恢复”算法进⾏了修正,它考虑了⼀个发送窗⼝内多个数据包丢失的情况。
在Reno版中,发送端收到⼀个新的ack number后就退出“快速恢复” 阶段,⽽在NewReno版中,只有当所有的数据包都被确认后才退出“快速恢复”阶段。
TCP SACK关注的也是⼀个窗⼝内多个数据包丢失的情况,它避免了之前版本的TCP重传⼀个窗⼝内所有数据包的情况,包括那些已经被接收端正确接收的数据包,⽽只是重传那些被丢弃的数据包。
传统的TCP拥塞控制算法主要就由慢启动、拥塞避免、快速重传、快速恢复这4个基础算法组成,这四个基础算法在RFC5681规范中进⾏了描述。
后续我们将会分别对这些拥塞控制相关的算法做介绍,在介绍这些拥塞控制的相关算法之前我们先介绍⼀下拥塞控制中的数据包守恒原则和linux中拥塞控制的背景知识,以⽅便后⾯进⾏更进⼀步的介绍。
TCP拥塞控制算法比较
一、概述
TCP拥塞控制算法是确保网络正常运行最重要的算法之一,它通过限
制发送端的发送速率来控制拥塞,确保网络中数据的可靠传输、有效利用
网络带宽以及网络拥塞的有效控制。
近年来,随着网络技术的发展和应用,网络的负载和复杂性不断增加,TCP拥塞控制算法的重要性也日益凸显。
研究者们依据其独特的网络环境,提出了多种拥塞控制算法,他们的特点
不同,控制单元也各不相同。
本文将对目前主要的TCP拥塞控制算法进行
比较,以及介绍拥塞控制算法的优缺点。
1.慢启动算法(Slow-start Algorithm)
慢启动算法是TCP拥塞控制的基础,它主要用来调整发送端的发送速率,以有效地使用网络资源,改善网络的性能。
慢启动算法的拥塞控制单
元为拥塞窗口(Congestion Window),当拥塞窗口大小达到一定范围时,发送端将发送报文段,否则将暂时停止发送,以减少网络拥塞情况的发生。
2.拥塞避免算法(Congestion Avoidance Algorithm)
是TCP拥塞控制机制的另一个组成部分,它在慢启动算法的基础上增
加了一种自适应调整方法,使得发送端的发送速率可以根据拥塞环境的实
时变化而动态调整。