eMule
Criado em 2002, o eMule é um cliente da rede eDonkey, na qual os usuários costumavam baixar arquivos muito grandes. Embora a companhia responsável por ela tenha retirado o cliente original, devido a um acordo para evitar um processo por quebra de direitos autorais, a eDonkey ainda vive graças ao eMule, que não é um cliente oficial da rede e que por ser descentralizado, não pode ser desativado.
As versões mais recentes também suportam a rede Kad, uma rede criada pela mesma equipe que criou o eMule, conectada à eDonkey (buscas na Kad também são feitas na eDonkey), que usa um protocolo DHT diferente, chamado Kademlia. Esse DHT faz o hash dos dados do arquivo e do nome. Com isso, mesmo que um nó tenha alterado o nome do arquivo, o Kademlia irá identificá-lo ao fazer uma busca. Além disso, é possível fazer a busca usando outras características do arquivo, como tipo, tamanho, extensão, taxa de transmissão, etc.
Ao
iniciar o eMule, ele tentará se conectar a vários
servidores
simultaneamente, mas estabelecerá a conexão com somente
um, pois
eMule não permite que o cliente se conecte a vários
servidores ao
mesmo tempo ou mude de servidor sem a intervenção do
usuário. O
servidor envia uma identificação de quatro bytes ao
cliente que é
denominada Client ID.
Essa ID será válida enquanto durar a conexão,
que só será
encerrada caso o cliente se desconecte do servidor ou feche o eMule.
O eMule utiliza o download segmentado.
Também inclui uma
opção
para cliente P2P pura, permitindo que um cliente com ‘ID Alta’(uma
conexão com a eDonkey não bloqueada pelo firewall)
continue o
download mesmo que seja desconectado dos servidores (o eMule
não
busca servidores secundários quando desconectado). Essa
opção é
importante, já que ocasionalmente algum servidor é
fechado pela
Justiça.
Clientes com ‘ID Baixa’ são
aqueles que tiveram
seu
acesso dificultado pelo firewall. Embora possam se conectar à
rede,
eles precisam da ajuda dos servidores para serem alcançados por
outros nós. Para isso, o eMule utiliza um sistema onde um
nó com ID
alta pode pedir através do servidor que o cliente com ID baixa
se
conecte a ele para que possam transferir arquivos. Se um cliente que
possui ID alta deseja baixar um arquivo do cliente que possui ID
baixa, estando ambos conectados ao mesmo servidor, o primeiro envia
ao último um pedido para que este faça a conexão.
Em seguida, o
servidor envia o endereço IP do cliente com ID Alta para o
cliente
com ID Baixa através da conexão já existente
entre eles.
Apenas um cliente com ID alta pode fazer um pedido ao servidor para
um cliente de ID baixa. Um cliente de ID baixa não pode fazer o
mesmo pedido para se conectar a outro cliente de ID baixa, pois
não
haveria como conectar ambos sem a ajuda do servidor.
O eMule possui um sistema de créditos para incentivar o compartilhamento de arquivos. Quanto mais arquivos um cliente envia para outros clientes, mais créditos ele ganha e menos tempo ele demorará em suas filas de espera. Apesar de ter taxas mais lentas do que do BitTorrent, por exemplo, a quantidade absurda de arquivos ( mais de 4 bilhões) faz do eMule o cliente P2P mais usado atualmente.