欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

ftp工作原理

 发表于 2014-3-18 19:20:42 | 只看该作者 |只看大图 回帖奖励                                
一、ftp的工作原理:                                                    
(一)、  ftp服务的简介
FTP是文件传输控制协议。它可以使文件通过网络从一台主机传送到另一台主机上,而不受计算机类型和操作系统类型的限制。无论是PC机、服务器、大型机,还是DOS操作系统、Windows操作系统、Linux操作系统,只要双方都支持FTP协议,就可以方便地传送文件
(二)、  ftp的工作原理
1、FTP服务的具体工作过程如下图(主动模式)
① 当FTP客户端发出请求时,系统将动态分配一个端口(如1032)。 
② 若FTP服务器在端口21侦听到该请求,则在FTP客户端的端口1032和FTP服务器的端口21之间建立起一个FTP会话连接。 
③ 当需要传输数据时,FTP客户端再动态打开一个连接到FTP服务器的端口20的第2个端口(如1033),这样就可在这两个端口之间进行数据的传输。当数据传输完毕后,这两个端口会自动关闭。 
④ 当FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口将自动释放掉
 
                                                   
2、ftp的工作模式:主动模式和被动模式
根据数据连接的建立方式,FTP服务的数据传输可以分为Port(主动)模式和Passive(被动)模式
1)主动模式是FTP服务器向FTP客户端传输数据的默认模式。当FTP客户端请求以主动模式传输数据时,由客户端向服务端发送准备接收数据的IP地址和端口Y,该端口是大于1024的非特权端口。服务端主动发起并建立连接到指定的IP地址和端口20,所以称为"主动"模式
在主动模式中,FTP客户端随机开启一个大于1024的端口X向服务器的21号端口发起控制连接请求,然后开放X+1 号端口进行监听;FTP服务器接受请求并建立控制连接会话。如果客户端在控制会话中发送数据连接请求,那么服务器在接收到命令后,会用其本地的FTP数据 端口(通常是20)来连接客户端指定的端口X+1进行数据传输,如下图:
 
                                                   
通过以上介绍,我们应该能大致清晰理解ftp的一个工作原理:
1、使用主动模式,客户端与服务器端的监听连接端口,服务器端提供的连接端口是21端口,数据传输是20端口;
2、使用被动模式,客户端与服务器端的监听连接端口还是21端口,数据传输端口被动模式下可以用户自定义设置,通常需要大于1000以上(比如可以设置5000-5004);
3、不管是主动模式还是被动模式,连接请求的监听端口通常是21端口,但存在以下两种情况:一是用户自己修改为非21的其他端口,二是部分ftp软件不使用21端口,比如g6ftp软件默认使用的是8021,21端口不可用,见下图:
                                                       

                                               

收藏收藏 转播转播 顶 踩                        




回复                                

举报                                






来自  http://bbs.safedog.cn/thread-59330-1-1.html

普通分类: