Buscar

Arquitetura e Sistemas Distribuidos Conteúdo do SIA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 353 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 353 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 353 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
 
Problema 1 
 
Como um peer encontra outros peers que possuem o conteúdo que deseja? 
 
O primeiro problema existe porque nem todos os peers terão todo o conteúdo, pelo 
menos inicialmente. 
 
A técnica usada no BitTorrent é a de que cada provedor de conteúdo possa criar uma 
descrição de conteúdo – chamada torrent. 
 
A torrent é muito menor que o conteúdo e é usada por um peer para verificar a 
integridade dos dados que ele baixa de outros peers. Outros usuários que querem 
baixar o conteúdo precisam primeiro obter a torrent, encontrando-a, digamos, em 
uma página Web que anuncia o conteúdo. 
 
A torrent é apenas um arquivo, em formato especificado, que contém dois tipos de 
informação: o nome de um tracker
1
 e os chuncks
2
. 
 
O arquivo de torrent contém o nome de cada chunk, dado como um hash
3
 SHA-1 de 
160 bits do chunk. Dado o tamanho dos chunks e dos hashes, o arquivo de torrent é, 
pelo menos, três ordens de grandeza menor que o conteúdo, de modo que pode ser 
transferido rapidamente. 
 
Para realizar o download do conteúdo descrito em uma torrent, primeiramente, um 
peer entra em contato com o tracker para a torrent. O tracker é um servidor que 
mantém uma lista de todos os outros peers que estão ativamente fazendo download 
e upload do conteúdo. Esse conjunto de peers é chamado de swarm. 
 
 
1 
Servidor que leva os peers ao conteúdo da torrent. 
 
2 
Lista de partes de mesmo tamanho que compõem o conteúdo da torrent. Diferentes tamanhos 
de chunk podem ser usados para diferentes torrentes – normalmente de 64 KB a 512 KB. 
 
3 
Espécie de checksum maior e mais seguro. 
 
 
2 
 
Os membros do swarm entram em contato com o tracker regularmente para 
informar que ainda estão ativos, bem como ao saírem do swarm. Quando um novo 
peer entra em contato com o tracker para se juntar ao swarm, o tracker lhe informa 
sobre outros peers no swarm. 
 
Capturar uma torrent e entrar em contato com o tracker são os dois primeiros 
passos para baixar conteúdo pelo sistema BitTorrent, conforme demonstra a figura a 
seguir: 
 
 
 
 
 
 
1 
 
 
Problema 2 
Como o conteúdo é replicado pelos peers para fornecer downloads de alta 
velocidade para qualquer um? 
 
O segundo problema é como compartilhar conteúdo de modo que os downloads 
sejam rápidos. 
 
Quando um swarm é formado inicialmente, alguns peers precisam ter todos os 
chunks que compõem o conteúdo. Esses peers são chamados de seeders. Outros 
peers que se juntam ao swarm não terão chunks; eles são os peers que baixam o 
conteúdo. 
 
Enquanto participa de um swarm, o peer efetua, simultaneamente, o download de 
chunks que não encontra em outros peers e faz o upload de chunks dos quais outros 
peers precisam. Essa negociação é mostrada (veja figura seguir) como a última etapa 
da distribuição de conteúdo. 
 
 
 
 
 
 
 
 
 
2 
 
Com o tempo, o peer reúne mais chunks, até que tenha baixado todo o conteúdo. O 
peer pode sair do swarm (e retornar) a qualquer momento. Normalmente, um peer 
permanecerá por um pequeno período após o término de seu próprio download. Com 
peers indo e vindo, a taxa de agitação em um swarm pode ser muito alta. 
 
Para que esse método funcione bem, cada chunk deve estar disponível em muitos 
peers. Se cada um capturasse os chunks na mesma ordem, seria provável que muitos 
peers dependessem dos seeders para o próximo chunk. Isso criaria um gargalo. 
 
Em vez disso, os peers trocam, uns com os outros, as listas dos chunks que possuem. 
Depois, eles selecionam, para baixar, chunks raros (que são difíceis de encontrar). A 
ideia é que o download de um chunk raro crie uma cópia dele, o que facilitará que 
outros peers o encontrem e o baixem. 
 
Se todos os peers fizerem isso, depois de algum tempo, todos os chunks estarão 
disponíveis de modo generalizado. 
 
 
1 
 
 
Problema 3 
Como os peers encorajam uns aos outros para que façam upload do conteúdo 
para outros, além do download de conteúdo para eles mesmos? 
 
No terceiro problema, os nós da CDN são preparados exclusivamente para fornecer 
conteúdo aos usuários. Os nós P2P, por sua vez, não o são. Esses nós são os 
computadores dos usuários, que podem estar mais interessados em conseguir um 
conteúdo específico do que em ajudar outros usuários com seus downloads. 
 
Os nós que capturam recursos de um sistema sem contribuir com nada em troca são 
chamados de free-riders ou leechers. Se houver muitos deles, o sistema não 
funcionará bem. Os primeiros sistemas P2P eram conhecidos por hospedar os free-
riders, de modo que o BitTorrent procurou minimizá-los (SAROIU et al., 2003). 
 
A técnica usada nos clientes BitTorrent é recompensar os peers que mostram bom 
comportamento de upload. Cada peer seleciona aleatoriamente os outros, 
capturando seus chunks enquanto faz o upload de chunks para eles. 
 
O peer continua a trocar chunks apenas com um pequeno número de peers que 
oferecem o desempenho de download mais alto, embora também experimentem 
aleatoriamente outros peers para encontrar bons parceiros. Esse experimento 
aleatório também permite que os novos usuários obtenham chunks iniciais que 
podem trocar com outros peers. Os peers com os quais um nó está trocando chunks 
são considerados como unchoked. 
 
Com o tempo, esse algoritmo deverá combinar peers, uns com os outros, com upload 
comparável e taxas de download. Quanto mais um peer estiver contribuindo com os 
outros, mais ele poderá esperar em retorno. 
 
Usar um conjunto de peers também ajuda a saturar a largura de banda de um peer 
para aumentar o desempenho. Ao contrário, se um peer não estiver fazendo upload 
de chunck para outros peers ou se estiver fazendo isso muito lentamente, ele será, 
mais cedo ou mais tarde, cortado ou choked.

Outros materiais