ICMP——网际控制报文协议

2024-01-31 09:04
文章标签 协议 icmp 控制 报文 网际

本文主要是介绍ICMP——网际控制报文协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.1 网际控制报文协议 ICMP

1.2 ICMP 报文的格式

1.2.1 ICMP 报文的种类

ICMP 差错报告报文

ICMP 询问报文

1.3 ICMP 的应用

1.4 ICMP抓包

1.4.1 ICMP请求包(request)

1.4.2 ICMP应答包(reply)


1.1 网际控制报文协议 ICMP

·ICMP (Internet Control Message Protocol) 允许主机或路由器报告差错情况和提供有关异常情况的报告。

·ICMP 是互联网的标准协议

·但 ICMP 不是高层协议,而是 IP 层的协议。

1.2 ICMP 报文的格式

1.2.1 ICMP 报文的种类

·2 种:差错报告报文询问报文

几种常用的 ICMP 报文类型

ICMP 报文种类

类型的值

ICMP报文的类型

差错报告报文

 3

终点不可达

11

时间超过

12

参数问题

5

改变路由 (Redirect)

询问报文

 0

回送 (Echo请求或回答

13  14

时间 (Timestamp请求或回答

ICMP 差错报告报文

数据字段的内容:

不应发送 ICMP 差错报告报文的几种情况:

·对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。

·对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。

·对具有多播地址的数据报都不发送 ICMP 差错报告报文。

·对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。

ICMP 询问报文

(1) 回送请求和回答

        ·由主机或路由器向一个特定的目的主机发出的询问。

       ·收到此报文的主机必须给源主机或路由器发送 ICMP 回送回答报文。

        ·这种询问报文用来测试目的站是否可达,以及了解其有关状态。

(2) 时间戳请求和回答

        ·请某台主机或路由器回答当前的日期和时间。

        ·时间戳回答报文中有一个 32 位的字段,其中写入的整数代表从1900 年 1 月 1 日起到当前时刻一共有多少秒。

        ·时间戳请求与回答可用于时钟同步和时间测量。

1.3 ICMP 的应用

(1)PING (Packet InterNet Groper)

        ·用来测试两个主机之间的连通性

        ·使用了 ICMP 回送请求与回送回答报文

        ·是应用层直接使用网络层 ICMP 的例子,没有通过运输层的 TCP 或 UDP。

用 PING 测试邮件服务器 mail.sina.com.cn 的连通性

(2)Traceroute

        ·这是UNIX操作系统中名字。在 Windows 操作系统中这个命令是 tracert

        ·用来跟踪一个分组从源点到终点的路径

        ·它利用 IP 数据报中的 TTL 字段ICMP 时间超过差错报告报文和ICMP 终点不可达差错报告报文实现对从源点到终点的路径的跟踪。

用 tracert 命令获得到新浪网的邮件服务器 mail.sina.com.cn 的路由信息

1.4 ICMP抓包

1.4.1 ICMP请求包(request)

1.4.2 ICMP应答包(reply)

欢迎一起学习呀~

这篇关于ICMP——网际控制报文协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/663217

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置