做了一個通用P2P系統

當然了,是給公司做的。架構是我設計的,服務器也是我實現的。

P2P的原理就不講了,就講講實現它的關鍵點:

1、公網肯定要有個服務器做節點雙方的交互。爲了上大併發,節點和服務器之間我們用UDP協議。

2、如何做UDP穿透,其實現在RFC都有標準的流程。之前的博文,ICE就是這個東西。

3、爲了效果,肯定要做端口猜測。不過對稱NAT和對稱NAT之間,無論怎麼樣,穿透概率都很低。

4、P2P的關鍵,還是在於做UDP的可靠傳輸。我們調研了UDT、RUDP和谷歌的PTCP(libjingle項目)這三種,並做了仔細的測試與性能分析,最終選用PTCP。當然,爲了避免license限制,我們稍微對PTCP的協議做了變形(嘿嘿,這招也是跟谷歌學的,想想davik和java虛擬機)。

考慮了以上幾點,這個P2P系統基本也就出來了。不要問我UDP的穿透率,現在互聯網發展實在太快,網絡環境錯綜複雜,很難給出估計值。主要是運營商移動網絡(國內的3G神馬的),穿透率是比較低的。其他家用路由器,穿透率還是很高的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章