洪流握手响应大于68个字节

时间:2018-10-29 17:28:59

标签: protocols bittorrent handshake peer torrent

我正在尝试使用bit torrent协议创建自己的Torrent客户端。我目前处于可以从跟踪器获取对等方列表并获取对等方的IP和端口的阶段。

我将握手消息发送给对等方后,问题开始了。我已按照说明进行操作,并发送了一个68字节的握手消息,其中包含哈希,客户端ID等。

我从同级收到370个字节的响应,而不是预期的68个字节的握手。当我解析响应的前68个字节时,它类似于握手响应。它具有相同的哈希值,客户端ID等。但是我不知道其余的302个字节是什么。这正常吗?

是否有任何文档可以清楚地说明这一点?我找不到任何信息可以帮助解决这种情况。至少可以说比特流协议规范很模糊。

这是我收到的转换为字符串的响应

\u0013BitTorrent protocol\0\0\0\0\0\u0010\0\u00051O???6H*\u00118$??U\r*?:?d-UT354S-X?\u001b\u0001???rwQ\t?\0\0\0R\u0005?????????????????????????????????????\u07ff??????????????????????????????????????????\0\0\0\u0005\u0004\0\0\u0002\"\0\0\0\u0005\u0004\0\0\0T\0\0\0\u0005\u0004\0\0\0?\0\0\0\u0005\u0004\0\0\0?\0\0\0\u0005\u0004\0\0\0?\0\0\0\u0005\u0004\0\0\05\0\0\0\u0005\u0004\0\0\0\t\0\0\0\u0005\u0004\0\0\u0001Z\0\0\0\u0005\u0004\0\0\u00025\0\0\0\u0005\u0004\0\0\u0001*\0\0\0\u0005\u0004\0\0\0y\0\0\0\u0005\u0004\0\0\u0001I\0\0\0\u0005\u0004\0\0\u0002G\0\0\0\u0005\u0004\0\0\u0001?\0\0\0\u0005\u0004\0\0\0\u0001\0\0\0\u0005\u0004\0\0\u0002\f\0\0\0\u0005\u0004\0\0\u0001?\0\0\0\u0005\u0004\0\0\0?\0\0\0\u0005\u0004\0\0\0?\0\0\0\u0005\u0004\0\0\u00011\0\0\0\u0005\u0004\0\0\u0001W\0\0\0\u0005\u0004\0\0\0\u0016\0\0\0\u0005\u0004\0\0\0?\0\0\0\u0005\u0004\0\0\u0001?

前68个字节是我所期望的,其余302个字节我不知道

1 个答案:

答案 0 :(得分:1)

我现在已经意识到这些多余的字节是什么。

它们是位域,并且有多个消息!我的问题是没有意识到握手后可以立即发送此信息