S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx

上传人:b****8 文档编号:12902202 上传时间:2023-06-09 格式:DOCX 页数:34 大小:1.35MB
下载 相关 举报
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第1页
第1页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第2页
第2页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第3页
第3页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第4页
第4页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第5页
第5页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第6页
第6页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第7页
第7页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第8页
第8页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第9页
第9页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第10页
第10页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第11页
第11页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第12页
第12页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第13页
第13页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第14页
第14页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第15页
第15页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第16页
第16页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第17页
第17页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第18页
第18页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第19页
第19页 / 共34页
S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx

《S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx》由会员分享,可在线阅读,更多相关《S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx(34页珍藏版)》请在冰点文库上搜索。

S099计算机网络实验实验六传输层TCP与应用层FTP协议分析.docx

S099计算机网络实验实验六传输层TCP与应用层FTP协议分析

 

 

计算机网络实验

实验指导书

 

实验名称

传输层TCP与应用层FTP协议分析

 

电子信息与通信学院2018年制

 

一、实验目的

1.了解应用层协议与传输层协议的关系

2.掌握TCP连接的建立和释放过程以及其重传机制

3.掌握TCP数据传输中编号与确认的过程

4.理解FTP协议的工作原理和常用命令

二、实验背景

网络体系结构中传输层(transport)层的任务是考虑从主机到主机的分组传递服务转向进程到进程的通信信道的问题。

由于它支持在终端节点上运行的应用程序之间的通信,因此传输层协议有时也称为端到端(end-to-end)协议。

两种因素促成了端到端协议的形成。

从其上层看,需要使用传输层服务的应用层进程有一些特定的需求。

从其下层看,传输层协议赖以运行的下层网络所能提供的服务能力有某些限制。

因此,问题的关键是设计出各种算法,把下层网络低于要求的特性转变为应用程序所需的高级服务。

不同的传输层协议应用这些算法的不同组合。

(一)可靠字节流(TCP)

TCP(TransmissionControlProtocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。

在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。

在因特网协议族(Internetprotocolsuite)中,TCP层是位于IP层之上,应用层之下的中间层。

不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

(二)文件传输协议(FTP)

文件传输协议(FileTransferProtocol,FTP)用于Internet上的控制文件的双向传输。

同时,它也是一个应用程序(Application)。

基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

在FTP的使用当中,用户经常遇到两个概念:

"下载"(Download)和"上传"(Upload)。

"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。

用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

三、实验原理

(一)TCP协议分析

与UDP那种简单的多路分解协议相比,一种更复杂的传输协议提供了可靠的、面向连接的字节流服务。

事实证明,这种协议对于众多的各类应用程序是有用的,因为它使应用程序从数据丢失和失序的顾虑中解脱出来。

因特网的传输控制协议是这类协议中使用最广泛的协议,也是协调性最精确的协议。

TCP能保证可靠的、有序的字节流传输。

它是全双工协议,也就是说每个TCP连接支持一对字节流,每个方向一个字节流。

对这两个字节流中的每个流,它还包含流量控制机制,允许接收方限制发送方在给定时间内发送的数据量。

另外,像UDP一样,TCP支持多路分解机制,允许任何主机上的多个应用程序同时与它们各自的对等实体进行对话。

1.报文段格式

TCP是面向字节的协议,这就是说发送方向一个TCP连接写入字节,接收方从这个TCP连接读出字节。

虽然用“字节流”描述TCP提供给应用进程服务,但是TCP本身并不在因特网上传送单个字节。

实际上,在源主机上的TCP收集发送进程交付的字节,存在缓冲区中,积累到足够的数量,将其一起放入一个大小适宜的分组,再发送给目的主机上的对等实体。

目的主机上的TCP把这个分组的内容存入接收缓冲区,接收进程在空闲时从这个缓冲区读出字节。

由于TCP对等实体之间交换的每个分组都携带一段字节流,所以将这些分组称为报文段(segment)。

每个TCP报文段包含如图3-1所示的首部。

图3-1TCP首部格式

当没有选项和填充字段时,首部长度是20字节。

其中个字段含义如下:

•源端口地址:

长度为16比特,定义了在主机中发送这个报文段的应用程序的端口号,如应用程序为客户端,端口号通常为随机端口,如果应用程序为服务端,端口号通常为熟知端口。

•目的端口地址:

长度为16比特,定义了在主机中接收报文段的应用程序的端口号。

•序号:

长度为32比特,定义了本数据段中封装数据的的第一个字节的序号。

在TCP的数据传输中,传输数据前随机产生一个数字,叫初始序号,初始序号分配给需要传输的第一个字节,此后需要传输的数据在此基础上依次递增,因此需要传输的每个字节都有一个字节序号,TCP报头中序号字段放置的是本数据段中数据部分的第一个字节的序号。

•确认号:

长度为32比特,定义了接收端希望从源端接收的报文段的序号,通常,接收端收到源端发送的数据后,将最后一个字节序号加1,定义为发送数据确认号发送给源端,表示此序号之前的数据均已收到。

•首部长度:

长度为4比特,定义了TCP首部共有多少个4字节,首部长度可以在

20-60字节之间,因此在当前版本中,首部长度的值可以在5-15之间。

•保留:

长度为6比特,保留为今后使用。

•控制字段:

长度为6比特,定义了6种不同的控制位或标识,其中

•URG:

紧急指针有效;

•ACK:

表示确认字段值有效;

•PSH:

推送数据;

•RST:

连接必须复位;

•SYN:

在连接建立是对序号进行同步;

•FIN:

终止连接。

•窗口值:

长度为16比特,定义了对方必须维持的窗口值,可定义的最大窗口值为

65535。

•校验和:

长度为16比特,定义了TCP首部、TCP伪首部、数据进行的校验和。

•紧急指针:

当紧急标志位置1时,标识此数据包含紧急数据,紧急指针用于标识此数据段中的数据部分那些是紧急数据,紧急数据在接收端可以不按照顺序而被优先处理。

•选项:

TCP选项字段用于把附加信息传递给目的端。

2.三次握手

一个TCP连接从客户端(呼叫方)向服务器(被呼叫方)执行一个主动打开操作开始。

假设服务器事先已经执行了被动打开操作,那么双方就交换建立连接的消息。

只有在连接建立阶段完成以后,双方才开始发送数据。

同样,当其中一方发送完数据,就会关闭一个方向的连接,这就使TCP开始一轮终止连接的消息。

注意,尽管连接的建立是一个非对称的活动(一方执行被动打开而另一方执行主动打开),但是连接的断开则是对称的活动(每一方必须独立地关闭连接)。

因此,有可能一方已经完成了关闭连接,意味着它不再发送数据,但是另一方却仍保持双向连接的另一半为打开状态并且继续发送数据。

TCP使用的建立和终止连接的算法称为三次握手(three-wayhandshake)。

我们首先描述基本算法,然后说明TCP如何使用它。

三次握手是指客户端和服务器之间要交换三次消息,如图3-2所示。

图3-2三次握手算法的时间线

算法的思想是双方需要商定一些参数,在打开一个TCP连接的时候,参数就是双方打算为各自的字节流使用的开始序号。

通常,参数可以是每一方希望另一方了解的任何情况。

首先,客户端(主动参与方)发送一个报文段给服务器(被动参与方),声明它将使用的初始序号(Flags=SYN,SequenceNum=x)。

服务器用一个报文段响应,确认客户端的序号(Flags=ACK,Ack=x+1),同时声明自己的初始序号(Flags=SYN,SequenceNum=y)。

也就是说,第二个报文段的Flags字段的SYN和ACK位被置位。

最后,客户端用第三个报文段响应,确认服务器的序号(Flags=ACK,Ack=y+1)。

每一端的确认序号比发送来的序号大1的原因是Acknowledgement字段实际指出“希望接收的下一个序号”,从而隐含地确认前面的所有序号。

前两个报文段都使用计时器,虽然在图中的时间线上没有显示,而且如果没收到所希望的应答,就会重传报文段。

你也许会问,为什么在连接的建立阶段客户端和服务器必须相互交换初始序号?

如果双方只从已知的序号(比如0)开始会比较简单。

实际上,TCP规范要求连接的每一方随机地选择一个初始序号。

这样做的原因是防止同一连接的两个实例过快地重复使用同一个序号,也就是说,仍旧有可能出现以前的连接实例的一个数据段干扰后来的连接实例的情况。

(二)FTP协议分析

FTP(FileTransferProtocal),是文件传输协议的简称。

FTP使得主机间可以共享文件,用于控制Internet上文件的双向传输。

它是一个客户机/服务器系统。

用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。

用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。

当FTP客户端与服务器建立FTP连接时,将与服务器上的两个端口建立联系:

端口20和21。

FTP使用不同的端口号传输不同的内容,会建立不同的TCP连接。

首先,使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的TCP连接用于数据传输。

A.FTP的工作过程

FTP使用2个TCP端口,一个数据端口和一个命令端口(也可叫做控制端口)。

通常来说这两个端口是21——命令端口和20——数据端口,但根据FTP工作在主动模式还是被动模式,21和20端口的使用方法略有不同。

主动模式的FTP是这样的:

客户机从一个任意的非特权端口N(N≥1024),连接到FTP服务器的命令端口,也就是21端口,建立一个控制连接。

这个连接用于传递客户端的命令和服务器端对命令的响应,生存期是整个FTP会话时间。

如果期间需要传输文件和其它数据,例如:

目录列表等,客户端就需要建立数据连接了。

这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,整个FTP期间可能会建立多次。

在主动模式下,建立数据连接时,客户端会开始监听端口N+1,并发送FTP命令“portN+1”到FTP服务器。

接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1),开始进行数据传输。

图3-3展示了一个FTP主动模式的例子,从中可以清楚的看到FTP主动模式下,控制连接和数据连接是如何建立的:

图3-3FTP的主动模式

但是,由于我们访问的FTP服务器大多在外网,和我们所在的内网之间通常会有防火墙进行保护,由外网的FTP服务器主动发起的连接,往往被防火墙所阻拦。

为了解决这个问题,需要使用另外一种FTP模式,叫做被动模式(passivemod)。

在这种模式下,数据连接是由客户程序发起的,和刚才讨论过的主动模式相反。

图3-4展示了一个FTP被动模式的例子,从中可以清楚的看到FTP被动模式下,控制连接和数据连接是如何建立的:

图3-4FTP的被动模式

被动模式下开启一个FTP连接时,客户端打开两个任意的非特权本地端口N和N+1(N≥1024)。

第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。

这样做的结果是服务器会开启一个任意的非特权端口(P≥1024),并发送PORTP命令给客户端。

然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

B.FTP的命令

FTP的控制连接使用类似TELNET协议的方式在主机间交换命令和消息。

FTP控制帧包含FTP的命令和选项。

大多数FTP控制帧是简单的ASCII文本,可以分为FTP命令或FTP消息。

FTP消息是对FTP命令的响应,它由带有解释文本的应答代码构成。

表3-1FTP命令列表

命令

描述

ABOR

中断数据连接程序

ACCT

系统特权帐号

ALLO

为服务器上的文件存储器分配字节

APPE

添加文件到服务器同名文件

CDUP

改变服务器上的父目录

CWD

改变服务器上的工作目录

DELE

删除服务器上的指定文件

HELP

返回指定命令信息

LIST

如果是文件名列出文件信息,如果是目录则列出文件列表

MODE

传输模式(S=流模式,B=块模式,C=压缩模式)

MKD

在服务器上建立指定目录

NLST

列出指定目录内容

NOOP

无动作,除了来自服务器上的承认

PASS

系统登录密码

PASV

请求服务器等待数据连接

PORT

IP地址和两字节的端口ID

PWD

显示当前工作目录

QUIT

从FTP服务器上退出登录

REIN

重新初始化登录状态连接

REST

由特定偏移量重启文件传递

RETR

从服务器上找回(复制)文件

RMD

在服务器上删除指定目录

RNFR

对旧路径重命名

RNTO

对新路径重命名

SITE

由服务器提供的站点特殊参数

SMNT

挂载指定文件结构

STAT

在当前程序或目录上返回信息

STOR

储存(复制)文件到服务器上

STOU

储存文件到服务器上

STRU

数据结构(F=文件,R=记录,P=页面)

SYST

返回服务器使用的操作系统

TYPE

数据类型(A=ASCII,E=EBCDIC,I=binary)

USER>

系统登录的用户名

标准FTP消息如下:

表3-2FTP响应代码列表

响应代码

解释说明

110

新文件指示器上的重启标记

120

服务器准备就绪的时间(分钟数)

125

打开数据连接,开始传输

150

打开连接

200

成功

202

命令没有执行

211

系统状态回复

212

目录状态回复

213

文件状态回复

214

帮助信息回复

215

系统类型回复

220

服务就绪

221

退出网络

225

打开数据连接

226

结束数据连接

227

进入被动模式(IP地址、ID端口)

230

登录因特网

250

文件行为完成

257

路径名建立

331

要求密码

332

要求帐号

350

文件行为暂停

421

服务关闭

425

无法打开数据连接

426

结束连接

450

文件不可用

451

遇到本地错误

452

磁盘空间不足

500

无效命令

501

错误参数

502

命令没有执行

503

错误指令序列

504

无效命令参数

530

未登录网络

532

存储文件需要帐号

550

文件不可用

551

不知道的页类型

552

超过存储分配

553

文件名不允许

C.FTP的使用方法

FTP尽管可以直接被终端用户使用,但其应用主要还是通过程序实现。

用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。

在Windows系统中使用FTP,可以在命令提示符下键入:

ftp192.168.1.10(实验室FTP服务器的IP地址);

用户被提示输入用户名和口令,确认口令输入正确后,用户将获得FTP提示符“ftp>”。

FTP常用的命令:

命令

描述

Binary

将文件传输模式设为二进制方式

Bye

退出,结束远程连接

Case

打开case功能

Close

关闭远程连接

cd

改变远程系统目录名

cdup

进入父目录

debug

设置调试级别

dir

显示路径名

delete

在远程计算机中删除文件

get

将文件从远程系统下载到本地系统

glob

在文件传输时使用通配符

hash

每传输1024字节打印一个“#”

help

打印帮助文件

lcd

改变本地系统路径

ls

打印显示远程主机目录

lpwd

打印本地主机工作路径

mget

将多个文件从远程系统下载到本地系统

mkdir

在远程计算机上创建路径

input

将多个文件上载到远程计算机

prompt

交互式提示

put

将文件上载到远程计算机

pwd

显示当前工作路径

user

登录到远程计算机系统

四、实验内容

(一)TCP协议分析

学习UDP协议的通信过程

学习分析UDP协议报头字段含义

1.实验流程

图4-1实验流程图

2.设定实验环境

配置主机IP和路由器IP地址。

按照实验拓扑连接网络拓扑。

图4-2实验拓扑图

3.查看分析TCP三次握手

1)在PC2中安装FTP服务端程序。

2)在PC1中开启协议分析软件,进行数据包抓包。

3)在PC1中的协议分析软件中利用工具栏中的TCP连接工具对PC2发起连接,如下图所示。

图4-3TCP连接工具

在IP地址中填入PC2地址172.16.1.253,端口填入FTP服务端口21,然后点击连接。

分析PC2中捕获到的三次握手报文。

图4-4三次握手第一次连接

查看上图TCP报文中的报头部分:

•源端口:

1627,由于发起连接的是客户端,因此源端口为TCP程序随机出的短暂端口,在此连接中是1627。

•目的端口:

21,由于是向FTP服务发起连接,因此目的端口为FTP服务的熟知端口,为21。

•序列号:

0XE9999DE15,此序列号为TCP程序随机出的字节编号。

•确认序号:

0X00000000,第一个发出的连接请求中,确认号为0。

•TCP首部长度:

7,TCP首部长度包括TCP报头长度和数据长度,这个字段表示

TCP报头长度,其中20字节为标准TCP报头长度,另有8字节选项字段长度,选项字段中和服务器端协商了最大报文段长度。

•标识位:

SYN位置1,只有TCP连接中三次握手第一次连接的报文段中SYN位置1。

•窗口大小:

65535,默认大小。

•校验和:

0X58F3,校验和是对TCP报头、数据和伪首部进行计算得出的校验和。

•紧急指针:

0,当紧急标识位置1时,此16位字段才有效,说明此时报文段中包含紧急数据,紧急数据到达接受端后可以不按次序优先被接受程序处理。

TCP三次握手过程中第二个报文如下图所示。

图4-5TCP三次握手第二个报文

查看上图中的TCP报头:

•源端口:

21,服务端的源端口为相关服务的熟知端口,FTP服务端口为TCP21。

•目的端口:

1627,为客户端源端口复制过来得到。

•序列号:

0X2346F3FF,为服务端随机计算出的字节序号。

•确认序列号:

0XE9999DE16,确认序列号的功能是对发送端数据进行确认,为发送端序号0XE9999DE15+1得到。

•TCP首部长度:

7,包含20字节标准TCP首部长度和8字节选项长度。

•标志位:

SYN位和ACK位置1,表示此报文为TCP三次握手的第二个报文。

•窗口大小:

65535,为默认大小。

•校验和:

0X419C,TCP校验和为TCP首部、数据和伪首部三部分计算得出校验和。

•紧急指针:

0。

TCP三次握手第三个报文如下图所示。

图4-5TCP三次握手第三个报文

查看TCP三次握手第三个报文首部

•源端口:

1627,同一个连接发送的数据,源端口保持不变。

•目的端口:

21,对同一个服务发送的数据段中的目的端口保持不变。

•序列号:

0XE9999DE,为前一个数据段序列号加1。

•确认序号:

0X2346F3FF,由于此报文是对服务端发回的连接应答消息的确认,因此是上一个报文序号0X2346F3FF加1。

•TCP首部长度:

5,标准TCP首部长度为5*4字节=20字节。

•标识位:

TCP三次握手第三个报文段ACK位置1。

•窗口大小:

65535,默认窗口大小。

•校验和:

0X6E60,为TCP首部、数据、伪首部计算得出的校验和。

•紧急指针:

0,未使用紧急指针。

通过上面的TCP三次握手的报文,可以很清楚的分析出在TCP连接建立时,客户端和服务端所进行的工作。

三次报文的重要区别在于标识位的不同,第一个报文,SYN位置1,第二个报文是对第一个报文的确认,SYN位置1,ACK位置1,第三个报文是确认报文,ACK位置1。

4.查看分析TCP确认机制

1)在PC1中开启协议分析软件进行数据包捕获。

2)在PC1协议分析软件工具栏中的TCP连接工具中连接到PC2的FTP服务器并发送dir命令,如下图所示。

图4-6发送FTP命令

3)

分析捕获到的FTP数据包,如下图所示。

图4-7发送FTP命令

分析上图中TCP数据段首部,可以看到序列号为0X7257BB5D,数据部分长度为5字节。

再查看从PC2会返回的确认数据段,如下图所示。

图4-8TCP确认报文

查看上图中TCP数据段的报头部分,确认序号为0X7257BB62,因为0X7257BB5D+5=0X7257BB62,因此,此确认序号的含义为上一个发送的TCP数据段信息全部处理,发送端可以发送0X7257BB62以后的数据,此即是TCP确认机制的过程。

5.查看TCP连接超时重传过程

1)

查看PC1中ARP缓存记录,确保有PC2中ARP记录,如下图所示。

图4-9查看PC1中ARP缓存记录

2)将PC2从网络中断开,确保PC2不会对PC1发送的TCP连接请求进行回应。

3)在PC1中开启协议分析软件,进行数据包捕获。

4)

在PC1中用工具栏中的TCP连接工具对PC2的FTP服务发起连接,如下图所示。

图4-10TCP连接工具发起连接

5)

在PC1中分析捕获的TCP数据段,如下图所示。

图4-11TCP超时重传数据段

从上图中可以看到,在发出SYN位置1的TCP连接请求没有得到相应后,连接工具又发送了第二个相同的SYN位置1的TCP连接请求,进行重传,确定数据段为重传数据段可以通过TCP首部中的序列号确认,例如本例中,重传数据段中的序列号均为0XA82D33B5。

(二)FTP协议分析

学习FTP协议的工作原理;

学习FTP的使用方法;

了解FTP的常用命令;

了解FTP的工作过程;

理解FTP的主动模式和被动模式。

1.实验流程

图4-12实验流程图

本实验中需要有一台开启FTP服务的主机,并提供一个公共帐号:

welcome,密码:

welcome。

实验拓扑图如图4-13所示:

图4-13实验拓扑图

2.登录FTP服务器,捕获数据报文并进行分析

1)确认FTP服务器工作正常,记录FTP服务器的IP地址:

192.168.1.10/24,用户名:

welcome,密码:

welcome。

2)在实验主机上启动网络协议分析仪,设置过滤条件并进行数据捕获。

在工具栏点击“过滤器”按钮,会弹出“设置

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2