本申请涉及通信技术领域,尤其涉及一种通用即插即用upnp端口映射方法及系统。
背景技术:
内网,也称为局域网,由于其具有安装便捷、成本节约、扩展方便等特点。目前在办公室、家庭、企业等得到了广泛应用。对于置于内网中的智能家电、电脑、计算机、摄像机等内网设备而言,如果外部设备想要直接访问内网设备,则需要通过访问网关设备上开放的外部端口,来实现对内网设备的主动访问。此外,为了实现外部设备通过外部端口访问内网设备,需要对内网设备进行端口映射。所谓端口映射,则指的是基于通用即插即用协议(universalplugandplay,upnp)的内网地址和外网地址的转换。
一般的,对于网关设备而言,其所能进行的端口映射的数量是存在上限的,也即,当端口映射的数量达到其上限后,则无法再进行新的端口映射,这时如果某内网设备使用该网关设备进行端口映射,则会出现端口映射失败的情况。
因此,亟需提出一种技术方案方案,以减少upnp端口映射失败的情况的发生,从而提高upnp端口映射成功率。
申请内容
本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种通用即插即用upnp端口映射方法,应用于内网设备,所述方法包括:
在进行所述内网设备的端口映射操作时,确定用于对所述内网设备进行端口映射的目标网关设备;其中,所述目标网关设备为所述内网设备所属局域网内支持upnp协议的网关设备;
获取所述目标网关设备当前存在的端口映射关系列表;其中,所述端口映射关系表征所述内网设备所对应的地址信息与所述目标网关设备所开放的外部端口信息之间的对应关系,所述地址信息包括互联网协议ip地址信息和端口信息;
通过与所述端口映射关系列表中的各个内网设备建立传输控制协议tcp连接的方式,确定所述端口映射关系列表中的无效端口映射关系;其中,所述无效端口映射关系为包含有无效外部端口的映射关系;
指示所述目标网关设备删除所述无效端口映射关系,以及,指示所述目标网关设备执行所述内网设备的端口映射。
可选的,所述确定用于对所述内网设备进行端口映射的目标网关设备,包括:
在所述内网设备所属局域网内广播查询请求;其中,所述查询请求用于查询所述局域网内支持upnp协议的设备;
根据所述设备返回的响应信息,从返回所述响应信息的设备中确定支持所述upnp协议的网关设备,作为所述目标网关设备。
可选的,所述通过与所述端口映射关系列表中的各个内网设备建立传输控制协议tcp连接的方式,确定所述端口映射关系列表中的无效端口映射关系,包括:
针对所述端口映射关系列表中的每个端口映射关系,判断所述端口映射关系所对应的通信协议是否为tcp通信协议;其中,所述通信协议用于所述内网设备与外部设备之间进行数据传输;
若是,则通过与所述端口映射关系中的内网设备建立tcp连接的方式,确定所述端口映射关系是否为无效端口映射关系。
可选的,所述通过与所述端口映射关系中的内网设备建立tcp连接的方式,确定所述端口映射关系是否为无效端口映射关系,包括:
确定所述端口映射关系中的内网设备所对应的地址信息,并基于所述地址信息建立tcp连接;
若是tcp连接失败,则确定所述端口映射关系为无效端口映射关系。
可选的,所述确定所述端口映射关系为无效端口映射关系之后,所述方法还包括:
确定所述无效端口映射关系所对应的外部端口信息和通信协议,并将所述外部端口信息和所述通信协议添加至待删除外部端口信息列表。
可选的,所述指示所述目标网关设备删除所述无效端口映射关系,包括:
针对所述待删除外部端口信息列表中的每个待删除外部端口,向所述目标网关设备发送删除指令;其中,所述删除指令中携带有所述待删除外部端口所对应的外部端口信息和通信协议,以使所述目标网关设备删除所述外部端口信息和所述通信协议所对应的外部端口。
第二方面,本申请实施例提供了一种通用即插即用upnp端口映射系统,包括内网设备和对所述内网设备进行端口映射的目标网关设备;
所述内网设备,用于在进行端口映射操作时,确定用于对其进行端口映射的目标网关设备;获取所述目标网关设备当前存在的端口映射关系列表;通过与所述端口映射关系列表中的各个内网设备建立传输控制协议tcp连接的方式,确定所述端口映射关系列表中的无效端口映射关系;指示所述目标网关设备删除所述无效端口映射关系,以及,指示所述目标网关设备执行所述内网设备的端口映射;
所述目标网关设备,用于根据所述内网设备的指示删除所述无效端口映射关系,以及,执行所述内网设备的端口映射;
其中,所述目标网关设备为所述内网设备所属局域网内支持upnp协议的网关设备;所述端口映射关系表征所述内网设备所对应的地址信息与所述目标网关设备所开放的外部端口信息之间的对应关系,所述地址信息包括互联网协议ip地址信息和端口信息;所述无效端口映射关系为包含有无效外部端口的映射关系。
可选的,所述内网设备,具体用于:
在所述内网设备所属局域网内广播查询请求;根据所述设备返回的响应信息,从返回所述响应信息的设备中确定支持所述upnp协议的网关设备,作为所述目标网关设备;其中,所述查询请求用于查询所述局域网内支持upnp协议的设备。
可选的,所述内网设备,具体用于:
针对所述端口映射关系列表中的每个端口映射关系,判断所述端口映射关系所对应的通信协议是否为tcp通信协议;若是,则通过与所述端口映射关系中的内网设备建立tcp连接的方式,确定所述端口映射关系是否为无效端口映射关系;其中,所述通信协议用于所述内网设备与外部设备之间进行数据传输。
可选的,所述内网设备,还具体用于:
确定所述端口映射关系中的内网设备所对应的地址信息,并基于所述地址信息建立tcp连接;若是tcp连接失败,则确定所述端口映射关系为无效端口映射关系。
可选的,所述内网设备,还用于:
确定所述无效端口映射关系所对应的外部端口信息和通信协议,并将所述外部端口信息和所述通信协议添加至待删除外部端口信息列表。
可选的,所述内网设备,还具体用于:
针对所述待删除外部端口信息列表中的每个待删除外部端口,向所述目标网关设备发送删除指令;其中,所述删除指令中携带有所述待删除外部端口所对应的外部端口信息和通信协议,以使所述目标网关设备删除所述外部端口信息和所述通信协议所对应的外部端口。
第三方面,本申请实施例还提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现第一方面任一所述的方法步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
采用本申请实施例提供的技术方案,当内网设备在通过支持upnp协议的目标网关设备进行端口映射时,获取目标网关设备中当前已经存在的端口映射关系列表,并基于与端口映射关系列表中的内网设备所对应的地址信息建立tcp连接的方式确定该端口映射关系列表中的无效端口映射关系,并指示目标网关设备删除该无效端口映射关系;即通过本申请实施例的技术方案,使得每次在进行端口映射时,先清除目标网关设备中的无效端口映射关系,释放目标网关设备的端口映射资源,从而可以避免由于目标网关设备存在的端口映射关系达到上限而导致内网设备的端口映射失败的情况的发生,进而可以提升内网设备的upnp端口映射成功率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的upnp端口映射方法的场景示意图;
图2为本申请实施例提供的upnp端口映射方法的第一种方法流程图;
图3为本申请实施例提供的upnp端口映射方法的第二种方法流程图;
图4为本申请实施例提供的upnp端口映射系统的结构示意图;
图5为本申请实施例提供的网络设备的模块组成示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
本申请实施例提供的upnp端口映射的一种具体应用场景则为置于内网中的内网设备主动被外部设备访问。在一种具体应用场景中,其可以应用于包含有内网设备、网关设备和外部设备的网络系统,如图1所示。在如图1所示场景中,内网设备可以为置于家庭或者企业、办公室等局域网内的设备,该设备可以为智能家电、计算机、电脑或者摄像机等等;网关设备为支持upnp协议的网关设备,外部设备可以为外部客户端等等。通过网关设备可以进行内网地址和外网地址的转换,即可以将内网设备的互联网协议地址(internetprotocoladdress,ip)、端口映射网关设备所开放的外部端口。一般的,外部设备通过网关设备所开放的外部端口可以实现对内网设备的访问
例如,在一种具体实施方式中,内网设备的ip地址为192.168.0.10,端口为12345,通过网关设备可以映射到网关设备所开放的外部端口,如端口为10101。当然,此处只是示例性说明,并不构成对本申请实施例的限定。
另外,需要说明的是,本申请实施例提供的方法应用于内网设备,即该方法的执行主体为内网设备,具体的,为安装在内网设备上的upnp端口映射装置。
图2为本申请实施例提供的upnp端口映射方法的第一种方法流程图,如图2所示,该方法至少包括如下步骤:
步骤202,在进行内网设备的端口映射操作时,确定用于对该内网设备进行端口映射的目标网关设备;其中,目标网关设备为内网设备所属局域网内支持upnp协议的网关设备。
可选的,在具体实施时,上述内网设备可以为智能家电、计算机、电脑、监控摄像机等等,内网设备所述局域网可以为家庭局域网、办公室局域网、企业局域网等等。一般的,在某些具体应用场景中,内网设备所属局域网内可能会存在多个网关设备,但是,并不是所有的网关设备都支持upnp协议。因此,内网设备在进行端口映射时,则需要确定该局域网内支持upnp协议的网关设备作为用于对该内网设备进行端口映射的目标网关设备。
步骤204,获取目标网关设备当前存在的端口映射关系列表。
其中,上述端口映射关系表征内网设备所对应的地址信息与目标网关设备所开放的外部端口信息之间的对应关系,上述地址信息包括ip地址信息和端口信息。
即在本申请实施例中,上述端口映射关系实际上为内网设备的ip地址、端口与目标网关设备所开放的外部端口之间的对应关系。其中,目标网关设备当前存在的端口映射关系列表的一种可能形式如表1所示。
表1
其中,表1中的各个ip地址和端口号并不代表真实的ip地址和端口号,上述表1只是为了对目标网关设备中所存储的端口映射关系列表进行说明随机编写的;此外,上述表1中的ip地址、端口、映射关系以及所包含的地址信息的个数均为示例性说明,并不构成对本申请实施例的限定。
另外,需要说明的是,上述步骤204中所提及到的目标网关设备当前存在的端口映射关系列表,可以理解为,通过目标网关设备所记录的已经执行过的端口映射的端口映射关系列表。所以,目标网关设备当前存在的端口映射关系列表中可能会存在一些无效的或者已经不再使用的端口映射关系。
步骤206,通过与端口映射关系列表中的各个内网设备建立传输控制协议tcp连接的方式,确定端口映射关系列表中的无效端口映射关系。
其中,上述无效端口映射关系可以为包含有无效外部端口的映射关系。
一般的,若是某个端口映射关系为有效端口映射关系、且该端口映射关系所对应的通信协议(用于内网设备与外部设备进行数据传输的协议)为传输控制协议(transmissioncontrolprotocol,tcp)协议,则该内网设备中的tcp服务应该一直运行着,因此,此时与该内网设备建立tcp连接,是可以连接成功的;若是,某个端口映射关系为无效端口映射关系、且该端口映射关系所对应的通信协议为tcp协议,则该内网设备中的tcp服务应该已经停止运行,因此,若是此时与该内网设备建立tcp连接,则会出现连接失败。
因此,在本申请实施例中,通过与内网设备建立tcp连接的方式,可以确定出端口映射关系列表中的无效端口映射关系。
另外,需要说明的是,在本申请实施例中,上述无效端口映射关系,可以理解为包含有无效外部端口的端口映射关系。例如,此处所提及到的无效外部端口可以理解为外部设备无法访问的外部端口。
步骤208,指示所述目标网关设备删除上述无效端口映射关系,以及,指示目标网关设备执行该内网设备的端口映射。
本申请实施例提供的upnp端口映射方法,当内网设备在通过支持upnp协议的目标网关设备进行端口映射时,获取目标网关设备中当前已经存在的端口映射关系列表,并基于与端口映射关系列表中的内网设备所对应的地址信息建立tcp连接的方式确定该端口映射关系列表中的无效端口映射关系,并指示目标网关设备删除该无效端口映射关系;即通过本申请实施例的技术方案,使得每次在进行端口映射时,先清除目标网关设备中的无效端口映射关系,释放目标网关设备的端口映射资源,从而可以避免由于目标网关设备存在的端口映射关系达到上限而导致内网设备的端口映射失败的情况的发生,进而可以提升内网设备的upnp端口映射成功率。
可选的,在一种具体实施方式中,上述步骤202中,确定用于对该内网设备进行端口映射的目标网关设备,具体可包括如下步骤一和步骤二:
步骤一、在内网设备所属局域网内广播查询请求;其中,上述查询请求用于查询局域网内支持upnp协议的设备;
步骤二、根据上述设备返回的响应信息,从返回响应信息的设备中确定支持upnp协议的网关设备,作为目标网关设备。
其中,上述设备可以包括当前局域网内的网关设备、内网设备等。
在一种具体实施方式中,内部设备可以在当前局域网内进行广播,以查询当前局域网内支持upnp协议的设备,当前局域网内的设备在接收到该内部设备发送的广播信息后,若是支持upnp协议,则向上述内网设备返回响应信息;其中,上述响应信息中需要携带有自身的设备类型,以及其所支持的协议信息;其中,上述设备类型用于表征该设备为网关设备还是其他内网设备。
内部设备在接收到其他设备返回的响应信息后,基于该响应信息,确定当前局域网内支持upnp的网关设备,作为用于对其进行端口映射的目标网关设备。
另外,需要说明的是,在本申请实施例中,则是基于标准upnp协议向当前局域网内的各个设备进行上述广播,这样,只有支持upnp协议的设备才会返回响应信息。
在本申请实施例中,通过在当前局域网内进行广播的形式,可以方便、快捷的确定出当前局域网内支持upnp协议的网关设备。
可选的,在一种具体实施方式中,上述步骤206中,通过与端口映射关系列表中的各个内网设备建立传输控制协议tcp连接的方式,确定端口映射关系列表中的无效端口映射关系,具体可以通过如下步骤实现:
针对端口映射关系列表中的每个端口映射关系,判断该端口映射关系所对应的通信协议类型是否为tcp通信协议;若是,则通过与端口映射关系中的内网设备建立tcp连接的方式,确定该端口映射关系是否为无效端口映射关系;其中,上述通信协议用于内网设备与外部设备之间进行数据传输。
其中,在具体实施时,从目标网关设备所获取的端口映射关系列表中,除了包含各个端口映射关系所对应的内网设备的地址信息和目标网关设备所开放的外部端口之外,还包含有该映射关系所对应的通信协议信息、以及端口映射关系的描述信息等。
因此,在本申请实施例中,可以基于所获取的端口映射关系列表中的各个端口映射关系所对应的通信协议信息,判断该端口映射关系所对应的通信协议是否为tcp通信协议,若是,则可以执行通过建立tcp连接的方式确定无效端口映射关系的操作。
另外,需要说明的是,在本申请实施例中,实际上是与内网设备进行端口映射的端口建立tcp连接。为便于理解,下述将举例进行说明。
例如,在一种具体实施方式中,其中一条端口映射关系为内网设备的端口a映射到目标网关设备所开放的端口b,因此,在判断该条端口映射关系是否为无效端口映射关系时,则通过与该内网设备的端口a建立tcp连接的方式判断该端口映射关系是否为无效端口映射关系。
具体的,在本申请实施例中,上述通过与所述端口映射关系中的内网设备建立tcp连接的方式,确定端口映射关系是否为无效端口映射关系,具体可以通过如下过程实现:
确定上述端口映射关系中的内网设备所对应的地址信息;并基于该地址信息建立tcp连接;若是tcp连接失败,则确定该端口映射关系为无效端口映射关系。
可选的,在一种具体实施方式中,则是基于端口映射关系中的内网设备所对应的地址信息,与该地址信息中的端口建立tcp连接,若是该tcp连接建立成功,则说明该端口映射关系所对应的tcp服务一直在运行着,即当前端口处于使用状态,也即,该端口映射关系为有效映射关系;若是上述tcp连接建立失败,则说明该端口映射关系所对应的tcp服务停止运行,即当前端口处于停用状态,也即,该端口映射关系为无效端口映射关系。
在本申请实施例中,通过与端口映射关系中的内网设备所对应地址信息建立tcp连接的方式,可以简单、方便的确定出目标网关设备中的无效端口映射关系,从而便于及时清理目标网关设备中的无效端口映射关系,释放目标网关设备的端口映射资源,从而提高当前需要进行端口映射的内网设备的端口映射成功率。
可选的,在一种具体实施方式中,在确定端口映射关系列表中的无效端口映射关系时,可以每次从该端口映射关系列表中读取一条端口映射关系,判断该端口映射关系所支持的通信协议是否为tcp通信协议,若不是,则结束当前端口映射关系的判断流程,从端口映射关系列表中读取下一条端口映射关系;若该端口映射关系所支持的通信协议为tcp通信协议,则确定该端口映射关系中的内网设备所对应的地址信息,并基于该地址信息建立tcp连接;若是tcp连接建立成功,则确定该端口映射关系为有效端口映射关系,若是tcp连接建立失败,则确定该端口映射关系为无效端口映射关系。
可选的,在一种具体实施方式中,确定上述端口映射关系为无效端口映射关系之后,本说明书实施例提供的方法还包括:
确定该无效端口映射关系所对应的外部端口信息和通信协议,将该外部端口信息和通信协议添加至待删除外部端口信息列表。
可选的,在一种具体实施方式中,指示目标网关设备删除无效端口映射关系,具体可以通过如下过程实现:
针对待删除外部端口信息列表中的每个待删除外部端口,向目标网关设备发送删除指令;其中,该删除指令中携带有待删除外部端口所对应的外部端口信息和通信协议,以使目标网关设备删除该外部端口信息和通信协议所对应的端口。
其中,在具体实施时,每从待删除外部端口信息列表中读取一条待删除外部端口信息,则针对该待删除外部端口,向目标网关设备发送一次删除指令,直至从待删除外部端口信息列表中读完最后一条待删除外部端口信息为止。
可选的,在本申请实施例中,在指示目标网关设备删除无效端口映射关系后,则向目标网关设备发送端口映射请求,以通过目标网关设备进行端口映射关系的添加。
图3为本申请实施例提供的upnp端口映射方法的第二种方法流程图,该方法应用于需要进行端口映射的目标内网设备,如图3所示,该方法至少包括如下步骤:
步骤302,当目标内网设备需要进行端口映射时,向目标内网设备所属局域网内广播查询请求。
其中,上述查询请求用于查询该局域网内支持upnp协议的设备。
步骤304,根据局域网内设备返回的响应信息,从返回响应信息的设备中确定支持upnp协议的网关设备,作为对目标内网设备进行端口映射的目标网关设备。
步骤306,获取目标网关设备当前存在的端口映射关系列表。
其中,上述端口映射关系列表表征内网设备所对应的地址信息与目标网关设备所开放的外部端口信息之间的对应关系,该地址信息包括ip地址信息和端口信息。
步骤308,从所述端口映射关系列表中读取一条端口映射关系。
步骤310,判断该端口映射关系所对应的通信协议是否为tcp通信协议;若是,则执行步骤312;否则,继续执行步骤308。
步骤312,确定该端口映射关系中的内网设备所对应的地址信息。
步骤314,基于上述地址信息建立tcp连接,并判断是否连接成功;若是tcp连接失败,则执行步骤316;若是tcp连接成功,则执行步骤308。
步骤316,将该端口映射关系所对应的外部端口信息和通信协议信息添加至待删除外部端口信息列表。
步骤318,从待删除外部端口信息列表中读取一条待删除外部端口信息,并针对该待删除外部端口信息向目标网关设备发送删除指令,直至读完待删除外部端口信息列表中的最后一条待删除外部端口信息。
其中,上述删除指令中携带有待删除外部端口所对应的外部端口信息和通信协议,以使目标网关设备删除该外部端口信息和通信协议所对应的端口。
步骤320,向目标网关设备发送端口映射请求,以通过目标网关设备执行目标内网设备的端口映射操作。
其中,图3所示实施例中各个步骤的具体实现过程可参考图1所示实施例,此处不再赘述。
本申请实施例提供的upnp端口映射方法,当内网设备在通过支持upnp协议的目标网关设备进行端口映射时,获取目标网关设备中当前已经存在的端口映射关系列表,并基于与端口映射关系列表中的内网设备所对应的地址信息建立tcp连接的方式确定该端口映射关系列表中的无效端口映射关系,并指示目标网关设备删除该无效端口映射关系;即通过本申请实施例的技术方案,使得每次在进行端口映射时,先清除目标网关设备中的无效端口映射关系,释放目标网关设备的端口映射资源,从而可以避免由于目标网关设备存在的端口映射关系达到上限而导致内网设备的端口映射失败的情况的发生,进而可以提升内网设备的upnp端口映射成功率。
对应于本申请实施例提供的upnp端口映射方法,基于相同的思路,本申请实施例还提供了一种upnp端口映射系统,用于执行本申请实施例提供的upnp端口映射方法。图4为本申请实施例提供的upnp端口映射系统的结构示意图,如图4所示,该系统包括内网设备410和对内网设备进行端口映射的目标网关设备420;
上述内网设备410,用于在进行端口映射操作时,确定用于对其进行端口映射的目标网关设备;获取所述目标网关设备当前存在的端口映射关系列表;通过与所述端口映射关系列表中的各个内网设备建立传输控制协议tcp连接的方式,确定所述端口映射关系列表中的无效端口映射关系;指示所述目标网关设备删除所述无效端口映射关系,以及,指示所述目标网关设备执行所述内网设备的端口映射;
目标网关设备420,用于根据所述内网设备的指示删除所述无效端口映射关系,以及,执行所述内网设备的端口映射;
其中,所述目标网关设备为所述内网设备所属局域网内支持upnp协议的网关设备;所述端口映射关系表征所述内网设备所对应的地址信息与所述目标网关设备所开放的外部端口信息之间的对应关系,所述地址信息包括互联网协议ip地址信息和端口信息;所述无效端口映射关系为包含有无效外部端口的映射关系。
可选的,上述内网设备410,具体用于:
在所述内网设备所属局域网内广播查询请求;根据所述设备返回的响应信息,从返回所述响应信息的设备中确定支持所述upnp协议的网关设备,作为所述目标网关设备;其中,所述查询请求用于查询所述局域网内支持upnp协议的设备。
可选的,上述内网设备410,具体用于:
针对所述端口映射关系列表中的每个端口映射关系,判断所述端口映射关系所对应的通信协议是否为tcp通信协议;若是,则通过与所述端口映射关系中的内网设备建立tcp连接的方式,确定所述端口映射关系是否为无效端口映射关系;其中,所述通信协议用于所述内网设备与外部设备之间进行数据传输。
可选的,上述内网设备410,还具体用于:
确定所述端口映射关系中的内网设备所对应的地址信息,并基于所述地址信息建立tcp连接;若是tcp连接失败,则确定所述端口映射关系为无效端口映射关系。
可选的,上述内网设备410,还用于:
确定所述无效端口映射关系所对应的外部信息和通信协议,并将所述端口信息和所述通信协议添加至待删除外部端口信息列表。
可选的,上述内网设备410,还具体用于:
针对所述待删除外部端口信息列表中的每个待删除外部端口,向所述目标网关设备发送删除指令;其中,所述删除指令中携带有所述待删除外部端口所对应的外部端口信息和通信协议,以使所述目标网关设备删除所述外部端口信息和所述通信协议所对应的外部端口。
需要说明的是,本申请实施例提供的upnp端口映射系统与本申请实施例提供的upnp端口映射方法基于同一发明构思,因此,该实施例的具体实施可参见前述upnp端口映射方法的实施,重复之处不再赘述。
本申请实施例提供的upnp端口映射系统,当内网设备在通过支持upnp协议的目标网关设备进行端口映射时,获取目标网关设备中当前已经存在的端口映射关系列表,并基于与端口映射关系列表中的内网设备所对应的地址信息建立tcp连接的方式确定该端口映射关系列表中的无效端口映射关系,并指示目标网关设备删除该无效端口映射关系;即通过本申请实施例的技术方案,使得每次在进行端口映射时,先清除目标网关设备中的无效端口映射关系,释放目标网关设备的端口映射资源,从而可以避免由于目标网关设备存在的端口映射关系达到上限而导致内网设备的端口映射失败的情况的发生,进而可以提升内网设备的upnp端口映射成功率。
相应于本申请实施例提供的一种upnp端口映射方法,本申请实施例提供一种网络设备,参见图5所示,网络设备包括处理器510、收发机520、存储器530和总线接口。其中:
在本申请实施例中,网络设备500还包括:存储在存储器530上并可在所述处理器510上运行的计算机程序,所述计算机程序被所述处理器510执行时实现上述upnp端口映射方法的各个功能,且能达到相同的技术效果,为避免重复,这里不再赘述。
在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器510代表的一个或多个处理器和存储器530代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机520可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。
处理器510负责管理总线架构和通常的处理,存储器530可以存储处理器510在执行操作时所使用的数据。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
1.一种通用即插即用upnp端口映射方法,应用于内网设备,其特征在于,所述方法包括:
在进行所述内网设备的端口映射操作时,确定用于对所述内网设备进行端口映射的目标网关设备;其中,所述目标网关设备为所述内网设备所属局域网内支持upnp协议的网关设备;
获取所述目标网关设备当前存在的端口映射关系列表;其中,所述端口映射关系表征所述内网设备所对应的地址信息与所述目标网关设备所开放的外部端口信息之间的对应关系,所述地址信息包括互联网协议ip地址信息和端口信息;
通过与所述端口映射关系列表中的各个内网设备建立传输控制协议tcp连接的方式,确定所述端口映射关系列表中的无效端口映射关系;其中,所述无效端口映射关系为包含有无效外部端口的映射关系;
指示所述目标网关设备删除所述无效端口映射关系,以及,指示所述目标网关设备执行所述内网设备的端口映射。
2.如权利要求1所述的方法,其特征在于,所述确定用于对所述内网设备进行端口映射的目标网关设备,包括:
在所述内网设备所属局域网内广播查询请求;其中,所述查询请求用于查询所述局域网内支持upnp协议的设备;
根据所述设备返回的响应信息,从返回所述响应信息的设备中确定支持所述upnp协议的网关设备,作为所述目标网关设备。
3.如权利要求1所述的方法,其特征在于,所述通过与所述端口映射关系列表中的各个内网设备建立传输控制协议tcp连接的方式,确定所述端口映射关系列表中的无效端口映射关系,包括:
针对所述端口映射关系列表中的每个端口映射关系,判断所述端口映射关系所对应的通信协议是否为tcp通信协议;其中,所述通信协议用于所述内网设备与外部设备之间进行数据传输;
若是,则通过与所述端口映射关系中的内网设备建立tcp连接的方式,确定所述端口映射关系是否为无效端口映射关系。
4.如权利要求3所述的方法,其特征在于,所述通过与所述端口映射关系中的内网设备建立tcp连接的方式,确定所述端口映射关系是否为无效端口映射关系,包括:
确定所述端口映射关系中的内网设备所对应的地址信息,并基于所述地址信息建立tcp连接;
若是tcp连接失败,则确定所述端口映射关系为无效端口映射关系。
5.如权利要求4所述的方法,其特征在于,所述确定所述端口映射关系为无效端口映射关系之后,所述方法还包括:
确定所述无效端口映射关系所对应的外部端口信息和通信协议,并将所述外部端口信息和所述通信协议添加至待删除外部端口信息列表。
6.如权利要求5所述的方法,其特征在于,所述指示所述目标网关设备删除所述无效端口映射关系,包括:
针对所述待删除外部端口信息列表中的每个待删除外部端口,向所述目标网关设备发送删除指令;其中,所述删除指令中携带有所述待删除外部端口所对应的外部端口信息和通信协议,以使所述目标网关设备删除所述外部端口信息和所述通信协议所对应的外部端口。
7.一种通用即插即用upnp端口映射系统,其特征在于,包括内网设备和对所述内网设备进行端口映射的目标网关设备;
所述内网设备,用于在进行端口映射操作时,确定用于对其进行端口映射的目标网关设备;获取所述目标网关设备当前存在的端口映射关系列表;通过与所述端口映射关系列表中的各个内网设备建立传输控制协议tcp连接的方式,确定所述端口映射关系列表中的无效端口映射关系;指示所述目标网关设备删除所述无效端口映射关系,以及,指示所述目标网关设备执行所述内网设备的端口映射;
所述目标网关设备,用于根据所述内网设备的指示删除所述无效端口映射关系,以及,执行所述内网设备的端口映射;
其中,所述目标网关设备为所述内网设备所属局域网内支持upnp协议的网关设备;所述端口映射关系表征所述内网设备所对应的地址信息与所述目标网关设备所开放的外部端口信息之间的对应关系,所述地址信息包括互联网协议ip地址信息和端口信息;所述无效端口映射关系为包含有无效外部端口的映射关系。
8.如权利要求7所述的系统,其特征在于,所述内网设备,具体用于:
在所述内网设备所属局域网内广播查询请求;根据所述设备返回的响应信息,从返回所述响应信息的设备中确定支持所述upnp协议的网关设备,作为所述目标网关设备;其中,所述查询请求用于查询所述局域网内支持upnp协议的设备。
9.如权利要求7所述的系统,其特征在于,所述内网设备,具体用于:
针对所述端口映射关系列表中的每个端口映射关系,判断所述端口映射关系所对应的通信协议是否为tcp通信协议;若是,则通过与所述端口映射关系中的内网设备建立tcp连接的方式,确定所述端口映射关系是否为无效端口映射关系;其中,所述通信协议用于所述内网设备与外部设备之间进行数据传输。
10.如权利要求9所述的系统,其特征在于,所述内网设备,还具体用于:
确定所述端口映射关系中的内网设备所对应的地址信息,并基于所述地址信息建立tcp连接;若是tcp连接失败,则确定所述端口映射关系为无效端口映射关系。
11.如权利要求10所述的系统,其特征在于,所述内网设备,还用于:
确定所述无效端口映射关系所对应的外部端口信息和通信协议,并将所述外部端口信息和所述通信协议添加至待删除外部端口信息列表。
12.如权利要求11所述的系统,其特征在于,所述内网设备,还具体用于:
针对所述待删除外部端口信息列表中的每个待删除外部端口,向所述目标网关设备发送删除指令;其中,所述删除指令中携带有所述待删除外部端口所对应的外部端口信息和通信协议,以使所述目标网关设备删除所述外部端口信息和所述通信协议所对应的外部端口。
13.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现权利要求1-6任一所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
技术总结