FTP中的TCP传输服务(电子科技大学TCP/IP实验五)

目录

一.实验目的

二.预备知识

三.实验原理

四.实验内容

五.实验步骤

八、总结及心得体会

九、对本实验过程及方法、手段的改进建议


一.实验目的

1、掌握 TCP 协议工作原理

扫描二维码关注公众号,回复: 17245028 查看本文章

2、掌握 TCP 的连接建立和连接终止过程

3、了解 FTP 会话过程中的控制连接和数据连接特点

二.预备知识

1、TCP 报文段格式

2、TCP 的连接概念和过程

三.实验原理

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 报文段。

四.实验内容

五.实验步骤

实验步骤详见TCP//IP实验指导书。由于步骤过长,就在此不在赘述。

  • 实验数据及结果分析
  1. 按捕获顺序记录步骤5中子网A上捕获的所有TCP报文段,记录信息如下:

IP分组首部

TCP报文段

IP地址

端口

序号

确认号

标志位

窗口

长度(字节)

目的

目的

首部

数据

192.168.11.2

192.168.22.253

1032

21

0xabe19a9b

0x0

SYN

0xfaf0

28

0

192.168.22.253

192.168.11.2

21

1032

0xe1fbe2c2

0xabe19a9c

SYN,ACK

0xfaf0

28

0

192.168.11.2

192.168.22.253

1032

21

0xabe19a9c

0xe1fbe2c3

ACK

0xfaf0

20

0

192.168.22.253

192.168.11.2

21

1032

0xe1fbe2c3

0xabe19a9c

PSH,ACK

0xfaf0

20

27

192.168.11.2

192.168.22.253

1032

21

0xabe19a9c

0xe1fbe2de

ACK

0xfad5

20

0

192.168.11.2

192.168.22.253

1032

21

0xabe19a9c

0xe1fbe2de

PSH,ACK

0xfad5

20

10

192.168.22.253

192.168.11.2

21

1032

0xe1fbe2de

0xabe19aa6

PSH,ACK

0xfae6

20

72

192.168.11.2

192.168.22.253

1032

21

0xabe19aa6

0xe1fbe326

ACK

0xfa8d

20

0

192.168.11.2

192.168.22.253

1032

21

0xabe19aa6

0xe1fbe326

PSH,ACK

0xfa8d

20

10

192.168.22.253

192.168.11.2

21

1032

0xe1fbe326

0xabe19ab0

PSH,ACK

0xfadc

20

31

192.168.11.2

192.168.22.253

1032

21

0xabe19ab0

0xe1fbe345

ACK

0xfa6e

20

0

192.168.11.2

192.168.22.253

1032

21

0xabe19ab0

0xe1fbe345

PSH,ACK

0xfa6e

20

24

192.168.22.253

192.168.11.2

21

1032

0xe1fbe345

0xabe19ac8

PSH,ACK

0xfac4

20

30

192.168.11.2

192.168.22.253

1032

21

0xabe19ac8

0xe1fbe363

PSH,ACK

0xfa50

20

16

192.168.22.253

192.168.11.2

21

1032

0xe1fbe363

0xabe19ad8

PSH,ACK

0xfab4

20

64

192.168.22.253

192.168.11.2

20

1034

0x23fe47db

0x0

SYN

0xfaf0

28

0

192.168.11.2

192.168.22.253

1034

20

0x2238e9ca

0x23fe47dc

SYN,ACK

0xfaf0

28

0

192.168.22.253

192.168.11.2

20

1034

0x23fe47dc

0x2238e9cb

ACK

0xfaf0

20

0

192.168.22.253

192.168.11.2

20

1034

0x23fe47dc

0x2238e9cb

PSH,ACK

0xfaf0

20

5

192.168.22.253

192.168.11.2

20

1034

0x23fe47e1

0x2238e9cb

FIN,ACK

0xfaf0

20

0

192.168.11.2

192.168.22.253

1032

21

0xabe19ad8

0xe1fbe3a3

ACK

0xfa10

20

0

192.168.11.2

192.168.22.253

1034

20

0x2238e9cb

0x23fe47e2

ACK

0xfaeb

20

0

192.168.11.2

192.168.22.253

1034

20

0x2238e9cb

0x23fe47e2

FIN,ACK

0xfaeb

20

0

192.168.22.253

192.168.11.2

21

1032

0xe1fbe3a3

0xabe19ad8

PSH,ACK

0xfab4

20

24

192.168.22.253

192.168.11.2

20

1034

0x23fe47e2

0x2238e9cc

ACK

0xfaf0

20

0

192.168.11.2

192.168.22.253

1032

21

0xabe19ad8

0xe1fbe3bb

ACK

0xf9f8

20

0

192.168.11.2

192.168.22.253

1032

21

0xabe19ad8

0xe1fbe3bb

PSH,ACK

0xf9f8

20

6

192.168.22.253

192.168.11.2

21

1032

0xe1fbe3bb

0xabe19ade

PSH,ACK

0xfaae

20

7

192.168.22.253

192.168.11.2

21

1032

0xe1fbe3c2

0xabe19ade

FIN,ACK

0xfaae

20

0

192.168.11.2

192.168.22.253

1032

21

0xabe19ade

0xe1fbe3c3

ACK

0xf9f1

20

0

192.168.11.2

192.168.22.253

1032

21

0xabe19ade

0xe1fbe3c3

FIN,ACK

0xf9f1

20

0

192.168.22.253

192.168.11.2

21

1032

0xe1fbe3c3

0xabe19adf

ACK

0xfaae

20

0

【分析】

1)步骤 5 中的 FTP 客户以及 FTP 服务器之间建立了几条TCP 连接?每条连接中双方的 IP 地址、TCP 端口号和初始序号分别是多少?

两条;

第一条连接:

IP地址1

端口1

IP地址2

端口2

初始序号

192.168.22.253

21

192.168.11.2

1032

0xabe19a9b

192.168.11.2

1032

192.168.22.253

21

0xe1fbe2c2

第二条连接:

IP地址1

端口1

IP地址2

端口2

初始序号

192.168.22.253

20

192.168.11.2

1034

0x23fe47db

192.168.11.2

1034

192.168.22.253

20

0x2238e9ca

2)TCP 报文段中的窗口值定义的是该报文段源端还是目的端的发送窗口还是接收窗口?

源端的接收窗口。

3)实验中哪些类型的 TCP 报文段首部中携带有 MSS 的选项信息

标志位中含有SYNTCP报文段。(SYN),(SYN,ACK)

2、按捕获顺序记录步骤 7 中子网 A 上捕获的所有 TCP 连接建立、连接终止和连接复位报文段,记录信息如下:

下表三种不同颜色代表了三条不同的TCP连接。

IP分组首部

TCP报文段

IP地址

端口

序号

确认号

标志位

窗口

长度(字节)

目的

目的

首部

数据

192.168.11.2

192.168.22.253

1043

21

0x75e2accc

0x0

SYN

0xfaf0

28

0

192.168.22.253

192.168.11.2

21

1043

0xd501c8cb

0x75e2accd

SYN,ACK

0xfaf0

28

0

192.168.11.2

192.168.22.253

1043

21

0x75e2accd

0xd501c8cc

ACK

0xfaf0

20

0

192.168.11.2

192.168.22.253

1044

1030

0x35861f3d

0x0

SYN

0xfaf0

28

0

192.168.22.253

192.168.11.2

1030

1044

0xec7d8155

0x35861f3e

SYN,ACK

0xfaf0

28

0

192.168.11.2

192.168.22.253

1044

1030

0x35861f3e

0xec7d8156

ACK

0xfaf0

20

0

192.168.22.253

192.168.11.2

1030

1044

0xec7d8188

0x35861f3e

FIN,ACK

0xfaf0

20

0

192.168.11.2

192.168.22.253

1044

1030

0x35861f3e

0xec7d8189

ACK

0xfabe

20

0

192.168.11.2

192.168.22.253

1044

1030

0x35861f3e

0xec7d8189

FIN,ACK

0xfabe

20

0

192.168.22.253

192.168.11.2

1030

1044

0xec7d8189

0x35861f3f

ACK

0xfaf0

20

0

192.168.11.2

192.168.22.253

1045

1031

0xb0c5973e

0x0

SYN

0xfaf0

28

0

192.168.22.253

192.168.11.2

1031

1045

0xb3e83e9a

0xb0c5973f

SYN,ACK

0xfaf0

28

0

192.168.11.2

192.168.22.253

1045

1031

0xb0c5973f

0xb3e83e9b

ACK

0xfaf0

20

0

192.168.22.253

192.168.11.2

1031

1045

0xb3e83ea0

0xb0c5973f

FIN,ACK

0xfaf0

20

0

192.168.11.2

192.168.22.253

1045

1031

0xb0c5973f

0xb3e83ea1

ACK

0xfaeb

20

0

192.168.11.2

192.168.22.253

1045

1031

0xb0c5973f

0xb3e83ea1

FIN,ACK

0xfaeb

20

0

192.168.22.253

192.168.11.2

1031

1045

0xb3e83ea1

0xb0c5973f

ACK

0xfaf0

20

0

192.168.11.2

192.168.22.253

1043

21

0x75e2ad6b

0xd501cbda

FIN,ACK

0xf7e2

20

0

192.168.22.253

192.168.11.2

21

1043

0xd501cbda

0x75e2ad6c

ACK

0xfa52

20

0

192.168.22.253

192.168.11.2

21

1043

0xd501cbda

0x75e2ad6c

FIN,ACK

0xfa52

20

0

192.168.11.2

192.168.22.253

1043

21

0x75e2ad6c

0xd501cbdb

ACK

0xf7e2

20

0

【分析】

  1. 步骤 7 中的 FTP 客户以及 FTP 服务器之间建立了几条TCP 连接?每条连接中双方的 IP 地址、TCP 端口号和初始序号分别是多少?

三条TCP连接

第一条:

IP地址1

端口1

IP地址2

端口2

初始序号

192.168.22.253

21

192.168.11.2

1043

0xd501c8cb

192.168.11.2

1043

192.168.22.253

21

0x75e2accc

第二条:

IP地址1

端口1

IP地址2

端口2

初始序号

192.168.22.253

1030

192.168.11.2

1044

0x35861f3d

192.168.11.2

1044

192.168.22.253

1030

3967648085

第三条:

IP地址1

端口1

IP地址2

端口2

初始序号

192.168.22.253

1031

192.168.11.2

1045

0xb3e83e9a

192.168.11.2

1045

192.168.22.253

1031

0xb0c5973e

  1. 步骤 5 和步骤 7 的 FTP 会话交互有哪些不同?解释产生这些差异的原因。

FTP的连接有控制连接和数据连接。在步骤5中数据连接的发起方是服务器(端口20),但是在步骤七当中数据连接的发起方是客户端不是服务端。此外,相应的端口也有所不同。

原因:FTP协议有两种工作方式:PORT方式和PASV方式,即主动与被动。

IE浏览器使用PORT方式,即主动。在这种模式下,客户端使用随机端口号,向服务器的21号端口发起建立控制连接的请求;客户端通过控制连接,告诉服务端,自身开放的数据连接的端口(随机产生的);服务器使用端口20,主动向客户端发起建立数据连接的请求,进行文件传输;最后,文件传输完成,关闭TCP连接。

命令行的FTP传输采用的PASV方式。客户端使用随机端口,向服务器21号端口发起建立连接的请求;服务器通过控制连接,告诉客户端,自身开放的数据连接的端口号(随机产生);客户端使用随机端口号,向服务器端的数据连接端口发起TCP连接,然后开始进行文件传输;最后文件传输完成,关闭TCP连接。

  • 实验结论
  1. 需要用哪些参数来标识一条TCP 连接?

源IP,目的IP,源端口号,目的端口号

  1. 利用记录的 TCP 报文段信息,在一张时序图中画出步骤 5 中 FTP 客户与FTP 服务器之间的整个 TCP 报文段交互过程。

要求:在图中注明每个 TCP 报文段的编号、类型、序号和确认号,并标注出每一条 TCP 连接的连接建立、数据传输和连接终止阶段。

以下图片中,TCP1连接用蓝色表示,TCP2连接用黑色表示。

下图中,序号和确认号采用的是真实值(十进制)

图3 TCP连接

 

八、总结及心得体会

1.在此次实验当中,学习了如何在虚拟机中配置IP等,以及熟练了对VM下虚拟机的使用。

2.在实验当中,对实验过程中的FTP的控制信道和数据信道有了深刻的认识和了解。掌握了FTP的两种工作方式主动模式和被动模式。 

3.在实验过程中,要认真仔细,不要把步骤操作顺序搞反了。

九、对本实验过程及方法、手段的改进建议

1.建议可以增加一下对报文的分析,采用别的软件,不借助wireshark直接对报文进行分析,根据课上学习的相关协议报文的格式,对捕获的数据进行分析。

猜你喜欢

转载自blog.csdn.net/weixin_53284122/article/details/129223358