Introdução à Ciência da Computaçãojulius/icc/roc.pdf– Gabriel M. De Brito, Pedro B. Velloos...

Preview:

Citation preview

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