113
CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO PROF a ELIZABETH SPECIALSKI INE - UFSC [email protected] FLORIANÓPOLIS, MARÇO DE 2000

CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DACOMPUTAÇÃO

PROFa ELIZABETH SPECIALSKIINE - UFSC

[email protected]

FLORIANÓPOLIS, MARÇO DE 2000

Page 2: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 2

Apresentação

Profa. Elizabeth Sueli Specialski, MSC. UFRGS (Brasil, 1981)

Elizabeth Sueli Specialski graduou-se em Matemática pela PontifíciaUniversidade Católica do Rio Grande do Sul em 1978, obteve o título deMestre em Ciências da Computação pela Universidade Federal do RioGrande do Sul em 1981 e o título de Doutora em Engenharia pelaUniversidade Federal de Santa Catarina em março de 2000. Éprofessora no nível Adjunto IV da Universidade Federal de SantaCatarina e vem atuando em pesquisa e formação na área de Redes deComputadores e de Gerência de Redes de Computadores e deTelecomunicações junto ao Departamento de Informática e deEstatí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. Seudesempenho é traduzido pela publicação de mais de 50 trabalhos emCongressos Nacionais e Internacionais, palestras convidadas econsultorias realizadas junto a empresas fornecedoras de produtos eserviços de telecomunicações.

Endereço para contato:

Prof. Elizabeth Sueli SpecialskiDepartamento de Informática e de EstatísticaUniversidade Federal de Santa CatarinaCampus Universitário — Trindade88040-900 — Florianópolis — SCTel.: (048) 331-9498Fax: (048) 331-9566E-mail: [email protected]

Page 3: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 3

Sumário

Capítulo 1 - Introdução às Redes de Comunicação ............................................................. 6

1.1 INTRODUÇÃO...........................................................................................................................61.2 HISTÓRICO DAS REDES DE COMUNICAÇÃO................................................................................71.3 IMPORTÂNCIA DAS REDES DE COMUNICAÇÃO ...........................................................................81.4 O HARDWARE DE REDE ...........................................................................................................9

1.4.1 As diferentes topologias...................................................................................................91.4.2 Topologia física X topologia lógica ............................................................................... 111.4.3 Categorias de redes....................................................................................................... 11

1.5 O SOFTWARE DE REDE........................................................................................................... 121.5.1 Serviços necessários à comunicação.............................................................................. 121.5.2 A organização de funções .............................................................................................. 141.5.3 A estruturação em camadas ........................................................................................... 15

Capítulo 2 - Conceitos Básicos do Software de Rede........................................................ 17

2.1 INTRODUÇÃO......................................................................................................................... 172.2 HIERARQUIA DE PROTOCOLOS ................................................................................................ 172.3 DIFERENÇAS ENTRE SERVIÇO E PROTOCOLO ........................................................................... 192.4 QUESTÕES DE PROJETO RELACIONADAS ÀS CAMADAS.............................................................. 192.5 INTERFACES E SERVIÇOS ........................................................................................................ 202.6 SERVIÇOS ORIENTADOS À CONEXÃO E SEM CONEXÃO .............................................................. 212.7 PRIMITIVAS DE SERVIÇO ........................................................................................................ 22

Capítulo 3 - Arquiteturas de Redes ..................................................................................... 25

3.1 INTRODUÇÃO......................................................................................................................... 253.2 CLASSIFICAÇÃO DAS REDES DE COMPUTADORES .................................................................... 25

3.2.1 Redes Locais ................................................................................................................. 253.2.2 Redes Metropolitanas .................................................................................................... 263.2.3 Redes Geograficamente Distribuídas ............................................................................. 263.2.4 Redes Sem Fio............................................................................................................... 273.2.5 Ligação entre Redes ...................................................................................................... 283.2.6 Parâmetros de comparação ........................................................................................... 28

3.3 AS ARQUITETURAS DE REDE.................................................................................................... 293.4 A ARQUITETURA DO RM/OSI................................................................................................. 303.5 A ARQUITETURA TCP/IP – INTERNET .................................................................................... 303.6 AS REDES LOCAIS.................................................................................................................. 31

3.6.1 O RM-OSI e as redes locais ........................................................................................... 313.6.2 O padrão IEEE 802 ....................................................................................................... 323.6.3 Interconexão de redes locais.......................................................................................... 33

Capítulo 4 - Modelos de Referência..................................................................................... 35

4.1 INTRODUÇÃO......................................................................................................................... 354.2 O MODELO DE REFERÊNCIA OSI ............................................................................................. 35

4.2.1 As camadas do RM-OSI................................................................................................. 374.3 O MODELO DE REFERÊNCIA TCP/IP ........................................................................................ 39

4.3.1 As camadas do TCP/IP.................................................................................................. 394.4 ATM E O MODELO DE REFERÊNCIA B-ISDN .......................................................................... 42

4.4.1 Elementos básicos ATM................................................................................................. 434.4.2 Camadas de Adaptação ATM......................................................................................... 44

Page 4: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 4

4.4.3 Estrutura da AAL .......................................................................................................... 464.4.4 Meio de Transmissão..................................................................................................... 464.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......................................................................................................................... 505.2 OS SUPORTES DE TRANSMISSÃO .............................................................................................. 50

5.2.1 O par de fios trançados ................................................................................................. 505.2.2 Os cabos coaxiais.......................................................................................................... 505.2.3 As fibras óticas.............................................................................................................. 515.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......................................................................................................................... 556.2 AS CLASSES DE SERVIÇOS DE ENLACE .................................................................................... 556.3 AS PRIMITIVAS DE ENLACE..................................................................................................... 566.4 O CONCEITO DE QUADRO........................................................................................................ 576.5 O CONTROLE DE ERRO............................................................................................................ 58

6.5.1 Os códigos de correção de erro ..................................................................................... 596.5.2 Os códigos de detecção de erro...................................................................................... 606.5.3 Procedimentos para controle de erro ............................................................................. 61

6.6 O CONTROLE DE FLUXO ......................................................................................................... 646.7 O CONTROLE DE ACESSO AO MEIO .......................................................................................... 656.8 ALGUNS EXEMPLOS DE PROTOCOLOS DE ENLACE..................................................................... 66

Capítulo 7 - A Camada de Rede........................................................................................... 68

7.1 INTRODUÇÃO......................................................................................................................... 687.2 SERVIÇOS OFERECIDOS PELA CAMADA DE REDE ...................................................................... 687.3 ORGANIZAÇÃO INTERNA DA CAMADA DE REDE ....................................................................... 707.4 AS PRIMITIVAS DE SERVIÇO DE REDE....................................................................................... 717.5 O ENDEREÇAMENTO DE REDE................................................................................................. 737.6 A FUNÇÃO DE ROTEAMENTO .................................................................................................. 74

7.6.1 Algoritmo do caminho mais curto .................................................................................. 747.6.2 Roteamento multicaminhos ............................................................................................ 75

7.7 O CONTROLE DE CONGESTIONAMENTO ................................................................................... 767.7.1 A pré-alocação de buffers .............................................................................................. 767.7.2 A destruição de pacotes ................................................................................................. 777.7.3 O controle de fluxo ........................................................................................................ 777.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......................................................................................................................... 798.2 SERVIÇOS OFERECIDOS PELA CAMADA DE TRANSPORTE ........................................................... 798.3 AS PRIMITIVAS DE SERVIÇO DE TRANSPORTE .......................................................................... 808.4 OS PROTOCOLOS DE TRANSPORTE .......................................................................................... 828.5 ENDEREÇAMENTO.................................................................................................................. 848.6 MULTIPLEXAÇÃO E SPLITTING................................................................................................. 878.7 ESTABELECIMENTO E ENCERRAMENTO DE CONEXÕES.............................................................. 878.8 CONTROLE DE FLUXO E BUFFERIZAÇÃO .................................................................................. 87

Capítulo 9 - A Camada de Sessão ....................................................................................... 88

9.1 INTRODUÇÃO......................................................................................................................... 889.2 SERVIÇOS OFERECIDOS PELA CAMADA DE SESSÃO ................................................................... 889.3 SESSÃO X TRANSPORTE: SIMILARIDADES E DIFERENÇAS .......................................................... 899.4 A GESTÃO DO DIÁLOGO.......................................................................................................... 909.5 A SINCRONIZAÇÃO................................................................................................................. 919.6 GERENCIAMENTO DE ATIVIDADES........................................................................................... 92

Page 5: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 5

9.7 AS PRIMITIVAS DE SERVIÇO DE SESSÃO................................................................................... 93

Capítulo 10 - A Camada de Apresentação........................................................................... 95

10.1 INTRODUÇÃO......................................................................................................................... 9510.2 AS PRIMITIVAS DE SERVIÇO DA CAMADA DE APRESENTAÇÃO ................................................... 9510.3 A NOTAÇÃO ASN.1 ............................................................................................................... 9610.4 A COMPRESSÃO DE DADOS ..................................................................................................... 98

10.4.1 Codificação de um alfabeto finito de símbolos................................................................ 9810.4.2 Codificação dependente da freqüência........................................................................... 9910.4.3 Codificação baseada no contexto................................................................................... 99

10.5 A CRIPTOGRAFIA ................................................................................................................. 10010.5.1 A criptagem por substituição ....................................................................................... 10110.5.2 A criptagem por transposição ...................................................................................... 101

Capítulo 11 - A Camada de Aplicação ................................................................................103

11.1 INTRODUÇÃO....................................................................................................................... 10311.2 ESTRUTURA DA CAMADA DE APLICAÇÃO .............................................................................. 103

11.2.1 Características específicas da camada de Aplicação.................................................... 10311.2.2 Conceitos relacionados à camada de Aplicação........................................................... 10411.2.3 Exemplos de Estruturas de AEIs .................................................................................. 105

11.3 O ELEMENTO DE SERVIÇO ACSE .......................................................................................... 10611.3.1 Os serviços oferecidos pelo ACSE................................................................................ 10611.3.2 As interfaces do ACSE com os serviços de Apresentação.............................................. 107

11.4 OUTROS ELEMENTOS DE SERVIÇO ......................................................................................... 10711.4.1 Transferência Confiável (RTSE) .................................................................................. 10811.4.2 Operações Remotas (ROSE) ........................................................................................ 10811.4.3 Confiabilidade, Concorrência e Recuperação (CCR) ................................................... 10811.4.4 Processamento de Transações (TP).............................................................................. 109

11.5 ACESSO E TRANSFERÊNCIA DE ARQUIVOS (FTAM) ................................................................ 10911.5.1 O servidor virtual de arquivos ..................................................................................... 11011.5.2 As primitivas de serviço de FTAM................................................................................ 111

Capítulo 12 - Bibliografia ....................................................................................................112

Page 6: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 6

Capítulo 1 - Introdução às Redes deComunicação

1.1 INTRODUÇÃO

A história nos mostra que cada um dos últimos séculos foi dominado por uma tecnologiadiferente. A revolução industrial no século XVIII, as máquinas a vapor no século XIX e a tecnologia dainformação no século XX. Exemplos disto são as redes de telefonia em escala mundial, o rádio, atelevisão, os computadores e os satélites de comunicação. Com estas conquistas, o conceito de distânciageográ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 deautomóveis e de aviões, por exemplo), os progressos ocorridos foram espetaculares em um curto espaçode tempo. Nas duas primeiras décadas de sua existência, os sistemas computacionais eramacondicionados 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 porteou uma universidade contava apenas com um ou dois computadores, enquanto grandes instituiçõestinham, 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 ossistemas computacionais foram organizados. Está totalmente ultrapassado o conceito de “centro decomputação” como uma sala onde os usuários levam os programas para serem processados. Este conceitofoi substituído pelas chamadas redes de computadores, nas quais os trabalhos podem ser realizados poruma série de computadores interconectados. Sendo assim, é uma necessidade o conhecimento, por partedo 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 otermo rede de computadores para designar um conjunto de computadores autônomos einterconectados. Dois computadores são interconectados quando podem trocar informações através dealgum mecanismo de comunicação. Quando dizemos que eles devem ser autônomos desejamos excluir ossistemas onde existe uma clara relação mestre/escravo.

Outro esclarecimento importante é fazer uma clara distinção entre uma rede de computadores eum sistema distribuído. A principal diferença entre eles é que, em um sistema distribuído, a existênciade diversos computadores autônomos é transparente para o usuário. A transparência de utilização é dadapelo 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 paraexecuçã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, umsistema distribuído é um sistema de software instalado em uma rede, proporcionando um alto grau decoesão e transparência ao usuário. É o software, ou o sistema operacional, que determina a diferença entreuma rede e um sistema distribuído, não o hardware. No entanto os dois assuntos possuem uma série depontos em comum, por exemplo: os sistemas distribuídos e as redes necessitam movimentar arquivos. Adiferença está em quem é o responsável pela movimentação: o sistema operacional ou o usuário.

Page 7: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 7

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 eoutros componentes de computadores cada vez mais potentes e velozes, num tamanho mais reduzido enum 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 defósforos, substituem e ultrapassam as capacidades dos computadores de alguns anos atrás, que ocupavamsalas inteiras. Estes eram máquinas bastante complexas no que diz respeito à sua utilização, sendooperadas apenas por especialistas. Os usuários daqueles computadores normalmente submetiam seusprogramas 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 atécnica de time-sharing, que foi o resultado do desenvolvimento dos sistemas computacionais e datecnologia de transmissão de dados. Nesta técnica, um conjunto de terminais era conectado a umcomputador central através de linhas de comunicação de baixa velocidade, o que permitia aos usuáriosinteragir com os seus programas. A necessidade de conexão de terminais para o processamento interativofoi o ponto de partida para o estabelecimento de necessidades de comunicação nos computadores. Atécnica de time-sharing permitia a um grande conjunto de usuários o compartilhamento de um únicocomputador para a resolução de uma grande diversidade de problemas e as aplicações desenvolvidasforam 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 necessidadecrescente de atualizações e incremento na capacidade de cálculo e de armazenamento nas CPUs, o quenem sempre era viável ou possível, dado que os computadores do tipo mainframes nem sempre eramadaptados para suportar determinadas extensões.

O avanço tecnológico na área dos circuitos integrados, gerando componentes mais poderosos aum custo mais baixo, foi caindo o preço da CPU. Este evento constituiu a chamada revolução dohardware. Nos anos 70, com o surgimento dos minicomputadores, foi possível adaptar as capacidades deprocessamento às reais necessidades de uma dada aplicação. Além disso, um grande número de usuáriosoperavam 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. Istodeu um novo impulso aos trabalhos no sentido de resolver os problemas de comunicação entre oscomputadores. Este novo tipo de aplicações exigia velocidade e capacidade de transmissão muito maiselevadas que no caso da conexão de terminais a um computador central. Assim, com a utilização deminicomputadores 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 serestendidas em função das necessidades de processamento das aplicações. Além disso, a modularidadenatural das redes de computadores era tal que uma falha num minicomputador ou na rede tinha um efeitobastante limitado em relação ao processamento global.

O surgimento dos minicomputadores e dos computadores pessoais trouxe uma nova solução parao problema de máquinas multi-usuário pois dava uma CPU para cada um deles. As pequenas companhiase as subsidiárias utilizavam-se dos minicomputadores para algum processamento local e na preparaçãodos dados para o bureaux de serviços ou para a matriz. Os dados eram transferidos quando exigiam umgrande 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 etransportados via sistema de malotes. Este sistema de transporte não é, obviamente, o mais adequado paratransferê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 tantode software como de hardware, ou seja, o software e hardware especial era caro mas seu preço eraamortizado pelo rateio do custo dos periféricos entre os vários usuários. Surge, então, a necessidade deuma nova tecnologia para compartilhamento de recursos.

Paralelamente, a tecnologia de comunicações alcançava a transmissão digital em linhastelefônicas através de modems. Este serviço era caro e apenas suportado por grandes companhias, umavez que utilizavam linhas telefônicas de forma dedicada. Esta situação perdurou por algum tempo (noBrasil, até março de 1985) e era necessária outra solução para comunicação através de uma novatecnologia 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 egrandes bancos de dados). Aí o problema de comunicação tornou-se muito mais sério. Para acessos não

Page 8: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 8

muito freqüentes, uma linha telefônica dedicada não era viável em termos de custo e o transporte viamalote era inviável em termos de velocidade. A solução para o compartilhamento de recursos físicos elógicos juntamente com a vantagem de se ter um sistema descentralizado, só pode ser alcançada atravésda 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 longadistância foi a tecnologia de comutação de pacotes, que solucionou o problema da linha telefônicadedicada 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 CPUsfoi resolvido através da tecnologia de redes locais.

Atualmente, as vantagens dos sistemas distribuídos e interconectados são uma evidênciareconhecida para as aplicações mais diversas, desde a automação de escritórios até o controle deprocessos, 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 bemconhecidas.

A junção de duas tecnologias – comunicação e processamento de informações – veiorevolucionar o mundo em que vivemos, abrindo as fronteiras para novas formas de comunicação, epermitindo maior eficácia dos sistemas computacionais. As redes de computadores são uma realidadeneste nosso contexto atual.

1.3 IMPORTÂNCIA DAS REDES DE COMUNICAÇÃO

Um grande número de empresas possui atualmente uma quantidade relativamente grande decomputadores operando nos seus diversos setores. Um exemplo deste fato é aquele de uma empresa quepossui 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, apesarda possibilidade de operação destes computadores de maneira isolada, é evidente que sua operação seriamais eficiente se eles fossem conectados para, por exemplo, permitir o tratamento das informações detodas as fábricas da empresa. O objetivo da conexão dos diferentes computadores da empresa é permitir oque poderíamos chamar de compartilhamento de recursos, ou seja, tornar acessíveis a cada computadortodos os dados gerados nas diversas fábricas da empresa.

Um outro ponto importante da existência das Redes de Comunicação é relacionado a umaumento na confiabilidade do sistema como um todo. Pode-se, por exemplo, ter multiplicados osarquivos em duas ou mais máquinas para que, em caso de defeito de uma máquina, cópias dos arquivoscontinuem acessíveis em outras máquinas. Além disso, o sistema pode operar em regime degradado nocaso de pane de um computador, sendo que outra máquina pode assumir a sua tarefa. A continuidade defuncionamento de um sistema é ponto importante para um grande número de aplicações, como porexemplo: 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 osgrandes. Assim, sistemas que utilizariam apenas uma máquina de grande porte e de custo muito elevadopodem ser concebidos à base da utilização de um grande número de microcomputadores (ou estações detrabalho) manipulando dados presentes num ou mais servidores de arquivos. Os mainframes são dezenasde vezes mais rápidos do que alguns computadores pessoais mas também seu preço é milhares de vezesmaior. Esta situação levou os projetistas a criarem sistemas baseados em computadores pessoais para osusuários com os dados mantidos em um ou mais servidores de arquivos compartilhados, Neste modelo osusuários são chamados clientes e a organização geral é denominada modelo cliente/servidor. No modelocliente/servidor um processo cliente envia uma mensagem de solicitação ao processo servidor para quealguma tarefa seja executada. Em seguida o processo servidor executa a tarefa e envia a resposta aoprocesso 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 deaumentar gradualmente o desempenho do sistema à medida que cresce o volume de carga, através daadição de mais processadores. Esta era uma enorme dificuldade nos sistemas centralizados. Quando olimite de capacidade era atingido, o sistema tinha que ser substituído por um maior, o que geralmenteimplicava 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. Umarede de computadores oferece um meio de comunicação altamente eficaz para funcionários que

Page 9: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 9

trabalham em locais muito distantes um do outro. Uma rede viabiliza, por exemplo, a possibilidade deduas 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ê-laimediatamente, sem que seja necessário passar dias esperando por uma carta. Isto facilita o espírito deequipe e reduz em muito o custo de manutenção de equipes de trabalho que não estão localizadas m umamesma 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áriastopologias de uma rede. O conceito de topologia, até há pouco relacionado apenas com a estruturaçãofí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, duasdimensõ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 ponto-a-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-a-ponto existem várias conexões entre pares individuais de estações. Estes dois tipos de ligação podem servisualizados na figura 1.1 a seguir.

computador

cabo

(a) (b)Figura 1.1 – Rede em difusão (a) e rede ponto-a-ponto (b).

1.4.1 AS DIFERENTES TOPOLOGIAS

Um ponto importante no que diz respeito à concepção de uma rede de comunicação é a definiçãoda maneira como as diferentes estações serão interligadas. Estes arranjos são denominados topologia darede. 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 decomunicação, cada linha sendo associada à conexão de um par de estações. Neste caso, se duas estaçõesprecisam 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 deforma indireta, ela será recebida integralmente por cada estação e, uma vez que a linha de saída daestaçã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 redesde longa distância são do tipo ponto-a-ponto. As redes ponto-a-ponto podem ser concebidas segundodiferentes topologias. As redes locais ponto-a-ponto são caracterizadas normalmente por uma topologiasimétrica; as redes de longa distância apresentam geralmente topologias assimétricas. A figura 1.2apresenta as diferentes topologias possíveis nas redes ponto-a-ponto.

Page 10: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 10

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, portodas as estações, de um único canal de comunicação. Neste caso, as mensagens enviadas por umaestação são recebidas por todas as demais conectadas ao suporte de transmissão, sendo que um campo deendereço contido na mensagem permite identificar o destinatário. Na recepção, a máquina verifica se oconteúdo do campo de endereço corresponde ao seu e, em caso negativo, a mensagem é ignorada. Asredes locais pertencem geralmente a esta classe de redes. Nas redes de difusão existe a possibilidade deuma estação enviar uma mesma mensagem às demais estações da rede, utilizando um código de endereçoespecial. Neste caso, todas as estações vão tratar as mensagens recebidas endereçadas para este endereçocomum. Este modo de operação é denominado broadcasting. Alguns sistemas de difusão tambémsuportam 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 redeem barramento, uma única máquina pode estar transmitindo a cada instante. As demais estações devemesperar para transmissão caso o barramento esteja ocupado. Para isto, um mecanismo de arbitragemdeve ser implementado para resolver possíveis problemas de conflito (quando duas ou mais estaçõesquerem 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 qualpode enviar e receber mensagens. Cada estação pode “escutar” o satélite e, em alguns casos, receberdiretamente 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 bitrealiza uma volta completa no anel durante o tempo necessário para a emissão de um certo número debits, antes mesmo da emissão completa da mensagem. Também nesta topologia, é necessária aimplementaçã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 decomunicação: estáticas ou dinâmicas. Um exemplo do primeiro caso é a definição de intervalos de tempodurante os quais cada estação tem a posse do canal de comunicação, permitindo então que esta emita a

Page 11: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 11

mensagem de maneira cíclica. No entanto, esta política é bastante ineficiente do ponto de vista do enviodas 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 enviode 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 peladefiniçã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étodosde acesso são necessários para regular a utilização dos meios físicos compartilhados. A forte tendência deutilização de hubs nas instalações físicas das redes corresponde, fisicamente, a implantação de umatopologia em estrela. Esta tendência é explicada pela crescente necessidade de melhorar o gerenciamentoe a manutenção nessas instalações. A topologia em estrela apresenta uma baixa confiabilidade porém osavanços da eletrônica já permitem que se construam equipamentos de alta confiabilidade, viabilizandoeste tipo de topologia.

A utilização de hubs não exige, necessariamente, que as interfaces das estações com a rede opercebam como uma topologia em estrela. O funcionamento continua a ser como no acesso a umbarramento ou a um anel, com os seus respectivos métodos de acesso. Sendo assim, podemos diferenciardois tipos de topologias: uma topologia lógica, que é aquela observada sob o ponto de vista das interfacesdas 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ãoimplementem somente a utilização do meio compartilhado, mas também possibilitem a troca demensagens entre várias estações simultaneamente. Desta forma as estações podem obter para si taxasefetivas de transmissão bem maiores. Esse tipo de elemento, também central, é denominado switch. Asredes ATM, por exemplo, baseiam-se na presença de switches de grande capacidade de comutação quepermitem 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 dasvárias redes de computadores em relação a sua abrangência. Basicamente elas podem ser classificadas emtrês grupos: LAN – Local Area Network ou Rede Local, MAN – Metropolitan Area Network ou RedeMetropolitana e WAN – Wide Area Network ou Rede Geograficamente Distribuída (ou de LongaDistância).

Distância entre nós Abrangência

até 10 m

até 100 m

até 1 km

até 10 km

até 100 km

até 1.000 km

até 10.000 km

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.

Page 12: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 12

A diferença na dimensão das redes introduz diferentes problemas e necessidades. No que dizrespeito ao exemplo de microcomputadores, a rede é classificada como sendo uma Rede Local,caracterizada particularmente por uma pequena extensão, limitando-se normalmente à interconexão decomputadores localizados numa mesma sala, num mesmo prédio ou num campus. Este tipo de redeinvariavelmente proprietária. Uma alternativa a este tipo de rede, muito utilizada atualmente são as RedesMetropolitanas, que são utilizadas quando as distâncias entre os módulos processadores aumentaconsideravelmente, atingindo distâncias metropolitanas. Elas podem ser públicas ou privadas.

No exemplo de empresa possuindo diversas fábricas, a rede utilizada permitiria conectarcomputadores localizados em diferentes prédios numa mesma cidade ou mesmo em cidades distantes deuma dada região. Esta caracteriza uma Rede de Longa Distância ou Rede GeograficamenteDistribuída.

Esta classificação não é, de maneira alguma, fechada. Por exemplo, uma rede local pode alcançardimensões metropolitanas e ainda assim ser considerada local. Nos próximos capítulos serão estudadosmais 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áriassoluções para os mesmos. Primeiramente definiremos alguns problemas mais comuns encontrados noprojeto de um software de rede. Em seguida apresentaremos uma definição inicial sobre a forma como ossoftwares 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 pordiferentes configurações e topologias. Apesar da diversidade no que diz respeito a este aspecto, todas aspossí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 mecanismosque 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, assimcomo do ambiente no qual ela vai ser inserida. Estes aspectos serão mostrados aqui através de algunsexemplos. O primeiro exemplo é baseado nas políticas de time-sharing já descrita anteriormente. Vamosconsiderar o caso em que temos apenas um terminal conectado a um computador, como mostrado nafigura 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 nocomputador central, para que isto seja possível, é necessário que o computador central seja dotado doprograma necessário ao tratamento daquelas informações. Em caso positivo, o terminal e o computadordevem estabelecer um diálogo que permita o bom desenrolar das operações de tratamento dasinformações. Este diálogo deverá permitir, por exemplo, que o usuário comunique sua intenção (de

Page 13: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 13

processar as informações!) ao computador e, em seguida, envie as informações a serem processadas. Umavez 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 umasérie de condições. Vamos supor, por exemplo, que o computador central e o terminal tenham sidofabricados de forma totalmente independente um do outro, o que pode ter resultado numa diferentefilosofia no que diz respeito ao formato das informações. Um primeiro obstáculo a ser vencido é aqueleda 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íveiserros de transmissão que podem ocorrer durante a comunicação, uma vez que as linhas de comunicaçãoestã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 doiselementos. Se considerarmos que o computador central opera numa velocidade superior à do terminal, porexemplo, o terminal corre o risco de ser “bombardeado” pelo fluxo de dados vindo do computador, o quevai 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 tratamentode informações, oferecer serviços de adaptação, detecção e correção de erros de transmissão e controle defluxo.

Vamos considerar agora que, ao invés de um único terminal, vamos conectar um maior númerodeles ao computador central, como mostra a figura 1.6. Aqui, cada terminal pode, a princípio e a qualquermomento, tomar a iniciativa da troca de dados com o computador. Isto significa que cada terminal terá deser caracterizado por um endereço específico, cuja utilização correta vai permitir evitar que o computadorcentral 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-serelativamente 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, aotérmino de uma sessão entre um terminal e o computador central, este terá liberados determinadoselementos (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 deforma simultânea, dever-se-á, então, especificar a aplicação associada. Assim, todas as necessidadesvistas neste exemplo deverão ser associadas às funcionalidades definidas no exemplo anterior. Mas osproblemas 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 diversoscomputadores, terminais, e outros periféricos, cada um destes elementos constituindo um nó da rede. Afigura 1.7 mostra uma situação deste tipo. Neste exemplo, os dois elementos envolvidos numacomunicação não serão mais necessariamente adjacentes; além disso, podem existir diversas maneiras deconectá-los, o que vai corresponder a diferentes caminhos. No exemplo mostrado na figura, os nós 1 e 5podem 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.

Page 14: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 14

Ainda, se a rede é da classe ponto-a-ponto (ou comutação de pacotes), o sistema de comunicaçãodeve assegurar a correta transmissão da informação de um ponto a outro. Particularmente, será necessáriogarantir que as mensagens enviadas serão recuperadas e reconstituídas na ordem correta no ponto dechegada.

Um requisito também importante é o aspecto da codificação das mensagens de modo a evitar oacesso 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.

1

2

3

5

4

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ãoque 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 antesou depois da correção de erros? Uma vez resolvida esta questão, que elementos da rede serãoresponsáveis da implementação destas funções? As soluções adotadas são dependentes do suporte detransmissã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 dassoluções para cada problema.

Uma ilustração típica do problema é aquela da comunicação entre duas empresas. Vamos suporque o Diretor de uma Empresa A quer comunicar-se com o Diretor de uma Empresa B. Ele convoca a suaSecretária Administrativa e solicita, informalmente, que esta construa um texto relativo ao assunto a sertratado. A Secretária Administrativa elabora o documento e o entrega ao Office Boy que vai envelopá-lo eencaminhá-lo ao Chefe do Setor de Malote. Este último encaminha o documento ao Serviço Postal paracondução à Empresa B.

Considerando que a Empresa B apresenta uma estrutura similar à Empresa A, como é ilustradona figura 1.8, os mesmos elementos atuam, cada um em suas funções, para fazer com que acorrespondê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 vaipermitir responder à questão de ordenação na adoção das soluções. Segundo esta filosofia, uma tarefaglobal é vista como sendo decomposta a medida que se vai descendo na hierarquia e que a única interaçãofísica se faz no seu nível mais baixo.

Page 15: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 15

DiretorEmpresa

SecretáriaAdministrativa

OfficeBoy

ChefeMalote

Empresa A

Serviço Postal

Empresa B

DiretorEmpresa

SecretáriaAdministrativa

OfficeBoy

ChefeMalote

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 afetaum sistema complexo e, consequentemente, sujeita à aplicação dos princípios de hierarquização e dedescentralizaçã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 amanutenção;

• garantia, pela modularidade, de um grau satisfatório de evolutividade e de extensibilidade darede;

• otimização de desempenho.

Todos estes aspectos nos conduzem a conceber uma arquitetura de comunicação como sendouma 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, cadaum podendo implicar num tipo de rede particular. Em função desta provável multiplicidade, surgiu entãoa 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 derepresentar as relações entre as diferentes tarefas implementadas nos diferentes níveis hierárquicos. Apossibilidade de interconexão de um número qualquer de sistemas, ou seja, de conjuntos autônomospodendo efetuar tarefas de tratamento ou de transmissão de informação, era uma característica essencialpara o modelo a ser estabelecido.

A figura 1.9 ilustra uma arquitetura hierarquizada em 4 camadas que permitirá introduzir oconjunto de conceitos relacionados ao modelo estabelecido. O objetivo de cada camada é o oferecimentode um tipo de serviço a sua camada superior de forma a evitar que esta necessite conhecer certos aspectosde como este serviço é realizado. A camada n assume que a comunicação com a camada n de uma outramáquina existe, embora não seja direta. Para que esta comunicação exista, ela se serve de um conjunto deconvenções e regras que vão permitir gerenciar esta comunicação. A este conjunto de regras econvenções, dá-se o nome de protocolo. Como se pode ver na figura, não existe meio de comunicação

Page 16: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 16

direto entre as diferentes camadas (apenas o meio de transmissão na camada 1), o que significa que nãoexiste 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 camadamais baixa; o dado é então transmitido à outra máquina através do meio de transmissão. A comunicaçãoentre as camadas é vista então como uma comunicação virtual e é representada, na figura 1.9, pelas linhasligando cada par de camadas.

Figura 1.9 - Modelo hierarquizado em 4 camadas.

Cada camada comunica-se com as camadas adjacentes (acima ou abaixo) através de umainterface 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 asespecificações da arquitetura devem conter informações suficientes para permitir o corretodesenvolvimento 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 parainterfaces, serviços e protocolos de comunicação serão abordados no capítulo 2.

Camada 4

Camada 3

Camada 2

Camada 1

Meio de Comunicação

Camada 4

Camada 3

Camada 2

Camada 1

Protocolo da Camada 4

Protocolo da Camada 3

Protocolo da Camada 2

Protocolo da Camada 1

SISTEMA BSISTEMA A

Interface3/4

Interface3/4

Interface2/3

Interface2/3

Interface1/2

Interface1/2

Page 17: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 17

Capítulo 2 - Conceitos Básicos do Software deRede

2.1 INTRODUÇÃO

Nas primeiras redes de computadores os aspectos relacionados ao hardware foram colocadoscomo prioridade e os aspectos de software em segundo plano. No entanto logo foi percebida afundamental importância dos mecanismos de software de uma rede, e, em função disto, os softwares derede são altamente estruturados. Os conceitos relacionados a esta estruturação são de vital importânciapara 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 deníveis ou camadas, que são colocadas uma sobre a outra. O número, o nome, o conteúdo e a função decada 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 dessesrecursos.

Conforme já introduzido anteriormente, a figura 2.1 ilustra a arquitetura hierarquizada em 7camadas 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 àscamadas superiores, utilizando-se, também dos serviços oferecidos pelas camadas inferiores, de forma aevitar 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 seserve de um conjunto de convenções e regras que vão permitir gerir esta comunicação. A este conjunto deregras 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 aspartes envolvidas.

As entidades representando camadas correspondentes em diferentes sistemas são denominadasprocessos pares, ou entidades pares. Os processos pares vão se comunicar através dos protocolos. Comose pode ver na figura 2.1, não existe meio de comunicação físico entre as diferentes camadas o quesignifica que não existe transferência direta de dados entre a camada n de uma máquina à camada n deoutra máquina.

Cada camada transfere os dados à camada imediatamente inferior até a camada mais baixa; odado é então transmitido à outra máquina através do meio de transmissão. A comunicação entre ascamadas é vista como uma comunicação virtual e é representada, na figura 2.1, pelas linhas horizontaisentre as camadas. Cada camada comunica-se com as camadas adjacentes (acima e abaixo) através de umainterface, que define as operações elementares e os serviços que a camada inferior oferece à camadaconsiderada.

No momento da definição do número de camadas que vai compor uma rede e do papel que cadauma delas deve cumprir, uma tarefa importante será a definição completa das interfaces entre as camadase isto vai implicar que na definição do serviço oferecido por cada camada. Uma vantagem da corretadefinição das interfaces é a facilidade da introdução de modificações nas implementações das diferentescamadas; os mecanismos podem ser implementados de forma diferente, desde que as interfacesanteriormente definidas sejam respeitadas.

Page 18: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 18

Camada 7

Camada 6

Camada 5

Camada 4

Camada 3

Camada 2

Camada 1

Meio de Transmissão

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

SISTEMA BSISTEMA A

Interface6/7

Interface6/7

Interface5/6

Interface5/6

Interface4/5

Interface4/5

Interface3/4

Interface3/4

Interface2/3

Interface2/3

Interface1/2

Interface1/2

Figura 2.1 - Modelo hierarquizado em 7 camadas.

Ao conjunto das camadas compondo uma rede dá-se o nome de arquitetura da rede, e asespecificações da arquitetura devem conter informações suficientes para permitir o corretodesenvolvimento da rede, tanto do ponto de vista do software quanto do hardware. Por outro lado, osdetalhes de implementação dos mecanismos em cada camada, assim como as especificações detalhadasdas 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 arquiteturamulticamadas. O processo da camada 7 gera uma mensagem M, que será transmitida desta à camadainferior 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 é, porsua 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 serimpostas 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 H4contendo 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 partesrecebidas. Outras informações podem ainda estar contidas neste cabeçalho, como, por exemplo, otamanho 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 àsmensagens. Na camada 2, além de um cabeçalho, H2, é introduzido também um sufixo, T2, contendoinformaçõ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, decamada em camada, e os cabeçalhos retirados nas camadas respectivas, de modo a evitar que estes sejamtransferidos às camadas que não lhes dizem respeito.

Um aspecto importante mostrado na figura 2.2 é o da comunicação virtual ocorrendo entre asdiferentes 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 mesmosistema.

Page 19: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 19

M

m

m

H4 M2H4 M1

H3 H4H4 M1H3 M2

H2 H3H4 M1H3 H4H2 M2

M

m

m

H4 M2H4 M1

H3 H4H4 M1H3 M2

H2 H3H4 M1H3 H4H2 M2Protocolo

da Camada 2

Protocolo

da Camada 3

Protocolo

da Camada 4

Protocolo

da Camada 5

Protocolo

da Camada 6

Protocolo

da Camada 7

TRANSMISSOR RECEPTOR

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. Oimportante 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 coma maneira pela qual as operações serão executadas. O serviço está intimamente relacionado com asinterfaces 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 doserviço, particularmente, o significado dos quadros, pacotes ou mensagens trocadas entre as entidadespares de uma dada camada. A nível de uma determinada camada, o protocolo pode ser mudado semproblemas, desde que as interfaces com a camada superior e inferior não sejam alteradas, ou seja, que elascontinuem a ter a mesma visibilidade no que diz respeito aos serviços realizados pela camada que foialterada; isto corresponde, na verdade, a um certo desacoplamento entre os conceitos de serviço eprotocolo.

2.4 QUESTÕES DE PROJETO RELACIONADAS ÀS CAMADAS

Algumas questões de projeto fundamentais das redes de computadores estão presentes emdiversas 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 ummeio para que um processo de uma máquina especifique com quem ele deseja se comunicar. Como podehaver vários destinos, há a necessidade de se criar uma forma de endereçamento para definir o destinoespecífico.

Outra preocupação recai sobre as direções do tráfego. Em alguns sistemas, os dados sãotransferidos em apenas uma direção. Em outros, eles podem ser transferidos em ambas as direções, masnão simultaneamente. Também é possível transmitir em ambas as direções simultaneamente. O protocolotambém deve determinar o número de canais lógicos correspondentes à conexão e quais são as suas

Page 20: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 20

prioridades. Muitas redes oferecem pelo menos dois canais lógicos por conexão, um para dados normais eoutro para dados urgentes.

O controle de erro é uma questão importante, pois os circuitos de comunicação física podemnão ser perfeitos. Muitos códigos de detecção e correção de erros são conhecidos e as partes envolvidasem uma conexão devem chegar a um consenso quanto ao que deve ser usado. Além disso, o receptor deveter alguma forma de informar ao emissor as mensagens que foram recebidas corretamente e as que nãoforam.

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 oreceptor possa remontar adequadamente os fragmentos recebidos. Uma solução óbvia é numerar osfragmentos, mas isso ainda deixa aberta a questão do que deve ser feito com os fragmentos que chegamfora 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 osprocessos para aceitarem arbitrariamente mensagens longas. Esta propriedade nos leva ao uso demecanismos para desmontar, transmitir e remontar mensagens. Uma questão é o que fazer quandoestas unidades se tornam tão pequenas que o envio de cada uma em separado se torna ineficiente. Nessecaso a solução é reunir as pequenas mensagens com um destino comum em uma grande mensagem edesmembrá-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ãodiscutidas posteriormente. Algumas delas trabalham com a possibilidade do receptor determinardinamicamente 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 deprocessos de comunicação, a camada inferior pode usar a mesma conexão para diversas conversações nãorelacionadas. Desde que seja feita de modo transparente, a multiplexação e a demultiplexação deconexõ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 Londrespara Roma, por exemplo, devem ser tomadas duas decisões: uma de alto nível, decidindo sobre o trajeto aser escolhido (via França ou Alemanha, com base nas respectivas leis de privacidade) e uma de baixonível, escolhendo sobre quais dos circuitos físicos disponíveis os dados serão transmitidos (com base nacarga 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 acimadela. Os elementos ativos de uma camada, ou seja, os processos que a implementam são chamadosentidades. Estas podem ser entidades de software ou de hardware. Às entidades localizadas emdiferentes sistemas, mas associadas a um mesmo nível (ou camada), dá-se o nome de entidades pares. Asentidades recebem também uma denominação complementar em função da camada à qual elas estãorelacionadas — por exemplo, entidade de aplicação, entidade de transporte, entidade de enlace, entreoutras.

As entidades de uma camada N (ou entidades N) implementam um serviço que é utilizado pelacamada N+1. Assim, a camada N é dita ser um fornecedor de serviço e a camada N+1 é denominadausuária de serviço.

Por outro lado, a camada N poderá utilizar os serviços da camada imediatamente inferior, acamada 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, ouSAP (Service Access Point). Os SAPs da camada N são os lugares onde a camada N+1 poderá ter acessoaos serviços oferecidos, cada SAP sendo identificado por um endereço único. Por exemplo, os SAP deuma rede telefônica são as tomadas às quais podem ser conectados os aparelhos telefônicos e seusendereç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 seremrespeitadas, definidas pela interface. Através de uma interface, a camada N+1 envia uma unidade dedados de interface, ou IDU (Interface Data Unit) à entidade da camada N pelo SAP. A IDU é composta

Page 21: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 21

de uma parte denominada unidade de dados de serviço, ou SDU (Service Data Unit) e de outrasinformações de controle. A SDU é a informação transmitida via rede à entidade par e, em seguida, àcamada N+1. A informação de controle é utilizada para auxiliar a gestão da camada inferior em seutrabalho (por exemplo, o número de bytes compondo a SDU correspondente).

Para transmitir uma SDU, a entidade da camada N pode fragmentá-la em diversas partes, e cadaparte vai receber um cabeçalho, sendo enviada como uma unidade de dados de protocolo, ou PDU(Protocol Data Unit). Os cabeçalhos de PDU são utilizados pelas entidades pares para o transporte doprotocolo. Elas identificam a PDU contendo os dados e aquelas contendo informações de controle(números de seqüência, contagens, etc). A figura 2.3 ilustra o processo descrito. As PDUs recebemnormalmente uma denominação segundo a camada à qual estão associadas. Por exemplo, as PDUs deaplicação são ditas APDU, assim como as de apresentação são as PPDU, as de sessão SPDU, e assim pordiante.

ICI SDU

ICI SDU SDU

SAP

CamadaN+1

CamadaN

Interface

Cabeçalho

N-PDU

IDU

Figura 2.3 - Ilustração dos diferentes conceitos associados a interface entre camadas.

2.6 SERVIÇOS ORIENTADOS À CONEXÃO E SEM CONEXÃO

As camadas de uma arquitetura de rede podem oferecer diferentes classes de serviços às camadassuperiores. Estes serviços podem ser orientados a conexão ou não orientados a conexão (tambémchamada sem conexão).

No que diz respeito ao serviços orientados à conexão, podemos citar como exemplo típico osistema telefônico. Para que seja possível falar com alguém no telefone é necessário, inicialmente, tirar ofone do gancho, digitar (ou discar) um número, esperar que o interlocutor atenda, falar com a pessoa queprecisamos e, finalmente, desligar.

Este é o princípio de base de um serviço orientado conexão:• estabelecimento da conexão,• utilização do serviço (ou enviar mensagem) e• término da conexão.

O aspecto principal da conexão é o fato de que ela funciona como uma espécie de canal virtualatravés do qual irão transitar as mensagens envolvidas na realização do serviço.

Já os serviços sem conexão são estruturados como o sistema postal, onde cada mensagem (oucarta, se consideramos o exemplo citado) contém o endereço do destinatário e é encaminhada no sistema,independente de outras. O princípio básico é então apenas: enviar mensagem.

Normalmente, se duas mensagens são enviadas a um mesmo destinatário, a primeira a serenviada deve ser a primeira a ser recebida. Por outro lado, neste modo de serviço pode ocorrer que umamensagem seja atrasada fazendo com que a segunda mensagem seja recebida primeiro. Já nos serviçosorientados conexão, isto jamais poderá acontecer.

Cada serviço é caracterizado por uma qualidade de serviço. Tendo em vista o parâmetroqualidade, os serviços podem ser divididos em confiável e não-confiável. Um serviço dito confiável éaquele em que os dados não podem ser jamais perdidos, ou melhor, jamais podem deixar de realizar o

Page 22: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 22

serviço adequadamente e, por vezes, algum mecanismo de recuperação em caso de falha deve serutilizado. Serviços não confiáveis são aqueles onde, eventualmente, dados podem ser perdidos e nãorecuperados pela camada em questão.

Normalmente, a implementação de serviços confiáveis é feita através da definição de mensagensde reconhecimento enviadas pelo receptor, para cada mensagem recebida do emissor. Este processo,embora extremamente benéfico, introduz uma lentidão na transferência de dados, o que significa que nemsempre ele é desejável num sistema.

Os serviços confiáveis orientados conexão apresentam duas variantes. No primeiro caso, asfronteiras das mensagens são sempre preservadas. Se duas mensagens de 1 Kbytes são enviadas, elaschegarão sob a forma de duas mensagens de 1 Kbytes e nunca como uma única mensagem de 2 Kbytes. Jána segunda variante, se uma mensagem de 2 Kbytes é recebida, não há como identificar se ela foi enviadarealmente como uma única mensagem de 2 Kbytes, como duas mensagens de 1 Kbytes, ou ainda como2048 mensagens de 1 byte. Porém em algumas aplicações, é necessário resguardar as fronteiras entre asmensagens enviadas; por exemplo, no caso do envio de um documento a uma impressora é interessantepoder preservar as fronteiras entre as páginas.

No que diz respeito aos dois tipos de serviços (orientados conexão e sem conexão), nem todas asaplicações requerem a utilização de conexão. Um exemplo disto pode ser o de uma aplicação de correioeletrônico. Pode-se imaginar uma aplicação de correio em que o usuário não se interesse noestabelecimento de conexão e tampouco a uma confiabilidade de 100% no que diz respeito à chegada dasmensagens. Os serviços sem conexão e não-confiáveis são denominados serviços de datagrama.

Existem casos, porém, em que, apesar de não necessitar o estabelecimento de conexão, aconfiabilidade é essencial. O serviço utilizado neste caso é dito de datagrama com reconhecimento. Oserviço de pedido-resposta já é um outro tipo de serviço no qual o emissor envia um datagrama contendoum serviço e o receptor envia um outro contendo a resposta a este pedido.

A tabela a seguir ilustra os diferentes serviços com e sem conexão, com exemplos de aplicaçãodestes serviços.

SERVIÇOS MODALIDADES EXEMPLOTransferência confiável de mensagens com conexão seqüência de páginasTransferência confiável de bytes com conexão login remotoTransferência não confiável com conexão voz digitalizadaDatagrama não confiável sem conexão correio eletrônicoDatagrama confiável sem conexão correio eletrônico registradoPedido-Resposta sem conexão consulta a bases de dados

2.7 PRIMITIVAS DE SERVIÇO

Um serviço é definido formalmente por um conjunto de primitivas (ou operações) disponíveis aum usuário ou a outras entidades para o acesso àquele serviço. Estas primitivas permitem indicar a ação aser executada pelo serviço ou ainda um pedido de informação sobre uma ação executada previamente.

As primitivas de serviço são divididas em quatro classes: pedido (request), indicação(indication), resposta (response) e confirmação (confirm).

A tabela a seguir mostra o significado de cada uma destas primitivas no que diz respeito àexecução de um serviço.

PRIMITIVA SIGNIFICADOrequest Pedido enviado por uma entidade que solicita um serviçoindication Através dela, a entidade par é informada de uma solicitação de serviçoresponse A entidade par responde ao pedido de serviçoconfirm A entidade solicitante é informada do resultado do serviço

Page 23: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 23

Uma analogia com o sistema telefônico pode ser de grande utilidade para que se entenda autilização dessas primitivas. Nesse caso considere os procedimentos necessários para você telefonar à tiaNena e convidá-la para tomar um chá em sua casa:

AÇÃO PRIMITIVA1 Você disca o número do telefone da casa de sua tia. CONNECT.request2 O telefone dela toca. CONNECT.indication3 Ela tira o telefone do gancho. CONNECT.response4 Você ouve o “alô” dela. CONNECT.confirm.5 Você a convida para o chá DATA.request6 Ela ouve o convite DATA.indication7 Ela diz que terá o maior prazer em ir a sua casa. DATA.request8 Você ouve a aceitação DATA.indication9 Você coloca o telefone no gancho DISCONNECT.request

10 Ela ouve você colocar o telefone no gancho e faz o mesmo. DISCONNECT.indication

A figura 2.4 mostra essa mesma seqüência de procedimentos como uma série de primitivas deserviço, inclusive a confirmação final de encerramento de conexão. Cada procedimento envolve ainteração entre duas camadas de um dos computadores. Cada request ou response provoca logo emseguida um indication ou confirm do outro lado.

Camada N+1 1 5 9

Camada N 4 8Você

1 2 3 4 5 6 7 8 9 1 Tempo

Camada N+1 3 7

Camada N 2 6 10Tia Nena

Figura 2.4 – Mapeamento das primitivas do convite para tomar chá. Os números próximos à extremidadedas setas fazem referência às primitivas de serviço utilizadas no exemplo anterior.

Vamos agora considerar o exemplo de utilização das primitivas de serviço para o seguinteserviço orientado à conexão com oito primitivas de serviço:

CONNECT.request – Solicita o estabelecimento de conexão.CONNECT.indication – Sinalização da parte para a qual foi feita a chamada.CONNECT.response – Usada pelo receptor da chamada para aceitá-la (ou rejeitá-la).CONNECT.confirm – Permite que a origem da chamada saiba que ela foi aceita.DATA.request – Solicita o envio de dados.DATA.indication – Sinal de chegada de novos dados.DISCONNECT.request – Solicita o encerramento de uma conexão.DISCONNECT.indication – Sinal do par sobre a solicitação.

Para requisitar o estabelecimento de uma conexão, a entidade que quer iniciar o diálogo enviauma primitiva de serviço de pedido de abertura de conexão, CONNECT.request que vai se refletir, naentidade destinatária, por uma primitiva de indicação, CONNECT.indication.

A entidade que recebeu a indicação vai enviar uma primitiva de resposta, CONNECT.response,para informar se esta aceita ou não a conexão. Finalmente, a entidade emissora vai saber do resultado doseu pedido pela recepção de uma primitiva de serviço de confirmação, CONNECT.confirm.

Parâmetros podem ser associados às primitivas; no caso do serviço de conexão, por exemplo, osparâmetros podem especificar os seguintes aspectos relacionados à conexão desejada: a máquina com aqual se deseja dialogar, o tipo de serviço desejado, o tamanho máximo das mensagens, etc... Se a entidadeinvocada não está de acordo com os parâmetros contidos na primitiva de indicação recebida, esta pode

Page 24: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 24

fazer uma contra-proposta, através dos parâmetros da primitiva de resposta, que será transmitida àentidade emissora através dos parâmetros da primitiva de confirmação.

Os serviços podem ser de dois tipos: confirmados ou não-confirmados. No caso dos serviçosconfirmados, as quatro classes de primitivas são definidas, ou seja, pedido (request), indicação(indication), resposta (response) e confirmação (confirm). Isto significa que a entidade que requisitou oserviço terá sempre uma informação sobre as condições de realização deste e até se este foi realizado comsucesso ou não.

Nos serviços não-confirmados, apenas as duas primeiras classes de primitivas são utilizadas, ouseja, pedido (request) e indicação (indication). Neste tipo de serviços, a entidade emissora do pedido nãoreceberá nenhuma informação sobre as condições de realização do serviço requisitado, nem mesmo seeste foi realizado. A tabela a seguir apresenta um conjunto de primitivas associadas a um serviçoorientado à conexão.

PRIMITIVA SIGNIFICADOCONNECT.request pedido de estabelecimento de uma conexãoCONNECT.indication indicação à entidade invocadaCONNECT.response utilizada para indicar a aceitação ou não da conexãoCONNECT.confirm informa à entidade emissora se a conexão é aceitaDATA.request pedido de envio de dadosDATA.indication sinalização da chegada de dadosDISCONNECT.request pedido de término da conexãoDISCONNECT.indication indicação do pedido à entidade par

Neste exemplo, CONNECT é um serviço confirmado enquanto os serviços DATA eDISCONNECT são não-confirmados. A figura 2.5 permite ilustrar as trocas de primitivas de serviçoentre as camadas no caso de um serviço confirmado. O exemplo utilizado é o serviço CONNECT.

SISTEMA ACamada N+1

Camada N

connect_request

connect.confirm

SISTEMA BCamada N+1

Camada N

connect.indication

connect.response

Figura 2.5 - Ilustração da troca de primitivas de serviço (confirmado).

Page 25: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 25

Capítulo 3 - Arquiteturas de Redes

3.1 INTRODUÇÃO

A solução para o compartilhamento de recursos físicos e lógicos juntamente com a vantagem dese ter um sistema descentralizado foi alcançada através da interconexão das CPUs entre si. É a isso que sepropõem as redes de computadores. A solução para a comunicação de computadores em termos de longadistância foi a tecnologia de comutação de pacotes, que solucionou o problema da linha telefônicadedicada. Para pequenas distâncias a solução foi a implantação de redes locais.

De uma forma geral, o objetivo de uma rede é tornar disponível a qualquer usuário todos osprogramas, dados e outros recursos independente de suas localizações físicas. Outro objetivo éproporcionar uma maior disponibilidade e confiabilidade, dada a possibilidade de migração para outroequipamento quando a máquina sofre alguma falha. O uso de uma rede de computadores proporciona ummeio de comunicação poderoso devido a sua velocidade e confiabilidade.

3.2 CLASSIFICAÇÃO DAS REDES DE COMPUTADORES

Uma rede de computadores é formada por um conjunto de módulos processadores capazes detrocar informações e compartilhar recursos, interligados por um sistema de comunicação. O sistema decomunicação vai se constituir de um arranjo topológico interligando os vários módulos processadoresatravés de enlaces físicos, através dos meios de transmissão, e de um conjunto de regras com fim deorganizar a comunicação, os protocolos de comunicação.

3.2.1 REDES LOCAIS

Redes Locais (LANs - Local Area Networks) são redes privadas contidas em um prédio oucampus universitário, que tem alguns quilômetros de extensão. As redes locais foram definidas eutilizadas inicialmente nos ambientes de institutos de pesquisa e universidades. Elas surgiram paraviabilizar a troca e o compartilhamento de informações e dispositivos periféricos preservando aindependência das várias estações de processamento e permitindo a integração em ambientes de trabalhocooperativo.

São amplamente utilizadas para interconectar computadores pessoais e estações de trabalho emescritórios e instalações industriais. Nas redes locais as distâncias entre os módulos processadores seenquadram na faixa de alguns metros a alguns poucos quilômetros. Esta definição é bastante vaga,embora as limitações associadas às técnicas utilizadas em redes locais não imponham limites a essasdistâncias.

As redes locais têm três características que as diferem das demais: tamanho, tecnologia detransmissão e topologia. Elas geralmente tem um tamanho restrito. Em algumas topologias o pior tempode transmissão é conhecido e isto permite a utilização de determinados tipos de aplicações.

Nas LANs tradicionais os computadores são interconectados por cabos ou através deequipamentos tipo hub. Neste tipo de rede as velocidades geralmente variam de 10 a 100 Mbps, há umbaixo retardo e pouquíssimos erros de transmissão são encontrados. As LANs mais modernas podemoperar em velocidades ainda mais altas, alcançando Gbps.

Este tipo de rede apresenta como topologias lógicas mais usadas o barramento e o anel e comotopologias físicas a árvore e a estrela. É fato que em qualquer tipo de rede duas ou mais estações podem

Page 26: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 26

necessitar enviar informações pelo meio de transmissão no mesmo instante. Analisando estes arranjostopológicos verificamos que há a necessidade de um mecanismo de arbitragem para determinação de qualestação poderá transmitir de forma a não existência de conflitos e garantia de tempo para todas asestações que têm dados a transmitir. Conforme já mencionado, estes mecanismos podem ser estáticos oudinâmicos e estes últimos ainda podem ser divididos em centralizados ou distribuídos. Mais adiante serãodiscutidos alguns destes métodos.

3.2.2 REDES METROPOLITANAS

Uma Rede Metropolitana (MAN - Metropolitan Area Network) é, na verdade, uma versãoampliada de uma LAN, pois basicamente os dois tipos de rede utilizam tecnologias semelhantes. UmaMAN pode abranger um grupo de escritórios vizinhos ou uma cidade inteira e pode ser privada oupública. Este tipo de rede pode transportar voz e dados, podendo inclusive ser associado à rede detelevisão a cabo local.

A principal razão para se tratar as redes metropolitanas como uma categoria especial é que elastêm um padrão especial, o DQDB (Distributed Queue Dual Bus) ou IEEE 802.6. Atualmente as redesATM (Asynchronous Transfer Mode) têm sido a tecnologia com maior aceitação para uso em redesmetropolitanas.

3.2.3 REDES GEOGRAFICAMENTE DISTRIBUÍDAS

As Redes Geograficamente Distribuídas (WANs - Wide Area Networks), ou Redes de LongaDistância abrangem uma ampla área geográfica, com freqüência um país ou continente. Ela tambémcontém um conjunto de máquinas cuja finalidade é executar programas de usuários, as chamadasaplicações. Estas máquinas são denominadas na literatura como hosts ou end systems. Estes hosts sãoconectados por uma sub-rede de comunicação, ou somente sub-rede. A tarefa as sub-rede é transportarmensagens de um host para outro, exatamente como o sistema telefônico transporta palavras da pessoaque fala para aquela que ouve. Esta estrutura é altamente simplificada pois separa os aspectos decomunicação pertencentes à rede (a sub-rede) dos aspectos de comunicação.

Na maioria das redes geograficamente distribuídas, a sub-rede consiste em dois componentesdistintos: linhas de transmissão e elementos de comutação. As linhas de transmissão, tambémchamadas circuitos, canais ou troncos, transportam os bits entre as máquinas. Os elementos decomutação são equipamentos especializados usados para conectar duas ou mais linhas de transmissão.Quando os dados chegam por uma linha de entrada, o elemento de comutação deve escolher uma linha desaída para encaminhá-la. Não existe uma terminologia padrão para identificar estes equipamentos.Dependendo das circunstâncias eles são chamados nós de comutação de pacotes, sistemasintermediários, centrais de comutação de dados ou ainda IMP (Interface Message Processor). Mas otermo mais comum para identificar estes elementos de comutação é roteador. No modelo mostrado nafigura 3.1, os hosts são ligados a algum tipo de rede local onde há também um elemento de comutação,embora em alguns casos um host possa estar ligado diretamente a um elemento de comutação. O conjuntode linhas de comunicação e elementos de comutação forma a sub-rede.

Page 27: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 27

Figura 3.1 - Ligações entre hosts e a sub-rede de comunicação

Na maior parte das WANs, a rede contém numerosos cabos ou linhas telefônicas, todosconectados por um par de roteadores. Porém, se dois roteadores que não compartilham um cabodesejarem se comunicar eles poderão faze-lo através de um ou mais roteadores intermediários. Quandoum pacote é enviado de um roteador para outro ele é recebido integralmente, armazenado e repassadopela linha de saída quando ela estiver liberada. Estas redes são também redes store-and-forward, ponto-a-ponto ou de comutação de pacotes, como já mencionado anteriormente. Quase todas as redesgeograficamente distribuídas (com exceção das que usam satélite) têm sub-redes store-and-forward.

Em função dos custos de comunicação serem bastante altos estas redes são, em geral, públicas,isto é, o sistema de comunicação, chamado sub-rede de comunicação, é mantido, gerenciado e depropriedade pública. Também em função dos custos, as velocidades empregadas são relativamente baixas,de alguns kilobits/segundo, podendo chegar a megabits/segundo.

3.2.4 REDES SEM FIO

As Redes Sem Fio ou Wireless Networks, constituem um segmento de mercado que vemcrescendo muito. Elas são necessárias quando é impossível haver uma conexão por fios, como porexemplo, a partir de carros ou aviões. Outro problema que elas solucionam é quando uma pessoa viaja equer usar seu computador portátil para enviar e receber mensagens de correio eletrônico, fax, ler arquivosremotos, estabelecer login com computadores remotos, estejam eles em terra, no mar ou no ar. As redessem fio são muito utilizadas por empresas de caminhões, táxis e por funcionários de assistência técnica oude vendas, pois estes estão sempre necessitando de informações atualizadas de bases de dados de suasempresas. Elas também têm sido muito utilizadas para operações de resgate em caso de catástrofes onde osistema telefônico foi destruído e em operações militares.

Embora as redes sem fio e a computação móvel tenham uma estreita relação, elas não são iguais.Às vezes os computadores portáteis podem ser conectados por fios. Por exemplo, se uma pessoa conectaum computador portátil na tomada do telefone de um hotel temos mobilidade sem o uso de uma rede semfio. Por outro lado alguns computadores com comunicação sem fio não são portáteis. Esse é o caso dasempresas sediadas em prédios muito antigos nos quais não há possibilidade de passagem de cabeamentode rede. por vezes a instalação de uma rede sem fio pode ser mais barata do que instalar fiação necessáriano prédio.

As redes sem fios são fáceis de instalar mas elas possuem algumas desvantagens: baixavelocidade e altas taxas de erro. Elas também possuem inúmeros formatos. Elas podem variar desdeLANs sem fio que cobrem um campus universitário, para que os alunos possam usar seus computadoresportáteis e trabalhar sob a sombra de uma árvore, até o uso de telefones celulares para acesso remoto aredes.

Elemento de comutação

HostSub-rede

Page 28: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 28

3.2.5 LIGAÇÃO ENTRE REDES

Existem muitas redes no mundo, freqüentemente com hardwares e softwares específicos.Normalmente as pessoas conectadas a diferentes redes precisam comunicar-se e para que isto sejapossível são necessárias conexões entre redes que muitas vezes são incompatíveis. Para que estacomunicação possa realizar-se são utilizados os chamados gateways, que estabelecem conexões epermitem a comunicação entre usuários de redes diferentes. Um conjunto de redes interconectadas échamado de ligação inter-rede, ou apenas inter-rede.

A palavra inter-rede deve ser usada de modo genérico, já a Internet é uma inter-rede mundialespecífica, muito utilizada para interconectar universidades, órgãos do governo, empresas e pessoasfísicas.

As sub-redes, redes e inter-redes são freqüentemente confundidas. Uma sub-rede faz maissentido no contexto de uma rede geograficamente distribuída, onde fazem referência ao conjunto deroteadores e linhas de transmissão do operador da rede. Por outro lado, a combinação de uma sub-rede eseus hosts forma uma rede. Uma inter-rede é formada quando diferentes redes são conectadas.

3.2.6 PARÂMETROS DE COMPARAÇÃO

A escolha de um tipo de rede para dar suporte a um dado conjunto de aplicações é uma tarefadifícil. Cada arquitetura de rede possui características que afetam sua adequação a uma aplicação emparticular. Muitos podem ser os atributos que fazem parte do rol possível a ser considerado paracomparação. Dentre eles estão custo, tempo de resposta, velocidade, desempenho, confiabilidade,modularidade, compatibilidade, e facilidade de adaptação à mudança de tecnologia. Estes pontos serãodiscutidos brevemente a seguir.

CUSTO

O custo de uma rede é composto pelo custo das estações de processamento, das interfaces com omeio físico de comunicação e o custo do próprio meio físico. Uma vez que os custos das estações estãocada vez menores é necessário que o custo das interfaces seja minimizado.

O que irá determinar o custo das interfaces é proporcional ao desempenho que se espera da rede.Redes de baixo a médio desempenho usualmente empregam poucas estações com uma demanda de taxasde dados e volume de tráfego pequeno, permitindo o uso de interfaces de baixo custo. Redes de altodesempenho já requerem interfaces de custo mais elevado.

RETARDO DE TRANSFERÊNCIA

Retardo de acesso é o tempo que uma estação espera, a partir do momento que uma mensagemestá pronta para ser transmitida, até o momento em que ela consegue transmitir com sucesso estamensagem. Retardo de transmissão é o intervalo de tempo decorrido desde o início da transmissão de umamensagem por uma estação de origem até o momento em que a mensagem chega à estação de destino.Por fim retardo de transferência eqüivale à soma dos retardos de acesso e de transmissão.

O retardo de transferência é, na maioria dos casos, uma variável aleatória, porém em algumasredes o seu valor pode ser calculado, ou melhor, ele é determinístico. A rede deve ser adequada ao tipoparticular de aplicação para o qual ela foi concebida. Por exemplo, para aplicações de controle em temporeal, o retardo de transferência limitado é de vital importância.

DESEMPENHO

Pode-se definir como desempenho a capacidade efetiva de transmissão da rede. Por exemplo asredes locais de alta velocidade (High-Speed Local Networks - HSLN) são projetadas de forma a fornecerum alto desempenho na comunicação entre dispositivos, embora o custo de conexões seja mais elevado.

Na verdade, os termos velocidade, desempenho e retardo de transferência estão intimamenterelacionados. A escolha de um mecanismo de interconexão orientado para a natureza das aplicações éessencial para o bom desempenho de uma rede.

Page 29: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 29

CONFIABILIDADE

Confiabilidade pode ser avaliada em termos de tempo médio entre falhas (Medium Time BetweenFailures - MTBF), tolerância a falhas, degradação amena, tempo de reconfiguração após falhas e tempomédio de reparo (Medium Time to Repair - MTTR). O MTBF é geralmente medido em horas.

A degradação amena está ligada à aplicação e mede a capacidade da rede continuar operando empresença de falhas, embora com desempenho menor. Reconfiguração após falhas requer que alternativasredundantes sejam acionadas tão logo uma falha ocorra. O tempo médio de reparo pode ser diminuídocom o auxílio de redundância, mecanismos de auto-teste e diagnóstico, e manutenção eficiente.

MODULARIDADE

Modularidade pode ser caracterizada como o grau de alteração de desempenho e funcionalidadeque uma rede pode sofrer sem mudar seu projeto original. Os maiores benefícios de uma arquiteturamodular incluem a facilidade para modificação, facilidade para crescimento e facilidade para o uso de umconjunto de componentes básicos. A modularidade está intimamente ligada às aplicações do sistema.Uma rede bem projetada deve poder adaptar-se modularmente às várias aplicações a que é dedicada,como também prever futuras utilizações.

COMPATIBILIDADE

Também conhecida como interoperabilidade, a compatibilidade pode ser vista como acapacidade que a rede possui para ligar-se a dispositivos de vários fabricantes, tanto de software quantode hardware. Esta característica é bastante importante e valiosa por dar ao usuário grande flexibilidade epoder de barganha perante os fabricantes.

SENSIBILIDADE TECNOLÓGICA

Este tópico diz respeito à modularidade. Uma rede deve ter a capacidade de suportar todas asaplicações para a qual ela foi projetada, mais aquelas que no futuro possam ser requeridas, incluindotransmissão de vídeo, voz e interconexão com outras redes, por exemplo.

3.3 AS ARQUITETURAS DE REDE

Para compreender as diversas posturas, abordagens e atitudes políticas relacionadas com a áreade comunicação de dados, como também para acompanhar o se desenvolvimento tecnológico, énecessário conhecer suas origens e sua história.

Em meados da década de 60, o governo dos EUA, por intermédio do Departamento de Defesa,iniciou estudos relacionados à viabilidade do desenvolvimento de redes de computadores. Em 1968tiveram início as atividades do Projeto ARPA (Advanced Research Project Agency), tendo por base oconhecimento e o potencial de pesquisa das universidades e dos centros de pesquisa norte-americanos.

Em 1972 entrou em funcionamento o projeto piloto da rede ARPA. Começava ai a era datecnologia de redes de computadores, caracterizada pela distribuição das aplicações entre várioscomutadores interligados de acordo com uma topologia determinada. Na rede ARPA foi, pela primeiravez, implementada a tecnologia de comutação de pacotes, assim como o método de divisão em váriascamadas funcionais das tarefas de comunicação entre aplicações residentes em computadores distintos,conectados por meio da rede, criando-se o conceito de Arquitetura de Rede de Computadores.Também na década de 70, o crescimento da ARPA permitiu a interligação de computadores deuniversidades americanas e de alguns computadores situados em outros países.

Na mesma época, os grandes fabricantes de equipamentos de processamento de dados criaramseus próprios métodos para interligar em rede seus respectivos produtos. Surgiram, assim, as ArquiteturasProprietárias, primeiro com a IBM, que lanços a arquitetura SNA (Systems Network Architecture), depoiscom a Digital e a sua arquitetura Decnet, além de várias outras.

Para as entidades especializadas em venda de serviços de telecomunicações abriu-se um novomercado: a oferta de serviços de comunicação de dados por meio do fornecimento de uma estrutura decomunicação, a sub-rede, baseada funcionalmente no princípio de comutação de pacotes. O CCITT (atualITU-T) elaborou documentos que permitiram que estes serviços fossem padronizados, a partir dos quais

Page 30: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 30

publicou, em 1976, a primeira versão da Recomendação X.25, propondo a padronização de redes públicasde comutação de pacotes.

3.4 A ARQUITETURA DO RM/OSI

O quadro que o segmento de redes de computadores apresentava no final da década de 70caracterizava-se, de um lado, por enormes perspectivas de crescimento, mas, de outro, por uma situaçãode crise criada pela heterogeneidade dos padrões, protocolos e equipamentos de comunicação de dadosexistentes no mercado. Cada interessado havia definido, unilateralmente, sua arquitetura. Os fabricantes,as arquiteturas proprietárias; as operadoras de telecomunicações, as arquiteturas das redes públicas; ealgumas entidades, como era o caso da ARPA, arquiteturas específicas para atender às suas redes.

A solução foi encontrada pela ISO (International Organization for Standardization), sob a formade propostas de elaboração de um modelo que viesse a sintetizar, de modo abstrato, o funcionamento decomputadores integrados por redes de comunicação de dados. Baseada nas experiências advindas dofuncionamento dos sistemas de teleprocessamento, da rede ARPA e das redes públicas e proprietárias, aISO, entre 1978 e 1984, elaborou o RM-OSI ou Modelo de Referência para Interconexão de SistemasAbertos (Reference Model - Open Systems Interconnection), que é a expressão, assim, de todo oconhecimento tecnológico adquirido pelo mundo a respeito de comunicação de dados.

No modelo OSI foi, pela primeira vez, abordado o conceito de sistema aberto, definido como “osistema capaz de suportar os padrões de comunicação OSI de modo a interfuncionar com outros sistemasabertos de diferentes fornecedores”. Ao modelo OSI se deve, também, a consolidação dos princípios dearquitetura de rede de comunicação de dados.

A receptividade em relação ao Modelo OSI foi muito grande nos anos seguintes à sua divulgaçãoe, em alguns setores, mantém-se até hoje. Especialistas da área baseiam-se me seus princípios, e é comumencontrar na literatura ou em palestras menções do tipo: “as tarefas correspondentes à camada X doModelo OSI” ou “faltam tais funções correspondentes à camada Y do Modelo OSI”, mesmo quando sefaz referência a sistemas que não propõem a aderir a esse modelo.

O esforço de padronização não foi concluído com a elaboração do Modelo OSI. Ao contrário,iniciou-se uma intensa atividade, em nível mundial, no sentido de projetar, especificar, implementar etestar os protocolos das várias camadas definidas pelo modelo, nascendo, assim, a Arquitetura OSI: umaestrutura funcional dos elementos envolvidos na comunicação entre sistemas abertos de comunicação dedados, suportada por um conjunto de protocolos padronizados, elaborados de acordo com os princípios doModelo OSI.

Desde a sua criação, e cada vez que um novo padrão de protocolo é elaborado, a Arquitetura OSIimpõe-se como o grande projeto de Engenharia de Protocolos. As soluções apresentadas, os mecanismosde protocolos, a estrutura de camada de aplicação e as aplicações desenvolvidas de acordo com osprincípios da metodologia orientada a objetos e da computação distribuída contribuem para essacolocação.

Mais detalhes sobre os serviços e protocolos relacionados ao RM-OSI, assim como as técnicasmais utilizadas para implementá-los serão descritos com detalhes neste curso.

3.5 A ARQUITETURA TCP/IP – INTERNET

A arquitetura Internet é largamente utilizada para interconexão e interoperação de sistemascomputacionais heterogêneos. Tal arquitetura foi lançada pelo Departamento de Defesa do governoamericano e escolhida para ser o padrão obrigatório de comunicação entre os diversos sistemas daquelaorganização. Ela tornou-se um padrão de facto do mercado. Os padrões não são definidos por entidadesde padronização internacional como a ISO, por exemplo. As definições dos protocolos são encontradasem documentos denominados RFC (Request for Comments), os quais são elaborados pelo IAB (InternetActivities Board).

A arquitetura Internet também é organizada em camadas. Ela é composta por dois protocolosprincipais: o IP (Internet Protocol) e o TCP (Transmission Control Protocol). O IP é responsável peloencaminhamento de pacotes de dados pelas diversas sub-redes desde a origem até o seu destino. O TCPtem por função o transporte fim-a-fim confiável de mensagens de dados entre dois sistemas. O IP é um

Page 31: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 31

protocolo do tipo datagrama, operando, portanto, no modo não orientado à conexão, enquanto o TCP éum protocolo de transporte orientado à conexão. O conjunto TCP/IP pode, desta forma, oferecer umserviço relativamente confiável. Para uso em redes de alta qualidade, onde o problema de confiabilidadenão assume grande importância, foi definido o protocolo UDP (User Datagram Protocol) que opera nomodo não orientado à conexão e possui funcionalidades bem mais simplificadas que o TCP.

3.6 AS REDES LOCAIS

Geralmente uma rede local serve a uma área geograficamente limitada, isto é, um ambiente detrabalho, um edifício, um campus universitário, uma fábrica, etc. As distâncias podem variar de metrosaté alguns poucos quilômetros e a velocidade de transmissão é da ordem de milhões de bits por segundo.A maioria dos produtos existentes na área utiliza uma forma simples de interligação física entre osequipamentos e talvez esta seja uma das características mais atrativas das redes locais.

Estas características, no entanto, não são suficientes para garantir o sucesso de uma rede local.Para o usuário final é muito importante ter um mecanismo de transmissão de informação eficiente, semque haja a necessidade de conhecer os detalhes técnicos para efetuar a ligação com a rede.

Uma rede local pode ser descrita através de características tais como: está contida dentro de umaárea geográfica limitada, possui equipamentos interconectados porém independentes, existe um alto graude interconexão entre os equipamentos da rede, a transmissão de informação é geralmente na formadigital, a interface com a rede é feita através de equipamentos e meios de transmissão relativamentebaratos e é possível a comunicação entre dois equipamentos quaisquer da rede.

A escolha de um tipo de rede para suporte a um dado conjunto de aplicações é uma tarefa porvezes difícil. Cada arquitetura de rede possui características que afetam sua adequação a uma aplicaçãoem particular. Muitos podem ser os atributos que fazem parte do rol possível de ser considerado paracomparação. Dentre eles estão: custo, tempo de resposta, velocidade, desempenho, confiabilidade,modularidade, compatibilidade, e facilidade de adaptação na mudança de tecnologia.

3.6.1 O RM-OSI E AS REDES LOCAIS

Redes locais possuem características que afetam principalmente os níveis mais baixos deprotocolo de uma arquitetura de rede. Esses níveis não devem deixar de levar em consideração o elevadodesempenho, o baixo retardo, a baixa taxa de erros, o roteamento simples (em geral único) e as aplicaçõesa que se destinam as redes locais.

O RM-OSI, embora teoricamente, poderia ser utilizado tanto em redes geograficamentedistribuídas como em redes locais. No entanto, ele foi pensado para uso em redes geograficamentedistribuídas. Sua aplicabilidade em redes locais não pode deixar de levar em consideração ascaracterísticas intrínsecas destas redes.

As distâncias limitadas a que são destinadas as redes locais permitem que seu protocolo de nívelfísico possa utilizar um meio de alta velocidade com baixíssimas taxas de erros. Este fato vai influenciarem muito os outros níveis de protocolo.

Várias diferenças existem na camada de enlace de dados, a começar pela delimitação dosquadros. Ao contrário das redes de longa distância, nas redes locais o método mais apropriado paradelimitação de quadro pode ser a simples presença ou ausência de sinal no meio.

Devido ao alto desempenho do meio de transmissão e sua baixa taxa de erros, não cabe ao nívelde enlace utilizar muitos bits de redundância para a recuperação de erros. Mais ainda, se levarmos emconsideração que para determinadas aplicações os requisitos de tempo real são bem mais importantes doque sua confiabilidade exagerada da transmissão. Muitas vezes nem a recuperação de erros porretransmissão é desejável neste nível. Ao nível de enlace caberia apenas um esforço máximo paraentregar pacotes de nível 3 sem erros, mas não a sua recuperação caso esse serviços ocorram.

Em redes locais as regras que disciplinam o acesso ao meio físico para transmissão de dados sãochamadas protocolos de acesso. Como exemplo pode-se citar as regras para controle de acesso aobarramento compartilhado. Nas redes locais a transmissão de dados é feita por difusão ou possuemroteamento único. Neste sentido os protocolos de ligação poderiam estar no nível 2 do RM-OSI, uma vezque tratam do envio do pacote de uma máquina para outra, mas igualmente poderiam ser colocados nonível de rede uma vez que se trata do envio de um pacote da estação de origem até a estação de destino,

Page 32: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 32

isto é, fim-a-fim. Existem também proposta que os colocam no nível físico, uma vez que determinam aligação física ao meio. O comitê de padronização de redes locais, o IEEE 802, os coloca como parte donível 2.

Como nas redes locais a transmissão de dados é feita por difusão ou possuem roteamento único onível de rede não tem aqui grande relevância. Em muitas redes o nível de transporte vai ser construídoimediatamente acima do nível de enlace. Opcionalmente devemos permitir que o nível de transporte sejaconstruído acima do nível inter-redes.

O nível 3 em redes locais teria então como função o roteamento de pacotes entre estação origeme destino em redes diferentes ou na interconexão de redes locais entre si. Neste nível ainda o maisadequado é a utilização de datagrama não confiável, deixando para os níveis superiores a recuperação, senecessária, dos erros. A arquitetura Internet TCP/IP, que utiliza essa abordagem, é uma alternativabastante utilizada para interligação de redes locais de computadores.

Em redes locais o nível de transporte, ao tornar transparente para os níveis superiores toda aparte de transmissão, pode ainda tirar vantagem que o meio lhe oferece, como por exemplo, aconfirmação de vários circuitos virtuais em uma única mensagem em uma rede do tipo difusão.

A implementação dos demais níveis de protocolo depende muito das aplicações da rede. O RM-OSI pode ser seguido na íntegra, podendo suas funções serem realizadas por processos de um sistemaoperacional distribuído, onde a interface do nível 4 seria vista simplesmente como primitivas decomunicação do núcleo desse mesmo sistema operacional.

3.6.2 O PADRÃO IEEE 802

O projeto IEEE 802 teve origem na Sociedade de Computação do Instituto de EngenheirosEletricistas e Eletrônicos dos EUA, ou IEEE Computer Society. O comitê 802 publicou um conjunto depadrões que foram adotados como padrões nacionais americanos pelo American National StandardsInstitute (ANSI). Estes padrões foram posteriormente revisados e republicados como padrõesinternacionais pela ISO com a designação ISO 8802.

O objetivo foi o estabelecido de uma arquitetura padrão, orientada para o desenvolvimento deredes locais, que apresentasse as seguintes características:

• correspondência máxima com o RM-OSI;• interconexão eficiente de equipamentos a um custo moderado;• implantação da arquitetura a custo moderado.

A estratégia adotada na elaboração da arquitetura IEEE 802 é a de definir mais de um padrão deforma a atender aos requisitos dos sistemas usuários da rede. Na verdade, a arquitetura IEEE 802 pode servista como uma adaptação das duas camadas inferiores da arquitetura RM-OSI da ISO. Nesta arquiteturaexistem 3 camadas, ou seja, uma equivalente à camada física e duas sub-camadas que juntas eqüivalem acamada de enlace. Elas são assim denominadas:

• camada física (PHY);• sub-camada de controle de acesso ao meio (MAC);• sub-camada de controle de enlace lógico (LLC).

Para atender o modelo elaborado devemos observar que as funções de comunicação mínimas eessenciais de uma rede local, equivalentes aos níveis inferiores do RM-OSI, podem ser assim definidas:

• fornecer um ou mais SAPs (pontos de acesso ao serviço) para os usuários da rede;• na transmissão, montar os dados a serem transmitidos em quadros com campos de endereço

e detecção de erros;• na recepção, desmontar os quadros, efetuando o reconhecimento de endereço e detecção de

erros;• gerenciar a comunicação no enlace.

Estas quatro funções são fornecidas pelo nível de enlace do RM-OSI. A primeira função, as sub-funções a ela relacionadas, são agrupadas pelo IEEE 802 na camada Logical Link Control (LLC). As trêsrestantes são tratadas em uma camada separada, chamada Medium Access Control (MAC), que podem,então ser otimizadas para as diferentes topologias de redes locais, mantendo uma interface única, acamada LLC, para os usuários da rede local.

Page 33: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 33

Em um nível físico mais baixo estão as funções normalmente associadas ao nível físico:codificação/decodificação de sinais, geração e remoção de preâmbulos para sincronização etransmissão/recepção de bits. Como no RM-OSI, essas funções foram atribuídas ao nível físico nomodelo de referência elaborado pelo IEEE 802.

A figura 3.2 apresenta a relação entre alguns dos principais padrões IEEE 802 e o RM-OSI. Éimportante ressaltar que já existem outros padrões IEEE 802.X, que já foram ou serão aqui citados, taiscomo IEEE 802.11 (FDDI) e IEEE 802.12 (100VGAnyLAN).

O padrão IEEE 802.1 é um documento que descreve o relacionamento entre os diversos padrõesIEEE 802 e o relacionamento deles com o modelo de referência OSI. Este documento contém tambémpadrões para gerenciamento da rede e informações para ligação inter-redes. O padrão ANSI/IEEE 802.2(ISO 8802/2) descreve a sub-camada superior do nível de enlace, que utiliza o protocolo Logical LinkControl Protocol. Os outros padrões que aparecem na figura 3.2 especificam diferentes opções de nívelfísico e protocolos da sub-camada MAC para diferentes tecnologias de redes locais. São eles:

• padrão IEEE 802.3 (ISO 8802/3), rede em barra utilizando CSMA/CD como método deacesso;

• padrão IEEE 802.4 (ISO 8802/4), rede em barra utilizando passagem de permissão comométodo de acesso;

• padrão IEEE 802.5 (ISO 8802/5), rede em anel utilizando passagem de permissão comométodo de acesso;

• padrão IEEE 802.6 (ISO 8802/6), rede em barra utilizando o Distributed Queue Dual Bus(DQDB) como método de acesso.

RM/OSI IEEE 802

CAMADAS

SUPERIORES 802.1

802.2

ENLACE LLC

MAC

FISICO 802.3 802.4 802.5 802.6

Figura 3.2 - Relação entre os padrões RM-OSI e IEEE 802.

Os padrões IEEE 802.3 (CSMA/CD) e IEEE 802.5 (Token Ring) são os mais conhecidos emfunção de terem sido a base para os produtos Ethernet (Xerox, Digital,...) e Token Ring (IBM). O padrãoIEEE 802.4 é denominado Token Bus e o padrão IEEE 802.6 é denominado DQDB. Há ainda a definiçãode vários padrões dentro deste projeto.

3.6.3 INTERCONEXÃO DE REDES LOCAIS

A interconexão de redes locais é uma necessidade nos dias atuais. Esta é a tarefa mais importanteda camada de rede em redes locais. Ela se faz necessária quando máquinas origem e destino estão emredes diferentes. Na execução da função de ligar rede locais entre si pode-se criar topologias parcialmenteligadas fazendo com que existam caminhos diferentes por redes intermediárias, com diferentesprotocolos. O principal problema que decorre disto é que existem diversos tipos de redes comcaracterísticas próprias. Assim, a tarefa do nível de rede é compatibilizar as diferentes tecnologias eprotocolos empregados nas redes a serem interconectadas.

Nem sempre a interconexão de redes exige alto grau de complexidade. Por vezes é apenasnecessário ligar dois segmentos de rede exatamente iguais, ou que possuam apenas o meio físico

Page 34: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 34

diferente. Por exemplo quando desejamos interconectar duas redes Ethernet somente com cabeamentodiferente. Outro problema, um pouco mais complexo, seria interconectar duas redes com protocolos deacesso diferentes, porém com o mesmo protocolo de rede. Por exemplo, se desejarmos interconectar umarede Ethernet com uma rede Token Ring.

As motivações que podem levar à necessidade de interconectar de redes entre si são:• de ordem econômica, por exemplo, para compartilhar uma interface de rede pública;• de ordem tecnológica, por exemplo, para interconectar várias redes locais em áreas ou

prédios distintos;• para melhorar desempenho e confiabilidade, por exemplo, dividir uma rede local com

grande número de estações em 2 ou mais redes;• de ordem funcional, por exemplo, para atender necessidades do usuário, tais como acesso a

recursos como bancos de dados, disponíveis em outras redes.

Algumas questões a serem abordadas para a interconexão:• endereçamento e encaminhamento das mensagens;• fragmentação das mensagens;• detecção e recuperação de erros;• serviço com ou sem conexão;• nível de interconexão;• controle de fluxo;• controle de congestionamento;• segurança;• tarifação de serviços;• nomes e endereçamento.

A ligação entre equipamentos heterogêneos deve ter convenções para representação de nomes eendereços de processos que tenham significado em toda a rede. As referências às redes são feitas pornomes ou por endereços, e isto é importante para identificação de recursos na rede. A maneira maiscomum é o endereçamento hierárquico, ou seja, o endereço do processo constituído de endereço da rede,endereço do equipamento hospedeiro (host) e endereço dentro do hospedeiro (porta). Há também umaalternativa, o endereçamento plano, ou não-hierárquico, onde há um endereço para cada recurso na rede.

É importante lembrar que a interconexão de duas redes exige a implementação, em cada rede, deum protocolo inter-redes que realize, pelo menos, as funções de tratamento de endereços. Os principaisequipamentos para interconexão de redes são: repetidores, pontes e roteadores.

Page 35: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 35

Capítulo 4 - Modelos de Referência

4.1 INTRODUÇÃO

Depois dos conceitos sobre a hierarquia em camadas vamos agora discutir um pouco sobre osprincipais conceitos relacionados a alguns exemplos práticos de arquiteturas de redes, com ênfaseprincipal nas arquiteturas do RM-OSI e do TCP/IP-Internet.

4.2 O MODELO DE REFERÊNCIA OSI

O Modelo OSI é mostrado na figura 4.1. Este modelo foi desenvolvido com um primeiro passona direção da padronização internacional dos protocolos usados nas diversas camadas. Este modelo foidenominado de Modelo de Referência para a Interconexão de Sistemas Abertos ou RM-OSI (ReferenceModel for Open Systems Interconnection), pois trata da interconexão de sistemas abertos, ou seja,sistemas que estão abertos à comunicação com outros sistemas.

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Físico

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Físico

Protocolo de Aplicação

Protocolo de Apresentação

Protocolo de Sessão

Protocolo de Transporte

Nomenclatura

da unidade intercambiada

Protocolo de roteador/host da camada de rede

Protocolo de Sub-rede Interna

Rede

Enlace

Física

Rede

Enlace

Física

Protocolo de roteador/host da camada de enlace

Protocolo de roteador/host da camada física

7

2

3

1

6

5

4

Bit

APDU

PPDU

SPDU

TPDU

Pacote

Quadro

Host BHost A

Roteador Roteador

Figura 4.1 - Arquitetura de sete camadas do modelo OSI.

O modelo OSI foi criado seguindo a filosofia das arquiteturas multicamadas, como já descritaanteriormente. Como mostra a figura, sua arquitetura define 7 camadas, cujos princípios de definiçãoforam os seguintes:

1. cada camada corresponde a um nível de abstração necessário no modelo;

Page 36: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 36

2. cada camada possui suas funções próprias e bem definidas;3. as funções de cada camada foram escolhidas segundo a definição dos protocolos

normalizados internacionalmente;4. a escolha das fronteiras entre cada camada deveriam ser definidas de modo a minimizar

o fluxo de informação nas interfaces;5. o número de camadas deve suficientemente grande para que funções distintas não

precisem ser colocadas na mesma camada, e ser suficientemente pequeno para que aarquitetura não se torne difícil de controlar.

Como pode ser visto na figura, o modelo prevê a comunicação entre sub-redes através deprocessadores de interface de mensagem, ou IMPs (Interface Message Processors).

A forma como os dados são transmitidos ao longo do modelo OSI é ilustrada na figura 4.2.Como se pode ver, o processo emissor vai enviar uma certa quantidade de dados ao processo receptor. Eleenvia, então, os dados à camada de Aplicação que introduz a estes um cabeçalho de aplicação, AH, eenvia a mensagem resultante à camada de Apresentação. Esta camada, por sua vez, introduz à mensagemrecebida um cabeçalho de apresentação, PH, enviando a mensagem, em seguida à camada inferior. Éimportante ressaltar aqui que esta camada não toma conhecimento da existência e significado docabeçalho de aplicação, considerando este como parte dos dados compondo a mensagem. Este processode transferência de camada a camada vai se repetindo até o nível físico, quando os dados serão, enfim,transmitidos ao sistema destino.

Neste sistema, os diversos cabeçalhos introduzidos nas camadas de rede do sistema fonte vãosendo interpretados e eliminados nas camadas correspondentes até que os dados cheguem ao processoreceptor. O conceito fundamental da transferência de dados é que cada camada foi projetada como se elafosse realmente horizontal, quando na verdade a transmissão se dá de modo vertical.

Isto fica claro, por exemplo, quando a camada de Transporte emissora recebe um dado dacamada de Sessão; ela insere um cabeçalho de transporte e envia a mensagem à camada de Redeemissora. Este processo, portanto, para a camada de Transporte, não é mais do que um detalhe técnico.Um exemplo análogo é aquele de um diplomata de um país fazendo um discurso, na sua própria língua,nas Nações Unidas. Este considera estar se dirigindo aos seus colegas diplomatas de outros países,embora, na prática, ele esteja dirigindo-se ao seu intérprete.

Figura 4.2 - Ilustração da comunicação no modelo OSI.

PROCESSORECEPTOR

PROCESSOEMISSOR DADOS

DADOSAH

DADOSPH

DADOSSH

DADOSTH

DADOSNH

DADOSLH

BITS

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Física

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Física

CRC

Page 37: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 37

4.2.1 AS CAMADAS DO RM-OSI

Vamos descrever, a seguir, as principais funções realizadas por cada uma das camadas definidasno Modelo OSI.

A Camada Física é responsável da transferência de bits num circuito de comunicação. Demaneira geral, a sua função é garantir que cada bit enviado de um lado será recebido do outro lado sem teralterado o seu valor, ou seja, se o bit enviado está a 1, ele será recebido a 1 e não a 0.

Para isto, as questões a serem resolvidas neste nível são do tipo:• os modos de representação dos bits 0 e 1 de maneira a evitar ambigüidades ou confusões

(valor da tensão em volts para a representação dos valores 0 e 1 dos bits, duração de cadasinal representando um bit, a codificação dos sinais, etc...);

• os tipos de conectores a serem utilizados nas ligações (número de pinos utilizado, as funçõesassociadas a cada pino, ...);

• a maneira como as conexões são estabelecidas para a iniciação de um diálogo e como é feitaa desconexão ao final deste;

• modo de transmissão adotado (unidirecional, bidirecional, ...);• modo de conexão adotado (ponto-a-ponto, multiponto, ...);• modo de tratamento dos erros (detecção, tratamento, etc...).

A concepção desta camada deve se relacionar à definição das interfaces elétricas e mecânicas,seus modos de funcionamento, o suporte de comunicação adotado, etc.

A Camada de Enlace de Dados tem por função principal a transformação do meio decomunicação "bruto" em uma linha livre de erros de transmissão para a camada de Rede. Ela efetua estafunção através do fracionamento das mensagens recebidas do emissor em unidades de dados denominadasquadros, que correspondem a algumas centenas de bytes. Estes quadros são transmitidosseqüencialmente e vão gerar quadros de reconhecimento enviados pelo receptor. Nesta camada, asunidades de dados são enriquecidas com um conjunto de bits adicional (no início e fim de cada quadro)de modo a permitir o reconhecimento destes.

Um problema típico deste nível é o da ocorrência de uma perturbação sobre a linha detransmissão que provoque a destruição (perda) do quadro enviado. Neste caso, o quadro deve serretransmitido para garantir a integridade da informação transferida. Por outro lado, deve-se também evitarmúltiplas retransmissões de um mesmo quadro, o que pode provocar a sua duplicação... por exemplo, se oquadro de reconhecimento é perdido.

Uma outra função desta camada é evitar uma alta taxa de envio de dados da parte do emissor nocaso do sistema emissor não ter capacidade de absorver a informação à mesma taxa. Este mecanismodeve permitir informar ao emissor a necessidade de armazenamento dos dados a transmitir (controle defluxo).

A Camada de Rede é responsável da gestão de sub-redes; ela define a forma como os pacotesde dados serão encaminhados do emissor ao receptor. Os caminhos a serem utilizados podem serdefinidos em função de tabelas estáticas ou determinados dinamicamente no momento de cada diálogoem função das condições de tráfego da rede. Esta camada deve ainda efetuar a gestão dos problemas decongestionamento provocados pela presença de uma quantidade excessiva de pacotes de dados na rede.Ela deve, finalmente, resolver todos os problemas relacionados à interconexão de redes heterogêneas,particularmente:

• incompatibilidades no endereçamento;• incoerências em relação aos tamanhos das mensagens;• etc.

A Camada de Transporte recebe os dados enviados da camada de sessão, decompô-los, se for ocaso, em unidades de dados menores e garantir que todas as partes da mensagem vão ser transmitidascorretamente à outra extremidade. Esta função deve ser suprida de maneira eficiente, inclusive, sem que acamada de Sessão tome conhecimento de possíveis alterações na tecnologia da parte material da rede.

Esta camada cria, normalmente, uma conexão de rede para cada conexão de transporte requeridapela camada de Sessão, embora, se as necessidades de velocidade transmissão são justificadas, ela possaestabelecer diversas conexões de rede para uma mesma conexão de transporte. Por outro lado, se o custo

Page 38: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 38

da manutenção de uma conexão de rede é considerado elevado, esta camada pode efetuar a funçãoinversa, ou seja, a multiplexação de várias conexões de transporte sobre uma mesma conexão de rede,esta tarefa sendo feita de modo transparente para a camada de Sessão.

Ela deve determinar, também, o tipo de serviço oferecido à camada de Sessão e, porconseqüência, aos usuários da rede. Uma conexão de transporte típica é aquela de um canal ponto-a-ponto, livre de erros de transmissão, transmitindo as mensagens na mesma ordem em que elas foramenviadas. Por outro lado, outras classes de serviços podem fornecer uma conexão capaz de enviar asmensagens de modo isolado, mas sem a garantia de uma ordem correta na transmissão. O tipo do serviçoa ser fornecido é definido no momento do estabelecimento da conexão.

Uma característica desta camada é que ela implementa um verdadeiro diálogo fim-a-fim, ou seja,o programa executando no sistema fonte dialoga com o programa executando na máquina destino atravésdos cabeçalhos e informações de controle contidas nas mensagens deste nível. Já nas camadas maisbaixas, os protocolos operam entre máquinas vizinhas e não entre os sistemas fonte e destino, dado queestes podem estar separados por vários IMPs. Esta diferença fundamental, que se estende igualmente àscamadas superiores (até a camada 7) pode ser verificada pela ilustração da figura 4.1.

Dado que esta camada é responsável do estabelecimento e término das conexões de rede, eladeve definir um mecanismo de endereçamento que permita a um sistema indicar com qual sistema eledeseja dialogar. Finalmente, ela deve implementar um mecanismo de controle de fluxo fim-a-fim paraevitar que o sistema fonte envie mensagens numa taxa superior àquela com a qual o sistema destino podeconsumi-las.

A Camada de Sessão é responsável dos estabelecimentos de sessões de diálogo para os usuáriosda rede. Uma sessão objetiva permitir o transporte de dados, da mesma forma que os serviços oferecidospela camada de Transporte, mas ela oferece serviços mais sofisticados de comunicação que podem serúteis a determinadas aplicações. Um exemplo disto é a possibilidade de envio, através de uma sessão, deum arquivo de dados (ou programa) de um sistema a outro. Outro serviço da camada de Sessão é efetuar agestão do diálogo, ou seja, definir, por exemplo, se o diálogo vai ser efetuado em modo uni- oubidirecional.

Um serviço também importante é aquele da sincronização do diálogo. Por exemplo, se umarquivo deve ser transferido através de uma sessão e este deve durar duas horas. Se, por uma razãoqualquer, o tempo médio entre duas panes é de uma hora. Após uma primeira interrupção por pane, atransferência deverá reiniciar, podendo ocasionar em erros de transmissão. Uma forma de evitar isto é ainserção de pontos de teste junto aos dados fazendo com que, após uma interrupção de transferência, osdados sejam retomados apenas a partir do último ponto de teste.

A Camada de Apresentação utiliza algumas funções freqüentemente necessárias de modo apoupar o usuário deste trabalho. Esta camada assume particularmente as funções associadas à sintaxe e àsemântica dos dados transmitidos. Um exemplo típico das funções efetuadas por esta camada é acodificação da informação num padrão bem definido (ASCII, EBCDIC, etc...).

Esta camada pode ainda suprir outras funções associadas à compreensão dos dados, se utilizandodo conhecimento do significado da informação para reduzir a quantidade de informação enviada,inclusive para implementar funções de confidencialidade e de autenticação.

A Camada de Aplicação implementa um conjunto de protocolos bastante diversificado eorientado a aplicações bem definidas. Um exemplo disto é o protocolo de terminal virtual, que permitegerar a utilização de um determinado programa (por exemplo, um editor de textos) de forma independentedo tipo de terminal conectado à rede. Outro serviço importante é o de transferência de arquivos, quepermite adaptar o tipo do arquivo transferido à forma implementada pelo sistema de arquivamento dosistema considerado. Na parte dedicada a esta camada veremos, além destas, outras classes de serviçosimplementados a este nível.

Page 39: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 39

4.3 O MODELO DE REFERÊNCIA TCP/IP

O termo “protocolo TCP/IP” é utilizado como designação comum para uma família deprotocolos de comunicação de dados, sendo que o Transmission Control Protocol (TCP) e o InternetProtocol (IP) são apenas dois deles. Esta família de protocolos teve origem na rede Arpanet.

A Internet cresceu muito além do que se podia imaginar. A Internet é hoje uma coleção de redesacadêmicas, militares e comerciais espalhadas pelo mundo, interconectadas através do protocolo TCP/IP.Entre elas, pode-se citar a própria RNP no Brasil.

Uma vez que toda a rede conectada à Internet deve falar o protocolo TCP/IP, é natural que ointeresse comercial por este protocolo tenha crescido muito, ao ponto de hoje estar disponível em quasetodas as plataformas. Além disso, é comum encontrarmos TCP/IP sendo utilizado em redes locais que nãoestão conectadas à Internet.

O sucesso e a popularidade do protocolo TCP/IP não se deve apenas à imposição das agênciasmilitares americanas, mas também ao fato der ter sido o primeiro protocolo a atingir a importante meta dacomunicação de dados com abrangência mundial. Isto somente foi possível graças a algumas de suascaracterísticas, a saber:

• TCP/IP é um protocolo aberto, público e completamente independente de equipamentose de sistemas operacionais;

• TCP/IP não define protocolos para o nível físico, possibilitando sua implementaçãosobre uma grande variedade de protocolos já existentes, tais como: Ethernet, Token Ringe X.25;

• O esquema de endereçamento do TCP/IP permite designar univocamente qualquermáquina, mesmo em redes globais como a Internet;

• TCP/IP inclui protocolos do nível de aplicação que atendem muito bem à demanda deserviços imposta pelos usuários.

Uma vez que a padronização foi essencial para a definição do TCP/IP como o protocolo maisutilizado no mundo, é importante que se conheça como ele foi, e continua sendo, padronizado.Originalmente, os protocolos básicos do TCP/IP foram padronizados através de Military Standards (MILSTD) e de Internet Engineering Notes (IEN). Atualmente, a maior parte da padronização do TCP/IP éfeita através de Requests For Comments (RFC), que, além da especificação formal dos protocolos, incluiinformações importantes sobre seu funcionamento e uso.

4.3.1 AS CAMADAS DO TCP/IP

A descrição da arquitetura do protocolo TCP/IP em camadas como as do modelo de referênciaOSI é uma tarefa difícil e certamente controversa. As camadas OSI foram definidas por pesquisadores aolongo de anos, sempre com o compromisso acadêmico de ser um modelo de referência, enquanto que oprotocolo TCP/IP não teve qualquer compromisso que não a funcionalidade. Assim sendo, tentarestabelecer uma relação precisa entre as camadas OSI e TCP/IP é algo praticamente impossível.

O modelo mais aceito para descrever a arquitetura TCP/IP é composto de quatro camadas:acesso à rede, Internet, transporte e aplicação. Este modelo é apresentado na figura 4.3, em comparaçãoao modelo de referência OSI.

Page 40: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 40

AplicaçãoAplicações que usam a rede

TransporteTransporte de dados fim-a-fim

InternetRoteamento de datagramas

Acesso à RedeAcesso ao nível físico

TransporteTransporte fim-a-fim com correção de erros

RedeTransferência de pacotes na rede

EnlaceComunicação confiável ponto-a-ponto

FísicoCaracterísticas físicas da rede

AplicaçãoAplicações que usam a rede

ApresentaçãoPadronização da representação dos dados

SessãoGerência de diálogos entre aplicações

Camadas do TCP/IP

Figura 4.3 – Camadas da arquitetura TCP/IP em comparação com as camadas do RM-OSI

Da mesma forma que no modelo de referência OSI, os dados descem a pilha de protocolos parachegar a rede e sobem para chegar às aplicações. Cada camada da pilha de protocolos adiciona umcabeçalho com informações de controle e trata o que recebe da camada superior como sendo dados. Estaadição de informações de controle em cada nível é denominada encapsulamento e é ilustrada pela figura4.4. O processo reverso acontece quando uma camada passa dados às superiores, ou seja, o cabeçalho éremovido e o restante é passado para cima como dados.

Aplicação

Transporte

Internet

Acesso à Rede

Dados

Dados

Dados

Dados

Cabeçalho

Cabeçalho

Cabeçalho

CabeçalhoCabeçalho

send receive

Cabeçalho

Figura 4.4 - Encapsulamento de dados na pilha TCP/IP.

Cada camada da pilha possui estruturas de dados próprias e independentes. Assim sendo, cadaprotocolo faz referência aos dados de forma específica. Por exemplo, aplicações que fazem uso doprotocolo TCP se referem aos dados como streams, ao passo que aplicações que fazem uso do protocoloUser Datagram Protocol (UDP) se referem aos dados como mensagens. O protocolo TCP, por sua vez, serefere aos dados como segmentos, enquanto que o UDP se refere aos dados como pacotes. O protocolo IPsempre se refere aos dados como datagramas, enquanto que os dados passados à camada de acesso à redesão referidos como frames ou quadros. A figura 4.5 ilustra esta terminologia.

Page 41: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 41

UDPTCP Aplicação

Transporte

Internet

Acesso à Rede

mensagem

pacote

datagrama

frame

stream

segmento

datagrama

frame

Figura 4.5 - Estruturas de dados da arquitetura TCP/IP.

A Camada de Acesso à Rede é a mais baixa na hierarquia de protocolos TCP/IP. Os protocolosnesta camada provêem meios para que os dados sejam transmitidos a outros computadores na mesma redefísica. Esta camada pode abranger as três primeiras camadas do modelo de referência OSI: física, deenlace e de rede. Entretanto, a camada de acesso à rede do TCP/IP não define propriamente os protocolospara estes três níveis, mas sim como utilizar os protocolos já existentes para suportar a transmissão de umdatagrama IP. À medida que novas tecnologias de rede vão surgindo, novos protocolos são acrescidos àcamada de acesso à rede. As principais funções da camada de acesso à rede são: o encapsulamento dedatagramas IP em frames para transmissão e a tradução de endereços IP em endereços físicos de rede.Estas duas funções apresentam implementações específicas para cada tipo de rede.

A Camada Internet fica exatamente sobre a camada de acesso à rede. O Internet Protocol (IP),é o coração desta camada. Ele provê um serviço básico de datagrama sobre o qual as redes TCP/IP sãoimplementadas. Todos os protocolos das camadas superiores a esta fazem uso do protocolo IP. Asprincipais funções do protocolo IP são:

• definir o datagrama IP, que é a unidade básica de transmissão de dados da arquiteturaTCP/IP;

• definir o esquema de endereçamento IP;• passar dados da camada de acesso à rede à camada de transporte;• rotear datagramas IP;• fragmentar e remontar datagramas IP.IP é um protocolo não orientado a conexão, ou seja, não existe negociação prévia de uma

conexão para a transmissão de dados. Isto não impede a existência de protocolos orientados a conexão nascamadas superiores, mas eles deverão negociar o estabelecimento de conexões por si próprios. Além deser não orientado à conexão, o protocolo IP também é não confiável, uma vez que não suportamecanismos de detecção e recuperação de erros. Em outras palavras, o protocolo IP não verifica se umdatagrama foi recebido corretamente, deixando esta responsabilidade para os protocolos das camadassuperiores.

A Camada de Transporte fim-a-fim está localizada exatamente sobre a camada Internet nahierarquia TCP/IP. Os principais protocolos desta camada são: Transmission Control Protocol (TCP) eUser Datagram Protocol (UDP). TCP é um protocolo orientado a conexão com detecção e correção deerros fim-a-fim. UDP é um protocolo não orientado a conexão e não confiável, sendo portanto muito leve.Ambos os protocolos passam dados entre as camadas de aplicação e Internet. Cada aplicação é livre paraescolher o protocolo que melhor se adapta a sua natureza.

O User Datagram Protocol (UDP) provê meios para que aplicações tenham acesso direto aoserviço de datagrama IP. Aplicações que usam este protocolo inserem pouco overhead na rede. Como opróprio IP, o protocolo UDP é não orientado a conexão e não confiável. Note que a expressão nãoconfiável implica apenas a inexistência de mecanismos de confirmação do correto recebimento dodatagrama. O protocolo UDP é utilizado principalmente por aplicações que transmitem dados empequenas quantidades, de tal forma que o overhead de uma conexão é maior do que o da retransmissãodos dados em caso de erro. Além disto, as aplicações do modelo cliente/servidor freqüentemente fazemuso de protocolos do tipo requisição/resposta que são melhor implementados sobre UDP, uma vez quenão existem conexões preestabelecidas entre clientes e servidores.

Page 42: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 42

O Transmission Control Protocol (TCP) é um protocolo orientado a conexão e confiável. Atransmissão de dados através de uma conexão, ou stream, se dá através de segmentos. De forma similarao pacote UDP, cada segmento carrega informações sobre as aplicações origem e destino (ports).

A Camada de Aplicação fica no topo da pilha TCP/IP e inclui todos os processos que utilizamserviços das camadas inferiores para transmitir dados através da rede. Alguns protocolos desta camadasão citados abaixo, enquanto que a figura 4.6 ilustra dois exemplos de pilha TCP/IP.

• Telnet: serviço de terminal virtual que permite sessões remotas sobre a rede;• File Transfer Protocol (FTP): serviço de transferência de arquivos pela rede;• Simple Mail Transfer Protocol (SMTP): serviço de correio eletrônico;• Domain Name Service (DNS): serviço de tradução de nomes de hosts em endereços IP;• Routing Information Protocol (RIP): suporta a troca de informações de roteamento entre

gateways;• Network File System (NFS): sistema de arquivos remotamente acessíveis.

Aplicação FTP TELNET SMTP RIP DNS NFS

Transporte TCP UDP

Rede IP

X.25 ARP

LAPB/HDLC IP over Ethernet

CCITT V.35 CSMA/CD

Sub-redede acesso

Renpac Ethernet

Figura 4.6 - Exemplos de pilha TCP/IP.

4.4 ATM E O MODELO DE REFERÊNCIA B-ISDN

B-ISDN é uma arquitetura em camadas fornecendo múltiplos serviços às aplicações, tal comovoz, dados, e vídeo, a serem mixados em uma rede. A figura 4.7 ilustra o modelo de Referência paraProtocolos (Protocol Reference Model - PRM) definido pelo ITU-T. O PRM constitui-se num formatotridimensional composto por três planos:

• Plano Usuário, se refere à transmissão dos dados dos usuários.• Plano de Controle, como o próprio nome diz, executa funções de controle como manter e

desativar conexões.• Plano de Gerenciamento, utilizado no gerenciamento dos planos e das camadas.

Figura 4.7 - Modelo de Referência para Protocolos - PRM

Page 43: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 43

O plano de gerenciamento se divide conforme as entidades que se pretende gerenciar. O plano dousuário e o plano de controle são compostos por quatro camadas, como é mostrado na figura 4.8 a seguir:

• A Camada mais Alta, que no plano usuário (camada de aplicação) são responsáveis pelaprodução e apresentação de vários tipos de dados, e no plano controle realiza serviços decontrole.

• A Camada de Adaptação ATM (AAL) assegura que os serviços tenham as característicasapropriadas para as aplicações e divide todos os tipos de dados em 48 bytes que formarão acélula ATM.

• A Camada ATM toma os dados a serem enviados e adiciona o cabeçalho da célula (5 bytes)que assegura que a célula seja enviada na conexão correta. Ela é uma camada de comutaçãoe multiplexação independente da camada física.

• A Camada Física (PHY) define as características elétricas e interfaces de rede. Esta camadaé a que realiza a transmissão dos bits sobre o meio de transmissão. É esta camada quedetermina a taxa de transmissão de bits. Taxas de bits de 155 Mbps e 622 Mbps foraminicialmente propostas para transmissão em fibra ótica, mas outras taxas de transmissãotambém foram definidas para outros meios de transmissão. ATM não fixa o tipo específicode transporte físico. Mas o meio mais comum considerado para longas distâncias é fibraótica usando o protocolo SONET (Synchronous Optical Network).

Camadas FunçõesCamadas Altas Produção e apresentação de vários tipos de

dados

Camada de Adaptação ATM(AAL)

Segmentação, remontagem, funçõesdependentes de aplicação (por exemplocontrole de erro)

Camada ATM Controle de fluxo genérico, geração/extraçãode cabeçalho de célula, translação VPI/VCI,multiplexação/demultiplexação de célula

Camada Física Transmissão de bits sobre o meio detransmissão

Figura 4.8 - Camadas e funções da arquitetura B-ISDN para o plano usuário

AALs existem apenas na fonte e no destino. Diferentes AALs podem ser usadas para diferentestipos de tráfico. Desde que uma célula está na rede, os 48 bytes de dados do usuário não são tocados. Oscomutadores de rede rotearão a célula de acordo com as informações do cabeçalho. O cabeçalho pode seralterado no caminho de transmissão direto. A arquitetura conceptual ATM é mostrado na figura 4.9.

PHY

ATM

AAL

PHY

ATM

PHY

ATM

PHY

ATM

AAL

Terminal Terminal

Comutador Comutador

Figura 4.9 - Arquitetura conceitual do ATM.

4.4.1 ELEMENTOS BÁSICOS ATM

Uma rede ATM é hierárquica como mostrado na figura 4.10. Os terminais (sistemas finais) sãoconectados a comutadores diretamente através de pontos de acesso. Um comutador é constituído porvárias portas que se associam às linhas físicas da rede. Um comutador deve receber as células que chegampelas portas de entrada e retransmiti-las através das portas de saída, mantendo a ordem original das

Page 44: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 44

células em cada conexão. É possível que terminais sejam ligados a uma LAN, que é conectada a uma redeATM através de um ponto de acesso. A velocidade da ligação entre um ponto de acesso e um comutadoré chamado de velocidade de acesso e é dedicada ao ponto de acesso. Comutadores agregam célulasvindas pelas ligações de entrada e retransmitem elas para outros comutadores ou terminais. A largura debanda entre comutadores é chamado de largura de banda agregada. Ela é normalmente maior que avelocidade de acesso, mas ela não precisa ser a soma das taxas de pico de todas as suas ligações deentrada pois ATM usa multiplexação estatística. A interface entre o usuário (terminal) e a rede é chamadainterface usuário-rede (UNI - User-Network Interface). A interface entre os comutadores de rede échamada interface rede-rede (NNI - Network-Network Interface). O formato da célula é ligeiramentediferente na UNI e na NMI.

C o mu t a d o rC o mu t a d o r

Comutador

Comutador

Comutador Te r min a lTe r min a l

Te r min a lTe r min a l

Te r min a lTe r min a l

N N IN N I

C o mu t a d o rC o mu t a d o r

C o mu t a d o rC o mu t a d o r

C o mu t a d o rC o mu t a d o r

Te r min a lTe r min a l

Te r min a lTe r min a l

Te r min a lTe r min a l

Te r min a lTe r min a l

U N IU N I

Figura 4.10 - Configuração hierárquica da rede ATM

ATM é um serviço orientado a conexão usando conexões virtuais comutadas e permanentes. EmATM, um Canal Virtual (Virtual Channel - VC) é uma conexão lógica entre dois comutadores ATM ouentre um terminal ATM e um comutador ATM. A rota que as células seguem consiste de uma seqüênciade VCs entre terminais ATM. A seqüência de VCs que forma uma rota associada com uma chamadavirtual é conhecida como uma conexão de canal virtual (Virtual Channel Connection - VCC).

Cada canal virtual pertence a um caminho virtual (Virtual Path -VP) entre comutadores. Umcaminho virtual é um agrupamento (em uma ligação física) de vários VCs em uma única entidade lógicacomo ilustrado na figura 4.11. Enquanto os caminhos virtuais são persistentes, os canais virtuais sãoestabelecidos quando a conexão é iniciada e associada a um caminho virtual. O cabeçalho das célulasATM contém informações necessárias para comutar a célula de um porta de entrada de um comutadorATM à porta de destino de acordo com as informações na tabela de roteamento do comutador.

C o mu t a d o rC o mu t a d o r C o mu t a d o rC o mu t a d o rcaminho de transmissão

Caminho detransmissão

VP1

VP2

VP3

VP1

VP2

VP3}VCs

Figura 4.11 - Canal Virtual (VC) e Caminho Virtual (VP)

4.4.2 CAMADAS DE ADAPTAÇÃO ATM

ATM envia células sob uma conexão. O transmissor deve segmentar fluxos de dados em células,e no receptor os dados nas células são remontados em fluxos de dados novamente. A camada AALrepresenta uma interface entre os protocolos de alto nível e a camada ATM. Quando ela recebe dados dascamadas superiores, ela realiza a segmentação de dados em células ATM que são passadas para a camada

Page 45: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 45

ATM. No sentido inverso (quando recebe células ATM da camada ATM) a camada AAL deve remontarem fluxos de dados que as camadas superiores podem entender.

O termo camada de adaptação é devido a sua função que é a de adaptar o dado em uma formadesejável para ATM. O propósito da AAL é empacotar eficientemente as várias espécies de dados de altonível, tal como arquivos, amostragens de áudio, quadros de vídeo, em uma série de células que podem serenviadas sob conexões ATM e reconstruídas em um formato apropriado no receptor.

AALs são necessárias de maneira a que aplicações do mesmo tipo possam comunicar comoutras. O primeiro passo realizado pelo ITU-T quanto a camada de adaptação, foi a definição das classesde serviço oferecidas pela AAL através da recomendação I.362. Logo após, o ITU-T definiu os tipos deAAL que suportam estas classes, através da recomendação I.363. A ITU-T determinou os seguintesclasses de aplicações:

• Classe A: Aplicações sensíveis ao tempo com taxa de bits constantes (Constant Bit Rate -CBR). Estas aplicações enviam e recebem dados a taxas constantes. Elas tambémnecessitam que o atraso da fonte ao destino seja limitado. Este tipo de aplicação incluicomunicação de áudio e vídeo codificados a taxa de bits constantes.

• Classe B: Aplicações sensíveis ao tempo com taxa de bits variáveis (Variable Bit Rate -VBR). Estas aplicações enviam dados a taxa de bits variáveis, mas requerem atrasoslimitados. Exemplos incluem comunicação de áudio e vídeo codificados a taxa de bitsvariáveis.

• Classe C: Aplicações de dados orientadas a conexão. Esta classe suporta aplicações queeram historicamente usadas em serviços de rede tal como X.25.

• Classe D: Aplicações de dados sem conexão. Aplicações nesta classe enviam e recebemdados usando datagramas sem conexão.

As principais características destas classes são resumidas na figura 4.12.

Classe A Classe B Classe C Classe DTempo na fonte eno destino

Relacionado Sem relação

Taxa de geraçãode bits

Constante (CBR) Variável (VBR)

Modo de conexão Orientada à conexão Sem conexão

Figura 4.12 - Classes de Serviço ATM

A fim de suportar estas diferentes classes de serviços, a ITU-T propôs três diferentes camadas deaplicação: AAL1, AAL2 e AAL3/4. O ATM Forum propôs uma nova camada AAL5 e investiga umanova camada, AAL6. O ATM Forum consiste de mais de 600 membros, incluindo todos os maioresfornecedores de dados e equipamentos de telecomunicação. Sua principal função é fornecer e promover atecnologia ATM.

• AAL1 é para o serviço classe A e emprega funções de empacotamento/desempacotamentopara converter fluxos a taxa constante de bits em células no emissor e montar as células emfluxos a taxa constante de bits no receptor. Um fluxo de bit inteiramente sincronizado étransferido ao receptor, requerendo pequeno atraso e controle de variação de atraso na rede.

• AAL2 fornece serviço classe B. Devido a taxa de bits variável, é difícil reservar recursospara esta espécie de tráfico e assim é difícil implementar a AAL2. Detalhes da AAL2 nãoforam definidos.

• AAL3/4 implementa serviços classes C e D. A principal função da AAL3/4 é segmentação eremontagem para grandes arquivos.

• AAL5 também fornece serviços classes C e D (como proposto por construtores decomputadores no Forum ATM). Ela é mais simples e mais eficiente que AAL3/4.

• AAL6 está em estágio de discussão. O ATM Forum está investigando uma AAL adaptadaao empacotamento de fluxos de dados multimídia, em particular para vídeo MPEG eMPEG-II. Discussões incluem o uso de técnicas FEC (forward error-detection) paraaumentar a confiabilidade na comunicação ao nível onde nenhum recobrimento de erro extraé necessário e para suportar requisitos de sincronização MPEG.

Note que AALs fazem mais que segmentação e remontagem de dados, elas efetivamenteimplementam protocolos de transporte adaptadas aos diferentes tipos de aplicação.

Page 46: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 46

4.4.3 ESTRUTURA DA AAL

A camada AAL é dividida em duas subcamadas, conforme mostra a figura 4.13. A subcamadade convergência CS que é responsável pelo provimento de funções AAL a camada mais alta no modeloB-ISDN. Sua função principal é tornar visível um serviço AAL para um processo da camada mais alta epreparar dados do usuário para segmentação em células ATM e remontagem. Entre outras funções, estasubcamada é responsável, dependendo do tipo de serviço, por realizar funções como multiplexação,detecção de perdas de células e recuperação da relação temporal da informação original no destino.

A subcamada de quebra e remontagem SAR (Segmentation and Reassembly): responsávelpela segmentação dos dados oriundos da camada mais alta em fragmentos que podem ser acomodados nocampo de informação das células ATM, e pela remontagem destes dados a partir das células recebidas. ASAR define campos adicionais (por exemplo, cabeçalho e trailer SAR) que armazena o número deseqüência, checagem de erro e tamanho do campo de dado para cada segmento.

DadoPacote da camada mais alta

DadoSubcamada CS cabeçalhoCS

enchimento trailerCS

Subcamada SAR segmento de dadocabeçalhoSAR

trailerSAR

Camada ATM cabeçalho

48 bytes

Figura 4.13 - Subcamadas CS e SAR da AAL

No caso da AALs dos tipos 3/4 e 5 a subcamada CS é ainda subdividida em:• Subcamada de Convergência Específica do Serviço (SSCS), responsável pelos

procedimentos específicos para cada classe de serviço e para serviços específicos de umamesma classe;

• Parte Comum da Subcamada de Convergência (CPCS) responsável pelos procedimentoscomuns as classes de serviços (adiciona cabeçalhos aos quadros do usuário e asseguraintegridade a nível de quadros).

4.4.4 MEIO DE TRANSMISSÃO

Como mencionado anteriormente, ATM pode operar sob qualquer tipo de linha de transmissão.Contudo, interfaces da camada física estão sendo definidas para fornecer alta velocidade de transmissão.O mundo das telecomunicações está repondo os velhos cabos de cobre, cabos coaxiais e meio detransmissão de microondas por cabos de fibra ótica. Os principais benefícios são a muito mais baixa taxade erros, alta imunidade a ruídos e o suporte a altas velocidades de transmissão (Gbits/s). Como sempre,padrões são importantes para assegurar que serviços de transmissão a alta velocidade sejam disponívelpor todo o mundo.

Um significante desenvolvimento nesta área foi o padrão SONET (Synchronous OpticalNetwork) desenvolvido pela Bell Communications Research e é agora um padrão ANSI (AmericanNational Standards Institute). SONET especifica como sinais digitais síncronos podem ser transportadospor redes de fibra ótica. Ela apresenta como unidade básica de transporte um formato de quadro compostode 810 bytes que se repete a cada 125µs, tendo assim uma taxa de bits de 51,84 Mbps. A taxa 51,84 Mbpsé chamada de STS-1 (Synchronous Transport Signal level 1) ou OC-1 (Optical Carrier Level 1). Umataxa OC-n é meramente o equivalente ótico de um sinal elétrico STS-n.

A ITU-T desenvolveu um padrão similar a SONET, chamado de SDH (Synchronous DigitalHierarchy), a partir de três sinais STS-1 concatenados, denominando o novo sinal de STM-1(Synchronous Transport Module level 1 - 155,52 Mbps) e adotou este como o sinal básico para a interfaceNNI e UNI. O padrão SONET foi posteriormente também aprovado como sinal básico para as interfacesUNI e NNI.

Page 47: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 47

A hierarquia de transmissão ótica SDH é baseada em uma taxa básica de 155,52 Mbps, chamadaSTM-1 (Synchronous Transport Model Level 1). Interfaces de alta velocidade podem ser criadassimplesmente por multiplexação (usando byte interleaving) de canais de mais baixa velocidade. Istosimplifica o processo de criação da faixa de velocidades de transmissão oferecidas por um serviçoparticular. Algumas velocidades de interfaces comuns atualmente reconhecidas por SONET/SDH sãodados na tabela abaixo.

SONETOptical carrier (OC) level

SDHSTM level

Line rate(Mbps)

OC-1 51,84

OC-3 STM-1 155,52

OC-12 STM-4 622,08

OC-24 STM-8 1244,16

OC-48 STM-16 2488,32

A ligação máxima de 2,4 Gbits/s da tabela acima não é a mais alta taxa obtida por SONET/SDH,ela simplesmente representa a maior taxa possível com os produtos atuais. A hierarquia de velocidade detransmissão SONET/SDH estende-se indefinidamente, limitada apenas pelos avanços na tecnologia parasuportar transmissão de mais alta velocidade. O padrão ITU-T SDH concentra-se nas velocidades detransmissão de 155 Mbps e acima.

4.4.5 CAMADA FÍSICA DO MODELO DE REFERÊNCIA B-ISDN

A camada física do PRM está dividida em duas subcamadas:• Meio Físico (Physical Medium - PM) cuja função é transmitir e receber uma seqüência

contínua de bits pelo meio físico, incluindo alinhamento de bits, sinalização na linha detransmissão e conversão eletro-ótica. A PM recebe o fluxo de informação da subcamada TC,e então codifica este fluxo numa forma apropriada para a transmissão pelo meio físico. Asubcamada PM recebe o fluxo de informação do meio físico, e repassa esta para asubcamada TC para tratamento posterior.

• Convergência de transmissão (Transmission Convergence -TC) realiza as seguintes funções:§ geração e verificação do campo HEC (Header Error Check): HEC é um conjunto

de bits gerado no lado do transmissor, que permite a detecção de erros nas célulasque chegam ao lado do receptor. Pode-se adotar uma abordagem corretiva ousimplesmente de descarte da célula errada.

§ delineamento de células: permite determinar, dentro de uma seqüência de bits oubyte recebidos, quais são os limites (início e fim) de uma célula.

§ embaralhamento do sinal: afeta somente o campo de informação da célula a sertransmitida, deixando o cabeçalho intacto. Esta função tem como objetivo, diminuiras chances de que uma seqüência de informação seja confundida como o cabeçalhoda célula no lado do receptor.

§ geração e recuperação de quadros (SONET/SDH).§ desacoplamento da taxa de células: a subcamada PM especifica uma transmissão

contínua de bytes sem nenhum período ocioso (transmissão síncrona), portanto,para isto, devem receber dados continuamente da subcamada TC. Caso ocorra umageração de células assíncrona na transmissão (presença de períodos ociosos), asubcamada TC ficará responsável por inserir células ociosas de tal forma que, ataxa de geração dos dados para a subcamada PM se mantenha constante. Estascélulas ociosas são identificadas por um tipo especial de cabeçalho.

4.5 OUTROS EXEMPLOS DE REDES

Existe atualmente um número muito grande de redes em operação. Algumas são públicas,controladas por concessionárias de serviços de comunicação, outras são redes de pesquisa e outras ainda

Page 48: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 48

são redes corporativas ou comerciais. Todas elas apresentam diferenças em relação a sua história,administração, recursos oferecidos, projeto técnico e comunidade de usuários. A história e aadministração de uma rede podem variar significativamente, de exemplos onde ela foi cuidadosamenteplanejada por uma organização até exemplos de redes cujas máquinas foram interconectadas no decorrerdos anos sem qualquer planejamento ou administração central. Os recursos disponíveis podem variar daarbitrária comunicação processo a processo até o correio eletrônico, à transferência de arquivos, ao loginremoto e à execução remota. Os projetos técnicos podem diferir no tipo de meio de transmissão utilizado,nos algoritmos de roteamento e de denominação empregados, no número e no conteúdo das camadaspresentes e nos protocolos usados. Por fim, a comunidade de usuários pode variar dos funcionários deuma empresa até todas as pessoas interessadas no mundo.

Muitos são os exemplos de redes disponíveis no mercado, principalmente para redes locais.Ainda podemos analisar algumas experiências de grandes redes tais como a ARPANET e a NSFNET,precursoras da Internet mundial, assim como das primeiras experiências a gigabit.

Um bom exemplo de rede local bastante popular é a Novel NetWare. Ela foi projetada para serusada para empresas que estavam fazendo downsizing de mainframe para rede de PCs. Ela utiliza afilosofia cliente/servidor e está baseada numa pilha de protocolos proprietária ilustrada na figura 4.14. Elaé baseada na antiga XNS (Xerox Network System) com várias modificações. Esta arquitetura antecede oRM-OSI e se parece mais com a arquitetura TCP/IP.

Camada

Aplicação Aplicações

Transporte NCP SPX

Rede IPX

Enlace dedados

Ethernet Token Ring ARCnet

Física Ethernet Token Ring ARCnet

Figura 4.14 – O modelo de referência da Novel NetWare.

As camadas física e de enlace podem ser escolhidas dentre vários padrões industriais. O IPX éum protocolo sem conexão não confiável e é funcionalmente semelhante ao IP, com diferenças noendereçamento, que é de 10 bytes.

O NCP (Network Core Protocol) é um protocolo de transporte orientado a conexão e não estárestrito ao transporte de dados do usuário, sendo considerado o coração do Netware. O SPX (SequencePacket Exchange) oferece apenas o transporte de mensagens. Ainda há a opção do TCP, que tambémpode ser utilizado. Por exemplo, o sistema de arquivos utiliza o NCP e o Lotus Notes utiliza o SPX.

A Internet nasceu aproximadamente 20 anos atrás, como uma rede experimental doDepartamento de Defesa dos Estados Unidos chamada ARPANET, projetada para suportar pesquisasmilitares. No modelo da ARPANET, a comunicação sempre ocorria entre um computador fonte e umdestino. A rede era insegura, considerava-se que qualquer porção da rede podia desaparecer a qualquermomento. Ela foi projetada para exigir o mínimo de informação dos computadores clientes. Para mandaruma mensagem pela rede, o computador tinha apenas que colocar os dados em um envelope, chamado depacote do Protocolo Internet (IP), e endereçar corretamente o pacote. Aos computadores comunicantes, enão à rede, cabia a responsabilidade de certificar-se que a comunicação tinha sido completada. A filosofiaera que cada computador na rede pudesse falar com qualquer outro.

Estas decisões podem soar estranhas, como assumir que a rede era “insegura”, mas a história temmostrado que muitas delas estavam razoavelmente corretas. Uma variedade de fabricantes decomputadores passaram a incorporar ou oferecer softwares que implantavam o padrão Internet paraoferecer possibilidade de comunicação com computadores diferentes. Nesta época, este tornou-sepraticamente o único método prático para computadores de fabricantes distintos se comunicarem. Estacaracterística era atraente ao governo e às universidades que, não possuindo nenhuma políticaestabelecendo que os computadores deveriam ser adquiridos de um mesmo fornecedor, compravam osequipamentos que lhes pareciam mais adequados e esperavam que eles trabalhassem juntos na rede.

Dez anos depois, as redes locais Ethernet (LAN) e as workstations entraram em cena. A maioriadas workstations vinha com o UNIX de Berkeley, que por sua vez veio com software de rede IP. Estasituação criou uma nova demanda: mais do que conectar um único computador (compartilhado por váriaspessoas) à ARPANET, as organizações queriam conectar toda a sua rede local. Isso iria permitir que

Page 49: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 49

todos os computadores daquela LAN acessassem as facilidades da ARPANET. Ao mesmo tempo, outrasorganizações começaram a construir suas próprias redes utilizando os mesmos protocolos decomunicação da ARPANET: IP e seus parentes (TCP, UDP, etc). Tornou-se óbvio, então, que se essasredes podiam conversar entre si, usuários de uma rede poderiam comunicar-se com outros de outras redes,e assim todos seriam beneficiados.

Uma das mais importantes dessas novas redes foi a NSFNET, administrada pela NSF (NationalScience Foundation), uma agência do governo dos Estados Unidos. Nos anos 80 a NSF criou 5 centros desupercomputadores. Era pouco, mas o custo elevado das instalações impedia a criação de um númeromaior, criando a necessidade de compartilhamento dos existentes. Esta situação criou um problema decomunicação: era preciso encontrar uma forma de conectar os centros entre si e permitir que os seusclientes pudessem acessá-los, mesmo remotamente. Inicialmente a NSF tentou utilizar a ARPANET paraeste fim, mas esta estratégia falhou devido a problemas burocráticos e de suporte.

Em resposta, a NSF decidiu construir sua própria rede, baseada na tecnologia da ARPANET. Elaconectava os centros através de linhas telefônicas a uma velocidade de 56.000 bits por segundo (56Kbps).Como sairia muito caro conectar cada universidade diretamente aos centros (já que as linhas telefônicassão pagas pela distância), foi decidida a criação de redes regionais. Em cada área do país as escolasseriam conectadas aos seus vizinhos mais próximos. Cada região era conectada a um centro por um pontoe os centros eram conectados entre si. Com essa configuração, qualquer computador poderia se comunicarcom qualquer outro, remetendo a conversação através de seus vizinhos.

Essa foi uma solução de sucesso. Com o passar do tempo o tráfego pelas linhas aumentou e oscomputadores que controlavam a rede e as próprias linhas telefônicas tiveram que ser substituídos porequipamentos mais rápidos.

O mais importante é que as redes da NSF promoveram a integração universal das entidadeseducacionais, dado que antes de seu aparecimento a rede estava disponível apenas para pesquisas emciência da computação, empregados e contratados do governo. A demanda cresceu muito, e tudo leva acrer que este crescimento ainda perdurará por algum tempo, trazendo um grande volume de trabalho eproblemas para quem atua na área.

No Brasil, a Internet chegou com a RNP (Rede Nacional de Pesquisa), um projeto bancado peloCNPq (juntamente com organismos internacionais) com o objetivo de criar uma infra-estrutura nacionalde rede, interligando instituições de ensino e pesquisa. A RNP é uma realidade hoje. As principaisuniversidades e centros de pesquisa do país hoje possuem acesso à RNP e à Internet (existe ao menos umponto de presença em cada estado brasileiro, com diferentes velocidades de acesso).

Page 50: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 50

Capítulo 5 - A Camada Física

5.1 INTRODUÇÃO

O objetivo da camada Física é assegurar o transporte dos dados, representados por um conjuntode bits, entre dois equipamentos terminais, via um suporte de transmissão.

Abordaremos, nesta parte do documento, os principais aspectos e problemas relacionados àtransmissão de dados, como, os suportes de transmissão, os modos de transmissão, a multiplexação e acomutação. Ainda nesta seção, serão vistos alguns exemplos de interfaces físicas padronizadas e adotadasem muitas aplicações e arquiteturas de comunicação.

5.2 OS SUPORTES DE TRANSMISSÃO

Os suportes de transmissão podem se caracterizar pela existência ou não de um guia físico. Naprimeira classe estão os cabos elétricos, as fibras óticas e, na segunda classe, as ondas de rádio, as ondasde luz, etc...

5.2.1 O PAR DE FIOS TRANÇADOS

Em diversas aplicações, é necessário se manter uma conexão direta e permanente entre doiscomputadores. O suporte de transmissão mais clássico utilizado até o momento é o par de fios trançados,o qual é composto de dois fios elétricos em cobre, isolados, e arranjados longitudinalmente de formahelicoidal. Esta técnica de enrolar os fios permite diminuir os efeitos das induções eletromagnéticasparasitas provenientes do ambiente no qual este estiver instalado.

A utilização mais típica deste suporte de transmissão é a rede telefônica, onde, graças às suascaracterísticas elétricas, os sinais podem percorrer várias dezenas de quilômetros, sem a necessidade deamplificação ou regeneração de sinal.

Estes podem, ainda, ser utilizados para a transmissão de sinais analógicos quanto de sinaisdigitais, a banda passante atingida sendo função da sua composição (particularmente, diâmetro e purezados condutores, natureza dos isolantes e do comprimento do cabo). A taxa de transmissão obtida pelautilização deste suporte de transmissão situa-se na faixa de algumas dezenas de Kbits/s, podendo atingir,em condições particulares, na faixa dos Mbits/s em pequenas distâncias.

O fato de representar um baixo custo e uma grande faixa de utilização o torna um dos suportesmais utilizados atualmente e, provavelmente, nos próximos anos.

5.2.2 OS CABOS COAXIAIS

Os cabos coaxiais são também altamente empregados como suporte de transmissão. Dois tiposde cabos são tipicamente utilizados: o primeiro tipo apresenta uma impedância característica de 50 ohms,utilizado nas transmissões digitais denominada transmissão em banda de base; o segundo tipo, com umaimpedância característica de 75 ohms, é mais adequado para a transmissão de sinais analógicos. Eles sãoconstituídos de dois condutores arranjados de forma concêntrica: um condutor central, a alma, envolto porum material isolante de forma cilíndrica. Esta capa isolante é, por sua vez, envolta por uma trança

Page 51: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 51

metálica condutora em cobre. Finalmente, o conjunto é envolto numa capa de proteção em plásticoisolante.

Em relação aos pares de fios trançados, os cabos coaxiais apresentam melhores característicaselétricas, oferecendo um boa relação entre a banda passante e a proteção contra interferênciaseletromagnéticas.

A largura de banda vai depender igualmente da qualidade da composição do cabo e do seucomprimento. Para distâncias em torno de 1 km, é possível obter uma taxa de transmissão em torno de 10Mbits/segundo, podendo-se obter taxas superiores para distâncias mais curtas. Os cabos coaxiais sãoaltamente utilizados como suporte de transmissão nas Redes Locais Industriais.

A informação transmitida pelos cabos coaxiais é geralmente codificada sob a forma de um sinalbinário, onde os dígitos 0 e 1 são representados por dois diferentes níveis... por exemplo, 1 volt para o bit1 e 0 volt para o bit 0. Esta forma de codificação, embora seja uma convenção bastante adequada, nãopermite ao receptor do sinal detectar o início e o fim da transmissão de um dígito binário.

5.2.3 AS FIBRAS ÓTICAS

As fibras óticas são o meio de transmissão pelo qual os sinais binários são conduzidos sob aforma de impulsos luminosos. Um impulso luminoso representa um bit a 1, enquanto a ausência desteimpulso representa um bit a 0. A luz visível é uma onda luminosa cuja freqüência está na ordem de 108

Hz, o que dá ao sistema uma banda passante potencial bastante grande. As taxas de transmissão numsuporte a fibra ótica ficam na faixa dos Gbit/s (10

9 bit/s).

Um sistema de transmissão a base de fibra ótica é composto de três principais elementos: osuporte de transmissão (a fibra ótica), o dispositivo de emissão e o dispositivo de recepção da ondaluminosa.

A fibra ótica é constituída de um fio de vidro bastante fino, à base de silício e outroscomponentes. Ela consiste de um núcleo no qual se propaga a luz e uma capa externa de proteção quemantém a luz no interior do núcleo. O dispositivo de emissão consiste, ou de um diodo emissor de luz(LED) ou de um diodo laser. O dispositivo de recepção é constituído geralmente de um fotodiodo ou deum fototransistor.

O princípio da transmissão das fibras óticas é o da reflexão da luz na interface entre dois meios.Quando um raio luminoso deixa um meio homogêneo para se propagar num outro meio, o seu percursosofre um desvio na interface entre os dois meios. Entretanto, existe um ângulo de incidência limite, apartir do qual o raio luminoso, ao invés de ser refratado ele será refletido na interface, sendo mantido nomeio no qual ele havia sido introduzido. Desta forma, a luz poderá ser propagada ao longo do meio, emdistâncias de alguns quilômetros.

Atualmente, os suportes de comunicação à base de fibra ótica são utilizados em redes decomunicação em longa distância, substituindo sistemas mais antigos à base de cabos coaxiais. Isto deverácontinuar a ocorrer nos próximos anos, contribuindo para que se tenha, num futuro próximo, emdistâncias relativamente grandes, sistemas de comunicação oferecendo altas taxas de transmissãogarantindo assim o salvamento de grandes volumes de informação.

5.2.4 AS REDES SEM FIO (RADIODIFUSÃO)

Nas redes sem fio (wireless networks) as informações são transmitidas através do ar, em canaisde freqüência de rádio (na faixa de KHz até GHz) ou infravermelho (freqüências da ordem de THz).

Por sua natureza, a radiodifusão é adequada tanto para ligações ponto a ponto quanto paraligações multiponto. As redes sem fio são uma alternativa viável onde é difícil, ou mesmo impossívelinstalar cabos metálicos ou de fibra ótica.

As bandas de freqüência ISM (Industrial, Scientific and Medical), que podem ser utilizadas semque seja necessário uma licença, são alocadas para as aplicações de radiodifusão dentro de edifícios. Osvalores destas bandas variam de acordo com o país.

Como várias estações compartilham o mesmo meio de transmissão, é necessário utilizar ummétodo para disciplinar este compartilhamento. Alguns métodos usados são: multiplexação por divisão defreqüência (FDM), multiplexação por divisão de tempo (TDM) e multiplexação por divisão de espaço(SDM).

Page 52: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 52

O método SDM pode ser realizado de duas formas. A primeira delas baseia-se na utilização deantenas direcionais que emitem sinais de rádio de alta freqüência concentrados em feixes. Esse método éusualmente empregado em enlaces de microondas e permite que uma mesma freqüência possa serreutilizada desde que os feixes de ondas sejam transmitidos em regiões distintas do espaço. A outra formade realização do SDM é estruturar a rede em células, isto é, dividir a área total da rede em várias áreasmenores ( células), que normalmente possuem a forma de hexágonos. O funcionamento dos sistemascelulares baseia-se na rápida diminuição da potência do sinal de rádio à medida que se propaga. Noespaço livre, a potência do sinal decai aproximadamente com o quadrado da distância do transmissor, equando as antenas estão próximas ao solo, a potência diminui com aproximadamente a Quarta potência dadistância. Essa característica torna possível a reutilização da mesma freqüência, quando os transmissoresestão suficientemente distantes uns dos outros.

As rede sem fio normalmente utilizam freqüência altas em suas transmissões: 915 MHz, 2.4 GHz, 5.8 GHz, etc. Parte das ondas de rádio, nessas freqüências , são refletidas quando entram em contatocom objetos sólidos, o que implica na formação de diferentes caminhos entre transmissor e receptor,principalmente em um ambiente fechado. Como conseqüência acontece um espalhamento de no tempo dosinal que chega ao receptor, isto é, várias cópias do sinal chegam ao receptor deslocadas no tempo, poiselas percorrem distâncias diferentes. O resultado disso é que, no mesmo ambiente , em alguns locais osinal pode ser muito fraco e em outros, a poucos metros de distância, pode ser perfeitamente nítido.

Outras considerações importantes dizem respeito a segurança quando este sistema é utilizado.Teoricamente não existe fronteiras para um sinal de rádio, logo, é possível que ele seja captado porreceptores não autorizados. Outro cuidado que deve ser tomado ao se utilizar radiodifusão como meio detransmissão é a possível interferência, provocada por fontes que geram sinais na mesma banda defreqüência da rede. Alguns outros problemas estão relacionados a interferências por razõesmeteorológicas, por exemplo, quando da utilização de infravermelho.

5.3 ASPECTOS DA TRANSMISSÃO DE DADOS

O meio de transmissão consiste geralmente de um conjunto de recursos e regras que permitem atransmissão de informação de um ponto a outro numa rede de comunicação. A transmissão a nível de bit éuma das formas mais simples de transferência de informação. Este processo é ilustrado pela figura 5.1(a),onde podemos observar os seguintes elementos:

• a fonte de informação, que pode ser um computador ou um terminal, por exemplo, quegera as informações que deverão ser transmitidas, estas sendo representadas, usualmente,por um conjunto de dígitos binários, ou bits;

• o transmissor, que é responsável da adaptação ou conversão do conjunto de informações,de bits, para sinal elétrico ou eletromagnético, adaptando-o ao meio de transmissão;

• o suporte de transmissão, encarregado do transporte dos sinais representando a informaçãoe que pode ser caracterizado por uma das técnicas apresentadas na seção precedente; é osuporte de transmissão quem realiza a “ligação física” entre os elementos envolvidos nacomunicação;

• o receptor, responsável pela reconstituição da informação a partir dos sinais recebidos viasuporte de transmissão, e que, inclusive pode ter sofrido distorções provocadas por ruídosexistentes no meio;

• o destinatário da informação, que pode ser um computador, um terminal ou outroequipamento e que vai consumir a informação gerada pelo elemento fonte.

Page 53: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 53

FONTE DEINFORMAÇÃO

BINÁRIATRANSMISSOR RECEPTORSUPORTE DE TRANSMISSÃO

RUÍDO

DESTINATÁRIODA

INFORMAÇÃOBINÁRIA

(a)

(b)

RUÍDO

SUPORTE DE TRANSMISSÃO

FONTE OU

INFORMAÇÃOBINÁRIA

DESTINATÁRIOFONTE OU

INFORMAÇÃOBINÁRIA

DESTINATÁRIOTRANSMISSOR

RECEPTOR

TRANSMISSOR

RECEPTOR

Figura 5.1 - (a) Sistema de transmissão ponto-a-ponto unidirecional; (b) modelo bidirecional.

Geralmente, a transmissão a nível de bits pode ser realizada de forma bidirecional, esta podendoainda ser realizada de forma alternada ou simultânea. Assim, a cada nó deverá estar associado umequipamento transmissor e um receptor compondo o conjunto transceptor como mostrado na figura5.1(b).

A transmissão de dados, quando realizada nos dois sentidos é denominada duplex. No caso emque ela se realiza alternadamente, ou seja, ora num sentido, ora no outro, ela se denomina half-duplex. Nocaso em que ela se realiza simultaneamente nos dois sentidos, esta será denominada full-duplex.

Os modos de transmissão caracterizam as diferentes formas como os bits de informaçãotransmitidos são delimitados e encaminhados ao longo da linha de comunicação.

No que diz respeito à forma como os bits são encaminhados ao longo de uma linha decomunicação, pode-se distinguir o modo de transmissão paralelo e o modo serial.

Na transmissão paralela, os bits são transportados simultaneamente por um suporte compostode várias linhas em paralelo. É um modo de transmissão mais adequado à comunicação entreequipamentos localizados a curtas distâncias. A ligação interna na arquitetura de computadores ou entrecomputadores e periféricos próximos são exemplos da aplicação da transmissão paralela.

Na transmissão serial, mais adequada a comunicação entre equipamentos separados por grandesdistâncias, os bits são encaminhados serialmente através de uma única linha de comunicação. Pode-seconsiderar outros parâmetros para a classificação dos modos de transmissão, como, por exemplo, o fatortempo. No caso particular das transmissões seriais, a forma de delimitar os bits pode levar em conta duasdiferentes filosofias — a transmissão serial síncrona e a transmissão serial assíncrona.

Na transmissão síncrona, os bits de dados são transmitidos segundo uma cadência pré-definida,obedecendo a um sinal de temporização (clock). O receptor, por sua vez, conhecendo os intervalos detempo permitindo delimitar um bit, poderá identificar a seqüência dos bits fazendo uma amostragem dosinal recebido.

Na transmissão assíncrona, não existe a fixação prévia de um período de tempo de emissãoentre o transmissor e o receptor. A separação entre os bits é feita através de um sinal especial comduração variável. Um caso típico de transmissão assíncrona é a transmissão de caracteres; neste caso, acada grupo de bits constituindo um caractere são adicionados bits especiais para representar o início (startbit) e final deste (stop bit). Neste tipo de comunicação, apesar de assíncrona ao nível de caracteres, ocorreuma sincronização ao nível de bit.

Um outro aspecto a ser destacado aqui é aquele da forma como os sinais são transmitidos numsuporte de comunicação, particularmente no que consiste à maneira como a banda passante do canal decomunicação é explorada.

No primeiro modo, a transmissão em banda de base (baseband), a banda passante do suportede transmissão é atribuída totalmente a um único canal de transmissão. Neste modo, os sinais sãotransmitidos através do meio de comunicação multiplexados no tempo.

No segundo modo, a transmissão em barda larga (broadband), a banda passante do suporte detransmissão é dividida num determinado número de canais de faixa de freqüência estreita, permitindo que

Page 54: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 54

estes possam então ser transmitidos utilizando uma técnica de multiplexação em freqüência. A bandapassante dos canais é normalmente definida em função da taxa de transmissão desejada e do modo demodulação empregado. Neste modo de transmissão, cada canal pode atingir uma taxa de transmissão deaté 3 Mbits/s, inferior, portanto, à transmissão em banda de base.

Page 55: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 55

Capítulo 6 - A Camada de Enlace de Dados

6.1 INTRODUÇÃO

A camada de Enlace de Dados tem por função oferecer uma forma de comunicação confiávelentre entidades da Camada de Rede. Neste capítulo veremos os mecanismos que permitem umacomunicação eficiente e confiável entre duas máquinas adjacentes, ou seja, duas máquinas que estãofisicamente conectadas através de uma canal de comunicação que funciona como um fio.

Dentre os fatores com os quais a camada de Enlace deve preocupar-se estão:• a forma como os bits provenientes da camada Física serão agrupados em quadros;• os mecanismos de detecção e correção de erros a serem implantados, uma vez que as

informações trocadas através da camada Física não são isentas de erros de transmissão,pelos fatores que já foram levantados;

• os mecanismos de controle de fluxo para limitar o volume de informação trocados entreentidades fonte e destino;

• a gestão das ligações entre as entidades de Rede.

6.2 AS CLASSES DE SERVIÇOS DE ENLACE

A camada de Enlace de Dados oferece serviços para a camada de Rede classificados em trêsprincipais categorias, estas dependendo do sistema no qual elas serão implantadas:

• serviço sem conexão e sem reconhecimento;• serviço sem conexão com reconhecimento;• serviço orientado à conexão.

Na primeira classe de serviços, a máquina fonte da informação envia os quadros de dados àmáquina destinatária e esta não envia um quadro de reconhecimento da informação recebida; além disso,não existe estabelecimento prévio de conexão e, por conseqüência, não existe liberação desta ao final dodiálogo. Se um quadro de dados é perdido no meio de transmissão como conseqüência de um ruído porexemplo, não existe nenhum mecanismo que permita solucionar o problema. Esta classe de serviços éadequada quando implantados sobre um suporte de comunicação cuja taxa de erros é muito baixa ou quea correção dos erros é prevista nas camadas superiores. Eles podem ser empregados particularmente nocaso de aplicações tempo real e em redes locais.

A segunda classe de serviços, embora ainda não defina o estabelecimento prévio de conexão,prevê a existência de quadros de reconhecimento, de modo que a máquina fonte será notificada pelamáquina destinatária da recepção do quadro previamente enviado. Um mecanismo que pode serimplantado no caso de perda do quadro — o que corresponde à não recepção do quadro dereconhecimento após um certo tempo (timeout) — é a retransmissão daquele. Num serviço sem conexão,existe a possibilidade da retransmissão de quadros provocando a recepção múltipla do mesmo quadro(duplicação de mensagem).

A terceira classe de serviços é a mais sofisticada, uma vez que ela define a necessidade doestabelecimento prévio de conexão e a liberação destas ao final do diálogo. Neste caso, cada quadroenviado é numerado e a camada de Enlace garante que cada quadro enviado será recebido, uma única vez,e que o conjunto de quadros enviados será recebido ordenado da mesma forma que foi enviado. Estaclasse de serviços oferece à camada de Rede um canal de comunicação confiável.

Os serviços orientados conexão são caracterizados por três principais etapas:

Page 56: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 56

• a etapa de estabelecimento de conexão, durante a qual são definidos todos os parâmetrosrelacionados à conexão, como por exemplo, os contadores de seqüência de quadros;

• a etapa de transmissão de dados, durante a qual são realizadas todas as trocas deinformação correspondentes ao diálogo entre duas máquinas;

• a etapa de liberação da conexão, que caracteriza o fim do diálogo e na qual todas asvariáveis e outros recursos alocados à conexão serão novamente disponíveis.

A comunicação entre as camadas de Rede e de Enlace é feita através de primitivas de serviço(request, indication, response e confirm) como já definidas na parte relativa à apresentação do modeloOSI. Um esquema permitindo demonstrar o modo de utilização das primitivas é mostrado na figura 6.1.Neste esquema, representa-se nas extremidades a camada de Rede, caracterizada pelos dois sistemasenvolvidos no diálogo (no caso, A e B) e no centro a camada de Enlace.

camada de rede camada de redecamada de enlace

request

indication

responseconfirm

sistema A sistema B

Figura 6.1 - Primitivas de serviço trocadas entre as camadas de Rede e de Enlace.

Os deslocamentos verticais das primitivas representam o tempo decorrido entre as ocorrênciasdestas. Por exemplo, no caso das primitivas de request e indication, o tempo decorrido entre o envio daprimeira pela camada de Rede do sistema A e a recepção da segunda pela camada de Rede do sistema B.

6.3 AS PRIMITIVAS DE ENLACE

O quadro a seguir apresenta as primitivas de serviço disponibilizados pela camada de Enlace domodelo OSI, tanto para o serviço orientado conexão como para o sem conexão. Nas primitivas de serviçoaqui apresentadas não são descritos os parâmetros usados quando da solicitação do serviço.

SERVIÇO ORIENTADO CONEXÃO PRIMITIVASEstabelecimento de conexão DL_CONNECT.request

DL_CONNECT.indicationDL_CONNECT.responseDL_CONNECT.confirm

Transferência de dados DL_DATA.requestDL_DATA.indication

Encerramento de conexão DL_DISCONNECT.requestDL_DISCONNECT.indication

Reinicicialização da conexão DL_RESET.requestDL_RESET.indicationDL_RESET.responseDL_RESET.confirm

Page 57: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 57

Controle de fluxo DL_FLOWCONTROL.requestDL_FLOWCONTROL.indication

SERVIÇO SEM CONEXÃO PRIMITIVASTransferência de dados DL_DATA_ACK.request

DL_DATA_ACK.indicationDL_DATA_ACK_STATUS.indication

Solicitação de resposta DL_REPLY_ACK.requestDL_REPLY_ACK.indicationDL_REPLY_ACK_STATUS.indication

Atualização de resposta DL_REPLY_UPDATE.requestDL_REPLY_UPDATE_STATUS.indication

6.4 O CONCEITO DE QUADRO

Para que o serviço seja oferecido à camada de Rede, a camada de Enlace utiliza-se dos serviçosfornecidos pela camada Física que, como já foi descrito na parte precedente, é responsável da transmissãode bits de um ponto a outro na rede de comunicação, sendo que o conjunto de bits transmitido pode sofrerdistorções produzindo erros de transmissão. Uma conseqüência típica pode ser que o número de bitsrecebidos seja inferior ao número de bits enviados ou os valores de alguns bits podem ter sidomodificados.

Com o objetivo de permitir um controle de erro eficiente, a camada de Enlace decompõe asmensagens em porções menores denominadas quadros, aos quais são adicionados códigos especiais decontrole de erro. Desta forma, o receptor pode verificar se o código enviado no contexto de um quadroindica ou não a ocorrência de erros de transmissão e ele pode, assim, tomar as providências necessáriaspara evitar as conseqüências devido àquele erro.

A delimitação dos quadros pode obedecer a diferentes políticas. Uma das políticas adotadaspode ser a contagem de caracteres. Nesta política, é introduzido um caracter especial que indica o númerode caracteres compondo o quadro. Deste modo, a nível da camada de Enlace do receptor, basta que aentidade leia este caractere e em seguida conte o número de caracteres para definir o tamanho do quadro.O inconveniente desta técnica, portanto, é o fato de que o caractere que define o tamanho do quadro podeser modificado, o que significa que o receptor vai ler, erroneamente os quadros transmitidos. A figura 6.2ilustra este problema.

5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6

contadores de caracteres

quadro1 (5 car.) quadro2 (5 car.) quadro3 (8 car.)

(a)

5 1 2 3 4 7 6 7 8 9 8 0 1 2 3 4 5 6 (b)

erro contador de caracteres

Figura 6.2 - Seqüência de caracteres: (a) sem erro; (b) com erro.

Uma técnica que apresenta uma solução a este problema consiste na adição de seqüênciasespeciais de caracteres de modo a representar o início e fim da transmissão de um quadro.

A figura 6.3 ilustra um caso relativo a esta técnica, onde as seqüências de caracteres DLE (DataLink Escape) e STX (Start of TeXt) são inseridas para representar o início de um quadro e a seqüênciaDLE e ETX (End of TeXt) para representar o fim do quadro. Esta técnica apresenta, ainda, um ponto de

Page 58: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 58

vulnerabilidade: se, dentro do texto, dado que os bits podem assumir qualquer combinação de valores,uma seqüência de bits coincide com uma das seqüências de caracteres citada, a entidade receptora nacamada de Enlace pode ser “enganada” por esta seqüência e, assim, receber erroneamente o quadro.

DLE STX A B DLE C DLE ETX

DLE STX A B DLE C DLE ETX DLE

(a)

(b)

Figura 6.3 - (a) Dados enviados pela camada de Rede com seqüências de delimitação; (b) idem, comintrodução dos caracteres de transparência.

A solução para este problema vem através da introdução, pela entidade de Enlace emissora, deum caractere DLE a cada vez que, uma seqüência de bits correspondente à parte de dados, coincidir comum caractere DLE. Desta forma, basta à entidade de dados receptora eliminar os caracteres DLE dosdados antes de transmiti-los à camada de Rede. Isto vai permitir então, às entidades receptoras de Enlace,fazer a distinção entre as seqüências delimitadoras de quadro (DLE-STX e DLE-ETX) das seqüências“acidentais” nos dados. Os caracteres DLE introduzidos a nível dos dados são denominados caracteresde transparência.

Uma técnica ainda utilizada e definida mais particularmente para a utilização em redes decomunicação é aquela em que os quadros são delimitados por uma seqüência de bits particular, mas destavez dissociados da codificação de caracteres. A seqüência 01111110 é adotada para representar adelimitação dos quadros.

De maneira análoga à utilização dos caracteres de transparência da técnica anterior, bits detransparência (ou bit stuffing) são introduzidos, antes do envio de dados, para evitar a confusão, porparte do receptor, com os delimitadores de quadro. Assim, no receptor, a cada vez que 5 bits “1”consecutivos são detectados na parte de dados, um bit 0 é adicionado após a seqüência. Do lado doreceptor, a cada vez que ocorrer uma seqüência de 5 bits “1” consecutivos de dados seguidos de um bit 0,este último será eliminado da parte de dados. A figura 6.4 ilustra a aplicação desta técnica. Em 6.4(a) sãoapresentados os dados originais e, em 6.4(b), os mesmos dados com a introdução dos bits detransparência.

bit de transparência

0 1 1 0 1 1 1 1 1 1 1 1 0 1

0 1 1 0 1 1 1 1 1 1 1 1 0 10

(a)

(b)

Figura 6.4 - (a) dados originais; (b) dados com adição do bit de transparência.

6.5 O CONTROLE DE ERRO

Os erros que por vezes ocorrem nos suportes de transmissão podem ter como causas os maisdiversos fenômenos físicos, como por exemplo, o ruído térmico, provocado pela agitação dos elétrons noscabos de cobre. Outro fenômeno importante são os ruídos impulsivos, capazes de provocar, numa linhatransmitindo dados a 9600 bit/s, a perda de 96 bits. Os ruídos impulsivos são causados pelos arcos devidoao chaveamento de relês ou outros dispositivos eletromecânicos. O que se tem notado, entretanto, é que,

Page 59: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 59

independentemente do fenômeno causador de erro, estes tendem a gerar normalmente verdadeiros pacotesde erros e não erros simples. Isto pode ter um aspecto positivo, uma vez que, num conjunto relativamentegrande de bits, um menor número de pacotes vai conter erros. Por outro lado, os erros agrupados empacotes são mais difíceis de detectar.

O controle de erros de transmissão é uma das funções mais importantes asseguradas pela camadade Enlace. Esta função é baseada na possibilidade de informação para entidade emissora da mensagem doque ocorreu na extremidade de recepção.

Os protocolos de controle de erro são caracterizados, em geral, pela definição de um quadro decontrole, correspondente a um reconhecimento positivo ou negativo. Caso a entidade emissora receba umreconhecimento positivo de um quadro previamente enviado, ela entende que aquele foi corretamenterecebido. Por outro lado, se ela recebe um reconhecimento negativo, ficará consciente que o quadro foimal transmitido e que, neste caso, ele deverá ser retransmitido.

Ainda, se, por uma intensidade relativamente forte de ruído, o quadro inteiro não é recebido pelaentidade destinatária, esta não vai reagir ao quadro emitido e a entidade emissora corre o risco de esperarindefinidamente pelo reconhecimento — isto é evitado pela adição de temporizadores, estabelecendoassim um tempo máximo de espera pelo reconhecimento, antes da retransmissão. O tempo de espera deveser determinado em função dos atrasos relativos à transmissão dos quadros, de modo que os quadros dereconhecimento, se existentes, cheguem antes do esgotamento da temporização (timeout).

Deste modo, se o quadro ou o reconhecimento são perdidos, a temporização será esgotada,podendo provocar a retransmissão do quadro. Neste caso, é possível que o quadro seja aceito mais de umavez pela camada de Enlace e transmitido à camada de Rede ocorrendo a duplicação de quadros. Paraevitar este problema, deve-se introduzir um mecanismo de distinção dos quadros a fim de que o receptorpossa separar os quadros duplicados de seus originais.

Existem praticamente duas técnicas para a correção de erro. A primeira, consiste na introdução, anível dos quadros, de informações redundantes que permitam ao receptor reconstituir os dados enviados apartir da informação recebida. A segunda técnica consiste em adicionar unicamente um conjunto deinformações redundantes o suficiente para que o receptor possa detectar a ocorrência de um erro (semcorrigi-lo) e requisitar a retransmissão do quadro. Ao primeiro tipo de informação é dado o nome decódigo corretor e ao segundo tipo de informação código detetor.

6.5.1 OS CÓDIGOS DE CORREÇÃO DE ERRO

Basicamente o uso de códigos corretores de erros permite que um erro seja detectado e, alémdisso, corrigido no destino, se necessidade de retransmissão. Estes códigos não são muito utilizados poissua implementação é cara e normalmente só conseguem corrigir erro simples. Os códigos para correçãode erros mais conhecidos são os Hamming Codes. A seguir temos um exemplo de sua utilização.

Os códigos de Hamming partem do princípio da inclusão de informações redundantes no quadropara dedução de quais e onde estão os erros. Nos códigos de Hamming, a quantidade de errosrecuperados depende do número de bits redundantes.

Seja um bloco de informações de tamanho n, onde n < 2m-1 e m é um número inteiro, quedetermina o número de “Hamming bits”. Estes serão inseridos nas posições 1, 2, 4, 8 e demais potênciasinteiras de 2 da direita para a esquerda no quadro de informação. Os bits redundantes do bloco de dadossão resultado da operação OU-EXCLUSIVO sobre o código binário da posição dos bits 1 ocorridos noquadro de informação.

Bloco a ser enviado:1 1 0 0 0 0 1 08 7 6 5 4 3 2 1

Bloco a ser enviado antes da inclusão dos Hamming bits:1 1 0 0 H 0 0 1 H 0 H H12 11 10 9 8 7 6 5 4 3 2 1

Cálculo dos Hamming bits:(1210 ⊕ 1110 ⊕ 510) ou: (01012 ⊕ 10112 ⊕ 11002) ou H = 00102

Page 60: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 60

Bloco a ser enviado com os Hamming bits já inseridos:1 1 0 0 0 0 0 1 0 0 1 012 11 10 9 8 7 6 5 4 3 2 1

Bloco recebido (com um bit errado):1 0 0 0 0 0 0 1 0 0 1 012 11 10 9 8 7 6 5 4 3 2 1

Cálculo na recepção: (H ⊕ 1210 ⊕ 510 ) ou (00102 ⊕ 11002 ⊕ 01012)= 10112,ou seja: 1110 é a posição do bit errado.

Neste exemplo houve a detecção de um erro e a informação pode ser restaurada. Se acontecessedois erros haveria a detecção sem possibilidade de correção. Com três erros nada pode ser garantido emrelação a detecção. Há também outros códigos de Hamming que usam artifícios para corrigir erros emrajada, porém o assunto foge ao escopo deste curso.

6.5.2 OS CÓDIGOS DE DETECÇÃO DE ERRO

Os códigos corretores são utilizados para as transmissão de dados em casos particulares como,por exemplo, quando os canais são unidirecionais ou quando é impossível requisitar a retransmissão deum quadro. Quando possível, porém, uma solução mais adequada é através de uma técnica de detecçãocom retransmissão por razões de eficiência.

Uma técnica bastante simples para detecção de erros é a utilização de um bit de paridadeassociado ao caracter. Esta paridade está relacionada ao número de bits 1 da palavra de dados. Se aparidade par for utilizada a palavra de dado deve conter um número par de bits 1. Se a paridade ímpar forescolhida, a palavra de dado deve conter um número ímpar de bits 1. O tipo de paridade a ser utilizadapode ser negociado porém seu uso é muito restrito pois só consegue detectar erros simples, por exemplo,não detectaria uma inversão de um número par de bits ou a inversão do próprio bit de paridade. Umatécnica derivada é a de paridade longitudinal. Ela é implementada definindo a utilização de bits deparidade para cada palavra e também uma “palavra de paridade” que forma o BCC(Block CharacterCheck). O BCC é calculado considerando o conjunto de caracteres a transmitir como uma matriz e osvalores de paridade calculados horizontalmente. A figura 6.5 ilustra este procedimento. Para transmitir apalavra CAXIAS inicialmente seriam calculados os bits de paridade de cada caracter (P). Em seguida osbits de paridade longitudinal (BCC). Os caracteres seriam transmitidos em seqüência e o BCC seriatransmitido por último.

C A X I A S BCC

6 1 1 1 1 1 1 0

5 0 0 0 0 0 0 0

4 1 0 1 0 0 1 1

3 0 1 0 0 1 1 1

2 1 1 0 1 1 0 0

1 0 1 0 0 1 0 0

0 1 0 1 1 0 0 1

P 0 0 1 1 0 1 1

Figura 6.5 – Exemplo de utilização de paridade longitudinal.

Um outro método de detecção de erros largamente utilizado é a definição de códigos de detecçãode erros polinomiais, também denominados CRC (Cyclic Redundancy Code). Nos códigos polinomiais,considera-se que os bits de uma cadeia de caracteres são os coeficientes de um polinômio, coeficientesestes, capazes de assumir apenas dois valores: 0 ou 1. Assim, um bloco de k bits é visto como uma série

Page 61: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 61

de coeficientes de um polinômio de k termos, indo de X k-1 a X 0. A palavra 110001 contém 6 bits — elarepresenta então o seguinte polinômio: x5 + x4 + x0.

A utilização de códigos de detecção polinomiais é baseada na escolha de um código especial quecaracteriza um polinômio gerador, ou G(x). Uma exigência em relação a este polinômio é que os bitsmais significativo e menos significativo (correspondendo, respectivamente aos coeficientes de mais altaordem e de mais baixa ordem do polinômio) sejam de valor 1. A técnica consiste em adicionar a um blocode dados (caracterizando um polinômio M(x)) um conjunto de bits de controle de modo que o quadro(dados + bits de controle) seja divisível por G(x). Na recepção, a entidade de Enlace efetua a divisão dosbits compondo o quadro pelo polinômio gerador. Caso o resto seja diferente de zero, é caracterizada entãoa ocorrência de um erro de transmissão.

O algoritmo para cálculo do CRC pode ser exemplificado da seguinte forma:• faça r ser o grau de G(x); acrescente r bits zero à extremidade de mais baixa ordem do

quadro, de modo que agora contenha m+r bits, e corresponda ao polinômio xrM(x);• divida o string de bits correspondente a xrM(x) pelo string de bits correspondente a G(x)

usando a divisão de módulo 2 (equivalente ao ou exclusivo);• subtrair o resto (que tem sempre r ou menos bits) do string de bits correspondente a xrM(x)

usando a subtração de módulo 2; o resultado é o quadro com CRC a ser transmitido; chameo polinômio desse quadro de T(x).

Ilustrando:• quadro a ser transmitido: 1101011011• polinômio gerador: x4 + x + 1, ou 10011• mensagem com acréscimo de 4 bits 0: 1101011011 0000• dividindo 1101011011 0000 por 10011 dá como resto 1110• quadro a ser transmitido: 1101011011 1110

Ao receber a mensagem o receptor divide-o por G(x), se houver resto na divisão, ocorreu erro natransmissão. Alguns exemplos de códigos polinomiais adotados na detecção de erros são:

• CRC-12: x12 + x11 + x3 + x2 + x + 1• CRC-16: x16 + x15 + x2 + 1• CRC-CCITT: x16 + x12 + x5 + 1• CRC-32: x32 + x26 + x23 + x22 + x16 +

O CRC-12 é usado quando o caracter tem 6 bits. Os dois seguintes são usados para caracteres de8 bits. O CRC-32 é utilizado para gerar códigos de 32 bits a serem acrescentados na mensagem de dados.Para fazer uma rápida análise da eficiência do uso deste método vejamos o exemplo a seguir: um CRC de16 bits detecta todos os erros simples e duplos, todos os erros com um número ímpar de bits, todos oserros em rajadas que tiverem um tamanho de no máximo 16 bits, 99,997% das rajadas de erros de 17 bitse 99,998% da rajadas de 18 bits, no mínimo.

Apesar do cálculo necessário para computar o checksum parecer complexo, alguns autoresmostraram que um circuito simples de registro de deslocamento pode ser criado para calcular e verificaros checksums em hardware. Na prática este tipo de circuito é quase sempre usado.

6.5.3 PROCEDIMENTOS PARA CONTROLE DE ERRO

Os três procedimentos mais usados para controlar erros no Enlace de Dados são: algoritmo dobit-alternado (stop-and-wait ou send-wait), janela n com transmissão integral (go-back-n) e janela n comretransmissão seletiva (selective repeat).

No algoritmo do bit-alternado o transmissor só envia um novo quadro quando recebe oreconhecimento do quadro enviado anteriormente. Considerando que os quadros podem ser transmitidosmais de uma vez, é necessário numerá-los para que o receptor possa distinguir quadros originais deretransmissões. Como o transmissor só envia um novo quadro depois do anterior ser reconhecido, só épreciso um bit para diferenciar quadros sucessivos. O primeiro quadro é numerado com o bit 0, o segundocomo o bit 1, o terceiro com o bit 0, e assim por diante. A figura 6.6 mostra um diagrama de estados doalgoritmo do bit alternado. Nele, o transmissor passa do estado 1 para o estado 2 quando possui dados atransmitir. No estado 2 ele envia um quadro 0 (D0), passando para o estado 3, dispara um temporizador

Page 62: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 62

(timeout) e fica aguardando a chegada do reconhecimento desse quadro (A0). Se após decorrido ointervalo de temporização o reconhecimento não chegar ou se chegar um reconhecimento de quadro 1(A1) indicando que o quadro 0 foi recebido com erro ou não chegou ao destino, o transmissor entra emestado 4, retransmite o quadro 0 e volta ao estado 3. Quando o transmissor encontra-se no estado 3 erecebe o reconhecimento do quadro 0, ele passa para o estado 5. No estado 5, quando o transmissor tiverdados para transmitir ele passa para o estado 6, envia um quadro 1 (D1), passa para o estado 7, e disparaum temporizador enquanto aguarda o reconhecimento do quadro 1. Com o transmissor no estado 7, se oreconhecimento não chegar dentro do limite de tempo do temporizador ou se ele receber umreconhecimento de um quadro 0, ele passa para o estado 8, retransmite o quadro 1 e volta para o estado 7.No estado 7, quando o transmissor recebe o reconhecimento de um quadro 1 ele passa para o estado 1.Note no diagrama que a chegada do reconhecimento negativo nos estados 3 e 7 acelera o procedimento,pois o transmissor não precisa aguardar até o fim do timeout para retransmitir o quadro perdido.

Figura 6.6 – Diagrama de estados do algoritmo do bit alternado

O receptor começa a operar no estado 1 e ao receber um quadro 0, ele passa para o estado 2,entrega os dados para o nível superior de protocolo (normalmente o nível de Rede), passa para o estado 3,envia o reconhecimento do quadro 0 e entra no estado 5. No estado 5, o receptor aguarda a chegada de umquadro 1. Se o próximo quadro que ele receber for um quadro 0, ou for um quadro defeituoso, ele passapara o estado 4, retransmite o reconhecimento de um quadro 0 e retorna ao estado 5 onde fica aguardandoa chegada de um quadro 1. No estado 5, ao receber um quadro 1, o receptor passa para o estado 6, entregao quadro ao nível superior de protocolo, vai para o estado 7, envia um quadro de reconhecimento doquadro 1 e passa para o estado 1, onde fica aguardando a chegada de um quadro 0. No estado 1, sereceber um quadro com erro ou um quadro 1, o receptor vai para o estado 8, envia novamente oreconhecimento do quadro 1 (pois foi o ultimo que recebeu corretamente) e volta para o estado 1.

A técnica do bit-alternado oferece uma solução simples porém ineficiente para o controle deerro, pois enquanto o transmissor espera por reconhecimentos o canal de comunicação não é utilizado. Afigura 6.7 ilustra esta situação.

Para aumentar a eficiência na utilização dos canais de comunicação, foram elaborados protocolosque permitem que o transmissor envie diversos quadros mesmo sem ter recebido reconhecimentos dosquadros anteriormente enviados. O número máximo de quadros, devidamente numerados, que podem serenviados sem que tenha chegado um reconhecimento define a largura da janela de transmissão. Comono protocolo do bit alternado, o transmissor fica sabendo que ocorreu um erro em um quadro por eleenviado quando seu reconhecimento não chega após decorrido um intervalo de tempo suficiente para tal.Neste caso, dois procedimentos podem ser implementados para recuperar o erro:

• retransmissão integral: todos os quadros a partir do que não foi recebido sãoretransmitidos;

• retransmissão seletiva: apenas o quadro que não foi reconhecido é retransmitido.

Para aumentar ainda mais a eficiência na utilização do canal de transmissão, em ambos os casoso receptor não precisa enviar um reconhecimento para cada quadro que recebe. O transmissor, ao recebero reconhecimento do quadro n conclui que ele, e todos os quadros enviados antes dele, foram recebidoscorretamente. A figura 6.8 ilustra estas duas estratégias.

8

4

3

2

1

5

6

7

6

7

3

2

1

8

5

4

TimeoutouRecebe A

0

Transmite D1

Dados a transmitir

Transmite D1

Recebe A1

Dados a transmitir

Transmite D0

Timeoutou

Recebe A1

Transmite D0

Recebe A0

Recebe D1

Recebe D0

Transmite A1

Transmite A0

Transmite A1

ErroouRecebe D

1

Transmite A0

Erroou

Recebe D0

Entrega dados

Entrega dados

ReceptorTransmissor

Page 63: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 63

Figura 6.7 – Controle de erro por timeout no protocolo do bit alternado

(a) Protocolo com retransmissão integral

Intervalo de timeout

0 654328765431 2

432 65 6 5743E10

10987

8 987

Quadros descartados

A1 A2 A7A5

Quadro 0

Quadro 0

Quadro 1

Quadro 1

Quadro 1

Quadro 1

ACK0

Quadro 1

Quadro 1

ACK1

ACK1ACK1

ACK1

Transmissor Receptor

T

ACK0

Intervalos deTimeout

Page 64: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 64

(b) Protocolo com retransmissão seletiva

Figura 6.8 –Protocolos de janela n com retransmissão integral ou seletiva

6.6 O CONTROLE DE FLUXO

Outra função importante da camada de Enlace de Dados é a de contornar o problema decorrentede transmissor que envia quadros mais rapidamente do que um receptor é capaz de aceitá-los. Estasituação pode ocorrer quando o transmissor está sendo executado em um computador muito rápido (ouque não esteja sobrecarregado) e o receptor está utilizando um computador lento (ou sobrecarregado).Mesmo que a transmissão não contenha erros, em um determinado ponto o receptor não mais será capazde receber os quadros e começará a perder alguns deles. Desta forma há a necessidade de mecanismosque impeçam que esta situação aconteça.

A solução mais comum é incluir algum mecanismo de controle de fluxo para que o transmissornão mais envie quadros tão rapidamente a ponto do receptor não ser capaz de recebê-los corretamente.Geralmente estes mecanismos incluem informações que devem ser enviadas do receptor para otransmissor para que este último possa saber se o receptor é ou não capaz de acompanhá-lo.

Existem diversos esquemas de controle de fluxo. No entanto, a maioria deles utiliza o mesmoprincípio básico. O protocolo contém regras bem definidas sobre quando o transmissor pode enviar oquadro seguinte. Com freqüência, essas regras impedem que os quadros sejam enviados até que o receptortenha concedido permissão para transmissão, implícita ou explicitamente. Por exemplo, quando umaconexão for estabelecida, o receptor poderá dizer: “Você está autorizado a me enviar n quadros agora,mas depois que eles tiverem sido enviados, não envie mais nada até eu dizer para continuar”.

No protocolo do bit alternado, visto na seção anterior, o próprio mecanismo de retransmissão dequadros controla o fluxo, pois um novo quadro só é enviado depois do receptor ter processado o quadroanterior e enviado um reconhecimento.

Nos protocolos com janela n maior que 1, o controle de fluxo é feito com base em quadrosespeciais e em janelas de transmissão e recepção. A utilização das janelas para controlar erros e o fluxo dequadros nesses protocolos faz com que eles sejam classificados como protocolos de janelas deslizantes(ou sliding windows).

O número máximo de quadros que o transmissor pode enviar, sem receber um reconhecimento, édeterminado pela largura (T) de sua janela de transmissão. Após ter enviado T quadros sem receberreconhecimento o transmissor suspende o envio de dados, só voltando a fazê-lo após receber umreconhecimento que, além de indicar que um ou mais quadros chegaram corretamente ao receptor, indicatambém que ele está pronto para processar novos quadros. A figura 6.9 ilustra esse esquema de controlede fluxo.

0 654328765431 2

432 65 6 5743E10

1211109

8 11109

Intervalos de timeout

Quadros descartados

A1 A8 A9A0

Quadros bufferizados

Page 65: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 65

TRANSMISSOR RECEPTOR

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4

envia um quadro recebe um quadro

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0

envia dois quadros recebe dois quadros

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2

envia um quadro recebe um quadro

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3

recebe ACK de quatro quadros recebe ACK de quatro quadros

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3

envia um quadro recebe um quadro

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4

envia três quadros recebe três quadros

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2

recebe ACK de quatro quadros recebe ACK de quatro quadros

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2

Figura 6.9 – Controle de fluxo em protocolos de janela n (n=4)

Note que, para não confundir o transmissor, se a numeração dos quadros vai de 0 a n, a janeladeve ter tamanho máximo igual a n. Por exemplo, na figura 6.9, se a janela fosse de tamanho 5 otransmissor não teria como saber se um reconhecimento de um quadro 4 é uma retransmissão doreconhecimento do quadro 4 da janela anterior ou da janela corrente.

O número máximo de quadros que o receptor pode receber, sem que nenhum deles seja entregueao nível de rede, é determinado pela largura R de sua janela de recepção. Para que um quadro possa serconfirmado sem ainda ter sido entregue ao nível de rede, quando acumula R quadros em sua memória, onível de enlace do receptor avisa ao transmissor que não está em condições de receber novos quadros,enviando-lhe um quadro especial receive-not-ready. O transmissor, ao receber este quadro, suspende oenvio de novos quadros. Quando alguns dos quadros que estavam em sua memória são entregues ao nívelde rede, o receptor envia para o transmissor um quadro especial receive-ready, liberando-o para transmitirnovos quadros.

6.7 O CONTROLE DE ACESSO AO MEIO

A estratégia adotada na elaboração dos padrões de protocolos de enlace de dados para redeslocais (IEEE 802) foi definir mais de um padrão de forma a atender aos requisitos dos sistemas usuáriosda rede. Na verdade, a arquitetura IEEE 802 pode ser vista como uma adaptação das duas camadasinferiores da arquitetura RM-OSI da ISO. Nesta arquitetura existem 3 camadas, ou seja, uma equivalenteà camada física e duas sub-camadas que juntas eqüivalem a camada de enlace. Elas são assimdenominadas:

• camada física (PHY);• sub-camada de controle de acesso ao meio (MAC);• sub-camada de controle de enlace lógico (LLC).

Para atender o modelo elaborado devemos observar que as funções de comunicação mínimas eessenciais de uma rede local, equivalentes aos níveis inferiores do RM-OSI, podem ser assim definidas:

• fornecer um ou mais SAPs (pontos de acesso ao serviço) para os usuários da rede;• na transmissão, montar os dados a serem transmitidos em quadros com campos de endereço

e códigos de redundância para detecção de erros;

Page 66: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 66

• na recepção, desmontar os quadros, efetuando o reconhecimento de endereço e detecção deerros;

• gerenciar a comunicação no enlace.

Estas quatro funções são fornecidas pelo nível de enlace do RM-OSI. A primeira função, as sub-funções a ela relacionadas, são agrupadas pelo IEEE 802 na camada Logical Link Control (LLC). As trêsrestantes são tratadas em uma camada separada, chamada Medium Access Control (MAC), que podem,então ser otimizadas para as diferentes topologias de redes locais, mantendo uma interface única, acamada LLC, para os usuários da rede local.

A sub-camada de Controle de Acesso ao Meio (MAC) especifica os mecanismos que permitemgerenciar a comunicação a nível de Enlace de Dados. Em particular, a sub-camada MAC fornece osserviços que permitem disciplinar o compartilhamento de um meio de transmissão comum aos sistemasusuários da rede. As unidades de transferência de informação ao nível da sub-camada MACcorrespondem aos quadros MAC.

A existência da sub-camada MAC na arquitetura IEEE 802 reflete uma característica própria dasredes locais, que é a necessidade de gerenciar enlaces de dados com origens e destinatários múltiplos nummesmo meio físico de transmissão, como no caso das topologias em anel e barramento. Além disso, aexistência da sub-camada MAC permite o desenvolvimento da sub-camada superior (LLC) com um certograu de independência da camada física, no que diz respeito à topologia e ao meio de transmissãopropriamente dito. Por outro lado, a própria sub-camada MAC é bastante sensível a esses elementos.

Os mecanismos de controle de acesso distribuído apresentam uma forte dependência quanto àtopologia da sub-rede de comunicação. Um resultado das diferentes características topológicas é aexistência de técnicas de controle de acesso exclusivas a uma determinada topologia. Alguns mecanismosde acesso podem ser implementados em topologias diferentes (barramento e anel) mas esta não é a regrageral.

A sub-camada de Controle de Enlace Lógico (LLC) é a camada da arquitetura IEEE 802 que seencarrega de prover às camadas superiores os serviços que permitem uma comunicação confiável deseqüência de bits (quadros) entre os sistemas usuários da rede. A especificação da sub-camada LLC prevêa existência de três tipos de serviços básicos, fornecidos à camada superior.

Um primeiro serviço oferecido pela sub-camada LLC permite que as unidades de informaçãosejam trocadas sem o estabelecimento prévio de uma conexão a nível de enlace de dados. Neste tipo deserviço não há, portanto, nem controle para recuperação de erros ou anomalias, nem controle da cadênciade transferência das unidades de dados (controle de fluxo). É suposto que as camadas superiores possuamtais mecanismos de modo a tornar desnecessária sua duplicação nas camadas inferiores.

Um segundo serviço fornecido pela sub-camada LLC consiste no estabelecimento de umaconexão a nível de enlace de dados, antes da fase de troca de dados propriamente dita, de modo aincorporar as funções de recuperação de erros, de seqüenciamento e de controle de fluxo.

O terceiro refere-se a um serviço sem conexão com reconhecimento utilizado em aplicações quenecessitam de segurança mas não suportam o overhead de estabelecimento de conexão.

6.8 ALGUNS EXEMPLOS DE PROTOCOLOS DE ENLACE

Alguns protocolos de enlace, apesar de antigos, são os mais usados e conhecidos. Todos eles sãoderivados do protocolo de enlace de dados utilizado na SNA da IBM, o SDLC (Synchronous Data LinkControl). Depois de desenvolver o SDLC a IBM o submeteu ao ANSI e à ISO para sua aceitação comopadrão nos Estados Unidos e no mundo, respectivamente. O ANSI o modificou, tornando-o conhecidocomo ADDCP (Advanced Data Communication Control Procedure), e a ISO o alterou transformando-ono HDLC (High-level Data Link Control). Depois, O CCITT adotou e modificou o HDLC e otransformou no LAP (Link Access Procedure), como parte do padrão de interface de rede X.25. Noentanto, posteriormente o CCITT modificou o padrão novamente e passou a chamá-lo LAPB, a fim detorná-lo mais compatível com uma versão posterior do HDLC. Todos estes protocolos se baseiam nosmesmos princípios, todos são baseados em bits e utilizam a técnica de inserção de bits (bit stuffing) paratransparência de dados pois utilizam uma seqüência pré-definida de bits para inicialização de quadros.Eles diferem entre si em pequenos (e irritantes!) detalhes.

Todos os protocolos orientados a bit utilizam uma estrutura de quadros similar a apresentada nafigura 6.10 a seguir.

Page 67: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 67

bits 8 8 8 ≥ 0 16 8

01111110 endereço controle dados soma de verificação 01111110

Figura 6.10 – Formato de quadro básico para protocolos orientados a bits

O campo “endereço” é utilizado para identificação do endereço de destino e, algumas vezes, paraendereço de origem e destino. No caso de linhas ponto-a-ponto, pode ser utilizado para distinguircomandos e respostas. O campo “controle” é usado para números de seqüência de quadros, confirmaçõese algumas outras finalidades. O campo “dados” deve conter os dados da camada usuária e pode ser,algumas vezes, arbitrariamente longo, embora a eficiência do checksum diminua com o aumento docomprimento do quadro devido à maior probabilidade de vários erros em rajada. O campo “soma deverificação” (ou checksum) já foi suficientemente discutida anteriormente.

Page 68: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 68

Capítulo 7 - A Camada de Rede

7.1 INTRODUÇÃO

O objetivo da camada de Rede é assegurar o transporte de unidades de dados denominadaspacotes do sistema fonte ao sistema destinatário, definindo uma trajetória apropriada. Esta trajetória podesignificar a passagem por diversos nós intermediários da rede, o que significa que a camada de Rede deveter o conhecimento de todos os aspectos topológicos da rede considerada e, com esta informação, sercapaz de escolher o melhor caminho a ser realizado por estes pacotes. Nesta escolha, é interessante queseja levado em conta o estado corrente de toda a rede, particularmente no que diz respeito ao tráfego demensagens, evitando assim a sobrecarga de certos trechos das linhas de comunicação. Ainda, se osistemas fonte e destinatário estão conectados a redes diferentes, estas diferenças devem ser levadas emconta e compensadas pela camada de Rede.

A camada de Rede é a camada mais baixa que lida com a transmissão fim-a-fim. As duasfunções essenciais da camada de Rede são roteamento e controle de congestionamento. A seguir serãoapresentadas outras funções desta camada:

• multiplexação;• endereçamento;• mapeamento entre endereços de rede e endereços de enlace;• estabelecimento e liberação de conexões do serviço de rede;• transmissão de unidades de dados do serviço de rede (pacotes);• segmentação e blocagem de SDUs/PDUs;• detecção e recuperação de erros;• seqüenciação.

Os mecanismos relacionados à funções de interconexão de redes merecerão uma parte dedicadaespecialmente para este assunto.

7.2 SERVIÇOS OFERECIDOS PELA CAMADA DE REDE

A camada de Rede oferece serviços à camada de Transporte na interface entre estas duascamadas. Geralmente esta interface tem importância especial por outra razão: costuma ser a interfaceentre a concessionária de comunicações e o cliente, ou seja, é a fronteira da sub-rede. Em geral, aconcessionária de comunicações tem o controle dos protocolos e interfaces até (e inclusive) a camada derede. Sua tarefa é entregar pacotes que recebe a seus clientes. Por isso esta interface deve serespecialmente bem definida.

Os serviços da camada de Rede foram projetados com os seguintes objetivos em mente:• os serviços devem ser independentes da tecnologia de sub-rede;• a camada de Transporte deve ser protegida contra a quantidade, o tipo e a topologia das sub-

redes presentes;• os endereços de rede que se tornaram disponíveis para a camada de Transporte devem usar

um plano de numeração uniforme, mesmo nas LANs e WANs.

Segundo a bibliografia, uma das primeiras e mais importantes discussões realizadas no que dizrespeito à concepção da camada de Rede foi a questão do tipo de serviço a ser oferecido às camadassuperiores, particularmente relacionado à existência ou não de conexão. De um lado, representado pela

Page 69: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 69

comunidade Internet, havia a alegação de que a tarefa da sub-rede é somente a de movimentar bits. Nestavisão, baseada na experiência com o uso de mais de 30 anos com uma rede ativa e real, a sub-rede éinerentemente digna de confiança, independente de como tenha sido projetada. Portanto, os hosts devemaceitar esse fato e eles próprios fazerem o controle de erros e de fluxo. Esse ponto de vista levarapidamente à conclusão de que o serviço de rede deve ser sem conexão, praticamente restrito àsprimitivas SEND PACKET e RECEIVE PACKET.

O outro lado, representado pelas companhias telefônicas, alegava que a sub-rede deve fornecerum serviço orientado a conexão confiável. Elas afirmavam que os 100 anos de experiência bem sucedidacom o sistema telefônico mundial deveriam servir como guia. De acordo com isso, as conexões devem,então, ter as seguintes propriedades:

1. Antes de enviar dados, um processo da camada de Rede do lado transmissor deveestabelecer uma conexão com seu par do lado receptor. Essa conexão, à qual é atribuído umidentificador especial, será utilizada até que todos os dados tenham sido enviados, momentoem que é explicitamente encerrada.

2. Quando uma conexão é estabelecida, os dois processos podem entrar em negociação sobre aqualidade e o custo do serviço a ser oferecido.

3. A comunicação é feita em ambas as direções, e os pacotes são entregues em seqüência.4. O controle de fluxo é fornecido automaticamente para impedir que um transmissor rápido

descarregue pacotes na rede em uma taxa mais alta do que o receptor é capaz de recebê-los,gerando overflow.

Outras propriedades, como entrega garantida, confirmação explícita de entrega e pacotes de altaprioridade são opcionais. Na verdade a grande diferença entre o serviço orientado a conexão e o nãoorientado a conexão diz respeito a complexidade. No serviço orientado a conexão, o elemento maiscomplexo é a camada de Rede; no serviço sem conexão, a complexidade fica por conta da camada deTransporte (nos hosts).

Apesar de raramente serem discutidas nestes termos, duas questões distintas estão envolvidasaqui. Primeiro, se a rede é ou não orientada a conexão, segundo se ela é confiável ou não. Numa redeconfiável não há pacotes perdidos, duplicados ou adulterados, e numa rede não confiável pode haverperda, duplicação ou adulteração de pacotes. Na teoria, as quatro combinações existem, mas ascombinações dominantes são: orientada a conexão/confiável e sem conexão/não confiável.

Essas duas opções são representadas por dois exemplo a seguir. A Internet tem uma camada derede sem conexão, e as redes ATM têm sua camada de rede orientada à conexão. Uma questão importantesurge em relação ao funcionamento da Internet quando ela é executada em uma sub-rede fornecida poruma concessionária de comunicação baseada no modelo ATM. A resposta é que o host de origemprimeiro estabelece uma conexão de camada de rede ATM com o host de destino e só depois enviapacotes independentes (pacotes IP) através dela, como mostra a figura 7.1 a seguir. Apesar de funcionar,esta estratégia é ineficiente, pois há uma mesma funcionalidade em ambas as camadas. Por exemplo, acamada de rede ATM garante que os pacotes são sempre entregues em ordem, mas o código TCP aindacontém o mecanismo completo para gerenciamento e reordenação de pacotes fora de ordem.

e-mail FTP ....

TCPIP

ATMEnlace de dados

Física

Figura 7.1 – Executando o TCP/IP em uma sub-rede ATM.

Como resultado de toda esta discussão foi a definição, a nível do modelo OSI, de duas classes deserviço, sem conexão e orientado à conexão, sendo que uma certa liberdade foi dada no sentido de sedefinir a que nível o serviço com conexão seria implantado, ou mesmo se este seria implantado. Abriu-se,assim, a possibilidade de se ter, nos diferentes níveis, as duas classes de serviço, isto sendo ilustrado pelafigura 7.2. Pode-se notar também nesta figura a possibilidade de multiplexação de conexões nestacamada.

Page 70: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 70

APLICAÇÃO

APRESENTAÇÃO

SESSÃO

TRANSPORTE

REDE

ENLACE

FÍSICA

serviço orientadoconexão

serviço semconexão

SAP

Figura 7.2 - Ilustração das classes de serviço do modelo OSI.

Os SAPs são localizados na interface entre duas camadas, permitindo que uma camada tenhaacesso aos serviços oferecidos pela camada inferior. Como se pode ver na figura, da camada de Enlacepara cima, os serviços podem ser sem ou orientados à conexão.

Uma conexão de Rede é vista, da ótica do modelo OSI, como um par de filas FIFO (FIrst InFIrst Out), cada uma orientada num sentido, conectado entre dois NSAPs (endereços de rede). A figura7.3 ilustra o estado da conexão, considerando a adoção de um serviço orientado conexão. A figura 7.3(a)ilustra o estado da conexão antes do seu estabelecimento; 7.3(b) após o estabelecimento da conexão e,7.3(c), após o envio de três pacotes de dados.

NSAPs

usuário1

usuário2

camada Rede

NSAPs

(a) (b) (c)

usuário1

usuário2

camada Redecamada Rede

NSAPs

usuário1

usuário2

Figura 7.3 - Modelo de uma conexão de Rede: (a) antes do estabelecimento; (b) após o estabelecimento;(c) após o envio de três pacotes (de 1 para 2).

7.3 ORGANIZAÇÃO INTERNA DA CAMADA DE REDE

Há basicamente duas diferentes filosofias para a organização da sub-rede, uma utilizandoconexões e a outra trabalhando sem conexão. No contexto de operação interna da sub-rede, uma conexãocostuma ser chamada de circuito virtual, em analogia com os circuitos físicos estabelecidos pelo sistematelefônico. Os pacotes usados na organização sem conexão são chamados datagrama, em uma analogiacom os telegramas.

A idéia que há por trás dos circuitos virtuais é evitar a escolha de uma nova rota para cada pacoteou célula enviada. Na verdade, quando se estabelece uma conexão, uma rota entre a máquina de origem ea máquina de destino é escolhida, como parte do estabelecimento da conexão configurada e émemorizada. Essa rota é utilizada por todo o tráfego que flui pela conexão, exatamente da mesma formaque sistema telefônico funciona. Quando a conexão é liberada, o circuito virtual também deixa de existir.

Page 71: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 71

Por outro lado, no caso de uma sub-rede de datagrama, nenhuma rota é previamente definida,mesmo que o serviço seja orientado a conexão. Cada pacote enviado é roteado independentemente deseus antecessores. Os sucessivos pacotes podem seguir diferentes rotas. Apesar das sub-redes dedatagrama terem de trabalhar mais, elas também costumam ser mais robustas e se adaptam com maisfacilidade a falhas e congestionamento do que as sub-redes de circuito virtual.

Todas as duas metodologias têm seus prós e contras. A tabela a seguir apresenta umacomparação entre as sub-redes de circuito virtual e de datagrama.

Questão Sub-rede em datagrama Sub-rede em circuito virtual

Configuração de circuitoDesnecessária Obrigatória

Endereçamento Cada pacote contém os endereçosde origem e destino completos

Cada pacote contém um pequenonúmero de circuito virtual

Informações sobreestado

A sub-rede não armazenainformações sobre o estado

Cada circuito virtual requer espaçoem tabelas da sub-rede

Roteamento Cada pacote é roteadoindependentemente

A rota é escolhida quando ocircuito virtual é estabelecido;todos os pacotes seguem essa rota

Efeito de falhas noroteador

Nenhum, com exceção dos pacotesperdidos durante falhas

Todos os circuitos virtuais quetiverem atravessado o roteador queapresentou falha serão encerrados

Controle decongestionamento

Difícil Fácil se forem alocados bufferssuficientes com antecedência paracada circuito virtual

Vale a pena assinalar explicitamente que o serviço oferecido (orientado à conexão ou semconexão) é uma questão à parte da estrutura das sub-redes (circuito virtual ou datagrama). Na teoria, todasas quatro combinações são possíveis. É claro que uma implementação de circuito virtual de um serviçoorientado à conexão e uma implementação de datagrama de um serviço sem conexão são razoáveis. Aimplementação de conexões usando datagramas também faz sentido quando a sub-rede está tentandofornecer um serviço altamente robusto. Uma comparação, através de exemplos, entre todas as quatropossibilidades pode ser analisada na tabela a seguir.

Tipo de Sub-rede

Datagrama Circuito Virtual

Sem conexãoUDPsobre

IP

UDPsobre

IP sobreATM

Orientado à conexãoTCPsobre

IP

AAL1 (ATM)sobreATM

7.4 AS PRIMITIVAS DE SERVIÇO DE REDE

O quadro a seguir apresenta as primitivas de serviço disponibilizados pela camada de Rede domodelo OSI, tanto para o serviço orientado conexão como para o sem conexão.

Page 72: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 72

SERVIÇO ORIENTADO CONEXÃON_CONNECT.request (called, calling,acks_wanted,exp_wanted,qos,user_data)N_CONNECT.indication (called, calling,acks_wanted,exp_wanted,qos,user_data)N_CONNECT.response (responder, acks_wanted,exp_wanted,qos,user_data)N_CONNECT.confirm (responder, acks_wanted,exp_wanted,qos,user_data)N_DISCONNECT.request (source, reason, user_data, responding_address)N_DISCONNECT.indication (source, reason, user_data, responding_address)N_DATA.request (user_data)N_DATA.indication (user_data)N_DATA_ACKNOWLEDGE.request ( )N_DATA_ACKNOWLEDGE.indication ( )N_EXPEDITED_DATA.request (user_data)N_EXPEDITED_DATA.indication (user_data)N_RESET.request (source, reason)N_RESET.indication (source, reason)N_RESET.response ( )N_RESET.confirm ( )

SERVIÇO SEM CONEXÃON_UNITDATA.request (source_address,dest_address, qos, user_data)N_UNITDATA.indication (source_address,dest_address, qos, user_data)N_FACILITY.request (qos)N_FACILITY.indication (dest_address, qos, reason)N_REPORT.indication (dest_address, qos, reason)

N_CONNECT.request é a primitiva utilizada para requisitar o estabelecimento de uma conexãode Rede e através de seus parâmetros deve-se indicar o endereço ao qual se deseja conectar (calling),assim como o endereço do iniciador (called). Encontra-se, ainda, nos seus parâmetros, duas variáveisbooleanas que permitem requisitar serviços adicionais.

O parâmetro acks_wanted permite indicar o pedido de reconhecimento de pacotes. Se a camadade Rede não permite o fornecimento de reconhecimento, o fornecedor vai colocar esta variável a falso naprimitiva de indicação; da mesma forma, se a entidade destinatária não pode fornecer reconhecimento, elamesma o fará (colocar acks_wanted a falso) na primitiva de resposta.

O outro parâmetro booleano, exp_wanted, permite a utilização de serviços de dados expressos(ou urgentes), o que significa que um pacote pode violar a ordem normal dos pacotes na fila para secolocar na cabeça desta. Isto permite, de certo modo, estabelecer um nível de prioridade entre asmensagens a nível de Rede.

O parâmetro QoS permite determinar a qualidade do serviço a ser oferecido, sendo composto deduas listas de valores. A primeira lista contém o contexto desejado pela entidade iniciadora; a segundaindica os valores mínimos aceitáveis. Se o serviço de Rede é incapaz de fornecer pelo menos os valoresmínimos estabelecidos pelo usuário iniciador, a conexão não será estabelecida.

Os valores estabelecidos neste parâmetro são a taxa de erro, a taxa de transmissão, aconfidencialidade e custo da transmissão.

O iniciador pode, através do parâmetro user_data, introduzir dados no pedido de conexão,podendo a entidade chamada consultar estes dados antes da aceitação da conexão.

A aceitação de uma conexão é feita pelo iniciador através da primitiva N_CONNECT.indication;por outro lado, a recusa é implementada através da primitiva N_DISCONNECT.request, que informa,através do parâmetro reason, o motivo do não estabelecimento da conexão.

Se a conexão é estabelecida, a transmissão de dados é feita utilizando a primitivaN_DATA.request, que será refletida no receptor por uma primitiva N_DATA.indication. Caso um pedidode reconhecimento de pacotes foi acertado entre os usuários da camada no momento da conexão, oreconhecimento será implementado através do envio, pelo receptor, de uma primitivaN_DATA_ACKNOWLEDGE.request.

As primitivas N_RESET são utilizadas para sinalizar problemas de comunicação, tais como obloqueio de uma entidade de transporte envolvida na comunicação ou mesmo do fornecedor do serviço. Oefeito deste serviço é o esvaziamento das filas de espera, sendo que as informações presentes nestas serãoperdidas. As perdas deverão ser recuperadas pela camada de Transporte.

Page 73: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 73

As primitivas N-UNITDATA são utilizadas para o envio de dados no serviço sem conexão; elasnão oferecem nem controle de erros nem de fluxo. N_FACILITY é o serviço que permite ao usuário obterinformações sobre as características da transmissão de informação, por exemplo, a porcentagem depacotes distribuídos.

Finalmente, a primitiva N_REPORT permite à camada de Rede informar a ocorrência deproblemas relativos ao serviço de Rede, como, por exemplo, a indisponibilidade momentânea de umdeterminado endereço destinatário.

7.5 O ENDEREÇAMENTO DE REDE

O endereçamento dos pontos de acesso ao serviço de rede (SAPs de rede) deve sercompletamente independente dos demais endereçamentos dos outros níveis de protocolo. Basicamentedois tipos de endereçamento são possíveis: o hierárquico e o horizontal.

No endereçamento hierárquico o endereço é constituído de acordo com os endereçoscorrespondentes aos vários níveis de hierarquia de que faz parte. Um exemplo comum é um endereço deSAP de rede formado pelo número da rede a que pertence, pelo número da estação dentro dessa rede epelo número da porta associada. O protocolo IP da Arpanet é um exemplo de utilização de endereçohierárquico, onde a identificação de um SAP de rede (único por estação) é formada pelo endereço da redee pelo endereço da estação.

O endereço hierárquico é também o método sugerido pelo ITU-T, através da recomendaçãoX.121, para interconexão de redes públicas de pacotes. Nessa recomendação os endereços são decimaisformados por três campos: um código do país (três dígitos), um código para a rede (um dígito – nomáximo dez redes) e um campo para o endereçamento dentro da rede (dez dígitos).

No endereçamento horizontal, os endereços não têm relação alguma com o lugar onde estão asentidades dentro da rede. Um exemplo comum desse tipo de endereçamento seriam os endereçosglobalmente administrados, constituídos pelo número de assinatura do usuário, como utilizados pelopadrão IEEE802.

Considerações sobre o roteamento parecem indicar vantagens na utilização de endereçoshierárquicos, uma vez que estes contém informações explícitas sobre o local onde se localizam asentidades, informações que podem ser usadas quando necessário. Já o endereço horizontal, por serindependente da localização, vai facilitar os esquemas de reconfiguração por permitir uma mobilidade dasentidades sem renumeração das mesmas.

O mapeamento do endereço de um SAP de rede em um endereço de sub-rede (muitas vezes oendereço no nível de enlace se a rede não possui a subcamada de acesso à sub-rede do RM-OSI) para oenvio de pacotes é uma tarefa a ser resolvida pelo nível de rede (subcamada dependente da sub-rede).Existem duas técnicas usuais para essa conversão: resolução através de mapeamento direto e resoluçãoatravés de vinculação dinâmica.

No mapeamento direto, a estação sabe como computar, de modo eficiente, o endereço de sub-rede, através de uma função que mapeia o endereço inter-redes no endereço de sub-rede. Por exemplo,suponha o caso do endereçamento hierárquico onde o campo de endereço de estação correspondeexatamente ao endereço da estação no nível da sub-rede. Neste caso a conversão é trivial. Conversõesmais complicadas podem ser realizadas através de tabelas de conversão e técnicas de acesso rápido a estastabelas.

Para evitar o uso de tabelas de conversão, uma vinculação dinâmica pode ser efetuada entre oendereço da inter-rede e o endereço da sub-rede, através da utilização de algum protocolo de resolução.Por exemplo, suponha o caso extremo onde a cada comunicação é enviada uma mensagem a toda a inter-rede, argüindo o endereço de sub-rede correspondente ao SAP de rede do destino. A estação de destinoresponderia à requisição enviando seu endereço de sub-rede, possibilitando ao SAP de rede de origemrealizar a comunicação.

Uma questão, neste caso é: uma vez que se está enviando uma mensagem por difusão argüindo oendereço de sub-rede, por que não enviar diretamente os dados por difusão? A razão vem do fato de que arealização de difusão toda vez que se quer enviar um pacote, é muito custosa, em termos de tráfegogerado na rede e de processamento que cada estação tem que realizar, quer o pacote seja destinado a elaou não. Para reduzir esses custos, as estações mantêm em memória cache os endereços de sub-rederecentemente requeridos e sua vinculação com os endereços dos SAPs de rede, de forma a não ter derealizar o protocolo de resolução a todo pacote transmitido.

Page 74: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 74

7.6 A FUNÇÃO DE ROTEAMENTO

Como dito na parte introdutória, a função principal da camada de Rede é efetuar oencaminhamento dos pacotes trocados entre duas entidades oferecendo uma comunicação fim-a-fim.Durante a trajetória os pacotes sofrerão uma série de saltos, sendo que a decisão de que caminho utilizar éfeita a nível da camada de Rede, esta decisão podendo levar em conta (ou não) a situação da rede doponto de vista do tráfego de informação. Pode-se distinguir os diferentes algoritmos de roteamento emduas principais classes: os algoritmos adaptativos e não adaptativos (ou de rota fixa). Os algoritmosnão adaptativos não levam em conta a situação de tráfego da rede, fazendo o denominado roteamentoestático, já os adaptativos o fazem, considerando modificações de topologia da rede e do tráfego real, ouroteamento dinâmico. A implementação do roteamento exige uma estrutura de dados que informe ospossíveis caminhos e seus custos, a fim de que se possa decidir qual o melhor caminho.

No encaminhamento não adaptativo, a tabela de roteamento, uma vez criada, não é maisalterada. As rotas são fixas e caminhos alternativos são tomados somente em caso de falhas. Esse métodotem a vantagem de ser bastante simples, mas em geral leva à má utilização dos meios de comunicação, anão ser que o tráfego da rede seja bem regular e bastante conhecido.

Um exemplo de roteamento estático é o flooding (ou inundação). Neste algoritmo cada pacote deentrada é enviado para todas as linhas de saída, exceto para aquela em que chegou. Este mecanismoobviamente gera muitos pacotes duplicados e alguma técnica deve ser empregada para amortecer esteprocesso. Uma das técnicas consiste em descartar o pacote depois que ele já percorrer um númeromáximo de roteadores em seu caminho.

Já no encaminhamento adaptativo, a rota é escolhida de acordo com a carga na rede. Nas tabelasde rotas são mantidas informações sobre o tráfego (como por exemplo o retardo sofrido em umdeterminado caminho), que são consultadas para a escolha do caminho mais curto (por exemplo, o demenor atraso). As tabelas devem ser periodicamente atualizadas, podendo tal atualização ser realizada devários modos:

• No modo isolado a atualização é realizada com base nas filas de mensagens para os diversoscaminhos e outras informações locais.

• No modo distribuído, cada nó envia periodicamente aos outros nós, incluindo osroteadores, as informações locais sobre a carga da rede. Essas informações são utilizadaspara o cálculo da nova tabela.

• No modo centralizado cada nó envia a um ponto central da rede as informações locaissobre a carga. Essas informações são utilizadas pelo ponto central para o cálculo das novastabelas, que são então enviadas aos roteadores e demais nós.

Devemos nos ater agora a definição de caminho mais curto. Existem várias formas de medir o“comprimento” do caminho. Uma forma é o número de saltos, isto é, o número de nós intermediáriospelos quais deve passar o pacote até chegar ao destino. Outra medida é a distância geográfica. Ainda outramedida poderia ser o retardo de transferência do pacote. Nesse caso o caminho mais curto seria, naverdade, o caminho mais rápido.

Existem muitos algoritmos de roteamento descritos na literatura, porém seria exaustivo analisarcada um deles. Sendo assim, a seção a seguir discute dois algoritmos de roteamento existentes.

7.6.1 ALGORITMO DO CAMINHO MAIS CURTO

Este algoritmo é baseado numa representação da sub-rede na forma de um grafo, onde os nós sãoos IMP e os arcos são as linhas de comunicação. A escolha de uma trajetória é, então, baseada nestegrafo, e o objetivo é encontrar o caminho mais curto entre dois IMPs.

Conforme já mencionado anteriormente, o conceito de caminho mais curto pode levar em contadiferentes aspectos, por exemplo:

• o número de nós entre os dois pontos;• a distância geográfica entre os pontos;• os tempos de espera em cada nó da trajetória.

No terceiro caso, por exemplo, os arcos são etiquetados com um valor que representa o tempomédio de espera entre o envio e a recepção de um pacote de teste, expedido periodicamente.

Page 75: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 75

Um exemplo de algoritmo do caminho mais curto é aquele definido por Dijkstra, onde cada nó éetiquetado pela distância do nó fonte seguindo o caminho mais curto conhecido. Como, inicialmente,nenhum caminho é conhecido, os nós são etiquetados com a etiqueta “infinito”, ou “....”. Estas vão sendoatualizadas à medida que o algoritmo progride e que os caminhos vão se tornando conhecidos. Asetiquetas vão indo do provisório ao permanente uma vez que o caminho mais curto foi encontrado para osdiferentes nós.

A figura 7.4 ilustra o funcionamento deste algoritmo. Vamos considerar o grafo apresentado em7.4(a), onde os arcos são etiquetados com o valor da distância entre os nós. Vamos considerar que oobjetivo aqui é encontrar o caminho mais curto entre A e D.

Como o nó A é o nó de origem, ele será marcado por um nó de referência (fundo cinza) e serãoanalisados os nós adjacentes. Estes serão etiquetados pela distância que os separa de A, marcandotambém, na etiqueta, o último nó a partir do qual o cálculo foi feito.

Após a análise dos nós adjacentes a A, marca-se aquele contendo a etiqueta de menor valor,como mostrado em 7.4(b), este nó passando a ser o nó ativo (ou de referência).

Repetindo a análise para o nó B, define-se o nó E como sendo o novo nó ativo, mostrado em7.4(c). O algoritmo vai progredindo até que o caminho mais curto seja então encontrado, as etiquetassendo modificadas segundo as análises efetuadas. A progressão do algoritmo para o exemplo é ilustradapor 7.4(d), 7.4(e) e 7.4(f).

2

6 1

2

7

2

4 2

3 3

2

A

B

G

E F

C

H

D A

B (2,A)

G (6,A)

E ( ,-)F ( ,-)

C ( ,-)

H ( ,-)

D ( ,-)

(a) (b)

(c) (d)

(e) (f)

A

B (2,A)

G (6,A)

E (4,B)

F ( ,-)

C (9,B)

H ( ,-)

D ( ,-) A

B (2,A)

G (5,E)

E (4,B)F (6,E)

C (9,B)

H ( ,-)

D ( ,-)

A

B (2,A)

G (5,E)

E (4,B)F (6,E)

C (9,B)

H (9,G)

D ( ,-) A

B (2,A)

G (5,E)

E (4,B)F (6,E)

C (9,B)

H (8,F)

D ( ,-)

Figura 7.4 -Ilustração do algoritmo de Dijkstra.

7.6.2 ROTEAMENTO MULTICAMINHOS

Este algoritmo leva em conta a possibilidade de existência de diversos caminhos entre dois nósde valores quase equivalentes. Desta forma, o desempenho da rede pode ser melhorado, se o tráfego éassumido por vários caminhos, reduzindo assim a carga de uma dada linha de comunicação.

Esta técnica de roteamento é implantada da seguinte forma: cada IMP mantém atualizada umatabela com uma linha para cada IMP da rede. Para cada IMP, tem-se as diferentes linhas de saída paraeste destino, classificadas em ordem decrescente, do melhor ao menos eficiente, com um peso relativo.

Page 76: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 76

Antes do envio de um pacote, o IMP gera um número aleatório para definir o caminho,utilizando os pesos como probabilidade. As tabelas são criadas de maneira estática pelo administrador dosistema e carregadas em cada IMP na inicialização da rede. O grafo da figura 7.5(a) ilustra odesenvolvimento deste algoritmo, sendo que em 7.5(b) está apresentada a tabela para o nó J. Se J recebeum pacote destinado a A, ele pode optar por um dos três caminhos, consultando a tabela na linhaassociada ao nó A. A primeira escolha é o caminho direto a A, as outras sendo via I e H, respectivamente.

A decisão é, então, baseada na geração de um número aleatório entre 0,00 e 0,99. Se o número éinferior a 0,63, a linha A será escolhida, se estiver entre 0,63 e 0,83, a linha passando por I será escolhida;senão, será a linha que passa por H.

A vantagem desta técnica sobre a anterior é a possibilidade de definir diferentes classes detráfego sobre diferentes caminhos. Uma outra vantagem é a confiabilidade ganha, uma vez que váriaslinhas podem ser perdidas sem que a rede perca a sua conectividade.

A B C D

E F G H

I J K L

A A 0,63 0,21 0,16I H

B A 0,46 0,31 0,23H I

C A 0,34 0,33 0,33I HD H 0,50 0,25 0,25A I

E A 0,40 0,40 0,20I H

F A 0,34 0,33 0,33H I

G H 0,46 0,31 0,23A KH H 0,63 0,21 0,16K A

I I 0,65 0,22 0,13A H

· · · · ·· ·

K K 0,67 0,22 0,11H A

L K 0,42 0,42 0,16H A

(a) (b)

Figura 7.5 - Ilustração do algoritmo multicaminho: (a) grafo da rede; (b) tabela para o nó J.

7.7 O CONTROLE DE CONGESTIONAMENTO

Durante o funcionamento de uma aplicação distribuída construída sobre uma rede, vão existirinstantes em que o fluxo de mensagens sendo trocadas pode atingir valores bastante grandes, de tal formaque os nós intermediários, responsáveis do tratamento dos pacotes, não sejam mais capazes de tratar ospacotes para retransmissão. Isto, naturalmente, vai ter como conseqüência uma degradação nofuncionamento da rede, podendo trazer prejuízos (lentidão, perdas de pacotes) ao desempenho daaplicação, comprometendo o seu correto funcionamento. As causas desta sobrecarga, conhecida porcongestionamento, podem ser de várias naturezas. Um exemplo disto pode ser a lentidão dos nós narealização do roteamento ou um mal funcionamento do mecanismos de controle de fluxo.

O congestionamento consiste, normalmente, de um processo a realimentação positiva, o númerode mensagens tendendo a crescer se a rede está congestionada. Sendo assim, a camada de Rede devetambém fazer este papel, através da implementação de funções de controle de congestionamento, algumasdas quais serão descritas a seguir.

7.7.1 A PRÉ-ALOCAÇÃO DE BUFFERS

Uma primeira forma de controlar o congestionamento da rede é através da pré-alocação debuffers, particularmente se o serviço é orientado à conexão. Isto significa que, no momento doestabelecimento do circuito virtual que vai caracterizar a conexão, um determinado número de buffers

Page 77: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 77

deve ser alocado em cada nó para permitir o armazenamento dos pacotes a serem retransmitidos poraquele circuito virtual.

Evidentemente, o número de buffers a ser alocado vai depender do protocolo implementado entrecada par de nós intermediários (IMPs). Um algoritmo do tipo “envia-espera” vai exigir um número debuffers evidentemente menor do que um algoritmo que autorize o envio de diversos pacotes antes daretransmissão.

7.7.2 A DESTRUIÇÃO DE PACOTES

Um outro mecanismo que é adotado para o controle de congestionamento é o da destruição depacotes. Neste caso, não existe reserva prévia de buffers, de modo que, se um pacote chega num IMP eeste não dispõe de buffer para o seu armazenamento, este é simplesmente destruído (ou descartado). Se oserviço oferecido é do tipo “datagrama”, não há mais nada a fazer; por outro lado, se este é orientado àconexão, o pacote deverá ser armazenado em algum nó para uma possível retransmissão. Ainda, adestruição de pacotes deve seguir uma certa disciplina, por exemplo, destruir um pacote dereconhecimento pode não ser uma boa solução, uma vez que este pacote poderia permitir ao nó oapagamento de um pacote de informação e, por conseqüência, a liberação de um buffer. Uma solução paraisto é a reserva, para cada linha de chegada, de um buffer que possibilite a recepção de pacotes dereconhecimento endereçados àquele nó.

7.7.3 O CONTROLE DE FLUXO

O controle de fluxo consiste em outra técnica de controle de congestionamento, embora nãomuito eficiente nesta tarefa. O problema do controle do fluxo é o fato que os limites do tráfego nãopodem ser estabelecidos em valores muito baixos, pois isto pode provocar problemas de eficiência naaplicação se um pico de tráfego é necessário. Por outro lado, a escolha de um limite alto de tráfego poderesultar num controle medíocre de congestionamento.

7.7.4 OUTRAS TÉCNICAS

Outras técnicas de controle de congestionamento são ainda implementadas, como por exemplo:• o controle isarítmico, baseado na existência em cada nó de um certo número de fichas. O

nó que tiver um pacote a transmitir, deve obter uma ficha, se existir alguma disponível. Istopermite manter constante o número de pacotes em circulação na rede;

• os pacotes de estrangulamento, enviados por um nó ao usuário do serviço de rede,indicando que determinadas linhas de saída estão no limite da saturação. Isto faz com que ousuário reduza o envio de pacotes para o destino utilizando aquela linha até que a situaçãoretome a normalidade.

7.8 LIGAÇÕES INTER-REDES

Até aqui temos visto como resolver problemas de interconexão entre equipamentos dentro deuma mesma rede. No entanto isto nem sempre acontece. Muitas vezes a necessidade de comunicaçãoentre máquinas que estão em redes diferentes, incluindo ai LANs, MANs e WANs. Diversos protocolosestão sendo utilizados em cada camada, ou sejam, ter várias redes significa ter protocolos diferentes.Veremos agora rapidamente um pouco dos problemas e soluções quando duas ou mais redes se juntampara formar uma inter-rede.

Parece claro que sempre haverá uma variedade de redes com características e protocolosdistintos por vários motivos:

1. A base instalada dos diferentes tipos de rede é grande e cada vez maior.2. Com o barateamento dos computadores e das redes as decisões e escolhas passam a ser

tomadas nos níveis mais baixos da hierarquia de uma organização.

Page 78: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 78

3. Os diferentes tipo de redes têm tecnologias muito diferentes.

Desta forma, considerando a grande diversidade de redes instaladas hoje e que necessitam serinterligadas, usaremos alguns exemplos para demonstrar alguns tipos de necessidade de interconexãoentre tipos diferentes de redes:

• LAN-LAN: dois professores de diferentes departamentos de uma universidade que usamredes locais com diferentes tecnologias;

• LAN-WAN: um professor de uma universidade que envia uma mensagem de correioeletrônico para um outro professor que trabalha em um laboratório fora a área do campus;

• WAN-WAN: dois poetas trocando sonetos;• LAN-WAN-LAN: professores de diferentes universidades se comunicando.

Numa definição bastante simplificada, para interconectar redes diferentes seria necessário ainserção de uma “caixa preta” para realizar as conversões necessárias à medida que os pacotes sãotransferidos de uma rede para outra. O nomes dados para estes equipamento de conversão dependebasicamente da camada em que ele atua. Apesar de haver muitas controvérsias em relação a estaterminologia, alguns nomes comuns para estes equipamentos são:

• Repetidor (repeater): atua na camada física e sua função é somente copiar bits individuaisentre segmentos de cabo;

• Ponte (bridge): atuam na camada de enlace de dados e sua função é armazenar e remeterquadros de enlace de dados entre LANs;

• Roteador (router): atuam na camada de rede, são muitas vezes chamados roteadoresmultiprotocolo e encaminham pacotes entre diferentes redes;

• Comporta (gateway): eles atuam acima da camada de transporte e permitem a ligação inter-redes acima desta camada.

É bom lembrar que o termo “gateway” é muito utilizado na literatura para designar qualquerequipamento de interconexão entre redes distintas. Outra característica importante é que as pontes e osroteadores, apesar de atuarem em camadas diferentes, têm funcionalidade similar. Muitos dispositivosexistentes no mercado combinam a funcionalidade de uma ponte com a de um roteador. Estesequipamentos são por vezes chamados de brouter (bridge+router).

Page 79: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 79

Capítulo 8 - A Camada de Transporte

8.1 INTRODUÇÃO

A função da camada de Transporte é permitir a transferência de informações do sistema emissorao sistema receptor de forma confiável e econômica, independentemente da natureza da informação oudas redes suportando a comunicação.

A importância dos serviços fornecidos por esta camada está no fato que muitas aplicaçõesexistentes podem funcionar simplesmente com a existência de um serviço confiável de transporte deinformação, o que quer dizer que os serviços que poderiam ser fornecidos pelas camadas superiores sãodispensáveis. Um exemplo disto é a interconexão de estações no sistema UNIX.

Neste capítulo serão apresentadas as principais definições relacionadas aos serviços e protocolosde transporte, particularmente do ponto de vista do modelo OSI.

8.2 SERVIÇOS OFERECIDOS PELA CAMADA DE TRANSPORTE

Segundo o modelo OSI, os usuários da camada de Transporte são as entidades de Sessão, àsquais deve ser oferecido o serviço confiável de transporte dos bits de informação fim-a-fim, este serviçosendo fornecido através de uma entidade de software ou de hardware denominada entidade de transporte.

De maneira similar à camada de Rede, a de Transporte pode fornecer dois tipos de serviço, ouseja, sem conexão e orientados à conexão. Os serviços de Transporte orientados à conexão sãocaracterizados pelas três etapas já descritas para outros níveis do modelo OSI, isto é, estabelecimento deconexão, transferência de dados e liberação da conexão.

Estes serviços são bastante similares aos serviços oferecidos pela camada de Rede, o que poderiacolocar em dúvida a necessidade desta camada. No entanto, a sua existência se justifica pela necessidadede serviços de supervisão da camada de Rede do ponto de vista das entidades efetivamente envolvidas nacomunicação. Uma supervisão fim-a-fim entre as aplicações, uma vez que, até o nível Rede, ascomunicações se fazem ponto-a-ponto, a nível de sub-rede de comunicação.

Outra contribuição importante da camada de Transporte é que ela permite a utilização deprimitivas de serviço padrão pelas diversas aplicações construídas sobre a rede efetuando um perfeito“isolamento” em relação às camadas superiores e tornando transparentes as possíveis alteraçõestecnológicas que poderiam ocorrer nos níveis inferiores. Por esta razão, costuma-se fazer uma distinçãoentre os níveis de 1 a 4 e os de 5 a 7. Os primeiros quatro níveis seriam mais orientados ao transporteefetivo das informações e os três níveis superiores, mais orientados às aplicações que serão construídassobre a rede.

Poderíamos sintetizar o serviço fornecido pela camada de Transporte como de supervisor daqualidade de serviço oferecido pela camada de Rede. Isto significa que, se a camada de Rede é confiável,a camada de Transporte não terá muito a fazer.

Por outro lado, se o serviço de Rede é deficiente, a camada de Transporte assume a função desuprir as diferenças entre a qualidade de serviço que a camada de Sessão necessita e aquilo que a camadade Rede pode oferecer.

Para isto, o conceito de qualidade de serviço (QOS para Quality Of Service) é um aspectoimportante na concepção da camada de Transporte, baseado sobre um certo conjunto de parâmetros, entreos quais destacam-se:

• retardo no estabelecimento de uma conexão;• probabilidade de falha no estabelecimento da conexão;

Page 80: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 80

• desempenho (throughput);• retardo de trânsito;• taxa de erros residuais;• proteção;• prioridade;• resiliência.

O retardo no estabelecimento de uma conexão é o tempo decorrido entre a solicitação de umaconexão de transporte e o recebimento de sua confirmação pelo usuário do serviço de transporte. Nessacaracterística também está incluído o retardo do processamento na entidade de transporte remota. Aexemplo de todos os parâmetros que medem retardo, quanto menor o retardo, melhor o serviço.

A probabilidade de falha no estabelecimento da conexão é a possibilidade da conexão não seestabelecer dentro de um período máximo estabelecido devido a, por exemplo, um congestionamento narede, à falta de espaço de tabela em algum lugar ou a outros problemas internos.

O parâmetro desempenho (throughput) calcula o número de bytes de dados do usuáriotransmitidos por segundo durante um determinado intervalo de tempo. Ele é medido separadamente paracada direção de fluxo.

O retardo de trânsito calcula o tempo transcorrido desde o envio de uma mensagem pelo usuáriode transporte da máquina de origem até seu recebimento pelo usuário de transporte da máquina destino. Aexemplo do throughput, cada direção do transporte é analisada separadamente.

A taxa de erros residuais calcula o número de mensagens perdidas ou corrompidas em umaporcentagem do total enviado. Na teoria, a taxa de erros residuais deveria ser zero, pois o trabalho dacamada de transporte é esconder os erros da camada de rede. Na prática, essa taxa pode apresentar umvalor baixo finito.

O parâmetro proteção oferece uma forma de o usuário de transporte especificar seu interesse nofato da camada de transporte fornecer proteção contra a leitura, ou a modificação, de dados por parte deterceiros.

O parâmetro prioridade oferece ao usuário de transporte um modo de indicar que algumasconexões são mais importantes do que outras e, em caso de congestionamento, garantir que as conexõesde maior prioridade sejam atendidas primeiro.

Por fim, o parâmetro de resiliência oferece à camada de transporte a probabilidade de finalizaruma conexão espontaneamente devido a problemas internos ou congestionamento.

No momento do pedido de um estabelecimento de conexão, o usuário do transporte que estásolicitando a conexão encaminha os seus parâmetros desejados de QoS nas primitivas de serviço. Se acamada de Transporte julga certos parâmetros longe da realidade, ela pode sinalizar isto ao usuárioiniciante, sem mesmo ter tentado estabelecer a conexão, através de uma mensagem de erro que vai,também, indicar a natureza do erro sinalizado.

Outra possibilidade é a camada de Transporte julgar que um certo valor para um parâmetro sejaimpossível de ser oferecido mas que um valor não muito longe daquele poderia ser oferecido. Neste caso,ela pode modificar os valores dos parâmetros enquadrados e encaminhar o pedido de conexão à máquinaremota.

Ainda, se a máquina distante verifica que ela não pode oferecer determinados valoresespecificados nos parâmetros do pedido, ela pode modificar também aqueles parâmetros. Se ela verificanão poder determinados parâmetros nos valores mínimos permitidos, neste caso ela vai rejeitar a conexão.

Esse procedimento é chamado negociação de opção (option negotiation). Uma vez negociadasas opções serão mantidas durante toda a conexão. Muitas concessionárias de serviços de rede tendem acobrar mais caro por serviços de melhor qualidade para evitar que os seus clientes fiquem obcecados poresses detalhes.

8.3 AS PRIMITIVAS DE SERVIÇO DE TRANSPORTE

As primitivas de serviço de Transporte do modelo OSI são apresentadas no quadro a seguir,existindo para os serviços orientados conexão e sem conexão.

Page 81: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 81

SERVIÇO ORIENTADO CONEXÃOT_CONNECT.request (called, calling,exp_data,qos,user_data)T_CONNECT.indication (called, calling, exp_data,qos,user_data)T_CONNECT.response (qos, responder, exp_data, user_data)T_CONNECT.confirm (qos, responder, exp_data, user_data)T_DISCONNECT.request (user_data)T_DISCONNECT.indication (reason, user_data)T_DATA.request (user_data)T_DATA.indication (user_data)T_EXPEDITED_DATA.request (user_data)T_EXPEDITED_DATA.indication (user_data)

SERVIÇO SEM CONEXÃOT_UNITDATA.request (called, calling,qos,user_data)T_UNITDATA.indication (called, calling,qos,user_data)

Como podemos ver, as primitivas de serviço de Transporte se assemelham bastante àquelas doserviço de Rede. Existe, porém, uma diferença fundamental entre os dois níveis.

No caso do nível Rede, considera-se que o serviço oferecido corresponde ao funcionamento realdo sistema, representando inclusive suas falhas. Desta forma, podem ocorrer perdas de pacotes ou aemissão de comandos N_RESET de sua própria iniciativa.

Já no caso do nível Transporte, os comandos N_RESET não são propagados aos usuários (ascamadas superiores), uma vez que o objetivo principal desta camada é o tratamento de todos os problemasde comunicação evitando que os usuários do serviço tomem conhecimento das más condições defuncionamento da rede de comunicação (se tal é o caso!).

Uma outra diferença entre os dois serviços são os usuários destes. No caso do serviço de Rede,os usuários são as entidades de Transporte, normalmente elementos associados ao sistema operacionalconsiderado ou a uma carta específica instalada nos sistemas. Já os usuários do serviço de Transportepodem ser programas escritos pelos programadores de aplicações, uma vez que, como já foi dito, muitasaplicações podem comunicar-se diretamente através do uso direto das primitivas de serviço de Transporte(não fazendo uso dos serviços de Sessão ou de Apresentação).

As possíveis relações entre as primitivas de serviço da camada de Transporte são apresentadas nafigura 8.1. As duas extremidades das ilustrações caracterizam os usuários do serviço de Transporte, ofornecedor sendo representado pelo espaço separando os dois usuários.

Em 8.1(a) é ilustrada um estabelecimento normal de conexão, onde o usuário da esquerda enviauma primitiva T_CONNECT.request à camada de Transporte. O usuário da direita vai receber então umaprimitiva T_CONNECT.indication, cujos parâmetros vão conduzir os valores, particularmente, daqualidade de serviço a serem negociados. Este aceita o estabelecimento da conexão, retornando à camadade Transporte uma primitiva T_CONNECT.response, que será refletida, via serviço de Transporte, nousuário da esquerda na forma de uma primitiva T_CONNECT.confirm. A figura 8.1(b) apresenta umatentativa de estabelecimento de conexão, rejeitada, porém, pelo usuário da direita, que utiliza asprimitivas de serviço T_DISCONNECT.request e T_DISCONNECT.indication para sinalizar a rejeição.O caso é similar na figura 8.1(c), porém, desta vez, é o próprio fornecedor do serviço de Transporte quemrejeita a conexão, enviando uma primitiva T_DISCONNECT.indication ao usuário da esquerda. No quediz respeito à liberação da conexão, pode-se considerar três diferentes maneiras: a primeira, ilustrada em8.1(d), considera o caso em que a liberação é iniciada por um dos usuários (no caso o da esquerda). Aconexão é liberada no momento em que o usuário da direita recebe uma primitivaT_DISCONNECT.indication, reflexo da primitiva T_DISCONNECT.request emitida pelo usuário queiniciou a liberação.

Em 8.1(e) é considerado o caso em que os dois usuário iniciam, simultaneamente, a liberação daconexão, neste caso, a conexão é liberada sem a emissão de outras primitivas de serviço; finalmente, em8.1(f), a liberação é iniciada pelo próprio serviço de Transporte, que vai emitir primitivasT_DISCONNECT.indication aos dois usuários conectados. Já as figuras 8.1(g) e 8.1(h), representam,respectivamente, a etapa de transferência de dados, para dados normais e expressos.

Page 82: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 82

T_CONNECT request

T_CONNECT indication

T_CONNECT response

T_CONNECT confirm

T_CONNECT request

T_CONNECT indication

T_DISCONNECT request

T_DISCONNECT indication

T_CONNECT request

T_DISCONNECT indication

(a) (b) (c)

T_DISCONNECT request

T_DISCONNECT indication

T_DISCONNECT request T_DISCONNECT

indication

(d) (e) (f)

T_DISCONNECT request T_DISCONNECT

indication

T_DATA request

T_DATA indication

(g) (h)

T_EXPEDITED_DATA request

T_EXPEDITED_DATA indication

Figura 8.1 - As diversas interações entre as primitivas de serviço de Transporte.

Um diagrama de estados para o estabelecimento e encerramento de uma conexão com primitivassimples é mostrado na figura 8.2. Cada transição é acionada por algum evento, por uma primitivaexecutada pelo usuário de transporte local ou por um pacote que chega. Para simplificar, o diagramaassume que cada TPDU é confirmada separadamente e que um modelo de desconexão simétrica estásendo usado, com o cliente dando início ao procedimento.

8.4 OS PROTOCOLOS DE TRANSPORTE

Como definido pelo modelo OSI, o serviço oferecido por uma camada N é o resultado daimplementação de um protocolo N regendo a comunicação entre duas entidades N. Em princípio, osprotocolos de Transporte apresentam preocupações similares à dos protocolos de Enlace, ou seja, ocontrole de erros, o controle de fluxo, o seqüenciamento dos dados.

No entanto, algumas diferenças podem ser levantadas:• no caso da camada de Enlace, dois IMPs comunicam-se via um canal de comunicação; a

nível de Transporte, a comunicação é feita via uma sub-rede;• no que diz respeito ao endereçamento, a nível de Enlace, um IMP não necessita referir-se

explicitamente com qual IMP ele quer dialogar, uma vez que dois IMPs são conectados poruma via única; já no nível Transporte, o endereço do destinatário deve ser explicitamentedefinido;

• um outro problema é a questão do controle de fluxo; ao contrário do nível de Enlace, ondecada conexão pode alocar um determinado número de buffers para o armazenamento dosquadros, no nível Transporte isto fica mais difícil dado o número de conexões que podeestar sendo gerenciado num dado instante.

Page 83: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 83

Figura 8.2 – Diagrama de estados para um mecanismo gerenciamento de conexão simples.

Um aspecto a ser levado em conta no momento da concepção da camada de Transporte é oserviço oferecido pela camada de Rede, que pode ser classificado da seguinte maneira:

• serviços do tipo A, que caracteriza os serviços perfeitos, onde a fração de pacotes perdidos,duplicados ou corrompidos é desprezível; é o tipo de serviço dificilmente encontrado emredes públicas, mas algumas redes locais são bastante próximas deste tipo de serviço;

• serviços do tipo B, onde a perda de pacotes também é rara, mas a comunicação éfreqüentemente interrompida (serviço N_RESET) devido a problemas de congestão, dehardware ou software;

• serviços do tipo C, não confiáveis, sendo caracterizados normalmente pelas redes a longadistância do tipo datagrama.

Para cada tipo de serviço, de A a C, o nível do serviço de Transporte caminha do mais simples aomais complexo, ou seja, quanto pior o serviço oferecido pela camada de Rede, melhor (e mais complexo)deverá ser o serviço oferecido pela camada de Transporte.

Para permitir a definição de vários níveis de oferecimento de serviço, o modelo OSI, a nível dacamada de Transporte, define cinco classes de serviço:

• classe 0, que são os serviços mais simples, capazes de estabelecer uma conexão, masbaseados na hipótese que o serviço de Rede não gera erros de transmissão; não existetratamento de erros, controle de fluxo nem seqüenciamento;

• classe 1, corresponde à classe 0, mas permite implementar a retomada de diálogo,considerando que pode ocorrer quebra do diálogo a nível de Rede (serviço N_RESET); elepermite a retomada da comunicação entre duas entidades de Transporte após a interrupçãode uma conexão de Rede;

Estabelecimentopassivo

pendente

Ociosa

Estabelecimentoativo

pendente

Desconexãopassivo

pendente

Desconexãoativa

pendente

Estabelecida

Ociosa

Seqüência de passos do cliente

Seqüência de passos do servidor

TPDU Connection Request recebida

TPDU Disconnection Request recebida

Primitiva Connect Request executada

PDU Connection Request recebidaPrimitiva Connect executada

Primitiva Disconnect executada

TPDU DisconnectionRequest recebida

Primitiva Disconnectexecutada

Page 84: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 84

• classe 2, que torna mais sofisticada a classe 0 pela introdução da possibilidade demanutenção de diversas conexões de Transporte sobre uma única conexão de Rede(multiplexação);

• classe 3, que agrupa os mecanismos de retomada de diálogo da classe 1 com os demultiplexação da classe 2;

• classe 4, definida para operar sobre os serviços de Rede do tipo C cuja falta deconfiabilidade é conhecida, devendo tratar então os erros, perdas, duplicações, retomada dediálogo e todos os possíveis problemas não resolvidos pela camada de Rede.

No momento do estabelecimento de uma conexão, são as entidades pares que devem tomar adecisão sobre qual classe de serviço adotar, uma classe sendo proposta pelo iniciante e negociada parapermitir o estabelecimento da conexão.

As funções do protocolo de Transporte vão depender do ambiente no qual ele vai operar assimcomo da natureza dos serviços que devem ser supridos. Um mínimo de funções deve, todavia, seroferecido por um protocolo de Transporte, entre as quais:

• o estabelecimento de conexão;• transferência de TPDUs;• segmentação de mensagens;• etc...

O termo TPDU indicado acima serve para definir a unidade de dados trocada entre duasunidades de Transporte que é a unidade de dados de protocolo de transporte (em inglês, TransportProtocol Data Unit). Por outro lado, a unidade de dados emitida por um usuário do serviço Transporte émuitas vezes referenciada como sendo uma mensagem.

Uma mensagem a ser transmitida pode ter um tamanho qualquer, a segmentação das mensagensdevendo ser assumida por esta camada. Isto significa que, se uma unidade de dados apresenta umtamanho superior ao de um pacote, ela deve ser segmentada em tantos pacotes quantos sejam necessáriospara efetuar a sua completa emissão.

Ainda, se uma entidade de Transporte gerencia várias conexões num dado instante, ela devenumerar as conexões e inserir o número correspondente nas unidades de dados, a fim de permitir àentidade receptora de identificar corretamente a conexão à qual esta unidade de dados deve ser associada.Independente da classe de protocolo considerada, deve sempre existir um mecanismo de liberação deconexão, esta liberação sendo, porém, diferente dependendo da classe de protocolo considerada.

8.5 ENDEREÇAMENTO

Quando um processo de aplicação deseja estabelecer uma conexão com um processo deaplicação remoto, é necessário especificar a aplicação com que se conectar. O transporte sem conexãotambém tem o mesmo problema. O método normalmente utilizado é definir os endereços de transporteque os processos podem ouvir para receber solicitações de conexão. Na arquitetura Internet, essasextremidades (endereço IP, porta local) formam pares. Em redes ATM, eles são os AAL-SAPs. O termoTSAP (Transport Service Access Point) é um termo mais neutro. Os pontos finais análogos da camada derede são chamados NSAPs. Os endereços IP são exemplos de NSAPs.

A figura 8.3 ilustra a relação entre o NSAP, o TSAP, a conexão de rede e a conexão detransporte para uma sub-rede orientada à conexão. Cabe observar que normalmente uma entidade aceitavários TSAPs. Em algumas redes também existem vários NSAPs; no entanto, em outras, cada máquinatem somente um NSAP (por exemplo, um endereço IP).

A seguir é apresentado um cenário para uma conexão de transporte através de uma camada derede orientada à conexão.

1. um processo servidor para informar a hora do dia no host 2 se associa ao TSAP 122 paraaguardar a chegada de uma chamada. O processo de associação do processo a um TSAP édependente do sistema operacional local;

2. um processo de aplicação no host 1 deseja encontrar a hora do dia e, portanto, transmite umasolicitação especificando o TSAP 6 como origem e o TSAP 122 como destino;

Page 85: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 85

3. a entidade de transporte no host 1 seleciona um endereço de rede em sua máquina (se houvermais de um) e estabelece uma conexão de rede entre eles; através desta conexão a entidadede transporte do host 1 pode se comunicar com a entidade de transporte do host 2;

4. a entidade de transporte do host 1 diz à sua correspondente no host 2 que quer estabeleceruma conexão de transporte entre o seu TSAP 6 e o TSAP 122 dele;

5. a entidade de transporte no host 2 então pergunta ao servidor da hora do dia no TSAP 122 seele está disposto a aceitar uma nova conexão; se ele concordar, a conexão de transporte seráestabelecida.

Figura 8.3 – TSAPs, NSAPs e conexões.

Observe que a conexão de transporte acontece de TSAP para TSAP, enquanto a conexão de redesó faz parte do caminho, de um NSAP para outro NSAP.

Porém fica uma questão: como o processo de usuário do host 1 sabe que o servidor de hora dodia está associado ao TSAP 122? Uma possibilidade é que o servidor de hora esteja associado ao TSAP122 há muito tempo e que, aos poucos, todos os usuários da rede tenham se acostumado com isso. Nessemodelo os serviços têm endereços TSAP fixos ou estáveis que podem ser divulgados aos novos usuáriosquando eles se associam à rede.

Mas nem sempre os processos de aplicação possuem estes endereços estáveis. Um esquemadiferente é utilizado em hosts UNIX na Internet e é conhecido como protocolo de conexão inicial. Nesteesquema, ao invés das aplicações estarem conectadas a TSAPs conhecidos, existe um servidor deprocessos que funciona como um proxy para os servidores menos usados. Ele atende a uma série deportas ao mesmo tempo, aguardando uma solicitação de conexões TCP. Os usuários potenciais de umserviço devem iniciar por uma solicitação de conexão especificando o endereço TSAP (porta TCP) doserviço de que necessitam. Se nenhum servidor os estiver aguardando, eles estabelecem uma conexãocom o servidor de processos, como mostra a figura 8.4 (a).

Depois de receber a solicitação, o servidor de processos encerra a conexão para o servidorsolicitado, permitindo que herde a conexão já existente com o usuário. Em seguida o novo servidorexecuta a tarefa solicitada, enquanto o servidor de processos volta a aguardar novas solicitações , comomostra a figura 8.4 (b).

HOST 1 HOST 2

Ligação física

Camada física

Camada de enlace

Camada de rede

Camada detransporte

Camada deaplicação

Servidor

TSAP 122

NSAPNSAP

Conexão detransporte

começa aqui

Conexão de redecomeça aqui

Processo deaplicação

TSAP 6

Page 86: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 86

Figura 8.4 –.Como um processo do usuário no host 1 estabelece uma conexão com o servidor de hora dodia no host 2

Enquanto o protocolo de conexão inicial funciona bem quando os servidores podem ser criadosquando necessários, há muitas situações em que os serviços existem de forma independente do servidorde processos. Um servidor de arquivos, por exemplo, deve ser executado em um hardware especial (umamáquina com grande capacidade de disco) e não pode ser criado dinamicamente quando alguém deseja secomunicar com ele.

Com freqüência, é usado um esquema alternativo para administrar essa situação. Nesse modeloexiste um processo especial chamado servidor de nomes (name server), ou, às vezes, servidor dediretórios (directory server). Para localizar o endereço TSAP correspondente a um determinado nome deserviço, um usuário estabelece uma conexão com o servidor de nomes (que está associado a um TSAPbem conhecido). Em seguida, o usuário envia uma mensagem especificando o nome do serviço, e oservidor de nomes retorna o endereço TSAP. Depois disso o usuário encerra a conexão com o servidor denomes e estabelece uma nova conexão com o serviço desejado.

Ainda nesse modelo, quando um serviço é criado ele deve se registrar no servidor de nomes,fornecendo seu nome de serviço (normalmente um string ASCII) e o endereço de seu TSAP. O servidorde nomes registra essas informações em seu banco de dados interno para que possa fornecer as respostasquando houver consultas.

Vamos supor que o usuário tenha encontrado o endereço do TSAP com que deseja estabelecer aconexão. Outra questão interessante é a seguinte: como a entidade de transporte local sabe em qualmáquina esse TSAP está localizado? Mais especificamente, como a entidade de transporte sabe qualendereço da camada de rede será necessário para estabelecer uma conexão de rede com a entidade detransporte remota que administra o TSAP solicitado?

A resposta depende da estrutura dos endereços TSAP. Uma das possibilidades é que osendereços TSAP sejam endereços hierárquicos (hierarchical address). Dessa forma, os endereçosconsistem em uma seqüência de campos usados para particionar o espaço de endereço de modo disjunto.Por exemplo, um endereço realmente universal poderia ter a seguinte estrutura:

endereço = <galáxia> <estrela> <planeta> <país> <rede> <host> <porta>

Com este esquema, fica fácil localizar de forma direta um TSAP em qualquer lugar do universo.Do mesmo modo, se um endereço TSAP é uma concatenação de um endereço NSAP e de uma porta (umidentificador local especificando um dos TSAPs locais), quando uma entidade de transporte recebe umendereço TSAP para se conectar, ela usa o endereço NSAP contido no endereço TSAP para chegar àentidade de transporte remota correta.

Uma alternativa ao uso de um espaço de endereçamento hierárquico é um espaço de endereçosimples (flat address space). Se os endereços TSAPs não forem hierárquicos, um segundo nível demapeamento será necessário para localizar a máquina apropriada. Seria necessário um servidor de nomesque utilizasse os endereços de transporte como entrada e retornasse endereços de rede como saída. Outra

TSAP

HOST 1 HOST 2

Servidor deprocessosUsuário

Camada deAplicação

(a)

TSAP

HOST 1 HOST 2

Servidor deprocessosUsuário

Camada deAplicação

(b)

Servidor dahora do dia

Page 87: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 87

alternativa para algumas situações (por exemplo, em uma LAN), é fazer uma consulta solicitando àmáquina de destino que se identifique enviando um pacote especial para este fim.

8.6 MULTIPLEXAÇÃO E SPLITTING

A multiplexação é encontrada nos vários níveis do RM-OSI. A multiplexação de um NSAP porvários TSAPS pode surgir por vários motivos e o mais comum é o custo. Várias concessionárias deserviços de rede fazem a sua tarifação baseada no tempo em que uma conexão de rede está aberta. Emuma aplicação com tráfego em rajada essa conexão pode ficar muito tempo ociosa, tendo o usuário depagar por este tempo. Uma solução é a multiplexação de várias conexões de transporte na conexão derede. A multiplexação também se justifica por outros motivos além da tarifação. Por exemplo, quando aconexão de rede oferece uma banda passante muito maior que a utilizada pelas conexões de transporte.

Por outro lado, pode acontecer o inverso, a conexão de rede pode oferecer uma banda passantemuito mais baixa do que a necessária pela conexão de transporte. Uma solução nesse caso é realizar adivisão (splitting) da conexão de transporte em várias conexões de rede. No caso de uma estação possuirvários canais de saída no nível físico, o splitting pode ser usado para aumentar o desempenho.

8.7 ESTABELECIMENTO E ENCERRAMENTO DE CONEXÕES

O estabelecimento e encerramento de conexões de transporte seria simples, se a rede nãoperdesse, armazenasse ou duplicasse pacotes. Uma solução para prevenir que erros decorrentes destesproblemas aconteçam pode ser conseguida estabelecendo um tempo de vida máximo na rede para umpacote, isto é, passado este tempo ele é destruído. O tempo de vida de um pacote pode ser limitadousando-se um contador de saltos para cada um, incrementado cada vez que passa por um nó intermediárioda rede ou um tempo de nascimento (timestamp) com a hora da criação. Com essas precauções podemoscalcular o tempo T a partir do qual podemos ter certeza de que o pacote e suas confirmações causarãoproblemas. As técnicas utilizadas para evitar estes problemas são através da utilização de timers enúmeros de seqüência e também através de um handshake de três vias.

Os problemas no encerramento de uma conexão estão relacionados ao fato de existirem trêsformas de encerramento, quais sejam: um dos usuários solicita desconexão, os dois solicitam desconexãosimultaneamente ou a camada de transporte desiste e transmite pedido de desconexão para ambas aspartes. Em todas as situações as liberações são abruptas e pode haver perda de dados. Alguns autoreschegam a mencionar que “...na verdade, pode ser provado facilmente que não existe nenhum protocoloque funcione...”

8.8 CONTROLE DE FLUXO E BUFFERIZAÇÃO

Existe uma certa semelhança com a camada de enlace, pois também evita que transmissor rápidosobrecarregue receptor lento, só que no caso o emissor e receptor são aplicações da rede. Um diferença éque um IMP tem número pequeno de linhas e os hosts podem ter um número indeterminado de conexões.

A estratégia de “buferização” deve levar em consideração três questões relacionadas a estratégiaa ser adotada pelo transmissor quanto a “buferização” de TPDUs enviadas. Isto deve ser feito quando:

• o serviço de rede não é confiável (redes tipos B e C);• o receptor não pode garantir aceitação de todas as TPDUs recebidas;• confirmação da camada de rede só pode garantir recebimento, não confirmação.

Algumas das técnicas usadas para determinação de tamanho do buffer são:1. buffers de tamanho fixo encadeados;2. buffers de tamanho variável encadeados;3. buffer circular estendido para cada conexão;4. alocação dinâmica de buffers.

Page 88: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 88

Capítulo 9 - A Camada de Sessão

9.1 INTRODUÇÃO

Como foi mencionado anteriormente, o modelo hierárquico de comunicação proposto no modeloOSI pode fazer distinção em duas classes de camadas: as camadas inferiores, concretizadas pelascamadas de 1 a 4, já vistas, cujos serviços são orientados ao transporte de informação propriamente dito,tratando essencialmente de problemas de comunicação como, por exemplo, codificação e transmissão debits, controle de fluxo e de erros, seqüenciamento, roteamento, controle de tráfego e gerenciamento deconexões; as camadas superiores, concretizadas pelas camadas de 5 a 7, cujos serviços se orientam maisàs aplicações escritas pelos usuários no sentido de facilitar ou simplificar as suas tarefas, fornecendoserviços padronizados os mais diversos.

A camada de Sessão é a primeira camada (no sentido bottom-up) enquadrada na segunda classe.Ao contrário de outras camadas já estudadas e outras que serão vistas mais adiante, a camada de Sessãofoi introduzida no momento da definição do modelo OSI. As demais camadas presentes no OSI foram, decerto modo, inspiradas de modelos pré-existentes na concepção de redes já existentes na época como, porexemplo, ARPANET. Esta é, na verdade, uma das camadas mais simples do modelo OSI, oferecendouma quantidade de serviços relativamente limitada, longe dos serviços oferecidos por camadas como a deTransporte, por exemplo.

Nesta parte do documento, veremos então os serviços oferecidos pela Sessão e como estes sãoimplementados através dos protocolos.

9.2 SERVIÇOS OFERECIDOS PELA CAMADA DE SESSÃO

Segundo o modelo OSI, os usuários dos serviços de Sessão são as entidades de Apresentação, aposição desta camada estando ilustrada na figura 9.1. A principal função desta camada é oferecer aos seususuários meios para o estabelecimento das conexões, denominadas sessões, de modo que estes possamtrocar dados.

T_CONNECT request

T_CONNECT indication

T_CONNECT response

T_CONNECT confirm

T_CONNECT request

T_CONNECT indication

T_DISCONNECT request

T_DISCONNECT indication

T_CONNECT request

T_DISCONNECT indication

(a) (b) (c)

T_DISCONNECT request

T_DISCONNECT indication

T_DISCONNECT request T_DISCONNECT

indication

(d) (e) (f)

T_DISCONNECT request T_DISCONNECT

indication

T_DATA request

T_DATA indication

(g) (h)

T_EXPEDITED_DATA request

T_EXPEDITED_DATA indication

Figura 9.1 - Posição da camada de Sessão no modelo OSI.

Page 89: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 89

Uma sessão pode ser utilizada para permitir a conexão à distância a um computador, porexemplo, através de um terminal, para uma transferência de arquivo, para o carregamento de programas àdistância, etc... Apesar de que, ao nível de Sessão, são oferecidas primitivas de serviço para acomunicação sem conexão, neste modo, não é possível explorar os serviços orientados aos usuários,disponíveis nesta camada.

No que diz respeito à conexão de Sessão (ou à sessão, como definido acima), pode-se estabeleceras diferentes possíveis relações entre uma conexão de Sessão e uma conexão de Transporte, como mostraa figura 9.2. Em 9.2(a), é mostrada uma correspondência de 1 a 1 entre uma conexão de Sessão e uma deTransporte. Por outro lado, como mostrado em 9.2(b), pode-se utilizar uma mesma conexão de Transportepara suportar diferentes sessões. Ainda, pode-se ter o quadro inverso, onde, pela quebra de uma conexãode Transporte, a abertura de uma nova é providenciada para garantir a continuidade de uma mesmasessão. Este último cenário, ilustrado em 9.2(c), se caracteriza, por exemplo, quando as entidades deTransporte assumem a tarefa de retomada de diálogo após uma pane.

Transporte

Sessão

Transporte

Sessão

Transporte

Sessão

(a) (b) (c)

Figura 9.2 - Diferentes relações entre conexão de Sessão e de Transporte: (a) correspondência 1 a 1; (b)uma conexão de Transporte para várias sessões; (c) várias conexões de Transporte para uma única sessão.

9.3 SESSÃO X TRANSPORTE: SIMILARIDADES E DIFERENÇAS

A gestão do diálogo é a principal função da camada de Sessão e, da mesma forma como foi vistopara camadas inferiores, o diálogo via esta camada é caracterizado pelas três etapas a seguir:estabelecimento de sessão, transferência de dados e liberação da sessão.

As primitivas de estabelecimento e liberação de sessão oferecidas à camada de Apresentação sãosimilares àquelas oferecidas à própria camada de Sessão pelo Transporte. Esta similaridade ocorre a talponto que, em muitos casos, a recepção de uma primitiva de serviço da camada de Apresentação reflete-se imediatamente no envio de uma primitiva de serviço equivalente da camada de Transporte.

Um exemplo disto é a primitiva de estabelecimento de Sessão, S_CONNECT.request, que érefletida no envio de uma primitiva T_CONNECT.request.

Na fase de estabelecimento de uma conexão, da mesma forma que na camada de Transporte,ocorre a negociação, entre as duas entidades envolvidas (de Apresentação) sobre que parâmetros vãodefinir a comunicação. Dentre estes parâmetros, encontram-se parâmetros já conhecidos de outros níveisdo modelo OSI (por exemplo, a necessidade de transferência de dados expressos) e também parâmetrosespecíficos à camada de Sessão (por exemplo, na abertura de uma sessão para troca de informações viacorreio eletrônico, um parâmetro pode ser qual usuário vai tomar a iniciativa do diálogo).

Apesar das semelhanças já levantadas, pode-se destacar também algumas diferenças entre umasessão e uma conexão de Transporte, essas diferenças estando particularmente associadas aoprocedimento de liberação das conexões. No caso da camada de Transporte, a primitivaT_DISCONNECT.request que causa a terminação abrupta da conexão, podendo ocorrer inclusive perdados dados ainda em trânsito. Já, no caso das sessões, a primitiva responsável da liberação éS_RELEASE.request que permite terminar, de maneira ordenada a conexão, sem ocorrência de perda dosdados (liberação negociada). É possível, no entanto, em caso de necessidade, promover uma liberaçãoabrupta da sessão, isto, graças à utilização da primitiva S_ABORT.request. A diferença entre as duasformas de liberação de uma conexão é mostrada na figura 9.3. Em 9.3(a) é apresentada a liberaçãoabrupta de uma conexão de Transporte; em 9.3(b), é apresentada a liberação negociada de uma sessão.Como se pode ver em 9.3(b), ao contrário dos serviços de liberação de conexão apresentados até omomento, o serviço de liberação negociada S_RELEASE é um serviço confirmado, caracterizado pelasprimitivas request, indication, response e confirm.

Page 90: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 90

T_DISCONNECT request

T_DISCONNECT indication

T_DATA request perda

dado

S_RELEASE request

S_RELEASE indication

S_DATA request

S_DATA indication

S_RELEASE response S_RELEASE

confirm

(a) (b)

Figura 9.3 - (a) liberação abrupta; (b) liberação negociada.

Como mostra a figura, mesmo após ter emitido o pedido de liberação, a entidade usuária podecontinuar a receber primitivas de serviço de indicação de transferência de dados (no caso,S_DATA.indication), sendo que a desconexão só será efetivada após a recepção da primitivaS_RELEASE.confirm.

Um outro ponto de bastante similaridade entre as camadas de Sessão e Transporte é oendereçamento. Da mesma forma que no Transporte, a nível de Sessão é necessário indicar um SSAP(Ponto de Acesso ao Serviço de Sessão ou Session Service Access Point) na fase de estabelecimento desessão.

Normalmente, um endereço de SSAP nada mais é que um endereço de TSAP enriquecido comoutras informações. Ainda, uma diferença entre Sessão e Transporte está nos tipos de dados transmitidos.Como foi visto no caso da camada de Transporte, existem dois tipos de fluxos de dados — os dadosnormais e os dados expressos (ou urgentes). Já na camada de Sessão, além destes dois tipos de dados,podem ocorrer outros dois — os dados tipados (typed data) e os dados de capacidade (capacity data).Estes tipos de dados serão explicados mais adiante, neste documento.

9.4 A GESTÃO DO DIÁLOGO

Segundo o modelo OSI, todas as conexões estabelecidas são, a princípio, do tipo full duplex, ouseja, bidirecionais simultâneas, conforme mostrado na figura 9.4(a).

Por outro lado, existem muitas aplicações nas quais a possibilidade de operação em half duplexpode ser mais interessante.

Este serviço é implementado a nível da camada de Sessão graças à definição de uma ficha dedados (data token), como ilustrado na figura 9.4(b). A comunicação em half duplex é uma opçãonegociada no momento do estabelecimento de uma sessão. Se esta opção é adotada, deverá ser definidotambém qual dos usuários envolvidos no diálogo poderá tomar a iniciativa (possuidor da ficha).

(a) (b)

S_DATA request

S_DATA indication

S_DATA request

S_DATA indication

S_DATA request

S_DATA indication

S_DATA request

S_DATA indication

S_DATA request

S_DATA indication

S_DATA request

S_DATA indication

S_TOKEN_GIVE request

S_TOKEN_GIVE indication

S_DATA request

S_DATA indication

Figura 9.4 - (a) comunicação full duplex; (b) comunicação half duplex com ficha.

Page 91: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 91

Quando este usuário terminar a sua transmissão, ele pode ceder a ficha ao usuário par para queele possa efetuar a sua transmissão. A passagem de ficha de um usuário a outro é implementada atravésda primitiva S_TOKEN_GIVE.

Ainda, se um dos usuários querendo efetuar uma transmissão não possui a ficha naquele instante,ele pode requisitá-la a seu par através da emissão de uma primitiva S_TOKEN_PLEASE.request. Ousuário receptor da primitiva S_TOKEN_PLEASE.indication pode ou não querer ceder a ficha.

Em caso negativo, o usuário que a requisitou não fará outra coisa senão esperar a “boa vontade”do seu interlocutor (ou ainda, enviar dados urgentes que não necessitam a possessão da ficha).

A ficha só passa a ter algum sentido no caso de comunicação half duplex. Se full duplex é aopção adotada, ela não é levada em conta.

9.5 A SINCRONIZAÇÃO

A camada de Sessão deve cobrir igualmente os problemas relacionados à sincronização. Estatarefa é útil para a manutenção da coerência do estado entre dois usuários interlocutores em caso de erroou outro problema.

Apesar da camada de Transporte ter, por princípio, a função de cobrir todos os problemasrelacionados à retomada após erros ou panes, esta camada cobre unicamente os problemas relacionados àtransmissão de dados propriamente dita, não levando em conta os problemas que podem ocorrer nascamadas superiores. Estes erros podem ocasionar perdas de dados que a camada de Transporte é incapazde detectar (uma vez que esta não é a sua função!).

A camada de Sessão vem, então, ao socorro do sistema efetuando a tarefa de sincronização,através da inserção a nível dos dados de pontos de sincronização, que permitem manter a sessão numestado correspondendo a um antigo ponto de sincronização. A figura 9.5(a) ilustra o procedimento deinserção de pontos de sincronização. Um exemplo disto pode ser ilustrado na transmissão de umdocumento via rede, no qual este pode ser decomposto em páginas às quais se pode associar os pontos desincronização. Neste caso, a resincronização vai consistir na retransmissão do documento a partir de umadada página que estava sendo transmitida quando o problema ocorreu.

A sincronização é implementada da seguinte forma: o usuário emissor insere, nas suasmensagens, pontos de sincronização, cada ponto contendo um número de série. Quando um usuário enviauma primitiva (request) para inserir um ponto de sincronização, o outro usuário vai receber uma primitivade indicação correspondente, isto ocorrendo de igual maneira no caso de uma resincronização.

É importante notar aqui que a camada de Sessão oferece unicamente as ferramentas para asolução dos problemas de erros e incoerência por sincronização/resincronização. Na realidade, quem ativaestas ferramentas quando da ocorrência de um problema são as entidades das camadas superiores.

O mecanismo de sincronização define dois tipos distintos de pontos de sincronização — ospontos de sincronização máximos e mínimos. Os pontos de sincronização máximos são utilizados paradelimitar trechos da informação denominados diálogos, que representam uma decomposição lógica dainformação (capítulos de um livro, por exemplo). Já os pontos de sincronização mínimos são utilizadospara separar porções menores da informação. No caso de um livro, esta porção poderia ser as páginas doscapítulos. A figura 9.5(b) ilustra os pontos de sincronização máximos e mínimos.

Uma diferença fundamental entre os pontos máximos e mínimos reside na capacidade deresincronização. No caso de um ponto de sincronização máximo, após uma pane, é possível resincronizar,no máximo, de um ponto de sincronização máximo para trás. A partir deste ponto, é impossível recuperarinformação. Isto ocorre porque um ponto máximo é visto como uma fronteira de proteção, cujainformação anterior é garantida ter sido recebida, o que significa que ela pode ser apagada da extremidadeemissora. Isto já não ocorre no caso dos pontos de sincronização mínimos.

Além disso, pelo fato de que os pontos de sincronização máximos são tidos como fronteiras deproteção da informação, estes devem ser explicitamente reconhecidos pelo receptor, o que não énecessário no caso dos pontos de sincronização mínimos.

Outra informação importante é que a nomenclatura utilizada para os pontos de sincronização sãobastante diversas na literatura. O ponto de sincronização máximo é também chamado principal oumaior. O ponto de sincronização mínimo é também chamado secundário ou menor.

Page 92: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 92

1 2 3 4 5 6 7 8 9SESSÃO

ponto de sincronização

12 3 4

56 7 8

9

ponto de sincronizaçãomáximo

ponto de sincronizaçãomínimo

DIÁLOGO

(a)

SESSÃO

(b)

Figura 9.5 - (a) Pontos de sincronização; (b) Pontos de sincronização máximos e mínimos.

9.6 GERENCIAMENTO DE ATIVIDADES

Outra função importante da camada de Sessão é o controle de atividades. Esta tarefa é baseadano conceito de decomposição do fluxo de dados em atividades, independentes umas das outras. Oconceito de atividade vai depender da aplicação considerada, o usuário sendo o responsável destadefinição.

Um exemplo típico de utilização do conceito é a transferência de arquivos, onde cada arquivodeve ser separado, de alguma forma, dos demais. A forma de faze-lo é através da definição, de cadaarquivo, como sendo uma atividade, como mostra a figura 9.6. Para faze-lo, antes da emissão de cadaarquivo, o usuário deve enviar uma primitiva S_ACTIVITY_START.request para marcar o início de umaatividade; isto vai gerar, no lado do receptor, uma primitiva S_ACTIVITY_START.indicationsinalizando o início do envio de uma nova atividade (neste caso particular, o arquivo).

arquivo 2 arquivo 1

ATIVIDADE

início atividade fim atividade

SESSÃO

ATIVIDADE

Figura 9.6 - Conceito de atividade aplicado a uma transferência de arquivo.

O fim da transferência de um arquivo é marcado, então, pelo envio, por parte do emissor, de umaprimitiva S_ACTIVITY_END.request. O interesse da definição de atividade é o fato que certasaplicações podem ter a garantia de atomicidade, evitando erros devido a panes ocorridas entre ações deuma mesma atividade.

Um exemplo de aplicação é o de uma operação bancária realizada através de um terminalinformatizado. A operação normal se desenrola da maneira seguinte:

• o proprietário da conta emite um comando informando o seu número de conta (e a senhacorrespondente) — o computador do banco verifica o número e a senha, e bloqueia o códigocorrespondente a fim de evitar o acesso concorrente;

• o proprietário da conta envia um novo comando informando o número da conta para onde odinheiro deve ser transferido — o computador verifica o número da conta e bloqueia ocódigo correspondente pela mesma razão já apresentada;

Page 93: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 93

• o proprietário, finalmente, emite um terceiro comando informando o montante a sertransferido — o computador efetiva, então, a transferência para a conta destinatária.

Um caso típico deste cenário é aquele em que uma pane (falta de energia, por exemplo) ocorreno terminal sendo utilizado pelo cliente proprietário da conta imediatamente após o primeiro comando. Ocomputador vai bloquear o código correspondente à conta, mas os demais comandos não serão efetuados.A aplicação do conceito de atividade via camada de Sessão permite solucionar este problema, garantindoa atomicidade da operação. A operação completa pode ser vista como uma atividade. Assim, após arecepção de uma primitiva S_ACTIVITY_START.indication, o computador do banco ficaria armazenandoas mensagens (de comando) até a recepção de uma primitiva S_ACTIVITY_END.indication. Só nestemomento, os comandos seriam efetivados pelo computador.

Uma outra propriedade interessante das atividades é a capacidade de ser interrompida e retomadasem a perda das informações. Isto pode ser feito através da primitiva S_ACTIVITY_INTERRUPT quepermite iniciar uma nova atividade e retomar aquela ao final desta segunda atividade a partir do pontoonde ela tinha sido interrompida. Um exemplo típico é aquele da transferência de um arquivo de tamanhorelativamente grande, no qual, durante a transferência, seja necessário, com relativa urgência, efetuar aconsulta a uma base de dados (anuário telefônico, agenda, por exemplo). Este exemplo é ilustrado nafigura 9.7.

transf. arquivo 1ª parte

transf. arquivo 2ª parte

consulta anuário

1

início atividade 1

interrupção atividade 1

início atividade 2

fim atividade 2

retomada atividade 1

fim atividade 1

2 3 4 5 6

1

2

3

4

5

6

Figura 9. 7 - Exemplo da interrupção de um atividade para a realização de outra.

9.7 AS PRIMITIVAS DE SERVIÇO DE SESSÃO

O quadro a seguir apresenta a lista das primitivas de serviço oferecidas pela camada de Sessão,indicando as classes de primitivas compondo cada serviço (R - request, I - indication, Rs - response e C -confirm). São 58 primitivas organizadas em 7 grupos: estabelecimento de conexão, liberação de conexão,transferência de dados, gerenciamento de fichas, sincronização, gerenciamento de atividades e relatóriode anomalias. Os dois primeiros grupos são relacionados, respectivamente, à inicialização e término dassessões. As primitivas S_CONNECT conduzem em seus parâmetros informações tais como: SSAPs dosinterlocutores, qualidade do serviço, números iniciais dos pontos de sincronização, etc...

Já os serviços de liberação de sessão podem ser de três tipos: o primeiro, caracterizado pelaprimitivas S_RELEASE, especificando um serviço confirmado de término negociado de sessão (semperda de dados); os dois outros, para e liberação abrupta de sessão (com eventual perda de dados),caracterizados pelas primitivas S_U_ABORT e S_P_ABORT, indicando, respectivamente, terminação deiniciativa do usuário (U - user) e do fornecedor do serviço (P - provider).

PRIMITIVA R I Rs C FUNÇÃOORIENTADO CONEXÃO

S_CONNECT • • • • estabelecimento de conexãoS_RELEASES_U_ABORTS_P_ABORT

• • liberação negociada de conexãoliberação abrupta (usuário)liberação abrupta (fornecedor)

Page 94: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 94

S_DATAS_EXPEDITED_DATAS_TYPED_DATAS_CAPABILITY_DATA

• • •

transferência de dados normaistransferência de dados urgentestransferência de dados tipadostransferência de dados de capacidade

S_TOKEN_GIVES_TOKEN_PLEASES_CONTROL_GIVE

passagem de ficha de dadospedido de fichapassagem de todas as fichas

S_SYNC_MAJORS_SYNC_MINORS_RESYNCHRONIZE

inserção de ponto de sincronização máximoinserção de ponto de sincronização mínimopedido de resincronização

S_ACTIVITY_STARTS_ACTIVITY_ENDS_ACTIVITY_DISCARDS_ACTIVITY_INTERRUPTS_ACTIVITY_RESUME

início de uma atividadefim de uma atividadeabandono de uma atividadeinterrupção de uma atividaderetomada de uma atividade

S_U_EXCEPTION_REPORTS_P_EXCEPTION_REPORT

• •

relatório de anomalia (usuário)relatório de anomalia (fornecedor)

SEM CONEXÃOS_UNITDATA • • transferência de dados (sem conexão)

O terceiro grupo é caracterizado pelas quatro classes de primitivas para a transferência de dados(S_DATA, S_EXPEDITED_DATA, S_TYPED_DATA e S_CAPABILITY_DATA) cada uma para umdos quatro tipos de dados (normais, urgentes, tipados e de capacidade). Os dados normais e urgentestendo sido discutidos em outras oportunidades, cabe aqui uma apresentação dos dois outros tipos dedados.

Os dados tipados são similares aos dados normais do ponto de vista da transferência, a diferençafundamental sendo a liberdade de transmissão sem a necessidade de posse da ficha de dados. Este tipo dedados são utilizados, principalmente, para a troca de mensagens de controle entre os dois usuários.

Os dados de capacidade são utilizados para a transferência de mensagens de controle da própriacada de Sessão. O serviço S_CAPABILITY_DATA, como se pode ver na tabela, é um serviçoconfirmado, fornecendo um reconhecimento dos dados de capacidade. Ainda, ao contrário dos dadostipados, estes dados só podem ser transmitidos se a entidade possui a ficha de transferência de dados.

O quarto grupo de serviços é relacionado ao gerenciamento das fichas, que são em número de 4:as fichas de dados (para a transferência em half-duplex), as fichas de liberação (para o início de umaliberação negociada), as fichas de sincronização mínima (para a inserção de pontos de sincronizaçãomínimos) e as fichas de sincronização máxima e atividade (para o gerenciamento das atividades e dasincronização). S_TOKEN_GIVE permite efetuar a transferência de uma ou mais fichas à entidaderemota, as fichas a transferir sendo indicadas nos parâmetros das primitivas.

O quinto grupo contém os serviços relativos à sincronização, seja para inserção de pontos desincronização (através dos serviços S_SYNC_MAJOR e S_SYNC_MINOR, dedicados, respectivamente,à introdução de pontos de sincronização máximos e mínimos), seja para a resincronização a partir de umponto dado (S_RESYNCHRONIZE).

O sexto grupo, através dos serviços, S_ACTIVITY_START, S_ACTIVITY_END,S_ACTIVITY_DISCARD, S_ACTIVITY_INTERRUPT e S_ACTIVITY_RESUME é dedicado aogerenciamento das atividades (início, fim, abandono, interrupção e retomada).

O sétimo grupo é dedicado à geração de relatórios de anomalia, tanto da parte de um dosusuários (S_U_EXCEPTION_REPORT) quanto da camada de Sessão (S_P_EXCEPTION_REPORT).

Page 95: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 95

Capítulo 10 - A Camada de Apresentação

10.1 INTRODUÇÃO

Quando foi concebida, a camada de Apresentação era responsável unicamente das funções deconversão entre dados representados em ASCII e EBCDIC. Em seguida, novos serviços foramintroduzidos de forma que, atualmente, pode-se descrever a tarefa desta camada por tudo o que possaestar relacionado à representação dos dados a serem transmitidos, particularmente as funções de:conversão de dados, criptografia e compressão.

As seções que seguem apresentarão os principais problemas e as soluções encontradas narealização destas funções.

10.2 AS PRIMITIVAS DE SERVIÇO DA CAMADA DE APRESENTAÇÃO

O quadro a seguir apresenta a lista de primitivas de serviço de Apresentação. Como se podenotar, quase todas as primitivas são idênticas àquelas apresentadas na parte anterior, relativa à camada deSessão.

No caso dos serviços orientados à conexão, por exemplo, os usuários desta camada, ou seja, asentidades da camada de Aplicação podem abrir uma sessão utilizando a primitiva P_CONNECT.request,que se reflete, na camada de Apresentação, pelo envio de uma primitiva S_CONNECT.request, jádescrita quando da apresentação da camada de Sessão.

De fato, a maior parte das primitivas de serviço de Apresentação atravessam desta forma acamada. A novidade mostrada na camada são as primitivas P_ALTER_CONTEXT, que compõem oserviço de alteração de contexto de Apresentação.

Um contexto é a unidade na qual são reagrupados as estruturas de dados utilizadas pelasentidades de Aplicação. Ao longo de uma sessão, é possível utilizar um contexto durante um determinadotempo e utilizar um outro num outro momento. O serviço P_ALTER_CONTEXT permite fazer estamodificação.

A camada de Apresentação viabiliza a negociação sobre que forma de representação será adotadapara os dados manipulados pela aplicação.

Page 96: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 96

PRIMITIVA R I Rs C FUNÇÃOORIENTADO CONEXÃO

P_CONNECT • • • • estabelecimento de conexãoP_RELEASEP_U_ABORTP_P_ABORT

••

•••

• • liberação negociada de conexãoliberação abrupta (usuário)liberação abrupta (fornecedor)

P_DATAP_EXPEDITED_DATAP_TYPED_DATAP_CAPABILITY_DATA

••••

•••• • •

transferência de dados normaistransferência de dados urgentestransferência de dados tipadostransferência de dados de capacidade

P_TOKEN_GIVEP_TOKEN_PLEASEP_CONTROL_GIVE

•••

•••

passagem de ficha de dadospedido de fichapassagem de todas as fichas

P_SYNC_MAJORP_SYNC_MINORP_RESYNCHRONIZE

•••

•••

•••

•••

inserção de ponto de sincronização máximoinserção de ponto de sincronização mínimopedido de resincronização

P_ACTIVITY_STARTP_ACTIVITY_ENDP_ACTIVITY_DISCARDP_ACTIVITY_INTERRUPTP_ACTIVITY_RESUME

•••••

•••••

•••

•••

início de uma atividadefim de uma atividadeabandono de uma atividadeinterrupção de uma atividaderetomada de uma atividade

P_U_EXCEPTION_REPORTP_P_EXCEPTION_REPORT

• ••

relatório de anomalia (usuário)relatório de anomalia (fornecedor)

P_ALTER_CONTEXT • • • • alteração de contextoSEM CONEXÃO

P_UNITDATA • • transferência de dados (sem conexão)

A negociação é baseada no fornecimento, por parte de um usuário, de todas as estruturas dedados que ele deseja utilizar, sendo que o usuário par pode ou não aceitar a proposta.

Durante o diálogo, ainda é possível que novas propostas de estruturas de dados sejam negociadaspelos dois usuários.

10.3 A NOTAÇÃO ASN.1

ASN.1 (Abstract Syntax Notation One) é uma sintaxe abstrata que foi definida na ISO parasolucionar a problemática da representação dos dados. Isto foi motivado pela necessidade da existência deuma forma de representação de dados que fosse suficientemente flexível e genérica para que pudesse serutilizada pelas mais diversas aplicações existentes.

ASN.1 é definida pela norma ISO 8824, que apresenta as estruturas de dados previstas nasintaxe; outra norma, ISO 8825, define a sintaxe de transferência, ou seja, a forma como as estruturas dedados ASN.1 podem ser mapeadas em binário.

As estruturas de dados ASN.1 foram definidas para prever as complexas estruturas de dados quepoderiam ser manipuladas a nível de uma dada aplicação. Um registro ou uma estrutura de dados utilizadanuma aplicação bancária pode conter os mais diversos campos, como por exemplo o nome, o endereço, osnúmeros de conta, as taxas de câmbio do dia, a data e hora, etc... Em outras aplicações, pode existir anecessidade de troca de estruturas de dados as mais diversas possíveis, sendo que cada aplicação pode teras suas próprias estruturas de dados. Ainda, algumas estruturas de dados podem ser típicas de certasaplicações, outras específicas a uma determinada empresa ou instituição.

Nos estudos apresentados das camadas inferiores, particularmente na apresentação dosprotocolos existentes, muitas estruturas de dados foram apresentadas na forma de figuras, com seus

Page 97: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 97

campos sendo apresentados por retângulos. Estas estruturas podem ser formalizadas por registros, filas,vetores, etc...

A camada de Aplicação, cujas entidades são os usuários da camada de Apresentação, écaracterizada por muitas estruturas de dados, transmitidas na forma de APDUs (Application ProtocolData Units), compostas de diferentes campos, cada campo tendo um determinado tipo (booleano, inteiro,etc...).

A notação ASN.1 permite formalizar os diversos tipos de dados podendo compor os campos deuma APDU, reagrupando-os inclusive num módulo de biblioteca para cada aplicação típica. Desta forma,é possível a uma aplicação enviar uma estrutura de dados à camada de Apresentação, dando a ela o nomeda estrutura ASN.1 correspondente. A camada de Apresentação poderá, então, conhecer o tipo e otamanho de cada campo compondo a estrutura de dados e, desta forma, codificá-los para a transmissão. Aentidade de Apresentação receptora, por sua vez, conhecendo a estrutura ASN.1 dos dados recebidos,pode fazer todas as conversões que sejam necessárias para adaptar à máquina receptora.

O interesse da existência de ASN.1 é que esta notação serve como uma linguagem comum paratodas as máquinas. Isto evita que todas as máquinas tivessem de conhecer todas as possíveis formas derepresentação de cada uma das máquinas com as quais elas teriam de se comunicar. Com ASN.1, bastaapenas que cada máquina conheça como codificar seus dados nesta notação. A norma ISO 8824 define anotação de sintaxe abstrata ASN.1, onde os principais pontos serão apresentados a seguir. Um primeiroexemplo de como um dado pode ser descrito em ASN.1, vamos fazer um paralelo entre uma estrutura dedados Pascal e uma estrutura de dados ASN.1.

Vamos considerar que pretendemos representar por uma estrutura em Pascal as principaiscaracterísticas dos dinossauros. Isto poderia ser feito através de uma estrutura do tipo record, onde cadacampo teria seu tipo específico e representando uma característica dos dinossauros. Um exemplo disto émostrado a seguir:

type dinossauro = recordnome : array [1..12] of char;tamanho : integer;carnivoro : boolean;ossos : integer;descoberta : integer;

end;

No caso de ASN.1, a mesma estrutura de dados poderia ser representada da seguinte forma:

dinossauro ::= SEQUENCE {nome OCTET STRING, --12 charstamanho INTEGER,carnivoro BOOLEAN,ossos INTEGER,descoberta INTEGER

}

Como se pode notar, não existem muitas diferenças entre a forma de especificar um recordPascal e uma seqüência ASN.1. De fato, tipos complexos ASN.1 são gerados a partir de tipos de base,denominados tipos primitivos. Os tipos primitivos ASN.1 são apresentados na tabela a seguir.

TIPO SIGNIFICADOINTEGER inteiro de valor arbitrário

BOOLEAN verdadeiro / falsoBIT STRING lista de bitsOCTET STRING lista de bytes

ANY conjunto de todos os tiposNULL nenhum tipoOBJECT IDENTIFIER nome de um objeto

Page 98: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 98

Como já foi dito, estes tipos podem ser combinados para a definição de estruturas de dados maiscomplexas, isto pela utilização de tipos construtores de ASN.1, onde os mais utilizados são:

CONSTRUTOR SIGNIFICADOSEQUENCE seqüência de elementos de diversos tipos

SEQUENCE OF seqüência de elementos de um mesmo tipoSET conjunto (não ordenado) de elementos de diversos tiposSET OF conjunto (não ordenado) de elementos de um mesmo tipoCHOICE escolha de um tipo entre uma lista de tipos

O construtor SEQUENCE permite construir uma estrutura de dados cujos campos sejam de tiposdiferentes. Ele é bastante similar a um record do Pascal, como já foi visto no exemplo anteriormenteapresentado. SEQUENCE OF permite construir vetores de elementos de um mesmo tipo. O construtorSET é similar ao SEQUENCE, com uma diferença apenas — os elementos de um SET não ordenadoscomo no caso do SEQUENCE. Da mesma forma, SET OF é similar a SEQUENCE OF, a mesmadiferença sendo válida para este caso.

O construtor CHOICE permite especificar um dado cujo formato pode assumir diversas opções.Um exemplo da utilização deste construtor é mostrado abaixo.

PDU_Comando ::= CHOICE {Comando_local,Comando_remoto

}

Além dos tipos primitivos e construtores, existem ainda os tipos pré-definidos de ASN.1, comopor exemplo:

• NumericString, que define uma lista de numerais de 0 a 9 mais o branco;• PrintableString, que define uma lista cujos elementos podem ser as letras maiúsculas, as

minúsculas, os números e os caracteres seguintes: ( ) ‘ + - . , / : = ?• GeneralizedTime, para definir datas e horas.

Existe ainda, em ASN.1, a possibilidade de expressar estruturas de dados onde alguns doscampos possam ou não estar presentes em tempo de execução — são os campos opcionais. Isto érepresentado através da cláusula OPTIONAL. Ainda pode-se atribuir a um dado um valor inicial (pordefault) através da cláusula DEFAULT.

Finalmente, ASN.1 define ainda o conceito de etiqueta (tag), que permite identificar um valorassociando-o a um dado campo. Para mais detalhes sobre ASN.1, aconselha-se uma consulta às normasISO 8824/8825 e outros documentos disponíveis sobre esta notação.

10.4 A COMPRESSÃO DE DADOS

De um ponto de vista genérico, os dados transmitidos através de um canal podem ser vistoscomo uma seqüência de símbolos S1, S2, ..., SN, pertencentes a um dado alfabeto (bits, dígitos decimais,letras, palavras de uma língua, etc...).

As técnicas de compressão de dados existentes são baseadas sobre três diferentes aspectos darepresentação de dados: a limitação do alfabeto, as freqüências relativas dos símbolos, o contexto deaparecimento dos símbolos. Estes três pontos de vista serão analisados a seguir.

10.4.1 CODIFICAÇÃO DE UM ALFABETO FINITO DE SÍMBOLOS

Muitas aplicações são baseadas na representação dos dados através de alfabetos finitos desímbolos. Um exemplo disto são as aplicações relacionadas à utilização de terminais, onde os dados sãorepresentados pelo alfabeto ASCII.

Page 99: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 99

Consideremos o exemplo do gerenciamento de uma biblioteca, onde um livro poderia seridentificado pelo seu título, o título de um livro podendo ser expresso em 20 caracteres (ou 140 bits).

Isto significa que, com uma palavra de 140 bits, poderíamos identificar até 2140 livros. Noentanto, não existem biblioteca no mundo que possua esta quantidade de livros. Assim, se, ao invés deidentificarmos os livros pelo seu título escolhermos um sistema de numeração, poderemos diminuir emmuito a quantidade de bits necessária para a identificação de um livro de qualquer biblioteca.

10.4.2 CODIFICAÇÃO DEPENDENTE DA FREQÜÊNCIA

Em determinadas aplicações, muitos símbolos de um alfabeto são muito mais utilizados queoutros. Nos textos em inglês, por exemplo, a letra “E” aparece 100 vezes mais freqüentemente que a letra“Q”, a palavra “THE” aparecendo 10 vezes mais que “BE”.

Baseados nestas informações, os dados podem ser codificados de tal forma que símbolos ouseqüências de símbolos sabidamente mais freqüentes que outros sejam representados de uma formaespecial, simplificada no que diz respeito à quantidade de informação necessária.

As técnicas consistem normalmente em codificar os símbolos mais freqüentes por códigos curtose os menos freqüentes por códigos mais longos.

10.4.3 CODIFICAÇÃO BASEADA NO CONTEXTO

A técnica apresentada acima é baseada na ocorrência de símbolos ou determinadas seqüências demaneira isolada, como se a probabilidade de ocorrência dos símbolos ou seqüências fosse independentedaquela que os precede. Na verdade, estas probabilidades podem ser altamente dependentes dainformação precedente. Por exemplo, no caso de um texto em português, a probabilidade de ocorrer aletra “T” após a letra “Q” é muitas vezes inferior que a probabilidade de ocorrer uma letra “U” após “Q”.A probabilidade de ocorrência de uma letra “P” após uma letra “N” numa palavra é nula, a menos que umerro de ortografia tenha sido cometido.

Uma técnica mais sofisticada que aquela é de levar em conta este aspecto calculando aprobabilidade relativa de ocorrência de cada símbolo após os demais símbolos de um alfabeto.

No caso das letras, como o exemplo citado acima, isto vai significar na construção de 26 tabelas,cada uma contendo as probabilidades das letras seguindo uma letra do alfabeto. Se uma forte correlaçãoexistir entre os símbolos, a taxa de compressão vai ser muito melhor que aquela obtida com a utilizaçãoda técnica apresentada anteriormente.

Uma desvantagem desta técnica é a grande quantidade de tabelas requerida para a definição dasprobabilidades relativas. No caso de um alfabeto composto de k símbolos, serão necessárias k2 entradasem tabela.

Um método possível de compressão é a organização dos símbolos em tipos, por exemplo, nocaso de letras e números, pode-se classificá-los em maiúsculas, minúsculas, caracteres numéricos ecaracteres especiais. Assim, quatro códigos podem ser associados aos quatro tipos e 28 códigos vãopermitir codificar os caracteres. A idéia de base desta técnica é que, a princípio, todo símbolo após umaletra minúscula tem fortes possibilidades de ser também uma letra minúscula, todo símbolo seguindo umcaractere numérico é também um caractere numérico, etc... Quando se quer chavear de um tipo desímbolo a outro, basta inserir o código associado ao novo tipo.

Uma técnica similar pode ser utilizada para codificar longas seqüências de dados binárioscontendo grandes quantidades de zeros. Cada símbolo de k bits indica quantos zeros separam dois 1’sconsecutivos. Assim, para tratar grandes faixas de zeros, o símbolo 1 indica que uma faixa de 2k - 1 maiso valor do símbolo seguinte separa os dois uns. Por exemplo, para a seqüência

000100000100000010000000000000010000001000100000001100000101

que contém as faixas de zeros de comprimentos: 3,5,6,14,6,3,7,0,1,5 e 1, pode-se utilizar a codificaçãoseguinte:

011 101 110 111 111 000 110 011 111 000 000 001 101 001

Page 100: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 100

onde a faixa de 14 zeros é codificada por 111 111 000 (ou seja, 7 + 7 + 0 = 14). Neste caso, acompressão permitiu reduzir em 34% o tamanho da informação.

Uma aplicação desta técnica pode ser feita, com algumas modificações, na transmissão digital deimagens de televisão colorida. O sinal é constituídos de uma seqüência de quadros, de 25 a 30 porsegundo, cada um contendo um vetor retangular de pontos (pixels) da imagem. Uma imagem de televisãopode ser composta de 1000 linhas de 600 pixels, cada pixel sendo codificado em 16 bits, 15 bits para a cor(com 32 níveis para cada cor) e 1 bit para informação de controle (enquadramento vertical ou horizontal).

Uma codificação direta desta informação necessitaria 600000 pixels por quadro, ou seja, umataxa de transmissão de 240 a 288 Mbits/s. Com uma codificação binária, seria necessário dispor de umafaixa de freqüência de quase 600 MHz. Uma vez que a transmissão analógica ocupa faixas de freqüênciade apenas 6 MHz, a transmissão digital, sem compressão de imagem, poderia tornar-se inviável.

A solução está no fato que, em transmissão de imagens, existe uma forte probabilidade de quemuitos quadros consecutivos sejam idênticos àqueles que os precederam. Desta forma, basta providenciar,a nível dos televisores, uma memória que possa armazenar o último quadro recebido e, assim, transmitirapenas as diferenças entre o quadro anterior e o atual.

10.5 A CRIPTOGRAFIA

A criptografia é uma técnica bastante antiga, introduzida principalmente pelas organizaçõesmilitares, particularmente na troca de mensagens em tempo de guerra. Nessas ocasiões, um problema dacriptografia era a dificuldade de decodificação das mensagens criptografadas, muitas vezes tendo de serfeitas nos campos de batalha em condições totalmente adversas. Outro problema era a dificuldade namudança de uma técnica a outra, particularmente devido à dificuldade em informar o grande número depessoas que deveria estar consciente da mudança.

O processo de criptografia de uma mensagem é ilustrado pela figura 10.1. As mensagens a seremcriptografadas são codificadas graças a uma função parametrizada por uma chave, gerando, na saída otexto criptografado ou o criptograma. Este texto é transmitido por um mensageiro ou rádio, este podendoser “escutado” por um espião.

chave de codificação (k)

chave de decodificação

Processo de codificação

ESPIÃO

criptograma

M M

espião passivo espião ativo

Processo de decodificação

Figura 10.1 - O processo de criptografia.

A diferença entre o espião e o destinatário é que, como o primeiro não tem a chave dedecodificação, ele dificilmente vai poder decodificar a mensagem. Os espiões podem efetuar dois tipos deação sobre os criptogramas, copiá-los unicamente para conhecer o seu conteúdo espião passivo oumodificá-los de modo a confundir o destinatário destes espião ativo.

Um princípio das técnicas de criptografia é a suposição de que o espião conhece sempre astécnicas gerais da criptografia, ou seja, que pelo menos o esquema apresentado na figura 10.1 éconhecido. Por outro lado, criar a cada vez um método diferente de criptagem a cada vez que um outro éconsiderado conhecido representa um trabalho considerável.

A forma mais eficiente de tentar «esconder o jogo» é através da introdução das chaves. Aschaves consistem de seqüências de caracteres relativamente curtas que permitem escolher um método de

Page 101: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 101

criptagem em função do seu valor. A vantagem disto é que, enquanto uma técnica de criptagem pode sermodificada numa escala de anos, uma chave pode ser modificada quando se julgar necessário.

Os métodos de criptografia podem ser organizados em duas principais classes: os métodos porsubstituição e os métodos por transposição cujos principais pontos serão vistos a seguir.

10.5.1 A CRIPTAGEM POR SUBSTITUIÇÃO

Nestes métodos, cada letra ou grupo de letras é literalmente substituído por outra letra ou outrogrupo de letras. A técnica mais antiga de criptagem é atribuída a Júlio César, que definiu uma técnicaonde cada letra do alfabeto seria substituída por uma letra que estivesse 3 passos à sua frente ou seja, aseria codificada em D, b seria codificada em E, c seria codificada em F, etc..., e isto de maneira rotativa,de modo que z seria codificado em C. Desta forma, a palavra REDE ficaria... UHGH, portanto,irreconhecível.

Esta técnica poderia ainda ser generalizada, pelo deslocamento do alfabeto de k passos ao invésde 3. A esta técnica generalizada, dá-se o nome de permutação circular.

Uma outra técnica, a substituição monoalfabética, é uma extensão à permutação circular, mas,desta vez, as letras podem ser substituídas por qualquer outra. Por exemplo, se o alfabeto

a b c d e f g h i j k l m n o p q r s t u v w x y z

é substituído por

N B V C X W M L K J H G F D S Q P O I U Y T R E Z A,

a palavra REDE torna-se, agora, OXCX.

Com esta técnica, existem 26! (4.1026) chaves possíveis. Mesmo que o espião conheça a técnica,como ele não conhece a chave, ele teria dificuldade para descobrir o significado do criptograma. Noentanto, esta dificuldade pode ser diminuída se forem consideradas as propriedades naturais da línguautilizada. Na língua inglesa, por exemplo, existem letras que são mais freqüentemente utilizadas, comopor exemplo, as letras e, t, o, ..., os digramas mais freqüentes são th, in, er, ... e os trigramas maisutilizados são the, ing, and e ion. E o trigrama mais utilizado da língua portuguesa? Nos últimos tempos,deve ter sido CPI.

Desta forma, a decodificação de um criptograma obtido com a substituição monoalfabética, éfeita associando-se a letra mais freqüente à letra mais freqüente da língua considerada, os digramas maisfreqüentes àqueles mais freqüentes da língua considerada, etc...

10.5.2 A CRIPTAGEM POR TRANSPOSIÇÃO

Na criptagem por substituição, apesar da substituição das letras, os códigos mantém a ordemcorreta das letras nas palavras e frases. Na codificação por transposição, as letras não são substituídas,mas de fato, transpostas de tal forma a esconder o verdadeiro significado do texto.

Uma técnica de criptagem é mostrada na figura 10.2, denominada transposição por colunas.Nesta técnica as linhas serão trocadas pelas colunas numeradas em função de uma chave que é,normalmente, uma palavra não contendo nenhuma letra repetida. No exemplo, a chave considerada é apalavra PESCAR, onde a ordem das colunas associadas a cada uma das letras vai ser 4-3-6-2-1-5. Assim,um texto como

TRANSFERIR UM MILHÃO PARA A CONTA DE COLLOR vai ficar ...

SUAADONRHAALRRIANOTEMPOCFMOCERAILRTL.

Page 102: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 102

P E S C A R

4 3 6 2 1 5

T R A N S F

E R I R U M

M I L H A O

P A R A A C

O N T A D E

C O L L O R

Texto original: TRANSFERIR UM MILHAO PARA A CONTA DE COLLOR Texto codificado SUAADONRHAALRRIANOTEMPOC FMOCERAILRTL

Figura 10.2 - Exemplo da transposição por colunas.

Page 103: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 103

Capítulo 11 - A Camada de Aplicação

11.1 INTRODUÇÃO

A camada de Aplicação tem por função o gerenciamento dos programas de usuário (programasde aplicação) que executam em máquinas conectadas e utilizam o sistema de comunicação para a troca deinformações.

Os programas de aplicação executando via um sistema de comunicação baseada no modelo OSIvão utilizar-se dos serviços de comunicação oferecidos pela camada de Apresentação, descrita na parteanterior do documento.

Esta camada é a que mantém o contato direto com os usuários da arquitetura de comunicação,abrindo caminho para todos os serviços oferecidos pelas camadas inferiores.

Dentro desta parte, serão estudados os principais aspectos relacionados à camada de Aplicação,particularmente, a sua estrutura e os conceitos associados e alguns exemplos de serviços oferecidos anível de Aplicação.

11.2 ESTRUTURA DA CAMADA DE APLICAÇÃO

A grande diversidade das aplicações podendo ser construídas sobre uma arquitetura decomunicação e a questão da heterogeneidade dos sistemas, fator importante da concepção do modelo OSI,conduziu, no âmbito da ISO, à definição de uma arquitetura unificada para a camada de Aplicação, ALS(Application Layer Structure), definida pela norma ISO 9545.

Nesta definição, a norma não propõe serviço de Aplicação, mas introduz um conjunto deconceitos relacionados à estrutura da camada, que pode servir como base para a definição de outrasnormas ou propostas de serviços de Aplicação.

11.2.1 CARACTERÍSTICAS ESPECÍFICAS DA CAMADA DE APLICAÇÃO

Dado que a camada de Aplicação é a mais alta do modelo OSI, ela não fornece serviço anenhuma outra camada, a noção de conexão ficando, então, inadequada a nível de Aplicação. Por outrolado, a comunicação entre entidades de Aplicação pares deve ser suportada por alguma forma de relaçãoque permita a troca de informações de controle dos protocolos de Aplicação, esta forma de relação sendodefinida como uma Associação de Aplicação.

Os elementos compondo a arquitetura da camada de Aplicação vão se utilizar das facilidadesoferecidas pela camada de Apresentação para a manipulação e a representação de dados, e os mecanismosde controle de diálogo oferecidos pela camada de Sessão. As interações entre os programas aplicativospermitem modelizar a operação cooperativa entre os sistemas abertos reais, necessitando porém ocompartilhamento de uma quantidade de informações que viabilize estas interações, a fim de que otratamento das atividades seja feito de maneira coerente.

Três tipos de informação são, particularmente, relacionados à natureza das interações entre osprogramas aplicativos:

• o conjunto de objetos sujeito às atividades de tratamento de informação;• os procedimentos de controle e de cooperação do tratamento distribuído para a comunicação

entre programas;

Page 104: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 104

• os estados das interações passadas entre programas de aplicação.

11.2.2 CONCEITOS RELACIONADOS À CAMADA DE APLICAÇÃO

As seções que seguem permitem introduzir alguns elementos relacionados à arquitetura dacamada de Aplicação, particularmente, os Processos de Aplicação, as Entidades de Aplicação, asAssociações de Aplicação, entre outras.

Um Processo de Aplicação ou AP (Application Process) representa, de forma abstrata, oselementos de um sistema aberto real que realiza o tratamento de informação no contexto de umaaplicação particular. Dependendo da natureza da aplicação considerada, um Processo de Aplicação podeter necessidade de trocar informações com outros Processos de Aplicação, as interações necessárias a estatroca podendo ser realizadas a partir de um número distinto de partes invocáveis simultaneamente ouseqüencialmente. A atividade de um Processo de Aplicação é caracterizada, formalmente por umainstância ou Invocação de Processo de Aplicação ou API (Application Process Invocation).

Uma Entidade de Aplicação ou AE (Application Entity) representa as capacidades decomunicação (dentro do contexto OSI) de um Processo de Aplicação. Uma ou várias Entidades deAplicação permitem definir o que o ambiente OSI leva em conta para a comunicação de um processo decomunicação. Uma Entidade de Aplicação representa um único Processo de Aplicação. Por outro lado,um mesmo Processo de Aplicação pode reagrupar diversas Entidades de Aplicação. Além disso,diferentes Processos de Aplicação podem ser representados por Entidades de Aplicação de mesmo tipo,um Processo de Aplicação podendo reagrupar diversas Entidades de Aplicação de tipos diferentes. UmaInvocação de Entidade de Aplicação ou AEI (Application Entity Invocation) é uma utilização dascapacidades de uma AE para as atividades de comunicação específicas de um Processo de Aplicação.

Uma Associação de Aplicação ou AA (Application Association) é uma relação cooperativaestabelecida entre duas AEIs para a troca de informações. Uma ou mais AAs são criadas quando duasAEIs devem trocar informações no contexto de uma dada aplicação. Isto significa que uma AEI podemanter, simultânea ou seqüencialmente, mais de uma AA com uma ou diversas AEIs.

Um Elemento de Serviço de Aplicação ou ASE (Application Service Element) compreende umpar serviço-protocolo normalizado que pode constituir uma Entidade de Aplicação. Ele corresponde a umsubconjunto das funções ou facilidades de comunicação oferecidas para o suporte de cooperação entreEntidades de Aplicação. Estas funções e facilidades são definidas pela especificação de um conjunto deUnidades de Dados de Protocolo de Aplicação ou APDUs (Application Protocol Data Units) assimcomo os procedimentos associados à sua utilização, definindo o Protocolo de Aplicação entre doisASEs.

Finalmente, um conceito importante é o de um Contexto de Aplicação, que corresponde aoconjunto de regras e funções a serem implementadas ao longo da duração de uma Associação deAplicação para a gestão das trocas de informações entre AEIs.

As possíveis relações entre os conceitos aqui descritos são ilustradas pela figura 11.1.Outros conceitos importantes no que diz respeito à estrutura da camada de Aplicação são

Objetos de Associação Simples e a Função de Controle de Associação Simples.Os Objetos de Associação Simples ou SAO (Single Association Object) são os elementos que

representam as funções e as informações de estado relacionadas às operações de uma associação deaplicação simples, o conceito de “simples” estando relacionado ao sentido de “único”. Os componentesbásicos de um SAO são o Elemento de Serviço de Controle de Associação ou ACSE (AssociationControl Service Element) e a Função de Controle de Associação Simples ou SACF (Single AssociationControl Function) que serão definidas mais adiante. Um SAO representa igualmente a operação de umconjunto de ASEs existentes numa AEI para uma associação de Aplicação particular.

A Função de Controle de Associação Simples é o elemento que representa a coordenação dasinterações e a utilização dos elementos de um SAO.

Page 105: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 105

AE CONTEXTO DE APLICAÇÃO

ASSOCIAÇÕES CONSECUTIVAS OU SIMULTÂNEAS

AEI

AP API

AE AEI

ASEs ASEs AE AEI

AP API

Figura 11.1 - Conceitos da arquitetura da camada de Aplicação.

11.2.3 EXEMPLOS DE ESTRUTURAS DE AEIS

A forma como uma AEI pode ser composta a partir dos diversos elementos definidos acima éilustrada a partir de dois exemplos, apresentados nas figuras 11.2 e 11.3, respectivamente.

ACSE

S A C F

ASE

SAO

AEI

Camada de Aplicação

Camada de Apresentação

A S S O C I A Ç Ã O

D E

A P L I C A Ç Ã O

Figura 11.2 - Uma AEI simples.

Page 106: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 106

ACSE

S A C F

ASE 1 SAO 1

AEI

Camada de Aplicação

Camada de Apresentação

ASE 2

ACSE

S A C F

ASE 3

SAO 2

ASE 4

ACSE

S A C F

ASE 3

SAO 3

ASE 5

MACF

Figura 11.3 - AEI com múltiplas associações.

Em 11.2, é apresentado um caso simples de uma AEI envolvida numa associação de Aplicaçãoúnica. Ela é composta então de um SAO, constituído por dois ASEs e uma função de controle.

Em 11.3, é apresentada uma AEI envolvida em três associações. No caso de múltiplasassociações, algumas atividades de uma mesma aplicação podem ser distribuídas sobre váriasassociações. Neste caso, estas atividades devem ser coordenadas e ordenadas através de um conjunto defunções da própria aplicação. Este conjunto de funções é reagrupado, no modelo da camada de Aplicação,por um elemento denominado Função de Controle de Associações Múltiplas ou MACF (MultipleAssociation Control Function).

Na figura 11.3, uma das associações é utilizada de maneira totalmente independente das demais,enquanto as duas outras são utilizadas num mesmo conjunto de atividades que requerem a existência deuma MACF.

11.3 O ELEMENTO DE SERVIÇO ACSE

A gestão de conexões é um dos problemas a serem resolvidos pela camada de Aplicação, deforma a evitar que cada aplicação desenvolvida tenha de resolver esta questão à sua maneira. Assim, anível desta camada, foi definido um Elemento de Serviço de Controle de Associação, o ACSE(Association Control Service Element) que assume esta tarefa.

Como a totalidade das aplicações conhecidas requer normalmente os serviços de gestão deconexão, este elemento de serviços deve estar sempre presente a nível dos contextos de Aplicação.

Nas seções que seguem, apresentaremos os serviços supridos por este elemento de serviço, assimcomo as interfaces deste com os serviços das camadas inferiores.

11.3.1 OS SERVIÇOS OFERECIDOS PELO ACSE

Os serviços oferecidos pelo ACSE são definidos pelas primitivas apresentadas no quadro aseguir.

Page 107: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 107

PRIMITIVA SIGNIFICADOA-ASSOCIATEA-RELEASE

Estabelecimento de conexãoLiberação negociada de conexão

A-ABORTA-P-ABORT

Liberação abrupta de conexão (usuário)Liberação abrupta de conexão (fornecedor)

O A_ASSOCIATE é um serviço confirmado que permite estabelecer uma associação a partir deum elemento de serviço de aplicação. Dentre os parâmetros da primitiva de serviço, é enviada aproposição de contexto de Aplicação. Em caso de aceitação por parte do receptor da indicação, aassociação será então estabelecida.

O serviço A_RELEASE é um serviço confirmado que permite liberar, de maneira ordenada, umaassociação estabelecida entre duas AEIs, caracterizando uma liberação negociada, como definido na parterelativa à camada de Sessão.

A_ABORT é um serviço não confirmado que permite “abortar”, ou liberar de forma abrupta umaassociação existente. Como já descrito anteriormente, neste caso podem ocorrer perdas de informaçõessendo trocadas através da associação. A ativação deste serviço é de iniciativa do usuário do ACSE.A_ABORT e pode ser ativado pelo iniciador do serviço A_ASSOCIATE, no caso em que não existaconcordância a respeito do contexto de aplicação a utilizar.

A_P_ABORT é o serviço que efetua o mesmo que A_ABORT, sendo que, desta vez, a iniciativaé do fornecedor do serviço.

11.3.2 AS INTERFACES DO ACSE COM OS SERVIÇOS DE APRESENTAÇÃO

O ACSE tem acesso a serviços de duas das camadas inferiores, particularmente, a camadaimediatamente inferior, de Apresentação, e a camada de Sessão.

No que diz respeito aos serviços de Apresentação, uma primeira correspondência que se podeestabelecer é o de uma associação com uma conexão de Apresentação. Deste ponto de vista, existem umacorrespondência de um para um, ou seja, uma associação de Aplicação corresponde a uma conexão deApresentação. O ACSE necessita utilizar unicamente os serviços de base da camada de Apresentação, ouseja, os serviços P_CONNECT, P_RELEASE e P_U_ABORT. O iniciador do serviço A_ASSOCIATEdeve determinar o contexto de Apresentação pretendido.

11.4 OUTROS ELEMENTOS DE SERVIÇO

A tabela a seguir apresenta os principais padrões utilizados no nível de aplicação. O ACSE foiapresentado no item anterior. Alguns outros serão descritos brevemente a seguir.

NOME ISO CCITTACSE Association Control Service Element ISO8649 / ISO8650 X.217 / X.227RTSE Realiable Transfer Service Element ISO9066 Partes 1 e 2 X.218 / X.228ROSE Remote Operations Service Element ISO9072 Partes 1 e 2 X.219 / X.229CCR Commitment, Concurrency and Recovery ISO9804 / ISO9805MHS Message Handling Systems ISO10021 Partes 1 - 7 X.400 - X.420EDS Electronic Diretory Services ISO9594 Partes 1 - 8 X.500 - X.521FTAM File Transfer, Access and Management ISO8571 Partes 1 - 4VT Virtual Terminal ISO9040 / ISO9041JTM Job Transfer Manipulation ISO8831 / ISO8832DTP Distributed Transaction Processing ISO10026 Partes 1 - 3MMS Macnufacturing Message Service ISO9506 Partes 1 e 2CMIP Common Management Information Protocol ISO9595 / ISO9596 X. 710 / X. 711RDA Remote Database Access ISO8613 Partes 1-8 T.411 - T.418EDI Electronic Data Interchange ISO9735

Page 108: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 108

11.4.1 TRANSFERÊNCIA CONFIÁVEL (RTSE)

Independente de sua complexidade, a quantidade de dados do usuário trocados a nível deaplicação pode ser muito grande e pode haver falhas na conexão quando estes dados estão sendo trocados.Uma vez restabelecida a conexão, a troca de dados deve continuar, sem perdas. O serviço de sessão jáproporciona algumas facilidades através de pontos de sincronismo e atividades. As Aplicações requeremduas outras facilidades:

• o serviço deve tratar com tipos de dados ASN.1 (APDUs) ao invés de um string de octetos(SSDUs);

• a complexidade do serviço de sessão subjacente deve ser abstraída em um serviço único efacilmente utilizável.

O RTSE proporciona este serviço para outras ASEs na entidade de aplicação. Ele usa serviços doACSE, da camada de apresentação e da camada de sessão e oferece aos seus usuários um nível adicionalde abstração dos serviços oferecidos pelo ACSE e pelas camadas de apresentação e sessão, não sendonecessário que eles saibam utilizá-los. Quando uma entidade de aplicação contém um RTSE somente opróprio RTSE pode acessar o ACSE e a camada de apresentação.

Em situações de erro o RTSE interrompe a atividade em curso e a retoma a partir do últimoponto de sincronização confirmado. Se o erro for mais grave, a atividade pode ser descartada, e uma novaatividade deve ser estabelecida e a transferência pode ser reiniciada. Cada primitiva RTSE é mapeada emuma primitiva ACSE.

11.4.2 OPERAÇÕES REMOTAS (ROSE)

O serviço ROSE oferece suporte a aplicações interativas. Ele opera de maneira equivalente auma chamada de procedimento remoto (RPC). É bastante útil no suporte a aplicações distribuídas quandouma aplicação que solicita a execução de uma operação a outra aplicação, que pode devolver ou não oresultado correspondente. A entidade que solicita uma operação é a invocadora e a que executa é aexecutora.

As entidades de aplicação somente podem utilizar os serviços do ROSE se já houver umaassociação de aplicação estabelecida. Neste caso podem existir 3 classes de associação:

• Classe 1: somente a entidade iniciadora da associação pode invocar operações;• Classe 2: somente a entidade respondedora da associação pode invocar operações;• Classe 3: ambas as entidades, iniciadora e respondedora da associação, podem invocar

operações.

São definidas também classes de operação que são caracterizadas pelo tipo de interação(síncrona ou assíncrona) e pelo comportamento da entidade executora. O ROSE não pode ser utilizadoisoladamente, geralmente utilizado em aplicações envolvendo MHS, DS e gerenciamento OSI.

11.4.3 CONFIABILIDADE, CONCORRÊNCIA E RECUPERAÇÃO (CCR)

Deve prover mecanismos que permitam que duas aplicações residentes em sistemas abertosdistintos possam coordenar seu processamento, garantindo que a execução das unidades de trabalho sóocorra quando tais aplicações estejam prontas e aptas para fazê-lo. Este serviço provê mecanismos derecuperação de informações para um estado pré-estabelecido quando acontece alguma falha deprocessamento ou comunicação durante a execução das unidades de trabalho. Alguns conceitosenvolvidos são:

• Ação Atômica: unidade de processamento indivisível, podendo uma aplicação realizar umaseqüência de ações atômicas;

• Bound Data: dados manipulados dentro do escopo de cada ação atômica.

Os papéis que os usuários podem assumir quando o CCR é utilizado são mestre e subordinado.Os serviços do CCR prestados através de dois procedimentos básicos são:

• Two-phase-commitment;• Recuperação de erros.

Page 109: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 109

Two-phase-commitment: ocorre em duas fases: a primeira fase inicia quando o usuário mestresinaliza o início de uma ação atômica, dentro deste contexto os usuários envolvidos trocam dados entre si.Finalizada a troca de dados o usuário mestre pergunta ao subordinado se ele está pronto para atualizar osrespectivos dados. A resposta pode ser positiva ou negativa, e encerra-se a primeira fase. Na segundafase, se a resposta for positiva o usuário mestre atualiza os próprios dados e solicita que o subordinadofaça o mesmo. Feito isso o subordinado avisa o mestre encerrando a segunda fase. No caso de respostanegativa acontece um rollback, isto é, os dois usuários retornam seus dados aos valores anteriores.

A recuperação de erros ocorre desde que mestre e subordinado registrem, de maneira segura,determinados eventos. O usuário mestre atualiza os registros commit log record no fim da primeira fasede commitment, antes de comunicar-se com o subordinado e apaga-os depois de receber do subordinado aconfirmação desta atualização. O usuário subordinado: atualiza os registros ready log record antes deconfirmar o fim da primeira fase de commitment e apaga-os quando termina de atualizar seus dados nofinal da segunda fase de commitment.

Quando ocorre alguma falha de comunicação ou de processamento os dois usuários restabelecema comunicação e iniciam o processo de recuperação. O CCR também é responsável pelo controle deconcorrência, possuindo mecanismos que permitem coordenar a atualização de dados por múltiplas açõesatômicas concorrentes. O

CCR trabalha com um par de aplicações, em ambientes distribuídos, onde estão envolvidasvários processos de aplicação. Estes devem ser organizados numa estrutura de árvore de ações atômicaspor pares de processos, com ações coordenadas pelo TP.

11.4.4 PROCESSAMENTO DE TRANSAÇÕES (TP)

Tem como objetivo prover a infra-estrutura necessária ao suporte do processamento detransações distribuídas envolvendo vários sistemas abertos. Uma transação distribuída pode serconsiderada como um conjunto lógico de operações que constitui uma unidade de trabalho caracterizadapor propriedades denominadas ACID – Atomicidade, Consistência, Isolação, Durabilidade.

• Atomicidade: uma unidade de trabalho sempre é executada de maneira completa ou não éexecutada;

• Consistência: uma unidade de trabalho deve ser executada de maneira precisa, correta eválida em relação à semântica da aplicação;

• Isolação: os resultados intermediários de uma unidade de trabalho não devem tornar-sedisponíveis a não ser para as operações que fazem parte de uma unidade de trabalho;

• Durabilidade: os efeitos da realização de uma unidade de trabalho não podem ser alteradospor nenhuma falha que venha a ocorrer posteriormente.

O TP deve prover facilidades e mecanismos que permitam o commitment e rollback de umatransação e dos dados correlacionados. Ele utiliza os serviços do CCR e do ACSE e serve de mediadordesses elementos de serviço de aplicação operando em um ambiente que pode englobar a existência devárias associações de aplicação simultânea.

11.5 ACESSO E TRANSFERÊNCIA DE ARQUIVOS (FTAM)

Em 1987, foi publicada pela ISO a versão definitiva da norma de serviços de acesso etransferência de arquivos, FTAM (File Transfer, Access and Management), com o número ISO 8571. Anorma cobre um dos assuntos mais importantes da interconexão de sistemas, uma vez que ela normaliza oprotocolo que permite oferecer os serviços de acesso e transferência de arquivos.

FTAM permite a transferência do todo ou de parte de um arquivo, ao destinatário ou a umaestação (sistema) distante, oferecendo ainda serviços de controle de erros, retomada imediata ou não,controle de acesso a arquivos (acesso seletivo, proteção, ...) e modificação dos atributos de um arquivo.

O tratamento de arquivos via FTAM é baseado no conceito de arquivo virtual, que permiterepresentar, para os serviços FTAM o arquivo real. A relação entre estes elementos é apresentada nafigura 11.4. A noção de arquivo virtual permite tornar transparente ao usuário as diferentes formas dearmazenamento e os métodos de acesso dos sistemas de arquivo real. FTAM permite estabelecer asrelações entre o sistema de arquivos real e os sistemas de arquivos virtuais.

Page 110: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 110

Sistema Real C

ARQUIVO REAL C

Ambiente OSI

ARQUIVO VIRTUAL C

ARQUIVO VIRTUAL B

protocolo FTAMARQUIVO VIRTUAL A

Sistema Real A

ARQUIVO REAL A

Sistema Real B

ARQUIVO REAL B

Figura 11.4 - Relação entre arquivos virtuais e arquivos reais.

11.5.1 O SERVIDOR VIRTUAL DE ARQUIVOS

Um servidor virtual de arquivos reagrupa todas as informações relativas aos arquivos, estas,permitindo conhecer o estado de um arquivo num dado instante. O modelo definido para o servidor dearquivos virtuais contém atributos os mais genéricos possíveis quanto à representação dos aspectos de umservidor de arquivos reais.

Este é modelado como uma entidade endereçável com a qual um usuário remoto pode secomunicar, utilizando os serviços FTAM. A princípio, um número arbitrário de usuários pode serassociado a um mesmo servidor virtual de arquivos num dado instante.

Ainda, um servidor virtual de arquivos pode gerenciar um número arbitrário de arquivos, ondecada arquivo é caracterizado por atributos tais como: o nome, ações possíveis sobre o arquivo (leitura,inserção, substituição, ...), controle de acesso (somente leitura, somente escrita, ...), tamanho do arquivo,identidade do criador, data e hora de criação, identidade do último modificador, data e hora demodificação, etc... A seleção de um arquivo é caracterizada por duas etapas: o estabelecimento de umaassociação entre o usuário querendo selecioná-lo e o servidor virtual de arquivos; o fornecimento daidentidade do arquivo a selecionar.

A estrutura de acesso aos arquivos num servidor virtual de arquivos assume a formaarborescente, coerente com as estruturas mais genéricas dos sistemas reais de arquivos. Esta estrutura éilustrada pela figura 11.5, onde se pode ver um único nó raiz (R), nós internos (A, E) e folhas (B, C, D,F) conectadas por arcos dirigidos.

Um nó da árvore pode pertencer a um único nível, podendo, por sua vez, servir de acesso à suasub-árvore, conhecida como uma Unidade de Dados de Acesso a Arquivo ou FADU (File Access DataUnit). O conteúdo de um arquivo pertencente ao servidor de arquivos é mantido numa ou mais Unidadede Dados ou DU (Data Unit). Uma DU é um objeto de dados tipado (escalar, vetor, conjunto, ...),contendo elementos de dados atômicos denominados Elementos de Dados, aos quais é normalmenteassociada uma sintaxe abstrata (caractere, byte, inteiro, ...). Os serviços associados a um servidor virtualde arquivos são acessados via primitivas de serviço, que serão apresentadas na seção a seguir.

Page 111: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 111

DU

DU

NÍVEL 0

NÍVEL 1

NÍVEL 2

R

A

B C

E

F D

FADU

FADU

FADU

DUDU DU DU

DU

Figura 11.5 - Estrutura de acesso do servidor virtual de arquivos.

11.5.2 AS PRIMITIVAS DE SERVIÇO DE FTAM

Os serviços oferecidos por FTAM para o acesso e a transferência de arquivos são organizadosem unidades denominadas regimes. Os regimes correspondem a etapas da manipulação de arquivos, oquadro a seguir apresenta o conjunto de primitivas associado a cada um deles.

O FTAM, como foi apresentado, constitui-se de um importante elemento de serviço de aplicação(ASE) para as aplicações que exijam manipulação ou transferência de arquivos, sejam aplicações deautomação de escritório ou de automação da manufatura. No que diz respeito a esta segunda classe deaplicações, podemos destacar como um importante elemento de serviço de aplicação, o ASE MMS(Manufacturing Message Services).

CONEXÃO DE APLICAÇÃO autorização e informações para operaçãoF_INITIALIZE inicialização da associaçãoF_TERMINATE terminação negociada de associaçãoF_ABORT terminação abrupta da associação

SELEÇÃO DE ARQUIVO identificação de arquivos a manipularF_SELECT seleção de um arquivo existenteF_CREATE criação de um arquivoF_DESELECT liberação de um arquivoF_DELETE eliminação de um arquivoF_READ_ATTRIB leitura dos atributos do arquivoF_CHANGE_ATTRIB modificação de atributos de um arquivoACESSO A ARQUIVO abertura, fechamento, etc...F_OPEN abertura de um arquivoF_CLOSE fechamento de arquivoF_LOCATE localização de um arquivoF_ERASE eliminação de conteúdo de um arquivo

TRANSF. DE DADOS etapa de transferência de dados entre arquivosF_READ leitura do conteúdo de um arquivoF_WRITE escrita sobre um arquivoF_DATA transferência de dadosF_DATA_END transferência de fim de dadosF_TRANSFER_END fim de transferência de dados

Page 112: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 112

Capítulo 12 - Bibliografia

SOARES, L. F. G.; LEMOS, G.; COLCHER, S.Redes de Computadores: Das LANs, MANs e WANs às Redes ATM, 2ª Edição. Ed. Campus, Rio deJaneiro, 1997.

TANENBAUM, A. S.Computer Networks, 3a edição, Ed. Prentice Hall, New York, 1996.

CARVALHO, T. C. M. B. et alli.Arquiteturas de Redes de Computadores: OSI e TCP/IP, Ed. Makron Books, São Paulo, 1994.

GIOZZA, W. F. et alli.Redes Locais de Computadores - Tecnologia e Aplicações, McGraw-Hill, São Paulo, 1986.

RUDNIANSKI, M.Architecture de Réseaux: le modèle ISO - Rôle et Fonctionnalités, Editests, Paris, 1986.

Page 113: CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO · 2003-03-13 · Universidade Católica do Rio Grande do Sul em 1978, obteve o título de Mestre em Ciências da Computação

Arquiteturas de Redes 113