《一种FTP服务器、处理方法和传输系统.pdf》由会员分享,可在线阅读,更多相关《一种FTP服务器、处理方法和传输系统.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103001939 A (43)申请公布日 2013.03.27 CN 103001939 A *CN103001939A* (21)申请号 201210264784.X (22)申请日 2012.07.30 H04L 29/06(2006.01) H04L 29/12(2006.01) (71)申请人 深圳市共进电子股份有限公司 地址 广东省深圳市南山区南海大 道 1019 号南山医疗器械产 业园 B116、 B118;A211-A213、 B201-B213;A311-313;B411-413 (72)发明人 熊元星 王金桂 (54) 发明名称 一种 FTP 服务。
2、器、 处理方法和传输系统 (57) 摘要 本发明公开了一种 FTP 服务器处理方法, FTP 服务器预先设置 SOCKET 参数的数据结构, 使其兼 容 IPv4 和 IPv6 ; 之后与客户端建立控制连接, 并 判断所述客户端所使用的协议为IPv4还是IPv6, 为 IPv4 时, 则将所述 PORT 命令中的 IPv4 地址转 换为 IPv6 地址, 之后与所述客户端建立数据连 接。 本发明还公开了一种FTP服务器, 包括协议接 口和服务器数据传输模块。本发明还公开了一种 FTP 传输系统, 包括客户端和 FTP 服务器, 所述客 户端包括用户接口、 客户端协议解释器和客户端 数据传输模块。
3、 ; 所述 FTP 服务器包括协议接口和 数据传输模块。该方法、 服务器和系统, 能够兼容 IPv4 和 IPv6, 实现了从 IPv4 向 IPv6 的过渡。 (51)Int.Cl. 权利要求书 1 页 说明书 6 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 6 页 附图 2 页 1/1 页 2 1. 一种 FTP 服务器处理方法, 其特征在于, 包括步骤 : 步骤 A, FTP 服务器预先设置 SOCKET 参数的数据结构, 使其兼容 IPv4 和 IPv6 ; 步骤 B, FTP 服务器与客户端建立控制连接 ; 步骤 C, F。
4、TP 服务器接收所述客户端的 FTP 命令, 判断所述客户端所使用的协议为 IPv4 还是 IPv6, 为 IPv4, 则进入步骤 D, 为 IPv6 则进入步骤 E ; 步骤 D, FTP 服务器处理所述客户端发起数据连接请求的 PORT 命令时, 将所述 PORT 命 令中的 IPv4 地址转换为 IPv6 地址 ; 步骤 E, FTP 服务器与所述客户端建立数据连接。 2.根据权利要求1所述的FTP服务器数据传输方法, 其特征在于, 所述步骤C中判断所 述客户端所使用的协议为 IPv4 还是 IPv6, 是通过分析 IPv6 地址的组成进行判断。 3. 一种 FTP 服务器, 其特征在于。
5、, 包括协议接口和服务器数据传输模块 ; 所述协议接口, 用于预先设置 SOCKET 参数的数据结构, 使其兼容 IPv4 和 IPv6, 并与客 户端建立控制连接, 接收所述客户端的 FTP 命令, 判断所述客户端所使用的协议为 IPv4 还 是IPv6, 为IPv4时, 则在处理所述客户端发起数据连接请求的PORT命令时, 将所述PORT命 令中的 IPv4 地址转换为 IPv6 地址, 而后通知所述服务器数据传输模块进行数据连接 ; 为 IPv6 时, 则直接通知所述服务器数据传输模块进行数据连接 ; 所述服务器数据传输模块, 用于与所述客户端进行数据连接。 4. 一种 FTP 传输系统。
6、, 包括客户端和 FTP 服务器, 其特征在于 : 所述客户端包括用户接口、 客户端协议解释器和客户端数据传输模块 ; 所述 FTP 服务 器包括协议接口和数据传输模块 ; 所述用户接口, 与所述用户协议解释器电性连接, 用于输入用户命令并将其转换为 FTP 命令后输出给所述客户端协议解释器 ; 所述客户端协议解释器, 与所述客户端数据传输模块电性连接, 用于与所述 FTP 服务 器的协议接口进行控制连接 ; 所述客户端数据传输模块, 用于与所述服务器数据传输模块进行数据连接 ; 所述协议接口, 用于预先设置 SOCKET 参数的数据结构, 使其兼容 IPv4 和 IPv6, 并与所 述客户端。
7、协议解释器建立控制连接, 接收所述客户端的 FTP 命令, 判断所述客户端所使用 的协议为 IPv4 还是 IPv6, 为 IPv4 时, 则在处理所述客户端发起数据连接请求的 PORT 命令 时, 将所述 PORT 命令中的 IPv4 地址转换为 IPv6 地址, 而后通知所述服务器数据传输模块 进行数据连接 ; 为 IPv6 时, 则直接通知所述服务器数据传输模块进行数据连接 ; 所述服务器数据传输模块, 用于与所述客户端数据传输模块进行数据连接。 权 利 要 求 书 CN 103001939 A 2 1/6 页 3 一种 FTP 服务器、 处理方法和传输系统 技术领域 0001 本发明涉。
8、及FTP(File Transfer Protocol)技术领域, 特别涉及一种FTP服务器、 处理方法和传输系统。 背景技术 0002 IPv4, 是互联网协议(Internet Protocol, IP)的第四版, 也是第一个被广泛使用, 构成现今互联网技术的基石的协议。Ipv4 可以运行在各种各样的底层网络上, 比如端对端 的串行数据链路 (PPP 协议和 SLIP 协议 ), 卫星链路等。 0003 IPv6(Internet Protocol Version6) 的 缩 写, 是 IETF( 互 联 网 工 程 任 务 组, Internet Engineering Task For。
9、ce) 设计的用于替代现行版本 IP 协议 (IPv4) 的下一代 IP 协议。 0004 随着互联网行业的不断发展, 现有 IPv4 的地址资源被分配殆尽, 而日益发展的网 络需要更多的地址资源, 现有的数量已经无法满足更大的需求, 迫切需要升级到采用核心 标准为 IPv6 的下一代互联网。 0005 但是当前的大多互联网软硬件设备均是基于 IPv4, IPv4 还是一段时间内的主流 协议, IPv6 网络目前还是处于实验阶段。 0006 FTP(File Transfer Protocol, FTP) 是 TCP/IP 网络上两台计算机传送文件的协 议, FTP是在TCP/IP网络和INT。
10、ERNET上最早使用的协议之一, 它属于网络协议组的应用层。 FTP 客户机可以给服务器发出命令来下载文件, 上载文件, 创建或改变服务器上的目录。当 前 BROADCOM 方案中的 FTP 服务器只支持 IPv4 的客户端, 不支持 IPv6 连接。 0007 IPv4 为当前的主流应用协议, 升级到 IPv6 也势在必行, 因此从 IPv4 到 IPv6 还存 在较长的过渡期, 而现有技术中的 BROADCOM 方案中的 FTP 服务器只支持 IPv4 的客户端, 无 法做到兼容 IPv4 和 IPv6。 发明内容 0008 本发明要解决的技术问题为提供了一种 FTP 服务器、 处理方法和。
11、传输系统, 解决 了现有技术中的 FTP 服务器无法兼容 IPv4 和 IPv6 的技术问题。 0009 为解决上述技术问题, 本发明提供了一种 FTP 服务器处理方法, 包括步骤 : 0010 步骤 A, FTP 服务器预先设置 SOCKET 参数的数据结构, 使其兼容 IPv4 和 IPv6 ; 0011 步骤 B, FTP 服务器与客户端建立控制连接 ; 0012 步骤 C, FTP 服务器接收所述客户端的 FTP 命令, 判断所述客户端所使用的协议为 IPv4 还是 IPv6, 为 IPv4, 则进入步骤 D, 为 IPv6 则进入步骤 E ; 0013 步骤D, FTP服务器处理所述。
12、客户端发起数据连接请求的PORT命令时, 将所述PORT 命令中的 IPv4 地址转换为 IPv6 地址 ; 0014 步骤 E, FTP 服务器与所述客户端建立数据连接。 0015 其中, 所述步骤 C 中判断所述客户端所使用的协议为 IPv4 还是 IPv6, 是通过分析 说 明 书 CN 103001939 A 3 2/6 页 4 IPv6 地址的组成进行判断。 0016 本发明还提供一种 FTP 服务器, 包括协议接口和服务器数据传输模块 ; 所述协议 接口, 用于预先设置 SOCKET 参数的数据结构, 使其兼容 IPv4 和 IPv6, 并与客户端建立控 制连接, 接收所述客户端的。
13、 FTP 命令, 判断所述客户端所使用的协议为 IPv4 还是 IPv6, 为 IPv4 时, 则在处理所述客户端发起数据连接请求的 PORT 命令时, 将所述 PORT 命令中的 IPv4 地址转换为 IPv6 地址, 而后通知所述服务器数据传输模块进行数据连接 ; 为 IPv6 时, 则直接通知所述服务器数据传输模块进行数据连接 ; 所述服务器数据传输模块, 用于与所 述客户端进行数据连接。 0017 本发明还提供一种 FTP 传输系统, 包括客户端和 FTP 服务器, 所述客户端包括用 户接口、 客户端协议解释器和客户端数据传输模块 ; 所述 FTP 服务器包括协议接口和数据 传输模块 。
14、; 所述用户接口, 与所述用户协议解释器电性连接, 用于输入用户命令并将其转 换为 FTP 命令后输出给所述客户端协议解释器 ; 所述客户端协议解释器, 与所述客户端数 据传输模块电性连接, 用于与所述 FTP 服务器的协议接口进行控制连接 ; 所述客户端数据 传输模块, 用于与所述服务器数据传输模块进行数据连接 ; 所述协议接口, 用于预先设置 SOCKET 参数的数据结构, 使其兼容 IPv4 和 IPv6, 并与所述客户端协议解释器建立控制连 接, 接收所述客户端的 FTP 命令, 判断所述客户端所使用的协议为 IPv4 还是 IPv6, 为 IPv4 时, 则在处理所述客户端发起数据连。
15、接请求的 PORT 命令时, 将所述 PORT 命令中的 IPv4 地 址转换为 IPv6 地址, 而后通知所述服务器数据传输模块进行数据连接 ; 为 IPv6 时, 则直接 通知所述服务器数据传输模块进行数据连接 ; 所述服务器数据传输模块, 用于与所述客户 端数据传输模块进行数据连接。 0018 本发明提供的一种 FTP 服务器、 处理方法和传输系统, 通过预先设置 SOCKET 参数 的数据结构, 使其兼容 IPv4 和 IPv6, 并在客户端所使用的协议为 IPv4, 将其 PORT 命令中的 IPv4 地址转换为 IPv6 地址, 从而能够顺利地在服务器与客户端之间建立数据连接, 实。
16、现了 对 IPv4 和 IPv6 的兼容。 附图说明 0019 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据 提供的附图获得其他的附图。 0020 图 1 为本发明的一种 FTP 服务器处理方法的流程图 ; 0021 图 2 为本发明的一种 FTP 服务器的结构示意图 ; 0022 图 3 为本发明的一种 FTP 传输系统的结构示意图。 具体实施方式 0023 本发明的核心为CPE(Custome。
17、r Premise Equipment, 客户终端设备)通讯终端中, 能够实现基于 FTP 的数据传输或存储同时支持 IPv4 和 IPv6 的方法。主要用于 IPv6、 IPv4 共存的网络环境下, 使得 CPE 通讯终端能更好的兼容处理业务, 可以同时使用 IPv4 和 IPv6 协议与其它单一地支持 IPv4 或 IPv6 的客户端进行通讯。 说 明 书 CN 103001939 A 4 3/6 页 5 0024 为了使本领域的技术人员更好地理解本发明的技术方案, 下面结合附图和具体实 施例对本发明作进一步的详细说明。 0025 本发明提供了一种 FTP 服务器处理方法, 参见图 1, 。
18、包括步骤 : 0026 S110, FTP 服务器预先设置 SOCKET 参数的数据结构, 使其兼容 IPv4 和 IPv6。 0027 创建 SOCKET 时使用的参数的数据结构, 必须要兼容 IPv4 和 IPv6。 0028 在本发明实施例中, SOCKET 参数采用下面的自定义的一个结构体 : 0029 0030 该数据结构包含二个成员, 一个是 sockaddr 结构, 一个是 sockaddr_in6 或 sockaddr_in 结构。 0031 其中, 上述程序仅为一个举例, 本领域技术人员可根据本发明的技术构思以多种 形式的程序实施本步骤, 具体的结构体要根据实际支持的协议栈来。
19、确定。 0032 步骤 S111, FTP 服务器与客户端建立控制连接。 0033 FTP 采用两个 TCP 连接来传输一个文件, 分别是控制连接和数据连接。 0034 FTP 要实现文件传输功能, 需要建立两条连接, 一条是控制连接, 另一条是数据连 接。 0035 控制连接以通常的客户服务器方式建立。服务器以被动方式打开用于 FTP 的端口 21, 等待客户的连接。客户则以主动方式打开 TCP 端口 21, 来建立连接。控制连接始终等待 客户与服务器之间的通信。该连接将命令从客户传给服务器, 并传回服务器的应答。由于 命令通常是由用户键入的, 所以 IP 对控制连接的服务类型就是 “最大限。
20、度地减小迟延” 。 0036 这两条连接都需要支持 IPv6。如果只有控制连接支持 IPv6, 那么 IPv6 客户端就 只能够建立连接, 登陆到 FTP 服务器, 但无法传输数据 ; 如果只有数据连接支持 IPv6, 那么 IPv6 的客户端根本无法连接上 FTP 服务器。 0037 步骤S112, FTP服务器接收所述客户端的FTP命令, 判断所述客户端所使用的协议 为 IPv4 还是 IPv6, 为 IPv4, 则进入步骤 S113, 为 IPv6 则进入步骤 S114。 0038 区分 IPv4 和 IPv6 的客户端可以通过分析 IPv6 地址的组成来确定。 0039 在本发明实施例。
21、中, 本步骤可采用如下程序实现 : 0040 说 明 书 CN 103001939 A 5 4/6 页 6 0041 0042 同样, 很显然的是, 上述程序仅为能够实现本步骤功能的一个程序的举例, 本领域 技术人员能够根据本发明的技术构思实现多种不同的程序, 都应属于本发明的保护范围。 0043 步骤 113, FTP 服务器处理所述客户端发起数据连接请求的 PORT 命令时, 将所述 PORT 命令中的 IPv4 地址转换为 IPv6 地址。 0044 再来分析IPv4和IPv6客户端发起数据连接请求时使用的FTP命令 : IPv4为PORT, IPv6 为 EPRT。 0045 PORT。
22、 命令格式如下 : PORT h1, h2, h3, h4, p1, p2, 具体含义是 h1 到 h4 分别为 IPv4 地址的四个数值, p1, p2 为客户端打开的端口号。因为前面的数据结构 usockaddr 中只有 sockaddr_in6, 所以在处理 PORT 命令时, 必须要把 IPv4 的地址转换成 IPv6 的地址, 在本发 明实施例中, 转换代码如下 : 0046 sscanf(params, lu, lu, lu, lu, lu, lu , &a0, &a1, &a2, &a3, &p0, &p1) ; 说 明 书 CN 103001939 A 6 5/6 页 7 00。
23、47 addr htonl(a0 24)+(a1 16)+(a2 8)+a3) ; 0048 /*convert IPv4 addressto IPv6 address*/ 0049 static char ret16 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, OxFF, OxFF ; 0050 memcpy(&ret12, &addr, 4) ; 0051 同样, 本程序也仅为实现本步骤功能的一个举例, 本领域技术人员可根据本步骤 的说明和本发明的技术构思, 稍加改动, 得到不同形式的实施程序, 都应属于本发明的保护 范围。 0052 上面这一步是较为重要的, 若省略这一步。
24、骤, 会导致 SOCKET 创建失败, 从而无法 完成数据连接建立。 0053 EPRT 命令格式为 : 0054 EPRT 0055 这个格式要求是在RFC中规定的, 其中是分隔符, WINDOWS7系统使用的是 “|” , 实例如 : EPRT|2|fe80:51a3:f183:5b72:4f40|65071|, 其中 fe80:51a3:f183:5b72:4f40 和 65071 分别为客户端的 IPv6 地址和端口号。 0056 EPRT 命令则由于与预先设置的结构体匹配, 因此可完成数据连接的建立。 0057 步骤 114, FTP 服务器与所述客户端建立数据连接。 0058 每当。
25、一个文件在客户与服务器之间传输时, 就创建一个数据连接。 0059 当家里或是其他小型局域网有了完整的网络、 多台计算机, 如何共享文件就成了 比较需要解决的问题之一。靠 U 盘拷贝、 IM( 即时通讯软件 ) 软件对传总有一定的弊端, 而 且各台计算机的硬盘容量不同, 如果能把公用的电影、 音乐放置在一个容量大、 速度快、 访 问方便的存储上, 这样就能方便的共享, 这就是 CPE 中 FTP 存储的主要应用。 0060 而在这样的一个网络中, 客户端有的是 IPv4 的, 有的则是 IPv6 的, 所以有必要让 FTP 服务器兼容两类客户端, 从而达到支持不同网络协议的客户端之间共享文件的。
26、目的。 0061 本发明的一种 FTP 服务器处理方法, 通过设置 SOCKET 参数结构体, 区分 IPv4 和 IPv6的客户端, 并针对不同的命令格式进行IPv4地址和IPv6地址间的转换, 从而实现了对 不同协议下的客户端的命令的响应, 实现了对 IPv4 和 IPv6 的兼容。 0062 本发明还提供一种 FTP 服务器, 参见图 2, 包括协议接口和服务器数据传输模块。 0063 所述协议接口, 用于预先设置 SOCKET 参数的数据结构, 使其兼容 IPv4 和 IPv6, 并与客户端建立控制连接, 接收所述客户端的 FTP 命令, 判断所述客户端所使用的协议为 IPv4 还是 。
27、IPv6, 为 IPv4 时, 则在处理所述客户端发起数据连接请求的 PORT 命令时, 将所述 PORT 命令中的 IPv4 地址转换为 IPv6 地址, 而后通知所述服务器数据传输模块进行数据连 接 ; 为 IPv6 时, 则直接通知所述服务器数据传输模块进行数据连接。 0064 所述服务器数据传输模块, 用于与所述客户端进行数据连接。 0065 本发明还提供一种 FTP 传输系统, 参见图 3, 包括客户端和 FTP 服务器。 0066 所述客户端包括用户接口、 客户端协议解释器和客户端数据传输模块 ; 所述 FTP 服务器包括协议接口和数据传输模块。 0067 所述用户接口, 与所述用。
28、户协议解释器电性连接, 用于输入用户命令并将其转换 为 FTP 命令后输出给所述客户端协议解释器。 0068 从图 3 中可以看出客户端与服务器以及它们的各功能模块之间的连接情况, 交互 说 明 书 CN 103001939 A 7 6/6 页 8 式用户通常不处理在控制连接中转换的命令和应答。这些细节均由两个协议解释器来完 成, 两个协议解释器还根据需要激活文件传送功能。 0069 所述用户接口是按用户所需提供各种交互界面, 包括但不限于 IE、 文件浏览器、 FTP 客户端、 逐行输入命令等等。所述用户接口把它们转换成在控制连接上发送的 FTP 命 令。类似地, 从控制连接上传回的服务器应。
29、答也被转换成用户所需的交互格式。 0070 所述客户端协议解释器, 与所述客户端数据传输模块电性连接, 用于与所述 FTP 服务器的协议接口进行控制连接。 0071 所述客户端数据传输模块, 用于与所述服务器数据传输模块进行数据连接。 0072 所述协议接口, 同前所述, 用于预先设置 SOCKET 参数的数据结构, 使其兼容 IPv4 和 IPv6, 并与所述客户端协议解释器建立控制连接, 接收所述客户端的 FTP 命令, 判断所述 客户端所使用的协议为 IPv4 还是 IPv6, 并做出相应的处理。 0073 所述服务器数据传输模块, 用于与所述客户端数据传输模块进行数据连接。 0074 。
30、鉴于当前的实际情况是 IPv4 占据主流, IPv6 网络还是处于实验阶段, 因此本发明 的一种 FTP 服务器、 处理方法和传输系统, 提供了一种 IPv4/IPv6 互通技术以保证 IPv4 能 够平稳过渡到 IPv6。能够实现在 IPv4 网络内, 使用 IPv4 与网络其他终端通讯 ; 在 IPv6 网 络内, 使用 IPv6 与网络其他终端通讯 ; 在 IPv4 和 IPv6 共存的网络环境下, 可以同时使用 IPv4 和 IPv6 与网络其他终端通讯。 0075 本领域普通技术人员可以理解 : 实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成, 前述的程序可以存储于一计算机可读取存储介质中, 该程序 在执行时, 执行包括上述方法实施例的步骤 ; 而前述的存储介质包括 : ROM、 RAM、 磁碟或者 光盘等各种可以存储程序代码的介质。 说 明 书 CN 103001939 A 8 1/2 页 9 图 1 图 2 说 明 书 附 图 CN 103001939 A 9 2/2 页 10 图 3 说 明 书 附 图 CN 103001939 A 10 。