QoS Assurance for VoIP/PTT over P2Pnet |
---|
VoIP/PTT 對時效性的要求極高,為了符合這個要求,現今的 VoIP/PTT 系統都是 使用 UDP 傳輸層協定,如果運用在錯誤率很高的網路環境時,可能會因為 遺失太多封包而影響通話品質。 當將 P2Pnet 架設於嚴重災區救難時,網路的 品質遠比平常的網路為低,VoIP/PTT 的品質將因遺失太多封包而受到 嚴重影響。我們將提出一些機制用以提高VoIP/PTT 的品質。 |
---|
|
+ + | - - | ^ ^ |
1. 分辨重要封包
2. 採用 redundancy 封包保護技術,設法從後續的封包還原遺失的封包
| 3. 採用 Partial-Reliable UDP技術,在傳輸層保證重要封包的送達
| |
---|
|
+ + | - - | ^ ^ |
Time Domain 重要封包分辨技術 | 在語音 frame 擷取之後,尚未壓縮之前,就利用某些特徵(例如:平均能量)
判斷封包的重要性
Frequency Domain 重要封包分辨技術
| 在語音壓縮之後,就所獲得的frequency domain 資訊判斷語音的重要性
| |
---|
|
+ + | - - | ^ ^ |
將 redundancy 封包 piggyback 在後續的封包上,當一個封包遺失時,即可 將後續封包裡的 redundancy 封包抓出來 |
---|
Model |
---|
定義基本封包間隔時間 (msec/packet), 簡稱為 「基本時隔」
最常用的基本時隔為 20ms/packet 及 30ms/packet
將 redundant voice packets 視為不同的 packet stream
| 不同的 voice packets 可用不同的 codec
| 所有的 packet stream 的時隔應為基本時隔的倍數
| 定義第一個 packet stream 為基本 stream
| 其他的 packet stream 稱為redundant stream,彼此之間相差至少
一個時隔
| 最後,將所有 packet stream piggyback 在一起,變成一個時隔為
基本時隔的單一 packet stream
| 「請小冷畫圖表示這個model」
| |
---|
所要研究的問題變成需要多少 redundant packet stream,每一個 redundant stream 使用何種 codec 及時隔 |
|
+ + | - - | ^ ^ |
設計一個新的UDP 傳輸協定,由上層的VoIP/PTT 指定某些重要性封包, 由傳輸層以 ACK及重傳技術保證封包之送達 |
---|
|
+ + | - - | ^ ^ |
結合前兩種技術,整合成一個用於在封包遺失率較低的網路上 有效的VoIP品質提升方案,例如: |
---|
每一個VoIP stream 包含一個基本 stream 及二個 redundant stream
基本stream及第一個 redundant stream 採用相同codec 及時隔,
兩者相差一時隔
| 第二個 redundant stream 使用較低品質低速率的 codec,以三倍時隔,落後
於基本stream 兩個時隔送出。
| 利用 piggyback 技術將三個 stream 合併成為一個 packet stream
| 將含有第二個redundant stream 的封包視為重要封包,利用Partial-Reliable
UDP 保護
| 「請小冷畫圖表示這個model」
| |
---|
上述方案耗用頻寬為基本stream 的2.x 倍,當封包遺失不嚴重時,可使用 第一個redundant stream 去還原原始voice,delay time 會多一個時隔, 如果封包遺失太嚴重,可以使用第二個redundant stream來還原原始voice stream,延遲時間會增加兩個時隔。在P2Pnet 中,因為地理範圍侷限於 災區,因此propogation delay time ,幾乎可略過,總和的delay time 應該在可接受的範圍。 |