| Network Guide From release v.42.1 on eMule features two different networks – the
classic server based eD2k network and a completely new server less
topology based on Kademlia.
 In essence both networks have the same functions. They both provide a
separate means of finding other users or files you are wanting to
download.
 
 
 
  BasicsFile identification
 All files are given a hash value. This hash is a combination of numbers
  and letters to uniquely identify the file. Numerous filenames may be
  associated with a file, but this does not change anything about
  file’s hash value. This allows each user to find all sources to a
  particular file no matter what file name each user has given the
  file.
 In addition, the files are broken into 9.28 MB of parts of data. Each
  part is also given a hash value. For example a 600 MB file would
  contain 65 parts. Each part is then given a hash value. Then the file
  hash is created from these part hashes to be used in the networks.
 
  Identifying other clientsLike the file hash, each user in the network gets a unique and
  permanent user hash. This user identification is highly secured by a
  public / private key handshake to prevent misuse.
 
  Downloading DataIt is important to understand that the actual downloading in eMule is
  not affected by the choice of the network. The network topology is only
  related to searching for files and finding clients that are sources to
  a file.
 Once a source has been found, your client contacts it. The source then
  reserves a queue place for that specific download. When you reach the
  first queue place after a certain waiting time you are entitled for
  receiving data.
 
  Classic server based eD2kConnecting to the network
 The key to this network is the eD2k server. Each client must be
  connected to a server to enter the network.
 When connecting your client to a server, the server checks to see if
  other clients can freely connect to your client. If yes, the server
  assigns your client a so-called high ID. If communication is blocked,
  the server assigns your client a low ID.
 After the ID is assigned, eMule will send a list of all shared files to
  the server. The server adds the filenames and hash values you sent to
  its database.
 
  Searching for filesOnce connected to the network, the client can search for keywords in
  filenames. A search can either be local or global. If it’s a
  local search (searches only the server you are connected to), searches
  are quicker but will have fewer results. If the search is a global
  search (searches all the servers within the network), it will take
  longer but have more results. Each server looks up the keyword in its
  local database and returns any file names (with the hash value) that
  matches the keyword.
 
  Finding sources for filesDownloads can be added by eMule’s search function or a special
  eD2k link format offered on many websites.
 Once they are in the Download list, eMule first queries the local
  (connected) server then all other servers in the network for sources to
  that particular download. The server looks up the file’s hash
  value in its database and returns the clients it knows for having
  it.
 Sources are other clients who have at least downloaded one entire part
  (9.28 MB) of the file matching the hash.
 
  Kademlia serverless networkConnecting to the network
 The only thing needed to connect to this network is the IP and port of
  any eMule client already connected. This is called a Boot Strap.
 Once a client is in the network, the client then requests for other
  clients to determine if it can be contacted freely. This process is
  very similar to the HighID/LowID check on the servers. If you can be
  freely contacted, you are assigned an ID (similar to a HighID) and
  given an open status. If you are not freely contacted, you are
  given a firewalled status. From version v.44a on, the Kademlia
  network supports a Buddy for firewalled users. Buddies are
  other Kademlia clients who have status open and work as a
  relay for connections, that the firewalled user cannot manage.
 
  Searching in KademliaIn this network it does not matter what you search for. Be it a search
  for filenames, for sources of a download or for other users, all work
  pretty much the same.
 There are no servers to keep track of clients and the files they share
  so it has to be done by each participating client in the network
  – in essence, every client is also a small server.
 Since every client is identified by a unique hash value, the idea of
  Kademlia is to associate a certain “responsibility” based
  on this hash. Each client in the Kademlia network works as a server for
  certain keywords or sources. The client's hash determines the specific
  keywords or sources.
 So the goal of any kind of search is to find those clients that have
  the responsibility for the current search topic. This is accomplished
  by a complex calculation of the possible distance to the target client
  by asking other clients for the shortest route to it.
 
  SummaryLast Update: 2004-09-12, MonkBoth networks have totally different concepts for achieving the same:
  Searching for files and finding sources to a file. The main goal of the
  Kademlia network is to be independent of servers and improve
  scalability. Servers can only handle a certain amount of users and
  should a large server go down the network is severely handicapped.
 Kademlia is self-organising and tunes itself for best possible
  performance depending on the number of users and their connection
  qualities. Therefore, it is more resistant to a large-scale network
  loss.
 |