用于数据流的快速友好启动的制作方法_3

文档序号:9673258阅读:来源:国知局
已经最终完成通过正常出队过程(108)转发至线路时,调用管理非队 列化ECN标记的出队函数模块(91)。如果将要完成出队的分组携带ECT(O)标记,则随着分组 (93)进行,阶段(106)将执行转到阶段(107),该阶段(107)将共用的ectOinQ标志设置成FALSE,指示该队列中不再有ECT(O)分组。运将在入队函数中通过阶段(102)的下一次执行 而允许新的ECT(O)分组进入该队列,因为如已经说明的,其将转到阶段(104),而非(103)。
[0085]另一方面,如果在阶段(108)之后将要完成出队的分组不携带ECT(O)标记,则阶段 (106)将除了将执行直接转回到外部出队函数来处理下一个分组W外不做任何事情。
[0086] 该算法设计是已知的互斥算法的一个示例,W使入队(92)和出队(91)部分的实现 可W在独立并行处理器上执行,因为不存在任何次序的事件或竞态条件始终可W允许两个 ECT(O)分组同时进入队列的可能性。
[0087] 如已经参照图5指出的,输出分组串流(112)中的未标记化CT(O))的分组之间的间 距表示在稍后ECT(O)分组到达队列的时刻的队列长度。参照图1,对于能够连续监测队列长 度的数据发送方(11)来说,接收节点(18)必须向该发送方(11)反馈其已经在数据流中接收 了多少各个类型的ECN码点的编码。
[0088]另选地,接收节点可W确定该间距本身,并且继续导出队列长度。然后,该接收节 点可W继续向发送方反馈表示该队列长度的值,或者该接收节点甚至可W确定供发送方使 用的新速率,并且向发送方反馈表示该速率的值。
[0089]尽管如此,对于接收方来说,最直接的是,简单反映其接收的ECN字段的值的编码, 因为已经通过更新的端到端传输协议提供该反馈,并且其正被添加至诸如TCP的更老的协 议。
[0090]具体地,M.Ktihlewind和R.Scheffenegger的标题为"MoreAccurateECN Fee化ackinTCP"的提议[4]是在Internet!Engineering!"askForce(IETF)之前,对于要 被修改的TCP协议来说,使得接收节点(图I中的18)向发送方(11)反馈其已经在数据流中接 收了多少各个类型的EC师马点的指示。其它更近的端到端传输协议已经提供足够的ECN反馈 信息(例如,基础数据报拥塞控制协议(DCCP[RFC4340])和针对实时控制协议的近期修改) 来添加ECN能力[RFC6679 ]。
[0091]尽管如此,经过缓冲区进入网络中的链路的所有分组不需要源自同一发送方。例 如,参照图1,尽管发送方(11)被连接至CE路由器(13)与(PE)路由器(14)之间的链路,但其 它发送方也可W被连接至该CE路由器。而且,在发送方(11)内,多个独立过程可W通过该链 路发送数据。因此,图5中的分组可W划分成多个子集,每一个子集都属于不同的发送与接 收过程之间的不同的数据流。
[0092]现在将示出的是,平均起来,非队列化ECN标记方案将队列长度用信号通知到运些 独立数据流的每一个中,W使其不仅仅在一个数据流单独在链路上时才有用。该平均测量 变得更精确,在任一个数据流中就存在更多的分组,W使较短的流接收队列长度的粗略估 计,而更大的流开发所发展队列长度的更准确视图。运足够有用,因为如果其队列长度的估 计太大或太小,则较短的流可W限制对其它流的破坏,而如果其队列长度的测量明显不正 确,则更大的流具有导针对其它流的更多的损害的可能性。
[0093]作为示例,为简单起见,考虑图5中的分组的队列是10个分组的恒定不变的队列, W使从缓冲区离开的串流中的每第十个分组携带ECT(O)码点,而每其它九个分组携带ECT (1)。进一步考虑分组的串流由两个数据流构成,一个平均起来消耗20%的链路容量,而另 一个消耗80%。假设分组从每一个流随机到达,第一个流将获得大约20%的ECT(I)标记和 20%的ECT(O)标记。因此,对于100个分组的串流,如下表中所示,平均起来,10个将携带ECT (0),并且第一个流将查看它们中的20%X10 = 2个,而总计90个将携带ECT( 1 ),并且第一个 流将查看它们中的20%X90 = 18个。因此,平均起来,第一个流中的20个分组中,2个将携带 ECT(O),运样平均起来,即使其仅接收了20%的分组,第一个流也将正确地计算该队列为 20/2 = 10个分组运样长。
[0095]非队列化ECN标记方案不直接使任一个数据源能够确定其本身针对队列长度的贡 献,截然不同于总队列长度。然而,推理技术可W对此进行估计。例如,通过改变其本身数据 速率W及通过使其变化与聚合队列长度中的变化相关联,发送方可W确定其可W负责的该 队列的比例。另一可能的启发是测量ECT(O)码点之间的时间及其本身字节数两者。例如,进 入80Mb/s线路中的10X1500B个分组的队列应当在(10X1500*8)b/80Mb/s= 1.5ms中释放。 如果数据源获知(通过某一其它机制)其瓶颈链路是80b/s,并且如果其测量到ECT(O)分组 每隔15000B个分组出现,但它们之间的时间是7.5ms而非1.5ms,则可W估计其贡献该队列 的 1.5/7.5 = 20%。
[0096] 在另一实施方式中,非队列化ECN标记方案结合原始ECN标记方案来使用。如已经 说明的,该原始标准ECN方法设及拥塞缓冲区,该拥塞缓冲区利用经历拥塞(CE)码点来标记 有ECN能力的分组的比例W代替丢弃它们,如果相同的分组没有ECN能力,则其将进行。
[0097] 因此,根据与设及上面所给出的多个流的论证类似的论证,非队列化ECN标记方案 与原始标准ECN方法[FC316引二者都可W被部署并同时应用于相同的有ECN能力的分组。在 一个节点处,当其处理每一个分组时,优选的是,非队列化ECN算法要在原始标准ECN标记算 法之后执行,因为非队列化ECN标记的结果取决于进入的分组中的ECN码点,而原始标准ECN 标记不是。运种排序确保对信号之间的队列长度的精确值的更快速的收敛。
[0098] 如果(作为推荐)原始标准ECN标记在非队列化ECN标记之前应用,则信号将表示 ECN分组的队列的平均长度,而不计数CE分组。考虑到,CE标记的分组的比例通常较小并且 几乎总是非常小,所估计的队列长度中的误差将通常也极其小。该推理可W从更早的有关 无ECN能力的分组的推理导出,因为CE分组也被非队列化ECN标记算法忽略。
[0099] 然而,原始标准ECN方案可能在路径中紧跟该路径中更早的、已经利用非队列化 ECN方案标记了它们的节点的稍后的拥塞节点处完全标记分组。在运种情况下,信号将仍给 出正确的平均队列长度,其将只是花费更久来收敛平均值。该推理可W从更早的有关共享 一瓶颈的多个流的推理导出。CE标记被随机应用,因而,其可W被视为分组的分离随机选择 的子集,其将具有和将分离出分组流相同的对队列长度信号的影响。
[0100] 当数据流经过网络中的若干缓冲区时,如沿着图1中的通过网络的路径,有时,一 个W上的缓冲区将同时成为瓶颈,尽管更典型的是在不同的缓冲区之间移动瓶颈,而不是 在两个或更多个缓冲区中同时形成队列。
[0101] 在两个或更多个同时瓶颈的情况下,在它们所有当中利用非队列化ECN标记方案, 所产生的信号将给出最长队列的长度估计。如果该最长队列在该路径中靠后,则该测量将 上调至该路径中更早的队列长度的下一整数倍。
[0102]例如,参照图1,假设针对沿从CE路由器(13)至CE路由器(17)的方向的数据传输已 经在进入CE路由器(13)的上行链路中的缓冲区处和进入PE路由器(16)的下行链路中的缓 冲区处形成同时恒定队列。将记号ql和q2分别用于运两个队列长度,而将q用于针对穿越两 个瓶颈的业务的ECT(O)码点之间的间距。
[0103] 如果ql>q2,则所测量间距将简单为
[0104] q=ql;ql>q2,
[0105]因为仅几个ECT(O)标记将离开更早的瓶颈,并且该路径上靠后的瓶颈未将任何 ECT(I)标记复原至ECT(O);其仅仅确保在任何一个时间点至多一个ECT(O)码点处于该队列 中。
[0106] 如果q2〉ql,那么
[0107] Iq2/ql]qt.q2>ql,
[0108]因为更早的队列输出偶然的ECT(O)标记,并且靠后的队列仅可W通过将它们重新 标记成ECT(I)来去除运些中的一些。其无法将剩余的ECT(O)码点移动得更靠近在一起,其 只能将它们留在它们所处的位置。
[0109] (M语用于指示上限函数的方式,即,上调至下一个整数值的X的值)。
[0110] 在现实情况中,该队列长度将是可变的而非恒定的。接着,来自组合队列的ECT(O) 标记之间的间距将改变,并且平均值将接近上述结果。
[0111]现在将描述发送方节点可W如何使用非队列化ECN标记信号的反馈。在流的开环 控制阶段期间,例如,在发送方正试图感测其可W如何快速地发送出分组时的流启动时,其 可W按其接合的接口的速率(通常比该路径中靠后的瓶颈更加快)发送出分组的简要突发。 其将发送在ECN字段中具有ECT(0)码点的所有分组。
[0112]我们已经描述了反馈所接收的每一个ECN码点的数量的端对端传输协议。因此,我 们将假设接收方在已经经过网络中的非队列化ECN标记算法之后返回指示所产生的ECN码 点的反馈。
[0113]设想发送方发送十个等尺寸分组的初始突发,并且在一个往返的延迟之后,所反 馈的ECN标记按次序为:
[0114] 0,1,1,0,1,1,1,1,1,1,
[0115]其中,0是针对ECT(O)的简写,而1意指ECT(I)。该序列暗指,当第一分组到达时很 可能根本没有队列(即,该流很可能单独在该瓶颈中)。最先两个ECT(O)标记之间的S个分 组的间距还暗指发送分组速率比瓶颈速率快两倍W上并且直至=倍。
[0116]事实上,如果发送分组速率比瓶颈速率快r倍,贝化CT(O)标记之间的间距将形成序 列r,r2,r3等,由此,没有后续零和因此下一个ECT(O)标记之前的最小间距为屯个分组的事 实暗指r2含7。因此,根据上面的反馈序列,发送方可W推断r〉2、r含3和r含^^7,或2.65<r
[0117]当第一确认到达发送方时,其可W开始释放另一些分组,同时继续更新其可用容 量的最佳估计。一旦反馈已经在最先四个确认(ACK)上到达,则发送方的r的最佳估计将为 2.5(2与3之间的中屯、)。因此,将能够开始按大约1/2.5速率发送步测的分组,按该速率其发 送第一轮的十个分组(第一轮基准速率)。甚至正好在第四ACK之前,发送方将获知r〉2。一旦 来自第一轮的所有十个确认已经返回,并且在该反馈中没有进一步的零,则其r的最佳估计 将大约为2.825(2.65与3之间的中屯、)。然后,其可W将其平均发送速率增加到第一轮基准 速率的大约1/2.825,作为瓶颈速率的合理估计。为改进其瓶颈链路速率的估计,还应当向 该步调添加调嗽(chirps),稍后我们将对其进行描述。
[0118]当第二轮ACK开始到达时,它们可W全部反馈ECT(O),其将暗指选定速率已经太 慢,也许只是略有些慢。运就是为何还推荐调嗽的原因(参见稍后)。
[0119]然而,假定选定的步调相反略快于可用容量,并且所返回的反馈的序列为
[0120] 针对40(的反馈:0,0,0,0,1,0,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,...
[0121 ]该序列暗指,队列随着每一个分组到达而逐渐增长,如下:
[0122]暗指队列长度:1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,...
[0123]因为该序列暗指队列在发送每四个中按大约一个分组增长,运暗指发送方应当将 其步调降慢成在其已经发送四个分组的时间中发送=个分组。由此,按其先前速率的大约 75 %步测出的分组应当大约匹配瓶颈速率。
[0124]现在将描述用于估计源发送分组的速率与可用容量之间的速率失配率r的更精确 的方法。考虑到ECT(O)标记之间的间距在序列','2,'3^-中增长,用一个间隙除^前一个间 隙将总是得到值r。即使r连续改变,每当ECT(O)到达时,该除法也将得到瞬时速率失配的良 好估计。
[0125]现在将对连续递增估计的方法进行描述,其对于分组重新排序可W是更加鲁棒 的。在任一点,监测ECT(O)和ECT(I)的串流的过程可W确定最近看到的(第j个化CT(O)与其 之前一个之间的间距(间隙)gj。考虑存储部(store)ri被初始化成零,W累计r的估计。针对 在第j个ECT(O)直至并且包括下一个ECT(O)标记的分组之后到达的每一个分组,l/gj被添 加到ri。如果将直至下一个ECT(0)的间距定义为gj+i,则1/gj将已增加gj+i倍,因而,:Tl=gj+i/ gj,其为所需比率r。
[0126]每当ECT(O)到达时,监测过程将能够估计失配率r的最新值。接着,可W利用在小 序列分组上的直接平均,或者诸如连续串流上的指数加权移动平均的移动平均,将r的值的 串流平均化。该比率的每一个值表示从前一ECT(O)到达队列的时候到当前ECT(O)到达的时 候的比率的估计。因此,每一个平均值都应根据自前一个ECT(O)起的间距来加权。利用 EWMA,运可W通过利用新比率针对每一个分组更新平均值一次来实现。平均化的运两种形 式在下述示例中都被使用,分别参照图9b中的处理步骤(380)和图9c中的步骤(400)。
[0127]在不同情况下,如果流的真正的第一分组的ACK发出接收到ECT(I)的信号,则其展 现有其它业务已经在瓶颈缓冲区中排队的确定性。接着,如果针对每一个突发的第一分组 的反馈都是ECT(O),则发送方将需要更加谨
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1