0

比如说,我在防火墙、路由器等后面有两台计算机(即没有传入连接)。有什么方法可以通过 TCP/UDP 协议将两者连接起来,而无需通过某处的特殊服务器?我知道 Skype 会做类似的事情,也许并不完全如此。

谢谢。

4

4 回答 4

3

这篇 heise-article解释了 Skype 如何使用 UDP 打孔来使 2 个 NAT 防火墙实例相互连接。

尽管如此,您需要一个外部服务器来进行初始连接信息交换,但您不必通过该特殊服务器进行更多路由。

于 2009-07-02T08:06:23.913 回答
1

虽然我自己从未使用过它,但我相信这是 UPnP 提供的,假设在玩游戏的方式中有防火墙和路由器:

http://en.wikipedia.org/wiki/Universal_Plug_and_Play

请参阅 NAT 穿越部分。

编辑:

维基百科有一整页关于 NAT Traversal:

http://en.wikipedia.org/wiki/NAT_traversal
于 2009-07-02T08:00:21.087 回答
1

您将不得不使用P2P

于 2009-07-02T08:02:57.943 回答
1

是的,这通常称为“发夹网络地址转换”,通常在进行地址转换的设备上实现。正如其他一些评论所暗示的那样,这与 NAT 遍历或打孔并不完全相同。您正试图让同一 NAT 后面的两台主机相互通信。

我将查看下面的链接以查看各种 NAT 实现并决定哪个选项适合您。这是给您的图表和链接:

在此处输入图像描述

http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_7-3/anatomy.html

如果您需要在客户端软件上实现此功能,您可能需要研究类似 avahi 或其他“zeroconf”选项来发现本地安装。

http://en.wikipedia.org/wiki/Avahi_(software)

于 2009-07-03T01:16:41.933 回答