欢迎来到天天文库
浏览记录
ID:33682485
大小:676.82 KB
页数:7页
时间:2019-02-28
《ftp文件传输协议分析我》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、FTP文件传输协议分析—应用层一、FTP简介:1、FTP文件传送协议(FileTransferProtocol,简称FTP),是一个用于从一台主机到另送文件的协议。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过
2、客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。2、FTP协议的工作原理,数据连接和控制连接,主动模式与被动模式FTP是基于TCP的应用层上的协议,用于文件传输客户端通过发送命令和服务端进行通信,比如客户端发送“USERyan”,表示用户名为yan服务端返回"331Passwordrequ
3、iredforyan.",表示yan这个账户需要密码客户端在请求服务端发送文件或者上传文件时,有主动模式和被动模式的分别对于被动模式(PASV),服务端会给出一个端口号,让客户端去连接。这也是多数FTP客户端的缺省模式。对于主动模式(PORT),客户端必须给出一个端口号,服务端会通过它的20端口来连接客户端给出的端口。如果客户处于路由器之后,那么服务器不能直接连接客户,主动模式就会失效,只能采用被动模式;反之如果服务器处于路由之后,则只能采用主动模式。二、FTP分析实验中主机ip为172.30.14.1
4、70作为服务器,主机ip为172.30.15.63的主机作为客户机,客户端上使用的FTP客户端软件为8uftp。实验图如下:客户机FTP协议服务器Ip:172.30.15.63172.30.14.170建立站点,然后选着模式。例如:1、主动模式(port)的分析:在抓包之前,先建立FTP会话连接到FTP服务器172.30.14.170。从服务器上成功下载了.gif的文件。截图如下:服务器从客户机获取.doc的文件成功。截图如下:抓包分析,截图如下:由这个抓包工具可以知道,服务器的名称为:yan,密码为:
5、yan,172.30.14.170是作为服务器,172.30.15.63是作为客户机。(下面是客户机下载.gif文件的抓包截图)由上图可知:客户机使用暂时的源端口号为:52103服务器使用暂时的源端口号为:21客户机使用port命令从控制链接上,把端口号52103发向服务器。服务器在控制连接上接受端口号52103,并向客户机上的二端口发布一个主动打开52103a、客户端发送一个TCPSYN(TCP同步)包给服务器段众所周知的FTP控制端口21,客户端使用暂时的端口作为它的源端口;b、服务器端发送SYNA
6、CK(同步确认)包给客户端,源端口为21,目的端口为客户端上使用的暂时端口;c、客户端发送一个ACK(确认)包;客户端使用这个连接来发送FTP命令,服务器端使用这个连接来发送FTP应答;d、当用户请求一个列表(List)请求或者发起一个要求发送或者接受文件的请求,客户端软件使用PORT命令,这个命令包含了一个暂时的端口,客户端希望服务器在打开一个数据连接时候使用这个暂时端口;PORT命令也包含了一个IP地址,这个IP地址通常是客户自己的IP地址,而且FTP也支持第三方(third-party)模式,第三
7、方模式是客户端告诉服务器端打开与另台主机的连接;e、服务器端发送一个SYN包给客户端的暂时端口,源端口为20,暂时端口为客户端在PORT命令中发送给服务器端的暂时端口号;f、客户端以源端口为暂时端口,目的端口为20发送一个SYNACK包;g、服务器端发送一个ACK包;h、发送数据的主机以这个连接来发送数据,数据以TCP段(注:segment,第4层的PDU)形式发送(一些命令,如STOR表示客户端要发送数据,RETR表示服务器段发送数据),这些TCP段都需要对方进行ACK确认(注:因为TCP协议是一个面
8、向连接的协议)i、当数据传输完成以后,发送数据的主机以一个FIN命令来结束数据连接,这个FIN命令需要另一台主机以ACK确认,另一台主机也发送一个FIN命令,这个FIN命令同样需要发送数据的主机以ACK确认;j、客户端能在控制连接上发送更多的命令,这可以打开和关闭另外的数据连接;有时候客户端结束后,客户端以FIN命令来关闭一个控制连接,服务器端以ACK包来确认客户端的FIN,服务器同样也发送它的FIN,客户端用ACK来确认。三次握手截图如下
此文档下载收益归作者所有