计算机网络协议分析 第15课 FTP

第11章 文件传输协议FTP与TFTP

11.1 FTP的两个链接

FTP的两个链接
Q1:两个链接的名称和端口号是什么?
:客户端的命令首先交给用户命令解释器,并通过控制连接传输给服务器命令接口,这时服务器使用21号端口,客户端使用任意端口(20号或者临时端口)。服务器处理完毕后,把应答返回给客户端。文件传输则通过数据连接完成,此时如果是主动模式(PORT)的话,客户端告诉服务器自己打开的端口,服务器从20号端口向客户端的这个端口传输数据;如果是被动模式(PASV)的话,服务器随机打开一个端口,并告诉客户端,然后客户端类似port地向这个端口发送请求并建立连接

Q2:两个连接分别用来传输什么信息?
:控制连接用于传输命令;数据连接负责传输数据

Q3:FTP Client有哪些?
:1cmd命令行;2浏览器;3专用FTP客户端软件

FTP控制连接

控制连接
传输FTP命令(包括:发送用户名、口令、查询目录命令、传输文件命令等)

FTP数据连接(PORT模式)

PORT模式
FTP服务器从控制连接上收到一个传输文件命令后,使用20端口与FTP客户建立一个数据连接

PORT命令:由FTP客户发送,把用于数据连接的临时端口号告诉服务器

例如:FTP客户通过1173端口向服务器的21号端口发出的PORT命令如下:
port 192,168,1,100,4,150
客户端的IP地址为:192.168.1.100
客户端号:4*256+150=1174

FTP数据连接(PASV模式)

FTP服务器从控制连接上收到一个传输文件命令后,使用临时端口与FTP客户建立一个数据连接
PASV
PASV命令:由FTP客户发送,要求FTP服务器返回一个端口号
PASV响应:由FTP服务器发送,把用于数据连接的临时端口号告诉客户

FTP客户发出PASV命令后收到的响应如下:
Entering Passive Mode 210,34,80,31,10,20

服务器IP:210.34.80.31
服务器端口号:10*256+20=2580

比较PORT和PASV

  • PORT模式
    • 客户发送PORT命令
    • 服务器主动发起数据连接请求
  • PASV模式
    • 客户发送PASV命令
    • 客户主动发起数据连接请求

问:哪个是PORT?哪个是PASV?
问题

11.2 FTP命令

FTP命令

FTP命令的格式:命令+参数

命令说明
USER用户名
PASS密码
PORT主动模式
PASV被动模式
LIST列出当前目录下的文件列表
CWD改变当前目录
STOR存储文件
RETR读出文件
QUIT退出

Q1:FTP命令是谁发送的?
:由客户端于控制连接发送的

Q2:FTP命令在哪条连接上发送的?
:控制连接

Q3:什么是匿名FTP?
:即anonymous匿名登录FTP服务器

WINDOWS中的FTP命令

  • USER username:用户名
  • PASS password:密码
  • LS:请求服务器返回当前目录下的文件列表
  • QUIT:退出登录

在这里插入图片描述

FTP响应

FTP响应的格式:代码+说明文本

代码说明
220服务就绪(控制连接建立)
331用户名OK,需要口令
230用户登录OK
200命令OK
150文件状态OK,数据连接即将打开
226关闭数据连接
221服务关闭(控制连接关闭)

FTP命令和响应全过程

FTP命令全过程

  1. 控制连接建立后,FTP服务器在控制连接上发送220(服务就绪)响应
  2. FTP客户发送USER命令,服务器响应331(用户名OK,需要口令)
  3. FTP客户发送PASS命令,服务器响应230(用户登录OK)
  4. FTP客户发送PORT命令,服务器在端口20与客户建立一条数据连接,响应150(数据连接即将打开)
  5. FTP客户发送LIST命令,服务器在端口20把数据发送给客户,数据传输完毕后,服务器关闭这条数据连接,并响应226(关闭数据连接)
  6. FTP客户发送PORT命令,服务器在端口20与客户建立一条数据连接,响应150(数据连接即将打开)
  7. FTP客户发送RETR命令下载一个文件,打开另一个数据连接来传输这个文件,数据传输完毕后,服务器关闭这条数据连接,并响应226(关闭数据连接)
  8. FTP客户发送QUIT命令请求关闭控制连接,服务器响应221(服务关闭)

11.3 FTP数据传输方式

ASCII传输方式
如果文件包含的简单ASCII码文本,FTP会自动调整文件内容以适应对方计算机存储文件的格式
Response:150 Opening ASCII mode data connection for /bin/ls.

二进制传输模式
如果文件是程序、数据库或压缩文件等,FTP将按原始文件内容传输
Response:150 Opening BINARY mode data connection for doufu.JPG(1667)

思考

  1. 下载两个文件,会打开两个数据连接吗?
    会,每下载一个文件就会打开一个数据连接
  2. 客户发送列出目录命令,服务器发送目录列表时会使用数据连接传输吗?
    会,因为会有一条ASCII的响应
  3. 由谁决定使用PORT模式还是PASV模式
    决定权在FTP客户端。客户发送PORT命令,服务器就会建立主动连接
    浏览器–工具–Internet选项–高级–“使用被动FTP”
  4. PORT模式和PASV模式如何协商端口号?
    PORT模式由客户端主动提出自己的端口;PASV模式由服务器主动提出自己的端口给客户端,客户端再给服务器自己的端口

NAT对FTP的影响

思考:当FTP客户位于内网时PORT模式的有效性

主要见书本第8章Internet地址扩展技术的8.8.4NAT与应用程序间的交互

11.4 简单文件传输协议TFTP

TFTP:基于UDP、69号端口
TFTP定义5种报文:
说明 端口

opcode报文类型说明端口
1Read Request读请求包69
2Write Request写请求包69
3Data数据包1025~5000
4ACK确认包1025~5000
5Error错误包1025~5000

TFTP工作流程

  1. 服务端在UDP69端口监听
  2. 客户端通过UDP发送Write request包给服务端
  3. 服务端收到Write request请求包后,需要发送ACK包给客户端
  4. 客户端发送Data数据给服务端
  5. 服务端接收数据并发送ack包给客户端

下节课为最后一节课,这也是我第一个完结的系列,视情况出一期总复习,有追到现在的同学点赞支持一下哦,Thanks♪(・ω・)ノ

上一课:第十四课 SCTP
下一课:第十六课 HTTP

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值