skype的本質也是使用的voip技術。所以它也必須實現通常voip的協議棧,和滿足在inte.net上實施語音通信的一般性標準。 考慮到internet的一般特點,它本身不是一個適合語音通信的網絡。 1.數據應用 無音頻和視頻 2.自適應選路 分組到達的順序可能會改變 3.無連接 無固定電路連接 4.best effort 如果發生問題,可能會導致信息丟失 針對以上internet作為一個數據網的基本特點,想要在其上實施語音分組交換業務,一般的性指導原則大致如下(對所有的 voip 適用,不只是 skype): 1. 減少分組時延,和時延抖動: 時延是指數據包從發送端到接受端的時間花費,抖動則是花費時間的變化 2.帶寬要求 因為傳輸語音信號除了本身語音信號,還包含l_2, ip報文,udp報文段,應用層協議的首部,此外包含語音編碼器的首部。so, 可以看出skype的公司所使用的比較優化的語音編碼方法可以使得它這個層面上占優。當然,這不是問題的關鍵。 3.減少計算量 這個指標在此比較中無較大的意義。 4.減少 rtt ( round-trip time ): 包括在兩個方向上的傳輸的時間和節點處理的時間,研究表明語音通信最好的rtt要小于 300 ms 5. 跳距:從發送端到接受端經過了多少跳。跳數越大,時延越大,時延的抖動越大。這和路由器對數據包的處理有關系(負載)。同時距離對時延的影響相對的很小了。但是一般來說又不需要固定的路由,因為“路由信息很少在通話的期間改變”,這是路由算法所決定的。 6.短包:因為語音編碼器在幀長為 10~30 ms 的時候所產生的 數據包的大小為10~30個字節。同時短包減少了丟包對語音信號的信號的影響。但是短包都增加了路由器的負荷和重組的時間,這之間是一個 trade-off 7. 使用udp作為傳輸層協議,因為udp的本質和語音通信比較接近。 從具體應用的層面研究性能 1.錯誤容限 研究表明:當偶發性的丟包率不超過10%的時候,就不會嚴重影響通話的質量 2.時延容限 語音分組的雙向時延的必須是恒定的同時還要小于300ms 雙向時延 = a 語音傳遞到 b + b 聽到 a 的聲音 + b開始講話 + a 聽到 b的聲音 3.vbr 數據流到 cbr的平滑過渡 f1.傳統的ip phone的結構圖 f2. skype使用的通信模型結構圖 通過以上兩個圖的比較可以認識到: 1. 在圖1中使用voip網關來提供語音/數碼的轉換的功能。發送端voip網關使用的低速率聲碼器和其他的特殊的硬件對語音進行編碼,壓縮,然后封裝成語音數據包(ip數據包)。這種結構支持傳統的電話網絡業務:telco中心局把信號編碼為 64kbps的ds0信號,然后,語音編碼器把ds0信號編碼成6 ~ 8kbs的telco信號放到路由器上傳輸。 2. 在圖2中,編碼,壓縮,封裝都是由pc完成??梢韵胍?,饒開了通過voip的集中處理(端到端的直接通信減少了路由跳數,以及服務器的壓力等因素影響) 同時,同一般的 voip 6~8 kbps的數據傳輸量相比較,skype所支持的3 ~ 16kbps的數據傳輸量無疑可以提供更高的語音還原效果。但是,以前我所提供圖片中指出skype的通話質量比其他的通信方式要好2倍以上也不是絕對的,還要受到具體的網絡環境的影響。 基于以上討論,可以認識,“整體是由部分組成的”,skype的通信質量的提高不是單一某個方面所導致的,而是所有方面共同作用的結果。其中 peer 和 peer 之間直接通信方式,可以在減少 “跳距”,減少voip網關的負荷(數據包直接到路由器),增加的數據傳輸量,這三個關鍵性因素起到重要作用。但是,也不可忽視“語音編碼”技術所帶來的好處。 補充: 1. 電話網絡的優點: 1/ 呼叫建立階段說話方和受話方之間的傳輸的路徑是固定的。 2/ 電話交換沒有排隊的問題。語音信號是在ds0(tdm時隙)時分復用。直接從交換機的輸入接口傳輸到預先設定的輸出接口相應ds0時隙中。 因此電路交換所提供的是固定的路徑和固定的時延。 而分組交換網絡則不提供固定的路徑和固定的時延。 2.通過分析數據包的大小對voip提出的一般性解決措施: 1/ 使用較短的數據包來傳輸對語音業務非常重要 a.因為在短的包中包含重要的信息的概率比較小,發生丟包的現象對質量的影響不大 具體的數據是: 10~30字節 而網絡上其他的包所采取的大小主要是175~400字節 b.因為短包可以使得處理節點可以快速的檢查,處理小單元信息 2/ 但是也不能使得包的長度過小,使得包的數量增加; 產生問題的原理是路由器在解析大小不同的包負載是一樣的。實際的解決方案是在一個數據包中實現 2~3個語音樣本,大致是20~60字節。 以上問題的解決方案:sonet(同步光纖網)和千兆未路由器 3.為什么不采取tcp傳輸層協議? 因為tcp的全部傳輸層時延是400~500ms,超過了voip所需要的rtt 語音網絡具有和數據網不同的設計理念,語音網絡支持的同步的實時同步業務,而且要求發送端和接受端之間的時延為固定值: 所必須要克服的困難: 1/ 減少時延 2/ 減少時延抖動 3/ 降低數據丟包率 所以通常選擇udp和ip協議來作為其傳輸層和網絡層的協議。