Sistemas Multimédia em redes P2P Redes de Serviços e Comunicações Multimédia

Share Embed


Descrição do Produto

Sistemas Multimédia em redes P2P Redes de Serviços e Comunicações Multimédia Leonel Menaia 40662, João Barreto 40549, Rui Sousa 37843 – ISEL LEIM

I.

INTRODUÇÃO

B. P2P vs Cliente Servidor

O Peer-to-Peer é uma arquitetura de redes bastante recente que ao longo do tempo tem vindo cada vez mais a ser utilizada principalmente em sistemas multimédia que iremos abordar. É uma tecnologia que tem sido melhorada, mudando bastante do que era ao início. Neste trabalho iremos falar de Peer-to-Peer em geral, comparar com a arquitetura de rede rival, Cliente-Servidor, explicar como funciona, ou seja, a noção de rede overlay e os diferentes tipos de arquitetura que existe no Peer-to-Peer, referir os principais tipos de sistemas multimédia e explicar o seu uso nos mesmos e mostrar alguns exemplos. II.

CONTEXTO

A. Peer-To-Peer

Fig. 1. Exemplo ilustrativo de P2P.

Peer-to-Peer (par-a-par, traduzido para português) é uma arquitetura de redes de computadores onde cada um dos pontos ou nós da rede funciona tanto como cliente quanto como servidor, isto é, cada tarefa ou carga é dividida entre peers, que são igualmente privilegiados dentro da rede. A rede peer-to-peer surgiu para solucionar alguns problemas existentes numa arquitetura cliente-servidor. As suas características são: 

Fiáveis



Fáceis de implementar e administrar



Pouco custo.



Utilizadas em grande escala.



Alta disponibilidade de ficheiros.

Fig. 2. Exemplo ilustrativo das diferenças de P2P vs Cliente Servidor.

Na arquitetura cliente-servidor, o servidor controla completamente os recursos e partilha-os entre clientes, que fazem um pedido pelo recurso, esses pedidos são sincronizados pelo servidor. Este tipo de arquitetura é completamente centralizada sendo que o funcionamento da mesma é totalmente dependente do servidor, o que é um fator negativo neste tipo de redes. Por outro lado a arquitetura Peer-to-Peer (P2P) “pura” (visto que ao longo do tempo surgiram outras variações) consiste em cada ponto da rede ser simultaneamente um cliente e um servidor. Cada utilizador contêm pedaços ou a totalidade do recurso e partilha ou recebe pelos seus pares. C. História O P2P foi maioritariamente criado devido à necessidade de criação de redes maiores. A tendência das últimas décadas tem sido a necessidade de sistemas distribuídos em vez de sistemas monolíticos. As redes informáticos começaram a crescer, tornando-se cada vez maiores, com mais utilizadores, havendo necessidade de arquiteturas que as suportem. O início do P2P deu-se nos tempos de redes como Usenet e Fidonet, duas redes descentralizadas. Criadas por estudantes no máximo aguentavam 10 computadores em cada rede. Na década de 1990 foi quando as redes P2P apareceram com toda a força, em aplicações como Napster e Gnutella, sistemas de partilha de ficheiros que para além de suportarem muitos utilizadores também funcionavam melhor quantos mais houvessem.

III.

TIPOS DE ARQUITECTURAS

A. Rede Overlay

a pesquisa de conteúdos era difícil e demorada sendo que eram utilizados mecanismos de flooding numa rede cuja escalabilidade é bastante elevada. Apesar destes problemas estes tipos de redes ofereciam algumas vantagens: eram bastante flexíveis sendo que os pares se adaptavam bem, simples de utilizar, sem grande complexidade e robustas. Existem 3 tipos de redes não estruturadas:

Fig. 3. Exemplo ilustrativo de rede overlay.

Nas redes P2P existe o conceito de rede overlay, esta é uma rede virtual que se encontra sobre a camada de rede, toda a aplicação P2P é realizada nesta rede. Esta rede existe para simplificar toda a arquitetura P2P, sendo uma rende virtual permite criar situações que uma rede normal não consegue. Os pares nesta rede podem ser vizinhos entre si, apesar de na realidade, ou seja na camada física isto poder não ser verdade. A localização tanto dos pares, como dos conteúdos é realizado nesta rede, através dos algoritmos de encaminhamento próprios da camada de aplicação P2P. A rede dá assim uma ilusão de ter uma ligação direta entre dois nós apesar de na realidade existe túneis IP que são ligações ponto a ponto virtuais. As propriedades desta rede são a escalabilidade, que é uma característica já referida como sendo muito importante na arquitetura P2P, os recursos podem crescer naturalmente com a utilização desta rede e os consumidores além de consumirem também fornecem os seus recursos; a redundância destes sistemas também permitem uma maior fiabilidade; a utilização dos recursos é eficiente; o sistema auto-organiza-se entre si formando uma camada de rede aplicacional sobre a rede IP; este tipo de redes é fácil de utilizar, existindo assim uma facilidade no desenvolvimento e administração devido também ao facto de muitas operações serem automáticas. B. Redes Não Estruturadas As redes não estruturadas foi o primeiro tipo de rede que existiu, oferecem protocolos ainda muito baseados no P2P “puro”, baseiam-se em algoritmos aleatórios para criar a rede overlay, a sua lista de vizinhos também é criada de forma aleatória tanto como a colocação dos conteúdos. Este tipo de rede como foi o primeiro a existir ainda tinha bastantes problemas nomeadamente o pouco controlo sobre a rede e conteúdo devido a como foi descrito anteriormente muitos dos processos serem feitos de forma aleatória; também não oferecia qualquer garantia de desempenho, podendo a qualquer altura deixar de funcionar; os pares juntavam-se sem qualquer conhecimento prévio da topologia de rede, o que novamente é causa-efeito da aleatoriedade;

Fig. 4. Exemplo ilustrativo de rede descentralizada.

 Descentralizados, ou seja o P2P “puro”, neste tipo de rede não existe qualquer tipo de centralização, cada par funciona exatamente como servidor e como cliente, contendo recursos e partilhando-os com os seus pares. Utiliza um mecanismo de flooding para a pesquisa, isto é para encontrar o conteúdo que necessita terá de procurar par a par até encontrar o par necessário. As vantagens são o facto de não depender do servidor enquanto as desvantagens são o tempo de pesquisa elevado e a pouca fiabilidade.

Fig. 5. Exemplo ilustrativo de rede centralizada.

 Centralizado, não confundir com a centralização da rede cliente-servidor onde um cliente possui o recurso, neste tipo de centralização existe um servidor que apenas contêm informação do recurso, ou seja quando um utilizador pretende efetuar uma pesquisa terá de comunicar a este servidor qual o recurso que pretende pesquisar, o servidor de seguida responde com os endereços dos pares que contêm o ficheiro em questão e de seguida poderá começar a realizar o download. As vantagens deste tipo de arquitetura são assim uma pesquisa mais rápida que na arquitetura centralizada enquanto as desvantagens são a centralização e a dependência do servidor, se o mesmo falhar o sistema poderá ficar em risco.

Atualmente muito dos sistemas/aplicações que eram não estruturados fizeram o upgrade para uma arquitetura estruturada, sendo alguns exemplos o eMule, Freenet, uTorrent e LimeWire. IV.

APLICAÇÕES P2P

Das inúmeras aplicações P2P existentes hoje em dia realça-se 3 ramos importantes responsáveis pela maior parte do tráfego na internet que iremos referir e dar alguns exemplos.

Fig. 6. Exemplo ilustrativo de rede híbrida..

 Híbrido, este tipo de arquitetura pretende combinar as duas anteriores num sistema melhor. Nesta rede existe o conceito de super-peer, este nó da rede é um nó com alguns conceitos administrativos, conhece alguns outros pares e o conteúdo dos mesmos. Este conhecimento permite ser mais fácil de comunicar entre pares quando se efetua pesquisa flooding.

  

Partilha de ficheiros Streaming Voip

A. Partilha de ficheiros A partilha de ficheiros é atualmente o ramo de aplicações P2P mais utilizado devido essencialmente aos sistemas de torrent que iremos falar mais à frente. É particularmente útil devido à grande escalabilidade do P2P, quanto maior a rede mais conteúdos para mais utilizadores.

C. Redes Estruturadas As redes estruturadas surgiram principalmente para melhorar a fiabilidade e tempo das pesquisas de acordo com a escalabilidade dos sistemas. Neste tipo de arquitetura a rede overlay é completamente controlada e os conteúdos especificamente colocados. É utilizado DHTs (Distributed Hash Table) para organizar os conteúdos e permitir uma pesquisa eficaz. Nesses sistemas são geradas chaves para cada conteúdo que por sua vez é armazenado num nó da rede específico. A pesquisa é realizada ao nó que contém a chave necessária, esse nó irá retornar o conteúdo. Os protocolos propostos de DHT foram: Chord, Tapestry, CAN e Kademlia.

Fig. 8. Logo da Napster.

Fig. 7. Exemplo ilustrativo de DHT.

O funcionamento básico de um DHT é criar uma espécie de base de dados nesta hash table sendo que a cada chave corresponde um conteúdo. Quando alguém faz uma pesquisa essa chave é procurada na hash table até ser encontrada, após isso é retornada ao nó responsável sendo reencaminhada de nó para nó. Um sistema com DHT deve cumprir assim as seguintes propriedades: descentralização, escalabilidade e tolerância a falhas, balanceamento de carga, integridade e segurança dos dados e desempenho.

Napster foi uma das primeiras aplicações P2P a ser usada em grande escala. Consistia num site web e numa aplicação que facilitava a troca de ficheiros de música MP3 entre utilizadores. Devido ao copyright a empresa sofreu um grande golpe tendo sido comprada mais tarde em 2002, sendo atualmente um serviço de compra de músicas pela internet. A aplicação instalada pelo utilizador adiciona as músicas numa diretoria central, com isto é possível a procura por parte dos utilizadores, promove assim o descarregamento das músicas diretamente de outros utilizadores. Apesar da transferência dos ficheiros ser realizada diretamente de outros utilizadores, o conteúdo depende dos servidores sendo esta aplicação centralizada.

Fig. 11. Logo da BitTorrent. Fig. 9. Logo da Gnutella.

Gnutella 1.0 foi uma rede de partilha de ficheiros baseada numa arquitetura P2P “pura”, ou seja uma arquitetura descentralizada, utilizava o mencionado mecanismo de flooding, a pesquisa entre pares até encontrar o ficheiro. Se um utilizador quiser descarregar um ficheiro que vários outros utilizadores possuem irá obter uma melhor taxa de transferência, a escalabilidade favorece o desempenho do sistema e o custo da pesquisa é distribuído pelos pares. No entanto a entrada e saída de pares é frequente podendo a rede ficar instável e a pesquisa sendo realizada sobre todos os pares pode causar pouca fiabilidade, haver falhas na pesquisa pode ser algo ocorrente e o tempo da mesma será bastante elevado, os pacotes que a pesquisa origina contêm um campo de TTL (Time to Live), que basicamente é o tempo que a pesquisa pode demorar até os pacotes serem descartados. No caso de a pesquisa ter um tempo elevado, o tempo irá sobrepor-se ao TTL e os pacotes irão ser descartados, ou seja o conteúdo pretendido não irá ser encontrado, isto compromete a estabilidade do sistema. Mais tarde foi lançado o Gnutella 2.0, ou seja a evolução do Gnutella, sendo agora um sistema híbrido baseado em UDP para as suas pesquisas, destaca-se por resolver os problemas do Gnutella de destacar o sistema de pesquisa ser muito mais eficiente.

BitTorrent é provavelmente o protocolo P2P mais popular atualmente na partilha de ficheiros. É responsável pela maior parte do tráfego gerado na internet. No BitTorrent existe um ficheiro torrente que contém metadata sobre um ou mais ficheiros. Nesse ficheiro são incluídos os nomes e dimensões de todos os chunks ou seja pedaços do ficheiro. Também contêm o endereço do tracker dos mesmos. Um seeder é um par que possui uma cópia completa do conteúdo, ou seja, contêm o ficheiro completo. São pares que continuam a partilhar o ficheiro após a sua transferência. Um leecher é um par que ainda está a descarregar o ficheiro e por isso ainda não contêm o ficheiro na sua totalidade mas também ajuda na partilha no mesmo. Para o funcionamento deste protocolo é utilizado um software do lado do cliente que permite ligar a um tracker, um tracker é um servidor central que coordena ações dos clientes, um tracker não contem ficheiros como um servidor normal, apenas sabe os utilizadores que os possuem. Existem também portais web para pesquisa de torrentes de onde o utilizador descarrega os torrents e adiciona no seu software BitTorrent. Existem vários disponíveis atualmente sendo que alguns foram retirados por força judicial, dos mais conhecidos estão: Mininova, ThePirateBay e Kickass Torrents.

Fig. 10. Logo da Kazaa.

Kazaa foi uma rede P2P de partilha de ficheiros híbrida, este tipo de rede mistura conceitos de centralização e descentralização. Utiliza uma comunicação baseada em TCP. Contêm uma entidade chamada super node, estes nodes são escolhidos tendo em conta a sua capacidade e disponibilidade. Um super node contêm uma lista de pares e reconhece os conteúdos dos mesmos, os mesmos trocam informações uns com os outros periodicamente das listas de ficheiros que conhecem. As querys de pesquisa são realizadas através dos super nodes. As vantagens desta aplicação são assim o seu sistema de pesquisa que na altura destacava-se por ser mais eficiente que de outras aplicações centralizadas e descentralizadas.

Fig. 12. Logo do ThePirateBay.

B. Streaming As arquiteturas cliente/servidor têm-se mostrado ineficientes em serviços de distribuição de streaming media. O número máximo de utilizadores é limitado pelos recursos computacionais que tem uma utilização maior que nas aplicações web tradicionais. Uma das propostas para uma distribuição eficiente é a utilização de redes Peer-to-Peer (P2P), usando essa solução podemos dividir conteúdos do servidor por vários clientes, criando assim uma teia de vários utilizadores a passarem informação entre si. Fig. 15. Exemplo ilustrativo de arquitetura híbrida.

 Arquitetura Hibridas, esta arquitetura é uma mistura das duas anteriores indicadas, devido a haver um pedido de informação de um dado ficheiro aos seus vizinhos isto de forma dinâmica como na arquitetura em malha, de seguida irá escolher o nó com melhor informação e defini-lo como o “eleito” e pedirá um subfluxo contínuo de informação. Fig. 13. Exemplo ilustrativo de arquitetura árvore.

 Arquitetura Arvore é uma arquitetura simples mas funcional na propagação de informação com menor esforço, isto porque é organizada em nós pais e filhos que passam informação para os seus descendentes, o problema esta no balanceamento da mesma pois quando um nó sai os seus descendentes ficam sem receber a informação.

Fig. 16. Website do Streamio

Fig. 14. Exemplo ilustrativo de arquitetura em malha..

 Arquitetura em malha, os nós formam se como uma malha dai o seu nome, cada nó procura dinamicamente a informação nos seus vizinhos diretos de maneira a que lhe seja enviada esses pacotes, é uma arquitetura que tem um grande processamento devido a sua procura dinâmica, podendo ocorrer um grande tempo para o utilizador receber a informação.

Neste tipo de streaming os utilizadores utilizam as suas ligações para ajudar na distribuição do sinal. Quanto mais utilizadores melhor será a qualidade da stream. No entanto existe a desvantagem de se existir utilizadores com ligações fracas à internet a qualidade da stream irá piorar. Alguns exemplos de streams atuais P2P são a rede P2PTV, sendo um exemplo de software desta rede o Sopcast, aplicações como PopcornTime e Streamio.

Fig. 17. Logo do PopcornTime

C. Voip Mais conhecida por VoIP (voice over IP ou voz sobre IP), é a comunicação pela internet, veio revolucionar devido ao facto de ser gratuito na maioria dos fornecedores, o que vem substituir o telefone de casa e os custos associados a chamadas nacionais e internacionais, o VoIP também é possível por P2P tendo sido largamente utilizado pelo bem conhecido Skype e outros que o ainda utilizam.

V.

CONCLUSÃO

Para finalizar este trabalho podemos concluir que P2P traz vários benefícios na sua utilização, o custo é reduzido pela partilha do mesmo entre pares, a escalabilidade permitida é enorme e mantém a fiabilidade no sistema. É um sistema bastante autónomo sem a necessidade obrigatória de servidor, é privado devido a não pedir dados pessoais para existir conexão e é dinâmico, adaptando-se a várias situações. Os desafios desta tecnologia no futuro é resolver os problemas jurídicos criados devido a copyright, criar uma rede mais segura e resistente a falhas e incentivar a colaboração dos utilizadores. Concluindo, o P2P ainda tem um grande futuro pela frente, irão aparecer mais aplicações P2P e o seu desempenho será melhorado, tais como ter uma partilha mais inteligente e uma maior escalabilidade para competir com outras tecnologias. VI.

BIBLIOGRAFIA

MONTEIRO, Edmundo; BOAVIDA, Fernando. Engenharia de Redes Informáticas. 10ª Edição Atualizada e Aumentada. FCA. 2011 RIBEIRO, Pedro: CRUZ, Nuno. Acetatos Redes P2P da disciplina de Redes de Distribuição de Conteúdos ISEL. Fig. 18. Logo do Skype

Como indicado um dos softwares mais conhecidos para o publico é o Skype que já usou o P2P, tendo uma hierarquia de duas camadas, os Super Nodes que se ligam entre eles criando uma rede não estruturada, os Ordinary Nodes que se ligam aos Super Nodes e acabam por atuar como um diretório central para os mesmo, o único componente central do sistema é o servidor de login pois é um ponto onde os utilizadores entram na sessão e validam a password e tem acesso à sua lista de amigos. Outra tecnologia também existente é o SIP aplicado ao P2P. O SIP original utilizava uma arquitetura com servidores SIP centralizados, mas com a tecnologia P2P para cada endpoint foi implementado um user-agent servidor e useragent cliente que faz com que cada um possa comunicar sem a necessidade de um sistema central de comutação. A implementação também é favorável devido às funcionalidades já existentes do SIP como o Register, Subscribe e Notify que permitem um event tracking mais fácil entre utilizadores.

Streaming de vídeo em P2P http://www.gta.ufrj.br/grad/10_1/video-p2p/index.html

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.