1、实验环境
1.1 实验拓扑
2、被动模式
FTP被动方式工作过程:
2.1 客户端配置
2.2 服务器端配置
2.3抓包分析
2.3.1连接建立
-
客户端和服务器端主动发起连接请求,并用一个随机源端口号2057,和目的端口号21进行TCP三次握手建立控制通道的TCP连接。
-
控制通道建立成功后,需要进行身份认证,由于此处我设置的是匿名允许访问所以就是直接通过。
-
控制连接建立(此时我并未上传与下载任何数据),为了测试数据连接正常性,服务器对PASV命令回应,其中包含用于数据传输的临时端口号(8*256+5=2053),源端口号+1
2.3.2 数据下载
建立控制连接:
需要注意的是此时建立控制连接的端口服务器,是使用21,客户端还是使用最开始建立连接使用的2057。
建立数据连接:
需要注意的是这里(10,0,2,1,8**,6**)6与之前出现的5不同,就在刚才一次数据连接上+1,所以此时数据连接传输端口就是(256*8+6=2054),*此时客户端的数据连接端口是在刚才的基础2058上+1(新建一次连接就在上一次连接的基础上+1)
数据传输:
2.3.3 数据上传
整个过程:
由于上个过程已经建立了TCP三次握手,所以这里就不用再进行TCP三次握手。
建立数据连接与数据传输:
断开连接,关闭传输通道:
3、主动模式
FTP主动模式工作过程:
3.1 客户端配置
客户端改变模式,改为主动模式
3.2 服务器配置
与2.2一致
3.3 客户端G0/0/2接口抓包分析
3.3.1 数据下载
- TCP三次握手建立控制通道的TCP连接
- 客户端用PORT命令通告用于数据传输的临时端口号(8*256+17=2056)
- TCP三次握手建立数据通道的TCP连接
- 双方进行数据传输。传输完毕后发送数据的一方主动关闭数据连接
3.3.2 数据上传
因为刚才已经建立了三次握手,这里继续上传就不用建立TCP三次握手。
- 客户端用PORT命令通告用于数据传输的临时端口号(8*256+18=2066)
- TCP三次握手建立数据通道的TCP连接
- 双方进行数据传输。传输完毕后发送数据的一方主动关闭数据连接
3.3.3 登出
送数据的一方主动关闭数据连接
[外链图片转存中…(img-XzeaamY4-1592538793723)]
3.3.3 登出
[外链图片转存中…(img-jfeiQdxj-1592538793726)]