P2P打洞原理

2021-07-24 15:59:10 字數 623 閱讀 7130

首先我們明確現在我們有的裝置:

1、客戶端a,閘道器nat-a

2、客戶端b,閘道器nat-b

3、伺服器s

這些裝置明確之後,就可以介紹tcp打洞的過程:

1、首先伺服器s開啟兩個服務監聽,乙個主連線埠,和乙個協助打洞埠

2、a通過主連線埠連線伺服器s,b通過主連線埠連線伺服器s,這個是正常的伺服器通訊

3、當a需要和b進行直接連線時,首先a去連線伺服器s的協助打洞埠,並向伺服器傳送和b的協助連線請求,伺服器s收到請求後,向b傳送a的外網位址(也就是nat-a的位址)

4、b收到伺服器s發來的a的外網位址後,就向a發資料,此時由於a並沒有主動向b發過資料,nat-a會認為這些資料是非法請求,會拋棄掉,並且b開啟監聽服務,等待a的連線,並告訴伺服器它準備好了

5、伺服器收到了b的準備連線的訊息之後,就通過主連線把b的外網位址告訴a,a就可以直接去連線b了(因為b之前在第4部就向a傳送過資料了,所以nat-b會直接將a發來的資料**給b),此時就可以成功連線上了

udp打洞和tcp類似,只是tcp規定同一監聽埠只能繫結乙個socket套接字,而udp規定乙個監聽埠可以繫結多個socket套接字,所以udp不需要開啟額外的協助連線埠,只需要開啟乙個埠就可以了

關於P2P打洞

處於不同nat之後的客戶端通訊 我們假設 client a 和 client b 都擁有自己的私有ip位址,並且都處在不同的nat之後,端對端的程式執行於 client a,client b,s之間,並且它們都開放了udp埠1234。client a和client b首先分別與s建立通訊會話,這時n...

P2P打洞中遇到的問題

裝置a通過一台聯通的路由器上網,裝置a通過有線連線路由器 裝置b是一台手機是移動2g 協助伺服器是電信網路 附 裝置a和裝置b經過ip.cn 測試發現各自的外網位址是 裝置a 221.4.212.2,聯通ip,相對固定 裝置b 117.136.33.128,移動ip,手機網路經常變動 但是通過伺服器...

P2P技術原理

組織結構 點對點技術又稱對等網際網路絡技術,是一種網路新技術,依賴網路中參與者的計算能力和頻寬,而不是把依賴都聚集在較少的幾台伺服器上。p2p網路通常用於通過adhoc連線來連線節點。這類網路可以用於多種用途,各種檔案分享軟體已經得到了廣泛的使用。p2p技術也被使用在類似voip等實時 業務的資料通...