文/閻丕濤 閆紅書 王佳
VoIP信號(hào)在校園網(wǎng)中的延遲分析
文/閻丕濤 閆紅書 王佳
VoIP (Voice-over-IP),是一種在數(shù)據(jù)網(wǎng)絡(luò)上,采用分組交換技術(shù)實(shí)現(xiàn)話音傳輸業(yè)務(wù)的語音通信技術(shù)。目前在長(zhǎng)途語音通信業(yè)務(wù)中己占有相當(dāng)?shù)氖袌?chǎng)份額,隨著網(wǎng)絡(luò)的建設(shè)發(fā)展,園區(qū)網(wǎng)中的VoIP應(yīng)用也開始流行起來,其所存在的問題成為了關(guān)注的要點(diǎn)。
語音交互存在著實(shí)時(shí)、保真、噪音和衰減等諸多技術(shù)問題,數(shù)據(jù)網(wǎng)絡(luò)平臺(tái)使主要問題研究集中到了實(shí)時(shí)與保真兩個(gè)方向。由于VoIP可承載的應(yīng)用類型可能多種多樣,考慮到基本的要求和相關(guān)標(biāo)準(zhǔn),本文將保真底線統(tǒng)一為8kHz取樣頻率、8位取樣精度,這樣一來,就將文章討論方向集中到了與實(shí)時(shí)性緊密相關(guān)的延遲問題。VoIP的延遲是指由說話者開始說話到接聽者聽到聲音的這段時(shí)間。在承載語音傳輸?shù)姆纸M交換網(wǎng)上有三種不可避免的延遲:傳播延遲,隊(duì)列延遲和處理延遲。
傳播延遲傳播延遲是因?yàn)樾盘?hào)必須在光線或電纜網(wǎng)絡(luò)上傳輸。光在真空中的傳輸速度是每秒30萬公里,電信號(hào)在電纜或光纖上的傳輸速度大約每秒20萬公里。限于校園面積,假設(shè)園區(qū)內(nèi)網(wǎng)絡(luò)傳輸介質(zhì)最遠(yuǎn)跨度2公里(往復(fù)4公里),可計(jì)得其傳播延遲約0.02ms,即約為人耳對(duì)聲響最高分辯間隔的2500分之一,可見通過改善傳輸介質(zhì)雖然可減少傳播延遲,但對(duì)于校園網(wǎng)上VoIP信號(hào)的傳輸來說其成效微乎其微。
隊(duì)列延遲
當(dāng)一個(gè)傳輸包因?yàn)榻涌谧枞A粼谳敵鲫?duì)列中所造成的延遲,被稱為隊(duì)列延遲。隊(duì)列延遲通常是因某段時(shí)間內(nèi)發(fā)送的傳輸包超出了其接口的處理能力而產(chǎn)生。這個(gè)參數(shù)既可通過網(wǎng)絡(luò)設(shè)計(jì)和設(shè)備的選型,也可通過對(duì)端口各種排隊(duì)方式的選擇來優(yōu)化網(wǎng)絡(luò),考慮到多數(shù)園區(qū)網(wǎng)絡(luò)所延續(xù)的三層架構(gòu),高質(zhì)量傳輸應(yīng)保證設(shè)備的這個(gè)參數(shù)平均值不超過12.5ms,單向端到端最大延遲不超過150ms。經(jīng)測(cè)試,在缺乏管理、流量擁擠的網(wǎng)絡(luò)中,能夠短時(shí)間忍受的最大隊(duì)列延遲甚至可達(dá)2秒,但此指標(biāo)的改進(jìn)對(duì)語音交互的人員感受和VoIP信號(hào)傳輸影響明顯。
處理延遲
這類延遲在網(wǎng)絡(luò)中主要是由傳輸幀的設(shè)備所產(chǎn)生,例如:壓縮解碼、報(bào)文重組、交換轉(zhuǎn)發(fā)等處理時(shí)間。在分組交換網(wǎng)絡(luò)中,每個(gè)有實(shí)際意義的報(bào)文都需由多個(gè)傳輸分組共同構(gòu)成,因此,這個(gè)延遲在分組網(wǎng)絡(luò)傳輸中非常重要。目前,主流的VoIP終端設(shè)備所使用的標(biāo)準(zhǔn)都是每10ms獲取一個(gè)語音樣本,即:一個(gè)數(shù)據(jù)幀中一旦生成了一個(gè)語音樣本,就意味著已經(jīng)有了至少10ms的處理延遲,考慮到人耳分辯極限,一個(gè)數(shù)據(jù)幀中不應(yīng)放置超過5個(gè)語音樣本,也就是說,在一個(gè)數(shù)據(jù)幀中可以包含1~5個(gè)語音樣本,一個(gè)數(shù)據(jù)幀中的幾個(gè)語音樣本共同構(gòu)成了一個(gè)VoIP數(shù)據(jù)包,而且,必須在下一個(gè)數(shù)據(jù)幀中的VoIP數(shù)據(jù)包生成之前完成本次數(shù)據(jù)幀中語音樣本的VoIP數(shù)據(jù)包打包處理。這在實(shí)際上就限定了VoIP的最低帶寬。
一個(gè)網(wǎng)絡(luò)建成,其每段網(wǎng)絡(luò)的帶寬傳輸上限就已確定,只能通過節(jié)點(diǎn)設(shè)備參數(shù)的配置和架構(gòu)的改進(jìn)在有限范圍內(nèi)進(jìn)行調(diào)整,否則,就必須進(jìn)行線路或設(shè)備的升級(jí)改造,因此,有必要先計(jì)算VoIP在理論上的帶寬占用情況。眾所周知,數(shù)據(jù)幀的大小和幀轉(zhuǎn)發(fā)的速率,是在線路編碼與收發(fā)裝置確定后與帶寬占用直接相關(guān)的兩個(gè)重要參數(shù),VoIP信息的傳輸也同樣與其相關(guān)。
根據(jù)G.711編解碼算法和基本保真需求,VoIP終端的數(shù)據(jù)產(chǎn)生速率為:8(kHz)*8(bit)=64kbit/s,如果設(shè)定打包周期為20ms,如見圖1所示,則每個(gè)VoIP包所含信息數(shù)據(jù)的大小為:
圖1 話機(jī)編碼配置
64000(bit/s)×0.020(s)÷8(比特/字節(jié))=160字節(jié)。
對(duì)應(yīng)其整幀尺寸:IP頭20字節(jié)、UDP頭8字節(jié)、RTP頭16字節(jié)、以太網(wǎng)數(shù)據(jù)幀頭為14字節(jié)。因此,整幀大小=160+20+8+16+14=218字節(jié)。
對(duì)VoIP包的最低處理速率:包速率=打包周期的倒數(shù)=1/0.020=50pps
每路VoIP呼叫帶寬(kbit/s)=F×R/1000 =218×8×50/1000=87.2kbit/s
圖2 統(tǒng)計(jì)信息(G.711)
圖3 數(shù)據(jù)包時(shí)間間隔
利用sniffer抓取一路單向RTP流,然后統(tǒng)計(jì)平均占用帶寬,如圖2所示。
從圖2中可以看到所占帶寬為0.077MBit/sec=77kbps,可以看到統(tǒng)計(jì)值中,平均每秒數(shù)據(jù)包為45個(gè),比理論值中50pps要少。通過對(duì)對(duì)應(yīng)VoIP包的包轉(zhuǎn)發(fā)間隔的列表分析,如圖3所示,部分?jǐn)?shù)據(jù)包時(shí)間間隔遠(yuǎn)大于20ms,說明中間發(fā)生了VoIP包的丟失,從而造成了sniffer統(tǒng)計(jì)VoIP包時(shí)數(shù)量的減少。
以上數(shù)據(jù)是在一個(gè)較理想的環(huán)境中得到的,其線路介質(zhì)和節(jié)點(diǎn)設(shè)備的支持帶寬都遠(yuǎn)超一路VoIP信號(hào)所需,只是在普通的數(shù)據(jù)網(wǎng)絡(luò)傳輸參數(shù)的配置下完成的,其VoIP信號(hào)的傳輸情況與理論值相比有近10%的平均丟包率,而實(shí)際操作中,更會(huì)有很多因素影響到VoIP信號(hào)的傳輸。例如:隧道的啟用、對(duì)信息的加密、QoS策略等都會(huì)影響到帶寬的占用及話音的質(zhì)量。
通過實(shí)際的測(cè)試,語音通信延時(shí)嚴(yán)重影響到通話質(zhì)量,通過LLQ排隊(duì)設(shè)計(jì),可以對(duì)以上的延遲做出一定的緩解。VoIP等實(shí)時(shí)性應(yīng)用要求具有很小的端到端時(shí)延預(yù)算和幾乎為零的抖動(dòng)。LLQ包含了一個(gè)優(yōu)先級(jí)隊(duì)列,該隊(duì)列的優(yōu)先級(jí)要高于其他所有隊(duì)列,非常適合于時(shí)延和抖動(dòng)敏感型應(yīng)用。PQ中優(yōu)先級(jí)高的隊(duì)列可能會(huì)使優(yōu)先級(jí)低的隊(duì)列得不到處理機(jī)會(huì),而LLQ中的嚴(yán)格優(yōu)先級(jí)隊(duì)列是受到監(jiān)管的隊(duì)列。也就是說,LLQ的嚴(yán)格優(yōu)先級(jí)隊(duì)列是一個(gè)有最小保證帶寬的優(yōu)先級(jí)隊(duì)列,在出現(xiàn)擁塞時(shí),該隊(duì)列發(fā)送的數(shù)據(jù)量不能超過其所允許的帶寬,如果到達(dá)的流量超出了嚴(yán)格優(yōu)先級(jí)隊(duì)列所能發(fā)送的流量(原因是存在嚴(yán)格的帶寬限制),則會(huì)被丟棄。因此,在出現(xiàn)擁塞時(shí),其他隊(duì)列也一樣有被處理的機(jī)會(huì),能夠共享接口帶寬,并發(fā)送隊(duì)列中的流量。
圖4 LLQ 操作過程
從圖4可以看出,LLQ相當(dāng)于在CBWFQ的基礎(chǔ)上增加了一個(gè)或多個(gè)嚴(yán)格優(yōu)先級(jí)隊(duì)列,因而更為有效。需要注意的是,LLQ可能會(huì)有多個(gè)嚴(yán)格優(yōu)先級(jí)隊(duì)列,這樣做的目的是便于對(duì)分配到兩個(gè)嚴(yán)格優(yōu)先級(jí)隊(duì)列的流量進(jìn)行分別監(jiān)管。不過,在實(shí)施了監(jiān)管之后,來自這兩個(gè)類別的流量并沒有被分開,均基于到達(dá)順序(FIFO)被送往硬件隊(duì)列。只要分配到嚴(yán)格優(yōu)先級(jí)隊(duì)列的流量沒有超過隊(duì)列的帶寬門限,也沒有被監(jiān)管和丟棄,就能以最小的時(shí)延通過LLQ。
目前基本上所有的設(shè)備均支持G.711/ G.723/G.729幾種編碼,在VoIP系統(tǒng)中,我們一般建議:局域網(wǎng)內(nèi)使用G.711編碼,Internet環(huán)境使用壓縮編碼G.723或G.729。經(jīng)過試驗(yàn)測(cè)試了各種的編碼算法,采用G.711編解碼算法,然后在VoIP網(wǎng)絡(luò)內(nèi)部署QoS,在網(wǎng)絡(luò)邊緣對(duì)IP數(shù)據(jù)包的進(jìn)行分類,可以根據(jù)SIP、RTP協(xié)議進(jìn)行分類,并設(shè)定優(yōu)先級(jí)為5(IP中為語音設(shè)定的優(yōu)先級(jí)),由于使用代理服務(wù)器的語音呼叫,可以使用訪問列表對(duì)去往或來自服務(wù)器的語音數(shù)據(jù)設(shè)定預(yù)留帶寬,據(jù)此與非本地的語音數(shù)據(jù)進(jìn)行區(qū)分。
G.711的語音質(zhì)量最優(yōu)但占帶寬比較大,局域網(wǎng)帶寬本身就很大。G.723或G.729所占帶寬最小。經(jīng)過試驗(yàn)測(cè)試了各種的編碼算法,采用G.711編解碼算法,然后在VoIP網(wǎng)絡(luò)內(nèi)部署QoS,在網(wǎng)絡(luò)邊緣對(duì)IP數(shù)據(jù)包的進(jìn)行分類,可以根據(jù)SIP、RTP協(xié)議進(jìn)行分類,并設(shè)定優(yōu)先級(jí)為5(IP中為語音設(shè)定的優(yōu)先級(jí)),由于使用代理服務(wù)器的語音呼叫,可以使用訪問列表對(duì)去往或來自服務(wù)器的語音數(shù)據(jù)設(shè)定預(yù)留帶寬,據(jù)此與非本地的語音數(shù)據(jù)進(jìn)行區(qū)分。
(作者單位為大連工業(yè)大學(xué)網(wǎng)絡(luò)信息中心)
遼寧省教育廳科研基金項(xiàng)目(JG10DB304)