FTP协议解析与实现(通过实验讲述FTP协议)

概述

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: 关闭与服务器的连接。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值