计算机网络——抓取icmp包

news/2024/11/17 0:51:13/

前言

本博客是博主用于记录计算机网络实验的博客,如果疏忽出现错误,还望各位指正。

抓包

我们是用Wireshark工具来进行抓包的。

​在安装时候一路打勾安装即可,不过最后那个因为是英文,一定要看清,点了立即重启,直接前面的安装白干(实验室)。

安装之后,打开,选择以太网,之后我们老师让去打开命令行窗口CMD使用ping命令,去ping一下旁边人的主机ip。

ping ip

当然,可以首先ipconfig -all查看一下自己机器的ip地址,我这样放出来实验室机器的IP应该没问题吧,狗头保命。

ping之后,我们发现这里面有4次reques和4次reply。实验到这截个图就完事儿了。

​当时做实验时候没太在意,不过现在细想一下,为什么是四次?直接上B站。

一条视频讲清楚什么是ICMP协议-pin_哔哩哔哩_bilibili

这就涉及到一个现在我还没学的东西,不过后面估计博客也会更新。

包结构

还有一个任务,分析包的结构:

1、Frame(整个报文的比特数)

2、Ethernet v2(以太网V2帧)

3、IP包部分(固定20字节)

4、ICMP协议部分         ICMP的报头长8字节,结构如图1所示。

我们一般上网包也差不都是这个结构听老师说

Frame
Ethernet v2(以太网V2帧)
IP包部分(固定20字节)
TCP协议部分
HTTP协议部分

ICMP包为啥发送四次?

ICMP(Internet Control Message Protocol)Internet控制报文协议。

它是TCP/IP协议簇的一个子协议,工作在OSI的网络层,用于在IP主机、路由器之间传递控制消息,向数据通讯中的源主机报告错误。

控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 

ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。 

ICMP可以实现故障隔离和故障恢复。

网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。

网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。

这么说ICMP协议,你可能还不清楚,但是一说到ping,你大概率是听过。

当我们想要确定和目标主机是否联通的时候,我们就可以ping一下目标主机

如果显示是这样的就是可以联通。

ICMP主要作用是帮助管理员检测网络中发生的各种问题,然后根据问题原因实行相应解决方案。

主要分为两个大块,询问报告(ping)以及差错报告(traceroute)

ICMP协议的关键字段

ping

ping的执行过程,四次是这么来的

traceroute

当两台主机不在同一个网段,这时候ping只能验证两台主机是否联通,而不知道中间经历了哪些网关。traceroute就可以帮助我们实现,看看它通过了哪些网关。如果想要了解原理,可以去看那个链接的B站视频up掌芝士zzs的。因为我后面还没学,就不多做介绍啦。


http://www.ppmy.cn/news/1415393.html

相关文章

无线蓝牙耳机佩戴舒适的有哪几款?分享自用款,舒适度5颗星

大家有没有这样的体验,无线蓝牙耳机虽然方便,但戴久了耳朵疼、头顶压得慌?作为一个耳机狂魔,我也曾在这条路上跌跌撞撞,摸索了不少。好在,我找到了两款音质与舒适度并存的耳机,今天就来和大家分享一下。 开放式蓝牙耳机:倍思Eli Sport 1 这款倍思Eli Sport 1,可以说是为运动而…

【Android Studio报错】:* What went wrong:Out of memory. Java heap space

项目场景: 今天,刚打开自己的安卓项目发现报错: 报错: * What went wrong: Out of memory. Java heap space Possible solution: - Check the JVM memory arguments defined for the gradle process in: gradle.properties in…

Docker入门实战教程

文章目录 Docker引擎的安装Docker比vm虚拟机快 Docker常用命令帮助启动类命令镜像命令docker imagesdocker searchdocker pulldocker system dfdocker rmi 容器命令redis前台交互式启动redis后台守护式启动Nginx容器运行ubuntu交互式运行tomcat交互式运行对外暴露访问端口 Dock…

通过 CLI 和引入的方式使用 React:基础入门

使用React 有两种使用方式,主要有以下几个原因: 灵活性和适应性: 引入的方式可以让开发者在现有的 HTML 页面中快速引入 React,无需设置完整的项目环境。这适合小型或原型项目。 CLI 方式则更适合用于构建大型复杂的 React 应用程序,因为它提供了更完整的项目结构和…

WPS二次开发系列:快速了解WPS SDK功能

作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(WPS二次开发QQ群:250325397),摸鱼吹牛嗨起来&#xff01…

贪心算法:排列算式

题目描述 给出n数字,对于这些数字是否存在一种计算顺序,使得计算过程中数字不会超过3也不会小于0? 输入描述: 首行给出一个正整数t,(1≤t≤1000)代表测试数据组数每组测试数据第一行一个正整数n,(1≤n≤500)第二行包含n个以空格分隔的数字…

韦东山FreeRTOS学习笔记————freertos工程创建

这里写目录标题 一、freertos.c程序结构二、创建任务函数1、动态创建2、静态创建 三、任务调用 一、freertos.c程序结构 1、头文件 2、宏定义、typedef定义… 3、全局变量定义 以下是静态任务的相关变量配置,相当于正点原子例程里的TASK1、TASK2…任务配置 以下…

2024年第十四届MathorCup数学应用挑战赛B题思路分享(妈妈杯)

B题 甲骨文智能识别中原始拓片单字自动分割与识别研究 甲骨文是我国目前已知的最早成熟的文字系统,它是一种刻在龟甲或兽骨上的古老文字。甲骨文具有极其重要的研究价值,不仅对中国文明的起源具有重要意义,也对世界文明的研究有着深远影响。在我国政府的大力推动下,甲骨文…