CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO. PROF a ELIZABETH SPECIALSKI INE - UFSC beth@inf.ufsc.br



Documentos relacionados
Evolução na Comunicação de

Introdução. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Março de 2006

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

09/06/2011. Profª: Luciana Balieiro Cosme

5.2 MAN s (Metropolitan Area Network) Redes Metropolitanas

Redes de Comunicações. Redes de Comunicações

Introdução. Arquitetura de Rede de Computadores. Prof. Pedro Neto

Figura 1 Taxas de transmissão entre as redes

Redes de Computadores

Redes de Computadores. Prof. Késsia Marchi

REDES DE COMPUTADORES

Rede Corporativa. Tutorial 10 mar 2009 Fabio Montoro. Introdução

Teleprocessamento e Redes Universidade Católica do Salvador. Aula 04 - Estrutura de Redes de Comunicação. Objetivo : Roteiro da Aula :

Telecomunicações. Prof. André Y. Kusumoto

Tecnologia e Infraestrutura. Conceitos de Redes

Informática I. Aula Aula 22-03/07/06 1

Cap 01 - Conceitos Básicos de Rede (Kurose)

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Topologia de rede Ligação Ponto-a-Ponto

Professor Esp. Douglas Diego INESUL- ANÁPOLIS

Curso Técnico Integrado em Manutenção e Suporte em Informática

REDE DE COMPUTADORES

Rede de Computadores

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

Capítulo 4 - Roteamento e Roteadores

Arquitetura de Rede de Computadores

REDE DE COMPUTADORES

Topologias e abrangência das redes de computadores. Nataniel Vieira nataniel.vieira@gmail.com

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede

RCO2. LANs, MANs e WANs Visão geral

Tipos de Rede. Maria João Bastos MegaExpansão

Redes de Dados e Comunicações. Prof.: Fernando Ascani

Meio Físico. Mensagem. Protocolo. Emissor e Receptor. Data Terminal Equipment Data Communications Equipment

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60

Entendendo como funciona o NAT

Unidade 1. Conceitos Básicos

Prof. Edson Maia Graduado em Web Design e Programação Bacharel e Licenciado em Geografia Especialista em Gestão Ambiental Complementação para

Redes de Computadores. Professor MSc Wylliams Barbosa Santos wylliams.wordpress.com

Márcio Leandro Moraes Rodrigues. Frame Relay

Introdução às Redes de Computadores

Administração de Sistemas de Informação Gerenciais

Introdução ao Modelos de Duas Camadas Cliente Servidor

IW10. Rev.: 02. Especificações Técnicas

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação


Revisão. Karine Peralta

PROJETO E IMPLANTAÇÃO DE INTRANETS

Estrutura de um Rede de Comunicações. Redes e Sistemas Distribuídos. Tarefas realizadas pelo sistema de comunicação. Redes de comunicação de dados

Profs. Deja e Andrei

Fundamentos em Informática

Rede de Computadores. Carlos Eduardo Pereira GCAR GCAR. IMP= Interface Message Processor. hosts. IMPs. Referência: Tanenbaum - Redes de Computadores

PARANÁ GOVERNO DO ESTADO

Fernando Albuquerque - fernando@cic.unb.br REDES LAN - WAN. Fernando Albuquerque (061) fernando@cic.unb.br

Centro Tecnológico de Eletroeletrônica César Rodrigues. Atividade Avaliativa

REDE DE COMPUTADORES

UNIP UNIVERSIDADE PAULISTA. Curso: Redes de Computadores e Telecomunicações

Introdução Redes de Computadores. Filipe Raulino

Redes de Computadores. Prof. José Gonçalves Pereira Filho Departamento de Informática

Tecnologia de Redes de Computadores - aula 5

Tecnologia da Informação e Comunicação. Euber Chaia Cotta e Silva

Estrutura de um Rede de Comunicações. Redes de comunicação. de Dados. Network) Area. PAN (Personal( Redes de. de dados

ICORLI INSTALAÇÃO, CONFIGURAÇÃO E OPERAÇÃO EM REDES LOCAIS E INTERNET

Sistemas Distribuídos

Introdução às Redes de Computadores

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Prof. Samuel Henrique Bucke Brito

:: Telefonia pela Internet

Prof. Samuel Henrique Bucke Brito

Redes de Computadores. Prof. André Y. Kusumoto

1. NÍVEL CONVENCIONAL DE MÁQUINA

REDES DE COMPUTADORES

Redes de Computadores I Conceitos Básicos

Estrutura de um Rede de Comunicações

Redes de Computadores. Jeronimo Costa Penha Senai CFP - JIP

REDES DE COMPUTADORES

Introdução às Redes de Computadores. Por José Luís Carneiro

TELECOMUNICAÇÕES E REDES

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Redes de Computadores

(Open System Interconnection)

Universidade de Brasília

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

Prof. Manuel A Rendón M

REDES DE COMPUTADORES

Protocolos Hierárquicos

AULA Redes de Computadores e a Internet

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 16

Redes de Computadores

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Administração de Sistemas de Informação I

Engenharia de Software III

REDES DE COMPUTADORES

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Claudivan C. Lopes

Unidade 2.1 Modelos de Referência

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

TELECOMUNICAÇÕES E REDES

Transcrição:

CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO PROF a ELIZABETH SPECIALSKI INE - UFSC beth@inf.ufsc.br FLORIANÓPOLIS, MARÇO DE 2000

Apresentação Profa. Elizabeth Sueli Specialski, MSC. UFRGS (Brasil, 1981) Elizabeth Sueli Specialski graduou-se em Matemática pela Pontifícia Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação pela Universidade Federal do Rio Grande do Sul em 1981 e o título de Doutora em Engenharia pela Universidade Federal de Santa Catarina em março de 2000. É professora no nível Adjunto IV da Universidade Federal de Santa Catarina e vem atuando em pesquisa e formação na área de Redes de Computadores e de Gerência de Redes de Computadores e de Telecomunicações junto ao Departamento de Informática e de Estatística da UFSC nos cursos de Graduação em Computação e Pós- Graduação em Computação e em Engenharia de Produção. Seu desempenho é traduzido pela publicação de mais de 50 trabalhos em Congressos Nacionais e Internacionais, palestras convidadas e consultorias realizadas junto a empresas fornecedoras de produtos e serviços de telecomunicações. Endereço para contato: Prof. Elizabeth Sueli Specialski Departamento de Informática e de Estatística Universidade Federal de Santa Catarina Campus Universitário Trindade 88040-900 Florianópolis SC Tel.: (048) 331-9498 Fax: (048) 331-9566 E-mail: beth@inf.ufsc.br Arquiteturas de Redes 2

Sumário Capítulo 1 - Introdução às Redes de Comunicação... 6 1.1 INTRODUÇÃO...6 1.2 HISTÓRICO DAS REDES DE COMUNICAÇÃO...7 1.3 IMPORTÂNCIA DAS REDES DE COMUNICAÇÃO...8 1.4 O HARDWARE DE REDE...9 1.4.1 As diferentes topologias...9 1.4.2 Topologia física X topologia lógica...11 1.4.3 Categorias de redes...11 1.5 O SOFTWARE DE REDE...12 1.5.1 Serviços necessários à comunicação...12 1.5.2 A organização de funções...14 1.5.3 A estruturação em camadas...15 Capítulo 2 - Conceitos Básicos do Software de Rede... 17 2.1 INTRODUÇÃO...17 2.2 HIERARQUIA DE PROTOCOLOS...17 2.3 DIFERENÇAS ENTRE SERVIÇO E PROTOCOLO...19 2.4 QUESTÕES DE PROJETO RELACIONADAS ÀS CAMADAS...19 2.5 INTERFACES E SERVIÇOS...20 2.6 SERVIÇOS ORIENTADOS À CONEXÃO E SEM CONEXÃO...21 2.7 PRIMITIVAS DE SERVIÇO...22 Capítulo 3 - Arquiteturas de Redes... 25 3.1 INTRODUÇÃO...25 3.2 CLASSIFICAÇÃO DAS REDES DE COMPUTADORES...25 3.2.1 Redes Locais...25 3.2.2 Redes Metropolitanas...26 3.2.3 Redes Geograficamente Distribuídas...26 3.2.4 Redes Sem Fio...27 3.2.5 Ligação entre Redes...28 3.2.6 Parâmetros de comparação...28 3.3 AS ARQUITETURAS DE REDE...29 3.4 A ARQUITETURA DO RM/OSI...30 3.5 A ARQUITETURA TCP/IP INTERNET...30 3.6 AS REDES LOCAIS...31 3.6.1 O RM-OSI e as redes locais...31 3.6.2 O padrão IEEE 802...32 3.6.3 Interconexão de redes locais...33 Capítulo 4 - Modelos de Referência... 35 4.1 INTRODUÇÃO...35 4.2 O MODELO DE REFERÊNCIA OSI...35 4.2.1 As camadas do RM-OSI...37 4.3 O MODELO DE REFERÊNCIA TCP/IP...39 4.3.1 As camadas do TCP/IP...39 4.4 ATM E O MODELO DE REFERÊNCIA B-ISDN...42 4.4.1 Elementos básicos ATM...43 4.4.2 Camadas de Adaptação ATM...44 Arquiteturas de Redes 3

4.4.3 Estrutura da AAL...46 4.4.4 Meio de Transmissão...46 4.4.5 Camada física do modelo de referência B-ISDN...47 4.5 OUTROS EXEMPLOS DE REDES...47 Capítulo 5 - A Camada Física... 50 5.1 INTRODUÇÃO...50 5.2 OS SUPORTES DE TRANSMISSÃO...50 5.2.1 O par de fios trançados...50 5.2.2 Os cabos coaxiais...50 5.2.3 As fibras óticas...51 5.2.4 As redes sem fio (radiodifusão)...51 5.3 ASPECTOS DA TRANSMISSÃO DE DADOS...52 Capítulo 6 - A Camada de Enlace de Dados... 55 6.1 INTRODUÇÃO...55 6.2 AS CLASSES DE SERVIÇOS DE ENLACE...55 6.3 AS PRIMITIVAS DE ENLACE...56 6.4 O CONCEITO DE QUADRO...57 6.5 O CONTROLE DE ERRO...58 6.5.1 Os códigos de correção de erro...59 6.5.2 Os códigos de detecção de erro...60 6.5.3 Procedimentos para controle de erro...61 6.6 O CONTROLE DE FLUXO...64 6.7 O CONTROLE DE ACESSO AO MEIO...65 6.8 ALGUNS EXEMPLOS DE PROTOCOLOS DE ENLACE...66 Capítulo 7 - A Camada de Rede... 68 7.1 INTRODUÇÃO...68 7.2 SERVIÇOS OFERECIDOS PELA CAMADA DE REDE...68 7.3 ORGANIZAÇÃO INTERNA DA CAMADA DE REDE...70 7.4 AS PRIMITIVAS DE SERVIÇO DE REDE...71 7.5 O ENDEREÇAMENTO DE REDE...73 7.6 A FUNÇÃO DE ROTEAMENTO...74 7.6.1 Algoritmo do caminho mais curto...74 7.6.2 Roteamento multicaminhos...75 7.7 O CONTROLE DE CONGESTIONAMENTO...76 7.7.1 A pré-alocação de buffers...76 7.7.2 A destruição de pacotes...77 7.7.3 O controle de fluxo...77 7.7.4 Outras técnicas...77 7.8 LIGAÇÕES INTER-REDES...77 Capítulo 8 - A Camada de Transporte... 79 8.1 INTRODUÇÃO...79 8.2 SERVIÇOS OFERECIDOS PELA CAMADA DE TRANSPORTE...79 8.3 AS PRIMITIVAS DE SERVIÇO DE TRANSPORTE...80 8.4 OS PROTOCOLOS DE TRANSPORTE...82 8.5 ENDEREÇAMENTO...84 8.6 MULTIPLEXAÇÃO E SPLITTING...87 8.7 ESTABELECIMENTO E ENCERRAMENTO DE CONEXÕES...87 8.8 CONTROLE DE FLUXO E BUFFERIZAÇÃO...87 Capítulo 9 - A Camada de Sessão... 88 9.1 INTRODUÇÃO...88 9.2 SERVIÇOS OFERECIDOS PELA CAMADA DE SESSÃO...88 9.3 SESSÃO X TRANSPORTE: SIMILARIDADES E DIFERENÇAS...89 9.4 A GESTÃO DO DIÁLOGO...90 9.5 A SINCRONIZAÇÃO...91 9.6 GERENCIAMENTO DE ATIVIDADES...92 Arquiteturas de Redes 4

9.7 AS PRIMITIVAS DE SERVIÇO DE SESSÃO...93 Capítulo 10 - A Camada de Apresentação... 95 10.1 INTRODUÇÃO...95 10.2 AS PRIMITIVAS DE SERVIÇO DA CAMADA DE APRESENTAÇÃO...95 10.3 A NOTAÇÃO ASN.1...96 10.4 A COMPRESSÃO DE DADOS...98 10.4.1 Codificação de um alfabeto finito de símbolos...98 10.4.2 Codificação dependente da freqüência...99 10.4.3 Codificação baseada no contexto...99 10.5 A CRIPTOGRAFIA... 100 10.5.1 A criptagem por substituição... 101 10.5.2 A criptagem por transposição... 101 Capítulo 11 - A Camada de Aplicação...103 11.1 INTRODUÇÃO... 103 11.2 ESTRUTURA DA CAMADA DE APLICAÇÃO... 103 11.2.1 Características específicas da camada de Aplicação... 103 11.2.2 Conceitos relacionados à camada de Aplicação... 104 11.2.3 Exemplos de Estruturas de AEIs... 105 11.3 O ELEMENTO DE SERVIÇO ACSE... 106 11.3.1 Os serviços oferecidos pelo ACSE... 106 11.3.2 As interfaces do ACSE com os serviços de Apresentação... 107 11.4 OUTROS ELEMENTOS DE SERVIÇO... 107 11.4.1 Transferência Confiável (RTSE)... 108 11.4.2 Operações Remotas (ROSE)... 108 11.4.3 Confiabilidade, Concorrência e Recuperação (CCR)... 108 11.4.4 Processamento de Transações (TP)... 109 11.5 ACESSO E TRANSFERÊNCIA DE ARQUIVOS (FTAM)... 109 11.5.1 O servidor virtual de arquivos... 110 11.5.2 As primitivas de serviço de FTAM... 111 Capítulo 12 - Bibliografia...112 Arquiteturas de Redes 5

Capítulo 1 - Introdução às Redes de Comunicação 1.1 INTRODUÇÃO A história nos mostra que cada um dos últimos séculos foi dominado por uma tecnologia diferente. A revolução industrial no século XVIII, as máquinas a vapor no século XIX e a tecnologia da informação no século XX. Exemplos disto são as redes de telefonia em escala mundial, o rádio, a televisão, os computadores e os satélites de comunicação. Com estas conquistas, o conceito de distância geográfica tornou-se, em alguns casos, um fator pouco importante para a solução de problemas. Apesar da indústria da informática ser muito jovem se comparada a outros setores (a de automóveis e de aviões, por exemplo), os progressos ocorridos foram espetaculares em um curto espaço de tempo. Nas duas primeiras décadas de sua existência, os sistemas computacionais eram acondicionados em uma grande sala com paredes de vidro, através das quais a maior parte dos visitantes, e até usuários, podiam contemplar extasiados aquela maravilha eletrônica. Uma empresa de médio porte ou uma universidade contava apenas com um ou dois computadores, enquanto grandes instituições tinham, no máximo, algumas dezenas. Era pura ficção científica a idéia de que, em apenas 20 anos, haveria milhões de computadores muito mais avançados, do tamanho de um selo postal, ou ainda menor. A fusão dos computadores e das comunicações teve uma profunda influência na forma como os sistemas computacionais foram organizados. Está totalmente ultrapassado o conceito de centro de computação como uma sala onde os usuários levam os programas para serem processados. Este conceito foi substituído pelas chamadas redes de computadores, nas quais os trabalhos podem ser realizados por uma série de computadores interconectados. Sendo assim, é uma necessidade o conhecimento, por parte do pessoal envolvido com informática, dos conceitos e funcionamento das redes de computadores. É importante então conceituar o que entendemos por redes de computadores. Nós usaremos o termo rede de computadores para designar um conjunto de computadores autônomos e interconectados. Dois computadores são interconectados quando podem trocar informações através de algum mecanismo de comunicação. Quando dizemos que eles devem ser autônomos desejamos excluir os sistemas onde existe uma clara relação mestre/escravo. Outro esclarecimento importante é fazer uma clara distinção entre uma rede de computadores e um sistema distribuído. A principal diferença entre eles é que, em um sistema distribuído, a existência de diversos computadores autônomos é transparente para o usuário. A transparência de utilização é dada pelo sistema operacional. Em suma, o usuário de um sistema distribuído não tem consciência de que há vários processadores. Para ele é como se existisse um processador virtual e todas as atividades para execução de uma tarefa acontecem de forma o mais automatizada possível. Por outro lado, em uma rede, o usuário necessita realizar explicitamente suas tarefas, tais como: fazer o login em uma máquina, realizar a transferência de seus arquivos, submeter suas tarefas remotas, entre outras. Na prática, um sistema distribuído é um sistema de software instalado em uma rede, proporcionando um alto grau de coesão e transparência ao usuário. É o software, ou o sistema operacional, que determina a diferença entre uma rede e um sistema distribuído, não o hardware. No entanto os dois assuntos possuem uma série de pontos em comum, por exemplo: os sistemas distribuídos e as redes necessitam movimentar arquivos. A diferença está em quem é o responsável pela movimentação: o sistema operacional ou o usuário. Arquiteturas de Redes 6

1.2 HISTÓRICO DAS REDES DE COMUNICAÇÃO A evolução da microeletrônica e da informática tem possibilitado a obtenção de processadores e outros componentes de computadores cada vez mais potentes e velozes, num tamanho mais reduzido e num preço cada vez mais acessível a um maior número de pessoas. Os microprocessadores existentes hoje em dia, que ocupam o espaço menor do que uma caixa de fósforos, substituem e ultrapassam as capacidades dos computadores de alguns anos atrás, que ocupavam salas inteiras. Estes eram máquinas bastante complexas no que diz respeito à sua utilização, sendo operadas apenas por especialistas. Os usuários daqueles computadores normalmente submetiam seus programas aplicativos como jobs (ou tarefas) sem qualquer interação com o processamento do programa. Uma primeira tentativa de interação com o computador ocorreu no início dos anos 60, com a técnica de time-sharing, que foi o resultado do desenvolvimento dos sistemas computacionais e da tecnologia de transmissão de dados. Nesta técnica, um conjunto de terminais era conectado a um computador central através de linhas de comunicação de baixa velocidade, o que permitia aos usuários interagir com os seus programas. A necessidade de conexão de terminais para o processamento interativo foi o ponto de partida para o estabelecimento de necessidades de comunicação nos computadores. A técnica de time-sharing permitia a um grande conjunto de usuários o compartilhamento de um único computador para a resolução de uma grande diversidade de problemas e as aplicações desenvolvidas foram cada vez mais se multiplicando e se diversificando (cálculos complexos, produção de relatórios, ensino de programação, aplicações militares, etc). Este aumento na demanda implicava numa necessidade crescente de atualizações e incremento na capacidade de cálculo e de armazenamento nas CPUs, o que nem sempre era viável ou possível, dado que os computadores do tipo mainframes nem sempre eram adaptados para suportar determinadas extensões. O avanço tecnológico na área dos circuitos integrados, gerando componentes mais poderosos a um custo mais baixo, foi caindo o preço da CPU. Este evento constituiu a chamada revolução do hardware. Nos anos 70, com o surgimento dos minicomputadores, foi possível adaptar as capacidades de processamento às reais necessidades de uma dada aplicação. Além disso, um grande número de usuários operavam sobre conjuntos comuns de informações, gerando a necessidade de compartilhamento de dados, de dispositivos de armazenamento e de periféricos entre os vários departamentos de uma empresa. Isto deu um novo impulso aos trabalhos no sentido de resolver os problemas de comunicação entre os computadores. Este novo tipo de aplicações exigia velocidade e capacidade de transmissão muito mais elevadas que no caso da conexão de terminais a um computador central. Assim, com a utilização de minicomputadores interconectados, obtinha-se muitas vezes uma capacidade de processamento superior àquela possível com a utilização dos mainframes. Outro aspecto interessante é que as redes podiam ser estendidas em função das necessidades de processamento das aplicações. Além disso, a modularidade natural das redes de computadores era tal que uma falha num minicomputador ou na rede tinha um efeito bastante limitado em relação ao processamento global. O surgimento dos minicomputadores e dos computadores pessoais trouxe uma nova solução para o problema de máquinas multi-usuário pois dava uma CPU para cada um deles. As pequenas companhias e as subsidiárias utilizavam-se dos minicomputadores para algum processamento local e na preparação dos dados para o bureaux de serviços ou para a matriz. Os dados eram transferidos quando exigiam um grande volume de processamento ou um processamento requerendo software ou hardware especial. O uso dos minicomputadores minimizou mas não solucionou o problema da comunicação. Minimizou porque os dados podiam agora ser preparados e armazenados em fita magnética e transportados via sistema de malotes. Este sistema de transporte não é, obviamente, o mais adequado para transferência de informação pois está sujeito a acidentes, gerando atraso ou perda total do material. Por outro lado, o sistema centralizado oferecia a vantagem de compartilhar recursos caros tanto de software como de hardware, ou seja, o software e hardware especial era caro mas seu preço era amortizado pelo rateio do custo dos periféricos entre os vários usuários. Surge, então, a necessidade de uma nova tecnologia para compartilhamento de recursos. Paralelamente, a tecnologia de comunicações alcançava a transmissão digital em linhas telefônicas através de modems. Este serviço era caro e apenas suportado por grandes companhias, uma vez que utilizavam linhas telefônicas de forma dedicada. Esta situação perdurou por algum tempo (no Brasil, até março de 1985) e era necessária outra solução para comunicação através de uma nova tecnologia de comunicação. A necessidade da disseminação da informação e os avanços em tecnologia de armazenamento, propiciaram o aparecimento de discos de grande capacidade e mais baratos (explosão da informação e grandes bancos de dados). Aí o problema de comunicação tornou-se muito mais sério. Para acessos não Arquiteturas de Redes 7

muito freqüentes, uma linha telefônica dedicada não era viável em termos de custo e o transporte via malote era inviável em termos de velocidade. A solução para o compartilhamento de recursos físicos e lógicos juntamente com a vantagem de se ter um sistema descentralizado, só pode ser alcançada através da interconexão das CPUs entre si. É a isso que se propõem as redes de computadores. As soluções encontradas, na época, para a comunicação de computadores em termos de longa distância foi a tecnologia de comutação de pacotes, que solucionou o problema da linha telefônica dedicada e o problema do transporte via malote. Num ambiente restrito a uma região local (por exemplo, uma fábrica, um campus), o problema do compartilhamento de recursos através de interconexão de CPUs foi resolvido através da tecnologia de redes locais. Atualmente, as vantagens dos sistemas distribuídos e interconectados são uma evidência reconhecida para as aplicações mais diversas, desde a automação de escritórios até o controle de processos, passando por aplicações de gerenciamento bancário, reservas de passagens aéreas, processamento de texto, educação à distância, correio eletrônico, WWW, entre outras tão bem conhecidas. A junção de duas tecnologias comunicação e processamento de informações veio revolucionar o mundo em que vivemos, abrindo as fronteiras para novas formas de comunicação, e permitindo maior eficácia dos sistemas computacionais. As redes de computadores são uma realidade neste nosso contexto atual. 1.3 IMPORTÂNCIA DAS REDES DE COMUNICAÇÃO Um grande número de empresas possui atualmente uma quantidade relativamente grande de computadores operando nos seus diversos setores. Um exemplo deste fato é aquele de uma empresa que possui diversas fábricas contendo cada uma um computador responsável das atividades de base da fábrica (controle de estoques, controle da produção e produção da folha de pagamentos). Neste exemplo, apesar da possibilidade de operação destes computadores de maneira isolada, é evidente que sua operação seria mais eficiente se eles fossem conectados para, por exemplo, permitir o tratamento das informações de todas as fábricas da empresa. O objetivo da conexão dos diferentes computadores da empresa é permitir o que poderíamos chamar de compartilhamento de recursos, ou seja, tornar acessíveis a cada computador todos os dados gerados nas diversas fábricas da empresa. Um outro ponto importante da existência das Redes de Comunicação é relacionado a um aumento na confiabilidade do sistema como um todo. Pode-se, por exemplo, ter multiplicados os arquivos em duas ou mais máquinas para que, em caso de defeito de uma máquina, cópias dos arquivos continuem acessíveis em outras máquinas. Além disso, o sistema pode operar em regime degradado no caso de pane de um computador, sendo que outra máquina pode assumir a sua tarefa. A continuidade de funcionamento de um sistema é ponto importante para um grande número de aplicações, como por exemplo: aplicações militares, bancárias, o controle de tráfego aéreo, etc. A redução de custos é uma outra questão importante da utilização das Redes de Comunicação, uma vez que computadores de pequeno porte apresentam uma menor relação preço/desempenho que os grandes. Assim, sistemas que utilizariam apenas uma máquina de grande porte e de custo muito elevado podem ser concebidos à base da utilização de um grande número de microcomputadores (ou estações de trabalho) manipulando dados presentes num ou mais servidores de arquivos. Os mainframes são dezenas de vezes mais rápidos do que alguns computadores pessoais mas também seu preço é milhares de vezes maior. Esta situação levou os projetistas a criarem sistemas baseados em computadores pessoais para os usuários com os dados mantidos em um ou mais servidores de arquivos compartilhados, Neste modelo os usuários são chamados clientes e a organização geral é denominada modelo cliente/servidor. No modelo cliente/servidor um processo cliente envia uma mensagem de solicitação ao processo servidor para que alguma tarefa seja executada. Em seguida o processo servidor executa a tarefa e envia a resposta ao processo cliente. Geralmente existem muitos clientes usando um pequeno número de servidores. Ainda temos como vantagem no uso das redes a escalabilidade, que é a possibilidade de aumentar gradualmente o desempenho do sistema à medida que cresce o volume de carga, através da adição de mais processadores. Esta era uma enorme dificuldade nos sistemas centralizados. Quando o limite de capacidade era atingido, o sistema tinha que ser substituído por um maior, o que geralmente implicava em altos custos e grandes aborrecimentos para os usuários. Outras vantagens estão relacionadas ainda a questões que não tem relação com tecnologia. Uma rede de computadores oferece um meio de comunicação altamente eficaz para funcionários que Arquiteturas de Redes 8

trabalham em locais muito distantes um do outro. Uma rede viabiliza, por exemplo, a possibilidade de duas ou mais pessoas escreverem um relatório mesmo estando separadas por milhares de quilômetros. Quando algum dos participantes faz uma alteração no documento on-line, seus parceiros podem vê-la imediatamente, sem que seja necessário passar dias esperando por uma carta. Isto facilita o espírito de equipe e reduz em muito o custo de manutenção de equipes de trabalho que não estão localizadas m uma mesma cidade. 1.4 O HARDWARE DE REDE Vamos agora dar um pouco de atenção a forma de estruturação de uma rede. Em relação à estruturação, dois aspectos podem ser abordados: a física e a lógica. Para isso serão discutidas as várias topologias de uma rede. O conceito de topologia, até há pouco relacionado apenas com a estruturação física da rede, agora abrange, também, a forma como a mesma é definida logicamente. Existem várias classificações para as diferentes redes de computadores. Dentre elas, duas dimensões se destacam mais: a escala e a tecnologia de transmissão. Basicamente há dois tipos de tecnologia de transmissão: as redes em difusão e as redes pontoa-ponto. Nas redes em difusão há apenas um canal de transmissão compartilhado por todas as máquinas. Uma mensagem enviada por uma estação é ouvida por todas as outras estações. Nas redes ponto-aponto existem várias conexões entre pares individuais de estações. Estes dois tipos de ligação podem ser visualizados na figura 1.1 a seguir. cabo computador (a) Figura 1.1 Rede em difusão (a) e rede ponto-a-ponto (b). (b) 1.4.1 AS DIFERENTES TOPOLOGIAS Um ponto importante no que diz respeito à concepção de uma rede de comunicação é a definição da maneira como as diferentes estações serão interligadas. Estes arranjos são denominados topologia da rede. Estas topologias estão relacionadas a forma como o canal de comunicação será alocado, ou seja, através de canais ponto-a-ponto ou canais de difusão. Nas topologias que utilizam canais ponto-a-ponto, a rede é composta de diversas linhas de comunicação, cada linha sendo associada à conexão de um par de estações. Neste caso, se duas estações precisam comunicar-se e não há entre elas um cabo comum, a comunicação será feita de modo indireto, através de uma (ou mais) estações. Assim, quando uma mensagem é enviada de uma estação a outra de forma indireta, ela será recebida integralmente por cada estação e, uma vez que a linha de saída da estação considerada está livre, retransmitida à estação seguinte. Esta política de transmissão é também conhecida por store and forward. A maior parte das redes de longa distância são do tipo ponto-a-ponto. As redes ponto-a-ponto podem ser concebidas segundo diferentes topologias. As redes locais ponto-a-ponto são caracterizadas normalmente por uma topologia simétrica; as redes de longa distância apresentam geralmente topologias assimétricas. A figura 1.2 apresenta as diferentes topologias possíveis nas redes ponto-a-ponto. Arquiteturas de Redes 9

Figura 1.2 - Topologias ponto-a-ponto: estrela, anel, malha regular, malha irregular e árvore. Uma outra classe de redes, as redes de difusão, são caracterizadas pelo compartilhamento, por todas as estações, de um único canal de comunicação. Neste caso, as mensagens enviadas por uma estação são recebidas por todas as demais conectadas ao suporte de transmissão, sendo que um campo de endereço contido na mensagem permite identificar o destinatário. Na recepção, a máquina verifica se o conteúdo do campo de endereço corresponde ao seu e, em caso negativo, a mensagem é ignorada. As redes locais pertencem geralmente a esta classe de redes. Nas redes de difusão existe a possibilidade de uma estação enviar uma mesma mensagem às demais estações da rede, utilizando um código de endereço especial. Neste caso, todas as estações vão tratar as mensagens recebidas endereçadas para este endereço comum. Este modo de operação é denominado broadcasting. Alguns sistemas de difusão também suportam transmissão para um subconjunto de estações, conhecido como multicasting. A figura 1.3 apresenta algumas topologias possíveis no caso das redes em difusão. Numa rede em barramento, uma única máquina pode estar transmitindo a cada instante. As demais estações devem esperar para transmissão caso o barramento esteja ocupado. Para isto, um mecanismo de arbitragem deve ser implementado para resolver possíveis problemas de conflito (quando duas ou mais estações querem enviar uma mensagem), este mecanismo pode ser centralizado ou distribuído. Figura 1.3 - Topologias das redes de difusão: barramento, satélite e anel No caso das redes de satélite (ou rádio), cada estação é dotada de uma antena através da qual pode enviar e receber mensagens. Cada estação pode escutar o satélite e, em alguns casos, receber diretamente as mensagens enviadas pelas demais estações. No caso do anel, cada bit transmitido é propagado de maneira independente em relação à mensagem ao qual ele pertence. Em geral, cada bit realiza uma volta completa no anel durante o tempo necessário para a emissão de um certo número de bits, antes mesmo da emissão completa da mensagem. Também nesta topologia, é necessária a implementação de um mecanismo de acesso ao suporte de comunicação. As redes de difusão podem ainda considerar duas classes de mecanismos de acesso ao suporte de comunicação: estáticas ou dinâmicas. Um exemplo do primeiro caso é a definição de intervalos de tempo durante os quais cada estação tem a posse do canal de comunicação, permitindo então que esta emita a Arquiteturas de Redes 10

mensagem de maneira cíclica. No entanto, esta política é bastante ineficiente do ponto de vista do envio das mensagens, uma vez que muitas estações não vão enviar mensagens nos intervalos a elas destinadas. Já na outra classe de mecanismos, os dinâmicos, o acesso é dado às estações segundo a demanda de envio de mensagens. Nos mecanismos de acesso dinâmicos, pode-se ainda considerar dois casos: os mecanismos centralizados, nos quais uma estação central (ou árbitro) é a responsável pela definição do direito de acesso ao suporte de comunicação; os mecanismos distribuídos, nos quais cada estação define quando ela vai emitir a mensagem. 1.4.2 TOPOLOGIA FÍSICA X TOPOLOGIA LÓGICA A topologia de uma rede irá determinar, em parte, o método de acesso a rede utilizado. Métodos de acesso são necessários para regular a utilização dos meios físicos compartilhados. A forte tendência de utilização de hubs nas instalações físicas das redes corresponde, fisicamente, a implantação de uma topologia em estrela. Esta tendência é explicada pela crescente necessidade de melhorar o gerenciamento e a manutenção nessas instalações. A topologia em estrela apresenta uma baixa confiabilidade porém os avanços da eletrônica já permitem que se construam equipamentos de alta confiabilidade, viabilizando este tipo de topologia. A utilização de hubs não exige, necessariamente, que as interfaces das estações com a rede o percebam como uma topologia em estrela. O funcionamento continua a ser como no acesso a um barramento ou a um anel, com os seus respectivos métodos de acesso. Sendo assim, podemos diferenciar dois tipos de topologias: uma topologia lógica, que é aquela observada sob o ponto de vista das interfaces das estações com a rede (que inclui o método de acesso), e uma topologia física, que diz respeito à configuração física utilizada na instalação da rede. A construção dos hubs teve uma evolução contínua no sentido de que os mesmos não implementem somente a utilização do meio compartilhado, mas também possibilitem a troca de mensagens entre várias estações simultaneamente. Desta forma as estações podem obter para si taxas efetivas de transmissão bem maiores. Esse tipo de elemento, também central, é denominado switch. As redes ATM, por exemplo, baseiam-se na presença de switches de grande capacidade de comutação que permitem taxas de transmissão que podem chegar à ordem de Gbps (gigabits por segundo). 1.4.3 CATEGORIAS DE REDES As redes também podem ser classificadas por escala. A figura 1.4 mostra uma classificação das várias redes de computadores em relação a sua abrangência. Basicamente elas podem ser classificadas em três grupos: LAN Local Area Network ou Rede Local, MAN Metropolitan Area Network ou Rede Metropolitana e WAN Wide Area Network ou Rede Geograficamente Distribuída (ou de Longa Distância). Distância entre nós até 10 m até 100 m até 1 km até 10 km até 100 km até 1.000 km até 10.000 km Abrangência Sala Edifício Campus Cidade País Continente Planeta L A N M A N W A N Figura 1.4- Classificação de redes quanto a distância física entre os nós. Arquiteturas de Redes 11

A diferença na dimensão das redes introduz diferentes problemas e necessidades. No que diz respeito ao exemplo de microcomputadores, a rede é classificada como sendo uma Rede Local, caracterizada particularmente por uma pequena extensão, limitando-se normalmente à interconexão de computadores localizados numa mesma sala, num mesmo prédio ou num campus. Este tipo de rede invariavelmente proprietária. Uma alternativa a este tipo de rede, muito utilizada atualmente são as Redes Metropolitanas, que são utilizadas quando as distâncias entre os módulos processadores aumenta consideravelmente, atingindo distâncias metropolitanas. Elas podem ser públicas ou privadas. No exemplo de empresa possuindo diversas fábricas, a rede utilizada permitiria conectar computadores localizados em diferentes prédios numa mesma cidade ou mesmo em cidades distantes de uma dada região. Esta caracteriza uma Rede de Longa Distância ou Rede Geograficamente Distribuída. Esta classificação não é, de maneira alguma, fechada. Por exemplo, uma rede local pode alcançar dimensões metropolitanas e ainda assim ser considerada local. Nos próximos capítulos serão estudados mais detalhadamente cada um destes tipos de redes. 1.5 O SOFTWARE DE REDE No projeto de uma rede muitos problemas precisam ser resolvidos e podem existir várias soluções para os mesmos. Primeiramente definiremos alguns problemas mais comuns encontrados no projeto de um software de rede. Em seguida apresentaremos uma definição inicial sobre a forma como os softwares de rede são estruturados, através de um exemplo. 1.5.1 SERVIÇOS NECESSÁRIOS À COMUNICAÇÃO Como visto nas seções precedentes, as redes de computadores podem se caracterizar por diferentes configurações e topologias. Apesar da diversidade no que diz respeito a este aspecto, todas as possíveis configurações têm um objetivo comum a transferência de dados. O problema que se coloca é então relacionado à especificação dos procedimentos e mecanismos que devem ser implementados para viabilizar o funcionamento da rede. A resolução deste problema é baseada principalmente no conhecimento prévio das funções que devem ser suportadas pela rede, assim como do ambiente no qual ela vai ser inserida. Estes aspectos serão mostrados aqui através de alguns exemplos. O primeiro exemplo é baseado nas políticas de time-sharing já descrita anteriormente. Vamos considerar o caso em que temos apenas um terminal conectado a um computador, como mostrado na figura 1.5. Figura 1.5 - Terminal conectado a um computador central Considerando que um usuário vai servir-se do terminal para processar informações no computador central, para que isto seja possível, é necessário que o computador central seja dotado do programa necessário ao tratamento daquelas informações. Em caso positivo, o terminal e o computador devem estabelecer um diálogo que permita o bom desenrolar das operações de tratamento das informações. Este diálogo deverá permitir, por exemplo, que o usuário comunique sua intenção (de Arquiteturas de Redes 12

processar as informações!) ao computador e, em seguida, envie as informações a serem processadas. Uma vez efetuado o tratamento, o computador deve retornar os resultados ao terminal. Esta seqüência de operações, apesar de aparentemente elementar, requer a satisfação de uma série de condições. Vamos supor, por exemplo, que o computador central e o terminal tenham sido fabricados de forma totalmente independente um do outro, o que pode ter resultado numa diferente filosofia no que diz respeito ao formato das informações. Um primeiro obstáculo a ser vencido é aquele da linguagem; o terminal deveria então se adaptar à linguagem do computador central. Resolvido o problema de compreensão, um outro problema encontrado diz respeito aos possíveis erros de transmissão que podem ocorrer durante a comunicação, uma vez que as linhas de comunicação estão sujeitas a ruídos e outros fenômenos podendo provocar perdas de informação. Uma outra questão pode ainda estar relacionada à velocidade de funcionamento dos dois elementos. Se considerarmos que o computador central opera numa velocidade superior à do terminal, por exemplo, o terminal corre o risco de ser bombardeado pelo fluxo de dados vindo do computador, o que vai exigir então o estabelecimento de um mecanismo de controle do fluxo de informações. Resumindo, a rede de comunicação deve, além de suprir as funções de transmissão e tratamento de informações, oferecer serviços de adaptação, detecção e correção de erros de transmissão e controle de fluxo. Vamos considerar agora que, ao invés de um único terminal, vamos conectar um maior número deles ao computador central, como mostra a figura 1.6. Aqui, cada terminal pode, a princípio e a qualquer momento, tomar a iniciativa da troca de dados com o computador. Isto significa que cada terminal terá de ser caracterizado por um endereço específico, cuja utilização correta vai permitir evitar que o computador central envie as informações aos terminais de maneira indevida. Figura 1.6 - Configuração com vários terminais Por outro lado, se o número de terminais conectados ao computador central tornar-se relativamente elevado (a fim de permitir a utilização máxima da capacidade de processamento deste), será necessário organizar as interações entre terminais e o computador central em sessões, de tal forma que, ao término de uma sessão entre um terminal e o computador central, este terá liberados determinados elementos (envolvidos naquela sessão) que poderão atender outros terminais em estado de espera. Ainda, considerando que nem todos os terminais vão efetuar o mesmo tipo de tratamento de forma simultânea, dever-se-á, então, especificar a aplicação associada. Assim, todas as necessidades vistas neste exemplo deverão ser associadas às funcionalidades definidas no exemplo anterior. Mas os problemas não terminam por aqui... (é impossível, no momento, prever onde terminarão os problemas!) Vamos considerar ainda um exemplo, mais particularmente o de uma rede contendo diversos computadores, terminais, e outros periféricos, cada um destes elementos constituindo um nó da rede. A figura 1.7 mostra uma situação deste tipo. Neste exemplo, os dois elementos envolvidos numa comunicação não serão mais necessariamente adjacentes; além disso, podem existir diversas maneiras de conectá-los, o que vai corresponder a diferentes caminhos. No exemplo mostrado na figura, os nós 1 e 5 podem ser conectados por, pelo menos, uns 10 caminhos e a escolha de qual caminho utilizar deverá então ser realizada, o que é não é uma tarefa tão simples quanto possa parecer. Arquiteturas de Redes 13

Ainda, se a rede é da classe ponto-a-ponto (ou comutação de pacotes), o sistema de comunicação deve assegurar a correta transmissão da informação de um ponto a outro. Particularmente, será necessário garantir que as mensagens enviadas serão recuperadas e reconstituídas na ordem correta no ponto de chegada. Um requisito também importante é o aspecto da codificação das mensagens de modo a evitar o acesso a informações de parte de usuários alheios ao sistema considerado. A esta função pode-se, eventualmente, acrescentar técnicas de compressão de dados, necessárias se a informação enviada é demasiadamente redundante e o custo da comunicação é alto. 3 4 1 5 2 Figura 1.7 - Configuração com vários computadores e terminais. 1.5.2 A ORGANIZAÇÃO DE FUNÇÕES Uma vez listadas as diferentes necessidades relacionadas a uma rede de comunicação, a questão que se coloca é a da viabilidade de um projeto de rede, dada a quantidade de funções a implementar. Uma outra questão é a do ordenamento das funções. O controle de fluxo deve ser realizado antes ou depois da correção de erros? Uma vez resolvida esta questão, que elementos da rede serão responsáveis da implementação destas funções? As soluções adotadas são dependentes do suporte de transmissão utilizado? Elas continuam válidas no caso de expansão da rede? Estas questões representam, de certo modo, a necessidade de levar em conta um certo ordenamento no que diz respeito à adoção das soluções para cada problema. Uma ilustração típica do problema é aquela da comunicação entre duas empresas. Vamos supor que o Diretor de uma Empresa A quer comunicar-se com o Diretor de uma Empresa B. Ele convoca a sua Secretária Administrativa e solicita, informalmente, que esta construa um texto relativo ao assunto a ser tratado. A Secretária Administrativa elabora o documento e o entrega ao Office Boy que vai envelopá-lo e encaminhá-lo ao Chefe do Setor de Malote. Este último encaminha o documento ao Serviço Postal para condução à Empresa B. Considerando que a Empresa B apresenta uma estrutura similar à Empresa A, como é ilustrado na figura 1.8, os mesmos elementos atuam, cada um em suas funções, para fazer com que a correspondência chegue às mãos do Diretor da Empresa. Este processo caracteriza, na verdade, a filosofia de concepção das redes de comunicação, que é baseada em dois conceitos fundamentais: o da hierarquia e o da descentralização, cuja conjunção vai permitir responder à questão de ordenação na adoção das soluções. Segundo esta filosofia, uma tarefa global é vista como sendo decomposta a medida que se vai descendo na hierarquia e que a única interação física se faz no seu nível mais baixo. Arquiteturas de Redes 14

Empresa A Empresa B Diretor Empresa Diretor Empresa Secretária Administrativa Secretária Administrativa Office Boy Office Boy Chefe Malote Chefe Malote Serviço Postal Figura 1.8 - Filosofia de concepção das redes, ilustrada por um processo de relações entre empresas. Podemos considerar que a comunicação entre dois nós de uma rede é uma tarefa global que afeta um sistema complexo e, consequentemente, sujeita à aplicação dos princípios de hierarquização e de descentralização. As vantagens da adoção destes princípios são, fundamentalmente: facilidade de estudo e de implementação da rede a partir de elementos de base existentes, o que permite a redução dos custos de instalação; simplificação de sua operação em função da definição de regras formais; garantia de confiabilidade de um sistema que seja aceitável, particularmente graças ao encapsulamento das funções o que permite limitar a propagação de erros e facilitar a manutenção; garantia, pela modularidade, de um grau satisfatório de evolutividade e de extensibilidade da rede; otimização de desempenho. Todos estes aspectos nos conduzem a conceber uma arquitetura de comunicação como sendo uma organização de software e hardware estruturada em níveis ou camadas. 1.5.3 A ESTRUTURAÇÃO EM CAMADAS Os conceitos de hierarquia e descentralização podem ser empregados de diferentes formas, cada um podendo implicar num tipo de rede particular. Em função desta provável multiplicidade, surgiu então a necessidade de uma normalização permitindo a conexão de diferentes classes de hardware. Para possibilitar a normalização, foi necessário estabelecer um modelo teórico capaz de representar as relações entre as diferentes tarefas implementadas nos diferentes níveis hierárquicos. A possibilidade de interconexão de um número qualquer de sistemas, ou seja, de conjuntos autônomos podendo efetuar tarefas de tratamento ou de transmissão de informação, era uma característica essencial para o modelo a ser estabelecido. A figura 1.9 ilustra uma arquitetura hierarquizada em 4 camadas que permitirá introduzir o conjunto de conceitos relacionados ao modelo estabelecido. O objetivo de cada camada é o oferecimento de um tipo de serviço a sua camada superior de forma a evitar que esta necessite conhecer certos aspectos de como este serviço é realizado. A camada n assume que a comunicação com a camada n de uma outra máquina existe, embora não seja direta. Para que esta comunicação exista, ela se serve de um conjunto de convenções e regras que vão permitir gerenciar esta comunicação. A este conjunto de regras e convenções, dá-se o nome de protocolo. Como se pode ver na figura, não existe meio de comunicação Arquiteturas de Redes 15

direto entre as diferentes camadas (apenas o meio de transmissão na camada 1), o que significa que não existe transferência direta de dados entre a camada n de uma máquina à camada n de outra máquina. Na realidade, cada camada transfere os dados à camada imediatamente inferior até a camada mais baixa; o dado é então transmitido à outra máquina através do meio de transmissão. A comunicação entre as camadas é vista então como uma comunicação virtual e é representada, na figura 1.9, pelas linhas ligando cada par de camadas. SISTEMA A Camada 4 Protocolo da Camada 4 SISTEMA B Camada 4 Interface 3/4 Interface 3/4 Camada 3 Protocolo da Camada 3 Camada 3 Interface 2/3 Camada 2 Protocolo da Camada 2 Camada 2 Interface 2/3 Interface 1/2 Camada 1 Protocolo da Camada 1 Camada 1 Interface 1/2 Meio de Comunicação Figura 1.9 - Modelo hierarquizado em 4 camadas. Cada camada comunica-se com as camadas adjacentes (acima ou abaixo) através de uma interface que define as informações que podem ser trocadas e os serviços que a camada inferior oferece à camada superior. Ao conjunto das camadas compondo uma rede dá-se o nome de arquitetura da rede, e as especificações da arquitetura devem conter informações suficientes para permitir o correto desenvolvimento da rede, tanto do ponto de vista do software quanto do hardware. Mais detalhes relacionados ao projeto em camadas ou níveis e a nomenclatura utilizada para interfaces, serviços e protocolos de comunicação serão abordados no capítulo 2. Arquiteturas de Redes 16

Capítulo 2 - Conceitos Básicos do Software de Rede 2.1 INTRODUÇÃO Nas primeiras redes de computadores os aspectos relacionados ao hardware foram colocados como prioridade e os aspectos de software em segundo plano. No entanto logo foi percebida a fundamental importância dos mecanismos de software de uma rede, e, em função disto, os softwares de rede são altamente estruturados. Os conceitos relacionados a esta estruturação são de vital importância para a compreensão de todos os aspectos relacionados à arquitetura de redes como um todo. 2.2 HIERARQUIA DE PROTOCOLOS Para reduzir a complexidade do projeto, a maioria das redes foi organizada como uma série de níveis ou camadas, que são colocadas uma sobre a outra. O número, o nome, o conteúdo e a função de cada camada difere de uma rede para outra. Em todas as redes, no entanto, o objetivo de cada camada é oferecer determinados serviços para as camadas superiores, ocultando detalhes da implementação desses recursos. Conforme já introduzido anteriormente, a figura 2.1 ilustra a arquitetura hierarquizada em 7 camadas que permitirá introduzir o conjunto de conceitos relacionados a uma arquitetura multicamadas. Conforme já mencionado, o objetivo de cada camada é o oferecimento de um determinado serviço às camadas superiores, utilizando-se, também dos serviços oferecidos pelas camadas inferiores, de forma a evitar que estas necessitem conhecer certos aspectos da implementação destes serviços. A camada n assume a comunicação com a camada n de uma outra máquina. Para faze-lo, ela se serve de um conjunto de convenções e regras que vão permitir gerir esta comunicação. A este conjunto de regras e convenções, dá-se o nome de protocolo da camada n, ou, simplesmente, protocolo n. Basicamente, um protocolo é um conjunto de regras sobre o modo como se dará a comunicação entre as partes envolvidas. As entidades representando camadas correspondentes em diferentes sistemas são denominadas processos pares, ou entidades pares. Os processos pares vão se comunicar através dos protocolos. Como se pode ver na figura 2.1, não existe meio de comunicação físico entre as diferentes camadas o que significa que não existe transferência direta de dados entre a camada n de uma máquina à camada n de outra máquina. Cada camada transfere os dados à camada imediatamente inferior até a camada mais baixa; o dado é então transmitido à outra máquina através do meio de transmissão. A comunicação entre as camadas é vista como uma comunicação virtual e é representada, na figura 2.1, pelas linhas horizontais entre as camadas. Cada camada comunica-se com as camadas adjacentes (acima e abaixo) através de uma interface, que define as operações elementares e os serviços que a camada inferior oferece à camada considerada. No momento da definição do número de camadas que vai compor uma rede e do papel que cada uma delas deve cumprir, uma tarefa importante será a definição completa das interfaces entre as camadas e isto vai implicar que na definição do serviço oferecido por cada camada. Uma vantagem da correta definição das interfaces é a facilidade da introdução de modificações nas implementações das diferentes camadas; os mecanismos podem ser implementados de forma diferente, desde que as interfaces anteriormente definidas sejam respeitadas. Arquiteturas de Redes 17

SISTEMA A SISTEMA B Interface 6/7 Interface 5/6 Interface 4/5 Interface 3/4 Interface 2/3 Interface 1/2 Camada 7 Camada 6 Camada 5 Camada 4 Camada 3 Camada 2 Camada 1 Protocolo da Camada 7 Protocolo da Camada 6 Protocolo da Camada 5 Protocolo da Camada 4 Protocolo da Camada 3 Protocolo da Camada 2 Protocolo da Camada 1 Camada 7 Camada 6 Camada 5 Camada 4 Camada 3 Camada 2 Camada 1 Interface 6/7 Interface 5/6 Interface 4/5 Interface 3/4 Interface 2/3 Interface 1/2 Meio de Transmissão Figura 2.1 - Modelo hierarquizado em 7 camadas. Ao conjunto das camadas compondo uma rede dá-se o nome de arquitetura da rede, e as especificações da arquitetura devem conter informações suficientes para permitir o correto desenvolvimento da rede, tanto do ponto de vista do software quanto do hardware. Por outro lado, os detalhes de implementação dos mecanismos em cada camada, assim como as especificações detalhadas das interfaces não fazem parte da definição da arquitetura da rede. A figura 2.2 permite ilustrar o processo da comunicação no contexto de uma arquitetura multicamadas. O processo da camada 7 gera uma mensagem M, que será transmitida desta à camada inferior segundo o que estiver definido pela interface das camadas 6/7. Considera-se que esta transmissão introduz algumas modificações na mensagem (por exemplo, uma compressão de dados), o que justifica uma nova representação desta por m. Esta mensagem é, por sua vez, transmitida à camada 5, através da interface das camadas 5/6. No exemplo considerado na figura, a mensagem não sofre modificações, mas esta camada efetua o controle de fluxo. A camada 4 é responsável pela decomposição da mensagem a fim de respeitar as restrições de tamanho que podem ser impostas pelas camadas inferiores. Assim, m é decomposta em M1 e M2. Para isto, é inserido também na mensagem (ou nas partes da mensagem) um cabeçalho H4 contendo uma informação de controle, como, por exemplo, um número de ordem que vai permitir, posteriormente na camada 4 do sistema destinatário, a reconstrução da mensagem a partir das partes recebidas. Outras informações podem ainda estar contidas neste cabeçalho, como, por exemplo, o tamanho da mensagem ou o instante de envio. Na camada 3, é feita a escolha das linhas de saída e um novo cabeçalho, H3, é introduzido às mensagens. Na camada 2, além de um cabeçalho, H2, é introduzido também um sufixo, T2, contendo informações específicos a esta camada, por exemplo, controle de erro. A mensagem é finalmente entregue à camada 1 para emissão via meio físico. No sistema destinatário, o processo inverso acontece, sendo que as mensagens vão subindo, de camada em camada, e os cabeçalhos retirados nas camadas respectivas, de modo a evitar que estes sejam transferidos às camadas que não lhes dizem respeito. Um aspecto importante mostrado na figura 2.2 é o da comunicação virtual ocorrendo entre as diferentes camadas pares. As camadas em cada nível possuem uma visão da comunicação horizontal, mesmo se as mensagens são na realidade transmitidas às camadas inferiores pertencentes ao mesmo sistema. Arquiteturas de Redes 18

TRANSMISSOR M m m Protocolo da Camada 7 Protocolo da Camada 6 Protocolo da Camada 5 RECEPTOR M m m H4 M1 H4 M2 Protocolo da Camada 4 H4 M1 H4 M2 H3 H4 M1 H3 H4 M2 Protocolo da Camada 3 H3 H4 M1 H3 H4 M2 H2 H3 H4 M1 H2 H3 H4 M2 Protocolo da Camada 2 H2 H3 H4 M1 H2 H3 H4 M2 Figura 2.2 - Ilustração da comunicação virtual numa arquitetura de rede. 2.3 DIFERENÇAS ENTRE SERVIÇO E PROTOCOLO Embora sejam freqüentemente confundidos, serviço e protocolo são dois conceitos distintos. O importante nesta distinção é de poder estabelecer a relação entre os dois conceitos. O SERVIÇO corresponde a um conjunto de operações que uma camada é capaz de oferecer à camada imediatamente superior. Ele define o que uma camada é capaz de executar sem se preocupar com a maneira pela qual as operações serão executadas. O serviço está intimamente relacionado com as interfaces entre duas camadas, sendo a inferior a fornecedora do serviço e a superior a usuária deste. O PROTOCOLO define um conjunto de regras que permitem especificar aspectos da realização do serviço, particularmente, o significado dos quadros, pacotes ou mensagens trocadas entre as entidades pares de uma dada camada. A nível de uma determinada camada, o protocolo pode ser mudado sem problemas, desde que as interfaces com a camada superior e inferior não sejam alteradas, ou seja, que elas continuem a ter a mesma visibilidade no que diz respeito aos serviços realizados pela camada que foi alterada; isto corresponde, na verdade, a um certo desacoplamento entre os conceitos de serviço e protocolo. 2.4 QUESTÕES DE PROJETO RELACIONADAS ÀS CAMADAS Algumas questões de projeto fundamentais das redes de computadores estão presentes em diversas camadas. A seguir serão discutidas as mais importantes. Todas as camadas precisam de um mecanismo para identificar os transmissores e receptores. Como em geral uma rede tem muitos computadores, e alguns deles têm vários processos, é necessário um meio para que um processo de uma máquina especifique com quem ele deseja se comunicar. Como pode haver vários destinos, há a necessidade de se criar uma forma de endereçamento para definir o destino específico. Outra preocupação recai sobre as direções do tráfego. Em alguns sistemas, os dados são transferidos em apenas uma direção. Em outros, eles podem ser transferidos em ambas as direções, mas não simultaneamente. Também é possível transmitir em ambas as direções simultaneamente. O protocolo também deve determinar o número de canais lógicos correspondentes à conexão e quais são as suas Arquiteturas de Redes 19

prioridades. Muitas redes oferecem pelo menos dois canais lógicos por conexão, um para dados normais e outro para dados urgentes. O controle de erro é uma questão importante, pois os circuitos de comunicação física podem não ser perfeitos. Muitos códigos de detecção e correção de erros são conhecidos e as partes envolvidas em uma conexão devem chegar a um consenso quanto ao que deve ser usado. Além disso, o receptor deve ter alguma forma de informar ao emissor as mensagens que foram recebidas corretamente e as que não foram. Nem todos os canais de comunicação preservam a ordem das mensagens enviadas por eles. Para lidar com uma possível perda de seqüência, o protocolo deve fazer uma provisão explícita para que o receptor possa remontar adequadamente os fragmentos recebidos. Uma solução óbvia é numerar os fragmentos, mas isso ainda deixa aberta a questão do que deve ser feito com os fragmentos que chegam fora de ordem ou, pior ainda, o que fazer quando algum ou alguns se perdem. Um problema que deve ser resolvido em diversas camadas é a falta de habilidade de todos os processos para aceitarem arbitrariamente mensagens longas. Esta propriedade nos leva ao uso de mecanismos para desmontar, transmitir e remontar mensagens. Uma questão é o que fazer quando estas unidades se tornam tão pequenas que o envio de cada uma em separado se torna ineficiente. Nesse caso a solução é reunir as pequenas mensagens com um destino comum em uma grande mensagem e desmembrá-la na outra extremidade. Uma outra questão que afeta todas as camadas diz respeito à velocidade dos dados, particularmente quando o emissor é mais rápido que o receptor. Várias soluções foram adotadas e serão discutidas posteriormente. Algumas delas trabalham com a possibilidade do receptor determinar dinamicamente sua situação atual. Outras limitam o emissor a uma taxa de transmissão predeterminada. Quando for inconveniente, ou algumas vezes caro, configurar uma conexão para cada par de processos de comunicação, a camada inferior pode usar a mesma conexão para diversas conversações não relacionadas. Desde que seja feita de modo transparente, a multiplexação e a demultiplexação de conexões podem ser executadas por qualquer camada. Quando houver vários caminhos entre a origem e o destino, um deles deve ser escolhido. Algumas vezes essa decisão deve ser dividida em duas ou mais camadas. Para enviar dados de Londres para Roma, por exemplo, devem ser tomadas duas decisões: uma de alto nível, decidindo sobre o trajeto a ser escolhido (via França ou Alemanha, com base nas respectivas leis de privacidade) e uma de baixo nível, escolhendo sobre quais dos circuitos físicos disponíveis os dados serão transmitidos (com base na carga de tráfego atual). 2.5 INTERFACES E SERVIÇOS Conforme já mencionado, a função de cada camada é oferecer serviços para a camada acima dela. Os elementos ativos de uma camada, ou seja, os processos que a implementam são chamados entidades. Estas podem ser entidades de software ou de hardware. Às entidades localizadas em diferentes sistemas, mas associadas a um mesmo nível (ou camada), dá-se o nome de entidades pares. As entidades recebem também uma denominação complementar em função da camada à qual elas estão relacionadas por exemplo, entidade de aplicação, entidade de transporte, entidade de enlace, entre outras. As entidades de uma camada N (ou entidades N) implementam um serviço que é utilizado pela camada N+1. Assim, a camada N é dita ser um fornecedor de serviço e a camada N+1 é denominada usuária de serviço. Por outro lado, a camada N poderá utilizar os serviços da camada imediatamente inferior, a camada N-1, para oferecer os serviços à camada superior. Ela pode ainda oferecer diferentes categorias (ou classes) de serviços: serviços mais eficientes e mais caros ou serviços lentos e econômicos. Os serviços oferecidos por uma camada são acessíveis em pontos de acesso aos serviços, ou SAP (Service Access Point). Os SAPs da camada N são os lugares onde a camada N+1 poderá ter acesso aos serviços oferecidos, cada SAP sendo identificado por um endereço único. Por exemplo, os SAP de uma rede telefônica são as tomadas às quais podem ser conectados os aparelhos telefônicos e seus endereços são os números de telefone associados à tomada considerada. Para que duas camadas possam trocar informações, existe uma série de regras a serem respeitadas, definidas pela interface. Através de uma interface, a camada N+1 envia uma unidade de dados de interface, ou IDU (Interface Data Unit) à entidade da camada N pelo SAP. A IDU é composta Arquiteturas de Redes 20