从一个 Joel的后在副驾驶:

直接连接!我们一直在做 我们的一切可能确保 雾溪副驾驶员可以连接在任何 网络的情况,不管是什么 防火墙或Nat。要 做到这一点,双方都使 出站连接到我们的服务器, 其中继业务上代表他们。那么,在许多情况下,这不是 必要的。所以2.0版本 东西而不是聪明:它设定了 最初的连接,通过我们的 服务器,所以你得到连接,正确的 离100%的可靠性。但是然后 一旦你们都是连接的,悄悄地, 在该背景下,寻找一种方式 做一个直接连接。如果不能, 没有什么大交易:你只要保持中转 通过我们的服务器。如果你可以做一个 直接对等的连接, 悄悄转移到你的数据 直接连接。你不会注意 任何东西除外,也许更快 通信。

他们怎么改变服务器的连接P2P连接?

有帮助吗?

解决方案

这是非常棘手和有趣的。我肯定有一些详细信息是错误的,但概述是这样的:

该方案已经可以互相交谈过的Joel的服务器,以便他们可以彼此交换信息和Joel的服务器。另外,乔伊有他们的外部IP地址,并且他们给乔尔的信息有关他们内部的IP地址。

他们决定要试试这个打孔的技术。计算机发起的TCP连接计算机的使用B的外部IP地址。它不会经过的,但它所做的是说是一个路由器,它需要允许进入的包从B上给出口。

计算机B不一样的事情,但是它的消息得到通过,因为一个路由器打开了一个口/ip组合相匹配什么B发(有些港口,在这里-这不是琐碎的,但是是可行的).

B的路由器记得,B启动了一个连接有一个给出口和知识产权所有的分组现在流入B过去他们的路由器正确。

所以它实际上是相当直截了当,但实施有详细信息,特别是关于如何港口都给予新的TCP连接,以及如何NAT路由器 通常 处理TCP请求以及他们如何地图以外的港口。这些细节是有趣的,和困难,位。

-亚当

其他提示

有一种叫做"打孔"工作以及与"锥"NAT(锥体是一个技术性的家庭的路由器)。那不是100%确定的技术,今天,它可以与UDP上的约80%的路由器。

有一些实现的图书馆,以实现打孔: 眩晕 (维基百科)

我认为简单的版本,他们的服务器连接以及更换P2P连接。

沿线的东西:

  1. Machine1连接到副驾驶的服务器。
  2. Machine1连接到副驾驶的服务器。
  3. Machine1连接到副驾驶的服务器。
  4. Machine2随后连接,他们开始画面共享。
  5. Machine2打开了一个港口用于Machine1连接。
  6. Machine1尝试连接到现在的开口在Machine2.

如果这种连接建立:

  1. 连接到副驾驶的服务器被切断。
  2. 数据,而不是转移过来的直接(P2P)之间的连接两个机。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top