簡體   English   中英

如果我有所有的ip信息,繞過P2P應用程序的NAT?

[英]Getting around NAT for P2P app if I have all ip info?

我正在制作一個P2P安卓應用。 我目前的問題是,我無法讓我的設備識別對方,除非他們在同一個網絡上並使用私有IP地址 - 我將所有公共IP /端口/私有IP地址存儲在數據庫中。

考慮到NAT阻止我的嘗試,我怎么能讓一個人聯系另一個,沒有進入路由器設置和端口轉發,我無法專門選擇從公共IP地址中選擇哪個私有IP ...

我怎么能成功地到達我的同伴設備=]

簡短的回答:你做不到

答案很長:NAT遍歷的問題需要10年以上的工作量,據我所知,沒有其他產品能夠可靠地執行此操作除了skype(skype允許您編寫基本上使用skype作為可靠的P2P連接提供程序,您不必關心,請參閱此處此處 )。 果然,使用skype作為“請給我提供P2P連接”服務提供商將您與專有和無法解決的解決方案聯系起來,因此它不是真正的......解決方案。

現在,還有另外一個問題,只會讓未來幾年內IPv4的NAT遍歷更加艱難:具體來說,互聯網服務提供商將開始推出所謂的“運營商級NAT”(CGN,請參閱此內容 )它使用不同類型的算法進行端口分配,而不是家庭NAT使用(另外,在這之上,你現在將有兩個級聯的NAT來處理)。 簡而言之,沒有超過10人年的開發資源,忘記任何P2P over IPv4。 順便說一下,即使是skype也會屈服於CGN(已經是移動連接的THE NORM,即幾乎沒有剩余的移動運營商為手機提供公共IPv4地址),這就是(最有可能是恕我直言)之所以如此獲得Skype后,MS做的第一件事就是將數千個RELAYS放到適當的位置,以便能夠處理未來幾年在IPv4上建立P2P連接的不可能性,看到這一點 (忘掉MS的回復)在文章的最后,它是BS)

你可以做的是開始學習更多關於IPv6的知識:使用IPv6的事情應該更容易,因為(據稱)將不再有NAT(有一些叫做NPT,但這是一個P2P友好的協議)。 IPv6路由器的問題在於(目前還沒有)端口控制標准協議,但是目前正在制作中,看到這一點 ,所以當這個(或其他)協議將被標准化並由CPE制造商采用時,然后IPv6路由器遍歷將是微不足道的。

因此,無論哪種方式,您現在最好的選擇是在接下來的3到5年內忘記P2P。 不幸...

PS。 另外2個鏈接:1) 是我的項目,相信我,這是一個爛攤子; 2) 野外的CGN

關鍵是如果通過公共互聯網提供某種端口轉發/ NAT,則只能連接到其他節點。 最有可能的是,因為對於每個私有節點(私有,我的意思是私有IP地址在公共IP后面),它仍然訪問互聯網,而這只有在已經存在某些規則時才會發生。 唯一的問題是您是否可以將該規則用於您的應用。

我在上面的評論中提到的鏈接提到了一些常用的技術。

您必須使用STUN和/或UPnP等技術才能通過NAT路由器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM