Nos sistemas tradicionais de streaming baseados na arquitetura cliente/servidor,
todos os clientes acessam os recursos do mesmo servidor. Neste cenário, o
poder de processamento, capacidade de armazenamento e a vazão de entrada e
saída do servidor podem se tornar o gargalo. Além disso, um grande número de
conexões de longa distância pode levar a congestionamentos, impedindo uma
qualidade de serviço comparável aos serviços tradicionais de Internet, e não
permitirá os requisitos de performance das aplicações de larga escala de
streaming de media em tempo real, especialmente nos seguintes pontos:
escalabilidade, adaptabilidade, tolerância a falhas e robustez.
Uma das recentes soluções propostas por pesquisadores para resolver esses
problemas é o IP Multicast. O grande problema é que para que este fosse
implementado, seria necessário uma mudança a nível de hardware. Ou seja, os
roteadores atuais deveriam ser trocados por roteadores com suporte a Multicast
em larga escala. Os custos de infraestrutura e adminstração seriam muito altos, o
que inviabiliza, ou pelo menos adia, esse tipo de solução.
Nos últimos anos, as redes peer-to-peer (P2P) têm ganhado atenção, tanto no
mundo acadêmico quanto na indústria. Em um sistema P2P, os peers comunicam-
se diretamente entre si para compartilhamento de dados, além de outros
recursos como armazenamento e capacidade de processamento. Cada peer age
como um cliente que consome recursos dos outros peers, e também como um
servidor que fornece serviços aos outros. Os sistemas P2P possuem as seguintes
características: adaptabilidade, auto-organização, balanceamento de carga,
tolerância a falhas e disponibilidade (através de replicação). Como exemplo,
sistemas de compartilhamento de arquivos P2P distribuem o custo de
compartilhar os dados (banda e armazenamento) entre os peers da rede,
permitindo ao sistema ser escalável sem a necessidade da compra de servidores
poderosos (e caros).
Originalmente, os sistemas P2P são aplicados em redes de compartilhamento de
arquivos, como o Napster, eMule, eDonkey, Gnutella e BitTorrent. Diferente desse
tipo de uso, o streaming de media em P2P traz restrições mais rigorosas de
tempo e de recursos para transmissão de conteúdo em tempo real. Por isso, são
necessárias funções mais restritas na gestão dos recursos, programação
(scheduling) e controle.