第章多播和网际组管理协议PPT课件.ppt_第1页
第章多播和网际组管理协议PPT课件.ppt_第2页
第章多播和网际组管理协议PPT课件.ppt_第3页
第章多播和网际组管理协议PPT课件.ppt_第4页
第章多播和网际组管理协议PPT课件.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章IP多播和网际组管理协议 教师 张宝军 3 20 2020 1 主要内容 IP多播概述网际组管理协议多播路由选择基于多播的应用编程 3 20 2020 2 学习目标 理解IP多播的基本原理 掌握网际组管理协议IGMP 了解常见的多播路由选择算法 掌握基于WinSock2的多播应用程序设计方法 3 20 2020 3 IP多播概述 IP网络数据传输的传输方法单播 Unicast 传输 在一台源主机和一台目的主机之间建立点对点的网络连接 如果一个源主机需要同时给多个目的主机发送相同的数据 则必须复制多份相同数据包 并分别对不同的目的主机进行传输 这将浪费大量的带宽 也增加了网络服务设备的负载 广播 Broadcast 传输 是指在同一IP子网内广播数据包 即一台源主机可以向同一子网内的所有主机或设备发送同一个数据包 这种方法传输方式不仅会将信息发送给不需要的主机而浪费带宽 也可能由于路由回环而引起严重的广播风暴 并且广播的使用范围非常小 只在本地子网内有效 多播 Multicast 传输 在一台源主机和一组目的主机之间建立单点对多点的网络连接 如果一台源主机同时给多个目的主机传输相同的数据 也只需发送一份相同数据包 提高了数据传送效率 减少了骨干网络出现拥塞的可能性 较好地解决了单点发送多点接收的问题 3 20 2020 4 IP多播网络体系结构 多播的工作原理 3 20 2020 5 IP多播网络体系结构 实现IP多播的前提条件主机的网络接口支持多播 同时主机上的TCP IP支持发送和接收IP多播数据包 有一套用于加入 离开 查询的组管理协议 如IGMP v1 v2 v3 有一套IP地址分配策略 并能将IP多播地址映射为MAC地址 支持IP多播的应用软件 所有介于多播源和接收者之间的路由器 集线器 交换机均需支持多播 3 20 2020 6 网际组管理协议 网际组管理协议 InternetGroupManagementProtocol IGMP 用于多播路由器和主机之间进行群组关系的管理 其运行于主机和与主机直接相连的多播路由器之间 主机通过此协议告诉本地路由器希望加入某个特定多播组 同时路由器通过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态 即该局域网是否仍有属于某个多播组的成员 进行所连网络组成员关系的收集与维护 IGMP目前有3个版本 IGMPv1 RFC1112 IGMPv2 RFC2236 和IGMPv3 RFC3376 3 20 2020 7 网际组管理协议 IGMP报文 3 20 2020 8 网际组管理协议 IGMP报文类型 定义了报文的类型 针对IGMPv3来说 只有成员关系查询报告和成员关系报告最大响应代码 只用于查询报文 规定了发送一个查询报文的最大响应时间 以1 10秒为单位 在其他报文中 它由发送方置0 而在接收方被忽略 校验和 在计算校验和之前 该字段首先清0 在网络传输数据包时 计算校验和并写入该字段 当数据包到达时重新计算校验和 若两次计算结果不匹配则表示有错误 群组地址 在一般查询报告报文中该字段的值置为0 而在特定群组查询报文 群组关系报告和退出群组报文中 该字段用来定义群组地址 禁止路由器处理标志位 S 当该值置1的时候 表明发出该报文的设备扮演的是路由器角色 所有收到此报文的其他路由器都不应该启动定时刷新器 即禁止处理该报文 但这并不影响主机发送报文 3 20 2020 9 网际组管理协议 IGMP报文查询间隔时间 QQIC 用来规定查询间隔 单位是秒 s 源地址数量 用来设定源地址的数量 源地址列表 用来具体列出指定的源地址 组记录数量 用来标明在报告中存在多少个组记录 组记录 每一个组记录字段是一整块数据 其含有的信息是关于发送者在报告发送接口上的某一个多播组的成员关系 组记录类型 用来描述不同类型的组记录 主要包括如下类型 当前状态记录 过滤模式改变记录和源列表改变记录 辅助数据长度描述在组记录中的辅助数据的实际长度 其单位是32bit 它有可能是0 这就表示辅助数据不存在 辅助数据 用于存放辅助数据为将来应用预留空间 IGMPv3并不需要 3 20 2020 10 网际组管理协议 IGMP报文封装 3 20 2020 11 网际组管理协议 IGMP操作加入多播组 主机和路由器都可以加入一个多播组 当某个主机中的一个进程申请加入一个多播组时 主机将发送一个成员关系报告报文到它所在的IP子网的多播路由器上 路由器接收到该申请后将检查它的群组成员关系表 看该主机是否已经在群组中 如果该主机不在群组关系表中 即第一次申请 随即将自己的IP模块做相应的准备 以便开始接收来自该多播组传来的数据 如果这台主机是它所在的IP子网中第一台加入该多播组的主机 则多播路由器将通过路由信息的交换加入多播分布树 3 20 2020 12 网际组管理协议 IGMP操作退出多播组 当主机发现在一个特定的多播组中已经没有进程时 就发送退出报告 多播路由器收到退出报告后 并不立即删除这个群组 而是针对该群组发送查询报文 当在指定的时间内没有收到相关主机 和路由器 对该群组的成员关系报告时 就意味着在本网络上已经没有该群组成员 此时 多播路由器将删除该群组 否则继续保留该群组 3 20 2020 13 网际组管理协议 IGMP操作查询成员关系 由于多播组中的成员关系是动态变化的 并且有些变化是由于异常事件而引起的 例如某个群组的某台成员主机因异常而关机 此时多播路由器将永远接收不到其退出报告 为了实时掌握群组的成员组成 IGMP提供了一种机制来监控其某个网络上的所有主机和路由器 以便确定群组和主机或路由器之间的关系 3 20 2020 14 多播路由选择 在多播模型中 多播源向某一多播组地址传递IP数据报 并且多播地址代表着一个主机组 因此 传统的路由器不能胜任多播路由操作 于是多播路由器应运而生 多播路由器的作用是完成多播数据报的转发 它有两种实现方式 一种是专用多播路由器 另一种是在传统路由器上实现多播路由的功能 3 20 2020 15 多播路由选择 单播路由选择是选择一条从信源到信宿的最佳传播路径 而多播地址代表的是一个主机组 因此 多播路由选择实际上就是要找出以源主机为根节点的多播转发树 主机组中的主机位于该多播转发树的叶子节点 中间节点有多播路由器构成 3 20 2020 16 多播路由选择 单播路径与多播转播树 3 20 2020 17 多播路由选择 多播转播树有源树有源树也称为基于信源的树或最短路径树 ShortestPathTree SPT 它是以多播源为根构造的从根到所有接收者路径都最短的转播树 如果多播组中有多个多播源 则必须为每个多播源构造一棵多播树 3 20 2020 18 多播路由选择 多播转播树共享树由于有源树必须为每个多播源都构造一个多播转播树 造成了一定的资源浪费 为此 人们引入了共享树的概念 即为每个多播组指定一个共享的汇集点 RendezvousPoint RP 作为树的根节点 在此基础上建立的多播转播树 汇集点一般是多播路由器 这样 任何一个信源要向多播组发送数据报时 首先采用单播方式将该数据报传递到汇集点RP 然后由RP多播到多播组的每个叶子节点 主机 由于多播数据报和单播数据报在构成上存在区别 因此由信源到RP的单播数据传送一般需要采用隧道技术 即对多播数据报进行再次封装 加上普通数据报首部后使其成为向单一目的站发送的单播数据报 通过隧道发送到汇集点RP RP接收到该数据报后进行拆封成多播数据报在多播组中进行传输 3 20 2020 19 多播路由选择 多播转播树共享树 3 20 2020 20 多播路由选择 多播路由算法基于链路状态的多播路由算法基于链路状态的多播路由算法对链路状态路由算法进行了扩展 将特定链路上的所有多播成员加入到多播路由器的链路状态中 这样通过多播路由器之间定期的链路状态信息交换可使每个多播路由器都存储了多播成员的分布信息 同样利用Dijkstra算法便可以构造出最短路径多播转发树 其中多播发送源和多播组成员分别作为树的根和叶 该树存储了将多播数据报从发送源传递到各多播组成员的路径 特定链路上多播成员的信息由多播路由器都通过IGMP周期性地收集 对每一个发送源和多播目的组来说这个树都是分别计算的 因此 为了减少计算量并有效使用计算结果 多播路由器只需要在它接收到第一个多播数据报时才计算多播转发树 一旦这棵树被计算出来 其信息就被存储下来用于后继数据报的路由 3 20 2020 21 多播路由选择 多播路由算法基于距离向量的多播路由算法基于距离向量的多播路由首先要解决的是如何将多播数据报广播到各多播组的主机中 为此 引入了基于逆向路径的泛洪转发技术 ReversePathForward RPF 由于多播源是向多播组发送数据报而非单播模型中的具体目标主机 所以多播路由器不能依靠IP数据报中的目标地址来决定如何转发数据报 而必须将多播数据报转发到多个外部接口上 以便使同一多播组的成员都能接收到数据报 即采用泛洪的转播方法 也就是广播 为了避免兜圈子 引入了逆向路径转发机制作为多播转发的基础 3 20 2020 22 多播路由选择 多播路由算法基于距离向量的多播路由算法 3 20 2020 23 多播路由选择 多播路由算法基于距离向量的多播路由算法逆向路径转发的基本思想是 当多播数据报到达多播路由器时 路由器作RPF检查 以决定是否转发或抛弃该数据报 若成功则转发 否则抛弃 RPF检查过程如下 检查数据报的源地址 以确定该数据报经过的接口是否在从源到此路由器的最短路径上 若数据报是从源到此路由器的最短路径上 则RPF检查成功 转发该数据报到多播路由器输出接口表上的所有接口 否则RPF检查失败 抛弃该数据报 3 20 2020 24 多播路由选择 多播路由算法协议无关多播路由算法多播路由器直接使用PIM协议消息Jiont和Prune明确地加入或退出多播组 进而来构造和维护多播转发树 当然 首先需要为每个多播组指定一个汇集点RP 然后希望加入该多播组的多播路由器可以通过向RP发送Joint消息来申请加入多播组 且该消息是以单播方式传送 以此方式 所有需要加入多播组的多播路由器都可以向RP发送Joint消息 根据该消息的单播传送路径便可以构造出该多播组的多播转发树 共享树 3 20 2020 25 多播路由选择 多播路由算法协议无关多播路由算法 3 20 2020 26 多播路由选择 多播路由协议多播开放最短路径优先协议多播开放最短路径优先 MulticastOpenShortestPathFirst MOSPF 协议是对单播OSPF协议的扩展 为单路由域的多播使用而设计 其使用基于链路状态的多播路由选择算法创建出有源多播树 3 20 2020 27 多播路由选择 多播路由协议距离向量多播路由协议距离向量多播路由协议 DistanceVectorMulticastRoutingProtocol DVMRP 由单播路由协议 RIP 扩展而来 两者都使用距离向量算法得到网络的拓扑信息 不同之处在于RIP根据路由表前向转发数据 而DVMRP则是基于RPF 另外 DVMRP使用跳数作为计量尺度 其上限为32跳 这对网络规模也是一个限制 3 20 2020 28 多播路由选择 多播路由协议有核树多播路由协议有核树多播路由协议 CoreBasedTree CBT 的主要目标是减少网络中路由器的多播状态 以提高多播的可扩展性 为此 CBT被设计成稀疏模式 CBT使用核心路由器作为转发树的根节点 CBT为每个多播组建立一个生成树 所有多播源使用同一棵多播树 即共享树 树的建立采用协议无关多播路由算法 3 20 2020 29 多播路由选择 多播路由协议协议无关多播 密集模式协议协议无关多播 密集模式协议 ProtocolIndependentMulticast DenseMode PIM DM 有点类似于DVMRP 这两个协议都使用了RPF来构建分布树 它们之间的主要不同在于PIM DM协议不依赖于单播路由算法而DVMRP依赖于某个相关的单播路由算法 并且PIM DM协议比DVMRP简单 DVMRP在树构建阶段能够使用单播协议提供的拓扑数据有选择性地向下行发送数据报 PIM DM则更加倾向于简单性和独立性 甚至不惜增加数据包复制引起额外开销 适用于组成员分布非常集中的场合 3 20 2020 30 多播路由选择 多播路由协议协议无关多播 稀疏模式协议协议无关多播 稀疏模式协议 ProtocolIndependentMulticast SparseMode PIM SM 该协议使用与CBT相同的多播转发树构造方式 但它不局限于通过共享树转播多播数据报 还提供从共享树向特定源树的转换的机制 进而减少了网络延迟以及在RP上可能出现的阻塞 但这种转换耗费了相当多的路由器资源 所以它适用于有多对多播数据源和网络组数目较少的环境 3 20 2020 31 基于多播的应用编程 支持多播的应用程序接口 加入一个多播组 离开一个多播组 为调整范围对一个多播数据的IP数据报中的TTL值进行设定 为多播传输和接收设定本地的接口 禁止输出多播数据回送 3 20 2020 32 基于多播的应用编程 支持多播的应用程序接口 3 20 2020 33 基于多播的应用编程 使用WinSock2实现IP多播应用程序开发的一般步骤初始化WinSock资源 初始化WinSock2资源 检查系统是否安装了WinSock2以上版本wVersionRequested MAKEWORD 2 2 err WSAStartup wVersionRequested 3 20 2020 34 基于多播的应用编程 使用WinSock2实现IP多播应用程序开发的一般步骤创建套接字Sock WSASocket AF INET SOCK DGRAM IPPROTO UDP LPWSAPROTOCOL INFO NULL 0 WSA FLAG OVERLAPPED WSA FLAG MULTIPOINT C LEAF WSA FLAG MULTIPOINT D LEAF 3 20 2020 35 基于多播的应用编程 使用WinSock2实现IP多播应用程序开发的一般步骤创建套接字bFlag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论