ICMP协议详解

2023-05-16

ICMP协议

        一.概念

        ICMP协议是一个网络层协议。和IP协议处于同一层,但是ICMP协议底层用的是IP协议。

        一个搭建好的网络,往往需要先进行简单的测试,来验证网络是否通畅。单单使用IP协议并不提供可靠性传输。似乎用IP协议如果丢包,并不能通知传输层是否丢包以及丢包原因。

        ICMP协议,如果在网络中丢包,会返回一个丢包原因给传输层。

        二.ICMP作用

  • 确认IP包是否成功达到目标IP。
  • 通知在发送过程中的IP包被丢弃的原因。

        注意:

  • ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此人们仍把它归结于网络层协议。
  • ICMP只能搭配IPv4使用。如果是IPv6的情况下,需要使用ICMPv6。

        三.ICMP报文格式

        由于ICMP底层用的是IP协议,所以ICMP报文是IP协议的有效载荷。

        所以IP报头的协议字段可能代表的是ICMP/TCP/UDP,当协议字段为1时,代表ICMP。

        由下可知ICMP报头一共8字节。

  • 类型:1字节,说明该报文属于什么类型。
  • 代码:1字节,说明ICMP报文的代码。
  • 检验和:2字节,检验ICMP报文是否有错误。

ICMP类型分两类:

  1. 通知出错原因
  2. 用于诊断查询

类型分类:

         四.基于ICMP协议的命令

        4.1 ping命令

 作用:验证网络连通性,统计响应时间和IP数据包的生存时间TTL。

 注意:ping的时一个域名,而不是url网址,域名可以通过DNS解析成IP地址。

 ping命令执行细节

  • ping命令会发送一个ICMP Echo Request给对端
  • 对端接收后,返回一个ICMP Echo Reply
  • 注意是在主机A网络层发出ICMP Echo Request,再主机B接收到网络层,再发出ICMP Echo Reply

 问题:ping是否有端口号?

没有,ping命令基于ICMP,再网络层,端口号是传输层的内容。ICMP根本就不关注端口号。

       4.2 traceroute命令

        基于ICMP协议实现,能够打印出可执行程序主机到目标主机之间尽力了多少路由器。

说明:

  • 记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关。
  • 我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间
  • 有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ICMP协议详解 的相关文章

  • 如何制作多合一Windows镜像

    新人发帖 xff0c 如有错误请纠正 1 准备多个Windows镜像 Vista以上的都可以 和工具包 工具包 zip 蓝奏云 2 随便建个文件夹 xff0c 解压工具包 3 提取Windows镜像中的install wim xff0c 在
  • shell脚本无法执行

    之前我再服务器中直接执行脚本 xff0c 但是无法执行 xff0c 我仔细看了一下原来没有给对应的shell文件设置对应的执行权导致shell无法执行 于是乎我使用了下面的脚本赋予了脚本执行权 chmod 43 x restart sh 这
  • zabbix6.0LTS安装全过程及遇到的问题

    现有centos 7 和mysql8 0 想下载zabbix6 0LTS的 server版本 xff0c 可是发现没有 xff0c 只有proxy 还没搞懂proxy的用处 xff0c 但目前知道不能替代server 所以打算安装cento
  • AndroidStudio使用kotlin入门

    AndroidStudio使用kotlin入门 导读 1 创建第一个kotlin项目2 java代码自动转换成kotlin代码3 开始Hello world ps 由于Markdown在简书里对锚点的支持效果不是很好 xff0c 就没设置跳
  • LAMP架构以及论坛的安装

    LAMP架构 一 熟悉LAMP架构1 Linux平台2 Apache前台3 Mysql后台4 PHP中间连接 二 编译安装Apache httpd服务三 编译安装mysqld服务四 编译安装PHP解析环境五 安装论坛 一 熟悉LAMP架构
  • Android OpenCV基础(一、OpenCV入门)

    一 OpenCV概述 OpenCV xff08 Open Source Computer Vision Library xff09 是一个开源的计算机视觉库 xff0c 它提供了很多函数 xff0c 这些函数非常高效地实现了计算机视觉算法
  • Ubuntu安装最新版本NodeJs和Npm的方法

    第一种方法 通过NodeSource提供的官方包安装 自带最新npm xff08 最推荐 xff09 以下是 Nodejs 18 x的安装 xff0c 一行代码搞定 amp amp 的意思是前面的命令执行无误后 xff0c 再执行后面代码
  • 记录ubuntu 编译android 10 源码遇到的问题

    记录ubuntu 编译android 10 源码遇到的问题 1下载android 10源码 2repo工具下载及安装 xff08 参考网上教程 xff09 3建立源码文件夹 mkdir source cd source 4初始化仓库 我们将
  • @zabbix6.0安装部署(centeros 8 stream)

    文章目录 1 系统版本2 zabbix server官方查看3 平台安装和配置Zabbix服务器4 数据库安装5 Zabbix server配置数据库6 Zabbix前端配置PHP7 zabbix相关组件服务启动8 zabbix web配置
  • 使用Python处理excel表格(openpyxl)教程

    现在有个小任务 xff0c 需要处理excel中的数据 其实就是简单的筛选 xff0c excel玩的不熟练 xff0c 而且需要处理的表有70多个 xff0c 于是想着写个脚本处理一下吧 python中的openpyxl包可以轻松实现读写
  • Linux 6.1/6.2发布新补丁:缓解AMD处理器fTPM间歇性卡顿问题

    导读早些时候 xff0c AMD承认 xff0c 在Linux系统中开启AMD锐龙处理器的fTPM xff0c 将可能导致系统出现间歇性的卡顿 死机等情况 据悉 xff0c 该Bug在Linux 6 1内核中表现得最为明显 xff0c 这是
  • 完美解决主机与虚拟机相互通信,相互ping等问题

    笔者最近在学习使用linux时 xff0c 使用到了vm virtue box的虚拟机服务来简单的安装linux xff0c 但是在使用的时候发现了一个严重的问题 xff1a 虚拟机可以ping通主机 xff0c 主机却无法ping通虚拟机
  • CSS——CSS的选择器

    概念 xff1a CSS在渲染 HTML 页面是 xff0c 为了得到 HTML 中的标签进行样式渲染 xff0c 为我们提供了大量好用的各种选择器 xff0c 以便于我们在CSS 中拿到 HTML 的标签进行样式设置 一 基本选择器 基本
  • OA工作流的浅谈

    如今 xff0c 越来越多的人意识到将工作流引入解决方案的重要性 随着信息技术的发展和商业竞争的日益激烈 xff0c 人们不再满足于独立 分散的办公自动化和计算机应用 xff0c 而需要全面 集成的解决方案 作为一种管理和集成常规事务的技术
  • GPG key retrieval failed: [Errno 14] curl#60 - “Peer‘s Certificate has expired.“

    GPG key retrieval failed Errno 14 curl 60 Peer s Certificate has expired GPG key retrieval failed Errno 14 curl 60 Peer
  • html,css常见的几种垂直居中方式

    一丶什么是垂直居中 指当前标签在父级容器中垂直方向是居中显示的 实现垂直居中的几种方式 xff1a 1 table cell 43 vertical align 属性配合使用 2 absolute 43 transform 属性配合使用 3
  • STM32用XCOM调试助手打印不出数据

    STM32用XCOM调试助手打印不出数据 被困扰了一段时间的串口终于解决了 xff0c 用STM332F103ZET6写串口 xff0c 但是不懂为什么打开串口调试助手就是打印不出数据 首先检查了代码有没有错 xff0c 因为是按照网上的代
  • 基于蚁群算法的机器人路径规划matlab——代码注释超级详细,都能看懂

    采用蚁群算法路径规划matlab 本文对基本蚁群算法代码进行了详细的注释 每一步都简单易懂 程序在matlab中可直接运行 适合刚开始学习本算法的同学入门 蚁群算法是由意大利学者Dorigo提出的一种仿生智能算法 最早运用在旅行商问题上 蚁
  • java集合类(collection)

    一 集合类 collection Java中有哪些容器 xff08 集合类 xff09 Java中的集合类主要由Collection和Map这两个接口派生而出 xff0c 其中Collection接口又派生出三个子接口 xff0c 分别是S
  • linux安装程序和软件

    文章目录 一 解析Linux应用软件安装包二 rpm命令2 1 安装有依赖关系的 rpm软件包 xff0c 2 2 升级或更新 rpm软件包2 3 实列2 4 查询未安装的 rpm软件包文件 一 解析Linux应用软件安装包 通常Linux

随机推荐

  • Postman入门教程【没有废话,直入实战,绝对给力!】

    基础篇 Postman功能 xff08 https www getpostman com features xff09 主要用于模拟网络请求包快速创建请求回放 管理请求快速设置网络代理安装 下载地址 xff1a https www getp
  • U3D开发的逆天级大型游戏有哪些

    1 World of Diving 潜水世界 一款潜水游戏 潜水世界 xff1a http dx60 downyouxi com qianshuishijie zip 氛围不错 xff0c 不过细看建模好像不是特别精细的样子 2 The F
  • 线程安全(实现线程方式+线程状态+通信方式,sleep,wait,守护线程)

    目录 用户自定义线程 Java中实现多线程的方法 xff1a 如何停止一个正在运行的线程 1 说说什么是线程安全 xff1f 如何实现线程安全 xff1f 2 Java中线程的状态有哪些 xff1f 线程间的通信方式有哪些 xff1f 追问
  • LINUX——远程访问控制ssh

    文章目录 一 什么是SSH xff1f 二 SSH远程管理 服务端2 1 SSH协议2 2服务监听选项2 3用户登录控制 Authentication xff1a 2 4登录验证方式 三 TCP Wrappers控制3 1 2保护机制的实现
  • 关于Visual studio 2010运行时闪退问题的解决

    在运行一个刚刚下载的visual studio 2010时候 xff0c 编程一个简单程序进行输出时候 xff0c 会出现闪退状况 明明成功编译了 xff0c 但是没有显示结果 xff0c 只是闪了一下就自己关闭了 解决方法1 在main函
  • GFF/GTF简介及格式转换

    最近做转录组的比对时 xff0c 在建立索引过程中 xff0c 遇见一个问题 xff0c 就是我从ncbi下载的序列文件和gtf文件中 xff0c 染色体命名规则竟然不一样 xff0c 但序列文件和gff文件染色体命名规则是一样的 xff0
  • Linux 系统上安装R及加载R包

    因为安装Hic Pro xff0c 需要依赖几个R包 xff0c 比如ggplot2 又依赖 gt 4 0的R xff0c 之前安的3 6 xff0c 再重新安装一遍最新的吧 xff0c 记录一下 xff0c 省去了以后再重复查资料的过程
  • BWA比对及Samtools提取目标序列

    今天想看一下自己的序列里面会不会有某细菌基因组存在 xff0c 主要使用BWA和Samtools xff1a bwa主要用于将低差异度的短序列与参考基因组进行比对 主要包含三种比对算法 xff1a backtrack SW和MEM xff0
  • 核糖体rRNA分类-功能应用-数据库-Silva

    一 xff0e 分类 xff1a 原核生物的rRNA分三类 xff1a 5SrRNA 16SrRNA和23SrRNA 真核生物的rRNA分四类 xff1a 5SrRNA 5 8SrRNA 18SrRNA和28SrRNA S为大分子物质在超速
  • RepeatMasker基因组重复序列检测工具安装及使用

    一 RepeatMasker简介 基因组组装完成后 xff0c 进行基因预测和注释 由于基因组中存在重复序列结构区 xff0c 特别是高等真核生物 xff0c 重复序列占了相当大的比例 xff0c 会影响基因预测的质量 xff0c 也会带来
  • Seqkit:强大的序列处理工具

    Seqkit是一款专门处理fsata q序列文件的软件 github地址 https github com shenwei356 seqkit 下载地址 xff1a https bioinf shenwei me seqkit downlo
  • Minimap2:三代比对工具

    在使用Purge dups去冗余时 xff0c 用到了Minimaps2 xff0c 把学习的东西整理一下 先声明本文软件介绍的很多内容来自 生信算法 公众号文章 xff0c 用来作为自己的学习记录 xff0c 原文作者若不同意的话就删稿
  • 白盒测试:语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖

    语句覆盖 xff1a 所有的 语句 都要覆盖一遍 判定覆盖 xff1a 包含语句覆盖 xff0c 每个判断T F各一次 条件覆盖 xff1a 包含语句覆盖 xff0c 每个条件T F各一次 判定条件覆盖 xff1a 包含判定覆盖 条件覆盖
  • GMAP一款比对工具用于ALLHiC构建等位基因表

    在ALLHiC使用过程中需要构建Allele ctg table xff0c 用于过滤多倍体基因组中因等位序列相似引起的HiC噪音的必要输入 官网提供了两种办法 xff0c 一种是blastn xff0c 需要对草图基因组进行注释 xff0
  • 数据结构——平衡二叉树(AVL树)之插入

    文章目录 前言一 定义二 基本操作1 查找 xff0c 2 插入 如何调整 如何调整代码实现插入 前言 首先我们来思考一下一个普通二叉树保存数据 xff0c 如果想查找一个数据 xff0c 由于普通二叉树保存数据是随机的 xff0c 要找到
  • C++之引用怎么用

    1 引用的概念 引用并不是新定义一个变量 xff0c 而是给一个已存在的变量取一个别名 编译器并不会为引用变量开辟空间 xff0c 它和它应用的变量共用一块空间 也就是说引用是同一块变量空间的不同名字 格式 xff1a 类型 amp 引用变
  • 完全背包问题

    目录 一 什么是完全背包 二 完全背包问题的里外层循环可以交换吗 三 题 3 1 求组合数 3 2 求排列和 3 3 求最小值 一 什么是完全背包 完全背包问题一般是指 xff1a 有N件物品和一个能背重量为W的背包 xff0c 第i件物品
  • 如何从GitHub上下载开源项目

    作为开源代码库以及版本控制系统 xff0c Github拥有超过900万开发者用户 随着越来越多的应用程序转移到了云上 xff0c Github已经成为了管理软件开发以及发现已有代码的首选方法 GitHub上有无数优秀开发者正在开发和维护的
  • 进程间通信之共享内存

    目录 一 共享内存实现进程间通信的原理 二 管理共享内存的数据结构 三 共享内存函数 四 实现进程间通信 接博客 xff1a 进程间通信之管道 一 共享内存实现进程间通信的原理 共享内存实际是操作系统在实际物理内存中开辟的一段内存 共享内存
  • ICMP协议详解

    ICMP协议 一 概念 ICMP协议是一个网络层协议 和IP协议处于同一层 xff0c 但是ICMP协议底层用的是IP协议 一个搭建好的网络 xff0c 往往需要先进行简单的测试 xff0c 来验证网络是否通畅 单单使用IP协议并不提供可靠