文件传输协议数据链路实现固定通信端口的方法及装置与流程

文档序号:12740037阅读:602来源:国知局
文件传输协议数据链路实现固定通信端口的方法及装置与流程

本发明涉及数据业务技术领域,尤其涉及一种文件传输协议(FTP,File Transfer Protocol)数据链路实现固定通信端口的方法及装置。



背景技术:

在互联网和移动通信系统中,文件作为两个模块的接口有着大量应用,比如:业务系统和业务运营支撑系统(BOSS,Business&Operation Support System)就以话单文件为接口,网管系统则用于采集各业务系统的日志文件等,而在这些应用的实现过程中,FTP则成为系统间文件传输的重要手段。

FTP是传输控制协议/网络协议(TCP/IP,Transmission Control Protocol/Internet Protocol)协议组中的协议之一,如图1所示,通常,基于FTP协议进行通信的实体包括:FTP服务端11和FTP客户端12,在实际应用中,用户可以使用FTP客户端12通过FTP进行文件的上传或下载等操作。

目前,基于FTP实现通信的过程包括:FTP服务端11会先打开一个固定端口等待FTP客户端12连接,默认端口号为21;FTP客户端12先与FTP服务端11建立控制链路,进行鉴权和控制命令的交互;然后,FTP客户端12通过被动(PASV)模式或主动(PORT)模式建立数据链路,进行数据传输。

这里,PASV模式和PORT模式是FTP数据链路建立支持的两种模式;其中,所述PASV模式是指:FTP客户端12与FTP服务端11默认的控制端口建立连接,通过所建立的通道发送命令,FTP服务端11收到PASV命令后,随机打开一个高端端口(端口号大于1024),并通知FTP客户端12在打开的端口上传送数据的请求;FTP客户端12连接FTP服务端11通知的端口并建立数据链路,进行数据传送。所述PORT模式是指:在建立控制链路时与PASV模式一 样,但建立连接后发送Port命令,Port命令中包含有FTP客户端12选用哪个端口接收数据;FTP服务端11连接FTP客户端12的指定端口并建立数据链路,进行数据传送。

从PASV模式数据链路建立过程可以看出,PASV模式会随机打开一个端口用于数据链路的建立;这里,PASV模式之所以使用随机端口是因为:数据链路是没有任何标识的,通过每个控制链路产生的随机数据链路端口不一样,如此,可实现控制链路和数据链路的关联,FTP服务端11通过此方式得以区分不同控制链路发来的文件上传/下载命令指定的文件和数据是在哪一条数据链路上传输的。

然而,一般以文件为接口的两个系统独立性高,系统间可能存在防火墙等保护措施;而作为防火墙保护的一方,防火墙可以为服务开放的端口是确定且有限的,一般要求开放的端口要尽量少,这就使得PASV模式在系统间存在防火墙时无法使用,如何能在具有防火墙的场景下使用PASV模式完成FTP数据链路的建立是亟需解决的问题。



技术实现要素:

有鉴于此,本发明实施例期望提供一种FTP数据链路实现固定通信端口的方法及装置,能使PASV模式在具有防火墙的场景下完成FTP数据链路的建立。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例提供了一种FTP数据链路实现固定通信端口的方法,在FTP服务端设置固定的控制端口和数据端口,并设置IP地址队列;该方法还包括:

接收FTP客户端向所述控制端口发送的控制链路连接请求后,FTP服务端建立控制链路;

接收FTP客户端向所述数据端口发送的连接请求和向所述控制端口发送的PASV请求,确定所述IP地址队列中不存在所述FTP客户端的IP地址时,将所述FTP客户端的IP地址加入所述IP地址队列中;

FTP服务端对所述IP地址队列中不同IP地址对应的FTP客户端发送的 PASV请求进行处理。

上述方案中,所述方法还包括:确定所述IP地址队列中存在所述FTP客户端的IP地址时,等待IP地址队列中与发送所述PASV请求的FTP客户端的IP地址相同的IP地址被删除后,再将所述FTP客户端的IP地址加入所述IP地址队列中,对来自同一个IP地址的多个PASV请求串行处理。

上述方案中,所述建立控制链路包括:FTP服务端接收控制链路连接请求后,对用户名、密码、IP地址进行鉴权。

上述方案中,所述接收FTP客户端向所述数据端口发送的连接请求包括:FTP服务端从所述数据端口接收FTP客户端发送的连接请求,对所述FTP客户端的IP地址是否合法进行判断。

本发明实施例还提供了一种FTP数据链路实现固定通信端口的装置,所述装置包括:

FTP服务端,设置有固定的控制端口和数据端口,设置有IP地址队列;用于在接收FTP客户端向所述控制端口发送的控制链路连接请求后,建立控制链路;在接收FTP客户端向所述数据端口发送的连接请求和向控制端口发送的PASV请求后,确定所述IP地址队列中不存在FTP客户端的IP地址时,将所述FTP客户端的IP地址加入所述IP地址队列中;并对所述IP地址队列中不同IP地址对应的FTP客户端发送的PASV请求进行处理;

FTP客户端,用于向所述控制端口发送控制链路连接请求;向所述数据端口发送连接请求;向所述控制端口发送PASV请求。

上述方案中,所述FTP服务端,还用于在确定所述IP地址队列中存在所述FTP客户端的IP地址时,等待IP地址队列中与发送所述PASV请求的FTP客户端的IP地址相同的IP地址被删除后,再将所述FTP客户端的IP地址加入所述IP地址队列中,对来自同一个IP地址的多个PASV请求串行处理。

上述方案中,所述FTP服务端,还用于在接收控制链路连接请求后,对用户名、密码、IP地址进行鉴权。

上述方案中,所述FTP服务端,还用于从所述数据端口接收FTP客户端发 送的连接请求,对所述FTP客户端的IP地址是否合法进行判断。

上述方案中,所述FTP服务端还包括数据链路管理器,用于在建立数据链路时,通过数据端口接收FTP客户端的连接请求,对FTP客户端的IP地址进行判断,如果IP地址非法,则关闭连接。

上述方案中,所述数据链路管理器,还用于在FTP服务端发送完PASV命令应答之后,查询是否有对应IP地址的数据链路生成。

本发明实施例所提供的FTP数据链路实现固定通信端口的方法及装置,在FTP服务端设置固定的控制端口和数据端口,并设置IP地址队列;接收FTP客户端向所述控制端口发送的控制链路连接请求后,FTP服务端建立控制链路;接收FTP客户端向所述数据端口发送的连接请求和向所述控制端口发送的PASV请求,确定所述IP地址队列中不存在所述FTP客户端的IP地址时,将所述FTP客户端的IP地址加入所述IP地址队列中;FTP服务端对所述IP地址队列中不同IP地址对应的FTP客户端发送的PASV请求进行处理。可以看出,由于本发明实施例在FTP服务端和FTP客户端之间采用固定的端口进行通信交互,因此,解决了现有技术中FTP服务器在防火墙内时无法使用PASV模式的问题;并且,能够在移动业务系统、网管系统、分析经营系统、计费系统等可能存在防火墙的不同系统之间,通过FTP技术进行文件交换和数据分享。

另外,本发明实施例中,如果发送PASV请求的FTP客户端的IP地址在IP地址队列中已存在,则相应的PASV请求需要先等待,等到IP地址队列中与发送该PASV请求的FTP客户端的IP地址相同的IP地址被删除后,才能将发送该PASV请求的FTP客户端的IP地址加入IP地址队列,如此,可实现对来自同一个IP地址的多个PASV请求的串行处理。

附图说明

图1为现有技术中FTP的实现模型示意图;

图2为本发明实施例FTP数据链路实现固定通信端口的方法流程示意图;

图3为本发明实施例中IP地址队列操作的实现流程示意图;

图4为本发明实施例中固定端口数据链路的具体通信过程实现流程示意图;

图5为本发明实施例在同一时间三个控制链路上各收到PASV请求的场景示意图;

图6为本发明实施例中FTP数据链路实现固定通信端口的装置结构示意图。

具体实施方式

本发明实施例中,在FTP服务端设置固定的控制端口和数据端口,并设置IP地址队列;接收FTP客户端向所述控制端口发送的控制链路连接请求后,FTP服务端建立控制链路;接收FTP客户端向所述数据端口发送的连接请求和向所述控制端口发送的PASV请求,确定所述IP地址队列中不存在所述FTP客户端的IP地址时,将所述FTP客户端的IP地址加入所述IP地址队列中;FTP服务端对所述IP地址队列中不同IP地址对应的FTP客户端发送的PASV请求进行处理。

这里,FTP服务端始终打开控制端口和数据端口。

本发明实施例中,对于任意FTP客户端的IP地址,如果已存在于IP地址队列中,就需要先等待;如果未存在于IP地址队列中,就可以加入到IP地址队列中;那么,对于IP地址队列中多个来自不同的IP地址对应的FTP客户端的请求,就会被同时处理;而对于多个来自相同的IP地址对应的FTP客户端的请求,将会被串行处理。

下面结合附图及具体实施例对本发明再作进一步详细的说明。

本发明实施例FTP数据链路实现固定通信端口的方法,如图2所示,该方法包括:

步骤S201:在FTP服务端设置固定的控制端口和数据端口,并设置IP地址队列;

通常,防火墙会配置打开用于控制链路传输的端口和用于数据链路传输的 端口,本发明实施例在FTP服务端始终打开两个固定的端口——控制端口和数据端口,分别接收发至对应端口的请求。

步骤S202:接收FTP客户端向所述控制端口发送的控制链路连接请求后,FTP服务端建立控制链路;

步骤S203:接收FTP客户端向所述数据端口发送的连接请求和向所述控制端口发送的PASV请求,确定所述IP地址队列中不存在所述FTP客户端的IP地址时,将所述FTP客户端的IP地址加入所述IP地址队列中;

步骤S204:FTP服务端对所述IP地址队列中不同IP地址对应的FTP客户端发送的PASV请求进行处理。

这里,所述处理可以是对多个PASV请求同时处理。

本发明实施例中,所述IP地址队列在FTP服务端实现,由一个IP地址字符串的集合组成。

步骤S203中,所述确定所述IP地址队列中不存在所述FTP客户端的IP地址时,将所述FTP客户端的IP地址加入所述IP地址队列中,如图3所示,具体包括以下步骤:

步骤S301:判断PASV请求是否需要等待;

具体的,FTP服务端收到PASV请求后,通过对IP地址队列中是否存在发送PASV请求的FTP客户端的IP地址,来判断PASV请求是否需要等待;

步骤S302:对于不需要等待的PASV请求,将所述PASV请求对应的FTP客户端的IP地址加入IP地址队列;

这里,对于需要等待的PASV请求,等待可以加入的时机;

步骤S303:处理完所述PASV请求后,从IP地址队列中删除所述PASV请求对应的FTP客户端的IP地址。

本发明实施例中固定端口数据链路的具体通信过程的实现,如图4所示,此处假设防火墙配置打开控制端口K用于控制链路传输、打开数据端口J用于数据链路传输,具体包括以下步骤:

步骤S401:FTP服务端始终打开控制端口K,FTP客户端向控制端口K发 送连接请求,FTP服务端接收连接请求后,对用户名、密码、IP地址等信息进行鉴权,建立控制链路。

步骤S402:FTP服务端始终打开数据端口J,由数据链路管理器从数据端口J接收连接请求,对FTP客户端的IP地址进行判断,如果IP地址非法,则关闭连接。

步骤S403:当FTP服务端从控制链路收到PASV请求后,先查询IP队列中是否存在该FTP客户端的IP地址,如果存在,则等待。

步骤S404:请求等待一定时间后,判断请求是否超时,如果超时,则关闭控制链路,结束本次处理流程;如果未超时,则再次判断请求是否需要等待。

步骤405:如果请求不需要等待,则将FTP客户端的IP地址加入IP地址队列,并向FTP客户端发送PASV命令的应答,应答消息中指定的数据端口始终为J,通知FTP客户端可以连接数据端口J建立数据链路。

步骤S406:发送完PASV命令应答之后,从数据链路管理器查询是否有对应IP地址的数据链路生成,如果有,则执行步骤S407,如果没有,则执行步骤S408。

步骤S407:进行控制链路和数据链路关联,然后从IP队列中删除对应的IP地址。

步骤S408:判断是否超时,直到超时未从数据链路管理器中查询到对应IP地址的数据链路,则将对应的IP地址从IP队列中删除,同时关闭控制链路。

为方便理解,现举例说明本发明在同一时间三个控制链路各收到PASV请求的场景及其处理过程,如图5所示,三个控制链路包括控制链路51、控制链路52和控制链路53;其中,控制链路51、52对应的FTP客户端地址为IP1,控制链路53对应的FTP客户端地址为IP2;参见图5,本实施例中固定端口数据链路的具体通信过程实现流程包括:

对于控制链路51,FTP服务端先通过控制端口K与地址为IP1的FTP客户端建立控制链路51,通过数据端口J接收FTP客户端的连接请求并判断FTP客户端的IP合法,从控制链路51收到FTP客户端发送的PASV请求后,查询 到IP队列中不存在IP1,将IP1加入IP地址队列,并向FTP客户端发送PASV命令的应答,应答消息中指定的数据端口始终为J,通知FTP客户端可以连接数据端口J建立数据链路,数据链路管理器里查询到有对应IP1的数据链路生成,将控制链路51与数据链路关联,然后从IP队列中删除IP1。

对于控制链路52,FTP服务端先通过控制端口K与地址为IP1的FTP客户端建立控制链路52,通过数据端口J接收FTP客户端的连接请求并判断FTP客户端的IP合法,从控制链路52收到FTP客户端发送的PASV请求后,查询到IP队列中已存在IP1,则需要等待和再次查询直到控制链路51从IP地址队列中删除IP1后,才将IP1地址加入IP队列中,并向FTP客户端发送PASV命令的应答,应答消息中指定的数据端口始终为J,通知FTP客户端可以连接数据端口J建立数据链路,数据链路管理器里查询到有对应IP1的数据链路生成,将控制链路52与数据链路关联,然后从IP队列中删除IP1。

对于控制链路53,FTP服务端先通过控制端口K与地址为IP2的FTP客户端建立控制链路53,通过数据端口J接收FTP客户端的连接请求并判断FTP客户端的IP合法,从控制链路53收到FTP客户端发送的PASV请求后,查询到IP队列中不存在IP2,将IP2加入IP地址队列,并向FTP客户端发送PASV命令的应答,应答消息中指定的数据端口始终为J,通知FTP客户端可以连接数据端口J建立数据链路,数据链路管理器里查询到有对应IP2的数据链路生成,将控制链路53与数据链路关联,然后从IP队列中删除IP2。

这样,控制链路53与控制链路51可以同时进行PASV请求处理,提高了FTP服务端的处理性能。

如图6所示,本发明实施例提供的一种FTP数据链路实现固定通信端口的装置,包括:FTP服务端61和FTP客户端62;其中,

所述FTP服务端61,设置有固定的控制端口611和数据端口612,设置有IP地址队列613;用于在接收FTP客户端62向所述控制端口611发送的控制链路连接请求后,建立控制链路;在接收FTP客户端62向所述数据端口发送的连接请求和向所述控制端口611发送的PASV请求后,确定所述IP地址队列613 中不存在FTP客户端62的IP地址时,将所述FTP客户端62的IP地址加入所述IP地址队列613中;并对所述IP地址队列613中不同IP地址对应的FTP客户端62发送的PASV请求进行处理。

所述FTP客户端62,用于向所述控制端口611发送控制链路连接请求;向所述数据端口612发送连接请求;向所述控制端口611发送PASV请求。

所述FTP服务端61还包括数据链路管理器614,用于通过数据端口612接收FTP客户端62的连接请求,对FTP客户端62的IP地址进行判断,如果IP地址非法,则关闭连接;用于在FTP服务端61发送完PASV命令应答之后,查询是否有对应IP地址的数据链路生成。

这里,FTP服务端61始终打开控制端口611和数据端口612。

本发明实施例中,对于任意FTP客户端62的IP地址,如果已存在于IP地址队列中,就需要先等待;如果未存在于IP地址队列中,就可以加入到IP地址队列中;那么,对于IP地址队列中多个来自不同的IP地址对应的FTP客户端62的请求,就会被同时处理;而对于多个来自相同的IP地址对应的FTP客户端62的请求,将会被串行处理。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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