introdução à ciência da computaçãojulius/icc/roc.pdf– gabriel m. de brito, pedro b. velloos...
TRANSCRIPT
Departamento de Ciência da Computação Instituto de Computação
Universidade Federal Fluminense
Pedro Braconnot Velloso
Redes orientadas a conteúdo
Introdução à Ciência da Computação
ATENÇÃO!
• Esta apresentação contém trechos e é baseada nas seguintes apresentações: – Gabriel M. De Brito, Pedro B. Velloos e Igor M. Moraes, “Redes
orientadas a Conteúdo: um novo paradigma para a Internet ", no Minicursos do Simpósio Brasileiro de Redes de Computadores - SBRC'2012, Ouro Preto, MG, Brasil, Maio 2012.
– Igor M. Moraes, “Redes de Computadores I”, Notas de aula, IC/UFF Niterói, RJ, Brasil, Fevereiro, 2012.
• Outubro de 1957 – Lançamento, pelos soviéticos, do primeiro satélite artificial da
Terra, o Sputnik I
Como tudo começou?
Sputinik I
Sputnik I
Lançador de Satélites
Lançador de Satélites
Semelhante a um míssil
Reação Estadunidense
• 1958 - Presidente Dwight D. Eisenhower criou a Advanced Research Projects Agency (ARPA) para • Sistema de defesa antimísseis • Detecção de testes de bomba nuclear
Reação Estadunidense
• 1964 - Licklider, Kleinrock, Baran e Roberts – Proposta: interconectar computadores para “acessar dados e
programas de qualquer lugar e de maneira fácil e rápida” – Rede com topologia distribuída para redundância
• Uma bomba não anularia a comunicação – Rede baseada na comutação de pacotes
• Divisão da mensagem em pacotes, encaminhamento dos pacotes e remontagem da mensagem no destino
• Encaminhamento fácil da mensagem por diferentes caminhos redundantes
Topologia Distribuída
Enlace
Estação
a) Centralizada b) Descentralizada C) Distribuída
Disponibilidade
• Arpanet
Origem
Destino
Disponibilidade
• Arpanet
Origem
Destino
Comutação
• Sistema telefônico – Comutação de Circuitos
• Internet – Comutação de Pacotes
Sistema Telefônico
• Objetivo – Conectar fios a outros fios
• Não se importa com a conversação telefônica – O importante é o estabelecimento de um caminho entre a
origem e o destino
Manualmente
Centrais Telefônicas
Manualmente Mecanicamente
Centrais Telefônicas
Manualmente Mecanicamente
Por Computador
Centrais Telefônicas
Problemas
• Nenhuma informação é transferida antes do estabelecimento da chamada – Eficiência decresce com
• Aumento do tempo de estabelecimento da chamada • Aumento da banda passante do canal • Diminuição do tempo de duração da chamada
• Falha da chamada se um dos elementos do caminho falha – Confiabilidade decresce exponencialmente com a escala
Comutação de Pacotes
• Foco no sistema final e não mais no caminho • Mensagem divida em pedaços (os pacotes)
encaminhados de forma independente uma das outras • Pacotes com endereço final do destino
– Semelhante a uma carta enviada pelo correio
• Pacotes encaminhados nó-a-nó – Podem percorrrer caminhos diferentes até o destino
Na época, todos que entendiam um pouco de telecomunicações
achavam a idéia uma “maluquice que nunca daria certo”
Primeira rede de comutação de pacotes
ARPANET
Interface Message Processor (IMP) Primeiro comutador de mensagens (roteador)
Leonard Kleinrock Professor da UCLA
Minicomputador Honeywell
DDP516 24kB de memória 10 kHz de relógio
1969
A Primeira Mensagem
Cenário – comunicação entre a UCLA e Stanford e acompanhamento do que se passava pelo telefone
Kleinrock tenta fazer o LOGIN remotamente “Digitei o L e pelo telefone perguntei, você viu o L?”
"Yes, we see the L," came the response. "We typed the O, and we asked, "Do you see the O." "Yes, we see the O." "Then we typed the G, and … the system crashed"...
Yet a revolution had begun"...
A Primeira Mensagem
Cenário – comunicação entre a UCLA e Stanford e acompanhamento do que se passava pelo telefone
Kleinrock tenta fazer o LOGIN remotamente “Digitei o L e pelo telefone perguntei, você viu o L?” “Sim eu vi o L, mande o próximo”
A Primeira Mensagem
Cenário – comunicação entre a UCLA e Stanford e acompanhamento do que se passava pelo telefone
Kleinrock tenta fazer o LOGIN remotamente “Digitei o L e pelo telefone perguntei, você viu o L?” “Sim eu vi o L, mande o próximo.” “Digitei o O e perguntei, você viu o O?”
A Primeira Mensagem
Cenário – comunicação entre a UCLA e Stanford e acompanhamento do que se passava pelo telefone
Kleinrock tenta fazer o LOGIN remotamente “Digitei o L e pelo telefone perguntei, você viu o L?” “Sim eu vi o L, mande o próximo.” “Digitei o O e perguntei, você viu o O?” “Sim, eu vi o O”
A Primeira Mensagem
Cenário – comunicação entre a UCLA e Stanford e acompanhamento do que se passava pelo telefone
Kleinrock tenta fazer o LOGIN remotamente “Digitei o L e pelo telefone perguntei, você viu o L?” “Sim eu vi o L, mande o próximo.” “Digitei o O e perguntei, você viu o O?” “Sim, eu vi o O” “Em seguida, digitei o G e …”
A Primeira Mensagem
Cenário – comunicação entre a UCLA e Stanford e acompanhamento do que se passava pelo telefone
Kleinrock tenta fazer o LOGIN remotamente “Digitei o L e pelo telefone perguntei, você viu o L?” “Sim eu vi o L, mande o próximo.” “Digitei o O e perguntei, você viu o O?” “Sim, eu vi o O” “Em seguida, digitei o G e …” o sistema travou!
A Primeira Mensagem
Cenário – comunicação entre a UCLA e Stanford e acompanhamento do que se passava pelo telefone
Kleinrock tenta fazer o LOGIN remotamente “Digitei o L e pelo telefone perguntei, você viu o L?” “Sim eu vi o L, mande o próximo.” “Digitei o O e perguntei, você viu o O?” “Sim, eu vi o O” “Em seguida, digitei o G e …” o sistema travou!
O teste foi um sucesso e a revolução começou!
Evolução da Internet
• 1970 – 12 IMPs interconectavam computadores nos EUA todo • 1972 – RFC 354 File-Transfer Protocol (FTP) • 1972 – Primeiro email
– Ray Tomlinson – @ para endereço de email • 1973 – ¾ do tráfego era de emails • 1974 - Vinton Cerf (UCLA) e Robert Kahn (ARPA) propõem
Transmission Control Protocol and Internet Protocol (TCP/IP) – Mais rápido e mais eficiente – Mais computadores com menor custo
TCP/IP é considerado o marco inicial da Internet
Evolução da Internet
• 1986 – maioria dos departamentos norte americanos de ciência da computação estão conectados a Internet
• 1990 – NSFNET substitui a ARPANET – 25 vezes mais rápida
• 1990 – Tim Berners-Lee propõe "World-Wide Web” • 1991 – acesso discado à Internet • 1991 – Gopher – primeira interface amigável • 1993 – Mosaic
– Mark Andreessen propõe o primeiro navegador
Daí pra frente é só sucesso de crescimento de usuários e número de aplicações
Sucesso da Internet
• Rádio 38 anos para chegar a 50 milhões de usuários
• Televisão 13 anos para chegar a 50 milhões de usuários
• Internet pública 4 anos para chegar a 50 milhões de usuários
• Modelo em camadas • Comutação de pacotes e melhor esforço • Transparência • Princípio fim-a-fim • Entrega imediata • Heterogeneidade de sub-rede • Endereçamento global • Controle distribuído • Cálculo global do roteamento • Divisão em regiões • Dependência mínima
Princípios da Internet
Princípio Fim-a-Fim
• Princípio FUNDAMENTAL da Internet
Funções específicas de nível de aplicação devem estar presentes apenas nas extremidades
• Motivação – Só com o conhecimento da aplicação (nas extremidades)
as funções específicas pode ser implementadas de forma correta e completa
núcleo simples e inteligência nas extremidades
• Número de nós e usuários: cerca de 1,5 bilhões hoje
1969 1999
O Que Mudou?
Usuários de diferentes idades e com diferentes habilidades técnicas
Pesquisadores de universidades e centros de pesquisa
• Perfil dos usuários – Especializados à maioria não especializada
O Que Mudou?
Usuário digita a URL www.ic.uff.br
Navegação Web (HTTP)
cliente servidor 10.20.30.40 200.20.15.208
Internet
Usuário digita a URL www.ic.uff.br
Navegação Web (HTTP)
cliente servidor 10.20.30.40 200.20.15.208
Internet
1. A máquina cliente faz uma consulta ao DNS para descobrir o endereço IP que hospeda a página de interesse
?
Usuário digita a URL www.ic.uff.br
Navegação Web (HTTP)
cliente servidor 10.20.30.40 200.20.15.208
Internet
2. Cliente HTTP inicia conexão TCP a servidor HTTP (processo) a www.ic.uff.br pela porta padrão 80
Usuário digita a URL www.ic.uff.br
Navegação Web (HTTP)
cliente servidor 10.20.30.40 200.20.15.208
Internet
3. Cliente HTTP envia mensagem de pedido indicando que deseja receber o objeto www.ic.uff.br/index.html
HTTP REQ ... 200.20.15.208
Usuário digita a URL www.ic.uff.br
Navegação Web (HTTP)
cliente servidor 10.20.30.40 200.20.15.208
Internet
4. Servidor HTTP recebe mensagem de pedido e envia a resposta contendo objeto solicitado
HTTP RESP ... 10.20.30.40
Usuário digita a URL www.ic.uff.br
Navegação Web (HTTP)
cliente servidor 10.20.30.40 200.20.15.208
Internet
5. Cliente HTTP recebe mensagem de resposta contendo arquivo HTML e visualiza HTML.
Mais Exemplos
• FTP – Transferir um arquivo de/para uma estação de/para um
servidor remoto
• Login remoto – Conectar um usuário a um servidor remoto – Compartilhamento de recursos
• Correio eletrônico – Transferir uma mensagem de/para agentes de usuário, que
rodam nas estações dos usuários, e entre servidores de correio
Aplicações Tradicionais
• O que as aplicações tem em comum? – Seguem o paradigma de comunicação entre hospedeiros
Objetivo é conectar estações:
localizar o conteúdo solictado
• Número e características das aplicações – Poucas à muitas e com diferentes requisitos
O Que Mudou?
O Que Mudou?
Sem fins lucrativos Lucro
• Operadores e prestadores de serviço visam lucro
• Operadores devem ser capazes de “gerenciar” – Configurar – Resolver problemas – Implementar elementos intermediários (Middleboxes)
• Proxies, firewalls, NATs etc.
– Implementar políticas • roteamento, controle de acesso, prioridade etc.
Evolução da Internet
• Princípios básicos da Internet – Definidos nos anos 70 – Responsáveis pelo grande sucesso
• No entanto, a Internet precisou se adaptar ao seu crescimento e às suas aplicações
Evolução através de “remendos”
Internet: Colcha de Retalhos
Internet
DNS CIDR
NAT
IP Multicast
IP Móvel
Cache e Firewalls
DiffServ e IntServ IP Sec
Muitas aplicações hoje são orientadas ao conteúdo
tracker
BitTorrent
O nó N recém-chegado inicialmente não possui nenhum pedaço
0 1 2 3 4
4 1 2 3 5
1 2 3 4
1 2 3
3 4 2
buffer
5
seeder
4 1 2 3 5 3 4
Proxy Web
• Introduz um elemento intermediário
www.ic.uff.br
Proxy transparente
sbrc2012.dcc.ufmg.br
Cópias temporárias
cliente
Redes de Distribuição de Conteúdo (CDNs)
Muitas aplicações hoje são orientadas ao conteúdo
Muitas aplicações hoje são orientadas ao conteúdo
Mais de 80% do tráfego da Internet atual é P2P
(Cisco, 2011)
Será que a rede pode se tornar mais eficiente para
essas aplicações?
Será que a rede pode se tornar mais eficiente para
essas aplicações?
Este é o objetivo das Redes Orientadas a Conteúdo!
Motivação
• Usuários interessados pelo conteúdo independentemente de sua localização física ou lógica
• Conteúdo – Dados codificados – Dados multimídias
• Vídeo, áudio, documentos, imagens e páginas web
– Metadados • Dados a respeito dos dados - Auxiliar a localização, interpretação e gerenciamento
Motivação
• Requisitos da distribuição de conteúdo – Persistência – Disponibilidade – Localização eficiente – Entrega eficiente
Motivação
• Requisitos da distribuição de conteúdo – Persistência – Disponibilidade – Localização eficiente – Entrega eficiente
Requisitos não são completamente
atendidos: “remendos”
Motivação
• Problema: as aplicações mudaram, mas os protocolos e os princípios da Internet NÃO! – Protocolos mais usados para distribuição de conteúdo ainda
são orientados a localização – Princípio fim-a-fim: núcleo simples e complexidade nas
bordas • Elementos do núcleo da rede basicamente encaminham os
pacotes segundo o modelo de melhor esforço • “Inovações” são implementadas pelas estações
Motivação
• Soluções paliativas – Sistemas par-a-par (P2P) – Sistemas publish/subscribe – Redes de Distribuição de Conteúdo (Content Distribution
Networks – CDNs) – Etc.
• Mais detalhes a seguir...
Redes orientadas a Conteúdo
Quero assistir “Os Vingadores”?
Quero assistir “Os Vingadores”?
Redes orientadas a Conteúdo
Quero assistir “Os Vingadores”?
Redes orientadas a Conteúdo
•
Quero assistir “Os Vingadores”?
Redes orientadas a Conteúdo
•
Roteadores de conteúdo à mais capacidade de processamento e memórias mais rápidas e de baixo custo
Quero assistir “Os Vingadores”?
Redes orientadas a Conteúdo
•
Quero assistir “Os Vingadores”?
Redes orientadas a Conteúdo
•
Diferença: elementos do núcleo da rede participam da localização e da distribuição de conteúdo
Quero assistir “Os Vingadores”?
Redes orientadas a Conteúdo
Principais características
• ROCs são baseadas em conceitos inovadores – Conteúdo nomeado – Roteamento baseado em nomes – Armazenamento de dados nos elementos do núcleo da rede – Segurança aplicada diretamente a conteúdos
• Vantagens – Mais eficiente para distribuição de conteúdos
• Disponibilidade, entrega, localização e persistência
– Soluções mais simples para problemas atuais da Internet • Mobilidade
Conceitos Básicos
• Como atribuir um nome a um conteúdo? NOMEAÇÃO
• Como localizar um conteúdo? ROTEAMENTO
• Como aumentar a disponibilidade e a eficiência da entrega de conteúdos?
ARMAZENAMENTO NA REDE (CACHING)
Conceitos Básicos
• Como atribuir um nome a um conteúdo? NOMEAÇÃO
• Como localizar um conteúdo? ROTEAMENTO
• Como aumentar a disponibilidade e a eficiência da entrega de conteúdos?
ARMAZENAMENTO NA REDE (CACHING)
Nomeação
Problema
• Na vida real
Qual o seu nome?
Shrek
Problema
• Na vida real
Qual o seu nome?
Shrek
Onde você mora?
No pântano
Problema
• Na Internet
Qual o seu nome?
Shrek do pântano
Problema
• Na Internet
Qual o seu nome?
Shrek do pântano
E se você se mudar?
Como falo com você?
???
Nomeação
• Nas ROCs: os nomes APENAS identificam os conteúdos
• Outros problemas – Como garantir?
• Unicidade • Persistência • Escalabilidade
Nomeação
• Abordagens – Nomeação plana – Nomeação hierárquica – Nomeação por atributos
Roteamento
Encaminhamento e Roteamento
• Arquitetura atual – Encaminhamento baseado no endereço IP destino – Tabelas construídas através da troca de informações entre
roteadores (intradomínio) ou baseadas em políticas (interdomínio)
Encaminhamento e Roteamento
• Arquitetura atual – Encaminhamento baseado no endereço IP destino – Tabelas construídas através da troca de informações entre
roteadores (intradomínio) ou baseadas em políticas (interdomínio)
Destino Saída
X 1
Y 1
Z 2
1
2
Z
Encaminhamento e Roteamento
• Arquitetura atual – Encaminhamento baseado no endereço IP destino – Tabelas construídas através da troca de informações entre
roteadores (intradomínio) ou baseadas em políticas (interdomínio)
Destino Saída
X 1
Y 1
Z 2
1
2 Z
Encaminhamento e Roteamento
• Nas ROCs – Encaminhamento baseado nos nomes
Conteúdo Saída
uff.br/video.avi 1
uff.br/image.avi 1
sbrc12/file.pdf 2
1
2
sbrc12/file.pdf
Armazenamento na Rede (caching)
Armazenamento na Rede
• Arquitetura atual: NÃO HÁ
Armazenamento na Rede
• Nas ROCs: armazenamento na rede é possível – Roteadores e estações podem armazenar conteúdo
• Roteadores de conteúdo
– Auxiliar a localização e a entrega de conteúdos • Roteadores atuam como “proxies” de conteúdo • Conteúdos mais próximos dos usuários
– Decisão sobre o que deve ser armazenado é local • Baseada nas requisições recebidas • Não há uma entidade responsável pela replicação
• Problemas tradicionais do uso de caches – O que armazenar? Por quanto tempo? O que descartar?
Outros desafios
• Segurança • Mobilidade • Applicações em tempo-real
Departamento de Ciência da Computação Instituto de Computação
Universidade Federal Fluminense
Pedro Braconnot Velloso
Redes orientadas a conteúdo
Introdução à Ciência da Computação