专利名称:用于网络装置的缓冲控制的方法
技术领域:
本发明的实施例涉及通信网络,更具体地,本发明涉及用于控 制数据通信系统的队列緩沖的系统和方法。
背景技术:
队列緩沖管理的传统方法包括配备流控制接口 ( flow controllable interface, FCI )。当网络装置连接到通过FCI提供数据源 的主机时,当网络装置内的队列超出指定等级时,这些装置间的数 据流通常一皮堵塞。配备FCI以防止在网络装置的队列一直溢出的情 况下的凄t据流失(data loss )。当网络装置与主才几之间的凄t据流净皮堵 塞时,需要主才几中的网络层来对数据进4亍排队,因为网络层之上的 流控制是由传输层控制的。取决于传输层(TCP, UDP等)和传输 参数(诸如rwin),在主才几中经常出现过量的排队。
这样的系统存在与过量的排队相关l关的缺点。 一个缺点是过量 的排队会导致数据穿过从数据源到数据目的地(例如,网络装置) 然后返回数据源的链路所需要的时间增加。该时间就是公知的信道 的往返时延(round trip time ( RTT ) )。 RTT的增量等于排队凄t据量 乘以网络装置的最大输出速率。
图1示出了根据现有技术配备有FCI的系统及其缺点。对于 TCP数据,RTT的增加和吞吐量的减少的根本原因是上行链路的接 收窗口尺寸被远端服务器设置的太大。RTT的增加是由TCP协议之下的上行链路的数据路径中的过量的排队导致的,其中多个TCP 会话:故复用到一个流中(对于UDP凄t据,过量的排队在UDP流凄t
据速率超出网络装置的输出速率的任何时间发生)。
TCP流的吞吐量降^f氐是由典型的TCP FCI的下一凄t据通信过程 引起的。由于应用程序发送数据至网络装置比数据能被发出的速率 快,因此数据必须随着DL确i人一同进行排队,如图1所示。排队 的数据使得RTT增加,而RTT的增加导致了到远端数据源(未示 出)的DLTCP确认的延迟。及时的TCP确认的缺少使得远端数据 源降低了数据传输速率。
发明内容
本发明的实施例4是供了 一种用于队列緩沖管理的方法。对于本 发明的一个实施例,互耳关网协i义凄t据在凄t据源装置处生成,所生成 的数据被传输至一个或多个网络装置并在一个或多个网络装置处 #皮接收d基于指定的标准选纟奪性地丢弃所生成的部分数据以改善所 生成的数据的数据流。指定的标准选自由自上一丢弃之后的时间、 自上一^皮丟弃的凄t据包(packet)之后的凄t据包凄t量、凄t据包协i义、 凄t据包尺寸及其组合组成的组中。对于本发明的一个实施例,所生 成的数据经由流控制接口传输。
以下将对本发明的其它优点和实施例进行详细描述。
通过参考以下描述和用于说明本发明实施例的附图,可以更好 地理解本发明。在附图中
图1示出了根据现有技术配备有FCI的系统及其缺点;图2示出了根据本发明的一个实施例的数据通信系统;
图3示出了根据本发明的一个实施例的实现数据通信系统的队 列緩冲管理的过程;
图4示出了根据本发明的一个实施例的用于队列緩冲管理的方 法的流程图5示出了根据本发明的一个实施例的可以用于传送数据的数 字处理系统的功能冲匡图1A示出了固定拥塞阈4直(Congestion Threshold )仿真;
图2A示出了固定拥塞阈值仿真一变化的输出DR;
图3 A示出了不存在凄t据包间最小时间的固定拥塞阈值仿真;
图4A示出了固定最小时间间隔的仿真;
图5A示出了具有变化的输出速率的固定最小时间间隔的仿
真;
图6A示出了固定最小H据包间隔仿真;
图7A示出了动态的拥塞控制仿真;
图8A示出了动态的最小时间间隔^f方真;
图9A示出了具有UDP速率〈物理输出速率的拥塞仿真;
图10A示出了具有UDP〉物理输出速率的仿真;图11A示出了具有动态的2级最d、时间间隔机制的仿真;
图12A示出了使用具有变化的输出速率的DTSM的仿真;以
及
图13A示出了使用具有变化的输出速率而没有UDP流量的 DTSM的仿真。
具体实施例方式
一种用于队列緩沖管理的方法和系统,其中,基于指定的标准 来选择性地删除接收到的数据,以便改善数据流。对于本发明的各 个实施例,其中,系统配备有FCI,指定的标准可以包括以下的各 种组合中的一个或多个队列深度、滤波的队列深度、上一丢弃凄史 据之后的时间、上一丢弃数据之后的接收到的数据量、以及数据包 尺寸和数据包协议(对于实现基于数据包的数据通信的系统)。对 于在非流可控制环境内实施的本发明的实施例,指定的标准可以包 括以下的各种组合中的 一 个和多个自上 一 丢弃的数据之后的时 间、自上一丢弃的数据之后接收到的数据量、以及(对于实现基于 数据包的数据通信的系统)数据包尺寸和数据包协议。
本领域的普通技术人员将了解,本发明的各个实施例的以下详 细描述只是说明性的,而并非旨在进行任何方式的限定。受益于本 发明披露内容的技术人员能够容易地联想到本发明的其他的实施 例。本领域普通技术人员应理解,这些具体的细节可能并不是实现 本发明的实施例所必须的。在其4也的情况下,以才匡图的形式示出已 知的元件和装置,以避免使本发明难以理解。在以下实施例的描述 中,基本上相同的部分由相同的参考标号表示。为了清楚起见,并未示出和描述本文所描述的实施方式的所有特征。当然,应当理解的是,在开发任何这样的实际实施方式时,可以制作许多特定实施方式的装置以1更达到开发者的特定目的,其中这些特定目的将乂人一个实施到另一个实施以及乂人一个开发者到另一个开发者发生变化。此外,应当理解的是,这样的开发努力可能是复杂且耗时的,但是对于获益于本公开的本领域的普通技术人员来说,只不过是日常的工程任务。
根据本发明的实施例,可以使用各种类型的操作系统、计算平台、计算才几程序、和/或通用才几器来实现各元件、处理步骤、和/或
数据结构。另外,本领域的普通技术人员应理解,在不背离本文中所公开的本发明构思的范围和精神的情况下,还可以使用不太通用类型的装置。
尽管已示出和描述了本发明的特定实施例,但是对于获益于本公开的本领域的技术人员来说,显而易见的是,在不背离本文中所/^开的本发明构思的情况下,可以有比以上所述多^寻多的4,改。此外,所列出的发明点少于单个所公开的实施例的所有特征。因此,具体实施方式
之后的权利要求乂人而可以清楚地与该
具体实施例方式
的实施例。
图2示出了根据本发明的一个实施例的数据通信系统。如图2所示,系统200包括生成凄t据(例如,互联网协i义凄t据)的数据源装置205。所生成的数据被传输至接收数据的一个或多个网络装置(例如所示的网络装置210 )。网络装置通过本领域已知的有线或无线通信设备通信地连接至数据源装置。对于本发明的一个实施例,网纟备装置210通过T者3口 (侈寸^口) USB、 PCMCIA、 Expresscard、 PCIExpress Mini或系列的FCI通信地连4妻至^t据源装置205。网络装置210包括队列管理功能215,其基于指定的标准(例如所示的标准RTT、输出数据率以及队列深度)来确定是否删除接收到的ft据的一部分(例如,丢弃数据包)。
队列管理功能215连接至多^各复用器220,通过多^各复用器可以实现丢弃或删除凄t据的确定,如图2所示。
图3示出了根据本发明的一个实施例的实现数据通信系统的队列緩冲管理的过程。本发明的可选的实施例提供了 一种解决过量排队问题而仍能保持最大网络装置输出速率的队列管理方法。
如图3所示,过程300在操作305处开始,在操作305处,数
据被从数据源装置接收至执行队列緩沖管理方案的网络装置。
在操作310处,基于指定的标准对接收到的数据进行估计。指定的标准可以包括数据通信系统的静态和动态参数。例如,动态参数可以包括拥塞阈值、最小时间间隔、最小丢弃数据包尺寸、以及数据协议,其可以是(例如)输出数据速率、RTT和队列深度的函数。
对于本发明的一个实施例,可以在数据通信之前或数据通信期间动态确定一个或多个指定的标准。对于本发明的各个可选的实施例, 一个或多个指定的标准具有相应的^f直(例如,字节、秒等),该值可以在lt据通信之前或数据通信期间动态确定。
在操作315处,基于估计来选择性地删除部分数据以便改善数据通信系统的凄t据流。
图4示出了4艮据本发明的一个实施例的用于队列緩存管理的方法的流禾呈图。如图4所示,对于本发明的一个实施例,队列管理过程使用输
入信号所估计的信道RTT、所估计的输出数据速率、以及当前的队列深度。该过程确定队列中的部分数据(例如,数据包)是否应该寻皮发送至妨、-汉的下 一层。
对于本发明的一个实施例,队列管理方法是由TCP拥塞控制;f几制驱动的,其可以降^氐拥塞窗口 /人而减少在拥塞标记处的非确i人凄t据或正在处理的^t据的量。正在处理的凄t据越少,数据源装置发送数据就越慢。可以利用两种方法来向发送TCP栈指示拥塞丢弃的数据包或TCP包头中的明确的拥塞通知标记的设置。以其非常基本的方式,队列管理就可以监控队列深度。当队列深度超出某些阈值(例如,本文件中的拥塞阈值)时,其通过丢弃凄t据包或触发明确的拥塞通知来触发TCP拥塞控制机制。队列深度只是队列管理系统在丢弃数据包之前需要考虑的多个因素中的一个因素。
对于本发明的 一个实施例,队列管理系统的输入是一组实时控制信号以及可调的常数。以下是对于变化的系统数据速率和RTT的用于控制队列管理系统的基本可调常凄t的列表。
如图4所示,根据本发明一个实施例的方法可以使用一个或多个包纟舌以下的可调参凄史。
拥塞阈值当平均队列长度和当前队列长度超出该阈值时丢弃数据包。
最小时间间隔自上一个丟弃的^t据包之后,该时间量过去后才考虑丟弃数据包。
最小数据包间隔自上一个丟弃的数据包之后,该多个数据包被发送后才考虑丢弃数据包。
12最小丢弃数据包尺寸该常数是必须被考虑要丢弃的数据包的 最小尺寸。
考虑丢弃的传输协议这包括考虑确定删除(丢弃)数据的传 输协议的列表。可以考虑诸如TCP或UDP的一些协议。可以不考 虑丟弃诸如ICMP 、 RTP等的其他协i义。
除信息以实现队列緩冲管理和改善凄t据流的其他考虑的方法的示例。
再参考图2,本领域的技术人员可以理解数据源装置205和网 络装置210可以是各种凄t字处理系统(DPS)中的任何一种。图5 示出了根据本发明的 一 个实施例的可以用于传输数据的数字处理 系统的功能框图。如图5所示,处理系统500的部件是示例性的, 其中可以省略或添加一个或多个部件。例如, 一个或多个存卩诸装置 可以用于处J里系乡充500 。
参考图5,处理系统500包括中央处理单元502和经由总线501 连接至主存储器504、静态存储器506和大容量存储装置507的信 号处理器503。根据本发明的实施例,主存储器504可以存储可选 4奪的通信应用程序,而大容量存4诸装置507可以存4诸上述所讨i仑的 各种数字内容。处理系统500还可以经由总线501连接至输入/输出 (I/O )装置525和音频/语音装置526。总线501是用于传输信息和 信号的标准系统总线。CPU 502和4言号处理器503是处理系统500 的处理单元。可以-使用CPU 502或4言号处理器503或二者可以用来 处理处理系统500的信息和/或信号。CPU 502包括控制单元531、 算术逻辑单元(ALU) 532、以及若干个寄存器533,其用来处理信 息和信号。信号处理器503还可以包括与CPU 502类似的部件。主存储器504可以是例如随机存取存储器(RAM )或一些其他 的动态存储装置,用于存储CPU 502或信号处理器503使用的信息 或指令(程序代码)。主存4诸器504可以存4诸CPU 502或信号处理 器503执行指令期间的临时变量或其他中间信息。静态存储器506 可以是例如只读存储器(ROM)和/或其他H态存々者装置,用于存 储也可以被CPU 502或信号处理器503使用的信息或指令。大容量 存储装置507可以是例如硬盘驱动器或光盘驱动器,用于存储处理 系统500的信息或指令。
通用内容
本发明的实施例4是供了用于实现数据通信系统中的队列管理 的方法和系统。对于本发明的一个实施例,在数据源装置处生成互 联网协议数据。所生成的凄t据-故传输至一个或多个网络装置并在一 个或多个网络装置处^U妄收。基于指定的标准来选择性地删除所生 成的部分数据以实现所生成的数据的改善的数据流。对于本发明的 一个实施例,所生成的翁:据经由流可控4妄口传输。
本发明的可选实施例提供队列管理方法,其可以解决过量的排 队问题而仍能4呆持最大网络装置输出速率。
本发明的实施例包括诸如传输、緩沖和处理数据的各种操作。
对于各种实施例,可以添加或删除一个或多个所描述的#:作。例如,
存在若干可选的方法可以4吏用网络装置来获取估计的RTT和估计 的输出数据速率。通过检测已经发送的数据所消耗的时间来测量 RTT。如果lt据在进入网络装置时^皮加密,则以这种方式所计算的 RTT是不合理的。可选地,如果网络装置可以生成低速率查验(ping ) 至已知的静态IP地址或可以在队列中找到的IP地址,则可以估计 RTT。此外,可以基于物理层的信道条件来进4亍固定的最坏情况下 的RTT或一4殳情况下的RTT估计。可以通过测量lt才居退出队列的
14速率来计算输出数据速率和/或可以由物理层信道访问授权来确定 输出凄t据速率。
本发明的才喿作可以由石更件部件扭^亍或^皮包含在才几器可寺丸4亍的 指令中,其可以用来使得通用或专用处理器或用指令编程的逻辑电
路执行这些操作。可选地,可以由硬件和软件的组合来执行操作。 本发明的实施例可以才是供为计算枳4呈序产品,该计算才几程序产品可 以包括具有存储在其上的指令的才几器可读介质,其可以用来对计算 机(或其他的电子装置)进行编程以执行根据本发明的进程。机器
可读J 某介可以包括 f旦不限于光盘、CD-ROM和》兹光盘、ROM、 RAM、 EPROM、 EEPROM、石兹或光卡、闪存、或适于存^f诸电子指令的其 他类型的媒体/机器可读媒介。此外,本发明还可以:故下载来作为计 算才几程序产品,其中,该程序可以通过包含在载波中或其他传插4某 介中的lt据信号的方式经由通信单元(例如,调制解调器或网全各连 接)从远程计算机转移至需要的计算机上。
进一步地,虽然在具体内容中描述各种实施例,但是本发明的 实施例可以应用到包含釆用多个凄史据标准的各种单信道或多信道 数据传输系统。
尽管根据若干实施例已经描述了本发明,但是本领域的技术人 员可以了解,本发明不限于所描述的这些实施例,而在所附权利要 求的精神和范围内可以进行修改和改变。从而,认为描述是解释性 的而不是限定性的。
15附录A
可调的参数
对于本发明的一个实施例,队列管理系统的输入是一组实时控 制信号和可调常凄t。以下是对于变化的系统数据$#出速率和RTT的 用于控制队列管理系统的基本可调常数的列表
*拥塞阈值
当平均队列长度和当前的队列长度超出该阈值时丢弃数据包。 *最小时间间隔
自上一个丢弃的数据包之后,该时间量过去后才考虑丟弃数据包。
,最小教:据包间隔
自上一个丢弃的数据包之后,该多个数据包—皮发送后才考虑丢 弃数据包。
,最小丢弃数据包尺寸
该常数是必须考虑要丢弃的数据包的最小尺寸。
考虑丢弃的传,叙协议
这包括考虑丟弃的传输协议的列表,诸如TCP或UDP。可以 不考虑丢弃诸如ICMP、 RTP等的其他协i义。峰负载考虑(consideration )
可选地,队列管理系统应该包括防止由峰输入爆发(peak incoming burst)导致的凝:据包丢弃。由于IP #:据流量的*暴发特性, 发送至队列的流量的大的爆发是4艮平常的。本发明可以避免由任何 流量爆发导致的丢弃数据包。推荐实施一种机制,其中将拥塞阈值 与队列长度的即时测量和队列长度的滤波(或平均或平滑)形式进 行比较。
可以用于避免峰负载时丢弃数据包的另一个机制要求在丢弃 数据包之前的特定时间段内队列长度超出拥塞阈值(CngTh )。该机 制的缺点是在作用于过量的排队时一直存在延迟,这将降低性能。
控制数据包考虑
应避免确认数据包或其他的控制数据包的丢弃,因为他们不能 触发TCP栈中的拥塞控制算法。对数据包进行解析以确定数据包类 型,可以用来减少控制数据包的丟弃。如果数据包被加密,则就不 可能对他们进行解析。在这种情况下,可以使用数据包的尺寸来确 定该数据包是否是确认数据包或其他更小的控制型数据包(ICMP 还趋于更小)。理想i也,只有4妄近最大l殳尺寸(maximum segment size)的凄t据包才考虑丢弃。可以4吏用现有队列管理系统中的常量 最小丢弃数据包尺寸来设置需要考虑丢弃的数据包的最小尺寸。
本文件中所示的所有仿真结果^殳置最小丢弃#:据包尺寸=1200 字节。
头对尾(head versus tail)丢弃考虑为了协助TCP即时地响应触发,应该从队列的前面或头部(正 好要发送出网络装置的数据包)来丢弃将要被丢弃的数据包。从队 列的前面丢弃数据包还可以帮助确保在其后有足够的凄t据来触发
可选4奪的ACK ( SACK )以启动拥塞才几制(TcpMaxDupAcks=2 )否 则TCP栈就要在数据包上超时,这将导致输出性能的降低。因此, 最好是队列和队列管理尽可能地接近MAC或物理层。虽然从队列 的头部丢弃数据包是最优化的,但是可以在队列中的任何地方进行丢弃。
本文件中所示的所有仿真结果均使用头部丟弃机制。 -青争态队列管理方法
该部分讨论-使用关于拥塞阈值、最小时间间隔和最小凄t据包间 隔控制信号的静态信号的队列管理系统。因而,没有使用图4A所 示的CongThFunc函凄l、 MinTimelntFunc函凄史牙口 MinPacketlntFunc
函数。随后将讨论动态队列管理系统。
拥塞阈值信号
拥塞阈值是用于确定何时丢弃数据包的多个控制信号中的一 个控制信号。假设满足(pass)另一个数据包丟弃条件,上述流程 图示出在当前的队列长度和滤波(或平滑)队列长度超出拥塞阈值 时丢弃数据包。
在某种意义上,拥塞阈佳z没置TCP拥塞窗口 (cwin)。由于最 大TCP拥塞窗口是由正在接收数据(见RFC 2581 )的TCP栈设置 的接收窗口 (rwin)设置的,所以其可以增长。为了最大化TCP吞 吐量和最小化排队,应该将rwin设置为延迟带宽积(RTP输出数 据速率L类似地,在队列管理系统中,拥塞阈^直最优地一皮设置为约略地等于延迟带宽积(DBP)。具有该阈值:没置后,TCP拥塞窗 口可以从2乘以DBP变化至1乘以DBP。设置为DBP的拥塞阈值 是最优的点,在该点可以获得最大的输出数据速率并且出现最小的 排队。
图1A示出了具有网络装置输出速率i殳置为16kB/s和0.4s的信 道RTT的队列管理系统的仿真结果。拥塞阈值i殳置在DBP (16*0.4=6.4kB )处。队列管理系统的输入是单个的TCP凄丈据流, 其具有无穷的凄t据源并乂人而一直试图以TCP 4戈的限制内的最大可 允许速率发送数据。
仿真参数
拥塞控制算法参凄t
6400 MAX—CngTh 最大拥塞阈值。 6400 MIN一CngTh 最小拥塞阈值
1200 DropSizeTh -丢弃尺寸阈值(以字节方式表示)要丢弃 的翁:据包的最小尺寸。范围300-1500字节。
0MinPacketlnterval -丢弃间的最小凄t据包凄史量
1.3 MinDropInterval (秒)丢弃的数据包间的最小时间量
物理层
16 输出数据速率(KB/S)从图1A,我们可以看出TCP慢启动机制出现之后,采取TCP 拥塞才几制。所示的TCP拥塞窗口如先前所述的在变化。Mr出数据速 率等于最大物理输出数据速率。队列尺寸从 6400字节变化至0, 这是不发生数据欠载运行的可能的最小队列尺寸。
拥塞阈值设置考虑
如果设置的拥塞阈值太大(大于DBP),则会导致过量的排队。 如果设置的拥塞阈值太小(小于DBP )则会降低队列的输出数据速 率。图2A中的仿真结果示出了这些效应,图2与图1A中的队列 管理系统相同,但是这l殳时间的物理输出数据速率是随时间变化的 以产生不同的DBP。
仿真参数
拥塞控制算法参数
6400 CngTh 最大拥塞阈j直。
1200 DropSizeTh-丢弃尺寸阔值(以字节方式表示)要丢弃 的凄t據包的最小尺寸。范围300-1500字节。
0MinPacketlnterval -丢弃间的最小凝:l居包凄t量
1.3 MinDropInterval (秒)丢弃的凄t据包间的最小时间量
输出数据速率
16 初始速率(字节/秒)
25 改变l命出速率的时间(秒)
208 改变的速率(字节/秒)
45 改变输出速率的时间(秒) 32 改变的速率(字节/秒)
在输出数据速率等于8kB/s的时间段期间,虽然输出数据速率 等于8kB/s,但是在那时存在的排队比必要时更多。在输出数据速 率等于32kB/s的时间,史期间,当队列为空时输出凄t据速率下降并,人 而小于32kB/s。
最小时间间隔(Min Time Interval)
最小时间间隔是用于确定何时丟弃数据包的多个控制信号中 的另一个控制信号。假设满足(pass) 了所有其他的丢弃数据包的 条件,则上述流程图所示只当自上一个丢弃之后的时间大于最小时 间间隔时才丟弃凝:据包。最小时间间隔可以具有两个目的。第一个 目的是在另一个数据包被丟弃之前留给TCP栈一定的时间以对所 丟弃的lt据包作出反应。第二个目的类似于拥塞阈值的目的,其用 来设置合适的时间来丢弃数据包。
当最小时间间隔只用来阻止多个凄t据包^皮丢弃时,应该将其i殳 置为TCP对所丢弃的数据包作出反应所消耗的时间。计算出的该时 间稍微地大于2乘以RTT再加上遍历队列进行重试所消耗的时间长 度(该时间的详细计算在以下部分进行4,导)。^吏用来自图1A所示 的我们的仿真结果的参凄t,所计算的最小时间间隔的时间为
2承0.4(RTT)+6400(丢弃出现时的Q尺寸)/16000(输出速率)+0.1 =1.3 sec该信号的使用是很关键的,否则队列管理系统将会丟弃多于一
个凄t据包。图3A示出了具有固定的拥塞阈值的相同的队列管理系 统,但是这段时间的最小时间间隔设置为0。
仿真参数
拥塞控制算法参数
6400 CngTh 最大拥塞阈值。
1200DropSizeTh -要丟弃的数据包的最小尺寸。范围 300-1500字节。
0 MinPacketlnterval -丢弃间的最小翁:据包凌丈量
0 MinDropInterval (秒)丢弃的凝:据包间的最小时间量
物理层
16 输出数据速率(KB/S)
该仿真的输出示出多个数据包被丢弃因而TCP栈通过迅速地 降低拥塞窗口而作出反应。该紧闭(intern )导致了数据欠载运行并 降低了输出数据速率。
第二个目的是主要依靠最小时间间隔来控制队列等级。在这种 情况下,可以将拥塞阈值设置为几乎是任何一个任意的数量。最优 的最小时间间隔的计算比最优的拥塞阈值的计算稍孩i更复杂些。
将要4吏用以下的变量来推导用于确定最优的最小时间间隔的 公式MaxQ二队列应该增大至DBP的最优的最大量-RTT^DR
DR-输出数据DR
Cwnd4用塞窗口
RTT^主返时延
IPSegSize=IP tt据包的尺寸
TCPSegSize=TCP凄W居包的尺寸
AcksPerSec二每秒收到的确i人
TimeToReduceCwnd=TCP栈从所丢弃的数据包后至1/2Cwnd 的J直所消井4的时间
TimeToGrowQueue =队列/人MaxQ增长所消库毛的时间
TimeToGrowCWnd =TCP栈将Cwnd从MaxQ增长至2*MaxQ
所消库毛的时间
优选地,最小时间间隔等于队列填满至MaxQ所消^^的时间加 上TCP栈对所丟弃的数据包作出反应所消耗的时间。
最小时间间隔 (Min Time Interval ) =TimeToGrowQueue+TimeReduceCwnd
增长队列至MaxQ所消库毛的时间等于TCP栈将拥塞窗口乂人 MaxQ增长至2*MaxQ所消碑毛的时间,然后最 小 时 间 间 隔 (Min Time Interval ) =TimeToGrowCwnd+TimeReduceCwnd
TimeReduceCwnd的计算
TCP栈从所丟弃的数据包至1/2 Cwnd的值所消耗的时间等于 ack /人重试到祐j妄收所消一毛的时间。该时间可以分成为
SACK被接收到所消耗的时间-RTT
转发的数据包被发送所消耗的时间=排队时间=MaxQ/DR 接收到转发的数据包的确认所消耗的时间=RTT 因此,然后
TimeReduceCwnd=RTT+MaxQ/DR+RTT=2 *RTT+ MaxQ/DR 将MaxQ=DR*RTT代入
TimeReduceCwnd=2*RTT+DR*RTT/DR=3*RTT TimeToGrowCWnd的计算
Cwnd从MaxQ尺寸增长至2*MaxQ尺寸所消库毛的时间量为
TimeToGrowCWnd=MaxQ/CwndGrowthRate
每当 ack净皮接收时,拥塞窗口增长的速率等于 TCPSegSizeA2/Cwnd字节。
CwndGrowthRate = (TCP SegSizeA2/Cwnd) * AcksPerSecAcksPerSec = DR/IPSegSize
上述等式由于Cwnd不是常数而变得复杂。为了筒化该等式, 我们将使用等于1.7*MaxQ的平均Cwnd。将其替代Cwnd代入,有:
CwndGrowthRate=TCPSegSizeA2 /(1.7*MaxQ)*DR /IPSegSize 化简,有
CwndGrowthRate= TCPSegSizeA2*DR
(1.7*MaxQ)*IPSegSize
最小时间间隔的计算
将CwndGrowthRate和TimeReduceCwnd代入有
Min Time Interval = MaxO*1.7*MaxO * IPSegSize+3*RTT
TCP SegSizeA2 * DR
将MaxQ = DR*RTT代入并化简,有
Min Time Interval = 1.7*DR*RTTA2 * IPSegSize十3*RTT
TCPSegSizeA2
4吏用以下值
DR= 16000字节/秒 RTT=0.4秒 IPSegSize=1500 TCPSegSize=1450然后最小时间间隔1.7"6000承0.4y2"500/(1450y2)+3承0.4 =4.3秒
为了示出队列管理系统怎样工作,使用固定的信号最小时间间 隔作为主要的丟弃判断标准,用图4A中的仿真车叙出结果来运4亍仿 真,以及数据包间的最小时间设置为4.3秒。
仿真参数
拥塞控制算法参数
3000 CngTh 最大拥塞阈值
4.3 MinDropInterval (秒)丢弃的邀:据包间的最小时间量 物理层
16 输出数据速率(KB/S)
仿真示出即^f吏将拥塞阈值设置为仅仅3000字节,但是队列 管理是最优化的(尽管还是使用所有可利用的输出数据速率,但具 有最少的排队),因为通过将最小时间间隔设置为4.3秒限制了丟弃。
类似地使用静态的拥塞阈值,当最小时间间隔没有设置为最优 的值时,使用固定的最小时间间隔将会产生过量的排队或将不能利 用所有可利用的输出速率。为了示出该效果,执行速率在16、 8和 32kB/sec变化的仿真。图5A示出了该仿真的结果。
仿真参数拥塞控制算法参数
3000 CngTh 最大拥塞阈值
0MinPacketlnterval -丢弃间的最小K据包凄丈量
4.3 MinDropInterval (秒)丢弃的数据包间最小时间量
输出^:据速率
16 初始速率(KB/sec)
25 改变IIT出速率的时间(秒)
8 改变的速率(KB/sec)
45 改变l叙出速率的时间(秒)
32 改变的速率(KB/sec)
这些结果类似于使用静态拥塞阈值的队列管理系统的结果。在 物理输出速率等于8kB/s期间内,队列平均输出凄t据速率等于8kB/s 4旦是存在的排队比必要时更多。在物理llT出速率等于32 kB/s期间 内,当队列为空时队列平均l餘出速率下降并乂人而小于32kB/s。
最小数据包间隔
最'J、数据包间隔是用来确定何时丢弃数据包的多个控制信号 中的另一个控制信号。假设满足所有其他的丢弃数据包条件,上述 流程图示出当自上一个丢弃之后的数据包的数量多于最小数据包— 间隔时才对凄t据包进行丢弃。该信号的〗吏用同最小时间间隔的4吏用相同。可以用来在丟弃另 一个凄t据包之前等待TCP栈对丢弃的数据
包作出反应,或可以用4乍系统的初始4空制。
典型地,队列管理系统可以不需要支持这些机制中的两个才几 制,但是需要基于便于实现来选择好于另一个的一个。最优的最小
婆丈据包间隔的计算如下
最小凄史才居包间隔(Min Packet Interval) = (Packets/sec) * Min Time Interval
最小凄t据包间隔(Min Packet Interval) = (DR/IPPacketSize) * Min Time Interval
使用的仿真参数是来自图1A所示的仿真结果,最小数据包间 隔的结果为
最小凄t据包间隔(Min Packet Interval) = (16000/1500)*4.3= 46
数据包
4吏用等于46的固定值,用图6A中所示的结果冲丸4亍仿真。
仿真参数
拥塞控制算法参数
3000 CngTh 最大拥塞阈值
46MinPacketlnterval —丢弃间的最小凝:据包凄t量
0 MinDropInterval (秒)丟弃的#1据包间的最小时间量
物理层
2816 输出数据速率(KB/sec)
上述仿真结果示出即使将拥塞阈值设置为^f又仅3000字节, 但是队列管理是最优化的(尽管还是使用所有可利用的输出数据速 率,但具有最少的排队),因为通过将最小数据包间隔设置为46限 制了丢弃。
多个TCP流的考虑
虽然本文件中示出的所有仿真结果是用于仅一个TCP流的情 况,4旦是可以调整所有的队列管理算法以适当地支持具有多于一个 平行TCP流的输入数据流。
当拥塞阈值信号用来作为主要的丢弃标准时,在用多个TCP 流作为输入时算法将会比较好的运行。这是真实的,因为系统将可 能会,人具有最高的cwnd的凄欠据流中丟弃l欠据包,因为这将会发送 最多的数据并且队列中具有最多的数据。虽然,如果算法不幸地删 除了来自低速率TCP流中的数据包则可能存在一些短期的队列深 度峰值,但是在长期中会将其平滑掉。
当最小时间间隔或最小数据包间隔被用作主要的丢弃标准时, 则需要调整算法。为了保持最优化尺寸(DR*RTT)的队列,丟弃 速率需要与有效地发送TCP流成比例。因而,需要根据有效地发送 TCP流的数目来调整最小时间间隔或最小数据包间隔。通过查看队 列中的数据包的IP和TCP包头可以很容易地计算有效的TCP流的 凄t目。用所调整的最小时间间隔或最小翁:才居包间隔,可以批一f亍算法, 类似于基于拥塞阔值信号的算法,其中如果算法不幸地从低速率 TCP流中删除了数据包则可能出现一些短期的队列深度峰值。
承/关于仿'议的去弄期望队列管理系统仅考虑用于丟弃的更高层协议的某些类型。
诸如SIP、 RTSP、 RSPP或RTCP的更高层控制协议可能是候选的, 其是被优选的以不被丢弃的协议,因为它们不会导致流量显著的减 慢以及可以引起终端用户体验显著的下降。所有的UDP流量还可 以在这种"不丢弃列表"中,因为UDP流量将反应为使用拥塞控 制算法运行的TCP是不可能的。如果UDP速率大于输出数据速率, 则会出现把UDP数据包排除之外的问题。在这种情况下,需要丟 弃UDP数据包。为了适当地处理这种情况,可以将第二组阈值添 加至算法(UDP拥塞阈值),其中上述该阈值UDP数据包将会具 有更强的用于丢弃的目标性而不是丢弃TCPH纟居包。
(VPN)加密前的处理
该文件中存在的 一 些概念需要队列管理器来解析或遍历数据 包以确定密钥的一些关键属性,诸如尺寸、协议、端口数等。为了 获得最好的性能,需要将队列管理器置于尽可能地离物理层近(见 "头对尾丢弃,,部分)。将队列管理器置于该位置处的问题是如果 使用VPN或其他的密码术加密,则当其到达队列管理器时所有的 信息被加密并从而不能纟是取这些密钥属性。
该问题的解决办法可以是添加置于VPN之前而网络层之后的 协调实体。在孩^欠Vista OS中,这种类型的驱动器^皮称作为过滤驱 动器(filter driver )。然后,过滤驱动器可以对队列管理器将考虑要 丢弃的lt据包啦文标记。标记凄t据包的方法可以通过频带外的信令或 通过》务改VPN或其他的密码术没有对其加密的数据包的多个字段 中的一个字l爻来实现。该才几制在本文件的范围之外。
动态队列管理系统迄今,本文件和现有的仿真结果只是考虑了静态方式下的控制信号的使用。使用运行时间函数以计算诸如拥塞阈值的关键队列管理控制信号,以帮助队列管理系统适应物理层中的变化以及输入数
据流的变化。物理层的变化可以包括凄t据速率和/或RTT变化。输入流量流的变4b可以包括4lT入流量速率和/或妨、i义混合(TCP vs.UDP或其4也的)。所列出的三个函凄t( CongThFunc、MinTimelntFunc、和Mi叩acketlntFunc )可以用来动态地计算控制信号拥塞阈值、最小时间间隔和最小数据包间隔。这些函数的使用是可选的。为了简单或如果期望系统有小的变化,可以选择控制信号是静态的。如果期望队列管理系统^f奮改(adapt),则可以4吏用上述列出的动态控制^言号函^t中的一个或多个或全部。队列管理方法可以4吏用这三个函数,但是可能只使用这些函数中的一些而其他的信号被固定。以下部分描述了执行这些函数的一些一般性原则。
CongThFunc描述
如先前所提及的,为了最大化TCP吞吐量和最小化排队,拥塞阈值总是被设置为DBP。在许多的系统中,输出数据速率和较小扩展的RTT可以显著;也变4b,因ot匕基于RTT的估计4直和车#出教:才居速率来使用拥塞阈值的动态计算是有利的。
存在若干个用来估计输出数据速率的机制,诸如测量队列之外的数据流或使用诸如信道授权或信号条件的一些物理层信息。输出数据速率的估计还可以简单地基于物理连^妄才支术(GPRS、 EDGE、或WCDMA、 lx、 Ev/DO rev0或revA )。不i仑4吏用那一种方法,可以平滑输出数据速率的估计,使得物理层中的快速变化不与1起拥塞阈值的显著变化。
还可以存在若干个用来估计信道的RTT的机制。如果TCP数据被发送,则很容易地计算出RTT作为远端接收机确认发送的数据所消耗的时间。如果使用VPN,则该测量需要在加密层之上完成。
另 一个用于估计RTT的方法是发送诸如查验(ping )的小数据包至已知的月l务器。该方法的缺点是其可以产生一些系统开销并且不能在凄t据包纟皮发送的位置处测量RTT。
以下的仿真结果是对于拥塞阈值被动态地设置为DBP=RTT*输出数据速率的队列管理系统。所有其他的控制信号是静态的。通过数据退出队列的速率来估计输出数据速率。然后,使用单极IIR移动平均滤波器来对输出数据速率滤波。对于该仿真,没有估计RTT而是将其固定在某个值(EstRTT)。对于该仿真,实际的RTT是0.4秒而EstRTT被设置为0.4375秒。实际的物理数据速率从16kB/s至8kB/s至32kB/s变化。队列的输入数据是单一的TCP流。图7A示出了仿真的结果
仿真参凄t:
拥塞控制算法参数
3000 Start_CngTh 初始拥塞阈值
2MinDropInterval (秒)丢弃的数据包间的最小时间量
0.4375 EstRTT -用于计算CngTh= AveULDR*CongCtrlRTT所估计的RTT
输出数据速率
16 初始速率(KB/sec)
25 改变llT出速率的时间(秒)8 改变速率(KB/sec)
45 改变llr出速率的时间(秒)
32 改变速率(KB/sec)
/人上述结果可以看出,虽然实际物理凄史才居速率乂人16kB/s至8kB/s至32kB/s变化,但是队列的输出数据速率总是趋于等于物理凄丈据速率,并且在任何凄t据速率下不存在过量的排队。
最小时间间隔函凄t (MinTimelntFunc)描述
如先前所提及的,如果控制信号最小时间间隔用作控制队列尺寸的主要信号,则应该将最小时间间隔i殳置为
最小时间间隔(Min Time Interval) = 1.7*DR*RTTA2 *IPSegSize+ 3*RTT
TCPSegSizeA2
DR=输出数据速率
类似于动态的拥塞阈值,最小时间间隔还可以基于RTT的估计和物理输出凄史据速率来动态地计算。虽然上述计算看起来比4交复杂,但是可以简化为IPSegSize和TCPSeqSize作为通常的常数,则
最小时间间隔(Min Time Interval) = K*DR*RTTA2 + 3
* RT其中
K =1.7*IPSegSize/TCPSegSizeA2可以^吏用相同的方法来估计先前^是及的RTT和丰叙出凄欠据 速率。
以下的仿真结果是关于队列管理系统的,其中最小时间间 隔净皮动态i也i十算为
最小时间间隔(Min Time Interval) = K*DR*RTTA2 + 3
* RT
所有其他的控制信号是静态的。可以通过数据退出队列的速率 来估计输出数据速率。然后,使用单极IIR移动平均滤波器来对输 出凄t据速率进4亍滤波。对于该仿真,没有估计RTT而是将其固定在 某个值(EstRTT )。在这种情况下,实际的RTT是0.4秒而EstRTT 被设置为0.4375秒。实际的物理凄t才居速率乂人16kB/s至8kB/s至 32kB/s变化。队列的输入数据是单一的TCP流。图8A示出了仿真 的结果。
仿真参数
拥塞控制算法参数
3000 Start—CngTh 初始拥塞阈值
2MinDropInterval (秒)-丢弃的凄t据包间的初始最小时
间量
0.4375 EstRTT -用于计算MinDropInterval戶斤4古i十的RTT
输出数据速率
16 初始速率(KB/sec)25 改变iir出速率的时间(秒)
8 改变的速率(KB/sec)
45 夂变^T出速率的时间(秒)
32 改变的速率(KB/sec)
说明书第30/39页
乂人上述结果可以看出,虽然实际物理凄丈净居速率乂人16kB/s至 8kB/s至32kB/s变化,但是队列的输出数据速率总是趋于等于物理 数据速率,并且不存在过量的排队。
最小凄t据包间隔函凄t ( MinPacketlntFunc )的描述
MinPacketlntFunc用来使最小数据包间隔控制信号动态。如先 前所提及的,如果控制信号最小数据包间隔用作控制队列尺寸的主 要信号,则应该将最小数据包间隔设置为
最小翁:才居包间隔=(DR/ IPSegSize) *最小时间间隔
最'J、数据包间隔-(X)R/IPSegSize)吖1.7承DR^RTT八2nPSegSize+3*RTT)
TCPSegSizeA2
DR-输出数据速率
上述/>式中存在4又有的变量,因此乂>式可以简化为 最小数据包间隔=K1*DRA2*RTTA2 +K2*RTT*DR 可以z使用相同的方法来估计先前所4是及的RTT和l命出凝:才居速率。
35^于流量而非TCP的考虑
到此为止,所有仿真的队列输入均是单一的TCP流。以下部分
将着眼于队列管理系统对包括诸如UDP (其不才丸4亍与TCP IP流量 相同的拥塞控制规则)的IP流量的输入流如何反应。
以下仿真是^f吏用与图7A所示的相同的队列管理系统,其中, 只有拥塞阈值是动态的而使用的所有其他的控制信号是静态的。队 列的输入数据流是6kB/sec的TCP数据流和UDP数据流,并且物 理输出速率是在8kB/s与32kB/s间变化的。图9A示出了结果
仿真参数 UDP参数
6000 UDP—DR - UDP数据速率(字节/秒)
拥塞控制算法参数
3000 Start—CngTh 初始拥塞阈值
0MinPacketlnterval -丢弃间的翁:据包的最小4改量
2MinDropInterval (秒)-丢弃的凄t据包间的初始最小时 间量
0.4375 EstRTT画用于计算MinDropInterval所估计的RTT
输出数据速率
16 初始速率(KB/sec)60 改变l餘出速率的时间(秒)
8 改变速率(KB/sec)
90 改变^T出速率的时间(秒)
32 改变速率(KB/sec)
上述结果示出队列的输出数据速率是趋于等于物理层输出, 这是很好的但是在一些实例中,诸如48秒标记(mark )和80秒标 记处,当在一行中丢弃太多数据包时就会出现过量的排队。最小时 间间隔可以防止队列管理过快;也丢弃教::悟包。
如果UDP增大到物理l命出凄t据速率之上,则过量的4非队的问 题变得不可管理。以下是除了 UDP被设置为18kB/s而物理输出数 据速率仅为16kB/s之外与上述系统相同的系统的仿真。从图10A 的曲线可以看出,队列尺寸不可控制地增长,这是因为队列管理系 统不能足够快地丢弃ft据包。
本文下一部分略述了算法的附加,其可以;故实现以修正这个问题。
协议指定丢弃^L则
该问题的 一个解决方案是结合用于丢弃的协议指定规则。例 如,UDP数据包相对于TCP数据包,最小时间间隔是不同的。对 于UDP数据包,最小时间间隔能够并且应该接近零,因为不像TCP 数据包,其不需要等待拥塞控制来进入队列。对于不同的协议,拥 塞阈值、最小lt据包间隔、以及丢弃尺寸也是不同的。该方法的主 要缺点是其需要队列管理系统能够解析数据包以确定正在发送的 传输协议。除了处理缺点之外,如果4吏用VPN或其他的加密,则
37队列管理系统不能解初-ft据包以确定协_汉类型。如先前所^是及的, 该加密问题的可能解决方法是在加密前使用诸如过滤驱动器的实 体以确定所使用的协议然后相应地标记凌史据包。
动态的两》及最小丢弃间隔才几制
解决过量的排队的问题的另一个方法是将附加的逻辑添加至 队列管理方法,其在本文件中3皮称作"动态的两个级的最小丢弃间
隔"或DTSM。 DTSM的基本原理是当队列过量地超出拥塞阈值时 将最小丢弃间隔缩短。最小丟弃间隔应该缩短的量与当前队列深度 超出拥塞阈值的多少相关。推荐的方法是定义新的控制参数,其被 称为拥塞阈值超出比率(CngThExceedRatio ) 。 CngThExceedRatio 是队列深度可以超出拥塞阈值的百分比量,其中最小时间间隔将等 于零。以下的等式添加了更详细的描述和解释。
假设
基本最小丢弃间隔
当队列深度小于拥塞阈值时的最小丢弃间隔。 CngThExceedRatio:
队列深度能够超出拥塞阈值的百分比量 其中最小时间间隔将等于零
当队列深度超出拥塞阈值时,最小丢弃间隔计算如下
最小丢弃间隔=基本最小丟弃间隔*MinDropIntervalMultiplier否则
最小丢弃间隔=基本最小丟弃间隔
存在无凄《可能的方法来计算MinDropIntervalMultiplier。以下是
计算的约束条件
MinDropIntervalMultiplier=1.0当队列深度等于拥塞阈^直
MinDropIntervalMultiplier=0.0 当队列深度等于拥塞阈^f直* CngThExceedRatio
MinDropIntervalMultiplier应i亥随着ExceedRatio白勺i曾力口而 增力口
ExceedRatio是队列深度超出拥塞阈值的百分比,可以计算为
ExceedRatio=(队列深度-拥塞阈值) (拥塞阈值)
可以 -使用下述的简化的线性插值7>式来计算最 MinDropIntervalMultiplier:
MinDropIntervalMultiplier= 1 -ExceedRatio/CngThExceedRatio
可选地J旦是更复杂的,可以^使用指lt ( exponential)关系来计 算MinDropIntervalMultiplier,其由以下纟合出
MinDropInterValMultiplier=l-ExponentialBaseExceedRatio/CngThExceedR
atio由于当队列深度超出拥塞阈值氺CngThExceedRatio时,指数乂> 式返回负凄史,所以MinDropIntervalMultiplier必须卩艮定在0-1的范围 内。虽然指数函数是计算更密集的函数,但是其允许使用较小的 CngThExceedRatio而不错"i吴;也丢弃彰:据包。
由于队列深度可以很快地变化,推荐的是,应将所计算的最小 丢弃间隔平滑或滤波以移除可能出it见的瞬时iE见象(transient)。该滤 波将减少由于队列深度中自然出现的峰值而错误地缩短最小丢弃 间隔的可能性。
-使用动态的两个级的最小丟弃间隔才几制(DTSM)可以进4亍若 干个仿真。所示的所有仿真是^f吏用MinDropIntervalMultiplier的指凄史 i十算,其中 Exponentialase=4 。 乂十于所有的 <方真, 一夸 CngThExceedRatio i殳置为50%。
以下的仿真结果是^f吏用相同的丰lr入凄史据流和物理层参凄t,如图
10A中所示,其中UDP速率-18kB/s而物理llT出速率-16kB/s。 仿真参数
UDP参数
18 UDP—DR-UDP凄t据速率(KBytes/sec)
拥塞控制算法参数
4000 Start—CngTh 初始拥塞阈4直
1200 DropSizeTh-要丢弃的数据包的最小尺寸2MinDropInterval (秒)-丢弃的凝:据包间的初始最小时
间量
0.4375 EstRTT-所估计的RTT
0.5 CngTh_Exceed_Ratio -队列深度可以增长的最大百分 比,其中最小丢弃间隔将接近于零
物理层
16 输出凄t据速率(KB/sec)
从图IIA可以看出,现在可以控制队列深度,只有在开始处出 现一些过量的排队,其中TCP会话是在慢启动状态。由于没有清空 队列,所以队列的输出速率等于物理输出速率就不奇怪了。图11A 还示出,在'f曼启动过程期间,与当TCP处于拥塞控制状态相比, UDP流使用了物理输出速率的较大的百分比,TCP流使用了大约 3500kB/s。当UDP速率大于物理输出速率时,由于过多的数据包丟 弃TCP拥塞窗口〗皮典型地限制为一段。该小的拥塞窗口基于DBP 公式(对于上述仿真,MTUSize/RTT 1450/0.4= 3625 B/s )限制TCP 速率。
图12A中示出的下一个仿真llT出是使用与先前相同的DTSM 队列管理系统,但是这次物理输出速率是从16至8至32kB/s变化的。
仿真参数 UDP参数
18 UDP—DR - UDP数据速率(KBytes/sec)拥塞控制算法参数
4000 Start_CngTh 开始时的拥塞阈值
2MinDropInterval (秒)-丢弃的#^居包间的初始最小时
间量
0.4375 EstRTT-用于计算最小丢弃间隔所估计的RTT
0.5 CngTh—Exceed—Ratio -队列深度可以增长的最大百分比,其中最小丢弃间隔将接近于零
输出数据速率
16 开始时的速率(KB/sec)60 改变ft出速率的时间(秒)8 改变的速率(KB/sec)90 改变输出速率的时间(秒)32 文变的速率(KB/sec)
上述的仿真结果示出与动态的拥塞阈值信号结合的DTSM附加减少了用于各种物理输出的排队深度。
DTSM方法有两个已知的缺点。第 一个缺点是队列管理系统在TCP慢启动机制期间会错误地丢弃一个以上数据包。在TCP栈进入拥塞控制状态后,该方法意指通过只丢弃一个ft据包而等待TCP栈来响应来工作。第二个缺点是当物理输出速率突然下降时,DTSM方法会4普误地丢弃一个以上凄t据包。物理输出速率的突然下降导致拥塞阈值突然地下降,这依赖于队列的当前深度在那时可以产生当 前队列深度远超出拥塞阈值情形。如果4吏用较大的
CngTh—Exceed—Ratio ,贝'J可以^1夺该有害的岁文应最小4匕。需要 CngTh_Exceed—Ratio〉100%以排除这两个负面效应, <旦是当然要以
增大队列深度为代价。
为了示出这两个效应,图13A中的下一仿真结果4吏用与先前相 同的DTSM队列管理系统,但是这次队列的输入只是TCP数据, 没有UDPl史才居。
仿真参数
UDP参数
0 UDP—DR - UDP数据速率(KBytes/sec)
拥塞控制算法参数
4000 Start一CngTh 开始时的拥塞阈值
2最小丢弃间隔(MinDropInterval)(秒)-丢弃的数据包 间的初始最小时间量
0.4375 EstRTT -用于计算最小丟弃间隔所估计的RTT
0.5 CngTh—Exceed—Ratio -队列深度可以增长的最大百分 比,其中最小丢弃间隔将接近于零
输出数据速率
16 开始时的速率(KB/sec)60 改变專餘出速率的时间(秒)
8 改变的速率(KB/sec)
90 改变输出速率的时间(秒)
32 改变的速率(KB/sec)
在上述仿真的 4秒标记处,多个TCP数据包^皮丟弃,那时TCP 处于慢启动状态。这导致了在 7秒标记处的平均队列输出速率的暂 时下降。
第二个负面效应在 60秒标记处,其中物理输出速率从16kB/s 变化到8kB/s。该时间处我们发现队列管理系统错误地丢弃了若干 个TCP数据包,其会导致平均队列输出速率的暂时减少。
将CngTh一Exceed—Ratio设置为较大的值会导致过量的排队, 但是CngTh_Exceed—Ratio过小将会导致错误地丟弃^:据包(如图 13中所示)。使用有利地指数等式来计算最小丢弃间隔允许使用專交 'J、的CngTh—Exceed—Ratio , ^f旦是这4又有助于每一个点。
虽然上述队列管理系统使用具有动态拥塞阈值的DTSM,但是 还可以 -使用具有先前所描述的具有动态最小时间间隔和最小翁:l居 包间隔系统的DTSM系统。
4权利要求
1.一种方法,包括在一个或多个网络装置处接收互联网协议数据,所述互联网协议数据在数据源装置处生成并被传输至所述一个或多个网络装置;以及基于指定的标准选择性地删除所述数据的部分,以实现所述互联网协议数据的改善的数据流,所述指定的标准选自由由以下构成的组自上一丢弃之后的时间、自上一被丢弃的数据包之后的数据包数量、数据包协议、数据包尺寸、以及它们的组合。
2. 根据权利要求1所述的方法,其中, 一个或多个所述指定的标 准是动态确定的。
3. 根据权利要求1所述的方法,其中, 一个或多个指定的标准具 有动态确定的3于应的 <直。
4. 根据权利要求1所述的方法,其中,所生成的数据是被加密的 并且所述指定的标准包括lt据包尺寸。
5. —种方法,包4舌在一个或多个网络装置处接收经由流控制接口传输的互 联网协议数据,所述互联网协议数据在数据源装置处生成并被 传输至所述一个或多个网络装置;以及基于指定的标准选择性地删除所述数据的部分,以实现 所述互联网协议凄t据的改善的数据流。
6. 根据权利要求5所述的方法,其中, 一个或多个所述指定的标 准是动态确定的。
7. 4艮据权利要求5所述的方法,其中, 一个或多个指定的标准具 有动态确定的应的ii 。
8. 才艮据权利要求5所述的方法,其中,所生成的数据是被加密的 并且所述指定的标准包括凄t据包尺寸。
9. 一种设备,包括网络装置,通信地连4妄至数据源装置,所述网络装置沣皮 配置为接收在所述lt据源装置处生成的互耳关网协议凄t据并基 于指定的标准来选择性地删除所述lt据的部分,以实现所述互 联网协议数据的改善的数据流,所述指定的标准选自由以下构 成的组自上一丢弃之后的时间、自上一被丟弃的数据包之后 的数据包数量、数据包协议、数据包尺寸、以及它们的组合。
10. 根据权利要求9所述的设备,其中, 一个或多个所述指定的标 准是动态确定的。
11. 根据权利要求9所述的设备,其中, 一个或多个指定的标准具 有动态确定的^"应的^f直。
12. 根据权利要求9所述的设备,其中,所生成的数据是被加密的 并且所述指定的标准包括ft据包尺寸。
13. —种设备,包括网络装置,通信连4妄至凄t据源装置,所述网络装置^皮配 置为4妄收在所述f t据源装置处生成的互联网协议凄t据并基于 指定的标准来选l奪性地删除所述凄t据的部分,以实现所述互联:网协i义lt据的改善的凄t据流,所述互耳关网协i义凄t据经由流控制 接n被传输。
14. 根据权利要求13所述的设备,其中, 一个或多个所述指定的 标准是动态确定的。
15. 根据权利要求13所述的设备,其中, 一个或多个指定的标准 具有动态确定的7十应的<直。
16. 根据权利要求13所述的设备,其中,所生成的数据是被加密 的并且所述指定的标准包括4t据包尺寸。
17. —种提供可执行指令的机器可读介质,当处理器执行所述指令 时,所述指令〗吏所述处理器扭^f于一种方法,所述方法包括在一个或多个网全备装置处"t妾收互联网幼、i义凄t据,所述互 联网协议数据在#t据源装置处生成并#皮传llT至所述 一 个或多 个网纟各装置;以及 基于指定的标准选纟奪性地删除所述数据的部分,以实现 所述互联网协议数据的改善的数据流,所述指定的标准选自由 以下构成的组自上一丢弃之后的时间、自上一一皮丢弃的彩:才居 包之后的数据包数量、数据包协议、数据包尺寸、以及它们的 组合。
18. 根据权利要求17所述的机器可读介质,其中, 一个或多个所 述指定的标准是动态确定的。
19. 根据权利要求17所述的机器可读介质,其中, 一个或多个指 定的标准具有动态确定的^f应的^直。
20. 才艮据一又利要求17所述的才几器可读介质,其中,所生成的凄t据 是被加密的并且所述指定的标准包括数据包尺寸。
21. —种提供可执行指令的机器可读介质,当处理器执行所迷指令 时,所述指令〗吏所述处理器扭j于一种方法,所述方法包4舌在一个或多个网络装置处接收经由流控制接口传输的互 联网协议凄t据,所述互耳关网协议凄丈据在凄t据源装置处生成并寻皮 传输至所述一个或多个网络装置;以及基于指定的标准选4奪性地删除所述数据的部分,以实现 所述互联网协议凄t据的改善的数据流。
22. 根据权利要求21所述的机器可读介质,其中, 一个或多个所 述指定的标准是动态确定的。
23. 根据权利要求21所述的机器可读介质,其中, 一个或多个指 定的标准具有动态确定的应的4直。
24. 根据权利要求21所述的机器可读介质,其中,所生成的数据 是寻皮加密的并且所述指定的标准包括数据包尺寸。
全文摘要
本发明的实施例提供一种队列缓冲管理的方法。对于本发明的一个实施例,在数据源装置处生成互联网协议数据。所生成的数据被传输至一个或多个网络装置并在一个或多个网络装置处被接收。基于指定的标准选择性地删除所生成的部分数据,以便改善所生成的数据的数据流。从自上一丢弃之后的时间、自上一被丢弃的数据包之后的数据包数量、数据包协议、数据包尺寸及其组合组成的组中选择指定的标准。对于本发明的一个实施例,所生成的数据经由流可控接口传输。
文档编号H04L29/06GK101682627SQ200880017500
公开日2010年3月24日 申请日期2008年5月26日 优先权日2007年5月25日
发明者古斯塔夫·杰拉尔德·福斯, 威廉·瓦翁格, 彼得·麦康奈尔 申请人:施克莱无线公司