The eMule Protocol Specification
Yoram Kulbak and Danny Bickson
Email: {yorkol,daniel51}@cs.huji.ac.il
Academic supervisor: Prof. Scott Kirkpatrick
DANSS (Distributed Algorithms, Networking and Secure Systems) Lab
School of Computer Science and Engineering
The Hebrew University of Jerusalem, Jerusalem
January 17, 2005
Contents
1 Introduction
4
1.1 Purpose and scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2.1 Client to server connection
. . . . . . . . . . . . . . . . . . . . . . . .
4
1.2.2 Client to client connection . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.3 Client ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.4 User ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.5 File ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.5.1 File hash
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.5.2 Root hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.6
eMule protocol extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.7 Soft and hard limits
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2 Client server TCP Communication
9
2.1 Connection establishment . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.2 Connection startup message exchange
. . . . . . . . . . . . . . . . . . . . . .
11
2.3 File search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4 Callback mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3 Client server UDP Communication
14
3.1 Server keep alive and status information . . . . . . . . . . . . . . . . . . . . .
14
3.2 Enhanced file search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.3 Enhanced file-source searches . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
4 Client to C