UDP打洞原理

2021-08-28 15:39:12 字數 830 閱讀 8690

網路上的大多數udp原理研究分析後,自己總結了下面的結果.

1、client a 登入 通過http伺服器 webservices 驗證成功獲取自身資訊與好友

列表資訊等。

2、http伺服器登記client a的nat後的ip位址與埠

3、client b登入 通過http伺服器 webservices 驗證成功獲取自身資訊與好友列

表資訊等。

4、http伺服器登記client b的nat後的ip位址與埠

6、client a獲得client b的ip位址後並傳送udp資訊到client b

7、client a與client b請求失敗,資訊丟失,此時client a報告http伺服器要求

伺服器幫忙對client b進行通知

8、http伺服器接到此命令後,將client a的ip位址發給client b,要求他連線

9、client b收到http伺服器的資訊後傳送請求到 client a

10、由於此時client a nat已經存在clinet b的session,所以此時 client a與

client b建立鏈結成功。

11、client a傳送訊息到 client b成功,不經http伺服器中轉

總結:換句話說就是http伺服器啟動了「和事老」的功能。為不信任的兩個人發

出命令從而使他們達到了一種互相承認而此建立鏈結關係

其中最主要的是server 的乙個方法就是傳送訊息到被打洞的客戶端

客戶端傳送訊息需要判斷該訊息是否傳送成功,不成功則要求請求打洞.若成功則不需要要求打洞!

客戶端在接收到伺服器的打洞指令後,則作出udp傳送響應

UDP打洞原理

許多p2p軟體比如skype,qq,電驢之類需要不同內網的兩台機子進行通訊,而路由器的nat機制決定了內網訪問外網容易,而外網訪問內網困難,那如何才能做到這一點呢?有辦法 打洞 具體實現方法需要一台伺服器,現在假設兩台內網pc,a和b想用埠40000通訊,閘道器分別為nata,natb.伺服器為s,...

UDP打洞原理

許多p2p軟體比如skype,qq,電驢之類需要不同內網的兩台機子進行通訊,而路由器的nat機制決定了內網訪問外網容易,而外網訪問內網困難,那如何才能做到這一點呢?有辦法 打洞 具體實現方法需要一台伺服器,現在假設兩台內網pc,a和b想用埠40000通訊,閘道器分別為nata,natb.伺服器為s,...

UDP打洞原理

許多p2p軟體比如skype,qq,電驢之類需要不同內網的兩台機子進行通訊,而路由器的nat機制決定了內網訪問外網容易,而外網訪問內網困難,那如何才能做到這一點呢?有辦法 打洞 具體實現方法需要一台伺服器,現在假設兩台內網pc,a和b想用埠40000通訊,閘道器分別為nata,natb.伺服器為s,...