有防火墙时程序是否通信?

时间:2014-06-08 21:16:13

标签: python networking

当路上有防火墙时,如何让两个程序进行通信?我想要一些类似套接字的东西,但这并不适用于防火墙。如果您必须使用第三方资源,也没关系。我在python中这样做。

1 个答案:

答案 0 :(得分:2)

有两种可能的方式:

1)UPnP / NATPMP / PCP - 这些是由一些(大多数?)路由器实现的协议    更可能的本地网络允许防火墙后面的应用程序交互    在这种情况下,您将数据包(来自两个客户端)发送到各自的路由器    使用上面提到的协议要求端口打开,然后进行通信    定期使用套接字。

2)在某些情况下,NAT遍历是可能的 - 阅读有关STUN服务器和ICE的信息    协议。 - 这在UDP通信中最常见,尽管有时是TCP    也可以通过这种方式在网络中遍历流量 - 最常见的技术是    UDP打孔

3)如果这些都不适用(例如,在大规模网络上使用对称NAT),那么这是唯一的方法    当您通过公开访问传递所有数据时,将是一种TURN方法    服务器

P2P和NAT遍历在SIP,Voip和torrent中很常见,因此,免费库 像VUZE(洪流开源库)可以是一个开始挖掘的好地方......:)