网络基础-ICMP协议

news2024/10/6 10:26:24
ICMP(Internet Control Message Protocol, Internet控制消息协议)
ICMP协议是IP协议的辅助协议,用于在IP网络上发送控制消息,它通常被用于诊断网络故障、执行网络管理任务以及提供一些错误报告;对于收集各种网络信息、诊断 和排除各种网络故障等方面起着至关重要的作用。
ICMP协议涉及的一些常见数据包类型:
Echo Request (Type 8): 发送此类型的数据包以请求目标主机响应;通常用于Ping命令。
Echo Reply (Type 0): 响应Echo请求的数据包。包含与Echo请求相同的数据。
Destination Unreachable (Type 3): 当目标主机无法访问时发送的数据包。可能是因为网络不可达、主机不可达或端口不可达等原因。
Source Quench (Type 4): 当路由器或主机希望通知发送方减慢发送速度时发送的数据包。
Redirect (Type 5): 当路由器希望通知发送方通过另一个路由器发送数据时发送的数据包。
Time Exceeded (Type 11): 当数据包在路由器上的生存时间(TTL)过期时发送的数据包。
Parameter Problem (Type 12): 当IP头部中的某些字段有问题时发送的数据包。
Timestamp Request (Type 13): 请求目标主机发送当前时间的数据包。
Timestamp Reply (Type 14): 响应Timestamp请求的数据包,包含发送时间和接收时间。
Address Mask Request (Type 17): 请求目标主机发送子网掩码的数据包。
Address Mask Reply (Type 18): 响应Address Mask请求的数据包,包含子网掩码信息。

常用的基于ICMP协议应用
1.ping:

当你使用命令行工具或者网络诊断工具执行ping时,实际上在使用ICMP协议发送和接收消息来测试你计算机和目标主机之间的连接性和延迟;这个命令通常在Windows、Linux和其他类Unix系统上都是可用的。

ping命令的工作原理:

1.发送Echo请求: 执行ping命令并指定目标主机的地址时,计算机会发送一个ICMP Echo请求消息到目标主机。
2.等待Echo回复: 一旦目标主机收到Echo请求消息,它会生成并发送一个Echo回复消息作为响应;这个回复消息携带着与请求中相同的数据。
3.计算往返时间(Round-Trip Time,RTT): 一旦计算机收到了Echo回复消息,它会记录当前时间,并计算发送Echo请求和接收Echo回复之间的时间差。这个时间差就是往返时间(RTT),它表示了数据从计算机发送到目标主机并返回的时间。
4.显示结果: ping命令会显示每个Echo请求的往返时间,并且通常还会显示每个请求的成功率(通常以百分比形式);此外,一般还会显示有关网络状态的统计信息,如平均往返时间、最小和最大往返时间等。

ping命令的用途:
检测网络连接性: 通过发送Echo请求并接收Echo回复,可以确定目标主机是否可达;如果主机不可达,ping命令会显示请求超时或者目标不可达的消息。
测量延迟: 往返时间(RTT)可以用来评估计算机与目标主机之间的通信延迟;较低的RTT通常表示更快的网络连接。
诊断网络问题: 如果ping命令显示了不寻常的延迟或者丢包率,这可能表明网络中存在问题,如拥塞、路由问题或者网络设备故障等。

2.traceroute (tracert)

Traceroute是一种网络诊断工具,用于确定数据包从源主机到目标主机之间经过的路径;它通过发送一系列的数据包,并记录每个数据包经过的路由器,从而帮助用户了解网络中的延迟和网络拓扑。

traceroute工作原理
1,发送数据包: Traceroute发送一系列的UDP数据包(在Unix/Linux系统上,默认使用UDP,而在Windows系统上则默认使用ICMP)到目标主机,每个数据包的TTL(生存时间)逐渐增加。
2.路由器处理: 当数据包到达网络中的路由器时,路由器会将TTL减1,并检查TTL是否变为0。如果TTL变为0,路由器将丢弃数据包并发送一个ICMP "Time Exceeded"消息给发送主机。
3.记录路由器信息: Traceroute捕获"Time Exceeded"消息,并记录下每个路由器的IP地址和响应时间。
4.重复过程: Traceroute重复发送数据包,每次增加TTL,直到数据包到达目标主机。通过收集每个路由器的响应,Traceroute能够构建出数据包从源主机到目标主机的完整路径。

在思科设备和Linux系统中使用traceroute命令,在华为、华三设备和Windows中使用tracert命令进行使用。

输出解释:

Traceroute的输出通常会显示每个路由器的IP地址、主机名(如果可解析)、每个路由器的响应时间(通常以毫秒为单位),以及整个路径的总响应时间。这些信息可用于诊断网络问题和评估网络性能。

应用用途:
网络故障排除: Traceroute可用于诊断网络连接问题,如确定数据包在网络中的哪个节点丢失或受阻。
网络性能评估: 通过分析Traceroute的输出,可以评估网络中各个节点的延迟,并确定数据包传输的瓶颈所在。
网络拓扑发现: Traceroute可以用来发现网络中的路由器和主机,从而帮助绘制网络拓扑图和理解网络架构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1662130.html

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

相关文章

XWiki 服务没有正确部署在tomcat中,如何尝试手动重新部署?

1. 停止 Tomcat 服务 首先,您需要停止正在运行的 Tomcat 服务器,以确保在操作文件时不会发生冲突或数据损坏: sudo systemctl stop tomcat2. 清空 webapps 下的 xwiki 目录和 work 目录中相关的缓存 删除 webapps 下的 xwiki 目录和 work …

回炉重造java----单列集合(List,Set)

体系结构: 集合主要分为两种,单列集合collection和双列集合Map,区别在于单列集合一次插入一条数据,而双列的一次插入类似于key-value的形式 单列集合collection 注:红色的表示是接口,蓝色的是实现类 ①操作功能: 增加: add()&am…

六级仔细阅读

画两到三个词,精准定位 要原文和同义都满足才选 先看题目,在看原文,不要先看选项 做不出答案就继续往下读,读出来了就不用继续读了 分清楚是问为什么还是是什么,是什么看前面,为什么看后面 不知道就优先…

三、配置带HybridCLR的ARCore开发环境

预告 本专栏将介绍如何使用这个支持热更的AR开发插件,快速地开发AR应用。 专栏: Unity开发AR系列 插件简介 通过热更技术实现动态地加载AR场景,简化了AR开发流程,让用户可更多地关注Unity场景内容的制作。 “EnvInstaller…”支…

Java JVM 浅析

为什么要有JVMJVM是什么?JVM的工作流程和组成部分JVM规范和JVM实现JVM原理详解 带着以上问题,我将尝试对JVM作出一些简单的介绍。 一、JVM 简介 在90年代初,软件开发面临一个大问题,即不同的操作系统和硬件架构要求开发不同的版本…

【Java代码审计】代码审计的方法及常用工具

【Java代码审计】代码审计的方法及常用工具 代码审计的常用思路代码审计辅助工具代码编辑器测试工具反编译工具Java 代码静态扫描工具 代码审计的常用思路 1、接口排查(“正向追踪”):先找出从外部接口接收的参数,并跟踪其传递过…

3DGS+3D Tiles融合已成 ,更大的场景,更细腻的效果~

最近国外同行Kieran Farr发布了一个他制作的3D GussianSplatting(高斯泼溅)Google Map 3D Tiles的融合叠加的demo案例(如下所示)。 准确来说这是一个数据融合的实景场景,该实景场景使用了倾斜三维和3D GussianSplatting两种实景表达技术&…

深入理解Java TreeSet:实现与使用案例分析

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

【WPF学习笔记(一)】WPF应用程序的组成及Window类介绍

WPF应用程序的组成及Window类介绍 WPF应用程序的组成及Window类介绍前言正文1、WPF介绍1.1 什么是WPF1.2 WPF的特点1.3 WPF的控件分类 2、XAML介绍2.1 XAML的定义2.2 XAML的特点2.3 XAML的命名空间 3、WPF应用程序组成3.1 App.config3.2 App.xaml3.3 App.xaml.cs3.4 MainWindow…

react18【实战】tab切换,纯前端列表排序(含 lodash 和 classnames 的安装和使用)

技术要点 动态样式 className{tabItem ${currentType item.value && "active"}}安装 lodash npm i --save lodash使用 lodash 对对象数组排序(不会改变源数组) _.orderBy(dataList, "readNum", "desc")src\De…

十二种网络威胁防护方案

一、SQL注入 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任…

Python之数据分析基础

导言: “21世纪的竞争是数据的竞争,谁掌握数据,谁就掌握未来”。如何将大量看似杂乱无章的数据进行聚合,并发现潜在的规律也变得越来越重要。本文将先说明数据分析的步骤,再通过python完成实例数据的处理、分析最终展…

19.接口自动化-Jekins学习

1.CI-持续集成 频繁的(一天多次)将代码集成到主干 目的:让产品快速迭代,保持高质量 好处: 快速发现错误,每次更新都集成到主干,可以快速发现错误,定位错误也容易防止分支大幅偏离主…

示波器基础1-带宽

数字示波器最重要的基本特征之一是其带宽,了解带宽及其对技术指标的影响对于选择合适的示波器非常有帮助。 这里我们对示波器带宽的一些基本方面做一简要介绍。 当我们谈到示波器的带宽时,重要的是要区分模拟带宽和数字带宽。模拟带宽主要受仪器模拟输入…

TriCore: Architecture

说明 本文是 英飞凌 架构文档 TriCore TC162P core archiecture Volume 1 of 2 (infineon.com) 的笔记,稍作整理方便查阅,错误之处,还请指正,谢谢 :) 1. Architecture 2. General Purpose & System Register 名词列表&#…

Spring Cloud Alibaba 网关 Gateway 集成(7)

项目的源码地址 Spring Cloud Alibaba 工程搭建(1) Spring Cloud Alibaba 工程搭建连接数据库(2) Spring Cloud Alibaba 集成 nacos 以及整合 Ribbon 与 Feign 实现负载调用(3) Spring Cloud Alibaba Ribbo…

用标准的GNU/Linux命令替换Alpine上的精简版命令

Alpine Linux 是一个基于 musl libc 和 busybox 的轻量级Linux发行版,busybox 实现了很多常用类Unix命令的精简版,特点是体积很小,舍弃了很多不常用参数,我们简单对比一下标准Linux自带的 date 命令 和 Alpine下默认的 date 命令便…

Babel基础知识及实现埋点插件

目录 前言 AST 遍历 Visitors Paths(路径) Paths in Visitors(存在于访问者中的路径) State(状态) Scopes(作用域) Bindings(绑定) API babylo…

LeetCode 112. 路径总和 || LeetCode 113. 路径总和ii

LeetCode 112. 路径总和 1、题目 题目链接:112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true…

唤醒手腕 Go 语言 并发编程、Channel通道、Context 详细教程(更新中)

并发编程概述 ​ 一个进程可以包含多个线程,这些线程运行的一定是同一个程序(进程程序),且都由当前进程中已经存在的线程通过系统调用的方式创建出来。进程是资源分配的基本单位,线程是调度运行的基本单位&#xff0c…