我有一个关于 Skype 协议的问题。据说,根据wiki,Skype中的超级节点用于UDP打孔。超级节点是没有防火墙/NAT 的节点。
我的问题是,这如何可靠?绝大多数互联网用户不是在NAT后面吗?
而且,如果我要使用这种技术创建一个 P2P 应用程序,如果没有没有防火墙的对等点会发生什么?我不明白您如何启动依赖于最终将有一些对等点没有 NAT 的应用程序
谢谢
我有一个关于 Skype 协议的问题。据说,根据wiki,Skype中的超级节点用于UDP打孔。超级节点是没有防火墙/NAT 的节点。
我的问题是,这如何可靠?绝大多数互联网用户不是在NAT后面吗?
而且,如果我要使用这种技术创建一个 P2P 应用程序,如果没有没有防火墙的对等点会发生什么?我不明白您如何启动依赖于最终将有一些对等点没有 NAT 的应用程序
谢谢
阅读libjingle上的论文,讨论STUN等服务。当双方都在 NAT 后面时,通常需要外部服务来中继或协助在一侧或另一侧打孔。
http://code.google.com/apis/talk/libjingle/important_concepts.html
我无法具体评论 Skype,但我对此有一些经验(http://wiki.squeak.org/squeak/5629)。我们称我们的超级节点为“友好的大巨人”或 BFG :)。
超级节点背后的想法是,虽然您希望它们出现在网络中,为新用户提供更多 NAT 打孔的选择,但作为 p2p 网络运营商,您自己提供了一个最小的集合(可能只是一两台机器,它们是只需要初始打孔,实际流量将直接重新路由)。据我所知,Skype 也这样做——他们自己运行最少的超级节点集。
今年早些时候 Skype 出现问题时,很多人试图重新连接,因此超级节点超载,导致多米诺骨牌效应。Skype 增加了超级节点,但当时尝试重新连接的人数如此之多,以至于网络重建需要很长时间。这很有趣——我们在上面的项目中也有这种情况——P2P 网络可以非常有弹性,直到它被推到某个边缘并且整个事情都崩溃了。
[免责声明:我为 Skype 的前所有者 eBay 工作,但这是我个人的观点,基于公开信息]