偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

聊聊多人語音通話的基本原理

移動開發(fā)
本文主要是介紹一些基本工作原理,包括移動Mesh網(wǎng)絡(luò),VOIP技術(shù)等。常見的網(wǎng)絡(luò)拓撲結(jié)構(gòu)有點對點拓撲結(jié)構(gòu)、星型拓撲結(jié)構(gòu)、樹型拓撲結(jié)構(gòu)、環(huán)型拓撲結(jié)構(gòu)和總線型拓撲結(jié)構(gòu)等。

0.引言

本文主要是介紹一些基本工作原理,包括移動Mesh網(wǎng)絡(luò),VOIP技術(shù)等。

1.移動Mesh網(wǎng)絡(luò)

1.1 常見的網(wǎng)絡(luò)拓撲結(jié)構(gòu)

常見的網(wǎng)絡(luò)拓撲結(jié)構(gòu)有點對點拓撲結(jié)構(gòu)、星型拓撲結(jié)構(gòu)、樹型拓撲結(jié)構(gòu)、環(huán)型拓撲結(jié)構(gòu)和總線型拓撲結(jié)構(gòu)等。常見網(wǎng)絡(luò)拓撲結(jié)構(gòu)如下圖所示: 

聊聊多人語音通話的基本原理

點對點拓撲結(jié)構(gòu)(perr-to-peer,簡稱 P2P),是一種無路由節(jié)點、網(wǎng)絡(luò)成員直接交換信息的網(wǎng)絡(luò)結(jié)構(gòu)。這種結(jié)構(gòu)在通信上較為簡單,但應(yīng)用開發(fā)較為復雜,需要打洞,在有些場景可以應(yīng)用到。

在星型拓撲結(jié)構(gòu)的網(wǎng)絡(luò)中,子節(jié)點都直接與中心節(jié)點相連,其具有結(jié)構(gòu)簡單,延遲低等優(yōu)點,但是可靠性較低、部署成本較高。它目前常見于企業(yè)、學校和家庭網(wǎng)絡(luò)中,運營商網(wǎng)絡(luò)由路由器接入后,各個設(shè)備通過網(wǎng)絡(luò)線纜或者無線網(wǎng)絡(luò)連接路由器或交換機接入互聯(lián)網(wǎng)??偩€型拓撲結(jié)構(gòu)則是一種所有節(jié)點掛在同一條總線上的拓撲結(jié)構(gòu),其沒有網(wǎng)絡(luò)中心,這種拓撲結(jié)構(gòu)的優(yōu)點是可擴展性好,但是維護困難,分支結(jié)構(gòu)定位故障較難。

2.Mesh網(wǎng)絡(luò)拓撲結(jié)構(gòu)

Mesh 網(wǎng)絡(luò)拓撲結(jié)構(gòu),是一種在網(wǎng)絡(luò)節(jié)點上使用動態(tài)路由的方式進行數(shù)據(jù)傳輸?shù)耐負浣Y(jié)構(gòu)。這種網(wǎng)絡(luò)拓撲結(jié)構(gòu)可以保證每個節(jié)點與其他節(jié)點之間連接的可靠性,當網(wǎng)絡(luò)中有某個節(jié)點故障時,這種結(jié)構(gòu)允許其他節(jié)點使用“跳躍”(hip)的方式形成一條新的、可用的路由進行數(shù)據(jù)傳輸。

Mesh 網(wǎng)絡(luò)具有以下幾個特點:

  • 自組織:網(wǎng)絡(luò)節(jié)點可以即時加入 Mesh 網(wǎng)絡(luò),網(wǎng)絡(luò)拓撲結(jié)構(gòu)會隨之改變,使得該節(jié)點可以與網(wǎng)絡(luò)中的任意一個節(jié)點連接。
  • 自愈性:如果 Mesh 網(wǎng)絡(luò)中的網(wǎng)絡(luò)成員因為關(guān)機、故障等原因不能工作,網(wǎng)絡(luò)會自動調(diào)整網(wǎng)絡(luò)拓撲結(jié)構(gòu),使得原來被破壞的路由被有效的路由替換。
  • 多跳:Mesh 網(wǎng)絡(luò)中的所有節(jié)點都具備轉(zhuǎn)發(fā)數(shù)據(jù)包的能力,網(wǎng)絡(luò)中的節(jié)點可以通過多跳與物理上不能直接通信的節(jié)點進行數(shù)據(jù)傳輸。

相對于傳統(tǒng) Wi-Fi 的 AP(Access Point)工作模式使用的星型網(wǎng)絡(luò)拓撲結(jié)構(gòu),Mesh 網(wǎng)絡(luò)使用的 Mesh 拓撲結(jié)構(gòu)在網(wǎng)絡(luò)成員節(jié)點傳輸距離以及移動性上都有了很大的改進。

3.IEEE 802.11s 標準

IEEE 802.11s 是 IEEE(電機電子工程學會)對 802.11 無線網(wǎng)絡(luò)協(xié)議中無線網(wǎng)狀網(wǎng)絡(luò)的補充標準,它定義了無線設(shè)備如何交互以組成一個 Mesh 無線局域網(wǎng),這個網(wǎng)絡(luò)的拓撲結(jié)構(gòu)是可以隨時變化的。不同于傳統(tǒng)Ad-Hoc 網(wǎng)絡(luò)中使用傳輸層的路由協(xié)議實現(xiàn)多跳功能,802.11s 協(xié)議擴展了 MAC(媒體訪問控制)層標準,定義了一個使用無線感知進行自配置多跳拓撲結(jié)構(gòu)的架構(gòu)和協(xié)議,其支持包括廣播、組播和單播方式的數(shù)據(jù)傳輸。

802.11s 使用的路徑選擇協(xié)議為混合無線 Mesh 協(xié)議(Hybrid Wireless Mesh Protocol,簡稱 HWMP),即同時使用了先驗式路由協(xié)議和反應(yīng)式路由協(xié)議,上述路徑選擇協(xié)議中包含了四種路徑選擇消息包,分別為根節(jié)點通告(Root Announcement,簡稱 RANN)、路徑請求(Path Request,簡稱 PREQ)、路徑回復(Path Reply,簡稱 PREP)和路徑錯誤(Path Error,簡稱 PERR)?;旌蠠o線 Mesh 協(xié)議如下圖: 

聊聊多人語音通話的基本原理

先驗式路由協(xié)議對于網(wǎng)絡(luò)中的每個節(jié)點,會建立一個樹形的路由拓撲結(jié)構(gòu),根節(jié)點可以通過兩種方式建立路由表,一種是使用根節(jié)點宣告包,另一種是使用路徑請求包。

使用根節(jié)點宣告包方式其路徑請求是由根節(jié)點以外的其他節(jié)點以單播的方式發(fā)送給根節(jié)點,而根節(jié)點必須使用路徑回復包進行回復。

使用路徑請求包的方式時,不會使用路徑回復包,而且路徑請求包是由根節(jié)點發(fā)送的

反應(yīng)式路由協(xié)議,又稱為按需路由協(xié)議,是基于 RM-AODV(Radio-Metric Ad hoc On-Demand Distance Vector)的協(xié)議,使用路由請求和路由回復機制在兩個節(jié)點之間建立路由,節(jié)點間使用路由請求包和路由回復包進行信息數(shù)據(jù)交互,并在路由回復包中采用序列號以保證路由的時效性

目前 IEEE 802.11s 標準已經(jīng)被 Linux 內(nèi)核支持,在 Linux 上可以方便地使用支持802.11s 標準的無線網(wǎng)卡組建基于 802.11s 的無線 Mesh 網(wǎng)絡(luò)。

4.Vo IP 技術(shù)

Vo IP 是一種語音通話技術(shù),通過將語音信號數(shù)字化處理、編碼壓縮、網(wǎng)絡(luò)傳輸、解碼、還原成音頻信號實現(xiàn)語音通信,其中關(guān)鍵技術(shù)為語音編碼技術(shù)和實時網(wǎng)絡(luò)傳輸技術(shù)。其流程如下圖所示: 

聊聊多人語音通話的基本原理

5.音頻編碼技術(shù)

語音編碼是一種將語音數(shù)字信號壓縮的技術(shù)。由于數(shù)字化的語音信號在存儲、傳輸上的可靠性、抗干擾能力和保密性都遠優(yōu)于模擬的語音信號,因此,目前幾乎在所有的系統(tǒng)中都采用數(shù)字化的方式進行語音的存儲和傳輸。未經(jīng)過壓縮的語音數(shù)據(jù)因為體積過大,受限于存儲設(shè)備的容量和傳輸網(wǎng)絡(luò)的帶寬,不適合直接進行存儲和網(wǎng)絡(luò)傳輸,音頻編碼技術(shù)應(yīng)運而生。音頻編碼技術(shù)可以大大的壓縮音頻數(shù)據(jù)的體積,減少了存儲消耗的硬件資源與傳輸占用的帶寬和時間,增加了在有限的資源下可以存儲和傳輸?shù)恼Z音數(shù)據(jù)量。

根據(jù)是否保留原始音頻數(shù)據(jù)的全部信息,音頻編碼技術(shù)通常被分為有損音頻編碼技術(shù)和無損音頻編碼技術(shù),有損音頻編碼技術(shù)在犧牲部分原始音頻數(shù)據(jù)的情況下可以達到更高的音頻數(shù)據(jù)壓縮率,而無損音頻編碼技術(shù)則可以還原出完整的原始音頻數(shù)據(jù)。

在 Vo IP 技術(shù)中,由于網(wǎng)絡(luò)帶寬的限制,往往會使用有損音頻編碼技術(shù),且這些音頻編碼算法可以達到的壓縮率通常比較高。此外,由于實時網(wǎng)絡(luò)傳輸?shù)牟豢煽啃?,使用的音頻編碼算法需要具備從殘損數(shù)據(jù)中獲得接近完整音頻數(shù)據(jù)的功能。常用的音頻編碼算法有 G.711、G729、AAC、Speex、Opus 等,這些音頻編碼算法壓縮后的音質(zhì)與比特率的關(guān)系對比如下圖所示,延遲與比特率的關(guān)系如下圖所示: 

聊聊多人語音通話的基本原理
音頻編碼算法壓縮后的音質(zhì)與比特率的關(guān)系
聊聊多人語音通話的基本原理
部分音頻編碼算法延遲與比特率的關(guān)系

如果需要實現(xiàn)多方語音通話功能,對延遲的要求高,由于系統(tǒng)中各成員之間的距離可能較遠,整個網(wǎng)絡(luò)的帶寬較小,在保證音頻質(zhì)量的情況下,音頻數(shù)據(jù)碼率需要盡可能的低,選擇使用 Opus 音頻編碼算法實現(xiàn)語音數(shù)據(jù)編解碼。

Opus 是一種有損音頻編碼算法,包含了 SILK 和 CELT 兩種聲音編碼技術(shù),其開發(fā)目的是希望用單一格式包含聲音和語音,取代 Speex 和 Vorbis 音頻編碼算法,且適用于網(wǎng)絡(luò)上低延遲的實時音頻傳輸。Opus 可以調(diào)節(jié)編碼比特率,它在較低比特率時使用線性預測編碼,在高比特率時使用變換編碼,非常適合用于低延遲語音通話的編碼。此外 Opus 也可以透過降低編碼比特率,達成更低的算法延遲,最低可以到 5 ms。

6.RTP 實時傳輸協(xié)議

RTP 協(xié)議是一種基于 IP 網(wǎng)絡(luò)傳輸音視頻數(shù)據(jù)的網(wǎng)絡(luò)傳輸協(xié)議,它被廣泛應(yīng)用于通信和流媒體應(yīng)用,例如語音會話、視頻會議、網(wǎng)絡(luò)電視服務(wù)等。它在網(wǎng)絡(luò)模型中是一個應(yīng)用層協(xié)議,在傳輸層之上,通常 RTP 協(xié)議是基于 UDP 協(xié)議的,在一些特殊應(yīng)用場景之下也可以基于 TCP 協(xié)議。 

聊聊多人語音通話的基本原理

表中幾個重要的字段的解釋如下:

  • SN(Sequence Number,序列號):為了解決網(wǎng)絡(luò)傳輸時時延抖動的問題,RTP協(xié)議使用一個長度為 16 位的序列號來確定數(shù)據(jù)報的順序,每個發(fā)出的數(shù)據(jù)報會被標記上連續(xù)的序列號,用于接收端對亂序到達的 RTP 數(shù)據(jù)報進行排序,同時可以用于統(tǒng)計 RTP 傳輸?shù)膩G包情況。
  • PT(Payload Type,負載類型):RTP 協(xié)議使用 PT 字段來標識 RTP 報文所傳輸?shù)牧髅襟w數(shù)據(jù)的類型,常見的數(shù)據(jù)類型有 AAC、Speex、Opus、H.264 等。
  • Timestamp(時間戳):由于時延抖動的存在,目標主機接收到數(shù)據(jù)報的順序和時間間隔與發(fā)送時的存在偏差,如果每次都立即播放接收到的數(shù)據(jù),則播放效果會與我們預期的大不相同。實際中,接收端通常會設(shè)置一個播放時延,時間戳在這個時延區(qū)間內(nèi)的包會被存入緩沖區(qū)等待播放,即打上發(fā)送時間戳。
  • SSRC(Synchronization Source,同步源):RTP 協(xié)議在設(shè)計之初就考慮到了組播的方式,在進行組播時,IP 地址和端口無法用于確定唯一的一個網(wǎng)絡(luò)地址,因此 RTP 協(xié)議中使用一個長度為 32 位的字段標識 RTP 包來源,它是一個隨機數(shù),且能保證其在一個 RTP 會話中的唯一性。RTP 協(xié)議不僅解決了使用 IP 協(xié)議進行實時流媒體數(shù)據(jù)傳輸時存在的問題,同時也為應(yīng)用層的流媒體應(yīng)用程序提供了規(guī)范的傳輸協(xié)議,使得開發(fā)者不需要重復實現(xiàn)類似的私有協(xié)議。此外,RTP 協(xié)議也是一個開源的協(xié)議,開發(fā)者可以根據(jù)各自的應(yīng)用需求對其進行修改。

 

 

責任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2021-02-08 21:40:04

SockmapBPF存儲

2012-01-12 14:37:34

jQuery

2013-04-07 14:09:55

Android應(yīng)用基本

2020-03-21 14:57:14

手機定位智能手機APP

2010-08-20 13:29:33

OFDM

2009-02-24 09:43:00

IP電話原理

2011-11-29 12:17:00

2010-03-17 13:35:02

2019-11-28 10:45:28

ZooKeeper源碼分布式

2016-08-18 00:04:09

網(wǎng)絡(luò)爬蟲抓取系統(tǒng)服務(wù)器

2016-08-17 23:53:29

網(wǎng)絡(luò)爬蟲抓取系統(tǒng)

2010-06-18 17:28:37

Linux Anacr

2020-11-26 13:54:03

容器LinuxDocker

2009-06-11 09:56:09

MySQL Repli原理

2020-12-29 16:55:44

ZooKeeper運維數(shù)據(jù)結(jié)構(gòu)

2011-07-07 14:10:21

Cocoa 內(nèi)省 hash

2011-07-07 14:46:10

Cocoa Xcode

2010-03-18 20:13:03

Java socket

2010-09-26 17:13:31

2010-09-15 15:48:09

CSS Hack
點贊
收藏

51CTO技術(shù)棧公眾號