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

【计算机网络】网络层协议 -- ICMP协议

文章目录

  • 1. ICMP协议简介
  • 2. ICMP协议格式
  • 3. ping命令
  • 4. ping命令与端口号没有关系!!!
  • 5. traceroute命令

1. ICMP协议简介

ICMP(Internet Control Message Protocol,控制报文协议),用于在IP主机、路由器直接传递控制消息,是一个TCP/IP协议。

ICMP协议的定位

网络层的最典型的协议是IP协议,但是除了IP协议之外,还有ICMP协议和IGMP协议。

ICMP、IGMP和IP协议虽然都属于网络层的协议,但是ICMP协议和IGMP协议属于IP的上层协议。

  • 也就是说,IP的上层协议不一定就是传输层协议,IP的上层协议可能也属于网络层的协议。
  • 与之类似的,数据链路层当中的ARP协议和RARP协议,这两个协议虽然都属于数据链路层的协议,但它们却是MAC帧的上层协议。

ICMP的主要功能

  1. 确认IP包是否成功到达目标地址。
  2. 通知在发送过程中IP包丢弃的原因。
  3. ICMP只能搭配IPv4使用,如果是IPv6的情况下,需要使用ICMPv6。

举个例子,比如当主机A在向主机B发送数据的过程中,主机B因为某些原因离线了,然后当发送的数据包到达主机B所在局域网的入口路由器时,入口路由器为了获得主机B的MAC地址,于是会向主机B发送ARP请求包。但是此时因为主机B已经离线了,因此路由器再多次发送ARP请求包得不到响应后,就会返回一个ICMP的包给主机A,此时主机A就知道自己发送的数据无法到达主机B。

2. ICMP协议格式

在这里插入图片描述
ICMP分为两类报文:

  1. 一类是通知出错原因的
  2. 一类是用于诊断查询的

3. ping命令

ping命令是基于ICMP实现的,通常用于测试本地主机与另一台主机之间的通信信道是否正常。

例如,使用ping www.baidu.com命令,测试本地主机与百度服务器之间的通信信道是否正常。
在这里插入图片描述

  • 此时ping的是百度的域名,该域名会由DNS解析为IP地址。
  • ping命令不仅能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存时间)。
  • ping命令会先发送一个ICMP Echo Request给对端。
  • 对端接收到之后,会返回一个ICMP Echo Reply给客户端。

在这里插入图片描述

4. ping命令与端口号没有关系!!!

telnet对应的端口号是23,ssh对应的端口号是22,ping命令对应的端口号是多少?

这个问题就是一个圈套!ping命令是基于网络层的ICMP协议,而端口号是属于传输层的内容,因此ICMP协议根本就不关心端口号这样的信息。

5. traceroute命令

traceroute命令也是基于ICMP协议实现的,traceroute命令可以遍历数据包传送到目标主机锁经过的所有路由器。

例如,使用traceroute www.baidu.com命令,遍历数据包到百度服务器所经过的所有路由器。
在这里插入图片描述

原理:

  • traceroute命令底层实际是通过增加其存活实际(TTL)值来实现的。
  • 因为每当数据包经过一个路由器,其TTL值就会减一,当TTL值减为0时对应路由设备就会将数据包丢弃,并传送一个ICMP TTL数据包给发送主机。
  • 因此traceroute命令底层可以发出多个数据包,并给这些数据包设置不同的TTL值,最后该主机就能够得到一连串的数据包路径。

相关文章:

【计算机网络】网络层协议 -- ICMP协议

文章目录 1. ICMP协议简介2. ICMP协议格式3. ping命令4. ping命令与端口号没有关系!!!5. traceroute命令 1. ICMP协议简介 ICMP(Internet Control Message Protocol,控制报文协议),用于在IP主机…...

机器学习---facebook的案例学习

import pandas as pd import matplotlib.pyplot as plt import seaborn as sbn from sklearn.model_selection import train_test_split,GridSearchCV from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier # 使用pandas读…...

OpenMMLab MMDetectionV3.1.0-SAM(环境安装、模型测试、训练以及模型后处理工具)

OpenMMLab Playground 概况 当前通用目标检测的研究方向正在朝着大型多模态模型发展。除了图像输入之外,最近的研究成果还结合了文本模式来提高性能。添加文本模态后,通用检测算法的一些非常好的属性开始出现,例如: 可以利用大量…...

ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::app等之间有什么区别吗?

2023年8月2日,周三晚上 今天我看到了这样的两行代码: std::ofstream file("example.txt", std::ios_base::out);std::ofstream file("example.txt", std::ios::out);这让我产生了几个疑问: 为什么有时候用ios_base::o…...

PostgreSQL 使用SQL

发布主题 设置发布为true 这个语句是针对 PostgreSQL 数据库中的逻辑复制功能中的逻辑发布(Logical Publication)进行设置的。 PostgreSQL 中,逻辑复制是一种基于逻辑日志的复制方法,允许将数据更改从一个数据库实例复制到另一…...

Shell编程基础(十四)文本三剑客(grep)

文本三剑客(grep) 使用场景基本使用返回值参数 使用场景 主要用于查找,过滤文本数据;该数据可以来自文件,也可以来自管道流等等。 grep除了原有的实现,后来还出现了以下扩展实现 egrep:支持扩展…...

Linux root用户执行修改密码命令,提示 Permission denied

问题 linux系统中(ubuntu20),root用户下执行passwd命令,提示 passwd: Permission denied ,如下图: 排查 1.执行 ll /usr/bin/passwd ,查看文件权限是否正确,正常情况是 -rwsr-xr…...

Java面向对象学习第三部分

一、Static修饰符 static是静态的意思,基本概念如下: Static分类: 一般我们分类都是按照是否使用static修饰进行分类。分为静态变量(类变量)、实例变量。 静态变量和实例变量的比较: 比较,…...

python+vue生成条形码码并展示

需求 最近想做一个小工具,大概要实现这样的效果:后端生成条形码后,不保存到服务器,直接返回给前端展示。 大概思路是,通过 python-barcode库 生成条码的字节流,生成字节流后直接编码成base64格式返回给前…...

在线高精地图生成算法调研

1.HDMapNet 整体的网络架构如图所示,最终的Decoder输出三个分支,一个语义分割,一个embedding嵌入分支,一个方向预测。然后通过后处理将这些信息处理成向量化的道路表示。 img2bev的方式之前有IPM,通过假设地面的高度都…...

【干货】商城系统的重要功能特性介绍

电子商务的快速发展,商城系统成为了企业开展线上销售的重要工具。一款功能强大、用户友好的商城系统能够有效提升企业的销售业绩,提供良好的购物体验。下面就商城系统的重要功能特性作一些简单介绍,帮助企业选择合适的系统,打造成…...

MYSQL06高级_为什么使用索引、优缺点、索引的设计、方案、聚簇索引、联合索引、注意事项

文章目录 ①. 为什么使用索引②. 索引及其优缺点③. InnoDb - 索引的设计④. InnoDb中的索引方案⑤. 索引 - 聚簇索引⑥. 索引 - 二级索引⑦. B树索引的注意事项⑧. MyISAM中索引方案 ①. 为什么使用索引 ①. 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比去图书馆…...

LeetCode 130. 被围绕的区域

题目链接:130. 被围绕的区域 题目描述 给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例1: 输入:board [[“…...

python中2等于2.0吗,python中【1:2】

本篇文章给大家谈谈python中2等于2.0吗,以及python中【1:2】,希望对各位有所帮助,不要忘了收藏本站喔。 变量和赋值 Python中的变量不需要声明, 直接定义即可. 会在初始化的时候决定变量的 “类型” 使用 来进行初始化和赋值操作 定义变量时…...

【2023年11月第四版教材】《第2章-信息技术发展(第一部分)》

《第2章-信息技术发展(第一部分)》 章节说明1 计算机软硬件2 计算机网络2.1 网络的作用范围2.2 OSI模型2.3 广域网协议2.4 网络协议2.5 TCP/IP2.6 软件定义网络(SDN)2.7 第五代移动通信技术 章节说明 大部分为新增内容&#xff0…...

【CSS】说说对BFC的理解

目录 一、概念 二、BFC的布局规则 三、设置BFC的常用方式 四、BFC的应用场景 1、解决浮动元素令父元素高度坍塌的问题 2、解决非浮动元素被浮动元素覆盖问题 3、解决外边距垂直方向重合的问题 五、总结 一、概念 我们在页面布局的时候,经常出现以下情况&am…...

ES6学习-Class类

class constructor 构造方法 this 代表实例对象 方法之间不需要逗号分隔,加了会报错。 typeof Point // "function" Point Point.prototype.constructor // true类的数据类型就是函数,类本身就指向构造函数。 类的所有方法都定义在类的pr…...

C语言经典小游戏之扫雷(超详解释+源码)

“少年气,是历尽千帆举重若轻的沉淀,也是乐观淡然笑对生活的豁达!” 今天我们学习一下扫雷游戏怎么用C语言来实现! 扫雷小游戏 1.游戏介绍2.游戏准备3.游戏实现3.1生成菜单3.2游戏的具体实现3.2.1初始化棋盘3.2打印棋盘3.3布置雷…...

算法leetcode|67. 二进制求和(rust重拳出击)

文章目录 67. 二进制求和:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java: 67. 二进制求和: 给你两个二进制字符串 a 和 b &a…...

【ASP.NET MVC】第一个登录页面(8)

一、准备工作 先从网上(站长之家、模板之家,甚至TB)下载一个HTML模板,要求一整套的CSS和必要的JS,比如下图: 登录页面的效果是: 首页: 利用这些模板可以减少前台网页的设计——拿来…...

Rufus安装ubantu系统全过程

清水补充:这次安装的是ubantu22.04版本,准备来给两个电脑装,内存分配是分别是,微星老电脑是一个盘200G,/boot 使用1G,/swap 17G , 、/ 根目录90G,/home 文件目录96G ,实验…...

MySQL局域网远程连接测试教程

MySQL局域网远程连接测试教程1本地服务器安装MySQL服务器,安装MySQL shell, Workbench(非必须)防火墙配置2远程访问用户电脑配置IP配置安装 Workbench客户端1本地服务器 安装MySQL服务器,安装MySQL shell, Workbench(非必须) 点击右下角的Advanced Opt…...

OpenClaw调用百川2-13B量化模型实测:Token消耗降低30%的3个技巧

OpenClaw调用百川2-13B量化模型实测:Token消耗降低30%的3个技巧 1. 为什么选择量化模型 当我第一次在本地部署OpenClaw时,最让我头疼的就是显存问题。我的RTX 3090显卡在运行百川2-13B原版模型时,显存占用经常突破20GB,导致其他…...

3步实现跨次元游戏模组管理:XXMI启动器的多游戏统一解决方案

3步实现跨次元游戏模组管理:XXMI启动器的多游戏统一解决方案 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 还在为《原神》《崩坏:星穹铁道》等多款二次…...

OpenClaw+Qwen3-VL:30B:学术论文图表解析助手

OpenClawQwen3-VL:30B:学术论文图表解析助手 1. 为什么需要论文图表解析助手 作为一名经常需要阅读大量文献的科研工作者,我深刻体会到处理论文图表的痛苦。传统的工作流程通常是:下载PDF论文→手动截图→用OCR工具识别→复制数据到Excel→…...

ESP32-S3 OV2640摄像头从AP模式到STA模式的保姆级切换教程(附完整代码)

ESP32-S3 OV2640摄像头从AP模式到STA模式的保姆级切换教程(附完整代码) 当你第一次拿到ESP32-S3开发板和OV2640摄像头模块时,可能会被官方例程中的AP(热点)模式所困扰。虽然AP模式让设备快速上线,但在实际家…...

【实战篇】OneWire时序精解:从复位脉冲到DS18B20温度读取

1. OneWire协议基础:单线通信的魔法 第一次接触OneWire(单总线)协议时,我盯着那根孤零零的信号线愣了半天——这根线既要供电又要传数据,还要协调多个设备,简直像用一根吸管同时喝奶茶、吃珍珠和传情书。但…...

ncmdumpGUI:突破网易云音乐NCM格式限制的高效解决方案

ncmdumpGUI:突破网易云音乐NCM格式限制的高效解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI ncmdumpGUI是一款开源的音频格式转换工具&am…...

3步攻克科研数据提取难关:WebPlotDigitizer开源工具实战指南

3步攻克科研数据提取难关:WebPlotDigitizer开源工具实战指南 【免费下载链接】WebPlotDigitizer WebPlotDigitizer: 一个基于 Web 的工具,用于从图形图像中提取数值数据,支持 XY、极地、三角图和地图。 项目地址: https://gitcode.com/gh_m…...

QT----集成onnxRuntime实现图像分类应用实战

1. 环境准备与工具链搭建 在开始构建QTonnxRuntime图像分类应用之前,我们需要先准备好开发环境。这里我推荐使用Windows系统作为开发平台,因为大多数QT开发者都习惯在这个环境下工作。首先需要安装Visual Studio 2019或更高版本,这是编译QT应…...