Redes de Computadores Princpios metodolgicos das redes de

  • Slides: 31
Download presentation
Redes de Computadores Princípios metodológicos das redes de computadores Departamento de Informática da FCT/UNL

Redes de Computadores Princípios metodológicos das redes de computadores Departamento de Informática da FCT/UNL 1

Objetivos do Capítulo • A Internet e as redes em geral são sistemas complexos

Objetivos do Capítulo • A Internet e as redes em geral são sistemas complexos • Para lidar com essa complexidade usamos algumas ferramentas metodológicas (princípios e modelos) • Nesta lição vamos ver ou rever os principais princípios usados nas redes de computadores 2

Princípios • Extremo a extremo (end-to-end) • Abstração – o isolamento entre camadas /

Princípios • Extremo a extremo (end-to-end) • Abstração – o isolamento entre camadas / níveis • Encapsulamento • Flexibilidade na afectação dos recursos • Recursividade: a Internet é uma rede de redes 3

Princípio end-to-end • As aplicações necessitam de muitas funcionalidades: – comprimir os dados –

Princípio end-to-end • As aplicações necessitam de muitas funcionalidades: – comprimir os dados – assegurar autenticação e segurança – ter fiabilidade – servir objetos a partir de caches – migrar os canais se os computadores se moverem • Porque é que a rede não pode ajudar tratando disso tudo? 4

The End-to-End Argument fiabilidade aplicação a aplicação Programa aplicação fiabilidade transporte a transporte Transporte

The End-to-End Argument fiabilidade aplicação a aplicação Programa aplicação fiabilidade transporte a transporte Transporte (TCP, UDP, . . . ) Interface fiabilidade nó a nó fiabilidade em cada canal 5

The End-to-End Argument The function in question can completely and correctly be implemented only

The End-to-End Argument The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the end points of the communication system. Therefore, providing that questioned function as a feature of the communication system itself is not possible. (Sometimes an incomplete version of the function provided by the communication system may be useful as a performance enhancement. ) We call this line of reasoning. . . “the end-to-end argument. ” Saltzer, Reed, and Clark, End-to-end Arguments in System Design, 1984 6

Princípio end-to-end • Só deve ser implementado num nível aquilo que não pode ser

Princípio end-to-end • Só deve ser implementado num nível aquilo que não pode ser implementado adequadamente num nível mais junto à aplicação (empurrar para os extremos) ou cuja implementação a esse nível teria um custo muito mais elevado. Exemplo: – A fiabilidade de um canal TCP é mais fácil de implementar ao nível end-to-end (nos computadores) – Certas aplicações preferem outro tipo de fiabilidade • Mas deve ser implementado no interior da rede tudo aquilo que é comum e partilhado universalmente nos níveis superiores – O encaminhamento de pacotes é partilhado por todos os níveis superiores 7

Vantagens • Só se paga o que se usa – Se o nível rede

Vantagens • Só se paga o que se usa – Se o nível rede implementar funcionalidades que não uso, tenho de as pagar à mesma (e. g. ausência de perca de pacotes ao nível rede, segurança ao nível dos canais, . . . ) • O sistema é globalmente mais flexível e mais extensível – Os níveis superiores podem redefinir mais facilmente funcionalidades não pensadas inicialmente • Definir componentes, relações e interfaces é o papel nobre dos arquitetos – Um sistema vai sempre evoluir; se tiver uma boa arquitetura, a mesma resistirá a novos requisitos 8

Estruturação das redes • Numa rede estão envolvidas muitas componentes (computadores, nós, canais, protocolos,

Estruturação das redes • Numa rede estão envolvidas muitas componentes (computadores, nós, canais, protocolos, aplicações, software, . . . ) • O conjunto tem uma dada configuração física e já vimos que a rede está estruturada em sub-redes • Uma outra visão da estrutura da rede baseia-se em abstrações horizontais ou camadas • Cada camada representa um conjunto de funcionalidades bem definidas oferecendo uma interface e um conjunto de serviços bem definidos à camada superior • Para funcionar, cada camada utiliza os serviços da camada inferior 9

Estruturação por camadas - Porquê ? • Modularidade e abstração - subdividir o problema

Estruturação por camadas - Porquê ? • Modularidade e abstração - subdividir o problema – Cada camada repousa sobre os serviços (interface) da camada inferior – Cada camada exporta serviços para a camada superior • A interface entre camadas define os serviços – Esconde os detalhes de implementação – Permite a evolução independente de cada camada Nível aplicação Nível transporte Nível rede Nível canal

Exemplos • Um protocolo do nível aplicacional (e. g. HTTP) não necessita de saber:

Exemplos • Um protocolo do nível aplicacional (e. g. HTTP) não necessita de saber: – Como é implementado o TCP? – Qual a configuração e o encaminhamento no nível rede? • O algoritmo de encaminhamento não é definido em função das características dos canais nem do funcionamento do protocolo TCP Nível aplicação Nível transporte Nível rede Nível canal

As camadas em TCP/IP File Transfer Protocol (FTP) … Protocol (. . . P)

As camadas em TCP/IP File Transfer Protocol (FTP) … Protocol (. . . P) Hyper Text Transfer Protocol (HTTP) Domain Name System (DNS) Realtime Transfer Protocol (RTP) … Protocol (. . . P) Telnet Protocol Transport Control Protocol (TCP) User Datagram Protocol (UDP) Internet Protocol (IP) Ethernet SONET ATM 12

Protocolos e níveis HTTP Mensagens HTTP TCP Segmentos TCP IP IP Pacotes IP Interface

Protocolos e níveis HTTP Mensagens HTTP TCP Segmentos TCP IP IP Pacotes IP Interface SONET Interface ethernet Frames ethernet IP Pacotes IP Interface ethernet Interface SONET Frames SONET Pacotes IP Interface ethernet Frames ethernet 13

As camadas não têm defeitos? 14 • A camada N pode duplicar funcionalidades das

As camadas não têm defeitos? 14 • A camada N pode duplicar funcionalidades das inferiores – E. g. , tratamento de erros e retransmissões • Algumas camadas necessitam de informação de outras – E. g. , timestamps, maximum transmission unit size (MTU) • A adesão estrita ao modelo pode ter pior desempenho – E. g. , porque se escondem detalhes sobre o que se passa de facto • Algumas camadas não têm uma fronteira bem definida – Existem interdependências devido a necessidades de desempenho – Existem dependências que estão normalizadas (header checksums) • Os cabeçalhos podem tornar-se realmente muito grandes – Às vezes maiores que o conteúdo de dados pacotes (payload) 14

Encapsulamento • Uma mensagem tem uma parte com dados relevantes para um dado nível,

Encapsulamento • Uma mensagem tem uma parte com dados relevantes para um dado nível, o cabeçalho, e uma parte opaca a esse nível, os dados – Os dados podem por sua vez ser vistos da mesma forma – Várias analogias possíveis: um envelope, uma pilha de frames de invocação de procedimentos, . . . • Geralmente, cada nível tem um cabeçalho específico: –O cabeçalho TCP contém os dados necessários para a implementação do canal TCP –O cabeçalho IP contém os dados necessários ao encaminhamento –O cabeçalho do nível canal tem os dados necessários ao funcionamento do canal 15 15

Encapsulamento Aplicação Mensagem Aplicacional Bytes da mensagem do nível aplicação (e. g. HTTP) Transporte

Encapsulamento Aplicação Mensagem Aplicacional Bytes da mensagem do nível aplicação (e. g. HTTP) Transporte Segmento TCP Payload TCP Cabeçalho TCP Bytes da mensagem do nível aplicação (e. g. HTTP) Rede Payload IP Pacote IP Canal Cabeçalho IP Cabeçalho TCP Bytes da mensagem do nível aplicação (e. g. HTTP) Payload do frame Ethernet Frame Ethernet Cabeçalho IP Cabeçalho TCP Bytes da mensagem do nível aplicação (e. g. HTTP) 16

Mas o princípio é geral • O HTTP permite transferir objetos (uma sequência opaca

Mas o princípio é geral • O HTTP permite transferir objetos (uma sequência opaca de bytes) de um servidor para um cliente. Que contêm esses objetos? – um ficheiro, código executável, . . . – vários frames de uma imagem, . . . • Um canal pode ser lógico ao invés de físico – Encapsulando pacotes IP na parte de dados de um datagrama UDP ou através de um canal TCP – Encapsulando pacotes IP dentro de um canal seguro implementado ao nível aplicação – Encapsulando pacotes IP dentro de pacotes IP 17

Flexibilidade na utilização dos recursos, isto é, ausência de afetação estática dos mesmos 18

Flexibilidade na utilização dos recursos, isto é, ausência de afetação estática dos mesmos 18

Afetação flexível de recursos • Semelhante à evolução que teve lugar nos sistemas de

Afetação flexível de recursos • Semelhante à evolução que teve lugar nos sistemas de operação – Memória dinâmica versus partições estáticas – Escalonamento dinâmico da CPU – Gestão dinâmica do espaço no disco • Um fluxo de dados é dividido em pacotes que atravessam de forma flexível a rede –Cada pacote tem um cabeçalho com o endereço do destino –O encaminhamento é baseado no endereço de destino –Os comutadores podem memorizar os pacotes momentaneamente usando uma forma de trabalho dita store & forward • Os extremos põem a mensagem em pacotes – a origem decompõe a mensagem original – o destino final reconstrói a mensagem original 19

Serviço IP: Best-Effort 20

Serviço IP: Best-Effort 20

Serviço IP: Best-Effort • Encaminhamento como base no “o melhor que for possível” (best

Serviço IP: Best-Effort • Encaminhamento como base no “o melhor que for possível” (best effort) – Os pacotes podem perder-se – Os pacotes podem ser corrompidos – Os pacotes podem ser entregues fora de ordem 21

Modelo do serviço IP: porquê melhor esforço? • O serviço de rede nunca diz

Modelo do serviço IP: porquê melhor esforço? • O serviço de rede nunca diz “lamento mas …” – Portanto não precisa de reservar capacidade ou memória – Portanto não precisa de detetar obrigatoriamente erros – Portanto não precisa de memorizar os pacotes de uma sequência • Torna-se assim mais fácil contornar as avarias – Durante as reconfigurações podem acontecer falhas • … mas o nível de serviço real tem de ser suficiente para que o transporte e as aplicações produzam resultados aceitáveis e úteis 22

Best-Effort é suficiente? • Não se detetam nem corrigem obrigatoriamente os erros – Os

Best-Effort é suficiente? • Não se detetam nem corrigem obrigatoriamente os erros – Os níveis superiores podem fazê-lo • Sucessivos pacotes podem seguir caminhos diferentes – Desde que cheguem ao destino não é demasiado grave • Se chegarem fora de ordem – O recetor pode ordená-los (se necessário) • Os pacotes podem chegar atrasados ou nunca – O emissor pode reemitir (se necessário) 23

O Modelo dos protocolos Internet 24 Maior diversidade Aplicações e transporte Um único protocolo

O Modelo dos protocolos Internet 24 Maior diversidade Aplicações e transporte Um único protocolo Protocolo IP Nós e canais O gargalo facilita a interoperação 24

Estrutura física da Internet • A Internet é uma rede de redes – –

Estrutura física da Internet • A Internet é uma rede de redes – – Redes de acesso Redes de transito Redes de distribuição de conteúdos Guardas fronteiriços — Routers & Middleboxes • A Internet tem um centro formado por um pequeno número de redes gerais e de redes de conteúdos de âmbito transcontinental • Alguns subsistemas críticos suportam o funcionamento do conjunto – DNS – O sistema mundial de encaminhamento 25

A Internet é uma rede de redes Rede de transito Rede institucional Rede de

A Internet é uma rede de redes Rede de transito Rede institucional Rede de acesso móvel Rede de acesso Rede de transito Tier 1 2 -26

A Internet é uma rede de redes • • Os computadores estão ligados à

A Internet é uma rede de redes • • Os computadores estão ligados à Internet através de redes de acesso — ISPs (Internet Service Providers) de acesso As redes de acesso têm de comunicar umas com as outras através de redes de trânsito de forma a que todos os computadores possam comunicar • Os ISPs de trânsito são nacionais, regionais ou mundiais • A concorrência e a geografia introduz novos ISPs e novos tipos de ISPs 27

Um backbone regional (Géant) 28

Um backbone regional (Géant) 28

Conexões Intercontinentais 29

Conexões Intercontinentais 29

Estrutura da Internet • A Internet desenvolveu-se segundo um modelo aberto, baseado em colaboração

Estrutura da Internet • A Internet desenvolveu-se segundo um modelo aberto, baseado em colaboração e competição – No início existia apenas um único backbone académico, isto é, uma rede de trânsito – Após a comercialização, teve lugar uma explosão de redes de trânsito globais, regionais, etc. e de infraestruturas de interligação de redes (e. g. IXPs) – O crescimento do papel das redes de conteúdos deu origem ao aparecimento das redes dos fornecedores de conteúdos – O DNS e o subsistema de encaminhamento mundial são críticos ao funcionamento do conjunto • As vantagens induzidas pelos fatores de escala conduziram a um núcleo central de redes – Baseado num pequeno conjunto de algumas redes transcontinentais 30

Conclusões • Todos os sistemas complexos são desenhados com princípios, modelos e metodologias –

Conclusões • Todos os sistemas complexos são desenhados com princípios, modelos e metodologias – Nas redes é igual – Extremo-a-extremo, camadas, encapsulamento, afectação flexível de recursos • A evolução das redes de computadores tem paralelos com os sistemas de operação, os sistemas distribuídos e o software • A estrutura da Internet evoluiu naturalmente a partir dos seus princípios fundamentais 31