Skype 协议和超级节点
Posted
技术标签:
【中文标题】Skype 协议和超级节点【英文标题】:Skype protocol and supernodes 【发布时间】:2011-10-01 21:01:07 【问题描述】:我有一个关于 Skype 协议的问题。 据说,根据wiki,Skype中的超级节点用于UDP打孔。超级节点是没有防火墙/NAT 的节点。
我的问题是,这如何可靠?绝大多数互联网用户不是在NAT后面吗?
如果我要使用这种技术创建一个 P2P 应用程序,如果没有没有防火墙的对等点会发生什么?我不明白你如何启动一个依赖于最终会有一些对等点没有 NAT 的应用程序
谢谢
【问题讨论】:
【参考方案1】:阅读libjingle 上的论文,讨论STUN 等服务。当双方都在 NAT 后面时,通常需要外部服务来中继或协助在一侧或另一侧打孔。
http://code.google.com/apis/talk/libjingle/important_concepts.html
【讨论】:
【参考方案2】:我无法具体评论 Skype,但我对此有一些经验 (http://wiki.squeak.org/squeak/5629)。我们称我们的超级节点为“友好的大巨人”或 BFG :)。
超级节点背后的想法是,虽然您希望它们出现在网络中,为新用户提供更多 NAT 打孔的选择,但作为 p2p 网络运营商,您自己提供了一个最小的集合(可能只是一两台机器,它们只是初始打孔所需要的,实际流量无论如何都会直接重新路由)。据我所知,Skype 也是这样做的——他们自己运行最少的超级节点集。
今年早些时候 Skype 出现问题时,很多人试图重新连接,因此超级节点超载,导致多米诺骨牌效应。 Skype 添加了超级节点,但当时尝试重新连接的人数如此之多,以至于网络重建需要很长时间。这很有趣——我们在上面的项目中也有这种情况——P2P 网络可以非常有弹性,直到它被推到某个边缘并且整个事情都崩溃了。
[免责声明:我为 Skype 的前所有者 eBay 工作,但这是我个人的观点,基于公开信息]
【讨论】:
以上是关于Skype 协议和超级节点的主要内容,如果未能解决你的问题,请参考以下文章
Windows Server Failover Cluster 使用的协议和端口
java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC