一种支持网络编码的组播路由协议的制作方法

文档序号:7805255阅读:179来源:国知局
一种支持网络编码的组播路由协议的制作方法
【专利摘要】本发明涉及一种支持网络编码的组播路由协议,在由一组支持网络编码的路由器所构成的自治系统网络中,通过运行求取从源节点到每个终端发现若干条边不相交的最短路径的路由算法,来建立所有链路开销总和最小的组播连接;源节点还对组播连接的路径上的每台路由器运行基于组播网络编码向量分配的编码函数指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则。本发明能够建立更优化的组播连接,提高组播网络的容量,实现带宽的有效利用。
【专利说明】一种支持网络编码的组播路由协议
【技术领域】
[0001]本发明特别涉及一种支持网络编码的组播路由协议。
【背景技术】
[0002]目前,网络上的通信模式发生了新的变化:早期以支持点对点的通信(Unicast)为主,例如电话、文件传输、网页浏览等;后来,点对多点的通信(Multicast)开始流行,例如视频会议、直播电视、应用层组播、互动游戏等。网络业务的类型也从低带宽型向高带宽型发展,例如近年来涌现了视频、音频、照片等各种高码率业务。这些新变化导致了用户对网络带宽竞争的加剧。随着用户规模的增长,这种带宽的竞争将进一步被激化。如何有效地使用带宽,成为目前急需解决的热点问题之一。
[0003]网络编码(Network Coding)为带宽的节省提供了一个有效的手段。2000年电气和电子工程师协会的刊物(IEEE Transactions)的一篇论文中指出,网络编码使得网络节点对于报文(Packet)不仅可以进行传统的“存储、转发”操作,还可以进行编码操作,这样可以提高组播网络的容量。与此同时,网络节点上的处理能力与存储容量也在快速地增长,为网络编码的实行提供了很有利的硬件条件:除了用于报文存储、转发的资源以外,还剩下很丰富的其它资源,足以执行网络编码。近年来,许多研究者已经把目光转移到如何利用网络编码来达到带宽的有效利用。
[0004]最初,许多研究者主要考虑在由端节点所组成的应用层组播网络上实行网络编码。这样能利用端节点本身的计算和存储能力,但是却不能达到很高的网络容量。主要是因为端节点一般无法清楚地知道底层的物理网络拓扑,从而无法建立很优的组播连接(Multicast Connection)。为了消除这个障碍,作者在前期的一个工作中提出了在由路由器组成的网络上实行网络编码。这种设计不同于应用层上的网络编码,它可以使网络容量更加接近理论上界。它是指允许路由器对接收到的IP报文的载荷进行编码、封装,然后把新产生的报文发送出去。也就是,网络编码执行在路由器上,而不是在端节点上。由于很清楚地知道底层的拓扑,路由器可以建立更优的组播连接。然而,要实现路由器上的网络编码,有较大挑战。需要建立新的组网方法、路由协议、路由器结构等。

【发明内容】

[0005]本发明的目的在于提供一种支持网络编码的组播路由协议,能够在路由器组成的网络上实行网络编码,建立优化的组播连接,提高组播网络的容量,实现带宽的有效利用。
[0006]为了到达上述目的,本发明的技术方案是提供一种支持网络编码的组播路由协议,应用于由一组支持网络编码的路由器所构成的自治系统网络,通过运行路由算法来求取从源节点s到每个终端t发现h条边不相交的最短路径,从而建立所有链路开销总和最小的组播连接;
[0007]设源节点是与一个组的源主机相连的源路由器;终端是与一个组的接收主机相连的路由器;τ是一个非空的接收节点集;i为变量;所述组播路由协议的路由算法中,为每个终端ti e T,分别维护以下的两个数据结构和一个变量:
[0008]一个集合Pi,包含了从源节点s到终端\的边不相交的路径;
[0009]一个二维矩阵Wi [N] [N],包含了拓扑图G中的所有边,但是不包含集合Pi的路径上的所有边;N是路由器集合V中的节点数;其中的一个元素WiU] [k],j e N、k e N表示从节点\到节点Vk的有向链路上的开销值,如果从节点\到节点Vk的有向链路是集合Pi的路径上的一条边时,WiU] [k]设置为无穷大;
[0010]变量hi,是集合Pi中的边不相交的路径个数。
[0011]优选地,所述组播路由协议的路由算法,包含以下过程:
[0012]进行主循环,如果有变量i,使hi〈h,则继续主循环,否则退出主循环;h是一个预先指定的常数;
[0013]在主循环之内进行的第一循环中,在二维矩阵Wi [N] [N]中查找从源节点s到每个终端ti e T的最短路径,从查找到的最短路径中选择最短的一条路径(s,…,tm)加入到集合Pm中,再使变量hm的数值加I ;tm是路径(s,…,tm)的终端节点;
[0014]在主循环之内进行的第二循环中,将路径(S,…,tm)上的所有边的开销值设置为无穷大,从二维矩阵Wm[N ] [N]中删除该路径(S,…,tm)上的所有边;
[0015]在主循环之内进行的第三循环中,对于除了终端节点k之外的每个终端& e τ,设置二维矩阵Wm[N] [N]中的路径(S,…,tm)上的每条边的开销值为O ;
[0016]之后,所述主循环输出到达每个终端ti e T的路径的集合Pi。
[0017]优选地,由主循环输出的路径作为组播连接的路径,对该路径上的每台路由器运行编码函数的指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则;
[0018]编码函数的指派算法包含进行组播网络的编码向量分配的以下过程:
[0019]确定组播网络的最小子树图,依据最小子树图中子树的个数,并确保每个编码子树至少具有k个父子树;确定网络编码的符号域并生成相应的编码向量,从源节点到接收节点,依次分配给不同的源节点和编码点,每一编码点将所获得的编码向量传递给子树中的其他点,并且使每一接收节点η条输入边的全局编码向量中任意k个线性无关。
[0020]优选地,作为源节点的源路由器将编码系数及转发规则,沿着以该源路由器为根的最小生成树,发布至组播连接上所有其他的路由器,使其他的路由器根据各自保存的编码系数及转发规则对组播报文进行相应处理直到组播连接结束;
[0021]当组播连接结束时,当源路由器收到与之连接的源主机发送的组播停止请求时,或者当源路由器在最近发送的组播报文之后设定的定时器超时时,所述源路由器沿着最小生成树发布停止请求,使最小生成树上的任意一个路由器将所保存的编码系数及转发规则删除。
[0022]优选地,组播连接过程中,源主机向组播连接发送组播报文的过程如下:
[0023]源主机把组播报文P发送到与之直接相连的源路由器;源路由器把组播报文P的载荷分割为字节数相等的多个片段,根据网络编码协议将多个片段对应封装形成多个IP报文,并沿着源路由器与接收路由器之间多条不相交的路径,分别发送所述IP报文至接收路由器;
[0024]组播连接上的任意一台路由器收到任意一个IP报文时,根据收到的IP报文中的网络编码协议字段及该路由器保存的编码系数及转发规则,对收到的IP报文的载荷进行编码并重新封装形成新的IP报文,并根据转发规则发送新的IP报文;
[0025]组播连接上的任意一台路由器所连接的主机属于组播报文P对应的组的成员时,该路由器执行解码,从而根据其接收到的由组播报文P衍生的IP报文来恢复出原始的组播报文P。
[0026]优选地,组播连接过程中,所述自治系统网络中与主机连接的路由器,根据其收到的该主机加入或退出一个组时向该路由器发送的报告,来更新该路由器内存中的组成员关系表;
[0027]所述路由器还构造表示有组成员更新的更新报文,并沿着以该路由器为根的最小生成树,向自治系统网络中所有其他的路由器发送所述更新报文,使其他的路由器对各自内存中的组成员关系表进行更新;
[0028]所述更新报文记载有在组成员关系表中加入或删除一个组,或者在一个组中加入或删除一个主机的更新情况。
[0029]优选地,所述源路由器在收到所在组中有组成员更新的更新报文后,更新内存中的组成员关系表,并发布组播停止请求使组播连接上所有其他的路由器删除各自保存的编码系数及转发规则;而且,所述源路由器重新执行路由算法及编码函数的指派算法,来建立一个新的组播连接并形成相应的新的编码系数及转发规则,并发送新的编码系数及转发规则至新的组播连接上的所有其他路由器。
[0030]优选地,所述自治系统网络中的任意一台路由器,周期性地通过每个端口分别发送问候报文,并接收与其直接连接的邻居路由器发送的应答报文,来判断所述邻居路由器的可达性。
[0031]优选地,所述自治系统网络中的任意一台路由器,其构造表示该路由器所在链路最新状态的链路更新报文,并通过洪泛方式发送该链路更新报文至自治系统网络中所有其他的路由器;所述链路更新报文的存活时间为任意两台路由器之间的最大跳数;
[0032]其他的路由器根据收到的链路更新报文,来更新各自存放自治系统网络内部所有链路最新状态的数据库,并进一步通过洪泛方式发送该链路更新报文至各自的邻居路由器。
[0033]本发明的另一个技术方案是提供一种基于支持网络编码的组播路由协议实现的组播方法,其包含以下过程:
[0034]在由一组支持网络编码的路由器所构成的自治系统网络中,通过运行求取从源节点到每个终端发现若干条边不相交的最短路径的路由算法,来建立所有链路开销总和最小的组播连接;
[0035]作为源节点的源路由器,对组播连接的路径上的每台路由器运行基于组播网络编码向量分配的编码函数指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则,并沿着以该源路由器为根的最小生成树发布;
[0036]组播连接过程中,源路由器将源主机向其发送的组播报文分割,并根据网络编码协议封装后,沿着源路由器与接收路由器之间多条不相交的路径分别发送封装后的多个报文;
[0037]组播连接的路径上的任意一台路由器根据网络编码协议字段及该路由器保存的编码系数及转发规则,对收到的报文进行直接存储转发、或编码后重新封装并转发、或解码并将恢复出的组播报文发送至接收主机;
[0038]源路由器在组播连接结束时,会沿着最小生成树发布组播停止请求,使最小生成树上的任意一个路由器将各自保存的编码系数及转发规则删除。
[0039]综上所述,本发明提供的支持网络编码的组播路由协议,能够在路由器组成的自治系统网络上实现组播开销最小化并进行网络编码,从而建立优化的组播连接,提高组播网络的容量,实现带宽的有效利用。本发明的新组播路由协议完全在路由器执行,而对于任何一台用户电脑都是透明的。任何一台用户电脑都不需要知道在网络层上所执行的新组播路由协议。
【专利附图】

【附图说明】
[0040]图1是本发明的路由协议中进行路由器邻居发现过程的示意图;
[0041]图2是本发明的路由协议中路由算法的流程图。
【具体实施方式】
[0042]本发明提供的一种支持网络编码的新路由协议(CODERP),是域内路由协议,即只能用在一个自治系统(AS, Autonomous System)之内进行路由选择。如果没有特殊的声明,则下文中所说的网络都是指在一个自治系统AS之内的由一组支持网络编码的路由器所构成的网络。一个AS是指在一个地理区域之内的由一个组织或机构统一管理的一组路由器所组成的有界网络,其中每台路由器都拥有一致的路由协议。
[0043]本发明所述的路由协议,包含以下部分:邻居(Neighbor)的发现与链路状态(Link State)的测量;AS内链路状态更新的洪泛(Flooding);组成员关系(Group Member)的维护与发布;基于网络编码的组播连接建立;网络编码报文的传输。
[0044]1、邻居的发现与链路状态的测量;
[0045]如图1所示,当一台路由器加电运行之后,它需要知道它的各个邻居是否可达(Reachable)。为此,它向它的每一个端口发出一个问候报文(Hello Packet),其存活时间(TTL, Time To Live)为1,表明它最远只能到达直接连接的邻居。当一个邻居收到问候报文,它就返回一个应答报文(ACK Packet)。根据应答报文是否收到,路由器就可以确定它的各个邻居的可达性。它启动一个定时器,如果在定时器超时之前收到应答报文,则可以认为邻居可达,否则就是不可达。每台路由器在运行过程中,还需要每隔一个固定的时间、周期性地向它的各个邻居发送问候报文,以确定最近是否有邻居停止运行或启动运行。
[0046]同时,根据应答报文的收到时间,路由器还可以计算到任何一个邻居的延时。为了取得精确的延时值,路由器可以发送多次问候报文,最后计算平均延时。利用其它测量方法,还可以获得链路的带宽、距离、能量等数据。
[0047]2、链路状态更新在AS内部的洪泛发布;
[0048]当一台路由器所连接的某条链路的状态改变时,它就构造一个报文,把这条链路的最新状态信息装入进去,并通过洪泛的方式发送给AS内的所有其它路由器。报文的TTL设为AS内任意两台路由器之间的最大跳数。这样既能保证所有其它路由器都收到这种报文,又能减少溢出到AS之外的报文数量。[0049]当其它任何一台路由器收到这种报文之后,就立即更新内存中的链路状态数据库,重新构造一个AS内部的新拓扑图,并继续以洪泛的方式把更新报文转发给它的所有邻居。这里,链路状态数据库是指用于存放AS内部的所有链路的最新状态的库,其格式如表I所示,其中Rl、R2等代表路由器。而拓扑图是指一个由若干结点和若干边所构成的网络图,其中结点代表路由器,边代表链路,边上的数值代表链路的开销(例如延迟、带宽等)。由于采用洪泛更新,所以AS内所有路由器的链路状态数据库和拓扑图总是完全同步的。
[0050]下文中,除非特别声明,节点都只是指路由器而不是主机,终端或终端节点都是指与一个组的接收主机相连的路由器。拓扑图G是指由AS内所有路由器所组成的图,不包括与路由器相连的主机。
[0051]表1链路状态数据库的格式
【权利要求】
1.一种支持网络编码的组播路由协议,其特征在于,应用于由一组支持网络编码的路由器所构成的自治系统网络,通过运行路由算法来求取从源节点S到每个终端t发现h条边不相交的最短路径,从而建立所有链路开销总和最小的组播连接; 设源节点是与一个组的源主机相连的源路由器;终端是与一个组的接收主机相连的路由器;T是一个非空的接收节点集;i为变量;所述组播路由协议的路由算法中,为每个终端ti e T,分别维护以下的两个数据结构和一个变量: 一个集合Pi,包含了从源节点s到终端\的边不相交的路径; 一个二维矩阵Wi [N] [N],包含了拓扑图G中的所有边,但是不包含集合Pi的路径上的所有边;N是路由器集合V中的节点数;其中的一个元素WiU] [k],j e N、k e N表示从节点Vj到节点vk的有向链路上的开销值,如果从节点\到节点Vk的有向链路是集合Pi的路径上的一条边时,WiU] [k]设置为无穷大; 变量hi;是集合Pi中的边不相交的路径个数。
2.如权利要求1所述的组播路由协议,其特征在于, 所述组播路由协议的路由算法,包含以下过程: 进行主循环,如果有变量i,使hi〈h,则继续主循环,否则退出主循环;h是一个预先指定的常数; 在主循环之内进行的第一循环中,在二维矩阵WJN] [N]中查找从源节点s到每个终端h e T的最短路径,从查找到的最短路径中选择最短的一条路径(s,…,tm)加入到集合Pm中,再使变量匕的数值加I ;tm是路径(s,…,tm)的终端节点; 在主循环之内进行的第二循环中,将路径(s,…,tm)上的所有边的开销值设置为无穷大,从二维矩阵Wm[N] [N]中删除该路径(S,…,tm)上的所有边; 在主循环之内进行的第三循环中,对于除了终端节点1之外的每个终端\ e T,设置二维矩阵Wm[N] [N]中的路径(s,…,tm)上的每条边的开销值为O ; 之后,所述主循环输出到达每个终端\ e T的路径的集合Pp
3.如权利要求2所述的组播路由协议,其特征在于, 由主循环输出的路径作为组播连接的路径,对该路径上的每台路由器运行编码函数的指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则; 编码函数的指派算法包含进行组播网络的编码向量分配的以下过程: 确定组播网络的最小子树图,依据最小子树图中子树的个数,并确保每个编码子树至少具有k个父子树;确定网络编码的符号域并生成相应的编码向量,从源节点到接收节点,依次分配给不同的源节点和编码点,每一编码点将所获得的编码向量传递给子树中的其他点,并且使每一接收节点η条输入边的全局编码向量中任意k个线性无关。
4.如权利要求3所述的组播路由协议,其特征在于, 作为源节点的源路由器将编码系数及转发规则,沿着以该源路由器为根的最小生成树,发布至组播连接上所有其他的路由器,使其他的路由器根据各自保存的编码系数及转发规则对组播报文进行相应处理直到组播连接结束; 当组播连接结束时,当源路由器收到与之连接的源主机发送的组播停止请求时,或者当源路由器在最近发送的组播报文之后设定的定时器超时时,所述源路由器沿着最小生成树发布停止请求,使最小生成树上的任意一个路由器将所保存的编码系数及转发规则删除。
5.如权利要求4所述的组播路由协议,其特征在于, 组播连接过程中,源主机向组播连接发送组播报文的过程如下: 源主机把组播报文P发送到与之直接相连的源路由器;源路由器把组播报文P的载荷分割为字节数相等的多个片段,根据网络编码协议将多个片段对应封装形成多个IP报文,并沿着源路由器与接收路由器之间多条不相交的路径,分别发送所述IP报文至接收路由器; 组播连接上的任意一台路由器收到任意一个IP报文时,根据收到的IP报文中的网络编码协议字段及该路由器保存的编码系数及转发规则,对收到的IP报文的载荷进行编码并重新封装形成新的IP报文,并根据转发规则发送新的IP报文; 组播连接上的任意一台路由器所连接的主机属于组播报文P对应的组的成员时,该路由器执行解码,从而根据其接收到的由组播报文P衍生的IP报文来恢复出原始的组播报文P。
6.如权利要求 4所述的组播路由协议,其特征在于, 组播连接过程中,所述自治系统网络中与主机连接的路由器,根据其收到的该主机加入或退出一个组时向该路由器发送的报告,来更新该路由器内存中的组成员关系表; 所述路由器还构造表示有组成员更新的更新报文,并沿着以该路由器为根的最小生成树,向自治系统网络中所有其他的路由器发送所述更新报文,使其他的路由器对各自内存中的组成员关系表进行更新; 所述更新报文记载有在组成员关系表中加入或删除一个组,或者在一个组中加入或删除一个主机的更新情况。
7.如权利要求6所述的组播路由协议,其特征在于, 所述源路由器在收到所在组中有组成员更新的更新报文后,更新内存中的组成员关系表,并发布组播停止请求使组播连接上所有其他的路由器删除各自保存的编码系数及转发规则;而且,所述源路由器重新执行路由算法及编码函数的指派算法,来建立一个新的组播连接并形成相应的新的编码系数及转发规则,并发送新的编码系数及转发规则至新的组播连接上的所有其他路由器。
8.如权利要求1所述的组播路由协议,其特征在于, 所述自治系统网络中的任意一台路由器,周期性地通过每个端口分别发送问候报文,并接收与其直接连接的邻居路由器发送的应答报文,来判断所述邻居路由器的可达性。
9.如权利要求1所述的组播路由协议,其特征在于, 所述自治系统网络中的任意一台路由器,其构造表示该路由器所在链路最新状态的链路更新报文,并通过洪泛方式发送该链路更新报文至自治系统网络中所有其他的路由器;所述链路更新报文的存活时间为任意两台路由器之间的最大跳数; 其他的路由器根据收到的链路更新报文,来更新各自存放自治系统网络内部所有链路最新状态的数据库,并进一步通过洪泛方式发送该链路更新报文至各自的邻居路由器。
10.一种基于支持网络编码的组播路由协议实现的组播方法,其特征在于,包 含以下过程: 在由一组支持网络编码的路由器所构成的自治系统网络中,通过运行求取从源节点到每个终端发现若干条边不相交的最短路径的路由算法,来建立所有链路开销总和最小的组播连接; 作为源节点的源路由器,对组播连接的路径上的每台路由器运行基于组播网络编码向量分配的编码函数指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则,并沿着以该源路由器为根的最小生成树发布;组播连接过程中,源路由器将源主机向其发送的组播报文分割,并根据网络编码协议封装后,沿着源路由器与接收路由器之间多条不相交的路径分别发送封装后的多个报文;组播连接的路径上的任意一台路由器根据网络编码协议字段及该路由器保存的编码系数及转发规则,对收到的报文进行直接存储转发、或编码后重新封装并转发、或解码并将恢复出的组播报文 发送至接收主机; 源路由器在组播连接结束时,会沿着最小生成树发布组播停止请求,使最小生成树上的任意一个路由器将各自保存的编码系数及转发规则删除。
【文档编号】H04L12/761GK103986661SQ201410240778
【公开日】2014年8月13日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】林珉 申请人:上海珉智信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1