面向FTP协议的TCP端口复用方法及设备与流程

文档序号:33124675发布日期:2023-02-01 04:45阅读:33来源:国知局
面向FTP协议的TCP端口复用方法及设备与流程
面向ftp协议的tcp端口复用方法及设备
技术领域
1.本发明涉及一种面向ftp协议的tcp端口复用方法及设备。


背景技术:

2.ftp协议具有简单高效的优点,在it系统中应用非常广泛。ftp协议定义了主动和被动传输模式。其中,被动模式更易于实现安全访问控制,在实践中应用更多。在被动模式中,ftp客户端首先和ftp服务器之间建立tcp控制连接,然后在控制连接上发送命令和应答。当上传或下载文件时,ftp客户端向ftp服务器发送pass命令,ftp服务器在本地分配一个tcp端口,然后把端口发送给客户端。ftp客户端向该端口建立tcp连接,作为ftp的数据连接,在该连接上传输文件数据,传输结束后关闭数据连接。
3.ftp服务器普遍使用由操作系统分配tcp端口的方法。在创建数据连接socket之后,执行bind操作由操作系统随机分配一个未使用的tcp端口,通过控制连接将tcp端口发送给客户端,然后ftp服务器在该端口上执行listen、accept操作来接收客户端的连接请求,建立数据连接。实践中广泛应用的vsftpd、flashftp等ftp服务器均使用该方法。
4.ftp协议规定了每次传输一个文件都需要分配一个tcp端口。传统的随机绑定端口的方法会造成大量tcp端口的使用。在多个ftp客户端进行高并发传输大量文件的场景下,就会发生ftp服务器端tcp端口分配失败,导致数据传输失败的情况。


技术实现要素:

5.本发明的目的在于提供一种面向ftp协议的tcp端口复用方法及设备。
6.为解决上述问题,本发明提供一种面向ftp协议的tcp端口复用方法,包括:
7.为不同的ftp服务器的进程预留不同的端口号集合,其中,任意两个进程预留端口号集合都不同;
8.初始化每个进程的已分配端口号的内存数据映射表和空闲预留端口号的内存数据队列,其中,每个进程的已分配端口和空闲预留端口的总数等于该进程预留的端口集合中的端口总数,已分配端口的内存数据映射表为:《端口号,map《客户端ip地址,ftp控制连接》》;
9.ftp服务器在接收到ftp客户端在某个进程的ftp控制连接上发送的pasv命令时,判断该pasv命令是否已经分配端口号,
10.若已经分配端口,则将已经分配的端口号发送给ftp客户端;
11.若未分配端口,则获取所述pasv命令对应的客户端ip地址,判断是否从对应进程的已分配端口号的内存数据映射表中遍历查找到第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号,
12.若在已分配端口号的内存数据映射表遍历查找到,则在已分配端口号的内存数据映射表中的遍历查找到的第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号中,插入《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的控制连接》记录至内
存数据映射表,并将第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号发送给ftp客户端;
13.若未在已分配端口的内存数据映射表遍历查找到,则从对应进程的空闲预留端口号的内存数据队列的头部取出一个端口号,将取出的一个端口号发送给ftp客户端,并将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表中。
14.进一步的,在上述方法中,ftp服务器在接收到ftp客户端在某个进程的ftp控制连接上发送的pasv命令时,判断该pasv命令是否已经分配端口号之后,还包括:
15.ftp控制连接待关闭时,在已分配端口号的内存数据映射表中删除待关闭的ftp控制连接对应端口号下的《ftp客户端ip地址,待关闭的ftp控制连接》记录。
16.进一步的,在上述方法中,ftp控制连接关闭时,在已分配端口号的内存数据映射表中删除对应端口号下的《ftp客户端ip地址,ftp控制连接》记录之后,还包括:
17.判断已分配端口号的内存数据映射表中,已经关闭的ftp控制连接对应端口号下是否还有其他《ftp客户端ip地址,ftp控制连接》记录,
18.若无记录,则已分配端口号的内存数据映射表删除已经关闭的ftp控制连接对应端口号,并将删除的端口号加入到所述空闲预留端口号的内存数据队列的尾部。
19.进一步的,在上述方法中,将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表,包括:
20.基于所述端口号建立ftp客户端和ftp服务器之间的数据连接;
21.数据连接建立成功后,将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表,并建立数据连接和ftp控制连接的对应关系。
22.根据本发明的另一方面,还提供一种面向ftp协议的tcp端口复用设备,包括:
23.预留单元,用于为不同的ftp服务器的进程预留不同的端口号集合,其中,任意两个进程预留端口号集合都不同;
24.初始化单元,用于初始化每个进程的已分配端口号的内存数据映射表和空闲预留端口号的内存数据队列,其中,每个进程的已分配端口和空闲预留端口的总数等于该进程预留的端口集合中的端口总数,已分配端口的内存数据映射表为:《端口号,map《客户端ip地址,ftp控制连接》》;
25.判断单元,用于在接收到ftp客户端在某个进程的ftp控制连接上发送的pasv命令时,判断该pasv命令是否已经分配端口号,若已经分配端口,则将已经分配的端口号发送给ftp客户端;若未分配端口,则获取所述pasv命令对应的客户端ip地址,判断是否从对应进程的已分配端口号的内存数据映射表中遍历查找到第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号,若在已分配端口号的内存数据映射表遍历查找到,则在已分配端口号的内存数据映射表中的遍历查找到的第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号中,插入《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的控制连接》记录至内存数据映射表,并将第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号发送给ftp客户端;若未在已分配端口的内存数据映射表遍历查找到,则从对应进程
的空闲预留端口号的内存数据队列的头部取出一个端口号,将取出的一个端口号发送给ftp客户端,并将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表中。
26.进一步的,在上述设备中,还包括回收单元,用于ftp控制连接待关闭时,在已分配端口号的内存数据映射表中删除待关闭的ftp控制连接对应端口号下的《ftp客户端ip地址,待关闭的ftp控制连接》记录。
27.进一步的,在上述设备中,所述回收单元,还用于判断已分配端口号的内存数据映射表中,已经关闭的ftp控制连接对应端口号下是否还有其他《ftp客户端ip地址,ftp控制连接》记录,若无记录,则已分配端口号的内存数据映射表删除已经关闭的ftp控制连接对应端口号,并将删除的端口号加入到所述空闲预留端口号的内存数据队列的尾部。
28.进一步的,在上述设备中,所述判断单元,还用于基于所述端口号建立ftp客户端和ftp服务器之间的数据连接;数据连接建立成功后,将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表,并建立数据连接和ftp控制连接的对应关系。
29.根据本发明的另一方面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
30.为不同的ftp服务器的进程预留不同的端口号集合,其中,任意两个进程预留端口号集合都不同;
31.初始化每个进程的已分配端口号的内存数据映射表和空闲预留端口号的内存数据队列,其中,每个进程的已分配端口和空闲预留端口的总数等于该进程预留的端口集合中的端口总数,已分配端口的内存数据映射表为:《端口号,map《客户端ip地址,ftp控制连接》》;
32.在接收到ftp客户端在某个进程的ftp控制连接上发送的pasv命令时,判断该pasv命令是否已经分配端口号,
33.若已经分配端口,则将已经分配的端口号发送给ftp客户端;
34.若未分配端口,则获取所述pasv命令对应的客户端ip地址,判断是否从对应进程的已分配端口号的内存数据映射表中遍历查找到第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号,
35.若在已分配端口号的内存数据映射表遍历查找到,则在已分配端口号的内存数据映射表中的遍历查找到的第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号中,插入《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的控制连接》记录至内存数据映射表,并将第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号发送给ftp客户端;
36.若未在已分配端口的内存数据映射表遍历查找到,则从对应进程的空闲预留端口号的内存数据队列的头部取出一个端口号,将取出的一个端口号发送给ftp客户端,并将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表中。
37.根据本发明的另一方面,还提供一种一种计算器设备,其中,包括:
38.处理器;以及
39.被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
40.为不同的ftp服务器的进程预留不同的端口号集合,其中,任意两个进程预留端口号集合都不同;
41.初始化每个进程的已分配端口号的内存数据映射表和空闲预留端口号的内存数据队列,其中,每个进程的已分配端口和空闲预留端口的总数等于该进程预留的端口集合中的端口总数,已分配端口的内存数据映射表为:《端口号,map《客户端ip地址,ftp控制连接》》;
42.在接收到ftp客户端在某个进程的ftp控制连接上发送的pasv命令时,判断该pasv命令是否已经分配端口号,
43.若已经分配端口,则将已经分配的端口号发送给ftp客户端;
44.若未分配端口,则获取所述pasv命令对应的客户端ip地址,判断是否从对应进程的已分配端口号的内存数据映射表中遍历查找到第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号,
45.若在已分配端口号的内存数据映射表遍历查找到,则在已分配端口号的内存数据映射表中的遍历查找到的第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号中,插入《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的控制连接》记录至内存数据映射表,并将第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号发送给ftp客户端;
46.若未在已分配端口的内存数据映射表遍历查找到,则从对应进程的空闲预留端口号的内存数据队列的头部取出一个端口号,将取出的一个端口号发送给ftp客户端,并将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表中。
47.与现有技术相比,本发明的ftp服务器的每个进程预先保留一定数量的tcp端口并进行管理。对于每个ftp控制连接的不同pasv命令,重复使用同一个tcp端口;对来自不同ip地址的ftp客户端pasv命令,分配使用相同的tcp端口。在ftp服务器完成数据连接建立后,根据目的tcp端口和数据连接的客户端ip地址,来确定该数据连接找到它对应的ftp控制连接。本实现了tcp端口的复用,消除ftp服务器在高并发访问时tcp端口不足导致无法提供服务的问题;对于同一个ftp控制连接的不同文件传输,可以复用同一个端口,提高程序运行效率。
附图说明
48.图1是本发明一实施例的ftp客户端和服务器网络拓扑图;
49.图2是本发明一实施例的被动模式ftp客户端和服务器交互图;
50.图3是本发明一实施例的被动模式ftp服务器端口分配流程图;
51.图4是本发明一实施例的被动模式ftp服务器端口回收流程图。
具体实施方式
52.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实
施方式对本发明作进一步详细的说明。
53.如图1所示,本发明提供一种面向ftp协议的tcp端口复用方法,包括:
54.步骤s1,为不同的ftp服务器的进程预留不同的端口号集合,其中,任意两个进程预留端口号集合都不同;
55.在此,本发明实施例涉及的ftp服务器和客户端网络拓扑结构如图1所示。多个ftp客户端通过ftp协议访问ftp服务器。
56.ftp客户端可以使用被动模式和ftp服务器进行通信;在ftp服务器启动时,可以事先预留一定数量端口并进行管理;具体的,ftp服务器启动时,可以预留一定数量的tcp端口集合r,将预留端口加载到内存进行统一管理;ftp多进程任意两个进程预留端口集合都不相同,进程1预留端口集合r1,进程2预留端口集合r2,

进程n预留端口集合rn,满足如下关系:r1∪r2...∪rn=r;
57.ftp服务器可以采用多进程模式时,每个进程预留不同的端口号;
58.其中,一个进程可以对应多个ftp控制连接,一个ftp控制连接只能对应一个进程;
59.同一个端口同一时间只能提供给个一个进程的一个ftp控制连接使用;同一个进程的多个ftp控制连接可以不同的时间复用同一个端口;
60.一个ftp控制连接只能对应一个ftp客户端;
61.步骤s2,初始化每个进程的已分配端口号的内存数据映射表和空闲预留端口号的内存数据队列,其中,每个进程的已分配端口和空闲预留端口的总数等于该进程预留的端口集合中的端口总数,已分配端口的内存数据映射表为《端口号,map《客户端ip地址,ftp控制连接》》,空闲预留端口的内存数据队列为《预留端口号1,预留端口号2,

,预留端口号n》;
62.在此,ftp服务器可以使用2种数据结构管理tcp端口:
63.(1)已分配端口号的内存数据映射表:map《端口号,map《客户端ip地址,ftp控制连接》》assignportmap;
64.(2)空闲预留端口号的内存数据队列:queue《预留端口1,预留端口2

预留端口n》reserveportqueue;
65.步骤s3,ftp服务器在接收到ftp客户端在某个进程的ftp控制连接上发送的pasv命令时,判断该pasv命令是否已经分配端口号,
66.在此,ftp客户端通过ftp协议访问ftp服务器上的资源,在被动模式下,ftp客户端发送pasv命令到ftp服务器,ftp服务器分配tcp端口,将分配的端口发送给ftp客户端,ftp客户端向服务器的tcp端口建立数据连接,后续使用该数据连接传送数据,交互如图2所示;
67.步骤s4,若已经分配端口,则将已经分配的端口号发送给ftp客户端;
68.步骤s5,若未分配端口,则获取所述pasv命令对应的客户端ip地址,判断是否从对应进程的已分配端口号的内存数据映射表中遍历查找到第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号,
69.步骤s6,若在已分配端口号的内存数据映射表遍历查找到,则在已分配端口号的内存数据映射表中的遍历查找到的第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号中,插入《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的控制连接》记录至内存数据映射表,并将第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号
发送给ftp客户端;
70.在此,不同的ftp客户端ip地址可以复用同一个端口,相同的ftp客户端ip地址不能复用同一个端口,以避免ftp控制连接混淆;
71.步骤s7,若未在已分配端口的内存数据映射表遍历查找到,则从对应进程的空闲预留端口号的内存数据队列的头部取出一个端口号,将取出的一个端口号发送给ftp客户端,并将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表中。
72.在此,如图3所示,ftp服务器在处理ftp协议的pasv命令时,端口分配包括如下步骤:
73.a)判断该ftp控制连接是否已经分配端口,如果已经分配端口,直接使用已经分配的端口;
74.b)如果该ftp控制连接没有分配端口,从已分配端口的内存数据映射表中遍历查找第一个不包含客户端ip地址的端口,即客户端ip地址不在映射表map《ftp客户端ip地址,ftp控制连接》中,如果找到这样的端口,就在已分配地址项中新增客户端地址,即在已分配端口的内存数据映射表assignportmap中的端口对应的映射表中插入《ftp客户端ip地址,ftp控制连接》记录;
75.c)如果遍历已分配端口的内存数据映射表assignportmap没有满足条件的端口,即已分配端口中不存在满足条件的端口,从空闲预留端口号的内存数据队列reserveportqueue的队列头pop取出一个预留端口号进行分配,同时创建数据连接,并执行bind和listen操作成功后将端口号加入到assignportmap数据结构。
76.如图2所示,后续ftp服务器将分配的目的端口号发送给ftp客户端后,ftp服务器调用accept等待ftp客户端建立数据连接;ftp服务器收到数据连接请求后,检查数据连接的ftp客户端ip地址,并根据目的端口号和ftp客户端ip地址从已分配端口的内存数据映射表中查找对应的ftp控制连接,并建立ftp控制连接和ftp数据连接对应关系;至此ftp服务器和ftp客户端数据连接建立成功,可以进行数据通信。
77.本发明的ftp服务器的每个进程预先保留一定数量的tcp端口并进行管理。对于每个ftp控制连接的不同pasv命令,重复使用同一个tcp端口;对来自不同ip地址的ftp客户端pasv命令,分配使用相同的tcp端口。在ftp服务器完成数据连接建立后,根据目的tcp端口和数据连接的客户端ip地址,来确定该数据连接找到它对应的ftp控制连接。本实现了tcp端口的复用,消除ftp服务器在高并发访问时tcp端口不足导致无法提供服务的问题;对于同一个ftp控制连接的不同文件传输,可以复用同一个端口,提高程序运行效率。
78.本发明可以以提高ftp服务器tcp端口使用效率,解决传统tcp端口分配方式面临的端口绑定失败及需要重试多次等问题。
79.本发明的面向ftp协议的tcp端口复用方法一实施例中,步骤s3,ftp服务器在接收到ftp客户端在某个进程的ftp控制连接上发送的pasv命令时,判断该pasv命令是否已经分配端口号之后,还包括:
80.步骤s8,ftp控制连接待关闭时,在已分配端口号的内存数据映射表中删除待关闭的ftp控制连接对应端口号下的《ftp客户端ip地址,待关闭的ftp控制连接》记录。
81.本发明的面向ftp协议的tcp端口复用方法一实施例中,步骤s8,ftp控制连接关闭
时,在已分配端口号的内存数据映射表中删除对应端口号下的《ftp客户端ip地址,ftp控制连接》记录之后,还包括:
82.步骤s9,判断已分配端口号的内存数据映射表中,已经关闭的ftp控制连接对应端口号下是否还有其他《ftp客户端ip地址,ftp控制连接》记录,
83.若无记录,则已分配端口号的内存数据映射表删除已经关闭的ftp控制连接对应端口号,并将删除的端口号加入到所述空闲预留端口号的内存数据队列的尾部。
84.在此,如图4所示,ftp控制连接关闭时,需要进行tcp端口回收,端口回收包括如下步骤:
85.a)在assignportmap集合中,根据从控制连接取出的端口号,根据《端口号,《客户端ip地址,ftp控制连接》》中删除对应客户端ip地址记录,如《ftp客户端ip地址,待关闭的ftp控制连接》记录;
86.b)对于该tcp端口号,如果还有《ftp客户端ip地址,ftp控制连接》记录,表明还有其他控制连接在使用该端口,则本次回收只删除assignportmap的一条《ftp客户端ip地址,ftp控制连接》记录,不做其他回收动作;
87.c)对于该tcp端口,如果该端口号下的所有《ftp客户端ip地址,ftp控制连接》记录都已删除,则删除assignportmap中的该端口记录后,将该端口加入到reserveportqueue尾部,下次分配可以继续使用。
88.本发明的面向ftp协议的tcp端口复用方法一实施例中,步骤s7,将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表,包括:
89.步骤s71,基于所述端口号建立ftp客户端和ftp服务器之间的数据连接,数据连接建立成功后,将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表,并建立数据连接和ftp控制连接的对应关系。
90.根据本发明的另一方面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
91.为不同的ftp服务器的进程预留不同的端口号集合,其中,任意两个进程预留端口号集合都不同;
92.初始化每个进程的已分配端口号的内存数据映射表和空闲预留端口号的内存数据队列,其中,每个进程的已分配端口和空闲预留端口的总数等于该进程预留的端口集合中的端口总数,已分配端口的内存数据映射表为:《端口号,map《客户端ip地址,ftp控制连接》》;
93.在接收到ftp客户端在某个进程的ftp控制连接上发送的pasv命令时,判断该pasv命令是否已经分配端口号,
94.若已经分配端口,则将已经分配的端口号发送给ftp客户端;
95.若未分配端口,则获取所述pasv命令对应的客户端ip地址,判断是否从对应进程的已分配端口号的内存数据映射表中遍历查找到第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号,
96.若在已分配端口号的内存数据映射表遍历查找到,则在已分配端口号的内存数据
映射表中的遍历查找到的第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号中,插入《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的控制连接》记录至内存数据映射表,并将第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号发送给ftp客户端;
97.若未在已分配端口的内存数据映射表遍历查找到,则从对应进程的空闲预留端口号的内存数据队列的头部取出一个端口号,将取出的一个端口号发送给ftp客户端,并将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表中。
98.根据本发明的另一方面,还提供一种一种计算器设备,其中,包括:
99.处理器;以及
100.被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
101.为不同的ftp服务器的进程预留不同的端口号集合,其中,任意两个进程预留端口号集合都不同;
102.初始化每个进程的已分配端口号的内存数据映射表和空闲预留端口号的内存数据队列,其中,每个进程的已分配端口和空闲预留端口的总数等于该进程预留的端口集合中的端口总数,已分配端口的内存数据映射表为:《端口号,map《客户端ip地址,ftp控制连接》》;
103.在接收到ftp客户端在某个进程的ftp控制连接上发送的pasv命令时,判断该pasv命令是否已经分配端口号,
104.若已经分配端口,则将已经分配的端口号发送给ftp客户端;
105.若未分配端口,则获取所述pasv命令对应的客户端ip地址,判断是否从对应进程的已分配端口号的内存数据映射表中遍历查找到第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号,
106.若在已分配端口号的内存数据映射表遍历查找到,则在已分配端口号的内存数据映射表中的遍历查找到的第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号中,插入《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的控制连接》记录至内存数据映射表,并将第一个不包含所述pasv命令对应的ftp客户端ip地址的端口号发送给ftp客户端;
107.若未在已分配端口的内存数据映射表遍历查找到,则从对应进程的空闲预留端口号的内存数据队列的头部取出一个端口号,将取出的一个端口号发送给ftp客户端,并将取出的一个端口号及其《所述pasv命令对应的ftp客户端ip地址,所述pasv命令对应的ftp控制连接》记录插入至已分配端口号的内存数据映射表中。
108.与现有技术相比,本发明的ftp服务器的每个进程预先保留一定数量的tcp端口并进行管理。对于每个ftp控制连接的不同pasv命令,重复使用同一个tcp端口;对来自不同ip地址的ftp客户端pasv命令,分配使用相同的tcp端口。在ftp服务器完成数据连接建立后,根据目的tcp端口和数据连接的客户端ip地址,来确定该数据连接找到它对应的ftp控制连接。本实现了tcp端口的复用,消除ftp服务器在高并发访问时tcp端口不足导致无法提供服务的问题;对于同一个ftp控制连接的不同文件传输,可以复用同一个端口,提高程序运行
效率。
109.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
110.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
111.显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1