当前位置:首页 » 文件传输 » ftp的介绍与搭建原理
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ftp的介绍与搭建原理

发布时间: 2022-04-30 16:54:41

‘壹’ FTP的工作原理是怎样的

FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的。数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。FTP协议中,控制连接均有客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式PORT模式(主动方式) FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口(一个大于1024的端口)接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。PASV模式(被动方式) 在建立控制通道的时候和PORT模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接传送数据。如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。参考: http://www.linuxdiyf.com/viewarticle.php?id=20118 →Nebula№☆ 2008-08-18 15:44 检举您觉得这个答案好不好?好(0)不好(0) 相关问题 FTP工作原理是怎样的? FTP工作原理是什么 ftp服务器的工作原理其他答案拿下传文件为例,当你启动FTP从远程计算机拷贝文件时,它向FTP服务器提出拷贝文件的请求。启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。 网站: http://www.skyhosting.com.cn 总想。。。 2008-08-18 15:41 检举上下传 上页,下页. 2008-08-18 15:44 检举虽然我没用过它,但大多数的lonux发行版本中都选用的是Washington University FTP,它是一个着名的FTP服务器软件,一般简称为wu-ftp. 它是一个很好的服委务软件, 原理呀,网上有得查呀。下次我去看看有关那个的原理再告诉你吧。你自己也要去看看那方面有关的书呀, : 起做暧 2008-08-18 15:50 检举我来告诉你FTP服务器工作流程: 建立Socket 侦听 21 端口 收到连接请求后建立新端口与客户端连接 继续侦听 21 端口 负责与客户端连接的模块要解释处理大概10多条标准的FTP命令 根据不同命令为客户返回不同的信息或做不同的事 关于这些标准FTP命令如 USER PASS REST PWD CWD PASV SIZE TYPE LIST RETR 等等的我不全知道 你要自己去查资料。拿下传文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。

‘贰’ FTP服务器是什么

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

IIS7服务器管理工具可以批量管理、定时上传下载、同步操作、数据备份、到期提醒、自动更新。IIS7服务器管理工具适用于Windows操作系统和liunx操作系统;支持Ftp客户端批量操作。

‘叁’ ftp是什么FTP服务器搭建及选择

FTP服务器:

FTP的全称是File
Transfer
Protocol(文件传输协议),是专门用来传输文件的协议。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。所以简单的说,FTP服务器就是一台存储文件的服务器,供用户上传或下载文件。

FTP服务器搭建:

FTP服务器的搭建一般分为两种情况:Windows或者Linux,Windows可以借助自带的IIS服务器搭建,也可以借助第三方的软件搭建,比如Serv-U;对于Linux,现在最常用到的软件为Proftpd。

FTP服务器选择:

猜你还喜欢:

Win7和WinXP共享打印机和FTP设置

win7系统FTP站点添加本地文件夹教程

‘肆’ FTP的基本原理

一、 DHCP服务是什么

DHCP称为动态主机配置协议。DHCP服务允许工作站连接到网络并且自动获取一个IP地址。配置DHCP服务的服务器可以为每一个网络客户提供一个IP地址、子网掩码、缺省网关、一个WINS服务器的IP地址,以及一个DNS服务器的IP地址。

二、DHCP服务在实际应用中的常见问题

1、在一个子网内是否可以存在多台DHCP服务器,如果存在的话,那么该子网中的客户机能否正确获取地址,将会获取哪个DHCP服务器所分配的地址,是否能控制客户机器能从管理人员所设置的DHCP服务器中获取地址而不会从一些非法用户自建的DHCP服务器中取得非法得IP?

2、如果网络中存在多个子网,而子网的客户机需要DHCP服务器提供地址配置,那么是采取在各个子网都安装一台DHCP服务器,还是只在某一个子网中安装DHCP服务器,让它为多个子网的客户机分配IP地址,应该如何实现?

3、如果采取在一个子网中安装DHCP服务器,让它为多个子网的客户机分配IP地址,那么应该需要在一台DHCP服务器中创建多个不同范围的作用域,而我们如何可以准确地保证相应范围的地址分配给相应子网地主机呢?

4、如果客户机器无法从DHCP服务器中获取IP地址,那么Windows2000客户机器将会如何处理自己的TCP/IP设置?

三、DHCP的工作原理

要解析第二点中所提的问题,首先要搞清楚DHCP的实际的工作过程及原理,下面就对此做简单介绍:DHCP是一个基于广播的协议,它的操作可以归结为四个阶段,这些阶段是IP租用请求、IP租用提供、IP租用选择、IP租用确认。

1、IP租用请求:在任何时候,客户计算机如果设置为自动获取IP地址,那么在它开机时,就会检查自己当前是否租用了一个IP地址,如果没有,它就向DCHP请求一个租用,由于该客户计算机并不知道DHCP服务器的地址,所以会用255.255.255.255作为目标地址,源地址使用0.0.0.0,在网络上广播一个DHCPDISCOVER消息,消息包含客户计算机的媒体访问控制(MAC)地址(网卡上内建的硬件地址)以及它的NetBIOS名字。

2、IP租用提供:当DHCP服务器接收到一个来自客户的IP租用请求时,它会根据自己的作用域地址池为该客户保留一个IP地址并且在网络上广播一个来实现,该消息包含客户的MAC地址、服务器所能提供的IP地址、子网掩码、租用期限,以及提供该租用的DHCP服务器本身的IP地址。

3、IP租用选择:如果子网还存在其它DHCP服务器,那么客户机在接受了某个DHCP服务器的DHCPOFFER消息后,它会广播一条包含提供租用的服务器的IP地址的DHCPREQUEST消息,在该子网中通告所有其它DHCP服务器它已经接受了一个地址的提供,其他DHCP服务器在接收到这条消息后,就会撤销为该客户提供的租用。然后把为该客户分配的租用地址返回到地址池中,该地址将可以重新作为一个有效地址提供给别的计算机使用。

4、IP租用确认: DHCP服务器接收到来自客户的DHCPREQUEST消息,它就开始配置过程的最后一个阶段,这个确认阶段由DHCP服务器发送一个DHCPACK包给客户,该包包括一个租用期限和客户所请求的所有其它配置信息,至此,完成TCP/IP配置。

四、DHCP服务常见问题的解决方案

本文第二点中我们所提出的问题有四点,以下就此4个问题做相应的分析并给出我个人的一些解决方案,相信可以对学习DHCP服务的自学者会有一定的帮助,这些问题也是在实际教学中学生提出疑问最多的知识难点。

1、根据客户计算机的IP租用原理可以知道,在一个子网内,如果存在多台DHCP服务器来提供地址配置信息,这是不违反请求、分配原则的,因为只要中有一台客户计算机在该子网中提出IP地址租约请求,由于请求是广播形式的,所以在子网中可以有任意数量的特定DHCP服务器响应一个IP租用请求,而客户请求后选中的是这些任意特定DHCP服务器中的某一台,这个选择具有随机性,但有一点要注意的是客户只能为每一张网络接口卡接受一个租用提供,上面所谓特定的DHCP服务器是指那些经过系统授权的DHCP服务器,而非授权的DHCP服务器将无法在网络中提供正常的地址分配服务,这一点非常重要,因为这样一来客户机器将只会在管理员设定的地址范围中取得地址,Windows 2000操作系统的这一新增功能,通过对DHCP服务器进行认证避免了非法DHCP服务器分配非法IP地址造成的IP地址冲突,在实际应用中,客户机器获取非法的地址经常是造成网络瘫痪和无法正常通讯的一大原因。综合上面的分析可以做出第一个问题的结论:在一个子网中可以存在多台DHCP服务器来提供地址分配,但能够作为地址提供的不是任意的DHCP服务器,而应该是经过系统认证的那些,客户机请求地址时最终从那一台经过认证机器中获取时随机的。此外,从另一个角度看,在相同子网上使用多个 DHCP 服务器,将为它所服务的 DHCP 客户机提供更强的容错能力,如下图所示,在一个子网内(网络号为192.168.1.0 掩码为255.255.255.0)共用两个 DHCP 服务器,其中的DHCP服务器1不可用的话,DHCP服务器2可以取代它并继续租用新的地址或续订现有客户机。可以建议采用的解决方案是使用 80/20 规则来划分两个 DHCP 服务器之间的作用域地址,具体做法可以是将服务器 1 配置成可使用大多数地址(约 80%),服务器 2 可以配置成让客户机使用其他地址(约 20%)。

2、如果在一个网络中存在多个子网,而多个子网的主机都需要DHCP服务器来提供地址配置信息,那么我们可以采用的方法是在每一个子网中安装一台DHCP服务器,让它们来为各个子网分配IP地址,但从节约资源利用出发,我们一般情况下不这样做,可以采取在一个子网中安装DHCP服务器,让它来为多个子网分配IP地址,实现多子网地址分配可以借助DHCP的中继代理功能实现,而作为中继代理的设备可以是一台提供中继代理程序的Windows2000服务器或是一个符合RFC1542规定的路由器,具备 DHCP/ BOOTP Relay Agent 的功能(DHCP relay agent能够把 DHCP/BOOTP 广播信息从一个网段转播到另一个网段上)。以管理的局域网分为三个子网,用Win2000服务器连接。

下面是实现跨子网使用DHCP服务器的具体解决方案:

(1)安装DHCP中继代理程序:在Windows2000服务器的“路由和远程访问”窗口中,依次展开“本地服务器→IP路由选择→常规”选项,右键点击“常规”选项,在弹出的菜单中选择“新增路由协议”,然后在“新路由协议”窗口中选择“DHCP中继代理程序”,接着点击“确定”按钮。

(2)指定DHCP服务器:右键点击刚刚添加的“DHCP中继代理程序”选项,在弹出菜单中选择“属性”,进入“DHCP中继代理程序属性”对话框,在“常规”标签页的“服务器地址”栏中输入子网1中DHCP服务器的IP地址:192.168.1.2,然后点击“添加”按钮,最后点击“确定”按钮关闭该对话框。

(3)配置访问接口:右键点击“DHCP中继代理程序”选项,在弹出菜单中选择“新增接口”,然后在“DHCP中继代理程序的新接口”对话框中的“接口”列表框中选中可以访问子网1中的DHCP服务器的接口,这里新增的接口应该是接口二和接口三,接着点击“确定”按钮。然后在弹出的“DHCP中继站属性”对话框中,选中“中继DHCP数据包”选项,这样就启用了它的中继功能,最后点击“确定”按钮。

(4)DHCP服务器中配置一个超级作用域,其中包含三个普通作用域,作用域地址范围可以分别设置为192.168.1.10~192.168.1.254(分配给子网1的PC使用);192.168.2.10~192.168.2.254(分配给子网2的PC使用);192.168.3.10~192.168.3.254(分配给子网3的PC使用),必须记住DHCP只能为每一个子网分配一个范围。

完成以上配置后,子网2和子网3中的DHCP客户机PC2及PC3就可以通过主机A的DHCP中继代理程序访问子网1中的DHCP服务器。

3、解决了单台DHCP服务器为多个子网分配IP地址后,我们还要搞清楚的一个问题是,如果某一个子网的PC如子网2中的PC2或子网3中的PC3发出地址请求信息后,主机A可以作为中继代理对他们的请求传达子网1中的DHCP服务器,但该DHCP服务器如何可以确定并准确地将作用域192.168.2.0网段的地址分给PC2而把作用域192.168.3.0网段的地址分给PC3呢?这个是多数学生可能存在的疑问,要搞清楚这个问题,可以参考以下的原理分析来找答案:以子网2中的主机PC2为例,DHCP 客户机PC2在子网2 上广播 DHCP/BOOTP discover 消息 (DHCPDISCOVER),广播是将消息以 UDP (User Datagram Protocol)数据包的形式通过 67 端口发出,当中继代理(relay agent)主机A接收到这个消息后,它检查包含在这个消息报头中的网关IP 地址,如果网关IP 地址为 0.0.0.0 ,则用 relay agent主机A的接口二的IP地址192.168.2.1替换它,然后将其转发到 DHCP 服务器所在的子网1上(主机A还担任路由器功能)。当在子网1中的 DHCP服务器收到这个消息后,它开始检查消息中的网关IP地址,然后判断该网关地址是否包含在DHCP的某一个作用域范围内,从而决定它是否可以使用相应的作用域的地址来提供IP地址租约,当然,本例中DHCP服务器将会从作用域192.168.2.10~192.168.2.254选取一个地址来配置PC2;也就是说DHCP客户机的请求地址消息中的网关IP地址 (GIADDR) 将是DHCP服务器用来确定从那个DHCP 范围中挑选IP地址来配置客户机的依据。
二、
环球信息网(WWW)是Internet上信息的一种具体应用与表现形式,它在整个Internet中占据着十分重要的地位。超媒体是WWW的技术基础。
WWW服务采用客户/服务器工作模式:信息资源以网页的形式存储在Web服务器中,用户查询信息时执行一个客户端的浏览器程序,向Web服务器发出请求,Web服务器根据客户端的请求内容,将保存在Web服务器中的某个网页返回给客户端。浏览器接收到页面后对其进行解释,最终将图、文、声并茂的画面呈现给用户。
在WWW中,使用统一资源定位符(URL)来表示网页地址。
1. 环球信息网WWW(World Wide Web) 是Internet上能满足信息查寻或获取要求的一种信息组织方式。
2. 超文本(Hypertext)是一种用计算机来实现连接网页中相关文本内容的结构。
3. 超媒体=超文本+多媒体。
4. WWW服务器
WWW服务器也称Web服务器,建立WWW服务器是Internet网点建成后要考虑的第一件事。
WWW服务器与域名服务器的概念与应用技术在网络系列课程中已作介绍,这里不再重复。
5. WWW客户浏览器
• Web浏览器是最终用户与WWW之间的前端界面
• Web浏览器的功能
• 常用的Web浏览器
Netscape Navigator(网景浏览器)
Internet Explorer(IE)浏览器
HotJava浏览器(JavaSoft公司推出,用Java编写)
代理服务原理

代理服务器有很多种,大体来说有http,ftp,socks代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。所以这里讨论不透明代理。

当机器通过代理服务器上网时。通讯是分两次的,先是机器和代理服务器通讯,再是代理服务器和目的地址通讯。

机器和代理服务器通讯时,目的IP是代理服务器的IP。代理服务器和目的地址通讯时,源IP是代理服务器的IP,当外部的数据也是一样的,在内网中,出现的IP数据,全是内网和代理服务器的IP。因此,从IP包头是看不出任何与外面通讯的信息的。只有从数据中才能看到。

例如,用http代理上网。

过程是

机器和代理服务器建立TCP连接。
机器发出GET命令。这时GET命令中包含URL或IP地址,明文。
代理服务器将其中的URL转换为IP地址,可能会有DNS。将源数据包中的数据拷贝下来。去掉URL,重新组包,再发出去。
我们需要解析第一个GET包。
现在来看几种代理方式。
http (get)
http (connect)
ftp (user user@host:port)
ftp (user user@host port)
ftp (open host)
ftp (site host)
ftp (site user@host)
socks5
socks4
这些代理方式都有一个特点。就是在连接时,都会先和代理服务器连接,发出请求,一般为 command url,command就是get,connect,user 等。http和ftp都一样,可以通过关键字来识别。而且url是明文。Socks有些特别。它不是明文的,而是十六进制数据。要获得IP地址,还要经过转换。
DNS服务是互联网上非常重要和基础的服务之一,用以确定主机名和IP地址之间的对应关系,本文介绍DNS服务
DNS记录
一起实现DNS分布式数据库的那些名称服务器存储了从主机名到IP地址映射的资源记录(resource record,RR)。每个DNS应答消息携带着一个或者多个资源记录。在本部分与下一部分中,我们提供了对DNS资源记录和消息的简短介绍;DNSRFC文档[RFC 1034,RFC 1035]中描述了更多的细节。
一个四元组的资源记录包含了以下的字段:
(Name,value,type,TTL)
TTL是留住资源记录的时间:它确定了一个资源从缓存中删除的时间。在下面给出的例子记录中,我们将忽略TTL字段。name和value的意义依赖于TyPe:
●如果Type=A,那么Name是一个主机名并且value是该主机名所对应的IP地址。这样,一个TYPE A的记录提供了标难的主机名称到IP地址的映射。作为例子,{relay1.bar.foo com,145.37.93.126,A}就是一个Type A的记录。
●如果Type=NS,那么Name就是一个域(如foo.com),并且value是一个知道如何获得该域中主机的IP地址的权威名称服务器的主机名称。这个记录用于将DNS查询沿着查询的链式结构进行路由。作为例子,{foo.com,dns.foo.com,NS}就是一个Type NS纪录。
●如果Type=CNAME,那么value就是一个与主机别名NAME相对应的正规主机名。这个记录可以给发出查询的主机提供一个和主机名相对应的正规主机名。作为例子,{foo.com,relay1.bar.foo.com,CNAME}就是一个CNAME记录。
●如果TYPE=MX,那么value就是一个主机别名为NAME的邮件服务器的主机名。作为例子,{foo.com,mail.bar.foo.com,MX}就是一个MX记录。MX记录使得邮件服务器的主机名具有简单的别名。
如果一个名称服务器对于一个特殊的主机名是权威的,那么这个名称服务器将为这个主机名包含一个Type A记录(即使名称服务器不是权威的,它也可以在它的缓存中包含一个Type A记录)。如果一个服务器对于一个主机名不是权威的,那么该服务器将为包含该主机名的域包含一个Type NS记录:它还包含一个在该NS记录的value字段中提供了名称服务器IP地址的Type A记录。作为例子,假设一个根服务器对于主机gain.cs.umass.e不是权威的。那么根服务器将包含一个包括了主机cs.umass.e的域的记录,例如,{umass.e,dns.umass.e,NS)。根服务器也包含一个Type A记录,该记录将名称服务器(dns.umass.e)映射到一个IP地址上,例如,{dns.umass.e,128.119.40.111,A}。
DNS消息
在前面,我们间接提到了DNS查询和应答消息。它们仅仅是两种DNS消息。而且,请求和应答消息有相同的格式,如图4所示。

图4 DNS消息格式
一个DNS消息的各个字段的语义如下:
●前12个子节是头部区,它有很多字段。第一个字段是一个用来进行标识查询的16比特的数字。这个标识符被拷贝到一个查询的应答消息中,使得客户能够将接收到的应答和所发送的查询相匹配。在标志字段中包括很多标志。一个1比特的查询/应答标志指明了该消息是查询(0)还是应答(1)。当一个名称服务器对于所查询的名称来说是一个权威服务器的时候,应答消息中就对一个1比特的权威标志进行了设置。当一个客户(主机或者名称服务器)希望当它没有该记录时名称服务器执行递归的时候,就设置一个1比特的要求递归标志。如果名称服务器支持递归的话,就在应答中设置一个1比特的递归可用宇段。在头部中,还有四个“数目”字段。这些字段指明了头部之后出现的四种类型的“数据”部分的出现数目。
●问题部分包含了关于所执行的查询的信息。这个区包括了(1)包含了被查询的名称的名称字段,(2)指明了所询问的关于该名称的问题类型的类型字段(例如,与一个名称相关的主机地址——type A,或者一个名称的邮件服务路—type MX)。
●在一个从名称服务器发出的应答中,答案部分包含了最初被查询的名称的资源记录。前面讲过,在每个资源记录中都有Type(例如,A,NS,CNAME和MX),value和TTL。应答可以在答案中返回多个RR,因为一个主机名称可以有多个IP地址(例如,对于前面所讨论的重复的web服务器的情况)。
●权威部分包含了其他权威服务器的记录。
●补充部分包含了其他“有帮助的”记录。例如,一个对应于MX查询的应答中的答案字段将包含与别名NAME相关联的邮件服务器的主机名。补充区将包含一个Type A记录,该记录提供了该邮件服务器的正规主机名所对应的IP地址。以上的讨论集中在如何从DNS数据库中检索数据。你可能会奇怪,最先数据是如何进入到数据库中的呢?直到最近,每个DNS服务器的内容都被静态配置了,例如,由一个系统管理员创建的配置文件。更近的,为了允许从数据库中通过DNS消息动态加入或者删除数据,在DNS协议中加入了UPDATE选项。RFC 2136详细说明了DNS的动态更新。
DNSNet提供了一个很好的、关于DNS的文档集合[DNSNetl999I。因特网软件联盟(Internet Software Consortium)为BIND提供了很多资源,BIND是一个流行的、Unix下的公共域名服务器软件,不过因其暴露出的一些安全问题,目前它正被其它竞争产品逐步替代。

‘伍’ FTP文件传输概念、工作原理

FTP是英语FILE TRANSFER PROTOCOL的简称,中文意为"文件传送协议,用于在电脑和电脑之间传送文件,有了这个协议,文件的传输就可以不受不同的电脑,不同的操作系统,甚至不同文件格式的限制,传输文件的一般步骤如下:
1在本地电脑上登陆到国际互联网,
2搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径)
3当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑.
4在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东东或者下载别人授权共享的东东(这里的东东是指能放到电脑里去又能在显示屏上看到的东东)
5完成工作后关闭FTP下载软件,切断连接.
为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,各有各的特色.

‘陆’ 怎么搭建FTP服务器

1、首先,我们创建一个用于登录FTP以进行操作的用户帐户。右键单击我的桌面并选择“管理选项”,转到“管理”界面,然后打开“本地用户和组”选项。我们可以在列表中看到用户选项。

‘柒’ 什么是ftp服务器,其主要工作原理是什么

ftp是file
transfer
protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于http,ftp协议要复杂得多。复杂的原因,是因为ftp协议要用到两个tcp连接,一个是命令链路,用来在ftp客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
ftp协议有两种工作方式:port方式和pasv方式,中文意思为主动式和被动式。
port(主动)方式的连接过程是:客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用port命令告诉服务器:“我打开了xxxx端口,你过来连接我”。于是服务器从20端口向客户端的xxxx端口发送连接请求,建立一条数据链路来传送数据。
pasv(被动)方式的连接过程是:客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用pasv命令告诉客户端:“我打开了xxxx端口,你过来连接我”。于是客户端向服务器的xxxx端口发送连接请求,建立一条数据链路来传送数据。

‘捌’ 简述文件传输协议FTP的工作原理及一般使用步骤。

1、FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive(也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
下面介绍一个这两种方式的工作原理:
Port
FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive
在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

2、使用步骤
(1)FTP服务器运行FTPd守护进程,等待用户的FTP请求。

(2)用户运行FTP命令,请求FTP服务器为其服务。

例:FTP 202.119.2.197

(3)FTPd守护进程收到用户的FTP请求后,派生出子进程FTP与用户进程FTP交互,建立文件传输控制连接,使用TCP端口21。

(4)用户输入FTP子命令,服务器接收子命令,如果命令正确,双方各派生一个数据传输进程FTP-DATA,建立数据连接,使用TCP端口20,进行数据传输。

(5)本次子命令的数据传输完,拆除数据连接,结束FTP-DATA进程。

(6)用户继续输入FTP子命令,重复(4)、(5)的过程,直至用户输入quit命令,双方拆除控制连接,结束文件传输,结束FTP进程。