IP 多播
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 多播的更多相关文章
- 《TCP/IP具体解释卷2:实现》笔记--IP多播
D类IP地址(224.0.0.0到239.255.255.255)不识别互联网内的单个接口,但识别接口组,被称为多播组. 单个网络上的组成员利用IGMP协议在系统之间通信. 多播路由器用多播选录协议. ...
- IP多播(组播)
IP多播是实现数据一对多通信的模式.从一个源点传送到多个目的地,数据仅仅拷贝一份.这里说的数据仅仅拷贝一份,是指在每一条须要它的两个点之间,数据仅仅有一份.例如以下图为<计算机网络>(谢希 ...
- Visual C++实现局域网IP多播
//////////////////////////////////////////////////////////////////////////////////////////////////// ...
- IP多播技术及其应用
随着全球互联网(Internet)的迅猛发展,上网人数正以几何级数快速增长,以因特网技术为主导的数据通信在通信业务总量中的比列迅速上升,因特网业务已成为多媒体通信业中发展最为迅速.竞争最为激烈的领域. ...
- TCP/IP学习笔记13--IP地址的构成,广播地址,IP多播,子网掩码
现在,我是蔚蓝的 :在此岸或彼岸,我都是蔚蓝的. ---李瑾 IP对应的是OSI模型中的网络层,TCP对应的是传输层.每一个参与通信的主机都会有一个IP地址. IP地址(IPv4地址)含4个字节,每 ...
- 【miscellaneous】IP多播技术及其编程
标 题: IP多播技术及其编程 发信站: 幽幽黄桷兰 (Mon Jun 16 10:35:39 2003) 转信站: SMTH!maily.cic.tsinghua.edu.cn!news2.ues ...
- IP multicast IP多播
https://networklessons.com/multicast/multicast-routing/ IP多播有两种模式,密集模式和稀疏模式: Dense Mode Sparse Mode ...
- IP多播与NAT地址转化
IP多播 与单播相比,在一对多的通信中,多播可以大大减少网络资源.在互联网上进行多播就叫做IP多播,IP多播所传送的分组需要使用IP多播地址. 如果某台主机想要收到某个特定的多播分组,那么怎样才能是这 ...
- 大白话解释IP多播
多播引入 比方说我是一个班主任,管着三个班,每个班30个人,每个班有自己的班长.领导让我宣传19大视 频报告,我这里有源文件.对于普通的单播我需要复制90个副本,给各个班长每人30份,然后班 长在自己 ...
随机推荐
- Java零基础学习详解
01DButils工具类的介绍个三个核心类 * A: DButils工具类的介绍个三个核心类 * a: 概述 * DBUtils是java编程中的数据库操作实用工具,小巧简单实用. * DBUtils ...
- 序列化模块ModelSerializer
课程准备 配置:settings.py INSTALLED_APPS = [ # ... 'rest_framework', ] DATABASES = { 'default': { 'ENGINE' ...
- 华硕X450j清灰教程
近期本人电脑咳嗽,电脑发烧,风扇呼呼的吹(电脑风扇好像出了问题),去了电脑上商城买了一支止咳糖浆(HEATSINK COMPOUNDS)硅脂, 废话不多说了 1 ,当然要把电脑关了,卸下三排螺丝,然后 ...
- day34-进程
#进程是程序的运行,程序不运行不产生进程. #1.进程的并行与并发: # 并行:是指两者同时执行,比如赛跑,两人都在不停的往前跑.(资源够用,比如三个线程,四核的cpu) # 并发:是指资源有限的情况 ...
- android ijkplayer简单使用
class VideoPlayer : FrameLayout, TextureView.SurfaceTextureListener{ private var url:String? = null ...
- linux清除cache的方法
1 Linux下内存占用多的原因 当linux第一次读取一个文件运行时,一份放到一片内存中cache起来,另一份放入运行程序的内存中,正常运行,当程序运行完,关闭了,cache中的那一分却没有释放, ...
- Django实现注册,往邮箱发送验证链接
由于最近要做个平台,在GitHub上下载了一个系统框架,想着为了安全,实现注册时往一个邮箱发送注册信息,由管理员来确认是否同意其注册. 感谢博主:https://blog.csdn.net/geek_ ...
- 文本输入框input将输入转换为统一大小写
转载地址:http://blog.csdn.net/yieryi_/article/details/52078596 文本输入框input将输入转换为统一大小写,通常有两种方法:JS和CSS方法. 1 ...
- F5 BIG-IP LTM会话保持
- 可用倍增LCA解题
http://codevs.cn/problem/2370/ #include<bits/stdc++.h> using namespace std; ; ; struct node{ i ...