ICMP 和 IGMP 的区别
ICMP 和 IGMP 都是 OSI(开放系统互联)模型的网络协议。ICMP 用于跟踪消息并确定数据是否到达网络目的地,而 IGMP 用于管理网络用户。ICMP 只诊断网络,而不参与网络管理。当计算机用户在没有互联网连接的情况下在互联网上搜索某些数据时,会收到诸如“目的地不可达”之类的错误消息,这些类型的错误消息是使用 ICMP 协议发送的。
什么是 ICMP?
ICMP 位于模型的网络层。如果网络中发生错误,它会记录错误并报告故障。ICMP 中涉及两种类型的消息:
错误消息 − 当主机之间通信发生错误时,会显示此类消息。一些错误消息包括:目的地从源不可达、超时超过预期、路由重定向以及请求发送者发送低速率数据。
查询消息 − 此类消息用于获取有关所涉及主机的任何信息。一些查询消息包括:确定发送和接收数据所需的时间以及检查连接可用性。
ICMP 的功能
问题报告:数据包旨在突出显示网络问题情况。例如,它们执行的一些操作包括将数据重新发送到不同的位置或生成类似“目的地不可达”的消息。
网络可达性:可以使用 ICMP 数据包确保网络可达性。“ping”命令经常用于检查网络连接,收到回显回复表示网络无错误,如果未收到回显回复则表示存在某些错误。
网络拥塞:可以通过 ICMP 数据包检测网络拥塞。例如,在拥挤的网络中,主机可能会收到 ICMP“源抑制”消息以降低其传输速率。
网络重定向:可以通过 ICMP 数据包将流量重定向到更有利的路径。例如,可以通过向主机发送 ICMP“重定向”消息来告知其是否存在特定目的地的更好下一跳路由器。
什么是 IGMP?
IGMP 的功能包括允许设备加入和离开组。所涉及的组类型是多播,其中所有设备使用相同的 IP 地址。IGMP 管理组的所有成员并根据适当的请求发送数据。
当设备想要加入多播组时,它会向其本地路由器发送 IGMP“加入组”消息。当这些消息到达时,路由器会调整多播组成员身份。路由器会复制它接收到的发送到多播组公共 IP 地址的数据包,并将这些复制的数据包的副本分发给多播组的每个成员。
类似地,当设备想要离开多播组时,它会通过 IGMP“离开组”消息通知其本地路由器。然后更新多播组成员身份,路由器停止向该设备传输数据包。
在支持一对多网络应用程序(如在线流媒体视频和游戏)时,IGMP 在控制多播组成员身份和确保有效利用网络资源方面至关重要。
ICMP 和 IGMP 的区别
基本参数 |
ICMP |
IGMP |
---|---|---|
缩写 |
ICMP 的缩写是互联网控制消息协议 (Internet Control Message Protocol)。 |
IGMP 的缩写是互联网组管理协议 (Internet Group Management Protocol)。 |
网络类型 |
它遵循单播网络,其中通信是在一个发送方和一个接收方之间建立的。 |
它遵循多播网络,其中通信是从一个发送方到多个接收方建立的。 |
机制 |
它监控和维护消息是否成功发送。 |
它同时将数据从发送方发送到多个接收方。 |
控制通信 |
它控制一对一通信,并报告任何发生的错误。 |
它控制一对多通信。 |
操作 |
它在一个主机到主机或一个路由器到路由器之间运行。 |
它在一个主机到多个路由器之间以及一个路由器到多个主机之间运行。 |
测试可达性 |
它测试特定节点是否到达主机。 |
它管理组的所有节点是否同时接收相同的数据。 |
发送请求 |
它向目标主机发送 ICMP 回显请求消息。 |
它向本地路由器发送 IGMP 成员报告消息。 |
使用的功能 |
它使用 PING 功能。 |
它使用多播功能。 |
结论
ICMP 是一个主要的网络协议,用于根据网络功能生成近似消息。它只能生成错误消息,而不能纠正这些错误。在 IGMP 中,使用了三个不同版本来在路由器中将数据包从一个主机发送到多个主机。