首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BitTorrent协议无法获得对我的请求的答案

BitTorrent协议无法获得对我的请求的答案
EN

Stack Overflow用户
提问于 2014-12-05 12:42:21
回答 1查看 404关注 0票数 0

我正在开发一个BitTorrent客户端,很难获得对我的文章请求的答案。

为了进行调试,我使用Wireshark跟踪了uTorrent和传输之间的对话,并试图在我的客户端模拟相同的会话。但还是没用。

下面是我的客户和传输之间发生的一个例子。(我的客户端还使用了-TR---前缀的对等id,这只是为了测试目的,我将修改这个)

缩进消息来自传输,其他消息是我的客户端发送的。

请注意,这段对话与uTorrent和传输的方式不完全相同,因为我的客户端还不支持快速扩展。(最佳环保计划6)

(输出来自Wireshark,以--开头的行是我的评论)

代码语言:javascript
复制
00000000  13 42 69 74 54 6f 72 72  65 6e 74 20 70 72 6f 74 .BitTorr ent prot

00000010  6f 63 6f 6c 00 00 00 00  00 10 00 00 f8 9e 0d fd ocol.... ........

00000020  9c fc a8 52 d9 7a d6 af  a4 4d 8f 73 ce 70 b6 36 ...R.z.. .M.s.p.6

00000030  2d 54 52 32 38 34 30 2d  36 68 61 67 76 30 73 70 -TR2840- 6hagv0sp

00000040  34 67 37 6b                                      4g7k
-- ^ my handshake to transmission

    00000000  13 42 69 74 54 6f 72 72  65 6e 74 20 70 72 6f 74 .BitTorr ent prot

    00000010  6f 63 6f 6c 00 00 00 00  00 10 00 04 f8 9e 0d fd ocol.... ........

    00000020  9c fc a8 52 d9 7a d6 af  a4 4d 8f 73 ce 70 b6 36 ...R.z.. .M.s.p.6

    00000030  2d 54 52 32 38 34 30 2d  72 73 35 68 71 67 32 68 -TR2840- rs5hqg2h

    00000040  6e 70 68 64                                      nphd
    -- ^ transmission answers to my handshake

00000044  00 00 00 1a 14 00 64 31  3a 6d 64 31 31 3a 75 74 ......d1 :md11:ut

00000054  5f 6d 65 74 61 64 61 74  61 69 33 65 65 65       _metadat ai3eee
    -- ^ my extended handshake to transmission

    00000044  00 00 00 72 14 00 64 31  3a 65 69 31 65 31 3a 6d ...r..d1 :ei1e1:m

    00000054  64 31 31 3a 75 74 5f 6d  65 74 61 64 61 74 61 69 d11:ut_m etadatai

    00000064  33 65 65 31 33 3a 6d 65  74 61 64 61 74 61 5f 73 3ee13:me tadata_s

    00000074  69 7a 65 69 31 34 37 65  31 3a 70 69 35 31 34 31 izei147e 1:pi5141

    00000084  33 65 34 3a 72 65 71 71  69 35 31 32 65 31 31 3a 3e4:reqq i512e11:

    00000094  75 70 6c 6f 61 64 5f 6f  6e 6c 79 69 31 65 31 3a upload_o nlyi1e1:

    000000A4  76 31 37 3a 54 72 61 6e  73 6d 69 73 73 69 6f 6e v17:Tran smission

    000000B4  20 32 2e 38 34 65 00 00  00 02 05 80              2.84e.. ....
    -- ^ transmission's extended handshake and bitfield

    000000C0  00 00 00 01 01                                   .....
    -- ^ transmission unchokes me

00000062  00 00 00 01 02                                   .....
-- ^ my interested message

00000067  00 00 00 0d 06 00 00 00  00 00 00 00 00 00 00 40 ........ .......@

00000077  00                                               .
-- ^ piece request

-- no answers ...

00000078  00 00 00 0d 06 00 00 00  00 00 00 00 00 00 00 40 ........ .......@

00000088  00                                               .
-- ^ piece request again, with 10 seconds interval

-- again no answers...

00000089  00 00 00 0d 06 00 00 00  00 00 00 00 00 00 00 40 ........ .......@

00000099  00                                               .
-- ^ piece request again, with 10 seconds interval

-- no answers...

知道我做错什么了吗?

谢谢。

编辑:我更新了我的客户发送unchoke刚刚发送interested,但我仍然有同样的问题.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-09 12:02:06

问题是,我要求的是一个比洪流的总大小更大的部分。

我使用的洪流有2个文件,总共有12 of。然而,洪流的块大小是16 KB,而我请求的是16 KB的片段,尽管torrent文件只有一个片段,总共只有12 KB。

在请求12 of而不是16 of后,问题得到了解决。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27316153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档