CN106464671A - 用于源路由组播的集中优化变长编码 - Google Patents
用于源路由组播的集中优化变长编码 Download PDFInfo
- Publication number
- CN106464671A CN106464671A CN201580019555.3A CN201580019555A CN106464671A CN 106464671 A CN106464671 A CN 106464671A CN 201580019555 A CN201580019555 A CN 201580019555A CN 106464671 A CN106464671 A CN 106464671A
- Authority
- CN
- China
- Prior art keywords
- header
- code word
- node
- controller
- packet
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种具有基于源路由转发的组播网络的集中优化的变长编码的系统、控制器和方法。所述网络包括多个节点,各个节点被配置用于通过多个链路相互传输数据分组。一控制器被配置用于控制各个所述节点,并且被配置用于通过为各个流建立报头而控制所述数据分组的转发。所述报头定义了所述数据分组的所述流从源到多个目的地的路径,其中报头的长度为所述路径中节点和分支的函数。所述组播路径用报头代表,所述报头由代表接口、链路和指令的码字组成。所述码字中的一些被指定了不同的长度,从而缩短所述报头的长度。其他码字具有固定大小,并包括位域。
Description
相关申请的交叉引用
本申请要求享有于2014年4月28日提交的、发明名称为“用于源路由组播的集中优化变长编码”的第61985227号美国临时专利申请,以及于2014年12月17日提交的、发明名称为“用于源路由组播的集中优化变长编码”的第14574059号美国正式专利申请的优先权,所述申请的全部内容通过引用结合于此。
技术领域
本发明总体上涉及网络通信,并且更具体地涉及用于组播流量的源路由转发解决方案。
背景技术
用于组播流量的源路由转发解决方案所占空间较大,使得其应用被局限于非常小的组播树。源路由组播报头一般包括基于多协议标签交换(MPLS)的堆栈报头,其中要求每个标签堆栈条目有固定的32位,每个报头代表一个输出接口。在通过网络进行数据分组的源路由转发的过程中,网络中每个接收到该数据分组的中间节点都会查看该分组的报头,以确定该数据分组的下一跳。可通过为每个链路添加一个报头标签条目来表示源路由组播树。由于每个链路都具有两个接口,链路两端各一个,因此,也可通过为该链路的输出接口插入报头标签来表示条目。每个数据分组要经过的链路数越多,增加的开销就越多。
对于大型的组播树,即要经过大量的链路数时,这种每个链路都固定报头标签大小的做法效率不高,并且限制了组播树的大小。
发明内容
本发明针对一种用于基于源路由转发的组播网络的集中优化的变长编码方案。
在一个实施例中,源路由转发网络包括多个节点,所述节点被配置用于通过多条链路相互传输数据分组,各条链路将所述数据分组传输到对应节点。一控制器被配置用于控制所述多个节点中的每一个,并且被配置用于通过为各个流建立报头以及指示所述源节点为所述流将报头置于数据分组之前,从而控制所述数据分组的转发。所述报头定义了所述数据分组从源到多个目的地的路径,其中报头的长度为所述路径及网络中的节点和链路的函数。在一些实施例中,所述报头包括变长码字,所述变长码字代表在所述数据分组报头中所用的码字集。码字具有内置长度,即:其不具有长度字段,因为其长度自所述码字本身推断而得。
在一些实施例中,所述控制器被配置用于监测与流相关联的报头的长度,并且当所述报头的所述长度超过预定的阈值时,为所述流建立一个不同的码字集。
在一些实施例中,所述网络中的各个所述链路被表示为唯一的变长码字,总体上,各个所述码字均包括所述报头。所述路径中的各个所述节点被配置用于处理所述数据分组,并且在将所述数据分组传递到所述链路上的下一个(或几个)节点之前将其代表码字从所述报头中移除。在一些实施例中,所述控制器向其他表征(如报头结束)分配码字。所述控制器被配置用于为所述网络中的各个所述节点提供所述码字集以及各个码字与链路或其他表征的映射。
在一些实施例中,指定单个码字表示多条链路。在此码字中,各条链路被表示为一个位域,即将其设置为0或1来表示在该链路上转发。
在另一个实施例中,控制器被配置用于为所述网络中所述多个节点的每一个建立唯一码字,以及为各个节点的所述多条链路建立唯一码字,总体上,所述各个码字包括所述报头。在一些实施例中,所述控制器分配码字以代表其他指令,如报头结束指令、移除码字指令、排除与码字相关联的链路的指令、以及在除接收链路之外的所有链路上广播的指令。在一些实施例中,所述控制器被配置用于指示所述路径中的各个所述节点处理所述数据分组,并且,在将所述数据分组传递到所述链路上的下一个(或几个)节点之前,将代表本地节点和发送链路的对应码字从所述报头中移除。所述控制器被配置用于为所述网络中的各个节点提供网络中的每个节点和链路的码字,以及各个分配的码字与所述节点本地输出接口的映射。所述控制器被配置用于在建立的所述报头中包含所述路径中所述多条链路的每一条的码字,其中具体节点的每条所述链路被表示为代表所述节点的码字及代表所述输出接口的码字集。在一些实施例中,所述控制器被配置用于在建立的所述报头中包括代表被排除用于接收所述数据分组的链路的码字。在一些实施例中,所述控制器被配置用于在建立的所述报头中包括代表在节点的所有链路上广播的码字,即在除接收链路之外的所有链路上转发数据分组。
在另一个实施例中,控制器在各个节点为所述多条链路中的每一条建立唯一码字,总体上,各个所述码字包括所述报头。在一些实施例中,所述控制器设定所述路径中的各个所述节点处理所述数据分组,并且在向下一个节点传递所述数据分组之前,从所述报头中移除其对应码字。
在一些实施例中,所述控制器为其他表征分配码字,所述表征例如为所述报头的结束、移除码字指令、排除与码字相关联的链路、在除接收链路之外的所有链路上广播、结构化分支进入和结构化分支退出的表征。所述控制器为各个节点提供整套所述码字集以及各个码字与本地输出接口或其他表征的映射。所述控制器在建立的所述报头中包括针对所述路径中所述多条链路的每一条的码字,其中在一个具体节点的每条链路都将有一套嵌入的码字,位于代表分支进入和退出点的码字之间,用于表示该链路的组播树下游。
在另一个实施例中,控制器建立具有不同长度的部分所述码字。一些码字的长度不同,以便缩小报头的尺寸,但由于码字具有内置的长度,因此无需附加长度字段。
附图说明
为更全面地理解本发明及其优点,将结合附图进行参照描述,其中相同的数字表示相同的对象,在附图中:
图1示出了具有控制器以及多个节点的组播网络,其中每个节点具有多条链路;
图2示出了根据一实施例的组播网络,其中显示了数据分组所遍历的路径中的链路;
图3示出了根据一实施例的数据分组的报头,其包括多播树中的数据分组所遍历的所有链路的码字,以及所述数据分组每一跳后所移除的前一个报头;
图4示出了根据另一实施例的组播网络,其中示出了数据分组的路径;
图5A和5B示出了一实施例的数据分组的报头,所述报头具有定长码字,所述码字包括位域,其中包括分组转发;
图6示出了根据另一实施例的组播网络,其中示出了数据分组的路径;
图7示出了一实施例的数据分组的报头,该报头具有变长全局唯一节点、全局唯一但本地分配的链路和包括分组转发的操作码字;
图8示出了根据另一实施例的组播网络,其中示出了数据分组的路径;
图9示出了一实施例的数据分组的报头,该报头具有变长唯一链路码字,所述码字依赖于嵌入的分支码字,其包括分组转发;
图10示出了组播网络中网络单元的一实施例;以及
图11示出了组播网络中典型、通用目的的网络组件。
具体实施方式
参见图1,其中显示了一个组播网络10,该网络中包括多个节点12,每个节点具有多条链路。依照本发明,软件定义网络(SDN)或中央网络控制器16收集所有网络拓扑,包括所有节点和链路,包括运营商提供的或自动发现的可选输入,例如已有的或计划中的组播流量流或附加的计划中的节点或附加的计划中的链路。
控制器16分配若干个码字,并将码字集下载到所有节点12。控制器16为组播流量源计算出组播树18,并将经编码的树发送到源节点。该源节点将该经编码的树添加到报头中。源节点和及全体后续节点处理该报头的方式如下:
如果使用了多个码字集,则识别出所用的码字集(如有,但在本示例中并不存在),并且
按照与识别出的码字集相关联的规则处理该报头。
随着新的接收者被添加到组播树18中,或者创建了新的树18,网络控制器16更新流的报头,监测报头的尺寸,并在必要时对所选码字集进行再优化。
在本发明的一个实施例中,控制器16为网络10中的所有链路分配变长全局唯一码字。码字可以为Huffman或Shannon-Fano编码,或者若需要,也可采用其他无损编码技术。这些码字无需被排序,但也可通过将最先遇到的条目放在首位、并在经处理后的条目删除来对码字进行排序,从而最大限度减少搜索量。所述控制器16确定网络10中的链路数,从而确定所需的链路符号数,然后基于各个符号在报头中出现的相对概率,为各个符号分配一个概率。控制器根据各符号的相对优先级计算出其变长码字,其中为所有链路分配的码字如下表1-1所示:
表1-1
然后,控制器16将码字通知节点12,并且每个节点12都完整接受此表并识别其本地链路。在如下的表2-1中,展示了一个控制器为网络10集中指定变长码字并分发到各节点12的示例:
表2-1
数据分组的报头包括组播树18中的数据分组遍历如图2所示网络10所经过的所有链路的码字。在该数据分组所遍历的树18中的每个节点12处,在将该数据分组转发到报头中所发现的所有本地链路之前,将本地链路从该数据分组中移除(或通过将其码字更改为处理过的码字值加为标记),如图3所示。此过程不断继续,直至列表结束(如节点H之后)或该数据分组无法在该列表中找到本地链路(如在节点G3、G6和G8处),其中:
<报头(header)>::=<链路列表(link_list)><报头结束码(end_header_code)>
<链路列表(link_list)>::=<链路代码(link_code)>|[<链路列表(link_list)>]
参见图3,控制器16将标为20的报头提供给节点A,以用于数据分组在图2所示的树18的具体通信流的数据分组。在各个节点处,凡对应用于转发该分组的本地发送链路所对应的码字都被移除,然后余下的报头通过所述从报头中移除的本地发送链路转发到下一个节点。例如,当在节点A处收到数据分组并插入报头20时,使用该报头确定该数据分组应被从节点A转发到节点E。在通过链路A-E发送该分组之前,如22处所示,先删除对应链路A-E的码字。当在节点E处接收到报头22时,使用该报头确定该数据分组应被通过链路E-F从节点E转发到节点F,则如24处所示,删除对应链路E-F的码字。当在节点F处接收到报头24时,使用该报头确定该数据分组应被通过链路F-G从节点F转发到节点G。则如26处所示,删除对应链路F-G的码字。当在节点G处接收到报头26时,使用该报头确定该数据分组应被通过链路G-G3、G-G6、G-G8和G-H从节点F转发到节点G3、G6、G8和H。则如28处所示,删除对应链路G-G3、G-G6、G-G8和G-H的码字。当在节点H处接收到报头28时,使用该报头确定该数据分组应被通过链路H-H6和H-H7从节点H转发到节点H6和H7。于是删除对应链路H-H6和H-H7的码字。由于报头中已没有余下的条目,故删除该报头,然后通过链路H-H6和H-H7转发该数据分组。在本示例中,当带有报头28的数据分组到达各接收方G3、G6和G8时,组播树中为该数据分组余下的接口仅有H-H6和H-H7,而这些接口都不是本地接口,故而该报头被移除。此过程示出了数据分组从节点转发到节点,直至到达每一个接收方的过程。
依照本发明的另一个实施例,可使用定长码字,并将其配置为位域。固定大小的位域可用于表示通信是否应当在某链路上转发,其中,在链路上的转发可以表示为码字中一个固定位置处的比特位。由于码字大小是固定的,所以无需具有报头结束码字。如图4所示,示例网络10具有74个链路,因此所有链路的表征最少有74个位,如表3-1中所示:
表3-1
控制器16将各分组的报头大小通知各个节点,该大小可能大于链路数,例如可能是80位。控制器16也将其各节点的本地链路所关联的各个位域位置通知各个节点。例如,节点A所得到的通知就是与节点A所关联的所有链路,如下表3-4所示,而节点B所得到的通知就是与节点B所关联的所有链路,如下表3-5所示,依次类推。
符号 | 位域位置 |
链路_A-A1 | 1 |
链路_A-A2 | 2 |
链路_A-A3 | 3 |
链路_A-A4 | 4 |
链路_A-A5 | 5 |
链路_A-A6 | 6 |
链路_A-A7 | 7 |
链路_A-A8 | 8 |
链路_A-B | 9 |
链路_A-E | 10 |
表3-4
符号 | 位域位置 |
链路_A-B | 9 |
链路_B-B1 | 11 |
链路_B-B2 | 12 |
链路_B-B3 | 13 |
链路_B-B4 | 14 |
链路_B-B5 | 15 |
链路_B-B6 | 16 |
链路_B-B7 | 17 |
链路_B-B8 | 18 |
链路_B-C | 19 |
链路_B-F | 20 |
表3-5
在转发数据分组的过程中,各节点12处理该报头,识别其链路的比特值。对图4的网络10中所识别出的所有本地链路,发送该分组。在复制该分组之前,所有本地链路都设置为0,然后复制该分组,并在对所有设置为1的本地链路重置之前在其上发送该发组。如此可避免循环发送。待所有位都变为0(如在节点H处)或者无法找到本地链路(如在节点G3、G6和G8处),则本转发过程完毕。
参见图5A-5B,控制器16向节点A提供30处所示的报头,其中带有有序的码字集,用于进行图4所示的具体通信流。凡用于转发该数据分组的发送链路,其位域均设置为“1”。在通过发送链路将该数据分组发送到下一节点之前,先将与该发送链路所关联的位域设置为“0”。例如,在将该数据分组从节点A发送到节点E之前,先将链路A-E的位域设置为“0”,如32处所示。在将该数据分组从节点E发送到节点F之前,则将链路E-F的位域设置为“0”,如34处所示。在从节点F转发到节点G之前,则将链路F-G所关联的位域设置为“0”,如36处所示。在通过链路G-G3、G-G6、G-G8和G-H转发之前,将相关联的各位域设置为“0”,如38处所示。在转发到节点H6和H7之前,所有位域条目均为“0”,故移除本报头,如40处所示。
依照此公开的另一个实施例,可运用变长全局唯一节点/链路/操作码字以代表组播树。此方法基于控制器向全局范围节点、节点范围内接口和全局/节点范围内操作指定全局唯一码字。所述码字可为Huffman或Shannon-Fano编码或其他无损编码技术,但指定给各节点/链路/操作的码字均来自同一个码字集。报头中包含在某个节点处发送数据分组所要通过的所有输出接口的代码表征。各节点解析该有序码字集,以寻找其节点条目,然后解析该码字条目,直至到达下一个节点的条目,将各个条目映射到接口/链路和其他表征,从而确定通过哪个(哪些)接口发送该数据分组。节点ID和指令全部被编码,由节点将码字翻译为对本地有意义的接口,并向其发送通信。操作包括排除列表(排除接收该数据分组的接口)、广播/全体发送(排除接收该数据分组的接口)以及在适当时移除此级组播报头。
图6展示了一个示例,其中所示网络10经过了简化,示出了经过节点A(通过输出接口A->E)、节点E(通过输出接口E->F)、节点F(通过输出接口F->G)、节点G(通过除接收接口和除输出接口G->G2和G->G5之外的所有接口)、节点H(通过输出接口H->H6和H->H7)的路由。条目的移除是可选的,其允许缩小报头,但也丢失了关于该数据分组源头的信息。对应报头如下:
<报头(header)>::=<节点指令(node_instructions)><报头结束码(end_header_code)>
<节点指令(node_instructions)>::=<节点代码(node_code)>[<移除代码(remove_code)>][<排除代码(exclusion_code)>|<广播代码(bcast_code)>]<接口代码列表(list_of_interface_codes)>[<节点指令(node_instructions)>]
<接口代码列表(list_of_interface_codes)>::=<接口代码(interface_code)>[<接口代码列表(list_of_interface_codes)>]
控制器16执行多个步骤。首先,确定所需符号数。找出节点数,以确定所需节点符号数。找出各个节点的接口数,以确定所需接口符号数。确定用于报送码的排除、广播、移除和结束所需的操作码数。然后为各个符号指定一个概率。再然后,控制器16计算出所有符号的变长码字,如下表4-1所示:
表4-1
控制器16将下表4-2所示的整个码字集通知到各个节点:
表4-2
此外,所述控制器还向各个节点发送接口符号与各个本地接口的本地映射。注意,此信息可以与针对各节点的如表4-2所示内容相合并。例如,假定发送给节点A的接口符号如下表4-3所示、给节点F的接口符号如表4-4所示、发送给节点G的接口符号如表4-5所示、发送给节点E的接口符号如表4-6所示、并且发送给节点H的接口符号如表4-7所示:
符号 | 本地接口 |
接口_1 | 不适用 |
接口_10 | A-B |
接口_11 | A-A1 |
接口_2 | 不适用 |
接口_3 | 不适用 |
接口_4 | 不适用 |
接口_5 | A-A5 |
接口_6 | A-A4 |
接口_7 | A-A3 |
接口_8 | A-A2 |
接口_9 | A-E |
表4-3
符号 | 本地接口 |
接口_1 | 不适用 |
接口_10 | F-B |
接口_11 | F-E |
接口_2 | 不适用 |
接口_3 | 不适用 |
接口_4 | 不适用 |
接口_5 | 不适用 |
接口_6 | 不适用 |
接口_7 | 不适用 |
接口_8 | 不适用 |
接口_9 | F-G |
表4-4
表4-5
符号 | 本地接口 |
接口_1 | 不适用 |
接口_10 | E-A |
接口_11 | E-E1 |
接口_2 | 不适用 |
接口_3 | 不适用 |
接口_4 | 不适用 |
接口_5 | E-E5 |
接口_6 | E-E4 |
接口_7 | E-E3 |
接口_8 | E-E2 |
接口_9 | E-F |
表4-6
符号 | 本地接口 |
接口_1 | 不适用 |
接口_10 | H-H2 |
接口_11 | H-D |
接口_2 | H-H1 |
接口_3 | H-H3 |
接口_4 | H-H6 |
接口_5 | H-H7 |
接口_6 | H-H5 |
接口_7 | H-H4 |
接口_8 | H-H8 |
接口_9 | H-G |
表4-7
参见图7,控制器16为图6所示分组数据路由而创建的初始报头如50处所示。在本示例中,该报头通过码字所代表的接口,原样转发到下一个节点,即不移除代表本地发送链路的码字。用于从节点E转发到节点F的报头如52处所示,用于从节点F转发到节点G的报头如54处所示,用于从节点G转发到节点G3、G6和G8以及节点H的报头如56处所示,用于从节点H转发到节点H6和H7的报头如58处所示。在节点G3、G6和G8处,由于报头中并未发现分别对应节点G3、G6和G8的码字,故报头被移除。
依照本发明的另一个实施例,使用了变长全局唯一链路码,但所述链路码的范围限制为节点,故而已指定给某个链路的同一个码字仍可在全体节点中重复使用,如此所需的链路码字较少,但代价是需要用码字表示出组播树分支结构。此方法基于控制器16为链路/接口指定全局唯一码字以及操作码字。所述码字可为Huffman或算术编码或其他无损编码技术,但所述链路/接口和操作的操作共享同一套码字母。报头中包含网络10中要遍历的所有链路的代码表征。各节点解析所述码字,以找出转发该数据分组所用的所有接口。对于各个接口,先剥离其对应的嵌入报头(在分支进/出码字之间),然后用之以构造用于该接口的报头。该报头结构如下:
<报头(header)>::=<分支指令(branch_instructions)><报头结束码
(end_header_code)>
<分支指令(branch_instructions)>::=<if码(if_code)>[<分支进入码
(branch_entry_code)><分支指令(branch_instructions)><分支退出码
(branch_exit_code)>][<分支指令(branch_instructions)>]
图8所示数据分组在网络10中遍历的路由即示出了此实施例的一个示例。控制器16执行若干个步骤。控制器16找出各个节点的接口数,以确定所需接口符号数。其确定需要符号的其他代码的个数,例如用于指示分支结构进出点。其根据各个符号在报头中出现的相对优先级,为各个符号指定一个概率,并计算出所有符号的变长码字,如下表5-1所示:
表5-1
控制器16将下表5-2所示的码字通知到网络10的各节点:
表5-2
此外,控制器16还将接口符号与本地接口的本地映射发送到各个节点。例如,节点C的本地映射如表5-3所示、节点F的如表5-4所示、节点G的如表5-5所示、节点E的如表5-6所示、并且节点B的如表5-7所示。
符号 | 本地接口 |
接口_1 | 不适用 |
接口_10 | C-B |
接口_11 | C-D |
接口_2 | 不适用 |
接口_3 | 不适用 |
接口_4 | C-C1 |
接口_5 | C-C5 |
接口_6 | C-C4 |
接口_7 | C-C3 |
接口_8 | C-C2 |
接口_9 | C-G |
表5-3
表5-4
符号 | 本地接口 |
接口_1 | G-G2 |
接口_10 | G-F |
接口_11 | G-C |
接口_2 | G-G1 |
接口_3 | G-G3 |
接口_4 | G-G6 |
接口_5 | G-G7 |
接口_6 | G-G5 |
接口_7 | G-G4 |
接口_8 | G-G8 |
接口_9 | G-H |
表5-5
符号 | 本地接口 |
接口_1 | 不适用 |
接口_10 | E-A |
接口_11 | E-E1 |
接口_2 | 不适用 |
接口_3 | 不适用 |
接口_4 | 不适用 |
接口_5 | E-E5 |
接口_6 | E-E4 |
接口_7 | E-E3 |
接口_8 | E-E2 |
接口_9 | E-F |
表5-6
表5-7
此为控制器16所确定的示例结构化分支:
E:在E-F上发送:F-G,分支进入(branch_enter),G-G1、G-G3、G-G8,分支退出(branch_exit),F-B,分支进入,B-C分支退出,C-C1,分支退出,分支退出,分支退出,结束
F:在F-G上发送:分支进入,G-G1、G-G3、G-G8,分支退出,结束
G:在{G-G1,G-G3,G-G8}上发送:无报头
B:在B-C上发送:分支进入,C-C1,分支退出,结束
C:在C-C1上发送:无报头
控制器16将此报头提供给源节点E,供其在进行图8所示具体组播树通信流时使用。图9中60处所示报头用于让节点E判断将该数据分组通过接口E-F转发到节点F。节点E移除三个码字:代表链路E-F的码字、代表结构化分支进入点和结构化退出点的码字,然后用报头62将该数据分组通过发送链路E-F发送到节点F。报头62用于让节点F判断将该数据分组通过输出接口F-G和F-B转发。节点F构造两个报头,从分支结构中提取出通过输出接口F-G和F-B发送的相关信息。节点F构造报头64,并在输出接口F-G上转发。节点F构造报头66,并在输出接口F-B上转发。报头64用于让节点G确定应将数据分组在输出接口G-G1、G-G3和G-G8上转发。节点G从报头中移除代表G-G1、G-G3和G-G8的码字,判断出报头中已没有其他条目,故移除该报头,然后将该数据分组在接口G-G1、G-G3和G-G8上转发。报头66用于让节点B判断应将该数据分组通过输出接口B-C转发。节点B从报头中移除代表链路B-C的码字,结果得到报头68,然后将该数据分组在发送链路B-C上转发。报头68用于节点C。节点C判断应将该数据分组通过输出接口C-C1转发。节点c从报头中移除链路C-C1的码字,判断出报头中已没有其他条目,故移除该报头,然后将该数据分组通过接口C-C1转发。
依照本发明的另一个实施例,为允许在同一个网络(如网络10)中提供多套码字集,则有:
<多重代码报头(multi_coding_header)>::=<编码类型码(encoding_type_code)><报头(header)>
其中,所述报头包括前述报头之一,或者别种类型的报头。
当控制器16确定单用一套码字集无法满足所有组播树的需要时,即可使用此方案,为不同的树选用不同的码字集表征。
此方案也可用于将树从一种表征迁移到另一种。
例如,假若在网络10中使用了4套码字集,其中各套所具有的相对概率如下:
编码1:1
编码2:1
编码3:3
编码4:10
为各套码字集的编码类型码所指定的变长码字示例为:
编码1:000
编码2:001
编码3:01
编码4:1
码字集的数量可多可少,均在本发明范围之内。
对于前文的各个实施例,控制器16计算出所有4套码字集的码字集并下载到各个节点。对于每一套码字集,控制器16提供变长码字,其将被用于在报头中,代表所用的该套码字集。
然后,控制器16指示节点为各个指定的流插入一个具体的报头,其中的报头包括变长码字,其用于表明所用的码字集具体为何。在前述的分组转发法中,每个节点将检查第一个码字,从而确定其所对应的码字集。报头中余下的码字将用对应的编码表来加以解码,从而确定如何转发该数据分组。
此套码字可针对具体的流进行修改。控制器16指示节点为各个指定的流插入一个具体的报头,此报头不同于之前规定的报头,因此,节点会针对该具体的流而修改其转发表条目。例如,假若之前的报头为A,则新的报头为A’,其中报头A使用一套码字方案,而报头A’使用另一套不同的码字方案。
组播网络
优选地,如一个网络链路占一比特(位域),则组播树较大的小型组播网络可用一个固定的紧凑格式表示(例如,256个链路的网络可以使用等价的8 MPLS标签表示)。
使用全局唯一链路码字之后,即便较大的组播网络,也可以用比目前的MPLS报头更为紧凑的格式来表示。例如,在有65536个链路的网络中,平均每个链路需要16位。如此可以更有效率地表示大型网络中的小型树。
使用排除列表和广播码字之后,可以更有效率地表示需要在全体接口中的大多数接口上复制分组的大型树。
组播树分支结构
本发明通过提供变长码字来表示分支结构,即:复制点和链路),从而提供了一种缩小组播树表征大小的方法。
多重表征
多重表征允许为各种组播树和网络配置进行优化,即便在单个网络之内亦然,并通过包含码字来代表报头中所出现的其他码字所使用的码字集,从而允许改变所选表征方法。
图10示出了一个网络单元1000的一个实施例,该网络单元可为任意通过网络10传输和处理数据的装置。例如,该网络单元1000可对应前述任一系统节点或位于其中,例如前述装置或服务器,比如前述控制器、节点和分支。所述网络单元1000可对应前述任一系统节点或位于其中。所述网络单元1000也可以被配置用于实现或支持前述方案和方法。所述网络单元1000可包括一个或多个接入接口或单元1010,该接入接口或单元耦联到接收器(Rx)1012,用以自其他网络组件处接收信号和帧/数据。所述网络单元1000可包括内容感知单元1020,用以确定向哪些网络组件发送内容。所述内容感知单元1020可以运用硬件、软件或两者实现。所述网络单元1000也可包括一个或多个接出接口或单元1030,该接出接口或单元耦联到发射器(Rx)1032,用以向其他网络组件发射信号和帧/数据。所述接收器1012、内容感知单元1020和发射器1032也可被配置用于实现前文所披露方案和方法中的至少若干种,其可以是基于硬件、软件或两者以实现。所述网络单元1000的组件可以按图10所示布置。
所述内容感知单元1020也可包括可编程内容转发面模块1028和一个或多个存储模块1022,后者可耦联到所述可编程的内容转发面模块1028。所述可编程内容转发面模块1028可被配置用于实现内容转发和处理功能,如在应用层或L3层实现,其中的内容转发可基于内容名或前缀,也可能为其他与内容相关联的、能将内容映射到网络通信中的信息。此类映射信息可在所述内容感知单元1020或网络单元1000的一个或多个内容表(如CS、PIT和FIB)中维护。所述可编程内容转发面模块1028可译码用户的内容请求,然后据之从网络或其他内容路由器提取内容,例如基于元数据和/或内容名(前缀)提取,并可将所述内容例如临时存储在存储模块1022中。然后,所述可编程内容转发面模块1028可将缓存的所述内容转发到用户。所述可编程内容转发面模块1028可以运用硬件、软件或两者实现,并可在IP层或L2层以上运行。
所述存储模块1022可包括缓存1024,用于临时存储内容,如订阅者所请求的内容。附加地,所述存储模块1022可包括长期存储1026,用于相对长期地存储内容,例如发布者所提交的内容。例如,所述缓存1024和长期存储1026可以包括动态随机存储器(DRAM)、固态驱动器(SSD)、硬盘驱动器中的一个或几个的组合。
上述网络组件可以在任意通用网络组件上实现,如计算机或带有足够处理能力、存储资源和网络吞吐能力的、可胜任其所需承担的工作负荷的网络组件。图11示出了一种适用于实现本文所披露的所述组件的一个或多个实施例的典型、通用的网络组件1100。所述网络组件1100包括处理器1102(可称为中央处理单元或CPU),其与存储装置相通(该存储装置包括二级存储器1104、只读存储器(ROM)1106、随机存取存储器(RAM)1108)、输入/输出(I/O)装置1110和网络连接性装置1112。所述处理器1102可以实现为一个或多个CPU芯片,或可为一个或多个专用集成电路(ASIC)的一部分。
所述二级存储器1104典型地包括一个或多个磁盘驱动或磁带驱动,并且用于数据的非易失性存储,以及当RAM 1108的大小不足以容纳所有工作数据时,可以用作溢流数据的存储装置。所述二级存储器1104可用于存储程序,当选择所述程序进行执行时,所述程序将被载入到RAM 1108中。所述ROM 1106用于存储指令,并有可能包括程序执行过程中所读取的数据。所述ROM 1106为非易失性存储装置,典型的,其存储容量相对小于二级存储器1104的大存储容量。所述RAM 1108用于存储易失性数据,并有可能存储指令。对ROM 1106和RAM 1108的存取典型地快于对二级存储器1104的存取。
列出本专利文件中通篇所用的某些词语或短语的定义可能较为有益。“包含”和“包括”两词及它们的衍生词意指含有但不限于。“或”一词为包含性的,意指“和/或”。短语“所关联”和“其所关联”及它们的衍生词意指包含、被包含其中、相互连接、容纳、被容纳其中、连接到或与之连接、耦联到或与之耦联、可以与之通信、交错、并列、接近、被绑定到或与之相绑定、具有、具有某种属性等。
虽然本发明描述了某些实施例和总体上相关联的方法,但这些实施例和方法的改换或置换对本领域普通技术人员而言,将是显而易见的。因此,以上对示例性实施例的描述并不限定或限制本发明。在不偏离如下权利要求所限定的本发明的精神和范围的前提之下,同样可以做出其他更改、替代和改换。
Claims (29)
1.一种源路由转发网络中的方法,所述源路由转发网络包括被配置用于通过多条链路相互传输数据分组的多个节点,所述方法包括:
转发节点通过为各个流建立报头将数据分组转发到另一所述节点,所述报头定义了与所述流相关联的所述数据分组的路径,其中所述流从源到多个目的地,其中所述报头包括有序码字集,并且其中控制器向所述转发节点指示码字与本地译码之间的映射关系。
2.如权利要求1所述的方法,其中,所述码字长度可变。
3.如权利要求1所述的方法,其中,所述码字代表的含义为以下之一:所述码字所适用的节点、在接口上转发、报头结束、分支进入或退出点、排除列表的开始或结束、以及广播。
4.如权利要求1所述的方法,其中,存在多个码字集,并且所述转发节点基于所述报头中存在的所述码字选用其中一个码字集。
5.如权利要求1所述的方法,其中,所述转发节点处理所述报头,将码字解码,识别出所述码字所代表的、位于所述转发节点本地的输出接口,并且将源路由转发报头以及所述数据分组发送到所述输出接口。
6.如权利要求5所述的方法,其中,代表所述输出接口的所述码字集被从所述报头中移除,以创建所述源路由转发报头。
7.如权利要求5所述的方法,其中,所述转发报头是基于来自所述报头的码字的子集所述构造的。
8.如权利要求5所述的方法,其中,一个所述码字被修改,以表示其已经过将所述码字替换为另一码字的处理。
9.在源路由转发网络中,所述源路由转发网络包括被配置用于通过多条链路相互传输数据分组的多个节点:
控制器被配置用于控制所述多个节点中的每一个,所述控制器被配置用于通过为各个流建立报头控制所述数据分组的转发,所述报头定义了与所述流相关联的数据分组的路径,其中所述流从源到多个目的地,其中所述报头包括有序码字集。
10.如权利要求9所述的控制器,其中,所述控制器被配置用于为所述多条链路的每一条建立码字。
11.如权利要求9所述的控制器,其中,所述控制器被配置用于建立具有不同长度的部分所述码字。
12.如权利要求10所述的控制器,其中,所述控制器被配置用于设定所述网络中的各个所述节点以使其处理报头,将码字解码,识别出所述码字所呈现的、位于所述转发节点本地的输出接口,以及在将所述数据分组发送到所述输出接口之前,针对各个所述输出接口构造转发报头。
13.如权利要求9所述的控制器,其中,所述控制器被配置用于建立所述报头以使其包括一个所述码字,用于表示所述数据分组的所述报头中所用的所述码字集。
14.如权利要求13所述的控制器,其中,所述控制器被配置用于监视所述报头的长度,并且当所述报头的所述长度超过预定的阈值时,建立一套不同的码字集。
15.如权利要求9所述的控制器,其中,所述控制器被配置用于为所述网络中的各个所述节点提供所述码字集。
16.如权利要求15所述的控制器,其中,所述控制器被配置用于提供一个所述码字与下列之一的映射:本地节点标识、在输出接口/链路上进行转发的指令、排除列表的开始或结束的表征、所述报头的分支结束的表征的开始或结束或本地忽略。
17.如权利要求9所述的控制器,其中,所述控制器被配置用于建立单个定长码字,并且所述网络中各条链路被表示为位域。
18.如权利要求9所述的控制器,其中,所述控制器被配置用于建立所述码字集,以表示所述路径中的所述多条链路。
19.如权利要求9所述的控制器,其中,所述控制器被配置用于为所述多个节点分配唯一的所述码字。
20.如权利要求9所述的控制器,其中,所述控制器被配置用于为下列之一分配所述码字:报头结束的表征、分支进入点、分支退出点、排除跳转的列表的开始或结束、以及广播指令。
21.一种源路由转发网络中的方法,所述源路由转发网络包括被配置用于通过多条链路相互传输数据分组的多个节点,所述方法包括:
控制器控制所述多个节点中的每一个,所述控制器通过为各个流建立报头而建立所述数据分组的转发,所述报头定义了与所述流相关联的数据分组的路径,其中所述流从源到多个目的地,其中所述报头包括有序码字集。
22.如权利要求21所述的方法,所述控制器为所述多条链路的每一条建立唯一码字。
23.如权利要求22所述的方法,所述控制器建立具有不同长度的部分所述码字。
24.如权利要求22所述的方法,所述控制器设定所述网络中的各个所述节点以使其处理报头,将码字解码,识别出所述码字所呈现的、位于所述转发节点本地的输出接口,以及在将所述数据分组发送到所述输出接口之前,针对各个所述输出接口构造转发报头。
25.如权利要求21所述的方法,所述控制器建立所述报头以使其包括一个所述码字,用于表示所述数据分组报头中所用的所述码字集。
26.如权利要求25所述的方法,所述控制器监视所述报头的长度,并且当所述报头的所述长度超过预定的阈值时,建立一套不同的码字集。
27.如权利要求22所述的方法,所述控制器为所述网络中的各个所述节点提供所述码字集。
28.如权利要求21所述的方法,所述控制器为所述多个节点分配全局码字,并向所述多条链路分配全局码字,并且本地映射至所述多条链路。
29.如权利要求21所述的方法,所述控制器分配码字至指令、报头结束、分支进入、分支退出、排除和广播。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461985227P | 2014-04-28 | 2014-04-28 | |
US61/985,227 | 2014-04-28 | ||
US14/574,059 | 2014-12-17 | ||
US14/574,059 US9699071B2 (en) | 2014-04-28 | 2014-12-17 | Centrally optimized variable length coding for source routed multicast |
PCT/CN2015/077701 WO2015165383A1 (en) | 2014-04-28 | 2015-04-28 | Centrally optimized variable length coding for source routed multicast |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106464671A true CN106464671A (zh) | 2017-02-22 |
CN106464671B CN106464671B (zh) | 2020-02-14 |
Family
ID=54335829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580019555.3A Active CN106464671B (zh) | 2014-04-28 | 2015-04-28 | 用于源路由组播的集中优化变长编码 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9699071B2 (zh) |
EP (1) | EP3138262B1 (zh) |
CN (1) | CN106464671B (zh) |
BR (1) | BR112016025247B1 (zh) |
CA (1) | CA2947183C (zh) |
WO (1) | WO2015165383A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736058B2 (en) | 2015-05-20 | 2017-08-15 | Huawei Technologies Co., Ltd. | Multi-region source routed multicast using sub-tree identifiers |
EP3709715A1 (en) * | 2019-03-12 | 2020-09-16 | Rohde & Schwarz GmbH & Co. KG | Method of communicating between at least two nodes of a radio communication network, radio communication network and radio signal |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101325556A (zh) * | 2008-06-23 | 2008-12-17 | 南京大学 | 一种无线网络中基于网络编码的多路径路由方法 |
CN103493445A (zh) * | 2012-02-22 | 2014-01-01 | 北京大学深圳研究生院 | 一种ip组播数据的分层分发方法、系统 |
CN103873378A (zh) * | 2012-12-18 | 2014-06-18 | 瞻博网络公司 | 具有集中控制的聚合网络 |
CN103986661A (zh) * | 2014-05-30 | 2014-08-13 | 上海珉智信息科技有限公司 | 一种支持网络编码的组播路由协议 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6717942B1 (en) | 1998-06-25 | 2004-04-06 | Avici Systems, Inc. | Space-efficient source routing |
US6778536B1 (en) * | 1999-11-09 | 2004-08-17 | Synchrodyne Networks, Inc. | Combined wavelength division multiplexing, time division multiplexing, and asynchronous packet switching with common time reference |
US7016351B1 (en) | 2000-02-29 | 2006-03-21 | Cisco Technology, Inc. | Small group multicast in a computer network |
US7801136B2 (en) | 2006-02-15 | 2010-09-21 | Ericsson Ab | Source routed multicast LSP |
CN101355490B (zh) * | 2007-07-25 | 2012-05-23 | 华为技术有限公司 | 消息路由方法、系统和节点设备 |
EP2319215B1 (en) | 2008-08-26 | 2011-12-21 | Telefonaktiebolaget L M Ericsson (publ) | Packet forwarding in a network |
WO2010022767A1 (en) | 2008-08-26 | 2010-03-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Packet forwarding in a network |
CN101557349B (zh) | 2009-05-26 | 2012-12-12 | 孙斌 | 处理互联网数据报的方法和系统 |
US9049233B2 (en) | 2012-10-05 | 2015-06-02 | Cisco Technology, Inc. | MPLS segment-routing |
-
2014
- 2014-12-17 US US14/574,059 patent/US9699071B2/en active Active
-
2015
- 2015-04-28 WO PCT/CN2015/077701 patent/WO2015165383A1/en active Application Filing
- 2015-04-28 CA CA2947183A patent/CA2947183C/en active Active
- 2015-04-28 CN CN201580019555.3A patent/CN106464671B/zh active Active
- 2015-04-28 EP EP15785221.1A patent/EP3138262B1/en active Active
- 2015-04-28 BR BR112016025247-0A patent/BR112016025247B1/pt active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101325556A (zh) * | 2008-06-23 | 2008-12-17 | 南京大学 | 一种无线网络中基于网络编码的多路径路由方法 |
CN103493445A (zh) * | 2012-02-22 | 2014-01-01 | 北京大学深圳研究生院 | 一种ip组播数据的分层分发方法、系统 |
CN103873378A (zh) * | 2012-12-18 | 2014-06-18 | 瞻博网络公司 | 具有集中控制的聚合网络 |
CN103986661A (zh) * | 2014-05-30 | 2014-08-13 | 上海珉智信息科技有限公司 | 一种支持网络编码的组播路由协议 |
Non-Patent Citations (1)
Title |
---|
ASHWOOD-SMITH: "SDN State Reduction; draft-ashwood-sdnrg-state-reduction-OO.txt", 《INTERNET ENGINEERING TASK FORCE, IETF,STANDARDWORKINGDRAFT》 * |
Also Published As
Publication number | Publication date |
---|---|
EP3138262A1 (en) | 2017-03-08 |
US9699071B2 (en) | 2017-07-04 |
CA2947183A1 (en) | 2015-11-05 |
WO2015165383A1 (en) | 2015-11-05 |
EP3138262B1 (en) | 2020-09-09 |
BR112016025247A2 (pt) | 2018-05-15 |
CN106464671B (zh) | 2020-02-14 |
EP3138262A4 (en) | 2017-05-10 |
US20150312136A1 (en) | 2015-10-29 |
CA2947183C (en) | 2020-10-27 |
BR112016025247B1 (pt) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107534613B (zh) | 使用子树标识符的多区域源路由组播方法 | |
US9825860B2 (en) | Flow-driven forwarding architecture for information centric networks | |
US10153967B2 (en) | Deterministic and optimized bit index explicit replication (BIER) forwarding | |
US9019971B2 (en) | Systems, methods and algorithms for named data network routing with path labeling | |
US10033641B2 (en) | Deterministic and optimized bit index explicit replication (BIER) forwarding | |
CN103370908B (zh) | 用于找到跨多个域的点到多点标签交换路径的系统以及方法 | |
US20110055845A1 (en) | Technique for balancing loads in server clusters | |
CN101562556B (zh) | 一种降低网络编码代价的方法、装置及系统 | |
CN101802797A (zh) | 生成和传达源标识信息以实现可靠的通信 | |
US20150085859A1 (en) | Two-Stage Port-Channel Resolution in a Multistage Fabric Switch | |
CN1859286A (zh) | 一种负载分担的方法 | |
US20040267958A1 (en) | Scalable distributed parallel access memory systems with internet routing applications | |
CN101478499B (zh) | 一种多协议标签交换网络中的流量分配方法及装置 | |
CN104519125A (zh) | 对于拓扑变化有弹性的分布式按次序负载分布 | |
CN108075861A (zh) | 软件定义FiWi网络中基于多路径的网络编码传输方法 | |
CN104580441A (zh) | 局域网内的数据分发方法、服务器及终端设备 | |
CN103609063B (zh) | 协议无关组播最后一跳路由器发现的方法及设备 | |
CN106464671A (zh) | 用于源路由组播的集中优化变长编码 | |
CN1214572C (zh) | 基于开放式最短路径优先路由协议的路由计算方法 | |
JP2016171503A (ja) | 管理装置および接続処理方法 | |
CN103999404B (zh) | 针对服务质量支持的第三版互联网组管理协议 | |
CN103368798B (zh) | 数据传输网络中基于内容的寻址的方法和网络部件 | |
CN1052360C (zh) | 分组传输网络、发送含有控制功能信息的消息的方法和处理该消息的方法 | |
CN100586121C (zh) | 压缩数据包的方法及装置 | |
CN101207558A (zh) | 建立组播树的方法及装置 |
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 |