一种家庭网络服务共享的方法及装置与流程

文档序号:12478204阅读:437来源:国知局
一种家庭网络服务共享的方法及装置与流程

本发明涉及通用即插即用(Universal Plug and Play,UPNP)与家用路由器领域,特别涉及一种家庭网络服务共享的方法及装置。



背景技术:

目前,家用路由器不仅向用户提供基本的网络功能,如网络地址转换(Network Address Translation,NAT)和流量控制,而且一般都自带有UPNP功能,用户可以选择开启或是关闭来确定是否启用UPNP功能。通过应用UPNP功能,可以在家庭局域网内发现所有支持UPNP的服务,包括打印机、媒体播放,以及智能家电的远控等。

UPNP协议族中使用简单服务发现协议(Simple Service Discovery Protocol,SSDP)进行服务的发现,使用组播进行服务的查找。在家用路由器中,组播的转发不支持L3转发(即通过IP地址对组播源的数据进行复制,然后转发到各个组播接口),而支持L2转发(即对于与接收组播数据的接口处于同一个虚拟局域网(Virtual Local Area Network,VLAN)的其它组播接口,由芯片控制所述组播数据直接复制转发,不交由路由器的中央处理器(Central Processing Unit,CPU)处理)。也就是说,在家用路由器设备上,只能在同一个VLAN中进行UPNP的服务查找。

因此,如果家用路由器划分多个VLAN,或存在多级路由器串联,那么使用UPNP将无法查找并控制整个家庭网络中所有的UPNP服务设备。



技术实现要素:

本发明的目的在于提供一种家庭网络服务共享的方法及装置,能更好地解决在家庭网络中查找并控制所有UPNP设备的问题。

根据本发明的一个方面,提供了一种家庭网络服务共享的方法,包括:

家庭网络中的家用路由器接收其下挂的UPNP服务设备发起的用来搜索服务 的组播搜索请求;

所述家用路由器通过代理所述组播搜索请求,在其所在的各虚拟局域网中搜索服务;

将搜索到的服务回应给发起所述组播搜索请求的UPNP服务设备。

优选地,所述的家用路由器通过代理所述组播搜索请求,在其所在的各虚拟局域网中搜索服务的步骤包括:

所述家用路由器判断其接口与所述组播搜索报文的入接口是否在同一虚拟局域网;

若所述家用路由器的接口与所述组播搜索报文的入接口在同一虚拟局域网,则经由所述接口将组播搜索报文转发至所述虚拟局域网下的其它UPNP设备;

若所述家用路由器的接口与所述组播搜索报文的入接口不在同一虚拟局域网,则根据所述接口所在虚拟局域网的配置属性,将所述组播搜索请求转发至所述接口所在的虚拟局域网。

优选地,若所述配置属性是用来连接家庭网络的属性,则将所述组播搜索请求的作为源地址的内网地址修改为外网地址后,转发至所述接口所在的虚拟局域网。

优选地,所述的将搜索到的服务回应给发起所述组播搜索请求的UPNP服务设备的步骤包括:

接收其它UPNP服务设备通过单播方式响应所述组播搜索请求而发送的包括设备地址和服务类型的单播应答报文,所述单播应答报文包括服务类型信息和提供服务的UPNP服务设备的地址信息;

将所述单播应答报文发送给发起所述组播搜索请求的UPNP服务设备。

优选地,若用来接收所述单播应答报文的接口与所述组播搜索请求的入接口的不在同一虚拟局域网,则将所述单播应答报文的作为目的地址的外网地址修改为内网地址后,转发至发起所述组播搜索请求的UPNP服务设备。

根据本发明的另一方面,提供了一种家庭网络服务共享的装置,包括:

请求获取模块,用于接收家庭网络中家用路由器下挂的UPNP服务设备发起的用来搜索服务的组播搜索请求;

服务搜索模块,用于通过代理所述组播搜索请求,在家用路由器所在的各虚 拟局域网中搜索服务;

请求应答模块,用于将搜索到的服务回应给发起所述组播搜索请求的UPNP服务设备。

优选地,所述服务搜索模块判断其接口与所述组播搜索报文的入接口是否在同一虚拟局域网,若所述家用路由器的接口与所述组播搜索报文的入接口在同一虚拟局域网,则经由所述接口将组播搜索报文转发至所述虚拟局域网下的其它UPNP设备,否则根据所述接口所在虚拟局域网的配置属性,将所述组播搜索请求转发至所述接口所在的虚拟局域网。

优选地,若所述配置属性是用来连接家庭网络的属性,则所述服务搜索模块将所述组播搜索请求的作为源地址的内网地址修改为外网地址后,转发至所述接口所在的虚拟局域网。

优选地,所述请求应答模块接收其它UPNP服务设备通过单播方式响应所述组播搜索请求而发送的包括设备地址和服务类型的单播应答报文,并将所述单播应答报文发送给发起所述组播搜索请求的UPNP服务设备,其中,所述单播应答报文包括服务类型信息和提供服务的UPNP服务设备的地址信息。

优选地,若用来接收所述单播应答报文的接口与所述组播搜索请求的入接口的不在同一虚拟局域网,则所述请求应答模块将所述单播应答报文的作为目的地址的外网地址修改为内网地址后,转发至发起所述组播搜索请求的UPNP服务设备。

与现有技术相比较,本发明的有益效果在于:

本发明利用UPNP技术,在家用路由器之间通过组播搜索请求(即组播报文)实现整个家庭网络的服务查找与控制。

附图说明

图1是本发明实施例提供的家用路由器示意图;

图2是本发明实施例提供的家庭网络服务共享的方法框图;

图3是本发明实施例提供的家庭网络服务共享的装置框图;

图4是本发明实施例提供的家庭网络组网示意图;

图5是基于图4所示组网图进行家庭网络服务共享的流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

本发明基于UPNP技术,实现家庭网络服务共享,其中包括家用路由器、UPNP协议族和NAT转换,其中:

家用路由器是用于家用网络中接入公网的路由器。在家庭网络中相互连接的所有路由器设备(即家用路由器),一般指低端路由器设备,不包括交换机设备。图1是本发明实施例提供的家用路由器示意图,如图1所示,该家用路由器为单臂路由器,在其上进行NAT转换,也就是说,家用路由器上的NAT转换一般应用于单臂路由器,其划分两个不同的VLAN,即广域网(Wide Area Network,WAN)与局域网(Local Area Network,LAN)。LAN区域内下挂不同设备,为各设备分配内网地址(即内网IP地址),当LAN区域的设备访问外网服务时,在家用路由器上进行NAT转换,转化为WAN接口地址(即外网地址,外网IP地址)。

UPNP协议族主要用于实现设备的智能互联互通,使得办公室、家庭和其它公共场所能够方便地构建设备相互联通的网络环境。UPNP是实现智能设备端到端网络连接的结构,也是一种架构在传输控制协议(Transmission Control Protocol,TCP)/互联网络协议(Internet Protocol,IP)和超文本传输协议(Hyper Text Transfer Protocol,HTTP)技术之上的,分布式、开放的网络结构,使得在联网的设备间传递控制数据。UPNP技术实现了对控制点、设备和服务之间通讯的支持,并且设备和相关服务的也使用可扩展标记语言(Extensible Makup Language,XML)定义并且公布出来。通过使用UPNP,设备可以动态加入网络,并自动获得一个IP地址,向其他设备公布它的能力或者获知其他设备的存在和服务,所有这些过程都是自动完成的,此后设备能够彼此直接通讯。

所述UPNP的工作过程分为6步:

(1)寻址(Addressing)

设备获得一个IP地址,所述IP地址通过动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)或手工配置或Auto-IP方式获得。

(2)发现(Discovery)

当一个设备被添加到网络后,UPNP发现协议允许该设备向网络上的其它控制点(Control Point,CP)通知(advise)自己拥有的服务。同样,当一个CP被添加到网络后,UPNP发现协议允许该CP搜索网络上可用的设备;

(3)描述(Description)

设备(Device)的详细信息包含物理描述和服务描述,通过HTTP获取一个XML结构化的数据。

(4)控制(Control)

采用简单对象防伪协议(Simple Object Access Protocol,SOAP)(HTTP/TCP),完成CP和各Device之间的交互。

(5)事件(Eventing)

采用一般事件通知架构(Generic Event Notification Architecture,GENA)协议(HTTP/TCP),完成设备事件消息的订阅和推送,为保证可靠性,故采用TCP传输;事件的推送还有multicast(UDP),即UDP组播。

(6)表达(Presentation)

UPNP没有定义Presentation的内容,厂商自定义的设备HTML页面。

本发明基于UPNP技术实现家庭网络中多级NAT间服务的查找与控制,以实现服务共享。在上述UPNP的工作流程的第2步,即服务的发现(Dissovery)阶段,采用SSDP协议(UDP),用组播(multicast)完成设备搜索,用单播(unicast)(UDP)响应CP的搜索。

上述设备为能够提供服务的UPNP服务设备,例如打印机和播放器等。

图2是本发明实施例提供的家庭网络服务共享的方法框图,如图2所示,步骤包括:

步骤S101:家庭网络中的家用路由器接收其下挂的UPNP服务设备发起的用来搜索服务的组播搜索请求。

步骤S102:所述家用路由器通过代理所述组播搜索请求,在其所在的各虚拟局域网中搜索服务。

具体地说,所述家用路由器判断其接口与所述组播搜索报文的入接口是否在同一虚拟局域网,若所述家用路由器的接口与所述组播搜索报文的入接口在同一虚拟局域网,例如都在VLAN1,则经由所述接口将组播搜索报文转发至所述VLAN1 下的其它UPNP设备;若所述家用路由器的接口与所述组播搜索报文的入接口不在同一虚拟局域网,例如报文的入接口1在VLAN1,家用路由器的另一接口2在VLAN2,则根据接口2所在VLAN2的配置属性,将所述组播搜索请求转发至接口2所在的VLAN2。

进一步地,若所述配置属性是用来连接家庭网络的属性,则将所述组播搜索请求的作为源地址的内网地址修改为外网地址后,转发至所述接口所在的虚拟局域网,例如转发至接口2所在的VLAN2。若所述配置属性是用来连接公网的属性,则不转发所述组播搜索请求。

步骤S103:将搜索到的服务回应给发起所述组播搜索请求的UPNP服务设备。

具体地说,接收其它UPNP服务设备通过单播方式响应所述组播搜索请求而发送的包括设备地址和服务类型的单播应答报文,将所述单播应答报文发送给发起所述组播搜索请求的UPNP服务设备,所述单播应答报文包括服务类型信息和提供服务的UPNP服务设备的地址信息。

进一步地,若用来接收所述单播应答报文的接口与所述组播搜索请求的入接口的不在同一虚拟局域网,例如,接收所述单播应答报文的接口2处于VLAN2,而所述组播搜索请求的报文入接口处于VLAN1,则将所述单播应答报文的作为目的地址的外网地址修改为内网地址后,转发至发起所述组播搜索请求的UPNP服务设备。.

图3是本发明实施例提供的家庭网络服务共享的装置框图,如图3所示,包括请求获取模块10、服务搜索模块20和请求应答模块30。

请求获取模块10用于接收家庭网络中家用路由器下挂的UPNP服务设备发起的用来搜索服务的组播搜索请求。例如,经由家用路由器的接口1接收其下挂的在VLAN1的UPNP服务设备的组播搜索请求,并缓存所述组播搜索请求。

服务搜索模块20用于通过代理所述组播搜索请求,在家用路由器所在的各虚拟局域网中搜索服务。例如,服务搜索模块20判断其某一接口与所述组播搜索报文的入接口是否在同一虚拟局域网,若所述家用路由器的接口与所述组播搜索报文的入接口在同一虚拟局域网,则经由所述接口将组播搜索报文转发至所述虚拟局域网下的其它UPNP设备,否则根据所述接口所在虚拟局域网的配置属性,将所述组播搜索请求转发至所述接口所在的虚拟局域网。进一步地,若所述配置 属性是用来连接家庭网络的属性,则所述服务搜索模块将所述组播搜索请求的作为源地址的内网地址修改为外网地址后,转发至所述接口所在的虚拟局域网。若所述配置属性是用来连接公网的属性,则不转发所述组播搜索报文。

请求应答模块30用于将搜索到的服务回应给发起所述组播搜索请求的UPNP服务设备。具体地说,请求应答模块30接收其它UPNP服务设备通过单播方式响应所述组播搜索请求而发送的包括设备地址和服务类型的单播应答报文,并将所述单播应答报文发送给发起所述组播搜索请求的UPNP服务设备,其中,所述单播应答报文包括服务类型信息和提供服务的UPNP服务设备的地址信息。其中,若用来接收所述单播应答报文的接口与所述组播搜索请求的入接口的不在同一虚拟局域网,则所述请求应答模块将所述单播应答报文的作为目的地址的外网地址修改为内网地址后,转发至发起所述组播搜索请求的UPNP服务设备。

充当UPNP控制点的家用路由器在接收到SSDP的multicast服务请求(即组播搜索请求)时,可以缓存这个请求,并自己代理此multicast服务请求,对于家用路由器划分的不同VLAN,例如WAN与LAN,搜索所处网络,将整理结果集,再回应原来缓存的服务请求,也就是实现对于特定组播报文,完成一次代理请求的过程。

图4是本发明实施例提供的家庭网络组网示意图,如图4所示。

实施例1

当从上一节点路由器(路由器A)发起组播的请求时,路由器A收到SSDP的组播搜索请求报文,判断自身路由器的VLAN属性,将其报文在对应接口上转发。路由器B收到路由器A转发的请求报文时,根据自身路由器的VLAN属性,将其报文在对应接口上转发。路由器B收到各接口的答复报文(即单播应答报文),将其回复给路由器A。路由器A收到各接口的答复报文,转发给请求报文入接口。具体地说,步骤包括:

步骤1、当路由器A的eth1接口收到下挂设备发来的SSDP组播discovery报文(即组播搜索请求),源IP为192.168.1.10,目的IP为组播IP239.255.255.250,端口号为1900,路由器A的交换芯片根据L2的组播端口转发表,根据报文入接口eth1所在VLAN的tag(VLAN0),将此组播discovery报文在同一个tag(VLAN0)的VLAN间各个接口上转发。

步骤2、路由器A的不同tag的VLAN(VLAN1),是否转发报文需要根据VLAN的配置属性进行判断。若路由器A的WAN口在VLAN1,则获取WAN口的基本配置属性,假定家庭内部路由器WAN网络配置为PPPOP等,认为此接口连接到公网,不需要转发组播discovery报文,此时不转发此组播discovery报文。

步骤3、路由器B从WAN口(192.168.1.100)收到组播discovery报文,同样根据入接口WAN所在vlan的tag(vlan1),将此组播discovery报文,在同一个tag(VLAN1)间各接口转发(一般VLAN1网络划分只有WAN一个接口,所以看不到转发过程)。

步骤4、路由器B的不同tag的VLAN(VLAN0),根据其VLAN的成员的配置属性进行判断,对于DHCP或是静态配置,视其为与家庭网络相连,需要在此VLAN间(LAN)进行组播discovery报文的转发。路由器B在eth0与eth1接口上转发组播discovery报文。路由器B判断自身路由表项,若收到组播discovery报文入接口为默认网关接口,则不修改组播报文中源IP地址(192.168.1.10),直接复制转发即可。

步骤5、路由器B等待各接口响应的答复报文(即单播应答报文),下挂设备符合此组播discovery报文的搜索条件,如路由器B下的192.168.2.11。此设备会以单播应答报文响应此组播discovery报文。路由器B根据自身路由表,无192.168.1.10的主机,根据默认网关转发此报文,到达路由器A的eth0接口。

步骤6、路由器A将eth0接口上收到的单播应答报文和其它接口eth3收到的单播应答报文,根据单播应答报文的目的地址192.168.1.10,转发到所述组播搜索报文的入接口eth1接口。

至此,一次服务的搜索过程结束。在eth1的下挂控制点上,获取到了路由器A接口直连设备上的服务,同样也获取到了路由器B接口直连设备上的服务。

实施例2

从低节点路由器发起组播的请求,具体搜索服务的步骤包括:

步骤1、当路由器B的eth1接口收到下挂设备发来的SSDP组播discovery报文(即组播搜索请求),源IP为192.168.2.11,目的IP为组播IP239.255.255.250,端口号为1900,路由器B的交换芯片根据L2的组播端口转 发表,根据报文入接口eth1所在VLAN的tag(VLAN 0),将此组播discovery报文在同一个tag(VLAN 0)的VLAN间各个接口上转发。

步骤2、路由器B的不同tag的VLAN(VLAN 1),是否转发所述报文需要根据VLAN的配置属性进行判断。若路由器B的WAN口所在VLAN1,则获取WAN口的基本配置属性,WAN的网络属性为DHCP获取或是静态配置,则转发此IP,同时将组播discovery报文中的源ip地址(192.168.2.11)替换为NAT转换后的IP地址,或是默认网关的IP地址(192.168.1.100)。

步骤3、路由器A从eth0收到组播discovery报文,同样根据入接口eth0所在VLAN的tag(v VLAN 0),将此组播discovery报文在同一个tag(VLAN0)间各接口转发(此时eth1,eth2都发送此组播discovery报文)。

步骤4、路由器A的不同tag的VLAN(VLAN 1),根据其VLAN的成员的配置属性进行判断,若是PPPOE等配置属性,假定其连接到公网,则不进行组播discovery报文的转发。

步骤5、路由器A等待各接口响应的答复报文(即单播应答报文),下挂设备符合此组播discovery报文的搜索条件,如路由器A下的192.168.1.10。此设备会以单播应答报文响应此组播discovery报文,此时响应报文的目的IP为192.168.1.100,源IP为192.168.1.10。路由器A根据自身路由表,找到目的IP所在接口eth0转发此报文,到达路由器B的WAN接口。

步骤6、路由器B从WAN接口上接收单播应答报文,根据之前发送组播discovery报文的条目,找到记录的原来组播discovery报文的源IP,将此单播应答报文的目的IP修改为NAT转换的IP地址,根据路由表查找到对应的接口eth1,转发此单播应答报文。

至此,一次服务的搜索过程结束。在eth1的下挂控制点上,获取到了路由器B接口直连设备上的服务,同样也获取到了路由器A接口直连设备上的服务。

图5是基于图4所示组网图进行家庭网络服务共享的流程图,如图5所示,路由器A下挂主机A和主机B,路由器B下挂主机A’和主机B’,具体步骤包括:

步骤1、路由器A收到其下挂主机B发起的组播搜索报文(即组播搜索请求);

步骤2a、路由器A将所述组播搜索报文转发至其下挂的另一主机A;

步骤2b、路由器A将所述组播搜索报文转发至与其连接的路由器B;

步骤2c、路由器B将所述组播搜索报文转发至其下挂的主机A’;

步骤2d、路由器B将所述组播搜索报文转发至其下挂的主机B’;

步骤3a、路由器A接收其下挂主机A响应所述组播搜索报文而回应的单播应答报文;

步骤3c、路由器B接收其下挂主机A’响应所述组播搜索报文而回应的单播应答报文;

步骤3d、路由器B接收其下挂主机B’响应所述组播搜索报文而回应的单播应答报文;

步骤4c、路由器A接收路由器B转发的来自主机A’的单播应答报文;

步骤4d、路由器A接收路由器B转发的来自主机B’的单播应答报文;

步骤5c、路由器A将主机A’的单播应答报文转发给主机B;

步骤5d、路由器A将主机B’的单播应答报文转发给主机B。

综上所述,本发明具有以下技术效果:

本发明通过添加UPNP协议功能,实现家用路由器对于组播报文的代理,实现通过一次UPNP控制点的查找能够搜索到整个家用网络中的所有指定服务。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

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