监控设备建立连接的方法、装置、设备、系统及存储介质转让专利

申请号 : CN202010186648.8

文献号 : CN113411367B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 余德辉陈晓庆

申请人 : 浙江宇视科技有限公司

摘要 :

本发明公开了一种监控设备建立连接的方法、装置、设备、系统及计算机可读存储介质;在本方案中,客户端与监控设备建立连接时,如果监控设备通过原始端口向客户端返回请求响应后,未收到客户端发送的下一步请求,则监控设备通过将备用端口替换原始端口,自动修改路由器与监控设备的映射关系,从而使得响应请求可通过修改后的映射关系发送至客户端,以成功建立客户端与监控设备的连接,这样客户端在获取监控设备的实况及回放数据时,便不会因路由器禁用端口而导致出现黑屏现象;并且,这种取消原始端口映射关系保留路由器内部端口的方式,可保证NAT的组网正常,不会出现由于内部端口变更导致的异常断流问题。

权利要求 :

1.一种监控设备建立连接的方法,其特征在于,包括:

通过内部端口接收路由器转发的连接请求,所述连接请求为客户端通过外部端口发送至路由器,所述内部端口与所述外部端口具有映射关系;

将与所述连接请求对应的响应请求通过所述内部端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端;

若在发送完所述响应请求的第一预定时长内,未接收所述客户端发送的其他请求,则在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立备用端口与所述外部端口的映射关系;

将所述响应请求通过所述备用端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端,从而建立所述监控设备与所述客户端的连接。

2.根据权利要求1所述的方法,其特征在于,所述通过内部端口接收路由器转发的连接请求,包括:通过内部端口接收路由器转发的建立RTSP连接的OPTIONS请求。

3.根据权利要求1所述的方法,其特征在于,在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系,包括:向所述路由器发送映射关系取消指令,所述映射关系取消指令用于取消所述内部端口与所述外部端口的映射关系;

若接收到所述路由器发送的映射关系取消成功的提示信息,则向所述路由器发送映射关系创建指令,所述映射关系创建指令用于建立所述备用端口与所述外部端口的映射关系。

4.根据权利要求3所述的方法,其特征在于,将所述响应请求通过所述备用端口发送至所述路由器,包括:若接收到所述路由器发送的映射关系建立成功的提示信息,则将所述响应请求通过所述备用端口发送至所述路由器。

5.根据权利要求1至4中任意一项所述的方法,其特征在于,若在发送完所述响应请求的第一预定时长内,未接收所述客户端发送的其他请求,则所述方法还包括:通过所述路由器向所述客户端发送保活命令;

判断第二预定时长内,是否接收到所述客户端通过所述路由器转发的保活响应命令;

若是,则执行所述在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系的步骤。

6.一种监控设备建立连接的装置,其特征在于,包括:

接收模块,用于通过内部端口接收路由器转发的连接请求,所述连接请求为客户端通过外部端口发送至所述路由器,所述内部端口与所述外部端口具有映射关系;

第一发送模块,用于将与所述连接请求对应的响应请求通过所述内部端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端;

端口替换模块,用于在发送完所述响应请求的第一预定时长内,未接收所述客户端发送的其他请求时,在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立备用端口与所述外部端口的映射关系;

第二发送模块,用于将所述响应请求通过所述备用端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端,从而建立所述监控设备与所述客户端的连接。

7.根据权利要求6所述的装置,其特征在于,还包括:

第三发送模块,用于通过所述路由器向所述客户端发送保活命令;

判断模块,用于判断第二预定时长内,是否接收到所述客户端通过所述路由器转发的保活响应命令;

所述端口替换模块,用于在第二预定时长内接收到所述客户端通过所述路由器转发的保活响应命令时,在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系。

8.一种电子设备,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的监控设备建立连接的方法的步骤。

9.一种连接建立系统,其特征在于,包括:客户端、路由器、以及如权利要求8所述的电子设备。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的监控设备建立连接的方法的步骤。

说明书 :

监控设备建立连接的方法、装置、设备、系统及存储介质

技术领域

[0001] 本发明涉及数据交互技术领域,更具体地说,涉及一种监控设备建立连接的方法、装置、设备、系统及计算机可读存储介质。

背景技术

[0002] 目前,在监控领域中,常用的标准组网是NVR(Network Video Recorder,网络视频录像机)和IPC(IP CAMERA,网络摄像机)在局域网下,通过路由器端口映射到外网,通过RTSP(Real Time Streaming Protocol,实时流传输协议)进行音视频码流传输,供用户远程访问使用,参见图1,为现有技术中的常见监控组网示意图,通过图1可见,NVR和IPC通过路由器与广域网的云服务网站和手机客户端进行音视频交互。但是,目前部分常见路由器会自动禁用NAT(Network Address Translation,网络地址转换)内设备的部分端口穿NAT交互,如某些路由器会自动禁用NAT内设备的554端口穿NAT交互,此时会导致RTSP无法穿NAT传输,用户查看摄像机和录像机的实况及回放时,会出现黑屏现象,无法正常使用,并且用户无法得知是由于路由器禁用端口导致,也无法知道如何规避该问题。

发明内容

[0003] 本发明的目的在于提供一种监控设备建立连接的方法、装置、设备、系统及计算机可读存储介质,以避免因路由器禁用端口,而导致无法通过端口进行数据传输的问题。
[0004] 为实现上述目的,本发明提供的一种监控设备建立连接的方法,包括:
[0005] 通过内部端口接收路由器转发的连接请求,所述连接请求为客户端通过外部端口发送至路由器,所述内部端口与所述外部端口具有映射关系;
[0006] 将与所述连接请求对应的响应请求通过所述内部端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端;
[0007] 若在发送完所述响应请求的第一预定时长内,未接收所述客户端发送的其他请求,则在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系;
[0008] 将所述响应请求通过所述备用端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端,从而建立所述监控设备与所述客户端的连接。
[0009] 其中,所述通过内部端口接收路由器转发的连接请求,包括:
[0010] 通过内部端口接收路由器转发的建立RTSP连接的OPTIONS请求。
[0011] 其中,在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系,包括:
[0012] 向所述路由器发送映射关系取消指令,所述映射关系取消指令用于取消所述内部端口与所述外部端口的映射关系;
[0013] 若接收到所述路由器发送的映射关系取消成功的提示信息,则向所述路由器发送映射关系创建指令,所述映射关系创建指令用于建立所述备用端口与所述外部端口的映射关系。
[0014] 其中,将所述响应请求通过所述备用端口发送至所述路由器,包括:
[0015] 若接收到所述路由器发送的映射关系建立成功的提示信息,则将所述响应请求通过所述备用端口发送至所述路由器。
[0016] 其中,若在发送完所述响应请求的第一预定时长内,未接收所述客户端发送的其他请求,则所述方法还包括:
[0017] 通过所述路由器向所述客户端发送保活命令;
[0018] 判断第二预定时长内,是否接收到所述客户端通过所述路由器转发的保活响应命令;
[0019] 若是,则执行所述在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系的步骤。
[0020] 为实现上述目的,本发明进一步提供一种监控设备建立连接的装置,包括:
[0021] 接收模块,用于通过内部端口接收路由器转发的连接请求,所述连接请求为客户端通过外部端口发送至所述路由器,所述内部端口与所述外部端口具有映射关系;
[0022] 第一发送模块,用于将与所述连接请求对应的响应请求通过所述内部端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端;
[0023] 端口替换模块,用于在发送完所述响应请求的第一预定时长内,未接收所述客户端发送的其他请求时,在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系;
[0024] 第二发送模块,用于将所述响应请求通过所述备用端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端,从而建立所述监控设备与所述客户端的连接。
[0025] 其中,本装置还包括:
[0026] 第三发送模块,用于通过所述路由器向所述客户端发送保活命令;
[0027] 判断模块,用于判断第二预定时长内,是否接收到所述客户端通过所述路由器转发的保活响应命令;
[0028] 所述端口替换模块,用于在第二预定时长内接收到所述客户端通过所述路由器转发的保活响应命令时,在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系。
[0029] 为实现上述目的,本发明进一步提供一种电子设备,包括:
[0030] 存储器,用于存储计算机程序;
[0031] 处理器,用于执行所述计算机程序时实现上述的监控设备建立连接的方法的步骤。
[0032] 为实现上述目的,本发明进一步提供一种连接建立系统,包括:客户端、路由器、以及上述的电子设备。
[0033] 为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的监控设备建立连接的方法的步骤。
[0034] 通过以上方案可知,本发明实施例提供的一种监控设备建立连接的方法,包括:通过内部端口接收路由器转发的连接请求,所述连接请求为客户端通过外部端口发送至所述路由器,所述内部端口与所述外部端口具有映射关系;将与所述连接请求对应的响应请求通过所述内部端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端;若在发送完所述响应请求的第一预定时长内,未接收所述客户端发送的其他请求,则在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系;将所述响应请求通过所述备用端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端,从而建立所述监控设备与所述客户端的连接。
[0035] 可见,在本方案中,客户端与监控设备建立连接时,如果监控设备通过原始端口向客户端返回请求响应后,未收到客户端发送的下一步请求,则监控设备通过将备用端口替换原始端口,自动修改路由器与监控设备的映射关系,从而使得响应请求可通过修改后的映射关系发送至客户端,以成功建立客户端与监控设备的连接,这样客户端在获取监控设备的实况及回放数据时,便不会因路由器禁用端口而导致出现黑屏现象;并且,这种取消原始端口映射关系保留路由器内部端口的方式,可保证NAT的组网正常,不会出现由于内部端口变更导致的异常断流问题。
[0036] 本发明还公开了一种监控设备建立连接的装置、设备、系统及计算机可读存储介质,同样能实现上述技术效果。

附图说明

[0037] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038] 图1为现有技术中的常见监控组网示意图;
[0039] 图2为本发明实施例公开的一种监控设备建立连接的系统结构示意图;
[0040] 图3为本发明实施例公开的一种监控设备建立连接的方法流程示意图;
[0041] 图4为本发明实施例公开的另一种监控设备建立连接的方法流程示意图;
[0042] 图5为本发明实施例公开的整体方案流程图;
[0043] 图6为本发明实施例公开的穿NAT交互时序图;
[0044] 图7为本发明实施例公开的一种监控设备建立连接的装置结构示意图;
[0045] 图8为本发明实施例公开的一种电子设备结构示意图。

具体实施方式

[0046] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047] 目前,路由器会禁止部分端口穿NAT交互,这会导致数据无法穿NAT传输,如:客户端获取NAT内的监控设备的音视频数据时,由于RTSP的554端口禁用,音视频流无法穿NAT传输,在客户端处会出现实况及回放黑屏的状况。但是,实际操作的终端用户无法感知是因为路由器禁用554端口导致该问题,也无法得知修改RTSP端口可以规避该问题,同时直接修改RTSP端口,不符合标准的协议,可能存在一致性和兼容性问题,也会导致NAT的RTSP出现异常断流。
[0048] 因此在本申请中,公开了一种监控设备建立连接的方法、装置、设备、系统及计算机可读存储介质,通过本方案,可以使NAT内的监控设备既可以规避由路由器禁用554等端口导致实况、回放功能不可用问题,同时保证NAT内设备本身的554端口不发生变化,保证NAT的组网正常,不会出现由于RTSP端口变更导致的异常断流问题。
[0049] 为了便于理解,下面对本申请的技术方案所适用的系统架构进行介绍,在本申请中,该系统可以包括客户端、路由器及电子设备,在本实施例中,电子设备以监控设备为例进行说明,参见图2,为本发明实施例公开的一种监控设备建立连接的系统结构示意图。通过图1可以看出,本系统可以包括客户端11、路由器12及监控设备13。
[0050] 其中,客户端11用于将连接请求通过外部端口发送至路由器12,该客户端11可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式电脑等或智能穿戴式设备等。
[0051] 路由器12用于实现客户端11与监控设备13之间的数据交互,将客户端发送的连接请求转发至监控设备13。
[0052] 监控设备13用于通过内部端口接收连接请求,并将与该连接请求对应的响应请求通过内部端口发送至路由器12,路由器12再通过外部端口将该响应请求转发至客户端11;并且,若在发送完该响应请求的第一预定时长内,监控设备13未接收客户端11发送的其他请求,则通过备用端口替换内部端口,并在路由器13建立备用端口与外部端口的映射关系;
然后再将响应请求通过备用端口发送至路由器13,以使路由器13通过外部端口将响应请求转发至客户端,从而建立所述监控设备与所述客户端的连接。并且,本申请中的监控设备具体可以为NVR、IPC等任意视频采集设备。
[0053] 参见图3,本发明实施例提供的一种监控设备建立连接的方法流程示意图;该方法具体可以包括:
[0054] S101、通过内部端口接收路由器转发的连接请求,连接请求为客户端通过外部端口发送至路由器,内部端口与外部端口具有映射关系;
[0055] 可以理解的是,本申请中的内部端口和外部端口为具有映射关系的两个端口,客户端向监控设备发送连接请求时,需要将连接请求发送至路由器的外部端口,路由器通过内部端口与外部端口的映射关系,将连接请求通过内部端口转发至监控设备。
[0056] 具体来说,如果客户端和监控设备之间通过RTSP进行音视频码流传输,那么该连接请求为通过内部端口接收的路由器转发的建立RTSP连接的OPTIONS请求。在本实施例中,可以设定RTSP内部端口为554,设定RTSP外部端口为8554,那么该连接请求就是通过8554端口发给路由器,路由器通过554端口将连接请求发送至监控设备。
[0057] S102、将与连接请求对应的响应请求通过内部端口发送至路由器,以使路由器通过外部端口将响应请求转发至客户端;
[0058] 在本实施例中,监控设备接收到连接请求后,会将与该连接请求对应的响应请求通过内部端口、外部端口发送至客户端;如果路由器未禁用该内部端口,该响应请求会通过路由器发送至客户端,客户端则会继续向监控设备下发其他连接请求;如果路由器禁用了该内部端口,那么客户端便不会收到该响应请求。具体来说,如果该连接请求为建立RTSP连接的OPTIONS请求,由于该OPTIONS请求是用来询问监控设备可用的方法,因此,监控设备向客户端回复的响应命令中,会包括给监控设备可用的方法,如:OPTIONS、DESCRIBE、SETUP、TEARDOWN、PLAY等等。
[0059] S103、若在发送完响应请求的第一预定时长内,未接收客户端发送的其他请求,则在路由器取消内部端口与外部端口的映射关系,并建立备用端口与外部端口的映射关系;
[0060] 可以理解的是,本申请在建立RTSP连接时,客户端首先会向监控设备发送OPTIONS连接请求,客户端获取到响应请求中的参数后,会向监控设备发送其他的请求,例如:DESCRIBE请求(为了得到会话描述信息)、SETUP请求(用来提醒服务器建立会话,并确定传输模式)等等。但是,若由于路由器禁用部分端口,导致客户端收不到监控设备发送的响应请求,这时客户端便不会向监控设备发送其他请求。
[0061] 因此,监控设备为了保证路由器不会因为端口禁用而导致连接建立失败,会在向客户端发送响应请求之后开始计时,判断在第一预定时长内是否接收到客户端发送的其他请求;如果接收到其他请求,则说明路由器未禁用端口,这时便不需要执行后续流程,如果没有接收到其他请求,则说明路由器可能因为禁用端口而导致响应请求未发送至客户端,这时本方案可以通过备用端口替换内部端口,即:取消原内部端口与外部端口的映射关系,并建立备用端口与外部端口的映射关系,并通过重新建立的端口映射关系,再次通过路由器向客户端发送响应请求。例如:若RTSP内部端口为554,外部端口为8554,554和8554具有映射关系,在建立RTSP时,是通过554端口和8554端口进行请求的发送;若通过555端口替换554端口,则需要取消554端口和8554端口的映射关系,并建立555端口和8554端口的映射关系,通过555端口和8554端口进行请求的发送。
[0062] S104、将响应请求通过备用端口发送至路由器,以使路由器通过外部端口将响应请求转发至客户端,从而建立监控设备与客户端的连接。
[0063] 在本申请中,通过备用端口替换内部端口后,会再次通过重新建立的备用端口和外部端口的映射关系,向客户端发送响应请求,完成监控设备与客户端的RTSP连接的建立,并传输音视频流。需要说明的是,如果通过备用端口替换内部端口后,还是不能接收到客户端发送的其他请求,这时说明并不是因为路由器禁用端口导致的指令传输中断,可能是因为其他原因导致该问题,如网络故障问题、设备故障问题等等,这时可将该问题上报管理员,通过管理员进行人工修复。
[0064] 综上可以看出,客户端与监控设备建立连接时,如果监控设备通过原始端口向客户端返回请求响应后,未收到客户端发送的下一步请求,则监控设备通过将备用端口替换原始端口,自动修改路由器与监控设备的映射关系从而使得响应请求可通过修改后的映射关系发送至客户端,以成功建立客户端与监控设备的连接,这样客户端在获取监控设备的实况及回放数据时,便不会因路由器禁用端口而导致出现黑屏现象;并且,这种取消原始端口映射关系保留路由器内部端口的方式,可保证NAT的组网正常,不会出现由于内部端口变更导致的异常断流问题。
[0065] 参见图4,本发明实施例提供的另一种监控设备建立连接的方法流程示意图;需要说明的是,本实施例与上一实施例的相同之处可以相互参照,在此便不再赘述;在本实施例中,该方法具体可以包括:
[0066] S201、通过内部端口接收路由器转发的连接请求,连接请求为客户端通过外部端口发送至路由器,内部端口与外部端口具有映射关系;
[0067] S202、将与连接请求对应的响应请求通过内部端口发送至路由器,以使路由器通过外部端口将响应请求转发至客户端;
[0068] S203、若在发送完响应请求的第一预定时长内,未接收客户端发送的其他请求,则通过路由器向客户端发送保活命令;
[0069] S204、判断第二预定时长内,是否接收到客户端通过路由器转发的保活响应命令;若是,则执行S205;若否,则结束流程;
[0070] 可以理解的是,如果监控设备在第一预定时长内未接收到客户端发送的其他请求,有可能是因为端口禁用问题导致的,也有可能是因为网络故障或者设备故障问题导致的。因此在本实施例中,为了避免在修改端口映射关系后,依然不能通过修改后的端口映射关系发送响应请求,从而导致端口映射关系的无效修改,可以在修改映射关系之前,通过向客户端发送保活命令,探测网络或者客户端是否故障,从而排除其他可能出现的问题。
[0071] 具体来说,保活命令发送的端口与连接请求发送的端口是不一样的,保活命令的端口是http端口,而连接请求的端口是RTSP端口,因此,不会出现端口禁用的问题。监控设备与客户端发送保活命令的具体过程包括:监控设备通过路由器向客户端发送保活命令,并开始计时;如果网络或者设备出现故障,这时客户端便不会接收到该保活命令,也就不会向监控设备发送保活响应命令,也即:监控设备在发送保活命令起的第二预定时长内,不会接收到保活响应命令,监控设备便知道未接收到客户端发送其他请求的原因,是因为网络或者设备出现故障,而非是端口被禁用。相反,如果网络正确并且未出现故障,这时客户端便可成功接收到该保活命令,并通过路由器向监控设备发送保活响应命令,监控设备接收到保活命令后,则知晓客户端与监控设备之间网络是正常的,这时可判定是因为端口禁用导致客户端不能接收到响应请求,则继续执行S205‑S207。
[0072] S205、向路由器发送映射关系取消指令,映射关系取消指令用于取消内部端口与外部端口的映射关系;
[0073] S206、若接收到路由器发送的映射关系取消成功的提示信息,则向路由器发送映射关系创建指令,映射关系创建指令用于建立备用端口与外部端口的映射关系。
[0074] S207、若接收到路由器发送的映射关系建立成功的提示信息,则将响应请求通过备用端口发送至路由器,以使路由器通过外部端口将响应请求转发至客户端,从而建立监控设备与客户端的连接。
[0075] 在本实施例中,通过备用端口替换内部端口时,监控设备需要与路由器进行交互,先向路由器发送映射关系取消指令,取消内部端口与外部端口的映射关系,若成功取消,则路由器会向监控设备发送映射关系取消成功的提示信息,这时监控设备会再向路由器发送映射关系创建指令,来建立备用端口与外部端口的映射关系,若成功建立,这时路由器会向监控设备发送映射关系建立成功的提示信息,只有映射关系成功取消并建立后,才会将该响应请求通过备用端口再次发送至路由器,从而保证映射关系的成功修改。
[0076] 下面通过一个具体的应用场景实例描述,来对本方案所述的监控设备建立连接的方法进行说明。在本实施例中,监控设备为NVR,客户端和NVR需要建立RTSP连接,客户端向NVR发送的连接请求为OPTIONS请求。并且,RTSP的标准端口(内部端口)为554,此处备用端口以555举例,RTSP的外部端口为8554,NVR的IP地址是192.168.1.100,路由器的WAN口地址为192.168.0.10。
[0077] 参见图5,本发明实施例提供的整体方案流程图;通过该图可以看出,本方案主要分为如下几个步骤:
[0078] 第一步:NVR记录端口映射的外部端口号,客户端添加NVR;
[0079] 其中,该外部端口号即为外部端口的端口号,该步骤主要包括:监控设备发起UPNP(Universal Plug and Play,通用即插即用)并记录映射后的端口,客户端添加监控设备,监控设备向客户端发送携带外部端口的RTSP地址,例如:NVR接入到路由器下后,开启UPNP端口映射,把HTTP、RTSP等端口映射到NAT外,其中554端口映射为8554,然后客户端添加NVR,NVR上线并将实况回放的RTSP url返回给客户端,其中RTSP url的格式以实况主流举例:rtsp://192.168.0.10:8554/media/video1,192.168.0.10是路由器的WAN口地址,8554是NVR端口映射后的外部端口。
[0080] 第二步:客户端发起RTSP实况请求,NVR检测到RTSP OPTIONS信令返回后无后续流程,发起保活命令,确认客户端是否在线。
[0081] 第三步:NVR取消RTSP端口554的端口映射,并以555端口映射到8854端口,NVR通过555端口继续完成RTSP信令交互和音视频流传输。
[0082] 需要说明的是,图5的整体流程图中未具体说明发起保活命令的过程,参见图6,为本发明实施例提供的穿NAT交互时序图,通过该时序图对上述的第三步和第四部进行说明,具体包括:
[0083] F1:客户端向监控设备(NVR)的RTSP外部映射端口建立RTSP连接,发送OPTIONS请求。
[0084] F2:路由器转发OPTIONS给NVR。
[0085] F3:NVR响应OPTIONS请求,返回响应请求。
[0086] F4:路由器禁用554端口,因此不对F3中的返回报文做转发,此时NVR通过HTTP端口发起保活。
[0087] F5:路由器转发保活命令给客户端。
[0088] F6:客户端响应保活命令。
[0089] F7:路由器转发保活命令给NVR。
[0090] F8:NVR取消RTSP 554端口的端口映射。
[0091] F9:路由器返回取消端口映射成功。
[0092] F10:NVR把555端口映射到之前554端口的外部映射端口。
[0093] F11:路由器返回端口映射成功。
[0094] F12:NVR通过555端口将继续返回响应请求,并在555端口完成后续的RTSP建流及音视频流传输。
[0095] F13:路由器进行报文转发。
[0096] 综上可以看出,在本申请中,可通过客户端与监控主设备之间的http保活命令和RTSP信令的交互,建立一种自动修改端口映射的机制,可以解决在NAT内的监控设备,被路由器禁用554端口的问题,以解决NAT内的监控设备无法实况、回放问题。
[0097] 下面对本发明实施例提供的监控设备建立连接的装置进行介绍,下文描述的监控设备建立连接的装置与上文描述的监控设备建立连接的方法可以相互参照。
[0098] 参见图7,本发明实施例提供的一种监控设备建立连接的装置结构示意图;该装置包括:
[0099] 接收模块21,用于通过内部端口接收路由器转发的连接请求,所述连接请求为客户端通过外部端口发送至所述路由器,所述内部端口与所述外部端口具有映射关系;
[0100] 第一发送模块22,用于将与所述连接请求对应的响应请求通过所述内部端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端;
[0101] 端口替换模块23,用于在发送完所述响应请求的第一预定时长内,未接收所述客户端发送的其他请求时,在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系;
[0102] 第二发送模块24,用于将所述响应请求通过所述备用端口发送至所述路由器,以使所述路由器通过所述外部端口将所述响应请求转发至所述客户端,从而建立所述监控设备与所述客户端的连接。
[0103] 其中,所述接收模块具体用于:通过内部端口接收路由器转发的建立RTSP连接的OPTIONS请求。
[0104] 其中,所述端口替换模块包括:
[0105] 第一指令发送模块,用于向所述路由器发送映射关系取消指令,所述映射关系取消指令用于取消所述内部端口与所述外部端口的映射关系;
[0106] 第二指令发送模块,用于在接收到所述路由器发送的映射关系取消成功的提示信息时,向所述路由器发送映射关系创建指令,所述映射关系创建指令用于建立所述备用端口与所述外部端口的映射关系。
[0107] 其中,所述第二发送模块具体用于:在接收到所述路由器发送的映射关系建立成功的提示信息时,将所述响应请求通过所述备用端口发送至所述路由器。
[0108] 其中,本方案还包括:
[0109] 第三发送模块,用于通过所述路由器向所述客户端发送保活命令;
[0110] 判断模块,用于判断第二预定时长内,是否接收到所述客户端通过所述路由器转发的保活响应命令;
[0111] 所述端口替换模块,用于在第二预定时长内接收到所述客户端通过所述路由器转发的保活响应命令时,在所述路由器取消所述内部端口与所述外部端口的映射关系,并建立所述备用端口与所述外部端口的映射关系。
[0112] 参见图8,本发明实施例提供的一种电子设备结构示意图,该设备包括:
[0113] 存储器31,用于存储计算机程序;
[0114] 处理器32,用于执行所述计算机程序时实现如上述任意方法实施例所述的监控设备建立连接的方法的步骤。
[0115] 在本实施例中,设备可以是NVR或者IPC等设备。
[0116] 该设备可以包括存储器31、处理器32和总线33。
[0117] 其中,存储器31至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器31在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器31在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器31还可以既包括设备的内部存储单元也包括外部存储设备。存储器31不仅可以用于存储安装于设备的应用软件及各类数据。
[0118] 处理器32在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器31中存储的程序代码或处理数据。
[0119] 该总线33可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0120] 进一步地,设备还可以包括网络接口34,网络接口34可选的可以包括有线接口和/或无线接口(如WI‑FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
[0121] 图8仅示出了具有组件31‑34的设备,本领域技术人员可以理解的是,图8示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0122] 本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意方法实施例所述的监控设备建立连接的方法的步骤。
[0123] 其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read‑Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0124] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0125] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。