基于SDN的NDI流媒体组播优化框架

这篇文章是网络技术挑战赛的SDN赛道的作品。本来是做不出来作品的,我准备弃赛的。因为提交作品要求有文档有源码,还要有演示视频。我哪会SDN相关的开发。

但是因为学校已经帮忙交了报名费,老师也让我到最后尽量的交作品,就算是半成品也交。这里也非常感谢老师的支持。

SDN赛道整个学校就只有我一个队伍,我估计这玩意西南赛区获奖,应该也算是照顾了一下我学校。实际上我这个作品还是太菜了一点。和其他大佬相比还是差距甚远。

整篇文档大概都是借鉴了华为的随流检测以及SDN基础知识,原创的东西不多。这里也把这篇文章贴到我的博客上,也算是记录一下吧。

项目背景

行业背景

  1. 移动互联网时代,在线直播行业迎来高速发展。而随着各种新兴技术发展脚步加快,未来在线直播结合新技术发展有望再次迎来突破。
  2. 据媒体报道,截至2023年6月,我国网络直播用户规模达7.65亿人,国内直播不断向专业化、精细化、规范化的方向发展。
  3. 近年来,包括中央广播电视总台等在内的用户在超高清的流媒体项目中已陆续转型到整个制播流程网络化、IP化。
  4. 同时在流媒体领域,SDN技术的引入将带来一系列创新,提高了流媒体服务的质量、可靠性和效率。

政策背景

政府部门逐渐意识到SDN技术在网络行业的重要性,出台了一系列政策和规定,以推动SDN技术的应用和发展。同时,流媒体行业也受到政策的影响,需要遵守相关的法规和标准,保障用户权益和信息安全。

行业痛点

传统NDI流媒体架构

传统NDI流媒体架构面临多重挑战。传统信号传输方式采用光电复合线缆或SDI线,导致布线复杂、耗时费力,限制了设备布置的灵活性,同时空间利用率低,造成资源浪费。面对高并发和大规模用户需求时,网络常常陷入拥堵,资源分配不均,这不仅影响部分用户的流媒体服务质量,还可能导致断流等问题,严重影响用户体验。现有流媒体IP化方案存在扩展性差、冗余备份能力不足等问题,无法有效应对用户量快速增长和网络环境变化,导致流媒体服务的稳定性和可靠性不足。这些挑战使得传统NDI流媒体架构在现代需求下面临严峻的技术和效率压力。

业务上云架构

将NDI流媒体架构迁移到云端后,架构得以显著优化和增强。流媒体录制、多画面监看、导播切换控制以及语音通话协作等功能可以通过云端解决方案实现,利用云计算的灵活性和可扩展性,极大地提升了系统的响应速度和资源利用效率。此外,云端架构能够有效应对高并发和大规模用户需求,通过智能资源调配和弹性扩展,提升了流媒体服务的稳定性和可靠性,进一步优化了用户体验,适应了快速变化的网络环境需求。

  1. 传统信号传输方式的限制: 传统流媒体直播节目制作中,使用大量的光电复合线缆或SDI线进行信号传输,导致布线复杂、耗时费力。这种方式不仅限制了设备布置的灵活性,而且空间利用率低,造成资源浪费。
  2. 网络拥堵和资源分配不均的挑战: 在面对高并发、大规模用户需求时,传统流媒体架构往往面临网络拥堵和资源分配不均的问题。这导致了部分用户的流媒体服务质量下降,甚至出现断流等问题,影响了用户体验。
  3. 现有流媒体IP化方案的局限性: 目前市面上存在的流媒体IP化方案往往存在扩展性低下、冗余备份能力不足等问题。这些方案无法有效应对用户量的快速增长和复杂的网络环境变化,造成了流媒体服务的不稳定性和可靠性不足。

云下云上相同痛点

IGMP和PIM协议在组播传输中有以下共同缺点:缺乏随流检测功能,无法优化组播传输效率,不能检测时延和波动。这些缺点在传统NDI流媒体架构和NDI流媒体架构上云中都带来了显著的挑战。

在传统NDI流媒体架构中,这些缺点导致布线复杂、耗时费力的同时,无法实时监测和优化信号传输的质量,影响了整体传输效率和用户体验。由于无法检测和应对时延和波动,网络拥堵和资源分配不均的问题更加严重,进一步限制了设备布置的灵活性和空间利用率,造成资源浪费。

即使在NDI流媒体架构上云之后,虽然云计算提升了系统的响应速度和资源利用效率,但IGMP和PIM协议的这些缺点依然存在。缺乏随流检测功能,无法实时优化组播传输效率,使得云端架构难以充分利用其弹性扩展和智能资源调配的优势。不能检测时延和波动的问题,仍然会影响流媒体服务的稳定性和可靠性,尤其是在高并发和复杂网络环境下,难以确保优质的用户体验。

因此,无论是传统NDI流媒体架构还是上云后的架构,IGMP和PIM协议在缺乏随流检测功能和无法优化传输效率方面的不足,都是需要克服的共同挑战。

方案介绍

整体架构

整个架构分为直播录制现场、互联网传输网络和云端服务三个主要部分。

直播录制现场

  1. 一般视频流:录制现场的多个视频源通过一般视频流传输到接入路由器。
  2. 接入路由器(R):接入路由器将一般视频流转发到互联网和SDN控制器。

SDN控制器与组播网络

  1. SDN控制器:作为网络管理的核心节点,负责监控网络状态、优化路由和管理流量。它与组播路由器和云端服务交互,动态调整视频流的传输路径,以减少延迟和网络抖动。
  2. IGMP/PIM组播网络:通过IGMP和PIM协议管理组播流量。SDN控制器实时监控组播流量,确保高效传输。

视频流类型

  1. 一般视频流(蓝色线):传统的视频传输路径,通过传统方案将视频流发送到出口路由器。
  2. NDI视频流(绿色线):采用NDI协议的视频流,通过优化后的路径进行传输,确保高质量和低延迟。
  3. 组播视频流(红色线):通过IGMP/PIM组播网络进行传输,SDN控制器负责管理和优化组播流量。

云端服务

  1. 云监看、云控制服务:用于实时监控和控制视频流。云监看服务可以通过互联网接收视频流并进行监控,云控制服务可以与SDN控制器交互,实现对视频流的动态管理。
  2. 云导播服务:提供视频流的导播和切换功能,确保直播过程的顺畅。
  3. 直播存储云服务:负责视频内容的存储,确保直播内容可以被录制和回放。
  4. 云上VPC(虚拟私有云):承载所有云端服务,提供可靠的网络资源,确保服务的高可用性和安全性。

技术创新

SDN控制器检测

用SDN技术将所有路由器北向接口纳入管理,使用SDN控制器进行一对多检测:

通过SDN控制器将所有路由器的北向接口统一管理,实现对整个网络的集中监控和管理。SDN控制器作为网络管理的核心节点,通过北向接口与各个路由器通信,收集网络状态信息,如链路利用率、延迟、丢包率等。

  • 集中管理:SDN控制器可以通过北向接口实时获取路由器的运行状态和网络流量信息,实现对整个网络的集中管理。
  • 一对多检测:SDN控制器可以对多个路由器进行同步监测,发现网络异常情况,如流量突增、延迟增加等,并及时做出调整。
  • 优化路由:根据实时监控的数据,SDN控制器可以动态调整路由策略,选择最佳路径进行数据传输,减少网络抖动和延迟,提高流媒体传输的质量。

TLV字段随流检测

使用带有TLV字段的组播协议,对直播流量进行随流检测:

尽管原始的IGMP和PIM协议没有TLV扩展的具体定义,你可以通过自定义协议扩展来实现特定功能。这种扩展需要在你的SDN控制器和网络设备中进行相应的支持和实现。通过这种方式,你可以实现对直播流量的更精细化管理和优化。

相关RFC文档
  1. IGMP(Internet Group Management Protocol)
    • IGMPv2:RFC 2236
    • IGMPv3:RFC 3376
  2. PIM(Protocol Independent Multicast)
    • PIM-SM(Sparse Mode):RFC 4601
    • PIM-SSM(Source-Specific Multicast):RFC 4607
协议扩展的思路

虽然IGMP和PIM的标准文档中没有提到TLV字段的使用,但你可以通过定义新的选项或扩展来实现特定需求。以下是一些可能的思路:

  1. 扩展IGMP

IGMP协议主要用于主机和路由器之间的组播成员关系管理。你可以定义新的IGMP选项来携带TLV信息。这需要在IGMP报文结构中添加新的字段。

  • IGMPv3扩展:在IGMPv3中,存在扩展机制,可以通过定义新的选项类型来添加TLV信息。你可以在IGMPv3的查询或报告报文中增加新的选项字段。
  1. 扩展PIM

PIM协议用于路由器之间的组播路由管理。PIM报文可以通过定义新的选项或TLV字段来扩展其功能。

  • PIM扩展:你可以在PIM的Join/Prune报文中增加新的选项,携带TLV信息,如路径质量、延迟等。

在传统组播协议基础上,增加TLV(Type-Length-Value)字段,结合SDN技术,对直播流量进行实时的随流检测。

  • TLV字段扩展:在组播协议中增加TLV字段,用于携带流量检测信息,如时间戳、路径信息、延迟数据等。
  • 随流检测:SDN控制器通过解析TLV字段,实时监控组播流量的传输状态,检测直播流量在网络中的实时状态,及时发现和定位问题。
  • 智能优化:根据TLV字段携带的信息,SDN控制器可以动态优化组播路径,调整流量分配策略,避免网络拥堵和瓶颈,确保直播流量的高效传输。
具体实现示例

以下是一个简单的示例,说明如何在IGMP报文中添加TLV字段:

  1. IGMPv3报文结构(简化版):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    css复制代码0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Type = 0x11 | Max Resp Code | Checksum |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Group Address |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Resv |S| QRV | QQIC | Number of Sources (N) |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Source Address [1] |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Source Address [2] |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Source Address [N] |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2. 添加TLV字段

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    css复制代码0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Type = 0x11 | Max Resp Code | Checksum |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Group Address |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Resv |S| QRV | QQIC | Number of Sources (N) |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Source Address [1] |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Source Address [2] |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Source Address [N] |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | TLV Type | TLV Length | TLV Value ... |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    在这个示例中,TLV Type 表示TLV字段的类型,TLV Length 表示TLV值的长度,TLV Value 是实际携带的信息,如路径质量或延迟。

选路切换及优化

对于异常状态的组播路由器进行及时选路切换,或使用多发选收技术和逐包负载分担技术:

为了提高组播流量的可靠性和稳定性,SDN控制器可以在检测到异常状态时,及时采取相应措施,如路由切换、多发选收、逐包负载分担等。

  • 及时选路切换:当SDN控制器检测到某个组播路由器出现异常,如高延迟或丢包率增高时,能够快速切换到备用路径,确保流量不中断。
  • 多发选收技术:发送端CPE对原始数据包进行复制,并选择两条质量较好的链路分别发送原始包和复制包。如果一条链路上有丢包,接收端CPE通过另一条链路上的复制包进行还原,避免重传,提高抗丢包能力。
  • 逐包负载分担技术:根据链路带宽指定各分担链路的权重,将数据包细化拆分,在多条链路上传输,提高链路利用率,减少拥塞。在接收端将数据包重新排序,确保数据流的完整性和传输效率。

组播优化核心技术

多发选收技术

定义

多发选收(多路包复制)是一种抗丢包技术。发送端CPE对原始数据包进行复制,得到原始包和复制包,并选择多条链路中两条质量较好的链路,将原始包和复制包分别发送。如果一条链路上有丢包,则接收端CPE通过另一条链路上的复制包进行还原,不用重传。

应用场景

多发选收技术适用于一些可靠性要求很高且流量较小的报文业务,例如:VoIP、付款业务、5G工业场景等。例如5G工业场景下使用无线链路控制龙门吊移动,工业机器的PLC控制信息流量小,但对时延要求极高,不能接受重传,而Internet链路不可靠,容易出现报文丢失,为了保证传输可靠性,可以使用多发选收技术。

实现方式

多发选收技术在发送端CPE将数据流中的数据包复制。发送时,结合智能选路技术,选择当前应用有权限使用的、质量最好的两条链路分别发送两份流量。接收端CPE接收到数据包后,对重复的数据包进行缓存、去重复操作,从而恢复原始的数据流。

逐包负载分担技术

定义

逐包负载分担技术是提升链路利用率的技术,根据链路带宽指定各分担链路的权重,使链路可根据权重不同而分担不同比例的数据流,减少链路拥塞的发生,实现链路的合理利用。对于同一类的数据流,逐包负载分担技术可以将它们细化拆分成一组具有某个或某些相同属性的数据包,以数据包为单位在多条链路上传输,在接收端将数据包重新排序。

发送端以数据包为单位发送数据时,需要对数据包报文进行封装,其封装信息包括:报文序列号、路径编号、基于路径的序列号和时间戳等。

应用场景

在有多条出口链路的站点中,逐包负载分担适用于加速大文件的传输,常见的应用有:FTP/HTTP下载大文件、数据备份复制等。在传输大象流时,传统的逐流负载分担模式是把不同的数据流通过HASH算法,分配到不同的链路上进行传输,但是对同一条数据流,无法分配到多个链路传输。当这条数据流很大的时候还是会产生链路拥塞问题。使用逐包的负载分担,以数据包为单位,可针对同一条数据流进行拆分,充分使用多条链路,加速数据传输。

实现方式

发送端对数据流执行选路策略,并将数据流按照数据包为单位进行拆分,在所有满足SLA的可用链路上进行转发。接收端使用缓存做乱序重排,解决不同路径时延差导致的乱序问题,并向用户设备按顺序转发数据。

部署方案

1. 网络拓扑设计

首先,需要设计一个基于SDN的网络拓扑,包含以下核心组件:

  • SDN控制器:负责网络管理、流量监控、路由优化。
  • 组播路由器:支持IGMP和PIM协议,用于管理组播流量。
  • NDI设备:用于视频流的捕获、编码和传输。
  • 云服务:包括云监控、云控制、云导播和云存储服务,用于管理和存储视频流。

2. 硬件和软件准备

硬件

  • 高性能SDN交换机和路由器,支持OpenFlow协议。
  • 具备NDI功能的摄像设备和编码器。
  • 服务器和存储设备,用于部署云服务和存储视频数据。

软件

  • SDN控制器软件,如ONOS或OpenDaylight。
  • 支持IGMP和PIM协议的路由器固件。
  • NDI接口和控制软件。
  • 云服务管理平台,如OpenStack或AWS。

3. SDN控制器配置

  • 安装和配置SDN控制器:部署ONOS或OpenDaylight SDN控制器,配置北向接口,连接所有组播路由器。
  • 拓扑发现:通过SDN控制器发现网络拓扑,确保所有设备连接正常。
  • 流量监控:配置SDN控制器实时监控网络状态,包括带宽利用率、延迟和丢包率。

4. IGMP和PIM组播网络配置

  • IGMP配置:在组播路由器上配置IGMP,管理组播组成员关系。
  • PIM配置:在路由器上配置PIM-SM或PIM-SSM协议,管理组播路由。

前景展望

基于SDN的NDI流媒体优化框架在未来有着广阔的应用前景。通过引入SDN技术,项目实现了对网络资源的灵活管理和动态优化,大幅提升了流媒体传输的稳定性和质量。结合IGMP/PIM组播协议的创新扩展,项目可以有效解决高并发、大规模用户需求下的网络拥堵问题,提高传输效率。

未来,随着5G网络和超高清(UHD)技术的发展,该框架将在直播、远程教育、远程医疗、企业视频会议等领域发挥重要作用。智能化的网络管理和高效的组播传输技术将推动流媒体服务向更高质量、更低延迟、更高可靠性方向发展,满足用户对高清、无缝流媒体体验的需求。同时,项目的技术创新为网络工程师和研究人员提供了新的思路和工具,推动整个行业的技术进步和创新发展。