eMule协议规范和源码分析

说明:这篇文章原来写在我的另外一个Bolg上面:http://hustlg.bokee.com/6304807.html

由于该网络访问缓慢,现在逐渐把Blog迁移到这里来。

收到不少朋友的邮件需要我发送相应的资料,我已经上传到CSDN的下载频道到,大家用“eMule协议规范和源码分析”搜索就可以随意下载了。

eMule源码分析下载:http://download.csdn.net/source/270548

eMule协议规范【中文版本】:http://download.csdn.net/source/260718

关键词eMule    P2P    TCP    ed2k    KAD                                          

 

最近一直在研究eMule协议,从网上搜集了和整理了一分详细的说明文档,同时写了一分源码分析报告。由于BLOG不支持DOC文件上传,只能提供目录了。

需要的请邮件和我联系

ganghust@hotmail.com

eMULE源码分析 1
1目录结构: 1
2 Src/目录下代码结构 2
3重要的功能子类 2
4TCP和UDP网络通迅过程详细介绍: 6
5eMule中信誉机制的实现 8
6下载如上传任务及队列的详细说明: 8
7 其他辅助功能类的说明: 10
 8 协议通迅过程的主要约定如下: 11
附录 一ED2K通迅报文处理细节: 11
附录二 eMule中KAD网络的说明 15
附录: eMule中内容发布或者搜索 19

eMule协议规范
本文档翻译自:
Yoram Kulbak and Danny Bickson 《The eMule Protocol Specification》
Author: 刘刚 ganghust@gmail.com
eMule协议规范 1
1         简介 3
1.1 目的和范围 3
1.2 概述 4
1.2.1       客户端到服务器的连接 4
1.2.2       客户端到客户端的连接 5
1.3   客户ID 6
1.4   用户ID 7
1.5   文件ID 7
1.5.1       文件哈希 7
1.5.2       根哈希 7
1.6     eMule协议扩展 8
1.7   软件和硬件限制 8
2    客户端服务器的TCP交流 8
2.1    建立连接 8
2.2   连接启动时消息交换 10
2.3文件搜索 12
2.4   回调机制 12
3    客户端服务器的UDP交流 13
3.1 服务器保持连接和状态信息 13
3.2 增强文件搜索 15
3.3 增强文件源搜索 15
4 客户端到客户端的TCP交流 16
4.1 初始的握手 16
4.2 安全的用户身份认证 17
4.2.1 信用系统 17
4.3 请求文件 18
4.3.1 基本消息交换 18
4.3.2 没找到文件的情景 19
4.3.3 加入上传队列 19
4.3.4 上传对列管理 20
4.3.5 到达上传队列的顶部 20
4.4 数据传输 21
4.4.1 数据包 21
4.4.2 数据传输顺序 22
4.4.3 选择块下载 23
4.5 浏览共享的文件和文件夹 24
4.6 交换片哈希集 25
4.7 取得文件预览 26
5   客户端到客户端的UDP连接 26
6附录详细的消息编码格式 28
6.1 一般消息编码要点 28
6.1.1 字节序 28
6.1.2 消息头 28
6.1.3 消息标签 28
6.2 客户端服务器TCP消息 29
6.2.1 登录 29
6.2.2 服务器消息 30
6.2.3 ID改变 31
6.2.4 文件提供 31
6.2.5 获得服务器列表 33
6.2.6 服务器状态 33
6.2.7 服务器列表 34
6.2.8 服务器身份证明 34
6.2.9 搜索请求 35
6.2.10 搜索结果 37
6.2.11 获得源 38
6.2.12 已找到的源 39
6.2.13 回调请求 39
6.2.14 被请求回调 40
6.2.15 回调失败 40
6.2.16 消息被拒绝 41
6.3 客户端服务器UDP消息 41
6.3.1获取源 41
6.3.2 发现的源 42
6.3.3 状态请求 42
6.3.4 状态回应 43
6.3.5 搜索请求 44
6.3.6 搜索回应 44
6.3.7 服务器描述请求 45
6.3.8 服务器描述回应 45
6.4 客户端到客户端TCP消息 45
6.4.1 Hello 46
6.4.2 Hello 回应 47
6.4.3 发送文件块 47
6.4.4 请求文件块 48
6.4.5 下载结束 49
6.4.6 改变客户ID 49
6.4.7 聊天消息 50
6.4.8 块 hashset 请求 51
6.4.9 块 hashset 回应 51
6.4.10 开始上传请求 52
6.4.11 接受上传请求 52
6.4.12 取消传送 53
6.4.13 Out of part requests 53
6.4.14 文件请求 53
6.4.15 文件请求回答 54
6.4.16 找不到文件 55
6.4.17 被请求的文件ID 55
6.4.18 文件状态 56
6.4.19 Change slot 56
6.4.20 队列等级 57
6.4.21 查看共享文件 57
6.4.22 查看共享文件回答 58
6.4.23 查看共享文件夹 58
6.4.24 查看共享文件夹回答 59
6.4.25 查看共享文件夹内容 59
6.4.26 查看共享文件夹内容回答 60
6.4.27 查看共享文件夹或内容拒绝 61
6.5 客户端到客户端TCP扩充消息 61
6.5.1 eMule信息 61
6.5.2 eMule 信息回答 63
6.5.3 发送压缩的文件块 63
6.5.4 队列等级 64
6.5.5 文件信息 65
6.5.6 源请求 65
6.5.7 源回答 66
6.5.8 安全身份认证 67
6.5.9 公匙 67
6.5.10 签名 68
6.5.11 预览请求 69
6.5.12 预览回答 69
6.6 客户端到客户端UDP消息 70
6.6.1 重复询问文件 70
6.6.2 重复询问回应 70
6.6.3 队列满 71
好东西需要大家一起分享:)已经查看的源代码的版本包括:
1。eMule 0.42b VeryCD0229
2。eMule(电骡) v0.45b 源码
3。eMule0.47a-Sources
4。eMule0.47b-Sources
5。eMule-0.47c-VeryCD1215-Src

从低版本到高版本的改进主要是以下几个方面:

(1)Web管理功能的增强;
(2)对服务器探测时间参数的优化;
(3)客户端上传队列的过程进行了优化:排队机制和规则上的修改;
(4)文件缓存cache部分改进;
(5)KAD网络中搜索功能的改进;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值