TCP协议分析《实验报告》
在本次TCP协议分析实验中,我深入理解了TCP协议的工作原理和特性,通过实际操作和数据包捕获,对TCP的连接建立、数据传输和连接释放过程有了直观的认识。1.TCP连接建立(三次握手):实验中,我们使用Wireshark工具捕获了TCP连接建立过程中的数据包。从SYN、SYN+ACK到ACK的三次交互,我们看到了TCP如何确保双方都具有正确的序列号和确认号,以保证连接的可靠性。2.数据传输与流量控制
一、实验目的
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,我们学会了如何解析和分析网络数据包,这对于理解网络通信过程和排查网络问题非常有帮助。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)