Udp 未收到Bittorrent片段消息

Udp 未收到Bittorrent片段消息,udp,bittorrent,utorrent,Udp,Bittorrent,Utorrent,基本上,我收到诸如Choke、Unchoke、Have和Bitfield之类的消息,但我没有收到任何片段消息,为什么会这样 我也看到了一些老问题没有回答,但没用 这有几个原因。很可能: 同伴应该知道你的状态,所以确保你发送“感兴趣”、“不感兴趣”、“哽咽”、“未勾选”的消息。同样,您应该跟踪对等状态 你对一个同伴或让你窒息的同伴或两者都不感兴趣。只有当你对一个同伴感兴趣时,你才能要求一件作品,而且同伴不会让你窒息。否则,同行应忽略您的请求 同伴没有你要的东西。在这种情况下,对等方也应该忽略请求

基本上,我收到诸如Choke、Unchoke、Have和Bitfield之类的消息,但我没有收到任何片段消息,为什么会这样


我也看到了一些老问题没有回答,但没用

这有几个原因。很可能:

  • 同伴应该知道你的状态,所以确保你发送“感兴趣”、“不感兴趣”、“哽咽”、“未勾选”的消息。同样,您应该跟踪对等状态
  • 你对一个同伴或让你窒息的同伴或两者都不感兴趣。只有当你对一个同伴感兴趣时,你才能要求一件作品,而且同伴不会让你窒息。否则,同行应忽略您的请求
  • 同伴没有你要的东西。在这种情况下,对等方也应该忽略请求
这都是我的。下面是日志的一部分,它演示了获取第一件物品所需的步骤:

Openning a new session between peers.
Connected to <peer addr>
Handshaked with BitTorrent protocol uTorrent version 2040
Received message: Bitfield 
Update 'peer have' bitfield.
Received message: Have 572
Mark piece 572 as available.
...
... here we receive many Have messages, I skip them
...
Sending message: Interested
Received message: Unchoke
Sending message: Request { piece index = 0, block offset = 0, block length = 16384 }
Received message: Piece { piece index = 0, block offset = 0, block length = 16384 }
...
在对等方之间打开新会话。
连接到
与BitTorrent协议uTorrent版本2040握手
接收到的消息:位字段
更新“peer have”位字段。
收到信息:Have 572
标记件号572(如可用)。
...
... 在这里我们收到很多Have消息,我跳过了它们
...
发送消息:感兴趣
收到消息:取消勾选
发送消息:请求{工件索引=0,块偏移量=0,块长度=16384}
收到消息:工件{工件索引=0,块偏移量=0,块长度=16384}
...
正如您所看到的,您当前的回答是一条消息

然而,在这种情况下,我们很幸运:peer并不总是取消我们的锁定,因为它限制了所谓的“取消锁定插槽”的数量。所以这里有一个提示:使用leecher计数与播种机计数比率较小的swarm。这将使调试变得更容易,因为peer解除我们的锁定的可能性更大