Aplicações

Sistemas que utilizam a arquitetura P2P

BitTorrent

Um dos protocolos P2P mais populares para a distribuição de arquivos é o BitTorrent. O conjunto de todos os pares participantes de uma distribuição de um arquivo específico é chamado de torrent. O descarregamento de arquivos é feito em pedaços de tamanhos idênticos entre os pares, em geral o tamanho é de 256 KBytes. Quando um usuário entra na rede ele não possui nenhum pedaço e é necessário, naturalmente, primeiro descarregar partes do arquivo antes que seja possível compartilhá-lo. Depois de adquiri o arquivo em sua integridade, o usuário pode decidir simplesmente sair do torrent ou permanecer e contribuir distribuindo pedaços para outros pares.

Cada torrent possui um nó de infraestrutura chamado de tracker. Quando um par entra em um torrent, este par se registra com o tracker e periodicamente o informa que ainda está na rede. Assim, o tracker mantém registro de todos os pares que estão participando do torrent. É interessante ter em mente a escalabilidade de um torrent, visto que o mesmo pode ter até milhares de pares participando ao mesmo tempo.

Quando um novo par entra na rede, o tracker aleatoriamente seleciona um subconjunto de pares e envia seus endereços IP ao par recém-chegado. A partir desta lista de IPs o novo par tenta estabelecer conexões TCP com os pares listados. Os pares com os quais a conexão foi estabelecida com sucesso são nomeados pares vizinhos. Com o passar do tempo alguns destes pares podem sair e outros pares podem tentar estabelecer uma conexão TCP com o nó inicial.

A cada certo intevalo de tempo, o par inicial solicitará uma lista com os pedaços do arquivo que cada um de seus vizinhos possui. Com isto, este nó poderá pedir os pedaços que ainda não possui do arquivo. Eventualmente, este par terá que decidir quais pedaços pedir aos vizinhos e para quais vizinhos enviar pedaços solicitados. A técnica utilizada para determinar qual o pedaço a ser solicitado é chamada de rarest first que consiste em selecionar os pedaços que têm menos cópias repetidas dentre os vizinhos. Na hora de decidir para quais pares responder é dada prioridade aos vizinhos que atualmente estão fornecendo dados à taxas mais altas.



Gnutella

Introduzido em março de 2000 por dois funcionários da divisão Nullsoft da AOL, empresa que desenvolveu produtos como Winamp e SHOUTcast, Gnutella é uma tecnologia de compartilhamento de arquivos. Através de softwares que implementam o protocolo Gnutella como FrostWire ou WireShare, é possível facilmente procurar e baixar novos arquivos. Naturalmente, por ser descentralizado o protocolo oferece um nível de anonimidade para aos usuários, o que consequentemente introduz um grau de incerteza. Gnutella não deve ser confundido com sotware ou sistema pois trata-se na realidade de um protocolo de comunicação para compartilhamento de arquivos.

Quando um usuário deseja encontrar um arquivo, ele deve realizar uma consulta a uma página que lista os usuários Gnutella e seus respectivos endereços IP. Em posse desses endereços, é feita uma nova consulta a cada usuário conhecido perguntando se estes possuem o arquivo desejado. Tais usuários respondem com resultados se disponíveis e enchaminham a consulta a outros nós que conhecem. Ou seja, funciona de forma análoga a um algoritmo de inundação com a diferença que existe um Time-To-Live que define até quando a consulta será encaminhada.

O número de consultas e potenciais respostas cresce exponencialmente a cada salto e, por tal motivo, a escalabilidade do protocolo fica prejudicada. Além disso, o protocolo se apoia na hipótese de que nós suficientes estarão conectados em dado estante do tempo de modo a consulta possa se propagar longe o suficiente para encontrar um resultado.



Skype

O protocolo utilizado no Skype é proprietário e por tal motivo não é trivial determinar com precisão como o Skype funciona. No entanto, sabe-se que por padrão, o Skype envia pacotes de vídeo e áudio através do UDP. Por outro lado, pacotes de controle são enviados através do TCP. Skype é um exemplo de como técnicas P2P podem ser utilizadas em aplicações diferentes de compartilhamento de arquivos ou distribuição de conteúdo.

Temos que os dois serviços principais do Skype, telefonia pela internet e mensagens instantâneas, são intrínsecamente P2P tendo em vista que a aplicação se resume a pares de usuários se comunicando em tempo real. Não obstante, há ainda duas outras funções que utilizam técnicas P2P: NAT transversal e localização de usuários. Uma hierarquia é formada pelos pares que são classificados entre um par ordinário ou um super par. É mantido um índice que mapeia nome de usuários do Skype a seus respectivos atuais endereços IP que é distribuído através dos super pares aos demais da hierarquia.



SETI@home

Iniciado em maio de 1999, SETI (Search for Extraterrestrial Intelligence) é uma área científica cujo objetivo é detectar vida inteligênte fora do planeta Terra. Uma das abordagens é utilizar raditelescópios para ouvir a banda dos sinais de rádio do espaço. Como tais sinais não ocorrem naturalmente uma detecção seria evidência de tecnologia e consequente vida extraterrestre. Sinais de radiotelescopios consistem primariamente de ruídos e sinais provenientes de tecnologia humana como satélites, radares e estações de TV.

Projetos modernos de rádio SETI analizam os dados digitalmente e, portanto, necessitam de grande poder computacional. Quanto maior o poder computacional maior a faixa de frequências possíveis de serem cobertas com mais sensitividade. O uso de supercomputadores foi adotado em projetos iniciais para analisar o volume de dados antes de David Gedye propor utilizar um supercomputador virtual composto de um grande número de computadores conectados através da internet. SETI@home consegue alcançar altíssimo nível de desempenho comparável a supercomputadores com apenas uma pequena fração de seus custos. Por exemplo, em 2002, SETI@home era mais rápido que o maior supercomputador existente da época com um custo de apenas 1% no necessário para construí-lo.

Sendo assim, objetivo do projeto SETI@home passou a ser não apenas procurar por emissões de rádio extraterrestre mas também demonstrar a viabilidade da participação pública na computação científica distribuída além de fomentar o interesse em radio astronomia.

O projeto é na realidade um sistema Par-a-Par híbrido. Isto é, usa dois componentes principais: o cliente e o servidor de dados. Na arquitetura inicial, com exceção da computação, havia apenas um servidor distribuindo os dados aos clientes, o que se mostrou um gargalo da aplicação. Uma solução era aumentar o limite da banda, ideia que foi descartada por ter custos elevados. Uma forma de mitigar esse problema é ter servidores proxy para distribuir a carga.

Uma característica distinta de muitas outras aplicações P2P é que os usuários recebem crédito por aquilo que fazem (oposto do comum anonimato). Considerando que a computação é realizada de forma isolada em cada computador, os dispositivos precisam estar conectados ao servidor apenas para receber e posteriormente submeter as tarefas realizadas.



Otimização de Entrega do Windows

-Como a otimização de entrega funciona?

A otimização de entrega funciona permitindo que você obtenha atualizações do Windows e aplicativos da Microsoft Store de outras fontes além da Microsoft, como outros PCs na rede local do usuário ou até mesmo de PCs da internet que estão descarregando os mesmos arquivos. A otimização de entrega também envia atualizações de aplicativos de do PC do próprio usuário para outras pessoas de acordo com as configurações. Compartilhando estes dados entre PCs ajuda a reduzir a banda de internet necessária para manter mais de um dispositivo atualizado ou até mesmo aumentar as chances de um download ser bem-sucedido em caso de uma conexão com a internet limitada ou instável.

Quando o Windows descarrega uma atualização ou aplicativo usando a otimização de entrega, o sistema operacional procura por outro PCs na rede local do usuário (ou internet, dependendo das configurações) que já descarregaram tal atualização ou aplicativo. Vale ressaltar que o Windows não baixa o arquivo inteiro de apenas um lugar. Ao invés disso, o arquivo é “quebrado” em partes menores de modo que o Windows possa pegar partes dos PCs que o possuem e o que faltar da própria Microsoft. O Windows procura utilizar o caminho mais rápido e confiável para descarregar cada parte. A otimização de entrega cria um cache local que armazena arquivos que foram baixados por um período curto de tempo.

-Como é garantida segurança na Otimização de Entrega?

Deve ficar claro que a otimização de entrega não pode ser usada para baixar ou enviar conteúdo pessoal visto que esta funcionalidade não possui acesso aos arquivos ou pastas pessoais e não modifica nenhum arquivo no PC do usuário. Para garantir que o usuário está recebendo atualizações autênticas, a otimização de entrega pega informações de forma segura da Microsoft para verificar a autenticidade de cada parte do arquivo que foi transferido através de outros PCs.