ter a disponibilidade de pontos interligados, e quantos mais recursos houvesse, mais poderosa se tornava essa rede. A Internet foi um claro exemplo e uma explosao de utilizadores.Enquanto as redes cresciam, as aplicacoes P2P desenvolveram-se e a sociedade interessava-se pelo P2P. Aplicacoes como o Napster, Gnutella e Kazaa ficaram famosos, porque estas colocaram um subconjunto da tecnologia P2P que estava ao alcance de milhares de utilizadores.Na verdade o P2P surgiu da tecnologia basica que utilizaram nos tempos da USENET e da FidoNet. Eram duas redes totalmente descentralizadas, e sistemas como o DNS.No inicio eram trabalhos que dois estudantes tinham na licenciatura. Nao existia muita informacao sobre a partilha, nem Internet como hoje em dia. Os arquivos eram trocados em batch nas linhas telefonicas, porque os computadores eram ligados por cabos coaxiais, nao tendo muito mais que 10 computadores em cada rede, ligando-se por um terminador, passando virtualmente por cada no. No entanto em 1979, como nao havia maneira de centralizar, a USENET, era totalmente descentralizada sendo o criador Jim Ellis. (Sera explicado mais a frente o que e). A FidoNet tambem era descentralizada, mas servia para troca de mensagens. Esta aplicacao foi criada em 1984 por Tom Jennings para trocar mensagens de sistemas (BBS) diferentes.O DNS tornou-se uma necessidade, porque em 1983 ja existiam milhoes de hosts na Internet. Na altura a forma de navegar na Internet era atraves de um ficheiro.txt, nomeado de hosts.txt. O nome "cin" era associado um determinado ip do ficheiro hosts.txt. Como a Internet cresceu, este sistema tornou-se impossivel e foi entao que surgiu o DNS.O conceito de DNS e comparado as aplicacoes de ficheiros actuais.Mas foi na decada de 1990 que as redes P2P apareceram com toda a forca, quando aplicacoes como o Napster e o Gnutella foram desenvolvidas. Cada no neste tipo de rede e conhecido como peer, e pode servir com os mesmos direitos de cada peer da rede, serve tanto de cliente como de servidor. Os recursos e as informacoes passaram a ser disponibilizados de forma mundial. Estas redes tinham caracteristicas, que quantos mais peers existissem mais escabilidade e mais autonomia tinham, e a rede tornava-se mais eficiente e mais rica em recursos com a comunicacao directa que os peers tinham.Distribuicao HorizontalA organizacao de uma aplicacao cliente-servidor numa arquitetura multi-camadas distribui o processamento colocando componentes logicamente diferentes em maquinas diferentes. A essa distribuicao se da o nome de distribuicao vertical. Uma distribuicao vertical facilita o gerenciamento dos sistemas pois divide as funcoes logica e fisicamente entre varias maquinas, onde cada maquina e responsavel por um grupo especifico de funcoes.Uma abordagem alternativa a distribuicao vertical, bastante comum nas arquiteturas modernas, se baseia na distribuicao dos clientes e dos servidores, o que se chama de distribuicao horizontal. Nessa distribuicao, um cliente ou um servidor pode estar fisicamente divididos em partes logicamente equivalentes, onde cada parte opera sobre a sua propria porcao dos dados, o que balanceia a carga. Os sistemas peer-to-peer se baseiam na distribuicao horizontal.Olhando de uma perspectiva de alto nivel, os processos que constituem um sistema peer-to-peer sao todos iguais. Isso significa que