我想知道是否有可能通过应用程序实现一个只有Javascript的NAT冲床。它应该能够在浏览器中运行。是否只有Javascript才能穿透NAT?
我正在寻找一种解决方案,允许P2P连接通过。服务器也将在那里,但仅用于在对等体之间进行介绍并交换IP地址和端口。
如果可能的话,它是否只有UDP(读取UDP穿透NAT更容易)还是TCP连接也可能?
我想知道是否有可能通过应用程序实现一个只有Javascript的NAT冲床。它应该能够在浏览器中运行。是否只有Javascript才能穿透NAT?
我正在寻找一种解决方案,允许P2P连接通过。服务器也将在那里,但仅用于在对等体之间进行介绍并交换IP地址和端口。
如果可能的话,它是否只有UDP(读取UDP穿透NAT更容易)还是TCP连接也可能?
您可以。我为npm打包了一个stun服务器和客户端(https://npmjs.org/package/stunsrv)。我没有真正记录客户端的事情,但它仍然存在。除此之外,还有其他几个客户端软件包可用。
编辑: WebRTC可能是你也有兴趣在看着https://github.com/webRTC。
TCP打孔是可能的,但它取决于两个因素之一是基于OS的NAT和NAT硬件。那两个也需要支持。根据以下文章,UDP打孔支持82%,TCP打孔仅支持64%。你也可以在这篇文章中找到技术..一切顺利。 http://www.brynosaurus.com/pub/net/p2pnat/
伟大的文章。谢谢! – kapad
嘿,谢谢你的回答。你知道TCP有任何解决方案吗? – kapad
不确定,但以编程方式进行三次握手并不可怕,如果这就是您想要的所有TCP之外的情况。 – keyneom
不只是一个三方握手。我想用这个文件传输。不仅仅是语音或视频,其中UPD很好,并且允许少量的数据包丢失。如果TCP非常困难,那么选择是在开始传输之前交换描述文件。 – kapad