当前位置: 首页 > 知识库问答 >
问题:

NAT遍历在像BitTorrent这样的对等协议情况下是如何工作的。

柴瀚昂
2023-03-14

我知道NAT穿越,晕眩,转身,冰和它的使用。我想知道这些是否在像BitTorrent这样的对等文件共享应用程序中实现。追踪者是否通过使用眩晕或通过转接帮助创建直接连接来促进NATs后面的同行之间的通信。在分布式哈希表(DHT)的情况下,一个对等点将如何与NAT后的其他对等点通信?

共有1个答案

司健柏
2023-03-14

BitTorrent不需要连接到群中的任何特定成员,它不是一个p2p聊天协议,在这个协议中,两个特定的endpoint想要相互交谈。它所关心的只是群的连接图具有足够高的连通度。

换句话说,让一个NATs后面的客户机彼此交谈是有点可取的,但不会达到将主要资源(如流量转发)花费在该目标上的地步。失败是一种选择。

因此,它不使用sip/turn/等。

    null

在DHT的情况下,只使用前两点(网关协商和端口重用)。在单个请求-应答周期中尝试nat遍历的开销将>100%,不值得。

 类似资料:
  • 事件处理程序添加到GameGui.java类的GridPane中,从第82行开始。 基本上,我试图找到您在网格窗格中拖动这个对象的任何节点的索引。通过将SetonMouseEnter应用到gridpane中的每个节点,我可以在不拖动的情况下完成这一任务,但是当我试图利用SetonMouseDragEnter时,我什么也没有得到。 有人有办法让这个工作吗? 这些是我应用于GridPane中节点的事件

  • 我正在尝试使用https://github.com/grpc-ecosystem/grpc-gateway但是当我试着跑的时候

  • 这是一个使用合并排序的程序,从1到1000对1000个数字的列表进行排序。它显示原始列表,然后调用递归方法对其进行排序,然后显示。 代码中我不明白的是这两行: 合并排序(数字,低,中);//在方法中,它会说“这里” 合并排序(数字,中间1,高); 我是java的初学者,这与我所学的一切背道而驰,因为我无法理解如何在方法中调用方法。除非它是一个我怀疑的对象。有人能解释一下这两行代码的作用吗?

  • 在具有父子指针的通用树结构中,是否可以在不遍历完整树的情况下遍历叶节点?例如,从最左边的叶节点开始。想法是在深树上进行优化。

  • 问题内容: 我有PK,它是自增密钥。我需要将记录插入数据库中,然后取回该PK并在另一个插入中使用它。 但是,我想在一次交易中做到这一点。那可能吗。这样的想法是,如果我必须执行的任何更新/插入都失败了,那么我可以回滚所有内容,但是我的印象是我需要进行一次提交。 我本来打算先在ado.net上执行此操作,然后切换到存储过程,因为我认为这可能会解决此问题。 SP在这种情况下会帮助我吗? 问题答案: 是的

  • 我创建了龙卷风服务器,它接受python和matlab代码并执行它。这是服务器代码。 我用来访问的客户代码是,这里 我关心的是保持执行的顺序,这样python代码只有在matlab完成后才能执行。我使用jupyter_client来执行matlab/python代码。我在这里使用python27。问题是当我提交代码时,它抛出< code > type error:' NoneType ' obje