0.引言
本文主要是介紹一些基本工作原理,包括移動Mesh網路,VOIP技術等。關於本文涉及到的一些專業知識,有更詳細介紹,參考文章列表如下:
1.移動Mesh網路
1.1 常見的網路拓撲結構
常見的網路拓撲結構有點對點拓撲結構、星型拓撲結構、樹型拓撲結構、環型拓撲結構和匯流排型拓撲結構等。常見網路拓撲結構如下圖所示:

點對點拓撲結構(perr-to-peer,簡稱 P2P),是一種無路由節點、網路成員直接交換資訊的網路結構。這種結構在通訊上較為簡單,但應用開發較為複雜,需要打洞,在有些場景可以應用到。
在星型拓撲結構的網路中,子節點都直接與中心節點相連,其具有結構簡單,延遲低等優點,但是可靠性較低、部署成本較高。它目前常見於企業、學校和家庭網路中,運營商網路由路由器接入後,各個裝置透過網路線纜或者無線網路連線路由器或交換機接入網際網路。匯流排型拓撲結構則是一種所有節點掛在同一條總線上的拓撲結構,其沒有網路中心,這種拓撲結構的優點是可擴充套件性好,但是維護困難,分支結構定位故障較難。
2.Mesh網路拓撲結構
Mesh 網路拓撲結構,是一種在網路節點上使用動態路由的方式進行資料傳輸的拓撲結構。這種網路拓撲結構可以保證每個節點與其他節點之間連線的可靠性,當網路中有某個節點故障時,這種結構允許其他節點使用“跳躍”(hip)的方式形成一條新的、可用的路由進行資料傳輸。
Mesh 網路具有以下幾個特點:
(1)自組織:網路節點可以即時加入 Mesh 網路,網路拓撲結構會隨之改變,使得該節點可以與網路中的任意一個節點連線。
(2)自愈性:如果 Mesh 網路中的網路成員因為關機、故障等原因不能工作,網路會自動調整網路拓撲結構,使得原來被破壞的路由被有效的路由替換。
相對於傳統 Wi-Fi 的 AP(Access Point)工作模式使用的星型網路拓撲結構,Mesh 網路使用的 Mesh 拓撲結構在網路成員節點傳輸距離以及移動性上都有了很大的改進。
3.IEEE 802.11s 標準
IEEE 802.11s 是 IEEE(電機電子工程學會)對 802.11 無線網路協議中無線網狀網路的補充標準,它定義了無線裝置如何互動以組成一個 Mesh 無線區域網,這個網路的拓撲結構是可以隨時變化的。不同於傳統Ad-Hoc 網路中使用傳輸層的路由協議實現多跳功能,802.11s 協議擴充套件了 MAC(媒體訪問控制)層標準,定義了一個使用無線感知進行自配置多跳拓撲結構的架構和協議,其支援包括廣播、組播和單播方式的資料傳輸。
802.11s 使用的路徑選擇協議為混合無線 Mesh 協議(Hybrid Wireless Mesh Protocol,簡稱 HWMP),即同時使用了先驗式路由協議和反應式路由協議,上述路徑選擇協議中包含了四種路徑選擇訊息包,分別為根節點通告(Root Announcement,簡稱 RANN)、路徑請求(Path Request,簡稱 PREQ)、路徑回覆(Path Reply,簡稱 PREP)和路徑錯誤(Path Error,簡稱 PERR)。混合無線 Mesh 協議如下圖:

先驗式路由協議對於網路中的每個節點,會建立一個樹形的路由拓撲結構,根節點可以透過兩種方式建立路由表,一種是使用根節點宣告包,另一種是使用路徑請求包。
使用根節點宣告包方式其路徑請求是由根節點以外的其他節點以單播的方式傳送給根節點,而根節點必須使用路徑回覆包進行回覆。
使用路徑請求包的方式時,不會使用路徑回覆包,而且路徑請求包是由根節點發送的
反應式路由協議,又稱為按需路由協議,是基於 RM-AODV(Radio-Metric Ad hoc On-Demand Distance Vector)的協議,使用路由請求和路由回覆機制在兩個節點之間建立路由,節點間使用路由請求包和路由回覆包進行資訊資料互動,並在路由回覆包中採用序列號以保證路由的時效性
目前 IEEE 802.11s 標準已經被 Linux 核心支援,在 Linux 上可以方便地使用支援802.11s 標準的無線網絡卡組建基於 802.11s 的無線 Mesh 網路。
4.Vo IP 技術
Vo IP 是一種語音通話技術,透過將語音訊號數字化處理、編碼壓縮、網路傳輸、解碼、還原成音訊訊號實現語音通訊,其中關鍵技術為語音編碼技術和實時網路傳輸技術。其流程如下圖所示:
5.音訊編碼技術
語音編碼是一種將語音數字訊號壓縮的技術。由於數字化的語音訊號在儲存、傳輸上的可靠性、抗干擾能力和保密性都遠優於模擬的語音訊號,因此,目前幾乎在所有的系統中都採用數字化的方式進行語音的儲存和傳輸。未經過壓縮的語音資料因為體積過大,受限於儲存裝置的容量和傳輸網路的頻寬,不適合直接進行儲存和網路傳輸,音訊編碼技術應運而生。音訊編碼技術可以大大的壓縮音訊資料的體積,減少了儲存消耗的硬體資源與傳輸佔用的頻寬和時間,增加了在有限的資源下可以儲存和傳輸的語音資料量。
根據是否保留原始音訊資料的全部資訊,音訊編碼技術通常被分為有損音訊編碼技術和無損音訊編碼技術,有損音訊編碼技術在犧牲部分原始音訊資料的情況下可以達到更高的音訊資料壓縮率,而無損音訊編碼技術則可以還原出完整的原始音訊資料。
在 Vo IP 技術中,由於網路頻寬的限制,往往會使用有損音訊編碼技術,且這些音訊編碼演算法可以達到的壓縮率通常比較高。此外,由於實時網路傳輸的不可靠性,使用的音訊編碼演算法需要具備從殘損資料中獲得接近完整音訊資料的功能。常用的音訊編碼演算法有 G.711、G729、AAC、Speex、Opus 等,這些音訊編碼演算法壓縮後的音質與位元率的關係對比如下圖所示,延遲與位元率的關係如下圖所示:
音訊編碼演算法壓縮後的音質與位元率的關係
部分音訊編碼演算法延遲與位元率的關係
如果需要實現多方語音通話功能,對延遲的要求高,由於系統中各成員之間的距離可能較遠,整個網路的頻寬較小,在保證音訊質量的情況下,音訊資料位元速率需要儘可能的低,選擇使用 Opus 音訊編碼演算法實現語音資料編解碼。
Opus 是一種有損音訊編碼演算法,包含了 SILK 和 CELT 兩種聲音編碼技術,其開發目的是希望用單一格式包含聲音和語音,取代 Speex 和 Vorbis 音訊編碼演算法,且適用於網路上低延遲的實時音訊傳輸。Opus 可以調節編碼位元率,它在較低位元率時使用線性預測編碼,在高位元率時使用變換編碼,非常適合用於低延遲語音通話的編碼。此外 Opus 也可以透過降低編碼位元率,達成更低的演算法延遲,最低可以到 5 ms。
6.RTP 實時傳輸協議
RTP 協議是一種基於 IP 網路傳輸音影片資料的網路傳輸協議,它被廣泛應用於通訊和流媒體應用,例如語音會話、影片會議、網路電視服務等。它在網路模型中是一個應用層協議,在傳輸層之上,通常 RTP 協議是基於 UDP 協議的,在一些特殊應用場景之下也可以基於 TCP 協議。
表中幾個重要的欄位的解釋如下:
(1) SN(Sequence Number,序列號):為了解決網路傳輸時時延抖動的問題,RTP協議使用一個長度為 16 位的序列號來確定資料報的順序,每個發出的資料報會被標記上連續的序列號,用於接收端對亂序到達的 RTP 資料報進行排序,同時可以用於統計 RTP 傳輸的丟包情況。
(2) PT(Payload Type,負載型別):RTP 協議使用 PT 欄位來標識 RTP 報文所傳輸的流媒體資料的型別,常見的資料型別有 AAC、Speex、Opus、H.264 等。
(3)Timestamp(時間戳):由於時延抖動的存在,目標主機接收到資料報的順序和時間間隔與傳送時的存在偏差,如果每次都立即播放接收到的資料,則播放效果會與我們預期的大不相同。實際中,接收端通常會設定一個播放時延,時間戳在這個時延區間內的包會被存入緩衝區等待播放,即打上傳送時間戳。
(4) Ssrc(Synchronization Source,同步源):RTP 協議在設計之初就考慮到了組播的方式,在進行組播時,IP 地址和埠無法用於確定唯一的一個網路地址,因此 RTP 協議中使用一個長度為 32 位的欄位標識 RTP 包來源,它是一個隨機數,且能保證其在一個 RTP 會話中的唯一性。RTP 協議不僅解決了使用 IP 協議進行實時流媒體資料傳輸時存在的問題,同時也為應用層的流媒體應用程式提供了規範的傳輸協議,使得開發者不需要重複實現類似的私有協議。此外,RTP 協議也是一個開源的協議,開發者可以根據各自的應用需求對其進行修改。
7.總結