25 de dez. de 2010

oem fpp

Simplificando: OEM não vale a pena. Exemplo se sua placa mãe queimar vc perde a licença e terá que comprar outra. Também não deve ser comprada separada sem um computador novo, isto é ilegal.

FPP (na caixa e separada do computador novo): É a ideal já que não está vinculada ao hardware. Seus hardwares podem ser trocados sempre que necessário. Quanto ao suporte da Microsoft acho bastante deficiente, pois precisei e não consegui pela net o suporte gratuíto a que tenho direito já que meu operacional é novo, e por telefone não tentei.

2 de dez. de 2010

WikiLeaks

WikiLeaks
Origem: Wikipédia, a enciclopédia livre.

URL www.wikileaks.org
Portal Tecnologias da informação


WikiLeaks é uma organização transnacional sem fins lucrativos, sediada na Suécia, que publica, em seu site, posts de fontes anônimas, documentos, fotos e informações confidenciais, vazadas de governos ou empresas, sobre assuntos sensíveis.

O site foi construído com base em vários pacotes de software, incluindo MediaWiki, Freenet, Tor e PGP. Apesar do seu nome, Wikileaks não é um wiki - leitores que não têm as permissões adequadas, não podem editar o seu conteúdo.

Para a postagem, WikiLeaks recomenda vivamente o uso do Tor, visando preservar a privacidade dos seus usuários, e garante que a informação colocada pelos usuários não é rastreável. O site, administrado por The Sunshine Press, foi lançado em Dezembro de 2006 e, em meados de Novembro de 2007, já continha 1,2 milhões de documentos.

No site, a organização informa ter sido fundada por dissidentes chineses, jornalistas, matemáticos e tecnólogos dos Estados Unidos, Taiwan, Europa, Austrália e África do Sul. Seu diretor é o australiano Julian Assange, jornalista e ciberativista.

WikiLeaks recebeu vários prêmios para novas mídias, incluindo o New Media Award 2008 da revista The Economist.[9] Em junho de 2009, a WikiLeaks e Julian Assange ganharam o Media Award 2009 (categoria "New Media") da Anistia Internacional, pela publicação de Kenya: The Cry of Blood - Extra Judicial Killings and Disappearances, em 2008 um relatório da Comissão Nacional Queniana de Direitos Humanos sobre a política de extermínio no Quênia. Em maio de 2010, WikiLeaks foi referido como o número 1 entre os "websites que poderiam mudar completamente o formato atual das notícias".

Em abril de 2010, WikiLeaks postou, no website Collateral murder, um vídeo feito em 12 de julho de 2007, que mostrava civis iraquianos sendo mortos durante um ataque aéreo das forças militares dos Estados Unidos.

Em julho do mesmo ano, a organização ganhou maior visibilidade mundial, ao divulgar o Afghan War Diary, uma compilação de mais de 76.900 documentos secretos do governo americano sobre a Guerra do Afeganistão.

No mês de outubro, em articulação com grandes organizações da mídia, Wikileaks publicou um pacote com quase 400.000 documentos secretos, denominado Iraq War Logs, reportanto torturas de prisioneiros e ataques a civis pelos norte-americanos e seus aliandos, na Guerra do Iraque.

Em 28 de novembro, publicou uma série de telegramas secretos de embaixadas e do Governo estadunidense.

Dois dias depois, em 30 de novembro, a pedido da justiça da Suécia, a Interpol distribuiu em 188 países, uma notificação vermelha, ou seja, um chamado àqueles que souberem do paradeiro de Julian Assange, para que entrem em contato com a polícia - o que equivale aproximadamente a uma ordem internacional de prisão. Isto porque, em agosto, duas mulheres suecas denunciaram Assange por violência sexual.

Em 1º de dezembro, WikiLeaks anunciou que a Amazon.com o expulsara dos seus servidores, onde estava hospedado desde que começaram os ataques contra seu hospedeiro sueco, Bahnhof, em 28 de novembro, o que tornou o acesso instável. Quando, no dia 1º, os servidores da Amazon pararam de responder aos pedidos de acesso, WikiLeaks ficou indisponível durante várias horas. O senador americano Joe Lieberman, que também é chefe do Comitê de Segurança Interna do Senado dos EUA, informou que a decisão da Amazon atendia a pedidos de membros do Congresso americano.[13] Segundo o senador, "a decisão da companhia [Amazon] de cortar o WikiLeaks agora é a decisão correta e deveria estabelecer o padrão para as demais", referindo-se aos demais servidores onde o WikiLeaks tem documentos armazenados.Índice [esconder]
1 História
2 Pessoal e fundos
3 Documentos secretos da invasão do Afeganistão
4 Documentos secretos acerca da guerra do Iraque
5 Ver também
6 Referências
7 Ligações externas


História

O projeto WikiLeaks foi mantido em segredo até Janeiro de 2007, altura em que Steven Aftergood, editor do Secrecy News veio a público apresentar o site. Entre os organizadores contam-se dissidentes do governo Chinês.

Os organizadores afirmam que o WikiLeaks constitui uma entidade auto-regulada. Citando: "Wikileaks irá providenciar um fórum onde a comunidade global poderá examinar qualquer documento testando a sua credibilidade, plausibilidade, veracidade ou falsidade."

Em abril de 2010, o site publicou um vídeo mostrando um helicóptero Apache dos Estados Unidos, no contexto da ocupação do Iraque, matando pelo menos 12 pessoas - dentre as quais, dois jornalistas da agência de notícias Reuters - durante um ataque a Bagdá, em 2007. O vídeo (Collateral Murder) é uma das mais notáveis publicações do site.Outro documento polêmico mostrado pelo site é a cópia de um manual de instruções para tratamento de prisioneiros na prisão militar norte-americana de Guantánamo, em Cuba.


Pessoal e fundos

De acordo com uma entrevista de Janeiro de 2010, a equipe do WikiLeaks é constituída por menos de dez pessoas a trabalhar em regime de horário completo, mas especula-se que o Wikileaks conte com algo entre mil e dois mil voluntários, que trabalham ocasionalmente - a maioria sem qualquer contrapartida financeira. Entre os intelectuais, ativistas, jornalistas e programadores listados pelo Wikileaks como membros de seu conselho, estão o australiano Phillip Adams (produtor do clássico documentário Corações e mentes), o brasileiro Chico Whitaker (proponente e articulador do Fórum Social Mundial), o chinês Wang Dan (um dos líderes dos protestos da Praça Tiananmen em 1989) e Ben Laurie (criador do Apache-SSL e um dos maiores especialistas mundiais em segurança de rede).

A organização não possui sede oficial. As despesas por ano são de cerca de 200.000 dólares, principalmente empregues em servidores e burocracia, mas atingiria os 600.000 dólares se o trabalho doado pelos voluntários fosse remunerado. Para pagar suas despesas judiciais, a WikiLeaks conta com doações de centenas de milhares de dólares, feitas por organizações de media, tais como a Associated Press, o Los Angeles Times e a National Newspaper Publishers Association. As suas únicas fontes de rendimentos são as doações, mas a Wikileaks planeia criar um modelo de leilão, onde será vendido o acesso precoce a documentos confidenciais. Segundo a Fundação Wau Holland [20], a WikiLeaks não recebe dinheiro para cobrir custos de pessoal, mas sim para hardware, viagens e largura de banda.
[editar]
Documentos secretos da invasão do Afeganistão

Julian Assange, fundador da WikiLeaks.

As atividades da Wikileaks tiveram enorme repercussão mundial após a divulgação de uma grande massa de documentos secretos do exército dos Estados Unidos, reportando a morte de milhares de civis no guerra do Afeganistão, por militares norte-americanos. Julian Assange, o fundador do Wikileaks, vazou (leak: vazar, em inglês, isto é, tornar pública uma informação reservada) parte dos quase 92 mil documentos [21] recebidos de um colaborador, para The New York Times, The Guardian e Der Spiegel, e depois publicou-os na Internet.[22] [23]Os relatórios abrangem o período de janeiro de 2004 a dezembro de 2009.[24][25][26]

Assange defendeu a confiabilidade do material vazado sobre o conflito e disse que os documentos contêm evidências de que crimes de guerra foram cometidos por tropas de diversas nacionalidades, em especial pelas forças estadunidenses, durante a ocupação militar do Afeganistão.[27]

O Pentágono suspeita que o responsável pela fuga das informações para o WikiLeaks tenha sido o soldado Bradley Manning, de 22 anos, que teria descarregado dezenas de milhares de documentos, utilizando-se de um sistema militar de correio eletrônico, denominado Secret Internet Protocol Router Network, ao qual apenas militares autorizados têm acesso. Inicialmente Manning ficou preso em uma base militar no Kuwait. Em 28 de julho, foi transferido para a base dos fuzileiros navais de Quantico, na Virginia, onde está mantido em confinamento solitário. Em junho, Manning foi acusado de oito violações do Código Penal dos Estados Unidos. Ele também é suspeito de ter passado à WikiLeaks o vídeo do helicóptero que matou civis desarmados perto de Bagdad, divulgado anteriormente. Além de relatos de episódios de grande violência, envolvendo a morte de civis e possíveis crimes de guerra, os documentos indicam a existência de eventual colaboração entre o serviço secreto do Paquistão (país aliado dos EUA) e os talibã, em ataques contra militares da coligação da OTAN no Afeganistão. Está em curso uma investigação para determinar se há outras pessoas envolvidas no caso.[28]

Em entrevista ao The Washington Post, um especialista em computação, da área de Boston, reportou que, em meados de junho - depois que Manning foi acusado de passar para a WikiLeaks o vídeo do ataque de helicóptero contra os civis iraquianos e antes do vazamento dos arquivos sobre a guerra do Afeganistão - investigadores do governo dos EUA lhe ofereceram dinheiro para que ele se "infiltrasse" na Wikileaks, mas ele não aceitou.[29]

Para o governo dos Estados Unidos, o vazamento coloca em risco as vidas dos soldados americanos e do pessoal afegão, abalar a confiança dos aliados e ameaça a segurança nacional.[30] O diretor da WikiLeaks, porém, criticou a reação do governo norte-americano ao vazamento. Atacou especialmente o Secretário de Defesa, Robert Gates, acusando-o de estar por trás das mortes de milhares de crianças e adultos no Afeganistão e no Iraque. Segundo Assange, Gates poderia ter anunciado a abertura de investigações sobre as mortes denunciadas ou ter-se desculpado diante do povo afegão, mas não fez nada disso. "Decidiu tratar estes assuntos e os países afetados com desprezo", concluiu.[31]

Alguns analistas compararam este episódio a outro grande caso de vazamento, conhecido como Pentagon Papers, ocorrido em 1971, quando o Times iniciou a publicação seriada de um grande relatório do governo Lyndon Johnson, sobre as ações políticas e militares dos EUA no Vietnã. Os documentos mostraram que o governo mentira acerca dos seus interesses e ações no conflito. Richard Nixon, então no poder, conseguiu sustar a publicação na Justiça, alegando que o vazamento colocava em risco a segurança nacional, mas depois a Suprema Corte do país julgou que “só uma imprensa livre pode efetivamente expor as fraudes de um governo”. Assim, o Times pôde prosseguir na publicação do relatório.[32]

Sobre sua segurança pessoal, Assange revelou que algumas pessoas, como o famoso repórter investigativo Seymour Hersh fizeram chegar a ele recomendações para que se cuide. Também um ex-diplomata e jornalista australiano, especializado em segurança nacional, alertou-o de que o governo dos Estados Unidos tentou articular-se com os serviços de inteligência australianos, para intensificar a vigilância e eventualmente efetuar a detenção do pessoal da Wikileaks. Segundo a mesma fonte, o governo australiano rejeitou a proposta.[33]

Appelbaum: voluntário da WikiLeaks interrogado por três horas no aeroporto.

Em 29 de julho, Jacob Appelbaum, especialista em segurança de computadores e um dos voluntários da Wikileaks, foi detido no aeroporto de Newark e interrogado durante três horas, por agentes da inteligência do exército americano e funcionários do controle de imigração (ICE), a respeito de suas relações com a Wikileaks e com Julian Assange e sobre suas opiniões sobre as guerras no Iraque e no Afeganistão. Appelbaum, de 27 anos, trabalha para a Tor Projects, como desenvolvedor de softwares, retornava de uma viagem ao exterior. Seu laptop e seus três telefones celulares foram apreendidos. O laptop foi devolvido, depois de ter o seu conteúdo presumivelmente copiado. Appelbaum contou à imprensa que os agentes do ICE não permitiram que ele fosse assistido por um advogado, durante o interrogatório.[34] [35] Segundo Appelbaum, os agentes o ameaçaram com a possibilidade de detê-lo para um novo interrogatório a cada vez que voltasse aos Estados Unidos. "Questionaram minha capacidade de voltar a entrar nos Estados Unidos, apesar de eu ser um cidadão americano. É muito perturbador pensar que, a cada vez que eu cruzar a fronteira, serei tratado dessa maneira", declarou ele, informando que viaja para o exterior a negócios duas vezes por mês.[36]
[editar]
Documentos secretos acerca da guerra do Iraque

Iraq War Logs ("Registros da Guerra do Iraque") é uma coleção de 391.832 relatórios do Exército dos Estados Unidos sobre a Guerra do Iraque, abrangendo o período de 1º de janeiro de 2004 a 31 de dezembro de 2009, publicada no portal Wikileaks a 22 de outubro de 2010, em coordenação com vários meios de comunicação (The Guardian, The New York Times, Le Monde, Der Spiegel, Al Jazeera e o Bureau of Investigative Journalism), que dispunham previamente da documentação militar estadounidense e britânica. Segundo os relatórios, houve 109.032 mortes na guerra do Iraque, incluindo 66,081 (mais de 60%) civis, 23.984 inimigos (os chamados "insurgentes"), 15.196 membros das forças do governo iraquiano e 3.771 membros das forças da coalizão. Trata-se do maior vazamento na história militar dos Estados Unidos, superando o vazamento de documentos sobre a guerra do Afeganistão, publicados em julho de 2010.

A invasão do Iraque ocorreu entre 20 de março e 1º de maio de 2003. A guerra terminou em 18 de agosto de 2010, com a retirada das últimas tropas de combate dos EUA - embora 50.000 militares permaneçam no Iraque como "conselheiros", até o fim de 2011, para treinar as forças governamentais iraquianas e "proteger os interesses dos Estados Unidos".

Ver também
MediaWiki
Electronic Frontier Foundation
Efeito Streisand
Liberdade de expressão
Infoanarquismo

1 de dez. de 2010

BitTorrent

Origem: Wikipédia, a enciclopédia livre.


Protocolos Internet (TCP/IP)
Camada Protocolo
5.Aplicação HTTP, SMTP, FTP, SSH, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS, Ping ...
4.Transporte TCP, UDP, RTP, SCTP, DCCP ...
3.Rede IP (IPv4, IPv6) , ARP, RARP, ICMP, IPSec ...
2.Enlace Ethernet, 802.11 WiFi, IEEE 802.1Q, 802.11g, HDLC, Token ring, FDDI, PPP,Switch ,Frame relay,
1.Física Modem, RDIS, RS-232, EIA-422, RS-449, Bluetooth, USB, ...
BitTorrent é um protocolo de rede que permite ao utilizador realizar downloads (descarga) de arquivos, em geral indexados em websites. Esse protocolo introduziu o conceito de partilhar o que já foi descarregado, maximizando o desempenho e possibilitando altas taxas de transferência, mesmo com um enorme número de usuários realizando descargas (downloads) de um mesmo arquivo simultaneamente. Foi criado por Bram Cohen em 2003 e tem sido alvo de empresas que lutam em defesa da propriedade intelectual, devido a alegações de violação de copyright (autoria) de alguns arquivos transmitidos pela rede. Estima-se que no ano de 2005 o protocolo BitTorrent tenha sido responsável por 35% dos dados transferidos na Internet em todo o mundo.
Na rede BitTorrent os arquivos são quebrados em pedaços de geralmente 256Kb. Ao contrário de outras redes, os utilizadores da rede BitTorrent partilham pedaços em ordem aleatória, que podem ser reconstituídos mais tarde para formar o arquivo final. O sistema de partilha otimiza o desempenho geral de rede, uma vez que não existem filas de espera e todos partilham pedaços entre si, não sobrecarregando um servidor central, como acontece com sites e portais de downloads, por exemplo. Assim, quanto mais utilizadores entram para descarregar um determinado arquivo, mais largura de banda se torna disponível.

Funcionamento


Para compartilhar um arquivo usando o BitTorrent, um utilizador cria um arquivo .torrent, um pequeno "apontador" que contém:
  • o nome do arquivo;
  • tamanho do arquivo;
  • hash, a matrícula de cada bloco do arquivo (que assegura aos utilizadores que o arquivo é o que o nome diz ser);
  • endereço do servidor tracker (ver a seguir)

BitTorrent reduz largamente a carga no servidor porque os utilizadores descarregam arquivos uns dos outros, não do servidor. As barras coloridas indicam que os pedaços são partilhados em ordem aleatória, em vez da ordem seqüencial.
O arquivo torrent pode ser distribuído para outros utilizadores, sendo um website o meio mais comum. O cliente BitTorrent é iniciado como um "nó semeador", permitindo que outros utilizadores se conectem a ele e comecem o download. Conforme os utilizadores fazem o download do arquivo, eles podem se tornar novos semeadores desse arquivo. Um dos problemas desse sistema é que se todos os semeadores saírem da rede, o arquivo, ficheiro, pode tornar-se indisponível para download, mesmo que se tenha o arquivo torrent. Com sorte ainda é possível descarregar todos os blocos de um arquivo mesmo que nenhuma fonte seja completa, uma vez que os blocos são distribuídos em ordem aleatória. Ou seja, mesmo se nenhum semeador possuir o arquivo completo, ainda é possível fazer o download do arquivo juntando as partes que cada semeador possui.
Descarregar com o BitTorrent é bastante intuitivo. Cada pessoa que quiser descarregar um arquivo, primeiro deve descarregar o arquivo torrent que aponta para o arquivo desejado, depois abri-lo no seu cliente BitTorrent, que é um software que usa o arquivo torrent para encontrar e descarregar o arquivo desejado. O arquivo torrent mostra ao cliente o endereço do tracker, que mantém um log de quais os utilizadores que estão descarregando o arquivo e onde o arquivo e seus pedaços estão (caso o tracker esteja fora do ar fica impossível começar o download). Depois do download começar, se o tracker sair do ar ainda é possível continuar o download, mas perde-se a informação de quais os utilizadores que estão online e quais os blocos que estão disponíveis. Para cada fonte disponível o cliente lista quais blocos do arquivo que estão disponíveis, para depois pedir o bloco menos disponível na rede que ele ainda não possui. Essa priorização, dos blocos mais raros entre os utilizadores da rede primeiro, faz com que todos tenham blocos para partilhar. Assim que um cliente termina de descarregar um bloco, ele é automaticamente "hasheado" para garantir a integridade e segurança do mesmo, para em seguida procurar um cliente qualquer para fazer o upload daquele bloco.
BitTorrent proporciona a melhor performance para pessoas com maior volume de upload, uma propriedade conhecida como "resistência a sugadores", já que ele não garante performance para utilizadores que somente descarregam e não devolvem nada para a rede e os outros utilizadores. Ao contrário, os utilizadores que já terminaram de descarregar um arquivo são "semeadores" e fazem upload sem ganhar um bonus em troca.
O protocolo BitTorrent pode ser bem utilizado tanto por pessoas que possuem banda larga, quanto por pessoas que possuem conexão discada, uma vez que a estabilidade da conexão é que pode dar um menor ou maior conforto e não a velocidade da mesma. Embora seja muito mais comum que uma conexão banda larga seja mais estável que uma discada nada impede que o contrário aconteça.

Passo-a-passo para descarregar um arquivo


  1. Cliente BitTorrent: Quem deseja descarregar um arquivo via BitTorrent deve primeiro escolher um cliente BitTorrent, que é um programa (software) de BitTorrent. Entre os mais populares estão o BitTorrent, μTorrent e BitComet.
  2. Arquivo .torrent: Com o programa instalado, busque e descarregue o arquivo .torrent que "aponta" para o arquivo desejado. Esses .torrent são criados e disponibilizados pelas pessoas que inicialmente possuiam o arquivo desejado. Para encontrá-lo pode-se buscar em blogs, salas de bate-papo, sítios de relacionamento ou em ferramentas de armazenamento ou busca desses arquivos, como Torrentz, The Pirate Bay, Newtorrentz.info ou Vertor.
  3. Descarregar: Abra o arquivo .torrent usando o programa Cliente BitTorrent. O programa pedirá para escolher uma pasta para salvar o arquivo desejado e ele deve começar a ser descarregado em seguida. Conforme o arquivo é descarregado, ele é disponibilizado para que outras pessoas possam descarregá-lo também. Isso pode ser alterado nas configurações da maioria dos programas cliente BitTorrent.
  4. Abrir o arquivo desejado: Espere até que o arquivo seja descarregado por completo antes de usá-lo.
Lembre-se: A distribuição de conteúdo sem a aprovação do autor pode ser considerada uma violação do Direito autoral (ver Questões Legais).

Comparação com outros sistemas de partilha


O método de distribuição de arquivos do BitTorrent é similar ao usado pela rede eDonkey 2000 com uma pequena diferença. Os nós da última costumam partilhar um número muito maior de arquivos, tornando a banda disponível para cada arquivo muito menor. Isso não acontece na rede BitTorrent, pois normalmente cada nó não partilha um número muito grande de arquivos diferentes, tornando maior a disponibilidade de banda. Como na rede eDonkey 2000 o volume de arquivos partilhados em cada nó é muito grande, geram-se filas de espera muito longas, aumentando muito o tempo de download. Como compensação existe um sistema de créditos implementado pelos clientes como o eMule por exemplo. Os créditos são dados pelo cliente que faz o upload para o cliente que faz o download de um determinado arquivo, evitando que os créditos possam ser alterados pelo cliente que faz o download. Cada cliente que entra na fila de espera de um outro cliente ganha uma posição maior ou menor dependendo dos créditos que ele possui. Devido ao enorme volume de arquivos e ao sistema de créditos e fila de espera, as velocidades de download costumam ser muito instáveis.
O sistema de compensação por uploads do BitTorrent já era implementado numa variante no KaZaA em 2002. O nível de participação de um usuário aumentaria e baixaria de acordo com o volume de uploads. Então quando você faz upload de um arquivo, a pessoa com o maior nível de participação ganha prioridade, que faz o upload para a pessoa com o segundo maior nível de participação, que faz para a terceira e assim por diante. É como uma pirâmide, com a pessoa com a maior banda de upload disponível no topo, seguidas das outras na hierarquia. Este é o modo mais eficiente de distribuir um arquivo, os arquivos são distribuídos a partir do topo, onde está uma quantidade menor de usuários, para os níveis abaixo até a base, onde está a maior quantidade de usuários. Infelizmente o sistema adotado pelo KaZaA é considerado por alguns como falho, uma vez que ele depende que o próprio cliente reporte o seu nível de participação, o que permite que os usuários possam deliberadamente editar o seu nível enganando os outros clientes. O sistema de créditos armazenados no cliente que faz o upload, não no que faz o download, é a correção implementada pela rede eDonkey 2000 para este problema.

Questões legais


Inicialmente criada para distribuir arquivos de forma legal, sem violar nenhum copyright, como as distribuições de GNU/Linux, trailers de filmes de alta qualidade ou qualquer outro tipo de material de livre distribuição, o BitTorrent também é conhecido por ter na rede usuários partilhando músicas, filmes e programas ilegalmente, assim como acontece com as outras redes P2P. A rede BitTorrent foi usada para distribuir cópias ilegais de alta qualidade do filme The Matrix Reloaded já nos dias seguintes após o filme ser lançado nos cinemas. Outros casos famosos foram o do vazamento do código fonte do jogo Half-Life 2 e até uma parte do código fonte do Windows NT e do Windows 2000. Devido ao grande potencial da rede BitTorrent em distribuir material ilegal e rapidamente pelo mundo, uma chuva de processos vindos de diversas autoridades defensoras da propriedade intelectual, incluindo governos, atacou os principais sites de distribuição e indexação de torrents no mundo, o que envolveu muito dinheiro, semelhante à polêmica do MP3. Apesar disto, o protocolo se mostrou eficiente em tirar a sobrecarga de sites que oferecem demos e videos legalizados para o público comum. Alguns desenvolvedores, publicadores e sites do mundo já aderiram ao protocolo ou a outros protocolos p2p como uma forma de reduzir os custos de manutenção de grandes servidores de arquivos.
Acompanhando o sucesso do seu protocolo inovador, o seu criador, Bram Cohen foi contratado para desenvolver uma nova maneira de distribuir correções e outros tipos de conteúdos para jogos online em 2004, demonstrando que existem pontos legais e inovadores da sua tecnologia que merecem ser explorados. Até o momento, o BitTorrent é o protocolo P2P mais popular adotado para usos legalizados. Outras redes como a Gnutella e eDonkey2000 também têm nos seus acervos dos usuários arquivos legalizados, porém estes arquivos estão lá por conta de alguns usuários, não por decisão dos criadores ou publicadores daquele material.
Existem duas diferenças principais entre o BitTorrent e outros protocolos de partilha, partilhadores, comumente conhecidos. Primeiramente, o BitTorrent não oferece um sistema de busca interno, o usuário deve procurar os arquivos torrent que apontam para o arquivo que ele quer baixar por indicação de alguém ou procurando em sites que indexam torrents. E em segundo lugar, a rede não dá suporte ao usuário para distribuir um arquivo, ele deve rodar um tracker, localizador, para tornar o seu torrent disponível para os outros por conta própria ou usar um tracker de terceiros para isso. Essas duas características tornam a rede BitTorrent um alvo improvável de processos judiciais, bem como os seus usuários. Porém, o mesmo não se pode dizer daqueles que rodam trackers ou sites indexadores de torrents para distribuição de programas comerciais, jogos, filmes completos, músicas, etc.

Novos recursos


O protocolo BitTorrent está em constante desenvolvimento, o que indica que ele pode sempre vir a suportar novos recursos e melhorar o desempenho constantemente.

Alternativas ao BitTorrent


O protocolo BitTorrent não indexa os arquivos torrent, impossibilitando as buscas por nome do arquivo, o que o isenta de eventuais responsabilizações judiciais por conteúdo ilegal que venha a ser distribuído por meio deste protocolo. Para a busca de arquivos existem alguns poucos sites indexadores ("trackers") que hospedam a maioria dos arquivos torrent, tornando-os, estes sim, alvos prováveis de processos judiciais. Em resposta, alguns desenvolvedores criaram meios de publicar arquivos de maneira mais anônima, enquanto ainda tiram vantagem da velocidade do BitTorrent. O cliente Shareaza por exemplo, suporta BitTorrent e as redes EDonkey2000 e Gnutella, além da sua própria rede, a Gnutella2. Outro cliente que suporta várias redes, incluindo BitTorrent, é o MLDonkey. Em resposta ao fechamento do site Suprnova, o administrador de lá criou uma companhia e o programa de partilhamento Exeem, que diz descentralizar o BitTorrent eliminando a necessidade de trackers. Diferentemente do BitTorrent, o Exeem não tem código fonte aberto e é patenteado por uma empresa.

Semeamento via web


Um recurso implementado recentemente no BitTorrent é a sementeira via web. A vantagem desse recurso é que um site pode distribuir um torrent de um determinado arquivo ou grupo de arquivos e torná-los disponíveis para download do mesmo servidor web. Este recurso pode simplificar bastante o semeamento e o balanceamento de carga do servidor, assim que os diversos clientes implementarem este recurso. Em teoria isso poderia tornar o download de um arquivo na rede BitTorrent tão fácil quando baixar de um site comum, enquanto a carga do uso de banda é distribuída entre os usuários que estão baixando aquele arquivo. Esse recurso ainda é extra oficial, criado por um autor de um cliente alternativo.

Announce


O "Announce" nos clientes torrents são listas de servidores que redirecionam os downloads dos clientes para os servidores ou usuários que possuem os arquivos e que estejam conectados a rede torrent, esse método é útil e traz grande diferença na velocidade do download.

Broadcatching


Um outro recurso proposto combina RSS e BitTorrent para criar um sistema de entrega de conteúdo apelidado de broadcatching. O recurso é explicado por Scott Raymond:
"Eu quero receber arquivos torrent por meio de RSS." (em outras palavras, assim como você se cadastra num site para receber notícias por e-mail, você poderia se cadastrar num site para receber arquivos com o conteúdo desejado, como trailers de novos filmes, músicas, seriados, etc)
Apesar de poder levar a usos potencialmente ilegais, como todo novo método de distribuição de arquivos, a idéia aponta para um grande número de idéias paralelas, podendo inclusive dar oportunidade para pequenos distribuirem conteúdo próprio a um grande número de pessoas a um baixo custo. Obtendo-se a vantagem do baixo custo de distribuição, já que cada usuário que baixa um arquivo contribui com parte da sua banda para a distribuição para outros usuários.
Como o BitTorrent criptografa o hash de todos os dados, quem assinasse um RSS teria a garantia que não receberia conteúdo falso ou corrompido.

Ver também


HTTP - Protocolo de Transferência de Hipertexto

Hypertext Transfer Protocol (ou o acrônimo HTTP; do inglês, Protocolo de Transferência de Hipertexto) é um protocolo de comunicação (na camada de aplicação segundo o Modelo OSI) utilizado para sistemas de informação de hipermedia distribuídos e colaborativos.[1] Seu uso para a obtenção de recursos interligados levou ao estabelecimento da World Wide Web.
Coordenado pela World Wide Web Consortium e a Internet Engineering Task Force, culminou na publicação de uma série de Requests for Comments; mais notavelmente o RFC 2616, de junho de 1999, que definiu o HTTP/1.1.
Normalmente, este protocolo utiliza a porta 80 e é usado para a comunicação de sítios web, comunicando na linguagem HTML. Contudo, para haver comunicação com o servidor do sítio é necessário utilizar comandos adequados, que não estão em linguagem HTML.
Para acedermos a outro documento a partir de uma palavra presente no documento actual podemos utilizar hiperligações (ou âncoras). Estes documentos se encontram no sítio com um endereço de página da Internet - e para acessá-los deve-se digitar o respectivo endereço, denominado URI (Universal Resource Identifier ou Identificador Universal de Recurso), que não deve ser confundir com URL (Universal Resource Locator ou Localizador Universal de Recurso), um tipo de URI que pode ser directamente localizado.

Prefácio

O HyperText Transfer Protocol é um protocolo de aplicação responsável pelo tratamento de pedidos e respostas entre cliente e servidor na World Wide Web. Ele surgiu da necessidade de distribuir informações pela Internet e para que essa distribuição fosse possível foi necessário criar uma forma padronizada de comunicação entre os clientes e os servidores da Web e entendida por todos os computadores ligados à Internet. Com isso, o protocolo HTTP passou a ser utilizado para a comunicação entre computadores na Internet e a especificar como seriam realizadas as transacções entre clientes e servidores, através do uso de regras básicas.
Este protocolo tem sido usado pela WWW desde 1990. A primeira versão de HTTP, chamada HTTP/0.9, era um protocolo simples para a transferência de dados no formato de texto ASCII pela Internet, através de um único método de requisição, chamado GET. A versão HTTP/1.0 foi desenvolvida entre 1992 e 1996 para suprir a necessidade de transferir não apenas texto. Com essa versão, o protocolo passou a transferir mensagens do tipo MIME44 (Multipurpose Internet Mail Extension) e foram implementados novos métodos de requisição, chamados POST e HEAD.
No HTTP/1.1, versão actual do protocolo descrito na RFC 2616, [2] foi desenvolvido um conjunto de implementações adicionais ao HTTP/1.0, como por exemplo: o uso de conexões persistentes; o uso de servidores proxy que permitem uma melhor organização da cache; novos métodos de requisições; entre outros. Afirma-se que o HTTP também é usado como um protocolo genérico para comunicação entre os agentes de utilizadores e proxies/gateways com outros protocolos, como o SMTP, NNTP, FTP, Gopher, e WAIS, permitindo o acesso a recursos disponíveis em aplicações diversas.[2]

Funcionamento

Um sistema de comunicação em rede possui diversos protocolos que trabalham em conjunto para o fornecimento de serviços. Para que o protocolo HTTP consiga transferir seus dados pela Web, é necessário que os protocolos TCP e IP (Internet Protocol, Protocolo de Internet) tornem possível a conexão entre clientes e servidores através de sockets TCP/IP.
De acordo com Fielding,[3] o HTTP utiliza o modelo cliente-servidor, como a maioria dos protocolos de rede, baseando-se no paradigma de requisição e resposta. Um programa requisitante (cliente) estabelece uma conexão com um outro programa receptor (servidor) e envia-lhe uma requisição, contendo a URI, a versão do protocolo, uma mensagem MIME (padrão utilizado para codificar dados em formato de textos ASCII para serem transmitidos pela Internet) contendo os modificadores da requisição, informações sobre o cliente e, possivelmente, o conteúdo no corpo da mensagem.
O servidor responde com uma linha de status (status line) incluindo sua versão de protocolo e um código de operação bem sucedida ou um código de erro, seguido pelas informações do servidor, metainformações da entidade e possível conteúdo no corpo da mensagem. Após o envio da resposta pelo servidor, encerra-se a conexão estabelecida.

Mensagem HTTP

O protocolo HTTP faz a comunicação entre o cliente e o servidor por meio de mensagens. O cliente envia uma mensagem de requisição de um recurso e o servidor envia uma mensagem de resposta ao cliente com a solicitação. Segundo Foscarini,[4] os dois tipos de mensagens existentes no protocolo utilizam um formato genérico, definido na RFC 822, para a transferência de entidades.
Uma mensagem, tanto de requisição quanto de resposta, é composta, conforme definido na RFC 2616,[5] por uma linha inicial, nenhuma ou mais linhas de cabeçalhos, uma linha em branco obrigatória finalizando o cabeçalho e por fim o corpo da mensagem, opcional em determinados casos. Nessa seção serão apresentados os campos que compõem uma mensagem mais detalhadamente; ou seja, o HTTP apresenta o sítio ou local onde está a página da Internet.

Cabeçalho da mensagem

O cabeçalho da mensagem (header) é utilizado para transmitir informações adicionais entre o cliente e o servidor. Ele é especificado imediatamente após a linha inicial da transação (método), tanto para a requisição do cliente quanto para a resposta do servidor, seguido de dois pontos (:) e um valor. Existem quatro tipos de cabeçalhos que poderão ser incluídos na mensagem os quais são: general-header, requestheader, response-header e entity-header.[6]
Esses cabeçalhos são utilizados para enviar informações adicionais sobre a mensagem transmitida (general-header), a requisição e os clientes (request-header) que comunicam suas configurações e os formatos de documentos desejados como resposta.[7] Além disso, são utilizados pelo servidor ao retornar o recurso no qual foi requisitado pelo cliente, para transmitir informações que descrevem as configurações do servidor e do recurso identificado pelo URI de requisição, e que não pertence à linha de status (responseheader). Na RFC 2616,[8] estão descritos todos os campos que pertencem a esses cabeçalhos.
Alguns tipos MIME[9]
Exemplo Descrição
text/plain Arquivo no formato texto (ASCII)
text/html Arquivo no formato HTML, utilizado
como padrão para documentos Web
Image/gif Imagem com o formato GIF
Image/jpeg Imagem com o formato JPEG
application/zip Arquivo compactado

Corpo da mensagem

Uma mensagem HTTP pode conter um corpo de dados que são enviados abaixo das linhas de cabeçalho. Em uma mensagem de resposta, o corpo da mensagem é o recurso que foi requisitado pelo cliente, ou ainda uma mensagem de erro, caso este recurso não seja possível. Já em uma mensagem de requisição, o corpo pode conter dados que serão enviados diretamente pelo usuário ou um arquivo que será enviado para o servidor. Quando uma mensagem HTTP tiver um corpo, poderão ser incluídos cabeçalhos de entidades que descrevem suas características, como por exemplo, o Content-Type que informa o tipo MIME dos dados no corpo da mensagem e o Content-Length que informa a quantidade de bytes que o corpo da mensagem contém. A tabela ao lado apresenta alguns tipos MIME.

Requisição

De acordo com Fielding,[10] uma mensagem de requisição do cliente é composta pelos seguintes campos: uma linha inicial (Request-Line); linhas de cabeçalhos (Request-header); uma linha em branco obrigatória e um corpo de mensagem opcional. A linha inicial de uma requisição é composta por três partes separadas por espaços: o método (Method), a identificação do URI (Request-URI) e a versão do HTTP (HTTP-Version) utilizado.
Segundo Bastos & Ladeira,[11] Request-URI é um identificador uniforme de recurso (Uniform Resource Identifier) que identifica sobre qual recurso será aplicada a requisição. No protocolo HTTP, o tipo de URI utilizado é chamado de URL (Uniform Resource Locater), composto pela identificação do protocolo, pelo endereço do computador servidor e pelo documento requisitado.[12]

Métodos

O protocolo HTTP define oito métodos que indicam a ação a ser realizada no recurso especificado. Conforme Bastos e Ladeiras,[13] o método determina o que o servidor deve fazer com o URL fornecido no momento da requisição de um recurso. Um servidor HTTP deve implementar ao menos os métodos GET e HEAD.
GET
Solicita algum recurso como um arquivo ou um script CGI (qualquer dado que estiver identificado pelo URI) por meio do protocolo HTTP. Por exemplo, segue abaixo uma comunicação entre um cliente e um servidor HTTP. O servidor possui a URL www.exemplo.com, porta 80.
O pedido do cliente (seguido por uma linha em branco, de maneira que o pedido termina com um newline duplo, cada um composto por um carriage return seguido de um Line Feed):
GET /index.html HTTP/1.1
Host: www.exemplo.com
O cabeçalho Host reconhece vários diferentes nomes DNS que tenham o mesmo IP.
A resposta do servidor (seguida por uma linha em branco e o texto da página solicitada):
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8
HEAD
Variação do GET em que o recurso não é retornado. É usado para obter metainformações por meio do cabeçalho da resposta, sem ter que recuperar todo o conteúdo.
POST
Envia dados para serem processados (por exemplo, dados de um formulário HTML) para o recurso especificado. Os dados são incluídos no corpo do comando. Sua utilização em uma requisição ocorre quando é necessário enviar dados ao servidor para serem processados, geralmente por um programa script identificado no Request-URI. Uma requisição por meio desse método sempre requer que as informações submetidas sejam incluídas no corpo da mensagem e formatadas como uma query string, além de conter cabeçalhos adicionais especificando seu tamanho (Content-Lenght) e seu formato (Content-Type). Por isso, esse método oferece uma maior segurança em relação aos dados transferidos, ao contrário do método GET que os dados são anexados a URL, ficando visíveis ao usuário.[14] Por exemplo:
POST /index.html HTTP/1.0
 Accept: text/html
 If-modified-since: Sat, 29 Oct 1999 19:43:31 GMT
 Content-Type: application/x-www-form-urlencoded
 Content-Length: 30
 Nome=NamePessoa&Idade=99&Curso=Computacao
PUT
Envia certo recurso.
DELETE
Exclui o recurso.
TRACE
Ecoa o pedido, de maneira que o cliente possa saber o que os servidores intermediários estão mudando em seu pedido.
OPTIONS
Recupera os métodos HTTP que o servidor aceita.
CONNECT
Serve para uso com um proxy que possa se tornar um túnel SSL (um túnel pode ser usado, por exemplo, para criar uma conexão segura).

Resposta

Para Fielding,[15] uma mensagem de resposta do servidor é composta pelos seguintes campos: uma linha inicial (Status-Line); linhas de cabeçalhos (Responseheader); uma linha em branco obrigatória e um corpo de mensagem opcional. A linha inicial de uma resposta, chamada de linha de status, possui por sua vez três partes separadas por espaços: a versão do protocolo HTTP (HTTP-Version), um código de status (Status-Code) da resposta, que fornece o resultado da requisição, e uma frase de justificativa (Reason-Phrase) que descreve o código do status.

Códigos de retorno

A linha inicial de uma resposta HTTP indica ao cliente se sua requisição foi bem sucedida ou não.[16] Essa situação é fornecida através de um código de retorno (Status-Code) e uma frase explicativa (Reason-Phrase). De acordo com Fielding,[17] o código de status é formado por três dígitos e o primeiro dígito representa a classe que pertence classificada em cinco tipos:
  • 1xx: Informational (Informação) – utilizada para enviar informações para o cliente de que sua requisição foi recebida e está sendo processada;
  • 2xx: Success (Sucesso) – indica que a requisição do cliente foi bem sucedida;
  • 3xx: Redirection (Redirecionamento) – informa a ação adicional que deve ser tomada para completar a requisição;
  • 4xx: Client Error (Erro no cliente) – avisa que o cliente fez uma requisição que não pode ser atendida;
  • 5xx: Server Error (Erro no servidor) – ocorreu um erro no servidor ao cumprir uma requisição válida.
O protocolo HTTP define somente alguns códigos em cada classe descritos na RFC 2616, mas cada servidor pode definir seus próprios códigos.

Conexões

Segundo Hirata,[18] o HTTP/1.0 é um protocolo sem estado. Isto significa que as conexões entre um cliente e um servidor são encerradas após o envio de cada requisição ou resposta. Cada vez que uma conexão é estabelecida ou encerrada, é consumida uma grande quantidade de tempo da CPU, de largura de banda e de memória.
Na maioria das vezes, para se obter o resultado esperado, é necessário realizar mais de uma solicitação de recursos através de várias conexões. Por exemplo, no caso de uma página Web, que consiste de diversos arquivos (.html, .gif, .css, etc) é preciso que sejam feitas várias requisições para compor a página, uma conexão não-persistente. O ideal seria que apenas uma conexão fosse utilizada para os pedidos e as respostas HTTP, diminuindo, assim, a sobrecarga ocasionada pelas conexões, uma conexão persistente.
A conexão persistente, implementada como conexão padrão no protocolo HTTP/1.1, possibilita que uma conexão seja estabelecida para enviar várias requisições em seqüência sem a necessidade de esperar por cada resposta, no qual serão recebidas na mesma ordem em que as solicitações foram enviadas, um processo chamado de pipelining.[19] Pode também dar-se o caso de ser estabelecida uma conexão sem pipelining, em que o cliente só faz nova requisição quando o servidor lhe envia a resposta, ou seja, o servidor fica inactivo até o objecto (.html, .gif, .css, etc) atingir o seu destino no cliente.
Se uma requisição incluir o cabeçalho Connection: close, a conexão será encerrada após o envio da resposta correspondente. Utiliza-se este cabeçalho quando não há suporte a conexões persistentes, quando for a última requisição a ser enviada nesta conexão, ou ainda, sempre que quiser encerrar a conexão mesmo que nem todas as requisições tenham sido completadas. Além disso, o servidor pode fechar uma conexão se estiver ociosa por um determinado período de tempo.

Outros protocolos

Existem outros tipos de protocolos como o FTP (File Transfer Protocol, ou Protocolo de Transferência de Arquivos), usado para envio de arquivos do computador para um servidor na Web, o SMTP (Simple Mail Transfer Protocol, ou Protocolo de Transferência de Correio Simples), protocolo usado para correio eletrônico, entre outros protocolos.

Esquema de comunicação

Pedido básico de HTTP cliente-servidor:
GET  HTTP/1.1
Host: 
User-Agent: 
Connection: 
O agente é quem faz a ligação ao servidor, normalmente um navegador. O tipo indica como o servidor deve proceder com a conexão. É comumente utilizado para requisições persistentes.
Uma requisição completa pode exigir muitas informações. A requisição abaixo - utilizando o método POST - fora retirada do Mozilla Firefox v3.6b5 (pt-BR, para Windows):
POST /diretorio/arquivo.html HTTP/1.1
Host: www.exemplo.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-BR; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-alive: 115
Cookie: nome=valor; nome2=valor2
Connection: keep-alive
Content-Length: 28

usuario=exemplo&senha=123456

Notas

  1. T. Berners-Lee et all, 1996
  2. a b Fielding et al 1999, p. 7
  3. Fielding et al (1999, p. 10)
  4. Foscarini (2001, p. 13)
  5. Fielding et al, 1999, p. 21
  6. cf. Fielding et al, 1999, p. 21
  7. cf. Bastos & Ladeira, 2001
  8. cf. Fielding et al, 1999
  9. Fonte: Fielding et al, 1999
  10. Fielding (1999, p. 24)
  11. Bastos & Ladeira
  12. cf. Embratel, 2002
  13. Bastos & Ladeiras (2001)
  14. Herrmann, 1997
  15. Fielding et al (1999, p. 26)
  16. cf. Herrman, 1997, p. 53
  17. Fielding et al (1999, p. 37)
  18. Hirata, 1999
  19. cf. Fielding et al, 1999, p. 30

Servidor Apache

Origem: Wikipédia, a enciclopédia livre.

O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Numa pesquisa realizada em dezembro de 2007, foi constatado que a utilização do Apache representa 47.20% dos servidores ativos no mundo. Em maio de 2010 , o Apache serviu mais de 54,68% de todos os sites e mais de 66% dos milhões de sites mais movimentados. É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos.
O servidor é compatível com o protocolo HTTP versão 1.1. Suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos — utilizando a API do software.
É disponibilizado em versões para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padrão POSIX (Unix, Linux, FreeBSD, etc).

Etimologia

A razão para o nome "Apache" dada pela Apache Software Foundation, é que faz referência à nação Apache, tribo de nativos americanos que tinha, em combate, grande resistência e estratégias superiores. Isso seria uma alusão à resistência da comunidade do software livre aos ataques de interesses privados [4]. O nome refere-se também à estabilidade do servidor Apache e a sua variedade de ferramentas capazes de lidar com qualquer tipo de solicitação na web. Uma terceira razão, que é aceita popularmente, reconhecida porém refutada pela Fundação, é que o nome viria de "a patchy server", que em inglês significa algo como um servidor remendado, ou melhoria no software, dada a origem do programa, criado sobre o código do servidor da NCSA já existente, no qual foram adicionados diversos patches.[5]
Surge uma quarta explicação para o nome com o lançamento do Tomcat (um sistema auxiliar ao Apache que cuida basicamente de processamento de aplicativos em Java), já que "Tomcat" nome de uma aeronave estadounidense, o F-14 Tomcat e "Apache" é o nome de um helicóptero de ataque, o AH-64 Apache).[carece de fontes?]

Segurança

Para garantir segurança nas transações HTTP, o servidor dispõe de um módulo chamado mod_ssl, o qual adiciona a capacidade do servidor atender requisições utilizando o protocolo HTTPS. Este protocolo utiliza uma camada SSL para criptografar todos os dados transferidos entre o cliente e o servidor, provendo maior grau de segurança, confidencialidade e confiabilidade dos dados. A camada SSL é compatível com certificados X.509, que são os certificados digitais fornecidos e assinados por grandes entidades certificadoras no mundo..

Configuração

O servidor é configurado por um arquivo mestre nomeado httpd.conf e opcionalmente pode haver configurações para cada diretório utilizando arquivos com o nome .htaccess, onde é possível utilizar autenticação de usuário pelo próprio protocolo HTTP utilizando uma combinação de arquivo .htaccess com um arquivo .htpasswd, que guardará os usuários e senhas (criptografadas).

Notas

  1. Pesquisa realizada pelo sítio netcraft 2007
  2. Pesquisa realizada pelo sítio netcraft 2010
  3. Especificado pelo documento RFC2616 (TXT, 412 KB)
  4. O mundo é plano
  5. A bit of history (em inglês). The Apache Software Foundation. Página visitada em 16 de julho de 2009.

Ver também

Ligações externas

Servidor FTP

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Chama-se servidor FTP um servidor que fornece, através de uma rede de computadores, um serviço de acesso de usuários a um disco rígido ou servidor através do protocolo de transferência de arquivos: File Transfer Protocol. Seu acesso pode ser de qualquer usuário da rede ou reservado (com pedido de login e senha). O servidor FTP utiliza o protocolo FTP via navegador ou via cliente ftp dedicado.
A diferença de servidor FTP para FTP é que o servidor é um software produzido para promover o gerenciamento FTP e o FTP já é o transporte adquirido através do servidor para acesso a certos dados.
Exemplos de servidores FTP para Linux/Unix/BSD são :
Para Windows podem-se citar :

P2P

Origem: Wikipédia, a enciclopédia livre.

Um sistema P2P sem uma infraestrutura central.

Disposição de uma rede usual centralizada, baseada em servidores.
Peer-to-Peer (do inglês: par-a-par), entre pares (tradução livre ponto a ponto), é uma arquitetura de sistemas distribuídos caracterizada pela descentralização das funções na rede, onde cada nodo realiza tanto funções de servidor quanto de cliente.

Contexto

A demanda por serviços na Internet vem crescendo a uma escala que só pode ser limitada pelo tamanho da população mundial. Um dos objetivos dos sistemas peer-to-peer é permitir o compartilhamento de dados e recursos numa larga escala eliminando qualquer requisito por servidores gerenciados separadamente e a sua infra-estrutura associada. Sistemas peer-to-peer têm o propósito de suportar sistemas e aplicações distribuídas utilizando os recursos computacionais disponíveis em computadores pessoais e estações de trabalho em número crescente. Isso tem se mostrado bastante atrativo, já que a diferença de performance entre desktops e servidores tem diminuído, e as conexões de banda larga têm se proliferado.
Shirky[1] definiu as aplicações P2P como "aplicações que exploram recursos disponíveis nas bordas da Internet - armazenamento, ciclos, conteúdo, presença humana"..[2]
Geralmente, uma rede Peer-to-Peer é constituída por computadores ou outros tipos de unidades de processamento que não possuem um papel fixo de cliente ou servidor, pelo contrário, costumam ser considerados de igual nível e assumem o papel de cliente ou de servidor dependendo da transação sendo iniciada ou recebida de um outro par da mesma rede.
Os nós da rede Peer-to-Peer podem diferir em termos de configuração local, capacidade de processamento, capacidade de armazenamento, largura de banda, entre outras características particulares. O primeiro uso da expressão Peer-to-Peer foi em 1984, com o desenvolvimento do projeto Advanced Peer-to-Peer Networking Architecture na IBM.

Redes virtuais
O termo é utilizado em diferentes tecnologias que adotam um modelo conceitual Peer-to-Peer (em Portugal, conhecido como par-a-par), tal como o protocolo NNTP (para Usenet News), SMTP (para envio de mensagens eletrônicas - e-mail), e sistemas de troca de mensagens instantâneas (ICQ, MSN). Porém, o termo tornou-se popular com o surgimento de aplicações de compartilhamento de arquivo, em outras palavras, programas que possibilitam a distribuição de arquivos em rede, permitindo o acesso de qualquer usuário dessa rede a este recurso. Outros tipos de recursos podem ser compartilhados em redes Par-a-Par, tal como capacidade de processamento de máquinas, espaço de armazenamento de arquivos, serviços de programas (software, em inglês) - analogamente aos Web Services, entre outros.
Em 1999, Shawn Fanning criou o Napster, para compartilhamento de arquivos de música (principalmente MP3), e trouxe o conceito de Par-a-Par para a mídia, principalmente após tornar-se alvo de ataques jurídicos por parte das companhias fonográficas.

História do Peer-to-Peer

O P2P é o resultado da tendência natural do desenvolvimento de engenharia de software com a disponibilidade de tecnologia para a criação de redes maiores.
A tendência das últimas décadas tem crescido com a necessidade das aplicações empresariais, o que resultou na substituição dos sistemas monolíticos por sistemas distribuídos. As redes informáticas começaram a crescer, tornando-se cada vez maiores e mais poderosas, os utilizadores começaram a cada vez ser mais, a banda larga tornou-se cada vez mais barata e poderosa, sendo fácil de aceder. Neste campo houve a necessidade de 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 explosão de utilizadores.
Enquanto as redes cresciam, as aplicações P2P desenvolveram-se e a sociedade interessava-se pelo P2P. Aplicações 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 básica 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. Não existia muita informação sobre a partilha, nem Internet como hoje em dia. Os arquivos eram trocados em batch nas linhas telefónicas, porque os computadores eram ligados por cabos coaxiais, não tendo muito mais que 10 computadores em cada rede, ligando-se por um terminador, passando virtualmente por cada nó. No entanto em 1979, como não havia maneira de centralizar, a USENET, era totalmente descentralizada sendo o criador Jim Ellis. (Será explicado mais á frente o que é). A FidoNet também era descentralizada, mas servia para troca de mensagens. Esta aplicação foi criada em 1984 por Tom Jennings para trocar mensagens de sistemas (BBS) diferentes.
O DNS tornou-se uma necessidade, porque em 1983 já existiam milhões de hosts na Internet. Na altura a forma de navegar na Internet era através 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 impossível e foi então que surgiu o DNS.
O conceito de DNS é comparado às aplicações de ficheiros actuais.
Mas foi na década de 1990 que as redes P2P apareceram com toda a força, quando aplicações como o Napster e o Gnutella foram desenvolvidas. Cada nó neste tipo de rede é 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 informações passaram a ser disponibilizados de forma mundial. Estas redes tinham características, 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 comunicação directa que os peers tinham.

Distribuição Horizontal

A organização de uma aplicação cliente-servidor numa arquitetura multi-camadas distribui o processamento colocando componentes logicamente diferentes em máquinas diferentes. A essa distribuição se dá o nome de distribuição vertical. Uma distribuição vertical facilita o gerenciamento dos sistemas pois divide as funções lógica e fisicamente entre várias máquinas, onde cada máquina é responsável por um grupo especifico de funções.
Uma abordagem alternativa à distribuição vertical, bastante comum nas arquiteturas modernas, se baseia na distribuição dos clientes e dos servidores, o que se chama de distribuição horizontal. Nessa distribuição, um cliente ou um servidor pode estar fisicamente divididos em partes logicamente equivalentes, onde cada parte opera sobre a sua própria porção dos dados, o que balanceia a carga. Os sistemas peer-to-peer se baseiam na distribuição horizontal.
Olhando de uma perspectiva de alto nível, os processos que constituem um sistema peer-to-peer são todos iguais. Isso significa que as funções necessárias devem estar em todos os processos que constituem o sistema distribuído. Como consequência, a maior parte da interação entre os processos é simétrica: cada processo atua como um "cliente" e um "servidor" ao mesmo tempo.[2]

Características

Sistemas peer-to-peer compartilham essas características:
  • O seu design garante que cada usuário contribui com recursos para o sistema.
  • Apesar de que eles podem diferir nos recursos que contribuem, todos os nodos em um sistema peer-to-peer possuem as mesmas capacidades funcionais e responsabilidades.
  •  

Descentralização

A correta operação de sistemas P2P não depende da existência de um sistema de administração centralizado. Assim, sistemas P2P se confudem com sistemas descentralizados. Num sistema totalmente descentralizado, não só todos os hospedeiros são iguais, mas também não há hospedeiros com atribuições especiais, como administração e descoberta de serviços. Na prática, construir sistemas totalmente descentralizados pode se tornar difícil, o que faz os projetistas geralmente adotarem paradigmas híbridos na construção de aplicações P2P. O DNS por exemplo, é um protocolo peer-to-peer, porém com um senso embutido de hierarquia. Há outros exemplos de sistemas P2P no seu núcleo e com alguma organização semi-centralizada, como o Napster[3] e BitTorrent[4]

Heterogeneidade

Em redes peer-to-peer, a heterogeneidade dos recursos envolvidos é uma preocupação que deve ser levada em conta durante o seu projeto. Computadores e conexões administrados por diferentes usuários e organizações não têm garantias de ficarem ligados, conectados ou sem falhas, o que os torna necessariamente recursos voláteis. Isso torna a disponibilidade dos nodos de uma rede peer-to-peer imprevisível. Essa imprevisibilidade não permite garantir acesso a recursos individuais, já que eles podem falhar. Para contornar isso, é possível lançar mão da técnica de replicação, diminuindo consideravelmente a probabilidade de falha ao acessar um objeto replicado. A replicação pode também tornar o sistema mais confiável se utilizada para neutralizar a ação de nodos maliciosos, que interceptam o sistema e corrompem os dados, através de técnicas de tolerância à falhas bizantinas.

Sistemas Híbridos

Os sistemas centralizados são simples de implementar e gerenciar, entretanto são um gargalo em potencial, uma vez que o servidor central tem capacidade limitada e pode não suportar o aumento da demanda. Por outro lado, os sistemas descentralizados são escaláveis e robustos, mas isso demanda certa complexidade de implementação, principalmente nas questões de tolerância à falhas e descoberta de recursos. Muitos sistemas distribuídos combinam características das duas arquiteturas, parte do sistema no tradicional modelo cliente-servidor e outra parte peer-to-peer.
Estruturas híbridas são implantadas notavelmente em sistemas distribuídos colaborativos. A principal preocupação em muitos desses sistemas é como se juntar ao sistema, para o qual muitas vezes um esquema tradicional cliente-servidor é adotado. Uma vez que o nodo se junta ao sistema, ele pode utilizar um esquema totalmente descentralizado para colaboração. Um exemplo de servidor que utiliza essa abordagem é o BitTorrent.[4]
Para um usuário de um serviço de comunicação instantânea, a aplicação parece peer-to-peer ao enviar os dados diretamente ao amigo sendo contactado. Mas todos os serviços de comunicação instantânea possuem uma espécie de servidor por trás que facilita a comunicação entre os nodos. Por exemplo, o servidor mantém uma associação entre o nome do usuário e o seu endereço IP, grava mensagens quando o usuário está offline, e roteia mensagens para usuários que estão atrás de firewalls. Um sistema totalmente descentralizado de comunicaçao instantânea não iria funcionar na Internet de hoje, mas existem grandes vantagens de escalabilidade em pemitir comunicação cliente-cliente, quando possível. Assim, grande parte dos sistemas utiliza um esquema de diretório centralizado enquanto a função é distribuída.

Requisitos de uma Aplicação Peer-to-Peer

Para funcionar eficientemente, sistemas peer-to-peer devem se preocupar com os seguintes requisitos não-funcionais:[5]

Escalabilidade global

Um dos objetivos das aplicações peer-to-peer é explorar os recursos de hardware de um grande número de hospedeiros conectados à Internet. Assim, essas aplicações devem ser projetadas de modo a suportar o acesso a milhões de objetos em dezenas ou centenas de milhares de hospedeiros.
cançado através da colocação aleatória de recursos, juntamente com a utilização de réplicas dos recursos mais utilizados.

Otimização de interações locais entre nodos vizinhos

A "distância de rede" entre os nós que interagem tem um impacto substancial na latência das interações individuais, como por exemplo, clientes requisitando acesso à recursos. A carga do tráfico da rede também é impactada por isso. As aplicações devem colocar os recursos perto dos nós que mais os utilizam.

Disponibilidade

A maioria dos sistemas peer-to-peer são constituídos de computadores hospedeiros que são livres para se juntar ou sair do sistema à qualquer hora. Além disso, os segmentos de rede utilizados nos sistemas peer-to-peer não são gerenciados por alguma autoridade; nem possuem garantias de qualidade de serviço. Um grande desafio para os sistemas peer-to-peer é prover um sistema confiável apesar desses fatos. Quando novos hospedeiros se juntam, eles devem ser integrados ao sistema e a carga deve ser redistribuída para explorar esses novos recursos. Quando eles saem do sistema voluntariamente ou involuntariamente, o sistema deve detectar a partida deles, e redistribuir as suas cargas e os seus recursos.

Segurança dos dados

Em sistemas de escala global com participantes de origens diversas, confiança deve ser construída com o uso de autenticação e mecanismos de criptografia para garantir a privacidade dos dados e da informação.

Anonimidade, negabilidade e resistência à censura

Anonimidade é uma preocupação legitima em muitas situações que demandam resistência à censura. Um requisito relacionado é que hospedeiros que guardam dados devem ser capazes de negar plausivelmente a responsabilidade sobre a posse e o suprimento deles. A utilização de um grande número de hospedeiros em sistemas peer-to-peer pode ser útil em alcançar essas propriedades.

Redes P2P estruturadas e não-estruturadas

 

Rede Sobreposta

Um conceito importante do paradigma P2P é a rede sobreposta, ou rede overlay. Na rede overlay, os nós são formados pelos processos e os enlaces são representados pelos possíveis canais de comunicação (que são tipicamente conexões TCP). No geral, um processo não pode se comunicar diretamente com outro processo arbitrário, mas só pode enviar mensagens através dos canais de comunicação disponíveis. Nesse sentido, cada nó possui um conjunto de vizinhos, que por sua vez possuirão outros conjuntos de vizinhos. A figura abaixo ilustra a rede sobreposta sobre a camada de rede (p.e. Internet). Observe que dois nós que são vizinhos na rede overlay não são necessariamente vizinhos na rede física.

Rede overlay P2P
A localização de nós e objetos é realizado na rede overlay através de um algoritmo de roteamento distribuído. Esse algoritmo é implementado sobre a camada de aplicação, não tendo nenhuma ligação com o roteamento implementado pelos roteadores da camada de rede. Através desse algoritmo que as requisições dos cliente são roteadas para um hospedeiro que possui o objeto pela qual a requisição está endereçada. Os objetos de interesse são colocados e relocados em qualquer nó na rede sem o envolvimento do cliente.
O roteamento garante que qualquer nó pode acessar qualquer objeto na rede overlay, explorando o conhecimento de cada nó na rede para localizar o objeto de destino. Sistemas peer-to-peer geralmente armazenam múltiplas réplicas de um mesmo objeto para garantir disponibilidade. Dessa forma, o algoritmo de roteamento mantém o mínimo de informação possível sobre a localização de todas as réplicas, e envia as requisições para o nó "vivo" (p.ex. não falho) mais próximo que mantém uma cópia do objeto relevante. Existem basicamente dois tipos de redes sobrepostas: as redes estruturadas e as redes não-estruturadas. Esses dois tipos de rede são discutidos extensivamente em.[6]

Arquiteturas Peer-to-Peer Estruturadas

Numa rede peer-to-peer estruturada, a rede sobreposta é construída através de um procedimento determinístico. O procedimento mais utilizado, de longe, é organizar os processos através de uma tabela hash distribuída (DHT). Num sistema baseado em DHTs, os dados recebem uma chave aleatória de um extenso espaço de identificadores, tipicamente um identificador de 128 ou 160 bits. Os nodos da rede também recebem um identificador do mesmo espaço. O grande desafio num sistema baseado em DHT é implementar um esquema eficiente e determinístico que mapeia unicamente a chave de um ítem para o identificador do nodo responsável pelo ítem desejado. A partir disso, é possível retornar o endereço de rede do nodo responsável pelo ítem desejado, que pode ser contactado diretamente.

Várias implementações e protocolos baseados em DHT foram desenvolvidos. Dentre eles, as mais populares são o Chord.[7] NodeWiz[8] é um serviço de descoberta em grids (GIS) que utiliza uma estrutura de árvores para organizar os seus nós na rede sobreposta. Para tal, cada nó na árvore é responsável por um subespaço do espaço completo dos atributos. Assim, é possível realizar eficientemente consultas por faixas de valores, ao contrário do que acontece na DHT, onde as consultas se dão por valores exatos.

Arquiteturas Peer-to-Peer Não-Estruturadas

Sistemas peer-to-peer não-estruturados geralmente se baseiam em algoritmos aleatorizados para a construção da rede sobreposta. A idéia principal é que cada nó mantenha uma lista de vizinhos, que é construída mais ou menos de forma aleatória. Da mesma forma, se assume que os dados são colocados de forma aleatória nos nodos. Assim, quando um nó necessita localizar um ítem específico, a única coisa que pode fazer é inundar a rede com uma busca.[9] Uma desvantagem desse tipo de busca é que consultas podem não 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 é que mecanismos de inundação geralmente causam grande tráfico de sinalização, o que, muitas vezes, torna esse tipo de busca lenta.
Muitos sistemas peer-to-peer não-estruturados constroem redes sobrepostas que remetem a um grafo aleatório. O modelo básico é que cada nó mantém uma lista com c vizinhos, onde, idealmente cada um desses vizinhos representa um nodo escolhido aleatoriamente dentre o conjunto dos nodos "vivos". Essa lista de nós pode ser chamada de visão parcial. Dentre os sistemas P2P que utilizam arquiteturas não-estruturadas podemos citar o BitTorrent[4] que constrói sua overlay de forma aleatória, as Content Delivery Networks (CDNs), e o Gnutella.

Plataformas, Frameworks e Aplicações Peer-to-Peer

Inicialmente, as aplicações Peer-to-Peer surgiram monolíticas, ou seja, o programa precisava implementar seu próprio protocolo de comunicação Peer-to-Peer para permitir a interoperabilidade entre os nós constituintes do seu sistema em rede. Porém, além de um grande re-trabalho, estes esforços em requisitos não-funcionais das aplicações implicavam na impossibilidade de comunicação entre sistemas diferentes, mesmo que os serviços providos por eles fossem equivalentes. Por exemplo, arquivos compartilhados em sistemas como o Kazaa, eMule e Gnutella ficam acessíveis exclusivamente dentro de suas próprias redes, levando usuários a manterem instalados em suas máquinas clientes para cada um dos sistemas de compartilhamento de arquivos que pretenda usar.
Com a popularização deste tipo de aplicação, surgiu um esforço em prover plataformas para desenvolvimento de aplicações Peer-to-Peer, de tal maneira que estas possam comunicar-se entre si. Entre elas, destacam-se o JXTA, o Windows Peer-to-Peer Networking e o XNap.
O JXTA e o Windows Peer-to-Peer Networking são especificações de protocolos Peer-to-Peer e de uma API para utilização dos serviços, sendo o primeiro com implementações em Java e em C.
O XNap provê, além de uma API de serviços Peer-to-Peer, também um framework para desenvolvimento das aplicações em si, incluindo recursos de interface gráfica com o usuário. Um Framework Peer-to-Peer, portanto, vai além de uma plataforma para comunicação Peer-to-Peer, provendo serviços adicionais não necessariamente relacionados com a comunicação em si, mas indispensáveis para o desenvolvimento rápido de aplicações baseadas nesta arquitetura.
Outros exemplos de frameworks para desenvolvimento de aplicações Peer-to-Peer são o Oog (Duke University), o Lancaster´s P2P Framework (University of Lancaster) e o COPPEER (UFRJ), sendo os dois últimos abstrações construídas sobre o JXTA.

Kademlia

Kademlia é conceito de rede altamente descentralizada baseada em "nós" de rede. Os próprios usuários constituem a estrutura da rede dispensando servidores. Várias redes utilizam o conceito Kademlia.

Overnet

A rede Overnet é uma espécie de eDonkey "paga". É preciso comprar o programa da empresa que a desenvolveu. É uma variante do eDonkey totalmente descentralizada e mais rápida seguindo o conceito Kademlia e foi a primeira implementação da mesma.

Gnutella

Rede open-source surgida no final de 2000 utilizada inicialmente por usuários do sistema Linux. Possui uma estrutura altamente descentralizada não havendo mesmo nenhum servidor central sequer. Os usuários constituem a estrutura da própria rede. Entre os programas que a utilizam, estão o BearShare , LimeWire, Azureus e agora o Shareaza.

Gnutella 2

Segundo projeto da rede Gnutella mas agora com servidores centrais optimizando buscas e o desempenho geral da rede. É conhecida principalmente no programa Shareaza. Recebeu críticas quando foi criada pelos criadores da Gnutella original.

Kad Network

Rede paralela do programa eMule introduzida pelo autor deste em 2004; é uma implementação fiel ao conceito Kademlia. Essa rede tinha por objetivo inicial oferecer mais fontes aos usuários do programa e mais tarde se tornar uma rede P2P completa.

OpenFT

OpenFT é um protocolo desenvolvido pelo projeto giFT. O nome "OpenFT" significa "Open FastTrack". Entretanto, o OpenFT é um protocolo completamente novo, apenas algumas poucas vieram do pouco que se sabia sobre a FastTrack quando o OpenFT foi desenvolvido. Assim como a FastTrack, o OpenFT é uma rede onde nodos enviam listas de arquivos compartilhados para outros nodos. Isso reduz o consumo de banda necessário para a pesquisa, entretanto, consumindo mais recursos do processador e mémoria nos nodos.

AudioGalaxy

Projeto antigo da empresa de mesmo nome, o Audiogalaxy centralizava todo o seu acervo indexando-o em seu sítio oficialmente. Foi facilmente fechada por um processo judicial na Inglaterra. Era uma implementação de FTPs sendo mais superficial ao usuário.

SoulSeek

Rede introduzida para trocas de músicas em 2000. Utiliza programa de mesmo nome. Caracteriza-se pelo fato de ter um grande número de arquivos raros, e principalmente música alternativa. O programa cliente tem uma interface simplificada, e permite a adição de usuários em uma hotlist, ou seja, uma lista de contatos que permite saber quando um usuário que tem arquivos relevantes está conectado à rede. Também há na rede SoulSeek um serviço de bate-papo (chat) parecido com o IRC, que possibilita uma melhor interação entre os usuários, que também podem criar seus próprios canais de chat.

DNS

O DNS (Domain Name System - Sistema de Nomes de Domínios) é um exemplo de sistema que mistura os conceitos de rede peer-to-peer com um modelo hierárquico de posse da informação. O mais incrível do DNS é quão bem ele tem escalado, dos poucos milhares de hospedeiros que ele foi projetado para suportar, em 1983, para as centenas de milhões de hospedeiros atualmente na Internet. Os problemas encontrados pelas aplicações P2P atuais, tais como compartilhamento de arquivos, são os mesmos problemas que foram resolvidos pelo DNS há 10 ou 15 anos atrás. Assim, vários elementos-chave no projeto do DNS são replicados nos sistemas distribuídos atuais. Um elemento é que hospedeiros podem operar tanto como clientes quanto como servidores. O segundo elemento é um método natural de propagar as requisições de dados pela rede. A carga é naturalmente distribuída pela rede, tanto que qualquer servidor individual de nomes só precisa servir as demandas dos seus clientes e o espaço de nomes que ele gerencia.

Torrent

BitTorrent é um sistema de download de arquivos P2P. A idéia basica é que quando um usuário procura por um arquivo, ele baixa "pedaços" do arquivo de outros usuários até que o arquivo fique completo. Um importante objetivo de projeto foi garantir colaboração. Na maioria dos sistemas de compartilhamento de arquivo, uma fração significante dos usuários somente baixa os arquivos e contribuem perto de nada. Para isso, um arquivo pode ser baixado somente quando o cliente que está baixando também está provendo conteúdo para alguém.

Redes, protocolos e aplicativos


    Direitos Autorais

    • As redes P2P são acusadas no mundo todo de ferir os direitos autorais, por disponibilizar arquivos sem a autorização dos proprietários do copyright. Muitos usuários destas redes P2P defendem que a ausência de lucro na reprodução do copyright não deveria ser criminalizado. No Brasil, a lei dos direitos autorais, proíbe qualquer tipo de reprodução de conteúdo protegido que não seja autorizado (art. 105).

      Caso do Napster

      Os desenvolvedores do Napster argumentaram que eles não eram culpados pelo infrigimento dos direitos autorais porque eles não participavam do processo de cópia, que foi interamente realizado por máquinas de usuários. Esse argumento foi derrubado porque os servidores de indexação foram anexados como parte essencial do processo. Como esses servidores eram localizados em endereços conhecidos, os seus operadores foram incapazes de se manterem anônimos e então se tornaram alvos dos processos.
      Um sistema de compartilhamento mais distribuído teria alcançado uma maior separação legal de responsabilidades, distribuindo a responsabilidade entre todos os usuários do Napster, e tornando o processo muito difícil, senão impossível.
      Qualquer que seja a visão que alguém tenha sobre a legitimidade de cópia de arquivos para o propósito de compartilhamento de material protegido por direitos autorais, existe uma legítima justificativa social e política para a anonimidade de clientes e servidores em alguns contextos de aplicações. A justificativa mais persuativa é usada quando anonimidade é utilizada para superar censura e manter a liberdade de expressão para indivíduos em sociedades e organizações opressivas.

      Referências

      1. Shirky, C. (2000) What's P2P and What's not, 24/11/2000. Internet Publication.
      2. a b Tanenbaum, A. S., Steen, M. V. - Distributed Systems : Concepts and Design. 4th Edition (2005).
      3. a b c OpenNap: Open Source Napster Server, Beta release 0.4, September 2001.
      4. a b c d Cohen, B. (2003). Incentives Build Robustness in BitTorrent, May 2003, Internet Publication.
      5. Kubiatowicz, J. (2003). Extracting Guarantees from Chaos, Communications of the ACM, pp. 33-38, vol. 46, No. 2, February
      6. Lua, E. K., Crowcroft, J., PIAS, M., SHARMA, R., and LIM, S.: "A Survey and Comparison of Peer-to-Peer Overlay Network Schemes." IEE Communications Surveys & Tutorials, (7)2:22-73, Apr. 2005.
      7. Stoica, I., Morris, R., Liben-Nowell, D., Karger, D. R., Kaashoek, M.F., Dabek, F., e Balakrishnan, H.: "Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications." IEEE/ACM Trans. Netw., (11)1:17-32, Feb. 2003
      8. Basu, S., Banerjee, S., Sharma, P., and Lee, S. 2005. NodeWiz: peer-to-peer resource discovery for grids. In Proceedings of the Fifth IEEE international Symposium on Cluster Computing and the Grid (Ccgrid'05) - Volume 1 - Volume 01 (May 09 - 12, 2005). CCGRID. IEEE Computer Society, Washington, DC, 213-220.
      9. Risson, J. and Moors, T.: "Survery of Research towards Roubust Peer-to-Peer Netwroks: Search Methods." Comp. Netw., (50), 2006.
      10. Adar, E. and Huberman, B.A.: "Free Riding on Gnutella." Hewlett Packart, Information Dynamics Lab, Jan.2000.
      11. Saroiu, S., Gummadi, P.K., and Gribble, S.D.: "Measuring and Analyzing the Characteristics of Napster and Gnutella Hosts." ACM Multimedia Syst., (9)2:170-184, Aug. 2003.
      12. Yang B. and Garcia-Molina, H.: "An Empirical Study of Free-Riding Behavior in the Maze P2P File-Sharing System" Proc. Fourth Int'l Workshop on Peer-to-pEer Systems, Lect. Notes Comp. Sc., (Ithaca, NY). Berlin: Springer-Verlag, 2005
      13. Coulouris, G., Dollimore, J., Kindberg, T. Distributed Systems : Concepts and Design. 4th Edition (2005).

        Ver também