实验四 传输层协议分析
一、实验目的
1、学习3CDaemon FTP服务器的配置和使用,分析TCP报文格式,理解TCP的连接建立、 和连接释放的过程。
2、学习3CDaemon TFTP服务器的配置和使用,分析UDP报文格式,理解TCP协议与UDP协议的区别。
二、实验工具软件3CDaemon软件简介
3CDaemon是3Com公司推出的功能强大的集FTP Server、TFTP Server、Syslog Server 和TFTP Client于一体的集成工具,界面简单,使用方便。
这里主要介绍实验中需要用到的FTP Server功能和TFTP Server功能。 1、FTP Server功能
(1)配置FTP Server功能:选中左窗格功能窗口,打开FTP Server按钮,单击窗格中的 Configure FTP Server按钮,打开3CDaemon Configuration配置窗口,配置FTP Server功能。
这里需要设置的就是“Upload/Download”路径,作为FTP Server的文件夹,其它选项可以使用系统缺省设置。设置完成后,单击确认按钮,设置生效。
(2)在实验中,我们使用3CDaemon系统内置的匿名帐户“anonymous”登陆FTP服务器,
客户端使用微软FTP客户端命令,关于Ftp命令的说明介绍如下。 (3) Ftp命令的说明
FTP的命令格式:ftp[-v][-d][-i][-n][-g][-w:windowsize][主机名/IP地址] 其中:
-v不显示远程服务器的所有响应信息; -n限制ftp的自动登录;
-i在多个文件传输期间关闭交互提示
-d允许调试、显示客户机和服务器之间传递的全部ftp命令; -g不允许使用文件名通配符;
-w:windowsize忽略默认的4096传输缓冲区。
使用FTP命令登录成功远程FTP服务器后进入FTP子环境,在这个子环境下,用户可以使用FTP的内部命令完成相应的文件传输操作。 FTP常用内部命令如下:
open host[port]:建立指定ftp服务器连接,可指定连接端口。
user user-name[password][account]:向远程主机表明身份,需要口令时必须输入。 append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文
件名,则使用本地文件名。
cd remote-dir:进入远程主机目录。 cdup:进入远程主机目录的父目录。 cd[dir]:将本地工作目录切换至dir。
dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件。 get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。
ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。 put local-file[remote-file]:将本地文件local-file传送至远程主机。 mput local-file:将多个文件传输至远程主机。
nlist[remote-dir][local-file]:显示远程主机目录的文件清单,存入本地硬盘local-file。
bye或quit:退出ftp会话过程。 2、TFTP Server功能
(1) TFTP Server功能配置基本同上(FTP erver功能)。
(2)实验中,为了与TFTP服务器连通,可以使用Windows命令行模式下的TFTP客户端命令,命令格式如下:
TFTP[-i]host[GET|PUT]source[destination] 参数说明如下: -i以二进制方式传输; host指定本地或远程主机; GET下载文件; PUT上传文件;
source指定要传输的文件名; destination指定传输的目的路径。
三、实验内容和步骤
仍然采取两人一组实验方式,分别为PC1和PC2. 1、TCP协议分析实验
(1)按照上面3CDaemon软件的介绍方法在PC1上建立FTP服务器;
(2)在PC1和PC2中运行Ethereal,开始截获报文,为了只截获到与我们实验有关的内容,将截获条件设置为对方主机的IP地址,如PC1的截获条件为“host 192.168.1.xx”(注释:PC2的IP地址);
(3)在PC2上打开命令行窗口,执行如下操作: C:\\Documents and Settings\\Administrator>ftp ftp>open
To 192.168.1.yy(注释:PC1的IP地址) Connected to 192.168.1.yy.
220 3Com 3CDaemon FTP Server Version 2.0 User(192.168.1.yy:(none)):anonymous 331 User name ok,need password Password:
230-The response'is not valid.
230-Next time,please use your email address as password. 230 User logged in ftp>quit
221 Service closing control connection C:\\Documents and Settings\\Administrator>
(4)停止截获报文,将截获的结果保存为FTP-学号,按下列要求分析截获的结果;
a)结合本节TCP协议介绍部分的内容,分析TCP连接建立的“三次握手”过程,找到对应的报文,填写表1(传输方向填写PC2-> PC1或PC2<-PC1)。
表1 TCP连接建立报文分析 报文号 传输方向 源端口 目的端口 序号 确认序号 无 1 1 同步位SYN 1 1 0 确认位 ACK 0 1 1 Frame3 4 5 PC2-> 1254 PC1 PC2<-PC1 ftp(21) PC2-> 1254 PC1 ftp(21) 1254 ftp(21) 0 0 1 b)从FTP-学号的报文中的第一个FIN=1的TCP报文开始分析TCP连接释放的“四次握手”过程,填写表2。
表2 TCP连接释放报文分析 报文号 18 19 20 21 传输方向 源端口 目的端口 1254 21 21 1254 序号 230 30 30 231 确认序号 无 231 231 31 终止位 FIN 1 0 1 0 同步位 SYN 0 0 0 0 确认位 ACK 1 1 1 1 PC2<-PC1 21 PC2-> 1254 PC1 PC2<-PC1 1254 PC2<-PC1 21 2、UDP协议分析实验
(1)按照上面3CDaemon TFTP Server软件的介绍方法在PC1上建立TFTP服务器;在根 目录下保存一个用于数据传输的文件(为便于观察,文件不要太大),例如f1.txt。
(2)在PC1和PC2中运行Ethereal,开始截获报文,为了只截获到与我们实验有关的内容,将截获条件设置为对方主机的IP地址,如PC1的截获条件为“host 192.168.1.xx”(注释:PC2的IP地址);
(3)在PC2上打开命令行窗口,接收TFTP服务器的文件,执行如下操作: TFTP –i 192.168.1.yy GET f1.txt(注释:“host 192.168.1.xx”为 PC2的IP地址); (4)停止截获报文,将截获的结果命名为UDP-学号并保存,分析UDP报文结构,
回答如下问题。
a) UDP报文头部有几个字段,绘制UDP报文的结构图。
b) 选择第一个UDP报文,分析其结构,填写表3。
表3 UDP报文分析 IP报文 UDP 报文 源IP地址 目的IP地址 字段名 Source port length checksum 192.168.170 192.168.1.176 字段长度 字段值 1293 69 23 0x9f50 协议 总长度 Udp 43 字段表达信息 Destination port
c) UDP报文与TCP报文有何不同?体会UDP协议和TCP协议的区别。
___________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________
附录:TCP和UDP基本原理 1、 TCP协议
TCP是传输控制协议(Transmission Control Protocal)的缩写,提供面向连接的可靠的传 输服务。在TCP/IP体系中,HTTP、FTP、SMTP等协议都是使用TCP传输方式的。 (1)TCP报文格式
图1 TCP报文段格式
TCP报文分为首部和数据两个部分。如图1所示,TCP报文段首部的前20字节是固定的,后面有4×n字节是可选项。其中:
? 源端口和目的端口:各2字节,用于区分源端和目的端的多个应用程序; ? 序号:4字节,指本报文段所发送的数据的第一字节的序号;
? 确认序号:4字节,是期望下次接收的数据的第一字节的编号,表示该编号以前的数据
已安全接收。
? 数据偏移:4位,指数据开始部分距报文段开始的距离,即报文段首部的长度,以32bit
为单位。
? 标志字段:共有六个标志位:
①紧急位URG=1时,表明该报文要尽快传送,紧急指针启用;
②确认位ACK=1时,表头的确认号才有效;ACK=0,是连接请求报文;
③急迫位PSH=1时,表示请求接收端的TCP将本报文段立即传送到其应用层,而不 是等到整个缓存都填满后才向上传递;
④复位位RST=1时,表明出现了严重差错,必须释放连接,然后再重建连接; ⑤同步位SYN=1时,表明该报文段是一个连接请求或连接响应报文,
⑥终止位FIN=1时,表明要发送的字符串已经发送完毕,并要求释放连接。 ? 窗口:2字节,指该报文段发送者的接收窗口的大小,单位为字节; ? 校验和:2字节,对报文的首部和数据部分进行校验;
? 紧急指针:2字节,指明本报文段中紧急数据的最后一个字节的序号,和紧急位URG
配合使用;
? 选项:长度可变,若该字段长度不够四字节,有填充补齐。 (2)TCP连接的建立
TCP连接的建立采用“三次握手”的方法。
一般情况下,双方连接的建立由其中一方发起。如图2(a)所示:
? 主机A首先向主机B发出连接请求报文段,其首部的SYN同步位为1,同时选择一个