一、实验目的

1、理解TCP协议;

2、掌握TCP协议三次握手建立连接和四次挥手释放连接的过程;

3、理解TELNET协议及工作过程;

4、掌握TCP协议分析方法。

二、实验设备和环境

1、硬件设备:PC机或笔记本电脑;

2、软件:H3C Cloud Lab、Wireshark。

三、实验记录

1、实验环境搭建

按照下图在HCL中添加设备,并按图中标记配置各设备IP地址,配置完成所有设备。

1.实验拓扑截图

路由器T_server_Name接口地址配置

2.配置Telnet服务

在T_server_Name上配置Telnet服务,操作步骤如下:

[T_server_Name]local-user Telnet_Name

New local user added.

[T_server_Name-luser-manage-Telnet_Name]service-type telnet

[T_server_Name-luser-manage-Telnet_Name]password simple 123456name

[T_server_Name-luser-manage-Telnet_Name]quit

[T_server_Name]display local-user

[T_server_Name]telnet server enable

创建用户RB_user,并进入用户视图。

创建成功

设置服务类型为telnet

设置用户口令,要求10个字符以上

退出用户视图

查看本地用户信息

启动telnet服务

本地用户信息截图

3.设置抓包接口

在PC终端与路由器之间设置抓包接口,在抓包接口列表中,在抓包接口点击鼠标右键,选择“启动wireshark”,打开接口实时抓包。在wireshark程序窗口中,在“应用显示过滤器”中输入“tcp”+回车,设置抓包结果只显示TCP协议数据包。

2、TCP连接建立

(1)启动telnet客户端

启动终端T_client的命令行,输入命令“telnet 10.0.0.1”并回车,按照屏幕提示依次输入用户名和密码。

Telnet登录成功截图

(2)三次握手报文分析

打开wireshark,找到TCP三次握手报文分别截取如下内容:

三次握手报文列表

第1个报文详情截图(列表中序号为1193的包):

第2个报文详情截图(列表中序号为1194的包):

第3个报文详情截图(列表中序号为1195的包):

三次握手报文总结。在wireshark中,打开菜单“统计”,选择“流量图”菜单项,打开接口流量图,在下端“流类型”中选择“TCP Flows”选项,找到三次握手的流量并截图,如下图所示:

三次握手流量图截图

对照三次握手过程图,参考三次报文截图内容,填写如下表格:

过程

包序号

TCP连接Socket

标志位

序列号seq

确认号ack

源(Socket1

目的(Socket

SYN

ACK

第1次握手报文

1193

10.0.0.2

36303

10.0.0.1

23

1

0

0

0

第2次握手报文

1194

10.0.0.1

36303

10.0.0.2

23

1

1

0

1

第3次握手报文

1195

10.0.0.2

36303

10.0.0.1

23

0

1

1

1

3、TCP连接释放

(1)关闭telnet客户端

在终端T_client的命令行,输入命令“quit”并回车,退出Telnet客户端,系统显示远程连接关闭。如下图所示:

(2)四次挥手报文分析

打开wireshark,找到TCP四次挥手报文分别截取如下内容:

四次挥手报文列表

第1个报文详情截图(列表中序号为1716的包):

第2个报文详情截图(列表中序号为1717的包):

第3个报文详情截图(列表中序号为1718的包):

第4个报文详情截图(列表中序号为1719的包):

三次握手报文总结。在wireshark中,打开菜单“统计”,选择“流量图”菜单项,打开接口流量图,在下端“流类型”中选择“TCP Flows”选项,找到三次握手的流量并截图,如下图所示:

对照四次挥手过程图,参考报文截图内容,填写如下表格:

过程

包序号

TCP连接Socket

标志位

序列号seq

确认号ack

源(Socket1

目的(Socket

SYN

ACK

第1次挥手报文

1716

10.0.0.1

23

10.0.0.2

36303

0

1

524

100

第2次挥手报文

1717

10.0.0.2

36303

10.0.0.1

23

0

1

100

525

第3次挥手报文

1718

10.0.0.2

36303

10.0.0.1

23

0

1

100

525

第4次挥手报文

1719

10.0.0.1

23

10.0.0.2

36303

0

1

525

101

四、实验总结

在本次TCP协议分析实验中,我深入理解了TCP协议的工作原理和特性,通过实际操作和数据包捕获,对TCP的连接建立、数据传输和连接释放过程有了直观的认识。

1.TCP连接建立(三次握手):

   实验中,我们使用Wireshark工具捕获了TCP连接建立过程中的数据包。从SYN、SYN+ACK到ACK的三次交互,我们看到了TCP如何确保双方都具有正确的序列号和确认号,以保证连接的可靠性。

2.数据传输与流量控制:

   在数据传输阶段,我们观察到了TCP的流量控制机制,如滑动窗口的概念。通过分析数据包中的序列号和确认号,我们理解了TCP如何通过调整发送窗口大小来防止数据丢失或拥塞。

3.拥塞控制:

   实验中,我们模拟了网络拥塞的情况,观察到TCP如何通过慢启动、拥塞避免、快速重传和快速恢复等策略来应对网络拥塞,以确保数据的稳定传输。

4.TCP连接释放(四次挥手):

   在连接释放阶段,我们看到了FIN和FIN+ACK的交互,以及最终的ACK确认,确保了双方都确认连接已经关闭,防止了半开连接的问题。

5.实验工具的使用:

   通过使用Wireshark,我们学会了如何解析和分析网络数据包,这对于理解网络通信过程和排查网络问题非常有帮助。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐