TCP协议分析《实验报告》

news2024/11/15 21:32:06

一、实验目的

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.coloradmin.cn/o/2141362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Matlab simulink建模与仿真 第十七章(补充离散库和补充数学库)

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili 一、补充离散库和补充数学库中的模块概览 1、补充离散库 注:每个版本的补充离散库不一定相同,也不是每个版本的库都有如上所有模块。 2、补充数学库 二、离散直接传递函数Ⅱ模块 1、…

OpenCV_图像旋转超详细讲解

图像转置 transpose(src, dst); transpose()可以实现像素下标的x和y轴坐标进行对调:dst(i,j)src(j,i),接口形式 transpose(InputArray src, // 输入图像OutputArray dst, // 输出 ) 图像翻转 flip(src, dst, 1); flip()函数可以实现对图像的水平翻转…

re题(24)BUUFCTF-[WUSTCTF2020]level1

BUUCTF在线评测 (buuoj.cn) 放到ida 这是下载的文本 逻辑比较简单,写个脚本 p[198,232,816,200,1536,300,6144,984,51200,570,92160,1200,565248,756,1474560,800,6291456,1782,65536000] for i in range(1,20):if (i & 1) ! 0 :p[i-1]chr(p[i-1] >> i)…

C++ ——string的模拟实现

目录 前言 浅记 1. reserve(扩容) 2. push_back(尾插) 3. iterator(迭代器) 4. append(尾插一个字符串) 5. insert 5.1 按pos位插入一个字符 5.2 按pos位插入一个字符串 …

C++速通LeetCode简单第18题-杨辉三角(全网唯一递归法)

全网唯一递归法&#xff1a; vector<vector<int>> generate(int numRows) {vector<int> v;vector<vector<int>>vn;if (numRows 1){v.push_back(1);vn.push_back(v);v.clear();return vn;//递归记得return}if (numRows 2){v.push_back(1);vn.p…

FPGA与Matlab图像处理之伽马校正

文章目录 一、什么是伽马校正&#xff1f;二、伽马校正的由来三、Matlab实现伽马校正3.1 matlab代码3.2 matlab结果 四、Verilog实现伽马校正4.1 生成初始化ROM文件4.2 Verilog代码4.3 仿真结果 一、什么是伽马校正&#xff1f; Gamma校正是图像处理中用以调整图像的亮度和对比…

代码随想录冲冲冲 Day47 单调栈Part1

739. 每日温度 初步了解单调栈&#xff0c;根本思想就是如果求的是一个元素右边或左边第一个最大的元素 那么就是递增栈&#xff0c;如果是最小的就是递减栈 首先先放入一个0代表 第一个元素的index 之后开始for loop 当后面的值小于等于这个top时 就要先把index放入st中&a…

Leetcode 找到字符串中所有字母异位词

在 C 中&#xff0c;两个 vector<int> 类型的变量进行 操作时&#xff0c;会逐个比较它们的元素&#xff0c;只有当两个向量的长度相同且每个位置上的元素值都相同时&#xff0c; 操作才会返回 true。 因此&#xff0c;在这道题的代码中&#xff0c;sCount pCount 这一…

Flip动画的实现示例demo

Flip动画的实现示例demo 文章说明核心代码效果展示Flip动画工具类的封装 文章说明 文章主要为了学习flip动画的实现思路&#xff0c;并且采用此示例效果来理解该实现思路的含义 参考渡一前端袁老师的讲解视频 核心代码 采用简单的y轴变化的动画效果为示例 <!DOCTYPE html>…

【K230 实战项目】气象时钟

【CanMV K230 AI视觉】 气象时钟 功能描述&#xff1a;说明HMDI资源3.5寸屏幕 使用方法 为了方便小伙伴们理解&#xff0c;请查看视频 B站连接 功能描述&#xff1a; 天气信息获取&#xff1a;通过连接到互联网&#xff0c;实时获取天气数据&#xff0c;包括温度、湿度、天气状…

【STM32】独立看门狗(IWDG)原理详解及编程实践(上)

本篇文章是对STM32单片机“独立看门狗&#xff08;IWDG&#xff09;”的原理进行讲解。希望我的分享对你有所帮助&#xff01; 目录 一、什么是独立看门狗 &#xff08;一&#xff09;简介 &#xff08;二&#xff09;、独立看门狗的原理 &#xff08;三&#xff09;、具体操…

vulkano (rust) 画一个三角形 (vulkan 渲染窗口初始化 (Linux) 下篇)

上文说到, vulkan 相比 OpenGL (ES), 更加贴近底层硬件, 许多东西需要应用软件手动管理, 所以 vulkan 的初始化过程比较麻烦, 或者说学习曲线比较陡峭. 但是, 这种麻烦是一次性的, 一旦学会了, 就能开始享受 vulkan 的诸多好处啦 ~ 本文以绘制一个三角形为例, 介绍 vulkan 的初…

2024最新版,人大赵鑫老师《大语言模型》新书pdf分享

本书主要面向希望系统学习大语言模型技术的读者&#xff0c;将重点突出核心概念与 算法&#xff0c;并且配以示例与代码&#xff08;伪代码&#xff09;帮助读者理解特定算法的实现逻辑。由于大语言模型技术的快速更迭&#xff0c;本书无法覆盖所有相关内容&#xff0c;旨在梳理…

瓶中水位检测系统源码分享

瓶中水位检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

【数据结构】图的概念和存储结构

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C游记》《进击的C》《Linux迷航》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、图的概念二、图的存储结构2.1 邻接矩阵2.1.1 成员变量与默认成员函数2.1.2 GetIndex2.1.3 AddEdge2.1.4 Pr…

使用 Java 初步搭建简单Spring 项目框架:

一、准备工作 安装 Java Development Kit (JDK)&#xff0c;确保环境变量配置正确。 安装一个集成开发环境&#xff08;IDE&#xff09;&#xff0c;如 IntelliJ IDEA 或 Eclipse。 二、创建项目——具体步骤 在 ider 中创建一个新的 Maven 项目 使用 Maven&#xff1a; 在…

Linux bash脚本本地开发环境(Git Bash)配置

参考资料 VSCode: Windows 下配置 VSCode运行shellVSCodeを使用したシェルスクリプトの開発環境作成 目录 一. 必备VSCode插件二. 插件配置说明2.1 Bash IDE2.2 Code Runner2.3 shell-format 一. 必备VSCode插件 Bash IDE 该插件为 Bash 脚本提供了一些实用的开发工具和功能&…

鸿蒙 ArkUI组件二

ArkUI组件&#xff08;续&#xff09; 文本组件 在HarmonyOS中&#xff0c;Text/Span组件是文本控件中的一个关键部分。Text控件可以用来显示文本内容&#xff0c;而Span只能作为Text组件的子组件显示文本内容。 Text/Span组件的用法非常简单和直观。我们可以通过Text组件来显…

重生归来之挖掘stm32底层知识(1)——寄存器

概念理解 要使用stm32首先要知道什么是引脚和寄存器。 如下图所示&#xff0c;芯片通过这些金属丝与电路板连接&#xff0c;这些金属丝叫做引脚。一般做软件开发是不需要了解芯片是怎么焊的&#xff0c;只要会使用就行。我们平常通过编程来控制这些引脚的输入和输出&#xff0c…

应用软件系统开发实操二:任务需求描述

工信部软件界信息技术服务业2020、2021、2022年度数据&#xff08;目前只有这3年的完整数据&#xff09;&#xff0c;以SQL的格式&#xff0c;存放在实操平台上&#xff0c;通过浏览器下载的方式获取。获取数据后&#xff0c;采用自己选择的技术对数据进行处理。阅读下面的要求…