我正在尝试用python编写一个bittorrent客户机(用于我自己的学习)。我的代码正在向UDP跟踪器发送请求,但是我收到了一些奇怪的响应,这些响应对我来说毫无意义。我使用tcpdump
查看原始数据包,似乎跟踪器正在改变其响应的字节顺序。有时它们看起来像是大端顺序(这是我所期望的),但是错误响应似乎部分是以小端顺序排列的。我知道这听起来很疯狂,所以我怀疑我一定是错过了什么,但我一辈子都搞不清是什么。在
下面是一个很好的回答:
11:57:50.676956 IP 31.172.63.252.80 > 192.168.1.4.52404: UDP, length 20
0x0000: 4500 0030 0000 4000 3011 2969 1fac 3ffc E..0..@.0.)i..?.
0x0010: c0a8 0104 0050 ccb4 001c bf4e 0000 0002 .....P.....N....
0x0020: 2134 0ba3 0000 1ebf 0000 000a 0000 066c !4.............l
您可以在第三行末尾看到,action
字段等于000 0002
,这是协议中预期的按大端顺序排列的“scrape/success”值。在
事情变得奇怪了:
^{pr2}$这似乎是一条错误消息,根据协议规范,action
字段应该具有值3
,按大端顺序应该是0000 0003
。但是这个响应给出的是0300 0000
,它是3
的小端顺序。在
这让我很困惑,我希望有比我聪明的人能帮我弄清楚到底发生了什么。在
编辑:这是我参考的两个站点:official docs和文档引用的another site。在
目前没有回答
相关问题 更多 >
编程相关推荐