UPnP网络端口映射方法、电子设备、网络系统和存储介质与流程

文档序号:15455602发布日期:2018-09-15 01:01阅读:1270来源:国知局

本发明涉及网络技术,尤其涉及upnp网络端口映射方法、电子设备、网络系统和存储介质。



背景技术:

upnp(universalplugandplay,通用即插即用),是针对智能家电、无线设备以及各种外观尺寸的个人电脑的普遍对等(peer-to-peer)网络连接而设计的一种架构,旨在为家庭、小型企业、公共场所中或连接到互联网的ad-hoc网或未管理网络提供易于使用、灵活且基于标准的连接。

upnp的使用场景如图1所示,包含以下三个角色:

内网设备:是指一般放在家庭局域网内的设备,比如用户的nas、机顶盒或pc等;

upnpigd:是指upnp网关设备,比如:路由器、光猫等支持upnp功能的网络设备;

外网设备:是指通过upnpigd的wan口访问内网设备的网络设备,例如服务器或者其他具有网络连接功能的载有软件程序的装置。

三个角色之间的交互过程如下:

1、内网设备先和upnpigd申请端口映射,如图1所示,内网设备的ip为192.168.1.100,端口为20000;upnp端口映射成功后,在upnpigd上映射至6728端口。

2、外网设备如果想访问内网设备,网络包的目的地址为upnpigd的外网ip地址,如图1所示,为110.85.66.205,对应端口为6728。

3、upnpigd收到外网设备的请求后,会转发网络包到内网的ip地址:端口为192.168.1.100:20000的内网设备中。

但是在实际应用中,并非所有的路由器等网关设备都支持upnp功能,或者不是所有支持upnp的网关设备都打开了upnp功能。对于内网设备,尤其是类似nas、机顶盒、网络摄像头等嵌入式网络产品来说,判断该内网设备所处的环境是否支持upnp,是非常重要的。而且由于网关设备使用的ip地址在实际场景中可能会动态变化,因此通过upnp映射的端口也可能会失效,从而影响基于upnp的网络功能的实现。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供upnp网络端口映射方法,可以实时检测内网设备和网关设备之间端口映射的有效性,并且在端口映射失效后控制内网设备和网关设备之间重新建立端口映射。

本发明的目的之二在于提供电子设备,可以实时检测内网设备和网关设备之间端口映射的有效性,并且在端口映射失效后控制内网设备和网关设备之间重新建立端口映射。

本发明的目的之三在于提供网络系统,可以实时检测内网设备和网关设备之间端口映射的有效性,并且在端口映射失效后控制内网设备和网关设备之间重新建立端口映射。

本发明的目的之四在于提供存储介质,存储有计算机程序,可以实时检测内网设备和网关设备之间端口映射的有效性,并且在端口映射失效后控制内网设备和网关设备之间重新建立端口映射。

本发明的目的之一采用以下技术方案实现:

upnp网络端口映射方法,包括以下步骤:

获取内网设备的映射结果;

根据所述映射结果向所述内网设备发送连接请求;

若连接所述内网设备失败,则向所述内网设备发送映射指令。

进一步地,所述根据所述映射结果向所述内网设备发送连接请求,具体为:

通过网关设备向所述内网设备发送连接请求,所述连接请求是根据所述映射结果得到的。

进一步地,所述若连接所述内网设备失败,则向所述内网设备发送映射指令,具体为:

若接收到网关设备发送的连接失败信息,则向所述内网设备发送映射指令。

进一步地,所述映射结果包括所述内网设备映射的外网ip和外网端口。

进一步地,所述根据所述映射结果向所述内网设备发送连接请求,具体为:

周期性的根据所述映射结果向所述内网设备发送连接请求。

进一步地,所述内网设备包括探测单元和第一协议单元;

所述获取内网设备的映射结果,具体为:接收所述内网设备的探测单元发送的映射结果。

进一步地,所述根据所述映射结果向所述内网设备发送连接请求,具体为:通过网关设备向所述内网设备的第一协议单元发送连接请求。

进一步地,所述若连接所述内网设备失败,则向所述内网设备发送映射指令,具体为:

若连接所述内网设备失败,则向所述内网设备的探测单元发送映射指令。

进一步地,所述获取内网设备的映射结果之前,还包括以下步骤:

所述内网设备向网关设备发送映射请求;

所述网关设备向所述内网设备发送映射结果。

进一步地,所述内网设备向网关设备发送映射请求,具体包括以下步骤:

所述探测单元向所述第一协议单元发送触发信息;

所述第一协议单元根据所述触发信息向所述网关设备发送映射请求。

进一步地,所述网关设备向所述内网设备发送映射结果,具体包括以下步骤:

所述网关设备向所述第一协议单元发送映射信息;

所述第一协议单元根据所述映射信息向所述探测单元发送映射结果。

本发明的目的之二采用以下技术方案实现:

电子设备,包括存储器、处理器以及存储在存储器中的程序,所述程序被配置成由处理器执行,处理器执行所述程序时实现上述upnp网络端口映射方法的步骤。

本发明的目的之三采用以下技术方案实现:

网络系统,包括上述的电子设备,以及内网设备和网关设备,所述电子设备和内网设备均连接于所述网关设备。

本发明的目的之四采用以下技术方案实现:

存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现上述upnp网络端口映射方法的步骤。

相比现有技术,本发明的有益效果在于:通过根据映射结果向内网设备发送连接请求,当连接内网设备失败时,向内网设备发送映射指令,以使内网设备和网关设备之间重新建立端口映射;从而可以实时检测内网设备和网关设备之间端口映射的有效性,并且在端口映射失效后控制内网设备和网关设备之间重新建立端口映射,可以使得内网设备及其用户最大限度的利用upnp网络环境。

附图说明

图1为upnp的使用场景示意图;

图2为本发明实施例一的upnp网络端口映射方法的流程示意图;

图3为应用图2中方法的网络系统的示意图;

图4为图3中电子设备的结构示意图;

图5为本发明实施例二的upnp网络端口映射方法的流程示意图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

实施例一

如图2为upnp网络端口映射方法,用于如图3所示的网络系统。该网络系统包括主要用于执行本实施例的upnp网络端口映射方法的电子设备110、以及网关设备120和内网设备130,电子设备110和内网设备130均连接于所述网关设备120。

如图4所示,电子设备110包括存储器200、处理器300以及存储在存储器200中的程序,所述程序被配置成由处理器300执行,处理器300执行所述程序时实现本实施例的upnp网络端口映射方法的步骤。具体的,电子设备110可以为通用或专用的计算系统,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

网关设备120是处于内外网之间的网络设备,如路由器、光猫等,用于提供internet连接。它可以拥有不同的lan接口设备连接不同的局域网,也可以拥有wan接口以连接至广域网中。内网设备130可以是连接于网关设备120lan口的电脑、机顶盒、nas等网络设备,或者通过无线连接的手机、平板等智能终端。网关设备120wan接口连接的网络中的设备称为外网设备。

如图2所示,upnp网络端口映射方包括以下步骤:

步骤s110、电子设备110获取内网设备130的映射结果。

在步骤s110之前,网关设备120和内网设备130之间已经建立了端口映射,然后电子设备110将映射结果上报至电子设备110。

作为优选的实施方式,映射结果包括所述内网设备130映射的外网ip和外网端口,因此电子设备110就可以根据映射结果去和该内网设备130通讯。

作为优选的实施方式,映射结果还包括内网设备130的描述信息,如设备类型、设备序列号、物理地址等。因此,电子设备110可以准确识别与统计哪个内网设备130的端口映射有效,即处于upnp环境中。

步骤s120、电子设备110根据所述映射结果向所述内网设备130发送连接请求。从而可以根据内网设备130的回应或不回应判断该内网设备130的端口映射是否有效。

作为优选的实施方式,步骤s120根据所述映射结果向所述内网设备130发送连接请求,具体为:电子设备110通过网关设备120向所述内网设备130发送连接请求,所述连接请求是根据所述映射结果得到的。即电子设备110发送的数据包的地址是网关设备120的外网ip地址。如果网关设备120中的保存的端口映射信息仍然有效,即可以将内网设备130的ip地址和端口信息正确的与网关设备120的外网ip地址和端口映射,那么网关设备120接收到该数据包后就可以成功的将其转发至相应的内网设备130;如果网关设备120中的保存的端口映射信息失效或者不存在,则内网设备130就收不到电子设备110发送的连接请求。

作为优选的实施方式,步骤s120根据所述映射结果向所述内网设备130发送连接请求,具体为:周期性的根据所述映射结果向所述内网设备130发送连接请求。即电子设备110每隔一段时间就向内网设备130发送连接请求,以检测网关设备120是否保存有映射信息,以及网关设备120中的保存的端口映射信息是否仍有效。

步骤s130、若连接所述内网设备失败,则向所述内网设备130发送映射指令。

作为优选的实施方式,步骤s130若连接所述内网设备失败,则向所述内网设备130发送映射指令,具体为:若电子设备110接收到网关设备120发送的连接失败信息,则电子设备110向所述内网设备130发送映射指令。

网关设备120在接收到电子设备110发送的连接请求后,可以查询与连接请求的地址和端口对应的内网地址和端口,即映射信息;如果查询不到,则网关设备120向电子设备110发送连接失败信息;如果查询到信息,则网关设备120将连接请求转发至对应的内网地址和端口,如果可以接收到内网设备130的回应,则表示网关设备120中的保存的端口映射信息是有效的;如果接收不到内网设备130的回应,则表示网关设备120中的保存的端口映射信息不是有效的,则网关设备120也向电子设备110发送连接失败信息。

如果电子设备110连接内网设备130失败,就可以判断此时内网设备130的upnp是失效的,无法实现一些基于upnp的网络功能;如果此时内网设备130的upnp是失效的,电子设备110就向内网设备130发送映射指令,以使内网设备130和网关设备120之间重新建立端口映射,从而保证可以及时发现映射错误并重新建立新的映射关系,可以使得内网设备130及其用户最大限度的利用upnp网络环境。

本发明实施例提供的upnp网络端口映射方法、网络系统和电子设备110,通过根据映射结果向内网设备130发送连接请求,当连接内网设备失败时,向内网设备130发送映射指令,以使内网设备130和网关设备120之间重新建立端口映射;从而可以实时检测内网设备130和网关设备120之间端口映射的有效性,并且在端口映射失效后控制内网设备130和网关设备120之间重新建立端口映射,可以使得内网设备130及其用户最大限度的利用upnp网络环境。

实施例二

如图5所示的upnp网络端口映射方法,包括以下步骤:

步骤s210、所述内网设备向网关设备发送映射请求。

作为优选的实施方式,内网设备包括探测单元和第一协议单元。探测单元可以内置于内网设备中,可用upnpdetect表示,负责发起upnp端口映射和获取upnp端口映射状态;以及和服务器,如实施例一中的电子设备通信。第一协议单元是upnp的客户端程序,运行在内网设备中,可用upnpclient表示。

在本实施例中,网关设备包括第二协议单元,第二协议单元是upnp的服务器端程序,运行在upnpigd设备中,可用upnpserver表示。电子设备具体为一服务器,可用upnpdetectservervia表示;负责和探测单元通信,以获取upnp状态或者向探测单元发送映射指令,还可以通过探测单元的通信数据,如内网设备的映射结果,反连内网设备。

作为优选的实施方式,步骤s210内网设备向网关设备发送映射请求,具体包括以下步骤:

步骤s211、所述探测单元向所述第一协议单元发送触发信息。该步骤可以在内网设备连接于网关设备之后或者在探测单元接收到电子设备发送的映射指令之后执行。

步骤s212、所述第一协议单元根据所述触发信息向所述网关设备发送映射请求。第一协议单元接收到探测单元的触发信息后,根据upnp的协议向网关设备的第二协议单元发送映射请求。

步骤s220、所述网关设备向所述内网设备发送映射结果。

作为优选的实施方式,步骤s220网关设备向所述内网设备发送映射结果,具体包括以下步骤:

步骤s221、所述网关设备向所述第一协议单元发送映射信息。网关设备的第二协议单元在接收到映射请求后生成映射结果,并将映射信息,如端口映射的状态和结果返回至第一协议单元。

步骤s222、所述第一协议单元根据所述映射信息向所述探测单元发送映射结果。第一协议单元将映射结果,如映射成功的外网ip和外网映射的端口,发送至探测单元。

步骤s210和步骤s220执行完毕,网关设备和内网设备之间就建立好了端口映射。

步骤s230、获取内网设备的映射结果。

作为优选的实施方式,步骤s230获取内网设备的映射结果,具体为:电子设备接收所述内网设备的探测单元发送的映射结果。

探测单元负责和电子设备的通信,因此可以将upnp状态,如映射结果发送给电子设备,以便于电子设备检验端口映射是否有效。

步骤s240、根据所述映射结果向所述内网设备发送连接请求。

作为优选的实施方式,步骤s240根据所述映射结果向所述内网设备发送连接请求,具体为:电子设备通过网关设备向所述内网设备的第一协议单元发送连接请求。

内网设备的第一协议单元和网关设备的第二协议单元用于具体实现upnp功能和基于端口映射的内网、外网通讯,因此电子设备通过第一协议单元和第二协议单元与内网设备进行数据传输或反连。

步骤s250、若连接所述内网设备失败,则向所述内网设备发送映射指令。

作为优选的实施方式,步骤s250若连接所述内网设备失败,则向所述内网设备发送映射指令,具体为:若电子设备接收到网关设备发送的连接失败信息,则电子设备向所述内网设备的探测单元发送映射指令。

电子设备虽然不能经端口映射与内网设备通信,但是可以与内网设备的探测单元通信,因此,可以向探测单元发送映射指令,以使得探测单元再次向第一协议单元发送触发信息,重新建立网关设备和内网设备之间的端口映射。

步骤s230、s240和s250,分别对应实施例一中的s110、s120和s130,不再赘述。且本实施例提供的upnp网络端口映射方法,同样可于实施例一的网络系统和电子设备实现,在此亦不再赘述。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法,如:

存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述upnp网络端口映射方法的步骤。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

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