rede overlay atraves de um algoritmo de roteamento distribuido. Esse algoritmo e implementado sobre a camada de aplicacao, nao tendo nenhuma ligacao com o roteamento implementado pelos roteadores da camada de rede. Atraves desse algoritmo que as requisicoes dos cliente sao roteadas para um hospedeiro que possui o objeto pela qual a requisicao esta enderecada. Os objetos de interesse sao colocados e relocados em qualquer no na rede sem o envolvimento do cliente.O roteamento garante que qualquer no pode acessar qualquer objeto na rede overlay, explorando o conhecimento de cada no na rede para localizar o objeto de destino. Sistemas peer-to-peer geralmente armazenam multiplas replicas de um mesmo objeto para garantir disponibilidade. Dessa forma, o algoritmo de roteamento mantem o minimo de informacao possivel sobre a localizacao de todas as replicas, e envia as requisicoes para o no "vivo" (p.ex. nao falho) mais proximo que mantem uma copia do objeto relevante. Existem basicamente dois tipos de redes sobrepostas: as redes estruturadas e as redes nao-estruturadas. Esses dois tipos de rede sao discutidos extensivamente em.[6]Arquiteturas Peer-to-Peer EstruturadasNuma rede peer-to-peer estruturada, a rede sobreposta e construida atraves de um procedimento deterministico. O procedimento mais utilizado, de longe, e organizar os processos atraves de uma tabela hash distribuida (DHT). Num sistema baseado em DHTs, os dados recebem uma chave aleatoria de um extenso espaco de identificadores, tipicamente um identificador de 128 ou 160 bits. Os nodos da rede tambem recebem um identificador do mesmo espaco. O grande desafio num sistema baseado em DHT e implementar um esquema eficiente e deterministico que mapeia unicamente a chave de um item para o identificador do nodo responsavel pelo item desejado. A partir disso, e possivel retornar o endereco de rede do nodo responsavel pelo item desejado, que pode ser contactado diretamente.Uma tabela hash distribuida.Varias implementacoes e protocolos baseados em DHT foram desenvolvidos. Dentre eles, as mais populares sao o Chord.[7] NodeWiz[8] e um servico de descoberta em grids (GIS) que utiliza uma estrutura de arvores para organizar os seus nos na rede sobreposta. Para tal, cada no na arvore e responsavel por um subespaco do espaco completo dos atributos. Assim, e possivel realizar eficientemente consultas por faixas de valores, ao contrario do que acontece na DHT, onde as consultas se dao por valores exatos.Arquiteturas Peer-to-Peer Nao-EstruturadasSistemas peer-to-peer nao-estruturados geralmente se baseiam em algoritmos aleatorizados para a construcao da rede sobreposta. A ideia principal e que cada no mantenha uma lista de vizinhos, que e construida mais ou menos de forma aleatoria. Da mesma forma, se assume que os dados sao colocados de forma aleatoria nos nodos. Assim, quando um no necessita localizar um item especifico, a unica coisa que pode fazer e inundar a rede com uma busca.[9] Uma desvantagem desse tipo de busca e que consultas podem nao ser respondidas caso o cliente e o hospedeiro estejam muito afastados na rede. Isso acontece, devido a mecanismos que impedem que mensagens se propaguem indefinidamente na rede (p. ex. TTL). Outra desvantagem e que mecanismos de inundacao geralmente causam grande trafico de sinalizacao, o que, muitas vezes, torna esse