ICMP和IGMP协议简介

参考网站:https://www.jianshu.com/p/4bd8758f9fbd

一、ICMP

1.1 ICMP概念

ICMP的全称是Internet Control Message Protocol(网际控制信息协议)。
ICMP工作在TCP/IP体系中的网络层,是IP协议的一个补充,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。ICMP报文是在IP数据报内部传输的。IP协议是不可靠协议,不能保证 IP数据报能够成功的到达目的主机,无法进行差错控制,当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

1.2 ICMP应用

1. ping

ping是一个用来查询网络通不通的一个工具,是系统自带的,运行于内核,调用ICMP协议。

ping的工作原理:用类型码为0的ICMP发请求,受到请求的主机则用类型码为8的ICMP回应。ping通过调用echo来发送请求,通过是否收到echo-reply来查询网络层的连通性。ping的结果会给出传送的时间和TTL的数据,还可以查看主机到目的主机的路由。这是因为ICMP的ping请求数据报在每经过一个路由器的时候,路由器就会把自己的IP地址放到该数据包中,而目的主机则会把这个IP列表复制到ICMP数据包中发回给主机。但是,IP头能记录的路由列表非常有限,如果要观看完整的路由信息,就要用到traceroute工具了。(目的主机在接收到客户端的查询后返回的IP数据包包含着自己的ip)

计算机网络中TTL的含义?

指定数据被路由器丢弃之前允许通过的网段数量,TTL是由主机设置,以防止数据包不断在IP互联网上永不终止的循环,转发IP数据包的时候,要求路由器将TTL的数值减1。

2. traceroute

traceroute是用来侦测主机到目的主机所经路由情况的工具,可以获取到所经路由器的IP地址。
traceroute的工作原理:它收到目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动将TTL减1。而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生一个主机不可达的ICMP数据包给主机。主机收到这个数据包以后就发送一个TTL=2的数据包给主机,然后刺激第二个路由器给主机发送ICMP数据包,如此反复直到到达目的主机。这样,traceroute就拿到了所有的路由器IP,从而避免了IP头只能记录有限的路由IP
的问题。

二、IGMP

IGMP 是Internet Group Management Protocol(互联网组管理协议)的简称。它是TCP/IP 协议族中负责IP 组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

组播成员概念:
一个多播会话的多播源并不一定要成为接收它发送的流量的组中的成员。事实上,典型网络中,源并不知道那些主机是组员,接收者任何时候都能自由加入和离开组。如果源和所有的组员共享一个LAN,那么就不需要其它协议。如果发送的多播流量需要经过大型的网路,则路由器必须通过某种方法获知连接的网络中是否有组员,如果有,是哪个组的成员。当一个路由器知晓有一个多播会话时,它会向其所属的子网查询是否有主机要加入这个接收组。会向子网中所有系统地址224.0.0.1发送查询,或它可以向组内正在查询的某一特定地址发送。如果有一个或多个主机回应,那么这个路由器会将会话的数据包转到正确的子网中。

IGMP协议(IPv4) 和MLD协议(IPv6)用来帮助主机指定对那些组感兴趣(加入哪一些多播组),以及确定来自某些特定源的报文应该被接收还是过滤掉。为了实现这一目标,主机需要向本地子网的组播路由器发送一些报文来向组播路由器交互一些多播成员关系管理的信息。

组播使用了D类IP地址,IP地址的范围为224.0.0.0-239.255.255.255。其中224.0.0.1代表子网上的所有计算机,224.0.0.2代表子网上的所有路由器。另外,多播ip地址只可作为目的地址,而且不能生成关于多播地址的差错报文。

IGMP的mac地址为01-00-5e-xx-xx-xx,其中后23bits是ip地址的低23bits。从这也说明了只要知道一个多播ip地址,即可换算出其mac地址,不需要通过arp请求获取mac地址。

IGMP协议到目前已经有三个版本:

IGMPv1(由RFC 1112 定义) 支持host membership query 和host membership report
IGMPv2(由RFC 2236 定义) 支持membership query,membership report,Leave Group message
IGMPv3(由RFC 3376 定义) 支持membership report 和membershipquery
其中MembershipQuery分为三种:General Query,用于查询接口下所有多播成员信息;Group-Specific Query,用于查询接口下指定组的成员信息; Group-and-Source-Specific Query,该类型为IGMPv3中新增加的,用于查询接口下是否有成员需要接收指定源列表中的源所发出的特定组的多播流。

简而言之:IGMP 各版本区别v1无离开信息,v2有离开信息,v3允许主机指定它要接收通信流量的主机对象。IGMPSnooping(窥探)监听IGMP协议包,形成组播成员关系表;IGMP Proxy(代理)是靠拦截用户和路由器之间的IGMP报文建立组播表。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352