我已經做了一些閱讀,儘管我是iPhone網絡的新手,但我想知道是否可以通過NAT連接兩個iPhone來實現TCP打洞。我還閱讀了關於uPnP和髮夾的一些有用的事情,但我不會完全熟悉這些,所以如果任何人有任何想法,這是否可能。在iPhone上打孔的TCP洞
我的目標是能夠連接多個iPhone的大範圍(所以它可能會更好切換到某種類型的GPSR),但現在我只與兩個iPhone和3G NAT穿越似乎是最簡單的理論上最可靠。
我已經做了一些閱讀,儘管我是iPhone網絡的新手,但我想知道是否可以通過NAT連接兩個iPhone來實現TCP打洞。我還閱讀了關於uPnP和髮夾的一些有用的事情,但我不會完全熟悉這些,所以如果任何人有任何想法,這是否可能。在iPhone上打孔的TCP洞
我的目標是能夠連接多個iPhone的大範圍(所以它可能會更好切換到某種類型的GPSR),但現在我只與兩個iPhone和3G NAT穿越似乎是最簡單的理論上最可靠。
nat traversal是通用術語,用於在rendevous服務器的幫助下直接連接兩個節點。節點可以是計算機,智能手機或任何其他設備的任何東西。至於3g而言,它是傳輸數據的媒介之一僅此而已。
如果你的對端設備在同一NAT下使用公網ip連接對方,因爲某些路由器不支持像思科路由器等發那樣,這可以通過使用私有IP而不是公有IP來解決。因爲我沒有關於你的網絡的技術細節,所以在你的情況下我不能說任何有關髮夾的事情。
更新您的問題與技術細節,如3g你使用的類型。然後我只能說關於3g的頭髮釘。
我已經在2g.I上使用了udp/tcp打孔,我使用了三臺PC(一個rendevous服務器和兩個節點)來做到這一點。
發展將上一個pc.the程序運行應該能夠交換兩個iPhone設備的公網IP rendevous服務器程序。
在iphone中開發一個客戶端程序安裝。連接iphone到服務器這將暴露iPhone的公共IP到server.repeat第二個iPhone的相同過程。現在服務器將交換公共IP /端口到兩個iphone。 現在每個同時開始發送數據包給對方,同時這將在NAT中打孔。
詳細介紹打孔可以在此http://www.brynosaurus.com/pub/net/p2pnat/
最好嘗試用UDP孔punchcing這是很容易develop.TCP打孔發現是tricky.Once您實現UDP孔位衝孔很容易實施TCP打孔。
瞭解STUN,ICE,NAT類型的NAT馬平
http://tools.ietf.org/html/rfc5389
http://en.wikipedia.org/wiki/Network_address_translation
蜂窩網絡採用大規模NAT。只有三種方式來解決它。
請勿使用蜂窩網絡或使用連接到蜂窩網絡的家庭/ Wifi。
獲取TURN服務器。
使用多UDP穿孔(高級技術)。對於多UDP打孔,請嘗試: https://drive.google.com/file/d/0B1IimJ20gG0SY2NvaE4wRVVMbG8/view?usp=sharing
我真的想知道這是否僅適用於iPhone。我的猜測是否定的,因爲你必須以某種方式控制每個iPhone的本地網絡,但我不確定。 – Skyler
每個iPhone的局域網都是提供商的網絡從英國電信,沃達豐這樣的例子說。這個局域網將爲每個iPhone提供IP地址,而且IP是本地到他們的網絡。但是當談到兩個iPhone之間的通信時,網絡之間像VOdafone和英國電信他們將使用一些公共IP。這是我的想法不確定它。如果你能澄清「莫名其妙地能夠控制每個iPhone的本地網絡」比它容易理解你的問題 –
是的。我認爲問題是每個手機只能獲得另一部手機的公共IP。我不認爲有可能通過3G獲得IP本地IP地址而不知道每個電話所處的網絡,並且自從Vodafone,Telecom,AT&T或Singtel控制該網絡以來,我認爲它不是可能。我想知道是否有可能沒有本地IP電話,或訪問該網絡來查找IP地址。 – Skyler