网络网络层ICMP协议

网络网络层ICMP协议

1. ICMP 协议介绍

ICMP(Internet Control Message Protocol)是 TCP/IP 协议簇中的网络层控制报文协议。用于在 IP 主机、路由器之间传递控制消息,提供可能有关通信问题的反馈信息。 以及用于网络诊断或调试(网络通不通、主机是否可达、路由是否可用等网络本身的消息)。 ICMP 并不传输用户数据,而是用来发送错误信息或其他重要的信息给 IP 源主机。

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

2. ICMP功能

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

ICMP 允许距离故障事发地最近的主机设备返回应答。 在 IP 协议头中,有一个 TTL 报文最大生存时间,当 IP 报文的 TTL 耗尽,路由器会丢弃该 IP 报文,但也不是直接丢弃,丢弃后会向该 IP 报文的源主机发送一个 ICMP 包,告知该 IP 报文在本路由器的 IP 地址上被丢弃了。

若目的主机因为拔了网线或主机关机等原因,导致路由器的 ARP 请求得不到应答,路由器也会给目的主机发送 ICMP 包,告知源主机该地址不可达。

ICMP 报文会跳过应用层和传输层,直接由网络层发送。

ICMP1

3. ping命令

ICMP 报文会跳过应用层和传输层,直接由网络层发送。 很多网络命令允许跳过传输层,创建 ICMP ,如 ping 命令。

ping 命令不光能验证网络的连通性,同时也会统计响应时间和 TTLping 命令会先发送一个 ICMP Echo Request 给对端,对端接收到之后,会返回一个 ICMP Echo Reply。

注意 ping 命令是直接使用域名,而不是 url,一个域名可以通过 DNS 解析成 IP 地址。ping 本身已经绕过了传输层,所以 ping 命令不关心端口号

4. traceroute 命令

traceroute 也是基于 ICMP 协议实现的命令,它能够打印出可执行程序主机,一直到目标主机之前经历了多少路由器。

安装traceroute:

sudo apt install -y traceroute

ICMP2

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nvm 管理nodejs,安装pnpm后报错,出现:pnpm不是内部或外部命令,也不是可运行的程序或批处理文件。

系统环境:window11,exe安装版nvm出现的该问题,(如果是解压缩配置版本,环境变量自己配置,可能就不会出现这个问题了) 注意:安装nvm时,两个路径尽量放到一个盘上&#xff…

论文阅读:Searching for Fast Demosaicking Algorithms

今天介绍一篇有关去马赛克的工作,去马赛克是 ISP 流程里面非常重要的一个模块,可以说是将多姿多彩的大千世界进行色彩还原的重要一步。这篇工作探索的是如何从各种各样的去马赛克算法中,选择最佳的一种。 Abstract 本文提出了一种方法&…

活动预告 | CCF开源发展委员会开源供应链安全技术研讨会(2025第一期)——“大模型时代的开源供应链安全风控技术”...

点击蓝字 关注我们 CCF Opensource Development Committee CCF开源发展委员会开源供应链安全工作组(以下简称CCF-ODC-OSS)将于1月17日下午在北京黄大年茶思屋举行2025年第一期开源供应链安全技术研讨会,此次研讨会主题为“大模型时代的开源供…

centos 8 中安装Docker

注:本次样式安装使用的是centos8 操作系统。 1、镜像下载 具体的镜像下载地址各位可以去官网下载,选择适合你们的下载即可! 1、CentOS官方下载地址:https://vault.centos.org/ 2、阿里云开源镜像站下载:centos安装包…

关于Profinet 从站转 EtherNet/IP 从站网关详细说明

一、产品概述 1.1 产品用途 本产品是 PN(Profinet) 和 EtherNet/IP 网关,使用数据映射方式工作。 本产品在 PN 侧作为 PN IO 从站,接 PN 主站设备,比如西门子 PLC 等;在EtherNet/IP 侧做为 EtherNet/IP 从站&…

【SH】Xiaomi9刷Windows10系统研发记录 、手机刷Windows系统教程、小米9重装win10系统

文章目录 参考资料云盘资料软硬件环境手机解锁刷机驱动绑定账号和设备解锁手机 Mindows工具箱安装工具箱和修复下载下载安卓和woa资源包第三方Recovery 一键安装Windows准备工作创建分区安装系统 效果展示Windows和Android一键互换Win切换安卓安卓切换Win 删除分区 参考资料 解…

企业服务-团队协作相关平台极简介绍

前言 最近,为一家企业做咨询,该公司主要从事地产行业,老板李总招了几名研发人员,想着开发自己的行业APP,但是3年了,产品一直拿不出手,按李总的说法,产品还是很不成熟,但…

怎么防止SQL注入攻击

引言 SQL注入攻击是黑客对数据库进行攻击的常用手段之一,随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据…

一文说清楚Linux gdb

以下是关于 GDB(GNU Debugger) 的详细介绍: 什么是 GDB? 定义 GDB(GNU Debugger)是 GNU 项目开发的一款功能强大的调试工具,用于调试 C、C、Fortran 等语言编写的程序。它允许开发者执行程序时…

api开发及运用小红书笔记详情api如何获取笔记详情信息

item_get_video-获得某书笔记详情 smallredbook.item_get_video 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,i…

蓝桥杯第二天学习笔记

二维码生成: import qrcode from PIL import Image, ImageDraw, ImageFont import osdef generate_custom_qr_code(data, qr_file_path, logo_file_pathNone, textNone):# 创建QRCode对象qr qrcode.QRCode(version1,error_correctionqrcode.constants.ERROR_CORRE…

Springboot和Es整合

说明&#xff1a;本文章主要是简单整合和简单增删改查。 1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi…

stack_queue的底层,模拟实现,deque和priority_queue详解

文章目录 适配器Stack的模拟实现Queue的模拟实现vector和list的对比dequedeque的框架deque的底层 priority_queuepriority_queue的使用priority_queue的底层仿函数的使用仿函数的作用priority_queue模拟实现 适配器 适配器是一种模式&#xff0c;这种模式将类的接口转化为用户希…

基于Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用-以ENSO预测为例讲解

1. 背景与目标 ENSO&#xff08;El Nio-Southern Oscillation&#xff09;是全球气候系统中最显著的年际变率现象之一&#xff0c;对全球气候、农业、渔业等有着深远的影响。准确预测ENSO事件的发生和发展对于减灾防灾具有重要意义。近年来&#xff0c;深度学习技术在气象领域…

网络安全概述

在早期的互联网&#xff08;也是一种计算机网络&#xff09;中数据都是明文传输的&#xff0c;例如直接使用http协议。但由于越来越多的商业和政府的数据也都在互联网传输&#xff0c;直接使用明文传输&#xff0c;相当于让数据在网络中裸奔&#xff0c;而且网络中攻击者可以直…

39.【4】CTFHUB web sql 布尔注入

进入靶场 按照提示输入1 布尔注入只显示正确与否&#xff0c;手动注入太麻烦,用sqlmap -dbs爆出库名 -tables爆出表名 -columns 爆出字段名 --dump得到flag 笔记 1&#xff0c;sqlmap使用步骤 -dbs 爆出表名 -tables爆出库名 -columns爆出字段名 --dump爆出字段内容 2&a…

C#中通道(Channels)的应用之(生产者-消费者模式)

一.生产者-消费者模式概述 生产者-消费者模式是一种经典的设计模式&#xff0c;它将数据的生成&#xff08;生产者&#xff09;和处理&#xff08;消费者&#xff09;分离到不同的模块或线程中。这种模式的核心在于一个共享的缓冲区&#xff0c;生产者将数据放入缓冲区&#x…

【STM32】HAL库USB实现软件升级DFU的功能操作及配置

【STM32】HAL库USB实现软件升级DFU的功能操作及配置 文章目录 DFUHAL库的DFU配置修改代码添加条件判断和跳转代码段DFU烧录附录&#xff1a;Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏…

kotlin的dagger hilt依赖注入

依赖注入&#xff08;dependency injection, di&#xff09;是设计模式的一种&#xff0c;它的实际作用是给对象赋予实例变量。 基础认识 class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceSta…

Uniapp判断设备是安卓还是 iOS,并调用不同的方法

在 UniApp 中&#xff0c;可以通过 uni.getSystemInfoSync() 方法来获取设备信息&#xff0c;然后根据系统类型判断当前设备是安卓还是 iOS&#xff0c;并调用不同的方法。 示例代码 export default {onLoad() {this.checkPlatform();},methods: {checkPlatform() {// 获取系…