虹科案例 | 使用PRP协议解决广播行业中实现高可用性和亚微秒同步难题

news2024/11/17 11:43:21

案例背景

BROADCASTING PUBLIC ENTITY主要为用户提供电视频道和广播频道,为了带来更好的视听体验,该公司必须更新其无线电前端系统的基础设施。前端的主要功能是接收来自广播电台的现场音频并将其编码为压缩格式,例如AAC,然后将多个流多路复用到一个包,并将该包通过空中传输到数字无线电接收器,以分发给最终用户。

从90年代中期开始,BROADCASTING PUBLIC ENTITY就基于这种架构成功运营此类服务。然而,在过去的几年里,该技术已经从专用设备和它们之间的物理布线转变为高度软件和基于IP的解决方案。这种新场景给广播运营商带来了新的挑战,因为他们需要在多个单独的站点上保持一切紧密同步,以保持无缝的故障转移和冗余。该项目的关键部分是设计和实施一个高度稳健和冗余的网络,以确保没有单点故障和高可用性。

难题与解决方案

按照传统方法,广播应用程序中的此类冗余已使用SMPTE 2022-7标准定义和实施,这是一种创建冗余的非常简单的方法,仅适用于使用RTP(实时传输协议)的音频(或其他媒体)。它基于在两个物理网络接口上发送相同的数据包。

这种情况下的识别是通过检查 RTP 数据包本身的报头来完成的,该报头包含序列号和其他标识符。 由于没有向数据包添加额外信息(如其他协议的 RCT),接收方可以轻松识别它们并选择哪些相同,哪些可以忽略。这允许通过两个独立的网络并行传输实时媒体(视频和/或音频),并在接收器中进行自动重组和故障转移。

但是,这种方法仅适用于使用 UDP 单播或多播传输的RTP数据包。这也成为了一个问题,因为在这种类型的系统中,媒体只是链的一小部分,而且完全冗余也是强制性的最终产品的同步(PTP)、控制(例如HTTP、SSH)、监控(SNMP、ilo/idrac)和分发(EDI)。许多其他领域已经解决了冗余和同步的挑战,特别是在需要零丢包网络的变电站应用中,这一特殊需求已经在很大程度上得到解决——采用PRP高可用性无缝冗余协议。

IEC 62439在第3条(IEC 62439-3)中提出了PRP。该协议的基本功能如下图所示。
在这里插入图片描述

如图所示,两个网络接口在支持PRP的节点(DAN)中支持冗余。每个接口都连接到不同的标准以太网(LAN A和LAN B)。任何非冗余节点(SAN)都可以使用RedBox以冗余方式连接。

此外,BROADCASTING PUBLIC ENTITY希望避免对操作系统和/或广播软件进行任何特殊调整来实现该功能。由于大部分功能都使用标准服务器,所以他们使用了RELY-PCIe卡,它可以透明地转换进出PRP的标准以太网流量。

在这里插入图片描述

RELY-PCIe板卡作为标准NIC卡连接到操作系统,并可确保驱动程序与市场上可用的大多数操作系统(Linux、Windows、VxWorks等)兼容,这功能意味着在软件集成和连接网络的卡配置方面显著节省成本。得益于独立于广播软件和硬件的独立解决方案,它还简化了对市场上最新技术的任何未来升级。

下图显示了为广播公共实体的新音频头端定义的架构。在此新架构中,RELY-PCIe卡已安装在以下设备中:
在这里插入图片描述

其中,DABMUX是指基于运行带有RELY-PCIe NIC的Ubuntu的DellR440服务器。它从网络(来自AoIP盒子)接收音频,对其进行编码并将其与元数据组合并将它们打包在一起。然后使用IP将这个包发送到全国各地山顶上的发射器,在那里它被转换为在空中广播的无线电信号。发送到发送器的IP数据包内的格式称为“EDI”。

这些设备通过使用分配给每个流量的多个VLAN来管理不同类型的流量(见下表)。
在这里插入图片描述
除了简化复杂的时间感知高可用性网络的实施之外,RELY-PCIe还提供了用于配置、监控和诊断 PCIe卡和网络行为的高级工具。在配置方面,RELY-PCIe 嵌入了一个用户友好的 Web服务器(见图e),用于配置卡支持的所有同步、冗余和二层交换功能,无需在用户工作站安装软件。此外,配置管理工具允许在连接到的多个设备中远程部署预定义配置网络,在调试期间节省了大量时间。

嵌入在设备中的 Web 管理器提供了用于监控系统行为的不同工具。 除其他外,可以从 GUI 工具监督以下元素:

  • SNMP v1、v2c、v3状态
  • 服务的内部记录器:配置服务、PTP、NTP、SNMP等
  • 系统参数监控器: CPU、内存、温度
  • 基于HSR/PRP 监督帧的网络节点表
  • 每个端口的网络统计信息

上述工具与通过安全连接远程更新/升级设备的能力相结合,使最终用户可以完全控制网络操作。

此外,除了可以通过用户友好界面管理的这些高级功能外,该设备还可以通过命令行界面 (CLI) 进行配置。 最后,如果应用程序需要,可以升级设备以完成其他边缘计算任务,不仅针对板载 CPU,还针对 FPGA。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/509463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

unity 完全复刻flappy bird

文章目录 一、 介绍制作bird向右移动的效果基本动画转场渐隐效果dotween 平滑摇头效果柱子控制器碰撞检测下载项目文件 一、 介绍 Flappy Bird是一款由越南开发者Dong Nguyen于2013年发布的2D跳跃游戏。玩家需要控制一只小鸟躲避障碍物,通过不断飞行获得分数。游戏…

如果把ChatGPT和“挖呀挖”的黄老师结合起来,她可以为你做什么事情?

ChatGPT曾经2个月用户过亿的事情已成为过去,虽然我也成为了其中的一份子,感受着他的无所不能,但从中也的确发现了他的一些不能做的事情。而近期爆火的“挖呀挖”的黄老师,几天粉丝疯涨几百万,也的确值得我们思考。 那么…

kafka安装及环境搭建

1. 下载 下载地址:Apache Kafka 我这里下载的是 3.2.1 版本。 2. 上传并解压 上传到 linux 下的 /home/software/ 目录下,然后解压 kafka_2.13-3.2.1.tgz 包到/usr/local/ cd /home/software tar -zxvf kafka_2.13-3.2.1.tgz -C /usr/local # -C 选…

odoo的一些基础概念

概述 三层体系结构,表示层是HTML5、JavaScript和CSS的组合,逻辑层专门用Python编写,而数据层只支持PostgreSQL作为RDBMS。 服务器和客户端扩展都打包为模块,可选地加载到数据库中。模块是针对单一目的的函数和数据的集合。Odoo中…

拉取远程分支到本地修改后上传

在git之前最好保证网络通畅 如果之前本地有项目且有git控制,直接更新就行了 git pull 1、拉取仓库 git clone https://github.com/用户名/仓库名.git 2、对项目进行修改(略) 3、将所有更改添加到暂存区 git add . git add .命令将所有更改添加到暂存区&#…

OpenPCDet系列 | 3.OpenPCDet点云检测框架训练准备流程

文章目录 训练准备流程1. dataloader部分2. network部分3. optimizer部分4. scheduler部分训练准备流程 对于OpenPCDet中模型的训练过程如下所示,在训练前一般需要进行4个部分的准备:数据准备、网络模型准备、以及优化器和学习率调度器。下面对这4个大部分分别介绍。主要就是…

delete方法删除对象数组中元素导致原始数据被修改

记录一个自己在码代码过程中遇到的问题。 要求:删除数组对象中每一组对象中的一个属性。 下面是我原始的写法(当然是错误的)。 const { log } require("console");// 用于测试delete方法,删除对象中的指定元素 const testForDelete () >…

【中创数智人】“周杰伦?数智人周同学!”7×24小时直播不间断,他做到了

迈进Web 3.0,离不开数智人。 品牌代言、公司宣传、产品介绍、直播带货......数智人扮演的角色正在不断增加。无论是替代真人服务、多模态AI助手、还是作为虚拟世界的第二分身,对于数智人而言都已经是触手可及的未来。 5月8日,周杰伦亮相中国…

【JavaEE】线程安全(难点)

目录 前言 1、线程安全的概念 2、线程不安全的原因 3、产生抢占式执行与原子性问题 4、产生多个线程修改同一个变量的问题 5、解决上述三个导致线程不安全的问题 5.1、锁 synchronized关键字 5.1.1、使用synchronized关键字进行加锁 6、由内存可见性引起的线程不安全…

KubeEdge节点分组特性简介

01 边缘应用跨地域部署场景及问题 应用生命周期管理复杂导致运维成本提高 02 边缘节点分组管理 节点分组:将不同地区的边缘节点按照节点组的形式组织 边缘应用:将应用资源整体打包并满足不同节点组之间的差异化部署需求 流量闭环:将服务流量…

Oracle内存管理

文章目录 概念内存管理方式自动内存管理自动共享内存管理手工内存管理 内存管理的转换方式相关内存参数相关数据字典 概念 为满足数据库的需求,通过内存管理来维护 Oracle 实例内存结构的最优大小。Oracle数 据库基于与内存相关的初始化参数设置来管理内存。 内存管…

【LeetCode】654. 最大二叉树

1.问题 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 最…

美颜SDK的隐私保护与安全性分析

随着智能手机和移动应用的普及,美颜SDK已经成为了很多应用的标配。美颜SDK的使用可以让用户在拍照或者视频聊天时,实现自拍美颜、滤镜、磨皮、瘦脸等效果。但是,在享受美颜SDK带来的便利的同时,我们也需要关注美颜SDK的隐私保护与…

跟着排序学时间复杂度

带着排序学时间/空间复杂度 排序和时间复杂度 带着排序学时间/空间复杂度冒泡排序选择排序选择排序法2原理: 插入排序希尔排序(缩小增量排序)堆排序快速排序归并排序不基于比较的排序计数排序 桶排序稳定性 时间复杂度是打开数据结构大门的第…

从0搭建Vue3组件库(十二):引入现代前端测试框架 Vitest

Vitest 是个高性能的前端单元测试框架,它的用法其实和 Jest 差不多,但是它的性能要优于 Jest 不少,还提供了很好的 ESM 支持,同时对于使用 vite 作为构建工具的项目来说有一个好处就是可以公用同一个配置文件vite.config.js。因此本项目将会使用 Vitest 作为测试框架。 安装 …

FS2956A 8V~120V降压5V2A4.2V3A恒压芯片

FS2956A 内置MOS 100V开关降压型DC-DC转换器,FS2956A 8-100V用于电动车 滑板车 液晶仪表 5V-USB充电IC方案2A 概述: FS2956A 是一款支持宽电压输入的开关降压型DC-DC,芯片内置100V/5A功率MOS,最高输入电压90V。FS2956A 具有低待…

初识滴滴交易策略之一:交易市场

初识系列前言 滴滴作为一家共享出行公司,利用信息技术构建了实时的、智能的在线交易市场,在这个庞大运转的市场之中,滴滴秉承着用户价值至上的宗旨,不断通过技术提升来实现更高效的运转效率和更贴心的用户体验。 为了使得大家能够…

蚂蚁实时低代码研发和流批一体的应用实践

摘要:本文整理自蚂蚁实时数仓架构师马年圣,在 Flink Forward Asia 2022 流批一体专场的分享。本篇内容主要分为四个部分: 1. 实时应用场景与研发体系 2. 低代码研发 3. 流批一体 4. 规划展望 Tips:点击「阅读原文」查看原文视频&a…

KingbaseES V8R6备份恢复系列之 -- system-Id不匹配备份故障

​ KingbaseES V8R6备份恢复案例之---system-Id不匹配备份故障 案例说明: 在KingbaseES V8R6执行备份时,在sys_log日志中出现system-id不一致的故障并伴随有归档失败,故障如下图所示: 适用版本: KingbaseES V8R6 一、问…

React 学习笔记

文章目录 React 简介React 特点React 学习前提React 第一个实例 React 简介 React 是一个用于构建用户界面的 JAVASCRIPT 库。 React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。 React 起源于 Facebook 的内部项目,用…