详解让无数初学网络的学员郁闷的FTP协议---主动模式

相信有很多第一次接触FTP协议的同学会有一种感觉:扎眼一看FTP是一个很简单的协议,但是细究的话会发现ftp协议也不是很简单。

那么今天我们就来聊一聊这个让很多初学网络的学员郁闷的FTP协议。首先我们先了解下FTP协议的概念。

FTP(File Transfer Protocol,文件传输协议),其在互联网上进行文件传输的标准协议,FTP协议使用的TCP协议作为传输协议,从而保证通过FTP协议传输的数据是可靠的。简单理解就是我们使用FTP协议可以在网络上对文件进行上传和下载。

FTP分为控制连接和数据连接,其在数据连接上有两种不同的数据传输方式:主动方式和被动方式。

而今天我们主要谈谈FTP的主动模式,FTP主动传输模式也称为PORT方式,其也是FTP协议的默认传输方式。众所周知,通过FTP协议进行数据的传输前,需要建立两个连接:一个是控制连接;另外一个是数据连接。其中FTP主动传输方式在这个两个连接的特点如下:

1)FTP client主动发起建立控制连接

2)FTP server主动发起建立数据连接

那么接下来我们通过实验的方式来详细介绍这两种连接的具体内容:

1.建立控制连接

详解让无数初学网络的学员郁闷的FTP协议---主动模式

图:控制连接建立成功

如上图所示:FTP主动模式的控制连接是由FTP client主动发起的,FTP client发起连接的端口号是由系统随机生成的(50253);而FTP server的端口为知名端口号21(该端口号是FTP用于建立控制连接的端口号);经过FTP client和FTP server之间TCP三次握手后此时FTP client和FTP server之间的控制连接就建立成功了。

2.主动连接参数传递

当FTP client和FTP server之间的控制连接建立成功后,接下来是要建立数据连接,因为只有数据连接建立成功后,它们之间才能上传下载文件信息,但是在建立数据连接之前,FTP client必须向FTP server端传递一些参数信息用于确定建立数据连接时FTP client所使用的临时端口号。

详解让无数初学网络的学员郁闷的FTP协议---主动模式

图:PORT参数

如上图所示:FTP client主动通过已经建立好的控制连接向FTP server发送PROT命令,此时FTP client的端口信息仍然是系统随机生成的(49323),FTP server的接口仍然是知名端口号21,而传递的PORT命令参数内容为(12,1,1,2,197,118)。其中12.1.1.2表示的是FTP client,而通过公式197*256+118=50550,这个通过公式算出来的端口号50550,就是用于后面建立数据连接时,FTP client所使用的端口号。

3.建立数据连接

详解让无数初学网络的学员郁闷的FTP协议---主动模式

图:数据连接建立成功

如上图所示:FTP主动模式的数据连接是由FTP server主动发起的,此时FTPserver的端口号为知名端口号20(该端口号是用于FTP数据连接的),而FTP client的端口号就是通过PORT参数计算出来的端口号(50550),经过FTP client和FTP server之间TCP的三次握手,此时FTP的数据连接就建立成功了。

当数据连接建立成功后,此时FTP server和FTP client之间就可以上传下载文件了。

测试:

此时在FTP server建立fuquit的文件,而在FTP client建立china的文件.

详解让无数初学网络的学员郁闷的FTP协议---主动模式

详解让无数初学网络的学员郁闷的FTP协议---主动模式

此时我们让FTP client下载FTP server的funquit,而让FTP client上传china文件给FTP server

详解让无数初学网络的学员郁闷的FTP协议---主动模式

详解让无数初学网络的学员郁闷的FTP协议---主动模式

如果大家想免费获取实验配置文档和如何使用ensp进行文件的上传下载的话,请加入下面的QQ群号:414190249或者QQ扫描群

详解让无数初学网络的学员郁闷的FTP协议---主动模式


分享到:


相關文章: