ICMP 和 IGMP 的区别
ICMP 和 IGMP 协议 IP 层分支图
ICMP(Internet Control Message Protocol,因特网控制信息协议)
用于补充 IP 传输数据报的过程中,发送主机无法确定数据报是否到达目标主机。
ICMP 报文分为出错报告报文和查询报文两种。
若数据报不能到达目标主机,ICMP 出错报告报文可以以回送信息的方式,向源主机发去信息,并不能纠正数据报中的任何出错。
除了出错报告,ICMP 还可以诊断出某些网络问题,这就是 ICMP 的查询报文。
ICMP 源抑制消息:当 TCP/IP 主机发送数据到另一主机时,如果速度达到路由器或者链路的饱和状态,路由器发出一个 ICMP 源抑制消息。
ICMP 数据包结构
类型:一个 8 位类型字段,表示 ICMP 数据包类型。
代码:一个 8 位代码域,表示指定类型中的一个功能。如果一个类型中只有一种功能,代码域置为 0。
检验和:数据包中 ICMP 部分上的一个 16 位检验和。
指定类型的数据随每个 ICMP 类型变化的一个附加数据。
IGMP (Internet Group Management Protocol,因特网组管理协议)
用于建立和管理多播组,对 IP 分组广播进行控制。
internet 控制消息协议 ICMP 是用于报告错误并代表 IP 对消息进行控制。
IP 运用互联组管理协议 IGMP 来告诉路由器,某一网络上指导组中的可用主机。
IGMP 信息传给别的路由器以使每个支持多路广播的路由器获知哪个主机组和哪个网络中。
IGMP 包结构
版本:IGMP 的版本,值一般为 0x1h。
类型:IGMP 消息的类型。
-
0x1h 类型称为主机成员请求,在多路广播路由器上用于指定多级组中的任何成员轮询一个网络。
-
0x2h 类型称为主机成员报告,在主机上用于发布指定组中的成员情况或对一个路由器的主机成员请求进行回答。
未用:未用的域名被发送者置零且被接收者忽略。
检验和:IGMP 头的一个 16 位检验和。
组地址:主机用该组地址在一个主机成员请求中存储 IP 多路广播地址。在主机成员请求中,组地址被全置零,而且硬件级的多路广播地址被用来标示主机组。
ICMP 和 IGMP 的比较
编号 ~ | ICMP | IGMP |
---|---|---|
1 | ICMP 代表 Internet 控制消息协议。 | IGMP 代表 Internet 组消息协议。 |
2 | ICMP 具有 PING 功能。 | IGMP 具有多播功能。 |
3 | Internet 控制消息协议是单播的。 | 互联网组消息协议是多播的。 |
4 | ICMP 可以在主机到主机或主机到路由器或路由器到路由器之间运行。 | IGMP 可用于客户端到多播路由器之间。 |
5 | ICMP 第 3 层协议。 | IGMP 第 3 层协议。 |
6 | 控制单播通信,用于报错。 | IGMP 控制多播通信。 |
7 | ICMP 可以是主机和网关用来将数据报下行通知发送回发送者的机制。 | IGMP 用于促进将消息同步传输到一堆接收者。 |
8 | ICMP 用于测试主机或网络的可达性。 | IGMP 用于 DTS 服务等分组数据传输。 |
注:节选部分原文。
via:
-
ICMP 与 IGMP 的区别 - yehao’s Blog - C++ 博客 posted on 2011-05-04 13:22 厚积薄发
http://www.cppblog.com/yehao/articles/145652.html
ICMP/IGMP 协议原理
一、ICMP 协议原理
ICMP 主要的功能包括:确认 IP 包是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。
在 IP 通信中如果某个 IP 包因为某种原因未能达到目标地址,那么这个具体的原因将由 ICMP 负责通知。
如上图例子,主机 A 向主机 B 发送了数据包,由于某种原因,途中的路由器 2 未能发现主机 B 的存在,这时,路由器 2 就会向主机 A 发送一个 ICMP 目标不可达数据包,说明发往主机 B 的包未能成功。ICMP 的这种通知消息会使用 IP 进行发送 。
因此,从路由器 2 返回的 ICMP 包会按照往常的路由控制先经过路由器 1 再转发给主机 A 。收到该 ICMP 包的主机 A 则分解 ICMP 的首部和数据域以后得知具体发生问题的原因。
1.1 ICMP 大致可以分为两大类:
-
一类是用于诊断的查询消息,也就是查询报文类型。
-
另一类是通知出错原因的错误消息,也就是差错报文类型
1.2 目标不可达类型的代码
-
网络不可达代码为 0
-
主机不可达代码为 1
-
协议不可达代码为 2
-
端口不可达代码为 3
-
需要进行分片但设置了不分片位代码为 4
二、IGMP 协议原理
ICMP 跟 IGMP 是一点关系都没有的,大家不要混淆了。
D 类地址中的地址是组播地址,只有一组的主机能收到数据包,不在一组的主机不能收到数组包。
怎么管理是否是在一组呢?那么,就需要 IGMP 协议了。
IGMP 是因特网组管理协议,工作在主机(组播成员)和最后一跳路由之间,如上图中的蓝色部分。
-
IGMP 报文向路由器申请加入和退出组播组,默认情况下路由器是不会转发组播包到连接中的主机,除非主机通过 IGMP 加入到组播组,主机申请加入到组播组时,路由器就会记录 IGMP 路由器表,路由器后续就会转发组播包到对应的主机了。
-
IGMP 报文采用 IP 封装,IP 头部的协议号为 2,而且 TTL 字段值通常为 1,因为 IGMP 是工作在主机与连接的路由器之间。
2.1 IGMPv2 查询与响应原理
-
路由器会周期性发送目的地址为 224.0.0.1 (表示同一网段内所有主机和路由器) IGMP 常规查询报文。
-
主机 1 和 主机 3 收到这个查询,随后会启动「报告延迟计时器」,计时器的时间是随机的,通常是 0~10 秒,计时器超时后主机就会发送 IGMP 成员关系报告报文(源 IP 地址为自己主机的 IP 地址,目的 IP 地址为组播地址)。如果在定时器超时之前,收到同一个组内的其他主机发送的成员关系报告报文,则自己不再发送,这样可以减少网络中多余的 IGMP 报文数量。
-
路由器收到主机的成员关系报文后,就会在 IGMP 路由表中加入该组播组,后续网络中一旦该组播地址的数据到达路由器,它会把数据包转发出去。
2.2 IGMPv2 离开组播组工作机制
离开组播组的情况一,网段中仍有该组播组:
-
主机 1 要离开组 224.1.1.1,发送 IGMPv2 离组报文,报文的目的地址是 224.0.0.2(表示发向网段内的所有路由器)
-
路由器 收到该报文后,以 1 秒为间隔连续发送 IGMP 特定组查询报文(共计发送 2 个),以便确认该网络是否还有 224.1.1.1 组的其他成员。
-
主机 3 仍然是组 224.1.1.1 的成员,因此它立即响应这个特定组查询。路由器知道该网络中仍然存在该组播组的成员,于是继续向该网络转发 224.1.1.1 的组播数据包。
离开组播组的情况二,网段中没有该组播组:
-
主机 1 要离开组播组 224.1.1.1,发送 IGMP 离组报文。
-
路由器收到该报文后,以 1 秒为间隔连续发送 IGMP 特定组查询报文(共计发送 2 个)。此时在该网段内,组 224.1.1.1 已经没有其他成员了,因此没有主机响应这个查询。
-
一定时间后,路由器认为该网段中已经没有 224.1.1.1 组播组成员了,将不会再向这个网段转发该组播地址的数据包。
via:
-
计算机网络 ——ICMP/IGMP 协议原理_icmp igmp-CSDN 博客 庄小焱已于 2022-06-19 08:07:25 修改
https://blog.csdn.net/weixin_41605937/article/details/121443710
相关文章:
ICMP 和 IGMP 的区别
ICMP 和 IGMP 协议 IP 层分支图 ICMP(Internet Control Message Protocol,因特网控制信息协议) 用于补充 IP 传输数据报的过程中,发送主机无法确定数据报是否到达目标主机。 ICMP 报文分为出错报告报文和查询报文两种。 若数据…...
【Vue3】工程创建及目录说明
【Vue3】工程创建及目录说明 背景简介开发环境开发步骤及源码 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日…...
算法学习2——排序算法(2)
上一篇介绍了几种常见且使用较多的排序算法,本章主要是一个进阶内容,介绍三个较为复杂的算法。 计数排序 (Counting Sort) 计数排序是一种适用于范围较小的整数序列的排序算法。它通过统计每个元素的出现次数,然后依次输出元素,…...
嵌入式人工智能(9-基于树莓派4B的PWM-LED呼吸灯)
1、PWM简介 (1)、什么是PWM 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是在具有惯性的系统中利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制…...
python-NLP:1中文分词
文章目录 规则分词正向最大匹配法逆向最大匹配法双向最大匹配法 统计分词语言模型HMM模型 jieba分词分词关键词提取词性标注 规则分词 基于规则的分词是一种机械分词方法,主要是通过维护词典,在切分语句时,将语句的每个字符串与词表中的词进行…...
iOS 开发包管理之CocoaPods
CocoaPods(Objective-C 时期,支持Objective-C和swift),CocoaPods下载第三方库源代码后会将其编译成静态库.a 文件 或动态库框架.framework 文件 的形式,并将它们添加到项目中,建立依赖关系,这种…...
Windows搭建RTMP视频流服务器
参考了一篇文章,见文末。 博客中nginx下载地址失效,附上一个有效的地址: Index of /download/ 另外,在搭建过程中,遇到的问题总结如下: 1 两个压缩包下载解压并重命名后,需要 将nginx-rtmp…...
VS2019安装MFC组件
VS2019支持的MFC版本是mfc140 ~ mfc142版本,它兼容VS2015、VS2017之前的老版本程序。 一、MFC的历史版本 MFC的历史版本如下: IDE发布时间工具集版本MSC_VERMSVCMFC版本dllVisual C6.01998V601200MSVC6.06.0mfc42.dll、mfcce400.dllVisual Studio 2002…...
Python学习—open函数,json与pickle知识点,Os模块详解
目录 1. Open函数 2.json与pickle模块 json模块 1. json.dumps() 2. json.dump() 3. json.loads() 4. json.load() pickle 模块 1. pickle.dumps() 2. pickle.dump() 3. pickle.loads() 4. pickle.load() 3.Os模块 1. Open函数 在Python中,open() 函数…...
基于SSM的高考志愿选择辅助系统
基于SSM的高考志愿选择辅助系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 前台 前台首页 院校展示 后台 后台首页 学校管理 摘要 随着高考制度的不断完…...
引领小模型潮流!OpenAI发布功能强大且成本低的GPT-4o mini
GPT-4o mini的成本比GPT-3.5 Turbo低了超过60%,其聊天表现优于Google的Gemini Flash和Anthropic的Claude Haiku。该模型从周四开始对ChatGPT的免费用户、ChatGPT Plus用户和团队订阅用户开放,并将在下周向企业用户开放。OpenAI计划未来将图像、视频和音频…...
【考研数学】线代满分经验分享+备考复盘
我一战二战复习都听了李永乐的线代课,二战的时候只听了一遍强化,个人感觉没有很乱,永乐大帝的课逻辑还是很清晰的。 以下是我听向量这一章后根据听课内容和讲义例题总结的部分思维导图,永乐大帝讲课的时候也会特意点到线代前后联…...
Java项目:基于SSM框架实现的海鲜自助餐厅系统【ssm+B/S架构+源码+数据库+毕业论文】
一、项目简介 本项目是一套基于SSM框架实现的海鲜自助餐厅系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能…...
前端面试题日常练-day97 【Less】
题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 在Less中,以下哪个功能用于处理文本字间距? a) letter-spacing() b) word-spacing() c) text-spacing() d) space-between() Less中的Variables可以存储哪些类型的值ÿ…...
压缩视频大小的方法 怎么减少视频内存大小 几个简单方法
随着4K、8K高清视频的流行,我们越来越容易遇到视频文件体积过大,导致存储空间不足、传输速度缓慢等问题。视频压缩成为解决这一问题的有效途径,但如何在减小文件大小的同时,保证视频质量不受影响呢?本文将为你揭晓答案…...
JVM:GraalVM
文章目录 一、介绍1、什么是GraalVM:2、GraalVM版本 二、两种使用模式 一、介绍 1、什么是GraalVM: GraalVM是Oracle官方推出的一款高性能JDK,使用它享受比OpenJDK或者OracleJDK更好的性能。GraalVM的官网地址:https://www.graa…...
海外营销推广:快速创建维基百科(wiki)词条-大舍传媒
一、维基百科的永久留存问题 许多企业和个人关心维基百科是否能永久留存。实际上,只要企业和个人的行为没有引起维基百科管理方的反感,词条就可以长期保存。如果有恶意行为或被投诉,维基百科可能会对词条进行删除或修改。 二、创建维基百科…...
【HarmonyOS】HarmonyOS NEXT学习日记:五、交互与状态管理
【HarmonyOS】HarmonyOS NEXT学习日记:五、交互与状态管理 在之前我们已经学习了页面布局相关的知识,绘制静态页面已经问题不大。那么今天来学习一下如何让页面动起来、并且结合所学完成一个代码实例。 交互 如果是为移动端开发应用,那么交…...
处理uniapp刷新后,点击返回按钮跳转到登录页的问题
在使用uniapp的原生返回的按钮时,如果没有刷新会正常返回到对应的页面,如果刷新后会在当前页反复横跳,或者跳转到登录页。那个时候我第一个想法时:使用浏览器的history.back()方法。因为浏览器刷新后还是可以通过右上角的返回按钮…...
工厂方法模式java
文章目录 1. 概念2. 示例3. 代码示例 1. 概念 定义: 工厂方法模式又叫工厂模式,通过定义工厂父类创建对象的公共接口,而子类负责创建具体的对象 作用: 由工厂的子类来决定创建哪一个对象 缺点: 工厂一旦需要生成新的东西就需要修改代码,违背的开放封闭原则 2. 示例 3. 代码示…...
java模拟多ip请求【搬代码】
java模拟多ip请求 package url_demo;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.Random;public class HttpUtilTest…...
微软史诗级的蓝屏
本周经历了微软的蓝屏,一直到周末还在加班处理公司的问题。 个人终端受到的影响较大,服务器上也受到了影响。因为蓝屏的事情导致不少麻烦,据同事说因为蓝屏的问题,MGH 的手术安排也受到了影响。 目前我们也在着手处理有部署 Wind…...
HALCON数据结构
一、HALCON数据结构简介 1、HALCON中有两类参数:图形参数和控制参数。 2、HALCON算子参数中,图形输入参数、图形输出参数、控制输入参数和控制输出参数。 3、图形参数有:图像(image)、区域(region)和轮廓(XLD) 4、控制参数有:…...
数据库系统概论:事务与并发一致性问题
随着网络应用的普及,数据库并发问题变得越来越重要。数据库并发指的是多个用户或进程同时访问和操作数据库的能力。它是数据库系统性能优化的重要方面,旨在提高系统的吞吐量和响应时间,以满足多用户同时访问数据库的需求。然而,这…...
Python编程基础:元组类型、字典类型、集合类型
目录 元组类型创建/删除元组访问/操作元组元组生成式字典类型创建/删除字典访问/操作字典字典相关函数集合类型创建/删除集合集合相关操作符访问/操作集合元组类型 元组是Python中内置的不可变序列,这是它跟列表的不同之处,它没有一系列增删改等操作,只可以使用索引和for循环…...
day2 单机并发缓存
文章目录 1 sync.Mutex2 支持并发读写3 主体结构 Group3.1 回调 Getter3.2 Group 的定义3.3 Group 的 Get 方法 4 测试 本文代码地址: https://gitee.com/lymgoforIT/gee-cache/tree/master/day2-single-node 本文是7天用Go从零实现分布式缓存GeeCache的第二篇。 …...
ECMP等价多路由机制,大模型训练负载均衡流量极化冲突原因,万卡(大规模)集群语言模型(LLM)训练流量拥塞特点
大规模集群,大语言模型(LLM)训练流量特点,ECMP(Equal-Cost Multi-Path Routing)流量极化拥塞原因。 视频分享在这: 2.1 ECMP等价多路由,大模型训练流量特点,拥塞冲突极化产生原因_哔哩哔哩_bi…...
Linux 注意事项
Linux 与 Windows 是两个相互独立的操作系统,两者有较大差距: 1.1 Linux 严格区分大小写(Windows不严格区分大小写); 1.2 Linux 中所有内容,硬件设备都以文件形式保存在 /dev 目录下(万物皆文件…...
力扣SQL50 指定日期的产品价格 双重子查询 coalesce
Problem: 1164. 指定日期的产品价格 coalesce 的使用 简洁版 👨🏫 参考题解 select distinct p1.product_id,coalesce((select p2.new_pricefrom Products p2where p2.product_id p1.product_id and p2.change_date < 2019-08-16order by p2.…...
MySQL8的备份方案——全量(完全)备份(CentOS)
MySQL8的全量备份 一、安装备份工具二、备份数据三、恢复备份 点击跳转增量备份 点击跳转差异备份 点击跳转压缩备份 一、安装备份工具 官网 下载地址 备份所用工具为percona-xtrabackup 如果下方安装工具的教程失效,请点击上方下载地址转到官方文档查看 下载该工…...
做美工的网站/上海专业的seo公司
xampp的安装和thinkphp的部署一、xampp的安装1、xampp的下载:https://www.apachefriends.org/zh_cn/index.htmlxampp for linux v5.6.12下载的文件为:xampp-linux-x64-5.6.12-0-installer.run2、安装其他权限无法安装。切换到linux的root权限下ÿ…...
网站建设最流行语言/百度电脑版下载
$str "你好,欢迎使用[args1].我们会马上给你发货,地址:[args2]";如何获取[args1]和[args2];是不是一般都的正则进行匹配?正则水平有点烂,/^(\[)*(\])$/ 匹配有问题呢?请指教…...
网站开发后端最新技术/求几个好看的关键词
C语言具有操作文件的能力,比如打开文件、读取和追加数据、插入和删除数据、关闭文件、删除文件等。 与其他编程语言相比,C语言文件操作的接口相当简单和易学。在C语言中,为了统一对各种硬件的操作,简化接口,不同的硬件…...
手机网站开发者模式/什么是整合营销概念
阿里篇(仅有问题,没有答案需要大家共同学习探讨) 如何实现一个高效的单向链表逆序输出?已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位。给定一个二叉搜索树(BST),…...
大连b2c网站建设/济南最新消息
一个简单的跨平台的按钮组件。可以进行一些简单的定制。 如果这个组件外观并不怎么搭配你的设计,那你可以使用TouchableOpacity或是TouchableNativeFeedback组件来制作自己所需要的按钮,视频教程如何制作一个按钮讲述了完整的过程。或者你也可以在github…...
手游网站建设的宗旨/网站维护需要多长时间
2020年对华为来说,无疑是十分艰难的一年,通信设备与消费电子两大业务都受到了不小的冲击,令人担忧。但是,华为不仅挺过了2020年,还取得了一系列优异成绩,一次次证明着自己的实力。日前,华为又有…...