目录
一.实验目的
二.预备知识
三.实验原理
四.实验内容
五.实验步骤
八、总结及心得体会
九、对本实验过程及方法、手段的改进建议
一.实验目的
1、掌握 TCP 协议工作原理
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实验指导书。由于步骤过长,就在此不在赘述。
- 实验数据及结果分析
- 按捕获顺序记录步骤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 的选项信息
标志位中含有SYN的TCP报文段。(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 |
【分析】
- 步骤 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 |
- 步骤 5 和步骤 7 的 FTP 会话交互有哪些不同?解释产生这些差异的原因。
FTP的连接有控制连接和数据连接。在步骤5中数据连接的发起方是服务器(端口20),但是在步骤七当中数据连接的发起方是客户端不是服务端。此外,相应的端口也有所不同。
原因:FTP协议有两种工作方式:PORT方式和PASV方式,即主动与被动。
IE浏览器使用PORT方式,即主动。在这种模式下,客户端使用随机端口号,向服务器的21号端口发起建立控制连接的请求;客户端通过控制连接,告诉服务端,自身开放的数据连接的端口(随机产生的);服务器使用端口20,主动向客户端发起建立数据连接的请求,进行文件传输;最后,文件传输完成,关闭TCP连接。
命令行的FTP传输采用的PASV方式。客户端使用随机端口,向服务器21号端口发起建立连接的请求;服务器通过控制连接,告诉客户端,自身开放的数据连接的端口号(随机产生);客户端使用随机端口号,向服务器端的数据连接端口发起TCP连接,然后开始进行文件传输;最后文件传输完成,关闭TCP连接。
- 实验结论
- 需要用哪些参数来标识一条TCP 连接?
源IP,目的IP,源端口号,目的端口号
- 利用记录的 TCP 报文段信息,在一张时序图中画出步骤 5 中 FTP 客户与FTP 服务器之间的整个 TCP 报文段交互过程。
要求:在图中注明每个 TCP 报文段的编号、类型、序号和确认号,并标注出每一条 TCP 连接的连接建立、数据传输和连接终止阶段。
以下图片中,TCP1连接用蓝色表示,TCP2连接用黑色表示。
下图中,序号和确认号采用的是真实值(十进制)
图3 TCP连接 |
八、总结及心得体会
1.在此次实验当中,学习了如何在虚拟机中配置IP等,以及熟练了对VM下虚拟机的使用。
2.在实验当中,对实验过程中的FTP的控制信道和数据信道有了深刻的认识和了解。掌握了FTP的两种工作方式主动模式和被动模式。
3.在实验过程中,要认真仔细,不要把步骤操作顺序搞反了。
九、对本实验过程及方法、手段的改进建议
1.建议可以增加一下对报文的分析,采用别的软件,不借助wireshark直接对报文进行分析,根据课上学习的相关协议报文的格式,对捕获的数据进行分析。