概述

FTP底层通过TCP实现。
FTP采用两个TCP连接,一个作为命令通道(端口号一般是21,用于登陆,删除文件,改变目录操作),一个作为数据通道(用于目录列出,上传下载文件)。
以下实验,通过FileZilla Server和TCP工具,实现FTP文件传输。

FileZilla Server环境搭建

下载FileZilla Server并安装。
下载地址:https://download.csdn.net/download/fengweibo112/11501901
配置Server
选择Edit->Setting,设置如下:
增加登陆用户和共享目录,选择Edit->User

登陆测试,在浏览器中输入本机IP,可以看到共享目录下的文件。

使用TCP工具上传和下载FTP服务器上的文件

操作FTP的步骤如下
1.客户端和 FTP 服务器建立 Socket 连接。
2.向服务器发送 USER、PASS 命令登录 FTP 服务器。
3.使用 PASV 命令得到服务器监听的端口号,建立数据连接。
4.使用 RETR/STOR 命令下载/上传文件。
5.在下载完毕后断开数据连接并发送 QUIT 命令退出。

详细步骤如下

(一)输入FTP服务器的IP和命令端口号,即21,进行TCP连接

(二)登陆服务器。(FTP常用的命令见下文,注意发送的命令都需要换行)

(三)设置成被动模式

主动模式:客服端告诉服务器自己数据通道的端口和IP,让服务端来连接,这种方式可能被防火墙拦截。
被动模式:服务端返回数据通道的端口和IP,由客服端连接。下图中的IP是返回内容中的括号内容的前4个数字,端口号是第五个数字乘以256,再加上第六个数字.

(四)TCP连接到数据通道

根据返回的数据通道的IP和端口号,可以重新开启一个TCP连接至FTP的数据通道服务器.

(五)进入工作目录

在命令通道中,发送”CMD /\r\n”命令,进入到根目录下的工作目录.

(六)下载文件

在命令通道中输入”RETR test.c\r\n”,则可以下载FTP服务器中的/test.c文件.在数据通道中,可以看到具体下载下来的文件内容.

(七)上传文件

与下载文件相同,使用” STOR
file.txt\r\n”命令实现.

主要用到的 FTP 命令

FTP 每个命令都有 3 到 4 个字母组成,命令后面跟参数,用空格分开。每个命令都以 "\r\n"结束。

要下载或上传一个文件,首先要登入 FTP 服务器,然后发送命令,最后退出。这个过程中,主要用到的命令有 USER、PASS、SIZE、REST、CWD、RETR、PASV、PORT、QUIT。

USER: 指定用户名。通常是控制连接后第一个发出的命令。“USER
gaoleyi\r\n”: 用户名为gaoleyi 登录。

PASS: 指定用户密码。该命令紧跟 USER 命令后。“PASS gaoleyi\r\n”:密码为 gaoleyi。

SIZE: 从服务器上返回指定文件的大小。“SIZE file.txt\r\n”:如果 file.txt 文件存在,则返回该文件的大小。

CWD: 改变工作目录。如:“CWD dirname\r\n”。

PASV: 让服务器在数据端口监听,进入被动模式。如:“PASV\r\n”。

PORT: 告诉 FTP 服务器客户端监听的端口号,让 FTP 服务器采用主动模式连接客户端。如:“PORT
h1,h2,h3,h4,p1,p2”。

RETR: 下载文件。“RETR file.txt \r\n”:下载文件 file.txt。

STOR: 上传文件。“STOR file.txt\r\n”:上传文件 file.txt。

REST: 该命令并不传送文件,而是略过指定点后的数据。此命令后应该跟其它要求文件传输的 FTP 命令。“REST
100\r\n”:重新指定文件传送的偏移量为
100 字节。

QUIT: 关闭与服务器的连接。

FTP协议解析与实现(通过实验讲述FTP协议)相关推荐

  1. Modbus协议解析--小白一看就懂的协议

    文章目录 提问三连 1.什么是Modbus? 2.Modbus用来干什么? 3.Modbus的内容是什么? 3.1 Modbus-RTU+Modbus-ASCII 3.1.1 Modbus-RTU协议 ...

  2. wireshark协议解析器 源码分析 封装调用

    源码分析 Wireshark启动时,所有解析器进行初始化和注册.要注册的信息包括协议名称.各个字段的信息.过滤用的关键字.要关联的下层协议与端口(handoff)等.在解析过程,每个解析器负责解析自己 ...

  3. LinkTrack UWB定位系统NLink协议解析方法

    LinkTrack UWB简介 LinkTrack UWB是集定位,授时,通信于一体的模块,功能上可以类比北斗卫星定位系统.但是该模块的定位功能和通信功能不同同时使用,取决于模块配置的模式. Link ...

  4. 调用wireshark(二):调用协议解析器

    上文[调用wireshark(一):初次尝试 http://www.cnblogs.com/zzqcn/archive/2013/05/11/3072362.html ]已经介绍了调用wireshar ...

  5. 10分钟带你了解MSTP协议,附加配置MSTP实验

    10分钟带你了解MSTP协议,附加配置MSTP实验 目录 10分钟带你了解MSTP协议,附加配置MSTP实验 一 MSTP协议 [1]STP和RSTP的局限性 [2]关于MSTP [3]MSTP的基本 ...

  6. cdma2000解析_CDMA2000 1x EV-DO 分层协议解析

    [摘要] 本文主要研究CDMA 1x-EVDO 中控制信道.前/反向业务信道.接入信道的分层协议结构,并依照协议采用由低至高逐层分析的方法对控制信道进行解析,通过实验室仪器产生信号验证该解析方法的正确 ...

  7. 计算机网络实验arp协议分析,计算机网络ARP地址协议解析实验报告

    计算机网络ARP地址协议解析实验报告 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 计算机网络实验报告.实验目的:1. 掌握ARP协议 ...

  8. FTP协议解析之Wireshark报文分析

    FTP是客户端-服务器协议,客户端将请求文件,而本地或远程服务器将提供该文件.我们熟知的FTP客户端:WinSCP.WS FTP.FileZilla等都是使用文件传输协议,它是一种标准的Interne ...

  9. ftp协议是一种用于_______的协议_网络安全常见协议解析:TCP、UDP、HTTP、FTP、SMTP等之间的区别...

    了解网络安全行业的都知道,网络安全协议是营造网络安全环境的基础,是构建安全网络的关键技术.常见的网络协议如HTTP协议.TCP/IP协议.FTP协议等. 如果你想进入网安行业,这些协议都是需要重点要学 ...

最新文章

  1. 总结:如何使用redis缓存加索引处理数据库百万级并发
  2. linux 修改时区_【003】一文全面掌握Linux初始化进程(超详细)
  3. C++ vector容器简单解释
  4. 不在JPA 的 persistence.xml 文件里配置Entity class的解决的方法
  5. 致NLP学习者,该跟大佬学习做项目了,附资料
  6. 综合应用能力计算机类考什么用,综合应用能力考什么内容
  7. SAP Cloud for Customer里新的Lead UI对Mashup集成的支持原理
  8. 程序员是一盏省油的灯
  9. 32. 脱壳篇-简单带壳的程序、反调试带壳的程序(堆栈平衡原理找OEP、代码段设置断点)
  10. 人工智能(9)---人工智能的发展趋势是什么?人工智能的行业应用
  11. 常见的Mule Esb下载地址
  12. [Hbase]Hbase常用的优化方法
  13. power query时间函数(思维导图)
  14. CreateProcess并隐藏窗口
  15. 在vscode中打开PDF文件
  16. 做人10大心机:不能太单纯 适度伪装自己
  17. YARN 作业执行流程
  18. 【简约而不简单:神级代码的小秘密】| 第二章 栈
  19. 高防服务器高防ip高防cdn和现在的云防护用哪种好呢
  20. python中拆包解包用法详解

热门文章

  1. Linux服务篇:CentOS 6.9搭建NTP服务器
  2. MTI专题 知识-MTI商城的基本概念
  3. pom文件project报错_pom文件报错是什么原因
  4. Lifecycle 使用及原理解析 一文搞懂
  5. 【Ubuntu】16.04服务器:驱动更新+cuda11+cudnn
  6. Unity IOS11 IOS12 InputFied无法弹出软键盘的解决办法
  7. 【Linux基础】查看某一端口是否开放(1025为例)
  8. unity解决APP在手机发烫问题
  9. 制定steam教育理念明文
  10. uniapp - 弹出层的使用