用于传输广播数据的方法和系统与流程

文档序号:11935826阅读:412来源:国知局
用于传输广播数据的方法和系统与流程

本发明总体上涉及计算机网络的领域。更具体地说,本发明涉及由通信网关执行的用于将广播数据传输到通过互连网络可到达的节点或主机的方法。



背景技术:

Bonjour是由苹果公司(Apple Inc.)开发的装置使用的用于实现自动且简易地发现因特网协议(IP)网络上的计算机、装置和服务的零配置网络组播域命名系统协议。Bonjour(如同其它组播服务,例如微软公司(Microsoft)的UPnP)使用行业标准IP协议以允许装置自动地发现彼此而不需要输入IP地址或配置DNS服务器。这为网络装置和服务的用户带来了简单性和易用性。消除了对设置例如动态主机配置协议、DNS和DNS服务目录等服务的需要,Bonjour使得每个装置能够连续地公布并发现服务。通过广播Bonjour服务消息,打印机、服务器和其它共享装置可以播发它们提供的服务。接着客户端装置监测Bonjour广告并连接到合适服务器,如同任何其它服务一样。协议还允许装置请求网络上的服务(服务发现)以及对传入请求作出响应。单个装置可以同时是客户端和服务器两者。自动发现让客户端能够容易地使用由另一装置或服务器提供的服务。

不利的是,Bonjour产生大量网络流量。在服务发现过程期间,当装置浏览服务时,装置发送查询以发现具体服务是否在网络中或在域中可用。装置发布初始查询并且接着在高达一小时的最大间隔在1秒、2秒、4秒、8秒等之后按指数律较不频繁地发送后续查询。同样地,当服务在网络上开始时,服务通过相同的指数回退算法播报其呈现。在通过公用网络、专用网络、隧道或虚拟专用网络(VPN)连接的网络中,此类流量的数量可以是大量的。随着在网络上存在数百或数千苹果客户端,组播流量迅速膨胀到惊人的比例。

Bonjour(和类似组播服务)存在的另一问题是仅在单个子网或虚拟局域网(VLAN)内的装置可见服务广告的广播。因此,在具有大型多VLAN网络的企业中,Bonjour流量将不跨越VLAN。这意味着一个VLAN中的Bonjour装置(比如打印机)无法被另一VLAN中的客户端装置使用。

因此,当两个网络连接在一起时或当一个主机通过基于IP的隧道连接到另一网络时,为了减少网络流量通常阻挡组播数据,例如来自Bonjour协议的数据。此组播数据的阻挡给用户和主机带来不便,因为用户和主机不能够接收源自另一网络的组播数据。

因特网工程任务小组(IETF)请求注解(RFC)6513已经揭示了一种用于通过隧道和/或MPFS技术将基于IP的组播数据中继转发到不同网络的方法。IETF RFC 6513指定BGP/MPFS IP VPN内的组播流量如何从一个VPN站点行进到另一VPN站点的特定协议和操作步骤。

思科公司(Cisco)已经揭示了一种Bonjour网关,通过高速缓存来自一个或多个源/主机的Bonjour广告并且在Bonjour客户端询问或请求服务时回应Bonjour客户端。思科公司揭示的解决方案要求Bonjour网关了解Bonjour协议以便高速缓存Bonjour流量并且代表其它有Bonjour协议能力的装置进行请求或回复。Bonjour网关用作代理。

另一种方法是使用专门配置的DNS服务器以向不同的网络提供基于IP的组播数据。然而,并非所有网络都被允许具有专门配置的DNS服务器。

如果无区别地将组播数据-链路层数据从一个网络传输、路由或转发到另一网络,那么隧道的容量会被组播数据-链路层数据消耗。因此,需要在网关或路由器处实施智能的方法以便允许有区别地传输、路由或转发组播数据同时不消耗太多网络资源。



技术实现要素:

本发明揭示用于在通信网关处传输广播数据的方法和系统。通信网关首先从主机或节点接收包括广播数据的广播包。随后,通信网关确定广播包是否符合至少一个条件。如果广播包符合至少一个条件,那么通信网关确定是否修改广播包的存留时间(TTL)值。如果确定修改TTL值,那么修改TTL值,并且通信网关随后基于所述TTL值转发广播包。目标地址通过互连网络,例如因特网可到达。

根据本发明的一个实施例,至少一个条件基于广播包的源地址、目标地址和端口号中的一个或多个。

根据本发明的一个实施例,在将广播包转发到目标地址之前,通信网关将广播包封装在因特网协议(IP)包中。

根据本发明的一个实施例,广播包包括广播数据,例如服务广告、服务请求、对服务请求的响应、对服务广告的响应、呈现指示和消息。

根据本发明的一个实施例,如果广播包的TTL已到期或将到期,那么通信网关确定修改TTL值。

根据本发明的一个实施例,如果广播包符合至少一个条件,那么通信网关还可以在转发广播包之前修改广播包的其它字段。可以修改的其它字段包括广播包的目标地址和源地址中的至少一个。

根据本发明的一个实施例,通过集中式虚拟专用网络(VPN)连接转发广播包。

本发明进一步揭示用于在通信网关处传输广播数据的方法和系统,其中所述方法包括以下步骤:从主机或节点接收广播包以及确定广播包是否符合至少一个条件。当广播包不符合至少一个条件时,通信网关将广播包转发到其目标,而不管广播包的TTL值。或者,当广播包符合至少一个条件时,通信网关确定广播包的TTL是否已到期。如果TTL尚未到期,那么随后转发广播包。如果TTL已到期,那么不转发广播包。

具体实施方式

以下说明仅提供优选的示例性实施例和示例性实施例,且不意图限制本发明的范围、适用性或配置。实际上,优选示例性实施例和示例性实施例的以下说明将为本领域技术人员提供实施本发明的优选示例性实施例的有效说明。应理解,在不脱离如在所附权利要求书中阐述的本发明的精神和范围的情况下可以对元件的功能和布置进行各种改变。

同样,应注意,实施例可以描述为过程,过程描绘为流程图、流程图表、数据流图、结构图或框图。尽管流程图可以将操作描述为连续过程,但许多操作可以并行或同时执行。另外,可以重新布置操作的顺序。当操作完成时,过程终止,但是过程可以具有不包含在图中的另外步骤。过程可以对应于方法、功能、程序、子例程、子程序等。当过程对应于函数时,其终止对应于函数返回到调用函数或主函数。

此外,如本文所揭示,术语“辅助存储装置”以及“主存储器”可以表示用于存储数据的一个或多个装置,包含只读存储器(ROM)、随机存取存储器(RAM)、磁性RAM、磁芯存储器、磁盘存储媒体、光学存储媒体、快闪存储器装置和/或用于存储信息的其它机器可读媒体。术语“机器可读媒体”包含但不限于便携式或固定存储装置、光学存储装置、无线信道以及能够存储、含有或载送指令和/或数据的各种其它媒体。机器可读媒体可以通过虚拟化来实现,且可以是虚拟机器可读媒体,包含在基于云的实例中的虚拟机器可读媒体。

此外,实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施。当在软件、固件、中间件或微码中实施时,执行必要任务的程序代码、代码段或指令代码可以存储在例如存储媒体等机器可读媒体中。处理单元可以执行必需的任务。处理单元可以是CPU、ASIC半导体芯片、半导体芯片、逻辑单元、数字处理器、模拟处理器、FPGA或能够执行逻辑和算术功能的任何处理器。指令代码可以表示步骤、函数、子程序、程序、例程、子例程、模块、软件包、类别,或指令、数据结构或程序语句的任何组合。指令代码可以通过传递和/或接收信息、数据、自变量、参数或存储器内容耦合到另一指令代码或硬件电路。信息、自变量、参数、数据等可以经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的方式传递、转发或传输。处理单元可以通过虚拟化来实现,且可以是虚拟处理单元,包含在基于云的实例中的虚拟处理单元。

网络接口可以是虚拟网络接口,包含在基于云的实例中的虚拟网络接口

图1说明根据本发明的一个实施例调适的系统100。系统100包含多个站点102和104,所述站点各自包括至少一个通信网关106和108。通信网关106和108可以实施为支持集中多个因特网连接的带宽的多WAN路由器,支持集中多个因特网连接的带宽的单个WAN和/或不支持集中多个因特网连接的带宽的单个WAN。通过网络110连接通信网关106和108。网络110可以包括局域网(LAN)、城域网(MAN)、广域网(WAN)、无线网络、公共交换电话网络(PSTN)、因特网、企业内部网、外联网等。

站点102和通信网关106可以包括M个连接112,且站点104和通信网关108可以包括N个连接114。连接112和114是用于传送在站点102与104之间的网络110内信息的数据连接。在所说明的实施例中,M等于3且N等于2;然而,这些值可以根据所需路由器和配置而改变。M个连接112和N个114可以具有类似的或不同的带宽容量。此外,连接112和114可以包括不同类型的WAN连接,例如WiFi、电缆、DSL、T1、3G、4G、卫星连接等。还应注意,站点102和站点104可以被认为是发送器和接收器两者,并且关于任一站点的功能性的论述可以在另一站点上实施。换句话说,系统100可以实施为对称网络。通过多个网络接口606中的一个或多个建立N个连接114。

通信网关106和108通过M×N个隧道116连接。使用M个连接112和N个连接114建立M×N个隧道116。对于M或N的值没有限制。在一个变体中,在通信网关106与108之间建立的隧道的数目可以比M乘以N更多或更少。出于说明的目的,如果M等于3且N等于2,那么在通信网关106与108之间建立的隧道的数目可以是一、十或任何数目。优选地,所建立的隧道的数目应在通信网关106和108能够在不利地影响性能的情况下操作的计算和网络资源内。

服务器121能够向至少一个主机提供服务。所述服务可以包含多媒体流、数据分布、内容分布、多媒体数据收集、视频广播、视频组播、音频广播、音频组播、游戏流、游戏托管、应用程序托管、应用程序分布、编码、解码、目录以及主机可能需要的任何其它服务。服务器121通过送出服务广告131到本地网向位于同一本地网内的主机和节点(例如,站点104)广播其服务能力。当通信网关108通过连接到本地网的网络接口从服务器121接收服务广告131时,所述通信网关108在确定的情况下使用经由另一网络接口建立的N个连接114中的一个转发服务广告132到通信网关106。服务广告132是基于服务广告131。含有服务广告132的一个或多个包通过使用M×N个隧道116中的一个和M个连接112中的一个到达通信网关106。

当通信网关106接收服务广告132时,所述通信网关106将另一服务广告133转发到其所连接到的一个或多个局域网。任选地,通信网关106基于一个或多个条件或策略确定是否转发服务广告。服务广告133是基于服务广告132。当主机或节点(例如,显示器122)想要订阅服务时,显示器122发送响应141到服务器121。响应141可以含有用于订阅服务广告133中播发的服务所必需的信息,包含识别信息、安全信息、服务请求信息、服务终止信息、位置信息和支付信息。显示器122可以将响应141传输为单播消息、组播消息或广播消息。

通信网关106接收响应141,因为响应141或者指定针对服务器121或者组播/广播到通信网关106所连接到的同一本地网。在通信网关106接收响应141之后,所述通信网关106将响应142转发到通信网关108。含有响应142的一个或多个包通过使用M×N个隧道116中的一个以及M个连接112中的一个和N个连接114中的一个到达通信网关108。响应142是基于响应141。

当通信网关104接收响应142时,所述通信网关104将另一响应143转发到服务器121。响应143是基于响应142。服务器121接着可以处理响应143以确定将针对显示器122执行的合适动作。

类似地,显示器122可以广播服务请求。当通信网关106通过连接到站点102的网络接口接收服务请求时,所述通信网关106基于至少一个条件确定是否将服务请求转发到通信网关108。如果通信网关106确定转发服务请求,那么所述通信网关106通过在通信网关106与108之间建立的M×N个隧道中的一个来转发服务请求。当通信网关108接收服务请求时,所述通信网关108将服务请求广播到站点104。或者,通信网关108仅在通信网关108能够识别服务器121应为请求的接收者时将服务请求转发到服务器121。或者,通信网关108在其确定的情况下不将服务请求广播到站点104或不将服务请求转发到服务器121。这可以在通信网关108无法确认服务请求的真实性、无法确认服务请求的完整性、不具有资源、确定服务请求不符合条件、确定服务请求不符合条件、确定服务请求尚不符合至少一个条件或确定符合策略的情况下发生。

图6是根据本发明的一个实施例的通信网关(例如,通信网关108)的说明性框图。通信网关108包括处理单元602、主存储器603、系统总线604、辅助存储装置605以及多个网络接口606。处理单元602和主存储器603彼此直接连接。系统总线604将处理单元602直接或间接连接到辅助存储装置605和多个网络接口606。使用系统总线504允许通信网关106具有增加的模块性。系统总线604将处理单元602耦合到辅助存储装置605以及多个网络接口606。系统总线604可以是若干类型的总线结构中的任一个,包含使用各种总线架构中的任一个的存储器总线、外围总线以及局部总线。辅助存储装置605存储程序指令以供处理单元602执行。辅助存储装置605根据一个实施例进一步存储用于决定是否应通过多个网络接口606转发广播数据的条件。在一个实施例中,图6的框图也可以表示通信网关106的系统。

图2A是说明根据一个实施例的详细示出通信网关108如何转发服务广告132的过程的流程图。

当在步骤201处通信网关108接收含有广播数据的帧或包时,处理单元602在步骤202处确定广播数据是否符合至少一个条件。广播数据可以是服务广告、服务请求、以及对服务请求的响应、对服务广告的响应、呈现指示、消息、或去往多于一个接收者的任何类型的数据。为方便阅读,此处广播数据还指组播数据,因此本发明还适用于组播数据。除非特别说明,否则在下文中广播数据也视为组播数据。

当在步骤202处广播数据已经符合至少一个条件时,随后在步骤203处通信网关108转发广播数据。如果在步骤202处广播数据尚不符合至少一个条件,那么在步骤204处通信网关108不转发任何广播数据。

步骤202用于滤出不希望转发到通信网关106的广播数据。在不滤出不必要的广播数据的情况下,网络容量和资源会被不必要的广播数据大量消耗。可以存在一个或多个条件来确定可以转发的广播数据的种类。出于说明的目的,在一个实例中,条件是仅转发Bonjour协议广播数据。通信网关108仅使用Bonjour协议将广播数据转发到通信网关106。通信网关108检查其接收到的IP包的目标IP地址和端口号以确定所述IP包是否具有Bonjour协议广播数据。例如,针对Bonjour协议的端口号是5353并且传输协议可以是TCP或UDP。

在另一说明中,存在两个条件。第一条件是允许基于广播数据的源IP地址的视频流广播数据,并且第二条件是允许基于广播数据承载的内容的用于管理的广播数据。当通信网关108拦截或接收含有广播数据的帧或包时,通信网关108在广播数据是使用因特网协议发送的情况下检查广播数据的源地址、广播数据的端口号,和/或通过使用内容检查技术(例如,深度包检测)检查广播数据的内容,并且检查内容的标头,从而确定广播数据是否符合两个条件中的任一个。

根据本发明的一个实施例,通过通信网关108将条件存储于辅助存储装置605中。或者,从远程服务器(包含存储于企业内部网、外联网、第三方服务提供商、云计算服务提供商或虚拟化服务器中的服务器)检索条件。

图2B是说明根据一个实施例的详细示出通信网关108如何转发服务广告132的过程的流程图。图2A与图2B之间的不同之处在于用步骤205替代步骤203。在步骤205处,根据至少一个策略由通信网关转发广播数据。策略确定通信网关如何转发广播数据。出于说明的目的,在步骤202处使用的条件是基于广播数据的广播协议的端口号。在步骤205处由通信网关108的管理员或制造商提高第一策略以允许仅在特定时间段期间,例如,在8a.m.之前以及在6p.m.之后通过M×N个隧道116传输广播数据。第二策略将允许在任何时候由具有指定IP地址的主机通过M×N个隧道116传输广播数据。因此,在办公时间期间M×N个隧道116的容量不被广播数据消耗,而属于具有指定IP地址的主机的广播数据无论时间仍穿过M×N个隧道116。随后,通过主机传输广播数据或传输广播数据到主机均不受第一条件影响。

根据本发明的一个实施例,在步骤205处使用的策略是基于M×N个隧道116的容量。当M×N个隧道116的可用容量已经用到阈值时,不通过M×N个隧道116传输广播数据以便保留M×N个隧道116的容量,即使符合步骤202处的条件。在一个变体中,仍允许通过M×N个隧道116传输广播数据的一部分,而非不阻挡所有广播数据。出于说明的目的,当M×N个隧道115的百分之三十的带宽容量已被其它非广播数据流量使用时,通信网关丢弃一半的广播数据。

根据本发明的一个实施例,在步骤205处使用的策略是确定使用M×N个隧道116中的哪一个或哪些多个隧道来传输广播数据。出于说明的目的,策略设置成通过所有M×N个隧道116转发基于Bonjour协议的广播数据并且通过M×N个隧道116中的一个转发广播地址解析协议(ARP)消息。此策略可以有助于允许基于Bonjour协议的广播数据比广播ARP消息传递得更快。这意味着基于Bonjour协议的广播数据具有优于广播ARP消息的更高优先级。

根据本发明的一个实施例,通过通信网关108将策略存储于辅助存储装置605中。或者,从远程服务器(包含存储于企业内部网、外联网、第三方服务提供商、云计算服务提供商或虚拟化服务器中的服务器)检索策略。

图3A、图3B、图3C和图3D说明在图2中的过程的不同阶段处的广播数据的结构。根据图3A中所说明的本发明的一个实施例,当服务器121首先发送出广播数据301(例如,服务广告131)时,广播数据301包含于IP包302(网络层包)中,并且IP包302包含于以太网帧303(数据链路层帧)中。当在步骤201中通信网关108已经接收到以太网帧303之后,在步骤202中处理单元602确定广播数据301是否符合至少一个条件。在一个变体中,在步骤202中,处理单元602仅检查IP包302的端口号以确定是否应转发广播数据。在一个变体中,在步骤202中,处理单元602根据条件检查以太网帧303以确定是否应转发广播数据。在一个变体中,在步骤202中,处理单元602根据条件检查广播数据301以确定是否应转发广播数据。在一个变体中,处理单元602根据条件检查IP包302、以太网帧303和广播数据301中的两个或全部以确定是否应转发广播数据。实施的检查越详细,通信网关108将不必要的广播数据或伪造数据转发到通信网关106的概率就越低。实施的检查越不详细,所需的计算资源就越少。

当通信网关108将广播数据301转发到通信网关106时,存在通信网关108如何转发广播数据301的两个实施例。

第一实施例是通信网关108将以太网帧303封装在如图3B中所说明的封装IP包304中,并且随后将封装IP包304传输到通信网关106。在通信网关106已接收封装IP包304之后,所述通信网关将封装IP包304解封装以检索以太网帧303并且随后将以太网帧303广播到其所连接到的局域网。局域网中的主机和节点随后可以确定是否对IP包302中包含的广播数据301作出响应。此实施例的一个优势是通信网关108直接封装以太网帧,使得通信网关106和108共同用作以太网桥。此实施例的另一优势是不涉及路由。这大大减小了通信网关106和108的负载。另一优势是支持多个网络层协议,例如IP、IPS和SNA。因此,可以通过网络层协议(包含IP)封装广播数据301。

在一个变体中,当通过第二层虚拟专用网络(L2VPN)技术连接通信网关108和通信网关106时使用第一实施例。在一个变体中,通信网关106使用以太网帧305来广播IP包302,而不是使用以太网帧303,如图3D中所说明。以太网帧303与以太网帧305之间的主要区别是以太网帧的源地址。以太网帧305的源地址是通信网关106的以太网地址。

第二实施例是如图3C中所说明将IP包302封装在封装IP包304中。当通信网关108从服务器121接收以太网帧303时,通信网关108从以太网帧303检索IP包302并且随后将封装IP包304传输到通信网关106。在通信网关106已经接收封装IP包304之后,所述通信网关将封装IP包304解封装以检索IP包302,随后将IP包302广播到其所连接到的局域网。局域网中的主机和节点随后可以确定是否对IP包303中包含的广播数据301作出响应。此实施例的一个优势是封装IP包304的大小小于图3B中所说明的第一实施例中的封装IP包304的大小,因为不需要包含以太网帧303。另一优势是传输不受以太网协议或其它数据链路网络协议的限制的束缚。例如,在此实施例中可以避免以太网的往返时间限制。

在一个变体中,当通过第三层隧道连接通信网关108和通信网关106时使用第二实施例;因此分别连接到通信网关106和108的局域网被视为在同一虚拟专用网络(VPN)中。

根据本发明的一个实施例,使用第二层虚拟专用网络(L2VPN)协议中的一个通过通信网关106和108建立M×N个隧道116。符合至少一个条件的广播数据可以通过M×N个隧道116中的一个或多个传输。存在多种方式用于通信网关108建立F2VPN的多种方法,包含多协议标签交换(MPLS)、异步传输模式(ATM)和帧中继。

根据本发明的一个实施例,使用IP虚拟专用网络协议中的一个通过通信网关106和108建立M×N个隧道116。符合至少一个条件的广播数据可以通过M×N个隧道116中的一个或多个来传输。存在多种方式用于通信网关108建立基于IP的M×N个隧道116,包含使用因特网协议安全(IPsec)、传输层安全(SSL/TLS)、安全外壳(SSH)、Pep VPN和SpeedFusion。

根据本发明的一个实施例,不管是使用第二层VPN协议还是使用第三层VPN协议建立M×N个隧道116,均使用M×N个隧道116中的一个或多个传输广播数据。在一个变体中,当M×N个隧道中的一个或多个被破坏且无法使用时,通信网关106和108停止使用被破坏的隧道来传输广播数据。在一个变体中,当含有广播数据的IP包在M×N个隧道116中被丢弃或丢失时,传输通信网关将通过M×N个隧道116中的另一个在另一IP包中重传广播数据。在一个变体中,使用多个M×N个隧道116由通信网关108传输复制的广播数据。接收通信网关106将复制广播数据中的第一接收到的广播数据转发到其所连接到的局域网并且丢弃复制广播数据中的其它广播数据。这不仅促成更高的可用性,而且促成更快的传递。

在一个变体中,仅第一组M×N个隧道116用于传输广播数据,并且其它非第一组M×N个隧道116不用于传输广播数据。响应于广播数据的单播数据不限制为通过M×N个隧道116中的第一组或任一个来传输,除非传输通信网关的管理员或制造商明确创建网络策略以这样做。第一组的使用允许针对广播数据的网络流量管理。出于说明的目的,管理员可以为广播数据分配更高优先级,因此可以仅使用高速M×N个隧道116中的一个或多个传输广播数据。在另一说明中,制造商可以预先配置传输通信网关(例如,通信网关108)以使用低成本的接入链路来传输广播数据,并且因此仅低成本的接入链路所承载的隧道属于第一组M×N个隧道116。

在一个变体中,第二组M×N个隧道116不用于传输广播数据,并且其它非第一组M×N个隧道116允许用于传输广播数据。限制M×N个隧道116中的几个隧道不被使用确保了广播数据不消耗所述几个隧道的带宽,其可以保留用于其它网络流量。

用于确定可以使用M×N个隧道116中的哪些隧道或不允许M×N个隧道116中的哪些隧道承载广播数据的策略或配置存储于通信网关108的辅助存储装置605中。策略或配置也可以存储于通信网关106的辅助存储装置中。在一个变体中,可以通过远程服务器(包含存储于企业内部网、外联网、第三方服务提供商、云计算服务提供商或虚拟化服务器中的服务器)检索策略或配置。

图4说明根据实施例调适的系统400,其被配置成允许通过通信网关108将通信网关106传输的广播数据传输到通信网关401,并且将通信网关401传输的广播数据传输到通信网关106。系统400被配置为集线器架构,因此通信网关108充当广播数据集线器。如在图1中,通过M×N个隧道116连接通信网关106和108。通信网关106具有用于连接到互连网络110的一个接入链路112-1。接入链路112-1内部承载M×N个隧道116中的两个。通信网关401具有连接到互连网络110的两个接入链路402-1和402-2。通信网关108和401通过Y×Z个隧道411连接。不存在直接连接通信网关106和401的隧道。

当位于通信网关106所连接到的局域网中的服务器传输广播数据时,如果所述广播数据符合至少一个第一条件,那么通信网关106将所述广播数据转发到通信网关108。当通信网关108接收所述广播数据时,所述通信网关将执行两个任务。第一个任务是如在其它实施例中所论述的将广播数据转发到其所连接到的局域网。第二个任务是决定是否将广播数据转发到通信网关401。根据本发明的一个实施例,通信网关108的处理单元602根据至少一个第二条件作出转发或不转发接收到的广播数据的决策。至少一个第二条件可以与通信网关106处的至少一个第一条件相同、基于所述至少一个第一条件或不同于所述至少一个第一条件。至少一个第二条件类似于步骤205处的至少一个条件。因此,当通信网关108从通信网关106接收广播数据时,通信网关108经历图2A中的相同步骤。在一个变体中,通信网关108在不决定广播数据是否符合至少一个第二条件的情况下将广播数据转发到通信网关401,并且其将源自通信网关106的所有广播数据转发到通信网关401。

在一个变体中,决定是否将广播数据转发到通信网关401的第二任务是基于至少一个第二策略。至少一个第二策略类似于步骤205处的至少一个策略。因此,当通信网关108从通信网关106接收广播数据时,通信网关108经历图2B中的相同步骤。

使用如图4中所说明的集线器架构和使用多个隧道的优势包含广播数据分布的集中以及更高的可用性,因为通信网关能够通过多个隧道复制广播数据并传输广播数据。当多个隧道中的一个不能正常工作时,例如经历大量丢包情况,剩余的隧道仍能够承载两个通信网关之间的广播数据。同样,出于说明的目的,如果接入链路114-2运行不符合要求,那么通信网关108仍能够依赖于接入链路114-1来从通信网关106接收广播数据以及将广播数据转发到通信网关401。广播数据分布的集中(例如)允许系统400的管理员通过控制充当集线器的通信网关108来控制在系统400中能够分布以及不能分布的内容。

图5说明根据实施例调适的系统500,其被配置成如系统400中允许通过通信网关108将通信网关106传输的广播数据传输到通信网关401并且将通信网关401传输的广播数据传输到通信网关106。此外,通信网关106和401可以在不经过通信网关108的情况下直接通过隧道501将广播数据传输到彼此以及从彼此接收广播数据。因此,系统500被配置为星形架构。

对于传输和接收广播数据,星形架构优于集线器架构的优势包含减少了通过使用集线器来转发广播数据所需的时间和计算资源。然而,需要在所有通信网关之间建立另外的隧道,例如隧道501。

根据本发明的一个实施例,通信网关在其它通信网关之间的隧道被破坏时转发和/或重传广播数据。使用图5用于说明,源自使用通信网关401作为分布广播数据的网关的第一服务器的广播数据分别到达可经由通信网关108通过隧道411和经由通信网关106通过隧道501接入的其它主机或节点。如果所有隧道501被破坏,那么来自第一服务器的广播数据无法通过隧道501到达通信网关106。随后通信网关401提醒通信网关108关于破坏的隧道501。随后通信网关108通过隧道116将源自第一服务器的广播数据转发到通信网关106。在一个变体中,当所有隧道501被破坏并且隧道116中的一个被破坏时,通信网关108仍能够使用隧道116中的剩余隧道来将源自第一服务器的广播数据转发到通信网关106。

根据本发明的一个实施例,使用均衡技术来传输广播数据。使用图1用于说明,属于源自服务器121的第一数据流的广播数据分布在所有M×N个隧道116之间以到达通信网关106。这样避免依赖于一个特定隧道。

本领域技术人员可以知道,属于大部分协议的广播包或组播包具有同一局域网(FAN)或虚拟FAN(VFAN)中的目标广播地址或目标组播地址作为源。包可以被指定到一个或多个链路本地地址。通常,根据现有技术,路由器可以不转发具有链路本地地址作为目标地址的包。因此在一些协议中,广播包和组播包的存留时间(TTL)值可以设定成1。当包的TTL值设定成1时,路由器可以不转发包,因为TTL到期。

图7是说明根据本发明的一个实施例的过程的流程图。在步骤201中,在通信网关108处接收广播包。如果在步骤202中确定在通信网关108处接收到的广播包符合至少一个条件,那么处理单元602执行步骤701。在步骤701中,处理单元602确定是否修改广播包的TTL值。如果处理单元602确定不修改TTL,那么在TTL尚未到期的情况下在步骤203中将广播包转发到其目标地址。或者,如果处理单元602确定修改TTL值,那么在步骤702中修改TTL值并且因此可以更新广播包的IP标头的校验和。当TTL值已修改且尚未到期时,随后在步骤203中将广播包转发到目标。

出于说明的目的,当广播包的TTL值是1时,处理单元602可以确定将广播包的TTL值修改为2,因此通信网关108可以将广播包转发到可以通过网络110到达的目标。可以增加TTL值。在一个变体中,在不检查TTL值是1还是TTL已到期的情况下处理单元602转发广播包。在一个变体中,在转发广播包之前,处理单元602将TTL值增加一或更多。在一个变体中,处理单元保持TTL值并且转发广播包。本领域技术人员将了解,不同协议可以使用不同TTL值来确定是否到达广播包的存留时间。例如,如果广播包的TTL值是255,那么广播包可以被认为到期,并且在转发包之前通信网关可以减小TTL值,而不是增加TTL值。

在一个变体中,在步骤203中,根据至少一个策略转发广播包。策略确定通信网关108如何转发广播数据,如在图2B的步骤205中所论述。

在步骤202中,至少一个条件可以基于源IP地址、目标IP地址和端口号中的一个或多个。出于说明的目的,第一条件基于目标IP地址。处理单元602检查目标IP地址以确定是否应转发广播包。例如,通信网关108的制造商、用户和/或管理员可以限定特定目标IP地址,使得可以仅转发指定到特定目标IP地址的包,而不转发指定到任何其它目标IP地址的包。在另一实例中,通信网关108的制造商、用户和/或管理员可以限定特定源IP地址,使得可以仅转发源自特定源IP地址的包,而不转发源自任何其它源IP地址的包。在另一实例中,通信网关108的制造商、用户和/或管理员可以限定特定端口号,使得可以仅转发具有特定端口号的包,而不转发具有任何其它端口号的包。

在步骤701中,处理单元602可以确定是否基于一个或多个因素修改广播包的TTL值。例如,处理单元602首先确定TTF值。如果TTF值是1,那么处理单元602确定修改TTF值。随后在步骤702中增加TTF值,并且因此更新包校验和。或者,如果TTF值确定高于1,那么处理单元602确定不修改TTF值并且在步骤203中转发广播包。

在另一实例中,如果TTF已到期,那么处理单元602确定修改TTF值。如果当广播包到达通信网关108时TTF尚未到期,那么处理单元602在步骤701中确定不修改TTF值并且在步骤203中转发广播包。

在另一实例中,如果TTF已到期或将到期,那么处理单元602确定增加TTF值。例如,当TTF将到期时,处理单元602可以将TTF值增加至较大值,使得广播包能够在TTF到期之前被转发到其目标。由于在通信网关108与广播包的目标之间的路由中可以存在多个跃点,TTF值可以因此增加。如果TTF值过低,那么可以不通过路由中的网络节点转发广播包。

在另一实例中,处理单元602根据由通信网关108的用户或管理员设定的策略来确定是否修改TTF值。如果策略是当广播包到达通信网关108时不管广播包的TTF值而忽略TTF,那么处理单元602确定不修改TTF值并且在步骤203中转发广播包。或者,如果策略是修改TTF值,那么在步骤702中,处理单元602修改TTF值。

步骤701和702可以执行用于修改广播包中的任何其它字段,并且不限于修改TTF值。例如,处理单元602可以修改例如源IP地址、目标IP地址等的其它字段,以便允许通过网络110使用IP传输广播包。还可以修改值以允许通过第三层VPN传输广播包。

在一个实例中,如果目标IP地址是广播地址,那么处理单元602可以将目标IP地址修改为对应于广播地址的子网中的主机或节点中的一个或多个的IP地址。处理单元602还可以创建广播包的副本,并且分别将广播包的副本的目标IP地址修改为子网中的其它主机或节点的IP地址。这可以允许广播不被转发到子网中的所有部件。

出于说明的目的,根据图1论述图7。从服务器121发送广播数据,例如服务广告131。服务广告131可以包括在一个或多个广播包中。广播包可以是第二层包,例如,以太网帧303。当通信网关108接收以太网帧303时,所述通信网关从以太网帧303解封装IP包302。处理单元602在步骤202中确定IP包302是否符合至少一个条件。如果不符合至少一个条件,那么执行步骤204并且不转发IP包302。如果符合至少一个条件,那么处理单元602确定是否修改IP包302的TTF值。例如,如果TTF值是1,那么处理单元602在步骤702中可以将TTF值增加到较高值,使得IP包302可以在TTF到期之前被传输到通信网关106。因此,可以更新IP包302的包校验和。IP包302随后可以通过处理单元602封装在封装包304中。M×N个隧道116可以集中以形成集中式VPN连接。可以使用第三层VPN技术建立M×N个隧道116。集中式VPN连接可以用于获得M×N个隧道116的组合带宽。由于IP包302需要通过集中式VPN连接发送,因此IP包302首先封装在封装包304中,并且随后在步骤203中通过集中式VPN连接将封装包304传输到通信网关106。用于将包封装在封装包内部的一个目的是当在集中式连接的另一端接收封装包时有助于重新排序包,因为封装包可能无次序地到达。IP包302的目标地址可以是广播IP地址或组播IP地址。例如,当IP包302可以被指定到IP组播组中的一个或多个节点或主机时,IP包302的目标IP地址可以是IP组播组的IP组播组地址。IP组播组地址通过通信网关106可到达,并且IP组播组中的一个或多个节点或主机也通过通信网关106可到达。封装包304的目标IP地址是通信网关106的IP地址。当通信网关106通过集中式VPN连接接收封装包304时,所述通信网关将封装包304解封装以检索IP包302。IP包302随后被转发到其目标IP地址,所述目标IP地址可以是IP组播组IP地址。因此,IP组播组中的一个或多个节点或主机随后可以从通信网关106接收IP包302的副本。在一个变体中,如果目标IP地址是子网的广播地址,那么通信网关106将IP包302发送到子网中的所有主机。

图8是说明根据本发明的一个实施例的过程的流程图。当通信装置108在步骤201中接收广播包时,处理单元602在步骤202中确定广播包是否符合至少一个条件。如果广播包不符合至少一个条件,那么处理单元602在步骤801中确定忽略TTL值并且在步骤203中转发广播包。或者,如果广播包符合至少一个条件,那么处理单元在步骤802中确定不忽略TTL值。在步骤803中,处理单元602确定TTL是否已到期。如果TTL尚未到期,那么在步骤203中将广播包转发到目标。在步骤204中,不将广播包转发到目标。在一个实例中,步骤202中的至少一个条件可以基于由通信网关108的用户和/或管理员设定的策略。

出于说明的目的,根据图1论述图8。从服务器121发送广播数据,例如服务广告131。服务广告131可以包括在一个或多个广播包中。广播包可以是第二层包,例如以太网帧303。当通信网关108接收以太网帧303时,所述通信网关从以太网帧303解封装IP包302。处理单元602在步骤202中确定IP包302是否符合至少一个条件。如果不符合至少一个条件,那么处理单元602确定忽略TTL,即,不修改IP包302的TTL值,并且在步骤203中转发IP包302,而不管TTL是否已到期。或者,如果符合至少一个条件,那么在步骤802中不忽略TTL值。例如,至少一个条件可以基于IP包302中指示的源IP地址、目标IP地址和/或端口号。在步骤803中,处理单元602确定IP包302的TTL是否已到期。如果TTL已到期,那么在步骤204中不转发IP包302。如果TTL尚未到期,那么IP包302首先封装在封装包304中,并且随后在步骤203中通过集中式VPN连接将封装包304传输到通信网关106。

图9是说明根据本发明的一个实施例的过程的流程图。当通信装置108在步骤201中接收广播包时,处理单元602在步骤202中确定广播包是否符合至少一个条件。如果广播包符合至少一个条件,那么处理单元602在步骤901中确定修改广播包的TTL值并且更新包校验和。如果不符合至少一个条件,那么处理单元602不修改TTL值。在步骤902中,处理单元602确定TTL是否已到期。如果TTL已到期,那么执行步骤204并且不转发广播包。如果TTL值尚未到期,那么处理单元602在步骤203中转发广播包。步骤901可以执行用于修改广播包中的任何其它值,并且不限于修改TTL值。

出于说明的目的,根据图1论述图9。从服务器121发送广播数据,例如服务广告131。服务广告131可以包括在一个或多个广播包中。广播包可以是第二层包,例如以太网帧303。当通信网关108接收以太网帧303时,所述通信网关从以太网帧303解封装IP包302。处理单元602在步骤202中确定IP包302是否符合至少一个条件。如果符合至少一个条件,那么处理单元602在步骤901中修改IP包302的TTL值并且更新IP包302的包校验和。例如,如果TTL值不高于1,那么可以符合至少一个条件,并且由此处理单元602增加TTL值,使得可以通过集中式VPN连接转发IP包302。在另一实例中,至少一个条件可以基于IP包302的源IP地址、目标IP地址和/或端口号。如果不符合至少一个条件,那么处理单元602不修改TTL值。在步骤902中,处理单元602确定TTL值是否已到期。如果TTL已到期,那么执行步骤204并且不转发IP包302。如果TTL尚未到期,那么IP包302首先封装在封装包304中,并且随后在步骤203中通过集中式VPN连接将封装包304传输到通信网关106。

选择和描述所述实施例以便最佳地解释本发明的原理和其实际应用,由此使得本领域的其它技术人员能够以适于所预期的特定用途的各种修改最佳地利用本发明和各个实施例。

附图说明

图1说明根据本发明的一个实施例调适的系统;

图2A是说明根据一个实施例的示出通信网关如何转发服务广告的过程的流程图;

图2B是说明根据一个实施例的示出通信网关如何转发服务广告的过程的流程图;

图3A说明根据一个实施例的广播数据的结构;

图3B说明根据一个实施例的广播数据的结构;

图3C说明根据一个实施例的广播数据的结构;

图3D说明根据一个实施例的广播数据的结构;

图4说明根据本发明的一个实施例调适的用于传输广播数据的系统;

图5说明根据本发明的一个实施例调适的用于传输广播数据的系统;

图6是根据本发明的一个实施例的通信网关的说明性框图;

图7是说明根据本发明的一个实施例的用于转发广播包的过程的流程图;

图8是说明根据本发明的一个实施例的用于转发广播包的过程的流程图;

图9是说明根据本发明的一个实施例的用于转发广播包的过程的流程图。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1