SDN网络IPv6组播机制支持实时视频业务海量用户扩展

以 OpenFlow 技术为核心的软件定义网络(SDN)框架具有集中控制的功能能够自己感知网络拓扑的变化,在细粒度的路径选择、接入控制、负载均衡方面有着天然的优势,为 IPv6 组播功能的实现提供了好的解决方案。

一、背景

随着互联网的迅猛发展,诸如视频直播、网络教学等实时业务的广泛应用,多个接收者需要同时从一个或多个源节点接收相同的流媒体数据,网络传输的信息容量大大增加,占用大量的网络带宽。对这些应用需求,传统的点播技术,不仅对源节点资源和网络带宽的消耗很大,同时用户数量的扩展受到限制。比较而言,组播是一个很好的传输方案。由于传统网络中路由器需要预先配置,然后才可以动态支持组播订阅者的加入、离开操作和组播树的生成操作,并且传统网络中的路由器没有针对用户对带宽的大需求来动态选择传输路径,很容易造成链路拥塞,不能够为用户提供较好的服务质量,难以在传统网络中大规模部署。

以 OpenFlow 技术为核心的软件定义网络(SDN)框架具有集中控制的功能,能够自己感知网络拓扑的变化,在细粒度的路径选择、接入控制、负载均衡方面有着天然的优势,为 IPv6 组播功能的实现提供了好的解决方案。为了解决 SDN 网络下的 IPv6 组播问题,提出了在 SDN 控制器中设计组成员管理、带宽拓扑维护、组播树的构建三个功能模块,不再需要部署分布式的组播路由协议。

二、SDN简介

SDN 是来源于斯坦福大学的 Clean Slate 项目组,他们有一个宏伟的目标,就是要重造因特网,改变现有的僵化的网络架构模式,以求建立一个可扩展的高性能的现代化网络架构。2009年,SDN 概念入围 Technology Review 年度十大前沿技术。 2012 年 4 月,ONF组织发布了 SDN 白皮书,提出了一种类似于操作系统的思想:把网络中的所有网络设备当成被管理的资源,控制器相当于一个操作系统,管理这些资源。这个控制器抽象网络设备,对网络设备进行维护,并把这些网络设备信息提供给上层应用。上层应用通过统一的可编程的接口来对这些网络设备进行配置和管理,实现相关的网络应用功能,不用再去关心底层的网络拓扑的变动。提出了 SDN三层模型(物理设备层、控制层、应用层)获得了业界广泛认同。

在 SDN 网络的实践方面,OFELIA、Internet2、FIRE和 GENI等科研组织在真实环境中部署了 SDN 网络。华为、锐捷、思科、Pica8 等厂商积极投入人力、物力进行研究,研发出支持 OpenFlow 协议的 SDN 控制器或 SDN 交换机。在 SDN 网络的企业部署方面,Google 把基于 OpenFlow 技术的 SDN 网络大规模部署在数据中心,使网络资源利用率得到了显著提高并且降低了网络运维的复杂度。

SDN的网路架构图如下所示:应用层主要是完成用户意图的各种上层应用程序,对网络资源的统一管理。控制层的核心功能是实现网络内部交换路径计算和边界业务路由计算、流表控制和下发等功能。转发层主要由交换机之间的链路构成基础转发网络。转发过程中所需要的转发表项是控制器下发的流表,交换机依据流表转发,本身不具有逻辑判断功能。

(SDN网络架构图)

三、ONOS控制器

SDN 控制器对整个 SDN 网络架构的性能有着决定性的作用。目前,已经有二十多种由不同语言、不同机构研发的控制器,特别是开源社区提供了很多的控制器,如Nox,RYU,Floodlight,OpendayLight,ONOS等。其中,ONOS控制器是第一款面向运营商的商业级别控制器。支持多种南向接口协议,抽象屏蔽了协议差异性,以高可靠性和高可用性著称,更适合运营商场景。ONOS的设计高度层次化、模块化、抽象化。ONOS的内核是由很多遵循同一架构设计的子系统组成的,核心层在设计上遵循“针对接口编程,不针对具体实现编程”的面向对象设计原则,将子系统提供的服务功能抽象成接口,呈现给顶层的应用和底层的协议插件。子系统的结构如下图所示。

(ONOS控制器子系统结构)

  • App Component:应用程序通过AdminService和其他服务接口聚合消息,被Manager Component使用和操作。
  • Manager Component:对网络的抽象,是协议无关的,对上提供统一的北向接口。主要包括Manager和Store,Store则负责数据的存储,查询,更新以及东西向同步等,所有来自Manager中与数据相关的操作都会通过Store来完成。Manager也会将Store中的事件抛出并实现ListenerService接口,其它应用通过ListenerService接口即可实现事件的监听。
  • Provider Component:Provider是协议相关的,主要为核心层提供抽象的数据类型,Provider通过核心层提供的ProviderService接口向核心层注入网络信息,Provider也会暴露Provider接口给核心层,接收来自核心层的command消息。每个Provider需要在ProviderRegistry进行注册,才能被ProviderService识别。

四、架构实现

在ONOS控制器的适配层、核心层和应用层开发实现IPv6组播功能。包括适配层对交换机端口状态的维护;核心层对订阅者信息和订阅者直连交换机信息的维护;应用层对组播路径选择的维护。架构实现图如下图所示。

(实现架构图)

带宽拓扑适配器组件实现对交换机及其端口状态的维护,OpenFlowDeviceProvider类是ONOS控制器中已经存在的交换设备抽象类,但没有提供获取实时端口带宽的方式。为了获得实时的端口可用带宽信息,在OpenFlowDeviceProvider类中设计了PortStatsCollector类。

组成员管理组件需要实现对组播订阅者的维护和订阅者端交换机信息的维护,并通知组播选路模块给组播订阅者选择路径。组成员管理组件的实现依赖设备管理子系统、数据包管理子系统、主机管理子系统,该组件由组播订阅者信息维护和订阅者端交换机维护两部分组成。

组播选路组件,当有组播订阅者加入组播组时,组播选路组件要依据当前的网络拓扑和链路带宽信息为组播订阅者选择传输路径,并且要考虑组播订阅者是新加入一个组播组还是加入一个已经存在的组播组,针对两种这两种情况有不同的选路算法。如果是新加入一个组播组,则组播流量是从组播发送端传送给接收者的;如果是加入已经存在的组播组,则组播流量是从转发组播流量的交换机多端口复制转发过来的。

五、实验结果

数据平面用Mininet模拟器模拟6台交换机,Mininet在Mininet模拟器中通过xterm命令开启三个主机是一个能够创建包含虚拟主机、交换机、控制器和链路的网络平台仿真器,Mininet主机运行的是标准的Linux网络软件,Mininet的虚拟主机、交换机、链路和控制器是由软件创建,使之看起来像一个完整的网络。在Mininet模拟器中通过xterm命令开启三个主机,给组播发送端配置的IPv6地址为fc00::1/64,两个订阅者配置的IPv6地址为fc00::2/64和fc00::3/4。三个主机分别运行各自的接收组播流量的程序,输出接收组播流量的来源和接收时间。实验结果如下图,两个订阅者可以同一时刻能收到相同的数据。

作者:李丹

来源:宜信技术学院

原文地址:https://www.cnblogs.com/yixinjishu/p/11684236.html

时间: 2024-08-02 11:55:53

SDN网络IPv6组播机制支持实时视频业务海量用户扩展的相关文章

ipv6组播

ipv6组播 Router(config-if)# ipv6 mld join-groupFF04::10 Router(config-if)# ipv6 mld access-listacc-grp-1 !控制用户能加入的组播 ipv6 mld static-group [group-address][include | exclude] {source-address | source-list[acl]} 如:Router(config-if)# ipv6 mld static-group

IPV6 组播学习理解

一. 理解IPV6的组播地址 IPv6的 组播地址通常是为IPv6的组播服务,而IPv6通信的核心大量的使用了组播,IPv6不再使用广播,这与IPv4的通信不同,然而要理解IPv6的组 播, 首先需要明白三个关键点: 第一.任何节点都能够成为一个多播组成员也叫做组播组成员: 第二.源节点可以发送数据包到多播组, 第三.在一个多播组的节点 都能收到发往该组播组的数据. 而对于IPv6组播地址是由固定的8bit地址前缀FF::/8,4bit的标志位,4bit组播范围和112bit多播组标识符(组ID

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

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

《TCP/IP 详解 卷1:协议》第 9 章:广播和本地组播(IGMP 和 MLD)

我已经懒了,卷一已经是去年年底看完的,但怎么说卷一的坑开了就要填完啊-- 广播和本地组播(IGMP 和 MLD) 引言 有 4 种 IP 地址,单播(unicast).任播(anycast).组播(multicast)和广播(broadcast).IPv4 可以使用所有地址,IPv6 可以使用除广播之外的地址. 本章讨论广播和组播的细节,例如: 链路层如何有效地从一台计算机向其他计算机发送广播或组播流量. 互联网组管理协议(IGMP)和组播侦听协议(MLD)如何工作,通知组播路由器子网中哪些组播

组播基础

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

CCNP路由实验之十 组播(多播)

??                    CCNP路由实验之十 组播(多播) 单播(Unicast):网络节点之间的通信通讯的模式是"一对一"的.此时信息的接收和传递仅仅在两个节点之间进行.比如.你在收发电子邮件.浏览网页时,必须与邮件server.Webserver建立连接,此时使用的就是单播传输数据方式.网络中的交换机和路由器对数据仅仅进行转发不进行复制. 假设10个客户机须要同样的数据,则server须要逐一传送.反复10次同样的工作. 但因为其能够针对每一个客户的及时响应.所

网络通信:单播、广播、组播

本文目录: 一.网络通信的分类.他们的定义和特点. 二.单播.广播.组播的传输信息的网络拓扑模型. 三.单播.广播.组播的编程实例. 一.网络通信的分类.他们的定义和特点. 二.单播.广播.组播的传输信息的网络拓扑模型. (一)单播 如图8-1 所示,网络中存在信息发送者Source,UserA 和UserC 提出信息需求,网络采用单播方式传输信息.                                                  单播传输特点归纳如下: * Source 向每个

组播pim理论

IP组播 - .多播源分发树和共享分发树 源分发树,保证目的到达源的路径最短,但要为每一个多播源保持一棵树,CPU使用率高. 共享分发树,要选RP,能保证目的到RP最近,不用为每一个源保持一棵树,而共同保持一棵以RP为根的树即可,这样节约了设备资源,但是不能再保证到源的路径最近了.(源发向rp的多播以单播ip in ip的形式) PIM(IPv4)简介 PIM(Protocol Independent Multicast)称为协议无关组播,主要用于将网络中的组播数据流发送到有组播数据请求的组成员

如何在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