没有合适的资源?快使用搜索试试~ 我知道了~
Emule Kad协议手册Emule Kad协议手册Emule Kad协议手册Emule Kad协议手册Emule Kad协议手册Emule Kad协议手册
资源推荐
资源详情
资源评论
Emule Kad 协议手册
文档编写:kernel,huby
版权所有: emuledev@verycd.com
一、概述.............................................................................................................................................3
二、协议参数分析.............................................................................................................................3
2.1 BootStrap Req/Res................................................................................................................3
2.2 Hello Req/Res.......................................................................................................................4
2.3 Kad Req/Res..........................................................................................................................5
2.4 Kad Search/Publish Req/Res................................................................................................6
2.5 Kad Firewalled Req/Res.......................................................................................................7
2.6 Kad FindBuddy Req/Res......................................................................................................7
2.7 kad Callback Req..................................................................................................................7
三、KAD Search Action.....................................................................................................................8
3.1、SendFindValue...................................................................................................................8
3.2、StorePackt...........................................................................................................................9
3.2.1 GetInfo 相关协议:..................................................................................................9
3.2.2 Publish 相关协议:...................................................................................................9
四、Emule Buddy 机制分析............................................................................................................10
4.1 网络协议包序列图:.........................................................................................................11
附录 2(Question List):....................................................................................................................15
一、概述
Kad 使用 UDP 协议,通过 eMule 软件的 UDP 端口发送和接收数据
这个宏定义了我能够接受的 KAD 最高版本
#dene KADEMLIA_VERSION 0x02
在 ed2k 协议里面被使用
CUpDownClient::SendHelloTypePacket
Kad 版本:分为 1.0 和 2.0
区别:使用两套独立的 opcode
从 2.0 开始具有可扩展性,将版本信息写入协议,日后的扩展不再需要修改 opcode
0.47a 默认使用的版本为 Kad1.0,但是支持 2.0
0.47c 没有测试过
KAD 协议基本上是成对的一个 REQ(Request)就有一个对应的 RES(Respone)
所有具有 KAD 头的包,(有些可能是压缩的),最终被送到 Kademlia::Process 中处理
Process 处理各种不同的 opcode 并将这些数据送到对应的处理函数,在 REQ 消息的处理函
数中,解析发送过来的数据,并且构造 RES 数据包并发送出去
二、协议参数分析
2.1 BootStrap Req/Res
0x00 KADEMLIA_BOOTSTRAP_REQ
发送请求,这个时候急需扩大自己的 KAD 网络
总共发送 25B, 参照 CKademliaUDPListener::SendMyDetails
16B The sender Kad ID
4B The sender IP
2B The sender UDP Port
2B The sender TCP Port
1B 0
0x08 KADEMLIA_BOOTSTRAP_RES
Packet Param: 返回 20 个 Peer 信息+自己的信息
KADEMLIA2_BOOTSTRAP_REQ
KADEMLIA2_BOOTSTRAP_RES
2.2 Hello Req/Res
0x10 KADEMLIA_HELLO_REQ
总共发送 2B+25B, 参照 CKademliaUDPListener::SendMyDetails
1B OP_KADEMLIAHEADER
1B byOpcode
16B The sender Kad ID
4B The sender IP
2B The sender UDP Port
2B The sender TCP Port
1B 0
0x18 KADEMLIA_HELLO_RES
回应 KADEMLIA_HELLO_REQ,协议包格式和 KADEMLIA_HELLO_REQ 一样
KADEMLIA2_HELLO_REQ
参照 CKademliaUDPListener::SendMyDetails
1B OP_KADEMLIAHEADER
1B byOpcode
16B The Sender KadId
2B The sender UDP Port
1B KADEMLIA_VERSION
1B Tag Count(2)
1B+32B TAG_USER_COUNT(uint32)
1B+32B TAG_FILE_COUNT(uint32)
KADEMLIA2_HELLO_RES
回应 KADEMLIA2_HELLO_REQ,协议包格式和 KADEMLIA2_HELLO_REQ 一样
我们可以看到,在 2.0 版本中,KadHello 交换数据包括了自己 Kad 中已知的用户数和文件
剩余16页未读,继续阅读
资源评论
0Ru1e
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功