目 录
目 录.................................................................. 1
一、实验概述.............................................................. 3
1.1实验名称.............................................................................................................................. 3
ftp协议还原............................................................................................................................... 3
1.2实验目的.............................................................................................................................. 3
通过网络协议分析工具了解FTP协议;...................................................................................... 3
通过网络协议分析工具了解FTP数据传送和命令传送的方式;................................................... 3
通过编写程序在LINUX下实现FTP协议的抓包,解析还原,.................................................... 3
1.3实验环境.............................................................................................................................. 3
二、实验过程.............................................................. 3
三、实验结果记录.......................................................... 3
四、实验数据分析与总结.................................................... 6
五、存在的问题及进一步工作................................................ 6
一、实验概述
1.1实验名称
ftp协议还原
1.2实验目的
通过网络协议分析工具了解FTP协议;
通过网络协议分析工具了解FTP数据传送和命令传送的方式;
阅读RFC文档,了解FTP协议;
通过编写程序在LINUX下实现FTP协议的抓包,解析还原;
1.3实验环境
1)软件:网络协议分析工具Ethereal,Serv-U;
2)硬件:
3)网络结构:
二、实验过程
1在一台电脑上(IP=192.168.101.57)搭建FTP服务器,并上传一些TXT,DOC文件
2.运行网络协议分析工具,进行捕获数据包;
3.在另一台电脑中(IP=192.168.101.53)登录FTP,并进行下载TXT,DOC文件等操作;
4.停止协议分析工具捕获数据包;
5.观察协议分析工具捕获的数据包;并进行分析;
6.阅读RFC文档,根据文档编写FTP协议分析的程序,在Linux系统下编译运行;
7.在Linux登陆FTP进行一些文件操作;
8.分析编写的程序截获到数据包信息;
三、实验结果记录
图1 网络协议分析工具捕获的数据包
由上图可分析出FTP的响应与RFC文档中的响应命令一致;RFC文档中FTP的响应如下:
110 重新启动标记应答。在这种情况下文本是确定的,它必须是:MARK yyyy=mmmm,其中yyyy是用户进程数据流标记,mmmm是服务器标记。
120 服务在nnn分钟内准备好
125 数据连接已打开,准备传送
150 文件状态良好,打开数据连接
200 命令成功
202 命令未实现
211 系统状态或系统帮助响应
212 目录状态
213 文件状态
214 帮助信息,信息仅对人类用户有用
215 名字系统类型
220 对新用户服务准备好
221 服务关闭控制连接,可以退出登录
225 数据连接打开,无传输正在进行
226 关闭数据连接,请求的文件操作成功
227 进入被动模式 230 用户登录
250 请求的文件操作完成
257 创建"PATHNAME"
331 用户名正确,需要口令
332 登录时需要帐户信息
350 请求的文件操作需要进一步命令
421 不能提供服务,关闭控制连接
425 不能打开数据连接
426 关闭连接,中止传输
450 请求的文件操作未执行
451 中止请求的操作:有本地错误
452 未执行请求的操作:系统存储空间不足
500 格式错误,命令不可识别
501 参数语法错误
502 命令未实现
503 命令顺序错误
图2 网络协议分析工具捕获的FTP协议数据包
由上图可以知道FTP文件内容如果大于FTP一次发送最大数据长度时,文件内容的发送是按批次发送的。
图3 程序捕获的数据内容
四、实验数据分析与总结
通过网络协议分析工具捕获在WINDOWS平台下登录FTP操作的数据和编写程序捕获在LINUX下登录FTP操作的数据对比发现:编程实现捕获FTP数据包,并且打印到命令终端显示,其内容和在WINDOWS平台下登录FTP操作时服务器向客户端发送数据的内容一致,实现了FTP协议的还原,程序能够得到登录FTP并且进行了一些操作的客户端和服务器之间的数据内容,和客户端进行的相应操作;
五、存在的问题及进一步工作
此程序只是初步实现了FTP协议的还原,得到FTP协议的数据;并未进行文本内容关键字的检测,和WODR文档内容的保存,IP封堵等等;这些也是我们要继续研究的内容;
第二篇:文件传输协议FTP服务配置实验
昆明理工大学(计算机网络)实验报告
实验名称 文件传输协议FTP服务配置实验
实验时间 20## 年 5 月 日
专业班级 电信091 姓名
学号
成绩 教师签名
实验目的:
1、 了解FTP服务的体系结构与工作原理
2、 掌握利用Microsoft的IIS实现FTP服务的基本配置
3、 熟悉常见的FTP命令的使用
实验原理:
1、 文件传输协议(FTP)是用于在网络上进行文件传输的一套标准协议,它属于网络协议的应用层。FTP的主要功能是在主机间高速可靠的传输文件。
2、 FTP服务一般运行在20、21两个端口,端口20用于在客户端和服务器之间进行传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。当控制流空闲很长时间后,客户端的防火墙会把其会话置为超时,这样当大量的数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误。
FTP实现的目标:
1) 促进文件的共享(包括计算机程序或者数据)
2) 鼓励间接的使用远程计算机
3) 向用户屏蔽不同主机中各种文件存储系统的细节
4) 可靠和高效的传输数据
3、FTP命令:
.ascii:使用ascii类型传输方式。
.bell:每个命令执行完毕后计算机响铃一次。
.bin:使用二进制文件传输方式。
.bye:退出ftp会话过程。
.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
.cd remote-dir:进入远程主机目录。
.cdup:进入远程主机目录的父目录。
.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。
.close:中断与远程服务器的ftp会话(与open对应)。
.cr:使用asscii方式传输文件时,将回车换行转换为回行。
.delete remote-file:删除远程主机文件。
.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件
.get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。
.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
.hash:每传输1024字节,显示一个hash符号(#)。
.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
.image:设置二进制传输方式(同binary)。
.lcd[dir]:将本地工作目录切换至dir。
.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。
.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
.mdelete[remote-file]:删除远程主机文件。
.mget remote-files:传输多个远程文件。
.mkdir dir-name:在远程主机中建一目录。
.mls remote-file local-file:同nlist,但可指定多个文件名。
.mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。
.modtime file-name:显示远程主机文件的最后修改时间。
.mput local-file:将多个文件传输至远程主机。
.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
.ntrans[inchars[outchars>:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。
.open host[port]:建立指定ftp服务器连接,可指定连接端口。
.passive:进入被动传输方式。
.prompt:设置多个文件传输时的交互提示。
.put local-file[remote-file]:将本地文件local-file传送至远程主机。
.pwd:显示远程主机的当前工作目录。
.quit:同bye,退出ftp会话。
.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
.recv remote-file[local-file]:同get。
.reget remote-file[local-file]:类似于get, 但若local-file存在,则从上次传输中断处续传。
.rhelp[cmd-name]:请求获得远程主机的帮助。
.rename[from][to]:更改远程主机文件名。
.reset:清除回答队列。
.rmdir dir-name:删除远程主机目录。
.send local-file[remote-file]:同put。
.sendport:设置PORT命令的使用。
.size file-name:显示远程主机文件大小,如:site idle 7200。
.status:显示当前ftp状态。
.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。
.sunique:将远程主机文件名存储设置为只一(与runique对应)。
.system:显示远程主机的操作系统类型。
.tenex:将文件传输类型设置为TENEX机的所需的类型。
.tick:设置传输时的字节计数器。
.trace:设置包跟踪。
.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
.?[cmd]:同help.
实验内容:
(一) 服务器配置
1. 单击“开始”,指向“控制面板”,然后单击“添加或删除程序”。
2. 单击“添加/删除 Windows 组件”。
3. 在“组件”列表中,单击“应用程序服务器”,单击“Internet 信息服务 (IIS)”
4. 单击以选中下列复选框 “公用文件,文件传输协议 (FTP) 服务,Internet 信息服务管理器单击“完成。
5. 配置 FTP 服务
(1)启动“Internet 信息服务管理器”或打开 IIS 管理单元。
(2)展开“FTP 站点” ——右击“默认 FTP 站点”,然后单击“属性”。
(3)单击“FTP站点”——分别再写入ftp站点名称newest 和配置IP地址,在FTP
(4)单击“安全帐户”选项卡——单击以选中“允许匿名连接”复选框,单击“确定”
(5) 点击主目录——选择浏览本地目录,并且将读取写入和记录访问项目勾选上,这样客户端就有权限进行上传下载功能。
(二) FTP命令的使用:
1. 与主机192.168.0.73建立连接:输入用户名anonymous密码为空,匿名访问。上传文件main.h路径为c:\到192.168.0.73.发送后会有发送文件的详细信息:1333个字节,用时以及传输速率。执行ls指令显示主机上已经上传的文件并显示收到的文件的、用时以及下载速率。然后试验ftp的各种命令如下:
实验总结:
1、FTP服务器与客户机之间的上传和下载文件的过程:FTP服务器与客户机之间使用TCP作为实现数据通信与交换的协议。在FTP服务器上,只要启动了FTP服务,则总是有一个FTP得守护进程在后台运行以便随时准备对客户端的请求作出相应。当客户需要文件传输服务时,将设法打开一个与FTP服务器时间的控制连接相连,在建立连接的过程中服务器会要求客户端提供合法的登录名和密码,在很多情况下,我们使用匿名登录,即采用“anonymous”为用户名,自己的e-mail地址作为密码。一旦连接被允许就是相当于在客户机与FTP服务器之间打开了一个命令传输的通信连接,所有的与文件管理有关的命令将通过该链接被发送至服务器端执行。使用的TCP的端口号的缺省值为21,并且在该连接在整个FTP会话期间一直存在,每当请求文件传输即要求从服务器复制文件到客户机时,服务器将再形成另一个独立的通信连接,文件到客户机时,服务器将再形成另一个独立的通信连接的协议端口号,缺省情况下在服务器端使用22号TCP端口。