如何在没有公共IP的两台计算机之间建立cconnection

时间:2017-05-19 06:11:46

标签: networking

我正在学习python套接字。如果我有一台带有公共IP的服务器,我的计算机和服务器可以轻松地使用TCP连接。但是,如果不同局域网中的两台计算机没有公共IP,我该如何连接它们呢?

1 个答案:

答案 0 :(得分:1)

简短回答是"使用NAT遍历技术"。

答案很长。

这里的主要问题是:

  • 建立连接时,您真的不知道要连接的IP地址。
  • NAT并不像你期望的那样工作(密切地址转换绑定,不接受从某些意外地址发送的数据包等)。

第一个问题可以通过所谓的STUN服务器解决,它可以为您提供公共IP地址。

第二个问题更复杂,一般情况下无法使用公共IP地址的服务器解决。你可以看看" Interactive Connectivity Establishment"规范,以查看在VOIP系统中如何解决此问题的示例。

简而言之,您可以尝试使用STUN协议获取的公共地址,但如果它不起作用,您需要使用公共IP回退到服务器(如TURN服务器)