FTP协议分析论文

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

FTP协议分析邬猛(呼伦贝尔学院计算机科学与技术学院10级软件工程2010121406)摘要:本论文的目的是描述FTP协议的基础理论知识,分析FTP数据传输时所捕获的不同数据包,通过数据包的分析了解FTP的工作原理。FTP(文件传输协议)使得主机间可以共享文件。使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的TCP连接用于数据传输。控制连接使用类似TELNET协议在主机间交换命令和消息。文件传输协议是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上传文件,创建或改变服务器上的目录。关键词:FTP协议分析文件传输1引言早期在Internet上传输文件,并不是一件容易的事,我们知道Internet是一个非常复杂的计算机环境,有PC、工作站、MAC、服务器、大型机等等,而这些计算机可能运行不同的操作系统,有Unix、Dos、Windows、MacOS等等,各种操作系统之间的文件交流,需要建立一个统一的文件传输协议,用来从一个主机把文件复制到另一个主机。虽然从一个系统向另一个系统传送文件看起来直截了当,但还有一些问题必须先解决。例如,两个文件系统可能使用不同的文件名约定,不同的方法表示文件和数据,不同的目录结构。所有这些问题已经由FTP以一种简单巧妙的方法解决了,FTP是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输。本文就介绍了FTP的数据报文结构及其工作原理。2FTP的工作模型FTP采用了和HTTP一样的客户机/服务器方式,通过一系列的请求与响应来完成数据的传输。和Telnet一样,FTP需要提供一种登陆机制,即需要输入用户名和口令,才能进入远程FTP服务器,与其它客户机——服务器模型不同的是,FTP客户机与服务器之间用TCP建立了双重连接,一个是控制连接、一个是数据连接。图2.1给出了FTP的基本模型。客户有三个构件:用户接口、客户控制进程和客户数据传输进程。服务器有两个构件:服务器控制进程和服务器数据传输进程。控制连接是在控制进程之间进行的。数据连接是在数据传送进程间进行的。图2.1FTP基本模型整个会话过程是以控制连接来维持的,控制连接负责传送控制信息,例如用户名和口令,取文件和放文件等命令。当客户端每次请求传送文件是,服务器就与客户端建立一条数据连接,进行数据传送,一旦数据传送完毕,数据连接会话就会被关闭,但控制连接依然存在,客户端可以继续发出命令,直到客户端退出FTP会话,此时双方就关闭控制进程。3FTP的连接传送过程3.1客户端主动连接服务器客户端主动连接服务器,服务器以被动方式打开21号端口,以建立控制连接。因为FTP是基于TCP可靠传输的文件传输协议,所以,要通过TCP的三次握手来建立控制连接。如图3.1、图3.2和图3.3是客户端与服务器用过三次握手建立控制连接的过程。它们采用3937和21号端口发送控制信息。图3.1请求端发送的SYN报文(第一次握手)当服务器收到图3.1的SYN报文后,发回一个如图3.2包含服务器初始序号的SYN报文段作为应答。同时,将确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认。图3.2服务器发回的ACK报文(第二次握手)当客户端收到如图3.2的报文后,客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文进行确认。如图3.3所示报文。图3.3客户端对服务器的确认报文(第三次握手)此时,客户与服务器之间就建立了控制连接,在整个过程中,控制连接是一直打开的。3.2控制连接当客户与服务器之间建立了控制连接以后,双方开始在控制连接上进行建立数据连接前的准备,首先服务器向客户端返回代码为220的服务器准备就绪报文,如图3.4所示,表明服务就绪,服务器准备接受新用户。之后客户端对服务器的报文会送确认消息。图3.4服务器发回代码为220的服务就绪数据包随后,客户端发送一个用户名user命令,如图3.5所示。用户名为anonymous,表明用户为匿名用户,服务器应答,代码为331,表明用户名被接受,要求输入口令,如图3.6所示。同样,客户端回送一个TCP确认消息,然后客户端输入密码,服务器会送一个如图3.7,代码为230的登陆成功报文。图3.5客户端发送的user命令报文图3.6代码为331的用户名正确并要求口令报文图3.7代码为230的登陆成功报文登陆成功后,服务器发送一个命令,如图3.8所示,可以看到,这个命令为EnteringPassiveMode(192,168,8,32,8,82)代码为227。这个,命令包含了两部分,一个部分为服务器的IP地址,即192.168.8.32,另一个部分即为服务器打开数据连接时使用的端口,数据连接端口号为8*256+82=2130。图3.8进入被动模式的数据包当客户端向服务器发送一个如图3.9的LIST请求命令后,就开始数据连接了。3.3数据连接通过上面的控制连接我们可以得知,服务器通过被动打开模式将进行数据传输的临时端口号发送给客户端,通过图3.9中的三个数据包我们可以得知,FTP用于传输数据的连接同样是通过TCP的三次握手建立的,我们每次传送文件,客户端与服务器之间就会建立一条临时的数据连接,用于传输数据。图3.9建立数据连接的三次握手当我们在端口3938与端口2130间的数据连接上传输完数据之后,服务器和客户端通过TCP的4次握手关闭数据连接。数据传输完毕之后,当客户端发送一个如图3.10的QUIT请求命令,服务器发送一个如图3.11的回应报文,告诉客户端断开连接。接着,通过TCP的四次握手,结束整个FTP回话,FTP协议的回话过程就到此结束了。3.4主动模式与被动模式的区别在FTP建立数据连接是,有两种模式,一种主动模式,一种被动模式。我们上面所描述的是被动模式,它与主动模式的区别在于,主动模式时,客户端发送的为PORT命令给服务器端,服务器依据命令中制定的端口与客户端建立数据连接,在被动模式下,客户端发送PASV命令给服务器端,进入被动模式。服务器应答时,包括IP地址和一个用于建立数据连接的端口。而不是使用我们熟知的20号端口,客户端的端口为自己选择的一个端口。4FTP的通信问题我们知道在不同的计算机上运行FTP客户端,我们必须保证客户端和服务器能进行通信,FTP需要解决的是使不同的操作系统、不同的字符集、不同的文件结构以及不同的文件格式得到兼容的问题。在FTP的控制连接上,它使用NVTASCII字符集。通过命令与响应来完成通信。FTP每次只发送一条命令或者响应,每一条都是一个短行,因此我们不必担心它的文件格式或文件结构。在FTP的数据连接上,可以传送的文件类型有:ASCII文件这是传送文本文件的默认格式。每一个字符使用NVTASCII进行编码。EBCDIC文件如果连接的两端使用EBCDIC编码,则可以使用EBCDIC编码传送。图像文件这是传送二进制文件的默认格式,这种文件作为连续的比特流传送而没有任何编码或解释。5FTP的命令及响应5.1命令处理命令由FTP客户控制进程发送的命令形式是ASCII大写字符,后面的变量可以有,也可以没有。我们可以将命令粗略地分为6组:接入命令、文件管理命令、数据格式化命令、端口定义命令、文件传送命令以及杂项命令,如表5.1是常用的接入命令。表5.1常用的接入命令5.2响应每一个FTP命令产生至少一个响应。3位数字的数以及跟随在后面的文本。数字代表定义代码,文本部分定义所需的参数或额外的解释。常见的响应代码如表5.2所示。表5.2常见的响应6FTP的安全性最初设计的FTP协议时,安全性并不是一个很严重的问题。尽管FTP在访问时需要密码,但是密码是以未加密的明文传送的。这就意味着潜在的攻击者可以截获并使用这些密码。数据传送连接也使用明文传送数据,这同样是安全的。要使其安全,可以在FTP应用层和TCP层之间加入安全套接层,这样FTP就有了安全性,称为SSL-FTP。7总结终上所述,FTP是TCP/IP提供的标准机制,它可以建立两条连接,一条控制连接,一条数据连接,用来把文件从一台主机复制到另一台主机。很好的解决了在不同主机、不同操作系统之间文件传送的兼容问题。参考文献[1]BehrouzA.Forouzan.TCP/IP协议族.清华大学出版社,2011[2]徐宇杰.TCP/IP协议深入分析.清华大学出版社……

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功