1课程设计(论文)题目名基于wireshark分析FTP协议课程名称网络协议分析课程设计学生姓名学号系、专业信息工程系、网络工程指导教师2014年1月9日2目录1课程设计目的..............................................32课程设计的任务和内容......................................33网络协议分析环境和分析工具................................53.1协议分析环境.........................................53.2网络拓扑图..........................................63.3协议分析工具.........................................64网络协议分析设计及实现过程................................65课程设计总结.............................................13参考文献...................................................13致谢.....................................................1331课程设计目的一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。2课程设计的任务和内容这次我的课程设计帮助我进一步系统掌握《网路协议分析》课程中介绍的FTP协议的测试原理及方法,培养我正确分析实际问题,解决问题的能力。通过安装wireshark软件捕捉包、查看包、过滤包。学习使用它的主菜单File、Edit、View、Go、Capture、Analyse、Statistics、Help、Main、Filter、Packet、List、PacketDetails、Packet、Byte状态栏的各个功能。在PassiveFTP协议的步骤。FTP是TCP/IP协议组中的协议之一,是Internet传递文件最主要的方法。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP采用C/S模式进行通信,但与其他的C/S模式网络通信协议又有一个很大的区别。通常在进行HTTP通信或是TELNET通信的时候,只需要一个端口进行通信。即客户端只需要连接一个端口进行数据通信。如TELNET的默认4端口是23,用户从头到尾都只需使用这个端口。但是FTP通信除了有一个默认端口21之外,还需要其他的端口。其中默认端口(21)主要进行控制连接,进行命令协议和服务器端的响应码的传输;另外一个非标准端口主要进行数据传递,如文件的上载、下载等。至于非标准端口的产生则要根据用户选择的连接模式而定:如果客户选择的是主动模式(PORT),则需要用户提供给服务器一个IP地址和一个非标准端口;而如果用户采用被动模式(PASV),则服务器需要提供给客户端一个IP地址和一个非标准端口。FTP支持两种模式,一种方式叫做Standard(也就是PORT方式,主动方式),一种是Passive(也就是PASV,被动方式)。Standard模式FTP的客户端发送PORT命令到FTP服务器。Passive模式FTP的客户端发送PASV命令道FTPServer。主动方式的FTP工作过程Port模式FTP客户端首先和FTP服务器的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP20端口连接至客户端的指定端口发送数据。FTPServer必须和客户端建立一个新的连接用来传送数据。在第1步中,客户端命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT1027”。然后在第2步中,FTP服务器给客户端的命令端口返回一个“ACK”。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个“ACK”。被动方式的FTP工作过程在被动方式FTP中,命令连接和数据连接都有客户端,这样就可以解决从服务器到客户端的数据端口的进入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P1024),并发送PORT命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。在第1步中,客户端命令端口与FTP服务器的命令端口建立连接,并发送命令“PASV”。然后在第2步中,服务器返回命令“PORT2024”。在第3步5中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个“ACK”响应。被动方式的FTP解决了客户端的许多问题,但同时给服务器端带来了更多的问题。最大的问题是需要允许从任意远程终端到服务器高位端口的连接。第二个问题是客户端有的支持被动模式,有的不支持被动模式,必须考虑如何能支持这些客户端,以及为他们提供解决办法。FTP传输模式FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。ASII传输模式该方式以ASCII编码方式传输数据,适用于传输仅包含英文的命令和参数,或者在不同的平台间传输英文文本文件的场合。在不同的平台间进行文件传输时,FTP通常会自动地调整文件的内容,把文件解释成目标计算机存储的文本文件的格式。二进制传输模式采用该方式进行数据传输时,可以指定采用哪种编码传输命令或文件数据。如果传输的文件不是英文文本文件,或者传输的命令参数中带有中文信息,则应该采用二进制传输方式。3网络协议分析环境和分析工具3.1协议分析环境软件:wireshark硬件:操作系统:Windows7旗舰版处理器:Intel(R)Core(TM)i5-3230MCPU@2.60GHz安装内存(RAM):4.00GB可用磁盘空间:500GB分辨率:1366*76863.2网络拓扑图图3-1图3-23.3协议分析工具装有windows7系统的PC机2台、并且装有Sver-U和wireshark软件。4网络协议分析设计及实现过程首先要在一台PC机上连接网络下载安装一个Sver-U软件,目的是用来创建一个FTP服务器,安装完成后,按如下步骤来创建FTP服务器:(1)填写域的名称和说明性文字,勾选启动域,单击“下一步”;(2)设置协议的端口;(3)设置域的监听,也就是FTP的IP;(4)为域创建账户;(5)设置登陆密码;7(6)设置FTP的根目录,也就是我们登陆FTP时所显示的目录;(7)设置用户对FTP根目录的访问权限;(8)FTP服务器搭建完成,我们可以打开计算机或浏览器在地址栏输入“ftp://服务器的IP”,在弹出的窗口输入用户名和密码即可登陆FTP服务器。图4-1搭建好的FTP服务器页面显示从FTP服务器上下载文件:(1)建立命令通道:客户端172.19.32.224首先经由端口49184与FTP服务器172.19.32.222端口21经过TCP三次握手建立连接,建立连接成功后,FTP服务器返回状态码220,表示服务就绪。登陆过程首先由终端向FTP服务器发送登陆用户名“chentianhao”并等待验证。用户名验证通过后,FTP服务器返回状态码331,表示用户名验证已通过并需要输入密码。终端将登录密码“456789”发送给FTP服务器,FTP服务器验证后返回状态码230,表示用户已经登陆。8图4-2(2)建立数据通道:终端向FTP服务器发送命令“TYPEI”,表示设置文件传输类型为图像,FTP服务器返回状态码200,表示命令执行成功。客户端请求被动模式,FTP服务器通过21端口返回227EnteringPassiveMode(172,19,32,222,234,179),服务器将开放端口54851接受来自客户端的数据连接,客户端则将使用端口51190进行数据连接。然后客户端向FTP服务器发送命令“RETRXXX”,XXX为文件名,表示要下载“XXX”文件。指定要下载的文件后,客户端由端口49187主动去连接FTP服务器端口54851,通过TCP三次握手建立数据连接”FTP-DATA”,用于传输数据。建立数据连接后,FTP服务器通过端口21返回状态码150,表示文件状态正确,正在打开数据连接。图4-3(3)数据传输:通过TCP三次握手建立数据连接时,客户端和服务器协商双方的MSS值(即TCP数据包每次能够传输的最大数据分段)为1460个字节。服务器通过端口60083不断向客户端口51190发送大小为1460字节的TCP数据包,客户端每收到一个或两个数据包后返回ACK确认收到了数据包。9图4-4由于FTP报文并没有特殊的格式,就是把文件中的数据放在TCP报文段的数据区,所以这里选择一个FTP服务器向客户端请求验证用户名的FTP报文进行分析,如图:图4-5物理层:Frame3019:72bytesonwire(576bits),72bytescaptured(576bits)3019号帧,线路72字节,实际捕获72字节ArrivalTime:Jan3,201516:52:40.403938000捕获日期和时间Timedeltafrompreviouscapturedframe:0.000468000seconds此包与前一包时间间隔Timesincereferenceorfirstframe:30.938878000seconds此包与第一个帧的时间间隔FrameNumber:2914帧序号FrameLength:72bytes(576bits)帧长度CaptureLength:72bytes(576bits)捕获帧长度Frameismarked:False此帧是否做了标记:否Protocolsinframe:eth:ip:tcp:ftp帧内封装的协议层次结构10ColoringRuleName:TCP用不同颜色的染色标记的协议名称:TCPColoringRuleString:tcp染色显示规则字符串数据链路层:EthernetII,Src:Dell_95:a7: