CN101039262A - 一种半覆盖自组织的动态组播路由方法 - Google Patents
一种半覆盖自组织的动态组播路由方法 Download PDFInfo
- Publication number
- CN101039262A CN101039262A CNA2007100026016A CN200710002601A CN101039262A CN 101039262 A CN101039262 A CN 101039262A CN A2007100026016 A CNA2007100026016 A CN A2007100026016A CN 200710002601 A CN200710002601 A CN 200710002601A CN 101039262 A CN101039262 A CN 101039262A
- Authority
- CN
- China
- Prior art keywords
- multicast
- node
- network
- link
- nmr
- 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
- 238000000034 method Methods 0.000 title claims abstract description 101
- 230000008569 process Effects 0.000 claims abstract description 38
- 238000006243 chemical reaction Methods 0.000 claims abstract description 16
- 238000004891 communication Methods 0.000 claims description 31
- 230000007246 mechanism Effects 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 7
- 238000009826 distribution Methods 0.000 claims description 6
- 230000015572 biosynthetic process Effects 0.000 claims description 2
- 238000009342 intercropping Methods 0.000 claims 1
- 238000005538 encapsulation Methods 0.000 abstract description 6
- 230000008520 organization Effects 0.000 abstract description 3
- 230000010076 replication Effects 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 12
- 101150117004 atg18 gene Proteins 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 9
- 101000891579 Homo sapiens Microtubule-associated protein tau Proteins 0.000 description 8
- 102100040243 Microtubule-associated protein tau Human genes 0.000 description 8
- 102100029801 Calcium-transporting ATPase type 2C member 1 Human genes 0.000 description 7
- 101000728145 Homo sapiens Calcium-transporting ATPase type 2C member 1 Proteins 0.000 description 7
- 101001064774 Homo sapiens Peroxidasin-like protein Proteins 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 101100057245 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ENA1 gene Proteins 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000009448 modified atmosphere packaging Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 101100536512 Arabidopsis thaliana PMR5 gene Proteins 0.000 description 4
- 108700038780 PMR5 Proteins 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 235000019837 monoammonium phosphate Nutrition 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000000205 computational method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 101100058971 Arabidopsis thaliana CALS12 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种以半覆盖和自组织方式实现互联网组播的路由方法,其中包括网络拓扑结构组织方法和数据包转发控制方法。网络拓扑结构组织方法根据相同群组成员间的位置关系和链路特性,将网络动态重构为硬件组播域、网络层组播域和覆盖组播域,组播域的划分及它们之间的联系在单一的路由协议中实现。数据报转发控制方法根据已经建立的半覆盖网络拓扑,对组播数据包进行复制、封装或转换等处理,而后在链路级递送、网络层选路转发和覆盖转发这三种方式中选择可行且效率最高的方式,完成组播数据的多点投递。
Description
所属领域:
本发明涉及计算机网络体系结构,互联网组播路由的方法与系统。
背景技术:
组播是将报文一次投递给多个目的站点的数据转发和交付机制。一个组标识代表了网络中的一组节点。组播使信源的多点交付过程可以得以简化,更重要的是,它可以通过减少链路重复分组来减轻网络负担,并提高数据投递的效率。
按照协议分层原则,组播可以划分硬件组播、网络层组播和覆盖组播。硬件组播在链路层和物理层实现,组标识为链路层组地址,其通信范围通常局限在节点同构的物理子网内。网络层组播的本质特征是组标识属于网络层地址空间中的部分区段;网络层组播可以跨越子网边界,实现遍及全网的群组通信;由于TCP/IP协议在互联网中居于统治地位,所以网络层组播又常被称作IP组播。在覆盖组播中,包括群组管理、拓扑重构、数据分发等在内的核心组播逻辑都在应用层及传输层实现,仅需网络层提供基本的单播服务;各种覆盖组播技术目前还没有统一的组标识形式,每个组内节点往往需要维护一个与组标识对应的成员列表,表中成员以二元组(单播地址,传输端口)的形式标记。
在互联网所承载的业务中,包括即时通讯、文件交换、电子邮件、流媒体传输等在内的主流应用多具有群组通信的性质,但这些应用很少使用组播技术,而基本都是用“多次单播、分别投递”这种效率很低的方式实现的。造成这种情况的主要原因是,现有组播技术都在一定程度上各自存在着不适应互联网特点的局限性。
硬件组播的局限性来源于技术不统一所造成的通信范围受限。尽管目前有许多子网技术都支持硬件级组播,但它们支持组播的方式各不相同,即使同一种子网技术,不同厂商所提供的设备间也存在局部的差别。由于硬件技术的差异往往是根本性的,并且每种技术有其各自的适用范围,所以在可预见的时间内都无法实现全局统一的广域硬件组播。
在现有互联网中实现IP组播非常困难,其根本原因是互联网任意连接的结构毫无规则,中间节点很难把不同的组播目的地加以归纳;为了建立和维护适合组播的转发树,中间节点要付出大量的通信、计算和存储开销。由此导致了IP组播的一些难以克服的局限性。首先,由于开销过大,很多中间网络节点停用或没有部署组播路由功能,而在全网范围内的连续部署是IP组播协议正常工作的基本前提。第二,当网络拓扑和成员关系变化时,原有的转发树就会局部或全部失效,需要重新计算,所以IP组播适应变化的能力不强,现有的少量组播应用都是成员和拓扑长期固定不变的。第三,开销会随着群组个数的增加而成倍增长,因此IP组播的可扩展性很差。第四,由于分散的成员节点难以归纳,所以IP组播不能像单播那样有效地支持包括可靠传输、流量和拥塞控制等在内的高级网络特性。第五,为了提高可用性,IP组播协议对网络环境施加了较多限制,例如PIM-DM就只适合成员相对集中的情况,这些前提假设制约了IP组播协议的使用范围。
为了解决IP组播所面临的困境,近年来发展出了大量基于覆盖组播的应用系统,目前已达数十种之多,其中较为著名的有Narada、Chord、NICE、Yoid等。覆盖组播克服了IP组播的主要局限,第一,覆盖组播逻辑是在端节点上实现的,在中间节点上只需单播路由,而不需要连续部署组播协议,这样就避免了IP组播的部署问题,为组播的广泛使用提供了可能。第二,覆盖组播本身不分析网络的物理拓扑,其对变化的适应能力主要取决于单播路由,而单播路由始终能比IP组播更快地反映现实网络拓扑。第三,参与覆盖组播的节点一般只管理已加入的组信息,也不会为自己没有加入的组转发报文,这与IP组播节点对全网所有活动群组敏感的做法截然不同,这就提高了覆盖组播对组个数增长的可扩展性。第四,覆盖组播数据是置于单播报文中转发的,而单播能支持很强的高级网络特性,这使得可靠组播、安全组播等需求在覆盖组播中很容易实现。第五,覆盖组播只要求节点间保证基本的双向可达性,没有其它额外的限制。
虽然覆盖组播有针对性地解决了IP组播的主要问题,但作为代价,也引入了IP组播不曾有的一些缺陷。第一,由于覆盖组播不了解网络物理拓扑,所以它无法根据拓扑来优化数据分发过程,因此链路重复报文较多。第二,由于在网络层没有组播逻辑,所以它不能直接调用子网硬件组播支持,既浪费了资源又降低了效率。第三,覆盖组播需要访问传输层和应用层协议头部才能决定如何转发报文,因此与IP组播相比,它的报文处理过程更复杂,报文在中间节点中滞留的时间更长。第四,硬件组播和IP组播基本对应用没有任何假设,而覆盖组播所处的协议层决定了它与应用紧密相关,现有的覆盖组播系统大多只针对一种或一类应用进行优化,通用性较差。
总的来说,包括硬件组播和IP组播在内的非覆盖组播的转发效率较高、通用性较好,但可扩展性和灵活性较差;而覆盖组播则恰恰相反,部署和使用灵活、易于扩展,但效率较低、通用性差。因此如果能将覆盖与非覆盖组播各自的优点有效地结合起来,克服它们各自的不足,无疑将会使组播技术趋于成熟,并极大地推动组播应用的普及。随着覆盖组播技术逐渐定型,近期已经开始有这方面的研究成果出现,例如:孤岛组播(Island Multicast:The Combination of IP Multicast with Application-Level Multicast.In Proceedings ofthe IEEE ICC,2004.)和HMTP(Universal IP Multicast Delivery.Computer Networks,Vol.50,pp.781-806,2006.)等。已有的这些改进方案还都处于较为初步的阶段,主要表现在:第一,它们所使用的覆盖组播和非覆盖组播协议是相互独立的,改进方案仅仅是增加了不同路由协议间的交互机制,因此应用这些方案一方面需要在同一节点上部署多个不同的组播路由协议,另一方面这些方案中的交互机制也不具有通用性和互操作性。第二,它们所假定的非覆盖组播域的边界都是固定的,即IP组播域和硬件子网都不会出现动态合并、分片等情况,这种假定与网络环境的发展现状并不适应。
图1说明了当今接入网络的一种典型状态。近年来,随着无线技术的普及,网络接入方式出现了前所未有的多样化的局面,与原来以有线网络为主的情况不同,无线技术给互联网带来了许多新的特性:第一,在同一空间内,重叠覆盖有多个异构的有线或无线子网;节点拥有多种网络接口,可以并发访问与之相连的数个子网。例如在图1中同时存在着电信移动网络、无线局域/城域网、有线局域网,节点H拥有各个子网类型接口,可以同时连接三类子网,而节点B则只有无线局域网接口。第二,节点种类多样,各自的计算、存储和通信能力差异较大。除了传统的网络节点(包括路由器、交换机等)和主机节点(PC机、POS机等)外,包括手机、PDA、智能家电等在内的多种端设备已经具有了网络通信能力,甚至可以承担跨子网转发这样的网络节点功能。第三,端设备既可以连接固有的网络节点,形成主从式拓扑,也可以在无中心管理的情况下,相互连接形成对等的自组织网络(Ad-hoc),网络拓扑随时可能发生变化。例如图1中间的无线局域网中,节点A、B、C、D、E构成主从拓扑,其中C是访问点(Access Point,缩写为AP),而从节点F到节点O的部分则为Ad-hoc网络。第四,存在多个相互独立的管理区域,各个管理区域使用的选路方法可能互不相同。例如电信网络和局域网虽然能共存于同一空间,并可通过互联网相互通信,但它们的管理机构是相互独立的,它们各自的底层技术也互不相同。第五,子网技术既可能支持多路访问(如:以太网、WLAN等),也可能只允许点到点连接(如:帧中继、ADSL等)。不同子网技术对硬件组播支持的力度和方式存在较大差异。
网络环境的上述发展变化使得传统的组播方法受到了新的挑战,组播路由方法必须能够适应:1)网络拓扑更为频繁的变化;2)无线网络信道带宽较窄、链路不稳定的特点;3)新型端设备计算和存储能力较低的特点;4)多数子网技术内置有硬件级组播或广播的特点;5)隶属于不同管理域的路由/交换技术的差异性。而前文所述的将相对独立的覆盖组播与非覆盖组播方法简单绑定的方法,显然不能适应网络发展的这些要求。
综上所述,现有的单一组播方法都存在着自身难以克服的一些缺陷。将多种组播方法整合起来、按需选择是解决问题的一种有效途径。目前旨在融合多种组播方法各自优势的研究,仍处于较为初步的阶段,表现为:1)不能在单一协议中同时具备覆盖转发和非覆盖转发的能力;2)不能适应网络环境新的发展变化和需要;3)还没有充分考虑在接入技术多样化的情况下,对多种硬件组播技术的可扩展性问题。
发明目的:
本发明的目的在于,提出一种能够高度整合覆盖方式与非覆盖方式的组播路由方法,从而在单一方案中同时达到以下设计目标:
1)通用性。对底层网络特性和组播应用类型不作任何限定性的假设;在各类节点上以相同的逻辑实现组播路由。
2)高效率。能够充分利用子网的硬件组播支持,尽可能减少链路重复报文的出现;减少节点对数据报文的处理环节,降低节点内的转发延迟。
3)灵活性。不要求对自身的连续部署或加载,仅要求节点间单播可达,从而降低设立组播服务的门槛,使组播组的建立和撤销、成员的加入和退出等过程变得容易。
4)可扩展性。通过分布式计算组播转发拓扑,限定路由信息的传播范围等方法来减轻节点的负担,扩大可实现组播的节点种类;能够适应底层技术的发展,通过模块化协议方法使对新底层特性的支持过程得以简化。
5)易用性。以动态自组织的方式完成路由,协议参数可自动协商,减少人工配置的工作量;降低组播逻辑与应用程序之间的相关度,使得组播实现过程对应用开发者高度透明。
发明的技术方案:
本发明的技术方案可以概括为:第一,在协议分层上,在网络层实现核心的组播拓扑构造和报文路由策略,其结构如图2所示。第二,在拓扑重构上,按照半覆盖拓扑模型构造组播拓扑,作为数据报文路由的依据。第三,在报文转发上,通过地址端口转换方法实现基于单播路由的覆盖转发;通过可扩展的组播适配协议实现子网相关的硬件组播投递;通过组内广播的扩散方法实现网络层的多点分发。下文将对方案中各组成部分的模块划分,半覆盖拓扑的定义和构造方法,控制报文的种类、结构和用途,以及数据报文的封装、转换和复制策略等分别加以说明。
1.本发明使用的基本术语:
(1)半覆盖组播(Half Overlay Multicasting):一种根据网络现实情况,综合运用覆盖和非覆盖方式,完成数据多点投递的组播路由方法。
(2)节点:网络中的交换机、路由器和主机等具有运算和通信能力的设备,包括网络节点和主机节点。
(3)网络节点:具有转发能力且处于转发位置的网络中间节点,既可以是交换机和路由器等专用网络设备,也可以是由主机充当的中间转发节点。
(4)主机节点:也称端节点。位于网络通信末梢的节点,具有数据接收、发送和处理能力,但不进行数据转发。
(5)链路:节点间的通信介质。狭义的链路仅指位于数据链路层的物理链路,广义的链路还包括包含多条物理链路的覆盖链路。
(6)物理链路:节点间实体通信介质,包括广播链路和点到点链路等。
(7)覆盖链路:也称逻辑链路。包含有多个网络节点及它们之间物理链路的路径,对覆盖链路两端节点来说,覆盖链路上的转发过程对它们不可见。
(8)组播域:网络中由节点和链路组成的一片连通区域,在该区域内支持某种组播通信方式,且该组播通信方式能够遍及整个区域。
(9)物理组播域(PMR):仅需物理层/链路层通信即可实现组播的组播域,通信方式有共享介质式和交换式等。
(10)网络组播域(NMR):除了物理/链路层通信外,需要且至多仅需网络层报文处理机制就可实现组播的组播域。
(11)覆盖组播域(OMR):实现组播需涉及传输层或应用层报文头部,完成报文投递需经由覆盖链路的组播域。
(12)指派节点(DN):在一个组播域内通过某种方式选择的代表节点,该节点需要在域内节点共有机能外,实现额外的附加功能。
(13)物理组播域指派节点(PDN):物理组播域的代表节点,其附加功能是作为物理组播域的标识节点。
(14)网络组播域指派节点(NDN):网络组播域的代表节点,其附加功能包括作为网络组播域标识节点和负责网络组播域内外的报文格式转换和数据转发。
(15)边界节点:位于组播域边缘的节点,且该节点同时使用两种或两种以上组播通信方式。
(16)邻居:连接到同一链路的节点互为邻居。
(17)端口:特指传输层端口,在节点上用于标记和区分数据流的本地序号。
(18)转换端口(Translated Port):用于标记二元组(组地址,原端口)的端口号。
2.节点内各组成模块及相互关系
如图2所示,为实现本发明需要在基础协议之上增加扩展模块,其中包含三个相对独立而又相互联系的组成部分:半覆盖组播路由(Half Overlay Multicast Routing,简称HOMR)、组播适配协议组(MulticastAdaptation Protocols,简称MAPs)、组播地址端口转换(Multicast Address and Port Translation,简称MAPT)。扩展部件的主体都处于网络层,有少部分逻辑向上下延伸到了链路层及传输层。
1)半覆盖组播路由:该部分是整个方案的核心模块,包括半覆盖拓扑的构建与更新、拓扑信息的交换与同步、数据报文的分发与转换控制等主要逻辑都在该模块中实现。
2)组播适配协议:该部分为可扩展的硬件组播配合模块组,每种硬件组播技术会有一个与之对应的组播适配协议。它的主要作用是根据子网技术对硬件组播的支持方式,采取相应的组播帧封装和解封装操作,并进行节点间的链路参数同步。
3)组播地址端口转换:该部分包含本发明实现覆盖组播的首选方法,其主要功能是在IP组播报文和单播数据报文间进行双向转换,以实现基于单播路由的覆盖组播转发。该数据封装方法的一种替代方法是组播隧道技术,本发明允许在两种方法间选择其一使用。
3.半覆盖拓扑的组成结构
1)半覆盖拓扑(Half Overlay Topology,简称HOT)模型
该模型是本发明所述的半覆盖拓扑结构的形式化表示,它给出了半覆盖拓扑中各个组成部分的确切含义。
在HOT模型中,整个网络表示为N=(V,E),其中V为节点集合,E为物理链路集合。设G为组播组集合,对任意g∈G,Vg为组g的成员集合,VgV,Eg为连接Vg中节点间的链路集,EgE。
V中的节点都必须支持IP协议,每个节点都有一个全局唯一的标识(identifier,简称ID)。一般可以从分配给节点各个网络接口的IP地址中选择一个作为节点ID。
设集合VpVg,如果对Vp中的任意两节点vi和vj,都能做到仅需物理层和链路层通信即可完成vi与vj间的组播数据投递,则(Vp,Eg)构成一个物理组播域(Physical Multicast Region,PMR),其中Ep为Vp中节点间链路集合。
设集合VnVg,若对Vn中的任意两节点vs和vd,都存在路径(vs,η0,...,ηk,vd),使得对路径中任意ηi,(其中i=0,...,k),都满足ηi∈Vn;且要在Vn中完成组播,除了物理/链路层通信外,报文在中间节点上需要且至多仅需网络层机制参与转发,则(Vn,En)构成一个网络组播域(Network Multicast Region,NMR),其中En为Vn中节点间链路集,EnEg。
对节点集V’,若存在路径p(vi,...,vj,η0,...,ηk,vm,...,vn),使得vj∈V’,vm∈V’,但对其中任意ηh,(其中h=0,...,k),有ηhV’,则p’(vj,η0,...,ηk,vm)构成一条相对V’的覆盖链路。
设集合VoVg,若在Vo中存在两节点vs和vd,使vs与vd间的任意路径均包含至少一条相对Vg的覆盖链路,则(Vo,Eo)构成一个覆盖组播域(Overlay Multicast Region,OMR),其中Eo为Vo中节点间物理链路集合(包括构成覆盖链路的物理链路)。一般地,OMRg=(Vo,Eo)=(Vg,Eg),即OMRg等价于g的HOT组播拓扑。
每个PMR和NMR都有一个指派节点(Designated Node,DN),分别缩写为PDN和NDN。
2)关于PMR的补充说明
根据HOT定义,设PMRg=(Vp,Ep),Vp内节点属于同一个支持链路层组播的子网。在进行组播数据分发时,只要把数据封装到以组g的链路层组地址为目的地址的帧里,就可以通过硬件组播送达PMR内所有成员。PMR是按接口定义的,当一个节点有多个网络接口时,它可以同时属于多个PMR。
在图1中,同组节点A、C、E、H各有一个以太网接口,并属于同一个碰撞域,由于以太网支持硬件组播,所以这四个节点及其间的以太网链路构成了一个PMR。对于交换式子网,如果交换机支持硬件组播,那么即使节点不属于同一碰撞域,也能构成一个PMR。
3)关于NMR的补充说明
NMRg代表相对组g的、网络层组播可达的连续区域。NMR以节点为最小构造单位,一个节点在任何时刻都只能属于一个NMR。要构成NMR,除了需要组播协议的连续部署外,还要求相邻节点必须是同组成员。从网络层的角度看,PMR内的任意两个节点都互为同组邻居,因此PMR能够成为NMR的组成部分,反之不然。构造PMR要求“链路组播相邻关系”的可传递性,而构造NMR无此要求。无法构造PMR,但能构造NMR的典型情况有:i)转发路径包含点到点链路;ii)转发路径穿越了异构子网,例如图1中的路径(A,C,D);iii)传输距离受限的无线网络。
当两个同组成员在物理拓扑中互为邻居时,它们至少可以建立NMR邻居关系。如果符合构造PMR的条件,就可以进一步建立PMR邻居关系。
4)关于OMR的补充说明
一个典型的OMR是由多个NMR或PMR,通过覆盖链路相连而成的。在覆盖链路上的分组转发,需借助于单播路由。根据定义,当全网单播可达时,OMRg必定包含了组g的全部成员和成员间的全部物理链路。
5)指派节点的作用
每个PMR和NMR都会选举一个DN。一个极限情况是,PMR与NMR完全重叠,此时在同一域内会分别选举一个PDN和一个NDN。PDN的唯一作用是作为PMR的标识节点,PDN的ID即为PMR的ID。NDN除了标识NMR的作用外,还作为NMR的代表节点与其它NDN交换信息,并进行NMR内外的组播数据转发。NMR间的覆盖链路实际是NDN间的覆盖链路。
4.基于IPv4的控制报文种类、结构和用途
以下控制报文都是基于IPv4的,也就是说,各控制报文都位于IP报文的数据部分,如信源地址、信宿地址、报文总长等信息都直接取自IP头部,而不包含在以下格式定义中。
除地址长度不同,基于IPv6的控制报文在字段种类和含义等方面上,都与基于IPv4的控制报文相同,因此不再单独列出。
1)问候(HELLO)报文
HELLO机制是本方案建立和维护半覆盖拓扑的最主要手段,每个组成员都会周期性地向自己的邻居节点发送HELLO报文。一个特例是,通过覆盖链路相连的NDN间也有HELLO报文交换,两个NDN互为OMRPeer。HELLO报文的作用有:a)邻居发现和邻居关系的保持;b)节点参数以及群组信息的通告和更新;c)确保邻居间的双向通信;d)触发对DN的选举。
HELLO报文是可变长的,其报文格式如图3所示,各字段的含义如下。
(301)Type是控制报文的类型编码,该字段的不同取值使系统能够区分控制报文种类,并分别进行处理。各种控制报文的类型编码见表1。
编码 类型
0x01 HELLO报文
0x02 REQUEST报文
0x04 REPLY报文
0x08 INFO报文
表1控制报文类型编码
(302)Flags是标识节点当前状态的属性标志组,标志编码见表2,一个节点可能同时具有其中的多项属性。
编码 属性
0x00 非本组成员节点
0x01 组内普通节点
0x02 物理组播域指派节点
0x04 网络组播域指派节点
表2节点属性及编码
(303)PMR Prior是节点当前网络接口在所属物理组播域内的优先级,该字段用于物理组播域指派节点的选举。
(304)NMR Prior是节点在所属网络组播域的优先级,该字段用于网络组播域指派节点的选举。
(305)Group Address是组地址(或称为组ID),每个组在创建时都会获得一个全局唯一的ID,本发明并不限定群组ID的产生方式,如果不与其它IP组播协议冲突,则可直接使用IP组播地址。
(306)Node ID是当前节点的全局唯一标识。
(307)Source Sequence Number是当前节点为每个HELLO报文分配的序列号,用于判断报文是否已过期。
(308)Options是变长的可选部分,其中可能的信息有:
a)若本节点(按接口)不是物理组播域指派节点,则包含PMR当前指派节点的ID、接口IP地址以及PMR优先级;
b)若本节点不是网络组播域指派节点,则包含NMR当前指派节点的ID、NMR优先级、以及本节点到指派节点的最短路径。
c)若本节点是网络组播域指派节点,则包含本节点的OMR Peer列表,其中每个表项中的信息有:Peer的节点ID、当前接口IP地址和节点属性。
2)请求(REQUEST)报文
该类报文用于在节点间传递特定的请求信息,请求报文是定长的,其报头格式如图4所示,各字段的含义和取值范围如下。
(401)Type是控制报文的类型编码,说明见(301)。
(402)Flags是当前节点属性组,说明见(302)。
(403)REQ Type是请求类型,其编码见表3。
编码 请求类型
0x01 加入请求(REQ_JOIN)
0x02 退出请求(REQ_LEAVE)
0x04 退位请求(REQ_RESIGN)
0x08 MAPT映射请求(REQ_MAPT)
0x10 详情请求(REQ_INFO)
表3请求类型编码表
(404)Ext Type是请求类型的扩展编码部分,其取值范围见表4。
编码 请求扩展类型
0x00 无扩展类型
0x01 PDN退出(LEAVE_PDN),仅用于退出请求
0x02 NDN退出(LEAVE_NDN),仅用于退出请求
0x04 PDN、NDN同时退出(LEAVE_BOTH)
0x08 PDN退位(RESIGN_PDN),仅用于退位请求
0x10 NDN退位(RESIGN_NDN),仅用于退位请求
0x20 PDN、NDN同时退位(RESIGN_BOTH)
表4请求扩展类型编码表
(405)GroupAddress是组地址,说明详见(305)。
(406)Node ID是当前节点的全局唯一标识。
(407)Source Sequence Number是当前节点为请求报文分配的序列号,该字段仅对LEAVE和RESIGN报文有效。
3)应答(REPLY)报文
应答报文用于对除“详情请求”之外的其它请求的响应,这中间也包括对错误请求的提示响应,应答报文的报头格式如图5所示,各字段的含义说明如下。
(501)Type是控制报文的类型编码,说明见(301)。
(502)Flags是当前节点属性组,说明见(302)。
(503)REP Type是应答类型,其编码见表5。
编码 应答类型
0x01 加入应答(REP_JOIN)
0x04 退位应答(REP_RESIGN)
0x08 MAPT映射应答(REP_MAPT)
0x10 对错误请求的应答(REP_ERROR)
表5应答类型编码表
(504)Ext Type是应答类型的扩展编码部分,其取值范围见表6。
编码 应答扩展类型
0x00 无扩展类型
0x01 允许加入(JOIN_ACCEPT),仅用于加入应答
0x02 拒绝加入(JOIN_DENY),仅用于加入应答
0x04 允许退位(RESIGN_ACCEPT),仅用于退位应答
0x08 拒绝退位(RESIGN_DENY),仅用于退位应答
0x10 节点非成员(HLOERR_NOJOIN)错误
0x20 节点非NDN(HLOERR_NO_NDN)错误
表6应答扩展类型编码表
(505)Group Address是组地址,说明详见(305)。
(506)Node ID是当前节点的全局唯一标识。
4)消息(INFO)报文
消息报文的作用是传递节点的详细HOT信息,这既包括对“详情请求”的应答,也包括在其它特定情况的触发的拓扑信息交换。消息报文是可变长的,其报文格式如图6所示,各部分的含义如下。
(601)Type是控制报文的类型编码,说明见(301)。
(602)Flags是当前节点属性组,说明见(302)。
(603)INFO Type是消息类型,其编码见表7。
编码 消息类型
0x01 普通消息(INF_NORMAL)
0x02 移送消息(INF_HANDOVER)
表7消息类型编码表
(604)该字段保留未用。
(605)Group Address是组地址,说明详见(305)。
(606)Node ID是当前节点的全局唯一标识。
(607)Data是报文数据区,其中包含了当前节点的完整HOT路由信息。
5.选举指派节点的优先级计算方法
本方案采用优先级机制来选举指派节点。选举DN需要同时满足两个目标:1)DN须保持相对稳定;2)DN应具有较强的网络计算能力。为此,引入了多个参数用于优先级计算。
A)固定参数paramfix
固定参数反映了节点的计算能力和网络通信能力,该参数在协议初始化时即可算得,在运行期间不改变。
paramfix=α1×W+β1×H+γ1×M,其中W为节点各接口带宽之和,H为节点各CPU主频总数,M为内存总量,α1、β1、γ1为加权系数。
B)动态参数paramdyn
设δjoin为当前时刻与节点加入群组时刻之差,δDN为当前时刻与节点成为DN时刻之差,有:
paramdyn=α2×δjoin+β2×δDN,其中δjoin≥0,δDN≥0,α2、β2为加权系数。
C)优先级计算
本方法通过设置计时器,定期触发动态参数和优先级的计算,PMR和NMR优先级的计算方法相同,公式为:prior=|α3×paramfix+β3×paramdyn|,其中α3、β3为加权系数。
6.物理组播域的构造和内部通信方法
在开始时,每个加入组播的节点都建立一个以自己为PDN的PMR,并在子网内广播HELLO报文。如果子网满足建立PMR的条件,那么该报文能被子网内的其它所有节点收到。设节点A收到同组邻居B发来的HELLO报文,且报文声明B是一个PDN,那么A会以自己PDN的优先级与B的优先级比较,选择优先级高的作为自己的PDN,如果优先级相同,则选择节点ID大的作为PDN。子网内所有同组成员都以相同的标准进行选举,经过一轮HELLO报文的交换过程后,各个成员都能获得PMR邻居的完整列表,并选举同一个节点作为PDN。
节点为自己的每个PMR邻居设置一个超时值,在收到HELLO报文时,该值被更新。如果某邻居的超时值过期,节点则认为这个邻居已经失效或已退出组,并从自己的PMR邻居列表中删除它。如果PDN过期,将触发PDN的重新选举,如果子网内没有同组邻居,那么节点会选举自己作为PDN,并继续广播HELLO报文。那些组外节点会由此获得可加入的群组信息。当PMR内最后一个节点退出时,PMR将自行消失。
MAPs是本方法实现可扩展的硬件组播支持的主要途径。每个MAP对应一种硬件组播的技术实现,它与网络接口的硬件驱动一样按接口部署。一个MAP的主要功能有:1)PMR内网络层组ID向链路组地址的映射;2)配置并向HOMR提供接口参数。
7.网络组播域的构造和内部通信方法
与PMR类似,节点建立NMR并初始化为NDN。当节点在邻居中发现同组成员时,就会触发NMR的归并和NDN的选举。图7展现了引发NMR归并的两种典型情况:节点加入和无线节点移动。
在图7a中,成员节点1逐渐靠近,非成员节点2加入组播,这两个节点状态的改变最终使整个网络形成单一的NMR(图7b)。一般地,当节点A收到同组邻居B的HELLO报文,且A和B的NDN不一致时,A就会选择两个NDN中优先级高的作为自己的NDN,若优先级相等,则选择节点ID小的。注意当优先级相等时,PDN和NDN的选择条件恰恰相反,这是为了使DN尽量分散。当A的NDN改变时,它会立即将新NDN的信息通知自己的其它NMR邻居,这个消息在原NMR内迅速扩散,最终使归并在一起的各个NMR都选举相同的NDN。
与PDN不同,NDN通常只与NMR中的少数节点相邻,与NDN不相邻的节点只能从中间节点处间接获得NDN的信息,因此非NDN节点仅仅知道NDN的ID和优先级是不够的。首先,当节点发现自己的某个邻居失效时,可能意味着与NDN的联系也同时中断,是否真的中断需要额外的信息才能判定;第二,当邻居提供的NDN信息不一致时,如何采信也需要判断,例如在图7b中,节点2能够收到四个邻居发来的关于NDN的信息,显然它应该完全相信节点1,而忽略来自4的情报。
本方法使用路径矢量算法来维护NMR的连通性,其基本思想是,相邻节点交换各自保存的、到NDN的严格路径,路径中包含从邻居到NDN沿途的所有节点ID,格式为(NDN邻居ID,...,本节点邻居ID)。在收到来自邻居的关于NDN的路径后,节点从中选择一条有效的最短路径予以保存。
算法1.路径矢量的过滤更新算法
输入:当前节点i的路径矢量表Ti,邻居节点j的路径矢量表Tj,节点i的邻居ID表Ni
输出:更新后的Ti
(1)初始化:令P’为空路径;删除Ti中包含j的所有路径;
(2)for Tj中的每条路径P do
(3) if P中包含i then continue;
(4) if P中包含Ni中的元素then
(5)P←原P中从起始ID到首次出现属于Ni的邻居ID(含)为止的部分;
(6)if Ti中包含P then continue;
(7)if P’非空and length(P’)≤length(P)then continue;
(8)从Ti中删除P’;把P存入Ti;P’←P.
仍以图7b为例,各个节点处路径矢量表的一种稳定状态为:
0:{} 1:{} 2:{(1)} 3:{(1)} 4:{(1,2)} 5:{(1,2),(1,3)}
节点4到NDN的唯一路径经过节点2,节点3的路径则经过了节点2的邻居节点1,在这两种情况下节点2都不会接受它们所提供的关于NDN的信息。
NMR分片是归并的逆过程,当发生链路失效或成员退出等情况时,就可能导致NMR的分片。断裂点附近的成员会最先发现情况的异常,设相邻成员A、B都不是NDN,节点B失效,A发现后先从自己的PV表中删除所有包含B的路径,然后判断自己是否与NDN相邻以及PV表是否为空。如果不与NDN相邻且PV表已空,则说明NMR已分片,而且A与NDN处于不同分片中,于是A声明自己为新的NDN,并把B失效的消息通知自己分片内的原NMR成员,其它NMR成员在收到后采取相同的处理办法,从而触发在分片内的NMR归并和NDN选举。如果A与NDN相邻或PV表非空,则说明NMR没有分片,A仅把B从自己的成员列表中删除。当NDN失效时,NDN的所有邻居都会声明自己为NDN,从而触发NDN选举过程。
8.覆盖组播通信方法
在本方案中,整个覆盖网络是以各个NMR的NDN为顶点、覆盖链路为边的完全图。每个节点都维护一个OMR邻居列表,正常情况下,OMR Peer通过交换各自所知的OMR邻居信息保持对覆盖拓扑的了解。但是由于链路状态不稳定还是可能导致NMR间联系的永久中断,考虑图1的情况,当O移动并远离M和N时,它和网络其它部分的通信将会中断,如果中断时间超过最大超时时间,其它成员就会“忘记”O的存在,即使通信恢复,也不会再向O转发组播报文。HOMR解决这个问题的办法是:如果条件允许,则通过NMR注册保持OMR的连通性,否则就令NDN每隔若干常规HELLO报文,就广播一个可达全网的HELLO报文。
在覆盖网络上的数据通信方面,本方案在支持传统的UDP或IP隧道方式的同时,引入了效率更高的地址端口转换方式,并作为首选方法。每个NDN都设置一个MAPT表,格式如下:
节点ID 信源地址 组地址 目的端口 转换地址 转换端口
Local 10.9.8.2 224.3.0.1 63 -- 20001
A3 -- x y A3 z
表8地址端口映射表格式及表项示例
图8显示了一个基本的网络拓扑,其中两个NMR通过各自的NDN与无法形成非覆盖组播域的骨干网相连,假设组地址为x并且该组的某个信源在NMR1中。为了使组播报文能够穿越覆盖网络到达NMR2,NDN1和NDN2需要按照图9所示的流程进行如下协同工作:
当NDN1在收到目的地址为x、目的端口为y的组播报文后,需要转发给NDN2时,它首先根据NDN2的节点ID、报文的目的地址(组ID)和目的端口来查询自己的MAPT表,检查自己是否已知NDN2对于x的端口映射。如果找到相关表项,则用表项中的转换地址(即NDN2的单播IP地址)和转换端口替换报文原来的目的地址和目的端口,然后借助单播路由把报文发送给NDN2。如果NDN1没有找到对应表项,它就缓存数据报文,并向NDN2发送一个包含(x,y)的MAPT请求。NDN2收到请求后,它先检查自己是否已经对(x,y)进行过端口映射,如果是则直接把映射端口及套接字(x,y)放入应答报文中,回送给NDN1;否则就从自己的空闲端口中分配一个(设该端口号为z)作为对(x,y)的映射,记录到NDN2的映射表,并通过应答报文把映射结果回复给NDN1。
NDN1收到NDN2的应答报文后,一方面在MAPT表中保存映射信息,另一方面转换并转发缓存的组播报文。NDN2收到报文后,再根据报文的目的端口反查MAPT表,并恢复报文的原始组播地址和端口。
9.节点的加入和退出过程
节点在加入组播前,应该知道可加入的群组列表和每组的部分成员信息。在加入时,节点首先建立与组ID对应的半覆盖拓扑结构,然后开始发送HELLO报文。如果新成员的邻居中有同组成员,它将建立PMR或NMR邻居关系,并立即开始接收组播数据;否则它将初始化一个PMR和一个NMR,声明自己为DN,并与自己所知的成员交换群组信息,这样新成员就能建立若干OMR邻居关系,并逐渐获得全部OMRPeer信息。
正常退出的成员将向HOT邻居发送退出消息,这样其它同组成员就可以尽快调整各自的HOT拓扑。但更常发生的是成员的异常退出,异常退出的节点不会把自己退出的消息通知HOT邻居,因此邻居节点只能根据超时机制来发现节点退出并作相应处理。
10.组播方式的选择和数据包的转发控制方法
成员节点根据自己了解的HOT拓扑,从硬件组播、IP组播和覆盖组播中选择可行的最有效方式来转发组播数据。在PMR内,数据帧的转发过程对本方法的各个模块都是透明的,为实现转发只需由MAPs把IP组播报文封装成链路组播帧并交付链路协议即可。NMR的IP层拓扑为多连接结构(Mesh),本方法在NMR内采用逆向路径转发(RPF)算法实现基于Mesh的组播选路。如前所述,PMR是NMR的子集,当需要从硬件组播转换到IP组播时,PMR边界节点就会从组播数据帧中取出IP组播报文并在IP层转发。NMR间的组播报文交换由NDN完成,当信源在一个NMR内部时,这个NMR的NDN将IP组播报文转换成单播报文,通过覆盖链路投递给其它NMR的NDN;当NDN收到覆盖组播报文时,负责恢复报文的原始状态,并在所属NMR内转发。
有益效果:
本发明在单一协议中无缝地融合了覆盖组播与非覆盖组播的主要特性,由此产生的有益效果包括:
(1)无需对自身的连续部署或加载,仅要求节点间单播可达,并且对单播路由方式无特殊要求,因此具有直接传越不可控的转发网络的能力,较之单纯的非覆盖组播更易于实施,提高了组播路由的可用性、以及对各类数据网络管理区域的不同路由策略的适应能力。
(2)在拓扑重构方面,统一考虑了有线网络及无线网络的不同特点,能够同时适应拓扑频繁变化和基本稳定不变、宽带稳定链路和窄带不稳定链路等差异较大的底层网络特性。
(3)核心模块在网络层实现,对组播应用类型没有限定性假设,能够充分利用子网的硬件组播支持,及实现连续成员节点间的IP组播,因而能够有效地减少链路重复报文、减轻节点的报文处理负担,较之单纯的覆盖组播效率更高、端到端的延迟更小。
(4)在组播路由策略方面,成员节点仅管理自己已参与的群组信息,并且通过组播域的划分限制了部分路由信息的传播范围,从而使节点的路由信息管理和通信开销降低,无须设备具有较高的性能,符合目前网络设备的种类不断增加,性能差距增大的现状。
(5)各成员节点基本处于对等的状态,以完全自组织的方式完成数据交换,各项参数均可自动协商、无须人工干预,这种动态路由方式提高了组播路由的透明度和服务的易用性。
附图说明:
图1一种典型的接入网络物理拓扑结构
图2半覆盖组播的模块划分及各模块在网络体系结构中的位置
图3基于IPv4的HELLO报文格式
图4基于IPv4的REQUEST报头格式
图5基于IPv4的REPLY报头格式
图6基于IPv4的INFO报文格式
图7典型的物理拓扑改变及其对半覆盖组播拓扑重构的影响
图8在覆盖网络层面上NMR互连的基本形式
图9基于地址端口转换的覆盖转发过程
图10实施例示意图
实施例:
下面结合附图和实施例对本发明作进一步说明。
图10显示了一个典型的半覆盖拓扑稳定状态,及在此状态下的组播报文转发过程。其中共有35个节点,这些节点即可能是路由器、交换机,也可能是个人计算机或者掌上数字终端;有些节点有多个同构或异构的网络接口,有些则只有一个网络接口;各个网络接口所连接的即可能是有线子网,也可能是无线网络,节点的位置可能固定不变,也可能在不断变化;中间还有部分节点没有部署组播路由模块。尽管在性能和内部结构上存在差别,但它们都支持IP协议,并且任两节点间单播可达,这是保证网络连通的最基本条件。
在当前的稳定状态下,除编号从19到21外的其它32个节点加入了同一组播组,设该组地址为x,这些节点也必然部署了本发明所述的组播路由模块。节点19-21则或者部署了组播路由,但没有加入组x;或者完全没有部署或启动组播路由。组x的32个成员节点共形成了5个网络组播域NMR1到NMR5。
其中节点1-12属于NMR1,节点12是NMR1的网络组播域指派节点,标识为NDN1。在NMR1中,有两个物理组播域PMR1和PMR2,由于从组播的角度看,物理组播域内的节点间是全互连的,因此在图10中所有物理组播域内的物理链路都没有显式地标出。节点2-5属于PMR1,节点3被选为PMR1的指派节点,标识为PDN1。节点5、7-9属于PMR2,节点8是PMR2的指派节点PDN2。节点5的两个子网接口分别属于PMR1和PMR2,所以它成为了这两个物理组播域的交集部分,能够通过网络层路由完成两个子网间的数据转发。在NMR1中标识出的物理链路都是点到点链路,这些链路同PMR1和PMR2内的物理链路一起,构成了NMR1内网络层组播通信的硬件基础。
节点13是一个最小单位的网络组播域,标识为NMR2,它本身也是NMR2的指派节点。从理论上说,节点13的每个接口分别成为物理组播域,但由于在此状态下,这些PMR没有实际的通信职能,因此并未标出,并且节点13也不会为这些PMR建立管理信息库,与此同理,图10中其它无实际功能的物理组播域也都没有专门的标识和说明。节点13的状态也是每个节点在初始化时的默认状态。
节点14-18及它们之间的物理链路构成了NMR3,其中节点15是NMR3的指派节点NDN3。这个域内没有满足条件的硬件组播支持,因此节点间的组播数据分发都通过网络层逻辑实现。
NMR4包含节点22-30及其间链路,它的结构与NMR1较为相似,其中也有两个物理组播域PMR3和PMR4,而节点22既是PMR3的指派节点,又是整个NMR4的指派节点。
节点31-35的部分显示了物理组播域PMR5与网络组播域NMR5功能重叠的一种状态,这里所有节点间都可以以硬件组播的方式通信,在域内无须网络层组播逻辑的参与,但从概念上,物理组播域都是网络组播域的组成部分,因此NMR5与PMR5基本重叠。与物理组播域可能完全无功能不同,网络组播域始终是有意义的,其它组播域只知道NMR5的存在,而不关心NMR5中是否还有一个PMR5,因此尽管节点31既是PMR5的指派节点,又是NMR5的指派节点,但在通过覆盖链路与外界通信时,它只发挥网络组播域指派节点的功能。
各网络组播域指派节点间的路径均为半覆盖拓扑中的组播覆盖链路。在图10中,采用了隐式表现和显式表现两种显示方式。隐式方式忽略了在覆盖链路上的转发过程,用虚线表示,例如NDN1与NDN2间的覆盖链路就是隐式覆盖链路,这种方式说明了各NDN的组播逻辑所见的覆盖链路状态。显式方式给出了覆盖链路的物理构造,例如NDN1与NDN5间的路径(12,19,20,31)就是一条覆盖链路,这是单播逻辑所见的覆盖链路状态。
在组播服务的整个生命周期,有以下的一些基本过程,其中为了达到图10所示的稳定状态,需要经过其中的前五个步骤:
(1)发起:这是组播的初始化过程。在最初时,会有某个节点希望提供组播服务,或者有若干节点希望以组播方式简化多方通信,在需求产生后,将首先由一个相关节点确定全局唯一的组ID,并在整个网络内宣告该组播组的存在。严格地说,该过程的实现方式不在本发明中约定或限制,但该过程的结果对本发明所述方法来说是必要的前提。
(2)汇聚:这是组播组的形成过程。在组播组建立后,各相关节点将能获知群组ID及初始成员信息,它们可以直接宣告或通过加入过程成为该组的新成员。节点成为组员后,将首先建立相关的数据结构和路由表项,并开始周期性地发送HELLO报文,HELLO报文不但会投递给已知的同组成员,也会在节点各本地链路上出现。通过HELLO报文的交换,节点将既能发现与自己邻近的同组成员,也能了解更多的远端成员信息,从而在本地形成更完整的组播拓扑。
(3)重构:这是各PMR、NMR,以及遍及全组的OMR的构造过程。在节点知晓了部分组内成员信息,特别是邻近的成员信息后,它们将能够根据当前的物理拓扑来形成半覆盖组播拓扑,包括构造组播域及选举各组播域的指派节点。例如,节点2-5共享一个支持硬件组播的物理链路,它们就形成了PMR1,并进而成为NMR1的子集。节点14-18间各链路为点到点链路,虽不能以硬件组播方式通信,但可以形成一个NMR。
(4)优化:这是对数据分发方式的最终决策过程。在相对稳定的半覆盖拓扑形成之后,各节点间的数据交换仍有多种选择,考虑图10中的节点8,它可以从节点5和节点6处得到来自节点1的数据分组,显然节点8只需要同一报文的一个副本,并且因为节点5的转发效率高于节点6,所以当两节点都向节点8转发时,来自节点5的副本会首先到达,那么在第一次收到重复分组后,节点8就可根据副本到来的先后顺序,决定采用节点5作为自己的上游节点,并告知节点6暂停转发分组。优化过程涉及多种选择策略,基本的判断和触发条件就是成员间交换的控制报文和组播数据分组。
(5)调整:这是当外界条件改变后,使半覆盖拓扑重新趋于稳定的过程。事实上,所谓稳定状态仅仅是组播拓扑相对不变的中间状态,当有节点加入或退出、链路失效或恢复、节点相对位移等情形发生时,就需要对组播拓扑进行调整。与重构过程不同,调整过程无需计算整个HOT结构,而只需根据变化的部分作重新的决策和同步。在调整完成后,还需要再次进行优化过程。
(6)归零:这是发起过程的逆过程。当组播组已无存在必要时,就会触发归零过程,这时组播组将被宣告为无效,组ID将被归还。与发起过程类似,归零过程的实现方式并不是本发明的组成部分,但半覆盖拓扑信息能够成为归零过程的触发条件,并且在该过程中,本方法模块所占用的各项资源将被释放。
在图10中,各链路上的箭头指明了组播数据的流向和转发过程。在硬件组播方式下,链路层只需处理一次就可把数据分组送达各成员节点,例如在PMR1内,从节点2到节点3-5的转发就是如此。在网络层组播和覆盖组播方式下,链路层则需处理多次,例如在NMR3里,向节点14和16转发时,分组就需经过节点15的下行链路两次。在使用覆盖组播方式时,可能会在物理链路上出现同一报文的多个副本,但在非覆盖方式下,不会有链路重复报文出现。为了抑制重复报文,本方法采用了源序列号机制,节点只可能从不同链路上收到重复报文,而不会将同一报文多次向外转发。如果序列号在穿越覆盖网络时被丢弃,则由NDN添加序列号后再在所属NMR内转发。关于转发过程,还需说明一点:根据HOT定义,非成员节点不了解组内的HOT结构,因此如果信源节点不加入组,则必须将数据交由一个组内节点代为转发。
Claims (9)
1.一种半覆盖自组织的动态组播路由方法,通过对物理网络拓扑、节点状态、以及链路特性的解析和重构,形成适合组播路由的逻辑拓扑图,并据此逻辑拓扑实现对组播数据的转发和投递,其特征在于:对网络拓扑的动态重构过程和作为重构结果的逻辑拓扑都基于半覆盖拓扑(Half Overlay Topology,简称HOT)模型;半覆盖拓扑的形成过程是在各相关节点间以动态自组织的方式进行的;在对组播数据的转发过程中,则根据已形成的半覆盖拓扑结构在硬件组播、网络层组播和覆盖组播间作动态的选择和转换。
2.根据权利要求1所述的半覆盖自组织的动态组播路由方法,其中的覆盖组播是指借助单播路由协议,来使某个特定组的组播数据报文穿越相对这个组而言未知的网络区域,其特征在于:在借助单播路由前,需将组播报文改变为单播报文,并采取某种标记方式使修改后的组播报文能区分于普通单播报文;在以下两种情况下节点属于未知网络区域,一是节点未部署采用本方法的组播路由协议,二是节点的组播路由协议虽然采取了本路由方法,但节点并没有加入成为这个组的一个成员节点。
3.根据权利要求1所述的半覆盖自组织的动态组播路由方法,其特征在于:半覆盖拓扑的构成元素包括属于同一组播组的节点及它们之间的物理链路或路径;能够仅通过物理层和链路层的多点投递即实现组播的同组成员节点及它们之间的链路属于同一个物理组播域(Physical Multicast Region,简称PMR);能够通过物理层和链路层多点投递或网络层组播逻辑完成数据分发的同组成员节点及它们之间的物理链路被划分进同一个网络组播域(Network Multicast Region,简称NMR);如果在组播数据转发过程中还需要采用基于单播路由的覆盖组播方式,则同组的所有成员及它们之间的路径构成一个覆盖组播域(Overlay Multicast Region,简称OMR)。
4.根据权利要求1、3所述的基于半覆盖拓扑模型的网络拓扑重构方法,其特征在于:从链路条件看,在同一PMR内的任意两个节点间都存在一条双向可达的物理组播链路;在同一NMR内的节点不满足PMR的物理链路条件,但任一对节点间都存在至少一条路径满足:这条路径上的所有节点都是运行有本方法路由模块的同组成员,且在此路径上,成员间的链路都是双向物理链路;OMR不完全满足NMR的节点间关系,即OMR内至少有一对节点间只能通过权利要求2所述的覆盖方式完成双向组播通信;从数据格式看,以物理组播方式转发的数据,其链路层数据帧头部的目的地址为一个代表了本PMR内所有节点的链路层组标识;以网络层组播方式转发的数据,其IP报文头部的目的地址为一个代表了本NMR内所有节点的IP组播地址;以覆盖组播方式转发的数据,则带有一个在传输层头部或应用层头部中定义的组标识;数据格式的转换是在分组需要跨越组播域的边界时进行的。
5.根据权利要求1、3所述的基于半覆盖拓扑模型的网络拓扑重构方法,其特征在于:所形成的逻辑拓扑会随着成员关系、网络物理拓扑、链路状态等外界条件的变化而动态地调整变化;三类组播域的实例都可以随时建立、撤销或改变从属关系,它们的边界也不是一成不变的,在HOT所规定的条件满足时,多个同类组播域(同为PMR、NMR或OMR)可以合并为一个,一个组播域也可以分裂为多个同类组播域;同组成员间通过本地链路上的邻居发现机制,及在远程路径上单播问候报文的方式,实现逻辑拓扑的自动构造和调整。
6.根据权利要求1、3所述的基于半覆盖拓扑模型的网络拓扑重构方法,其特征在于:三种组播域间允许存在一些受限的重叠关系或单向的包含关系,即PMR或者是NMR的一部分,或与NMR完全重合;一个NMR可以包含一个或多个PMR,但NMR不会成为PMR的真子集;NMR可以是OMR的组成部分,但不会与OMR范围完全相等;一个OMR可以包含若干个NMR,但NMR不会包含OMR。
7.根据权利要求1、3所述的基于半覆盖拓扑模型的网络拓扑重构方法,其特征在于:在每个PMR和NMR中都会有一个节点作为其所属PMR或NMR的指派节点(Designated Node,简称DN);其中PMR的指派节点简称为PDN,NMR的指派节点简称为NDN;指派节点是从PMR或NMR的所有节点中动态选举确定的;指派节点的作用有两个,一是作为组播域的标识节点;二是负责组播域内外的信息交换。
8.根据权利要求1所述的半覆盖自组织的动态组播路由方法,其特征在于:在覆盖组播和非覆盖组播(包括硬件组播和网络层组播)间的选择和转换是在统一的策略下、以一致的方式无缝地完成的;即在一个中间节点内,实现覆盖与非覆盖组播路由间的转换,至多仅需一个组播路由协议与一个单播路由协议协同工作,而无需两个或多个相互独立的组播路由协议协同工作。
9.根据权利要求1所述的半覆盖自组织的动态组播路由方法,其特征在于:组播数据报文的转发和投递,完全依照半覆盖拓扑模型所限定的方式以及当前的组播逻辑拓扑进行,即属于同一物理组播域的节点间的组播报文投递仅会使用网络硬件所支持的链路层组播实现,而不会使用链路层之上的组播方式;在网络组播域内,组播报文的投递会使用包括硬件组播和网络层组播在内的非覆盖组播方式,但不会使用基于单播路由的覆盖组播方式;在覆盖组播域内则允许使用各种可能的覆盖与非覆盖组播路由方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100026016A CN100553229C (zh) | 2007-01-24 | 2007-01-24 | 一种半覆盖自组织的动态组播路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100026016A CN100553229C (zh) | 2007-01-24 | 2007-01-24 | 一种半覆盖自组织的动态组播路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101039262A true CN101039262A (zh) | 2007-09-19 |
CN100553229C CN100553229C (zh) | 2009-10-21 |
Family
ID=38889907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100026016A Expired - Fee Related CN100553229C (zh) | 2007-01-24 | 2007-01-24 | 一种半覆盖自组织的动态组播路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100553229C (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118310A (zh) * | 2011-01-19 | 2011-07-06 | 华中科技大学 | 基于网络编码分级流媒体多播的资源调度方法 |
CN103457999A (zh) * | 2013-08-06 | 2013-12-18 | 北京大学深圳研究生院 | 一种基于ndn网络架构的p2p文件传输方法 |
CN103843376A (zh) * | 2011-09-14 | 2014-06-04 | 思科技术公司 | 用于物理层处功率节省的多播传输组寻址 |
CN103999512A (zh) * | 2011-12-13 | 2014-08-20 | 国际商业机器公司 | 无线网络的物理映射 |
CN104219156A (zh) * | 2014-09-16 | 2014-12-17 | 西安电子科技大学 | 一种适用于层次化空中自组织网络的组播路由方法 |
CN104301215A (zh) * | 2014-10-10 | 2015-01-21 | 北京邮电大学 | 一种覆盖网构建方法 |
CN104641694A (zh) * | 2012-09-07 | 2015-05-20 | 高通股份有限公司 | 用于在多跳网络中关联的系统、装置和方法 |
CN104967677A (zh) * | 2015-06-05 | 2015-10-07 | 无锡量子云数字新媒体科技有限公司 | 一种基于ndn缓存优化的文件传输方法以及装置 |
WO2017011947A1 (zh) * | 2015-07-17 | 2017-01-26 | 华为技术有限公司 | 一种通信方法、装置和系统 |
CN106789631A (zh) * | 2017-01-20 | 2017-05-31 | 深圳市风云实业有限公司 | 一种组播路由重构方法及路由设备 |
CN107223325A (zh) * | 2014-12-26 | 2017-09-29 | 喜司腾73股份有限公司 | 用于数字内容的自适应虚拟广播的方法和系统 |
US10039071B2 (en) | 2012-09-07 | 2018-07-31 | Qualcomm Incorporated | Systems, apparatus, and methods for association in multi-hop networks |
CN109510765A (zh) * | 2019-01-16 | 2019-03-22 | 山东省计算中心(国家超级计算济南中心) | 一种计算节点互联拓扑构建连接方法及软件系统 |
CN109842567A (zh) * | 2017-11-24 | 2019-06-04 | 华为技术有限公司 | 数据分发方法以及分发服务器 |
CN110620816A (zh) * | 2019-09-16 | 2019-12-27 | 杭州比孚科技有限公司 | 一种船舶用组间通讯方法 |
CN111368984A (zh) * | 2020-05-15 | 2020-07-03 | 支付宝(杭州)信息技术有限公司 | 用于联盟学习的方法、装置及联盟学习系统 |
CN111835636A (zh) * | 2019-06-02 | 2020-10-27 | 北京航空航天大学 | 一种基于主干路径递归扩展的网络拓扑重构方法 |
CN112468353A (zh) * | 2019-09-09 | 2021-03-09 | 华为数字技术(苏州)有限公司 | 一种网络可达性检测方法及装置 |
CN112989228A (zh) * | 2021-04-25 | 2021-06-18 | 湖南视觉伟业智能科技有限公司 | 分布式时空查询方法及系统 |
CN113765815A (zh) * | 2020-06-05 | 2021-12-07 | 华为技术有限公司 | 组播报文负载分担的方法、设备和系统 |
CN114866464A (zh) * | 2022-05-18 | 2022-08-05 | 深圳市艾迪思特信息技术有限公司 | 一种自动发现ip组播域及组播代理节点的系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4242752B2 (ja) * | 2003-11-10 | 2009-03-25 | 株式会社エヌ・ティ・ティ・ドコモ | アドレス表管理方法、及び、端末 |
CN1668037A (zh) * | 2004-03-10 | 2005-09-14 | 浙江大学 | 融合ip网络和有线电视网络的接入方法及其设备 |
-
2007
- 2007-01-24 CN CNB2007100026016A patent/CN100553229C/zh not_active Expired - Fee Related
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118310A (zh) * | 2011-01-19 | 2011-07-06 | 华中科技大学 | 基于网络编码分级流媒体多播的资源调度方法 |
CN102118310B (zh) * | 2011-01-19 | 2013-07-03 | 华中科技大学 | 基于网络编码分级流媒体多播的资源调度方法 |
CN103843376A (zh) * | 2011-09-14 | 2014-06-04 | 思科技术公司 | 用于物理层处功率节省的多播传输组寻址 |
CN103999512A (zh) * | 2011-12-13 | 2014-08-20 | 国际商业机器公司 | 无线网络的物理映射 |
US10039071B2 (en) | 2012-09-07 | 2018-07-31 | Qualcomm Incorporated | Systems, apparatus, and methods for association in multi-hop networks |
CN104641694A (zh) * | 2012-09-07 | 2015-05-20 | 高通股份有限公司 | 用于在多跳网络中关联的系统、装置和方法 |
CN104641694B (zh) * | 2012-09-07 | 2019-05-14 | 高通股份有限公司 | 用于在多跳网络中关联的系统、装置和方法 |
CN103457999A (zh) * | 2013-08-06 | 2013-12-18 | 北京大学深圳研究生院 | 一种基于ndn网络架构的p2p文件传输方法 |
CN104219156A (zh) * | 2014-09-16 | 2014-12-17 | 西安电子科技大学 | 一种适用于层次化空中自组织网络的组播路由方法 |
CN104219156B (zh) * | 2014-09-16 | 2017-08-25 | 西安电子科技大学 | 一种适用于层次化空中自组织网络的组播路由方法 |
CN104301215A (zh) * | 2014-10-10 | 2015-01-21 | 北京邮电大学 | 一种覆盖网构建方法 |
CN107223325B (zh) * | 2014-12-26 | 2021-03-26 | 喜司腾73股份有限公司 | 用于数字内容的自适应虚拟广播的方法和系统 |
US10992998B2 (en) | 2014-12-26 | 2021-04-27 | System73, Inc. | Method and system for adaptive virtual broadcasting of digital content |
CN107223325A (zh) * | 2014-12-26 | 2017-09-29 | 喜司腾73股份有限公司 | 用于数字内容的自适应虚拟广播的方法和系统 |
CN104967677B (zh) * | 2015-06-05 | 2019-07-19 | 无锡量子云数字新媒体科技有限公司 | 一种基于ndn缓存优化的文件传输方法以及装置 |
CN104967677A (zh) * | 2015-06-05 | 2015-10-07 | 无锡量子云数字新媒体科技有限公司 | 一种基于ndn缓存优化的文件传输方法以及装置 |
WO2017011947A1 (zh) * | 2015-07-17 | 2017-01-26 | 华为技术有限公司 | 一种通信方法、装置和系统 |
CN107113295A (zh) * | 2015-07-17 | 2017-08-29 | 华为技术有限公司 | 一种通信方法、装置和系统 |
CN107113295B (zh) * | 2015-07-17 | 2020-02-14 | 华为技术有限公司 | 一种通信方法、装置和系统 |
CN106789631A (zh) * | 2017-01-20 | 2017-05-31 | 深圳市风云实业有限公司 | 一种组播路由重构方法及路由设备 |
CN106789631B (zh) * | 2017-01-20 | 2020-04-03 | 深圳市风云实业有限公司 | 一种组播路由重构方法及路由设备 |
CN109842567A (zh) * | 2017-11-24 | 2019-06-04 | 华为技术有限公司 | 数据分发方法以及分发服务器 |
US11134001B2 (en) | 2017-11-24 | 2021-09-28 | Huawei Technologies Co., Ltd. | Data distribution method and distribution server |
CN109842567B (zh) * | 2017-11-24 | 2020-12-25 | 华为技术有限公司 | 数据分发方法以及分发服务器 |
CN109510765A (zh) * | 2019-01-16 | 2019-03-22 | 山东省计算中心(国家超级计算济南中心) | 一种计算节点互联拓扑构建连接方法及软件系统 |
CN111835636A (zh) * | 2019-06-02 | 2020-10-27 | 北京航空航天大学 | 一种基于主干路径递归扩展的网络拓扑重构方法 |
CN112468353A (zh) * | 2019-09-09 | 2021-03-09 | 华为数字技术(苏州)有限公司 | 一种网络可达性检测方法及装置 |
CN112468353B (zh) * | 2019-09-09 | 2023-11-21 | 华为数字技术(苏州)有限公司 | 一种网络可达性检测方法及装置 |
CN110620816A (zh) * | 2019-09-16 | 2019-12-27 | 杭州比孚科技有限公司 | 一种船舶用组间通讯方法 |
CN110620816B (zh) * | 2019-09-16 | 2021-11-05 | 杭州比孚科技有限公司 | 一种船舶用组间通讯方法 |
CN111368984A (zh) * | 2020-05-15 | 2020-07-03 | 支付宝(杭州)信息技术有限公司 | 用于联盟学习的方法、装置及联盟学习系统 |
CN113765815A (zh) * | 2020-06-05 | 2021-12-07 | 华为技术有限公司 | 组播报文负载分担的方法、设备和系统 |
CN113765815B (zh) * | 2020-06-05 | 2024-03-26 | 华为技术有限公司 | 组播报文负载分担的方法、设备和系统 |
CN112989228A (zh) * | 2021-04-25 | 2021-06-18 | 湖南视觉伟业智能科技有限公司 | 分布式时空查询方法及系统 |
CN114866464A (zh) * | 2022-05-18 | 2022-08-05 | 深圳市艾迪思特信息技术有限公司 | 一种自动发现ip组播域及组播代理节点的系统 |
CN114866464B (zh) * | 2022-05-18 | 2023-10-27 | 深圳市艾迪思特信息技术有限公司 | 一种自动发现ip组播域及组播代理节点的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100553229C (zh) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101039262A (zh) | 一种半覆盖自组织的动态组播路由方法 | |
USRE49943E1 (en) | System and method for a context layer switch | |
CN1263267C (zh) | 漫游的转换器或路由器 | |
CN1309266C (zh) | 用于自组织通信网络中的移动节点的协议和结构 | |
Marbach et al. | Cooperation in wireless ad hoc networks: A market-based approach | |
CN1466340A (zh) | 以策略流方式转发数据的方法和数据转发设备 | |
CN101155143B (zh) | 数据包中继设备 | |
CN1496632A (zh) | 用在扩展局域网中的以优先级为基础的负载平衡方法和设备 | |
CN1435027A (zh) | 用于移动特设网络的移动ip | |
CN1825831A (zh) | 数据包中继装置和通信频带控制方法 | |
CN1801783A (zh) | 一种基于ip/mpls/bgp的多域组播一体化数据分发结构及方法 | |
CN104580165B (zh) | 智慧协同网络中的一种协作缓存方法 | |
CN1874284A (zh) | 一种用于构建簇状对等网络的分布式聚集方法 | |
CN1744571A (zh) | 减少网络内媒体接入控制地址学习的方法 | |
CN101052004A (zh) | Ip网络中基于虚拟分发网的多播传送方法 | |
CN1852212A (zh) | 一种提供虚拟专用网站点之间通信的方法 | |
CN1534944A (zh) | 针对基于cbt的层叠组播配置基于方向的基于核心的树 | |
CN105049347A (zh) | 一种基于社会网络任务分发模型的dtn路由方法 | |
CN101160799B (zh) | 边缘或分组网关控制系统及其实现控制方法 | |
Huang et al. | Utility-optimized flow-level bandwidth allocation in hybrid SDNs | |
CN1968205A (zh) | 一种半网状网的路由方法及其系统 | |
CN100426805C (zh) | 下一代网络中边缘或分组网关控制系统及其方法 | |
Wang et al. | Traffic engineered multicast content delivery without MPLS overlay | |
CN1960325A (zh) | 一种桥接网络中的数据处理方法及一种桥接网络 | |
CN1941740A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091021 Termination date: 20160124 |
|
EXPY | Termination of patent right or utility model |