2013-07-21 51 views
2

我想知道是否有可能通过应用程序实现一个只有Javascript的NAT冲床。它应该能够在浏览器中运行。是否只有Javascript才能穿透NAT?

我正在寻找一种解决方案,允许P2P连接通过。服务器也将在那里,但仅用于在对等体之间进行介绍并交换IP地址和端口。

如果可能的话,它是否只有UDP(读取UDP穿透NAT更容易)还是TCP连接也可能?

回答

1

您可以。我为npm打包了一个stun服务器和客户端(https://npmjs.org/package/stunsrv)。我没有真正记录客户端的事情,但它仍然存在。除此之外,还有其他几个客户端软件包可用。

编辑: WebRTC可能是你也有兴趣在看着https://github.com/webRTC

+0

嘿,谢谢你的回答。你知道TCP有任何解决方案吗? – kapad

+0

不确定,但以编程方式进行三次握手并不可怕,如果这就是您想要的所有TCP之外的情况。 – keyneom

+0

不只是一个三方握手。我想用这个文件传输。不仅仅是语音或视频,其中UPD很好,并且允许少量的数据包丢失。如果TCP非常困难,那么选择是在开始传输之前交换描述文件。 – kapad

1

TCP打孔是可能的,但它取决于两个因素之一是基于OS的NAT和NAT硬件。那两个也需要支持。根据以下文章,UDP打孔支持82%,TCP打孔仅支持64%。你也可以在这篇文章中找到技术..一切顺利。 http://www.brynosaurus.com/pub/net/p2pnat/

+0

伟大的文章。谢谢! – kapad