IP组播基础

单播方式所存在的问题

1.重复流量过多

2.消耗设备和链路带宽资源

3.难以保证传输质量

广播方式存在的问题:

1.地域范围限制

2.安全性无法保障

3.有偿性无法保证

广播方式下,信息发送者与用户主机被限制在一个共享网段中,且该网段所有用户主机都能收到该信息

组播:

优势:

1.无重复流量

2.节省设备与带宽资源

3.安全性高

4.有偿性很高

ASM:任意源组播

发送者是任意的,如果加入了某个组播组,就会收到所有的发给该组的组播数据,他并不知道发送者的位置

SSM:指定源组播

接受者可以指定收到哪些源发来的指定数据

PIM:直接利用单播路由表的路由信息进行组播报文RPF检查,创建组播路由表项,转发组播报文

DM:密集模式

SM:稀疏模式

封装在IP报文当中

协议号:103

组播地址:224.0.0.13

路由器如何转发组播报文

路由器需要依据哪些信息进行转发

1.各接口

PIM-DM基本概述

采用“推模式”转发组播报文

PIM-DM的关键任务:

建立SPT(最短路径树)

PIM-DM的工作机制

DM:

邻居发现

使用Hello机制发现邻居,周期时间是30s

hold时间:Hello时间的3.5倍 105s

选举DR的规则:

优先级高的成为DR

若相同,则.IP地址大的为优

作用:为了给运行igmpV1的提供查询者

RPF(源检测机制)

作用:为了防止组播报文的重复和扩散

(S,G)

(*,G)

*代表所有

G代表一个组

S代表源

2.扩散和剪枝

扩散的过程

路由器接收到组播报文的时候进行RPF检查

如果RPF检查通过,则创建(S,G)表项,也就是检查上行接口是不是源发过去的接口,如果是,则将数据向下行进行转发,如果RPF检查没有通过,则丢弃该报文

剪枝的过程:

当下游节点没有组播组成员,则向上游节点发送Prune消息,通知上游不在向这个节点发送数据,上游节点收到这个Prune消息之后,就删除这个组播组。

扩散和剪枝周期性进行,每3分钟重复一次。

3.状态刷新

周期性的去刷新剪枝状态

4.嫁接(Graft机制)

新的组成员加入组播组后,则向上游发送一个Graft的消息,请求上游路由器恢复对应出口的转发,上游路由器收到Graft的消息之后,向下游回复Graft Ack消息并将出街口回复为转发状态

5.断言(Assert)

避免重复组播报文

上图所示,RTA,RTB,RTC都会向RTD发送组播报文,三份重复的组播报文浪费带宽资源

所有,为了避免这种情况,PIM路由器在收到邻居路由器发送的组播报文的时候,会以组播的方式向本网段发送Assert消息,其他的PIM路由器收到Assert消息之后,会将自身的参数和对方的报文进行比较,进行Assert竞选

选举规则:

优先级以大为优

度量值以小为优

IP地址以大为优

PIN-DM的局限性

适用于组播成员分布较为密集的园区网络

在族必成员较为稀疏的网络中,组播流量的周期性扩散会给网络带来较大的负担

PIM:直接利用单播路由表的路由信息进行组播报文RPF检查,创建组播路由表项,转发组播报文

PIM-DM

使用“拉模式”转发组播报文

PIM-SM的关键任务:

建立RPT:汇聚点树,也称共享树

建立SRT:最短路径树

适用于组播成员较为稀疏的网络环境

汇聚点RP:

1.充当RPT树的根节点

2.共享树中的所有组播流量都经过RP转发给接受者

3.所有PIM路由器都要知道RP的位置

手工指定:适用于小型网络,会选择与组播源直连的路由器充当RP,组播源只有一个的时候

组播源比较密集的时候,会选择靠近组播源的路由器作为RP

接受者比较密集的时候,会选择靠近接受者的路由器作为RP

动态选举

首先会调出几个核心的路由器作为c-RP(候选RP)

组播源比较密集的时候,会选择靠近组播源的几个路由器作为c-RP

接受者比较密集的时候,会选择靠近接受者的几个路由器作为c-RP

RPT(共享树)建立的过程

①主机加入组播组的时候,发送IGMP成员通告

②向上游发送(*,G)join消息

③join消息到达RP的过程中,沿途各种路由器都会产生相应的join消息

SRT的建立过程

①组播源向组播组发送第一个组播报文

②源端的DR将该组播报文封装成Register报文并以单播的方式发给RP

③RP收到注册消息后,解封装,提取报文,并将该组播报文沿RPT分支转发给接受者

④同时,RP向DR发送一个join消息,沿途路由器都会生成(S,G)表项,然后,一个SRT就建立完成

时间: 2024-08-10 23:30:53

IP组播基础的相关文章

IP组播技术介绍及实现例子

引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布.多媒体远程教育.CSCW协同计算.远程会诊.这就带来了带宽的急剧消耗和网络拥挤问 题.为了缓解网络瓶颈,人们提出各种方案,归纳起来,主要包括以下四种: ●增加互连带宽: ●服务器的分散与集群,以改变网络流量结构,减轻主干网的瓶颈: ●应用QoS机制,把带宽分配给一部分应用: ●采用IP Multic

组播基础

组播基础 组播的优势:1.提高效率,降低网络流量,减轻硬件负荷:2.优化性能:减少冗余流量,节约网络带宽,降低网路负载:3.分布式应用,使多点应用成为可能. 组播的劣势:1. 基于UDP:2. 尽力而为:3. 没有拥塞避免机制:4. 报文重复:5. 报文失序. 组播服务模型:1. ASM(Any-Source Multicast)任意源组播:使用(*,G)表项,所以在网络中,一个组播地址只能用于同一个应用:一个组播组地址作为一个网络服务的集合,任何源发布到该组地址的数据得到同样的服务.2. SS

如何在AnyChat中使用IP组播接口

AnyChat Platform Core SDK V4.0新增了对IP组播技术的支持,下面介绍如何使用相关的API接口,典型的加入多播组,并向多播组发送数据的代码如下: 1.// 设置本地组播策略 2.DWORD dwMultiCastPolitic = 1; 3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(const char*)&dwMultiCastPolitic,sizeof(DWORD)); 4.  5.// 加入多播组 6

音视频二次开发 IP组播技术

在Internet上,多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分.点对点传输的单播方式不能适应这一类业务传输特性--单点发送多点接收,因为服务器必须为每一个接收者提供一个相同内容的IP报文拷贝,同时网络上也重复地传输相同内容的报文,占用了大量资源.在这种情况下组播(multicast)应运而生,它的出现解决了一个主机向特定的多个接收者发送消息的方法.1989年,IETF通过RFC1112,定义了Internet上的组播方式. 主机组的成员可以动态变化,主机有权选

音视频SDK开发 IP组播技术

在Internet上,多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分.点对点传输的单播方式不能适应这一类业务传输特性--单点发送多点接收,因为服务器必须为每一个接收者提供一个相同内容的IP报文拷贝,同时网络上也重复地传输相同内容的报文,占用了大量资源.如图 1.1所示.虽然IP广播允许一个主机把一个IP报文发送给同一个网络的所有主机,但是由于不是所有的主机都需要这些报文,因而浪费了网络资源.在这种情况下组播(multicast)应运而生,它的出现解决了一个主机向特定

【知识强化】第四章 网络层 4.7 IP组播

这节课我们来学习一下IP组播. 首先我们来看这样一个问题,IP数据报在网络当中传输的时候,有几种传输方式呢?三种,分别是单播.广播和组播(多播).这个组播呢也叫做多播,它们俩是一个意思.那这个组播是由于在很多年前,我们之前是译成了这个组播.现在通常用的都是多播这个词,那么我们现在分别来看一下三种传输方式. 首先对于单播来说呢,单播它指的是发送这个数据报,或者说IP数据报,到单个目的地.而且每发送一份单播报文呢都要使用一个单播的IP地址作为目的地址.那这个单播IP地址呢,其实就是我们之前所讲的A.

H3C组播系列之IP组播概述

一.组播的基本介绍 组播指发送源将产生的单一IP数据包通过网络发送给一组特定接收者的网络传输方式.组播结合了单播和广播的优点,在进行点到多点传输时,发送源不需要关心接受者的数目,仅需要发送一份报文:路由器仅关心接口下是否有接收者,同样不需要关心接收者的数量,所以在路由器之间的链路上也仅传送一份报告. 和单播相比,组播减轻了发送源的负担,并且提高了链路的有效利用率.此外,发送源可以同时发送报文给多个接收者,可以满足低延时应用的需求. 和广播相比,组播方式下路由器仅在有接收者的接口复制报文,报文最终

Android MulticastSocket IP组播

MulticastSocket是对等的关系,也就是他们通过IP多点组播保留的地址来相互接收在这个组的Socket发送的消息 我写了一个例子,MultiSocketB是一个service,用于先接收再发送,MultiSocketA用于先发送再接收,完成这一动作后退出 记得要加使用网络的权限 <uses-permission android:name="android.permission.INTERNET" /> 先看MultiSocketA <?xml version

IP组播 MulticastChannel接口 DatagramChannel实现

监听者 1 import java.io.IOException; 2 import java.net.InetAddress; 3 import java.net.InetSocketAddress; 4 import java.net.NetworkInterface; 5 import java.net.StandardProtocolFamily; 6 import java.net.StandardSocketOptions; 7 import java.nio.ByteBuffer;