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

计算机网络:网络层 —— IP 多播技术

文章目录

    • 基本概念
      • IP多播地址和多播组
    • IP多播的类型
      • 硬件多播
      • 将IPv4多播地址映射为多播MAC地址

基本概念

多播(Multicast,也称为组播)是一种实现“一对多”通信的技术,允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的),与传统单播“一对一”通信相比,多播可以极大地节省网络资源

  1. 在因特网上进行的多播称为IP多播,也称多址广播或组播,是一种允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的 TCP/IP 网络技术。

  2. 多播的基础概念是“组”。一个多播组就是一组希望接收特定数据流的接收者,这个组没有物理或者地理的边界,组内的主机可以位于互联网或者专用网络的任何地方。

  3. 当发送方发送数据包时,该数据包会通过网络传输到所有加入该多播组的设备,而不是通过设备的单播地址。

  4. 当多播组的成员数量很大时,采用多播方式可以显著地减少网络中各种资源的消耗。

![[单播与多播.png]]

  • 左边部分显示的是传统的单播方法。在这种情况下,视频服务器必须向每一个订阅频道的用户单独发送一份视频流

    假设总共有 60 个用户,那么服务器就需要同时维持 60 条独立的连接,每一条连接都需要消耗一定的带宽资源。随着用户的增加,这种方式会导致服务器负担过重,网络带宽利用率低下。

  • 右边部分则是采用多播技术的情景。在这里,视频服务器只需要发送一次视频流,而路由器 R1、R2 和 R3 负责将这份流复制并分发给各个子网中的用户。这样一来,无论有多少用户观看同一个节目,服务器只需发送一份原始内容即可,大大减轻了服务器的压力并且提高了网络带宽的使用效率。

IP多播地址和多播组

在IPv4中,D类地址被作为多播地址。多播地址只能用作目的地址,而不能用作源地址

![[多播地址.png]]

用每一个D类地址来标识一个多播组,使用同一个IP多播地址接收IP多播数据报的所有主机就构成了一个多播组每个多播组的成员是可以随时变动的,一台主机可以随时加入或离开多播组。多播组成员的数量和所在的地理位置也不受限制,一台主机可以属于几个多播组

  • 非多播组成员也可以向多播组发送IP多播数据报。

  • 与 IP 数据报相同,IP 多播数据报也是“尽最大努力交付”,不保证一定能够交付给多播组内的所有成员。

  • IPv4 多播地址又可分为预留的多播地址(永久多播地址)、全球范围可用的多播地址以及本地管理的多播地址 [RFC 3330]

![[IPv4多播地址.png]]

IP多播的类型

IP 多播可以分为以下两种:

  1. 只在本局域网上进行的硬件多播
  2. 因特网上进行的多播

目前大部分主机都是通过局域网接入因特网的。因此,在因特网上进行多播的最后阶段,还是要把 IP 多播数据报在局域网上,用硬件多播交付给多播组的所有成员

硬件多播

硬件多播是一种在局域网(LAN)上实现多播通信的技术,它利用硬件(如网络接口卡)的特性来高效地将多播数据发送给多个接收者。

由于 MAC 地址(也称为硬件地址)有多播 MAC 地址这种类型,因此只要把 IPv4 多播地址映射成多播 MAC 地址,即可将 IP 多播数据报封装在局域网的 MAC 帧中,而 MAC 帧首部中的目的 MAC 地址字段的值,就设置为由 IPv4 多播地址映射成的多播 MAC 地址。这样,可以很方便地利用硬件多播来实现局域网内的IP多播

![[硬件多播.png]]

当给某个多播组的成员主机配置其所属多播组的IP多播地址时,系统就会根据映射规则从该IP多播地址生成相应的局域网多播MAC地址。

因特网号码指派管理局 IANA,将自己从IEEE注册管理机构申请到的以太网 MAC 地址块中从 01-00-5E-00-00-0001-00-5E-7F-FF-FF 的多播 MAC 地址,用于映射 IPv4 多播地址。这些多播 MAC 地址的左起前25个比特都是相同的剩余23个比特可以任意变化,因此共有 2 23 2^{23} 223

![[多播MAC地址.png]]

将IPv4多播地址映射为多播MAC地址

32比特的IPV4多播地址映射成48比特的多播MAC地址的方法:

![[将IPv4多播地址映射为多播MAC地址.png]]

  1. 前缀固定不变:IPv4 多播地址的前四位始终为 1110,表示这是一个多播地址。

  2. 剩余28位任意变化:IPv4 多播地址的第 5 位到第 32 位(共 28 位)可以任意变化。

  3. 映射规则

    • 将IPv4多播地址的低 23 位直接复制到 48 位的多播MAC地址的高 23 位。
    • MAC 地址的第 24 位设置为 0
    • MAC 地址的第 25 位到第 48 位设置为 0000.0001

由于 IP 多播地址可变化的 28 比特的前 5 个比特无法映射到 MAC 多播地址,这会造成IP多播地址与多播MAC地址的映射关系并不是唯一的。如果不同的IP多播地址之间的不同之处仅出现在不能映射的那5个比特,则这些IP多播地址会映射出同一个多播 MAC 地址。

![[将IPv4多播地址映射为多播MAC地址2.png]]

由于IP多播地址与多播MAC地址的映射关系不是唯一的,因此收到IP多播数据报的主机,还要在网际层利用软件进行过滤,把不是主机要接收的IP多播数据报丢弃。

在这里插入图片描述


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

相关文章:

  • 【c++日常刷题】两个数字的交集、点击消除、最小花费爬楼梯
  • lost+found目录实现文件找回的原理
  • HO-XGBoost河马算法优化极限梯度提升树多变量回归预测(Matlab)
  • [5] 一篇文章教会你如何实现端口敲门
  • 【MyBatis】【基于轻量型架构的WEB开发】课程 课后习题 章节测试
  • Cocos使用精灵组件显示相机内容
  • 机器学习与数学公式
  • flutter报错‘/Users/xxx/.gradle/caches/journal-1/file-access.bin‘.
  • 【rust实战】rust博客系统4_连接数据库及查询数据
  • 重构响应对象
  • Dockerfile文件编写
  • linux perf 环境部署和基本测试(基于Ubuntu20.04)
  • 探讨Java深搜算法的学习笔记
  • unreal engine5动画重定向
  • 域渗透-域环境部署
  • Spring Boot集成Milvus和deeplearning4j实现图搜图功能
  • 模拟示波器如何读数据?
  • HTML练习题:彼岸的花(web)
  • Spring学习笔记_20——@Profile
  • C++学习笔记----9、发现继承的技巧(七)---- 转换(2)
  • 区块链介绍
  • keepalive+mysql8双主
  • Java基于SpringBoot+Vue框架的房屋租赁管理系统(附源码,文档)
  • python在word的页脚插入页码
  • springboot 整合 modbus4j
  • Flutter图片控件(七)