TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Peer-to-Peer Communication Across Network Address Translators (2005)

28 点作者 vecio超过 10 年前

3 条评论

gear54rus超过 10 年前
So basically here I am, opening a connection to the publicly accessible S. The router sees it and says <i>oh wow, there&#x27;s an out going connection to S_IP:S_PORT, I&#x27;ll assign an R_PORT to it on my publicly visible side and will forward all traffic from S_IP:S_PORT to my internal network client</i>.<p>But how does that help someone who is not S (has a different IP than S) to use this tunnel set up by router? It (R - router on the NAT) won&#x27;t ignore the source IP of incoming packets (since two connections are the same only if source and destination IPs and ports are the same - 4 numbers), will it? Traffic coming from S will get forwarded, that I get, but will traffic from ANY source just coming to the appropriate port on R get forwarded just the same way?<p>Good paper.
评论 #8623766 未加载
abcd_f超过 10 年前
It&#x27;s a good paper for anyone starting up with the NAT traversal, but it missed few things even when it first came out, so just make sure to read more on the subject if you&#x27;re actually implementing the UDP&#x2F;TCP punching.
zackmorris超过 10 年前
I spent 2 years on a cross platform p2p protocol with features borrowed from GameCom, RakNet, Zoidcom and the Torque Network Library (TNL). I failed, largely due to the complexity of overcoming NAT. This was before ZeroMQ and other libs made it easy to emulate TCP traffic on top of UDP (which IMHO is the way it should have worked in the first place).<p>What concerns me most is that IPv6 supports NAT and so I have a feeling that we will be living with it for decades to come (effectively making large swaths of the population second class citizens, as they will perceive the internet as download-only).<p>Does anyone know of a library that universally overcomes NAT, using STUN&#x2F;UPnP&#x2F;NAT-PMP and other techniques where necessary? Ideally it would work by handling the handshake and return a standard UDP port that &quot;just works&quot;, giving the app a globally accessible public port.