top of page

Ao longo do tempo, arquitecturas de rede do tipo Client-Server (C/S) têm sido as mais utilizadas para streaming de conteúdos multimédia A topologia da rede está representada na figura 2.

​

​

​

​

​

​

​

Figura 2: Topologia de uma estrutura Client-Server [4]

​

Neste tipo de arquitectura, o conteúdo desejado pelos clientes encontra-se armazenado no servidor e é disponibilizado quando um cliente efectua um pedido de stream. O servidor procura nas suas directorias a stream desejada e envia-a apenas a esse cliente. Os clientes não partilham entre si as streams. A principais desvantagens deste tipo de arquitectura estão associadas ao elevado custo da sua escalabilidade e ao facto de haver um único ponto de falha que comprometa o seu funcionamento.

Ao contrário da arquitectura C/S, as arquitecturas de rede peer-to-peer (P2P) puras, não requerem um servidor central que disponibilize os conteúdos e procure os clientes. Com efeito, nas redes P2P cada membro pode comportar-se tanto como servidor como peer (ver figura 3).

​

​

​

​

​

​

Figura 3: Topologia de uma estrutura Peer-to-Peer [4]

 

Os principais desafios deste tipo de aquitectura estão relacionados com os requisitos de tempo, o startup delay e a playback latency (para Live streaming) que devem ser negligenciáveis, e com a constante variação da capacidade da rede, pois os peers (nós da rede) estão constantemente a entrar e sair da rede (churning).

Quando um cliente pede uma stream, a rede executa algoritmos de procura de nós (outros peers) que contenham a informação pedida. Os nós que tenham disponível os dados, enviam-nos para o cliente e, deste modo, mais do que um peer envia a informação para o cliente. Uma outra versão de redes P2P inclui redes com um servidor com função de “mediador”. O servidor central guarda listas da localização de cada peer e dos conteúdos diponíveis em cada um, tornando-se deste modo mais eficiente. Quanto mais peers disponíveis para partilhar conteúdo houver na rede, mais eficiente se torna a estrutura [3].

Tendo em conta as limitações dos servidores para aquitecturas C/S, estruturas do tipo P2P tornaram-se numa alternativa viável. Algumas pesquisas mostram que arquitecturas P2P conseguem oferecer uma maior frame rate usando uma menor largura de banda [4].

Arquitecturas de rede P2P e Client-Server ​

Arquitecturas de rede P2P Mesh e P2P Tree para streaming

A eficiencia de Live P2P Streaming depende da sua arquitectura de overlay que se trata de uma topologia de lógica, construída com base na estrutura física explicada anteriormente para transmitir os conteúdos do servidor até todos os peers associados. Existem duas arquitecturas overlay principais: Tree e Mesh (figuras 4 e 5).

​

​

​

​

​

​

​

​

​

​

Figura 4: Topologia lógica Tree [5]                                              Figura 5: Topologia lógica Mesh [5]

​

Assumindo que o peer 1 é a fonte do conteúdo para streaming, numa topologia Tree, o conteúdo multimédia é direccionado desde a fonte até aos peers pelas ligações da árvore. O delay máximo depende da altura da árvore. A desvantagem desta topologia relaciona-se com a elavada taxa de entrada e saida de peers, sendo que quando um peer sai da rede todos os seus descentes também se desligam da fonte o que se traduz em fraca qualidade de conteúdo. Para além disso, o volume de conteúdo multimédia entregue a um peer, e a experiência de qualidade associada, está limitada pela capacidade mínima de upload entre todos os outros peers acima na cadeia. Apesar da sua implementação relativamente simples, esta topologia não é a mais indicada para streaming P2P.

Numa topologia Multiple Tree o conteúdo para streaming é dividido num conjunto de substreams e são criadas árvores (trees) como as descritas anteriormente, para cada substream. Para um peer receber todo o conteúdo deverá juntar todas as substrems. A grande desvantagem desta topologia relaciona-se com a elevada dificuldade de implementação e se um nó falhar, toda a sub-árvore que tinha como raiz esse nó não receberá informação até se reunir de novo ao sistema.

Numa topologia Mesh, o conteúdo para streaming é dividido em pacotes de dados e os peers (nós) que estão ligados por uma malha complexa, trocam entre si informações (buffer maps) sobre os pacotes disponíveis para streaming de cada peer com que estão ligados. São utilizados algoritmos de scheduling de pacotes para determinar os pacotes de dados que um determinado cliente irá pedir num futuro próximo aos seus peers. Esta topologia é bastante robusta no que diz respeito à saida de peers (sistemas dinâmicos) e tem uma implementação bastante simples.

Algoritmos de disseminação de conteúdos em redes: Pull, Push e Push-Pull

Algoritmos do tipo Push têm como princípio de funcionamento a transmissão do bloco de informação recebido por um dos nós, para os todos os seus vizinhos (“push”), ou seja os peers com que este tem uma ligação estabelecida. Este tipo de algoritmo de disseminassão é principalmente utilizado em arquitecturas lógicas do tipo Tree, não sendo apropriada para arquitecturas Mesh, uma vez que isso resultaria em informação redundante, pois um nó pode cegamente enviar um bloco a outro nó que já a contenha.

Os algoritmos do tipo Pull recorrem a estruturas de informação auxiliares antes de enviarem blocos de informação. Essas estruturas, Buffer Maps, são periodicamente trocadas entre os peers ligados e contêm informação acerca do conteúdo disponível para streaming em cada peer. Depois de receber os buffer maps, determinado nó pode decidir e “agendar” (schedule) qual o bloco que irá retirar (“pull”) de que peer. Este tipo de algoritmo é mais apropriado para arquitecturas lógicas do tipo Mesh.

Por último, algoritmos do tipo Push-Pull são uma hibridação dos dois últimos. Estes algoritmos são mais utlizados em estruturas lógicas do tipo Tree. Os blocos de informação são transmitidos de acordo com o princípio Push, no entanto os blocos perdidos são partilhados entre peers vizinhos de acordo com o princípio Pull.

A transmissão de conteúdos em streaming necessita de determinadas infraestruturas de rede com requisitos que possibilitem a implementação e funcionalidade deste processo. Nesse sentido, serão analisadas arquitecturas de rede do tipo Client/Server (C/S) e Peer-to-peer (P2P) com algumas variações.

ARQUITECTURAS DE REDE

bottom of page