terça-feira, 17 de abril de 2012

Redes


Arquitetura de Redes

» Uma Arquitetura de Rede é um modelo abstrato que permite descrever a organização e o comportamento dos sistemas que constituem a rede
– um modelo arquitetónico baseia-se num conjunto de princípios gerais e define regras de comportamento
– o carácter abstrato permite descrever de forma clara e concisa conceitos e relações essenciais entre os componentes da rede

» O modelo deve ser essencialmente funcional e permitir
– identificar as funções necessárias à comunicação
Рorganizar as fun̵̤es em componentes (decompor / agrupar fun̵̤es de acordo com diferen̤as / semelhan̤as ou por se basearem em mecanismos comuns)
– relacionar (estruturar) os componentes funcionais
Рdefinir regras de comportamento e rela̵̤es entre os sistemas e os seus componentes para efeitos de comunica̤̣o e coopera̤̣o
» A partir dum modelo geral e universal é possível especificar e desenvolver soluções particulares e concretas baseadas no modelo




Necessidade e objetivos

» As funções a realizar numa rede têm um elevado grau de complexidade devido a vários fatores

Рgrande diversidade de fun̵̤es a realizar
  • as funções são de natureza e complexidade muito diferentes (do nível físico ao nível de aplicação) e podem ser realizadas de formas muito diversas, dependendo dos sistemas, das tecnologias e dos serviços disponíveis em cada momento
– grande diversidade de aplicações a suportar, com caraterísticas (tipo e volume de informação, padrões de tráfego) e requisitos (desempenho) muito diferentes
  • para garantir flexibilidade e adaptabilidade a um ambiente em permanente evolução, uma rede não pode (ou não deve) ser projetada e otimizada tendo em conta serviços ou aplicações particulares
– evolução tecnológica
  • novas soluções tecnológicas devem poder ser exploradas para evitar obsolescência, melhorar o desempenho e / ou reduzir custos e devem poder ser incorporadas sem necessidade de introduzir alterações radicais (e com custos elevados) nos sistemas
Рambiente de comunica̤̣o
  • caraterizado por sistemas heterogéneos e dispersos, que geram tráfego assíncrono (bursty), e que são ligados por sistemas de transmissão não totalmente fiáveis




Arquitetura em Camadas

» Uma arquitetura de rede não poder ser baseada num modelo monolítico, por várias razões

Рdificuldade de conce̤̣o e de desenvolvimento
– dificuldade de manutenção e de alteração (evolução tecnológica)
Рinflexibilidade (dificuldade de aplicar a situa̵̤es diferentes ou a novas situa̵̤es)

» A solução consiste em decompor o problema global e complexo num conjunto de problemas mais simples e tratáveis (modularidade), permitindo assim uma abordagem sistemática, com elevado grau de flexibilidade e adaptabilidade

» Os modelos arquitetónicos que têm sido adoptados em redes baseiam-se na organização das funções em módulos e na sua estruturação hierárquica, de que resultam Arquiteturas em Camadas (Layered Architectures)




Arquitetura em Camadas – Princípios

Arquiteturas em Camadas baseiam-se em três princípios

» Independência entre camadas – uma camada encapsula as funções que realiza, não sendo visível do exterior da camada a forma como essas funções são realizadas (mas apenas o serviço que oferece)

» Camadas adjacentes comunicam através duma interface – a camada inferior oferece um serviço à camada superior através da interface

» Valorização dos serviços – o serviço oferecido por uma camada à camada superior acrescenta valor ao serviço recebido da camada inferior




Arquitetura em Camadas – Vantagens

» Redução da complexidade de concepção, desenvolvimento e manutenção

» Possibilidade de desenvolvimentos independentes das várias camadas, o que pressupõe a definição das interfaces entre camadas (e os serviços associados)

» Flexibilidade de implementação, visto ser possível escolher as tecnologias e os algoritmos de controlo mais adequados a cada função ou grupo de funções

» Possibilidade de introduzir alterações numa camada, para explorar novas tecnologias entretanto disponíveis ou algoritmos de controlo mais eficientes

» Possibilidade de suportar diferentes aplicações com base num número reduzido de interfaces (serviços) comuns

» Conceção e análise de sistemas complexos com diferentes graus de abstracção

» Adoção de standards, o que permite a produção em massa (com a consequente redução de custos) e o suporte de produtos por diferentes fabricantes (o que aumenta a diversidade de escolha e a flexibilidade das soluções)




Regras de Comunica̤̣o РProtocolos

» Numa arquitetura em camadas os sistemas que constituem a rede aparecem funcionalmente organizados e estruturados em camadas – uma camada atravessa transversalmente todos os sistemas

» Uma camada é constituída por entidades (processos, recursos) responsáveis pela realização das funções específicas dessa camada

» Entidades de uma mesma camada (peer entities) residentes em sistemas diferentes cooperam para construir o serviço oferecido pela camada – o que requer a troca de mensagens de controlo e de sincronização, para além de mensagens que contêm dados (de camadas superiores)

» Esta comunicação pressupõe regras, isto é, um Protocolo

» Numa arquitetura em camadas, os Protocolos aparecem igualmente estruturados em camadas – a comunicação entre dois sistemas pode então ser decomposta e descrita com base na comunicação que ocorre em cada camada




Protocolos, Interfaces e Serviços

» Um Protocolo é um conjunto de regras de comunicação entre entidades residentes na mesma camada (peer entities), em sistemas diferentes; com excepção da camada protocolar mais baixa, esta comunicação (horizontal) é lógica (ou virtual), pois as entidades de uma camada comunicam usando o serviço da camada inferior (e este princípio é aplicado recursivamente).

» Um Protocolo contém três tipos de elementos:
– Sintaxe (formato dos dados, códigos, níveis de sinal, etc.);
РSem̢ntica (conjunto de procedimentos e mecanismos suportados em informa̤̣o de controlo);
РTemporiza̵̤es (adapta̤̣o de velocidades, sincroniza̤̣o, etc.).

» Um serviço é disponibilizado através de uma interface e requer a interação
entre entidades residentes em camadas adjacentes no mesmo sistema; esta comunicação (vertical) corresponde ao fluxo real da informação no sistema.

» Uma arquitetura fica caraterizada pelo tipo de estruturação e pela definição das funções, dos protocolos e dos serviços de cada camada.




Fluxo de dados e comunicação protocolar

Tomando como referência um modelo em camadas (OSI), a figura ilustra o fluxo real dos dados na comunicação entre dois sistemas (através de um sistema intermédio) e a comunicação lógica entre entidades das várias camadas:






Serviço

» Entidades (N+1) comunicam por meio dum protocolo (N+1) usando o serviço disponibilizado pela camada (N) através da interface entre as camadas

» A forma como o serviço é realizado não é visível do exterior da camada

» Os serviços são usados recursivamente pelas várias camadas




Modelo de Refer̻ncia Рnecessidade

» Os fabricantes de computadores desenvolveram arquiteturas próprias com o objectivo de permitir a ligação em rede dos seus sistemas
– embora baseadas em princípios e conceitos semelhantes caraterizavam-se por diferenças irreconciliáveis, no que se refere ao número de camadas, funções e protocolos de cada camada, tipo de controlo e serviços disponibilizados

» Por outro lado, começaram a implantar-se redes públicas de comunicação de dados, baseadas em diferentes tecnologias, protocolos de acesso e serviços

» Esta situação tornava os utilizadores muito dependentes das soluções de um único fabricante e tornava difícil explorar os serviços entretanto oferecidos pelos operadores de redes (em alternativa ao aluguer de circuitos)

» Alternativas a soluções específicas de cada fabricante (fechadas) exigiam
Рrecurso a redes p̼blicas de dados, usando protocolos e interfaces (servi̤os) normalizados
Рinterliga̤̣o de equipamentos de diferentes fabricantes usando protocolos universais

» Surgiu assim naturalmente a necessidade de um Modelo Arquitetónico de Referência – papel que veio a ser desempenhado pelo Modelo de Referência de Sistemas Abertos (Modelo OSI) desenvolvido pela ISO




Modelo de Referência OSI

» O Modelo de Referência de Sistemas Abertos (Open Systems Interconnection Reference Model) define regras gerais de interacção entre sistemas abertos, isto é, sistemas que obedecem a normas universais de comunicação (por oposição a sistemas fechados) e cujo comportamento externo está de acordo com o prescrito pelo modelo (princípio da visibilidade restrita)

» O Modelo OSI cria as bases para a especificação e aprovação de standards por organizações de normalização reconhecidas internacionalmente – embora os standards não façam parte do modelo

» O Modelo OSI define princípios, conceitos e relações entre componentes – é um modelo abstracto da descrição da comunicação entre sistemas (e não um modelo de implementação)

» O Modelo OSI é geral e flexível – embora definido no contexto das redes de computadores que se desenvolveram durante a década de 70, continua a ser usado como modelo de descrição de redes e serviços que se desenvolveram desde então




Modelo de Referência OSI

» O Modelo OSI propõe uma organização funcional em sete camadas, de acordo com os seguintes princípios
РAs fun̵̤es ṣo decompostas e organizadas em camadas
РCada camada realiza um conjunto de fun̵̤es relacionadas, suportadas num protocolo
– Cada camada fornece serviços à camada superior escondendo-lhe os detalhes de implementação
РCada camada usa servi̤os da camada inferior
РMudan̤as internas numa camada ṇo implicam mudan̤as nas outras camadas

» O Modelo OSI não se pode reduzir a esta visão simplificada de sete camadas protocolares – pois inclui um conjunto extremamente rico de conceitos e princípios, nomeadamente
– Princípios de estruturação em camadas
РModelo e Tipos de Servi̤o
РDescri̤̣o das Fun̵̤es a suportar pelos Protocolos das diferentes camadas
– Princípios de Endereçamento




Camadas OSI






Comunicação em ambiente OSI

A comunicação entre uma Aplicação X e uma Aplicação Y em sistemas diferentes pode ser descrita pela seguinte sequência

» Para comunicar com a Aplicação Y, a Aplicação X usa os serviços da camada 7

» As entidades da camada 7 de X comunicam com as entidades da camada 7 de Y usando um protocolo da camada 7

» O protocolo da camada 7 usa os serviços da camada 6

» … e assim sucessivamente

 




Camadas OSI (1-7)

♦ Física
» Características mecânicas, eléctricas e funcionais da interface física entre sistemas (conectores, níveis de sinal, códigos de transmissão, sincronização, etc.)
» Exemplos: RS-232, V.24, X.21

♦ Ligação de dados
» Estabelecimento, manutenção e terminação de uma ligação de dados
» Encapsulamento de dados em tramas para transmissão
» Controlo de Fluxo e Controlo de Erros (no caso de ligação fiável)
» Exemplos: HDLC, LAPB (X.25), LAPD (Canal D / RDIS), LAPF (Frame Relay), PPP (IP), LLC (LANs)

♦ Rede
» Transferência de informação (multiplexagem e comutação) entre nós da rede
» Encaminhamento de pacotes através da rede
» Serviço independente da tecnologia e dos serviços nativos de subredes físicas
» Exemplos: X.25, IP (internetworking)

 ♦ Transporte
» Transferência de informação extremo a extremo entre equipamentos terminais
» Serviço independente do serviço de Rede (ou dos serviços nativos de subredes)
» Adaptação ao serviço de Rede (fragmentação, multiplexagem de fluxos de dados)
» Eventualmente Controlo de Erro (serviço fiável) e Controlo de Fluxo
» Exemplos: TCP (fiável), UDP (não fiável)

♦ Sessão
» Controlo do diálogo entre processos e mecanismos de sincronização

♦ Apresentação
» Representação de informação (formatos, códigos) independente do conteúdo
» Resolução de diferenças sintáticas e negociação da sintaxe de transferência

♦ Aplicação
» Criação do ambiente para comunicação entre aplicações (aspectos semânticos)
» Aplicações genéricas (transferência de ficheiros, correio electrónico, etc.)
» Funções de gestão




Protocolos em ambiente OSI






Modelo de Serviço

» Um serviço é definido de forma abstrata como um conjunto de capacidades disponibilizadas por uma camada (fornecedora do serviço) à camada adjacente superior (utilizadora do serviço)

Рa descri̤̣o do servi̤o inclui apenas os aspectos sem̢nticos do servi̤o e ṇo a
forma como é realizado

» Um serviço é descrito por um conjunto de atributos e a sua descrição inclui
Рa interac̤̣o atrav̩s da interface
– os dados associados à interação
– a relação entre eventuais interações nos vários sistemas envolvidos no serviço

» A interação entre Utilizadores e Fornecedores de um serviço é descrita por meio de Primitivas de Serviço (operações elementares e indivisíveis) que
Рindicam uma ac̤̣o (realizada ou a realizar) ou o seu resultado
Рfornecem par̢metros (endere̤os, Qualidade de Servi̤o, controlo de fluxo, negocia̤̣o de facilidades, etc.)




Primitivas de Serviço

Request (Pedido)
» Invocada pelo utilizador do serviço
» Invoca um serviço (ação, procedimento) especificado por meio de parâmetros

Indication (Indicação)
» Invocada pelo fornecedor do serviço
» Indica que um serviço foi invocado pelo utilizador remoto (peer) ou notifica o
utilizador de um acontecimento ou de uma acção iniciada pelo fornecedor do serviço

Response (Resposta)
» Invocada pelo utilizador do serviço
» Resposta a uma Primitiva Indication

Confirmation (Confirmação)
» Invocada pelo fornecedor do serviço
» Indica que foi accionado ou se completou um serviço invocado pelo utilizador (Request)

 




Pontos de Acesso ao Serviço (SAPs)

» Os serviços da camada N são oferecidos a Entidades (N+1) em Pontos de Acesso ao Serviço – (N)-SAPs (Service Access Points)

» Um (N)-SAP constitui a interface lógica entre Entidades (N) e (N+1)
– um (N)-SAP é servido por uma e uma só Entidade (N) e é usado por uma e uma só Entidade (N+1)
– uma Entidade (N) pode servir vários (N)-SAPs e uma Entidade (N+1) pode usar vários (N)-SAPs

» Um (N)-SAP é identificado por um endereço-(N) – (N)-address – que o identifica univocamente na interface entre as camadas (N) e (N+1)




Tipos de Serviço

» O modelo OSI define dois tipos de serviço
– Serviços orientados à conexão (CO – Connection Oriented)
РServi̤os sem conex̣o (CL РConnectionless)

» Uma conexão-(N) – (N)-connection – é um associação estabelecida pela camada (N) para a transferência de dados entre duas ou mais Entidades (N+1); uma conexão pode ser descrita como uma associação lógica entre (N)-SAPs

» Um conexão-(N) é estabelecida, mantida e terminada por meio de um
protocolo da camada (N)
– a conexão tem um identificador único atribuído, que tem de estar presente nas mensagens trocadas pelas entidades protocolares da camada
– uma conexão é terminada localmente num SAP – essa terminação designa-se por Connection End Point (CEP); várias conexões podem terminar no mesmo SAP
Рuma conex̣o ̩ univocamente identificada na interface entre camadas por um par de identificadores (SAPI, CEPI)




Modelo OSI РProtocolos e Servi̤os










Funções Protocolares

As Funções a realizar pelos Protocolos são naturalmente diferentes de camada para camada, podendo no entanto haver funções idênticas realizadas em mais do que uma camada, embora em contextos e com objetivos diferentes

Funções típicas
» Encapsulamento de dados
» Segmentação e reassemblagem de dados
» Controlo de ligações (conexões)
» Entrega ordenada de dados
» Controlo de fluxo
» Controlo de erros
» Endereçamento
» Multiplexagem




Unidades de Dados

» As unidades de dados transferidas através da interface entre a camada (N+1) e a camada (N) designam-se por Unidades de Dados de Serviço-(N) e estão relacionadas com as necessidades dos utilizadores do serviço

(N)-SDU – Service Data Unit

» As unidades de dados trocadas entre entidades protocolares na camada (N) designam-se por Unidades Protocolares de Dados-(N) e estão relacionadas com a operação do protocolo

(N)-PDU – Protocol Data Unit

» No caso mais simples a um (N)-SDU corresponde um (N)-PDU – o protocolo da camada (N) forma um (N)-PDU encapsulando o (N)-SDU com informação adicional, que pode incluir
Рinforma̤̣o de controlo do protocolo (PCI РProtocol Control Information)
Рendere̤os (ou outros identificadores)
– código para detecção de erros




Encapsulamento






Segmentação e Reassemblagem

» Uma camada protocolar pode ter necessidade de fragmentar (segmentar) as unidades de dados (SDUs) recebidas da camada superior, transportando-as, após encapsulamento, em vários PDUs

» Para ser possível reconstituir no destino as unidades de dados iniciais (SDUs) é necessário que a informação de controlo (PCI) acrescentada pelo protocolo permita relacionar os segmentos (por exemplo, por meio de números de sequência e indicação do último segmento)

» Razões para segmentar
– Controlo de erro mais eficiente
– Acessos mais equilibrados à rede
– Atrasos menores na rede
– Buffers mais pequenos nos nós da rede

» Desvantagens
РOverheads adicionais (maior n̼mero de PDUs e mais informa̤̣o de controlo por PDU)
РMais interrup̵̤es nos processadores (tipicamente uma por segmento)
РTempos de processamento superiores (fun̵̤es adicionais a realizar)




Segmentação e Reassemblagem






Modos de operação dos protocolos

A comunicação entre entidades protocolares na mesma camada pode ser realizada de dois modos

» Não-orientado à conexão (connectionless) – as unidades de dados (PDUs) são transportadas de forma independente, sem necessidade de estabelecimento prévio de qualquer associação lógica (conexão) entre as entidades protocolares

» Orientado à conexão (connection oriented) – a transferência de unidades de dados (PDUs) só é possível após o estabelecimento de uma conexão entre as entidades protocolares

– Uma conexão (N) é estabelecida pelo protocolo da camada (N), usando PDUs de controlo (Connection Request), após invocação de uma Primitiva de Serviço do tipo (N)-Connect Request por uma entidade da camada (N+1)

РFases de uma conex̣o: estabelecimento, transfer̻ncia de dados, termina̤̣o




Fases de uma conexão






Ordenação de PDUs, Controlo de Fluxo e de Erros

» Ordenação de PDUs
– Protocolos orientados à conexão garantem que os PDUs chegam ordenados ao destino
– Se os PDUs seguirem trajectos diferentes na rede podem chegar ao destino desordenados, podendo ser reordenados, se necessário
РPDUs ṣo numerados sequencialmente para se poder garantir a sua (re)ordena̤̣o

» Controlo de Fluxo
РObjectivo: limitar (controlar) o d̩bito do emissor
– Pode ser realizado pelo recetor (e.g., window control) ou pelo emissor (e.g., rate control)
– Pode ser necessário em várias camadas protocolares (nó a nó ou extremo a extremo)

» Controlo de Erros
РProtec̤̣o contra perda ou corrup̤̣o de PDUs
РImplica dete̤̣o de erros e retransmisṣo de PDUs ṇo aceites pelo recetor
– Pode ser necessário em várias camadas protocolares (nó a nó ou extremo a extremo)




Endereçamento

♦ Numa rede é necessário identificar não só os sistemas que a constituem (hosts, routers, etc.) mas igualmente entidades protocolares, aplicações, etc., o que requer diferentes tipos e níveis de identificação ou endereçamento

» Endereços de sistemas
– Normalmente trata-se de endereços lógicos, definidos na camada de Rede
РExemplos: endere̤os IP, endere̤os NSAP (Network Service Access Point)

» Endereços de interfaces a subredes (SNPA – Subnetwork Point of Attachment)
– Endereços físicos que identificam pontos de acesso a uma subrede (interface física)
РExemplos: endere̤os MAC (LANs), endere̤os X.25

» Identificadores de processos / aplicações
РIdentificadores internos, normalmente concatenados com um endere̤o do sistema
– Exemplos: porta TCP, TSAP (Transport Service Access Point)

» Identificadores de conexão
– Em protocolos orientados à conexão, evitam a necessidade de usar endereços nos PDUs
РExemplos: identificadores de liga̤̣o de dados ou de circuito virtual

♦ Modos de endereçamento
» Unicast, multicast, broadcast




Exemplo de Endereços






Multiplexagem

♦ Um protocolo orientado à conexão pode suportar múltiplas conexões simultâneas

♦ Um serviço de uma camada (CO ou CL) suporta-se num serviço da camada adjacente inferior (CO ou CL), sendo possíveis as quatro combinações

» CO / CO – exemplo: Circuito Virtual X.25 sobre Ligação de Dados LAPB
» CO / CL – exemplo: TCP sobre IP
» CL / CL – exemplos: IP sobre serviço LAN (MAC); UDP sobre IP
» CL / CO – exemplo: IP sobre ATM; IP sobre Frame Relay

♦ No caso de um serviço CO construído sobre um serviço CO é possível a
multiplexagem de conexões entre níveis

» Um para um
» Multiplexagem ascendente – múltiplas conexões numa camada partilham uma conexão na camada inferior
» Multiplexagem descendente (Inverse Multiplexing ou splitting) – uma conexão numa camada é construída sobre múltiplas conexões na camada inferior




Arquitetura Protocolar TCP/IP

♦ Arquitetura dominante
» Desenvolvida inicialmente no âmbito da ARPANET, que começou por ser uma rede experimental financiada pelo Departamento de Defesa dos EUA, e que ligava universidades e centros de investigação
» Os protocolos da família TCP/IP foram especificados e implementados antes da maior parte dos protocolos baseados no modelo OSI
» Um grande número de serviços e aplicações disponíveis actualmente usam
TCP/IP

♦ Princípios
» As funções de comunicação são estruturadas em módulos
» Entidades comunicam com entidades homólogas (peer) noutros sistemas
» Num sistema uma entidade
РUsa servi̤os de outras entidades
РFornece servi̤os a outras entidades
– Serviços podem ser fornecidos a camadas não adjacentes (ao contrário do modelo OSI)




Arquitectura Protocolar TCP/IP

» Aplicação – serviços de utilizador
РComunica̤̣o entre processos ou aplica̵̤es
– Modelo cliente-servidor
– HTTP, FTP, telnet

» Transporte (TCP/UDP)
РTransmisṣo de mensagens extremo a extremo
– Independente do serviço de sub(redes) físicas
– Pode incluir transferência fiável (TCP)

» Internet (IP)
РEncaminhamento atrav̩s de m̼ltiplas (sub)redes interligadas (internetworking)
– Implementado em computadores (hosts) e nós intermédios (routers)

» Acesso a uma rede (subrede)
– Acesso a uma (sub)rede e comunicação entre estações (hosts / routers) ligadas à mesma (sub)rede física

» Físico
– Características eléctricas e mecânicas do acesso à (sub)rede (níveis de sinal, débitos de transmissão,
conectores, etc.)




Algumas Caraterísticas do TCP/IP





















♦ O IP (Internet Protocol) é implementado em todos os computadores e routers
♦ Cada computador tem um endereço IP único em cada subrede a que pertence
♦ Cada processo num computador tem um endereço único (porta)







OSI vs TCP/IP






Família de Protocolos TCP/IP





Fonte: FEUP
[voltar...]

Sem comentários:

Enviar um comentário