IP 多播

一、IP 多播的基本概念

1.1.简介

不使用多播时需要发送 90 次单播:

使用多播时只需要发送 1 次多播:

1.2.IP 多播的一些特点

  • 多播使用组地址:D 类IP地址支持多播。多播地址只能用于目的地址,而不能用于源地址。
  • 永久组地址:由因特网号码指派管理局 IANA 负责指派。
  • 多播的组成员是动态的。
  • 可以使用硬件进行多播

二、在局域网上进行硬件多播

  • 因特网号码指派管理局 IANA 拥有的以太网地址块的高 24 位为 00-00-5E

  • 因此 TCP/IP 协议使用的以太网多播地址块的范围是:

    ​ 从 00-00-5E-00-00-00

    ​ 到 00-00-5E-FF-FF-FF

  • D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址。

2.1.D 类 IP 地址与以太网多播地址的映射关系


三、网际组管理协议 IGMP 和多播路由选择协议

3.1.IP多播需要两种协议

  • 为了使路由器知道多播组成员的信息,需要利用网际组管理协议 IGMP (Internet Group Management Protocol)。
  • 连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议

IGMP 使多播路由器知道多播组成员信息

IGMP 的本地使用范围

  • IGMP 并非在因特网范围内对所有多播组成员进行管理的协议。
  • IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。
  • IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。

多播路由选择协议比单播路由选择协议复杂得多

  • 多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。
  • 多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。
  • 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。

3.2.网际组管理协议 IGMP

IGMP 是整个网际协议 IP 的一个组成部分。

  • 和 ICMP 相似,IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。
  • 因此,我们不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。

IGMP 可分为两个阶段

  • 第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。

  • 第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。

只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。

IGMP 采用的一些具体措施

  • 在主机和多播路由器之间的所有通信都是使用 IP 多播。
  • 多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。默认的询问速率是每 125 秒发送一次。
  • 当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系。
  • 在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。
  • 同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了。

IGMP应用举例

如图,三个城市的用户通过路由器连接。当城市A的老板要给城市B和C的员工开会时,包含城市A老板声音和图像的一个多播数据包通过路由器中转发往指定的多播地址。如有需要,多播数据包会在路由器D处复制成多份分别发往城市B和C的路由器。

连接城市C的路由器C需要扫描城市C的网段,看看有没有计算机属于该多播地址。只要该网段有一台计算机属于该多播地址(只要有一个员工参加会议),那么路由器C都会向上一级路由器D请求一份多播数据包。若没有,那么路由器C就会告诉路由器D不用发送多播数据包过来了。

3.3.多播路由选择协议

  • 多播路由选择协议尚未标准化。
  • 一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。
  • 多播路由选择实际上就是要找出以源主机为根结点的多播转发树。
  • 在多播转发树上的路由器不会收到重复的多播数据报。
  • 对不同的多播组对应于不同的多播转发树。同一个多播组,对不同的源点也会有不同的多播转发树。

转发多播数据报使用的方法

  • 洪泛与剪除:

这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。

  • 隧道技术;

  • 基于核心的发现技术:

这种方法对于多播组的大小在较大范围内变化时都适合。

几种多播路由选择协议

  • 距离向量多播路由选择协议 DVMRP;
  • 基于核心的转发树 CBT;
  • 开放最短通路优先的多播扩展 MOSPF;
  • 协议无关多播-稀疏方式 PIM-SM;
  • 协议无关多播-密集方式 PIM-DM;

IP 多播的更多相关文章

  1. 《TCP/IP具体解释卷2:实现》笔记--IP多播

    D类IP地址(224.0.0.0到239.255.255.255)不识别互联网内的单个接口,但识别接口组,被称为多播组. 单个网络上的组成员利用IGMP协议在系统之间通信. 多播路由器用多播选录协议. ...

  2. IP多播(组播)

    IP多播是实现数据一对多通信的模式.从一个源点传送到多个目的地,数据仅仅拷贝一份.这里说的数据仅仅拷贝一份,是指在每一条须要它的两个点之间,数据仅仅有一份.例如以下图为<计算机网络>(谢希 ...

  3. Visual C++实现局域网IP多播

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  4. IP多播技术及其应用

    随着全球互联网(Internet)的迅猛发展,上网人数正以几何级数快速增长,以因特网技术为主导的数据通信在通信业务总量中的比列迅速上升,因特网业务已成为多媒体通信业中发展最为迅速.竞争最为激烈的领域. ...

  5. TCP/IP学习笔记13--IP地址的构成,广播地址,IP多播,子网掩码

    现在,我是蔚蓝的 :在此岸或彼岸,我都是蔚蓝的.  ---李瑾 IP对应的是OSI模型中的网络层,TCP对应的是传输层.每一个参与通信的主机都会有一个IP地址. IP地址(IPv4地址)含4个字节,每 ...

  6. 【miscellaneous】IP多播技术及其编程

    标  题: IP多播技术及其编程 发信站: 幽幽黄桷兰 (Mon Jun 16 10:35:39 2003) 转信站: SMTH!maily.cic.tsinghua.edu.cn!news2.ues ...

  7. IP multicast IP多播

    https://networklessons.com/multicast/multicast-routing/ IP多播有两种模式,密集模式和稀疏模式: Dense Mode Sparse Mode ...

  8. IP多播与NAT地址转化

    IP多播 与单播相比,在一对多的通信中,多播可以大大减少网络资源.在互联网上进行多播就叫做IP多播,IP多播所传送的分组需要使用IP多播地址. 如果某台主机想要收到某个特定的多播分组,那么怎样才能是这 ...

  9. 大白话解释IP多播

    多播引入 比方说我是一个班主任,管着三个班,每个班30个人,每个班有自己的班长.领导让我宣传19大视 频报告,我这里有源文件.对于普通的单播我需要复制90个副本,给各个班长每人30份,然后班 长在自己 ...

随机推荐

  1. 怎么通过scanf读取一个空白前的字符

    /************************************************************************* > File Name: scanf2.c ...

  2. Table布局的优缺点

    总结 Table布局的缺点是比其它html标记占更多的字节,会阻挡浏览器渲染引擎的渲染顺序,会影响其内部的某些布局属性的生效,优点就是用table做表格是完全正确的 Tables的缺点 1.Table ...

  3. Java统计内存

    在目标代码前放置 Runtime r = Runtime.getRuntime(); r.gc(); long startMem = r.freeMemory(); // 开始时的剩余内存 目标代码执 ...

  4. usb转串口驱动安装失败

    方法一:通过驱动精灵安装 方法二:手动下载后安装,下载地址如下http://www.wch.cn/download/CH341SER_EXE.html https://blog.csdn.net/ja ...

  5. 2019-2020-1 20199324《Linux内核原理与分析》第八周作业

    第七章 可执行程序工作原理 一.ELF目标文件格式 目标文件:ABI,应用程序二进制接口,是编译器生成的文件. ELF:可执行的和可链接的格式,是一个目标文件格式的标准.三种类型是: 可重定位文件:L ...

  6. css后续篇

    5.盒模型 在css中,box model这一术语是用来设计和布局时使用的,在网页中显示一些方方正正的盒子,这种盒子就叫盒模型 盒模型有两种: 标准模型和IE模型(了解) 盒模型属性 width : ...

  7. rest framework-认证&权限&限制-长期维护

    ###############   自定义token认证    ############### 表 class User(models.Model): name=models.CharField(ma ...

  8. linux下常用命令查看端口占用

    在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询netstat命令各个参数说明如下: -t : 指明显示TCP端口 ...

  9. 基于css完成网页的国际化

    css完成国际化 前提 在日常处理国际化的时候,通常是将key通过类似intl.xx(key)转换为对应环境的文案,可是如果需要在css中加入对应逻辑应该怎么做呢(比如在after的伪元素中显示不同的 ...

  10. ABC:Meaningful Mean

    题目描述 You are given an integer sequence of length N, a= {a1,a2,…,aN}, and an integer K. a has N(N+1)⁄ ...