话不多讲,直说重点,先总结后分析,最后图片一定要看
21端口号为控制连接时,服务器端的端口号(固定)
20端口号为数据连接时,服务器端的端口号(要看客户端选被动还是主动模式,主动模式下服务端端口号为20)
客户端的端口号,在控制连接或者数据连接中,总是不固定的(有错请提醒修改)
主被动是在数据连接时对于服务器端来说的
被动PASV:客户端发起连接
主动PORT:服务器端发起连接
上拓扑图
我们知道FTP中有两次TCP三次握手
第一次是控制连接
第二次是数据连接继续上图
控制连接
从图中上面的圈中信息能看出,第一次的控制连接TCP三次握手,
由客户端发起,
客户端端口号为2049,服务器端端口号为21
即客户端端口号不固定,服务器端口号固定
控制连接后进行数据连接模式的协商,以及端口号的协商
此图引用泰克教育的杨诚老师上课笔记
控制连接后,客户端主动发送报文告知服务器,用PASV或者是PORT模式进行数据连接。
若是PASV被动模式,客户端不需要带自己的端口号,服务器收到该报文后发送自己用的端口号Y。协商完端口号后,客户端用自己X+1的端口号与服务器端的Y端口发起数据连接。
若是PORT主动模式,客户端需要带自己的端口号X+1。服务器收到该报文后用客户端X+1的端口号与自己的20端口发起数据连接。
数据连接PASV模式
图中下面的圈中,是客户端采取PASV即被动模式发起数据连接TCP三次握手,
由客户端发起
客户端端口为2050,服务端端口为2049
客户端、服务端端口号都不固定
数据连接PORT模式
图是客户端采取PORT即主动模式发起数据连接TCP三次握手,
由服务端发起
客户端端口为2053,服务端端口为20
客户端不固定,服务端端口固定
数据连接TCP三次握手比较总结