FTP协议分析论文.doc

上传人:飞****9 文档编号:136412753 上传时间:2020-06-28 格式:DOC 页数:10 大小:878KB
返回 下载 相关 举报
FTP协议分析论文.doc_第1页
第1页 / 共10页
FTP协议分析论文.doc_第2页
第2页 / 共10页
FTP协议分析论文.doc_第3页
第3页 / 共10页
FTP协议分析论文.doc_第4页
第4页 / 共10页
FTP协议分析论文.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《FTP协议分析论文.doc》由会员分享,可在线阅读,更多相关《FTP协议分析论文.doc(10页珍藏版)》请在金锄头文库上搜索。

1、 FTP协议分析 邬猛 (呼伦贝尔学院计算机科学与技术学院10级软件工程 2010121406)摘要:本论文的目的是描述FTP协议的基础理论知识,分析FTP数据传输时所捕获的不同数据包,通过数据包的分析了解FTP的工作原理。FTP(文件传输协议)使得主机间可以共享文件。使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。文件传输协议是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出

2、命令来下载文件,上传文件,创建或改变服务器上的目录。关键词:FTP 协议分析 文件传输1 引言早期在Internet上传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC、工作站、MAC、服务器、大型机等等,而这些计算机可能运行不同的操作系统,有Unix、Dos、 Windows、MacOS等等,各种操作系统之间的文件交流,需要建立一个统一的文件传输协议,用来从一个主机把文件复制到另一个主机。虽然从一个系统向另一个系统传送文件看起来直截了当,但还有一些问题必须先解决。例如,两个文件系统可能使用不同的文件名约定,不同的方法表示文件和数据,不同的目录结构。所有

3、这些问题已经由FTP以一种简单巧妙的方法解决了,FTP是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输。本文就介绍了FTP的数据报文结构及其工作原理。2 FTP的工作模型 FTP采用了和HTTP一样的客户机/服务器方式,通过一系列的请求与响应来完成数据的传输。和Telnet一样,FTP需要提供一种登陆机制,即需要输入用户名和口令,才能进入远程FTP服务器,与其它客户机服务器模型不同的是,FTP客户机与服务器之间用TCP建立了双重连接,一个是控制连接、一个是数据连接。图2.1 给出了FTP的基本模型。客户有三个构件:用户接口、客户控制进程和客户数据传输进程。服务器有两个构件:服务

4、器控制进程和服务器数据传输进程。控制连接是在控制进程之间进行的。数据连接是在数据传送进程间进行的。 图2.1 FTP基本模型整个会话过程是以控制连接来维持的,控制连接负责传送控制信息,例如用户名和口令,取文件和放文件等命令。当客户端每次请求传送文件是,服务器就与客户端建立一条数据连接,进行数据传送,一旦数据传送完毕,数据连接会话就会被关闭,但控制连接依然存在,客户端可以继续发出命令,直到客户端退出FTP会话,此时双方就关闭控制进程。3 FTP的连接传送过程3.1 客户端主动连接服务器客户端主动连接服务器,服务器以被动方式打开21号端口,以建立控制连接。因为FTP是基于TCP可靠传输的文件传输协

5、议,所以,要通过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 客户端对服务器的确认报文(第

6、三次握手)此时,客户与服务器之间就建立了控制连接,在整个过程中,控制连接是一直打开的。3.2 控制连接当客户与服务器之间建立了控制连接以后,双方开始在控制连接上进行建立数据连接前的准备,首先服务器向客户端返回代码为220的服务器准备就绪报文,如图3.4所示,表明服务就绪,服务器准备接受新用户。之后客户端对服务器的报文会送确认消息。 图3.4 服务器发回代码为220的服务就绪数据包随后,客户端发送一个用户名user命令,如图3.5所示。用户名为anonymous,表明用户为匿名用户,服务器应答,代码为331,表明用户名被接受,要求输入口令,如图3.6所示。同样,客户端回送一个TCP确认消息,然后

7、客户端输入密码,服务器会送一个如图3.7,代码为230的登陆成功报文。 图3.5 客户端发送的user命令报文 图3.6 代码为331的用户名正确并要求口令报文 图3.7 代码为230的登陆成功报文登陆成功后,服务器发送一个命令,如图3.8所示,可以看到,这个命令为Entering Passive Mode (192,168,8,32,8,82) 代码为227。这个,命令包含了两部分,一个部分为服务器的IP地址,即192.168.8.32,另一个部分即为服务器打开数据连接时使用的端口,数据连接端口号为8*256+82=2130 。 图3.8 进入被动模式的数据包 当客户端向服务器发送一个如图3

8、.9的LIST请求命令后,就开始数据连接了。3.3 数据连接通过上面的控制连接我们可以得知,服务器通过被动打开模式将进行数据传输的临时端口号发送给客户端,通过图3.9中的三个数据包我们可以得知,FTP用于传输数据的连接同样是通过TCP的三次握手建立的,我们每次传送文件,客户端与服务器之间就会建立一条临时的数据连接,用于传输数据。 图3.9 建立数据连接的三次握手当我们在端口3938与端口2130间的数据连接上传输完数据之后,服务器和客户端通过TCP的4次握手关闭数据连接。数据传输完毕之后,当客户端发送一个如图3.10的QUIT请求命令,服务器发送一个如图3.11的回应报文,告诉客户端断开连接。

9、接着,通过TCP 的四次握手,结束整个FTP回话,FTP协议的回话过程就到此结束了。3.4主动模式与被动模式的区别在FTP建立数据连接是,有两种模式,一种主动模式,一种被动模式。我们上面所描述的是被动模式,它与主动模式的区别在于,主动模式时,客户端发送的为PORT命令给服务器端,服务器依据命令中制定的端口与客户端建立数据连接,在被动模式下,客户端发送PASV命令给服务器端,进入被动模式。服务器应答时,包括IP地址和一个用于建立数据连接的端口。而不是使用我们熟知的20号端口,客户端的端口为自己选择的一个端口。4 FTP的通信问题我们知道在不同的计算机上运行FTP客户端,我们必须保证客户端和服务器

10、能进行通信,FTP需要解决的是使不同的操作系统、不同的字符集、不同的文件结构以及不同的文件格式得到兼容的问题。在FTP的控制连接上,它使用NVT ASCII字符集。通过命令与响应来完成通信。FTP每次只发送一条命令或者响应,每一条都是一个短行,因此我们不必担心它的文件格式或文件结构。在FTP的数据连接上,可以传送的文件类型有:ASCII文件 这是传送文本文件的默认格式。每一个字符使用NVT ASCII进行编码。EBCDIC文件 如果连接的两端使用EBCDIC编码,则可以使用EBCDIC编码传送。图像文件 这是传送二进制文件的默认格式,这种文件作为连续的比特流传送而没有任何编码或解释。5 FTP

11、的命令及响应5.1 命令处理命令由FTP客户控制进程发送的命令形式是ASCII大写字符,后面的变量可以有,也可以没有。我们可以将命令粗略地分为6组:接入命令、文件管理命令、数据格式化命令、端口定义命令、文件传送命令以及杂项命令,如表5.1 是常用的接入命令。 表5.1 常用的接入命令 5.2 响应每一个FTP命令产生至少一个响应。3位数字的数以及跟随在后面的文本。数字代表定义代码,文本部分定义所需的参数或额外的解释。常见的响应代码如表5.2所示。 表5.2 常见的响应6 FTP的安全性最初设计的FTP协议时,安全性并不是一个很严重的问题。尽管FTP在访问时需要密码,但是密码是以未加密的明文传送的。这就意味着潜在的攻击者可以截获并使用这些密码。数据传送连接也使用明文传送数据,这同样是安全的。要使其安全,可以在FTP应用层和TCP层之间加入安全套接层,这样FTP就有了安全性,称为SSL-FTP。7 总结终上所述,FTP是TCP/IP提供的标准机制,它可以建立两条连接,一条控制连接,一条数据连接,用来把文件从一台主机复制到另一台主机。很好的解决了在不同主机、不同操作系统之间文件传送的兼容问题。 参考文献1 Behrouz A.Forouzan.TCP/IP协议族.清华大学出版社,20112 徐宇杰.TCP/IP协议深入分析.清华大学出版社

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号