当前位置: 首页 > article >正文

TCP协议分析《实验报告》

一、实验目的

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,我们学会了如何解析和分析网络数据包,这对于理解网络通信过程和排查网络问题非常有帮助。


http://www.kler.cn/a/312020.html

相关文章:

  • CTF攻防世界小白刷题自学笔记13
  • 大模型时代,呼叫中心部门如何自建一套大模型在线客服?
  • 什么时候需要复写hashcode()和compartTo方法
  • 《新智慧》期刊的征稿范围主要包括哪些方面?
  • LabVIEW开发相机与显微镜自动对焦功能
  • 继承和多态(上)
  • 第三方接口-苹果-获取天气接口
  • Flask、Werkzeug 和 WSGI 间的关系
  • 代码随想录算法训练营第三十二天 | 509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯
  • PHP 实现 redis 分布式锁
  • 中间件安全(二)
  • 作品集生成链接或二维码:设计师求职
  • 数据结构和算法之线性结构
  • Java中Integer的缓存池是怎么实现的?
  • 旧系统迁移新框架:FastAPI 的 WSGIMiddleware 让过程变得简单
  • 松材线虫无人机数据集——20731个,已人工标注出来的样本【深度学习样本】
  • 【Leetcode:2848. 与车相交的点 + 模拟计数】
  • Java | Leetcode Java题解之第413题等差数列划分
  • 最新!综合性SCI期刊汇总!《NATURE》位居榜首~
  • 大数据基础架构技术栈一览
  • Redis 的三个并发问题及解决方案(面试题)
  • 【AI大模型】ChatGPT模型原理介绍(下)
  • Redis 执行 Lua,能保证原子性吗?
  • 深入解析 JVM 中静态块、静态属性、构造块与构造方法的执行顺序
  • Vue2项目升级攻略:如何更新package.json中的依赖
  • WPF 中的线程池