運用疊加網路技術以提供無線廣域網路 VoIP 服務之研究 Overlay Network Support for VoIP over Wireless Internet
計畫編號:NSC 94-2213-E-011-058- 執行期限:94 年 8 月 1 日至 95 年 7 月 31 日
主持人:陳秋華 博士 國立台灣科技大學資訊工程系
Abstract
We investigated a system called OverSky that builds on theKademlia’soverlay network indexing structure foundation to support a VoIP application. Substantial changesmustbemadeto theKademlia’sdesign to transform it into a usable substrate for supporting the low latency, low error rate required for our purposes. The major issue we have investigated in this proposal is with respect to overlay network design based on Kademlia’s indexing structure and its support for real-time applications.
We have created a combined clustering and lookup algorithm so that a more refined hierarchy can be built, while lookup can be performed with low latency
1. Introduction
Kademlia[6]運用了XOR的特性,藉由賦予不同的Node ID,而巧妙的將不同節點間連接而形成了一個XOR的 網路。
圖一:Kademlia的k-bucket及地址空間 原始Kademlia在網路間,搜尋Key值的演算法如下:
Source_Lookup(key){
If (the key is stored on this node) Return;
Find the k-bucket whose prefix maximally matches the key’sprefix;
C = Select a best node from the bucket;
(C’,value)= Node_Lookup(C,key); While(forever){
(node,value)= Node_Lookup(C’,key); if ( value != NULL)
return(value);
else
C’=node; }
}
Node_Lookup(Node n, key){
If (the key is stored on this node) return (NULL, value );
Find the k-bucket whose prefix maximally matches the key’sprefix;
C = Select a best node from the k-buckets;
Return (C,NULL);
}
圖二:Kademlia搜尋Key值的演算法的圖示
但此Kademlia邏輯網路拓墣結構卻未考慮到節點間的 實際距離,因而、後來有文獻Coral[5] 探討,按照節 點間實際距離的遠近不同,將原來的k_bucket tree分成 Level-0、Level-1與Level-2 三層的初步構想。
圖三:Coral的階層式結構及搜尋
理論上、此方式確實可以減少網路在搜尋時的遞延成 本(Lookup Latency),但Coral卻沒有考慮到:此三層 k_bucket tree彼此間所擁有的資訊,各有優勢;如何在 各層之間在適合的情形下,做適當的切換,以充分利 用到各層資訊的特性。此外、Coral也沒有考慮到各個 節點本身的k_bucket tree應該如何維護,會更有利於搜 尋速度的提升。
因此、我們提出了嶄新的初始化網路拓墣的方法,並 發展出一套「叢集間動態快速搜尋法」。以求有效維 護各個節點的k_bucket tree,並詳細考慮在各種情形 下, 應該如何在各層k_bucket tree間做適當的切換,
以加速節點搜尋的速度,及降低搜尋失敗的機率。
Dynamic Fast Clustering Search(DFCS)演算法:
1. 先在Levl-0尋找, 看是否直接有Target node 2. 再找Level-2 ,ㄧ直詢問下去,直到沒有更近的 結果時,切到Lev-1繼續找
3. 先比較 ”自己Level-1所知的”,是否有比 ”經更 新後的 Level-2所知的”更近?
(i) 若無:則由
“Level-2所知最近的節點“的 Level-1繼續找起( 找 的 規 則 為 先 看 Lev-0 , 有 否 完 全 match 者;若無,之後才回到Lev-1找更近者),
然後將找的結果回傳。
(ii) 若有:去詢問此節點,而此節點
( 找 的 規 則 為 : 先 看 Level-0 , 有 否 完 全 match者,若有、則將之直接回傳;否則、
再 續看Level-2上, 是否有 更近 且cid相同
者,若有、則將之直接回傳;若無、最後
才回到Level-1找更近者)幫忙就其所知的k_bucket tree,去詢問the target node。之後、再將結果回傳。
4. 最後,就重複步驟1.~3.,ㄧ直問下去,直到找 到或確定Fail為止,Lookup結束。
我們DFCS 演算法的優點如下:
1.
充分利用原先Lev-0的優點,有效降地詢問成本 (Lookup Latency):根據實驗顯示,每個被詢問
的節點被詢問時,先查看其Level-0層的k_bucket 資訊,常直接便找到target node,因此可以有效 降地許多詢問成本。如下圖所示:2’ 1’
Lev-2:
Lev-1:t1,…
Lev-0:to,…
t2’:
t2’
Kad. Cost:C0+C0+C1+C0 Coral Cost:C2+C2+C1(…)+C0 DFCS Cost:C2+C2+C0
Kad. Cost > Coral Cost >DFCS Cost
2.
利用各節點的Level-2及Level-1的資訊,進一步
降地詢問成本:當要由一層,切往上切換到另一
層k_bucket tree,去繼續詢問時,就由詢問者先 將自己的上一層所知的,是否有比自己目前所在 的這層k_bucket tree更新後所知的資訊,更近目 標節點(target node)?若是,才切換。否則、應由 之前提供最近節點的資訊給我的那個節點的上一 層,回傳給我其所知是否有跟我在同一個Cluster且較近的,亦或是不同Cluster但卻是最近的。如 下圖所示:
3. 有效減少搜尋的次數:藉由DFCS在不同情況 下,由Level-0開始,在Level-2、Level-1與Level- 0間的切換。根據實驗數據顯示,可充分發揮 Cluster的優點,有效降低尋找目標節點的搜尋次 數。
3. 研究成果
本計劃具體研究內容針對疊加網路之研製完成:
延伸 Kademlia Overlay Network 為一高效能, low latency,之疊加網路
網路組態控制(Topology control):有效的 Cluster 形成方法
以上各模組之效能分析
下為我們以GT-ITM產生的拓墣實驗來評估DFCS就成 功的搜尋時,其Lookup Latency的實驗結果:
下為我們以GT-ITM產生的拓墣實驗來評估DFCS就搜 尋時失敗比率(Lookup Failed)的實驗結果。同時我們 亦:
1.
A measurement study of Napster and Gnutella as examples of peer-to-peer file sharing systems. P.
Krishna Gummadi, Stefan Saroiu, and Steven Gribble. Multimedia Systems Journal, 9(2):170–184, August 2003.
2.
A Survey and Comparison of Peer-to-Peer Overlay Network Schemes Eng Keong Lua, Jon Crowcroft,
Marcelo Pias, Ravi Sharma and Steven Lim IEEE COMMUNICATIONS SURVEY AND TUTORIAL, MARCH 20043. "A Construction of Locality-Aware Overlay
Network: mOverlay and its performance", Q.
Zhang, F. Yang, W. Zhu, and Y.-Q. Zhang, IEEE JSAC Special Issue on Recent Advances on Service Overlay Networks, Jan. 2004
4. The CoDeeN Content Distribution
Network, Vivek S. Pai, L. Wang, K.S. Park, R. Pang, L. Peterson, Princeton University, at http://codeen.cs.princeton.edu/
5. Democratizing Content Publication with Coral Michael J. Freedman, Eric
Freudenthal, and David Mazières In Proc.
1st USENIX/ACM Symposium on Networked Systems Design and
Implementation (NSDI '04) San Francisco, CA, March 2004.
6.
Kademlia: A Peer-to-peer Information System Based on the XOR Metric. P. Maymounkov and D.
Mazires. In The 1st Interational Workshop on Peer- to-Peer Systems (IPTPS'02), 2002.
7.
Comparing the performance of distributed hash tables under churn. by Jinyang Li,
Jeremy Stribling, Thomer M. Gil, Robert Morris, and M. Frans Kaashoek.In the Proceedings of the 3rd International Workshop on Peer-to-Peer Systems (IPTPS04), San Diego, CA, February 2004
8. "Improving VoIP Quality Through PathSwitching", Shu Tao, Kuai Xu, Antonio Estepa,
Teng Fei, Lixin Gao, Roch Guerin, Jum Kurose, Don Towsley, Zhi-Li Zhang. In Proceedings of IEEEINFOCOM, Miami, FL, March 2005.
9. "Adaptive Joint Playout Buffer and FEC
Adjustment for Internet Telephony" Catherine
Boutremans, J. Y. Le Boudec, Proceedings of IEEEINFOCOM`2003, San-Francisco, CA, April 2003,
10. "Integrating Packet FEC into Adaptive VoicePlayout Buffer Algorithms on the Internet, " J.
Rosenberg, L. Qiu, and H. Schulzrinne, in Proc. of IEEE Infocom, Tel Aviv, Israel, March 2000 11. "Adaptive Playout Scheduling and Loss
Concealment for Voice Communication over IP Networks," Yi. J. Liang, N. Färber, and B. Girod, IEEE Transactions on Multimedia, Dec. 2003.
12.
A wavelet-based approach to detect shared congestion by Min Sik Kim, Taekhyun Kim,
YongJune Shin, Simon S. Lam, and Edward J.Powers. In Proceedings of ACM SIGCOMM 2004, August 2004