CN103986661B - 一种支持网络编码的组播路由方法 - Google Patents
一种支持网络编码的组播路由方法 Download PDFInfo
- Publication number
- CN103986661B CN103986661B CN201410240778.XA CN201410240778A CN103986661B CN 103986661 B CN103986661 B CN 103986661B CN 201410240778 A CN201410240778 A CN 201410240778A CN 103986661 B CN103986661 B CN 103986661B
- Authority
- CN
- China
- Prior art keywords
- router
- multicast
- path
- message
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种支持网络编码的组播路由方法,在由一组支持网络编码的路由器所构成的自治系统网络中,通过运行求取从源节点到每个终端发现若干条边不相交的最短路径的路由算法,来建立所有链路开销总和最小的组播连接;源节点还对组播连接的路径上的每台路由器运行基于组播网络编码向量分配的编码函数指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则。本发明能够建立更优化的组播连接,提高组播网络的容量,实现带宽的有效利用。
Description
技术领域
本发明特别涉及一种支持网络编码的组播路由方法。
背景技术
目前,网络上的通信模式发生了新的变化:早期以支持点对点的通信(Unicast)为主,例如电话、文件传输、网页浏览等;后来,点对多点的通信(Multicast)开始流行,例如视频会议、直播电视、应用层组播、互动游戏等。网络业务的类型也从低带宽型向高带宽型发展,例如近年来涌现了视频、音频、照片等各种高码率业务。这些新变化导致了用户对网络带宽竞争的加剧。随着用户规模的增长,这种带宽的竞争将进一步被激化。如何有效地使用带宽,成为目前急需解决的热点问题之一。
网络编码(Network Coding)为带宽的节省提供了一个有效的手段。2000年电气和电子工程师协会的刊物(IEEE Transactions)的一篇论文中指出,网络编码使得网络节点对于报文(Packet)不仅可以进行传统的“存储、转发”操作,还可以进行编码操作,这样可以提高组播网络的容量。与此同时,网络节点上的处理能力与存储容量也在快速地增长,为网络编码的实行提供了很有利的硬件条件:除了用于报文存储、转发的资源以外,还剩下很丰富的其它资源,足以执行网络编码。近年来,许多研究者已经把目光转移到如何利用网络编码来达到带宽的有效利用。
最初,许多研究者主要考虑在由端节点所组成的应用层组播网络上实行网络编码。这样能利用端节点本身的计算和存储能力,但是却不能达到很高的网络容量。主要是因为端节点一般无法清楚地知道底层的物理网络拓扑,从而无法建立很优的组播连接(Multicast Connection)。为了消除这个障碍,作者在前期的一个工作中提出了在由路由器组成的网络上实行网络编码。这种设计不同于应用层上的网络编码,它可以使网络容量更加接近理论上界。它是指允许路由器对接收到的IP报文的载荷进行编码、封装,然后把新产生的报文发送出去。也就是,网络编码执行在路由器上,而不是在端节点上。由于很清楚地知道底层的拓扑,路由器可以建立更优的组播连接。然而,要实现路由器上的网络编码,有较大挑战。需要建立新的组网方法、路由协议、路由器结构等。
发明内容
本发明的目的在于提供一种支持网络编码的组播路由方法,能够在路由器组成的网络上实行网络编码,建立优化的组播连接,提高组播网络的容量,实现带宽的有效利用。
为了到达上述目的,本发明的技术方案是提供一种支持网络编码的组播路由方法,应用于由一组支持网络编码的路由器所构成的自治系统网络,通过运行路由算法来求取从源节点s到每个终端t发现h条边不相交的最短路径,从而建立所有链路开销总和最小的组播连接;
设源节点是与一个组的源主机相连的源路由器;终端是与一个组的接收主机相连的路由器;T是一个非空的接收节点集;i为变量;所述组播路由协议的路由算法中,为每个终端ti∈T,分别维护以下的两个数据结构和一个变量:
一个集合Pi,包含了从源节点s到终端ti的边不相交的路径;
一个二维矩阵Wi[N][N],包含了拓扑图G中的所有边,但是不包含集合Pi的路径上的所有边;N是路由器集合V中的节点数;其中的一个元素Wi[j][k],j∈N、k∈N表示从节点vj到节点vk的有向链路上的开销值,如果从节点vj到节点vk的有向链路是集合Pi的路径上的一条边时,Wi[j][k]设置为无穷大;
变量hi,是集合Pi中的边不相交的路径个数。
优选地,所述组播路由协议的路由算法,包含以下过程:
进行主循环,如果有变量i,使hi<h,则继续主循环,否则退出主循环;h是一个预先指定的常数;
在主循环之内进行的第一循环中,在二维矩阵Wi[N][N]中查找从源节点s到每个终端ti∈T的最短路径,从查找到的最短路径中选择最短的一条路径(s,…,tm)加入到集合Pm中,再使变量hm的数值加1;tm是路径(s,…,tm)的终端节点;
在主循环之内进行的第二循环中,将路径(s,…,tm)上的所有边的开销值设置为无穷大,从二维矩阵Wm[N][N]中删除该路径(s,…,tm)上的所有边;
在主循环之内进行的第三循环中,对于除了终端节点tm之外的每个终端ti∈T,设置二维矩阵Wm[N][N]中的路径(s,…,tm)上的每条边的开销值为0;
之后,所述主循环输出到达每个终端ti∈T的路径的集合Pi。
优选地,由主循环输出的路径作为组播连接的路径,对该路径上的每台路由器运行编码函数的指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则;
编码函数的指派算法包含进行组播网络的编码向量分配的以下过程:
确定组播网络的最小子树图,依据最小子树图中子树的个数,并确保每个编码子树至少具有k个父子树;确定网络编码的符号域并生成相应的编码向量,从源节点到接收节点,依次分配给不同的源节点和编码点,每一编码点将所获得的编码向量传递给子树中的其他点,并且使每一接收节点n条输入边的全局编码向量中任意k个线性无关。
优选地,作为源节点的源路由器将编码系数及转发规则,沿着以该源路由器为根的最小生成树,发布至组播连接上所有其他的路由器,使其他的路由器根据各自保存的编码系数及转发规则对组播报文进行相应处理直到组播连接结束;
当组播连接结束时,当源路由器收到与之连接的源主机发送的组播停止请求时,或者当源路由器在最近发送的组播报文之后设定的定时器超时时,所述源路由器沿着最小生成树发布停止请求,使最小生成树上的任意一个路由器将所保存的编码系数及转发规则删除。
优选地,组播连接过程中,源主机向组播连接发送组播报文的过程如下:
源主机把组播报文p发送到与之直接相连的源路由器;源路由器把组播报文p的载荷分割为字节数相等的多个片段,根据网络编码协议将多个片段对应封装形成多个IP报文,并沿着源路由器与接收路由器之间多条不相交的路径,分别发送所述IP报文至接收路由器;
组播连接上的任意一台路由器收到任意一个IP报文时,根据收到的IP报文中的网络编码协议字段及该路由器保存的编码系数及转发规则,对收到的IP报文的载荷进行编码并重新封装形成新的IP报文,并根据转发规则发送新的IP报文;
组播连接上的任意一台路由器所连接的主机属于组播报文p对应的组的成员时,该路由器执行解码,从而根据其接收到的由组播报文p衍生的IP报文来恢复出原始的组播报文p。
优选地,组播连接过程中,所述自治系统网络中与主机连接的路由器,根据其收到的该主机加入或退出一个组时向该路由器发送的报告,来更新该路由器内存中的组成员关系表;
所述路由器还构造表示有组成员更新的更新报文,并沿着以该路由器为根的最小生成树,向自治系统网络中所有其他的路由器发送所述更新报文,使其他的路由器对各自内存中的组成员关系表进行更新;
所述更新报文记载有在组成员关系表中加入或删除一个组,或者在一个组中加入或删除一个主机的更新情况。
优选地,所述源路由器在收到所在组中有组成员更新的更新报文后,更新内存中的组成员关系表,并发布组播停止请求使组播连接上所有其他的路由器删除各自保存的编码系数及转发规则;而且,所述源路由器重新执行路由算法及编码函数的指派算法,来建立一个新的组播连接并形成相应的新的编码系数及转发规则,并发送新的编码系数及转发规则至新的组播连接上的所有其他路由器。
优选地,所述自治系统网络中的任意一台路由器,周期性地通过每个端口分别发送问候报文,并接收与其直接连接的邻居路由器发送的应答报文,来判断所述邻居路由器的可达性。
优选地,所述自治系统网络中的任意一台路由器,其构造表示该路由器所在链路最新状态的链路更新报文,并通过洪泛方式发送该链路更新报文至自治系统网络中所有其他的路由器;所述链路更新报文的存活时间为任意两台路由器之间的最大跳数;
其他的路由器根据收到的链路更新报文,来更新各自存放自治系统网络内部所有链路最新状态的数据库,并进一步通过洪泛方式发送该链路更新报文至各自的邻居路由器。
本发明的另一个技术方案是提供一种基于支持网络编码的组播路由协议实现的组播方法,其包含以下过程:
在由一组支持网络编码的路由器所构成的自治系统网络中,通过运行求取从源节点到每个终端发现若干条边不相交的最短路径的路由算法,来建立所有链路开销总和最小的组播连接;
作为源节点的源路由器,对组播连接的路径上的每台路由器运行基于组播网络编码向量分配的编码函数指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则,并沿着以该源路由器为根的最小生成树发布;
组播连接过程中,源路由器将源主机向其发送的组播报文分割,并根据网络编码协议封装后,沿着源路由器与接收路由器之间多条不相交的路径分别发送封装后的多个报文;
组播连接的路径上的任意一台路由器根据网络编码协议字段及该路由器保存的编码系数及转发规则,对收到的报文进行直接存储转发、或编码后重新封装并转发、或解码并将恢复出的组播报文发送至接收主机;
源路由器在组播连接结束时,会沿着最小生成树发布组播停止请求,使最小生成树上的任意一个路由器将各自保存的编码系数及转发规则删除。
综上所述,本发明提供的支持网络编码的组播路由协议,能够在路由器组成的自治系统网络上实现组播开销最小化并进行网络编码,从而建立优化的组播连接,提高组播网络的容量,实现带宽的有效利用。本发明的新组播路由协议完全在路由器执行,而对于任何一台用户电脑都是透明的。任何一台用户电脑都不需要知道在网络层上所执行的新组播路由协议。
附图说明
图1是本发明的路由协议中进行路由器邻居发现过程的示意图;
图2是本发明的路由协议中路由算法的流程图。
具体实施方式
本发明提供的一种支持网络编码的新路由协议(CODERP),是域内路由协议,即只能用在一个自治系统(AS,Autonomous System)之内进行路由选择。如果没有特殊的声明,则下文中所说的网络都是指在一个自治系统AS之内的由一组支持网络编码的路由器所构成的网络。一个AS是指在一个地理区域之内的由一个组织或机构统一管理的一组路由器所组成的有界网络,其中每台路由器都拥有一致的路由协议。
本发明所述的路由协议,包含以下部分:邻居(Neighbor)的发现与链路状态(LinkState)的测量;AS内链路状态更新的洪泛(Flooding);组成员关系(Group Member)的维护与发布;基于网络编码的组播连接建立;网络编码报文的传输。
1、邻居的发现与链路状态的测量;
如图1所示,当一台路由器加电运行之后,它需要知道它的各个邻居是否可达(Reachable)。为此,它向它的每一个端口发出一个问候报文(Hello Packet),其存活时间(TTL,Time To Live)为1,表明它最远只能到达直接连接的邻居。当一个邻居收到问候报文,它就返回一个应答报文(ACK Packet)。根据应答报文是否收到,路由器就可以确定它的各个邻居的可达性。它启动一个定时器,如果在定时器超时之前收到应答报文,则可以认为邻居可达,否则就是不可达。每台路由器在运行过程中,还需要每隔一个固定的时间、周期性地向它的各个邻居发送问候报文,以确定最近是否有邻居停止运行或启动运行。
同时,根据应答报文的收到时间,路由器还可以计算到任何一个邻居的延时。为了取得精确的延时值,路由器可以发送多次问候报文,最后计算平均延时。利用其它测量方法,还可以获得链路的带宽、距离、能量等数据。
2、链路状态更新在AS内部的洪泛发布;
当一台路由器所连接的某条链路的状态改变时,它就构造一个报文,把这条链路的最新状态信息装入进去,并通过洪泛的方式发送给AS内的所有其它路由器。报文的TTL设为AS内任意两台路由器之间的最大跳数。这样既能保证所有其它路由器都收到这种报文,又能减少溢出到AS之外的报文数量。
当其它任何一台路由器收到这种报文之后,就立即更新内存中的链路状态数据库,重新构造一个AS内部的新拓扑图,并继续以洪泛的方式把更新报文转发给它的所有邻居。这里,链路状态数据库是指用于存放AS内部的所有链路的最新状态的库,其格式如表1所示,其中R1、R2等代表路由器。而拓扑图是指一个由若干结点和若干边所构成的网络图,其中结点代表路由器,边代表链路,边上的数值代表链路的开销(例如延迟、带宽等)。由于采用洪泛更新,所以AS内所有路由器的链路状态数据库和拓扑图总是完全同步的。
下文中,除非特别声明,节点都只是指路由器而不是主机,终端或终端节点都是指与一个组的接收主机相连的路由器。拓扑图G是指由AS内所有路由器所组成的图,不包括与路由器相连的主机。
表1链路状态数据库的格式
3、AS之内的组成员关系的维护与更新发布;
AS之内组管理分为两个部分:第一部分运行于路由器与主机之间,第二部分运行于路由器之间。前者采用IGMPv2协议,后者采用本发明设计的新协议。
每台路由器需要维护:当前它的哪个端口与哪个组的成员相连接。它通过IGMPv2协议进行维护。每当一个路由器所连接的主机想加入或退出一个组时,该主机向该路由器发出报告。该路由器收到这个报告之后,更新内存中的组成员关系表。
在路由器之间还要发布组成员更新。如果一个路由器所连接的一个主机想加入一个组,但是组成员关系表中没有这个组,那么该路由器不仅要在这张表中加入这个组,还要构造一个报文,把这个组的加入更新装入进去,并发送给AS内的所有其它路由器。同样,如果一个路由器所连接的所有主机都已经退出了一个组,那么该路由器从表中删除这个组,并且构造一个报文,把这个组的退出更新装入进去,并发送给AS内的所有其它路由器。
为了节省带宽,组加入或退出的更新不采用洪泛的方式,而是采用如下方式。路由器根据最新的链路状态数据库,用普里姆算法(Prim)从自己出发构造一棵以自己为根的最小生成树(Minimum Spanning Tree)。然后,路由器沿着这棵树向AS内的所有其它路由器发布组更新。这样,对于任何一个组,每个路由器都知道这个组与哪些路由器相关。
4、基于网络编码的组播连接的建立;
当一个主机想向一个组的其它成员发布消息时,它必须先向与之直接相连的路由器发出组播连接建立的请求。当路由器收到这个请求,就根据最新的链路状态数据库和组成员关系表,来建立一个以自己为源头的最小开销组播。
1)这种组播连接建立问题的形式化描述如下:
AS内的网络拓扑用一个有向图G=(V,A)表示,其中V是路由器集合,而A是链路集合。每条链路(i,j)代表一条从i到j的无丢包的点到点链路。zij代表报文输入(i,j)的速率。
速率矢量z是一个包含所有zij的集合,其中(i,j)∈A(公式1)。矢量z称为一个子图。z必须属于某个约束集Z,否则报文队列将会变得不稳定。每条链路对应于一个开销函数f,它反映了链路的平均延迟或能量消耗等。函数f把一个有效的速率矢量映射为实数。
z={zij|(i,j)∈A} (1)
假设一个源节点s想以一个正实数速率R向一个非空的接收节点集T传送报文。表2是一个线性规划问题,其目标是使所建立的组播连接上所有链路开销的总和为最小。
表2组播连接上总链路开销的优化问题
2)本发明的组播路由算法
对于表2的优化问题,目前已经存在许多算法,其中很有代表的一个是Lun等人所设计的组播开销最小化的构造算法。而本文将采用我们提出的一种新算法CODERP(表3),其思想是对一个预先指定的常数h,从源s到每个终端节点t发现h条边不相交的最短路径(Edge-Disjoint Path),同时使到不同终端节点的路径之间的共享程度达到最大化。
表3本发明所提出的一种新的路由算法
在表3中,二维矩阵W[N][N]代表拓扑图G的链路开销,其中N是路由器集合V中的节点数。它的一个元素W[i][j]是从节点vi到节点vj的有向链路上的开销值。开销值必须大于等于0。如果从vi到vj没有有向链路,则把W[i][j]设置为无穷大(Infinite,∞)。
为每个终端ti∈T,维护以下两个数据结构和一个变量:
一个集合Pi,包含了到目前为止所发现的从s到ti的边不相交的路径。
一个矩阵Wi[N][N],包含了G中的所有边,但是不包括Pi的路径上的所有边。换句话说,如果从vj到vk的有向链路是Pi的路径上的一条边,则Wi[j][k]设置为无穷大。实际上,Wi[N][N]是W[N][N]的一个子图,用于查找从s到ti的多条的边不相交的路径。
变量hi,是Pi中的边不相交的路径个数。
参见图2的流程图所示,表3算法的工作过程如下:先初始化数据结构和变量。然后进入While循环。如果有一个i,使hi<h,则继续循环,否则退出循环。
在While之内的第一个For循环中,采用迪杰斯特拉算法(Dijkstra)在Wi[N][N]中查找从s到每个终端ti∈T的最短路径。当该循环完成之后,从这些路径中选择最短一条(s,…,tm)。把它加入到Pm中,再使hm加1。如果多条路径同样最短,则选择发现的第一条。
在第二个For循环中,从Wm[N][N]中删除路径(s,…,tm)上的所有边。也就是,把这些边的开销设置为无穷大,以使得Pm中的当前路径与以后循环中发现的新路径不相交。
在第三个For循环中,对于除了tm之外的每个ti∈T,设置Wm[N][N]中的路径(s,…,tm)上的每条边的开销为0,以使得到tm的路径上的某些边可以被到其它终端的路径重用。这样有助于节省链路开销。
3)每台路由器上编码函数的指派
当上述算法结束时,以上每一次While循环中所找出的路径,就构成最终组播连接中的一条路径。接着,就开始为这个组播连接上的每一台路由器指派一个适当的编码函数。这种函数用于为进来的报文的线性组合产生编码系数。所述的编码指派算法,可以是一种信息流分解算法。
网络信息流分解算法指出,只需对子树图中的不同子树赋予不同的k维全局编码列向量,保证同一接收者的n个接收节点所在的子树的编码向量任意k个线性无关,从而使接收节点可从任意k条正确输入边上的符号恢复出信源信息。下面的问题是如何在最小的符号域上构造这些编码向量。因为编码的符号域要是很大,就会增加节点编码以及接收节点译码的复杂度。可以利用最大距离可分码的生成矩阵构造全局编码向量。
令m(k,q)表示有限域Fq上的一个[n,k]最大距离可分码的最大的n值,则,对于k≥q,m(k,q)=k+1;
对于k≤q,有:
m(k,q)=q+2,如果q是偶数或者k=3或k=q-1时,
m(k,q)=q+1,其他情况时。
引理1以下k×(q+1)矩阵的任意k列线性无关
这里xi∈Fq,并且对于i≠j,有xi≠xj。该引理可利用范德蒙矩阵满秩得证。
定理2对于一个具有M个子树的网络最小分解来说,为了进行基于接收节点的网络恢复,编码符号域大小为M-1足够了。对于特征为2的有限域F2 v,当2v≥M-1足够了。
证明由引理1,在大小为M-1的符号域上,可构造一个k×M矩阵,其任意k列线性无关,可将该矩阵的列向量作为子树的全局编码向量。从而每一接收节点n条输入边的全局编码向量中任意k个线性无关。
对于上述随机分配全局编码向量的方法,当某一编码子树的输入边数小于k时,将无法保证该编码子树的编码向量由其父子树的编码向量线性张成。因此在构造子树时为确保每一编码子树具有k个父子树,当一个编码子树的父子树少于k时,可人为地给其添加几条输入边,将其分别和相应的源节点连接起来,以保证每一编码子树至少有k个父子树。构造这样的子树图对于应用层网络和无线Ad Hoc网络来说是很容易的。
具体的组播网络的编码向量分配算法如下:对于一个给定的网络,确定其最小子树图,依最小子树图中子树的个数,由源节点依照定理2确定网络编码的符号域F2 v,由引理1生成相应的编码向量。从源节点到接收节点,依次分配给不同的源节点和编码点,每一编码点将所获得的编码向量传递给其子树中的其他点。对于每一具有多条输入边的边e(这里设其有h条输入边e1,……eh),可依b(e)=me·[b(e1)b(e2)…b(eh)]T求出其对应的局部编码向量。
4)由源路由器发布编码与转发的规则
最后,上述的源路由器把以上算法的结果,发布给组播连接上的所有路由器。为了节省带宽,这种发布也不采用洪泛的方式,而是采用如前所述的方式,即采用普里姆算法所构造的最小生成树来进行发布。然后,组播连接上的每一台路由器根据所收到的结果,就可以确定对该组播的每个报文,应该使用什么编码系数,且应该向哪些端口发送出去。它们把这种编码与转发的规则保存在内存中,直到组播连接的结束。
5)组播连接结束
当组播连接结束时,源主机向与之相连的源路由器发出组播停止请求。然后,源路由器沿着最小生成树来发布停止请求。当这个生成树上的任何一台路由器收到这个请求,就把该组播的报文编码与转发的规则从内存中删除。另外,源路由器有一个定时器。在它每次发送一个组播报文时都重新启动这个定时器,如果在定时器超时之前再也没有发送任何组播报文,那么源路由器自动地向组播连接上的所有路由器发布组播停止请求。这样,这些路由器就可以把该组播的报文编码与转发的规则从内存中删除,从而节省了它们的内存。
6)组播连接过程中组成员的动态加入与退出
在组播连接过程之中,还可能发生组成员的动态加入与退出。如果开始时一台路由器上所连接的所有主机都不是组的成员,但后来这些主机中有一台想加入这个组,那么这台路由器向AS内的所有其它路由器发布这个组成员加入更新。同样,如果一台路由器上所连接的一台主机退出这个组以后,这台路由器所连接的所有主机都不再是组的成员,那么这台路由器也要发布这个组成员退出更新。
AS内任何一台路由器收到这个更新之后,都要更新内存中的组成员关系表。另外,当这个组的源路由器收到这个更新,还要执行额外的操作。它要在原来的组播连接上发布组播停止请求,以使组播连接上的所有其它路由器删除内存中旧的编码与转发的规则。它还要重新执行本发明的路由算法和编码函数的指派算法来建立一个新的组播连接,并把执行结果发布给这个组播上的所有其它路由器。这些路由器收到这个最新结果之后,就在内存中加入新的编码与转发的规则。
5、网络编码报文的传输;
当以上组播连接建立之后,源主机就可以向组播连接发送组播报文。发送过程如下:
首先,源主机把报文p发送到与之直接相连的源路由器。这个路由器把报文p的载荷分割为几个字节数相等的片段(以下假设等分为3段),然后用网络编码协议分别对这3段进行封装,接着再用IP协议封装,结果产生3个新的IP报文(p1、p2、p3),使它们从外部看来与普通IP报文没有很大区别。如果在组播连接上源与接收者之间存在着多条不相交的路径,那么就把这些报文(p1、p2、p3)分别沿着3条不同的路径向接收者发送。
其次,在组播连接上,当任何一台路由器收到一个报文,就根据报文中是否含有网络编码协议字段来做不同处理。如果没有网络编码协议字段,就按照传统的存储、转发方式进行处理。否则,就根据内存中相应的编码与转发的规则,对报文的载荷进行编码、重封装,产生新的IP报文(例如p4、p5、p6、p7、……),再按照上述转发规则发送出去。
如果这台路由器所连接的某些主机是该组的成员,则需要执行解码,恢复出原始报文p,然后把报文p发送给这些主机。路由器只有收集到足够多的由p衍生的线性无关的编码报文,才能把p恢复出来。
上述的分割、组装、编解码等操作都在路由器上执行,对源和接收主机都完全透明。
综上所述,本发明中先由几个路由器组成一个自治系统网络AS。这些路由器必须支持本发明所设计的一种支持网络编码的新组播路由协议。这个自治系统网络拓扑的设计也必须支持本发明的新组播路由协议。然后任何一台用户电脑都可以连到任何一台路由器上。连在这个自治系统网络的任意两台用户电脑都可以互相访问。本发明的新组播路由协议完全在路由器执行,而对于任何一台用户电脑都是透明的。任何一台用户电脑都不需要知道在网络层上所执行的新组播路由协议。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (9)
1.一种支持网络编码的组播路由方法,其特征在于,应用于由一组支持网络编码的路由器所构成的自治系统网络,通过运行路由算法来求取从源节点s到每个终端t发现h条边不相交的最短路径,从而建立所有链路开销总和最小的组播连接;
设源节点是与一个组的源主机相连的源路由器;终端是与一个组的接收主机相连的路由器;T是一个非空的接收节点集;i为变量;所述组播路由协议的路由算法中,为每个终端ti∈T,分别维护以下的两个数据结构和一个变量:
一个集合Pi,包含了从源节点s到终端ti的边不相交的路径;
一个二维矩阵Wi[N][N],包含了拓扑图G中的所有边,但是不包含集合Pi的路径上的所有边;所述拓扑图G由自治系统内所有路由器所组成;N是路由器集合V中的节点数;其中的一个元素Wi[j][k],j∈N、k∈N表示从节点vj到节点vk的有向链路上的开销值,如果从节点vj到节点vk的有向链路是集合Pi的路径上的一条边时, Wi[j][k]设置为无穷大;
变量hi,是集合Pi中的边不相交的路径个数;
其中,所述路由算法包含以下过程:
进行主循环,如果有变量i,使hi<h,则继续主循环,否则退出主循环;h是一个预先指定的常数;
在主循环之内进行的第一循环中,对于每个终端ti∈T且h i < h,在二维矩阵Wi[N][N]中查找从源节点s到每个终端ti∈T的最短路径,从查找到的最短路径中选择最短的一条路径 (s, …, tm)加入到集合Pm中,再使变量hm的数值加1;tm是路径 (s, …, tm)的终端节点;
在主循环之内进行的第二循环中,对于每个j <= N和k <= N,为路径 (s, …, tm)上的边(vj, vk)设置Wm[j][k] =∞,从而将路径(s, …, tm)上的所有边的开销值设置为无穷大,从二维矩阵Wm [N][N]中删除该路径(s, …, tm)上的所有边;
在主循环之内进行的第三循环中,对于除了终端节点tm之外的每个终端ti∈T,设置二维矩阵Wm [N][N]中的路径(s, …, tm)上的每条边的开销值为0;
之后,所述主循环输出到达每个终端ti∈T的路径的集合Pi。
2.如权利要求1所述支持网络编码的组播路由方法,其特征在于,
由主循环输出的路径作为组播连接的路径,对该路径上的每台路由器运行编码函数的指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则;
编码函数的指派算法包含进行组播网络的编码向量分配的以下过程:
确定组播网络的最小子树图,依据最小子树图中子树的个数,并确保每个编码子树至少具有k个父子树;确定网络编码的符号域并生成相应的编码向量,从源节点到接收节点,依次分配给不同的源节点和编码点,每一编码点将所获得的编码向量传递给子树中的其他点,并且使每一接收节点n 条输入边的全局编码向量中任意k个线性无关。
3.如权利要求2所述支持网络编码的组播路由方法,其特征在于,
作为源节点的源路由器将编码系数及转发规则,沿着以该源路由器为根的最小生成树,发布至组播连接上所有其他的路由器,使其他的路由器根据各自保存的编码系数及转发规则对组播报文进行相应处理直到组播连接结束;
当组播连接结束时,当源路由器收到与之连接的源主机发送的组播停止请求时,或者当源路由器在最近发送的组播报文之后设定的定时器超时时,所述源路由器沿着最小生成树发布停止请求,使最小生成树上的任意一个路由器将所保存的编码系数及转发规则删除。
4.如权利要求3所述支持网络编码的组播路由方法,其特征在于,
组播连接过程中,源主机向组播连接发送组播报文的过程如下:
源主机把组播报文p发送到与之直接相连的源路由器;源路由器把组播报文p的载荷分割为字节数相等的多个片段,根据网络编码协议将多个片段对应封装形成多个IP报文,并沿着源路由器与接收路由器之间多条不相交的路径,分别发送所述IP报文至接收路由器;
组播连接上的任意一台路由器收到任意一个IP报文时,根据收到的IP报文中的网络编码协议字段及该路由器保存的编码系数及转发规则,对收到的IP报文的载荷进行编码并重新封装形成新的IP报文,并根据转发规则发送新的IP报文;
组播连接上的任意一台路由器所连接的主机属于组播报文p对应的组的成员时,该路由器执行解码,从而根据其接收到的由组播报文p衍生的IP报文来恢复出原始的组播报文p。
5.如权利要求3所述支持网络编码的组播路由方法,其特征在于,
组播连接过程中,所述自治系统网络中与主机连接的路由器,根据其收到的该主机加入或退出一个组时向该路由器发送的报告,来更新该路由器内存中的组成员关系表;
所述路由器还构造表示有组成员更新的更新报文,并沿着以该路由器为根的最小生成树,向自治系统网络中所有其他的路由器发送所述更新报文,使其他的路由器对各自内存中的组成员关系表进行更新;
所述更新报文记载有在组成员关系表中加入或删除一个组,或者在一个组中加入或删除一个主机的更新情况。
6.如权利要求5所述支持网络编码的组播路由方法,其特征在于,
所述源路由器在收到所在组中有组成员更新的更新报文后,更新内存中的组成员关系表,并发布组播停止请求使组播连接上所有其他的路由器删除各自保存的编码系数及转发规则;而且,所述源路由器重新执行路由算法及编码函数的指派算法,来建立一个新的组播连接并形成相应的新的编码系数及转发规则,并发送新的编码系数及转发规则至新的组播连接上的所有其他路由器。
7.如权利要求1所述支持网络编码的组播路由方法,其特征在于,
所述自治系统网络中的任意一台路由器,周期性地通过每个端口分别发送问候报文,并接收与其直接连接的邻居路由器发送的应答报文,来判断所述邻居路由器的可达性。
8.如权利要求1所述支持网络编码的组播路由方法,其特征在于,
所述自治系统网络中的任意一台路由器,其构造表示该路由器所在链路最新状态的链路更新报文,并通过洪泛方式发送该链路更新报文至自治系统网络中所有其他的路由器;所述链路更新报文的存活时间为任意两台路由器之间的最大跳数;
其他的路由器根据收到的链路更新报文,来更新各自存放自治系统网络内部所有链路最新状态的数据库,并进一步通过洪泛方式发送该链路更新报文至各自的邻居路由器。
9.一种基于支持网络编码的组播路由协议实现的组播方法,其特征在于,包含以下过程:
在由一组支持网络编码的路由器所构成的自治系统网络中,通过运行求取从源节点到每个终端发现若干条边不相交的最短路径的路由算法,来建立所有链路开销总和最小的组播连接;
作为源节点的源路由器,对组播连接的路径上的每台路由器运行基于组播网络编码向量分配的编码函数指派算法,来确定各个路由器处理组播报文时应当使用的编码系数及转发规则,并沿着以该源路由器为根的最小生成树发布;
组播连接过程中, 源路由器将源主机向其发送的组播报文分割,并根据网络编码协议封装后,沿着源路由器与接收路由器之间多条不相交的路径分别发送封装后的多个报文;
组播连接的路径上的任意一台路由器根据网络编码协议字段及该路由器保存的编码系数及转发规则,对收到的报文进行直接存储转发、或编码后重新封装并转发、或解码并将恢复出的组播报文发送至接收主机;
源路由器在组播连接结束时,会沿着最小生成树发布组播停止请求,使最小生成树上的任意一个路由器将各自保存的编码系数及转发规则删除;
其中,所述路由算法包含以下过程:
对每个终端ti∈T,获得从源s到该终端ti的最大的边不相交的路径数hi;
当常数h小于等于所有hi的最小值时,为每个终端ti∈T维护相应的子图Wi和变量hi;初始化时设置Wi=W且hi=0;W为拓扑图G的链路开销,拓扑图G由自治系统内所有路由器所组成;
如果有任意一个变量i使hi < h,则在每个子图Wi上搜索一条最短路径,使得子图Wi中删除该条最短路径后所剩余的边不相交的路径数加上hi不小于h;
为每个终端ti查找其各自相对应的最短路径,再从所有终端ti的最短路径中挑选出最短的一个路径q;
对于路径q所对应的终端tm,从终端tm所对应的子图Wm中删除路径q,即把路径q的所有边的开销值都设为∞;
同时,令i≠m,对于除终端tm外的其它终端ti,将所对应的子图Wi中在路径q上的边的开销值设置为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410240778.XA CN103986661B (zh) | 2014-05-30 | 2014-05-30 | 一种支持网络编码的组播路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410240778.XA CN103986661B (zh) | 2014-05-30 | 2014-05-30 | 一种支持网络编码的组播路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103986661A CN103986661A (zh) | 2014-08-13 |
CN103986661B true CN103986661B (zh) | 2017-11-07 |
Family
ID=51278488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410240778.XA Expired - Fee Related CN103986661B (zh) | 2014-05-30 | 2014-05-30 | 一种支持网络编码的组播路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103986661B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236982B (zh) * | 2013-04-28 | 2016-04-06 | 重庆邮电大学 | 一种基于多核的多点到多点光组播路由方法 |
US9699071B2 (en) * | 2014-04-28 | 2017-07-04 | Huawei Technologies Co., Ltd. | Centrally optimized variable length coding for source routed multicast |
CN105450447B (zh) * | 2015-11-17 | 2018-05-18 | 上海斐讯数据通信技术有限公司 | 一种网络系统及网络运行方法 |
CN107770077B (zh) * | 2016-08-23 | 2021-01-29 | 苏州大学 | 一种基于网络编码的信息论安全多播路由选择方法 |
CN109728922B (zh) * | 2017-10-27 | 2022-08-02 | 上海乾廷网络科技有限公司 | 一种在自治网络中配置组播链路的方法和相关设备 |
US11108705B2 (en) * | 2019-04-30 | 2021-08-31 | Code On Network Coding, Llc | Linear network coding with pre-determined coefficient generation through parameter initialization and reuse |
CN112039776A (zh) * | 2020-10-16 | 2020-12-04 | 国网湖北省电力有限公司信息通信公司 | 一种基于最小中断概率的光传输系统业务路由优化方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236982A (zh) * | 2013-04-28 | 2013-08-07 | 重庆邮电大学 | 一种基于多核的多点到多点光组播路由方法 |
-
2014
- 2014-05-30 CN CN201410240778.XA patent/CN103986661B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236982A (zh) * | 2013-04-28 | 2013-08-07 | 重庆邮电大学 | 一种基于多核的多点到多点光组播路由方法 |
Non-Patent Citations (1)
Title |
---|
基于启发式遗传算法的QoS组播路由问题求解;王征应;《计算机学报》;20011231;55-61 * |
Also Published As
Publication number | Publication date |
---|---|
CN103986661A (zh) | 2014-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103986661B (zh) | 一种支持网络编码的组播路由方法 | |
Wu | Extended dominating-set-based routing in ad hoc wireless networks with unidirectional links | |
Chen et al. | ProHet: A probabilistic routing protocol with assured delivery rate in wireless heterogeneous sensor networks | |
Jain et al. | Viro: A scalable, robust and namespace independent virtual id routing for future networks | |
JP2005065267A (ja) | 発信元ノードから宛先ノードまでの経路を探索する方法 | |
Gong et al. | Distributed multicast tree construction in wireless sensor networks | |
CN102132533A (zh) | 网络中的分组转发 | |
JP2015507378A (ja) | パケットのループフリールーティングのためのスマートメーターネットワークにおける破損したリンクを回避する方法 | |
CN108924192B (zh) | 数据中心网络下基于伪树结构的最优任务调度方法及系统 | |
CN112104558A (zh) | 区块链分发网络的实现方法、系统、终端及介质 | |
CN114465943B (zh) | 拓扑信息的发布方法、网络拓扑收集方法及设备 | |
Ahmadi et al. | A hybrid algorithm for preserving energy and delay routing in mobile ad-hoc networks | |
CN102546380B (zh) | 修改的基于树的多播路由方案 | |
CN110234147A (zh) | 灯控系统网络的静态路由部署方法 | |
Idrissi | How to minimize the energy consumption in mobile ad-hoc networks | |
Nancharaiah et al. | Hybrid optimization using ant colony optimization and cuckoo search in MANET routing | |
Maniscalco et al. | Binary and m-ary encoding in applications of tree-based genetic algorithms for QoS routing | |
Tang et al. | Energy‐efficient multicast routing scheme for wireless sensor networks | |
Xu et al. | Multipath routing protocol for DAG-based WSNs with mobile sinks | |
CN104244423B (zh) | 基于无线传感器网络多路径传输的时隙调度算法 | |
CN104202247A (zh) | 基于非线性退火的软件定义网络多约束路由方法 | |
Viana et al. | Twins: a dual addressing space representation for self-organizing networks | |
Sebastian et al. | Multi DODAGs in RPL for Reliable Smart City IoT. | |
CN201947293U (zh) | 使用基于树的多播路由的网络、系统和处理器 | |
Abuzanouneh | Hybrid multi-objectives genetic algorithms and immigrants scheme for dynamic routing problems in mobile networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171107 Termination date: 20190530 |