您的位置:首页 > 编程语言 > PHP开发

关于FTP主动模式与被动模式的一点理解

2017-12-09 11:21 901 查看
又一次面试的时候,面试像这样问我:请简述FTP的主动模式与被动模式的区别?FTP这玩意不是天天都要用到的么,看起来这么简单的问题我居然回答不上来,好尴尬!经过几天的思考与理解,终于有点眉目,拙见让诸位见笑了。
主动模式中FTP的客户端发送 PORT 命令到FTP服务器。被动模式中FTP的客户端发送 PASV命令到 FTP 服务器。
我们可以通过以下图片及文字理解每种FTP方式是怎样工作的。
主动模式(服务器向客户端敲门,然后客户端开门)FTP:
客户机与服务器之间建立连接时,客户机是大于1024的端口上,服务器是20端口。
客户机的端口是大于1024的,而服务器的端口是21端口接收请求,而是20端口给客户机回应。
允许FTP客户机从大于1024的端口连接服务器的21端口。
允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。
允许FTP服务器从20端口主动连接FTP客户机中大于1024的端口。
允许FTP客户机从大于1024的端口回应来自FTP服务器的20端口的网络连接。
命令连接:客户端 >1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口



被动模式(客户端向服务器敲门,然后服务器开门)FTP:
客户机与服务器之间建立连接都是在大于1024的端口上的。
客户机的端口是大于1024的,而服务器的端口是21端口接收请求,而是从大于1024端口给客户机回应。
允许FTP客户机从大于1024的端口连接服务器的21端口。
允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。
允计FTP客户机从大于1024的端口连接FTP服务器的大于1024端口。
允许FTP服务器从大于1024的端口回应来自FTP客户机大于1024端口的网络连接。
命令连接:客户端 >1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口 -> 服务器 >1024端口



主动模式对便于FTP服务器的管理,不便于对客户端进行管理。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙所阻塞。被动模式对FTP便于对客户端进行管理,不便于对服务器端进行管理。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息