




已阅读5页,还剩78页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
组播路由技术,技术培训中心,课程内容,组播业务的商业需求 组播技术基础知识 可控组播及其安全部署,课程议题,一、组播业务的商业需求,本章节学习目标,1、了解当今应用趋势triple play。 2、了解视频业务的常见形态(视频监控、视频会议、远程教学、iptv等)。 3、掌握组播技术的优缺点,知道在什么样的环境下可以采用组播技术(组播最适合一对多的通信应用场景)。 4、知道采用组播通信方式发送数据流时转发的基本原理。,triple play,视频监控系统应用集成,专有数据网,监控中心,被控楼宇,社区监控,道路设施监控,在任何一部ip电话上实现实时监控 通过ip电话屏幕选择监控的地点,连锁超市视频监控,热点道路监控,公共场所监控,在办公电话上进行全面监控,办公室,单播 vs 组播,流媒体服务器,组播,单播,流媒体服务器,例如: 收听电台广播流 所有的客户端都接收相同的8 kbps电台广播,减轻服务器和cpu负荷 减少了链路带宽资源的占用 减轻了网络设备的负载,0,0.2,0.4,0.6,0.8,流量,mbps,1,20,40,60,80,100,客户端数量,组播,单播,组播的优势,组播的劣势,尽力投递: 报文丢失是不可避免的。因此组播应用程序不能依赖组播网络进行可靠性保证,必须针对组播网络的这个特点进行特别设计。“可靠组播”目前仍然处于研究阶段。 没有拥塞避免机制: 缺少tcp窗口机制和慢启动机制,组播可能会出现拥塞。如果可能的话,组播应用程序应该尝试检测并避免拥塞。 报文重复: 某些组播协议的特殊机制(如assert机制和spt切换机制)可能会造成偶尔的数据包的重复。组播应用程序应该容忍这种现象。 报文失序 : 同样组播协议有的时候会造成报文到达的次序错乱,组播应用程序必须自己采用某种手段进行纠正(比如缓冲池机制等)。,组播是基于udp的!,组播的应用,多媒体会议 任何的“单到多”数据发布应用 金融应用(股票) 游戏和仿真 数字电视、音频广播 远程教学 组播最适合一对多通信方式的应用,课程议题,二、组播技术基础知识,本章节学习目标,1、实施组播的三个基本条件(部件)。 2、组播地址(二层、三层)。 3、了解组播技术中也有树的问题:组播分布树(最短路径树、共享树)和组播流转发的路径有关系 4、了解多播流的分发过程及原理(rpf)。 5、掌握组播客户端加入离开多播组的协议 igmp,并能说出igmp v1/v2/v3作用与区别。 6、掌握组播路由协议pim-dm/sm原理、如何部署rp及其冗余配置方法。,1、实施组播的三个基本条件,硬件设施: 1.组播服务器 2.支持组播分发的网络 3.能接收组播流的客户端 软件技术: 1.必须存在组播地址 2.必须有多播路由协议的支持 3.客户端必须能自由加入或离开多播组,2、组播地址,一个组播组就是一个ip地址,不表示具体的主机,而是表示 一系列系统的集合,主机加入某个组播组 即 声明自己接收某 个ip地址的报文。 组播源ip地址:a、b、c类地址 组播目标ip地址:d类地址 224.0.0.0 -239.255.255.255 (1)为网络协议预留的地址段有224.0.0.0224.0.0.255,ttl1 (2)其他预留地址 224.0.1.xxx , ttl1 (3)私有管理权限的组播地址 239.0.0.0239.255.255.255 (4)internet上的全局公共组播地址224.0.1.0238.255.255.255,三层组播地址到二层地址的映射,ip组播 mac地址映射 (以太网),224.1.1.1 224.129.1.1 225.1.1.1 225.129.1.1 . . . 238.1.1.1 238.129.1.1 239.1.1.1 239.129.1.1,0x0100.5e01.0101,相同的组播mac地址 (以太网),32 - ip组播地址,三层组播地址到二层地址的映射,注意存在32 ip - 1 mac地址重叠,解决的方法是避免在同一个lan中采用重叠的地址,3、不同分发树的特征,有源树(最短路径树) 占用内存较多 (s,g),但路径最优,接收者到多播源是最佳路径,延迟最小。 共享树 占用内存较少 (*,g),路径不一定是最优的,多播流转发必须先经过rp,引入额外的延迟。,有源树的根是组播数据流的来源,有源树的分支形成了通过网络到达接收站点的分布树。,接收者 r1,b,e,a,d,f,源 s1:192.168.1.1,组播路由项 (s, g), iif, oiflist s 源地址 g 组地址 iif 入接口 oiflist 出接口列表,c,接收者 r2,源 s2: 192.168.2.1,(1)最短路径树(基于源的分发树),接收者 r1,b,e,a,d,f,源 s1,c,接收者 r2,源 s2,spt/有源树,因为有源树以最短的路径贯穿网络,所以也被成为最短路径树。 ( spt:shortest path tree ),组播路由项 (s, g), iif, oiflist s 源地址 g 组地址 iif入接口 oiflist出接口列表,(2)共享树,共享树的根不在多播数据流的源头,而位于网络中管理员指定的汇聚点。 (rp:rendezvous point),接收者 r1,b,e,a,d,f,c,接收者 r2,(rp) pim汇聚点,(rp),组播路由项 (*, g), iif, oiflist * 任何源地址 g 组地址 iif入接口 oiflist出接口列表,组播分发树,所有多播源先把多播流发送到rp,再由rp分发到各接收站点。目标组地址向他的多个源节点共享多播分布树。,接收者 r1,b,e,a,f,c,接收者 r2,(rp) pim汇聚点,共享树,d,(rp),组播转发,组播路由转发和单播路由转发是相反的 单播路由转发关心数据报文要到哪里去。 组播路由转发关心数据报文从哪里来。 组播路由转发使用 “反向路径转发”机制防止循环 多播数据流从多播路由器入口路由到出口转发出去 入口:由rpf决定 出口:由igmp和多播路由协议决定的,4、rpf,何谓rpf? 路由器收到组播数据报文后,只有确认这个数据报文是从自己到源的出接口上到来的,才进行转发,否则丢弃报文。 rpf检查 在单播路由表中查找到组播报文源地址的路由 如果该路由的出接口就是报文的入接口,rpf成功 否则rpf失败,反向路径转发(rpf, reverse path forwarding),举例: rpf检查,源 192.168.1.1,组播报文,rpf检查失败 报文从错误接口到来!,组播转发,rpf检查失败!,单 播 路 由 表 网络 接口 192.168.1.0/24 s1 198.14.32.0/24 s0 204.1.16.0/24 e0,看得更仔细点: rpf检查失败,e0,s1,s0,s2,s1,组播转发,看得更仔细点: rpf检查成功,rpf检查成功!,单 播 路 由 表 网络 接口 192.168.1.0/24 s1 198.14.32.0/24 s0 204.1.16.0/24 e0,e0,s1,s0,s2,s1,向所有出接口 (即分发树的下游)转发,igmp作用:主机向路由器通知其加入或离开某个多播组,以便路由器向其转发相应的多播报文。 rfc 1112 - igmp版本1 windows 95支持 rfc 2236 - igmp版本2(默认) windows98后的版本及大多数unix系统 igmp版本3目前仍然是一个草案(draft) win xp支持 draft-ietf-idmr-igmp-v3-03.txt,igmp协议:internet组管理协议 igmp是一个三层协议,协议号为2,直接被封装在ip中,运行于路由器与主机之间。,5、主机-路由器通告: igmp,igmp原理:采用路由器查询、主机报告两种方式维和组成员关系。 路由器查询:路由器周期性每60秒发送查询(d=224.0.0.1 ttl=1) 试图发现感兴趣的组成员。 主机报告:主机发送一个 igmp report (d=224.0.0.2 ttl=1) 表示 要加入某个多播组(包含了要加入的多播组地址),igmp基本原理,主机“默不作声”地离开组(不发报告了),h1,h3,路由器发送3个普遍组查询(间隔60秒),路由器没有收到这个组的igmp报告,组播组超时(离开) (最大可能延迟= 3分钟),h2,离开组播组(igmpv1),igmp v1,主机向224.0.0.2发送离开组消息(包含离开的组),h1,h3,路由器向这个组(239.1.1.1)发送特定组查询,3秒钟内没有收到该组的报告,组239.1.1.1超时(离开),h2,离开组播组(igmpv2),igmp v2,igmp v3,数据结构变了:d=224.0.0.22,可 以有选择的加入特定多播源发送的 多播流。,接收者 r1,b,e,a,f,c,接收者 r2,d,igmpv3与ssm source specific multicast,6、组播路由协议一览,目前,主要有4个组播路由协议: dvmrpv3 (草案) dvmrpv1 (rfc 1075)已经废止。 mospf (rfc 1584) pim-dm (internet草案) pim-sm v2 (rfc 2362) 其他(cbt, ocbt, qosmic, sm, 等等),dvmrp简介,距离矢量组播路由协议(distance vector multicast routing protocol),一个较为古老,具有实验性质的协议,现已经不常使用,鲜有厂家设备支持。 基于距离矢量 类似于rip 最大32跳 dvmrp依赖自己找回来的单播路由: 进行rpf检查 创建“截断广播树”(tbt, 一种组播分发树型结构) 使用特殊的“毒性逆转”机制 使用泛滥和剪枝机制 组播数据开始时延tbt向下泛滥 当下游不需要该数据时对tbt枝杈进行剪枝 剪枝每过一定时间超时,重新延枝杈进行泛滥,dvmrp评价,广泛用于mbone (古老的组播实验网络,很少有人在里面玩儿了) 慢收敛类似rip 路由器中组播路由状态信息庞杂,到处都是 (s,g) 不支持共享树 最大不能超过32跳 不适合于大规模的网络(泛滥剪枝机制、可伸缩性差),mospf (rfc 1584),对ospf单播路由协议的扩展 ospf: 路由器使用链路状态通告来获取整个网络的可用链路信息 mospf: 在ospf链路状态通告中包含组播信息,以此构建组播分发树(每个路由器都维护整个网络的最新拓扑信息) 组成员关系lsa(链路状态通告类型6)向ospf路由域整网泛滥,这样mospf路由器就可以计算出接口列表 使用狄杰克斯特拉算法(dijkstra algorithm)来计算最短路径树 为每个 (snet, g) 对都需要单独的计算,mospf评价,与单播路由协议相关,仅在ospf网络内运行 可伸缩性不好 每个组播(snet, g)对都需要使用dijkstra算法进行计算! 不支持共享树 不适合于 通用的组播网络,其中发送者可能会非常的多 如ip/tv(每个ip/tv客户端都是一个组播源) 支持厂家较少,市场鲜有使用,组播路由协议pim,密集模式(dense-mode) 使用“推”(push)模型(先给你,管你要不要) 组播数据流整网络的洪泛(flood) 下游不想接收的话则剪枝(prune) 洪泛、剪枝、洪泛、剪枝周而复始 (通常3分钟折腾一次) 稀疏模式(sparse-mode) 使用 “拉”(pull)模型(你要了,才给你) 组播数据流只发送到有需要的地方 有显式的加入(join)过程,7、pim-dm,协议无关组播(protocol independent multicast) 支持所有的单播路由协议: 静态路由、rip、igrp、is-is、bgp、ospf,总之,单播路由协议是什么都没关系。 使用逆向路径转发(rpf)机制 先向网络洪泛(flood),然后根据组播组成员关系进行剪枝 (prune) 使用assert机制来剪枝重复的数据流 适合于. 小规模的网络,pim可是 好东西啊!,pim-dm的五种包,hello:发现和维护邻居关系 join/prune:加入和修剪树 graft:嫁接。重新加入多播树(以前被修剪过) graft ack:嫁接成功后的确认 assert:声明。在多路访问环境下用来协商哪台多播路由器来往该多路访问网络中转发多播数据流。 数据结构图,pim邻居发现,每个多播路由器在连入多播网络时,在启动了pim-dm的接口每隔30秒(缺省)都多播pim hello消息以宣布它的连入。105秒内收不到邻居hello,则认为邻居失效。起始pim-dm在多播转发时经过rpf检测后会将多播流发给所有pim邻居路由器。 show ip pim neighbor查看pim邻居,pim-dm 泛滥与剪枝,组播源,初始泛滥,接收者,网络中的每个路由器 都创建(s, g)!,pim-dm 泛滥与剪枝,组播源,剪枝不需要的数据流,接收者,pim-dm 泛滥与剪枝,剪枝之后,看.,组播源,接收者,泛滥和剪枝过程每3分钟 重复一次!,网络中的每个路由器 中仍然保留(s, g)!,多播树的生成,pim-dm以flood-and-prune方式生成多播分布树 1、 多播源产生多播流,收到多播流的第一台路由器执行rpf检查后记载下(s,g),并洪泛给所有pim邻居。 2、如果末端路由器有直连的感兴趣组成员,路由器会加入多播树。 3、如果末端路由器没有直连的组成员,会向上游路由器发送prune信息,上游路由器首先将收到prune信息的接口标记为prune状态。如果上游路由器本身存在组成员或存在其他需要转发多播流的下游路由器,不会做进一步反映,如果上游路由器本身不存在组成员且不存在其他需要转发多播流的下游路由器,将重复prune。,多播路由器修剪的典型原因,多播路由器prune的典型原因: 1、该接口下没有接收者 2、没有下游pim邻居 3、非rpf接口收到多播流(当前路由器向上游路由器发送prune) 4、多路访问环境下由于assert原因自己不能转发多播流 重复prune之前会等待3秒延时来等待有无join,新接收节点加入多播组,当有新的多播组成员要加入时,它所连入的当前路由器要加入多播树,由于当前路由器以前被prune过,但仍保留有(s,g)信息,所以它可以向它的上游pim邻居单播graft消息,上游路由器回送graft ack。graft嫁接消息一直逐跳向上游发送,直到成功加入多播树上。,多路访问环境下的多播转发,e0,进入路由器的组播数据报文 (rpf检查都成功),e0,s0,s0,查看单播路由表,计算distance和 metric值,谁到源的路由最优谁获胜 如果distance和 metric相等,ip地址大的获胜,成为forwarder转发多播数据流量 输的就停止转发 (prune修剪接口),pim-dm 评价,对于小型网络来说非常有效,用于实验室、设备性能测试 优势: 易于配置-总共只有两条命令 实现机制简单(洪泛修剪) 潜在问题. 洪泛修剪过程不够高效 复杂的assert机制 控制和数据平面混合 导致网络内部的所有路由器上都有(s, g) 可能会导致非确定性的拓扑行为 不支持共享树,pim-dm配置实施,任务1:首先保证单播路由通信正常 任务2:在网络设备上配置组播协议 (1)全局下启用组播 ip multicast-routing (2)三层接口上启用pim-dm ip pim dense-mode 任务3:配置接收节点并“放号” 任务4:查看与排错,8、pim-sm (rfc 2362),支持共享树和源树 假设没有主机需要接收组播数据,除非它们明确地发出了请求使用“汇聚点”(rp, rendezvous point) 发送者和接收者在rp处进行汇聚 发送者的第一跳路由器把发送者注册到rp上 接收者的dr(直连网络上的负责人)为接收者加入到共享树 (树根在rp) 适合于 大规模的企业网络 是任何网络的优选方案,不管其规模和成员密集程度。,这个rp很重要哦!,pim-sm的7种包,hello join/prune assert bootstrap c-rp-ad register register-stop,pim-sm与dm异同,相同点: 1、邻居发现机制 2、单播路由表变化时rpf的重新选择 3、dr的选择 4、prune-override 5、forwarder的选择 不同点: 1、sm使用了显示加入模式,起初时由组成员发起的 2、sm即支持共享树又支持spt,pim-sm 共享树加入,接收者,rp,(*, g) 仅在共享树 沿途建立,pim-sm 发送者注册,接收者,rp,共享树,(s, g)仅在源树 沿途建立,pim-sm 发送者注册,接收者,rp,共享树,rp向第一跳路由器发送注册停止(register-stop)消息,停止注册过程,数据流从组播源通过 源树到达rp,pim-sm 发送者注册,接收者,rp,共享树,源数据流延源树(spt) 流向rp,从rp开始,数据流延 共享树(rpt)流向接收者,pim-sm spt 切换,接收者,rp,shared tree,last-hop router joins the source tree.,additional (s, g) state is created along new part of the source tree.,pim-sm spt 切换,接收者,rp,shared tree,traffic begins flowing down the new branch of the source tree.,additional (s, g) state is created along along the shared tree to prune off (s, g) traffic.,pim-sm spt 切换,接收者,rp,shared tree,(s, g) traffic flow is now pruned off of the shared tree and is flowing to the receiver via the source tree.,pim-sm spt 切换,接收者,rp,shared tree,(s, g) traffic flow is no longer needed by the rp so it prunes the flow of (s, g) traffic.,pim-sm spt 切换,接收者,rp,shared tree,(s, g) traffic flow is now only flowing to the receiver via a single branch of the source tree.,pim-sm操作:创建共享树(1),1、组成员(接收节点)首先通过发送igmp报告消息申请加入感兴趣组 2、相连路由器收到igmp信息后记录下(*,g),将接口加入到多播组出口列表。并检查rp-group-map,找出该多播组的rp(rp是一个ip地址代表的,通过查找单播路由表找出rpf接口)。然后向上游路由器发送pim join消息,其目的是要创建根于rp的该组的一个共享树(*,g)。 3、上游路由器做出反应。,pim-sm操作:创建从源到rp的spt(2),1、多播源发送多播流,与之相连的第一跳路由器首先会找出该多播组的rp,然后以pim register消息把多播包重新封装在单播包中发送到rp。 2、如果有该多播组的共享树, rp收到pim register消息包后去封装提取出多播流并沿着该多播组的共享树转发多播流,然后rp通过rpf向上游发送pim join最终形成从源到rp的spt,此时多播流直接沿spt发送到rp,不必封装在单播中,rp随后发送pim register-stop消息单播到第一跳路由器,停止第一跳向rp发单播流。 3、如果没有该组的共享树,rp立刻发送pim register-stop消息单播到第一跳路由器,停止第一跳向rp发单播流。,pim-sm操作:spt切换(3),1、最后一跳路由器一旦发现了正在转发多播流量的源节点ip,可以通过向源节点方向的上游路由器发送pim join消息,从而迅速创建或加入该多播组的spt(s,g)。 2、当多播路由器不需要从rp接收多播流时,会发送pim prune消息到rp修剪来自共享树的多余流量。,9、rp的常见两种确定机制,1.手工静态指定 需要在每台多播路由器上手工配置rp信息,同时 还要定义group-rp的映射关系。 2.采用bsr(bootstrap router 自举路由器协议) 动态方式通告rp信息,只需在rp和bsr路由器 上做配置即可,其他pim多播域内的路由器会自 动学习到rp的信息。 bsr是标准的rp选举与维 护机制,所有支持pim-sm的设备都会支持bsr 机制。,静态配置rp,router(config)# ip pim rp-address 192.168.1.1 1 override router(config)# access-list 1 permit 239.1.1.0 0.0.0.255 192.168.1.1是rp的地址,建议用rp路由器loopback 0接口的地址来标识rp 239.1.1.0 0.0.0.255表示是这些多播组地址 注意:以上静态指定rp的命令需要在所有组播路由器上配置,rp路由器的ip地址,rp只为该组播地址服务,静态rp优先于bsr选举的rp,pim-sm网络,c-rp,c-rp,d,e,f,g,bsr 基础,b,c,a,bsr,采用bsr动态选举rp配置,配置c-bsr router(config)# ip pim bsr-candidate loopback 0 30 10 router(config)# int loopback 0 router(config-if)# ip pim sparse-mode 配置c-rp router(config)# ip pim rp-candidate loopback 0 group-list 1 priority # router(config)# access-list 1 permit 239.0.0.0 0.255.255.255 router(config)# int loopback 0 router(config-if)# ip pim sparse-mode,hash码长度,bsr的优先级,用该接口代表bsr,rp的优先级,该rp只为该组播组服务,bsr概要,作用:负责在pim-sm网络启动后,收集网络内的rp信息,然后将rp集(即组-rp映射数据库)发布到整个pim-sm网络。 配置:可以配置多个候选bsr (c-bsr) 主备作用,优先级值大的成为bsr,优先级值相同的话ip地址大的优先 候选rp(c-rp)将c-rp通告消息发送到bsr (缺省周期60秒) c-rp通告消息通过单播发送(c-rp优先级、ip地址、组地址) bsr在rp集存储所有的 c-rp通告 通告:bsr周期性(缺省周期60秒)地向所有路由器发送 bsr消息 bsr消息包含整个rp-set和 bsr地址 消息一跳一跳地自bsr向整个网络洪泛(flood) 所有的路由器使用收到的rp集来确定rp 所有路由器都使用相同的rp选择算法,选择的rp也是一致的,rp的选举,为获得汇聚点(rp)信息,所有普通路由器都要收集自举(bootstrap)消息,即普通路由器接收并保存由自举路由器发送来的自举消息,它采用在自举消息中发布的一组可用汇聚点来获得合适的组播组到汇聚点的映射。不同组映射到不同rp可以实现rp负载分担。如果为了简化部署,可以将rp和bsr部署在同一台路由器上。 1、如果组中只有一个c-rp,则直接选为rp。 2、存在多个c-rp,拥有最小优先级值的c-rp成为rp。 3、优先级相同,运行一个hash函数(这个函数输入的参数有:组的前缀、hash掩码和c-rp的地址,输出为:hash值),有最大结果的c-rp成为rp。 4、如果hash值相同,有最大ip地址的c-rp成为rp。,pim-sm评价,对于稀疏和密集应用都很高效 优势: 数据流仅沿着“加入”的分支向下发送 可以根据流量等条件动态地切换到源树 与具体的单播路由协议无关 域间组播路由的基础 和mbgp、msdp共同结合使用可以完成跨as域的组播,10、anycast rp,场景:为了增强 pim-sm 中 rp 节点的可靠性,以及对网络中的组播流量进行分担,可在网络中选取若干 rp 点,运行 anycast rp,达到冗余备份,负载分担的目的。 原理:多个 rp 配置一个相同的 anycast rp 地址,这个地址使用 rp 上的一个接口(通常是逻辑接口,如 loopback 接口)。之后 rp 使用这个接口地址对外发布组到 rp 的映射信息。由于使用的是 anycast rp 地址,所以组成员在加入时,会向拓扑距离最近的一个 rp 发起。在这些 rp 之间使用各自不同的地址建立 msdp 连接,利用 msdp 实现多播源信息在所有 rp 之间的同步。anycast rp 实际上是 msdp 在域内的一个特殊应用。,anycast rp操作原理,sa:source-active (包括多播源、多播组、rp地址信息) 当有一个源注册到rp1时,rp1会通过msdp将该源的信息告诉rp2,rp2便可反向建立spt到该源,这样保证了加入rp2的组成员也能够收到该多播源发送的多播流。,anycast rp的切换,rp1down后,单播路由收敛,所有组成员会加入到rp2上,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全用电培训考核小结课件
- 安全用电培训漫画课件
- 洪涝后防病消毒知识课件
- 2025年地热热泵空调系统项目提案报告模范
- 2025河南信阳市人民医院招聘合同制人员2人模拟试卷及答案详解(有一套)
- 2025河南郑州管城区紫东路社区卫生服务中心招聘2人模拟试卷及答案详解(网校专用)
- 法院安全意识培训课件
- 法院妇联安全培训课件
- 法语B2课件教学课件
- 万维科技基金从业考试题及答案解析
- 承包商全流程安全培训
- 养生店国庆节活动方案
- 间质性肺炎护理查房内容课件
- 交通事故原因分析
- 深圳市企业职工养老保险养老金申请表
- IDC云数据中心机房运维服务解决方案
- 婴幼儿发展的一般规律及养育要点
- 大一统视阈下的边疆治理
- 2020ESPEN专家建议:围手术期营养管理
- 《教育心理学》课程教学大纲
- 中西医结合导论第一章中西医结合导论
评论
0/150
提交评论