一、FTP状态码解析

FTP服务器: 220 (vsFTPd 2.0.1)                                          |说明:链接成功
FTP客户端: USER useway                                                 |说明:输入用户名
FTP服务器: 331 Please specify the password.                            |说明:请输入密码
FTP客户端: PASS  !@#$%abce                                               |说明:输入密码
FTP服务器: 230 Login successful.                                       |说明:登录成功
FTP客户端: CWD /home/useway                                            |说明:切换目录
FTP服务器: 250 Directory successfully changed.                         |说明:目录切换成功
FTP客户端: EPSV ALL                                                    |说明:为EPSV被动链接方式
FTP服务器: 200 EPSV ALL ok.                                            |说明:OK
FTP客户端: EPSV                                                        |说明:链接
FTP服务器: 229 Entering Extended Passive Mode (|||62501|)              |说明:被动链接端口为62501
FTP客户端: LIST                                                        |说明:执行LIST显示文件列表
FTP服务器: 150 Here comes the directory listing.                       |说明:列表从62501端口被发送
FTP服务器: 226 Directory send OK.                                      |说明:发送完成
FTP客户端: QUIT                                                        |说明:退出FTP
FTP服务器: 221 Goodbye.                                                |说明:再见

二、FTP主动/被动模式对比


FTP协议使用两个TCP链接来分别进行命令传输数据传输,将管理和数据传输分隔开。

主动模式和被动模式的区别主要体现在端口的确定上。

(一)主动模式

1.主动模式的特征

主动模式下,FTP服务器的命令端口和数据端口是固定不变的,例如模式21是命令端口,20是数据端口。FTP服务器的端口也可以在配置文件中设置,但无论怎么配置都是一经设定,则固定不变。

2.主动模式数据传输过程

第一步:客户端会随机开启大于1024的端口N和N+1两个端口,N为客户端的命令端口,N+1为客户端的数据端口。

客户端使用端口N连接FTP服务器的命令端口21建立控制连接,同时开放N+1号端口进行监听。然后通过命令端口向服务器发出PORT N+1命令,告诉服务器我这边开启了数据端口N+1。

第二步:在控制连接建立成功后,服务器会使用数据端口20,主动连接客户端的N+1端口以建立数据连接。这就是FTP主动模式的连接过程。

我们可以看到数据连接建立的过程中,服务器是主动的连接客户端的,所以称这种模式为主动模式。

(二)被动模式

1.被动模式的特征

被动模式下,FTP的命令端口是固定不变的,但是数据端口是自动从端口1024到5000中随机选择的,或者从自己配置的端口范围内随机选择。

2.被动模式数据传输过程

第一步,客户端的命令端口N主动连接服务器命令端口21,并发送PASV命令,告诉服务器用“被动模式”。

第二步,控制连接建立成功后,服务器随机开启一个数据端口P,通过PORT命令将P端口告诉客户端。

第三步,客户端的数据端口N+1去连接服务器的数据端口P,建立数据连接。

参考文章:
1、https://blog.csdn.net/linjing2587032062/article/details/47760979
2、https://www.cnblogs.com/rainman/p/11647723.html
3、https://blog.csdn.net/qq_16038125/article/details/72851142
4、https://blog.csdn.net/qq_16038125/article/details/72851142

文件传输协议FTP解析相关推荐

  1. 文件传输协议FTP和开源FTP软件FileZilla

    一.文件传输协议FTP. 1.简介. FTP(File Transfer Protocol),是文件传输协议的简称. 1)TCP/IP协议簇,应用层协议,用于Internet上的控制文件的双向传输,采 ...

  2. [转]文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1

    转自:http://blog.csdn.net/soarheaven/archive/2008/12/08/3474152.aspx 最近项目需要对FTP服务器进行操作,现把实现总结如下: 打算分2篇 ...

  3. 6.3文件传输协议FTP

    6.3文件传输协议FTP

  4. 【计算机网络】应用层 : 总结 ( 网络应用模型 C/S P2P | 域名解析 DNS | 文件传输协议 FTP | 电子邮件 | 万维网 与 HTTP ) ★★★

    文章目录 一.网络应用模型 ★ 二.域名解析过程 ★ 三.FTP 文件传输协议 四.电子邮件★ 五.万维网 和 HTTP 协议★ 一.网络应用模型 ★ 网络应用模型 : ① 客户 / 服务器 模型 ( ...

  5. 【学习笔记】网络层:应用模型、DNS系统、文件传输协议FTP

    文章目录 一. 应用层概述 ① 客户/服务器(C/S)模型 ② P2P模型(对等模型) 二. DNS系统 ① 定义 ② 域名 ③ 域名服务器 ④ 域名解析过程 三. 文件传输协议FTP ① 定义 ② ...

  6. Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1...

    相关文章导航 Sql Server2005 Transact-SQL 新兵器学习总结之-总结 Flex,Fms3相关文章索引 FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统 ...

  7. 《计算机网络》——文件传输协议FTP、简单邮件传送协议SMTP、邮局协议POP3、网际报文存取协议IMAP、万维网和HTTP协议、超文本传输协议HTTP

    文章目录 文件传输协议FTP FTP服务器和用户端 FTP工作原理 简单邮件传送协议SMTP 邮局协议POP3 网际报文存取协议IMAP 万维网和HTTP协议 超文本传输协议HTTP HTTP协议的特 ...

  8. 四十三、文件传输协议FTP、电子邮件、万维网

    文章目录 1.FTP服务器和用户端 2.FTP的工作原理 3.电子邮件 3.1 电子邮件的信息格式 3.2 电子邮件的组成结构 3.3 简单邮件传送协议SMTP 3.4 邮局协议-POP3 3.5 网 ...

  9. 计算机网络 王道考研2021 第六章:应用层 -- 文件传输协议FTP、电子邮件SMTP、POP3

    文章目录 1. 文件传输协议 FTP 1.1 文件传输协议 1.2 文件传输协议 FTP 1.3 FTP的工作原理 1.4 控制连接与数据连接 1.5 补充:FTP传输模式 2. 电子邮件 2.1 电 ...

最新文章

  1. 固态硬盘是什么接口_SATA接口和M.2接口的固态硬盘哪个好?SATA接口和M.2接口的区别...
  2. SpringMVC4集成ehcache
  3. Redis-20Spring缓存机制整合Redis
  4. 160个Crackme025之巧去Neg
  5. 将DevExpress.Utils.ImageCollection变量的image导出
  6. php 常用设计模式demo
  7. 一二三系列之状压DP——Max Correct Set(一)Neko Rules the Catniverse (Large Version)(二)Make It Ascending(三)
  8. MFC开发IM-第二十篇、MFC添加自定义消息
  9. 开源地图编辑器 MarbleMap,支持Cocos2d-x坐标系
  10. 您未被授权查看该页 您不具备使用所提供的凭据查看该目录或页的权限 HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。...
  11. Python音乐播放器-美观-简约-本地
  12. Groovy模板引擎
  13. Mac OS使用技巧之四:修改打开不同格式视频的默认播放器
  14. 网络流量监测IP雷达 1.0
  15. 王给月度BOSS队伍带来什么变化?
  16. 如何使用mapbox选择拾取地图要素
  17. 算法 树7 二叉搜索树的操作集
  18. dhrystone测试结果_测试cpu的简单工具-dhrystone | 学步园
  19. Node-RED中使用JSON数据建立web网站
  20. Java毕设项目线上教学平台(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. JAVA调用微信投放卡券——HTML5线上发券(JS-SDK接口)
  2. linux网络存储nas搭建,树莓派自建 NAS 云盘之——树莓派搭建网络存储盘
  3. 初学小程序之制作电影介绍查询小程序遇到的问题和解决办法
  4. 计算机专业教学情况反馈表格,实用的计算机教学计划四篇
  5. 学校电脑室计算机使用流程,学校电脑室安全管理制度
  6. 我对morgan stanley it的了解
  7. Prolog 列表练习 2
  8. 爱情在伤害面前止步!
  9. 我的世界手机版javaui材质包_PBR基于物理的光照纹理包绘制-教你做我的世界光追材质包(理论篇)...
  10. 职工考勤信息管理系统(中南大学课程设计)