【计算机网络 - 基础问题】每日 3 题(四十五)

✍个人博客:https://blog.csdn.net/Newin2020?type=blog

📣专栏地址:http://t.csdnimg.cn/fYaBd

📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~

❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

📝推荐参考地址:https://www.xiaolincoding.com/(这个大佬的专栏非常有用!)

133. ICMP 功能都有啥?

ICMP 主要的功能包括:确认 IP 包是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。

在 IP 通信中如果某个 IP 包因为某种原因未能达到目标地址,那么这个具体的原因将由 ICMP 负责通知。

如上图例子,主机 A 向主机 B 发送了数据包,由于某种原因,途中的路由器 2 未能发现主机 B 的存在,这时,路由器 2 就会向主机 A 发送一个 ICMP 目标不可达数据包,说明发往主机 B 的包未能成功。

ICMP 的这种通知消息会使用 IP 进行发送 。

因此,从路由器 2 返回的 ICMP 包会按照往常的路由控制先经过路由器 1 再转发给主机 A 。收到该 ICMP 包的主机 A 则分解 ICMP 的首部和数据域以后得知具体发生问题的原因。

134. ICMP 类型

ICMP 大致可以分为两大类:

  • 一类是用于诊断的查询消息,也就是「查询报文类型」
  • 另一类是通知出错原因的错误消息,也就是「差错报文类型」

135. IGMP

在前面我们知道了组播地址,也就是 D 类地址,既然是组播,那就说明是只有一组的主机能收到数据包,不在一组的主机不能收到数组包,怎么管理是否是在一组呢?那么,就需要 IGMP 协议了。

IGMP 是因特网组管理协议,工作在主机(组播成员)和最后一跳路由之间,如上图中的蓝色部分。

  • IGMP 报文向路由器申请加入和退出组播组,默认情况下路由器是不会转发组播包到连接中的主机,除非主机通过 IGMP 加入到组播组,主机申请加入到组播组时,路由器就会记录 IGMP 路由器表,路由器后续就会转发组播包到对应的主机了。
  • IGMP 报文采用 IP 封装,IP 头部的协议号为 2,而且 TTL 字段值通常为 1,因为 IGMP 是工作在主机与连接的路由器之间。
相关推荐
代码小将2 小时前
Leetcode209做题笔记
java·笔记·算法
朗迹 - 张伟2 小时前
UE5 PCG学习笔记
笔记·学习·ue5
dhxhsgrx3 小时前
PYTHON训练营DAY25
java·开发语言·python
Musennn3 小时前
leetcode 15.三数之和 思路分析
算法·leetcode·职场和发展
寻丶幽风4 小时前
论文阅读笔记——双流网络
论文阅读·笔记·深度学习·视频理解·双流网络
风逸hhh5 小时前
python打卡day25@浙大疏锦行
开发语言·python
刚入门的大一新生5 小时前
C++初阶-string类的模拟实现与改进
开发语言·c++
chxii7 小时前
5java集合框架
java·开发语言
老衲有点帅7 小时前
C#多线程Thread
开发语言·c#