具有网络编码功能的路由器和基于网络编码的组网方法

文档序号:7685149阅读:165来源:国知局
专利名称:具有网络编码功能的路由器和基于网络编码的组网方法
技术领域
本发明属于路由器与组网技术领域,具体涉及一种具有网络编码功能的路由器的新型 体系结构与基于网络编码的组网方法。
技术背景网络编码(networkcoding)可用来提高群组通信的网络吞吐率和系统稳定性[l]。在采 用网络编码的对等网络(P2P, peer to peer)分发系统中,端节点可在应用层构建覆盖网络 (overlay),利用自身的存储和计算能力进行网络编码,并转发编码数据。覆盖网络上的 网络编码,不需要对IP路由器做任何修改,因而实用可行且具有灵活性。但是,覆盖网络的网络编码尚不能达到或接近理论的吞吐率(throughput)上界,主要 原因是覆盖网络上的每条连接通常横跨多个物理链接,而多条覆盖网络上的连接也可能共 用一个物理链接,端节点通常不能清楚物理链接和网络拓扑的特性,存在网络吞吐率低于预期、端节点性能无法保障和编解码累计开销大等问题。本发是提出的具有网络编码功能的路由器的新型体系结构可以比较好地解决这些问题。发明内容本发明的目的在于提出一种具有网络编码功能的路由器和基于网络编码的组网方法, 以便能提升网络吞吐率和降低编解码开销;并设计、实现路由器上网络编码的数据分发原 型系统。路由器上网络编码是指在单信源(source)多信宿(sink)组播网络上的路由器节点中 进行编码,其主要特征是在网络层上对IP有效负载(payloads)进行编码。具体来说,支 持网络编码的路由器之间的互联系统是由信源主机、信宿主机、路由和组播系统所构成的。 先在与信源主机相连的路由器上,对于到达的数据报(incoming packet)进行分割和编 码。数据报的不同片段被转发到不同的网络分支(branch),并在之后经过的路由器上, 进行编码或者解码。最终信宿主机将收到这些数据报。所有这些处理都是对信源主机和信 宿主机透明的。本发明提出的路由器上支持网络编码,主要包括以下三个方面的内容。 (1)设计具有网络编码功能的路由器体系结构 现有Internet路由器不支持网络编码功能。而要使路由器上支持网络编码,需要在现有路由器的硬件结构、路由协议和组管理协议的基础上,增添一些相应的编码模块。但 是为了降低设计复杂度和提高总体性能,这些编码模块必须适当地集成到现有路由器中, 与原来的模块有机地结合。本发明设计的具有网络编码功能的路由器,其结构如图2所示,在路由器的背板交换 结构(switch fabric) 13上连接若干块线卡(line card) 18。每块线卡18由直接存储 器存取模块14、路由高速缓存15、内存16和介质访问控制模块17组成,与传统的路由 器相比,原来的模块基本不变,只增加了编码算法12和编码策略模块9两个模块,相应 地也增加了这两个模块与原来的模块之间的交互接口。图2中模块之间的交互接口用带有箭头的直线来表示。在原有接口的基础上,新增的 接口包括编码策略模块9与路由高速缓存15之间的接口 19,用于编码策略的选择和路 由选择;编码算法模块12与线卡的内存16之间的接口,用于对保存在线卡内存中的IP 数据包进行编码计算。而原有的接口基本保持不变,原有的接口包括路由处理器10与路由高速缓存15之 间的接口;路由处理器10与背板交换结构13之间的接口;共享内存11与交换结构13之 间的接口;直接存储器存取模块14与交换结构13之间的接口;介质访问控制模块17与 路由器外部的传输媒介之间的接口;等等。编码算法模块12用于对路由器上需要编码的IP数据包进行处理执行运算,产生新的 IP数据包。而编码策略模块9则用于判断一个IP数据包是否有编码处理的需要,并配合 路由处理器10 —起完成对IP数据包的路由选择,这是因为基于编码的路由选择与传统的 路由选择之间有着一定的差异。这两个模块的执行流程请参见下文的"基于网络编码的路 由器的三个功能"(图8)。这两个模块可以在网络处理器(NP, network processor)上以嵌入式的方式来实现。 采用网络处理器来实现,可以提供类似通用CPU的强大编程能力,同时又具有ASIC处理 数据包的高速度。这样可以縮短开发周期,保护硬件投资。从路由器的介质访问控制模块17上到达的数据包,首先存放在线卡的内存16中,由 编码策略模块9与路由处理器10 —起决定这个数据包是否需要编码处理以及转发的方向, 即应该传送到哪一块线卡上。如果需要编码处理,则由编码算法模块12进行处理。处理 完成后,这个数据包被转发到其它指定的线卡上,最后通过与本路由器相连的外部传输链 路而发送出去。(2)路由器上网络编码组网方法路由器上网络编码要达到最大网络吞吐率,还需要改变组网方式。比如要在信源与信宿之间建立多条路径,以满足编码的需要。所以在网络规划和实施时就要考虑每个路由器 的直接连接的邻居路由器的数量,从而达到路由器-路由器间的"多路径"连接。根据本发明,网络中的每个路由器都具有网络编码能力,但是设有一个开关,路由器 可以关闭/开启自己的网络编码功能。如果关闭开关,就成为一个存储/转发的"简单"路 由器,仍然可以将收到的数据转发给自己管辖的端节点;其下行连接的路由器,会做相应 的处理。路由器将根据一个到达的数据包是否需要编码来决定是否关闭/开启这个开关。图1是路由器上网络编码的核心分发网络及边缘接入网的分发结构的一个例子。其中, 边缘接入路由器(如路由器A、 G、 H、 I)定义为群首(Group head),即边缘接入路由器 是它所连接的终端主机群组(Group)的首领结点。通信群组的网络传输拓扑主要有边缘 接入网与核心分发网两大部分所组成一是边缘接入网上的数据处理和传输。边缘接入网上主要包括信源、信宿、边缘接入 路由器三种结点。例如图1所示,信源主机4与接入路由器A构成一个接入网;而三个接 入路由器G、 H、 I分别与它们所连接的所有信宿结点构成三个独立的接入网。接入网的工 作过程是,首先信源主机4将编码或未编码的数据发给其相连的接入路由器(如路由器A)。 如果是非实时通信,信源节点可以预先编码,存储在自己的硬盘上;如果是实时通信,可 以选择在信源节点或者接入路由器(如路由器A)实现编码。接入网的传输,还包括每个 与信宿主机8相连的接入路由器(如路由器G、 H、 I)把解码后的数据分发给所连接的信 宿的代理(Agent),再由代理节点负责将数据分发给相应的普通信宿成员。因此,网络编 解码不需要在信宿端节点进行,这样简化了信宿节点功能的复杂度,并且路由器上的编码 过程对于信源与信宿来说都是透明的。二是核心分发网络中路由器上的数据处理和传输。核心分发网络将多个边缘接入网连 接起來,为边缘接入网络(各业务接入节点)提供数据的高速业务承载和交换通道。例如图 1所示,所有边缘接入路由器(如路由器A、 G、 H、 I)以及连接它们的所有中间路由器(如 接入路由器B、 C、 D、 E、 F、 J)将构成一个核心分发网,从信源发往信宿的任何数据都将 在这个核心分发网络通过网络编码进行传输。核心分发网络结构主要考虑可靠性、可扩展 性和多路径性,以满足编码的需要。而对于中间路由器,数量上没有什么特别的限制,各 个中间路由器之间的关系也没有任何特别的限定。但是,各个中间路由器之间的互联应该 保证核心分发网络的可靠性、可扩展性和多路径性。 (3)网络编码协议(NCP, network coding protocol)路由器上的网络编码还需要对原来的IP协议进行相应的修改,修改后的协议称为网络 编码协议。网络编码协议在IP数据包中新增了一个NCP协议头,它用于保存编码和解码所需的信息,例如全局编码矢量。路由器把NCP协议头插在IP协议头和上一层协议头之 间(图4)。代(generation)是路由器上网络编码协议中的一个重要概念,先说明如下对于路由器上网络编码,IP有效负荷参与编码。 一个IP有效负荷被分割为多个等长的 数据块。这个最原始的IP有效负荷就称为一个编码代,这些生成的数据块就称为属于这个 编码代,数据块的个数就称为编码代的大小(图3)。在这些数据块上的编码是指,先把这些数据块分别乘以一个随机系数,然后求取它们 的总和,从而形成一个新的数据块。这个新的数据块,可以视为产生它的那些数据块的部 分信息的混合。这个新的数据块仍然可以继续参与以后的编码。但是,所有编码产生的数 据块,都代表原始数据块的线性组合。NCP协议头包括以下字段(图5):① 保留字段(Reserved field):对于协议的设计,RFC (Request For Comments)要求对齐,来加速处理,减小开发复 杂度。保留字段在某种程度上提高了协议的可扩展性。② 协议字段(Protocol field):它是指下一层协议,即被编码的数据包所属的协议,例如用户数据报协议(UDP, User Datagram Protocol )、传输控制协议(TCP, Transmission Control Program)等。 对于路由器上的解码,在一个原始数据包被恢复时,NCP协议头要被删除,而且IP协 议头中的协议字段要被改为NCP协议头中的协议字段的值。③ 代的大小字段(Generation Size field):它是指属于一个代的数据块的个数。对于编码和解码,有必要提供编码系数矢量的长 度。④ 填塞长度字段(Pad Len field):为了达到代的大小的整数倍,可能需要追加少数字节。这些字节在解码后被丢弃。⑤ 数据块长度字段(Block length field):它是指被编码的数据块的长度。它可以由IP协议头中的长度字段计算出来,所以它是 一个冗余字段。⑥ 代的编号字段(Generation Number field):它是指代的ID编号。编码只能针对来自同一个代的数据块进行,所以区分来自不同代 的数据块,是必要的。是否两个NCP数据包属于同一个代,是由源IP地址、目标IP地址、NCP协议头中的协议字段和代的编号字段共同决定的。基于网络编码的路由器具有如下三个功能分割与封装(SE, Segmentation & Encapsulation),编码(EnCoding)、解码(DeCoding),分别用于三种专门的路由器上。1) 分割与封装这个功能是找出来自信源的需要编码的IP数据包,把它的IP载荷分割为若干数据块, 用NCP协议来封装这些块,然后把它们转发到从信源到信宿的不同路径上。执行这种功能 的指定路由器就称为SE路由器(图6)。由同一个原始IP数据包而分割产生的数据块,就 视为属于传输会话的一个代。一个来自信源的需要编码的IP数据包,是指在编码后会有更好性能的IP数据包。这 种IP数据包应该满足以下条件第一,目标IP地址应该是组播地址。而且,SE路由器知道到达信宿或接收主机的多 条路径。第二,数据包的IP载荷是足够大。由于NCP协议头,IP载荷在整个数据包中占有较低 的比重。如果这个比重太低而不能提高性能,应该停止编码。这个功能不必只用于路由器。当这个功能用于终端主机时,用于编码的IP载荷的长度, 不受最大传送单元(MTU, Maximum Transmission Unit)的限制,可以达到64KB。所以, 提高了编码的封装效率。这个功能是整个编码过程的第一阶段,它对上层协议是透明的。2) 编码并不是所有路由器都参与编码。正如在蝴蝶(butterfly)模型中的那样,只要在那些 输出链路是瓶颈的路由器上编码就足够了。否则,总的网络性能将遭受不必要的编码开销 的影响。这种路由器称为EC路由器(EnCoding)。(图7)。在EC路由器上,到来的具有NCP协议头的IP数据包,根据它们的代的编号,被收集 到缓存中。对于每一个输出链路,在收到一个代中的足够数目的数据包之后,EC路由器使 用线性编码把这些数据包编码为一个数据包,编码系数是从GF256 (Galois Field)中随 机选择的。此外,它修改数据包的NCP协议头的字段。此后,它把已经编码的数据包转发 到输出链路上(图9)。3) 解码解码只用于与一些信宿直接相连的路由器上。这些执行解码的路由器称为DC路由器 (Decoding)(图8)。在DC路由器上,到达的数据包,被存储在对应于它们的代的编号的 缓存中。在收到足够的线性无关的编码块之后,基于NCP协议头中记录的全局编码矢量,它使用高斯消元法来解码这些数据包。DC路由器管理一个组,这个组的成员是它的本地子网中的信宿节点。在成功解码之后, DC路由器把NCP协议头从IP协议头中删除。此后,DC路由器把源数据包转发到这个组中 的信宿节点。这里,解码对信宿主机也是透明的。基于网络编码的组播对于路由器上的网络编码,我们在单源多宿的数据传送中考虑组播。然而,路由器网 络编码与传统的IP组播之间存在一个重要的差异。在IP组播中, 一个完全相同的拷贝被 发送到分发树的所有分支上。但是在路由器上的网络编码中却不是如此,源消息被SE节 点所分割。不同的分割块被发送到不同的分支上,并在EC节点上被编码。再次注意,这 种差异是对终端主机透明的,并且在每个信宿节点上,收到来自信源的消息的相同拷贝。


图1为基于网络编码的路由器之间的组网方式。图2为基于网络编码的路由器体系结构。图3为编码的代的大小为2时的编码示意图。图4为NCP网络编码协议的数据包格式。图5为NCP网络编码协议头和编码后的数据。图6为分割与封装的SE路由器。图7为编码的EC路由器。图8为解码的DC路由器。图9为编码操作的流程。图中标号1为一个IP数据包在路由器A上分割与封装后的第一个片段,2为一个IP 数据包在路由器A上分割与封装后的第二个片段,3为一个IP数据包在路由器A上分割 与封装后的第三个片段,4为信源主机,5为路由器,6为编码后的IP数据包在网络中流 向,7为对2、 3两个片段的编码,8为信宿主机,9为编码策略模块,IO为路由处理器, ll为共享内存,12为编码算法模块,13为背板交换结构,14为直接存储器存取模块,15 为路由高速缓存,16为线卡上的内存,17为介质访问控制模块,18为线卡,19为模块之 间的信息流向,20为IP协议头,21为编码的一个代,22为IP报的有效负荷,23为原始 的有效负荷的前半块,24为随机的编码系数a, 25为编码的计算,26为原始的有效负荷的 后半块,27为随机的编码系数b, 28为编码后的数据块,29为信源主机,30为IP协议头, 31为原始的有效负荷,32为分割与封装的SE路由器,33为IP协议头,34为NCP网络编 码协议头,35为原始的有效负荷经过分割与封装后的第一个片段,36为原始的有效负荷经过分割与封装后的第二个片段,37为原始的有效负荷经过分割与封装后的第三个片段, 38为上游的路由器,39为IP协议头,40为NCP网络编码协议头,41为IP报的有效负荷 a, 42为编码的EC路由器,43为编码后的有效负荷a+b, 44为下游的路由器,45为编码 前的IP数据包,46为解码的DC路由器,47为编码后的IP数据包。
具体实施方式
下面通过一个例子进一步描述本发明。以图l中的情况为例。图l是采用网络编码的数据分发模型示意图。假设网络中路由 器间的带宽是1,端系统(包括信源与信宿主机)到路由器的带宽是3。信源节点需要将 IP数据报(记作P)同时分发到所有与路由器G、 H、 I直接相连的信宿主机。1. 首先,按照如图1所示的分发方式,信源把这个IP数据报P发送给路由器A。路 由器A先判断这个数据报P是否需要进行分割与封装的处理。如果需要,就执行分割与封 装功能,即把它的IP载荷分割为若干数据块,分别记作P1、 P2、 P3,用NCP协议来封装 这些块,然后把它们分别转发到路由器B、 C、 D。如果不需要,则按照传统方式,直接根 据路由表转发到B、 C、 D中的某一个路由器。以下分发阶段都假设IP数据报P需要进行 分割与封装的处理。2. 其次,路由器C将从A接收到由P经过分割与封装后的三个IP数据报之一P2。由 于C只能从A获得P的片段P2,所以就判断出P2不需要编码,直接把P2转发给路由器B、 E。同样,对于路由器D、 F和J,其处理流程也是类似的。3. 再次,路由器B将从A和C接收到IP数据报Pl和P2,于是路由器B需要对PI 和P2进行编码运算(图l中是异或运算),生成P1+P2,然后把P1+P2发送到路由器H。 同时,B还要把P1发送到路由器G。同样,对于路由器E,其处理流程也是类似的。4. 最后,路由器G分别从B、 F、 H收到了数据报P1、 P2+P3和P1+P2,所以就能够通 过执行解码运算,即高斯消元法,恢复出P1、 P2和P3。路由器G管理一组与它直接相连 的信宿。在成功解码之后,路由器G把NCP协议头从P1、 P2和P3的IP协议头中删除, 并通过重组方式,把原始的P恢复出来。此后,路由器G把源数据包P转发到它所管理的 组中的所有信宿节点。这里,解码对信宿主机也是透明的。同样,对于路由器H和I,其 处理流程也是类似的。很显然,如果采用传统的组播转发的形式,就不能同时利用三条链路AB、 AC、 AD的带 宽来承受信源分发给所有信宿的IP数据报P,所以网络编码提高了从信源到信宿的网络吞 吐率。 参考文献[1] C. Fragouli, J. Widmer and J.-Y. Le Boudec, "Network coding:An instant primer". ACM SIGCOMM Computer Communication Review archive Volume 36 , Issue 1, Jan. 2006.
权利要求
1、一种具有网络编码功能的路由器,在路由器的背板交换结构(13)上连接有若干块线卡(18),每块线卡(18)由直接存储器存取模块(14)、路由高速缓存(15)、内存(16)和介质访问控制模块(17)组成;其特征在于还设有编码算法模块(12)和编码策略模块(9),与此相应,还设有这两个模块与其它模块之间的交互接口编码策略模块(9)与路由高速缓存(15)之间的接口,编码算法模块(12)与线卡内存(16)之间的接口;所述编码算法模块(12)用于对路由路上需要编码的IP数据包进行处理,产生新的IP数据包;所述编码策略模块(9)用于判断一个IP数据包是否有编码处理的需要,并配合路由处理器(10)一起完成对IP数据包的路由选择。
2、 一种在权利要求1所述的具有网络编码功能的路由器上进行网络编码的组网方法, 定义边缘接入路由器为群首,是它所连接的终端主机群组的首领结点;其特征在于具体步 骤为将通信群组的网络传输拓扑分为核心分发网和边缘接入网,其中边缘接入网上的数据处理和传输,边缘接入网上主要包括信源、信宿、边缘接入路由 器三种结点,信源主机(4)与接入路由器A构成一个接入网;而三个接入路由器G、 H、 I 分别与它们所连接的所有信宿结点构成三个独立的接入网;接入网的工作过程是,首先信 源主机(4)将编码或未编码的数据发给其相连的接入路由器;如果是非实时通信,信源 节点预先编码,存储在自己的硬盘上;如果是实时通信,选择在信源节点或者接入路由器 实现编码;接入网的传输,还包括每个与信宿主机(8)相连的接入路由器把解码后的数 据分发给所连接的信宿的代理,再由代理节点负责将数据分发给相应的普通信宿成员;核心分发网络中路由器上的数据处理和传输,核心分发网络将多个边缘接入网连接起 来,为边缘接入网络提供数据的高速业务承载和交换通道,所有边缘接入路由器以及连接 它们的所有中间路由器构成一个核心分发网,从信源发往信宿的任何数据都将在这个核心 分发网络通过网络编码进行传输。
3、 一种基于如权利要求1所述的具有网络编码功能的路由器的网络编码协议,其特 征在于在IP数据包中增加一个NCP协议头,用于保存编和解码所需的信息,并且该NCP 协议头插入IP协议头和上一层协议头之间。
4、 根据权利要求3所述的网络编码协议,其特征在于所述NCP协议头包括以下字段① 保留字段;② 协议字段,是指下一层协议,即被编码的数据包所属的协议;③ 代的大小字段,是指属于一个代的数据块的个数;④ 填塞长度字段;⑤ 数据块长度字段,是指被编码的数据块的长度; 代的编号字段,是指代的ID编号。
全文摘要
本发明属于路由器和组网技术领域,具体是一种具有网络编码功能的路由器和基于网络编码的组网方法。本发明提出的路由器是在现有路由器基础上增加了编码算法模块和编码策略模块及其相应接口;并提出相应的组网方法和编码协议,从而在路由器上实现网络编解码和路由功能。路由器上网络编码其主要特点是在网络层上对IP有效负荷进行编码。路由器上的网络编码可以逼近网络吞吐率上界,提升端到端性能。其主要好处是便于使用集中优化编、解码;简化分发拓扑,减少端到端的跳数进而减少编码次数和端到端延迟;减少端节点编码时因相关性带来的延迟;如果接入路由器到各管辖节点采用IP组播,还可以节省接入带宽和时间。
文档编号H04L12/56GK101217489SQ200810032500
公开日2008年7月9日 申请日期2008年1月10日 优先权日2008年1月10日
发明者尹训睿, 珉 林, 新 王, 薛向阳, 进 赵 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1