且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

FTP(一)通讯连接原理

更新时间:2022-09-21 20:55:22

一、FTP服务说明

        ftp(File Transfer Protocol)即文件传输协议,是互联网比较古老的服务之一,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。


二、FTP服务运行模式

        FTP服务一般默认运行在tcp 20(数据传输)和tcp 21(通讯信号建立控制)两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流。

       1、 ftp服务器运行有两种模式,即主动模式与被动模式,如下图所示:

FTP(一)通讯连接原理


图左边ftp处于主动模式中,客户端首先和ftp 21端口建立通讯连接,然后和客户端协商出一个接受数据的端口(客户端随机开放一个端口),协商成功后,ftp服务器从20端口主动推送数据到客户端的这个随机端口;完成数据传输。

图右边ftp处理被动械中,客户端同样是先和ftp21端口建立通讯连接,然后告诉客户端自己的数据端口是20(默认,可以自定义),此时客户端得知服务器处理于被动模式,和被动数据开放的端口后,客户端会用自己随机的端口连接服务器端的数据端口20,来获取数据。服务器牌被动放数据状态;

主动模式和被动模式的区别就在于,数据是主动推送到客户端的,还是被动等待客户端来取。

    2、分析说明

         主动模式由于数据是主动推送到客户端随机协商的端口,又因为一般的企业或客户端访问互联网服务器时存在防火墙(防止外面的访问进来),所以一般ftp处在主动模式时,除非本地且本地防火墙允许,否则ftp会被防火墙阻断,导致无法完成数据传输!因而出现了被动模式,一般防火墙防外面进来而不防里面出去,所以被动模式下,客户端可以出去访问21 20端口,即使数据传输端口20改变,也是固定的,客户端防火墙可以固定调整,而不像主动情况下,客户端接收数据是随机的~


三、ftp安全问题

        ftp协议比较古老,一般默认传输采用的是明文传输数据,一个抓包就可以看出ftp的连接账号和密码,相当不安全,所以一般使用ftp***采用ssl +ftp,提高ftp的安全性。










本文转自 dyc2005 51CTO博客,原文链接:http://blog.51cto.com/dyc2005/1940968,如需转载请自行联系原作者