首页> 中国专利> 组播树构建方法、组播数据传输方法、控制器及存储介质

组播树构建方法、组播数据传输方法、控制器及存储介质

摘要

本发明提供组播树构建方法、组播数据传输方法、控制器及存储介质。组播树构建方法包括:获取包括源节点和目的节点的网络拓扑结构;保留所述网络拓扑结构中与所述目的节点相对应的有用子图以及有效割点,去除所述网络拓扑结构中的无用子图以及无效割点,以获得简化的网络拓扑结构;根据所述简化的网络拓扑结构,构建包含从所述源节点到所述目的节点中的每个的传输链路的生成树作为组播树。

著录项

  • 公开/公告号CN114070777A

    专利类型发明专利

  • 公开/公告日2022-02-18

    原文格式PDF

  • 申请/专利权人 中国电信股份有限公司;

    申请/专利号CN202010744272.8

  • 发明设计人 李骁;杨娟;韩志均;刘沅畅;

    申请日2020-07-29

  • 分类号H04L45/16(2022.01);H04L45/48(2022.01);

  • 代理机构中国贸促会专利商标事务所有限公司 11038;

  • 代理人许海兰

  • 地址 100033 北京市西城区金融大街31号

  • 入库时间 2023-06-19 15:49:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-04

    授权

    发明专利权授予

  • 2022-03-18

    实质审查的生效 IPC(主分类):H04L45/16 专利申请号:2020107442728 申请日:20200729

    实质审查的生效

  • 2022-02-18

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及计算机网络的通信技术领域,具体涉及组播构建方法、组播数据传输方法、控制器及存储介质。

背景技术

在例如局域网、广域网、互联网等网络的网络通信中,按照同一信号/数据的接收者数量来说,可以分为单播、广播等通信方式。

单播指的是信号发出者与信号接收者进行一对一的匹配,属于点对点通信。单播对于每个用户的不同请求可以发送不同的消息,这带来的优点便是可以根据用户特定的需求,进行定制化服务。单播的缺点也显而易见,由于需要向每个用户都发送数据流,链路资源利用率较低,且对网络带宽消耗太大。

相对而言,广播指的是信号发出者与所有信号接收者进行一对多的匹配,属于点对多通信。广播虽可以让多个用户接收相同的消息,但是广播意味着子网中的所有用户都会收到这样的一份消息,无论它是否需要,这就造成了资源的浪费。

总之,无论是单播还是广播,在网络通信中都存在一定的问题。

在这样的一个背景下,组播应运而生。组播与广播类似之处在于,也是在信号发射源与信号接收者之间建立起一对多的通信关系。然而,与广播所不同的是,组播里的这些接收者是经过一定筛选的,这些组成员都是需要这些信号的。所以组播既解决了单播不能同时发送给多个接收者的弊端,也解决了广播将信号发送给每一个接收者,而不管它是否需要所造成的资源利用率较低的问题。

发明内容

在组播数据的传输过程中,一般而言,源节点向需要同样的数据(即,组播数据)的多个目的节点提供数据。组播数据的相同副本经过网络链路分别传输到多个目的节点中的每一个。这样的过程中,接收路径差异可能导致组播传输出现问题,即在信号接收者(目的节点)接收能力有差异性的情况下,信号传输如何同时满足不同信号接收者的需求的问题。接收路径差异性问题是组播传输特有的问题。

例如,当数据量/数据速率较大时,可能存在目的节点中的一个或者多个不能接收/处理该数据的情况。如果持续向该节点发送大的数据量,则同样造成了带宽的浪费,并可能导致目的节点不能正常运行。此外,也可能存在到达该节点的传输链路的带宽不能支持大的数据量/数据速率的问题,这可能造成网络堵塞。

这样的一个典型的例子是视频流数据的组播传输。当源节点以较高的分辨率(对应较大的数据量)提供视频流数据时,如果某个目的节点不具备接收该分辨率视频流数据的能力(例如,由于该节点的较低的网络带宽或者较低的数据处理能力),则可能导致目的节点处的视频播放卡顿或者完全无法播放。

一个可能的解决方案是在源节点处准备多个不同分辨率的数据拷贝/副本,例如“普通”、“高清”等,以向不同能力的节点提供。然而,这样可能导致源节点处存储空间的额外消耗,以及更大的网络带宽。例如,存储空间和网络带宽需要满足“高清”和“普通”等的组合,而不仅仅是“高清”数据。这会导致成本的极大增长。

本发明提出了一种组播树构建方法,根据网络拓扑结构,构建组播树,以获取源节点到目的节点的传输链路,这有利于掌握目的节点之间的路径差异性。

尤其是,进一步提出了组播数据传输方法、控制器及存储介质,在掌握路径差异性的基础上,进一步根据终端(目的节点)的接收/处理能力、和/或网络传输状况等而对于组播目的节点中的每个节点传输组播数据中相对应的数据部分,以适应设备的差异性。

根据本发明的一个方面,提供一种组播树构建方法,包括:获取包括源节点和目的节点的网络拓扑结构;保留所述网络拓扑结构中与所述目的节点相对应的有用子图以及有效割点,去除所述网络拓扑结构中的无用子图以及无效割点,以获得简化的网络拓扑结构;根据所述简化的网络拓扑结构,构建包含从所述源节点到所述目的节点中的每个的传输链路的生成树作为组播树。

在本发明的实施例中,所述组播树构建方法还包括:基于所述传输链路的带宽和/或带宽利用率,优化所述生成树中的所述传输链路。

在本发明的实施例中,基于克鲁斯卡尔算法构建所述生成树。

在本发明的实施例中,所述组播树构建方法还包括:获取所述网络拓扑结构中的节点的变更信息;基于所述变更信息,更新所述网络拓扑结构;基于更新后的网络拓扑结构,更新所述生成树。

在本发明的实施例中,所述节点的变更包括目的节点的加入或退出。

根据本发明的另一个方面,提供一种组播数据传输方法,包括:获取组播数据的信息,其中,所述组播数据包括基础层数据和至少一个增强层数据;获取从源节点到目的节点中的每个的可利用的带宽信息;指示所述源节点将所述组播数据中的所述基础层数据发送到所述目的节点中的每个;根据所述带宽信息,指示所述源节点将所述组播数据中的所述至少一个增强层数据中的每个分别发送到所述目的节点中具有对应带宽的目的节点,其中,所述带宽信息包括:从所述源节点到所述目的节点的传输链路的带宽以及所述目的节点可承受的带宽;其中,基于上述的组播树构建方法构建的组播树,获取所述传输链路。

在本发明的实施例中,所述组播数据的第一服务质量对应于所述基础层数据;所述组播数据的第二服务质量对应于所述基础层数据和第一增强层数据的组合;所述第二服务质量高于所述第一服务质量。

在本发明的实施例中,所述组播数据的第三服务质量对应于所述基础层数据、第一增强层数据、和第二增强层数据的组合;所述第三服务质量高于所述第一服务质量,并且高于所述第二服务质量。

在本发明的实施例中,所述第二服务质量所需的带宽高于所述第一服务质量所需的带宽。

在本发明的实施例中,所述组播数据包括视频流数据,所述组播数据的服务质量包括分辨率。

在本发明的实施例中,对于所述基础层数据以及所述至少一个增强层数据中的每个,维护对应的链路表。

在本发明的实施例中,基于节点的变更信息,维护对应的所述链路表;其中,所述节点的变更包括所述目的节点的所述带宽信息与所述至少一个增强层数据中的至少一个的对应关系的改变。

在本发明的实施例中,所述对应关系的状态对应于有限状态机中的状态。

在本发明的实施例中,所述组播数据传输方法由组播数据传输控制器执行。

在本发明的实施例中,所述组播数据传输控制器包括软件定义网络控制器。

根据本发明的另一个方面,提供一种组播数据传输控制器,包括存储器和处理器,其中,在所述存储器中存储指令,在所述指令被所述处理器运行时使所述处理器执行上述的组播数据传输方法。

根据本发明的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时,使所述处理器执行上述的组播数据传输方法。

根据本发明的实施例,根据网络拓扑结构,构建组播树,以获取源节点到目的节点的传输链路,这有利于掌握目的节点之间的路径差异性。

尤其是,在掌握路径差异性的基础上,进一步根据终端(目的节点)的接收/处理能力、和/或网络传输状况等而对于组播目的节点中的每个节点传输组播数据中相对应的数据部分,以适应设备的差异性。

附图说明

为了更清楚地说明本发明的实施例的技术方案,下面将对实施例的附图进行简要说明,应当知道,以下描述的附图仅仅涉及本发明的一些实施例,而非对本发明的限制,其中:

图1为根据本发明的实施例的组播数据传输方法的示例性流程图。

图2为根据本发明的实施例的构建组播树并进行组播数据传输的系统的示例性框图。

图3为根据本发明的实施例的所应用的分层编码数据与目的节点之间的对应关系的示例性示图。

图4为根据本发明的实施例的构建组播树的步骤的示例性流程图。

图5为根据本发明的实施例的构建组播树的步骤应用于网络拓扑结构的示例图。

图6为根据本发明的实施例的有限状态机的状态转化图。

具体实施方式

为了使本发明的实施例的技术方案和优点更加清楚,下面将结合附图,对本发明的实施例的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域技术人员在无需创造性劳动的前提下所获得的所有其他实施例,也都属于本发明保护的范围。

图1为根据本发明的实施例的组播数据传输方法的示例性流程图。

如图1所示,在本发明的实施例中,组播数据传输方法包括:步骤S101,获取组播数据的信息,其中,组播数据包括基础层数据和至少一个增强层数据;步骤S102,获取从源节点到目的节点中的每个的可利用的带宽信息;步骤S103,指示源节点将组播数据中的基础层数据发送到目的节点中的每个;步骤S104,根据带宽信息,指示源节点将组播数据中的至少一个增强层数据中的每个分别发送到目的节点中具有对应带宽的目的节点。

带宽信息可以包括:从源节点到目的节点的传输链路的带宽以及目的节点可承受的带宽。可以以任意方法获取传输链路的带宽以及目的节点可承受的带宽的信息。例如,这些信息可以预先存储在网络的服务器或者控制器中。也可以基于后述的组播树构建方法构建的组播树,获取传输链路,以更好地适应于可能动态变化的网络拓扑结构。

根据本发明的实施例,在组播数据的传输过程中,根据终端(目的节点)的接收/处理能力、和/或网络传输状况等而对于组播目的节点中的每个节点传输组播数据中相对应的数据部分,以适应设备的差异性。

具体而言,源节点可以仅仅向网络中提供一份对应于最大带宽/最高服务质量的组播数据,但是该组播数据的不同部分(基础层,增强层)被传输到不同的目的节点。该组播数据的不同部分可以包括不同的目的节点的IP(互联网协议)地址,MAC(介质访问控制)地址等。这有利于节省源节点的带宽、存储空间。在源节点是需要提供大量服务数据的服务商等的情况下,这对于成本的节约是十分显著的。

组播数据的不同层可以根据UDP(用户数据报协议)进行封装,并创建多个不同端口号的UDP套接字来进行传输。源节点可以在组播数据中直接标记目的节点,也可以将组播数据传输至指定其它转发节点(交换机、路由等),以由其它转发节点进行标记处理等。

各个目的节点可以根据从源节点到目的节点中的每个的可利用的带宽分别接收到该组播数据中的部分。目的节点自身无需处理超出自身能力(或者超出自身需要)的数据量,并且到目的节点的网络链路也无需承载超出其带宽的数据量。这可以更准确地对于目的节点提供流畅的数据服务。这有利于目的节点的正常运行,并且避免了目的节点的用户在目的节点处的手动选择和设置。

可以根据具体应用包括任意数量的增强层数据,例如包括:第一增强层数据、第二增强层数据、第三增强层数据、第四增强层数据等。组播数据的信息中可以相应包括这样的分层方式的信息。

在一些实施例中,组播数据的第一服务质量对应于所述基础层数据;组播数据的第二服务质量对应于基础层数据和第一增强层数据的组合;第二服务质量高于第一服务质量。

在一些实施例中,组播数据的第三服务质量对应于基础层数据、第一增强层数据、和第二增强层数据的组合;第三服务质量高于第一服务质量,并且高于第二服务质量。

以此类推,更多增强层数据的组合带来更高的服务质量。也就是说,在组播数据的多层结构中,基础层数据可以提供基础的数据服务。而随着增强层数据的逐渐叠加,可以提供服务质量逐步增强的数据服务。

在一些实施例中,第二服务质量所需的带宽高于所述第一服务质量所需的带宽,以用于传输更多层的数据。

图2为根据本发明的实施例的构建组播树并进行组播数据传输的系统的示例性框图。

如图2所示,以在SDN网络中进行视频流组播数据的传输为例,进行进一步的说明。

SDN(Software Defined Network,软件定义网络)是一种新型的网络体系架构,其核心思想是把传统设备中的转发平面和控制平面进行分离。通过集中式的SDN控制器使用标准的接口来对各种不同的网络设备进行配置和管理,使得对网络的管理更加集中化、精细化。SDN可以提供整个网络拓扑的信息,增强对底层网络的认知,进而优化组播树,提高资源利用率。

在图2中,可以构建基于SDN的资源可高效利用的自适应多速率组播树的系统,包括SDN控制器100,视频流服务器200、SDN网络300。应当理解,图2中,为了使得逻辑结构更加清晰,此处的SDN网络300主要包括网络传输链路(诸如路由、交换机、有线/无线网络链路等)、目的节点等。广义而言,也可以认为SDN网络300包括SDN控制器100,视频流服务器200等。

视频流服务器200的功能包括对视频内容201进行分层视频编码202,以得到不同带宽的分层视频流203,并将相关的视频信息上传至SDN控制器,以及将分层视频流203传输至SDN网络中。即,视频流服务器200是提供组播数据的源节点。

SDN控制器100的功能有以下几点:其一,与视频流服务器200进行对接,获取和记录分层视频流信息;其二,对SDN网络300中的设备进行管理,管理包括组播管理101、用户管理102、视频管理103、拓扑管理104、QoS(服务质量)管理105、路由管理106;其三,根据用户需求,下发开放流相关的指定流表,进而维护SDN网络。即,SDN控制器可以用于执行上述的组播数据传输方法。

SDN控制器100可以从SDN网络300获取开放流(OF)事件402以及向SDN网络发送OF命令401。

在图2所示的示例中,可以对源节点所发出的视频流进行可伸缩的分层视频编码,得到一个基础层和若干增强层的视频流。其中基础层的视频流用来提供基本的视频质量(例如,较低的分辨率),增强层的视频流用来在基础层的基础上增强视频的质量(例如,更高的分辨率),叠加的增强层的数量越多,视频质量越好。这有利于根据目的节点的不同情况,提供不同质量的服务。

图3为根据本发明的实施例的所应用的分层编码数据与目的节点之间的对应关系的示例性示图。

例如,假设SDN控制器100已经得知:目的节点1(UID=1)可利用的最大带宽为8,目的节点2(UID=2)可利用的最大带宽为6,目的节点3(UID=3)可利用的最大带宽为4,目的节点4(UID=4)可利用的最大带宽为4,目的节点5(UID=5)可利用的最大带宽为6,目的节点6(UID=6)可利用的最大带宽为8,目的节点7(UID=7)可利用的最大带宽为10。

基础层数据和增强层数据可以对应于不同的带宽。例如,将分层视频的基础层的相对带宽记为4,第一层增强层相对带宽记为2,第二层、第三层和第四层相对带宽也记为2。因此,传输基础层视频所需的相对带宽为4。传输基础层累加一层增强层的视频流所需的相对带宽为6,即基础层的相对带宽加第一层增强层的相对带宽。传输基础层累加二层增强层的视频流所需的相对带宽为8,即基础层的相对带宽加第一层、第二层增强层的相对带宽。传输基础层累加三层增强层的视频流所需的相对带宽为10,即基础层的相对带宽加第一层、第二层、第三层增强层的相对带宽。

也就是说,如果所有目的节点都可以达到可利用的最大带宽时(例如当前网络状况允许,和/或网络计费策略允许,和/或节点自身的处理能力和设置允许等),则目的节点3和目的节点4仅能接收基础层视频流(带宽4),目的节点2和5可以接收基础层累加一层增强层的视频流(带宽6),目的节点1和6可以接收基础层累加二层增强层的视频流(带宽8),目的节点7可接收基础层累加三层增强层的视频流(带宽10)。

应当理解,上述每个带宽单位可以表示任意适当的速率,例如,1个带宽单位可以对应1MB/s或者5MB/s或者10MB/s等。

可以使用任意方式获取上述带宽信息。例如,在SDN控制器100中可以存储有从源节点到目的节点的每个的固定的传输链路和相对应的带宽信息以及目的节点自身可承受的带宽。应当理解,这样的传输链路和相对应的带宽信息也可以动态地确定。这样的过程可以被称为构建组播树/获取传输链路的过程。

应当理解,这里的可利用的最大带宽可以是仅仅根据节点自身的能力/配置得到,也可以是考虑了网络传输链路等其它因素而得到。

图4为根据本发明的实施例的构建组播树的步骤的示例性流程图。

如图4所示,在本发明的实施例中,可以使用如下所述的组播树构建方法来构建组播树,并进一步根据组播树获取传输链路。组播树构建方法包括:S201,获取包括源节点和目的节点中的每个的网络拓扑结构;S202,保留网络拓扑结构中与目的节点相对应的有用子图以及有效割点,去除网络拓扑结构中的无用子图以及无效割点,以获得简化的网络拓扑结构;S203,根据简化的网络拓扑结构,构建包含从源节点到目的节点中的每个的传输链路的生成树作为组播树。可以利用各种算法来构建上述的生成树。例如,在一些实施例中,基于克鲁斯卡尔算法,或者类似克鲁斯卡尔算法等构建生成树。

根据这样的方式,SDN控制器可以根据当前网络拓扑结构确定各个传输链路。

此外,各种不同的指标可以用于优化这样的链路。例如,在一些实施例中,可以基于传输链路的带宽和/或带宽利用率,优化生成树中的传输链路,以尽可能选择合适的带宽的传输链路,和/或尽可能提高网络中各个链路带宽的利用率。

也就是说,在本发明的实施例中,SDN控制器根据目的节点可接收的分层情况以及网络链路可承受的带宽情况,根据割点、生成树等算法建立视频流分发网络的拓扑结构,形成组播分发树,下发流表,进行视频流的传输。

图5为根据本发明的实施例的构建组播树的步骤应用于网络拓扑结构的示例图。

SDN控制器可以通过探测获取整个网络拓扑的结构,获取链路带宽信息和目的节点可承受的带宽信息,初始化网络。在图5的(a)所示的原始网络中,方块表示源节点或目的节点,其中方框中的0号标记为源节点,1-7号标记为目的节点。黑色圆形表示是图中的割点,即与网络拓扑的连通性相关的节点。在图中,如果删除任一割点,则会使得图不再连通。割点可以通过遍历等方式(例如,深度优先搜索等方法)来确定。白色圆形表示普通节点。链路和节点上的数字(框体之外的数字)表示相对带宽。割点、普通节点使用a~u等分别表示。

对于网络拓扑中的割点、链路等可以进行进一步选择,以形成包括从源节点到目的节点的每个的链路的生成树。这可以被称为割点生成树算法。本发明的实施例中的割点生成树算法旨在使用尽可能少的节点和链路的情况下,最大程度保证目的节点的带宽需求,同时尽可能提高链路的带宽利用率。割点生成树算法的过程以及相关结果可以进一步具体由图5中的(a)-(f)所示。

首先,寻找初始网络图5的(a)中的所有割点,检查割点是否仅连接一个无用子图,若仅连接了一个无用子图,则在网络图中去掉该割点(无效/无用割点)和无用子图。子图是指节点集和边集分别是该初始网络拓扑图的节点集的子集和边集的子集的图。无用子图指的是该子图中不包含目的节点。若割点连接了有用子图,则该割点成为有效/有用割点,有用子图指的是该子图中包含目的节点。若割点既连接了有用子图也连接了无用子图,则保留割点,去掉无用子图部分。去掉无效割点以及其所连接的无用子图后,得到一个新的网络(图5的(b))以及一个有效割点集{c,e,f,g,h,i,j,k,q,s,t,u}。这可以被称为初步的剪枝处理,得到的网络拓扑可以被称为简化的网络拓扑。

然后,对所有割点、连接两个割点的边和目的节点采用近似克鲁斯卡尔算法,生成如图5的(c)所示的全割点生成树。具体而言,全割点生成树中可以只有割点和目的节点以及连接的链路,割点与普通节点连接的链路可以不在此树中。这样的全割点生成树可以在去掉无用部分的同时,保证源节点到目的节点的连通性,可以用于带宽信息的判断以及分层数据的分别传输。

然而,这样的全割点生成树可能不是最优的。例如,由于链路带宽的限制,可能并不是所有目的节点都可以达到它们所需要的理论带宽。具体而言,比如目的节点6,其最大可承受带宽为8,但是其连接到网络中的链路中存在更小的链路带宽(例如,t-6的链路中的6),则无法满足其最大可承受带宽。

可以通过指定算法计算从源节点到各个目的节点的最大链路带宽。指定算法为标记从源节点到目的地节点各个路径中可承受带宽最小值,然后取这些最小值中的最大值。例如,从源节点到一个目的节点有三条路径,第一个路径上的各个链路中的带宽最小值为8,第二个路径上的各个链路中的带宽最小值为10,第三个路径上的各个链路中的带宽最小值为12,那么从源节点到该目的节点的最大可承受带宽即为12。

此外,相反地,还有一些目的节点尽管链路可以满足更大的带宽,但是目的节点本身可承受带宽较小,这时候其连接到网络中的链路就没必要传输较大的带宽,具体而言,比如目的节点4,其最大可承受带宽为4,但是连接到网络中的链路(0-c-i-h-g-4)中最小带宽值为6,在不影响其他目的节点传输的情况下,这些链路传输的带宽都可以考虑从6下降为4,以降低网络负载。此外,目的节点自身也可能出于自身需求主动要求较小带宽的数据,例如,这可能出于保证流畅度的考虑和/或减少费用的考虑。

因此,对于图5的(c)中的全割点生成树,可以进行进一步的优化构成。

例如,可以首先检查目的节点的带宽是否得到了最大满足,若没有得到满足,遍历目的节点附近有较大链路带宽经过的节点,节点包括割点和非割点,进行尝试性替换,如果可以提供更好的服务,则将此非割点或链路添加至全割点生成树,然后替换或修改原有的链路,形成如图5的(d)所示的割点生成树。

具体而言,在图5的(c)中,目的节点1的最大带宽并没有得到满足,并且目的节点1可以选择链路e-d、链路c-d来实现自己最大带宽,于是选择用链路e-d、链路c-d和添加节点d来取代链路e-c,最终得到图5的(d)。

再比如,在图5的(d)中,目的节点6的最大带宽没有得到满足,并且可以选择链路s-h替换链路t-j来实现目的节点6的最大带宽,最终得到图5的(e)。这可以被称为优化的第一阶段。这样的选择和替换过程可以在每一条链路(可以是任意两个节点,或者任意多个节点之间的链路)上进行。

最后,还可以检查链路带宽利用率能够得到提高,若存在不影响目的节点带宽的情况下可以提高带宽利用率的链路,则选择替换原有链路。例如,在图5的(e)中,目的节点2通过链路d-f-2可以使链路d-f带宽利用率达到百分之百,高于通过链路e-f-2传输视频的带宽利用率,于是选择用链路d-f-2来替换链路e-f-2,得到图5的(f)。这可以被称为优化的第二阶段。该过程同样可以在所有的链路上遍历。

也就是说,应用割点生成树算法,在保证目的节点最大带宽得到满足的情况下,优化链路和节点数量,得到如图5的(f)所示的拓扑图。

如此,SDN控制器获得组播树中所有链路的带宽情况。并根据终端设备即目的节点接收能力的差异性,得到目的节点可接收的最大带宽值。再结合对源视频流的分层情况,可以进一步计算出每个目的节点可接收的分层视频流的数量。

从图5(f)可以得出,目的节点3、4和5仅接收基础层视频流(带宽4),目的节点2和6可以接收基础层累加一层增强层的视频流(带宽6),目的节点1可以接收基础层累加二层增强层的视频流(带宽8),目的节点7可接收基础层累加三层增强层的视频流(带宽10)。

也就是说,在首先尽可能满足目的节点最大带宽需求的前提下,增加资源的利用率,最终对目的节点分配如上所述的视频流分层情况。

在一些实施例中,组播树构建方法可以还包括:获取网络拓扑结构中的节点的变更信息;基于变更信息,更新网络拓扑结构;基于更新后的网络拓扑结构,更新生成树。在一些实施例中,节点的变更包括目的节点的加入或退出。

作为示例,若视频传输网络中有新的目的节点加入或原有的目的节点退出,需要SDN控制器对传输视频流的拓扑进行动态调整。无论是有新的目的节点加入或退出,都需要进行检查和更新。

在一些实施例中,可以对于基础层数据以及至少一个增强层数据中的每个,维护对应的链路表。每个链路表表示当前的数据从源节点到一个目的节点的路径。该链路表可以根据生成树,尤其是优化后的生成树得到。并且尤其是可以根据网络拓扑结构的变化,对于生成树以及链路表进行更新。在一些实施例中,即使这些节点本身已经存在于网络中,也可以基于节点的变更信息,维护对应的链路表;节点的变更可以包括目的节点的带宽信息与至少一个增强层数据中的至少一个的对应关系(例如,是否支持某一个增强层数据的传输)的改变。

图6为根据本发明的实施例的所使用的有限状态机的状态转化图。

在一些实施例中,对应关系的状态可以对应于有限状态机中的状态,这样,SDN控制器可以利用有限状态机机制,对其链路路径和目的节点进行检查,若某些路径链路带宽和/或目的节点的可承受带宽发生改变,则需要对其进行自适应的调整。在调整时,若原有组播树可以满足的,首选已有的路径,若已有的组播树不能满足,再选择更改已有的路径。

有限状态机机制可以是,为每个分层视频流的每条链路维护一个链路表。每条链路有三个标志(M,N,T),对于k层视频流而言,其中M表示该链路是否可容纳k层视频流,N表示该链路是否需要传输k层视频流,T表示SDN控制器是否在该链路已配置转发k层视频流的规则。例如,M=1表示该链路具有传输k层视频流的能力,M=0表示该链路没有足够的资源来传输k层视频流。N=1表示该链路需要传输k层视频流,N=0表示该链路不需要传输k层视频流。T=1表示为该链路配置了传输k层视频流的转发规则,T=0表示没有为该链路配置传输k层视频流的转发规则。只有当链路可容纳传输k层视频流并且该链路需要传输该层时,SDN控制器才会在该链路上配置k层视频层流转发规则。也就是说,T的标识取决于M和N,满足下式:

T=M*N;

因此,一个链路可以有四种可能的状态,如下:

1)S1=(0,0,0):在这种状态下,该链路没有能力容纳k层视频流,该链路也不需要传输k层视频流。因此,并没有为该链路配置k层视频流的转发规则。

2)S2=(0,1,0):在这种状态下,该链路需要传输k层视频流,但是该链路没有能力容纳k层视频流。因此,没有为该链路配置k层视频流的转发规则。

3)S3=(1,0,0):在这种状态下,该链路有能力容纳k层视频流,该链路不需要传输k层视频流。因此,没有必要转发这个层的数据包,故没有为该链路配置k层视频流的转发规则。

4)S4=(1,1,1):在这种状态下,该链路有能力容纳k层视频流,该链路也需要传输k层视频流。因此,需要为该链路配置k层视频流的转发规则。

有限状态机某一时刻只能处于一种状态。它在任何给定时间处于的状态称为当前状态。当触发事件启动时,它可以从一种状态更改为另一种状态。有两种类型的事件用于驱动最终状态机中的状态转换,即M事件和N事件,其中M事件是指在该链路N=1的情况下,M值变化(例如,在0,1之间的变化)触发T值变化的事件,而N事件是指在该链路M=1的情况下,N值变化(例如,在0,1之间的变化)触发T值变化的事件。在T值变化后,该链路状态即发生变化,链路层层触发,直到所有触发事件结束为止,链路即调整完毕,然后根据链路调整情况对节点状态进行调整。

当有目的节点加入或退出时,会使链路进行调整,动态的维护SDN组播网络。在图5中,比如目的节点1退出网络时,链路c-d所传输的分层视频流的带宽就可以从8下降为6。这个步骤其实是由第二层增强层的链路表的状态来进行自适应调整,即链路c-d的第二层增强层的链路表由(1,1,1)变为了(1,0,0)。与此相似的,当带宽需求为12的目的节点8从割点j处加入网络时,链路0-c、c-i、i-j的第四层增强层的链路表将由(1,0,0)变为(1,1,1),从而控制器在链路0-c、c-i、i-j配置第四层增强层的视频流的转发规则。添加目的节点后,对于目的节点所连接的节点,同样采用前述的链路优化算法,对链路进行优化。

如此,SDN控制器可以始终获取最优的传输链路,提高组播数据传输的成功率和网络带宽的利用率。

本发明的实施例中,组播数据传输控制器可以具有任意的结构,例如可以具有一个或者多个处理器,以及存储器。在存储器中存储指令。在指令被处理器运行时,使得组播数据传输控制器(或者更具体而言,使处理器)执行上述实施例中的组播数据传输方法。处理器可以是任意的通用或者专用处理器,例如中央处理单元,数字信号处理器,现场可编程逻辑门阵列等。存储器可以是任意种类的易失性存储器或者非易失性存储器。

此外,组播数据传输控制器(例如SDN控制器)也可以实现为在通用的服务器/计算机上运行的软件模块。

根据上述具体的实施例,本发明的方案基于组播树,可在满足带宽分配公平性、提高组播会话传输速率的同时,最大化链路利用率,最小化组播会话需要的流表项。

可以运用SDN技术来提高组播的性能。SDN技术可以改善组播技术中包括可伸缩性、管理动态组等问题。具有开放流的SDN网络,可以在网络交换机/路由器等内部实现路由和灵活转发语义的许多新特性。将SDN技术应用于组播技术,可以更快速地获取当前网络的拓扑结构,并且得到优化的组播树,更方便地设置各个路径上的转发节点,这可以大幅提高组播的性能。

此外,运用分层编码技术,可以解决设备接收能力差异性问题。分层编码技术可以用于将组播数据(例如,视频数据)编码成不同的若干个数据流(例如,对应于不同分辨率的增强层数据),以便根据终端(目的节点)的接收/处理能力、网络状况等传输相应数量的数据流。例如,本发明的实施例提供的可伸缩视频编码是解决视频流接收路径差异问题的有效方法,其将视频压缩成多个流的非重叠层,包括一个基层和多个增强层,基层提供基本的视频服务,增强层来提高视频的质量。

此外,可以运用有限状态机机制,针对因组播节点的动态变化带来的组播树更新的问题,旨在应对网络带宽实时的、增量式的公平分配问题。

此外,运用割点生成树算法,在保证设备差异性得到满足并且接收端带宽不受损害的前提下,优化组播树的结构,提高资源的可利用率。

应当理解,本说明书中“实施例”或类似表达方式的引用是指结合该实施例所述的特定特征、结构、或特性系包括在本发明的至少一个具体实施例中。

此外,本领域技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号