当前位置: 首页 > 科技观察

说说多人语音通话的基本原理

时间:2023-03-22 10:55:54 科技观察

0。简介本文主要介绍一些基本的工作原理,包括移动Mesh网络、VOIP技术等。1.移动Mesh网络1.1常见的网络拓扑结构常见的网络拓扑结构包括点对点拓扑结构、星形拓扑结构、树形拓扑结构、环形拓扑结构和总线拓扑。常见的网络拓扑结构如下图所示:点对点拓扑结构(perr-to-peer,简称P2P),是一种没有路由节点,网络成员直接交换信息的网络结构。这种结构在通信上比较简单,但是应用开发比较复杂,需要钻研,可以在一些场景下应用。在星形拓扑网络中,子节点直接连接到中心节点,具有结构简单、延迟低的优点,但可靠性低、部署成本高。目前在企业、学校和家庭网络中很常见。运营商网络通过路由器接入后,各设备通过网线或无线网络接入路由器或交换机上网。总线拓扑是一种所有节点都挂在同一条总线上,没有网络中心的拓扑。这种拓扑结构的优点是可扩展性好,但维护困难,分支结构故障定位困难。2、网状网络拓扑结构网状网络拓扑结构是一种在网络节点上使用动态路由进行数据传输的拓扑结构。这种网络拓扑可以保证每个节点与其他节点之间连接的可靠性。当网络中的一个节点出现故障时,这种结构允许其他节点使用“跳”(hip)的方法来形成一条新的、可用的路由进行数据传输。Mesh网络具有以下特点:自组织:网络节点可以立即加入Mesh网络,网络拓扑会随之改变,从而使节点可以连接到网络中的任意节点。自愈:如果Mesh网络中的网络成员因关机、故障等原因无法工作,网络会自动调整网络拓扑,使原来损坏的路由被有效路由替代。多跳:Mesh网络中的所有节点都具有转发数据包的能力,网络中的节点可以通过多跳的方式与物理上无法直接通信的节点进行数据传输。与传统Wi-FiAP(接入点)工作模式所采用的星型网络拓扑结构相比,Mesh网络所采用的Mesh拓扑结构大大提高了网络成员节点的传输距离和移动性。3、IEEE802.11s标准IEEE802.11s是IEEE(电气和电子工程协会)在802.11无线网络协议中对无线网状网络的补充标准。它定义了无线设备如何交互以形成Mesh无线局域网。网络拓扑可以随时更改。与传统的Ad-Hoc网络使用传输层路由协议实现多跳功能不同,802.11s协议扩展了MAC(MediaAccessControl)层标准,定义了一种利用无线感知自配置多跳拓扑结构和协议,支持广播、组播、单播等数据传输。802.11s使用的路径选择协议是HybridWirelessMeshProtocol(简称HWMP),它同时使用先验路由协议和反应路由协议。上述路径选择协议包含四个路径选择消息包,分别为RootAnnouncement(简称RANN)、PathRequest(简称PREQ)、PathReply(简称PREP)和PathError(简称PERR)。混合无线Mesh协议如下图所示:先验路由协议会??为网络中的每个节点建立一个树形的路由拓扑,根节点可以通过两种方式建立路由表,一种是使用根节点来公布数据包,另一种是使用路径请求数据包。路径请求由根节点以外的其他节点使用根节点通告报文以单播方式发送给根节点,根节点必须回复路径应答报文。使用路径请求包时,不会使用路径回复包,路径请求包是根节点发送的一种反应式路由协议,也称为按需路由协议,它基于RM-AODV(Radio-MetricAdhocOn-DemandDistanceVector)协议,使用路由请求和路由回复机制在两个节点之间建立路由,使用路由请求包和路由回复包在节点之间交换信息和数据,在路由中使用序号回复数据包以保证路由的及时性目前,IEEE802.11s标准已经被Linux内核支持。在Linux上,你可以很方便的使用支持802.11s标准的无线网卡搭建一个基于802.11s的无线Mesh网络。4.VoIP技术VoIP是一种语音通话技术,通过对语音信号进行数字化处理、编码压缩、网络传输、解码、还原音频信号实现语音通信,关键技术是语音编码技术和实时网络传输技术.其过程如下图所示:5.音频编码技术语音编码是一种压缩语音数字信号的技术。由于数字语音信号在存储和传输方面的可靠性、抗干扰能力和保密性远优于模拟语音信号,因此目前几乎所有的系统都采用数字方式进行语音存储和传输。未压缩的语音数据太大,受存储设备容量和传输网络带宽的限制,不适合直接存储和网络传输,音频编码技术应运而生。音频编码技术可以极大地压缩音频数据的体积,减少存储所消耗的硬件资源和传输所占用的带宽和时间,在有限的资源下增加可存储和传输的语音数据量。根据是否保留原始音频数据的所有信息,音频编码技术通常分为有损音频编码技术和无损音频编码技术。有损音频编码技术可以在牺牲部分原始音频数据的情况下实现更高的音频数据压缩。率,无损音频编码技术可以还原完整的原始音频数据。在VoIP技术中,由于网络带宽的限制,往往采用有损音频编码技术,这些音频编码算法所能达到的压缩率通常都比较高。此外,由于实时网络传输的不可靠性,所使用的音频编码算法需要具有从损坏的数据中获取近乎完整的音频数据的功能。常用的音频编码算法有G.711、G729、AAC、Speex、Opus等,这些音频编码算法的压缩音质与码率的关系如下图所示,延时与码率的关系如下图所示:音频编码算法的压缩音质与码率的关系部分音频编码算法的时延与码率的关系如果需要实现多方语音通话功能,延迟要求高,因为系统成员之间的距离可能很远,整个网络带宽小,需要在保证音频质量的情况下,音频数据比特率尽可能低。Opus音频编码算法用于实现音频数据的编解码。Opus是一种有损音频编码算法,包括SILK和CELT两种声音编码技术。其开发目的是将声音和语音包含在单一格式中,取代Speex和Vorbis音频编码算法,适用于网络上的低延迟网络。实时音频传输。Opus可以调整编码比特率。它在较低比特率下使用线性预测编码,在较高比特率下使用变换编码。它非常适合用于低延迟语音通话的编码。此外,Opus还可以通过降低编码码率实现更低的算法延迟,最低可达5ms。6.RTPReal-timeTransportProtocolRTP协议是一种基于IP网络传输音视频数据的网络传输协议,广泛应用于通信和流媒体应用,如语音对话、视频会议、网络电视服务等.是网络模型中的一个应用层协议。在传输层之上,RTP协议通常基于UDP协议,在一些特殊的应用场景下也可以基于TCP协议。表中几个重要字段的解释如下:SN(SequenceNumber):为了解决网络传输时的延迟抖动问题,RTP协议使用一个长度为16位的序列号来确定序列号的顺序。datagrams,每个发送的数据报都会标上连续的序号,用于接收端对乱序到达的RTP数据报进行排序,也可以用来统计RTP传输的丢包情况。PT(PayloadType,有效载荷类型):RTP协议使用PT字段来标识RTP报文传输的流媒体数据类型。常见的数据类型有AAC、Speex、Opus、H.264等。时间戳:由于延迟抖动的存在,目标主机收到的数据报的顺序和时间间隔与发送时的顺序和时间间隔有偏差。如果每次都立即播放接收到的数据,播放效果和我们预期的一样。非常不一样。在实际应用中,接收端通常会设置一个播放延时,在这个延时区间内带有时间戳的数据包会被存入缓冲区进行播放,即标记发送时间戳。SSRC(SynchronizationSource,同步源):RTP协议在设计之初就考虑到了组播方式。在进行多播时,不能通过IP地址和端口来确定一个唯一的网络地址,所以在RTP协议中使用了一个长度为32位的字段来标识RTP包的来源。它是一个随机数,可以保证它在一个RTP会话中的唯一性。RTP协议不仅解决了使用IP协议进行实时流媒体数据传输存在的问题,还在应用层为流媒体应用提供了标准化的传输协议,使得开发者无需重复实现类似的私有协议.另外,RTP协议也是一个开源协议,开发者可以根据自己的应用需求进行修改。