Da liberação v.42.1 o eMule destaca duas redes diferentes- o servidor
clássico baseado na rede eD2k e uma topologia completamente nova sem servidor
baseado no Kademlia.
Em essência ambas as redes têm as mesmas funções. Ambas fornecem
meios diferentes de descobrir outros usuários ou arquivos que
você está querendo baixar.
Básicos
Identificação do arquivo
A todos os arquivos é dado um valor de hash. Este hash é uma combinação de
números e letras para unicamente identificar o arquivo. Numerosos Nomes de
Arquivos podem ser associados com um arquivo, mas isto não muda nada sobre o
valor de hash do arquivo. Isto permite a cada usuário encontrar todas as fontes
para um arquivo em particular não importando que nome cada usuário tenha dado ao
arquivo.
Em adição, os arquivos são quebrados em partes de dados de 9.28 MB. A cada
parte é também dado um valor de hash. Por exemplo um arquivo de 600 MB pode
conter 65 partes. A cada parte é então dado um valor de hash. Então o hash do
arquivo é criado destes hashes de parte para ser utilizado nas redes.
Identificando outros clientes
Tal como o hash de arquivo, cada usuário na rede obtém um hash de usuário
permanente e único. Esta identificação de usuário é
altamente assegurada por uma chave pública / particular para
prevenir má utilização.
Baixando Dados
Isto é importante para compreender que o download atual no eMule não é afetado
pela escolha da rede. A topologia de rede é unicamente relacionada a pesquisar
por arquivos e descobrir clientes que são fontes para um arquivo.
Uma vez que uma fonte tenha sido encontrada, seu cliente contata ela. A fonte
então reserva um lugar na fila para aquele download
especÃfico. Quando você alcançar o primeiro lugar da fila
depois de uma certa espera você é intitulado para receber
dados.
Servidor Clássico baseado no eD2k
Conectando à rede
A chave para esta rede é o servidor eD2k. Cada cliente deve conectar a um
servidor para entrar na rede.
Quando conectando seu cliente a um servidor, o servidor checa para ver se
outros clientes podem livremente conectar a seu cliente. Se sim, o servidor
designa a seu cliente uma assim-chamada ID alta. Se a comunicação for bloqueada,
o servidor designa a seu cliente uma ID baixa.
Depois que a ID é designada, o eMule enviará uma lista de todos os arquivos
compartilhado ao servidor. O servidor soma os nomes de arquivos e valores de
hash que você enviou para seu banco de dados.
Procurando por arquivos
Uma vez conectado à rede, o cliente pode pesquisar por palavras-chave em nomes
de arquivos. Uma pesquisa pode ser global ou local. Se for uma pesquisa local
(pesquisa somente o servidor em que você está conectado), será mais rápido mas
irá ter menos resultados. Se a pesquisa for uma pesquisa global (pesquisa todo
os servidores dentro da rede), isto tomará mais tempo mas terá mais resultados.
Cada servidor verifica a palavra-chave em seu banco de dados local e retorna
quaisquer nomes de arquivo (com o valor de hash) que combinar com a
palavra-chave.
Descobrindo fontes para arquivos
Downloads podem ser adicionados pela função pesquisa do eMule ou um formato
especial de link eD2k oferecido em muitos web sites.
Uma vez que eles estejam na lista de downloads, o eMule primeiro pergunta aos
servidores locais (conectados) e então a todos os outros servidores na rede para
fontes para aqueles downloads. O servidor procura pelo valor de hash do arquivo
em seu banco de dados e retorna os clientes que ele sabe ter estes arquivos.
Fontes são outros clientes que tem pelo menos uma parte inteira (9.28 MB) do
arquivo combinando com o hash.
Rede sem servidor do Kademlia
Conectando à rede
A única coisa necessária para conectar a esta rede é o IP e porta de qualquer
cliente do eMule já conectado. Isto é chamado de Boot Strap.
Uma vez que um cliente esteja na rede, o cliente então solicita a outros
clientes para determinar se ele pode ser contatado livremente. Este processo é
muito parecido à checagem ID Alta/ID baixa nos servidores. Se você pode ser
contatado livremente, a você é designado uma ID (parecida com uma ID Alta) e
dado um status "abre". Se você não pode ser livremente contatado, a você é dado
um status "firewallado". Atualmente, usuários firewallados não são
suportados e você então precisa conectar a um servidor.
Suporte a firewall vai ser adicionado mais tarde.
Procurando no Kademlia
Nesta rede não importa o que você pesquisa. Seja uma pesquisa por nomes de
arquivos, por fontes de um download ou por outros usuários, todo trabalho é
quase o mesmo.
Não há servidores para guardar trilha de clientes e os arquivos que eles
compartilham assim isto tem que ser feito por cada cliente participante da rede-
em essência, todo cliente é também um pequeno servidor.
Já que todo cliente é identificado por um valor de hash único, a idéia do
Kademlia é associar uma certa "responsabilidade" baseada neste hash. Cada
cliente na rede do Kademlia trabalha como um servidor para certas palavras-chave
ou fontes. O hash do cliente determina as palavras-chave especÃficas ou fontes.
Assim a meta de qualquer tipo de pesquisa é encontrar aqueles
clientes que têm a responsabilidade do tópico de pesquisa
atual. Isto é efetuado por um cálculo complexo da distância
possÃvel ao cliente alvo perguntando a outros clientes a
rota mais curta para isto.
Resumo
Ambas as redes têm um conceito totalmente diferente para alcançar o mesmo:
Pesquisar por arquivos e descobrir fontes para um arquivo. A meta principal da
rede do Kademlia é ser independente de servidores e melhorar a escalabilidade.
Servidores podem tratar somente uma certa quantia de usuários e um servidor
grande deixar de funcionar na rede é severamente limitado.
O Kademlia é auto-organizado e direciona a si mesmo para a
melhor performance possÃvel contando com o número de
usuários e suas qualidades de conexão. Portanto, isto é mais
resistência para uma rede em larga-escala.
Aplicar à versão: .42a+
Última
Atualização: 2004-02-27, Monk