Arquitecturas de Rede

André Moreira ([email protected])
Professor Adjunto do Departamento de Engenharia Informática do ISEP

Introdução

Quando se começaram a usar redes de computadores, no inicio dos anos 70, essa iniciativa partiu de diversos fabricantes que desenvolveram tecnologias de forma mais ou menos independente entre sí:

Arquitecturas proprietárias
IBMSNA - Systems Network ArchitectureUtilização decrescente com a adopção do TCP/IP pela IBM.
DIGITALDNA - Digital Network ArchitectureAbandonada.
XEROXXNS - Xerox Network SystemsAbandonada.
AppleAppleTalkUtilização decrescente.
NovellNovell NetwareMantém alguma utilização.
Microsoft/3Com/HP/IBMLan ManagerAbandonado.
Banyan SystemsVINESAbandonado.
IBM (Sytek)NetBIOSUtilização generalizada.

Todas estas tecnologias proprietárias foram inicialmente mantidas em grande segredo o que impossibilitava a sua interligação. Quando uma instituição optava por determinado fabricante ficava irremediavelmente dependente desse fabricante sob pena de ter de substituir toda a rede.

Em resposta a esta situação a ISO ("International Organization for Standardiztion"), nos anos 70 e 80, desenvolveu o modelo OSI ("Open Systems Interconnection"). O modelo OSI pretendia estabelecer um conjunto de normas que os fabricantes seguiriam e que permitiriam a sua interligação, os sistemas que seguem estas normas passariam a ser considerados "sistemas abertos". Foi definido um conjunto de sete camadas e o propósito era de que fosse possível usar, em conjunto, camadas de distintintos fabricantes.

O modelo OSI nunca cumpriu o este objectivo, contudo fornece um conjunto de conceitos muito importantes servindo de referência a todas as evoluções técnicas neste domínio.

A missão estabelecida inicialmente para o modelo OSI acabou por ser cumprida por uma outra arquitectura, inicialmente desenvolvida para fins militares, com a designação ARPANET, foi posteriormente desenvolvida por universidades de forma aberta, sem secretismos, trata-se da arquitectura TCP/IP que é actualmente a base de funcionamento da "internet". Os fabricantes foram aderindo à arquitectura TCP/IP, não por imposição, mas sim por necessidade própria.

Todas as arquitecturas de rede estão estruturadas em camadas, isto deve-se ao grande distanciamento que existe entre o serviço proporcionado pela transmissão de sinais, por exemplo num cabo eléctrico e o que se pretende, ou seja comunicação entre aplicações, que seja fiável e transparente para os utilizadores.

Dado o grande distanciamento que existe entre o que está disponível e o que se pretende é preferivel uma implementação em camadas de tal modo que em cada camada sejam dados pequenos passos no sentido do objectivo final, assim ao implementar uma nova camada o ponto de partida são os resultados da camada anterior (conjunto de serviços disponibilizado por essa camada).

Por outro lado, nem todas as aplicações necessitam do mesmo tipo de serviços, para alguns tipos de aplicação podem ser suficientes serviços de menor qualidade, tratando-se de um modelo de camadas essas aplicações podem interagir directamente com camadas inferiores.

Modelo de referência OSI (MR-OSI)

Como foi referido os objectivos do modelo OSI nunca forma atingidos, contudo teve a virtude de absorver os conceitos existentes nas tecnologias da época e definir novos conceitos que foram posteriormente seguidos pelos fabricantes. Dado este estatuto passou a ser uma referência fundamental em tudo o que está relacionado com comunicações por computador.

O MR-OSI define sete camadas, também designadas por níveis, que são numeradas de 1 até 7. O nível um corresponde aos serviços de baixo nível de transmissão de "bits" sob a forma de sinais, por exemplo eléctricos ou ópticos. No nível mais elevado (sete) encontram-se as aplicações que utilizam a rede:

Aplicação
(7)
Apresentação
(6)
Sessão
(5)
Transporte
(4)
Rede
(3)
Ligação de dados
(2)
Ligação física
(1)

Associada a esta divisão em camadas, o MR-OSI define um conjunto de conceitos importantes:

  • Cada camada N utiliza exclusivamente os serviços da camada N-1, caso contrário as camadas deixam de fazer sentido.
  • Cada camada N presta serviços à camada N+1, logo qualquer camada N tem de saber invocar os serviços da camada N-1.
  • Os serviços da camada N são disponibilizados à camada N+1 através de um ponto de acesso ao serviço (SAP - "Service Access Point").
  • Uma camada N oferece à camada N+1 um conjunto de serviços que contêm um "valor acrescentado" relativamente aos serviços disponibilizados pela camada N-1. Para o fazer, usa os serviços disponibilizados pela camada N-1.
  • Entre duas camadas N de duas máquinas distintas as trocas de dados obdecem a um protocolo especifico dessa camada, o protocolo define as sequências de trocas de dados e o seu formato. A figura seguinte representa o conjunto de protocolos usado quando um cliente FTP usa um servidor:

    Por esta razão o conjunto dos protocolos existentes nas várias camadas toma vulgarmente a designação de "pilha de protocolos".

  • Quando uma camada N recebe dados (SDU - "Service Data Unit") da camada N+1, a existência de um protocolo obriga à adição de informação de controlo (PCI - "Protocol Control Information") a esses dados. O resultado obtido (PDU - "Protocol Data Unit") é então enviado à camada N-1. Assim cada camada adiciona informação de controlo aos dados recebidos da camada superior, esta operação é conhecida por encapsulamento.
    Deste modo o PDU da camada N corresponde ao SDU da camada N-1, ou seja PDUn = SDUn-1, considerando que o operador "+" representa o encapsulamento, para as sete camadas temos:

    PDU1 = PCI1 + ( PCI2 + ( PCI3 + (PCI4 + ( PCI5 + ( PCI6 + (PCI7 + SDU7)))))), sendo SDU7 a informação útil que efectivamente se pretende transmitir. Nas várias implementações reais existentes os PDU tomam designações especificas, tais como: trama ("frame"), pacote, "datagrama" ou célula.
  • Em qualquer camada podem existir dois tipos de serviço:
    - com ligação ("connection-oriented"):
    existe uma fase preparatória na qual se indica o endereço de destino da conexão, depois de estabelecida a ligação, os dados podem ser enviados em fluxo continuo através da ligação. Geralmente o conceito de conexão tem associado a si algumas propriedadas adicionais, como sejam: a sequência dos dados mantém-se, os dados não se perdem. Note-se que uma dada camada pode disponibilizar serviços com ligação, mesmo que as camadas inferiores não o façam.
    - sem ligação ("connectionless"):
    os dados são enviados em blocos, cada um dos quais possui associado a si um endereço de destino. Neste tipo de serviço cada bloco de dados é tratado individualmente, logo podem chegar ao destino numa sequência diferente daquela em que foram enviados. Além disso este serviço é na maioria dos casos "não fiável", o que significa que um bloco de dados pode não chegar ao destino sem que emissor ou receptor tomem conhecimento disso.
  • No diálogo entre camadas adjacentes existe o conceito de qualidade de serviço (QoS - "Quality of Service"). Assim a camada N+1 requesita serviços com determinados valores de QoS à camada N, esses valores QoS que podem ou não ser disponibilizados pela camada N, se não são disponibilizados a camada N+1 tem de voltar a tentar com outros valores, a este processo chama-se negociação dos parâmetros QoS. Alguns exemplos de parâmetros QoS são: atraso, débito, taxa de erros, ...

Dado que, com o modelo OSI, se pretendia uma total independêcia entre camadas de forma a que se pudessam usar conjuntamente camadas de diferentes fabricantes, foram colocadas grandes preocupações na definição das interfaces entre camadas, como este objectivo nunca foi conseguido este aspecto do modelo tem pouco interessa.

Pelo contrário, as funções e objectivos de cada camada definida no modelo OSI são de grande importância porque, além de serem inspiradas na tecnologia da época forma usadas como referˆncia para as evoluções até aos nosso dias.

Número da camada Designações da camada Funções e objectivos da camada
1Ligação física
Física
Nesta camada os dados provenientes do nível 2, na sua forma mais elementar (bits) são transformados em sinais, ou alteração de grandeza de sinais, adequados ao meio responsável pela propagação do mesmo desde o emissor até receptor. O receptor monitoriza o sinal e de acordo com as variações detectadas na grandeza produz bits que entrega à camada 2.
2Ligação lógica
Ligação de dados
Garante a comunicação entre pontos de uma rede que estão directamente ligados entre sí e usam o mesmo tipo de camada física. Recebe um SDU da camada 3, adiciona a sua PCI e passa o resultado (PDU) à camada 1, sob a forma de bits, os PDU da camada 2 tomam tipicamente a designação de tramas ou quadros ("frames"). Neste contexto a camada 2 pode ter de lidar com o endereçamento, detecção de erros, controlo de erros, controlo de fluxo e acesso ao meio de transmissão. Note-se que todas estas operações estão limidadas aos pontos da rede que partilham o mesmo nível físico.
3Rede A camada de rede permite ultrapassar os limites impostos pelas camadas 1 e 2 que limitam as comunicações às zonas onde são homogéneas, ou seja permite a interligação entre zonas que possuem diferentes tipos de camadas 1 e 2. Na camada de rede é definido um novo endereçamento que tem como principal caracteristica ser universal, permitindo ultrapassar os limites impostos pelas tecnologias dos níveis inferiores.

Os encaminhadores ("routers") são os dispositivos usados para interligar redes, possuem duas implementações separadas das camadas 1 e 2, que potencialmente são de tipos diferentes, a, "assente" sobre estas duas pilhas, uma camada de rede permite a interligação:

Camada de Rede
Nível 2      Nível 2
Nível 1      Nível 1

O nível de rede ocupa-se da transferência de dados fim-a-fim ou extremo-a-extremo, uma vez que trata as transferências de dados desde o emissor até ao receptor final. Neste nível os PDU tomam vulgarmente a designação de pacotes ou "datagramas", os serviços do nível de rede são considerados "não fiáveis", limitando-se a detectar a ocorrencia de erros.

4Transporte A camada de transporte tem como missão adicionar fiabilidade aos serviços fim-a-fim disponibilizados pelo nível de rede. O nível 4 deve implemantar mecanismos de controlo de erros, controlo de fluxo e controlo de sequência, estes mecanismos devem ser suficientes para que as camadas superiores não tenham de se preocupar com a disponibilidade e fiabilidade das comunicações.
5Sessão As funções desta camada tem já mais haver com as aplicações de rede do que com os problemas de comunicação, o objectivo é facilitar a implementação das aplicações, fornecendo um conjunto de funções tais como controlo do diálogo e reestablecimento automático de conexões que em lugar de ficarem a cargo das aplicações são disponíbilizadas directamente por esta camada.
6Apresentação Esta camada tem como finalidade converter a representação da informação para um formato universal e deste modo facilitar as comunicações entre aplicações que residem em ambientes muito diferentes um do outro.

Os formatos ASN.1 ("Abstract Syntax Notation 1"), adoptado pela OSF ("Open Software Foundation"), ou o XDR ("eXternal Data Representation"), usado pela SUN no RPC ("Remote Procedure Call") são dois exemplos. A camada de representação recebe os dados do nível 7 na forma local e converte-os para um destes formatos universais antes de os transferir para a camada 5. No sentido inverso realiza a conversão em sentido contrário.

Um exemplo corrente é a necessidade de conversão da forma de codificar os caracteres de texto, por exemplo entre sistemas que usam ASCII e sistemas que usam EBCDIC (IBM).

7Aplicação Esta camada tem como finalidade converter a representação da informação para um formato universal e deste modo facilitar as comunicações entre aplicações que residem em ambientes muito diferentes um do outro.

Como foi referido, o modelo OSI nunca foi seguido em datalhe pelos fabricantes, contudo muitos dos conceitos são aplicados pelo menos parcialmente.

MR-OSI na prática - Indepêndencia entre camadas

A possibilidade de usar conjuntamente camadas de diversos fabricantes nunca se tornou real. O único ponto onde isto se verifica parcialmente é entre as camadas 2 e 3. Este facto está relacionado com os fabricantes envolvidos, os fabricantes de implementações dos níveis 1 e 2 são fabricantes de "hardware/firmware", enquanto os restantes níveis são normalmente implementados por "software" de alto nível, no contexto de um sistema operativo em particular, produzido por outros fabricantes.

Os níveis 1 e 2 do modelo de referência OSI são na maioria dos casos práticos materializados por um conjunto hardware/firmware designado por interface de rede, placa de rede ou NIC ("Network Interface Card"). Mesmo neste caso é necessário um componente de "software" designado por "device driver" que serve como elo de ligação.


Níveis 3 a 7
(Sistema Operativo)
(Software)
 
Device Driver

Níveis 1 e 2
(Interface de Rede)
( Hardware + Firmware )
 

Os "device-drivers" são normalmente fornecidos pelos fabricantes das interfaces de rede, para cada combinação "Interface de Rede / Sistema Operativo" é necessário um "device-driver" apropriado. É obvio que se o modelo fosse respeitado, o acesso ao nível 2 seria realizado através de um conjunto de "Service Access Points" (SAP) que seria usado por todos os fabricantes e os "device-drivers" não seriam necessários.

MR-OSI na prática - Camadas

As camadas definidas no modelo OSI são genéricamente respeitadas, com bastantes omissões (note-se contudo que não é objectivo do modelo um carácter obrigatório em tudo o que nele foi definido).

Como já foi referido as camadas 1 e 2 são geralmente implementadas em conjunto, dando origem às interfaces de rede. Apesar de implementadas em conjunto, a distinção entre as camadas 1 e 2 também é geralmente bastante clara na prática.

A camada de rede está presente em todas as arquitecturas, contudo nem sempre com as caracteristicas apontadas no modelo OSI. Por exemplo o suporte ao encaminhamento entre tecnologias de ligação lógica e física de diferentes tipos nem sempre é suportado.

A camada de transporte nem sempre existe, mesmo quando existe, geralmente, as aplicações podem usar directamente a camada de rede, contrariando assim o modelo. Em muitos outros casos reais, não é proporcionada a fiabilidade que o modelo define para esta camada.

As camadas de sessão e de apresentação raramente existem, geralmente a implementação da respectiva funcionalidade fica a cargo das proprias aplicações.

Arquitecturas de ligação física e lógica

Na prática, pelas razões anteriormente apontadas, existe quase sempre uma separação total entre os níveis 1/2 e os restantes níveis. Uma vez que nestes níveis não há necessidade de usar tecnologias homogeneas para garantir comunicações globais (isso é garantido pela camada de rede). Entre implementações LAN e WAN, a diversidade é enorme, a titulo de exemplo apresenta-se o caso da arquitectura IEEE 802 muito generalizado nas LAN e com várias camadas bem definidas:

Como se pode observar a camada 2 do modelo OSI aparece aqui dividida em duas subcamadas, LLC e MAC, embora não ilustrado na figura, também a camada 1 pode ser dividida em duas subcamadas PLS/PMI e MDI.

Arquitectura TCP/IP

Em muitos aspectos a evolução da arquitectura TCP/IP pode-se considerar como sendo a abordagem contrária à do modelo OSI. O modelo OSI é uma definição teórica, abundante em conceitos que abranjem todas as situações potenciais. A arquitectura TCP/IP, pelo contrário foi sendo definida à medida que as necessidades reais se iam revelando. É por isso uma arquitectura extremamente pragmática onde apenas está definido o que é efectivamente necessário nas situações mais correntes. Outro dos factores de sucesso para o TCP/IP é o facto de ser uma tecnologia aberta, na realidade, como muitos outros projectos do genero, qualquer um pode contribuir.

Curiosamente, usando uma abordagem oposta, a arquitectura TCP/IP acabou por conseguir atingir alguns dos principais objectivos do modelo OSI, nomeadamente no que toca a conseguir interligar sistemas de diversos fabricantes.

Os protocolos TCP/IP começaram a ser desenvolvidos no inicio dos anos 70, inicialmente para uma rede com fins militares, nos anos 80 começou a ser criada a "internet", usada basicamente por instituições de investigação/educação. Desde essa altura o número de ligações nunca parou de aumentar, numa fase inicial mais limitada às instituições de ensino e investigação, com a RIPE ("Réseaux IP Européens") e posterior criação do EBONE ("backbone" europeu de ligação à "internet").

Em portugal, no inicio dos anos 90 é criada a RCCN ("Rede para a Comunidade Científica Nacional"), a interligar diversas universidades públicas, ligada por sua vez ao EBONE. Nesta altura a "internet" estava ligada a cerca de 5 milhões de computadores, mas ainda não se tinha instalado nas áreas comerciais e domesticas. O sistema operativo dominante na "internet" era o Unix, ao qual se fica a dever esta fase de expansão inicial na qual TCP/IP era sinónimo de UNIX.

Nesta altura as arquitecturas proprietárias ainda tinham uma expressão significativa no mundo empresarial e proliferavam produtos de interligação entre sistemas proprietários que permitiam um certo grau de integração, mas sempre parcial.

Dada a frustração geral pelas dificuldades de integração e devido ao facto de a "internet" proporcionar quantidades de informação muito grandes, começou a ser exigido aos sistemas o suporte de TCP/IP e esta arquitectura começou a dominar rapidamente o mercado. Juntamente com chegada da "internet" aos meios domésticos assistiu-se a uma verdadeira explosão no número de computadores ligados, actualmente perto dos 100 milhões.

As camadas definidas na arquitectura TCP/IP correspondem de certo modo às do modelo OSI, as camadas 1 e 2 não são especificadas, a primeira camada é de rede, e mediante "drivers" apropriados funciona sobre uma qualquer arquitectura de níveis 1/2.

A camada de rede da arquitectura TCP/IP disponibiliza um serviço de "datagramas" através do protocolo IP, com endereçamento universal e independente dos níveis inferiores. Juntamente com o protocolo IP existem diversos protocolos auxiliares como o ARP e o ICMP que são usados internamente pela camada.

A camada de transporte disponibiliza dois tipos de serviço, com e sem ligação. O serviço "com ligação" é disponibilizado através do protocolo TCP, o serviço "sem ligação" usa o protocolo UDP. A arquitectura TCP/IP termina no nível de transporte, o restante, quando necessário, terá de ser implementado pelas aplicações.

OSI   TCP/IP
AplicaçãoAplicações de rede
Apresentação
Sessão
TransporteUDP + TCP
RedeIP

Na arquitectura TCP/IP existe respeito pelas camadas, as aplicações apenas podem usar a camada de transporte, não lhes sendo possível aceder a camadas inferiores (num sistema com segurança, tais como o NT ou Unix, esse tipo de acesso apenas é possível aos "super-utilizadores").

Outras Arquitecturas

Existem várias arquitecturas, consideradas proprietárias que ainda tem expressão actual, a maioria delas assumiram-se como "standards" de facto e procederam a uma abertura em maior ou menor grau que permitiu a sua integração em plataformas de diferentes tipos, garantindo a sua sobrevivencia até aos dias de hoje.

Redes NetBIOS

A especificação NetBIOS ("Network Basic Input Output System") foi inicialmente desenvolvida para a IBM e é actualmente muito usada pelos sistemas operativos da Microsoft.

Esta especificação ajusta-se à camada de sessão do modelo OSI e por isso usa serviços de transporte proporcionados por uma qualquer pilha de protocolos. Esta é uma das suas grandes vantagens do NetBIOS: a possibilidade de funcionar sobre diversos tipos de implementações das camadas inferiores.

O NetBIOS pode funcionar por exemplo sobre TCP/IP (tomando então a designação NBT ou NetBT), sobre IPX ou directamente sobre tramas LLC ("Logical Link Control") do nível de ligação lógica, tomando neste último caso a designação NetBEUI ("Network Basic Extended User Interface").

OSI   MicroSoft
AplicaçãoServidores/Clientes
Apresentação
 SMB
SessãoNetBIOS

A principal desvantagem do NetBIOS é que, tendo sido desenvolvido para redes locais, utiliza intensivamente a comunicação em "broadcast". Como este tipo de comunicação tem obrigatoriamente de ser bloqueada nos encaminhadores ("routers") o alcance do NetBIOS é muito limitado.

As limitações resultantes da utilização de "broadcast" foram entretanto muito atenuadas pelo desenvolvimento da Microsoft de servidores de nomes NetBIOS conhecidos por WINS ("Windows Internet Name Service").

Sobre a camada NetBIOS as redes MicroSoft usam o protocolo SMB ("Server Message Block") que fornece os serviços base para as aplicações servidoras e clientes de ficheiros.

Redes Novell

A manutenção de algum mercado pela Novell deve-se em grande parte à eficia e estabilidade dos seus servidores dedicados que usam um sistema operativo especialmente desenvolvido para servir ficheiros, o Netware.

A arquitectura Novell é definida acima do nível 2, para o efeito é usado o protocolo IPX ("Internet Packet Exchange"), o IPX é derivado do IDP ("Internetwork Datagram Protocol") das redes XNS. O protocolo IPX suporta routing e define um endereçamento parcialmente independente dos níveis 1/2 (usa o endereçamento do nível 2 e acrescenta-lhe um identificador de rede).

Comparando a arquitectura Novell com a arquitectura TCP, o protocolo IPX proporciona serviços equivalentes aos do UDP, assim na camada de transporte das redes Novell apenas existe o servico "com conexão" que é implementado com recurso ao protocolo SPX ("Sequenced Packet Interchange"), derivado do SPP ("Sequenced Packet Protocol) das redes XNS.

Nos níveis superiores surge o protocolo de acesso aos servidores, o NCP ("Netware Core Protocol") que se ajusta ao nível de sessão do modelo OSI.

OSI   Novell
AplicaçãoServidores/Clientes
Apresentação
SessãoNCP
TransporteSPX
RedeIPX

Note-se que na arquitectura Novell as camadas não são normalmente respeitadas, por exemplo o NCP, por razões de eficiência, utiliza muito mais o IPX do que o SPX. Apesar de o IPX ser um verdadeiro protocolo de rede, suportando encaminhamento ("routing"), o NCP utiliza intensivamente "broadcast", por exemplo com o protocolo SAP ("Service Advertising Protocol"), ou as mensagens "Get Nearest Server", este facto acaba por limitar a dimensão deste tipo de rede.

As versões mais recentes de clientes/servidores Novell já permitem a substituição dos protocolos IPX/SPX pela pilha TCP/IP, passando o NCP a usar os protocolos UDP e TCP, em lugar do IPX e do SPX.