Arquitecturas de RedeProfessor Adjunto do Departamento de Engenharia Informática do ISEP IntroduçãoQuando 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í:
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:
Associada a esta divisão em camadas, o MR-OSI define um conjunto de conceitos importantes:
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.
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.
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ógicaNa 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/IPEm 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.
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 ArquitecturasExistem 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").
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.
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. |