Estudo de caso: telefonia por Internet P2P com Skype

O Skype é uma aplicação P2P imensamente popular, muitas vezes com sete ou oito milhões de usuários conectados simultaneamente. Além de fornecer serviço de telefonia PC para PC na Internet, o Skype oferece serviço de telefonia PC-para-telefone, telefone-para-PC e serviço de videoconferência PC-a-PC. Fundado pelos mesmos indivíduos que criaram o FastTrack e o Kazaa, o Skype foi adquirido pelo eBay em 2005 por US$ 2,6 bilhões.

O Skype usa técnicas P2P de diversas maneiras inovadoras, ilustrando de uma boa maneira como o P2P pode ser usado em aplicações que vão além da distribuição de conteúdo e compartilhamento de arquivos. Assim como com programas de mensagens instantâneas, a telefonia PC-para-PC na Internet é inerentemente P2P, visto que, no núcleo do aplicações, duplas de usuários (ou seja, pares) comunicam-se entre si em tempo real. Porém, o Skype também emprega técnicas P2P para duas outras funções importantes, que são localização de usuário e NAT traversal.

Os protocolos do Skype não são apenas proprietários, como todas as transmissões de pacotes do Skype (pacotes de controle e voz) são criptografadas. Não obstante, a partir do website do Skype e de diversos estudos de medição, os pesquisadores descobriram como o Skype geralmente funciona [Baset, 2006; Guha, 2006; Chen, 2006; Suh, 2006 Ren, 2006]. Assim como com o FastTrack, os nós no Skype são organizados em uma rede sobreposta hierárquica, com cada par classificado como superpar ou par comum. O Skype inclui um índice que mapeia os nomes de usuários do Skype a endereços IP atuais (e números de porta). Esse índice é distribuído entre os superpares. Quando Alice deseja telefonar para Bob, seu cliente Skype procura o índice distribuído para determinar o endereço IP atual de Bob. Como o protocolo do Skype é proprietário, atualmente não está claro como os mapeamentos de índice são organizados nos superpares, embora alguma forma de organização DHT seja muito possível.

Técnicas de P2P também são usadas em retransmissores do Skype, que são úteis para estabelecer chamadas entre hospedeiros em redes domésticas. Muitas configurações de redes domésticas fornecem acesso à Internet através de um roteador (tipicamente um roteador sem fio). Esses roteadores são, na verdade, mais do que roteadores, e normalmente incluem um elemento chamado Network Address Translator [Tradutor de Endereço da Internet] (NAT). 

Estudaremos NATs mais adiante. Por enquanto, tudo do que precisamos saber é que um NAT impede que um hospedeiro de fora da rede doméstica inicie uma conexão com um hospedeiro dentro da rede doméstica. Caso ambos os chamadores do Skype tenham NATs, há um problema — nenhum deles pode aceitar uma chamada iniciada pelo outro, tornando aparentemente impossível uma chamada. 

O uso inteligente de superpares e retransmissores resolve muito bem esse problema. Suponha que quando Alice entra, ela recebe um superpar sem NAT. Alice pode iniciar uma sessão com seu superpar, visto que seu NAT apenas impede sessões iniciadas de fora de sua rede doméstica. Isso permite que Alice e seu superpar troquem mensagens de controle nessa sessão. 

O mesmo ocorre com Bob quando ele entra. Agora, quando Alice deseja telefonar para Bob, ela informa a seu superpar, que, por sua vez, informa ao superpar de Bob, que então informa a Bob sobre a chamada recebida de Alice. Caso Bob aceite a chamada, os dois superpares selecionam um terceiro superpar sem NAT — o nó de retransmissor — cujo trabalho será o de transmitir os dados entre Alice e Bob. 

Os superpares de Alice e de Bob, então, instruem Alice e Bob, respectivamente, a iniciarem uma sessão com o retransmissor. Alice, então, envia pacotes de voz ao retransmissor na conexão Alice-para-retransmissor (que foi iniciada por Alice), e o retransmissor transmite esses pacotes pela conexão retransmissor-para-Bob (que foi iniciada por Bob); pacotes de Bob para Alice fluem pelas mesmas duas conexões de retransmissor de forma inversa. E pronto, Bob e Alice têm uma conexão simultânea fim a fim mesmo que nenhum deles possa aceitar uma sessão originada fora de sua LAN. 

O uso de retransmissor ilustra o projeto cada vez mais sofisticado de sistemas P2P, em que pares realizam serviços de sistema central para outros (serviço de indexação e transmissão sendo dois exemplos) ao mesmo tempo em que usam o serviço de usuário final (por exemplo, download de arquivo, telefonia IP) fornecidos pelo sistema P2P.

O Skype é uma aplicação da Internet de amplo sucesso, que atinge literalmente dezenas de milhões de usuários. A incrivelmente rápida e ampla adoção de Skype, bem como de compartilhamento de arquivos P2P, da Web e de programas de mensagens instantâneas antes dele, é um testamento da sabedoria do projeto de arquitetura geral da Internet, um projeto que não poderia ter previsto o conjunto rico e sempre em expansão de aplicações da Internet que seria desenvolvido nos próximos 30 anos. 

Os serviços de rede oferecidos a aplicações de Internet — transporte de datagrama sem conexão (UDP), transferência de datagrama orientado para conexão (TCP), a interface socket, endereçamento e nomes (DNS) entre outros — provaram ser suficientes para permitir que milhares de aplicações fossem desenvolvidas. Como todas essas aplicações foram colocadas sobre as quatro camadas inferiores existentes da pilha de protocolo de Internet, eles envolvem apenas o desenvolvimento de novos softwares cliente-servidor e peer-to-peer para uso nos sistemas finais. Isso, por sua vez, permitiu que essas aplicações fossem rapidamente empregadas e adotadas.

ATIVIDADE DE FIXAÇÃO 

Comentários

Postagens mais visitadas deste blog

Wi-Fi: LANs sem fio 802.11

Caches Web

Acesso celular à Internet