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)
上一篇 2025年11月17日 下午12:43
下一篇 2025年11月17日 下午1:15


相关推荐

  • 关于整型转字符串的三种方法[通俗易懂]

    关于整型转字符串的三种方法[通俗易懂]首先声明,我写博客很大程度是为了记录和分享我的编程之路,如果后来人是在百度上面搜到我的文章,动机不是为了知识本身,而是为了应付题目的话,我话摆在这里,借鉴可以,但是一定要转化成自己的知识,不要只抄,然后没弄懂,那还不如直接花钱请人帮你做了,我一直秉持的原则就是,你真不想干某件事,而这件事又在你看来是没有意义的话,倒还不如用钱解决,说白了就是用钱买时间,没有必要在一些对你没有意义的地方花过多时间,倒还不如用这么点时间去做一些更有意义的事情。众所周知,C语言是一门很基础的入门语言,相对于python这些脚本语

    2022年10月19日
    14
  • 一种集各种优点于一身的技术面试方式–转「建议收藏」

    一种集各种优点于一身的技术面试方式–转

    2022年3月2日
    40
  • MongoDB安装与副本集

    MongoDB安装与副本集

    2021年6月15日
    79
  • (可能全网最全/长的)2万字Openclaw保姆教程

    (可能全网最全/长的)2万字Openclaw保姆教程

    2026年3月14日
    2
  • git 命令怎么删除远程分支文件_git删除远程仓库分支

    git 命令怎么删除远程分支文件_git删除远程仓库分支本地删除请看:git命令怎么删除本地分支查看所有分支查看项目的远程分支:gitbranch-r删除远程分支比如我们要删除远程分支origin/SLT_table_reportgitpushorigin-d分支名我们执行:gitpushorigin-dSLT_table_report删除成功注意这里不能写成origin/SLT_table_report,不然会报错:具体请参考【git删除远程分支报错error:unabletodelete‘

    2022年10月16日
    6
  • AlertDialog(对话框)详解

    AlertDialog(对话框)详解AlertDialog 可以在当前的界面上显示一个对话框 这个对话框是置顶于所有界面元素之上的 能够屏蔽掉其他控件的交互能力 因此 AlertDialog 一般是用于提示一些非常重要的内容或者警告信息 1 创建 AlertDialog 首先 我们来了解一下 AlertDialog 的大体创建顺序 与 TextView Button 这些控件稍有不同 AlertDialog 并

    2026年3月19日
    3

发表回复

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

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