Ftp的两种工作模式

FTP(File Transfer Protocol)的缩写,即文档传输协议。其是TCP/IP协议族中的一种具体应用,他工作在OSI模型的第七层,即应用层上,其使用TCP协议传输,即FTP传输的任何文档都是通过“三次握手”实现,也就是说当客户端和服务器端之间的数据包传输,一旦出现丢包现象,会重新传输,以确保数据的可靠。 FTP协议要使用两个TCP连接传送数据,一个是命令连接,用来在FTP客户端和服务器之间传递命令;另一个是数据连接,用来上传或下载数据。这就直接导致FTP需要2个端口,一个端口用于控制连接,即21端口,发送指令给服务器连同等待服务器响应;另一个端口是数据传输端口,端口号为20,是用来建立数据传输通道。 FTP的连接模式有两种,PORT(主动模式)和PASV(被动模式), 主动模式的连接过程是:客户端动态的选择一个端口(这个端口号一定是1024以上的,因为1024以前的端口都已预先被定义好)向服务器端的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一个命令连接。当需要传送数据时或列出服务器的文档列表时(通常使用ls或dir命令),客户端通过命令连接告诉服务器(使用PORT命令):“我已打开了XX端口,请您过来连接”。于是服务器使用20端口向客户端的XX端口发送连接请求,建立一条数据连接来传送数据。 被动模式:客户端首先使用和主动连接模式相同的方法和服务器建立命令连接。当需要传送数据时,客户端通过命令连接告诉服务器(使用PASV命令)“我要连接您的XX端口,请问是否空闲”,假如恰好该端口空闲,服务器会告诉客户端:“您请求的端口空闲,能够建立连接(ACK确认信息)”,否则服务器会说“该端口已占用,请换个端口(UNACK信息)”。假如客户端得到的是空闲的提示,就会利用该端口建立连接,否则就换个端口重新尝试,这也就是所谓的连接建立的协商过程. PORT模式建立数据传输通道是由服务器端发起的,服务器使用20端口连接客户端的某一个大于1024的端口;在PASV模式中,数据传输的通道的建立是由FTP客户端发起的,他使用一个大于1024的端口连接服务器的1024以上的某一个端口。假如从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND.
 
判断主动与被动,首先要明确服务器是否知道客户端的IP地址和端口号,1.客户端用Port的模式连接,就是告诉服务器自己IP地址端口号。2.客户端用Pasv模式连接,没有告诉服务器自己的IP地址端口号,仅仅只是发出连接请求。
 

转载于:https://blog.51cto.com/mengqiucheng/739666

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值