ICMP协议/IGMP协议详解

ICMP协议/IGMP协议详解网际控制报文协议ICMP功能:ICMP允许主机或者路由器报告差多情况和提供有关异常情况的报告,它是网络层的协议,ICMP报文装在IP数据报中,作为其中的数据部分。ICMP报文的种类ICMP差错报文终点不可达源点抑制超时参数问题改变路由(重定向)ICMP询问报文回送请求和回答时间戳请求和回答ICMP应用举例ping(PacketInternetGroper)命令:该命令利用发送分

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

网际控制报文协议ICMP

功能:ICMP允许主机或者路由器报告差多情况和提供有关异常情况的报告,它是网络层的协议,ICMP报文装在IP数据报中,作为其中的数据部分。

ICMP报文的种类

  • ICMP差错报文

    • 终点不可达
    • 源点抑制
    • 超时
    • 参数问题
    • 改变路由(重定向)
  • ICMP询问报文

    • 回送请求和回答
    • 时间戳请求和回答

ICMP应用举例

ping(Packet Internet Groper)命令:该命令利用发送分组网间嗅探数据包来测试两台主机之间的连通性

根据经验判断,ping局域网内的地址,延迟应该在10ms以内是正常情况

TTL:生存时间,ping包每过一个路由器,TTL值减1

一般操作系统的TTL值:

  • Linux:64
  • windows:128
  • Unix:255

ping -i 2 命令:更改TTL,跟踪数据包沿途经过的路由器

局域网排除故障的步骤:

  • 1、先ping网关,看看通不通
  • 2、再ping内网主机,检查通不通
  • 3、最后ping外网,检查通不通

使用ping包来估算带宽

  • pathping命令:数据包路径 计算丢包情况
  • tracert 命令: 跟踪数据包路径
  • traceroute命令: 路由器上跟踪数据包

网际组管理协议IGMP

在说IGMP协议之前,先介绍多播的概念

多播,又称为组播,就是进行一对多的通信,这里和广播区分一下:广播是一对所有的通信,一个主机发广播包,同一个局域网的所有主机都可以收到。而组播是指定的几个人可以收到组播包。

组播应用举例

  • 实时信息的交付(比如新闻和股市行情)
  • 软件更新
  • 交互式会议等

组播的优点

  • 与单播相比,在一对多的通信中,多播可以大大节约网络资源

注:局域网具有硬件多播功能,因此当组播包到达局域网时,不需要复制分组,在局域网上的多播组成员都可以收到这个多播包。进行多播通信时,服务器与主机之间没有建立会话,所以每个多播组成员所收到的多播包是同时的,而且是实时的。就像看电视一样,自己并不能随意调整自己所看视频(比如这个多播包是视频数据)的进度。

因特网上多播数据包的传输需要依靠多播路由器(一个路由器要想转发多播包,必须增加一些能够识别多播包的软件)

1992年,因特网上开始试验多播主干网MBONE,它可把分组传播给地点分散但是属于同一个组的许多主机。

在因特网上进行多播就是IP多播,IP多播所传送的分组需要使用多播IP地址

实际上,多播组的标识符就是IP地址中的D类地址!!!

多播使用IGMP协议,多播地址只适用于目的地址,而不能用于源地址,所以,对多播数据包不产生ICMP差错报文

网际组管理协议IGMP和多播路由选择协议

1、IP多播需要两种协议

  • IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或者退出了多播组
  • 多播路由选择协议是让因特网上的多播路由器协调工作,以便把多播数据包用最小代价传送给所有的组成员

2、IGMP协议工作的两个阶段

  • 当某个主机加入新的多播组时,该主机应向多播组的多播地址发送一个IGMP报文,声明自己要称为该组的成员。本地的多播路由器收到IGMP报文后,还要利用多播路由选择协议把这种组成员关系转发给因特网上的其他路由器

  • 组成员的关系是动态的,本地多播路由器要周期性的探询本地局域网上的主机,一遍知道这些主机是否还继续是组的成员

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193852.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java工程师简历项目经验怎么写_高级java开发工程师简历

    java工程师简历项目经验怎么写_高级java开发工程师简历开头在找工作的过程中,对于Redis技术知识的掌握已经成为必须的技能。美团面试常常就会被问到Redis相关知识,而这次我就差点倒在了美团3面,面试官连问我以下几个Redis的问题,然后就卡壳了…redis了解吗?你说说怎么用redis实现分布式锁?Redis常用数据结构及底层数据结构实现如何解决Redis的并发竞争Key问题如何保证缓存与数据库双写时的数据一致性?剩下的不太记得了…为此面试完回来针Redis专门做了一个面试问题大总结架构筑基大家都知道,性能一直

    2025年6月1日
    4
  • 画中画广告..例

    画中画广告..例<!–画中画广告开始–><tableborder=0cellspacing=0cellpadding=0align=left><tr><td&gt

    2022年7月1日
    23
  • Hystrix:服务熔断

    Hystrix:服务熔断文章目录服务雪崩服务雪崩​多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”,如果扇出的链路上某个微服务的调用响应时间过长,或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。​对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几十秒内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,导致整个系统发生更多的级联故障,

    2022年10月21日
    3
  • sql聚合函数的使用「建议收藏」

    sql聚合函数的使用「建议收藏」1.selectcount(*)fromtable;这个是统计查询出来的数据数量2.selectmin(id)fromtable;取出数据中id最小的值3.selectmax(id)fromtable;取出数据中id最大的值4.selectMOD(125,10);取余数5.selectfloor(columns)fromtablewherecondition;从取出的数据中向下取整,比如你取到的数据是45.8,那么通过floor函数处理之后,打印出来的就是4

    2022年6月21日
    26
  • USACO Section 2.1 Sorting a Three-Valued Sequence

    USACO Section 2.1 Sorting a Three-Valued Sequence

    2021年12月2日
    44
  • SQL报错注入_报错注入原理

    SQL报错注入_报错注入原理目录1报错注入概述2常用的报错注入命令2.2groupby重复键冲突(count()+floor()+rand()+groupby组合)2.2.1groupby重复键冲突的原理及bug演示2.2.2补充:sql语句解析过程2.3XPATH报错2.3.1extractvalue()函数2.3.2updatexml()函数2.4测试失败的命令3报错注入案例3.1操作环境3.2获取敏感信息3.2.1获取数据库名3.2.2获取表名3.2.3获取字段名3.2.4获取字段内

    2022年9月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号