电子科大 tcpip实验报告三 ftp中的tcp传输服务
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学
实
验
报
告
学生姓名:
学号:
指导教师:
日期:年月日
实验项目名称:
报告评分:教师签字:
一、实验原理
FTP协议是一个用于文件传输的应用层协议,采用客户/服务器模式实现文件传输功能,使用TCP协议提供的面向连接的可靠传输服务。
FTP客户和服务器之间使用2条TCP连接来传输文件:控制连接(TCP端口21)和数据连接(TCP端口20)。
在整个FTP会话交互过程中,控制连接始终处于连接状态;数据连接则在每一次文件传送时使用PORT命令或PASV命令打开,文件传送完毕后关闭。
因此,整个FTP会话中如果传送多个文件,那么数据连接会打开和关闭多次。
TCP协议(RFC 793)是一个面向连接的、可靠的运输层协议,通过连接建立和连接终止这两个过程完成面向连接的传输。
TCP的连接建立通常被称为“三向握手”。
在建立TCP连接之前,服务器程序需要向它的TCP模块发出被动打开请求,表示该服务器已经准备好接受客户的连接。
客户程序则要向它的TCP模块发出主动打开请求,表示该客户需要连接特定的服务器。
然后即可开始建立TCP连接。
以客户端主动连接TCP连接为例,TCP连接建立过程如下:
(1)客户端TCP发送一个SYN报文段。
该报文段包括源端口号、目的端口号、客户的初始序号、客户可接收的TCP报文段数据的最大长度(MSS)等信息。
(2)服务器端TCP收到客户端的SYN报文段后,返回一个SYN和ACK报文段。
该报文段使用ACK标志和确认号字段确认已经收到了客户端的SYN报文段,另外对服务器端的报文段进行初始化。
(3)客户端TCP收到服务器端的SYN和ACK报文段后,发送一个ACK报文段。
该报文段使用ACK标志和确认号字段确认已经收到了服务器端的SYN和ACK报文段。
TCP连接中的任何一方(客户或服务器)都可以关闭连接。
当一方的连接被终止时,另一方还可以继续向对方发送数据。
因此,要关闭双向的TCP连接就需要4个动作。
以客户端主动关闭TCP连接为例,TCP连接终止过程如下:(1)客户端TCP发送一个FIN报文段,宣布它要终止连接。
(2)服务器端TCP收到客户端的FIN报文段后,返回一个ACK报文段,用来确认已收到了客户端的FIN报文段。
(3)服务器端TCP可以在服务器到客户方向上继续发送数据。
当服务器没有更多的数据发送时,就发送一个FIN报文段。
(4)客户端TCP收到服务器端的FIN报文段后,返回一个ACK报文段,用来确认已收到了服务器端的FIN报文段。
二、实验目的
1、掌握TCP协议工作原理
2、掌握TCP的连接建立和连接终止过程
3、了解FTP会话过程中的控制连接和数据连接特点
三、实验内容
实验拓扑中VMware虚拟机PC2和Server分别位于由提供集线器功能的虚拟网卡VMnet1和VMnet2模拟实现的两个以太网Ethernet1和Ethernet2中,这两个以太网对应的IP子网A和子网B分别连在Dynamips软件模拟实现的路由器R1和R2的F0/0接口上。
R1和R2之间通过PPP链路互联。
Server上开启了匿名FTP服务。
实验者在PC2上分别使用ftp命令和IE浏览器连接FTP服务器下载文件,结合Dynamips软件的分组捕获功能以及Wireshark软件的捕获分组查看功能,考察在FTP会话过程中TCP协议的连接建立过程和连接终止过程。
通过分析TCP 连接建立和连接终止过程中所捕获的TCP报文段,掌握TCP报文段首部中的端口地址、序号、确认号和各个码元比特的含义和作用;并通过FTP操作体会网络应用程序间的交互模式——客户/服务器(C/S)模式。
四、实验器材(设备、元器件)
PC计算机一台。
五、实验步骤
1、依次启动VMware Workstation中TCPIP组内的虚拟机PC2和Server。
2、启动Dynamips Server,然后运行,在Dynagen窗口中提示符“=>”
后依次输入以下命令启动路由器R1和R2:
=> start R1
=> start R2
3、在PC2上ping Server的IP地址确保整个实验网络运行正常。
4、在Dynagen窗口中提示符“=>”后输入以下命令捕获子网A中的分组:
=> capture R1 f0/0 cmdftp.cap
5、在PC2的cmd窗口中以命令行的方式启动FTP客户进程登录FTP服务
器,下载一份文本文件tcpip.txt后结束FTP客户进程。
该过程中的操作示意如下:(X.X.X.X表示FTP服务器的IP地址,黑斜体
表示学生输入内容,其它为系统显示信息)
C:\>ftp X.X.X.X
……
User (X.X.X.X:(none)): ftp
……
Password: ftp
……
ftp> get tcpip.txt
……
ftp> quit
221
6、在Dynagen窗口中提示符“=>”后依次输入以下命令重新捕获子网A中
的分组:
=> no capture R1 f0/0
=> capture R1 f0/0 ieftp.cap
7、在PC2上用IE浏览器作为FTP客户机登录同一台FTP服务器,下载完
文本文件tcpip.txt后关闭IE浏览器窗口。
8、在Dynagen窗口中提示符“=>”后输入以下命令停止捕获:
=> no capture R1 f0/0
9、用Wireshark软件查看并分析捕获的分组文件(cmdftp.cap、ieftp.cap)中
的FTP会话分组,查看过滤条件为“ip.addr == 192.168.22.253”(在
Wireshark主窗口界面“过滤工具栏”的“Filter:”域中输入)。
10、实验结束后,按照以下步骤关闭实验软件、上传实验数据、还原实验环
境:
(1)在Dynagen窗口中提示符“=>”后依次输入以下命令关闭Dynagen 窗口,然后再关闭Dynamips Server窗口:
=> stop /all
=> exit
(2)依次关闭PC2和Server,再关闭VMware窗口;
(3)运行所在目录下的“reset.bat”文件。
六、实验数据及结果分析
1、按捕获顺序记录步骤6中子网A上捕获的所有TCP报文段,记录信息如下:
说明:“标志位”=控制字段中置1的标志;
“序号”、“确认号”和“窗口”用十六进制表示。
【分析】
1)步骤6中的FTP客户以及FTP服务器之间建立了几条TCP连接?每条连接中双方的IP地址、TCP端口号和初始序号分别是多少?
答:
根据标志位SYN出现的数量,可以判断建立了2条TCP连接。
分别是:
2)TCP报文段中的窗口值定义的是该报文段源端还是目的端的发送窗口还是接收窗口?
答:
是该报文段目的端的接收窗口。
3)实验中哪些类型的TCP报文段首部中携带有MSS的选项信息?
答:
标志位中含有SYN的TCP报文段,本实验中为SYN和(SYN,ACK)。
2、按捕获顺序记录步骤7中子网A上捕获的所有TCP连接建立、连接终止和连接复位报文段,记录信息如下:
说明:“标志位”=控制字段中置1的标志;
“序号”、“确认号”和“窗口”用十六进制表示。
【分析】
1)步骤7中的FTP客户以及FTP服务器之间建立了几条TCP连接?每条连接中双方的IP地址、TCP端口号和初始序号分别是多少?
答:
根据标志位SYN第一次出现的数量,可以判断FTP客户和FTP服务器之间建立了3条TCP连接。
分别是:
2)步骤6和步骤7的FTP会话交互有哪些不同?解释产生这些差异的原因。
答:
FTP连接有控制连接和数据连接2种,步骤6和步骤7中,FTP控制连接相
同而数据连接不同。
在步骤6中数据连接的发起方是服务器,而步骤7中数据连接的发起方是客户机;另外,步骤6中的FTP服务器端口是熟知端口20,而步骤7中的FTP服务器则不是。
原因是端口定义命令不同。
步骤6中使用PORT命令,客户机选择一个临时端口号,并使用被动打开把它发给服务器,服务器就使用这个端口号和熟知端口20创建主动打开。
步骤7中使用PASV命令,客户要求服务器先选择一个端口号,服务器在该端口进行被动打开,并在响应中发送端口号,客户使用这个端口号发出主动打开。
七、实验结论
1. TCP报文段中的窗口值是该报文目的端的接收窗口,而不是该报文段源端的发送窗口;只有标志位中含有SYN报文段的首部中携带有MSS的选项信息;一条TCP连接由IP地址(源、目的)和端口号唯一标识。
2. FTP有两种端口命令(PORT模式和PASV模式),不同的端口命令将造成不同的FTP会话交互。
3. (要求:在图中注明每个TCP报文段的编号、类型、序号和确认号,并标注出每一条TCP 连接的连接建立、数据传输和连接终止阶段。
)
3. 步骤6的时序交互图:
主机
FTP服务器
192.168.11.2
连接1
传输
连接2
时序图就画在纸质档上了,这里只有部分
八、总结及心得体会
通过实验加深了对FTP协议工作原理的理解,以及FTP控制连接和数据连接的特点和异同。
九、对本实验过程及方法、手段的改进建议
无。