IP组播基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IP组播基础
Geekometer
单播vs组播
组播是基于UDP的!!!
•尽力投递:
报文丢失是不可避免的。因此组播应用程序不能依赖组播网络进行可靠性保证,必须针对组播网络的这个特点进行特别设计。“可靠组播”目前仍然处于研究阶段。
•没有拥塞避免机制:
缺少TCP窗口机制和慢启动机制,组播可能会出现拥塞。如果可能的话,组播应用程序应该尝试检测并避免拥塞。
•报文重复:
某些组播协议的特殊机制(如Assert机制和SPT切换机制)可能会造成偶尔的数据包的重复。组播应用程序应该容忍这种现象。
•报文失序:
同样组播协议有的时候会造成报文到达的次序错乱,组播应用程序必须自己采用某种手段进行纠正(比如缓冲池机制等)。
适合于组播的应用
•多媒体
–流媒体
–培训、联合作业场合的通信
–视频/音频会议
•数据仓库
•金融应用(股票)
•任何的“单到多”数据发布应用
内容
•为什么组播?
•组播编址
•主机-路由器通告:IGMP •组播分发树
•组播转发
•组播路由协议
一个组播组就是一个IP地址,不表示具体的主机,而是表示一系列系统的集合,主机加入某个组播组即声明自己接收某个IP地址的报文。
•IP组播组地址
–224.0.0.0–239.255.255.255
–“D”类地址空间
•第一个字节的高四位=“1110”
•保留的本地组播组地址
–224.0.0.0–224.0.0.255
–发送报文时TTL=1
–例如:
•224.0.0.1子网的所有系统
•224.0.0.2子网的所有路由器
•224.0.0.4DVMRP路由器
•224.0.0.5OSPF路由器
•224.0.0.13PIMv2路由器
•管理范围地址(Administratively Scoped Addresses)
–239.0.0.0–239.255.255.255
–私有地址空间
•类似于RFC1918的单播地址
•不能用于Internet全局传输
•用于有限范围内的组播传输
239.255.0.1
01-00-5e-7f-00-01
23Bits
48Bits
Multicast Addressing
内容
•为什么组播?
•组播编址
•主机-路由器通告:IGMP •组播分发树
•组播转发
•组播路由协议
•主机如何告诉路由器组播组成员关系
--通过IGMP协议:Internet组管理协议:
•路由器向直连的所有主机询问组播组成员关系•RFC1112--IGMP版本1
Windows95支持
•RFC2236--IGMP版本2
Windows98后的版本及大多数UNIX系统
•IGMP版本3目前仍然是一个草案(draft)draft-ietf-idmr-igmp-v3-03.txt
IGMPv3
•draft-ietf-idmr-igmp-v3-??.txt
•其应用仍然在测试阶段
–允许主机指定接收某些网络发送的某些组播组,相比以前的版本,增加了主机的控制能力,不仅可以指定组播组,还能指定组播的源。
内容
•为什么组播?
•组播编址
•主机-路由器通告:IGMP •组播分发树
•组播转发
•组播路由协议
组播分发树
不同分发树的特征
•源树(最短路径树)
占用内存较多O(S x G),但路径最优,延迟最小•共享树
占用内存较少O(G),路径不是最优的,引入额外的延迟
内容
•为什么组播?
•组播编址
•主机-路由器通告:IGMP •组播分发树
•组播转发
•组播路由协议
•组播路由和单播路由是相反的
–单播路由关心数据报文要到哪里去。
–组播路由关心数据报文从哪里来。
•组播路由使用“反向路径转发”机制(RPF, Reverse Path Forwarding)
反向路径转发(RPF)
•何谓RPF?
路由器收到组播数据报文后,只有确认这个数据报文是从自己到源的出接口上到来的,才进行转发,否则丢弃报文。
•RPF检查
•在单播路由表中查找到组播报文源地址的路由
•如果该路由的出接口就是报文的入接口,RPF成功
•否则RPF失败
内容
•为什么组播?
•组播编址
•主机-路由器通告:IGMP •组播分发树
•组播转发
•组播路由协议
组播路由vs单播路由
组播路由不是单播路由!是完完全全的新东西,不象OSPF,也不象RIP,不象你熟悉的任何东西。
不过,不要害怕啊,一会儿就懂了。
组播路由协议的类型
•密集模式(Dense-mode)
•使用“推”(Push)模型(先给你,可以不要)
•组播数据整网络的泛滥(Flood)
•下游不想接收的话则剪枝(Prune)
•泛滥、剪枝、泛滥、剪枝…周而复始(通常3分钟折腾一次)•稀疏模式(Sparse-mode)
•使用“拉”(Pull)模型(你要了,才给你)
•组播数据只发送到有需要的地方
•有显式的加入(Join)过程