改善多路径环境中传输协议性能的系统和方法

文档序号:6456476阅读:176来源:国知局
专利名称:改善多路径环境中传输协议性能的系统和方法
改善多路径环境中传输协议性能的系统和方法 相关申请的交叉引用
本申请要求2006年9月13日提交的美国临时申请No. 60/844, 226 的权益,该文献通过引用纳入本i兌明书。
公开领域
本公开涉及数据通信,更具体地,涉及多个并行数据通信路径上 的数据通信。
背景技术
在过去二十年间,称为传输控制协议(TCP)的传输协议作为实际 存在的用于互联网上的数据的可靠运送的传输协议, 一直表现良好。 虽然设计了 TCP所用的算法,以提高互联网上的稳定性、可靠性和公 平性,但是当通信系统之间的端到端路径上出现特定情况时,这些相 同的算法导致TCP性能降低。包括大带宽、大时延、和/或显著的丟失 率(loss-rate)等在内的特性在今日的互联网上变得更加普遍。虽然 这些年来TCP所用的基础算法已经被修改,但是对这些算法进行重大 改变是不大可能的,因为使用TCP的系统的用户基数是如此巨大。
此外,虽然大多数网络有大量资源,但大多数以一依序的方式在 两个网络实体之间交换数据。例如,广为使用的互联网协议(IP)在 任意两个实体之间仅支持单路径路由。相应地, 一般的数据网络,尤 其是互联网,具有一些潜在地允许通过超越顺序数据通信属性而来改 善性能、成本、功能、和灵活性的内在的特性。也即,并行地执行数 据通信,使许多包数据网络的能力得到根本改善。因而,需要来解决 这些及其他问题。


参考以下附图,可以更好地理解本公开的许多方面。附图中的组 件不一定按比例,而是有所强调,以清晰地图示本公开的原理。
6图1是用于改善传输协议的系统和方法的一个实施方案所处的环 境的框图。
图2是图示了用于改善来自图1的传输协议的性能的所选逻辑组 件的框图。
图3A-3C是来自图1的网络装置的多种实施方案的框图。
图4是更详细地示出了用于改善来自图1的传输协议的性能的所 选逻辑组件的框图。
图5是示出了多种用于改善来自图1的传输协议的性能的逻辑组 件之间的交互的数据流图。
图6是图示了用于改善来自图1的传输协议的性能的逻辑如何管 理緩冲器的数据流图。
图7是图示了来自图1的系统的一个实施方案中的拥塞控制的数 据流图。
图8是图示了来自图1的系统的一个实施方案中的流控制的数据 流图。
图9是图示了系统100的一个实施方案中的可靠性(QoS)管理的 数据流图。
图IO是来自图1的网络装置的硬件框图。

发明内容
公开了改善多路径环境中的传输协议性能的装置、系统和方法。 一个网络装置包含传输层代理;和耦合到传输层代理的多路径流量分 配器。传输层代理被配置为接收包,每个包与一个来自传输层终端的 传输层连接关联。该代理进一步被配置为将至少一部分所接收的包运 送到多路径流量分配器。多路径流量分配器被配置为将每个所运送 的包指派给多个数据流之一,并将每个所运送的包传送到一个与所指 派的数据流关联的出界路径(outbound path)上。
具体实施例方式
公开了改善多路径环境中的传输协议性能的系统和方法。整个系 统架构包括传输层代理,其被配置为经由本地确认、流控制和连接管理的组合来加速TCP连接;多路径流量分配器,其被配置为执行多 路径资源聚合。下面将更详细地描述这些组件。
本说明书公开了几种用于集成这两个组件的创新技术。 一种创新 技术是,数据包和结束连接包(close connection packet)(例如, TCP "FIN"控制包)被从传输层代理发送到多路径流量分配器,以在 多个广域网(WAN)路径之间分配。另一种创新技术是,多路径流量分 配器将WAN路径特性传给传输层代理。所述特性被提供给传输层代理 流控制器模块,以使传输层代理可以基于不同路径上的WAN条件来执 行适当的流控制。又一种创新特征涉及触发器管理器,其提供了统一 的机制,来选择要被传输层代理优化的连接,以及要被多路径流量分 配器优化的连接。
图1是用于改善传输协议100性能的系统和方法的一个实施方案 所处的环境的框图。终端装置110使用传输层(第四层)协议120, 并通过网络130彼此通信。虽然本公开将TCP作为示例性传输层协议 来讨论,但是本领域普通技术人员应认识到,本说明书公开的用于改 善传输协议性能的原理也可应用于其它传输层协议。路由器140在网 络130上传输流量,网络130可以涉及使用网络层(第三层)协议, 诸如互联网协议(IP)。虽然在本说明书中使用术语"路由器",但 是本领域普通技术人员应意识到,路由器140可以改为采用第三层交 换机的形式。
网络装置150 (逻辑上)位于终端110和路由器140之间。每个 网络装置150包括用于改善传输协议性能的逻辑160,该逻辑允许网 络装置150使用扩展的传输层协议170与对等网络装置150通信。这 样, 一对终端110通过一对网络装置150进行通信。
这样,系统100包括两个终端110和两个网络装置150。端到端 连接可以被划分为三个段首段或近端段175,在近端终端110N和本 地网络装置150L之间;中间段180,在本地网络装置150L和其对等 装置(peer)——远程网络装置150R——之间;末段或远端段185, 在远程网络装置150R和远端终端IIOF之间。
虽然在图1中网络装置150出现在终端110和路由器140之间, 但是这是逻辑表示而不是物理表示,仅指示包经过网络装置150。下面将解释,网络装置150的一些实施方案事实上并不在直接插在终端 110和路由器140之间,而是作为从路由器140挂断的离线装置。
本领域普通技术人员应意识到,用于改善传输协议性能的逻辑160 可以以几种不同方式被示例。 一个实例将逻辑16 0实现在一个位于TCP 通信终端装置IIO和接入路由器140之间的独立装置150中。另一个 用于改善传输协议性能的逻辑示例160位于终端110内,例如,作为 位于内核协i义堆栈(kernel protocol stack)的TCP和IP层之间的 内核驱动(kernel driver)。又一个实例是,用于改善传输协议性能 的逻辑160可以取代TCP作为终端110的协议堆栈中的传输层。虽然 本说明书仅具体描述了独立网络装置150,但是本公开的范围意在嚢 括所有这样的示例。
在网络装置150的某些实施方案中,扩展传输层协议170与终端 110使用的传输层协议120不同用在终端110和其相应的网络装置 150之间的协议是原始传输层协议120;用在对等网络装置150之间的 协议是扩展传输层协议170。在这样的实施方案中,网络装置150担 当了用于终端110的传输层代理。在某些代理实施方案中,终端110 意识不到网络装置150正在使用不同的传输层协议,在此情形下,对 于终端110,网络装置150是透明的传输层代理。如下面将进一步详 细描述的,网络装置150通过以如下方式响应TCP终端发送的包,来 维持透明性,即,使该终端意识到只有代理而不是实际接收器才是另 一个通信终端。
在某些实施方案中,网络130中的链路展现出与到终端110的链 路不同的性能特性。例如,到终端110的链路可以提供相对高速的有 线连接(例如,100Mbit以太网),而网络130中的链路可以提供低 速有线或无线连接(例如,Tl, WiFi)。扩展传输层协议165为网络 装置150之间的链路的性能特性而设计。
此后,当涉及扩展传输层协议170所用的包时,将使用术语"扩 展传输层包"。本领域普通技术人员将意识到,这样的协议通常包括 运栽数据的包(数据包)、确认数据的包(确认包)、和用来设立拆 卸连接的控制包。这样,此处将引用"扩展传输层数据包""扩展传 输层确认包"和"扩展传输层控制包"。这些包对应于但不同于原始传输层协议。例如,TCP数据包和扩展传输层数据包都运载数据,但 TCP数据包源自或被运送到TCP终端110,而扩展传输层数据包在传输 层代理对等装置150之间传递。
在某些实施方案中,通过向原始传输层协议包添加尾部字段来形 成扩展传输层包。例如,通过附加"扩展传输层数据,,的"协议类型" 字段,TCP数据包被转化为扩展传输层数据包,而通过附加"扩展传 输层控制"的"协议类型"字段,TCP控制包被转化为扩展传输层控 制包。这可以被认作一种封装形式,但具有对终端透明的优点。在某 些情形下,扩展传输层包在不带封装下被单独被传递。在这些情形下, IP报头(header)中的协议类型字段可以被设置为特殊值,指示扩展 传输层协议的存在。即,扩展传输层协议170作为协议类型,如TCP 或UDP,被IP层或网络层查看。
虽然没有在图l中图示,但是一对终端110可以包括对等装置之 间的多个连接,这些链路中的每一个都经过改善的网络装置150L和 150R。在这种情形下,网络装置150基于每个连接来决定,对于网络 装置150之间的连接段,是使用扩展传输层协议165还是使用原始传 输层协议120。在某些实施方案中,用户(例如,系统管理员)决定 哪个连接将使用哪种传输层协议,并相应地配置网络装置150。
几种配置实例是所有来自特定终端110的连接都使用扩展传输 层协议165;来自特定终端110的连接都不使用扩展传输层协议165; 来自特定终端110的、通过报头字段的特定组合而被识别的连接使用 扩展传输层协议165;来自特定终端IIO、未通过报头字段的特定组合 而被识别的连接不使用扩展传输层协议165。本领域普通技术人员应 认识到,这些只是实例,许多其他的用于确定哪个连接使用扩展传输 层协议165的技术也是可行的。
图2是图示了用于改善来自图1的传输协议性能的逻辑160的所 选组件的框图。传输层代理210与传输层协议终端110S以及对等网络 装置150P交互,使用诸如本地确认、流控制、和连接管理等特征来改 善或加速TCP连接。在共同转让且共同待决的专利申请820123-1010 中,描述了这些特征中的某些。多路径流量分配器220将包运送到对 等网络装置150P,聚合了本地网络装置150提供的多个路径230A-C上的资源。緩沖器240被用于发送本地传输层代理210从(近端)TCP 终端IION接收的数据。此数据被发送到对等网络装置150P内的对等 传输层代理(未示出)上,用于最终传送到(远端)TCP终端IIOF。 緩冲器250被用于发送传输层代理210从对等传输层代理接收的,源 自终端110F的数据。此数据被传送到(近端)TCP终端110N上。 一些 用于改善传输层协议性能的逻辑160的实施方案包括一种创新特征, 借此特征,关于緩沖器240和25G的状态的信息在传输层代理210和 多路径流量分配器220之间被分享,并且此緩沖器信息被用来影响流 控制和拥塞控制。下面将更详细地描述这个特征。
图3A-3C是网络装置150的多种实施方案的框图。如前文所述, 传输层代理210着重于与(近端)TCP终端110N (未示出)交互,而 多路径流量分配器220与位于远方网络130上的对等网络装置150连 接。在这些实施方案中的每个中,多路径流量分配器220被划分为与 传输层代理210连接的核心引擎310和与出界路径230连接的多路径 引擎320。核心引擎310将每个优化的TCP连接325复用到一个或多 个数据流330中,并在路径引擎320之间分配这些数据流330。每个 路径引擎320维持一个与特定路径230关联的管340,其中管340是 用来为路径230存储特性和状态信息的数据结构。
图3A的实施方案支持单个远側物理路径230 (其中远側是远离近 端TCP终端110N的那侧)。通常,远侧路径是广域网(WAN)链路, 但本领域普通技术人员应理解,相同的原理可以被应用于局域网(LAN ) 链路。
下面是通过这些组件的包处理的简要综述,包处理的细节稍后结 合图4和5描述。当包被接收时,网络装置150首先确定该包是否属 于优化的TCP连接325。假如该包在优化的连接325上,那么传输层 代理210执行识别该包所属的特定TCP连接325,并确定该包是否依 序。假如依序,则传输层代理210将该包传递到核心引擎310。核心 引擎310緩冲该包,并转交到路径引擎320之一,用于传输到出界路 径230上。
因为图3A的实施方案仅含有单个物理出界路径230,所以所有路 径引擎320 (经由管340 )都馈入同一个单个出界路径230。然而,沿着每个管(Pipe) 340的传输率取决于管数据结构中所存留的拥塞控 制的当前状态。每个路径引擎320也管理来自出界路径230的接收的 确认,并在其相应的虚拟路径上执行速率控制。在单个物理链路上使 用多个管的一个优点涉及拥塞控制。若没有多个管,当拥塞出现时, 单个链路上的发送器数据速率降低,例如,50°/ 。然而,当相同的数据 在10个管之间散布,以及在这些管之间随机地分配丢弃时,每个管上 的发送器数据速率降低,例如,50/10=5%。
图3B的实施方案支持多个出界路径230。到达TCP连接350上和 非TCP连接345上的数据包首先被触发器管理器(见图9和10)、继 而被传输层代理210、继而被核心引擎310分类和处理。这样,虽然 某些TCP连接没有被传输层代理210优化,但是核心引擎310处理所 有包优化的TCP连接325,以及非优化的TCP连接,和非TCP连接 诸如连接345。这样,这个实施方案能够在所有类型的包上执行路径 级优化(path-level optimization)。
假如所接收的包在优化的连接上,那么传输层代理210管理该包, 否则该包绕过传输层代理210,直接被核心引擎310控制。传输层代 理210识别该包所属的特定TCP连接325,并确定该包是否依序。假 如依序,则传输层代理210将该包传递到核心引擎310。
核心引擎310基于与路径引擎320合作做出的调度决策 (scheduling decision)将每个包指派给数据流330之一。每个路径 引擎320馈入一个出界路径230,且不止一个路径引擎320可以馈入 同一出界路径230。沿着每个出界路径230的拥塞控制被关联的发送 器路径引擎320执行,发送器路径引擎320进而受到一些接收自相应 的对等接收器侧路径引擎(未示出)的确认的辅助。多个管340被每 个出界路径230收集和去复用,用于传输。
图3C的实施方案支持多个出界路径230以及服务品质(QoS)。 QoS管理器360仲裁不同的流之间的可用资源,并连接到核心引擎310。 QoS管理器所使用的、用以将QoS应用于流或流量种类的主要"控制 旋钮(control knob)",是所用数据流330的数量。即,QoS管理 器360通过动态地适配任何给定时间点正在使用的数据流330的数量 使趋于QoS规则所规定的,来进行运作。与图3A和3B的实施方案相似,到达TCP连接350上和非TCP连 接345上的数据包首先被触发器管理器(见图9和10)、继而被传输 层代理210、继而^L核心引擎310分类和处理。然而,在图3C的实施 方案中,根据由个体TCP连接350获取的服务,QoS管理器360与核 心引擎310合作运作以确定要以动态方式创建的数据流330的数量, 所述个体TCP连接属于不同的QoS种类。每个路径引擎320,在执行 沿着其相应的出界路径230的拥塞控制时,也追踪它的相关联的出界 路径230所实现的带宽。通过用QoS管理器360和核心引擎310实施 控制循环,每个路径引擎320都能够对其流达到一个稳定态的资源配 给。来自出界路径230的确认的到达也向相关联的路径引擎230指示 了数据包已被接收器成功接收,从而也被用于触发可靠性处理(下面 解释)。
图4是更详细地示出用于改善传输协议性能的逻辑160的所选组 件的框图。包分类器410将传输层包分类为数据、确认和其他控制包, 并根据所接收的包的性质采取适当的行动。传输层代理210内的连接 管理器415和核心引擎310内的连接管理器417,基于所接收的与某 连接关联的包,创建、维持和删除该连接状态。确认发生器/终结器 420向TCP发送器终端110发送确认,并俘获来自TCP接收器终端110 的确认。代理流控制器425基于来自多路径流量分配器220的输入在 TCP发送器终端110上执行流控制。可靠性管理器430在接收装置150 和远端TCP接收器终端110F之间执行丢失检测和恢复。触发器管理器 440提供了用于指定要被传输层代理210优化的连接和要被多路径流 量分配器220分配的连接的接口。以这种方式,网络装置150可以被 配置为影响某些TCP连接,而不影响其他TCP连接。
路径控制器435基于任何给定路径的特性描述,并基于来自拥塞 和可靠性机制的信息,确定该路径中突出的包的数量。路径监视器450 计算路径的带宽、丢失、和时延(例如,均值和方差)。在某些实施 方案中,这两个功能被封装到路径引擎320 (图3)中,其余功能被封 装到核心引擎310中。对等检测器460检测已配置的对等装置150是 否是活动 ,以及对等装置是否可以被用作用于覆盖路径(overlay path)的反射器。緩沖器管理器455提供了发送緩冲器和接收緩冲器(图2中的240和250 )。分配器流控制器465基于来自緩冲器管理 器455的输入执行出界路径230上的流控制。来自緩冲器管理器455 的信息也控制代理流控制器425。传输调度器470沿着路径230传送 来自发送緩冲器240及其他内部緩冲器的包。在某些实施方案中,这 个传输功能包括路径分散(path striping)。在2005年2月22日提 交的共同转让且共同待决的专利申请11/063, 284 ("用于并行通信的 系统和方法(Systems and Methods for Parallel Communication ),,) 中,描述了这个分散特征的进一步细节以及路径控制器435和路径监 视器450的其他特征。
图5是示出用于改善传输协议性能的逻辑160的多种组件之间的 交互的数据流图。触发器管理器440执行对进入的包的初步分类,并 与多种其他组件连接。 一旦到达一个与特别配置的触发器匹配的包,
触发器管理器440就向连接管理器415指示新连接的创建(505 )。触 发器管理器440也向QoS管理器360传达触发器内任何新QoS种类的 创建(510)。包一旦被分类,触发器管理器440就向可靠性管理器 530指示数据确认的到达(515),并向拥塞控制器535指示拥塞控制 消息的到达(520 )。 一旦接收到来自触发器管理器的新连接消息,连 接管理器415就创建新连接状态,并请求緩冲器管理器455创建緩冲 器状态(540 )。这个緩沖器状态被维持,直到连接管理器415终结该 连接并删除该状态。注意,前文提及的连接管理器415管理TCP连接 以及路径优化器连接的创建、维持和终结。在近端发送网络装置150 中,緩冲器管理器455监视緩沖器占用率,并与代理流控制器425连 接,通过对代理流控制器425指示(545 )緩冲器占用率超过特定高门 限或何时緩沖器占用率低于低门限,在近端TCP发送器终端110N上执 行速率控制。在远端接收网络装置150中,緩沖器管理器455与分配 器流控制器465协作,以控制发送器侧传输层代理210的速率。QoS 管理器360与拥塞控制器535连接,以配置(550 ) —个QoS种类——
其含有实现所要求的服务配给所用的数据路径的数量。该数量可以动 态地增大或减小。拥塞控制器535与QoS管理器360连接,以控制(555 ) 为每个服务种类实现的服务配给。拥塞控制器535也向代理流控制器 425指示(560 )已经通过拥塞控制消息(520 )从触发器管理器440
14接收的最大窗口。
图6是示出用于改善传输协议性能的逻辑160如何管理緩冲器的 数据流图。发送器侧传输层代理210S维持一个特定连接发送緩冲器 610,其用于存储在首段175上从近端TCP发送器终端110N接收的无 序包。继而,发送器侧传输层代理210S将依序包(620 )递交到发送 器侧多路径流量分配器220S,分配器220S将包存储在它的无界緩沖 器630中。无界緩冲器630含有尚未被指派给中间段180上的任何特 定路径的并因此尚未净皮传送的包。
发送器侧多路径流量分配器220S使用它的调度算法来确定无界 緩冲器中的包在何时、在哪个路径上被传送。 一旦发送器侧多路径流 量分配器220S做出了这个调度决策,它就将特定包从无界緩冲器630 转移到有界緩冲器640。 一旦确认到达,指示接收器侧多路径流量分 配器220R处的接收成功,有界緩冲器640中的包就被删除(650 )。 在某些实施方案中,发送器侧多路径流量分配器220S也维持虚拟緩冲 器(未示出),其含有被指派给中间段180上的不同路径的包的包序 列数。这些虚拟緩冲器辅助执行中间段180上的拥塞控制和可靠的运 送。
接收器侧多路径流量分配器220R将从发送器侧多路径流量分配 器220S接收的有序包(660 )递交到接收器侧传输层代理210R。接收 器側多路径流量分配器220R将失序包存储在无序接收緩冲器670中, 无序接收緩沖器670确保数据有序地运送到远端TCP接收器终端 IIOF。接收到有序包时,多路径流量分配器220R检查无序緩沖器670 中其他可以被递交(680 )到传输层代理210R的包。只要相应的TCP 连接是活动的,这些包就被递交。
接收器侧传输层代理210R将从多路径流量分配器220R接收的包 存储在一个特定连接接收緩冲器690中。接收器侧传输层代理210R, 基于与末段拥塞控制和流控制(下面描述)合作而作出的调度决策, 将这些位于末段185上的包传送到远端TCP接收器终端IIOF。
图7是图示系统100的一个实施方案中的拥塞控制的数据流图。 这三段上的拥塞控制被三个不同的实体执行首段175上的拥塞控制 被近端TCP发送器终端IION管理;中间段180上的拥塞控制被发送器侧多路径流量分配器220S执行;末段185上的拥塞控制被接收器侧传 输层代理21QR执行。
系统100的某些实施方案的创新特征是,发送器侧传输层代理 210S间接参与将中间段循环拥塞控制信息传递回近端TCP发送器终端 IION。这个反馈帮助平衡这两个拥塞控制循环(首段循环和中间段循 环),并帮助达到稳定状态传输率。发送器侧传输层代理210S使用 TCP窗口消息710将中间段拥塞控制信息输送到近端TCP发送器终端 IION。当发送器侧装置150S中的发送緩沖器240达到门限(720 )时, 由发送器侧传输层代理210S对中间段拥塞控制信息的传输被触发。
类似地,接收器侧多路径流量分配器220R将末段185的拥塞控制 信息(730 )传递回发送器侧多路径流量分配器220S,以稳定中间段 和末段拥塞控制循环。在某些实施方案中,这个拥塞控制信息在跨越 末段185的多路径分配器(220S、 220R)之间的私有流控制消息中被 传递。如同中间段拥塞控制中的情形,当接收器侧装置150R中的接收 緩冲器250达到门限(740 )时,由接收器侧多路径流量分配器220R 对末段拥塞控制信息的传输被触发。
图8是图示系统100的一个实施方案中的流控制的数据流图。端 到端通信路径的三段以三对不同的发送器和接收器为标志,每一对形 成一个控制循环。现在将描述这些控制循环。
在首段175上,近端TCP发送器终端IION是发送实体,发送器侧 传输层代理210S是接收实体。首段175的接收器緩冲器250被发送器 侧多路径流量分配器220S通过数据的传输(820 )而排空。这进而被 中间段180上的拥塞控制驱动,如前文所述。因此,首段175上的流 控制,基于发送器侧装置150S上的接收緩冲器250的占用率(840 ), 通过发送器側传输层代理210S使用TCP窗口消息(830 )而实现。
中间段180被发送器侧和接收器侧多路径流量分配器220S和220R 跨越,并且这个接收器緩冲器被接收器侧传输层代理210R通过末段 185上的包的传输(860 )而排空(850 )。接收器侧多路径流量分配 器220R通过将緩冲器状态信息(870 )传递到接收器侧多路径流量分 配器220S来管理中间段180中的流控制。
最后,末段185具有作为发送器的接收器侧传输层代理210R,和作为接收实体的远端TCP接收器终端IIOF。 TCP接收器终端110F向接 收器侧传输层代理210R通告(880 )接收器緩冲器窗口并以此通过接 收器侧传输层代理210R控制了末段185上的包的传输率。
图9是图示系统100的一个实施方案中的可靠性(QoS)管理的数 据流图。实现可靠的包运送的责任在三个不同的逻辑实体之间被分担。 首段175上的可靠性被近侧TCP发送器终端IION管理,中间段180上 的可靠性被发送器侧和接收器侧的多路径流量分配器(220S和220R) 管理,末段185上的可靠性被传输层代理210管理。
近側TCP发送器终端110N向发送器侧传输层代理210S发送(910 ) 数据。响应这个数据,被发送器侧传输层代理210S发送(920 )到近 侧TCP发送器终端110N的重传确认和选择确认,在首段175上提供了 可靠性。TCP发送器终端110N向发送器侧传输层代理210S重新传送 (930 )丢失的包。传输层代理210S反过来将从TCP发送器110N依序 到达的包传送到发送器侧多路径流量分配器220S。继而,多路径流量 分配器220S将这些包传送到中间段180。
发送器侧和接收器侧多路径流量分配器220负责使用从接收器侧 多路径流量分配器220R发送(940 )到发送器侧多路径流量分配器220S 的选择确认消息,在中间段180上实现可靠的包传送。(在某些实施 方案中,这些选择确认消息是多级的。)发送器侧多路径流量分配器 220S响应由确认消息940指示的丢失,从有界緩沖器640向接收器侧 多路径流量分配器220R重新传送(950 )包。
在某些实施方案中,多路径流量分配器220包括选择性的可靠性 特征,其允许触发器被指定为仅为那些匹配触发字段的连接包提供可 靠性。被分类为用于路径优化但不用于可靠的运送的其他包被从无界 緩冲器630直接传送到中间段180,而不在无界緩冲器640中存储复 件。
接收器侧多路径流量分配器220R执行向远端TCP接收器终端110F 的可靠的包运送。多路径流量分配器220R辨认从TCP接收器终端110F 接收(960 )的重传确认和选择确认包,并适当地重新传送(970 )丢 失的包,这样就实现了可靠性。
下面将描述扩展传输层协议165的几个特征。在透明的传输层代理实施方案中,网络装置150基于被添加到从TCP终端接收的包的尾 部的添加和处理来执行运作。这样,流动在两个网络装置150之间的 包与原始通信终端发送的包相似。因为现存的网络组件使用报头来识 别和处理包,所以这个创新特征(连同上述桥功能)使扩展传输层协 i义165可以对其他网络组件透明。
已经描述了用于改善传输协议性能的逻辑160的总体运作,现在 将更详细地描述几个组件的特征。传输层代理210和/或多路径流量分 配器220在不同粒度下(granularity)维持连接的状态。在某些实施 方案中,传输层代理210将一个TCP连接认定为唯一的由源和目的IP 地址以及源和目的端口组成的四元组(four-tuple )。当包从首段175 上的近端TCP发送器终端110N到达时,发送器侧传输层代理210S推 敲包的上述四元组,以识别它属于哪个连接。来自近端TCP发送器终 端110N或远端TCP接收器终端110F的TCP同步-确i人包一到达,连 接状态就被传输层代理210创建和维持。
路径优化器基于与用户配置触发器(user-configured trigger) 的包匹配来维持连接。这些触发器可以是以下五元组的任意组合源 IP地址、目的IP地址、源端口、目的端口和协i义。出界段的两侧上 的路径优化器基于触发器将包分类到连接中,并基于每个连接来维持 上述緩冲器。因此,我们可以看到,被TCP优化器和路径优化器组件 维持的连接,虽然通过同一组包的到达而确定,但是基于包中的不同 字段。
触发器管理器440提供了一致的机制来选择要被传输层代理210 和/或多路径流量分配器220优化的连接。虽然触发器管理器440在传 输层代理210和/或多路径流量分配器220之间的控制平面处运作,但 是它可以采用不同的几套输入和分类器,以对那些要被这两部件优化 的包进行分类。触发器管理器440也负责确定每个包所属的连接。这 个决策是与连接管理器415合作做出的,连接管理器415观察包中固 定的一组字段,用于连接的创建、管理和终结。
QoS管理器360控制不同连接所接收的有效服务。上面结合图4 和5描述的触发器也被配置为具有最小的带宽、优先权和权重。假如 可用的带宽大于最小带宽之和,那么该带宽以权重的比率被分享。QoS
18管理器360与多路径流量分配器220合作,以实现不同流之间的服务差异化。QoS管理器360实现的这两种类型的服务差异化是相对服务差异化和绝对服务差异化。
在相对服务差异化中,当触发器的权重是"w"时,为每个端到端路径的触发器创建"w"个管。经过相同路径的"w"个管的所有参数是相同的,除了管的编号。这样,每个路径带宽以每个触发器得到的虚拟管的数量的比率来分配。
在绝对服务差异化中,当可用的带宽小于最小带宽之和时,绝对带宽划分自动地切入。具有最高优先权的触发器被检查,以确定它的所配置的"min-bw"是否可用。假如这个最小带宽是可用的,那么这些触发器以优先权顺序被处理,以找到最小带宽没有被实现的、具有最高优先权的触发器Umax)。继而,触发器被处理,以找到具有非零带宽的最低优先权触发器(tmin)。在这点上,触发器tmax的权重加l,触发器tmin的权重减1,该程序继续。
在某些实施方案中,在传输层代理210中、多路径流量分配器220中、或二者中实施性能监视。用于传输层代理210的监视器跟踪那些TCP对话经历的性能特性(例如,吞吐量、丟失和时延),所述TCP对话是基于为TCP优化而配置的触发器而被创建和维持的。该监视可以在不同的过滤器粒度下被执行,即预配置过滤器、静态过滤器、动态过滤器、和强力监视过滤器(brute-force monitoring filter )。
已经描述了用于改善传输协议性能的逻辑160的整体运作,现在将描述这个协议的几个特征。本领域普通技术人员应理解,这些特征通常彼此独立,因此扩展传输层协议165的特定实施方案可以包括这些特征的某些组合。与TCP不同,扩展传输层协议165不要求与其他应用和服务分享内存。该装置的整个内存可以专门用于緩冲活动连接的包。此外,这个大緩冲器在多个活动的端到端连接之间被灵活地分享,对于这些连接没有任何固定的配额。在具有大的带宽-时延乘积的网络中,由于该网络中强加在最大突出包上的限制,TCP的性能是有限的。通过消除小窗口的限制,并通过实现对可提供给该系统的、用于緩冲活动连接的包的整个内存的完美分享,扩展传输层协议改善了具有大的带宽时延乘积的网络中的端到端连接的性能。如上所述,包在多种组件之间传递,以被处理。在某些实施方案中使用了零复制技术,其提高了内存使用的效率。零复制包处理在内
部包性能中使用参考数(NumReference )字段,以跟踪接入该包的组件的数量。当组件处理包时,它增大参考数字段。当该组件完成处理时,它减小num_reference值。这避免了在组件之间传递包时对复件的需求。
如前文所述,发送器侧多路径流量分配器220S处的确认的到达,导致从有界緩冲器640移除包。由于确认包可以指示多个包的成功接收,这可以导致立即为大量的包释放内存,这个再分配可以是该系统上的一个排空。为了避免这点,改善传输协议性能的逻辑160的某些实施方案含有懒惰内存再分配机制。这个机制在确认到达时存储要被释放的包的序列号,继而在后续包传输周期中开展确切的包内存的再分配,而不是执行大量内存的单一再分配。
传输层代理210和多路径流量分配器220的集成,提高了穿越末段185的包中运载的信息量。这反过来降低了每个包中可以运栽的终端用户数据量。通过常规的破碎和重组机制,常规解决方案在原始包上添加扩展传输协议报头,继而令中间段180内的IP层留意增加的片段尺寸。这个常规途径是低效率的,因为在一致的速度下破碎和重组IP包涉及了额外耗费(overhead).本说明书7>开的方法和系统包括将指示中间段180上支持的MTU的ICMP消息传送回到发送器,其中该值是减去了那被添加到用于穿越中间段180的包的扩展传输协议的尺寸的实际MTU。这个ICMP消息令发送器得知优化的片段尺寸,这样就减少了中间段180上的破碎和重组的额外耗费。
某些实施方案也包括自检测特征,其帮助识别对等装置和这些对等装置支持的特征。某些实施方案支持对特别选择的特征的使能,在此情形下,对等网络装置150确定在其他对等装置中哪些特征被使能。这个特征确定涉及向任何未知主机发送控制消息("你在那里吗?")。假如网络装置150存在于通向主机的路径上,则该网络装置150用另一个控制消息("我在这里")响应,指示该网络装置150的存在和在该网络装置150上使能的特征。
某些实施方案使用心跳(heartbeat)作为用于穿越网络地址转换(NAT)装置的机制。常规NAT穿越使用中央服务器,其协调位于NAT装置后方的对等装置之间的通信。通过网络装置150从专用网发送心跳,本说明书公开的系统和方法实现了 NAT穿越。这些心跳在NAT装置中凿"洞",以使来自对等网络装置150的后续心跳消息(和协议包)可以作为状态创建的结果被运送。
图10是根据本说明书公开的用于改善传输层协议性能的系统和方法的一个实施方案的网络装置150的硬件框图。网络装置150含有数个在数据通信领域广为人知的组件,包括处理器IOIO、本地网络接口 1020、远程本地接口 1030、内存1040、和非易失性存储器1050。非易失性存储器的实例包括,例如石更盘、flash RAM、 flash ROM、EEPROM等等。这些組件经由总线11060耦合。内存1040含有用于改善来自图1的传输协议性能的逻辑160。
网络装置150被示为具有两个网络接口。本地网络接口 1020与终端110通信,远程本地接口 1030与网络装置150通信。本领域普通才支术人员应理解,网络接口可以是不同类型的,支持不同的介质和速度,等等。从图10中省略的是本领域技术人员公知的、对解释网络装置150的运作并不是必要的数个常规组件。
任何过程描述或流程图中的方框应该被理解为表示包含一个或多个可执行指令的代码的模块、片段或局部,所述可执行指令用于实施特定逻辑功能或过程中的步骤。软件开发领域普通技术人员应理解,替换性的实施也被包括在本公开的范围内。在这些替换性实施中,可以以不同于所示或所讨论的顺序执行功能,包括基本上并发地,或以相反顺序执行的功能,这取决于所涉及的功能。
本说明书公开的系统和方法可以被实施在任何计算机可读介质中,用于被指令执行系统、设备或装置使用,或与它们一起使用。这样的指令执行系统包括任何基于计算机的系统、含有处理器的系统、或其他可以取得并执行来自指令执行系统的指令的系统。在本公开的上下文中,"计算机可读介质"可以是任何可以容纳、存储、通信、传播或传输被指令执行系统所用的或与其有关的指令的设备。计算机可读介质可以是,例如但不局限于,基于电子、磁、光学、电磁、红外或半导体技术的系统或传播介质。使用电子技术的计算机可读介质的具体实例包括(但不局限于)
下列具有一条或多条导线的电(电子)连接;随机存取存储器UAM);只读存储器(ROM);可擦除可编程只读存储器(EEPROM或闪存)。使用磁技术的具体实例包括(但不局限于)便携电脑磁盘。使用光学技术的具体实例包括(但不局限于)光纤和便携光盘只读存储器(CD-醒)。
已经为说明和描述目的进行了前文的描述。前文的描述不意在详尽无遗,也不意在将本公开局限于所公开的确切形式。根据上述教导的明显修改或变更是可能的。然而,所讨论的实施被选择和描述以说明本公开的原理和实际应用,由此使得本领域普通技术人员能够在多种实施中利用本公开,并进行多种修改以配合所计划的特定应用。当根据法律上清楚地赋予本公开的权利要求的外延来解释它们时,所有这样的修改和变更都处于本公开的如所附权利要求所确定的范围内。
2权利要求
1.一种网络装置,其包含传输层代理;和多路径流量分配器,其耦合到传输层代理,其中传输层代理被配置为接收包,每个包与一个来自传输层终端的传输层连接关联;和将至少一部分所接收的包运送到多路径流量分配器;并且其中多路径流量分配器被配置为将每个所运送的包指派给多个数据流之一;和在与所指派的数据流关联的出界路径上传送每个所运送的包。
2. 权利要求l的网络装置,其中出界路径是多个出界路径之一。
3. 权利要求l的网络装置,其中出界路径是与所有数据流关联的 单个出界路径。
4. 权利要求l的网络装置,其还包含服务品质(QoS)管理器,其被配置为,设置多个数据流中的数据 流的数量,以实现一服务品质——其由对应于被接收的包的传输层连 接上的所用的流量种类规定。
5. 权利要求4的网络装置,其中QoS管理器进一步被配置为,设 置数据流的数量,以产生相对服务差异化。
6. 权利要求4的网络装置,其中QoS管理器进一步被配置为,设 置数据流的数量,以产生绝对服务差异化。
7. 权利要求l的网络装置,其中出界路径是多个出界路径之一, 该网络装置还包含服务品质(QoS)管理器,其被配置为,基于所要求的服务品质,控制与多个出界路径中的每一个都关联的数个数据流。
8. —种网络装置,其包含 传输层代理;和多路径流量分配器,其耦合到传输层代理, 其中传输层代理被配置为接收包,每个包与一个来自传输层终端的传输层连接关联; 将所接收的包存储在与相应的连接关联的緩冲器中; 并且其中多路径流量分配器被配置为 将包从緩沖器传送到出界路径;从对等多路径流量分配器接收指示了出界路径上的拥塞的拥 塞控制信息;并且其中传输层代理进一步被配置为基于緩冲器的占用率,将控制包传送到传输层终端,其中控 制包指示了拥塞控制信息。
9. 权利要求8的网络装置,其中多路径流量分配器进一步被配置为从对等多路径流量分配器接收指示了对等多路径流量分配器和第 二传输层终端之间的路径上的拥塞的信息,其中对信息的接收是基于 对等多路径流量分配器中的緩冲器的占用率。
10. —种网络装置,其包含 传输层代理;和多路径流量分配器,其耦合到传输层代理, 其中传输层代理被配置为接收包,每个包与一个来自传输层终端的传输层连接关联;和将所接收的包存储在与相应的连接关联的緩冲器中; 并且其中多路径流量分配器被配置为响应从对等多路径流量分配器接收的指示了出界路径上的拥 塞的拥塞控制信号,将包从緩冲器传送到出界路径; 并且其中传输层代理进一步被配置为基于緩沖器的占用率,将流控制包传送到传输层终端。
11. 权利要求8的网络装置,其中多路径流量分配器进一步被配 置为从对等多路径流量分配器中接收指示了对等多路径流量分配器中 的接收緩沖器占用率的信息;和响应指示了接收緩冲器占用率的信息,将包从緩冲器传送到出界路径。
12. —种网络装置,其包含 传输层代理;和多路径流量分配器,其耦合到传输层代理,其中传输层代理被配置为接收包,每个包与一个来自传输层终端的传输层连接关联; 基于所接收的包是否包括丢失的或错误的包,将重传控制包 传送到传输层终端;将至少一部分所接受的包运送到多路径流量分配器;并且其中多路径流量分配器被配置为在出界路径上传送每个所运送的包;和 响应接收自对等多路径流量分配器的重传控制包,重新传输 控制包所指示的所运送的包。
13. 权利要求12的网络装置,其中传输层代理和多路径流量分配 器均被进一步配置为独立地维持与传输层连接关联的状态信息。
14. 一种网络装置,其包含 传输层代理;和多路径流量分配器,其耦合到传输层代理; 其中传输层代理被配置为接收包,每个包与一个来自传输层终端的传输层连接关联;和将每个所接收的包运送到多路径流量分配器,假如该包依序; 并且其中多路径流量分配器^皮配置为将每个所接收的包存储在没有被指派给出界路径的无界緩沖器中;和在出界路径上传送每个所接收的包。
15. 权利要求14的网络装置,其中多路径流量分配器进一步被配 置为从对等多路径流量分配器接收包; 将所接收的没有依序的包存储在无序緩沖器中;和 将包从无序緩沖器运送到传输层代理一一 当另外一些包已经被接收自对等装置以产生有序序列时;并且其中传输层代理进一步被配置为将从无序緩冲器运送的包存储在接收緩冲器中;和 将存储在接收緩冲器中的包传送到传输层终端。
16. 权利要求14的网络装置,其中用来存储所接收的包之一的包 数据结构包括参考数字段,其在每个组件开始处理包时增大,在每个 组件完成处理包时减小。
17. 权利要求14的网络装置,其还包含被配置为接收一个传送包的确认的逻辑,该确认包括传送包的序 列号;被配置为响应所接收的确认而存储序列号的逻辑;和 被配置为使对与传送包关联的内存的释放延迟到所接收的确认之后的时刻的逻辑。
18,权利要求14的网络装置,其中多路径流量分配器进一步被配置为为出界路径确定最大传输单元(MTU);将本地MTU设置为用于出界路径的减去了被多路径流量分配器使 用的扩展传输层协议报头的尺寸的MTU;和通知本地MTU的出界路径上的对等网络装置。
19. 权利要求14的网络装置,其中该网络装置还包含 被配置为检测出界路径上的对等网络装置的存在和能力的逻辑。
20. 权利要求14的网络装置,其中该网络装置还包含 被配置为将心跳消息传送到出界路径上的对等网络装置的逻辑。
全文摘要
公开了改善多路径环境中传输协议性能的装置、系统和方法。一个网络装置包含传输层代理和耦合到传输层代理的多路径流量分配器。传输层代理被配置为接收包,每个包与一个来自传输层终端的传输层连接关联。该代理进一步被配置为,将至少一部分所接收的包运送到多路径流量分配器。该多路径流量分配器被配置为将每个所运送的包指派给多个数据流之一,并在与所指派的数据流关联的出界路径上传送每个所运送的包。
文档编号G06F15/16GK101606141SQ200780042043
公开日2009年12月16日 申请日期2007年9月13日 优先权日2006年9月13日
发明者A·韦拉尤坦, R·西瓦库玛 申请人:阿森奇亚网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1