TCP协议分析 下载本文

实验四 传输层协议分析

一、实验目的

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,同时选择一个