发明内容
本发明提供了一种FTP模式配置方法、数据传输方法及设备,用以降低基于FTP的数据传输对NAT设备的依赖。
本发明提供的FTP模式配置方法,应用于包含有FTP服务器和FTP客户端的网络系统,该方法包括:
FTP服务器接收到FTP客户端的注册请求报文后,根据该注册请求报文中携带的地址信息确定该FTP服务器和该FTP客户端的组网结构;
所述FTP服务器根据确定出的组网结构,为所述FTP客户端配置FTP模式;其中,若所述FTP服务器位于公网、所述FTP客户端位于私网,则为所述FTP客户端配置PASV模式,若所述FTP服务器位于私网、所述FTP客户端位于公网,则为所述FTP客户端配置PORT模式;
所述FTP服务器向所述FTP客户端返回响应报文,其中携带有为该FTP客户端配置的FTP模式的指示信息,以指示所述FTP客户端配置相应的FTP模式。
本发明提供的FTP服务器,包括:
接收模块,用于接收到FTP客户端的注册请求报文;
确定模块,用于根据所述注册请求报文中携带的地址信息确定该FTP服务器和该FTP客户端的组网结构;
分配模块,用于根据确定出的组网结构,为所述FTP客户端配置FTP模式;其中,若所述FTP服务器位于公网、所述FTP客户端位于私网,则为所述FTP客户端配置PASV模式,若所述FTP服务器位于私网、所述FTP客户端位于公网,则为所述FTP客户端配置PORT模式;
发送模块,用于向所述FTP客户端返回响应报文,其中携带有为该FTP客户端配置的FTP模式的指示信息,以指示所述FTP客户端配置相应的FTP模式。
本发明提供的基于上述方法实现的FTP的数据传输方法,包括:
FTP客户端向FTP服务器发送注册请求,其中携带有地址信息;
所述FTP客户端接收所述FTP服务器返回的携带有FTP模式指示信息的响应,并根据该FTP模式指示信息配置相应的FTP模式;
当所述FTP客户端需要从所述FTP服务器下载文件时,根据其上配置的FTP模式,采用相应FTP模式从所述FTP服务器下载文件。
本发明提供的FTP客户端设备,包括:
发送模块,用于向FTP服务器发送注册请求,其中携带有地址信息;
接收模块,用于接收所述FTP服务器返回的携带有FTP模式指示信息的响应;其中,所述FTP服务器根据确定出的组网结构,为所述FTP客户端配置FTP模式,其中,若所述FTP服务器位于公网、所述FTP客户端位于私网,则为所述FTP客户端配置PASV模式,若所述FTP服务器位于私网、所述FTP客户端位于公网,则为所述FTP客户端配置PORT模式;
配置模块,用于根据所述FTP模式指示信息配置相应的FTP模式;
FTP模块,用于当需要从所述FTP服务器下载文件时,根据其上配置的FTP模式,采用相应FTP模式从所述FTP服务器下载文件。
与现有技术相比,本发明的有益技术效果包括:
通过FTP服务器根据FTP客户端的注册请求报文确定自己和该客户端的组网结构为该客户端分配相应的FTP模式:当FTP服务器位于公网、FTP客户端位于私网,则为FTP客户端配置PASV模式,当FTP服务器位于私网、FTP客户端位于公网,则为FTP客户端配置PORT模式,从而无需NAT设备支持NATALG功能,即在NAT设备不支持NATALG功能的情况下,能够实现客户端从服务器进行FTP下载,降低了基于FTP的数据传输对NAT设备的依赖。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
参见图1,为本发明实施例提供的FTP模式配置以及基于配置的FTP模式进行数据传输的流程示意图,如图所示,该流程可包括:
步骤101,FTP客户端向FTP服务器注册时,FTP服务器接收到FTP客户端的注册请求后,根据该注册请求中携带的源地址和目的地址确定该FTP服务器和该FTP客户端的组网结构。
其中,FTP服务器和FTP客户端的组网结构可以包括以下几种情况:
情况1:FTP服务器位于公网,FTP客户端位于私网;
情况2:FTP服务器位于私网,FTP客户端位于公网;
情况3:FTP服务器位于私网,FTP客户端位于私网;
情况4:FTP服务器位于私网,FTP客户端位于私网。
步骤102,FTP服务器根据自己和该FTP客户端的组网结构,为该FTP客户端配置FTP模式。
具体的,若FTP服务器位于公网、FTP客户端位于私网,则FTP服务器为FTP客户端配置PASV模式,若FTP服务器位于私网、FTP客户端位于公网,则FTP服务器为FTP客户端配置PORT模式,这样,NAT设备无需支持或无需启动FTPALG功能。若FTP服务器和FTP客户端均位于私网或均位于公网,则对FTP客户端所采用的FTP模式无要求,即FTP服务器既可为FTP客户端配置PORT模式也可配置PASV模式。
步骤103,FTP服务器将为FTP客户端配置的FTP模式通知给FTP客户端,如可将为FTP客户端配置的FTP模式的指示信息携带于注册响应消息返回给FTP客户端。
步骤104,FTP客户端根据该通知配置本设备的FTP模式。
具体的,如果FTP客户端在接收到该通知之前配置有默认FTP模式,则根据该通知所指示的FTP模式,更新该默认FTP模式;如果FTP客户端在接收到该通知之前未配置有默认FTP模式,则将该通知所指示的FTP模式配置为默认FTP模式。
步骤105,当FTP客户端需要从FTP服务器下载文件时,根据其上配置的FTP模式,采用相应方式从FTP服务器下载文件。
本发明的上述实施例,可根据FTP服务器和FTP客户端的组网情况,自适应为FTP客户端分配FTP模式,从而在NAT设备不支持FTP ALG功能的情况下,FTP客户端也可通过配置的FTP模式从FTP服务器下载文件。其原理如下:
FTP服务器位于公网、FTP客户端位于私网时,为FTP客户端配置PASV模式,这样,FTP客户端需要从FTP下载文件时,是由公网侧的FTP服务器发起连接请求,其载荷部分携带有该FTP服务器的公网地址和端口号,该载荷部分无需进行ALG处理,FTP客户端可根据该连接请求报文的载荷部分携带的地址和端口号,与FTP服务器建立FTP连接;
FTP服务器位于私网、FTP客户端位于公网时,为FTP客户端配置PORT模式,这样,FTP客户端需要从FTP下载文件时,是由公网侧的FTP客户端发起连接请求,其载荷部分携带有该FTP客户端的公网地址和端口号,该载荷部分无需进行ALG处理,FTP服务器可根据该连接请求报文的载荷部分携带的地址和端口号,与FTP客户端建立FTP连接;
FTP服务器均位于私网或均位于公网时,无论为FTP客户端配置PORT模式还是PASV模式,都不会经过NAT设备进行网络地址转换,无论由哪端发起连接请求,对端都会与其建立FTP连接。
下面以视频监控系统为例,对本发明实施例的上述流程进行详细描述。
现有的视频监控系统主要由以下基本单元构成:EC、VM、MS(MediaSwitch,媒体交换服务器)、IPSAN(Internet Protocol Storage Area Network,存储区域网络)、DM(Data Management Server,数据管理服务器)、DC(Decoder,解码器)、VC(Video Client,视频客户端)等,以及相应的软件管理系统及网络传输设备。EC、DC等终端设备加入视频监控系统时,首先要向VM等服务器注册。
基于上述视频监控系统架构,图2示出了EC向VM注册过程中,VM为EC配置FTP模式的流程,该流程可包括:
步骤201,EC向VM发送注册报文。
步骤202,VM接收EC发送的注册报文后,提取该报文头部和载荷部分携带的IP地址。
该注册报文的IP头中包含有源IP地址和目的IP地址(以下为描述方便,将报文头中的源IP地址称为IP1,将报文头中的目的IP地址称为IP2),该注册报文载荷部分的SIP协议部分FROM/TO字段携带有源IP地址(为描述方便,将该IP地址称为IP3),在SIP协议部分Request-Line字段携带有目的IP地址(为描述方便,将该IP地址称为IP4)。
步骤203~206,VM根据提取出的IP地址,判断自己与该EC的组网结构,如,自己和EC中哪个在公网、哪个在私网,并根据判断结果为该EC配置FTP模式。
本步骤中,VM通过将报文IP头中的源IP地址和报文载荷中SIP协议部分的源IP地址,以及报文IP头中的目的IP地址和报文载荷中SIP协议部分的目的IP地址进行比较,得出EC是否在私网和VM是否在私网。
具体的,如果EC与VM在同一个网络中,注册报文无需进行NAT转换,因而IP头中的源IP地址和目的IP地址为实际IP地址,此时IP1等于IP3,IP2等于IP4。此种情况下,VM为EC分配PORT模式或PASV模式(步骤204)。
如果VM在公网、EC在私网,则注册报文会被NAT设备修改掉IP头中的源IP地址,即将IP头中的私网源IP地址修改为公网IP地址,此时IP1不等于IP3,IP2等于IP4。此种情况下,VM为EC分配PASV模式(步骤205)。
如果VM在私网、EC在公网,则注册报文会被NAT设备修改掉IP头中的目的IP地址,即将IP头中的私网目的IP地址修改为公网IP地址,此时IP1等于IP3,IP2不等于IP4。此种情况下,VM为EC分配PORT模式(步骤206)。
步骤207,VM向该EC发送注册响应报文,其中携带为该EC配置的FTP模式的指示信息。
步骤208,EC接收到注册响应报文后,根据其中所指示的FTP模式配置本设备的默认FTP模式。
当EC需要进行软件升级时,根据其上配置的默认FTP模式与VM建立FTP连接,并通过建立的FTP连接进行软件下载,以完成升级。其建立FTP连接以及FTP下载过程与现有技术相同,在此不再赘述。
随着视频监控系统的发展,终端设备可能需要通过FTP方式从多个服务器下载文件。为了便于以后的扩展,在本发明的另一实施例中,客户端设备向各服务器发起注册,并接收到各服务器通过注册响应返回的为该客户端设备分配的FTP模式的指示信息后,可在客户端设备上生成FTP自适应的表项,即对应于多个FTP服务器的多个适应模式。客户端设备在下载文件时,先通过查询该表项,确定自己需要使用的FTP模式,然后使用该模式进行文件下载。表1示出了一种FTP自适应表项的实例。
表1
|
服务器 |
FTP适应模式 |
|
服务器1 |
PASV(被动模式) |
|
服务器2 |
PORT(主动模式) |
|
服务器3 |
PORT(主动模式) |
|
...... |
...... |
其中,服务器1,2,3......,可以是服务器标识或地址等能够唯一标识服务器的信息。
通过以上描述可以看出,VM通过比较前端EC的SIP注册报文中携带的IP地址,来判断是EC在私网中还是VM服务器在私网中,然后根据判断结果通知EC配置FTP模式,以使EC在与VM建立FTP连接时无需NAT设备启用NAT ALG功能。
需要说明的是,上述流程仅以视频监控系统为例进行描述,本领域技术人员应能够理解,将上述技术思想应用于其它业务系统的组网,一样可以实现本发明的目的。
基于相同的技术构思,本发明实施例还提供了一种可应用于上述流程的服务器和客户端设备。
参见图3,为本发明实施例提供的FTP服务器的结构示意图,该FTP服务器可以是但不限于视频监控系统中的服务器,该FTP服务器可包括:
接收模块301,用于接收到FTP客户端的注册请求报文;
确定模块302,用于根据所述注册请求报文中携带的地址信息确定该FTP服务器和该FTP客户端的组网结构;
分配模块303,用于根据确定出的组网结构,为所述FTP客户端配置FTP模式;其中,若所述FTP服务器位于公网、所述FTP客户端位于私网,则为所述FTP客户端配置PASV模式,若所述FTP服务器位于私网、所述FTP客户端位于公网,则为所述FTP客户端配置PORT模式;
发送模块304,用于向所述FTP客户端返回注册响应报文,其中携带有为该FTP客户端配置的FTP模式的指示信息,以指示所述FTP客户端配置相应的FTP模式。
进一步的,分配模块303还用于:若确定模块302确定出的组网结构为:所述FTP服务器和所述FTP客户端均位于私网或均位于公网,则为所述FTP客户端配置PASV模式和PORT模式中的任意一种。
具体的,确定模块302具体用于:提取所述注册请求报文IP头部的第一IP地址和第二IP地址,以及该报文载荷部分的第三IP地址和第四IP地址;其中,第一、三IP地址为源IP地址,第二、四IP地址为目的IP地址;比较提取出的IP地址,并根据比较结果确定所述FTP服务器和所述FTP客户端的组网结构,其中,若第一IP地址与第三IP地址不同、第二IP地址与第四IP地址相同,则所述FTP服务器位于公网、所述FTP客户端位于私网;若第一IP地址与第三IP地址相同、第二IP地址与第四IP地址不同,则所述FTP服务器位于私网、所述FTP客户端位于公网;若第一IP地址与第三IP地址相同、第二IP地址与第四IP地址相同,则所述FTP服务器和所述FTP客户端位于同一网络。
参见图4,为本发明实施例提供的FTP客户端设备的结构示意图,该FTP客户端设备可以是但不限于视频监控系统中的终端设备,该FTP客户端设备可包括:
发送模块401,用于向FTP服务器发送注册请求,其中携带有地址信息;
接收模块402,用于接收所述FTP服务器返回的携带有FTP模式指示信息的注册响应;其中,所述FTP服务器根据确定出的组网结构,为所述FTP客户端配置FTP模式,其中,若所述FTP服务器位于公网、所述FTP客户端位于私网,则为所述FTP客户端配置PASV模式,若所述FTP服务器位于私网、所述FTP客户端位于公网,则为所述FTP客户端配置PORT模式;
配置模块403,用于根据所述FTP模式指示信息配置相应的FTP模式;
FTP模块404,用于当需要从所述FTP服务器下载文件时,根据其上配置的FTP模式,采用相应FTP模式从所述FTP服务器下载文件。
上述FTP客户端中配置有FTP服务器列表,用于记录FTP服务器与该FTP服务器为该FTP客户端分配的FTP模式信息。相应的,配置模块403可将所述响应报文中携带的FTP模式信息和所述FTP服务器存储到所述FTP列表中;FTP模块404可在所述FTP客户端需要从所述FTP服务器下载文件时,查询所述FTP列表,采用与所述FTP服务器对应的FTP模式从所述FTP服务器下载文件。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。