一种应用于分布式路由器组网的报文发送方法、设备及系统与流程

文档序号:19535587发布日期:2019-12-27 15:51阅读:347来源:国知局
一种应用于分布式路由器组网的报文发送方法、设备及系统与流程

本申请实施例涉及网络通信技术领域,尤其涉及一种应用于分布式路由器组网的报文发送方法、设备及系统。



背景技术:

随着物联网技术的发展,家居设备智能化、网络化成为趋势。智能家居系统中,联网的家居设备数量逐步增多,比如,可以包括安防监控设备、智能窗帘、智能灯、智能音箱、智能电视、智能空调等各种家居设备。一个智能家居系统中,家居设备的数量可以达到几十个。同时,随着高清视频、虚拟现实、增强现实、直播技术的逐渐普及,用户要在家居设备获得完美的观看体验,需要有较高的带宽保证。

家居设备数量的剧增,以及一些家居设备对高带宽的需求,对智能家居系统的网络信号的覆盖率和带宽都有较高要求。

由于家庭环境中家具、墙面等物体的隔挡,单个路由器通常无法实现智能家居系统网络信号的全覆盖,分布式路由器的形态逐渐普及。通过多个路由器分布式组网,可以实现智能家居系统中网络信号完整覆盖,很好的解决网络信号覆盖问题。

目前的分布式路由器组网方案,多个路由器组成一个局域网。接入局域网中任意一个路由器的家居设备,最终都是通过具备连接外部网络能力的一个路由器与外部网络通信;单个家居设备只能使用一个路由器的带宽,无法实现多个路由器带宽叠加的效果,无法满足家居设备对高带宽的需求。



技术实现要素:

本申请实施例提供一种应用于分布式路由器组网的报文发送方法、设备及系统,可以实现多路由器分布式组网中,多个路由器的带宽聚合,提升智能家居系统整个网络的整体带宽。

第一方面,本申请实施例提供一种应用于分布式路由器组网的报文发送方法,该分布式路由器组网包括至少两个路由器,至少两个路由器位于同一个局域网中,每个路由器具有与外部网络通信的能力。该报文发送方法包括:第一路由器接收报文;根据报文负载分担规则将接收的报文发送至目的路由器;其中,第一路由器为至少两个路由器中的任意一个;目的路由器包括第一路由器或第二路由器,或目的路由器包括第一路由器和第二路由器;第二路由器为第一路由器的邻居节点路由器,第一路由器的邻居节点路由器为与第一路由器直接连接的路由器。

在该方法中,局域网中的任意一个路由器接收报文后,可以根据报文负载分担规则,向局域网中多个路由器分发报文,由多个路由器将报文分发至外部网络。这样,可以实现分布式路由器组网中,多个路由器的带宽聚合,提升智能家居系统整个网络的整体带宽。

结合第一方面,在一种可能的设计方式中,第一路由器获取该局域网中所有的路由器的拓扑信息和上行状态;并根据该至少两个路由器的拓扑信息和上行状态,确定在第一路由器上的报文负载分担规则。其中,拓扑信息用于表示路由器在局域网中与其他路由器的连接关系,上行状态为路由器与外部网络连接的上行链路状态。

结合第一方面,在一种可能的设计方式中,第一路由器根据该至少两个路由器的拓扑信息和上行状态,确定第一路由器的邻居节点个数m;以及第i个邻居节点的可达节点个数ni;确定报文负载分担规则为:第一路由器接收的报文中,1/(n1+n2+…ni+…nm+1)的报文,由第一路由器向外部网络发送;第一路由器接收的报文中,ni/(n1+n2+…ni+…nm+1)的报文,向第i个邻居节点发送;其中,m>0,m>=i>0,ni>0。

在该方法中,根据邻居节点的可达节点个数,向邻居节点分发相应份数的报文。这样,可以实现局域网中多个路由器平均分担报文。

结合第一方面,在一种可能的设计方式中,若第一路由器接收的报文为从第三路由器接收的,则第三路由器不计入第一路由器的邻居节点中。其中,第三路由器为第二路由器中的一个。也就是说,第一路由器从邻居节点接收的报文,不能分发至该邻居节点,以避免发生环路。

结合第一方面,在一种可能的设计方式中,第一路由器根据报文负载分担规则将接收的报文发送至目的路由器包括:第一路由器以会话为单位,根据报文负载分担规则将接收的报文发送至目的路由器;或者,第一路由器以报文的目的ip地址为单位,根据报文负载分担规则将接收的报文发送至目的路由器。

结合第一方面,在一种可能的设计方式中,第一路由器接收的报文包括第一报文和第二报文;第一路由器分别对第一报文和第二报文,确定在第一路由器上的报文负载分担规则。其中,第一报文为第一路由器从接入第一路由器的终端设备接收的报文,第二报文为第一路由器从第一路由器的邻居节点接收的报文。

结合第一方面,在一种可能的设计方式中,若接收的报文为第二报文,且第二报文在局域网内的路由器间的转发跳数大于或等于第一预设值,则目的路由器为第一路由器。也就是说,报文在路由器间的转发跳数不能超过预设数值,以避免报文转发次数过多,导致报文发送的时延太大。

结合第一方面,在一种可能的设计方式中,若接收的报文为时延敏感业务的报文,则目的路由器为第一路由器。在该方法中,对于时延敏感业务的报文,不进行路由器间负载分担,直接由接收报文的路由器发送至外部网络,以避免报文转发带来的时延。

结合第一方面,在一种可能的设计方式中,若目的路由器包括第一路由器,则第一路由器向外部网络发送报文。也就是说,局域网中任意一个路由器都可以直接与外部网络通信。

结合第一方面,在一种可能的设计方式中,该局域网为树形组网形式、网状组网形式、星形组网形式或链形组网形式。

第二方面,本申请实施例提供一种路由器,该路由器可以实现第一方面所述的应用于分布式路由器组网的报文发送方法,其可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。在一种可能的设计中,该路由器可以包括处理器和存储器。该处理器被配置为支持该路由器执行上述第一方面方法中相应的功能。存储器用于与处理器耦合,其保存该路由器必要的程序指令和数据。

第三方面,本申请实施例提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在路由器上运行时,使得路由器执行如上述任一方面及其可能的设计方式所述的应用于分布式路由器组网的报文发送方法。

第四方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述任一方面及其可能的设计方式所述的应用于分布式路由器组网的报文发送方法。

第二方面所述的路由器,第三方面所述的计算机存储介质以及第四方面所述的计算机程序产品所带来的技术效果可参见上述第一方面及其不同设计方式所带来的技术效果,此处不再赘述。

附图说明

图1a为一种分布式路由器树形组网形式的局域网架构示意图;

图1b为一种分布式路由器网状组网形式的局域网架构示意图;

图1c为一种分布式路由器星形组网形式的局域网架构示意图;

图1d为一种分布式路由器链形组网形式的局域网架构示意图;

图2a为一种树形组网形式的局域网内的报文发送方法示意图;

图2b为一种网状组网形式的局域网内的报文发送方法示意图;

图3a为本申请实施例提供的一种路由器的结构示意图一;

图3b为本申请实施例提供的一种路由器的结构示意图二;

图4为本申请实施例提供的应用于分布式路由器组网的报文发送方法所适用的一种系统架构示意图;

图5为本申请实施例提供的一种路由器组成的局域网架构示意图;

图6为本申请实施例提供的一种应用于分布式路由器组网的报文发送方法流程图;

图7a为本申请实施例提供的一种应用于分布式路由器组网的报文发送方法示意图一;

图7b为本申请实施例提供的一种应用于分布式路由器组网的报文发送方法示意图二;

图8为本申请实施例提供的一种应用于分布式路由器组网的报文发送方法示意图三;

图9为本申请实施例提供的一种路由器的结构示意图三。

具体实施方式

分布式路由器组网方案,是由多个路由器组成一个局域网,对外提供统一的服务集标识(servicesetidentifier,ssid)。局域网信号覆盖范围内的终端设备可以接入局域网中任意一个路由器,比如,终端设备可以选择接入局域网中信号最强的路由器下。终端设备还可以在路由器间漫游,切换接入的路由器。

分布式路由器有多种组网形式。比如,分布式路由器可以是树形组网、网状组网、星形组网、链形组网等多种形式。

如图1a,其示出了一种分布式路由器树形组网形式。树形组网形式中,局域网的多个路由器中包括一个主路由器,主路由器是根节点(1级节点)。从路由器通过有线连接或无线连接方式一级一级接入主路由器。示例性的,如图1a,从路由器1和从路由器2接入主路由器,从路由器1和从路由器2为2级节点;主路由器是从路由器1和从路由器2的父节点;从路由器1和从路由器2是主路由器的子节点;从路由器1和从路由器2是兄弟节点。从路由器3和从路由器4接入从路由器1,从路由器3和从路由器4为3级节点;从路由器1是从路由器3和从路由器4的父节点;从路由器3和从路由器4是从路由器1的子节点;从路由器3和从路由器4是兄弟节点。从路由器5接入从路由器2,从路由器5为3级节点;从路由器2是从路由器5的父节点;从路由器5是从路由器2的子节点。从路由器6和从路由器7接入从路由器4,从路由器6和从路由器7为4级节点。从路由器4是从路由器6和从路由器7的父节点;从路由器6和从路由器7是从路由器4的子节点;从路由器6和从路由器7是兄弟节点。

如图1b,其示出了一种分布式路由器网状组网形式。网状组网形式中,局域网中的多个路由器是全连接的,路由器间通过有线连接或无线连接方式连接,任意两个路由器间可以存在多条可用路径。示例性的,如图1b,路由器1、路由器2、路由器3、路由器4、路由器5、路由器6和路由器7,组成一个网状局域网;任意两个路由器间存在多条可用路径。比如,路由器6可以通过路由器3,与路由器1进行通信;路由器6还可以通过路由器4,与路由器1进行通信;路由器6还可以通过路由器4,与路由器2进行通信。

如图1c,其示出了一种分布式路由器星形组网形式。星形组网形式中,局域网的多个路由器中包括一个主路由器,多个从路由器通过有线连接或无线连接方式接入该主路由器。示例性的,如图1c,从路由器1、从路由器2、从路由器3、从路由器4、从路由器5和从路由器6都接入主路由器。

如图1d,其示出了一种分布式路由器链形组网形式。链形组网形式中,局域网的多个路由器中包括一个主路由器,从路由器通过有线连接或无线连接方式一级一级的接入主路由器,其中,每一级包括一个路由器节点,多个路由器呈链形连接。示例性的,如图1d,从路由器1接入主路由器,从路由器2接入从路由器1,从路由器3接入从路由器2,从路由器4接入从路由器3。

其中,有线连接方式可以包括电力线通信(powerlinecommunication,plc)、网线传输(ethernet,eth)等;无线连接方式可以包括无线保真(wirelessfidelity,wi-fi)连接等。

目前,分布式路由器的组网方案,不管采用哪种组网形式,接入局域网中的终端设备最终只能通过一个路由器与外部网络通信,终端设备只能使用一个路由器的带宽。

在一种示例中,如图2a,分布式路由器采用树形组网形式组成局域网。主路由器通过广域网(wideareanetwork,wan)接口或移动通信接口连接外部网络。从路由器通过有线连接或无线连接方式一级一级接入主路由器。接入局域网中任意一个路由器的终端设备最终都通过主路由器与外部网络通信。示例性的,如图2a所示,终端设备1接入从路由器3,终端设备1沿着路径1与外部网络进行通信;终端设备2接入从路由器2,终端设备2沿着路径2与外部网络进行通信。

在另一种示例中,如图2b,分布式路由器采用网状组网形式组成局域网。局域网中的路由器可以分为网状入口节点(meshportalpoint,mpp)、网状节点(meshpoint,mp)和网状接入节点(meshaccesspoint,map)三种角色。其中,局域网中每个路由器为一个mp,mp之间可以互相通信,比如,mp可以支持路由的自动发现、报文的转发等功能。mpp可以连接局域网和外部网络,并与局域网内部的mp进行通信。一个局域网中可以包括一个或多个mpp。map是支持接入点(accesspoint,ap)功能的mp,可以为终端设备提供接入功能。接入局域网中任意一个路由器的终端设备,每次可以通过一个mpp与外部网络通信。示例性的,如图2b所示,路由器1和路由器2为两个mpp,分别连接局域网和外部网络;终端设备1接入路由器6,终端设备1可以沿着路径1,通过路由器1与外部网络进行通信;或者,终端设备1可以沿着路径2,通过路由器2与外部网络进行通信。比如,终端设备1可以选择路径1和路径2中链路质量较好的路径;比如,终端设备1可以选择路径1和路径2中转发跳数少的路径。但是,在一次通信过程中,终端设备1只能沿着路径1或沿着路径2与外部网络进行通信,不能同时使用两条路径,也就是说,终端设备1不能同时使用两条线路的带宽。

本申请实施例提供一种应用于分布式路由器组网的报文发送方法,应用于分布式组网的路由器,使得接入局域网中任意一个路由器的终端设备,可以使用局域网中每个路由器的带宽,实现多个路由器的带宽聚合的效果。其中,分布式路由器可以采用上述树形组网、网状组网、星形组网或链形组网的组网形式,当然,分布式路由器也可以采用其他组网形式,本申请实施例对此并不进行限定。

本申请实施例中,局域网中每个路由器都具备与外部网络进行通信的能力。路由器之间可以通过有线连接或无线连接方式互相连接。局域网中每个路由器都可以为终端设备提供接入功能。比如,分布式组网的路由器可以是4g(4thgeneration,第四代移动通信)移动路由器cpe(customerpremiseequipment,客户端设备)或者5gcpe。每个cpe都可以插有用户标识模块(subscriberidentitymodule,sim)卡,具备通过运营商提供的移动网络访问互联网的能力。cpe之间可以通过plc、eth、wi-fi等连接方式进行互联。再比如,分布式组网的路由器可以是宽带路由器,每个宽带路由器都可以通过自身的wan接口连接互联网。宽带路由器之间可以通过局域网(localareanetwork,lan)接口互联。再比如,分布式组网的路由器可以是随身移动热点(mobilewi-fi,mifi)。每个mifi都具备通过运营商提供的移动网络访问互联网的能力。mifi之间可以通过wi-fi互联。

请参考图3a,其示出了本申请实施例提供的一种路由器100的结构示意图。该路由器100包括至少一个处理器110,通信线路120,存储器130以及至少一个通信接口140。

处理器110可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本申请方案程序执行的集成电路。

通信线路120可包括一通路,在上述组件之间传送信息。

通信接口140,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radioaccessnetwork,ran),无线局域网(wirelesslocalareanetworks,wlan)等。例如,用于与本申请中外部网络、终端设备进行通信。

存储器130可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器130可以是独立存在,通过通信线路120与处理器110相连接。存储器130也可以和处理器110集成在一起。

其中,存储器130用于存储执行本申请方案的计算机执行指令,并由处理器110来控制执行。处理器110用于执行存储器130中存储的计算机执行指令,从而实现本申请下述实施例提供的应用于分布式路由器组网的报文发送方法。

可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。

在具体实现中,作为一种实施例,处理器110可以包括一个或多个cpu,例如图3a中的cpu0和cpu1。

在具体实现中,作为一种实施例,路由器100可以包括多个处理器,例如图3a中的处理器110和处理器111。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

上述的路由器100可以是一个通用设备或者是一个专用设备。在具体实现中,路由器100可以是cpe、宽带路由器、mifi或有图3a中类似结构的设备。本申请实施例不限定路由器100的类型。

请参考图3b,其示出了本申请实施例提供的一种路由器100的另一结构示意图。路由器100可以包括移动通信模块101、无线通信模块102、有线通信模块103和多点路由-负载均衡(multipointroute-loadbalance,mpr-lb)模块104。

其中,移动通信模块101为路由器100提供移动通信功能。路由器100可以通过移动通信模块101连接移动网络。比如,所述移动网络可以包括全球移动通讯系统(globalsystemformobilecommunications,gsm),通用分组无线服务(generalpacketradioservice,gprs),码分多址接入(codedivisionmultipleaccess,cdma),宽带码分多址(widebandcodedivisionmultipleaccess,wcdma),时分码分多址(time-divisioncodedivisionmultipleaccess,td-scdma),长期演进(longtermevolution,lte),新无线(newradio,nr),和/或全球导航卫星系统(globalnavigationsatellitesystem,gnss)等。所述gnss可以包括全球卫星定位系统(globalpositioningsystem,gps),全球导航卫星系统(globalnavigationsatellitesystem,glonass),北斗卫星导航系统(beidounavigationsatellitesystem,bds),准天顶卫星系统(quasi-zenithsatellitesystem,qzss)和/或星基增强系统(satellitebasedaugmentationsystems,sbas)。

无线通信模块102可以提供应用在路由器100上的包括无线局域网(wirelesslocalareanetworks,wlan)(如无线保真(wirelessfidelity,wi-fi)网络),等无线通信的解决方案。比如,无线通信模块102可以提供路由器100的wi-fi功能。

有线通信模块103可以提供路由器100的有线连接功能。比如,所述有线连接可以包括plc、eth等。

mpr-lb模块104提供路由器100上的负载均衡和路由管理等功能。本申请实施例提供的分布式路由器组成的局域网,局域网中每个路由器都可以连接外部网络。接入局域网中任意一个路由器的终端设备可以通过本地路由器(终端设备接入的路由器)直接访问外部网络,也可以通过局域网中的其他路由器访问外部网络。局域网中的路由器可以用于转发本地接入的终端设备与外部网络通信的报文,还可以用于转发接入其他路由器的终端设备与外部网络通信的报文。mpr-lb模块104可以提供,接入局域网中的终端设备与外部网络通信的报文在多个路由器100之间的负载均衡,使得局域网中的多个路由器的带宽均衡使用。mpr-lb模块104还可以提供,终端设备与外部网络通信的报文在路由器间转发的路由管理,实现报文在多个路由器上的转发。

本申请实施例提供的应用于分布式路由器组网的报文发送方法,可以应用于分布式组网的路由器。在一种示例中,如图4所示,主路由器、从路由器1、从路由器2、从路由器3、从路由器4、从路由器5、从路由器6和从路由器7等多个路由器100,采用树形组网形式组成局域网。每个路由器100分别连接一个移动网络设备200,可以分别接入移动网络设备200提供的移动网络,并通过移动网络访问互联网。连接在任意一个路由器100的wi-fi范围内的终端设备300,可以在各个路由器100间漫游。

请参考图5,其示出了本申请实施例提供的多个路由器100采用树形组网形式组成局域网的一种示例。其中,路由器100可以包括wan-lte、ap、ap′、sta、wan-eth、lan-eth、mpr_lb等模块。

wan-lte模块负责路由器100与外部网络的通信功能。比如,wan-lte模块可以是图3b中移动通信模块101,为路由器100提供lte接入功能,实现路由器100与外部网络(移动网络)通信。比如,wan-lte模块可以是图3b中有线通信模块103,路由器100通过有线连接(比如wan口)与外部网络(互联网)通信。

路由器100可以通过图3b中无线通信模块102提供的wi-fi功能,实现接入点(accesspoint,ap)模块、ap′模块和客户端(station,sta)模块的功能。

其中,ap′模块为路由器100提供子节点的接入功能。sta模块为路由器100提供接入父节点的功能。比如,路由器a的sta模块和路由器b的ap′模块之间通过wi-fi连接,则路由器a作为子节点接入路由器b。这样,可以实现路由器100之间的无线连接。

ap模块为路由器100提供终端设备的接入功能。在路由器100的wi-fi覆盖下的终端设备可以通过ap模块提供的接入功能接入该路由器。

图3b中有线通信模块103可以提供路由器100中wan-eth和lan-eth的功能。

wan-eth和lan-eth是路由器100的有线接口。路由器100可以通过wan-eth连接父节点,通过lan-eth连接子节点。比如,路由器a通过wan-eth和路由器b的lan-eth建立eth连接,则路由器a作为子节点接入路由器b。这样,可以实现路由器100之间的有线连接。

lan-eth还可以为路由器100提供终端设备的接入功能。终端设备可以通过lan-eth有线接入路由器100。

可以理解的,对于一个路由器100,可以采用无线连接或有线连接中的一种方式与另一路由器连接。局域网中的多个路由器,可以全部采用无线连接方式或有线连接方式;也可以部分采用无线连接方式,部分采用有线连接方式。

本申请实施例提供一种应用于分布式路由器组网的报文发送方法,可以应用于分布式组网的路由器。下面以路由器采用树形组网形式组成的局域网为例,对本申请实施例提供的应用于分布式路由器组网的报文发送方法进行详细介绍。可以理解的,本申请实施例提供的应用于分布式路由器组网的报文发送方法,还可以应用于网状组网、星形组网、链形组网或其他组网形式的局域网,分布式路由器的组网形式不构成对本申请实施例的限定。

如图6,本申请实施例提供的应用于分布式路由器组网的报文发送方法,可以包括:

s601、第一路由器获取局域网内各个路由器的拓扑信息和上行状态。

第一路由器为分布式路由器组网的局域网中任意一个路由器。

加入局域网的每个路由器记录自己的拓扑信息。路由器的拓扑信息用于表示路由器在局域网中与其他路由器的连接关系。

以树形组网方式为例,路由器的拓扑信息可以包括该路由器的拓扑状态,该路由器的父路由器标识,该路由器的子路由器标识;路由器的拓扑状态即该路由器在局域网中的位置(即该路由器是局域网中的几级节点)。

以图4所示的分布式路由器树形组网的局域网为例。主路由器为1级节点,从路由器1和从路由器2为2级节点,从路由器3、从路由器4和从路由器5为3级节点,从路由器6和从路由器7为4级节点。示例性的,从路由器2的拓扑状态为2级节点,从路由器2的父路由器为主路由器,从路由器2的子路由器为从路由器5。从路由器5的拓扑状态为3级节点,从路由器5的父路由器为从路由器2,从路由器5没有子路由器。

路由器的上行状态即路由器与外部网络连接的上行链路状态。路由器的上行状态可以包括可达状态和不可达状态。

局域网中每个路由器可以在局域网内广播该路由器的拓扑信息和上行状态。比如,局域网中每个路由器可以在加入局域网时,在局域网内广播该路由器的拓扑信息和上行状态。比如,局域网中每个路由器还可以周期性的在局域网内广播该路由器的拓扑信息和上行状态。比如,局域网中每个路由器还可以在其拓扑信息或上行状态发送变化时,在局域网内广播该路由器的拓扑信息和上行状态。

这样,第一路由器可以获取到局域网内各个路由器的拓扑信息和上行状态,并且第一路由器可以周期性的刷新保存的局域网内各个路由器的拓扑信息和上行状态。

可以理解的,局域网中路由器之间的连接状态可以包括可达状态和不可达状态。比如,如果从路由器4确定从路由器4与从路由器1之间的连接状态为可达状态,即确定从路由器1可达;如果从路由器4确定从路由器4与从路由器1之间的连接状态为不可达状态,即确定从路由器1不可达。第一路由器保存的是,局域网内可达的各个路由器的拓扑信息和上行状态。如果一个路由器退出局域网,或第一路由器与一个路由器之间的连接中断,则第一路由器确定该路由器不可达;第一路由器在刷新保存的局域网内各个路由器的拓扑信息和上行状态时,删除保存的该路由器的拓扑信息和上行状态。

s602、第一路由器根据局域网内各个路由器的拓扑信息和上行状态,确定在第一路由器上的报文负载分担规则。

第一路由器上的报文负载分担规则,即在第一路由器上,向第一路由器和第一路由器的邻居节点分发报文的规则。其中,第一路由器的邻居节点是与第一路由器直接连接的路由器。

第一路由器根据局域网内各个路由器的拓扑信息和上行状态,确定第一路由器的邻居节点个数;以及每个邻居节点的可达节点个数。在本申请实施例中,第一路由器的邻居节点的可达节点个数为,邻居节点可达的节点中,不经过第一路由器的节点的个数;需要说明的是,本申请实施例中,邻居节点自身也计入邻居节点的可达节点个数中。

在一种实现方式中,在计算邻居节点个数,以及每个邻居节点的可达节点个数时,不计入上行状态为不可达状态的路由器。

示例性的,第一路由器为图4中的从路由器2。从路由器2有2个邻居节点:从路由器5和主路由器。从路由器5的可达节点包括从路由器5,从路由器5的可达节点个数为1。主路由器的可达节点包括主路由器、从路由器1、从路由器3、从路由器4、从路由器6和从路由器7;主路由器的可达节点个数为6。

在一种实现方式中,在计算邻居节点的可达节点个数时,不计入与第一路由器间的转发跳数大于第一预设值的路由器。示例性的,第一预设值为3。从路由器6和从路由器7,与从路由器2间的转发跳数大于第一预设值3,则从路由器6和从路由器7不计入主路由器的可达节点个数。即主路由器的可达节点包括主路由器、从路由器1、从路由器3和从路由器4;主路由器的可达节点个数为4。

进一步的,第一路由器确定第一路由器的邻居节点个数为m,第i个邻居节点的可达节点个数为ni;其中,m>0,m>=i>0,ni>0;则第一路由器上的报文负载分担规则为:

第一路由器接收的报文中,1/(n1+n2+…ni+…nm+1)的报文由第一路由器向外部网络发送;

第一路由器接收的报文中,ni/(n1+n2+…ni+…nm+1)的报文,向第i个邻居节点发送。

示例性的,从路由器2的邻居节点个数m为2,第1个邻居节点(从路由器5)的可达节点个数n1为1,第2个邻居节点(主路由器)的可达节点个数n2为4;从路由器2接收的报文中,1/(1+4+1)的报文由从路由器2直接向其连接的移动网络设备200发送,1/(1+4+1)的报文由从路由器2向从路由器5发送,4/(1+4+1)的报文由从路由器2向主路由器发送。

s603、第一路由器接收报文。

第一路由器可以从接入第一路由器的终端设备接收报文。

第一路由器还可以从其邻居节点接收报文。

s604、第一路由器根据第一路由器上的报文负载分担规则,确定报文的目的路由器。

第一路由器接收到报文后,按照上述第一路由器上的报文负载分担规则,确定接收到的报文的目的路由器。目的路由器可以包括第一路由器和第二路由器,第二路由器为第一路由器的邻居节点路由器。

示例性的,从路由器2接收到报文后,确定其中1/(1+4+1)的报文的目的路由器为从路由器2,其中1/(1+4+1)的报文的目的路由器为从路由器5,其中4/(1+4+1)的报文的目的路由器为主路由器。

在一种实现方式中,第一路由器可以保存和更新,其已经向第一路由器和各个第二路由器发送的报文流量。比如,第一路由器每次向第一路由器或第二路由器发送报文之后,更新其保存的,已经向第一路由器和各个第二路由器发送报文的流量。第一路由器每次接收到报文后,根据第一路由器已经向第一路由器和各个第二路由器发送的报文流量,以及第一路由器上的报文负载分担规则,确定该报文的目的路由器。

示例性的,第一路由器为从路由器2,从路由器2的邻居节点为从路由器5和主路由器。根据从路由器2上的报文负载分担规则,从路由器2向从路由器2、从路由器5和主路由器发送报文的配比为1:1:4;从路由器2保存的,已经向从路由器2、从路由器5和主路由器发送报文的配比为1:1:3;则从路由器2接收到报文后,确定该报文的目的路由器为主路由器。

在一种实现方式中,第一路由器可以以会话为单位,对接收的报文进行分发。一个会话即一个网际协议(internetprotocol,ip)五元组;也就是说,ip五元组相同的报文为一个会话。ip五元组为:源ip地址、源端口、目的ip地址、目的端口和传输层协议。

一个会话建立,即第一路由器接收到一个单位的报文。第一路由器根据第一路由器已经向第一路由器和各个第二路由器发送的会话流量,以及第一路由器上的报文负载分担规则,确定该会话的目的路由器。

示例性的,第p个会话建立后,第一路由器上的总会话数为p;第一路由器保存的,已经发送到第一路由器的会话数为q0,已经发送到第i个第二路由器的会话数为qi。第一路由器计算(q0+1)/p,(qi+1)/p,以及(q0+1)/p与1/(n1+n2+…ni+…nm+1)的第一差值,(qi+1)/p与ni/(n1+n2+…ni+…nm+1)的第二差值。若第一差值小于或等于每个第二差值,则第p个会话的目的路由器为第一路由器;若第i个第二差值小于或等于第一差值以及其他的第二差值,则第p个会话的目的路由器为第i个第二路由器。进一步的,当第p个会话关闭时,第一路由器可以更新保存的p、q0和qi的值。

在另一种实现方式中,第一路由器可以以报文的目的ip地址为单位,对接收的报文进行分发。也就是说,目的ip地址相同的报文为一个单位。

示例性的,根据从路由器2上的报文负载分担规则,从路由器2向从路由器2、从路由器5和主路由器发送报文的配比为1:1:4;从路由器2确定目的ip地址为ip1的报文的目的路由器为从路由器2,确定目的ip地址为ip2的报文的目的路由器为从路由器5,确定目的ip地址为ip3、ip4、ip5和ip6的报文的目的路由器为主路由器。

在一些实施例中,第一路由器对从接入第一路由器的终端设备接收的第一报文,和从其邻居节点接收的第二报文,分开计算报文流量。也就是说,第一路由器对接收的第一报文,根据第一路由器上的报文负载分担规则,进行报文分发;第一路由器对接收的第二报文,根据第一路由器上的报文负载分担规则,进行报文分发;第一报文和第二报文分别在各个路由器上进行负载分担。

需要说明的是,对于从一个第二路由器接收的第二报文,在进行报文分发时,该报文发送的目的路由器不包括该发送第二报文的第二路由器。也就是说,在确定第二报文的目的路由器时,去除发送该第二报文的第二路由器。在一种实现方式中,在s602计算第一路由器的邻居节点个数时,如果第一路由器确定接收的报文是从第三路由器接收的,则第三路由器不计入第一路由器的邻居节点中。其中,第三路由器为第二路由器中的一个,即第三路由器是第一路由器的邻居节点中的一个。示例性的,从路由器2的邻居节点为从路由器5和主路由器。从路由器2接收到从路由器5发送的第二报文,在确定该第二报文的目的路由器,计算从路由器2的邻居节点个数时,从路由器5不计入从路由器2的邻居节点中,即确定的目的路由器为从路由器2和主路由器。这样,可以避免发生环路,导致报文在路由器间循环转发。

在一种实现方式中,第一路由器从一个第二路由器接收到第二报文后,如果确定该报文在路由器间转发跳数大于或等于第一预设值,则确定该报文的目的路由器为第一路由器;即该报文由第一路由器直接发送到外部网络,不再根据上述报文负载分担规则进行报文分发。示例性的,第一路由器为从路由器2,第一预设值为3。从路由器2确定接收到的报文是接入从路由器4的终端设备发送的,该报文经过从路由器4、从路由器1、主路由器转发至从路由器2,转发跳数等于3,则将该报文直接发送至外部网络,不再向其他路由器转发。

在一些实施例中,第一路由器可以对属于不同业务类型的报文,分别进行报文分发。比如,对于时延敏感业务的报文,确定其目的路由器为第一路由器;即第一路由器接收到属于时延敏感业务的报文,则直接通过第一路由器向外部网络发送。这样,可以减小时延敏感业务的报文发送的时延。比如,对于高带宽业务的报文,可以按照上述第一路由器上的报文负载分担规则,进行报文分发。这样,高带宽业务可以使用到多个路由器的带宽,获得较高的下载速率。示例性的,时延敏感业务可以包括实时游戏类业务、音频通话、视频通话、直播等及时响应业务;高带宽业务可以包括视频点播、大文件下载、增强现实(augmentedreality,ar)\虚拟现实(virtualreality,vr)交互业务等。

在接收到报文后,如果第一路由器确定该报文的目的路由器为第一路由器,则执行s605,通过第一路由器直接向外部网络发送报文;如果第一路由器确定该报文的目的路由器为第二路由器,则执行s606,向第二路由器发送该报文。

s605、第一路由器直接向外部网络发送报文。

在分布式路由器树形组网的局域网中,接入局域网的每个终端设备,在发送报文时,报文的目的媒体访问控制(mediaaccesscontrol,mac)地址为主路由器的mac地址。

第一路由器接收到报文后,如果确定报文的目的路由器为第一路由器,则将报文的目的mac地址修改为第一路由器的mac地址。

对于目的mac地址为本路由器的报文,第一路由器直接向外部网络发送该报文。在一种示例中,终端设备发送的报文的源ip地址是局域网内分配给该终端设备的ip地址;比如,主路由器可以为局域网中接入主路由器和各个从路由器的每个终端设备分配局域网内部ip地址。第一路由器接收到报文后,将报文的源ip地址转换成互联网全局ip地址;这样,可以实现终端设备和互联网的通信,将报文发送至互联网。

s606、第一路由器向第二路由器发送报文。

第一路由器接收到报文后,如果确定报文的目的路由器为第二路由器,则将报文的目的mac地址修改为该第二路由器的mac地址;这样,可以实现将报文发送给第二路由器。

通过上述方法,第一路由器接收的报文,根据第一路由器上的报文负载分担规则,分发至外部网络和第一路由器的各个邻居节点(第二路由器)。进一步的,第一路由器的第i个邻居节点也可以确定其邻居节点个数,以及其每个邻居节点的可达节点个数;并在接收到第一路由器的报文后,按照第i个邻居节点上的报文负载分担规则,将从第一路由器接收的报文分发至外部网络和第i个邻居节点的各个邻居节点。这样,第一路由器接收的报文,可以由局域网中的多个路由器发送至外部网络,实现局域网内各个路由器的报文负载分担。

示例性的,如图7a所示,第一路由器为从路由器2,接入从路由器2的终端设备300发送的报文,可以由从路由器2、从路由器5、主路由器、从路由器1、从路由器3和从路由器4进行报文的负载分担,分发至外部网络。

请继续参考图7b,从路由器2、从路由器5、主路由器、从路由器1、从路由器3和从路由器4,分别包括mpr-lb模块、lte模块、wifi模块、lan模块和plc模块。其中,mpr-lb模块用于提供路由器上的负载均衡和路由管理等功能;比如,该mpr-lb模块可以是图3b中mpr-lb模块104或图5中mpr-lb。lte模块用于为路由器提供lte接入功能,实现路由器与移动网络通信;比如,该lte模块可以是图3b中移动通信模块101。wifi模块用于为路由器提供wi-fi功能;比如,该wifi模块可以是图3b中无线通信模块102,可以实现图5中ap模块、ap′模块和sta模块的功能。lan模块和plc模块用于为路由器提供有线连接功能;比如,lan模块或plc模块可以实现图3b中有线通信模块103的功能。终端设备300接入从路由器2。从路由器2的mpr-lb模块对终端设备300发送的报文进行负载分担。从路由器2的mpr-lb模块根据报文负载分担规则确定,1/(1+4+1)的报文由从路由器2直接向移动网络发送,1/(1+4+1)的报文由从路由器2向从路由器5发送,4/(1+4+1)的报文由从路由器2向主路由器发送。由从路由器2直接向移动网络发送的报文,经过从路由器2的lte模块发送至移动网络。从路由器2通过wifi模块或lan模块或plc模块,向从路由器5发送1/(1+4+1)的报文;向主路由器发送4/(1+4+1)的报文。

从路由器5通过wifi模块或lan模块或plc模块接收从路由器2发送的报文,从路由器5的mpr-lb模块根据报文负载分担规则确定,由从路由器5直接向移动网络发送该报文,则通过从路由器5的lte模块将报文发送至移动网络。

主路由器通过wifi模块或lan模块或plc模块接收从路由器2发送的报文。主路由器的mpr-lb模块根据报文负载分担规则确定,接收到的报文中1/(1+3)的报文(即终端设备300发送的报文中1/6的报文)由主路由器直接向移动网络发送,接收到的报文中3/(1+3)的报文由主路由器向从路由器1发送。由主路由器直接向移动网络发送的报文,经过主路由器的lte模块发送至移动网络。主路由器通过wifi模块或lan模块或plc模块,向从路由器1发送接收到的报文中3/(1+3)的报文。

从路由器1通过wifi模块或lan模块或plc模块接收主路由器发送的报文。从路由器1的mpr-lb模块根据报文负载分担规则确定,接收到的报文中1/(1+1+1)的报文(即终端设备300发送的报文中1/6的报文)由从路由器1直接向移动网络发送,接收到的报文中1/(1+1+1)的报文由从路由器1向从路由器3发送,接收到的报文中1/(1+1+1)的报文由从路由器1向从路由器4发送。由从路由器1直接向移动网络发送的报文,经过从路由器1的lte模块发送至移动网络。从路由器1通过wifi模块或lan模块或plc模块,向从路由器3发送接收到的报文中1/(1+1+1)的报文,向从路由器4发送接收到的报文中1/(1+1+1)的报文。

从路由器3通过wifi模块或lan模块或plc模块接收从路由器1发送的报文,从路由器3的mpr-lb模块根据报文负载分担规则确定,由从路由器3直接向移动网络发送该报文,则通过从路由器3的lte模块将报文发送至移动网络。

从路由器4通过wifi模块或lan模块或plc模块接收从路由器1发送的报文,从路由器4的mpr-lb模块根据报文负载分担规则确定,由从路由器4直接向移动网络发送该报文,则通过从路由器4的lte模块将报文发送至移动网络。

这样,接入从路由器2的终端设备300发送的报文,由从路由器2、从路由器5、主路由器、从路由器1、从路由器3和从路由器4进行报文的负载分担,分发至外部网络。

在一些实施例中,从外部网络返回的报文,通过报文发送的原通道返回。示例性的,终端设备300发送的报文由从路由器2转发至主路由器,再转发至从路由器1,由从路由器1发送至外部网络。则从外部网络返回给该终端设备300的报文,由从路由器1接收,转发至主路由器,再转发至从路由器2,之后分发至该终端设备300。在一种实现方式中,从路由器1从外部网络接收到报文后,将该报文的目的ip地址由互联网全局ip地址转换成局域网内部ip地址;这样,可以实现该报文在局域网内的分发。

终端设备通过多个路由器同时向外部网络发送报文,则可以通过多个路由器同时从外部网络下载报文。比如,用户可以通过手机、电视等终端设备,在观看直播、下载视频时,同时使用多个路由器的多条线路下载,获得更好的带宽体验。

本申请实施例提供的应用于分布式路由器组网的报文发送方法,局域网中的每个路由器都具备与外部网络通信的能力。接入局域网中的终端设备,可以同时通过局域网中的多个路由器向外部网络发送和接收报文;实现局域网中多个路由器的带宽聚合,提升智能家居系统整个网络的整体带宽。

下面以路由器采用网状组网形式组成的局域网为例,对本申请实施例提供的应用于分布式路由器组网的报文发送方法进行示例性介绍。

请参考图8,示例性的,第一路由器为路由器3。

路由器3获取局域网内各个路由器的拓扑信息和上行状态。

路由器的拓扑信息可以包括与该路由器直接相连的路由器标识。比如,路由器3的拓扑信息为:路由器1、路由器4和路由器6;路由器1的拓扑信息为:路由器3和路由器4;路由器4的拓扑信息为:路由器1、路由器2、路由器3、路由器5、路由器6和路由器7;路由器6的拓扑信息为:路由器3和路由器4。

示例性的,图8所示的局域网中每个路由器的上行状态为可达状态。比如,每个路由器都连接一个cpe(图8中未示出),且路由器与cpe的上行链路为可达状态。

局域网中每个路由器都在局域网内周期性的广播其拓扑信息和上行状态;这样,路由器3可以获取到局域网中每个路由器的拓扑信息和上行状态。

路由器3确定其邻居节点为路由器1、路由器4和路由器6;还分别确定路由器1、路由器4和路由器6的可达节点个数。示例性的,第一预设值为1,在计算邻居节点的可达节点个数时,不计入与路由器3间的转发跳数大于1的路由器;则路由器1、路由器4和路由器6的可达节点个数均为1。

接入路由器3的终端设备发送的报文中,1/4的报文由路由器3直接向外部网络发送;1/4的报文转发至路由器1,由路由器1向外部网络发送;1/4的报文转发至路由器4,由路由器4向外部网络发送;1/4的报文转发至路由器6,由路由器6向外部网络发送。从外部网络返回的报文,通过报文发送的原通道返回。这样,接入路由器3的终端设备可以利用路由器3、路由器1、路由器4和路由器6的4路带宽下载业务,实现带宽聚合,提升了下载速率。

可以理解的是,上述路由器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。

本申请实施例可以根据上述方法示例对上述路由器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用集成的单元的情况下,图9示出了上述实施例中所涉及的路由器的一种可能的结构示意图。该路由器900包括:处理单元901、通信单元902和存储单元903。其中,处理单元901,用于对路由器900的动作进行控制管理;通信单元902,用于支持路由器900与其他网络实体的通信;存储单元903,保存路由器900的指令和数据,上述指令可以用于执行如图6及相应实施例中的各个步骤。

当然,上述路由器900中的单元模块包括但不限于上述处理单元901、通信单元902和存储单元903。例如,路由器900中还可以包括电源单元等,电源单元用于对路由器900供电。

其中,处理单元901可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。通信单元902可以是收发器、收发电路等。存储单元903可以是存储器。

例如,处理单元901为处理器(如图3a所示的处理器110),通信单元902可以称为通信接口(如图3a所示的通信线路120),存储单元903可以为存储器(如图3a所示的存储器130)。本申请实施例所提供的路由器900可以为图3a所示的路由器100。其中,上述处理器、存储器、通信接口等可以连接在一起,例如通过总线连接。

本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机程序代码,当上述处理器执行该计算机程序代码时,路由器执行上述实施例中的方法。

本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述实施例中的方法。

其中,本申请实施例提供的路由器900、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以使用硬件的形式实现,也可以使用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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