FTP的工作过程
实验拓扑
主动模式(PORT)的工作过程
由于是二层连接 所以 刚开始 就是直接发送ARP报文 获取对端的·MAC地址 如果是三层设备设备的话 就要首先去获取网关的MAC地址
接下来就是要建立TCP的三次握手 建立可靠的传输连接 可以看到 在后面的端口号 2048指的就是客户端的端口号 而21则代表是服务器的控制端口 21就是FTP的控制端口的端口号
建立好TCP连接之后 需要验证控制通道 服务器主动的向客户端发送FTP的报文 其作用就是 我这边已经准备好了 你可以发送你的用户名了
客户端紧跟着就发送了自己的用户名 User:1
客户端向服务器发送Request报文 请求验证自己的密码
服务器回应 密文无误 可以通信
客户端向服务器发送请求报文 请求 查看目录
服务器回应客户端目录
客户端请求服务器 编码方式选择二进制
服务器 回应没有问题
客户端和服务器 沟通 说 模式选择 主动模式 Port 我自己的地址是 10.1.1.1 端口号是2050 (8,2)8x256+2=2050 代表端口 控制通道到这里结束 去建立传输通道了
接下来 就是传输通道 由于是主动模式 服务器将会以自己的20端口 去向客户端的25050端口发起TCP连接
接下来就是要传输数据 了
由此可见 FTP 需要建立两次TCP连接 也就是说 需要放行两条安全策略 解决办法
接下来 去看被动模式(PASV)的工作过程
首先还是建立了 TCP的连接
然后 去 建立控制端口 做控制的原则
最主要的还是后面这三个报文
客户端通知服务器 说 这次使用被动模式(PASV)
服务器收到之后 就会将自己的随机的端口 发送到客户端 更具图中的信息 可以知道 服务器地址是 10.1.1.2 端口号是 2049
接下来就是客户端去向服务器请求连接 即将发起TCP连接
客户端 主动的向服务器的10.1.1.2 2049端口发起TCP连接 建立数据通道
数通通道建立好之后 去传输数据的过程