当前位置: 首页 > article >正文

网络层8——IP多播

目录

一、什么是多播?

二、在局域网进行多播

三、IGMP和协议多播路由选择协议

1、IP多播的两种协议

(1)IGMP协议的实现和原理

(2)多播路由选择协议

1)洪范与剪除

2)隧道技术

3)基于核心的发现技术


一、什么是多播?

多播就是一对多的通信,但不是广播,广播是对所有,多播是部分
多播的主要特点是节省网络资源
多播依靠多播路由器实现,多播路由器也可以实现单播IP数据报
IP多播分组使用的目的地址是D类地址,叫做多播IP地址
D类地址前四位是1110
因此可以标识的范围是:224.0.0.0 ~ 239.255.255.255
多播地址只能用于目的地址,而不能用于源地址
首部协议是2,标识使用IGMP协议报文(网络组管理协议)
因此,多播数据报不产生ICMP报文,
因此,PING命令后面加 多播地址,将得不到回应

二、在局域网进行多播

以太网MAC地址中(48位),第一个字段的最低为为1时,为多播地址(MAC地址的第8位)
48位的多播地址,前25位固定不变,为01-00-5E,只有后23位可作为多播

IP多播地址如何转换为MAC地址?
48位MAC地址,32位IP多播D类地址
前25位置不变,为01-00-5E
后23位由IP地址的后23位构成

三、IGMP和协议多播路由选择协议

1、IP多播的两种协议

多播的目的主机可以分散在不同的局域网
一个多播目的地址的所有目的主机组成一个多播组

(1)IGMP协议的实现和原理

IGMP不知道IP多播组包含的主机数量,也不知道组员分布在哪些主机上
IGMP协议的作用是,让链接在本地居局域网的多播路由器知道:
本局域网是否有主机参加 / 退出了多播组
IGMP使用IP数据报传递报文,即IGMP报文作为IP数据报的数据部分

IGMP的工作分成两个阶段:
第一,加入:某主机要加入某多播组,该主机要向对应多播组发送IGMP报文,声明加入
                     本地多播路由器依据多播路由协议,将组员关系通知其他多播路由器
第二,探寻:多播路由器周期性测探本局域网的组员情况,只要有一台组成员,就认为该组活跃
                      如果多次探寻没有回应,则认为本网络所有主机不在多播组内,不再对其他多播路由                  器转发组员关系

IGMP实现的具体措施:

(1)参加分组的主机和多播路由器如何通信?
    主机和多播路由器之间都使用IP多播,并且尽量使用硬件传播
    没有IP多播的主机不会收到IGMP报文

(2)多播路由器如何对分组进行探询?
    多播路由器,,探询组员时,对所有分组发送询问报文
    (但也允许对一个组发送)

(3)如果一个网络链接有多个多播路由器,怎么办?
    迅速选择其中一个负责运行,不乱

(4)如果一台主机同时参加多个分组,如何回应询问?
    IGMP询问报文设置一个数值N,指明最长响应时间,
    主机收到多个询问时,对每一个多播分组随机设置一个0~N的值
    后按照N值从小到大的顺序发送回应

(5)路由器对本网络进行探询,主机如何监听和回应?
    同一个组内的所有主机都需要监听
    但是只要一个主机回复
    一旦有一个主机回复,其他主机就不需要回复

(6)如果一台主机的多个进程加入了某分组,怎么就收信息?
    主机只收一个多播数据报副本,然后给每一个进程转发

(7)多播路由器的发送者 和 接收者 都不知道多播组的成员数量和具体情况
    对主机中的进程也是如此

综上,仅仅知道有没有是不够的
还需要知道具体发给哪个主机
哪个主机是多播的组员
因此还需要多播路由选择协议

(2)多播路由选择协议

由于每一台主机可以随时加入 / 退出一个多播组
因此,多播路由协议必须随时进行动态调整多播路由
(而单播路由往往只有网络拓扑发生变化才需要更新调整)
没有参加任何多播分组的局域网中的主机,也可以向任何多播分组发送多播数据报
多播数据报可以通过没有任何多播组员的局域网
即,多播数据报通过的网络不一定非要有多播组成员

多播路由转发多播数据报有三种方式:
洪泛与剪除、隧道技术、基于核心的发现技术

1)洪范与剪除

适合较小的分组,且所有分组的网络都是相邻的
第一步:源路由器对所有路由器进行广播
    为避免数据兜圈子,采用反向路径广播
反向路径广播:对目的路由器,每次收到一个数据分组,都要检查该数据分组是否是从源路由器到本路由器的最短路径
            如果不是,丢弃;是,接收
第二步:判断是从源头发送来的数据报,则向其他方向转发数据分组,除了接收方向
第三步:如果同时收到,多个相同源路径的数据报,则选择路径上与本路由器相邻的,IP地址最小的路由器的路径
第四步:如果数据到某一个路由器,发现本网络没有分组成员,则剪除;否则加入多播转发树

2)隧道技术

适用于多播组在地理上很分散的情况
使用情景:网络支持多播,但是路由器不支持多播
此时路由器对多播数据报进行再封装
加上普通IP数据报首部
成为一个单播数据报
然后通过隧道传播
到达目的路由器后,剥去IP首部,成为多播数据报

3)基于核心的发现技术

适合大范围变动的多播分组
对每一个多播组指定一个核心路由器,给出单播IP地址
同时根据洪泛和剪除建立多播转发树

具体实现是:
当一个路由器A向该核心路由器转发多播数据报时,
途中的每一个路由器都要对该多播数据报进行检查
如果途中的某一个路由器B是该分组内的路由器
则B向分组内成员转发多播数据报
如果发来的是一个请求加入的数据报
则B将之加入路由信息
并向A通过隧道技术发送每一个多播数据报的副本

这样,就扩大了分组的范围,因此称为发现


http://www.kler.cn/a/404964.html

相关文章:

  • Lucene(2):Springboot整合全文检索引擎TermInSetQuery应用实例附源码
  • 【2024最新】基于springboot+vue的疫情网课管理系统lw+ppt
  • C++桥接模式在使用时需要注意什么
  • Java list
  • 前端—Cursor编辑器
  • AI Prompt Engineering
  • 论文复现_How Machine Learning Is Solving the Binary Function Similarity Problem
  • mapStruct详解
  • docker部署redis7
  • 说一说JS伪数组和数组的区别?
  • 云原生基础-云计算概览
  • 算法-二分查找2(代码笔记)
  • 在 Ubuntu 上配置防火墙以开放特定端口
  • 【Redis_Day5】String类型
  • Python Matplotlib 数据可视化全面解析:选择它的七大理由与入门简介
  • SQL面试题——交叉窗口计算
  • es执行_update_by_query要注意
  • Mac系统下配置 Tomcat 运行环境
  • 基于边缘计算技术的机器状态监测系统
  • 2024年11月17日Github流行趋势
  • 数据库视图-多表
  • 力扣题解(新增道路查询后的最短距离II)
  • 自适应安全框架(ASA)在网络安全2.0新防御体系中的应用
  • Mybatis框架之模板方法模式 (Template Method Pattern)
  • 深入理解 Java 阻塞队列:使用场景、原理与性能优化
  • 11.21Scala