设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 602|回复: 0
收起左侧

[原创] 详解让无数初学网络的学员郁闷的FTP协议----被动模式

[复制链接]
发表于 2019-9-30 09:09:31 | 显示全部楼层 |阅读模式
        相信有很多第一次接触FTP协议的同学会有一种感觉:扎眼一看FTP是一个很简单的协议,但是细究的话会发现ftp协议也不是很简单。
        那么今天我们就来聊一聊这个让很多初学网络的学员郁闷的FTP协议。首先我们先了解下FTP协议的概念。
        FTP(File Transfer Protocol,文件传输协议),其在互联网上进行文件传输的标准协议,FTP协议使用的TCP协议作为传输协议,从而保证通过FTP协议传输的数据是可靠的。简单理解就是我们使用FTP协议可以在网络上对文件进行上传和下载。
        FTP分为控制连接和数据连接,其在数据连接上有两种不同的数据传输方式:主动方式和被动方式。
        而今天我们主要先讲解FTP的被动模式,这种模式也是我们日常最常用的一种方式。而主动模式我们下次在分享给大家。其实被动模式比主动模式的优势还是很明显的,比如当网络中部署了防火墙,而作为FTP客户端部署在防火墙内部的场景中,那么主动方式就会出问题,主要原因在于客户端的端口是随机的,而这个端口号防火墙是不会记录的,这就导致了防火墙防外不放内,也就是说FTP服务器端和FTP客户端之间的FTP的控制连接是完全没有问题的,但是他们之间的数据连接是无法建立的成功,这就导致数据无法进行上传和下载。此时我们只能使用FTP的被动模式来解决主动模式在部署防火墙的场景所遇到的问题。
        接下来就来详细的讲解下FTP被动模式的工作原理:
        1.控制连接的建立
         1.1.png file:///C:/Users/8888/AppData/Local/Temp/enhtmlclip/Image.png
            实测抓包:
file:///C:/Users/8888/AppData/Local/Temp/enhtmlclip/Image(1).png

       1.2.png

                    
                                            图1
        根据图1所示,在FTP被动模式中,首先FTP客户端和FTP服务器之间要先建立控制连接,此时作为FTP客户端首先主动发起TCP三次握手的连接,源端口是个随机值50081,而目的端口是用于FTP控制连接的知名端口21,经过FTP客户端和FTP服务器端TCP三次握手成功,此时表明控制连接建立成功了。
        当FTP客户端和FTP服务器端的控制连接成功后,此时开始进行FTP数据连接的建立
        2.数据连接的建立
   2.1.png file:///C:/Users/8888/AppData/Local/Temp/enhtmlclip/Image(2).png
        实测抓包:
          2.2.png

file:///C:/Users/8888/AppData/Local/Temp/enhtmlclip/Image(3).png
                                                    图2
        根据图2所示,由于是FTP被动模式,所以FTP客户端会通过已经建立好的控制通道向服务器发送PASV命令,通知服务器端进入被动模式,当FTP服务器端收到了PASV的命令后做出应答,应答的内容有服务器的ip地址10.0.12.1 ,和服务器告诉客户端用于后期建立数据连接时FTP服务器端所使用的端口号:256*192+188=49340
      3.1.png

file:///C:/Users/8888/AppData/Local/Temp/enhtmlclip/Image(4).png
        实测抓包:
          3.2.png

file:///C:/Users/8888/AppData/Local/Temp/enhtmlclip/Image(5).png
                                    图3
        根据图3所示,由于是FTP被动模式,那么此时作为TCP客户端的R2会主动发起数据连接的TCP三次握手,源端口是随机端口号49536,而目的端口是49340.经过三次TCP握手,此时FTP server端和FTP client之间建立的数据连接,此时他们就可以上传下载了。
        如果大家想免费获取实验配置文档和如何使用ensp进行文件的上传下载的话,请加入下面的微信号:
file:///C:/Users/8888/AppData/Local/Temp/enhtmlclip/Image(6).png
             4.png








您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-3-29 17:25 , Processed in 0.068755 second(s), 9 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表