您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > FTP工作原理及部署方案
FTP工作原理及部署方案1、FTP简介FTP(FileTransferProtocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。如果用户需要将文件从自己的计算机上发送到另一台计算机上,可使用FTP上传(upload)或(put)操作,而更多种的情况是用户使用FTP下载(download)或获取(get)操作从FTP服务器上下载文件。2、FTP工作原理完整的FTP文件传输需要建立两种类型的连接:一种为文件传输命令,称为控制连接。一种实现真正的文件传输,称为数据连接。3、FTP控制链接客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为FTP控制连接。4、FTP数据连接FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP数据连接就是FTP传输数据的过程,它有两种传输模式:主动传输模式(PORT)和被动传输模式(PASSIVE,简称PASV)。主动传输模式下,FTP服务器使用20端口与客户端的暂时端口进行连接,并传输数据,客户端只是处于接收状态。被动传输模式下,FTP服务器打开一个暂态端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。5、FTP传输方式ASCII传输方式,假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。二进制传输方式,在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。6、FTP传输模式主动传输模式,主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始端口N+1,并发送FTP命令“portN+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。主动方式FTP的主要问题实际上在于客户端。FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简单的告诉服务器自己****的端口号,服务器再回来连接客户端这个指定的端口。对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被阻塞的。被动传输模式,为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P1024),并发送PORTP命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。7、FTP具体工作步骤在集团化数据交换平台的FTP传输过程如下:(1)TCP三次握手:a)客户端使用暂时端口作为源端口N(N1024)向FTP服务器的21端口发起TCPSYN的数据包,请求建立TCP连接;b)FTP服务器发送SYN/ACK(同步确认)包给客户端,源端口为21,目标端口为客户端上使用的暂时端口N;c)客户端向FTP服务器发送一个ACK(确认)包,TCP三次握手成功建立;(2)服务器端身份验证:FTP服务器需要对服务器的身份进行验证,要求输入用户名和密码;(3)客户端发送IP及暂时连接端口到服务器端:客户端使用PORT命令向FTP服务器发送一个上传或下载文件的请求,这个命令包含自己的地址和一个暂时端口N+1,FTP服务器在收到请求后,以20作为源端口,N+1作为目标端口与客户端建立TCP连接;(4)建立连接:(主动模式)ftp服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1);(5)以二进制方式传输文件,传输完成后FTP服务器使用应答码告诉客户端文件传输成功;(6)传输完成,断开连接:数据传输完成以后,客户端向FTP服务器发送一个TCPFIN的数据包通知FTP服务器结束连接。这个FIN数据包需要FTP服务器以TCPACK数据包确认,同时FTP服务器发送一个TCPFIN的数据包给客户端,这个FIN数据包同样需要客户端以TCPACK数据包确认,双方成功确认后,关闭FTP控制连接。(备注:在集团化平台中,由于采用的是主动模式进行FTP文件传输的,而这个时候处理的关键就在客户端了,客户端通常情况下都有防火墙等工具,它们会导致服务器端发起连接时失败,因此,在对防火墙将数据交换平台设置成为例外。【本地连接】—【属性】—【高级】—【设置】—【例外】中将数据交换平台设置例外,这样数据交换平台就能不受防火墙连接的限制,建立连接进行文件传输了。)8、FTP部署方案数据交换平台和各个地市局FTP服务器的部署方式,如图:安全通道:首先需要在数据交换平台和各个应用服务器之间建立安全通道,保证只有数据交换平台和各个应用服务器之间进行安全连接和数据交换,各个应用服务器之间和其他所有情况不能连接,安全通道的建立建议使用Windows内置的IPSec(1PSecurity)。IPSec用于提供IP层的安全性。由于所有支持TCP/IP协议的主机进行通信时,都要经过IP层的处理,所以提供了IP层的安全性就相当于为整个网络提供了安全通信的基础。每一个服务器和数据交换平台的交互方式,如图:各部分连接:在安全通道的基础上进行数据交换平台服务器和应用服务器的各部分连接之间的数据交换,其中连接包括:文件连接,数据库连接,代理连接。数据交换平台各种连接器。文件连接器、数据库连接器:各个服务器提供FTP服务和数据库连接服务,数据交换平台做为所有应用服务器的客户端使用FTP进行文件的上传和下载,使用数据库连接进行数据的查询和处理,完成文件和数据的交换。代理连接器:各个应用服务器安装数据数据交换平台的代理服务,提供Socket连接方式,数据交换平台通过代理连接应用应用程序,实现对各个应用应用程序之间的调用和数据交换。应用程序通过代理实现触发和连接数据交换平台等操作。队列连接器:队列连接是和基于消息处理的队列管理组件建立消息队列的连接。队列可以分离数据交换平台和各个应用程序,使其不必同时运行。队列支持同步和异步的处理机制,实现快速可靠的通信。数据路由:采用“一次抽取,并发路由”的机制,目的是为了减轻对数据源如数据库的压力,同时也提高处理的性能。方便集中处理后的数据根据路由条件,并发地将结果路由到分布的数据目标中,如目标库表、消息队列等。运行监控:记录每个任务的明细,包括开始运行的时间、每个任务执行所用的时间、每个任务执行的明细,如对于数据处理,显示数据被抽取的行数、转换处理的行数、插入的行数、删除的行数、更新的行数、意外处理的行数等。如果有意外,记录意外的详细信息,包括意外产生的原因、相应的意外处理、保存意外数据的记录文件等。管理程序:创建和维护数据交换平台的运行环境,提供可视化的连接配置维护并发布到各个应用程序中。FTP交换过程集团化平台具体工作步骤如下:(1)省公司FTP服务器A上传文件到集团化平台C;(2)集团化平台C解析各个客户端传入的配置;(3)集团化平台C根据配置上传正文、附件、程序文件、配置文件到地市局FTP应用服务器B;(4)地市局FTP应用服务器B解析配置文件到文件和数据库中;(5)地市局FTP应用服务器B上传回写数据配置文件到集团化平台C;(6)集团化平台C解析回写文件,完成后把配置文件再上传给省公司FTP服务器业务系统A;(7)省公司FTP服务器A解析配置文件到程序里面去,并将结果上传到集团化平台C。
本文标题:FTP工作原理及部署方案
链接地址:https://www.777doc.com/doc-4382628 .html