Anda di halaman 1dari 113

CURSO DE PS-GRADUAO EM CINCIA DA COMPUTAO

PROFa ELIZABETH SPECIALSKI INE - UFSC beth@inf.ufsc.br

FLORIANPOLIS, MARO DE 2000

Apresentao

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


Elizabeth Sueli Specialski graduou-se em Matemtica pela Pontifcia Universidade Catlica do Rio Grande do Sul em 1978, obteve o ttulo de Mestre em Cincias da Computao pela Universidade Federal do Rio Grande do Sul em 1981 e o ttulo de Doutora em Engenharia pela Universidade Federal de Santa Catarina em maro de 2000. professora no nvel Adjunto IV da Universidade Federal de Santa Catarina e vem atuando em pesquisa e formao na rea de Redes de Computadores e de Gerncia de Redes de Computadores e de Telecomunicaes junto ao Departamento de Informtica e de Estatstica da UFSC nos cursos de Graduao em Computao e PsGraduao em Computao e em Engenharia de Produo. Seu desempenho traduzido pela publicao de mais de 50 trabalhos em Congressos Nacionais e Internacionais, palestras convidadas e consultorias realizadas junto a empresas fornecedoras de produtos e servios de telecomunicaes.

Endereo para contato:

Prof. Elizabeth Sueli Specialski Departamento de Informtica e de Estatstica Universidade Federal de Santa Catarina Campus Universitrio Trindade 88040-900 Florianpolis SC Tel.: (048) 331-9498 Fax: (048) 331-9566 E-mail: beth@inf.ufsc.br

Arquiteturas de Redes

Sumrio

Captulo 1 - Introduo s Redes de Comunicao ............................................................. 6 1.1 INTRODUO ........................................................................................................................... 6 1.2 HISTRICO DAS REDES DE COMUNICAO ................................................................................ 7 1.3 IMPORTNCIA DAS REDES DE COMUNICAO ........................................................................... 8 1.4 O HARDWARE DE REDE ........................................................................................................... 9 1.4.1 As diferentes topologias................................................................................................... 9 1.4.2 Topologia fsica X topologia lgica ............................................................................... 11 1.4.3 Categorias de redes....................................................................................................... 11 1.5 O SOFTWARE DE REDE ........................................................................................................... 12 1.5.1 Servios necessrios comunicao.............................................................................. 12 1.5.2 A organizao de funes .............................................................................................. 14 1.5.3 A estruturao em camadas ........................................................................................... 15 Captulo 2 - Conceitos Bsicos do Software de Rede ........................................................ 17 2.1 2.2 2.3 2.4 2.5 2.6 2.7 INTRODUO ......................................................................................................................... 17 HIERARQUIA DE PROTOCOLOS ................................................................................................ 17 DIFERENAS ENTRE SERVIO E PROTOCOLO ........................................................................... 19 QUESTES DE PROJETO RELACIONADAS S CAMADAS.............................................................. 19 INTERFACES E SERVIOS ........................................................................................................ 20 SERVIOS ORIENTADOS CONEXO E SEM CONEXO .............................................................. 21 PRIMITIVAS DE SERVIO ........................................................................................................ 22

Captulo 3 - Arquiteturas de Redes ..................................................................................... 25 3.1 INTRODUO ......................................................................................................................... 25 3.2 CLASSIFICAO DAS REDES DE COMPUTADORES .................................................................... 25 3.2.1 Redes Locais ................................................................................................................. 25 3.2.2 Redes Metropolitanas .................................................................................................... 26 3.2.3 Redes Geograficamente Distribudas ............................................................................. 26 3.2.4 Redes Sem Fio............................................................................................................... 27 3.2.5 Ligao entre Redes ...................................................................................................... 28 3.2.6 Parmetros de comparao ........................................................................................... 28 3.3 AS ARQUITETURAS DE REDE .................................................................................................... 29 3.4 A ARQUITETURA DO RM/OSI................................................................................................. 30 3.5 A ARQUITETURA TCP/IP INTERNET .................................................................................... 30 3.6 AS REDES LOCAIS.................................................................................................................. 31 3.6.1 O RM-OSI e as redes locais ........................................................................................... 31 3.6.2 O padro IEEE 802 ....................................................................................................... 32 3.6.3 Interconexo de redes locais.......................................................................................... 33 Captulo 4 - Modelos de Referncia..................................................................................... 35 4.1 INTRODUO ......................................................................................................................... 35 4.2 O MODELO DE REFERNCIA OSI ............................................................................................. 35 4.2.1 As camadas do RM-OSI................................................................................................. 37 4.3 O MODELO DE REFERNCIA TCP/IP ........................................................................................ 39 4.3.1 As camadas do TCP/IP.................................................................................................. 39 4.4 ATM E O MODELO DE REFERNCIA B-ISDN .......................................................................... 42 4.4.1 Elementos bsicos ATM................................................................................................. 43 4.4.2 Camadas de Adaptao ATM......................................................................................... 44

Arquiteturas de Redes

4.4.3 Estrutura da AAL .......................................................................................................... 46 4.4.4 Meio de Transmisso..................................................................................................... 46 4.4.5 Camada fsica do modelo de referncia B-ISDN............................................................. 47 4.5 OUTROS EXEMPLOS DE REDES ................................................................................................ 47 Captulo 5 - A Camada Fsica............................................................................................... 50 5.1 INTRODUO ......................................................................................................................... 50 5.2 OS SUPORTES DE TRANSMISSO .............................................................................................. 50 5.2.1 O par de fios tranados ................................................................................................. 50 5.2.2 Os cabos coaxiais.......................................................................................................... 50 5.2.3 As fibras ticas.............................................................................................................. 51 5.2.4 As redes sem fio (radiodifuso)...................................................................................... 51 5.3 ASPECTOS DA TRANSMISSO DE DADOS .................................................................................. 52 Captulo 6 - A Camada de Enlace de Dados........................................................................ 55 6.1 INTRODUO ......................................................................................................................... 55 6.2 AS CLASSES DE SERVIOS DE ENLACE .................................................................................... 55 6.3 AS PRIMITIVAS DE ENLACE..................................................................................................... 56 6.4 O CONCEITO DE QUADRO........................................................................................................ 57 6.5 O CONTROLE DE ERRO............................................................................................................ 58 6.5.1 Os cdigos de correo de erro ..................................................................................... 59 6.5.2 Os cdigos de deteco de erro...................................................................................... 60 6.5.3 Procedimentos para controle de erro ............................................................................. 61 6.6 O CONTROLE DE FLUXO ......................................................................................................... 64 6.7 O CONTROLE DE ACESSO AO MEIO .......................................................................................... 65 6.8 ALGUNS EXEMPLOS DE PROTOCOLOS DE ENLACE..................................................................... 66 Captulo 7 - A Camada de Rede........................................................................................... 68 7.1 INTRODUO ......................................................................................................................... 68 7.2 SERVIOS OFERECIDOS PELA CAMADA DE REDE ...................................................................... 68 7.3 ORGANIZAO INTERNA DA CAMADA DE REDE ....................................................................... 70 7.4 AS PRIMITIVAS DE SERVIO DE REDE....................................................................................... 71 7.5 O ENDEREAMENTO DE REDE................................................................................................. 73 7.6 A FUNO DE ROTEAMENTO .................................................................................................. 74 7.6.1 Algoritmo do caminho mais curto .................................................................................. 74 7.6.2 Roteamento multicaminhos ............................................................................................ 75 7.7 O CONTROLE DE CONGESTIONAMENTO ................................................................................... 76 7.7.1 A pr-alocao de buffers .............................................................................................. 76 7.7.2 A destruio de pacotes ................................................................................................. 77 7.7.3 O controle de fluxo ........................................................................................................ 77 7.7.4 Outras tcnicas.............................................................................................................. 77 7.8 LIGAES INTER-REDES ......................................................................................................... 77 Captulo 8 - A Camada de Transporte ................................................................................. 79 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 INTRODUO ......................................................................................................................... 79 SERVIOS OFERECIDOS PELA CAMADA DE TRANSPORTE ........................................................... 79 AS PRIMITIVAS DE SERVIO DE TRANSPORTE .......................................................................... 80 OS PROTOCOLOS DE TRANSPORTE .......................................................................................... 82 ENDEREAMENTO.................................................................................................................. 84 MULTIPLEXAO E SPLITTING................................................................................................. 87 ESTABELECIMENTO E ENCERRAMENTO DE CONEXES .............................................................. 87 CONTROLE DE FLUXO E BUFFERIZAO .................................................................................. 87

Captulo 9 - A Camada de Sesso ....................................................................................... 88 9.1 9.2 9.3 9.4 9.5 9.6 INTRODUO ......................................................................................................................... 88 SERVIOS OFERECIDOS PELA CAMADA DE SESSO ................................................................... 88 SESSO X TRANSPORTE: SIMILARIDADES E DIFERENAS .......................................................... 89 A GESTO DO DILOGO .......................................................................................................... 90 A SINCRONIZAO................................................................................................................. 91 GERENCIAMENTO DE ATIVIDADES........................................................................................... 92 4

Arquiteturas de Redes

9.7

AS PRIMITIVAS DE SERVIO DE SESSO ................................................................................... 93

Captulo 10 - A Camada de Apresentao........................................................................... 95 10.1 INTRODUO ......................................................................................................................... 95 10.2 AS PRIMITIVAS DE SERVIO DA CAMADA DE APRESENTAO ................................................... 95 10.3 A NOTAO ASN.1 ............................................................................................................... 96 10.4 A COMPRESSO DE DADOS ..................................................................................................... 98 10.4.1 Codificao de um alfabeto finito de smbolos................................................................ 98 10.4.2 Codificao dependente da freqncia........................................................................... 99 10.4.3 Codificao baseada no contexto................................................................................... 99 10.5 A CRIPTOGRAFIA ................................................................................................................. 100 10.5.1 A criptagem por substituio ....................................................................................... 101 10.5.2 A criptagem por transposio ...................................................................................... 101 Captulo 11 - A Camada de Aplicao ................................................................................103 11.1 INTRODUO ....................................................................................................................... 103 11.2 ESTRUTURA DA CAMADA DE APLICAO .............................................................................. 103 11.2.1 Caractersticas especficas da camada de Aplicao.................................................... 103 11.2.2 Conceitos relacionados camada de Aplicao........................................................... 104 11.2.3 Exemplos de Estruturas de AEIs .................................................................................. 105 11.3 O ELEMENTO DE SERVIO ACSE .......................................................................................... 106 11.3.1 Os servios oferecidos pelo ACSE................................................................................ 106 11.3.2 As interfaces do ACSE com os servios de Apresentao.............................................. 107 11.4 OUTROS ELEMENTOS DE SERVIO ......................................................................................... 107 11.4.1 Transferncia Confivel (RTSE) .................................................................................. 108 11.4.2 Operaes Remotas (ROSE) ........................................................................................ 108 11.4.3 Confiabilidade, Concorrncia e Recuperao (CCR) ................................................... 108 11.4.4 Processamento de Transaes (TP).............................................................................. 109 11.5 ACESSO E TRANSFERNCIA DE ARQUIVOS (FTAM) ................................................................ 109 11.5.1 O servidor virtual de arquivos ..................................................................................... 110 11.5.2 As primitivas de servio de FTAM................................................................................ 111 Captulo 12 - Bibliografia ....................................................................................................112

Arquiteturas de Redes

Captulo 1 - Introduo s Redes de Comunicao

1.1

INTRODUO

A histria nos mostra que cada um dos ltimos sculos foi dominado por uma tecnologia diferente. A revoluo industrial no sculo XVIII, as mquinas a vapor no sculo XIX e a tecnologia da informao no sculo XX. Exemplos disto so as redes de telefonia em escala mundial, o rdio, a televiso, os computadores e os satlites de comunicao. Com estas conquistas, o conceito de distncia geogrfica tornou-se, em alguns casos, um fator pouco importante para a soluo de problemas. Apesar da indstria da informtica ser muito jovem se comparada a outros setores (a de automveis e de avies, por exemplo), os progressos ocorridos foram espetaculares em um curto espao de tempo. Nas duas primeiras dcadas de sua existncia, os sistemas computacionais eram acondicionados em uma grande sala com paredes de vidro, atravs das quais a maior parte dos visitantes, e at usurios, podiam contemplar extasiados aquela maravilha eletrnica. Uma empresa de mdio porte ou uma universidade contava apenas com um ou dois computadores, enquanto grandes instituies tinham, no mximo, algumas dezenas. Era pura fico cientfica a idia de que, em apenas 20 anos, haveria milhes de computadores muito mais avanados, do tamanho de um selo postal, ou ainda menor. A fuso dos computadores e das comunicaes teve uma profunda influncia na forma como os sistemas computacionais foram organizados. Est totalmente ultrapassado o conceito de centro de computao como uma sala onde os usurios levam os programas para serem processados. Este conceito foi substitudo pelas chamadas redes de computadores, nas quais os trabalhos podem ser realizados por uma srie de computadores interconectados. Sendo assim, uma necessidade o conhecimento, por parte do pessoal envolvido com informtica, dos conceitos e funcionamento das redes de computadores. importante ento conceituar o que entendemos por redes de computadores. Ns usaremos o termo rede de computadores para designar um conjunto de computadores autnomos e interconectados. Dois computadores so interconectados quando podem trocar informaes atravs de algum mecanismo de comunicao. Quando dizemos que eles devem ser autnomos desejamos excluir os sistemas onde existe uma clara relao mestre/escravo. Outro esclarecimento importante fazer uma clara distino entre uma rede de computadores e um sistema distribudo. A principal diferena entre eles que, em um sistema distribudo, a existncia de diversos computadores autnomos transparente para o usurio. A transparncia de utilizao dada pelo sistema operacional. Em suma, o usurio de um sistema distribudo no tem conscincia de que h vrios processadores. Para ele como se existisse um processador virtual e todas as atividades para execuo de uma tarefa acontecem de forma o mais automatizada possvel. Por outro lado, em uma rede, o usurio necessita realizar explicitamente suas tarefas, tais como: fazer o login em uma mquina, realizar a transferncia de seus arquivos, submeter suas tarefas remotas, entre outras. Na prtica, um sistema distribudo um sistema de software instalado em uma rede, proporcionando um alto grau de coeso e transparncia ao usurio. o software, ou o sistema operacional, que determina a diferena entre uma rede e um sistema distribudo, no o hardware. No entanto os dois assuntos possuem uma srie de pontos em comum, por exemplo: os sistemas distribudos e as redes necessitam movimentar arquivos. A diferena est em quem o responsvel pela movimentao: o sistema operacional ou o usurio.

Arquiteturas de Redes

1.2

HISTRICO DAS REDES DE COMUNICAO

A evoluo da microeletrnica e da informtica tem possibilitado a obteno de processadores e outros componentes de computadores cada vez mais potentes e velozes, num tamanho mais reduzido e num preo cada vez mais acessvel a um maior nmero de pessoas. Os microprocessadores existentes hoje em dia, que ocupam o espao menor do que uma caixa de fsforos, substituem e ultrapassam as capacidades dos computadores de alguns anos atrs, que ocupavam salas inteiras. Estes eram mquinas bastante complexas no que diz respeito sua utilizao, sendo operadas apenas por especialistas. Os usurios daqueles computadores normalmente submetiam seus programas aplicativos como jobs (ou tarefas) sem qualquer interao com o processamento do programa. Uma primeira tentativa de interao com o computador ocorreu no incio dos anos 60, com a tcnica de time-sharing, que foi o resultado do desenvolvimento dos sistemas computacionais e da tecnologia de transmisso de dados. Nesta tcnica, um conjunto de terminais era conectado a um computador central atravs de linhas de comunicao de baixa velocidade, o que permitia aos usurios interagir com os seus programas. A necessidade de conexo de terminais para o processamento interativo foi o ponto de partida para o estabelecimento de necessidades de comunicao nos computadores. A tcnica de time-sharing permitia a um grande conjunto de usurios o compartilhamento de um nico computador para a resoluo de uma grande diversidade de problemas e as aplicaes desenvolvidas foram cada vez mais se multiplicando e se diversificando (clculos complexos, produo de relatrios, ensino de programao, aplicaes militares, etc). Este aumento na demanda implicava numa necessidade crescente de atualizaes e incremento na capacidade de clculo e de armazenamento nas CPUs, o que nem sempre era vivel ou possvel, dado que os computadores do tipo mainframes nem sempre eram adaptados para suportar determinadas extenses. O avano tecnolgico na rea dos circuitos integrados, gerando componentes mais poderosos a um custo mais baixo, foi caindo o preo da CPU. Este evento constituiu a chamada revoluo do hardware. Nos anos 70, com o surgimento dos minicomputadores, foi possvel adaptar as capacidades de processamento s reais necessidades de uma dada aplicao. Alm disso, um grande nmero de usurios operavam sobre conjuntos comuns de informaes, gerando a necessidade de compartilhamento de dados, de dispositivos de armazenamento e de perifricos entre os vrios departamentos de uma empresa. Isto deu um novo impulso aos trabalhos no sentido de resolver os problemas de comunicao entre os computadores. Este novo tipo de aplicaes exigia velocidade e capacidade de transmisso muito mais elevadas que no caso da conexo de terminais a um computador central. Assim, com a utilizao de minicomputadores interconectados, obtinha-se muitas vezes uma capacidade de processamento superior quela possvel com a utilizao dos mainframes. Outro aspecto interessante que as redes podiam ser estendidas em funo das necessidades de processamento das aplicaes. Alm disso, a modularidade natural das redes de computadores era tal que uma falha num minicomputador ou na rede tinha um efeito bastante limitado em relao ao processamento global. O surgimento dos minicomputadores e dos computadores pessoais trouxe uma nova soluo para o problema de mquinas multi-usurio pois dava uma CPU para cada um deles. As pequenas companhias e as subsidirias utilizavam-se dos minicomputadores para algum processamento local e na preparao dos dados para o bureaux de servios ou para a matriz. Os dados eram transferidos quando exigiam um grande volume de processamento ou um processamento requerendo software ou hardware especial. O uso dos minicomputadores minimizou mas no solucionou o problema da comunicao. Minimizou porque os dados podiam agora ser preparados e armazenados em fita magntica e transportados via sistema de malotes. Este sistema de transporte no , obviamente, o mais adequado para transferncia de informao pois est sujeito a acidentes, gerando atraso ou perda total do material. Por outro lado, o sistema centralizado oferecia a vantagem de compartilhar recursos caros tanto de software como de hardware, ou seja, o software e hardware especial era caro mas seu preo era amortizado pelo rateio do custo dos perifricos entre os vrios usurios. Surge, ento, a necessidade de uma nova tecnologia para compartilhamento de recursos. Paralelamente, a tecnologia de comunicaes alcanava a transmisso digital em linhas telefnicas atravs de modems. Este servio era caro e apenas suportado por grandes companhias, uma vez que utilizavam linhas telefnicas de forma dedicada. Esta situao perdurou por algum tempo (no Brasil, at maro de 1985) e era necessria outra soluo para comunicao atravs de uma nova tecnologia de comunicao. A necessidade da disseminao da informao e os avanos em tecnologia de armazenamento, propiciaram o aparecimento de discos de grande capacidade e mais baratos (exploso da informao e grandes bancos de dados). A o problema de comunicao tornou-se muito mais srio. Para acessos no Arquiteturas de Redes 7

muito freqentes, uma linha telefnica dedicada no era vivel em termos de custo e o transporte via malote era invivel em termos de velocidade. A soluo para o compartilhamento de recursos fsicos e lgicos juntamente com a vantagem de se ter um sistema descentralizado, s pode ser alcanada atravs da interconexo das CPUs entre si. a isso que se propem as redes de computadores. As solues encontradas, na poca, para a comunicao de computadores em termos de longa distncia foi a tecnologia de comutao de pacotes, que solucionou o problema da linha telefnica dedicada e o problema do transporte via malote. Num ambiente restrito a uma regio local (por exemplo, uma fbrica, um campus), o problema do compartilhamento de recursos atravs de interconexo de CPUs foi resolvido atravs da tecnologia de redes locais. Atualmente, as vantagens dos sistemas distribudos e interconectados so uma evidncia reconhecida para as aplicaes mais diversas, desde a automao de escritrios at o controle de processos, passando por aplicaes de gerenciamento bancrio, reservas de passagens areas, processamento de texto, educao distncia, correio eletrnico, WWW, entre outras to bem conhecidas. A juno de duas tecnologias comunicao e processamento de informaes veio revolucionar o mundo em que vivemos, abrindo as fronteiras para novas formas de comunicao, e permitindo maior eficcia dos sistemas computacionais. As redes de computadores so uma realidade neste nosso contexto atual.

1.3

IMPORTNCIA DAS REDES DE COMUNICAO

Um grande nmero de empresas possui atualmente uma quantidade relativamente grande de computadores operando nos seus diversos setores. Um exemplo deste fato aquele de uma empresa que possui diversas fbricas contendo cada uma um computador responsvel das atividades de base da fbrica (controle de estoques, controle da produo e produo da folha de pagamentos). Neste exemplo, apesar da possibilidade de operao destes computadores de maneira isolada, evidente que sua operao seria mais eficiente se eles fossem conectados para, por exemplo, permitir o tratamento das informaes de todas as fbricas da empresa. O objetivo da conexo dos diferentes computadores da empresa permitir o que poderamos chamar de compartilhamento de recursos, ou seja, tornar acessveis a cada computador todos os dados gerados nas diversas fbricas da empresa. Um outro ponto importante da existncia das Redes de Comunicao relacionado a um aumento na confiabilidade do sistema como um todo. Pode-se, por exemplo, ter multiplicados os arquivos em duas ou mais mquinas para que, em caso de defeito de uma mquina, cpias dos arquivos continuem acessveis em outras mquinas. Alm disso, o sistema pode operar em regime degradado no caso de pane de um computador, sendo que outra mquina pode assumir a sua tarefa. A continuidade de funcionamento de um sistema ponto importante para um grande nmero de aplicaes, como por exemplo: aplicaes militares, bancrias, o controle de trfego areo, etc. A reduo de custos uma outra questo importante da utilizao das Redes de Comunicao, uma vez que computadores de pequeno porte apresentam uma menor relao preo/desempenho que os grandes. Assim, sistemas que utilizariam apenas uma mquina de grande porte e de custo muito elevado podem ser concebidos base da utilizao de um grande nmero de microcomputadores (ou estaes de trabalho) manipulando dados presentes num ou mais servidores de arquivos. Os mainframes so dezenas de vezes mais rpidos do que alguns computadores pessoais mas tambm seu preo milhares de vezes maior. Esta situao levou os projetistas a criarem sistemas baseados em computadores pessoais para os usurios com os dados mantidos em um ou mais servidores de arquivos compartilhados, Neste modelo os usurios so chamados clientes e a organizao geral denominada modelo cliente/servidor. No modelo cliente/servidor um processo cliente envia uma mensagem de solicitao ao processo servidor para que alguma tarefa seja executada. Em seguida o processo servidor executa a tarefa e envia a resposta ao processo cliente. Geralmente existem muitos clientes usando um pequeno nmero de servidores. Ainda temos como vantagem no uso das redes a escalabilidade, que a possibilidade de aumentar gradualmente o desempenho do sistema medida que cresce o volume de carga, atravs da adio de mais processadores. Esta era uma enorme dificuldade nos sistemas centralizados. Quando o limite de capacidade era atingido, o sistema tinha que ser substitudo por um maior, o que geralmente implicava em altos custos e grandes aborrecimentos para os usurios. Outras vantagens esto relacionadas ainda a questes que no tem relao com tecnologia. Uma rede de computadores oferece um meio de comunicao altamente eficaz para funcionrios que

Arquiteturas de Redes

trabalham em locais muito distantes um do outro. Uma rede viabiliza, por exemplo, a possibilidade de duas ou mais pessoas escreverem um relatrio mesmo estando separadas por milhares de quilmetros. Quando algum dos participantes faz uma alterao no documento on-line, seus parceiros podem v-la imediatamente, sem que seja necessrio passar dias esperando por uma carta. Isto facilita o esprito de equipe e reduz em muito o custo de manuteno de equipes de trabalho que no esto localizadas m uma mesma cidade.

1.4

O HARDWARE DE REDE

Vamos agora dar um pouco de ateno a forma de estruturao de uma rede. Em relao estruturao, dois aspectos podem ser abordados: a fsica e a lgica. Para isso sero discutidas as vrias topologias de uma rede. O conceito de topologia, at h pouco relacionado apenas com a estruturao fsica da rede, agora abrange, tambm, a forma como a mesma definida logicamente. Existem vrias classificaes para as diferentes redes de computadores. Dentre elas, duas dimenses se destacam mais: a escala e a tecnologia de transmisso. Basicamente h dois tipos de tecnologia de transmisso: as redes em difuso e as redes pontoa-ponto. Nas redes em difuso h apenas um canal de transmisso compartilhado por todas as mquinas. Uma mensagem enviada por uma estao ouvida por todas as outras estaes. Nas redes ponto-aponto existem vrias conexes entre pares individuais de estaes. Estes dois tipos de ligao podem ser visualizados na figura 1.1 a seguir. computador cabo

(a) (b) Figura 1.1 Rede em difuso (a) e rede ponto-a-ponto (b).

1.4.1 AS DIFERENTES TOPOLOGIAS


Um ponto importante no que diz respeito concepo de uma rede de comunicao a definio da maneira como as diferentes estaes sero interligadas. Estes arranjos so denominados topologia da rede. Estas topologias esto relacionadas a forma como o canal de comunicao ser alocado, ou seja, atravs de canais ponto-a-ponto ou canais de difuso. Nas topologias que utilizam canais ponto-a-ponto, a rede composta de diversas linhas de comunicao, cada linha sendo associada conexo de um par de estaes. Neste caso, se duas estaes precisam comunicar-se e no h entre elas um cabo comum, a comunicao ser feita de modo indireto, atravs de uma (ou mais) estaes. Assim, quando uma mensagem enviada de uma estao a outra de forma indireta, ela ser recebida integralmente por cada estao e, uma vez que a linha de sada da estao considerada est livre, retransmitida estao seguinte. Esta poltica de transmisso tambm conhecida por store and forward. A maior parte das redes de longa distncia so do tipo ponto-a-ponto. As redes ponto-a-ponto podem ser concebidas segundo diferentes topologias. As redes locais ponto-a-ponto so caracterizadas normalmente por uma topologia simtrica; as redes de longa distncia apresentam geralmente topologias assimtricas. A figura 1.2 apresenta as diferentes topologias possveis nas redes ponto-a-ponto.

Arquiteturas de Redes

Figura 1.2 - Topologias ponto-a-ponto: estrela, anel, malha regular, malha irregular e rvore. Uma outra classe de redes, as redes de difuso, so caracterizadas pelo compartilhamento, por todas as estaes, de um nico canal de comunicao. Neste caso, as mensagens enviadas por uma estao so recebidas por todas as demais conectadas ao suporte de transmisso, sendo que um campo de endereo contido na mensagem permite identificar o destinatrio. Na recepo, a mquina verifica se o contedo do campo de endereo corresponde ao seu e, em caso negativo, a mensagem ignorada. As redes locais pertencem geralmente a esta classe de redes. Nas redes de difuso existe a possibilidade de uma estao enviar uma mesma mensagem s demais estaes da rede, utilizando um cdigo de endereo especial. Neste caso, todas as estaes vo tratar as mensagens recebidas endereadas para este endereo comum. Este modo de operao denominado broadcasting. Alguns sistemas de difuso tambm suportam transmisso para um subconjunto de estaes, conhecido como multicasting. A figura 1.3 apresenta algumas topologias possveis no caso das redes em difuso. Numa rede em barramento, uma nica mquina pode estar transmitindo a cada instante. As demais estaes devem esperar para transmisso caso o barramento esteja ocupado. Para isto, um mecanismo de arbitragem deve ser implementado para resolver possveis problemas de conflito (quando duas ou mais estaes querem enviar uma mensagem), este mecanismo pode ser centralizado ou distribudo.

Figura 1.3 - Topologias das redes de difuso: barramento, satlite e anel No caso das redes de satlite (ou rdio), cada estao dotada de uma antena atravs da qual pode enviar e receber mensagens. Cada estao pode escutar o satlite e, em alguns casos, receber diretamente as mensagens enviadas pelas demais estaes. No caso do anel, cada bit transmitido propagado de maneira independente em relao mensagem ao qual ele pertence. Em geral, cada bit realiza uma volta completa no anel durante o tempo necessrio para a emisso de um certo nmero de bits, antes mesmo da emisso completa da mensagem. Tambm nesta topologia, necessria a implementao de um mecanismo de acesso ao suporte de comunicao. As redes de difuso podem ainda considerar duas classes de mecanismos de acesso ao suporte de comunicao: estticas ou dinmicas. Um exemplo do primeiro caso a definio de intervalos de tempo durante os quais cada estao tem a posse do canal de comunicao, permitindo ento que esta emita a Arquiteturas de Redes 10

mensagem de maneira cclica. No entanto, esta poltica bastante ineficiente do ponto de vista do envio das mensagens, uma vez que muitas estaes no vo enviar mensagens nos intervalos a elas destinadas. J na outra classe de mecanismos, os dinmicos, o acesso dado s estaes segundo a demanda de envio de mensagens. Nos mecanismos de acesso dinmicos, pode-se ainda considerar dois casos: os mecanismos centralizados, nos quais uma estao central (ou rbitro) a responsvel pela definio do direito de acesso ao suporte de comunicao; os mecanismos distribudos, nos quais cada estao define quando ela vai emitir a mensagem.

1.4.2 TOPOLOGIA FSICA X TOPOLOGIA LGICA


A topologia de uma rede ir determinar, em parte, o mtodo de acesso a rede utilizado. Mtodos de acesso so necessrios para regular a utilizao dos meios fsicos compartilhados. A forte tendncia de utilizao de hubs nas instalaes fsicas das redes corresponde, fisicamente, a implantao de uma topologia em estrela. Esta tendncia explicada pela crescente necessidade de melhorar o gerenciamento e a manuteno nessas instalaes. A topologia em estrela apresenta uma baixa confiabilidade porm os avanos da eletrnica j permitem que se construam equipamentos de alta confiabilidade, viabilizando este tipo de topologia. A utilizao de hubs no exige, necessariamente, que as interfaces das estaes com a rede o percebam como uma topologia em estrela. O funcionamento continua a ser como no acesso a um barramento ou a um anel, com os seus respectivos mtodos de acesso. Sendo assim, podemos diferenciar dois tipos de topologias: uma topologia lgica, que aquela observada sob o ponto de vista das interfaces das estaes com a rede (que inclui o mtodo de acesso), e uma topologia fsica, que diz respeito configurao fsica utilizada na instalao da rede. A construo dos hubs teve uma evoluo contnua no sentido de que os mesmos no implementem somente a utilizao do meio compartilhado, mas tambm possibilitem a troca de mensagens entre vrias estaes simultaneamente. Desta forma as estaes podem obter para si taxas efetivas de transmisso bem maiores. Esse tipo de elemento, tambm central, denominado switch. As redes ATM, por exemplo, baseiam-se na presena de switches de grande capacidade de comutao que permitem taxas de transmisso que podem chegar ordem de Gbps (gigabits por segundo).

1.4.3 CATEGORIAS DE REDES


As redes tambm podem ser classificadas por escala. A figura 1.4 mostra uma classificao das vrias redes de computadores em relao a sua abrangncia. Basicamente elas podem ser classificadas em trs grupos: LAN Local Area Network ou Rede Local, MAN Metropolitan Area Network ou Rede Metropolitana e WAN Wide Area Network ou Rede Geograficamente Distribuda (ou de Longa Distncia).
Distncia entre ns Abrangncia

at 10 m at 100 m at 1 km at 10 km at 100 km at 1.000 km at 10.000 km

Sala Edifcio Campus MAN Cidade Pas Continente Planeta WAN LAN

Figura 1.4- Classificao de redes quanto a distncia fsica entre os ns.

Arquiteturas de Redes

11

A diferena na dimenso das redes introduz diferentes problemas e necessidades. No que diz respeito ao exemplo de microcomputadores, a rede classificada como sendo uma Rede Local, caracterizada particularmente por uma pequena extenso, limitando-se normalmente interconexo de computadores localizados numa mesma sala, num mesmo prdio ou num campus. Este tipo de rede invariavelmente proprietria. Uma alternativa a este tipo de rede, muito utilizada atualmente so as Redes Metropolitanas, que so utilizadas quando as distncias entre os mdulos processadores aumenta consideravelmente, atingindo distncias metropolitanas. Elas podem ser pblicas ou privadas. No exemplo de empresa possuindo diversas fbricas, a rede utilizada permitiria conectar computadores localizados em diferentes prdios numa mesma cidade ou mesmo em cidades distantes de uma dada regio. Esta caracteriza uma Rede de Longa Distncia ou Rede Geograficamente Distribuda. Esta classificao no , de maneira alguma, fechada. Por exemplo, uma rede local pode alcanar dimenses metropolitanas e ainda assim ser considerada local. Nos prximos captulos sero estudados mais detalhadamente cada um destes tipos de redes.

1.5

O SOFTWARE DE REDE

No projeto de uma rede muitos problemas precisam ser resolvidos e podem existir vrias solues para os mesmos. Primeiramente definiremos alguns problemas mais comuns encontrados no projeto de um software de rede. Em seguida apresentaremos uma definio inicial sobre a forma como os softwares de rede so estruturados, atravs de um exemplo.

1.5.1 SERVIOS NECESSRIOS COMUNICAO


Como visto nas sees precedentes, as redes de computadores podem se caracterizar por diferentes configuraes e topologias. Apesar da diversidade no que diz respeito a este aspecto, todas as possveis configuraes tm um objetivo comum a transferncia de dados. O problema que se coloca ento relacionado especificao dos procedimentos e mecanismos que devem ser implementados para viabilizar o funcionamento da rede. A resoluo deste problema baseada principalmente no conhecimento prvio das funes que devem ser suportadas pela rede, assim como do ambiente no qual ela vai ser inserida. Estes aspectos sero mostrados aqui atravs de alguns exemplos. O primeiro exemplo baseado nas polticas de time-sharing j descrita anteriormente. Vamos considerar o caso em que temos apenas um terminal conectado a um computador, como mostrado na figura 1.5.

Figura 1.5 - Terminal conectado a um computador central Considerando que um usurio vai servir-se do terminal para processar informaes no computador central, para que isto seja possvel, necessrio que o computador central seja dotado do programa necessrio ao tratamento daquelas informaes. Em caso positivo, o terminal e o computador devem estabelecer um dilogo que permita o bom desenrolar das operaes de tratamento das informaes. Este dilogo dever permitir, por exemplo, que o usurio comunique sua inteno (de Arquiteturas de Redes 12

processar as informaes!) ao computador e, em seguida, envie as informaes a serem processadas. Uma vez efetuado o tratamento, o computador deve retornar os resultados ao terminal. Esta seqncia de operaes, apesar de aparentemente elementar, requer a satisfao de uma srie de condies. Vamos supor, por exemplo, que o computador central e o terminal tenham sido fabricados de forma totalmente independente um do outro, o que pode ter resultado numa diferente filosofia no que diz respeito ao formato das informaes. Um primeiro obstculo a ser vencido aquele da linguagem; o terminal deveria ento se adaptar linguagem do computador central. Resolvido o problema de compreenso, um outro problema encontrado diz respeito aos possveis erros de transmisso que podem ocorrer durante a comunicao, uma vez que as linhas de comunicao esto sujeitas a rudos e outros fenmenos podendo provocar perdas de informao. Uma outra questo pode ainda estar relacionada velocidade de funcionamento dos dois elementos. Se considerarmos que o computador central opera numa velocidade superior do terminal, por exemplo, o terminal corre o risco de ser bombardeado pelo fluxo de dados vindo do computador, o que vai exigir ento o estabelecimento de um mecanismo de controle do fluxo de informaes. Resumindo, a rede de comunicao deve, alm de suprir as funes de transmisso e tratamento de informaes, oferecer servios de adaptao, deteco e correo de erros de transmisso e controle de fluxo. Vamos considerar agora que, ao invs de um nico terminal, vamos conectar um maior nmero deles ao computador central, como mostra a figura 1.6. Aqui, cada terminal pode, a princpio e a qualquer momento, tomar a iniciativa da troca de dados com o computador. Isto significa que cada terminal ter de ser caracterizado por um endereo especfico, cuja utilizao correta vai permitir evitar que o computador central envie as informaes aos terminais de maneira indevida.

Figura 1.6 - Configurao com vrios terminais Por outro lado, se o nmero de terminais conectados ao computador central tornar-se relativamente elevado (a fim de permitir a utilizao mxima da capacidade de processamento deste), ser necessrio organizar as interaes entre terminais e o computador central em sesses, de tal forma que, ao trmino de uma sesso entre um terminal e o computador central, este ter liberados determinados elementos (envolvidos naquela sesso) que podero atender outros terminais em estado de espera. Ainda, considerando que nem todos os terminais vo efetuar o mesmo tipo de tratamento de forma simultnea, dever-se-, ento, especificar a aplicao associada. Assim, todas as necessidades vistas neste exemplo devero ser associadas s funcionalidades definidas no exemplo anterior. Mas os problemas no terminam por aqui... ( impossvel, no momento, prever onde terminaro os problemas!) Vamos considerar ainda um exemplo, mais particularmente o de uma rede contendo diversos computadores, terminais, e outros perifricos, cada um destes elementos constituindo um n da rede. A figura 1.7 mostra uma situao deste tipo. Neste exemplo, os dois elementos envolvidos numa comunicao no sero mais necessariamente adjacentes; alm disso, podem existir diversas maneiras de conect-los, o que vai corresponder a diferentes caminhos. No exemplo mostrado na figura, os ns 1 e 5 podem ser conectados por, pelo menos, uns 10 caminhos e a escolha de qual caminho utilizar dever ento ser realizada, o que no uma tarefa to simples quanto possa parecer.

Arquiteturas de Redes

13

Ainda, se a rede da classe ponto-a-ponto (ou comutao de pacotes), o sistema de comunicao deve assegurar a correta transmisso da informao de um ponto a outro. Particularmente, ser necessrio garantir que as mensagens enviadas sero recuperadas e reconstitudas na ordem correta no ponto de chegada. Um requisito tambm importante o aspecto da codificao das mensagens de modo a evitar o acesso a informaes de parte de usurios alheios ao sistema considerado. A esta funo pode-se, eventualmente, acrescentar tcnicas de compresso de dados, necessrias se a informao enviada demasiadamente redundante e o custo da comunicao alto.

4 3

5 2

Figura 1.7 - Configurao com vrios computadores e terminais.

1.5.2 A ORGANIZAO DE FUNES


Uma vez listadas as diferentes necessidades relacionadas a uma rede de comunicao, a questo que se coloca a da viabilidade de um projeto de rede, dada a quantidade de funes a implementar. Uma outra questo a do ordenamento das funes. O controle de fluxo deve ser realizado antes ou depois da correo de erros? Uma vez resolvida esta questo, que elementos da rede sero responsveis da implementao destas funes? As solues adotadas so dependentes do suporte de transmisso utilizado? Elas continuam vlidas no caso de expanso da rede? Estas questes representam, de certo modo, a necessidade de levar em conta um certo ordenamento no que diz respeito adoo das solues para cada problema. Uma ilustrao tpica do problema aquela da comunicao entre duas empresas. Vamos supor que o Diretor de uma Empresa A quer comunicar-se com o Diretor de uma Empresa B. Ele convoca a sua Secretria Administrativa e solicita, informalmente, que esta construa um texto relativo ao assunto a ser tratado. A Secretria Administrativa elabora o documento e o entrega ao Office Boy que vai envelop-lo e encaminh-lo ao Chefe do Setor de Malote. Este ltimo encaminha o documento ao Servio Postal para conduo Empresa B. Considerando que a Empresa B apresenta uma estrutura similar Empresa A, como ilustrado na figura 1.8, os mesmos elementos atuam, cada um em suas funes, para fazer com que a correspondncia chegue s mos do Diretor da Empresa. Este processo caracteriza, na verdade, a filosofia de concepo das redes de comunicao, que baseada em dois conceitos fundamentais: o da hierarquia e o da descentralizao, cuja conjuno vai permitir responder questo de ordenao na adoo das solues. Segundo esta filosofia, uma tarefa global vista como sendo decomposta a medida que se vai descendo na hierarquia e que a nica interao fsica se faz no seu nvel mais baixo.

Arquiteturas de Redes

14

Empresa A Diretor Empresa

Empresa B Diretor Empresa

Secretria Administrativa

Secretria Administrativa

Office Boy

Office Boy

Chefe Malote

Chefe Malote

Servio Postal

Figura 1.8 - Filosofia de concepo das redes, ilustrada por um processo de relaes entre empresas. Podemos considerar que a comunicao entre dois ns de uma rede uma tarefa global que afeta um sistema complexo e, consequentemente, sujeita aplicao dos princpios de hierarquizao e de descentralizao. As vantagens da adoo destes princpios so, fundamentalmente: facilidade de estudo e de implementao da rede a partir de elementos de base existentes, o que permite a reduo dos custos de instalao; simplificao de sua operao em funo da definio de regras formais; garantia de confiabilidade de um sistema que seja aceitvel, particularmente graas ao encapsulamento das funes o que permite limitar a propagao de erros e facilitar a manuteno; garantia, pela modularidade, de um grau satisfatrio de evolutividade e de extensibilidade da rede; otimizao de desempenho. Todos estes aspectos nos conduzem a conceber uma arquitetura de comunicao como sendo uma organizao de software e hardware estruturada em nveis ou camadas.

1.5.3 A ESTRUTURAO EM CAMADAS


Os conceitos de hierarquia e descentralizao podem ser empregados de diferentes formas, cada um podendo implicar num tipo de rede particular. Em funo desta provvel multiplicidade, surgiu ento a necessidade de uma normalizao permitindo a conexo de diferentes classes de hardware. Para possibilitar a normalizao, foi necessrio estabelecer um modelo terico capaz de representar as relaes entre as diferentes tarefas implementadas nos diferentes nveis hierrquicos. A possibilidade de interconexo de um nmero qualquer de sistemas, ou seja, de conjuntos autnomos podendo efetuar tarefas de tratamento ou de transmisso de informao, era uma caracterstica essencial para o modelo a ser estabelecido. A figura 1.9 ilustra uma arquitetura hierarquizada em 4 camadas que permitir introduzir o conjunto de conceitos relacionados ao modelo estabelecido. O objetivo de cada camada o oferecimento de um tipo de servio a sua camada superior de forma a evitar que esta necessite conhecer certos aspectos de como este servio realizado. A camada n assume que a comunicao com a camada n de uma outra mquina existe, embora no seja direta. Para que esta comunicao exista, ela se serve de um conjunto de convenes e regras que vo permitir gerenciar esta comunicao. A este conjunto de regras e convenes, d-se o nome de protocolo. Como se pode ver na figura, no existe meio de comunicao

Arquiteturas de Redes

15

direto entre as diferentes camadas (apenas o meio de transmisso na camada 1), o que significa que no existe transferncia direta de dados entre a camada n de uma mquina camada n de outra mquina. Na realidade, cada camada transfere os dados camada imediatamente inferior at a camada mais baixa; o dado ento transmitido outra mquina atravs do meio de transmisso. A comunicao entre as camadas vista ento como uma comunicao virtual e representada, na figura 1.9, pelas linhas ligando cada par de camadas.
SISTEMA A
Protocolo da Camada 4

SISTEMA B
Camada 4
Interface 3/4 Protocolo da Camada 3

Camada 4
Interface 3/4

Camada 3
Interface 2/3

Camada 3
Interface 2/3 Protocolo da Camada 2

Camada 2
Interface 1/2 Protocolo da Camada 1

Camada 2
Interface 1/2

Camada 1 Meio de Comunicao

Camada 1

Figura 1.9 - Modelo hierarquizado em 4 camadas. Cada camada comunica-se com as camadas adjacentes (acima ou abaixo) atravs de uma interface que define as informaes que podem ser trocadas e os servios que a camada inferior oferece camada superior. Ao conjunto das camadas compondo uma rede d-se o nome de arquitetura da rede, e as especificaes da arquitetura devem conter informaes suficientes para permitir o correto desenvolvimento da rede, tanto do ponto de vista do software quanto do hardware. Mais detalhes relacionados ao projeto em camadas ou nveis e a nomenclatura utilizada para interfaces, servios e protocolos de comunicao sero abordados no captulo 2.

Arquiteturas de Redes

16

Captulo 2 - Conceitos Bsicos do Software de Rede

2.1

INTRODUO

Nas primeiras redes de computadores os aspectos relacionados ao hardware foram colocados como prioridade e os aspectos de software em segundo plano. No entanto logo foi percebida a fundamental importncia dos mecanismos de software de uma rede, e, em funo disto, os softwares de rede so altamente estruturados. Os conceitos relacionados a esta estruturao so de vital importncia para a compreenso 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 srie de nveis ou camadas, que so colocadas uma sobre a outra. O nmero, o nome, o contedo e a funo de cada camada difere de uma rede para outra. Em todas as redes, no entanto, o objetivo de cada camada oferecer determinados servios para as camadas superiores, ocultando detalhes da implementao desses recursos. Conforme j introduzido anteriormente, a figura 2.1 ilustra a arquitetura hierarquizada em 7 camadas que permitir introduzir o conjunto de conceitos relacionados a uma arquitetura multicamadas. Conforme j mencionado, o objetivo de cada camada o oferecimento de um determinado servio s camadas superiores, utilizando-se, tambm dos servios oferecidos pelas camadas inferiores, de forma a evitar que estas necessitem conhecer certos aspectos da implementao destes servios. A camada n assume a comunicao com a camada n de uma outra mquina. Para faze-lo, ela se serve de um conjunto de convenes e regras que vo permitir gerir esta comunicao. A este conjunto de regras e convenes, 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 comunicao entre as partes envolvidas. As entidades representando camadas correspondentes em diferentes sistemas so denominadas processos pares, ou entidades pares. Os processos pares vo se comunicar atravs dos protocolos. Como se pode ver na figura 2.1, no existe meio de comunicao fsico entre as diferentes camadas o que significa que no existe transferncia direta de dados entre a camada n de uma mquina camada n de outra mquina. Cada camada transfere os dados camada imediatamente inferior at a camada mais baixa; o dado ento transmitido outra mquina atravs do meio de transmisso. A comunicao entre as camadas vista como uma comunicao virtual e representada, na figura 2.1, pelas linhas horizontais entre as camadas. Cada camada comunica-se com as camadas adjacentes (acima e abaixo) atravs de uma interface, que define as operaes elementares e os servios que a camada inferior oferece camada considerada. No momento da definio do nmero de camadas que vai compor uma rede e do papel que cada uma delas deve cumprir, uma tarefa importante ser a definio completa das interfaces entre as camadas e isto vai implicar que na definio do servio oferecido por cada camada. Uma vantagem da correta definio das interfaces a facilidade da introduo de modificaes nas implementaes das diferentes camadas; os mecanismos podem ser implementados de forma diferente, desde que as interfaces anteriormente definidas sejam respeitadas.

Arquiteturas de Redes

17

SISTEMA A
Protocolo da Camada 7

SISTEMA B
Camada 7
Protocolo da Camada 6 Interface 6/7

Camada 7
Interface 6/7

Camada 6
Interface 5/6 Protocolo da Camada 5

Camada 6
Interface 5/6

Camada 5
Interface 4/5 Protocolo da Camada 4

Camada 5
Interface 4/5

Camada 4
Interface 3/4 Protocolo da Camada 3

Camada 4
Interface 3/4

Camada 3
Interface 2/3 Protocolo da Camada 2

Camada 3
Interface 2/3

Camada 2
Interface 1/2 Protocolo da Camada 1

Camada 2
Interface 1/2

Camada 1 Meio de Transmisso

Camada 1

Figura 2.1 - Modelo hierarquizado em 7 camadas. Ao conjunto das camadas compondo uma rede d-se o nome de arquitetura da rede, e as especificaes da arquitetura devem conter informaes suficientes para permitir o correto desenvolvimento da rede, tanto do ponto de vista do software quanto do hardware. Por outro lado, os detalhes de implementao dos mecanismos em cada camada, assim como as especificaes detalhadas das interfaces no fazem parte da definio da arquitetura da rede. A figura 2.2 permite ilustrar o processo da comunicao no contexto de uma arquitetura multicamadas. O processo da camada 7 gera uma mensagem M, que ser transmitida desta camada inferior segundo o que estiver definido pela interface das camadas 6/7. Considera-se que esta transmisso introduz algumas modificaes na mensagem (por exemplo, uma compresso de dados), o que justifica uma nova representao desta por m. Esta mensagem , por sua vez, transmitida camada 5, atravs da interface das camadas 5/6. No exemplo considerado na figura, a mensagem no sofre modificaes, mas esta camada efetua o controle de fluxo. A camada 4 responsvel pela decomposio da mensagem a fim de respeitar as restries de tamanho que podem ser impostas pelas camadas inferiores. Assim, m decomposta em M1 e M2. Para isto, inserido tambm na mensagem (ou nas partes da mensagem) um cabealho H4 contendo uma informao de controle, como, por exemplo, um nmero de ordem que vai permitir, posteriormente na camada 4 do sistema destinatrio, a reconstruo da mensagem a partir das partes recebidas. Outras informaes podem ainda estar contidas neste cabealho, como, por exemplo, o tamanho da mensagem ou o instante de envio. Na camada 3, feita a escolha das linhas de sada e um novo cabealho, H3, introduzido s mensagens. Na camada 2, alm de um cabealho, H2, introduzido tambm um sufixo, T2, contendo informaes especficos a esta camada, por exemplo, controle de erro. A mensagem finalmente entregue camada 1 para emisso via meio fsico. No sistema destinatrio, o processo inverso acontece, sendo que as mensagens vo subindo, de camada em camada, e os cabealhos retirados nas camadas respectivas, de modo a evitar que estes sejam transferidos s camadas que no lhes dizem respeito. Um aspecto importante mostrado na figura 2.2 o da comunicao virtual ocorrendo entre as diferentes camadas pares. As camadas em cada nvel possuem uma viso da comunicao horizontal, mesmo se as mensagens so na realidade transmitidas s camadas inferiores pertencentes ao mesmo sistema.

Arquiteturas de Redes

18

TRANSMISSOR

Protocolo

RECEPTOR

M
da Camada 7 Protocolo

m
da Camada 6 Protocolo

m
da Camada 5 Protocolo

H4 M1

H4 M2
da Camada 4 Protocolo

H4 M1

H4 M2

H3 H4 M1

H3 H4 M2
da Camada 3 Protocolo

H3 H4 M1

H3 H4 M2

H2 H3 H4 M1

H2 H3 H4 M2
da Camada 2

H2 H3 H4 M1

H2 H3 H4 M2

Figura 2.2 - Ilustrao da comunicao virtual numa arquitetura de rede.

2.3

DIFERENAS ENTRE SERVIO E PROTOCOLO

Embora sejam freqentemente confundidos, servio e protocolo so dois conceitos distintos. O importante nesta distino de poder estabelecer a relao entre os dois conceitos. O SERVIO corresponde a um conjunto de operaes que uma camada capaz de oferecer camada imediatamente superior. Ele define o que uma camada capaz de executar sem se preocupar com a maneira pela qual as operaes sero executadas. O servio est intimamente relacionado com as interfaces entre duas camadas, sendo a inferior a fornecedora do servio e a superior a usuria deste. O PROTOCOLO define um conjunto de regras que permitem especificar aspectos da realizao do servio, particularmente, o significado dos quadros, pacotes ou mensagens trocadas entre as entidades pares de uma dada camada. A nvel de uma determinada camada, o protocolo pode ser mudado sem problemas, desde que as interfaces com a camada superior e inferior no sejam alteradas, ou seja, que elas continuem a ter a mesma visibilidade no que diz respeito aos servios realizados pela camada que foi alterada; isto corresponde, na verdade, a um certo desacoplamento entre os conceitos de servio e protocolo.

2.4

QUESTES DE PROJETO RELACIONADAS S CAMADAS

Algumas questes de projeto fundamentais das redes de computadores esto presentes em diversas camadas. A seguir sero 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 tm vrios processos, necessrio um meio para que um processo de uma mquina especifique com quem ele deseja se comunicar. Como pode haver vrios destinos, h a necessidade de se criar uma forma de endereamento para definir o destino especfico. Outra preocupao recai sobre as direes do trfego. Em alguns sistemas, os dados so transferidos em apenas uma direo. Em outros, eles podem ser transferidos em ambas as direes, mas no simultaneamente. Tambm possvel transmitir em ambas as direes simultaneamente. O protocolo tambm deve determinar o nmero de canais lgicos correspondentes conexo e quais so as suas Arquiteturas de Redes 19

prioridades. Muitas redes oferecem pelo menos dois canais lgicos por conexo, um para dados normais e outro para dados urgentes. O controle de erro uma questo importante, pois os circuitos de comunicao fsica podem no ser perfeitos. Muitos cdigos de deteco e correo de erros so conhecidos e as partes envolvidas em uma conexo devem chegar a um consenso quanto ao que deve ser usado. Alm disso, o receptor deve ter alguma forma de informar ao emissor as mensagens que foram recebidas corretamente e as que no foram. Nem todos os canais de comunicao preservam a ordem das mensagens enviadas por eles. Para lidar com uma possvel perda de seqncia, o protocolo deve fazer uma proviso explcita para que o receptor possa remontar adequadamente os fragmentos recebidos. Uma soluo bvia numerar os fragmentos, mas isso ainda deixa aberta a questo do que deve ser feito com os fragmentos que chegam fora de ordem ou, pior ainda, o que fazer quando algum ou alguns se perdem. Um problema que deve ser resolvido em diversas camadas a falta de habilidade de todos os processos para aceitarem arbitrariamente mensagens longas. Esta propriedade nos leva ao uso de mecanismos para desmontar, transmitir e remontar mensagens. Uma questo o que fazer quando estas unidades se tornam to pequenas que o envio de cada uma em separado se torna ineficiente. Nesse caso a soluo reunir as pequenas mensagens com um destino comum em uma grande mensagem e desmembr-la na outra extremidade. Uma outra questo que afeta todas as camadas diz respeito velocidade dos dados, particularmente quando o emissor mais rpido que o receptor. Vrias solues foram adotadas e sero discutidas posteriormente. Algumas delas trabalham com a possibilidade do receptor determinar dinamicamente sua situao atual. Outras limitam o emissor a uma taxa de transmisso predeterminada. Quando for inconveniente, ou algumas vezes caro, configurar uma conexo para cada par de processos de comunicao, a camada inferior pode usar a mesma conexo para diversas conversaes no relacionadas. Desde que seja feita de modo transparente, a multiplexao e a demultiplexao de conexes podem ser executadas por qualquer camada. Quando houver vrios caminhos entre a origem e o destino, um deles deve ser escolhido. Algumas vezes essa deciso deve ser dividida em duas ou mais camadas. Para enviar dados de Londres para Roma, por exemplo, devem ser tomadas duas decises: uma de alto nvel, decidindo sobre o trajeto a ser escolhido (via Frana ou Alemanha, com base nas respectivas leis de privacidade) e uma de baixo nvel, escolhendo sobre quais dos circuitos fsicos disponveis os dados sero transmitidos (com base na carga de trfego atual).

2.5

INTERFACES E SERVIOS

Conforme j mencionado, a funo de cada camada oferecer servios para a camada acima dela. Os elementos ativos de uma camada, ou seja, os processos que a implementam so chamados entidades. Estas podem ser entidades de software ou de hardware. s entidades localizadas em diferentes sistemas, mas associadas a um mesmo nvel (ou camada), d-se o nome de entidades pares. As entidades recebem tambm uma denominao complementar em funo da camada qual elas esto relacionadas por exemplo, entidade de aplicao, entidade de transporte, entidade de enlace, entre outras. As entidades de uma camada N (ou entidades N) implementam um servio que utilizado pela camada N+1. Assim, a camada N dita ser um fornecedor de servio e a camada N+1 denominada usuria de servio. Por outro lado, a camada N poder utilizar os servios da camada imediatamente inferior, a camada N-1, para oferecer os servios camada superior. Ela pode ainda oferecer diferentes categorias (ou classes) de servios: servios mais eficientes e mais caros ou servios lentos e econmicos. Os servios oferecidos por uma camada so acessveis em pontos de acesso aos servios, ou SAP (Service Access Point). Os SAPs da camada N so os lugares onde a camada N+1 poder ter acesso aos servios oferecidos, cada SAP sendo identificado por um endereo nico. Por exemplo, os SAP de uma rede telefnica so as tomadas s quais podem ser conectados os aparelhos telefnicos e seus endereos so os nmeros de telefone associados tomada considerada. Para que duas camadas possam trocar informaes, existe uma srie de regras a serem respeitadas, definidas pela interface. Atravs de uma interface, a camada N+1 envia uma unidade de dados de interface, ou IDU (Interface Data Unit) entidade da camada N pelo SAP. A IDU composta Arquiteturas de Redes 20

de uma parte denominada unidade de dados de servio, ou SDU (Service Data Unit) e de outras informaes de controle. A SDU a informao transmitida via rede entidade par e, em seguida, camada N+1. A informao de controle utilizada para auxiliar a gesto da camada inferior em seu trabalho (por exemplo, o nmero de bytes compondo a SDU correspondente). Para transmitir uma SDU, a entidade da camada N pode fragment-la em diversas partes, e cada parte vai receber um cabealho, sendo enviada como uma unidade de dados de protocolo, ou PDU (Protocol Data Unit). Os cabealhos de PDU so utilizados pelas entidades pares para o transporte do protocolo. Elas identificam a PDU contendo os dados e aquelas contendo informaes de controle (nmeros de seqncia, contagens, etc). A figura 2.3 ilustra o processo descrito. As PDUs recebem normalmente uma denominao segundo a camada qual esto associadas. Por exemplo, as PDUs de aplicao so ditas APDU, assim como as de apresentao so as PPDU, as de sesso SPDU, e assim por diante.

IDU

Camada N+1

ICI

SDU

Interface

SAP
Cabealho

Camada N

ICI

SDU

SDU

N-PDU

Figura 2.3 - Ilustrao dos diferentes conceitos associados a interface entre camadas.

2.6

SERVIOS ORIENTADOS CONEXO E SEM CONEXO

As camadas de uma arquitetura de rede podem oferecer diferentes classes de servios s camadas superiores. Estes servios podem ser orientados a conexo ou no orientados a conexo (tambm chamada sem conexo). No que diz respeito ao servios orientados conexo, podemos citar como exemplo tpico o sistema telefnico. Para que seja possvel falar com algum no telefone necessrio, inicialmente, tirar o fone do gancho, digitar (ou discar) um nmero, esperar que o interlocutor atenda, falar com a pessoa que precisamos e, finalmente, desligar. Este o princpio de base de um servio orientado conexo: estabelecimento da conexo, utilizao do servio (ou enviar mensagem) e trmino da conexo. O aspecto principal da conexo o fato de que ela funciona como uma espcie de canal virtual atravs do qual iro transitar as mensagens envolvidas na realizao do servio. J os servios sem conexo so estruturados como o sistema postal, onde cada mensagem (ou carta, se consideramos o exemplo citado) contm o endereo do destinatrio e encaminhada no sistema, independente de outras. O princpio bsico ento apenas: enviar mensagem. Normalmente, se duas mensagens so enviadas a um mesmo destinatrio, a primeira a ser enviada deve ser a primeira a ser recebida. Por outro lado, neste modo de servio pode ocorrer que uma mensagem seja atrasada fazendo com que a segunda mensagem seja recebida primeiro. J nos servios orientados conexo, isto jamais poder acontecer. Cada servio caracterizado por uma qualidade de servio. Tendo em vista o parmetro qualidade, os servios podem ser divididos em confivel e no-confivel. Um servio dito confivel aquele em que os dados no podem ser jamais perdidos, ou melhor, jamais podem deixar de realizar o Arquiteturas de Redes 21

servio adequadamente e, por vezes, algum mecanismo de recuperao em caso de falha deve ser utilizado. Servios no confiveis so aqueles onde, eventualmente, dados podem ser perdidos e no recuperados pela camada em questo. Normalmente, a implementao de servios confiveis feita atravs da definio de mensagens de reconhecimento enviadas pelo receptor, para cada mensagem recebida do emissor. Este processo, embora extremamente benfico, introduz uma lentido na transferncia de dados, o que significa que nem sempre ele desejvel num sistema. Os servios confiveis orientados conexo apresentam duas variantes. No primeiro caso, as fronteiras das mensagens so sempre preservadas. Se duas mensagens de 1 Kbytes so enviadas, elas chegaro 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, no h como identificar se ela foi enviada realmente como uma nica mensagem de 2 Kbytes, como duas mensagens de 1 Kbytes, ou ainda como 2048 mensagens de 1 byte. Porm em algumas aplicaes, necessrio resguardar as fronteiras entre as mensagens enviadas; por exemplo, no caso do envio de um documento a uma impressora interessante poder preservar as fronteiras entre as pginas. No que diz respeito aos dois tipos de servios (orientados conexo e sem conexo), nem todas as aplicaes requerem a utilizao de conexo. Um exemplo disto pode ser o de uma aplicao de correio eletrnico. Pode-se imaginar uma aplicao de correio em que o usurio no se interesse no estabelecimento de conexo e tampouco a uma confiabilidade de 100% no que diz respeito chegada das mensagens. Os servios sem conexo e no-confiveis so denominados servios de datagrama. Existem casos, porm, em que, apesar de no necessitar o estabelecimento de conexo, a confiabilidade essencial. O servio utilizado neste caso dito de datagrama com reconhecimento. O servio de pedido-resposta j um outro tipo de servio no qual o emissor envia um datagrama contendo um servio e o receptor envia um outro contendo a resposta a este pedido. A tabela a seguir ilustra os diferentes servios com e sem conexo, com exemplos de aplicao destes servios. SERVIOS Transferncia confivel de mensagens Transferncia confivel de bytes Transferncia no confivel Datagrama no confivel Datagrama confivel Pedido-Resposta MODALIDADES com conexo com conexo com conexo sem conexo sem conexo sem conexo EXEMPLO seqncia de pginas login remoto voz digitalizada correio eletrnico correio eletrnico registrado consulta a bases de dados

2.7

PRIMITIVAS DE SERVIO

Um servio definido formalmente por um conjunto de primitivas (ou operaes) disponveis a um usurio ou a outras entidades para o acesso quele servio. Estas primitivas permitem indicar a ao a ser executada pelo servio ou ainda um pedido de informao sobre uma ao executada previamente. As primitivas de servio so divididas em quatro classes: pedido (request), indicao (indication), resposta (response) e confirmao (confirm). A tabela a seguir mostra o significado de cada uma destas primitivas no que diz respeito execuo de um servio.

PRIMITIVA request indication response confirm

SIGNIFICADO Pedido enviado por uma entidade que solicita um servio Atravs dela, a entidade par informada de uma solicitao de servio A entidade par responde ao pedido de servio A entidade solicitante informada do resultado do servio

Arquiteturas de Redes

22

Uma analogia com o sistema telefnico pode ser de grande utilidade para que se entenda a utilizao dessas primitivas. Nesse caso considere os procedimentos necessrios para voc telefonar tia Nena e convid-la para tomar um ch em sua casa: AO Voc disca o nmero do telefone da casa de sua tia. O telefone dela toca. Ela tira o telefone do gancho. Voc ouve o al dela. Voc a convida para o ch Ela ouve o convite Ela diz que ter o maior prazer em ir a sua casa. Voc ouve a aceitao Voc coloca o telefone no gancho Ela ouve voc colocar o telefone no gancho e faz o mesmo. PRIMITIVA CONNECT.request CONNECT.indication CONNECT.response CONNECT.confirm. DATA.request DATA.indication DATA.request DATA.indication DISCONNECT.request DISCONNECT.indication

1 2 3 4 5 6 7 8 9 10

A figura 2.4 mostra essa mesma seqncia de procedimentos como uma srie de primitivas de servio, inclusive a confirmao final de encerramento de conexo. Cada procedimento envolve a interao entre duas camadas de um dos computadores. Cada request ou response provoca logo em seguida um indication ou confirm do outro lado.

Camada N+1 Camada N

1 4 1 2 3 3 2 4

5 8 5 6 7 7 6 8

9 Voc 9 1 Tempo Tia Nena

Camada N+1 Camada N

10

Figura 2.4 Mapeamento das primitivas do convite para tomar ch. Os nmeros prximos extremidade das setas fazem referncia s primitivas de servio utilizadas no exemplo anterior. Vamos agora considerar o exemplo de utilizao das primitivas de servio para o seguinte servio orientado conexo com oito primitivas de servio: CONNECT.request Solicita o estabelecimento de conexo. CONNECT.indication Sinalizao 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 conexo. DISCONNECT.indication Sinal do par sobre a solicitao. Para requisitar o estabelecimento de uma conexo, a entidade que quer iniciar o dilogo envia uma primitiva de servio de pedido de abertura de conexo, CONNECT.request que vai se refletir, na entidade destinatria, por uma primitiva de indicao, CONNECT.indication. A entidade que recebeu a indicao vai enviar uma primitiva de resposta, CONNECT.response, para informar se esta aceita ou no a conexo. Finalmente, a entidade emissora vai saber do resultado do seu pedido pela recepo de uma primitiva de servio de confirmao, CONNECT.confirm. Parmetros podem ser associados s primitivas; no caso do servio de conexo, por exemplo, os parmetros podem especificar os seguintes aspectos relacionados conexo desejada: a mquina com a qual se deseja dialogar, o tipo de servio desejado, o tamanho mximo das mensagens, etc... Se a entidade invocada no est de acordo com os parmetros contidos na primitiva de indicao recebida, esta pode

Arquiteturas de Redes

23

fazer uma contra-proposta, atravs dos parmetros da primitiva de resposta, que ser transmitida entidade emissora atravs dos parmetros da primitiva de confirmao. Os servios podem ser de dois tipos: confirmados ou no-confirmados. No caso dos servios confirmados, as quatro classes de primitivas so definidas, ou seja, pedido (request), indicao (indication), resposta (response) e confirmao (confirm). Isto significa que a entidade que requisitou o servio ter sempre uma informao sobre as condies de realizao deste e at se este foi realizado com sucesso ou no. Nos servios no-confirmados, apenas as duas primeiras classes de primitivas so utilizadas, ou seja, pedido (request) e indicao (indication). Neste tipo de servios, a entidade emissora do pedido no receber nenhuma informao sobre as condies de realizao do servio requisitado, nem mesmo se este foi realizado. A tabela a seguir apresenta um conjunto de primitivas associadas a um servio orientado conexo. PRIMITIVA CONNECT.request CONNECT.indication CONNECT.response CONNECT.confirm DATA.request DATA.indication DISCONNECT.request DISCONNECT.indication SIGNIFICADO pedido de estabelecimento de uma conexo indicao entidade invocada utilizada para indicar a aceitao ou no da conexo informa entidade emissora se a conexo aceita pedido de envio de dados sinalizao da chegada de dados pedido de trmino da conexo indicao do pedido entidade par

Neste exemplo, CONNECT um servio confirmado enquanto os servios DATA e DISCONNECT so no-confirmados. A figura 2.5 permite ilustrar as trocas de primitivas de servio entre as camadas no caso de um servio confirmado. O exemplo utilizado o servio CONNECT.
SISTEMA A
Camada N+1

SISTEMA B
Camada N+1

connect_request

connect.response

connect.confirm

connect.indication

Camada N

Camada N

Figura 2.5 - Ilustrao da troca de primitivas de servio (confirmado).

Arquiteturas de Redes

24

Captulo 3 - Arquiteturas de Redes

3.1

INTRODUO

A soluo para o compartilhamento de recursos fsicos e lgicos juntamente com a vantagem de se ter um sistema descentralizado foi alcanada atravs da interconexo das CPUs entre si. a isso que se propem as redes de computadores. A soluo para a comunicao de computadores em termos de longa distncia foi a tecnologia de comutao de pacotes, que solucionou o problema da linha telefnica dedicada. Para pequenas distncias a soluo foi a implantao de redes locais. De uma forma geral, o objetivo de uma rede tornar disponvel a qualquer usurio todos os programas, dados e outros recursos independente de suas localizaes fsicas. Outro objetivo proporcionar uma maior disponibilidade e confiabilidade, dada a possibilidade de migrao para outro equipamento quando a mquina sofre alguma falha. O uso de uma rede de computadores proporciona um meio de comunicao poderoso devido a sua velocidade e confiabilidade.

3.2

CLASSIFICAO DAS REDES DE COMPUTADORES

Uma rede de computadores formada por um conjunto de mdulos processadores capazes de trocar informaes e compartilhar recursos, interligados por um sistema de comunicao. O sistema de comunicao vai se constituir de um arranjo topolgico interligando os vrios mdulos processadores atravs de enlaces fsicos, atravs dos meios de transmisso, e de um conjunto de regras com fim de organizar a comunicao, os protocolos de comunicao.

3.2.1 REDES LOCAIS


Redes Locais (LANs - Local Area Networks) so redes privadas contidas em um prdio ou campus universitrio, que tem alguns quilmetros de extenso. As redes locais foram definidas e utilizadas inicialmente nos ambientes de institutos de pesquisa e universidades. Elas surgiram para viabilizar a troca e o compartilhamento de informaes e dispositivos perifricos preservando a independncia das vrias estaes de processamento e permitindo a integrao em ambientes de trabalho cooperativo. So amplamente utilizadas para interconectar computadores pessoais e estaes de trabalho em escritrios e instalaes industriais. Nas redes locais as distncias entre os mdulos processadores se enquadram na faixa de alguns metros a alguns poucos quilmetros. Esta definio bastante vaga, embora as limitaes associadas s tcnicas utilizadas em redes locais no imponham limites a essas distncias. As redes locais tm trs caractersticas que as diferem das demais: tamanho, tecnologia de transmisso e topologia. Elas geralmente tem um tamanho restrito. Em algumas topologias o pior tempo de transmisso conhecido e isto permite a utilizao de determinados tipos de aplicaes. Nas LANs tradicionais os computadores so interconectados por cabos ou atravs de equipamentos tipo hub. Neste tipo de rede as velocidades geralmente variam de 10 a 100 Mbps, h um baixo retardo e pouqussimos erros de transmisso so encontrados. As LANs mais modernas podem operar em velocidades ainda mais altas, alcanando Gbps. Este tipo de rede apresenta como topologias lgicas mais usadas o barramento e o anel e como topologias fsicas a rvore e a estrela. fato que em qualquer tipo de rede duas ou mais estaes podem Arquiteturas de Redes 25

necessitar enviar informaes pelo meio de transmisso no mesmo instante. Analisando estes arranjos topolgicos verificamos que h a necessidade de um mecanismo de arbitragem para determinao de qual estao poder transmitir de forma a no existncia de conflitos e garantia de tempo para todas as estaes que tm dados a transmitir. Conforme j mencionado, estes mecanismos podem ser estticos ou dinmicos e estes ltimos ainda podem ser divididos em centralizados ou distribudos. Mais adiante sero discutidos alguns destes mtodos.

3.2.2 REDES METROPOLITANAS


Uma Rede Metropolitana (MAN - Metropolitan Area Network) , na verdade, uma verso ampliada de uma LAN, pois basicamente os dois tipos de rede utilizam tecnologias semelhantes. Uma MAN pode abranger um grupo de escritrios vizinhos ou uma cidade inteira e pode ser privada ou pblica. Este tipo de rede pode transportar voz e dados, podendo inclusive ser associado rede de televiso a cabo local. A principal razo para se tratar as redes metropolitanas como uma categoria especial que elas tm um padro especial, o DQDB (Distributed Queue Dual Bus) ou IEEE 802.6. Atualmente as redes ATM (Asynchronous Transfer Mode) tm sido a tecnologia com maior aceitao para uso em redes metropolitanas.

3.2.3 REDES GEOGRAFICAMENTE DISTRIBUDAS


As Redes Geograficamente Distribudas (WANs - Wide Area Networks), ou Redes de Longa Distncia abrangem uma ampla rea geogrfica, com freqncia um pas ou continente. Ela tambm contm um conjunto de mquinas cuja finalidade executar programas de usurios, as chamadas aplicaes. Estas mquinas so denominadas na literatura como hosts ou end systems. Estes hosts so conectados por uma sub-rede de comunicao, ou somente sub-rede. A tarefa as sub-rede transportar mensagens de um host para outro, exatamente como o sistema telefnico transporta palavras da pessoa que fala para aquela que ouve. Esta estrutura altamente simplificada pois separa os aspectos de comunicao pertencentes rede (a sub-rede) dos aspectos de comunicao. Na maioria das redes geograficamente distribudas, a sub-rede consiste em dois componentes distintos: linhas de transmisso e elementos de comutao. As linhas de transmisso, tambm chamadas circuitos, canais ou troncos, transportam os bits entre as mquinas. Os elementos de comutao so equipamentos especializados usados para conectar duas ou mais linhas de transmisso. Quando os dados chegam por uma linha de entrada, o elemento de comutao deve escolher uma linha de sada para encaminh-la. No existe uma terminologia padro para identificar estes equipamentos. Dependendo das circunstncias eles so chamados ns de comutao de pacotes, sistemas intermedirios, centrais de comutao de dados ou ainda IMP (Interface Message Processor). Mas o termo mais comum para identificar estes elementos de comutao roteador. No modelo mostrado na figura 3.1, os hosts so ligados a algum tipo de rede local onde h tambm um elemento de comutao, embora em alguns casos um host possa estar ligado diretamente a um elemento de comutao. O conjunto de linhas de comunicao e elementos de comutao forma a sub-rede.

Arquiteturas de Redes

26

Sub-rede

Host

Elemento de comutao

Figura 3.1 - Ligaes entre hosts e a sub-rede de comunicao Na maior parte das WANs, a rede contm numerosos cabos ou linhas telefnicas, todos conectados por um par de roteadores. Porm, se dois roteadores que no compartilham um cabo desejarem se comunicar eles podero faze-lo atravs de um ou mais roteadores intermedirios. Quando um pacote enviado de um roteador para outro ele recebido integralmente, armazenado e repassado pela linha de sada quando ela estiver liberada. Estas redes so tambm redes store-and-forward, ponto-aponto ou de comutao de pacotes, como j mencionado anteriormente. Quase todas as redes geograficamente distribudas (com exceo das que usam satlite) tm sub-redes store-and-forward. Em funo dos custos de comunicao serem bastante altos estas redes so, em geral, pblicas, isto , o sistema de comunicao, chamado sub-rede de comunicao, mantido, gerenciado e de propriedade pblica. Tambm em funo dos custos, as velocidades empregadas so 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 vem crescendo muito. Elas so necessrias quando impossvel haver uma conexo por fios, como por exemplo, a partir de carros ou avies. Outro problema que elas solucionam quando uma pessoa viaja e quer usar seu computador porttil para enviar e receber mensagens de correio eletrnico, fax, ler arquivos remotos, estabelecer login com computadores remotos, estejam eles em terra, no mar ou no ar. As redes sem fio so muito utilizadas por empresas de caminhes, txis e por funcionrios de assistncia tcnica ou de vendas, pois estes esto sempre necessitando de informaes atualizadas de bases de dados de suas empresas. Elas tambm tm sido muito utilizadas para operaes de resgate em caso de catstrofes onde o sistema telefnico foi destrudo e em operaes militares. Embora as redes sem fio e a computao mvel tenham uma estreita relao, elas no so iguais. s vezes os computadores portteis podem ser conectados por fios. Por exemplo, se uma pessoa conecta um computador porttil na tomada do telefone de um hotel temos mobilidade sem o uso de uma rede sem fio. Por outro lado alguns computadores com comunicao sem fio no so portteis. Esse o caso das empresas sediadas em prdios muito antigos nos quais no h possibilidade de passagem de cabeamento de rede. por vezes a instalao de uma rede sem fio pode ser mais barata do que instalar fiao necessria no prdio. As redes sem fios so fceis de instalar mas elas possuem algumas desvantagens: baixa velocidade e altas taxas de erro. Elas tambm possuem inmeros formatos. Elas podem variar desde LANs sem fio que cobrem um campus universitrio, para que os alunos possam usar seus computadores portteis e trabalhar sob a sombra de uma rvore, at o uso de telefones celulares para acesso remoto a redes.

Arquiteturas de Redes

27

3.2.5 LIGAO ENTRE REDES


Existem muitas redes no mundo, freqentemente com hardwares e softwares especficos. Normalmente as pessoas conectadas a diferentes redes precisam comunicar-se e para que isto seja possvel so necessrias conexes entre redes que muitas vezes so incompatveis. Para que esta comunicao possa realizar-se so utilizados os chamados gateways, que estabelecem conexes e permitem a comunicao entre usurios de redes diferentes. Um conjunto de redes interconectadas chamado de ligao inter-rede, ou apenas inter-rede. A palavra inter-rede deve ser usada de modo genrico, j a Internet uma inter-rede mundial especfica, muito utilizada para interconectar universidades, rgos do governo, empresas e pessoas fsicas. As sub-redes, redes e inter-redes so freqentemente confundidas. Uma sub-rede faz mais sentido no contexto de uma rede geograficamente distribuda, onde fazem referncia ao conjunto de roteadores e linhas de transmisso do operador da rede. Por outro lado, a combinao de uma sub-rede e seus hosts forma uma rede. Uma inter-rede formada quando diferentes redes so conectadas.

3.2.6 PARMETROS DE COMPARAO


A escolha de um tipo de rede para dar suporte a um dado conjunto de aplicaes uma tarefa difcil. Cada arquitetura de rede possui caractersticas que afetam sua adequao a uma aplicao em particular. Muitos podem ser os atributos que fazem parte do rol possvel a ser considerado para comparao. Dentre eles esto custo, tempo de resposta, velocidade, desempenho, confiabilidade, modularidade, compatibilidade, e facilidade de adaptao mudana de tecnologia. Estes pontos sero discutidos brevemente a seguir.

CUSTO
O custo de uma rede composto pelo custo das estaes de processamento, das interfaces com o meio fsico de comunicao e o custo do prprio meio fsico. Uma vez que os custos das estaes esto cada vez menores necessrio 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 mdio desempenho usualmente empregam poucas estaes com uma demanda de taxas de dados e volume de trfego pequeno, permitindo o uso de interfaces de baixo custo. Redes de alto desempenho j requerem interfaces de custo mais elevado.

RETARDO DE TRANSFERNCIA
Retardo de acesso o tempo que uma estao espera, a partir do momento que uma mensagem est pronta para ser transmitida, at o momento em que ela consegue transmitir com sucesso esta mensagem. Retardo de transmisso o intervalo de tempo decorrido desde o incio da transmisso de uma mensagem por uma estao de origem at o momento em que a mensagem chega estao de destino. Por fim retardo de transferncia eqivale soma dos retardos de acesso e de transmisso. O retardo de transferncia , na maioria dos casos, uma varivel aleatria, porm em algumas redes o seu valor pode ser calculado, ou melhor, ele determinstico. A rede deve ser adequada ao tipo particular de aplicao para o qual ela foi concebida. Por exemplo, para aplicaes de controle em tempo real, o retardo de transferncia limitado de vital importncia.

DESEMPENHO
Pode-se definir como desempenho a capacidade efetiva de transmisso da rede. Por exemplo as redes locais de alta velocidade (High-Speed Local Networks - HSLN) so projetadas de forma a fornecer um alto desempenho na comunicao entre dispositivos, embora o custo de conexes seja mais elevado. Na verdade, os termos velocidade, desempenho e retardo de transferncia esto intimamente relacionados. A escolha de um mecanismo de interconexo orientado para a natureza das aplicaes essencial para o bom desempenho de uma rede.

Arquiteturas de Redes

28

CONFIABILIDADE
Confiabilidade pode ser avaliada em termos de tempo mdio entre falhas (Medium Time Between Failures - MTBF), tolerncia a falhas, degradao amena, tempo de reconfigurao aps falhas e tempo mdio de reparo (Medium Time to Repair - MTTR). O MTBF geralmente medido em horas. A degradao amena est ligada aplicao e mede a capacidade da rede continuar operando em presena de falhas, embora com desempenho menor. Reconfigurao aps falhas requer que alternativas redundantes sejam acionadas to logo uma falha ocorra. O tempo mdio de reparo pode ser diminudo com o auxlio de redundncia, mecanismos de auto-teste e diagnstico, e manuteno eficiente.

MODULARIDADE
Modularidade pode ser caracterizada como o grau de alterao de desempenho e funcionalidade que uma rede pode sofrer sem mudar seu projeto original. Os maiores benefcios de uma arquitetura modular incluem a facilidade para modificao, facilidade para crescimento e facilidade para o uso de um conjunto de componentes bsicos. A modularidade est intimamente ligada s aplicaes do sistema. Uma rede bem projetada deve poder adaptar-se modularmente s vrias aplicaes a que dedicada, como tambm prever futuras utilizaes.

COMPATIBILIDADE
Tambm conhecida como interoperabilidade, a compatibilidade pode ser vista como a capacidade que a rede possui para ligar-se a dispositivos de vrios fabricantes, tanto de software quanto de hardware. Esta caracterstica bastante importante e valiosa por dar ao usurio grande flexibilidade e poder de barganha perante os fabricantes.

SENSIBILIDADE TECNOLGICA
Este tpico diz respeito modularidade. Uma rede deve ter a capacidade de suportar todas as aplicaes para a qual ela foi projetada, mais aquelas que no futuro possam ser requeridas, incluindo transmisso de vdeo, voz e interconexo com outras redes, por exemplo.

3.3

AS ARQUITETURAS DE REDE

Para compreender as diversas posturas, abordagens e atitudes polticas relacionadas com a rea de comunicao de dados, como tambm para acompanhar o se desenvolvimento tecnolgico, necessrio conhecer suas origens e sua histria. Em meados da dcada de 60, o governo dos EUA, por intermdio do Departamento de Defesa, iniciou estudos relacionados viabilidade do desenvolvimento de redes de computadores. Em 1968 tiveram incio as atividades do Projeto ARPA (Advanced Research Project Agency), tendo por base o conhecimento 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. Comeava ai a era da tecnologia de redes de computadores, caracterizada pela distribuio das aplicaes entre vrios comutadores interligados de acordo com uma topologia determinada. Na rede ARPA foi, pela primeira vez, implementada a tecnologia de comutao de pacotes, assim como o mtodo de diviso em vrias camadas funcionais das tarefas de comunicao entre aplicaes residentes em computadores distintos, conectados por meio da rede, criando-se o conceito de Arquitetura de Rede de Computadores. Tambm na dcada de 70, o crescimento da ARPA permitiu a interligao de computadores de universidades americanas e de alguns computadores situados em outros pases. Na mesma poca, os grandes fabricantes de equipamentos de processamento de dados criaram seus prprios mtodos para interligar em rede seus respectivos produtos. Surgiram, assim, as Arquiteturas Proprietrias, primeiro com a IBM, que lanos a arquitetura SNA (Systems Network Architecture), depois com a Digital e a sua arquitetura Decnet, alm de vrias outras. Para as entidades especializadas em venda de servios de telecomunicaes abriu-se um novo mercado: a oferta de servios de comunicao de dados por meio do fornecimento de uma estrutura de comunicao, a sub-rede, baseada funcionalmente no princpio de comutao de pacotes. O CCITT (atual ITU-T) elaborou documentos que permitiram que estes servios fossem padronizados, a partir dos quais

Arquiteturas de Redes

29

publicou, em 1976, a primeira verso da Recomendao X.25, propondo a padronizao de redes pblicas de comutao de pacotes.

3.4

A ARQUITETURA DO RM/OSI

O quadro que o segmento de redes de computadores apresentava no final da dcada de 70 caracterizava-se, de um lado, por enormes perspectivas de crescimento, mas, de outro, por uma situao de crise criada pela heterogeneidade dos padres, protocolos e equipamentos de comunicao de dados existentes no mercado. Cada interessado havia definido, unilateralmente, sua arquitetura. Os fabricantes, as arquiteturas proprietrias; as operadoras de telecomunicaes, as arquiteturas das redes pblicas; e algumas entidades, como era o caso da ARPA, arquiteturas especficas para atender s suas redes. A soluo foi encontrada pela ISO (International Organization for Standardization), sob a forma de propostas de elaborao de um modelo que viesse a sintetizar, de modo abstrato, o funcionamento de computadores integrados por redes de comunicao de dados. Baseada nas experincias advindas do funcionamento dos sistemas de teleprocessamento, da rede ARPA e das redes pblicas e proprietrias, a ISO, entre 1978 e 1984, elaborou o RM-OSI ou Modelo de Referncia para Interconexo de Sistemas Abertos (Reference Model - Open Systems Interconnection), que a expresso, assim, de todo o conhecimento tecnolgico adquirido pelo mundo a respeito de comunicao de dados. No modelo OSI foi, pela primeira vez, abordado o conceito de sistema aberto, definido como o sistema capaz de suportar os padres de comunicao OSI de modo a interfuncionar com outros sistemas abertos de diferentes fornecedores. Ao modelo OSI se deve, tambm, a consolidao dos princpios de arquitetura de rede de comunicao de dados. A receptividade em relao ao Modelo OSI foi muito grande nos anos seguintes sua divulgao e, em alguns setores, mantm-se at hoje. Especialistas da rea baseiam-se me seus princpios, e comum encontrar na literatura ou em palestras menes do tipo: as tarefas correspondentes camada X do Modelo OSI ou faltam tais funes correspondentes camada Y do Modelo OSI, mesmo quando se faz referncia a sistemas que no propem a aderir a esse modelo. O esforo de padronizao no foi concludo com a elaborao do Modelo OSI. Ao contrrio, iniciou-se uma intensa atividade, em nvel mundial, no sentido de projetar, especificar, implementar e testar os protocolos das vrias camadas definidas pelo modelo, nascendo, assim, a Arquitetura OSI: uma estrutura funcional dos elementos envolvidos na comunicao entre sistemas abertos de comunicao de dados, suportada por um conjunto de protocolos padronizados, elaborados de acordo com os princpios do Modelo OSI. Desde a sua criao, e cada vez que um novo padro de protocolo elaborado, a Arquitetura OSI impe-se como o grande projeto de Engenharia de Protocolos. As solues apresentadas, os mecanismos de protocolos, a estrutura de camada de aplicao e as aplicaes desenvolvidas de acordo com os princpios da metodologia orientada a objetos e da computao distribuda contribuem para essa colocao. Mais detalhes sobre os servios e protocolos relacionados ao RM-OSI, assim como as tcnicas mais utilizadas para implement-los sero descritos com detalhes neste curso.

3.5

A ARQUITETURA TCP/IP INTERNET

A arquitetura Internet largamente utilizada para interconexo e interoperao de sistemas computacionais heterogneos. Tal arquitetura foi lanada pelo Departamento de Defesa do governo americano e escolhida para ser o padro obrigatrio de comunicao entre os diversos sistemas daquela organizao. Ela tornou-se um padro de facto do mercado. Os padres no so definidos por entidades de padronizao internacional como a ISO, por exemplo. As definies dos protocolos so encontradas em documentos denominados RFC (Request for Comments), os quais so elaborados pelo IAB (Internet Activities Board). A arquitetura Internet tambm organizada em camadas. Ela composta por dois protocolos principais: o IP (Internet Protocol) e o TCP (Transmission Control Protocol). O IP responsvel pelo encaminhamento de pacotes de dados pelas diversas sub-redes desde a origem at o seu destino. O TCP tem por funo o transporte fim-a-fim confivel de mensagens de dados entre dois sistemas. O IP um Arquiteturas de Redes 30

protocolo do tipo datagrama, operando, portanto, no modo no orientado conexo, enquanto o TCP um protocolo de transporte orientado conexo. O conjunto TCP/IP pode, desta forma, oferecer um servio relativamente confivel. Para uso em redes de alta qualidade, onde o problema de confiabilidade no assume grande importncia, foi definido o protocolo UDP (User Datagram Protocol) que opera no modo no orientado conexo 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 de trabalho, um edifcio, um campus universitrio, uma fbrica, etc. As distncias podem variar de metros at alguns poucos quilmetros e a velocidade de transmisso da ordem de milhes de bits por segundo. A maioria dos produtos existentes na rea utiliza uma forma simples de interligao fsica entre os equipamentos e talvez esta seja uma das caractersticas mais atrativas das redes locais. Estas caractersticas, no entanto, no so suficientes para garantir o sucesso de uma rede local. Para o usurio final muito importante ter um mecanismo de transmisso de informao eficiente, sem que haja a necessidade de conhecer os detalhes tcnicos para efetuar a ligao com a rede. Uma rede local pode ser descrita atravs de caractersticas tais como: est contida dentro de uma rea geogrfica limitada, possui equipamentos interconectados porm independentes, existe um alto grau de interconexo entre os equipamentos da rede, a transmisso de informao geralmente na forma digital, a interface com a rede feita atravs de equipamentos e meios de transmisso relativamente baratos e possvel a comunicao entre dois equipamentos quaisquer da rede. A escolha de um tipo de rede para suporte a um dado conjunto de aplicaes uma tarefa por vezes difcil. Cada arquitetura de rede possui caractersticas que afetam sua adequao a uma aplicao em particular. Muitos podem ser os atributos que fazem parte do rol possvel de ser considerado para comparao. Dentre eles esto: custo, tempo de resposta, velocidade, desempenho, confiabilidade, modularidade, compatibilidade, e facilidade de adaptao na mudana de tecnologia.

3.6.1 O RM-OSI E AS REDES LOCAIS


Redes locais possuem caractersticas que afetam principalmente os nveis mais baixos de protocolo de uma arquitetura de rede. Esses nveis no devem deixar de levar em considerao o elevado desempenho, o baixo retardo, a baixa taxa de erros, o roteamento simples (em geral nico) e as aplicaes a que se destinam as redes locais. O RM-OSI, embora teoricamente, poderia ser utilizado tanto em redes geograficamente distribudas como em redes locais. No entanto, ele foi pensado para uso em redes geograficamente distribudas. Sua aplicabilidade em redes locais no pode deixar de levar em considerao as caractersticas intrnsecas destas redes. As distncias limitadas a que so destinadas as redes locais permitem que seu protocolo de nvel fsico possa utilizar um meio de alta velocidade com baixssimas taxas de erros. Este fato vai influenciar em muito os outros nveis de protocolo. Vrias diferenas existem na camada de enlace de dados, a comear pela delimitao dos quadros. Ao contrrio das redes de longa distncia, nas redes locais o mtodo mais apropriado para delimitao de quadro pode ser a simples presena ou ausncia de sinal no meio. Devido ao alto desempenho do meio de transmisso e sua baixa taxa de erros, no cabe ao nvel de enlace utilizar muitos bits de redundncia para a recuperao de erros. Mais ainda, se levarmos em considerao que para determinadas aplicaes os requisitos de tempo real so bem mais importantes do que sua confiabilidade exagerada da transmisso. Muitas vezes nem a recuperao de erros por retransmisso desejvel neste nvel. Ao nvel de enlace caberia apenas um esforo mximo para entregar pacotes de nvel 3 sem erros, mas no a sua recuperao caso esse servios ocorram. Em redes locais as regras que disciplinam o acesso ao meio fsico para transmisso de dados so chamadas protocolos de acesso. Como exemplo pode-se citar as regras para controle de acesso ao barramento compartilhado. Nas redes locais a transmisso de dados feita por difuso ou possuem roteamento nico. Neste sentido os protocolos de ligao poderiam estar no nvel 2 do RM-OSI, uma vez que tratam do envio do pacote de uma mquina para outra, mas igualmente poderiam ser colocados no nvel de rede uma vez que se trata do envio de um pacote da estao de origem at a estao de destino, Arquiteturas de Redes 31

isto , fim-a-fim. Existem tambm proposta que os colocam no nvel fsico, uma vez que determinam a ligao fsica ao meio. O comit de padronizao de redes locais, o IEEE 802, os coloca como parte do nvel 2. Como nas redes locais a transmisso de dados feita por difuso ou possuem roteamento nico o nvel de rede no tem aqui grande relevncia. Em muitas redes o nvel de transporte vai ser construdo imediatamente acima do nvel de enlace. Opcionalmente devemos permitir que o nvel de transporte seja construdo acima do nvel inter-redes. O nvel 3 em redes locais teria ento como funo o roteamento de pacotes entre estao origem e destino em redes diferentes ou na interconexo de redes locais entre si. Neste nvel ainda o mais adequado a utilizao de datagrama no confivel, deixando para os nveis superiores a recuperao, se necessria, dos erros. A arquitetura Internet TCP/IP, que utiliza essa abordagem, uma alternativa bastante utilizada para interligao de redes locais de computadores. Em redes locais o nvel de transporte, ao tornar transparente para os nveis superiores toda a parte de transmisso, pode ainda tirar vantagem que o meio lhe oferece, como por exemplo, a confirmao de vrios circuitos virtuais em uma nica mensagem em uma rede do tipo difuso. A implementao dos demais nveis de protocolo depende muito das aplicaes da rede. O RMOSI pode ser seguido na ntegra, podendo suas funes serem realizadas por processos de um sistema operacional distribudo, onde a interface do nvel 4 seria vista simplesmente como primitivas de comunicao do ncleo desse mesmo sistema operacional.

3.6.2 O PADRO IEEE 802


O projeto IEEE 802 teve origem na Sociedade de Computao do Instituto de Engenheiros Eletricistas e Eletrnicos dos EUA, ou IEEE Computer Society. O comit 802 publicou um conjunto de padres que foram adotados como padres nacionais americanos pelo American National Standards Institute (ANSI). Estes padres foram posteriormente revisados e republicados como padres internacionais pela ISO com a designao ISO 8802. O objetivo foi o estabelecido de uma arquitetura padro, orientada para o desenvolvimento de redes locais, que apresentasse as seguintes caractersticas: correspondncia mxima com o RM-OSI; interconexo eficiente de equipamentos a um custo moderado; implantao da arquitetura a custo moderado. A estratgia adotada na elaborao da arquitetura IEEE 802 a de definir mais de um padro de forma a atender aos requisitos dos sistemas usurios da rede. Na verdade, a arquitetura IEEE 802 pode ser vista como uma adaptao das duas camadas inferiores da arquitetura RM-OSI da ISO. Nesta arquitetura existem 3 camadas, ou seja, uma equivalente camada fsica e duas sub-camadas que juntas eqivalem a camada de enlace. Elas so assim denominadas: camada fsica (PHY); sub-camada de controle de acesso ao meio (MAC); sub-camada de controle de enlace lgico (LLC). Para atender o modelo elaborado devemos observar que as funes de comunicao mnimas e essenciais de uma rede local, equivalentes aos nveis inferiores do RM-OSI, podem ser assim definidas: fornecer um ou mais SAPs (pontos de acesso ao servio) para os usurios da rede; na transmisso, montar os dados a serem transmitidos em quadros com campos de endereo e deteco de erros; na recepo, desmontar os quadros, efetuando o reconhecimento de endereo e deteco de erros; gerenciar a comunicao no enlace. Estas quatro funes so fornecidas pelo nvel de enlace do RM-OSI. A primeira funo, as subfunes a ela relacionadas, so agrupadas pelo IEEE 802 na camada Logical Link Control (LLC). As trs restantes so tratadas em uma camada separada, chamada Medium Access Control (MAC), que podem, ento ser otimizadas para as diferentes topologias de redes locais, mantendo uma interface nica, a camada LLC, para os usurios da rede local.

Arquiteturas de Redes

32

Em um nvel fsico mais baixo esto as funes normalmente associadas ao nvel fsico: codificao/decodificao de sinais, gerao e remoo de prembulos para sincronizao e transmisso/recepo de bits. Como no RM-OSI, essas funes foram atribudas ao nvel fsico no modelo de referncia elaborado pelo IEEE 802. A figura 3.2 apresenta a relao entre alguns dos principais padres IEEE 802 e o RM-OSI. importante ressaltar que j existem outros padres IEEE 802.X, que j foram ou sero aqui citados, tais como IEEE 802.11 (FDDI) e IEEE 802.12 (100VGAnyLAN). O padro IEEE 802.1 um documento que descreve o relacionamento entre os diversos padres IEEE 802 e o relacionamento deles com o modelo de referncia OSI. Este documento contm tambm padres para gerenciamento da rede e informaes para ligao inter-redes. O padro ANSI/IEEE 802.2 (ISO 8802/2) descreve a sub-camada superior do nvel de enlace, que utiliza o protocolo Logical Link Control Protocol. Os outros padres que aparecem na figura 3.2 especificam diferentes opes de nvel fsico e protocolos da sub-camada MAC para diferentes tecnologias de redes locais. So eles: padro IEEE 802.3 (ISO 8802/3), rede em barra utilizando CSMA/CD como mtodo de acesso; padro IEEE 802.4 (ISO 8802/4), rede em barra utilizando passagem de permisso como mtodo de acesso; padro IEEE 802.5 (ISO 8802/5), rede em anel utilizando passagem de permisso como mtodo de acesso; padro IEEE 802.6 (ISO 8802/6), rede em barra utilizando o Distributed Queue Dual Bus (DQDB) como mtodo de acesso. RM/OSI
CAMADAS SUPERIORES

IEEE 802

802.1 802.2

ENLACE

LLC MAC

FISICO

802.3

802.4

802.5

802.6

Figura 3.2 - Relao entre os padres RM-OSI e IEEE 802. Os padres IEEE 802.3 (CSMA/CD) e IEEE 802.5 (Token Ring) so os mais conhecidos em funo de terem sido a base para os produtos Ethernet (Xerox, Digital,...) e Token Ring (IBM). O padro IEEE 802.4 denominado Token Bus e o padro IEEE 802.6 denominado DQDB. H ainda a definio de vrios padres dentro deste projeto.

3.6.3 INTERCONEXO DE REDES LOCAIS


A interconexo de redes locais uma necessidade nos dias atuais. Esta a tarefa mais importante da camada de rede em redes locais. Ela se faz necessria quando mquinas origem e destino esto em redes diferentes. Na execuo da funo de ligar rede locais entre si pode-se criar topologias parcialmente ligadas fazendo com que existam caminhos diferentes por redes intermedirias, com diferentes protocolos. O principal problema que decorre disto que existem diversos tipos de redes com caractersticas prprias. Assim, a tarefa do nvel de rede compatibilizar as diferentes tecnologias e protocolos empregados nas redes a serem interconectadas. Nem sempre a interconexo de redes exige alto grau de complexidade. Por vezes apenas necessrio ligar dois segmentos de rede exatamente iguais, ou que possuam apenas o meio fsico Arquiteturas de Redes 33

diferente. Por exemplo quando desejamos interconectar duas redes Ethernet somente com cabeamento diferente. Outro problema, um pouco mais complexo, seria interconectar duas redes com protocolos de acesso diferentes, porm com o mesmo protocolo de rede. Por exemplo, se desejarmos interconectar uma rede Ethernet com uma rede Token Ring. As motivaes que podem levar necessidade de interconectar de redes entre si so: de ordem econmica, por exemplo, para compartilhar uma interface de rede pblica; de ordem tecnolgica, por exemplo, para interconectar vrias redes locais em reas ou prdios distintos; para melhorar desempenho e confiabilidade, por exemplo, dividir uma rede local com grande nmero de estaes em 2 ou mais redes; de ordem funcional, por exemplo, para atender necessidades do usurio, tais como acesso a recursos como bancos de dados, disponveis em outras redes. Algumas questes a serem abordadas para a interconexo: endereamento e encaminhamento das mensagens; fragmentao das mensagens; deteco e recuperao de erros; servio com ou sem conexo; nvel de interconexo; controle de fluxo; controle de congestionamento; segurana; tarifao de servios; nomes e endereamento. A ligao entre equipamentos heterogneos deve ter convenes para representao de nomes e endereos de processos que tenham significado em toda a rede. As referncias s redes so feitas por nomes ou por endereos, e isto importante para identificao de recursos na rede. A maneira mais comum o endereamento hierrquico, ou seja, o endereo do processo constitudo de endereo da rede, endereo do equipamento hospedeiro (host) e endereo dentro do hospedeiro (porta). H tambm uma alternativa, o endereamento plano, ou no-hierrquico, onde h um endereo para cada recurso na rede. importante lembrar que a interconexo de duas redes exige a implementao, em cada rede, de um protocolo inter-redes que realize, pelo menos, as funes de tratamento de endereos. Os principais equipamentos para interconexo de redes so: repetidores, pontes e roteadores.

Arquiteturas de Redes

34

Captulo 4 - Modelos de Referncia

4.1

INTRODUO

Depois dos conceitos sobre a hierarquia em camadas vamos agora discutir um pouco sobre os principais conceitos relacionados a alguns exemplos prticos de arquiteturas de redes, com nfase principal nas arquiteturas do RM-OSI e do TCP/IP-Internet.

4.2

O MODELO DE REFERNCIA OSI

O Modelo OSI mostrado na figura 4.1. Este modelo foi desenvolvido com um primeiro passo na direo da padronizao internacional dos protocolos usados nas diversas camadas. Este modelo foi denominado de Modelo de Referncia para a Interconexo de Sistemas Abertos ou RM-OSI (Reference Model for Open Systems Interconnection), pois trata da interconexo de sistemas abertos, ou seja, sistemas que esto abertos comunicao com outros sistemas.
Nomenclatura da unidade intercambiada

Protocolo de Aplicao 7 Aplicao Protocolo de Apresentao Apresentao Protocolo de Sesso 5 Sesso Protocolo de Transporte 4 Transporte
Protocolo de Sub-rede Interna

Aplicao

APDU

Apresentao

PPDU

Sesso

SPDU

Transporte

TPDU

Rede

Rede

Rede

Rede

Pacote

Enlace

Enlace

Enlace

Enlace

Quadro

Fsico

Fsica Roteador

Fsica Roteador

Fsico

Bit

Host A
Protocolo de roteador/host da camada de rede Protocolo de roteador/host da camada de enlace Protocolo de roteador/host da camada fsica

Host B

Figura 4.1 - Arquitetura de sete camadas do modelo OSI. O modelo OSI foi criado seguindo a filosofia das arquiteturas multicamadas, como j descrita anteriormente. Como mostra a figura, sua arquitetura define 7 camadas, cujos princpios de definio foram os seguintes: 1. cada camada corresponde a um nvel de abstrao necessrio no modelo; Arquiteturas de Redes 35

2. cada camada possui suas funes prprias e bem definidas; 3. as funes de cada camada foram escolhidas segundo a definio dos protocolos normalizados internacionalmente; 4. a escolha das fronteiras entre cada camada deveriam ser definidas de modo a minimizar o fluxo de informao nas interfaces; 5. o nmero de camadas deve suficientemente grande para que funes distintas no precisem ser colocadas na mesma camada, e ser suficientemente pequeno para que a arquitetura no se torne difcil de controlar. Como pode ser visto na figura, o modelo prev a comunicao entre sub-redes atravs de processadores de interface de mensagem, ou IMPs (Interface Message Processors). A forma como os dados so 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. Ele envia, ento, os dados camada de Aplicao que introduz a estes um cabealho de aplicao, AH, e envia a mensagem resultante camada de Apresentao. Esta camada, por sua vez, introduz mensagem recebida um cabealho de apresentao, PH, enviando a mensagem, em seguida camada inferior. importante ressaltar aqui que esta camada no toma conhecimento da existncia e significado do cabealho de aplicao, considerando este como parte dos dados compondo a mensagem. Este processo de transferncia de camada a camada vai se repetindo at o nvel fsico, quando os dados sero, enfim, transmitidos ao sistema destino. Neste sistema, os diversos cabealhos introduzidos nas camadas de rede do sistema fonte vo sendo interpretados e eliminados nas camadas correspondentes at que os dados cheguem ao processo receptor. O conceito fundamental da transferncia de dados que cada camada foi projetada como se ela fosse realmente horizontal, quando na verdade a transmisso se d de modo vertical. Isto fica claro, por exemplo, quando a camada de Transporte emissora recebe um dado da camada de Sesso; ela insere um cabealho de transporte e envia a mensagem camada de Rede emissora. Este processo, portanto, para a camada de Transporte, no mais do que um detalhe tcnico. Um exemplo anlogo aquele de um diplomata de um pas fazendo um discurso, na sua prpria lngua, nas Naes Unidas. Este considera estar se dirigindo aos seus colegas diplomatas de outros pases, embora, na prtica, ele esteja dirigindo-se ao seu intrprete.
PROCESSO EMISSOR Aplicao Apresentao Sesso Transporte Rede Enlace Fsica
LH NH TH SH PH AH

DADOS

PROCESSO RECEPTOR Aplicao Apresentao Sesso Transporte Rede


C R C

DADOS

DADOS

DADOS

DADOS

DADOS

DADOS

Enlace Fsica

BITS

Figura 4.2 - Ilustrao da comunicao no modelo OSI.

Arquiteturas de Redes

36

4.2.1 AS CAMADAS DO RM-OSI


Vamos descrever, a seguir, as principais funes realizadas por cada uma das camadas definidas no Modelo OSI. A Camada Fsica responsvel da transferncia de bits num circuito de comunicao. De maneira geral, a sua funo garantir que cada bit enviado de um lado ser recebido do outro lado sem ter alterado o seu valor, ou seja, se o bit enviado est a 1, ele ser recebido a 1 e no a 0. Para isto, as questes a serem resolvidas neste nvel so do tipo: os modos de representao dos bits 0 e 1 de maneira a evitar ambigidades ou confuses (valor da tenso em volts para a representao dos valores 0 e 1 dos bits, durao de cada sinal representando um bit, a codificao dos sinais, etc...); os tipos de conectores a serem utilizados nas ligaes (nmero de pinos utilizado, as funes associadas a cada pino, ...); a maneira como as conexes so estabelecidas para a iniciao de um dilogo e como feita a desconexo ao final deste; modo de transmisso adotado (unidirecional, bidirecional, ...); modo de conexo adotado (ponto-a-ponto, multiponto, ...); modo de tratamento dos erros (deteco, tratamento, etc...). A concepo desta camada deve se relacionar definio das interfaces eltricas e mecnicas, seus modos de funcionamento, o suporte de comunicao adotado, etc. A Camada de Enlace de Dados tem por funo principal a transformao do meio de comunicao "bruto" em uma linha livre de erros de transmisso para a camada de Rede. Ela efetua esta funo atravs do fracionamento das mensagens recebidas do emissor em unidades de dados denominadas quadros, que correspondem a algumas centenas de bytes. Estes quadros so transmitidos seqencialmente e vo gerar quadros de reconhecimento enviados pelo receptor. Nesta camada, as unidades de dados so enriquecidas com um conjunto de bits adicional (no incio e fim de cada quadro) de modo a permitir o reconhecimento destes. Um problema tpico deste nvel o da ocorrncia de uma perturbao sobre a linha de transmisso que provoque a destruio (perda) do quadro enviado. Neste caso, o quadro deve ser retransmitido para garantir a integridade da informao transferida. Por outro lado, deve-se tambm evitar mltiplas retransmisses de um mesmo quadro, o que pode provocar a sua duplicao... por exemplo, se o quadro de reconhecimento perdido. Uma outra funo desta camada evitar uma alta taxa de envio de dados da parte do emissor no caso do sistema emissor no ter capacidade de absorver a informao mesma taxa. Este mecanismo deve permitir informar ao emissor a necessidade de armazenamento dos dados a transmitir (controle de fluxo). A Camada de Rede responsvel da gesto de sub-redes; ela define a forma como os pacotes de dados sero encaminhados do emissor ao receptor. Os caminhos a serem utilizados podem ser definidos em funo de tabelas estticas ou determinados dinamicamente no momento de cada dilogo em funo das condies de trfego da rede. Esta camada deve ainda efetuar a gesto dos problemas de congestionamento provocados pela presena de uma quantidade excessiva de pacotes de dados na rede. Ela deve, finalmente, resolver todos os problemas relacionados interconexo de redes heterogneas, particularmente: incompatibilidades no endereamento; incoerncias em relao aos tamanhos das mensagens; etc. A Camada de Transporte recebe os dados enviados da camada de sesso, decomp-los, se for o caso, em unidades de dados menores e garantir que todas as partes da mensagem vo ser transmitidas corretamente outra extremidade. Esta funo deve ser suprida de maneira eficiente, inclusive, sem que a camada de Sesso tome conhecimento de possveis alteraes na tecnologia da parte material da rede. Esta camada cria, normalmente, uma conexo de rede para cada conexo de transporte requerida pela camada de Sesso, embora, se as necessidades de velocidade transmisso so justificadas, ela possa estabelecer diversas conexes de rede para uma mesma conexo de transporte. Por outro lado, se o custo Arquiteturas de Redes 37

da manuteno de uma conexo de rede considerado elevado, esta camada pode efetuar a funo inversa, ou seja, a multiplexao de vrias conexes de transporte sobre uma mesma conexo de rede, esta tarefa sendo feita de modo transparente para a camada de Sesso. Ela deve determinar, tambm, o tipo de servio oferecido camada de Sesso e, por conseqncia, aos usurios da rede. Uma conexo de transporte tpica aquela de um canal ponto-aponto, livre de erros de transmisso, transmitindo as mensagens na mesma ordem em que elas foram enviadas. Por outro lado, outras classes de servios podem fornecer uma conexo capaz de enviar as mensagens de modo isolado, mas sem a garantia de uma ordem correta na transmisso. O tipo do servio a ser fornecido definido no momento do estabelecimento da conexo. Uma caracterstica desta camada que ela implementa um verdadeiro dilogo fim-a-fim, ou seja, o programa executando no sistema fonte dialoga com o programa executando na mquina destino atravs dos cabealhos e informaes de controle contidas nas mensagens deste nvel. J nas camadas mais baixas, os protocolos operam entre mquinas vizinhas e no entre os sistemas fonte e destino, dado que estes podem estar separados por vrios IMPs. Esta diferena fundamental, que se estende igualmente s camadas superiores (at a camada 7) pode ser verificada pela ilustrao da figura 4.1. Dado que esta camada responsvel do estabelecimento e trmino das conexes de rede, ela deve definir um mecanismo de endereamento que permita a um sistema indicar com qual sistema ele deseja dialogar. Finalmente, ela deve implementar um mecanismo de controle de fluxo fim-a-fim para evitar que o sistema fonte envie mensagens numa taxa superior quela com a qual o sistema destino pode consumi-las. A Camada de Sesso responsvel dos estabelecimentos de sesses de dilogo para os usurios da rede. Uma sesso objetiva permitir o transporte de dados, da mesma forma que os servios oferecidos pela camada de Transporte, mas ela oferece servios mais sofisticados de comunicao que podem ser teis a determinadas aplicaes. Um exemplo disto a possibilidade de envio, atravs de uma sesso, de um arquivo de dados (ou programa) de um sistema a outro. Outro servio da camada de Sesso efetuar a gesto do dilogo, ou seja, definir, por exemplo, se o dilogo vai ser efetuado em modo uni- ou bidirecional. Um servio tambm importante aquele da sincronizao do dilogo. Por exemplo, se um arquivo deve ser transferido atravs de uma sesso e este deve durar duas horas. Se, por uma razo qualquer, o tempo mdio entre duas panes de uma hora. Aps uma primeira interrupo por pane, a transferncia dever reiniciar, podendo ocasionar em erros de transmisso. Uma forma de evitar isto a insero de pontos de teste junto aos dados fazendo com que, aps uma interrupo de transferncia, os dados sejam retomados apenas a partir do ltimo ponto de teste. A Camada de Apresentao utiliza algumas funes freqentemente necessrias de modo a poupar o usurio deste trabalho. Esta camada assume particularmente as funes associadas sintaxe e semntica dos dados transmitidos. Um exemplo tpico das funes efetuadas por esta camada a codificao da informao num padro bem definido (ASCII, EBCDIC, etc...). Esta camada pode ainda suprir outras funes associadas compreenso dos dados, se utilizando do conhecimento do significado da informao para reduzir a quantidade de informao enviada, inclusive para implementar funes de confidencialidade e de autenticao. A Camada de Aplicao implementa um conjunto de protocolos bastante diversificado e orientado a aplicaes bem definidas. Um exemplo disto o protocolo de terminal virtual, que permite gerar a utilizao de um determinado programa (por exemplo, um editor de textos) de forma independente do tipo de terminal conectado rede. Outro servio importante o de transferncia de arquivos, que permite adaptar o tipo do arquivo transferido forma implementada pelo sistema de arquivamento do sistema considerado. Na parte dedicada a esta camada veremos, alm destas, outras classes de servios implementados a este nvel.

Arquiteturas de Redes

38

4.3

O MODELO DE REFERNCIA TCP/IP

O termo protocolo TCP/IP utilizado como designao comum para uma famlia de protocolos de comunicao de dados, sendo que o Transmission Control Protocol (TCP) e o Internet Protocol (IP) so apenas dois deles. Esta famlia de protocolos teve origem na rede Arpanet. A Internet cresceu muito alm do que se podia imaginar. A Internet hoje uma coleo de redes acadmicas, militares e comerciais espalhadas pelo mundo, interconectadas atravs do protocolo TCP/IP. Entre elas, pode-se citar a prpria RNP no Brasil. Uma vez que toda a rede conectada Internet deve falar o protocolo TCP/IP, natural que o interesse comercial por este protocolo tenha crescido muito, ao ponto de hoje estar disponvel em quase todas as plataformas. Alm disso, comum encontrarmos TCP/IP sendo utilizado em redes locais que no esto conectadas Internet. O sucesso e a popularidade do protocolo TCP/IP no se deve apenas imposio das agncias militares americanas, mas tambm ao fato der ter sido o primeiro protocolo a atingir a importante meta da comunicao de dados com abrangncia mundial. Isto somente foi possvel graas a algumas de suas caractersticas, a saber: TCP/IP um protocolo aberto, pblico e completamente independente de equipamentos e de sistemas operacionais; TCP/IP no define protocolos para o nvel fsico, possibilitando sua implementao sobre uma grande variedade de protocolos j existentes, tais como: Ethernet, Token Ring e X.25; O esquema de endereamento do TCP/IP permite designar univocamente qualquer mquina, mesmo em redes globais como a Internet; TCP/IP inclui protocolos do nvel de aplicao que atendem muito bem demanda de servios imposta pelos usurios. Uma vez que a padronizao foi essencial para a definio do TCP/IP como o protocolo mais utilizado no mundo, importante que se conhea como ele foi, e continua sendo, padronizado. Originalmente, os protocolos bsicos do TCP/IP foram padronizados atravs de Military Standards (MIL STD) e de Internet Engineering Notes (IEN). Atualmente, a maior parte da padronizao do TCP/IP feita atravs de Requests For Comments (RFC), que, alm da especificao formal dos protocolos, inclui informaes importantes sobre seu funcionamento e uso.

4.3.1 AS CAMADAS DO TCP/IP


A descrio da arquitetura do protocolo TCP/IP em camadas como as do modelo de referncia OSI uma tarefa difcil e certamente controversa. As camadas OSI foram definidas por pesquisadores ao longo de anos, sempre com o compromisso acadmico de ser um modelo de referncia, enquanto que o protocolo TCP/IP no teve qualquer compromisso que no a funcionalidade. Assim sendo, tentar estabelecer uma relao precisa entre as camadas OSI e TCP/IP algo praticamente impossvel. O modelo mais aceito para descrever a arquitetura TCP/IP composto de quatro camadas: acesso rede, Internet, transporte e aplicao. Este modelo apresentado na figura 4.3, em comparao ao modelo de referncia OSI.

Arquiteturas de Redes

39

Aplicao
Aplicaes que usam a rede

Camadas do TCP/IP Aplicao


Aplicaes que usam a rede

Apresentao
Padronizao da representao dos dados

Sesso
Gerncia de dilogos entre aplicaes

Transporte
Transporte de dados fim-a-fim

Transporte
Transporte fim-a-fim com correo de erros

Internet
Roteamento de datagramas

Rede
Transferncia de pacotes na rede

Acesso Rede
Acesso ao nvel fsico

Enlace
Comunicao confivel ponto-a-ponto

Fsico
Caractersticas fsicas da rede

Figura 4.3 Camadas da arquitetura TCP/IP em comparao com as camadas do RM-OSI Da mesma forma que no modelo de referncia OSI, os dados descem a pilha de protocolos para chegar a rede e sobem para chegar s aplicaes. Cada camada da pilha de protocolos adiciona um cabealho com informaes de controle e trata o que recebe da camada superior como sendo dados. Esta adio de informaes de controle em cada nvel denominada encapsulamento e ilustrada pela figura 4.4. O processo reverso acontece quando uma camada passa dados s superiores, ou seja, o cabealho removido e o restante passado para cima como dados.

Aplicao Transporte Internet Acesso Rede


Cabealho Cabealho Cabealho

Dados

Dados

send
Cabealho Dados

receive

Cabealho

Cabealho

Dados

Figura 4.4 - Encapsulamento de dados na pilha TCP/IP. Cada camada da pilha possui estruturas de dados prprias e independentes. Assim sendo, cada protocolo faz referncia aos dados de forma especfica. Por exemplo, aplicaes que fazem uso do protocolo TCP se referem aos dados como streams, ao passo que aplicaes que fazem uso do protocolo User Datagram Protocol (UDP) se referem aos dados como mensagens. O protocolo TCP, por sua vez, se refere aos dados como segmentos, enquanto que o UDP se refere aos dados como pacotes. O protocolo IP sempre se refere aos dados como datagramas, enquanto que os dados passados camada de acesso rede so referidos como frames ou quadros. A figura 4.5 ilustra esta terminologia.

Arquiteturas de Redes

40

Aplicao Transporte Internet Acesso Rede

TCP

stream

UDP

mensagem

segmento

pacote

datagrama

datagrama

frame

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 protocolos nesta camada provem meios para que os dados sejam transmitidos a outros computadores na mesma rede fsica. Esta camada pode abranger as trs primeiras camadas do modelo de referncia OSI: fsica, de enlace e de rede. Entretanto, a camada de acesso rede do TCP/IP no define propriamente os protocolos para estes trs nveis, mas sim como utilizar os protocolos j existentes para suportar a transmisso de um datagrama IP. medida que novas tecnologias de rede vo surgindo, novos protocolos so acrescidos camada de acesso rede. As principais funes da camada de acesso rede so: o encapsulamento de datagramas IP em frames para transmisso e a traduo de endereos IP em endereos fsicos de rede. Estas duas funes apresentam implementaes especficas para cada tipo de rede. A Camada Internet fica exatamente sobre a camada de acesso rede. O Internet Protocol (IP), o corao desta camada. Ele prov um servio bsico de datagrama sobre o qual as redes TCP/IP so implementadas. Todos os protocolos das camadas superiores a esta fazem uso do protocolo IP. As principais funes do protocolo IP so: definir o datagrama IP, que a unidade bsica de transmisso de dados da arquitetura TCP/IP; definir o esquema de endereamento IP; passar dados da camada de acesso rede camada de transporte; rotear datagramas IP; fragmentar e remontar datagramas IP. IP um protocolo no orientado a conexo, ou seja, no existe negociao prvia de uma conexo para a transmisso de dados. Isto no impede a existncia de protocolos orientados a conexo nas camadas superiores, mas eles devero negociar o estabelecimento de conexes por si prprios. Alm de ser no orientado conexo, o protocolo IP tambm no confivel, uma vez que no suporta mecanismos de deteco e recuperao de erros. Em outras palavras, o protocolo IP no verifica se um datagrama foi recebido corretamente, deixando esta responsabilidade para os protocolos das camadas superiores. A Camada de Transporte fim-a-fim est localizada exatamente sobre a camada Internet na hierarquia TCP/IP. Os principais protocolos desta camada so: Transmission Control Protocol (TCP) e User Datagram Protocol (UDP). TCP um protocolo orientado a conexo com deteco e correo de erros fim-a-fim. UDP um protocolo no orientado a conexo e no confivel, sendo portanto muito leve. Ambos os protocolos passam dados entre as camadas de aplicao e Internet. Cada aplicao livre para escolher o protocolo que melhor se adapta a sua natureza. O User Datagram Protocol (UDP) prov meios para que aplicaes tenham acesso direto ao servio de datagrama IP. Aplicaes que usam este protocolo inserem pouco overhead na rede. Como o prprio IP, o protocolo UDP no orientado a conexo e no confivel. Note que a expresso no confivel implica apenas a inexistncia de mecanismos de confirmao do correto recebimento do datagrama. O protocolo UDP utilizado principalmente por aplicaes que transmitem dados em pequenas quantidades, de tal forma que o overhead de uma conexo maior do que o da retransmisso dos dados em caso de erro. Alm disto, as aplicaes do modelo cliente/servidor freqentemente fazem uso de protocolos do tipo requisio/resposta que so melhor implementados sobre UDP, uma vez que no existem conexes preestabelecidas entre clientes e servidores. Arquiteturas de Redes 41

O Transmission Control Protocol (TCP) um protocolo orientado a conexo e confivel. A transmisso de dados atravs de uma conexo, ou stream, se d atravs de segmentos. De forma similar ao pacote UDP, cada segmento carrega informaes sobre as aplicaes origem e destino (ports). A Camada de Aplicao fica no topo da pilha TCP/IP e inclui todos os processos que utilizam servios das camadas inferiores para transmitir dados atravs da rede. Alguns protocolos desta camada so citados abaixo, enquanto que a figura 4.6 ilustra dois exemplos de pilha TCP/IP. Telnet: servio de terminal virtual que permite sesses remotas sobre a rede; File Transfer Protocol (FTP): servio de transferncia de arquivos pela rede; Simple Mail Transfer Protocol (SMTP): servio de correio eletrnico; Domain Name Service (DNS): servio de traduo de nomes de hosts em endereos IP; Routing Information Protocol (RIP): suporta a troca de informaes de roteamento entre gateways; Network File System (NFS): sistema de arquivos remotamente acessveis. Aplicao Transporte Rede X.25 Sub-rede de acesso LAPB/HDLC CCITT V.35 Renpac Figura 4.6 - Exemplos de pilha TCP/IP. FTP TELNET TCP IP ARP IP over Ethernet CSMA/CD Ethernet SMTP RIP DNS UDP NFS

4.4

ATM E O MODELO DE REFERNCIA B-ISDN

B-ISDN uma arquitetura em camadas fornecendo mltiplos servios s aplicaes, tal como voz, dados, e vdeo, a serem mixados em uma rede. A figura 4.7 ilustra o modelo de Referncia para Protocolos (Protocol Reference Model - PRM) definido pelo ITU-T. O PRM constitui-se num formato tridimensional composto por trs planos: Plano Usurio, se refere transmisso dos dados dos usurios. Plano de Controle, como o prprio nome diz, executa funes de controle como manter e desativar conexes. Plano de Gerenciamento, utilizado no gerenciamento dos planos e das camadas.

Figura 4.7 - Modelo de Referncia para Protocolos - PRM

Arquiteturas de Redes

42

O plano de gerenciamento se divide conforme as entidades que se pretende gerenciar. O plano do usurio e o plano de controle so compostos por quatro camadas, como mostrado na figura 4.8 a seguir: A Camada mais Alta, que no plano usurio (camada de aplicao) so responsveis pela produo e apresentao de vrios tipos de dados, e no plano controle realiza servios de controle. A Camada de Adaptao ATM (AAL) assegura que os servios tenham as caractersticas apropriadas para as aplicaes e divide todos os tipos de dados em 48 bytes que formaro a clula ATM. A Camada ATM toma os dados a serem enviados e adiciona o cabealho da clula (5 bytes) que assegura que a clula seja enviada na conexo correta. Ela uma camada de comutao e multiplexao independente da camada fsica. A Camada Fsica (PHY) define as caractersticas eltricas e interfaces de rede. Esta camada a que realiza a transmisso dos bits sobre o meio de transmisso. esta camada que determina a taxa de transmisso de bits. Taxas de bits de 155 Mbps e 622 Mbps foram inicialmente propostas para transmisso em fibra tica, mas outras taxas de transmisso tambm foram definidas para outros meios de transmisso. ATM no fixa o tipo especfico de transporte fsico. Mas o meio mais comum considerado para longas distncias fibra tica usando o protocolo SONET (Synchronous Optical Network). Camadas Camadas Altas Camada de Adaptao ATM (AAL) Camada ATM Funes Produo e apresentao de vrios tipos de dados Segmentao, remontagem, funes dependentes de aplicao (por exemplo controle de erro) Controle de fluxo genrico, gerao/extrao de cabealho de clula, translao VPI/VCI, multiplexao/demultiplexao de clula Transmisso de bits sobre o meio de transmisso

Camada Fsica

Figura 4.8 - Camadas e funes da arquitetura B-ISDN para o plano usurio AALs existem apenas na fonte e no destino. Diferentes AALs podem ser usadas para diferentes tipos de trfico. Desde que uma clula est na rede, os 48 bytes de dados do usurio no so tocados. Os comutadores de rede rotearo a clula de acordo com as informaes do cabealho. O cabealho pode ser alterado no caminho de transmisso direto. A arquitetura conceptual ATM mostrado na figura 4.9.
Terminal AAL ATM PHY Comutador ATM PHY Comutador ATM PHY Terminal AAL ATM PHY

Figura 4.9 - Arquitetura conceitual do ATM.

4.4.1 ELEMENTOS BSICOS ATM


Uma rede ATM hierrquica como mostrado na figura 4.10. Os terminais (sistemas finais) so conectados a comutadores diretamente atravs de pontos de acesso. Um comutador constitudo por vrias portas que se associam s linhas fsicas da rede. Um comutador deve receber as clulas que chegam pelas portas de entrada e retransmiti-las atravs das portas de sada, mantendo a ordem original das Arquiteturas de Redes 43

clulas em cada conexo. possvel que terminais sejam ligados a uma LAN, que conectada a uma rede ATM atravs de um ponto de acesso. A velocidade da ligao entre um ponto de acesso e um comutador chamado de velocidade de acesso e dedicada ao ponto de acesso. Comutadores agregam clulas vindas pelas ligaes de entrada e retransmitem elas para outros comutadores ou terminais. A largura de banda entre comutadores chamado de largura de banda agregada. Ela normalmente maior que a velocidade de acesso, mas ela no precisa ser a soma das taxas de pico de todas as suas ligaes de entrada pois ATM usa multiplexao estatstica. A interface entre o usurio (terminal) e a rede chamada interface usurio-rede (UNI - User-Network Interface). A interface entre os comutadores de rede chamada interface rede-rede (NNI - Network-Network Interface). O formato da clula ligeiramente diferente na UNI e na NMI.

T e r min a l T e r min a l

C o mu t a d o r

Comutador

T e r min a l

T e r min a l C o mu t a d o r

NNI UNI
C o mu t a d o r

Comutador

T e r min a l T e r min a l C o mu t a d o r

Comutador
T e r min a l

Figura 4.10 - Configurao hierrquica da rede ATM ATM um servio orientado a conexo usando conexes virtuais comutadas e permanentes. Em ATM, um Canal Virtual (Virtual Channel - VC) uma conexo lgica entre dois comutadores ATM ou entre um terminal ATM e um comutador ATM. A rota que as clulas seguem consiste de uma seqncia de VCs entre terminais ATM. A seqncia de VCs que forma uma rota associada com uma chamada virtual conhecida como uma conexo de canal virtual (Virtual Channel Connection - VCC). Cada canal virtual pertence a um caminho virtual (Virtual Path -VP) entre comutadores. Um caminho virtual um agrupamento (em uma ligao fsica) de vrios VCs em uma nica entidade lgica como ilustrado na figura 4.11. Enquanto os caminhos virtuais so persistentes, os canais virtuais so estabelecidos quando a conexo iniciada e associada a um caminho virtual. O cabealho das clulas ATM contm informaes necessrias para comutar a clula de um porta de entrada de um comutador ATM porta de destino de acordo com as informaes na tabela de roteamento do comutador.

C o mu t a d o r

caminho de transmisso

C o mu t a d o r

VP1 VP2 VP3 Caminho de transmisso

VP1 VP2 VP3

VCs

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

4.4.2 CAMADAS DE ADAPTAO ATM


ATM envia clulas sob uma conexo. O transmissor deve segmentar fluxos de dados em clulas, e no receptor os dados nas clulas so remontados em fluxos de dados novamente. A camada AAL representa uma interface entre os protocolos de alto nvel e a camada ATM. Quando ela recebe dados das camadas superiores, ela realiza a segmentao de dados em clulas ATM que so passadas para a camada

Arquiteturas de Redes

44

ATM. No sentido inverso (quando recebe clulas ATM da camada ATM) a camada AAL deve remontar em fluxos de dados que as camadas superiores podem entender. O termo camada de adaptao devido a sua funo que a de adaptar o dado em uma forma desejvel para ATM. O propsito da AAL empacotar eficientemente as vrias espcies de dados de alto nvel, tal como arquivos, amostragens de udio, quadros de vdeo, em uma srie de clulas que podem ser enviadas sob conexes ATM e reconstrudas em um formato apropriado no receptor. AALs so necessrias de maneira a que aplicaes do mesmo tipo possam comunicar com outras. O primeiro passo realizado pelo ITU-T quanto a camada de adaptao, foi a definio das classes de servio oferecidas pela AAL atravs da recomendao I.362. Logo aps, o ITU-T definiu os tipos de AAL que suportam estas classes, atravs da recomendao I.363. A ITU-T determinou os seguintes classes de aplicaes: Classe A: Aplicaes sensveis ao tempo com taxa de bits constantes (Constant Bit Rate CBR). Estas aplicaes enviam e recebem dados a taxas constantes. Elas tambm necessitam que o atraso da fonte ao destino seja limitado. Este tipo de aplicao inclui comunicao de udio e vdeo codificados a taxa de bits constantes. Classe B: Aplicaes sensveis ao tempo com taxa de bits variveis (Variable Bit Rate VBR). Estas aplicaes enviam dados a taxa de bits variveis, mas requerem atrasos limitados. Exemplos incluem comunicao de udio e vdeo codificados a taxa de bits variveis. Classe C: Aplicaes de dados orientadas a conexo. Esta classe suporta aplicaes que eram historicamente usadas em servios de rede tal como X.25. Classe D: Aplicaes de dados sem conexo. Aplicaes nesta classe enviam e recebem dados usando datagramas sem conexo. As principais caractersticas destas classes so resumidas na figura 4.12.
Classe A Tempo na fonte e no destino Taxa de gerao de bits Modo de conexo Classe B Relacionado Classe C Classe D Sem relao

Constante (CBR) Orientada conexo

Varivel (VBR) Sem conexo

Figura 4.12 - Classes de Servio ATM A fim de suportar estas diferentes classes de servios, a ITU-T props trs diferentes camadas de aplicao: AAL1, AAL2 e AAL3/4. O ATM Forum props uma nova camada AAL5 e investiga uma nova camada, AAL6. O ATM Forum consiste de mais de 600 membros, incluindo todos os maiores fornecedores de dados e equipamentos de telecomunicao. Sua principal funo fornecer e promover a tecnologia ATM. AAL1 para o servio classe A e emprega funes de empacotamento/desempacotamento para converter fluxos a taxa constante de bits em clulas no emissor e montar as clulas em fluxos a taxa constante de bits no receptor. Um fluxo de bit inteiramente sincronizado transferido ao receptor, requerendo pequeno atraso e controle de variao de atraso na rede. AAL2 fornece servio classe B. Devido a taxa de bits varivel, difcil reservar recursos para esta espcie de trfico e assim difcil implementar a AAL2. Detalhes da AAL2 no foram definidos. AAL3/4 implementa servios classes C e D. A principal funo da AAL3/4 segmentao e remontagem para grandes arquivos. AAL5 tambm fornece servios classes C e D (como proposto por construtores de computadores no Forum ATM). Ela mais simples e mais eficiente que AAL3/4. AAL6 est em estgio de discusso. O ATM Forum est investigando uma AAL adaptada ao empacotamento de fluxos de dados multimdia, em particular para vdeo MPEG e MPEG-II. Discusses incluem o uso de tcnicas FEC (forward error-detection) para aumentar a confiabilidade na comunicao ao nvel onde nenhum recobrimento de erro extra necessrio e para suportar requisitos de sincronizao MPEG. Note que AALs fazem mais que segmentao e remontagem de dados, elas efetivamente implementam protocolos de transporte adaptadas aos diferentes tipos de aplicao. Arquiteturas de Redes 45

4.4.3 ESTRUTURA DA AAL


A camada AAL dividida em duas subcamadas, conforme mostra a figura 4.13. A subcamada de convergncia CS que responsvel pelo provimento de funes AAL a camada mais alta no modelo B-ISDN. Sua funo principal tornar visvel um servio AAL para um processo da camada mais alta e preparar dados do usurio para segmentao em clulas ATM e remontagem. Entre outras funes, esta subcamada responsvel, dependendo do tipo de servio, por realizar funes como multiplexao, deteco de perdas de clulas e recuperao da relao temporal da informao original no destino. A subcamada de quebra e remontagem SAR (Segmentation and Reassembly): responsvel pela segmentao dos dados oriundos da camada mais alta em fragmentos que podem ser acomodados no campo de informao das clulas ATM, e pela remontagem destes dados a partir das clulas recebidas. A SAR define campos adicionais (por exemplo, cabealho e trailer SAR) que armazena o nmero de seqncia, checagem de erro e tamanho do campo de dado para cada segmento.
Pacote da camada mais alta Dado

Subcamada CS

cabealho CS

Dado

enchimento

trailer CS

Subcamada SAR

cabealho segmento de dado SAR

trailer SAR

48 bytes Camada ATM


cabealho

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 Convergncia Especfica do Servio (SSCS), responsvel pelos procedimentos especficos para cada classe de servio e para servios especficos de uma mesma classe; Parte Comum da Subcamada de Convergncia (CPCS) responsvel pelos procedimentos comuns as classes de servios (adiciona cabealhos aos quadros do usurio e assegura integridade a nvel de quadros).

4.4.4 MEIO DE TRANSMISSO


Como mencionado anteriormente, ATM pode operar sob qualquer tipo de linha de transmisso. Contudo, interfaces da camada fsica esto sendo definidas para fornecer alta velocidade de transmisso. O mundo das telecomunicaes est repondo os velhos cabos de cobre, cabos coaxiais e meio de transmisso de microondas por cabos de fibra tica. Os principais benefcios so a muito mais baixa taxa de erros, alta imunidade a rudos e o suporte a altas velocidades de transmisso (Gbits/s). Como sempre, padres so importantes para assegurar que servios de transmisso a alta velocidade sejam disponvel por todo o mundo. Um significante desenvolvimento nesta rea foi o padro SONET (Synchronous Optical Network) desenvolvido pela Bell Communications Research e agora um padro ANSI (American National Standards Institute). SONET especifica como sinais digitais sncronos podem ser transportados por redes de fibra tica. Ela apresenta como unidade bsica de transporte um formato de quadro composto de 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). Uma taxa OC-n meramente o equivalente tico de um sinal eltrico STS-n. A ITU-T desenvolveu um padro similar a SONET, chamado de SDH (Synchronous Digital Hierarchy), a partir de trs 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 bsico para a interface NNI e UNI. O padro SONET foi posteriormente tambm aprovado como sinal bsico para as interfaces UNI e NNI.

Arquiteturas de Redes

46

A hierarquia de transmisso tica SDH baseada em uma taxa bsica de 155,52 Mbps, chamada STM-1 (Synchronous Transport Model Level 1). Interfaces de alta velocidade podem ser criadas simplesmente por multiplexao (usando byte interleaving) de canais de mais baixa velocidade. Isto simplifica o processo de criao da faixa de velocidades de transmisso oferecidas por um servio particular. Algumas velocidades de interfaces comuns atualmente reconhecidas por SONET/SDH so dados na tabela abaixo. SONET Optical carrier (OC) level OC-1 OC-3 OC-12 OC-24 OC-48 SDH STM level STM-1 STM-4 STM-8 STM-16 Line rate (Mbps) 51,84 155,52 622,08 1244,16 2488,32

A ligao mxima de 2,4 Gbits/s da tabela acima no a mais alta taxa obtida por SONET/SDH, ela simplesmente representa a maior taxa possvel com os produtos atuais. A hierarquia de velocidade de transmisso SONET/SDH estende-se indefinidamente, limitada apenas pelos avanos na tecnologia para suportar transmisso de mais alta velocidade. O padro ITU-T SDH concentra-se nas velocidades de transmisso de 155 Mbps e acima.

4.4.5 CAMADA FSICA DO MODELO DE REFERNCIA B-ISDN


A camada fsica do PRM est dividida em duas subcamadas: Meio Fsico (Physical Medium - PM) cuja funo transmitir e receber uma seqncia contnua de bits pelo meio fsico, incluindo alinhamento de bits, sinalizao na linha de transmisso e converso eletro-tica. A PM recebe o fluxo de informao da subcamada TC, e ento codifica este fluxo numa forma apropriada para a transmisso pelo meio fsico. A subcamada PM recebe o fluxo de informao do meio fsico, e repassa esta para a subcamada TC para tratamento posterior. Convergncia de transmisso (Transmission Convergence -TC) realiza as seguintes funes: gerao e verificao do campo HEC (Header Error Check): HEC um conjunto de bits gerado no lado do transmissor, que permite a deteco de erros nas clulas que chegam ao lado do receptor. Pode-se adotar uma abordagem corretiva ou simplesmente de descarte da clula errada. delineamento de clulas: permite determinar, dentro de uma seqncia de bits ou byte recebidos, quais so os limites (incio e fim) de uma clula. embaralhamento do sinal: afeta somente o campo de informao da clula a ser transmitida, deixando o cabealho intacto. Esta funo tem como objetivo, diminuir as chances de que uma seqncia de informao seja confundida como o cabealho da clula no lado do receptor. gerao e recuperao de quadros (SONET/SDH). desacoplamento da taxa de clulas: a subcamada PM especifica uma transmisso contnua de bytes sem nenhum perodo ocioso (transmisso sncrona), portanto, para isto, devem receber dados continuamente da subcamada TC. Caso ocorra uma gerao de clulas assncrona na transmisso (presena de perodos ociosos), a subcamada TC ficar responsvel por inserir clulas ociosas de tal forma que, a taxa de gerao dos dados para a subcamada PM se mantenha constante. Estas clulas ociosas so identificadas por um tipo especial de cabealho.

4.5

OUTROS EXEMPLOS DE REDES

Existe atualmente um nmero muito grande de redes em operao. Algumas so pblicas, controladas por concessionrias de servios de comunicao, outras so redes de pesquisa e outras ainda Arquiteturas de Redes 47

so redes corporativas ou comerciais. Todas elas apresentam diferenas em relao a sua histria, administrao, recursos oferecidos, projeto tcnico e comunidade de usurios. A histria e a administrao de uma rede podem variar significativamente, de exemplos onde ela foi cuidadosamente planejada por uma organizao at exemplos de redes cujas mquinas foram interconectadas no decorrer dos anos sem qualquer planejamento ou administrao central. Os recursos disponveis podem variar da arbitrria comunicao processo a processo at o correio eletrnico, transferncia de arquivos, ao login remoto e execuo remota. Os projetos tcnicos podem diferir no tipo de meio de transmisso utilizado, nos algoritmos de roteamento e de denominao empregados, no nmero e no contedo das camadas presentes e nos protocolos usados. Por fim, a comunidade de usurios pode variar dos funcionrios de uma empresa at todas as pessoas interessadas no mundo. Muitos so os exemplos de redes disponveis no mercado, principalmente para redes locais. Ainda podemos analisar algumas experincias de grandes redes tais como a ARPANET e a NSFNET, precursoras da Internet mundial, assim como das primeiras experincias a gigabit. Um bom exemplo de rede local bastante popular a Novel NetWare. Ela foi projetada para ser usada para empresas que estavam fazendo downsizing de mainframe para rede de PCs. Ela utiliza a filosofia cliente/servidor e est baseada numa pilha de protocolos proprietria ilustrada na figura 4.14. Ela baseada na antiga XNS (Xerox Network System) com vrias modificaes. Esta arquitetura antecede o RM-OSI e se parece mais com a arquitetura TCP/IP. Camada Aplicao Transporte Rede Enlace de dados Fsica NCP Ethernet Ethernet IPX Token Ring Token Ring Aplicaes SPX ARCnet ARCnet

Figura 4.14 O modelo de referncia da Novel NetWare. As camadas fsica e de enlace podem ser escolhidas dentre vrios padres industriais. O IPX um protocolo sem conexo no confivel e funcionalmente semelhante ao IP, com diferenas no endereamento, que de 10 bytes. O NCP (Network Core Protocol) um protocolo de transporte orientado a conexo e no est restrito ao transporte de dados do usurio, sendo considerado o corao do Netware. O SPX (Sequence Packet Exchange) oferece apenas o transporte de mensagens. Ainda h a opo do TCP, que tambm pode ser utilizado. Por exemplo, o sistema de arquivos utiliza o NCP e o Lotus Notes utiliza o SPX. A Internet nasceu aproximadamente 20 anos atrs, como uma rede experimental do Departamento de Defesa dos Estados Unidos chamada ARPANET, projetada para suportar pesquisas militares. No modelo da ARPANET, a comunicao sempre ocorria entre um computador fonte e um destino. A rede era insegura, considerava-se que qualquer poro da rede podia desaparecer a qualquer momento. Ela foi projetada para exigir o mnimo de informao dos computadores clientes. Para mandar uma mensagem pela rede, o computador tinha apenas que colocar os dados em um envelope, chamado de pacote do Protocolo Internet (IP), e enderear corretamente o pacote. Aos computadores comunicantes, e no rede, cabia a responsabilidade de certificar-se que a comunicao tinha sido completada. A filosofia era que cada computador na rede pudesse falar com qualquer outro. Estas decises podem soar estranhas, como assumir que a rede era insegura, mas a histria tem mostrado que muitas delas estavam razoavelmente corretas. Uma variedade de fabricantes de computadores passaram a incorporar ou oferecer softwares que implantavam o padro Internet para oferecer possibilidade de comunicao com computadores diferentes. Nesta poca, este tornou-se praticamente o nico mtodo prtico para computadores de fabricantes distintos se comunicarem. Esta caracterstica era atraente ao governo e s universidades que, no possuindo nenhuma poltica estabelecendo que os computadores deveriam ser adquiridos de um mesmo fornecedor, compravam os equipamentos 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 maioria das workstations vinha com o UNIX de Berkeley, que por sua vez veio com software de rede IP. Esta situao criou uma nova demanda: mais do que conectar um nico computador (compartilhado por vrias pessoas) ARPANET, as organizaes queriam conectar toda a sua rede local. Isso iria permitir que Arquiteturas de Redes 48

todos os computadores daquela LAN acessassem as facilidades da ARPANET. Ao mesmo tempo, outras organizaes comearam a construir suas prprias redes utilizando os mesmos protocolos de comunicao da ARPANET: IP e seus parentes (TCP, UDP, etc). Tornou-se bvio, ento, que se essas redes podiam conversar entre si, usurios 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 (National Science Foundation), uma agncia do governo dos Estados Unidos. Nos anos 80 a NSF criou 5 centros de supercomputadores. Era pouco, mas o custo elevado das instalaes impedia a criao de um nmero maior, criando a necessidade de compartilhamento dos existentes. Esta situao criou um problema de comunicao: era preciso encontrar uma forma de conectar os centros entre si e permitir que os seus clientes pudessem acess-los, mesmo remotamente. Inicialmente a NSF tentou utilizar a ARPANET para este fim, mas esta estratgia falhou devido a problemas burocrticos e de suporte. Em resposta, a NSF decidiu construir sua prpria rede, baseada na tecnologia da ARPANET. Ela conectava os centros atravs de linhas telefnicas a uma velocidade de 56.000 bits por segundo (56Kbps). Como sairia muito caro conectar cada universidade diretamente aos centros (j que as linhas telefnicas so pagas pela distncia), foi decidida a criao de redes regionais. Em cada rea do pas as escolas seriam conectadas aos seus vizinhos mais prximos. Cada regio era conectada a um centro por um ponto e os centros eram conectados entre si. Com essa configurao, qualquer computador poderia se comunicar com qualquer outro, remetendo a conversao atravs de seus vizinhos. Essa foi uma soluo de sucesso. Com o passar do tempo o trfego pelas linhas aumentou e os computadores que controlavam a rede e as prprias linhas telefnicas tiveram que ser substitudos por equipamentos mais rpidos. O mais importante que as redes da NSF promoveram a integrao universal das entidades educacionais, dado que antes de seu aparecimento a rede estava disponvel apenas para pesquisas em cincia da computao, empregados e contratados do governo. A demanda cresceu muito, e tudo leva a crer que este crescimento ainda perdurar por algum tempo, trazendo um grande volume de trabalho e problemas para quem atua na rea. No Brasil, a Internet chegou com a RNP (Rede Nacional de Pesquisa), um projeto bancado pelo CNPq (juntamente com organismos internacionais) com o objetivo de criar uma infra-estrutura nacional de rede, interligando instituies de ensino e pesquisa. A RNP uma realidade hoje. As principais universidades e centros de pesquisa do pas hoje possuem acesso RNP e Internet (existe ao menos um ponto de presena em cada estado brasileiro, com diferentes velocidades de acesso).

Arquiteturas de Redes

49

Captulo 5 - A Camada Fsica

5.1

INTRODUO

O objetivo da camada Fsica assegurar o transporte dos dados, representados por um conjunto de bits, entre dois equipamentos terminais, via um suporte de transmisso. Abordaremos, nesta parte do documento, os principais aspectos e problemas relacionados transmisso de dados, como, os suportes de transmisso, os modos de transmisso, a multiplexao e a comutao. Ainda nesta seo, sero vistos alguns exemplos de interfaces fsicas padronizadas e adotadas em muitas aplicaes e arquiteturas de comunicao.

5.2

OS SUPORTES DE TRANSMISSO

Os suportes de transmisso podem se caracterizar pela existncia ou no de um guia fsico. Na primeira classe esto os cabos eltricos, as fibras ticas e, na segunda classe, as ondas de rdio, as ondas de luz, etc...

5.2.1 O PAR DE FIOS TRANADOS


Em diversas aplicaes, necessrio se manter uma conexo direta e permanente entre dois computadores. O suporte de transmisso mais clssico utilizado at o momento o par de fios tranados, o qual composto de dois fios eltricos em cobre, isolados, e arranjados longitudinalmente de forma helicoidal. Esta tcnica de enrolar os fios permite diminuir os efeitos das indues eletromagnticas parasitas provenientes do ambiente no qual este estiver instalado. A utilizao mais tpica deste suporte de transmisso a rede telefnica, onde, graas s suas caractersticas eltricas, os sinais podem percorrer vrias dezenas de quilmetros, sem a necessidade de amplificao ou regenerao de sinal. Estes podem, ainda, ser utilizados para a transmisso de sinais analgicos quanto de sinais digitais, a banda passante atingida sendo funo da sua composio (particularmente, dimetro e pureza dos condutores, natureza dos isolantes e do comprimento do cabo). A taxa de transmisso obtida pela utilizao deste suporte de transmisso situa-se na faixa de algumas dezenas de Kbits/s, podendo atingir, em condies particulares, na faixa dos Mbits/s em pequenas distncias. O fato de representar um baixo custo e uma grande faixa de utilizao o torna um dos suportes mais utilizados atualmente e, provavelmente, nos prximos anos.

5.2.2 OS CABOS COAXIAIS


Os cabos coaxiais so tambm altamente empregados como suporte de transmisso. Dois tipos de cabos so tipicamente utilizados: o primeiro tipo apresenta uma impedncia caracterstica de 50 ohms, utilizado nas transmisses digitais denominada transmisso em banda de base; o segundo tipo, com uma impedncia caracterstica de 75 ohms, mais adequado para a transmisso de sinais analgicos. Eles so constitudos de dois condutores arranjados de forma concntrica: um condutor central, a alma, envolto por um material isolante de forma cilndrica. Esta capa isolante , por sua vez, envolta por uma trana Arquiteturas de Redes 50

metlica condutora em cobre. Finalmente, o conjunto envolto numa capa de proteo em plstico isolante. Em relao aos pares de fios tranados, os cabos coaxiais apresentam melhores caractersticas eltricas, oferecendo um boa relao entre a banda passante e a proteo contra interferncias eletromagnticas. A largura de banda vai depender igualmente da qualidade da composio do cabo e do seu comprimento. Para distncias em torno de 1 km, possvel obter uma taxa de transmisso em torno de 10 Mbits/segundo, podendo-se obter taxas superiores para distncias mais curtas. Os cabos coaxiais so altamente utilizados como suporte de transmisso nas Redes Locais Industriais. A informao transmitida pelos cabos coaxiais geralmente codificada sob a forma de um sinal binrio, onde os dgitos 0 e 1 so representados por dois diferentes nveis... por exemplo, 1 volt para o bit 1 e 0 volt para o bit 0. Esta forma de codificao, embora seja uma conveno bastante adequada, no permite ao receptor do sinal detectar o incio e o fim da transmisso de um dgito binrio.

5.2.3 AS FIBRAS TICAS


As fibras ticas so o meio de transmisso pelo qual os sinais binrios so conduzidos sob a forma de impulsos luminosos. Um impulso luminoso representa um bit a 1, enquanto a ausncia deste impulso representa um bit a 0. A luz visvel uma onda luminosa cuja freqncia est na ordem de 108 Hz, o que d ao sistema uma banda passante potencial bastante grande. As taxas de transmisso num 9 suporte a fibra tica ficam na faixa dos Gbit/s (10 bit/s). Um sistema de transmisso a base de fibra tica composto de trs principais elementos: o suporte de transmisso (a fibra tica), o dispositivo de emisso e o dispositivo de recepo da onda luminosa. A fibra tica constituda de um fio de vidro bastante fino, base de silcio e outros componentes. Ela consiste de um ncleo no qual se propaga a luz e uma capa externa de proteo que mantm a luz no interior do ncleo. O dispositivo de emisso consiste, ou de um diodo emissor de luz (LED) ou de um diodo laser. O dispositivo de recepo constitudo geralmente de um fotodiodo ou de um fototransistor. O princpio da transmisso das fibras ticas o da reflexo da luz na interface entre dois meios. Quando um raio luminoso deixa um meio homogneo para se propagar num outro meio, o seu percurso sofre um desvio na interface entre os dois meios. Entretanto, existe um ngulo de incidncia limite, a partir do qual o raio luminoso, ao invs de ser refratado ele ser refletido na interface, sendo mantido no meio no qual ele havia sido introduzido. Desta forma, a luz poder ser propagada ao longo do meio, em distncias de alguns quilmetros. Atualmente, os suportes de comunicao base de fibra tica so utilizados em redes de comunicao em longa distncia, substituindo sistemas mais antigos base de cabos coaxiais. Isto dever continuar a ocorrer nos prximos anos, contribuindo para que se tenha, num futuro prximo, em distncias relativamente grandes, sistemas de comunicao oferecendo altas taxas de transmisso garantindo assim o salvamento de grandes volumes de informao.

5.2.4 AS REDES SEM FIO (RADIODIFUSO)


Nas redes sem fio (wireless networks) as informaes so transmitidas atravs do ar, em canais de freqncia de rdio (na faixa de KHz at GHz) ou infravermelho (freqncias da ordem de THz). Por sua natureza, a radiodifuso adequada tanto para ligaes ponto a ponto quanto para ligaes multiponto. As redes sem fio so uma alternativa vivel onde difcil, ou mesmo impossvel instalar cabos metlicos ou de fibra tica. As bandas de freqncia ISM (Industrial, Scientific and Medical), que podem ser utilizadas sem que seja necessrio uma licena, so alocadas para as aplicaes de radiodifuso dentro de edifcios. Os valores destas bandas variam de acordo com o pas. Como vrias estaes compartilham o mesmo meio de transmisso, necessrio utilizar um mtodo para disciplinar este compartilhamento. Alguns mtodos usados so: multiplexao por diviso de freqncia (FDM), multiplexao por diviso de tempo (TDM) e multiplexao por diviso de espao (SDM). Arquiteturas de Redes 51

O mtodo SDM pode ser realizado de duas formas. A primeira delas baseia-se na utilizao de antenas direcionais que emitem sinais de rdio de alta freqncia concentrados em feixes. Esse mtodo usualmente empregado em enlaces de microondas e permite que uma mesma freqncia possa ser reutilizada desde que os feixes de ondas sejam transmitidos em regies distintas do espao. A outra forma de realizao do SDM estruturar a rede em clulas, isto , dividir a rea total da rede em vrias reas menores ( clulas), que normalmente possuem a forma de hexgonos. O funcionamento dos sistemas celulares baseia-se na rpida diminuio da potncia do sinal de rdio medida que se propaga. No espao livre, a potncia do sinal decai aproximadamente com o quadrado da distncia do transmissor, e quando as antenas esto prximas ao solo, a potncia diminui com aproximadamente a Quarta potncia da distncia. Essa caracterstica torna possvel a reutilizao da mesma freqncia, quando os transmissores esto suficientemente distantes uns dos outros. As rede sem fio normalmente utilizam freqncia altas em suas transmisses: 915 MHz, 2.4 GHz , 5.8 GHz, etc. Parte das ondas de rdio, nessas freqncias , so refletidas quando entram em contato com objetos slidos, o que implica na formao de diferentes caminhos entre transmissor e receptor, principalmente em um ambiente fechado. Como conseqncia acontece um espalhamento de no tempo do sinal que chega ao receptor, isto , vrias cpias do sinal chegam ao receptor deslocadas no tempo, pois elas percorrem distncias diferentes. O resultado disso que, no mesmo ambiente , em alguns locais o sinal pode ser muito fraco e em outros, a poucos metros de distncia, pode ser perfeitamente ntido. Outras consideraes importantes dizem respeito a segurana quando este sistema utilizado. Teoricamente no existe fronteiras para um sinal de rdio, logo, possvel que ele seja captado por receptores no autorizados. Outro cuidado que deve ser tomado ao se utilizar radiodifuso como meio de transmisso a possvel interferncia, provocada por fontes que geram sinais na mesma banda de freqncia da rede. Alguns outros problemas esto relacionados a interferncias por razes meteorolgicas, por exemplo, quando da utilizao de infravermelho.

5.3

ASPECTOS DA TRANSMISSO DE DADOS

O meio de transmisso consiste geralmente de um conjunto de recursos e regras que permitem a transmisso de informao de um ponto a outro numa rede de comunicao. A transmisso a nvel de bit uma das formas mais simples de transferncia de informao. Este processo ilustrado pela figura 5.1(a), onde podemos observar os seguintes elementos: a fonte de informao, que pode ser um computador ou um terminal, por exemplo, que gera as informaes que devero ser transmitidas, estas sendo representadas, usualmente, por um conjunto de dgitos binrios, ou bits; o transmissor, que responsvel da adaptao ou converso do conjunto de informaes, de bits, para sinal eltrico ou eletromagntico, adaptando-o ao meio de transmisso; o suporte de transmisso, encarregado do transporte dos sinais representando a informao e que pode ser caracterizado por uma das tcnicas apresentadas na seo precedente; o suporte de transmisso quem realiza a ligao fsica entre os elementos envolvidos na comunicao; o receptor, responsvel pela reconstituio da informao a partir dos sinais recebidos via suporte de transmisso, e que, inclusive pode ter sofrido distores provocadas por rudos existentes no meio; o destinatrio da informao, que pode ser um computador, um terminal ou outro equipamento e que vai consumir a informao gerada pelo elemento fonte.

Arquiteturas de Redes

52

RUDO
FONTE DE INFORMAO BINRIA DESTINATRIO DA INFORMAO BINRIA

TRANSMISSOR

SUPORTE DE TRANSMISSO

RECEPTOR

(a)

RUDO
FONTE OU DESTINATRIO INFORMAO BINRIA TRANSMISSOR SUPORTE DE TRANSMISSO RECEPTOR FONTE OU DESTINATRIO INFORMAO BINRIA

TRANSMISSOR RECEPTOR

(b)

Figura 5.1 - (a) Sistema de transmisso ponto-a-ponto unidirecional; (b) modelo bidirecional. Geralmente, a transmisso a nvel de bits pode ser realizada de forma bidirecional, esta podendo ainda ser realizada de forma alternada ou simultnea. Assim, a cada n dever estar associado um equipamento transmissor e um receptor compondo o conjunto transceptor como mostrado na figura 5.1(b). A transmisso de dados, quando realizada nos dois sentidos denominada duplex. No caso em que ela se realiza alternadamente, ou seja, ora num sentido, ora no outro, ela se denomina half-duplex. No caso em que ela se realiza simultaneamente nos dois sentidos, esta ser denominada full-duplex. Os modos de transmisso caracterizam as diferentes formas como os bits de informao transmitidos so delimitados e encaminhados ao longo da linha de comunicao. No que diz respeito forma como os bits so encaminhados ao longo de uma linha de comunicao, pode-se distinguir o modo de transmisso paralelo e o modo serial. Na transmisso paralela, os bits so transportados simultaneamente por um suporte composto de vrias linhas em paralelo. um modo de transmisso mais adequado comunicao entre equipamentos localizados a curtas distncias. A ligao interna na arquitetura de computadores ou entre computadores e perifricos prximos so exemplos da aplicao da transmisso paralela. Na transmisso serial, mais adequada a comunicao entre equipamentos separados por grandes distncias, os bits so encaminhados serialmente atravs de uma nica linha de comunicao. Pode-se considerar outros parmetros para a classificao dos modos de transmisso, como, por exemplo, o fator tempo. No caso particular das transmisses seriais, a forma de delimitar os bits pode levar em conta duas diferentes filosofias a transmisso serial sncrona e a transmisso serial assncrona. Na transmisso sncrona, os bits de dados so transmitidos segundo uma cadncia pr-definida, obedecendo a um sinal de temporizao (clock). O receptor, por sua vez, conhecendo os intervalos de tempo permitindo delimitar um bit, poder identificar a seqncia dos bits fazendo uma amostragem do sinal recebido. Na transmisso assncrona, no existe a fixao prvia de um perodo de tempo de emisso entre o transmissor e o receptor. A separao entre os bits feita atravs de um sinal especial com durao varivel. Um caso tpico de transmisso assncrona a transmisso de caracteres; neste caso, a cada grupo de bits constituindo um caractere so adicionados bits especiais para representar o incio (start bit) e final deste (stop bit). Neste tipo de comunicao, apesar de assncrona ao nvel de caracteres, ocorre uma sincronizao ao nvel de bit. Um outro aspecto a ser destacado aqui aquele da forma como os sinais so transmitidos num suporte de comunicao, particularmente no que consiste maneira como a banda passante do canal de comunicao explorada. No primeiro modo, a transmisso em banda de base (baseband), a banda passante do suporte de transmisso atribuda totalmente a um nico canal de transmisso. Neste modo, os sinais so transmitidos atravs do meio de comunicao multiplexados no tempo. No segundo modo, a transmisso em barda larga (broadband), a banda passante do suporte de transmisso dividida num determinado nmero de canais de faixa de freqncia estreita, permitindo que Arquiteturas de Redes 53

estes possam ento ser transmitidos utilizando uma tcnica de multiplexao em freqncia. A banda passante dos canais normalmente definida em funo da taxa de transmisso desejada e do modo de modulao empregado. Neste modo de transmisso, cada canal pode atingir uma taxa de transmisso de at 3 Mbits/s, inferior, portanto, transmisso em banda de base.

Arquiteturas de Redes

54

Captulo 6 - A Camada de Enlace de Dados

6.1

INTRODUO

A camada de Enlace de Dados tem por funo oferecer uma forma de comunicao confivel entre entidades da Camada de Rede. Neste captulo veremos os mecanismos que permitem uma comunicao eficiente e confivel entre duas mquinas adjacentes, ou seja, duas mquinas que esto fisicamente conectadas atravs de uma canal de comunicao que funciona como um fio. Dentre os fatores com os quais a camada de Enlace deve preocupar-se esto: a forma como os bits provenientes da camada Fsica sero agrupados em quadros; os mecanismos de deteco e correo de erros a serem implantados, uma vez que as informaes trocadas atravs da camada Fsica no so isentas de erros de transmisso, pelos fatores que j foram levantados; os mecanismos de controle de fluxo para limitar o volume de informao trocados entre entidades fonte e destino; a gesto das ligaes entre as entidades de Rede.

6.2

AS CLASSES DE SERVIOS DE ENLACE

A camada de Enlace de Dados oferece servios para a camada de Rede classificados em trs principais categorias, estas dependendo do sistema no qual elas sero implantadas: servio sem conexo e sem reconhecimento; servio sem conexo com reconhecimento; servio orientado conexo. Na primeira classe de servios, a mquina fonte da informao envia os quadros de dados mquina destinatria e esta no envia um quadro de reconhecimento da informao recebida; alm disso, no existe estabelecimento prvio de conexo e, por conseqncia, no existe liberao desta ao final do dilogo. Se um quadro de dados perdido no meio de transmisso como conseqncia de um rudo por exemplo, no existe nenhum mecanismo que permita solucionar o problema. Esta classe de servios adequada quando implantados sobre um suporte de comunicao cuja taxa de erros muito baixa ou que a correo dos erros prevista nas camadas superiores. Eles podem ser empregados particularmente no caso de aplicaes tempo real e em redes locais. A segunda classe de servios, embora ainda no defina o estabelecimento prvio de conexo, prev a existncia de quadros de reconhecimento, de modo que a mquina fonte ser notificada pela mquina destinatria da recepo do quadro previamente enviado. Um mecanismo que pode ser implantado no caso de perda do quadro o que corresponde no recepo do quadro de reconhecimento aps um certo tempo (timeout) a retransmisso daquele. Num servio sem conexo, existe a possibilidade da retransmisso de quadros provocando a recepo mltipla do mesmo quadro (duplicao de mensagem). A terceira classe de servios a mais sofisticada, uma vez que ela define a necessidade do estabelecimento prvio de conexo e a liberao destas ao final do dilogo. Neste caso, cada quadro enviado 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. Esta classe de servios oferece camada de Rede um canal de comunicao confivel. Os servios orientados conexo so caracterizados por trs principais etapas: Arquiteturas de Redes 55

a etapa de estabelecimento de conexo, durante a qual so definidos todos os parmetros relacionados conexo, como por exemplo, os contadores de seqncia de quadros; a etapa de transmisso de dados, durante a qual so realizadas todas as trocas de informao correspondentes ao dilogo entre duas mquinas; a etapa de liberao da conexo, que caracteriza o fim do dilogo e na qual todas as variveis e outros recursos alocados conexo sero novamente disponveis.

A comunicao entre as camadas de Rede e de Enlace feita atravs de primitivas de servio (request, indication, response e confirm) como j definidas na parte relativa apresentao do modelo OSI. Um esquema permitindo demonstrar o modo de utilizao das primitivas mostrado na figura 6.1. Neste esquema, representa-se nas extremidades a camada de Rede, caracterizada pelos dois sistemas envolvidos no dilogo (no caso, A e B) e no centro a camada de Enlace.
camada de rede camada de enlace camada de rede

request indication

response confirm

sistema A

sistema B

Figura 6.1 - Primitivas de servio trocadas entre as camadas de Rede e de Enlace. Os deslocamentos verticais das primitivas representam o tempo decorrido entre as ocorrncias destas. Por exemplo, no caso das primitivas de request e indication, o tempo decorrido entre o envio da primeira pela camada de Rede do sistema A e a recepo da segunda pela camada de Rede do sistema B.

6.3

AS PRIMITIVAS DE ENLACE

O quadro a seguir apresenta as primitivas de servio disponibilizados pela camada de Enlace do modelo OSI, tanto para o servio orientado conexo como para o sem conexo. Nas primitivas de servio aqui apresentadas no so descritos os parmetros usados quando da solicitao do servio. SERVIO ORIENTADO CONEXO Estabelecimento de conexo PRIMITIVAS DL_CONNECT.request DL_CONNECT.indication DL_CONNECT.response DL_CONNECT.confirm DL_DATA.request DL_DATA.indication DL_DISCONNECT.request DL_DISCONNECT.indication DL_RESET.request DL_RESET.indication DL_RESET.response DL_RESET.confirm

Transferncia de dados Encerramento de conexo Reinicicializao da conexo

Arquiteturas de Redes

56

Controle de fluxo SERVIO SEM CONEXO Transferncia de dados

Solicitao de resposta

Atualizao de resposta

DL_FLOWCONTROL.request DL_FLOWCONTROL.indication PRIMITIVAS DL_DATA_ACK.request DL_DATA_ACK.indication DL_DATA_ACK_STATUS.indication DL_REPLY_ACK.request DL_REPLY_ACK.indication DL_REPLY_ACK_STATUS.indication DL_REPLY_UPDATE.request DL_REPLY_UPDATE_STATUS.indication

6.4

O CONCEITO DE QUADRO

Para que o servio seja oferecido camada de Rede, a camada de Enlace utiliza-se dos servios fornecidos pela camada Fsica que, como j foi descrito na parte precedente, responsvel da transmisso de bits de um ponto a outro na rede de comunicao, sendo que o conjunto de bits transmitido pode sofrer distores produzindo erros de transmisso. Uma conseqncia tpica pode ser que o nmero de bits recebidos seja inferior ao nmero de bits enviados ou os valores de alguns bits podem ter sido modificados. Com o objetivo de permitir um controle de erro eficiente, a camada de Enlace decompe as mensagens em pores menores denominadas quadros, aos quais so adicionados cdigos especiais de controle de erro. Desta forma, o receptor pode verificar se o cdigo enviado no contexto de um quadro indica ou no a ocorrncia de erros de transmisso e ele pode, assim, tomar as providncias necessrias para evitar as conseqncias devido quele erro. A delimitao dos quadros pode obedecer a diferentes polticas. Uma das polticas adotadas pode ser a contagem de caracteres. Nesta poltica, introduzido um caracter especial que indica o nmero de caracteres compondo o quadro. Deste modo, a nvel da camada de Enlace do receptor, basta que a entidade leia este caractere e em seguida conte o nmero de caracteres para definir o tamanho do quadro. O inconveniente desta tcnica, portanto, o fato de que o caractere que define o tamanho do quadro pode ser modificado, o que significa que o receptor vai ler, erroneamente os quadros transmitidos. A figura 6.2 ilustra este problema.
contadores de caracteres

(a)

quadro1 (5 car.)

quadro2 (5 car.) erro

quadro3 (8 car.) contador de caracteres

(b)

Figura 6.2 - Seqncia de caracteres: (a) sem erro; (b) com erro. Uma tcnica que apresenta uma soluo a este problema consiste na adio de seqncias especiais de caracteres de modo a representar o incio e fim da transmisso de um quadro. A figura 6.3 ilustra um caso relativo a esta tcnica, onde as seqncias de caracteres DLE (Data Link Escape) e STX (Start of TeXt) so inseridas para representar o incio de um quadro e a seqncia DLE e ETX (End of TeXt) para representar o fim do quadro. Esta tcnica apresenta, ainda, um ponto de Arquiteturas de Redes 57

vulnerabilidade: se, dentro do texto, dado que os bits podem assumir qualquer combinao de valores, uma seqncia de bits coincide com uma das seqncias de caracteres citada, a entidade receptora na camada de Enlace pode ser enganada por esta seqncia e, assim, receber erroneamente o quadro.

(a)

DLE

STX

DLE

DLE

ETX

(b)

DLE

STX

DLE

DLE

DLE

ETX

Figura 6.3 - (a) Dados enviados pela camada de Rede com seqncias de delimitao; (b) idem, com introduo dos caracteres de transparncia. A soluo para este problema vem atravs da introduo, pela entidade de Enlace emissora, de um caractere DLE a cada vez que, uma seqncia de bits correspondente parte de dados, coincidir com um caractere DLE. Desta forma, basta entidade de dados receptora eliminar os caracteres DLE dos dados antes de transmiti-los camada de Rede. Isto vai permitir ento, s entidades receptoras de Enlace, fazer a distino entre as seqncias delimitadoras de quadro (DLE-STX e DLE-ETX) das seqncias acidentais nos dados. Os caracteres DLE introduzidos a nvel dos dados so denominados caracteres de transparncia. Uma tcnica ainda utilizada e definida mais particularmente para a utilizao em redes de comunicao aquela em que os quadros so delimitados por uma seqncia de bits particular, mas desta vez dissociados da codificao de caracteres. A seqncia 01111110 adotada para representar a delimitao dos quadros. De maneira anloga utilizao dos caracteres de transparncia da tcnica anterior, bits de transparncia (ou bit stuffing) so introduzidos, antes do envio de dados, para evitar a confuso, por parte do receptor, com os delimitadores de quadro. Assim, no receptor, a cada vez que 5 bits 1 consecutivos so detectados na parte de dados, um bit 0 adicionado aps a seqncia. Do lado do receptor, a cada vez que ocorrer uma seqncia 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 aplicao desta tcnica. Em 6.4(a) so apresentados os dados originais e, em 6.4(b), os mesmos dados com a introduo dos bits de transparncia.
(a)

(b)

bit de transparncia

Figura 6.4 - (a) dados originais; (b) dados com adio do bit de transparncia.

6.5

O CONTROLE DE ERRO

Os erros que por vezes ocorrem nos suportes de transmisso podem ter como causas os mais diversos fenmenos fsicos, como por exemplo, o rudo trmico, provocado pela agitao dos eltrons nos cabos de cobre. Outro fenmeno importante so os rudos impulsivos, capazes de provocar, numa linha transmitindo dados a 9600 bit/s, a perda de 96 bits. Os rudos impulsivos so causados pelos arcos devido ao chaveamento de rels ou outros dispositivos eletromecnicos. O que se tem notado, entretanto, que,

Arquiteturas de Redes

58

independentemente do fenmeno causador de erro, estes tendem a gerar normalmente verdadeiros pacotes de erros e no erros simples. Isto pode ter um aspecto positivo, uma vez que, num conjunto relativamente grande de bits, um menor nmero de pacotes vai conter erros. Por outro lado, os erros agrupados em pacotes so mais difceis de detectar. O controle de erros de transmisso uma das funes mais importantes asseguradas pela camada de Enlace. Esta funo baseada na possibilidade de informao para entidade emissora da mensagem do que ocorreu na extremidade de recepo. Os protocolos de controle de erro so caracterizados, em geral, pela definio de um quadro de controle, correspondente a um reconhecimento positivo ou negativo. Caso a entidade emissora receba um reconhecimento positivo de um quadro previamente enviado, ela entende que aquele foi corretamente recebido. Por outro lado, se ela recebe um reconhecimento negativo, ficar consciente que o quadro foi mal transmitido e que, neste caso, ele dever ser retransmitido. Ainda, se, por uma intensidade relativamente forte de rudo, o quadro inteiro no recebido pela entidade destinatria, esta no vai reagir ao quadro emitido e a entidade emissora corre o risco de esperar indefinidamente pelo reconhecimento isto evitado pela adio de temporizadores, estabelecendo assim um tempo mximo de espera pelo reconhecimento, antes da retransmisso. O tempo de espera deve ser determinado em funo dos atrasos relativos transmisso dos quadros, de modo que os quadros de reconhecimento, se existentes, cheguem antes do esgotamento da temporizao (timeout). Deste modo, se o quadro ou o reconhecimento so perdidos, a temporizao ser esgotada, podendo provocar a retransmisso do quadro. Neste caso, possvel que o quadro seja aceito mais de uma vez pela camada de Enlace e transmitido camada de Rede ocorrendo a duplicao de quadros. Para evitar este problema, deve-se introduzir um mecanismo de distino dos quadros a fim de que o receptor possa separar os quadros duplicados de seus originais. Existem praticamente duas tcnicas para a correo de erro. A primeira, consiste na introduo, a nvel dos quadros, de informaes redundantes que permitam ao receptor reconstituir os dados enviados a partir da informao recebida. A segunda tcnica consiste em adicionar unicamente um conjunto de informaes redundantes o suficiente para que o receptor possa detectar a ocorrncia de um erro (sem corrigi-lo) e requisitar a retransmisso do quadro. Ao primeiro tipo de informao dado o nome de cdigo corretor e ao segundo tipo de informao cdigo detetor.

6.5.1 OS CDIGOS DE CORREO DE ERRO


Basicamente o uso de cdigos corretores de erros permite que um erro seja detectado e, alm disso, corrigido no destino, se necessidade de retransmisso. Estes cdigos no so muito utilizados pois sua implementao cara e normalmente s conseguem corrigir erro simples. Os cdigos para correo de erros mais conhecidos so os Hamming Codes. A seguir temos um exemplo de sua utilizao. Os cdigos de Hamming partem do princpio da incluso de informaes redundantes no quadro para deduo de quais e onde esto os erros. Nos cdigos de Hamming, a quantidade de erros recuperados depende do nmero de bits redundantes. Seja um bloco de informaes de tamanho n, onde n < 2m-1 e m um nmero inteiro, que determina o nmero de Hamming bits. Estes sero inseridos nas posies 1, 2, 4, 8 e demais potncias inteiras de 2 da direita para a esquerda no quadro de informao. Os bits redundantes do bloco de dados so resultado da operao OU-EXCLUSIVO sobre o cdigo binrio da posio dos bits 1 ocorridos no quadro de informao. Bloco a ser enviado: 1 1 0 0
8 7 6 5

0
4

0
3

1
2

0
1

Bloco a ser enviado antes da incluso dos Hamming bits: 0 0 0 0 1 1 H 1 H


12 11 10 9 8 7 6 5 4

0
3

H
2

H
1

Clculo dos Hamming bits: (1210 1110 510) ou: (01012 10112 11002) ou H = 00102

Arquiteturas de Redes

59

Bloco a ser enviado com os Hamming bits j inseridos: 1 1 0 0 0 0 1 0


12 11 10 9 8 7 6 5

0
4

0
3

1
2

0
1

Bloco recebido (com um bit errado): 0 0 0 0 1 0


12 11 10 9 8 7

0
6

1
5

0
4

0
3

1
2

0
1

Clculo na recepo: (H 1210 510 ) ou (00102 11002 01012)= 10112, ou seja: 1110 a posio do bit errado. Neste exemplo houve a deteco de um erro e a informao pode ser restaurada. Se acontecesse dois erros haveria a deteco sem possibilidade de correo. Com trs erros nada pode ser garantido em relao a deteco. H tambm outros cdigos de Hamming que usam artifcios para corrigir erros em rajada, porm o assunto foge ao escopo deste curso.

6.5.2 OS CDIGOS DE DETECO DE ERRO


Os cdigos corretores so utilizados para as transmisso de dados em casos particulares como, por exemplo, quando os canais so unidirecionais ou quando impossvel requisitar a retransmisso de um quadro. Quando possvel, porm, uma soluo mais adequada atravs de uma tcnica de deteco com retransmisso por razes de eficincia. Uma tcnica bastante simples para deteco de erros a utilizao de um bit de paridade associado ao caracter. Esta paridade est relacionada ao nmero de bits 1 da palavra de dados. Se a paridade par for utilizada a palavra de dado deve conter um nmero par de bits 1. Se a paridade mpar for escolhida, a palavra de dado deve conter um nmero mpar de bits 1. O tipo de paridade a ser utilizada pode ser negociado porm seu uso muito restrito pois s consegue detectar erros simples, por exemplo, no detectaria uma inverso de um nmero par de bits ou a inverso do prprio bit de paridade. Uma tcnica derivada a de paridade longitudinal. Ela implementada definindo a utilizao de bits de paridade para cada palavra e tambm uma palavra de paridade que forma o BCC(Block Character Check). O BCC calculado considerando o conjunto de caracteres a transmitir como uma matriz e os valores de paridade calculados horizontalmente. A figura 6.5 ilustra este procedimento. Para transmitir a palavra CAXIAS inicialmente seriam calculados os bits de paridade de cada caracter (P). Em seguida os bits de paridade longitudinal (BCC). Os caracteres seriam transmitidos em seqncia e o BCC seria transmitido por ltimo. C 6 5 4 3 2 1 0 P 1 0 1 0 1 0 1 0 A 1 0 0 1 1 1 0 0 X 1 0 1 0 0 0 1 1 I 1 0 0 0 1 0 1 1 A 1 0 0 1 1 1 0 0 S 1 0 1 1 0 0 0 1 BCC 0 0 1 1 0 0 1 1

Figura 6.5 Exemplo de utilizao de paridade longitudinal. Um outro mtodo de deteco de erros largamente utilizado a definio de cdigos de deteco de erros polinomiais, tambm denominados CRC (Cyclic Redundancy Code). Nos cdigos polinomiais, considera-se que os bits de uma cadeia de caracteres so os coeficientes de um polinmio, coeficientes estes, capazes de assumir apenas dois valores: 0 ou 1. Assim, um bloco de k bits visto como uma srie

Arquiteturas de Redes

60

de coeficientes de um polinmio de k termos, indo de X k-1 a X 0. A palavra 110001 contm 6 bits ela representa ento o seguinte polinmio: x5 + x4 + x0. A utilizao de cdigos de deteco polinomiais baseada na escolha de um cdigo especial que caracteriza um polinmio gerador, ou G(x). Uma exigncia em relao a este polinmio que os bits mais significativo e menos significativo (correspondendo, respectivamente aos coeficientes de mais alta ordem e de mais baixa ordem do polinmio) sejam de valor 1. A tcnica consiste em adicionar a um bloco de dados (caracterizando um polinmio M(x)) um conjunto de bits de controle de modo que o quadro (dados + bits de controle) seja divisvel por G(x). Na recepo, a entidade de Enlace efetua a diviso dos bits compondo o quadro pelo polinmio gerador. Caso o resto seja diferente de zero, caracterizada ento a ocorrncia de um erro de transmisso. O algoritmo para clculo do CRC pode ser exemplificado da seguinte forma: faa 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 polinmio xrM(x); divida o string de bits correspondente a xrM(x) pelo string de bits correspondente a G(x) usando a diviso de mdulo 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 subtrao de mdulo 2; o resultado o quadro com CRC a ser transmitido; chame o polinmio desse quadro de T(x). Ilustrando: quadro a ser transmitido: 1101011011 polinmio gerador: x4 + x + 1, ou 10011 mensagem com acrscimo 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 diviso, ocorreu erro na transmisso. Alguns exemplos de cdigos polinomiais adotados na deteco de erros so: 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 so usados para caracteres de 8 bits. O CRC-32 utilizado para gerar cdigos de 32 bits a serem acrescentados na mensagem de dados. Para fazer uma rpida anlise da eficincia do uso deste mtodo vejamos o exemplo a seguir: um CRC de 16 bits detecta todos os erros simples e duplos, todos os erros com um nmero mpar de bits, todos os erros em rajadas que tiverem um tamanho de no mximo 16 bits, 99,997% das rajadas de erros de 17 bits e 99,998% da rajadas de 18 bits, no mnimo. Apesar do clculo necessrio para computar o checksum parecer complexo, alguns autores mostraram que um circuito simples de registro de deslocamento pode ser criado para calcular e verificar os checksums em hardware. Na prtica este tipo de circuito quase sempre usado.

6.5.3 PROCEDIMENTOS PARA CONTROLE DE ERRO


Os trs procedimentos mais usados para controlar erros no Enlace de Dados so: algoritmo do bit-alternado (stop-and-wait ou send-wait), janela n com transmisso integral (go-back-n) e janela n com retransmisso seletiva (selective repeat). No algoritmo do bit-alternado o transmissor s envia um novo quadro quando recebe o reconhecimento do quadro enviado anteriormente. Considerando que os quadros podem ser transmitidos mais de uma vez, necessrio numer-los para que o receptor possa distinguir quadros originais de retransmisses. 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 segundo como o bit 1, o terceiro com o bit 0, e assim por diante. A figura 6.6 mostra um diagrama de estados do algoritmo do bit alternado. Nele, o transmissor passa do estado 1 para o estado 2 quando possui dados a transmitir. No estado 2 ele envia um quadro 0 (D0), passando para o estado 3, dispara um temporizador Arquiteturas de Redes 61

(timeout) e fica aguardando a chegada do reconhecimento desse quadro (A0). Se aps decorrido o intervalo de temporizao o reconhecimento no chegar ou se chegar um reconhecimento de quadro 1 (A1) indicando que o quadro 0 foi recebido com erro ou no chegou ao destino, o transmissor entra em estado 4, retransmite o quadro 0 e volta ao estado 3. Quando o transmissor encontra-se no estado 3 e recebe o reconhecimento do quadro 0, ele passa para o estado 5. No estado 5, quando o transmissor tiver dados para transmitir ele passa para o estado 6, envia um quadro 1 (D1), passa para o estado 7, e dispara um temporizador enquanto aguarda o reconhecimento do quadro 1. Com o transmissor no estado 7, se o reconhecimento no chegar dentro do limite de tempo do temporizador ou se ele receber um reconhecimento 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 no precisa aguardar at o fim do timeout para retransmitir o quadro perdido.
8
Transmite D1 Timeout ou Recebe A0 Transmite A1

Erro ou Recebe D1

1
Dados a transmitir

Recebe A1

1
Recebe D0 Transmite A1

7
Entrega dados

Transmite D1

2
Transmite D0

6
Dados a transmitir

2
Entrega dados

6
Recebe D1

Timeout ou Recebe A1

Recebe A0

Transmite A0 Erro ou Recebe D0

5
Transmite A0

Transmite D0

Transmissor

Receptor

Figura 6.6 Diagrama de estados do algoritmo do bit alternado O receptor comea a operar no estado 1 e ao receber um quadro 0, ele passa para o estado 2, entrega os dados para o nvel superior de protocolo (normalmente o nvel 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 um quadro 1. Se o prximo quadro que ele receber for um quadro 0, ou for um quadro defeituoso, ele passa para o estado 4, retransmite o reconhecimento de um quadro 0 e retorna ao estado 5 onde fica aguardando a chegada de um quadro 1. No estado 5, ao receber um quadro 1, o receptor passa para o estado 6, entrega o quadro ao nvel superior de protocolo, vai para o estado 7, envia um quadro de reconhecimento do quadro 1 e passa para o estado 1, onde fica aguardando a chegada de um quadro 0. No estado 1, se receber um quadro com erro ou um quadro 1, o receptor vai para o estado 8, envia novamente o reconhecimento do quadro 1 (pois foi o ultimo que recebeu corretamente) e volta para o estado 1. A tcnica do bit-alternado oferece uma soluo simples porm ineficiente para o controle de erro, pois enquanto o transmissor espera por reconhecimentos o canal de comunicao no utilizado. A figura 6.7 ilustra esta situao. Para aumentar a eficincia na utilizao dos canais de comunicao, foram elaborados protocolos que permitem que o transmissor envie diversos quadros mesmo sem ter recebido reconhecimentos dos quadros anteriormente enviados. O nmero mximo de quadros, devidamente numerados, que podem ser enviados sem que tenha chegado um reconhecimento define a largura da janela de transmisso. Como no protocolo do bit alternado, o transmissor fica sabendo que ocorreu um erro em um quadro por ele enviado quando seu reconhecimento no chega aps decorrido um intervalo de tempo suficiente para tal. Neste caso, dois procedimentos podem ser implementados para recuperar o erro: retransmisso integral: todos os quadros a partir do que no foi recebido so retransmitidos; retransmisso seletiva: apenas o quadro que no foi reconhecido retransmitido. Para aumentar ainda mais a eficincia na utilizao do canal de transmisso, em ambos os casos o receptor no precisa enviar um reconhecimento para cada quadro que recebe. O transmissor, ao receber o reconhecimento do quadro n conclui que ele, e todos os quadros enviados antes dele, foram recebidos corretamente. A figura 6.8 ilustra estas duas estratgias.

Arquiteturas de Redes

62

Transmissor

Receptor

Quadro 0 Quadro 0 Intervalos de Timeout ACK0 Quadro 1 Quadro 1 ACK0

Quadro 1 Quadro 1 ACK1 ACK1

Quadro 1 Quadro 1 ACK1 ACK1

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

Intervalo de timeout

10

A1

A2

A5

A7

Quadros descartados

(a) Protocolo com retransmisso integral

Arquiteturas de Redes

63

Intervalos de timeout

10

11

12

A0

A1

A8

A9

10

11

Quadros bufferizados

Quadros descartados

(b) Protocolo com retransmisso seletiva Figura 6.8 Protocolos de janela n com retransmisso integral ou seletiva

6.6

O CONTROLE DE FLUXO

Outra funo importante da camada de Enlace de Dados a de contornar o problema decorrente de transmissor que envia quadros mais rapidamente do que um receptor capaz de aceit-los. Esta situao pode ocorrer quando o transmissor est sendo executado em um computador muito rpido (ou que no esteja sobrecarregado) e o receptor est utilizando um computador lento (ou sobrecarregado). Mesmo que a transmisso no contenha erros, em um determinado ponto o receptor no mais ser capaz de receber os quadros e comear a perder alguns deles. Desta forma h a necessidade de mecanismos que impeam que esta situao acontea. A soluo mais comum incluir algum mecanismo de controle de fluxo para que o transmissor no mais envie quadros to rapidamente a ponto do receptor no ser capaz de receb-los corretamente. Geralmente estes mecanismos incluem informaes que devem ser enviadas do receptor para o transmissor para que este ltimo possa saber se o receptor ou no capaz de acompanh-lo. Existem diversos esquemas de controle de fluxo. No entanto, a maioria deles utiliza o mesmo princpio bsico. O protocolo contm regras bem definidas sobre quando o transmissor pode enviar o quadro seguinte. Com freqncia, essas regras impedem que os quadros sejam enviados at que o receptor tenha concedido permisso para transmisso, implcita ou explicitamente. Por exemplo, quando uma conexo for estabelecida, o receptor poder dizer: Voc est autorizado a me enviar n quadros agora, mas depois que eles tiverem sido enviados, no envie mais nada at eu dizer para continuar. No protocolo do bit alternado, visto na seo anterior, o prprio mecanismo de retransmisso de quadros controla o fluxo, pois um novo quadro s enviado depois do receptor ter processado o quadro anterior e enviado um reconhecimento. Nos protocolos com janela n maior que 1, o controle de fluxo feito com base em quadros especiais e em janelas de transmisso e recepo. A utilizao das janelas para controlar erros e o fluxo de quadros nesses protocolos faz com que eles sejam classificados como protocolos de janelas deslizantes (ou sliding windows). O nmero mximo de quadros que o transmissor pode enviar, sem receber um reconhecimento, determinado pela largura (T) de sua janela de transmisso. Aps ter enviado T quadros sem receber reconhecimento o transmissor suspende o envio de dados, s voltando a faz-lo aps receber um reconhecimento que, alm de indicar que um ou mais quadros chegaram corretamente ao receptor, indica tambm que ele est pronto para processar novos quadros. A figura 6.9 ilustra esse esquema de controle de fluxo.

Arquiteturas de Redes

64

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

RECEPTOR
recebe um quadro
4 4 4 4 4 4 4 0

envia um quadro envia dois quadros


0 0 0 0 0 0 1 1 1 1 1 1 2

recebe dois quadros recebe um quadro


2 2 2 2 2 3 3 recebe ACK de quatro quadros

envia um quadro
recebe ACK de quatro quadros

envia um quadro
3 3 3

recebe um quadro
4

envia trs quadros


recebe ACK de quatro quadros

recebe trs quadros


4 4 0 0 1 1 2 2 recebe ACK de quatro quadros

Figura 6.9 Controle de fluxo em protocolos de janela n (n=4) Note que, para no confundir o transmissor, se a numerao dos quadros vai de 0 a n, a janela deve ter tamanho mximo igual a n. Por exemplo, na figura 6.9, se a janela fosse de tamanho 5 o transmissor no teria como saber se um reconhecimento de um quadro 4 uma retransmisso do reconhecimento do quadro 4 da janela anterior ou da janela corrente. O nmero mximo de quadros que o receptor pode receber, sem que nenhum deles seja entregue ao nvel de rede, determinado pela largura R de sua janela de recepo. Para que um quadro possa ser confirmado sem ainda ter sido entregue ao nvel de rede, quando acumula R quadros em sua memria, o nvel de enlace do receptor avisa ao transmissor que no est em condies de receber novos quadros, enviando-lhe um quadro especial receive-not-ready. O transmissor, ao receber este quadro, suspende o envio de novos quadros. Quando alguns dos quadros que estavam em sua memria so entregues ao nvel de rede, o receptor envia para o transmissor um quadro especial receive-ready, liberando-o para transmitir novos quadros.

6.7

O CONTROLE DE ACESSO AO MEIO

A estratgia adotada na elaborao dos padres de protocolos de enlace de dados para redes locais (IEEE 802) foi definir mais de um padro de forma a atender aos requisitos dos sistemas usurios da rede. Na verdade, a arquitetura IEEE 802 pode ser vista como uma adaptao das duas camadas inferiores da arquitetura RM-OSI da ISO. Nesta arquitetura existem 3 camadas, ou seja, uma equivalente camada fsica e duas sub-camadas que juntas eqivalem a camada de enlace. Elas so assim denominadas: camada fsica (PHY); sub-camada de controle de acesso ao meio (MAC); sub-camada de controle de enlace lgico (LLC). Para atender o modelo elaborado devemos observar que as funes de comunicao mnimas e essenciais de uma rede local, equivalentes aos nveis inferiores do RM-OSI, podem ser assim definidas: fornecer um ou mais SAPs (pontos de acesso ao servio) para os usurios da rede; na transmisso, montar os dados a serem transmitidos em quadros com campos de endereo e cdigos de redundncia para deteco de erros;

Arquiteturas de Redes

65

na recepo, desmontar os quadros, efetuando o reconhecimento de endereo e deteco de erros; gerenciar a comunicao no enlace.

Estas quatro funes so fornecidas pelo nvel de enlace do RM-OSI. A primeira funo, as subfunes a ela relacionadas, so agrupadas pelo IEEE 802 na camada Logical Link Control (LLC). As trs restantes so tratadas em uma camada separada, chamada Medium Access Control (MAC), que podem, ento ser otimizadas para as diferentes topologias de redes locais, mantendo uma interface nica, a camada LLC, para os usurios da rede local. A sub-camada de Controle de Acesso ao Meio (MAC) especifica os mecanismos que permitem gerenciar a comunicao a nvel de Enlace de Dados. Em particular, a sub-camada MAC fornece os servios que permitem disciplinar o compartilhamento de um meio de transmisso comum aos sistemas usurios da rede. As unidades de transferncia de informao ao nvel da sub-camada MAC correspondem aos quadros MAC. A existncia da sub-camada MAC na arquitetura IEEE 802 reflete uma caracterstica prpria das redes locais, que a necessidade de gerenciar enlaces de dados com origens e destinatrios mltiplos num mesmo meio fsico de transmisso, como no caso das topologias em anel e barramento. Alm disso, a existncia da sub-camada MAC permite o desenvolvimento da sub-camada superior (LLC) com um certo grau de independncia da camada fsica, no que diz respeito topologia e ao meio de transmisso propriamente dito. Por outro lado, a prpria sub-camada MAC bastante sensvel a esses elementos. Os mecanismos de controle de acesso distribudo apresentam uma forte dependncia quanto topologia da sub-rede de comunicao. Um resultado das diferentes caractersticas topolgicas a existncia de tcnicas de controle de acesso exclusivas a uma determinada topologia. Alguns mecanismos de acesso podem ser implementados em topologias diferentes (barramento e anel) mas esta no a regra geral. A sub-camada de Controle de Enlace Lgico (LLC) a camada da arquitetura IEEE 802 que se encarrega de prover s camadas superiores os servios que permitem uma comunicao confivel de seqncia de bits (quadros) entre os sistemas usurios da rede. A especificao da sub-camada LLC prev a existncia de trs tipos de servios bsicos, fornecidos camada superior. Um primeiro servio oferecido pela sub-camada LLC permite que as unidades de informao sejam trocadas sem o estabelecimento prvio de uma conexo a nvel de enlace de dados. Neste tipo de servio no h, portanto, nem controle para recuperao de erros ou anomalias, nem controle da cadncia de transferncia das unidades de dados (controle de fluxo). suposto que as camadas superiores possuam tais mecanismos de modo a tornar desnecessria sua duplicao nas camadas inferiores. Um segundo servio fornecido pela sub-camada LLC consiste no estabelecimento de uma conexo a nvel de enlace de dados, antes da fase de troca de dados propriamente dita, de modo a incorporar as funes de recuperao de erros, de seqenciamento e de controle de fluxo. O terceiro refere-se a um servio sem conexo com reconhecimento utilizado em aplicaes que necessitam de segurana mas no suportam o overhead de estabelecimento de conexo.

6.8

ALGUNS EXEMPLOS DE PROTOCOLOS DE ENLACE

Alguns protocolos de enlace, apesar de antigos, so os mais usados e conhecidos. Todos eles so derivados do protocolo de enlace de dados utilizado na SNA da IBM, o SDLC (Synchronous Data Link Control). Depois de desenvolver o SDLC a IBM o submeteu ao ANSI e ISO para sua aceitao como padro nos Estados Unidos e no mundo, respectivamente. O ANSI o modificou, tornando-o conhecido como ADDCP (Advanced Data Communication Control Procedure), e a ISO o alterou transformando-o no HDLC (High-level Data Link Control). Depois, O CCITT adotou e modificou o HDLC e o transformou no LAP (Link Access Procedure), como parte do padro de interface de rede X.25. No entanto, posteriormente o CCITT modificou o padro novamente e passou a cham-lo LAPB, a fim de torn-lo mais compatvel com uma verso posterior do HDLC. Todos estes protocolos se baseiam nos mesmos princpios, todos so baseados em bits e utilizam a tcnica de insero de bits (bit stuffing) para transparncia de dados pois utilizam uma seqncia pr-definida de bits para inicializao 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 na figura 6.10 a seguir. Arquiteturas de Redes 66

bits

16

01111110

endereo

controle

dados

soma de verificao

01111110

Figura 6.10 Formato de quadro bsico para protocolos orientados a bits O campo endereo utilizado para identificao do endereo de destino e, algumas vezes, para endereo de origem e destino. No caso de linhas ponto-a-ponto, pode ser utilizado para distinguir comandos e respostas. O campo controle usado para nmeros de seqncia de quadros, confirmaes e algumas outras finalidades. O campo dados deve conter os dados da camada usuria e pode ser, algumas vezes, arbitrariamente longo, embora a eficincia do checksum diminua com o aumento do comprimento do quadro devido maior probabilidade de vrios erros em rajada. O campo soma de verificao (ou checksum) j foi suficientemente discutida anteriormente.

Arquiteturas de Redes

67

Captulo 7 - A Camada de Rede

7.1

INTRODUO

O objetivo da camada de Rede assegurar o transporte de unidades de dados denominadas pacotes do sistema fonte ao sistema destinatrio, definindo uma trajetria apropriada. Esta trajetria pode significar a passagem por diversos ns intermedirios da rede, o que significa que a camada de Rede deve ter o conhecimento de todos os aspectos topolgicos da rede considerada e, com esta informao, ser capaz de escolher o melhor caminho a ser realizado por estes pacotes. Nesta escolha, interessante que seja levado em conta o estado corrente de toda a rede, particularmente no que diz respeito ao trfego de mensagens, evitando assim a sobrecarga de certos trechos das linhas de comunicao. Ainda, se o sistemas fonte e destinatrio esto conectados a redes diferentes, estas diferenas devem ser levadas em conta e compensadas pela camada de Rede. A camada de Rede a camada mais baixa que lida com a transmisso fim-a-fim. As duas funes essenciais da camada de Rede so roteamento e controle de congestionamento. A seguir sero apresentadas outras funes desta camada: multiplexao; endereamento; mapeamento entre endereos de rede e endereos de enlace; estabelecimento e liberao de conexes do servio de rede; transmisso de unidades de dados do servio de rede (pacotes); segmentao e blocagem de SDUs/PDUs; deteco e recuperao de erros; seqenciao. Os mecanismos relacionados funes de interconexo de redes merecero uma parte dedicada especialmente para este assunto.

7.2

SERVIOS OFERECIDOS PELA CAMADA DE REDE

A camada de Rede oferece servios camada de Transporte na interface entre estas duas camadas. Geralmente esta interface tem importncia especial por outra razo: costuma ser a interface entre a concessionria de comunicaes e o cliente, ou seja, a fronteira da sub-rede. Em geral, a concessionria de comunicaes tem o controle dos protocolos e interfaces at (e inclusive) a camada de rede. Sua tarefa entregar pacotes que recebe a seus clientes. Por isso esta interface deve ser especialmente bem definida. Os servios da camada de Rede foram projetados com os seguintes objetivos em mente: os servios devem ser independentes da tecnologia de sub-rede; a camada de Transporte deve ser protegida contra a quantidade, o tipo e a topologia das subredes presentes; os endereos de rede que se tornaram disponveis para a camada de Transporte devem usar um plano de numerao uniforme, mesmo nas LANs e WANs. Segundo a bibliografia, uma das primeiras e mais importantes discusses realizadas no que diz respeito concepo da camada de Rede foi a questo do tipo de servio a ser oferecido s camadas superiores, particularmente relacionado existncia ou no de conexo. De um lado, representado pela Arquiteturas de Redes 68

comunidade Internet, havia a alegao de que a tarefa da sub-rede somente a de movimentar bits. Nesta viso, baseada na experincia com o uso de mais de 30 anos com uma rede ativa e real, a sub-rede inerentemente digna de confiana, independente de como tenha sido projetada. Portanto, os hosts devem aceitar esse fato e eles prprios fazerem o controle de erros e de fluxo. Esse ponto de vista leva rapidamente concluso de que o servio de rede deve ser sem conexo, praticamente restrito s primitivas SEND PACKET e RECEIVE PACKET. O outro lado, representado pelas companhias telefnicas, alegava que a sub-rede deve fornecer um servio orientado a conexo confivel. Elas afirmavam que os 100 anos de experincia bem sucedida com o sistema telefnico mundial deveriam servir como guia. De acordo com isso, as conexes devem, ento, ter as seguintes propriedades: 1. Antes de enviar dados, um processo da camada de Rede do lado transmissor deve estabelecer uma conexo com seu par do lado receptor. Essa conexo, qual atribudo um identificador especial, ser utilizada at que todos os dados tenham sido enviados, momento em que explicitamente encerrada. 2. Quando uma conexo estabelecida, os dois processos podem entrar em negociao sobre a qualidade e o custo do servio a ser oferecido. 3. A comunicao feita em ambas as direes, e os pacotes so entregues em seqncia. 4. O controle de fluxo fornecido automaticamente para impedir que um transmissor rpido descarregue pacotes na rede em uma taxa mais alta do que o receptor capaz de receb-los, gerando overflow. Outras propriedades, como entrega garantida, confirmao explcita de entrega e pacotes de alta prioridade so opcionais. Na verdade a grande diferena entre o servio orientado a conexo e o no orientado a conexo diz respeito a complexidade. No servio orientado a conexo, o elemento mais complexo a camada de Rede; no servio sem conexo, a complexidade fica por conta da camada de Transporte (nos hosts). Apesar de raramente serem discutidas nestes termos, duas questes distintas esto envolvidas aqui. Primeiro, se a rede ou no orientada a conexo, segundo se ela confivel ou no. Numa rede confivel no h pacotes perdidos, duplicados ou adulterados, e numa rede no confivel pode haver perda, duplicao ou adulterao de pacotes. Na teoria, as quatro combinaes existem, mas as combinaes dominantes so: orientada a conexo/confivel e sem conexo/no confivel. Essas duas opes so representadas por dois exemplo a seguir. A Internet tem uma camada de rede sem conexo, e as redes ATM tm sua camada de rede orientada conexo. Uma questo importante surge em relao ao funcionamento da Internet quando ela executada em uma sub-rede fornecida por uma concessionria de comunicao baseada no modelo ATM. A resposta que o host de origem primeiro estabelece uma conexo de camada de rede ATM com o host de destino e s depois envia pacotes independentes (pacotes IP) atravs dela, como mostra a figura 7.1 a seguir. Apesar de funcionar, esta estratgia ineficiente, pois h uma mesma funcionalidade em ambas as camadas. Por exemplo, a camada de rede ATM garante que os pacotes so sempre entregues em ordem, mas o cdigo TCP ainda contm o mecanismo completo para gerenciamento e reordenao de pacotes fora de ordem. e-mail FTP TCP IP ATM Enlace de dados Fsica ....

Figura 7.1 Executando o TCP/IP em uma sub-rede ATM. Como resultado de toda esta discusso foi a definio, a nvel do modelo OSI, de duas classes de servio, sem conexo e orientado conexo, sendo que uma certa liberdade foi dada no sentido de se definir a que nvel o servio com conexo seria implantado, ou mesmo se este seria implantado. Abriu-se, assim, a possibilidade de se ter, nos diferentes nveis, as duas classes de servio, isto sendo ilustrado pela figura 7.2. Pode-se notar tambm nesta figura a possibilidade de multiplexao de conexes nesta camada.

Arquiteturas de Redes

69

servio orientado conexo

servio sem conexo

APLICAO APRESENTAO SESSO TRANSPORTE REDE ENLACE FSICA


SAP

Figura 7.2 - Ilustrao das classes de servio do modelo OSI. Os SAPs so localizados na interface entre duas camadas, permitindo que uma camada tenha acesso aos servios oferecidos pela camada inferior. Como se pode ver na figura, da camada de Enlace para cima, os servios podem ser sem ou orientados conexo. Uma conexo de Rede vista, da tica do modelo OSI, como um par de filas FIFO (FIrst In FIrst Out), cada uma orientada num sentido, conectado entre dois NSAPs (endereos de rede). A figura 7.3 ilustra o estado da conexo, considerando a adoo de um servio orientado conexo. A figura 7.3(a) ilustra o estado da conexo antes do seu estabelecimento; 7.3(b) aps o estabelecimento da conexo e, 7.3(c), aps o envio de trs pacotes de dados.
usurio 1 NSAPs usurio 2 usurio 1 NSAPs usurio 2 usurio 1 NSAPs usurio 2

camada Rede

camada Rede

camada Rede

(a)

(b)

(c)

Figura 7.3 - Modelo de uma conexo de Rede: (a) antes do estabelecimento; (b) aps o estabelecimento; (c) aps o envio de trs pacotes (de 1 para 2).

7.3

ORGANIZAO INTERNA DA CAMADA DE REDE

H basicamente duas diferentes filosofias para a organizao da sub-rede, uma utilizando conexes e a outra trabalhando sem conexo. No contexto de operao interna da sub-rede, uma conexo costuma ser chamada de circuito virtual, em analogia com os circuitos fsicos estabelecidos pelo sistema telefnico. Os pacotes usados na organizao sem conexo so chamados datagrama, em uma analogia com os telegramas. A idia que h por trs dos circuitos virtuais evitar a escolha de uma nova rota para cada pacote ou clula enviada. Na verdade, quando se estabelece uma conexo, uma rota entre a mquina de origem e a mquina de destino escolhida, como parte do estabelecimento da conexo configurada e memorizada. Essa rota utilizada por todo o trfego que flui pela conexo, exatamente da mesma forma que sistema telefnico funciona. Quando a conexo liberada, o circuito virtual tambm deixa de existir.

Arquiteturas de Redes

70

Por outro lado, no caso de uma sub-rede de datagrama, nenhuma rota previamente definida, mesmo que o servio seja orientado a conexo. Cada pacote enviado roteado independentemente de seus antecessores. Os sucessivos pacotes podem seguir diferentes rotas. Apesar das sub-redes de datagrama terem de trabalhar mais, elas tambm costumam ser mais robustas e se adaptam com mais facilidade a falhas e congestionamento do que as sub-redes de circuito virtual. Todas as duas metodologias tm seus prs e contras. A tabela a seguir apresenta uma comparao entre as sub-redes de circuito virtual e de datagrama. Questo Configurao de circuito Endereamento Informaes sobre estado Roteamento Sub-rede em datagrama Desnecessria Cada pacote contm os endereos de origem e destino completos A sub-rede no armazena informaes sobre o estado Cada pacote roteado independentemente Sub-rede em circuito virtual Obrigatria

Efeito de falhas no roteador Controle de congestionamento

Cada pacote contm um pequeno nmero de circuito virtual Cada circuito virtual requer espao em tabelas da sub-rede A rota escolhida quando o circuito virtual estabelecido; todos os pacotes seguem essa rota Nenhum, com exceo dos pacotes Todos os circuitos virtuais que perdidos durante falhas tiverem atravessado o roteador que apresentou falha sero encerrados Difcil Fcil se forem alocados buffers suficientes com antecedncia para cada circuito virtual

Vale a pena assinalar explicitamente que o servio oferecido (orientado conexo ou sem conexo) uma questo parte da estrutura das sub-redes (circuito virtual ou datagrama). Na teoria, todas as quatro combinaes so possveis. claro que uma implementao de circuito virtual de um servio orientado conexo e uma implementao de datagrama de um servio sem conexo so razoveis. A implementao de conexes usando datagramas tambm faz sentido quando a sub-rede est tentando fornecer um servio altamente robusto. Uma comparao, atravs de exemplos, entre todas as quatro possibilidades pode ser analisada na tabela a seguir. Tipo de Sub-rede Datagrama Sem conexo UDP sobre IP TCP sobre IP Circuito Virtual UDP sobre IP sobre ATM AAL1 (ATM) sobre ATM

Orientado conexo

7.4

AS PRIMITIVAS DE SERVIO DE REDE

O quadro a seguir apresenta as primitivas de servio disponibilizados pela camada de Rede do modelo OSI, tanto para o servio orientado conexo como para o sem conexo.

Arquiteturas de Redes

71

SERVIO ORIENTADO CONEXO N_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 ( ) SERVIO SEM CONEXO N_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 conexo de Rede e atravs de seus parmetros deve-se indicar o endereo ao qual se deseja conectar (calling), assim como o endereo do iniciador (called). Encontra-se, ainda, nos seus parmetros, duas variveis booleanas que permitem requisitar servios adicionais. O parmetro acks_wanted permite indicar o pedido de reconhecimento de pacotes. Se a camada de Rede no permite o fornecimento de reconhecimento, o fornecedor vai colocar esta varivel a falso na primitiva de indicao; da mesma forma, se a entidade destinatria no pode fornecer reconhecimento, ela mesma o far (colocar acks_wanted a falso) na primitiva de resposta. O outro parmetro booleano, exp_wanted, permite a utilizao de servios de dados expressos (ou urgentes), o que significa que um pacote pode violar a ordem normal dos pacotes na fila para se colocar na cabea desta. Isto permite, de certo modo, estabelecer um nvel de prioridade entre as mensagens a nvel de Rede. O parmetro QoS permite determinar a qualidade do servio a ser oferecido, sendo composto de duas listas de valores. A primeira lista contm o contexto desejado pela entidade iniciadora; a segunda indica os valores mnimos aceitveis. Se o servio de Rede incapaz de fornecer pelo menos os valores mnimos estabelecidos pelo usurio iniciador, a conexo no ser estabelecida. Os valores estabelecidos neste parmetro so a taxa de erro, a taxa de transmisso, a confidencialidade e custo da transmisso. O iniciador pode, atravs do parmetro user_data, introduzir dados no pedido de conexo, podendo a entidade chamada consultar estes dados antes da aceitao da conexo. A aceitao de uma conexo feita pelo iniciador atravs da primitiva N_CONNECT.indication; por outro lado, a recusa implementada atravs da primitiva N_DISCONNECT.request, que informa, atravs do parmetro reason, o motivo do no estabelecimento da conexo. Se a conexo estabelecida, a transmisso de dados feita utilizando a primitiva N_DATA.request, que ser refletida no receptor por uma primitiva N_DATA.indication. Caso um pedido de reconhecimento de pacotes foi acertado entre os usurios da camada no momento da conexo, o reconhecimento ser implementado atravs do envio, pelo receptor, de uma primitiva N_DATA_ACKNOWLEDGE.request. As primitivas N_RESET so utilizadas para sinalizar problemas de comunicao, tais como o bloqueio de uma entidade de transporte envolvida na comunicao ou mesmo do fornecedor do servio. O efeito deste servio o esvaziamento das filas de espera, sendo que as informaes presentes nestas sero perdidas. As perdas devero ser recuperadas pela camada de Transporte.

Arquiteturas de Redes

72

As primitivas N-UNITDATA so utilizadas para o envio de dados no servio sem conexo; elas no oferecem nem controle de erros nem de fluxo. N_FACILITY o servio que permite ao usurio obter informaes sobre as caractersticas da transmisso de informao, por exemplo, a porcentagem de pacotes distribudos. Finalmente, a primitiva N_REPORT permite camada de Rede informar a ocorrncia de problemas relativos ao servio de Rede, como, por exemplo, a indisponibilidade momentnea de um determinado endereo destinatrio.

7.5

O ENDEREAMENTO DE REDE

O endereamento dos pontos de acesso ao servio de rede (SAPs de rede) deve ser completamente independente dos demais endereamentos dos outros nveis de protocolo. Basicamente dois tipos de endereamento so possveis: o hierrquico e o horizontal. No endereamento hierrquico o endereo constitudo de acordo com os endereos correspondentes aos vrios nveis de hierarquia de que faz parte. Um exemplo comum um endereo de SAP de rede formado pelo nmero da rede a que pertence, pelo nmero da estao dentro dessa rede e pelo nmero da porta associada. O protocolo IP da Arpanet um exemplo de utilizao de endereo hierrquico, onde a identificao de um SAP de rede (nico por estao) formada pelo endereo da rede e pelo endereo da estao. O endereo hierrquico tambm o mtodo sugerido pelo ITU-T, atravs da recomendao X.121, para interconexo de redes pblicas de pacotes. Nessa recomendao os endereos so decimais formados por trs campos: um cdigo do pas (trs dgitos), um cdigo para a rede (um dgito no mximo dez redes) e um campo para o endereamento dentro da rede (dez dgitos). No endereamento horizontal, os endereos no tm relao alguma com o lugar onde esto as entidades dentro da rede. Um exemplo comum desse tipo de endereamento seriam os endereos globalmente administrados, constitudos pelo nmero de assinatura do usurio, como utilizados pelo padro IEEE802. Consideraes sobre o roteamento parecem indicar vantagens na utilizao de endereos hierrquicos, uma vez que estes contm informaes explcitas sobre o local onde se localizam as entidades, informaes que podem ser usadas quando necessrio. J o endereo horizontal, por ser independente da localizao, vai facilitar os esquemas de reconfigurao por permitir uma mobilidade das entidades sem renumerao das mesmas. O mapeamento do endereo de um SAP de rede em um endereo de sub-rede (muitas vezes o endereo no nvel de enlace se a rede no possui a subcamada de acesso sub-rede do RM-OSI) para o envio de pacotes uma tarefa a ser resolvida pelo nvel de rede (subcamada dependente da sub-rede). Existem duas tcnicas usuais para essa converso: resoluo atravs de mapeamento direto e resoluo atravs de vinculao dinmica. No mapeamento direto, a estao sabe como computar, de modo eficiente, o endereo de subrede, atravs de uma funo que mapeia o endereo inter-redes no endereo de sub-rede. Por exemplo, suponha o caso do endereamento hierrquico onde o campo de endereo de estao corresponde exatamente ao endereo da estao no nvel da sub-rede. Neste caso a converso trivial. Converses mais complicadas podem ser realizadas atravs de tabelas de converso e tcnicas de acesso rpido a estas tabelas. Para evitar o uso de tabelas de converso, uma vinculao dinmica pode ser efetuada entre o endereo da inter-rede e o endereo da sub-rede, atravs da utilizao de algum protocolo de resoluo. Por exemplo, suponha o caso extremo onde a cada comunicao enviada uma mensagem a toda a interrede, argindo o endereo de sub-rede correspondente ao SAP de rede do destino. A estao de destino responderia requisio enviando seu endereo de sub-rede, possibilitando ao SAP de rede de origem realizar a comunicao. Uma questo, neste caso : uma vez que se est enviando uma mensagem por difuso argindo o endereo de sub-rede, por que no enviar diretamente os dados por difuso? A razo vem do fato de que a realizao de difuso toda vez que se quer enviar um pacote, muito custosa, em termos de trfego gerado na rede e de processamento que cada estao tem que realizar, quer o pacote seja destinado a ela ou no. Para reduzir esses custos, as estaes mantm em memria cache os endereos de sub-rede recentemente requeridos e sua vinculao com os endereos dos SAPs de rede, de forma a no ter de realizar o protocolo de resoluo a todo pacote transmitido. Arquiteturas de Redes 73

7.6

A FUNO DE ROTEAMENTO

Como dito na parte introdutria, a funo principal da camada de Rede efetuar o encaminhamento dos pacotes trocados entre duas entidades oferecendo uma comunicao fim-a-fim. Durante a trajetria os pacotes sofrero uma srie de saltos, sendo que a deciso de que caminho utilizar feita a nvel da camada de Rede, esta deciso podendo levar em conta (ou no) a situao da rede do ponto de vista do trfego de informao. Pode-se distinguir os diferentes algoritmos de roteamento em duas principais classes: os algoritmos adaptativos e no adaptativos (ou de rota fixa). Os algoritmos no adaptativos no levam em conta a situao de trfego da rede, fazendo o denominado roteamento esttico, j os adaptativos o fazem, considerando modificaes de topologia da rede e do trfego real, ou roteamento dinmico. A implementao do roteamento exige uma estrutura de dados que informe os possveis caminhos e seus custos, a fim de que se possa decidir qual o melhor caminho. No encaminhamento no adaptativo, a tabela de roteamento, uma vez criada, no mais alterada. As rotas so fixas e caminhos alternativos so tomados somente em caso de falhas. Esse mtodo tem a vantagem de ser bastante simples, mas em geral leva m utilizao dos meios de comunicao, a no ser que o trfego da rede seja bem regular e bastante conhecido. Um exemplo de roteamento esttico o flooding (ou inundao). Neste algoritmo cada pacote de entrada enviado para todas as linhas de sada, exceto para aquela em que chegou. Este mecanismo obviamente gera muitos pacotes duplicados e alguma tcnica deve ser empregada para amortecer este processo. Uma das tcnicas consiste em descartar o pacote depois que ele j percorrer um nmero mximo de roteadores em seu caminho. J no encaminhamento adaptativo, a rota escolhida de acordo com a carga na rede. Nas tabelas de rotas so mantidas informaes sobre o trfego (como por exemplo o retardo sofrido em um determinado caminho), que so consultadas para a escolha do caminho mais curto (por exemplo, o de menor atraso). As tabelas devem ser periodicamente atualizadas, podendo tal atualizao ser realizada de vrios modos: No modo isolado a atualizao realizada com base nas filas de mensagens para os diversos caminhos e outras informaes locais. No modo distribudo, cada n envia periodicamente aos outros ns, incluindo os roteadores, as informaes locais sobre a carga da rede. Essas informaes so utilizadas para o clculo da nova tabela. No modo centralizado cada n envia a um ponto central da rede as informaes locais sobre a carga. Essas informaes so utilizadas pelo ponto central para o clculo das novas tabelas, que so ento enviadas aos roteadores e demais ns. Devemos nos ater agora a definio de caminho mais curto. Existem vrias formas de medir o comprimento do caminho. Uma forma o nmero de saltos, isto , o nmero de ns intermedirios pelos quais deve passar o pacote at chegar ao destino. Outra medida a distncia geogrfica. Ainda outra medida poderia ser o retardo de transferncia do pacote. Nesse caso o caminho mais curto seria, na verdade, o caminho mais rpido. Existem muitos algoritmos de roteamento descritos na literatura, porm seria exaustivo analisar cada um deles. Sendo assim, a seo a seguir discute dois algoritmos de roteamento existentes.

7.6.1 ALGORITMO DO CAMINHO MAIS CURTO


Este algoritmo baseado numa representao da sub-rede na forma de um grafo, onde os ns so os IMP e os arcos so as linhas de comunicao. A escolha de uma trajetria , ento, baseada neste grafo, e o objetivo encontrar o caminho mais curto entre dois IMPs. Conforme j mencionado anteriormente, o conceito de caminho mais curto pode levar em conta diferentes aspectos, por exemplo: o nmero de ns entre os dois pontos; a distncia geogrfica entre os pontos; os tempos de espera em cada n da trajetria. No terceiro caso, por exemplo, os arcos so etiquetados com um valor que representa o tempo mdio de espera entre o envio e a recepo de um pacote de teste, expedido periodicamente. Arquiteturas de Redes 74

Um exemplo de algoritmo do caminho mais curto aquele definido por Dijkstra, onde cada n etiquetado pela distncia do n fonte seguindo o caminho mais curto conhecido. Como, inicialmente, nenhum caminho conhecido, os ns so etiquetados com a etiqueta infinito, ou ..... Estas vo sendo atualizadas medida que o algoritmo progride e que os caminhos vo se tornando conhecidos. As etiquetas vo indo do provisrio ao permanente uma vez que o caminho mais curto foi encontrado para os diferentes ns. A figura 7.4 ilustra o funcionamento deste algoritmo. Vamos considerar o grafo apresentado em 7.4(a), onde os arcos so etiquetados com o valor da distncia entre os ns. Vamos considerar que o objetivo 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 referncia (fundo cinza) e sero analisados os ns adjacentes. Estes sero etiquetados pela distncia que os separa de A, marcando tambm, na etiqueta, o ltimo n a partir do qual o clculo foi feito. Aps a anlise dos ns 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 referncia). Repetindo a anlise para o n B, define-se o n E como sendo o novo n ativo, mostrado em 7.4(c). O algoritmo vai progredindo at que o caminho mais curto seja ento encontrado, as etiquetas sendo modificadas segundo as anlises efetuadas. A progresso do algoritmo para o exemplo ilustrada por 7.4(d), 7.4(e) e 7.4(f).
B
2 2 7 3 2 1 4

C
3

B (2,A) E ( ,-)

C ( ,-)

A
6

E G

F
2 2

D H

F ( ,-)

D ( ,-)

G (6,A)

H ( ,-)

(a)
B (2,A) E (4,B) A F ( ,-) D ( ,-) A C (9,B) B (2,A)

(b)
C (9,B) E (4,B) F (6,E) D ( ,-)

G (6,A)

H ( ,-)

G (5,E)

H ( ,-)

(c)
B (2,A) E (4,B) A F (6,E) D ( ,-) A C (9,B) B (2,A)

(d)
C (9,B) E (4,B) F (6,E) D ( ,-)

G (5,E)

H (9,G)

G (5,E)

H (8,F)

(e)

(f)

Figura 7.4 -

Ilustrao do algoritmo de Dijkstra.

7.6.2 ROTEAMENTO MULTICAMINHOS


Este algoritmo leva em conta a possibilidade de existncia de diversos caminhos entre dois ns de valores quase equivalentes. Desta forma, o desempenho da rede pode ser melhorado, se o trfego assumido por vrios caminhos, reduzindo assim a carga de uma dada linha de comunicao. Esta tcnica de roteamento implantada da seguinte forma: cada IMP mantm atualizada uma tabela com uma linha para cada IMP da rede. Para cada IMP, tem-se as diferentes linhas de sada para este destino, classificadas em ordem decrescente, do melhor ao menos eficiente, com um peso relativo.

Arquiteturas de Redes

75

Antes do envio de um pacote, o IMP gera um nmero aleatrio para definir o caminho, utilizando os pesos como probabilidade. As tabelas so criadas de maneira esttica pelo administrador do sistema e carregadas em cada IMP na inicializao da rede. O grafo da figura 7.5(a) ilustra o desenvolvimento deste algoritmo, sendo que em 7.5(b) est apresentada a tabela para o n J. Se J recebe um pacote destinado a A, ele pode optar por um dos trs caminhos, consultando a tabela na linha associada ao n A. A primeira escolha o caminho direto a A, as outras sendo via I e H, respectivamente. A deciso , ento, baseada na gerao de um nmero aleatrio entre 0,00 e 0,99. Se o nmero inferior a 0,63, a linha A ser escolhida, se estiver entre 0,63 e 0,83, a linha passando por I ser escolhida; seno, ser a linha que passa por H. A vantagem desta tcnica sobre a anterior a possibilidade de definir diferentes classes de trfego sobre diferentes caminhos. Uma outra vantagem a confiabilidade ganha, uma vez que vrias linhas podem ser perdidas sem que a rede perca a sua conectividade.
A A A A H A A H H I K K 0,63 0,46 0,34 0,50 0,40 0,34 0,46 0,63 0,65 0,67 0,42 I H I A I H A K A H H (b) 0,21 0,31 0,33 0,25 0,40 0,33 0,31 0,21 0,22 0,22 0,42 H 0,16 I I I K A A A 0,23 0,25 0,33 0,23 0,16 H 0,33 H 0,20

B C D E

F G H I

H 0,13 0,11 0,16

J
(a)

K L

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

7.7

O CONTROLE DE CONGESTIONAMENTO

Durante o funcionamento de uma aplicao distribuda construda sobre uma rede, vo existir instantes em que o fluxo de mensagens sendo trocadas pode atingir valores bastante grandes, de tal forma que os ns intermedirios, responsveis do tratamento dos pacotes, no sejam mais capazes de tratar os pacotes para retransmisso. Isto, naturalmente, vai ter como conseqncia uma degradao no funcionamento da rede, podendo trazer prejuzos (lentido, perdas de pacotes) ao desempenho da aplicao, comprometendo o seu correto funcionamento. As causas desta sobrecarga, conhecida por congestionamento, podem ser de vrias naturezas. Um exemplo disto pode ser a lentido dos ns na realizao do roteamento ou um mal funcionamento do mecanismos de controle de fluxo. O congestionamento consiste, normalmente, de um processo a realimentao positiva, o nmero de mensagens tendendo a crescer se a rede est congestionada. Sendo assim, a camada de Rede deve tambm fazer este papel, atravs da implementao de funes de controle de congestionamento, algumas das quais sero descritas a seguir.

7.7.1 A PR-ALOCAO DE BUFFERS


Uma primeira forma de controlar o congestionamento da rede atravs da pr-alocao de buffers, particularmente se o servio orientado conexo. Isto significa que, no momento do estabelecimento do circuito virtual que vai caracterizar a conexo, um determinado nmero de buffers Arquiteturas de Redes 76

deve ser alocado em cada n para permitir o armazenamento dos pacotes a serem retransmitidos por aquele circuito virtual. Evidentemente, o nmero de buffers a ser alocado vai depender do protocolo implementado entre cada par de ns intermedirios (IMPs). Um algoritmo do tipo envia-espera vai exigir um nmero de buffers evidentemente menor do que um algoritmo que autorize o envio de diversos pacotes antes da retransmisso.

7.7.2 A DESTRUIO DE PACOTES


Um outro mecanismo que adotado para o controle de congestionamento o da destruio de pacotes. Neste caso, no existe reserva prvia de buffers, de modo que, se um pacote chega num IMP e este no dispe de buffer para o seu armazenamento, este simplesmente destrudo (ou descartado). Se o servio oferecido do tipo datagrama, no h mais nada a fazer; por outro lado, se este orientado conexo, o pacote dever ser armazenado em algum n para uma possvel retransmisso. Ainda, a destruio de pacotes deve seguir uma certa disciplina, por exemplo, destruir um pacote de reconhecimento pode no ser uma boa soluo, uma vez que este pacote poderia permitir ao n o apagamento de um pacote de informao e, por conseqncia, a liberao de um buffer. Uma soluo para isto a reserva, para cada linha de chegada, de um buffer que possibilite a recepo de pacotes de reconhecimento endereados quele n.

7.7.3 O CONTROLE DE FLUXO


O controle de fluxo consiste em outra tcnica de controle de congestionamento, embora no muito eficiente nesta tarefa. O problema do controle do fluxo o fato que os limites do trfego no podem ser estabelecidos em valores muito baixos, pois isto pode provocar problemas de eficincia na aplicao se um pico de trfego necessrio. Por outro lado, a escolha de um limite alto de trfego pode resultar num controle medocre de congestionamento.

7.7.4 OUTRAS TCNICAS


Outras tcnicas de controle de congestionamento so ainda implementadas, como por exemplo: o controle isartmico, baseado na existncia em cada n de um certo nmero de fichas. O n que tiver um pacote a transmitir, deve obter uma ficha, se existir alguma disponvel. Isto permite manter constante o nmero de pacotes em circulao na rede; os pacotes de estrangulamento, enviados por um n ao usurio do servio de rede, indicando que determinadas linhas de sada esto no limite da saturao. Isto faz com que o usurio reduza o envio de pacotes para o destino utilizando aquela linha at que a situao retome a normalidade.

7.8

LIGAES INTER-REDES

At aqui temos visto como resolver problemas de interconexo entre equipamentos dentro de uma mesma rede. No entanto isto nem sempre acontece. Muitas vezes a necessidade de comunicao entre mquinas que esto em redes diferentes, incluindo ai LANs, MANs e WANs. Diversos protocolos esto sendo utilizados em cada camada, ou sejam, ter vrias redes significa ter protocolos diferentes. Veremos agora rapidamente um pouco dos problemas e solues quando duas ou mais redes se juntam para formar uma inter-rede. Parece claro que sempre haver uma variedade de redes com caractersticas e protocolos distintos por vrios 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 decises e escolhas passam a ser tomadas nos nveis mais baixos da hierarquia de uma organizao.

Arquiteturas de Redes

77

3.

Os diferentes tipo de redes tm tecnologias muito diferentes.

Desta forma, considerando a grande diversidade de redes instaladas hoje e que necessitam ser interligadas, usaremos alguns exemplos para demonstrar alguns tipos de necessidade de interconexo entre tipos diferentes de redes: LAN-LAN: dois professores de diferentes departamentos de uma universidade que usam redes locais com diferentes tecnologias; LAN-WAN: um professor de uma universidade que envia uma mensagem de correio eletrnico para um outro professor que trabalha em um laboratrio fora a rea do campus; WAN-WAN: dois poetas trocando sonetos; LAN-WAN-LAN: professores de diferentes universidades se comunicando. Numa definio bastante simplificada, para interconectar redes diferentes seria necessrio a insero de uma caixa preta para realizar as converses necessrias medida que os pacotes so transferidos de uma rede para outra. O nomes dados para estes equipamento de converso depende basicamente da camada em que ele atua. Apesar de haver muitas controvrsias em relao a esta terminologia, alguns nomes comuns para estes equipamentos so: Repetidor (repeater): atua na camada fsica e sua funo somente copiar bits individuais entre segmentos de cabo; Ponte (bridge): atuam na camada de enlace de dados e sua funo armazenar e remeter quadros de enlace de dados entre LANs; Roteador (router): atuam na camada de rede, so muitas vezes chamados roteadores multiprotocolo e encaminham pacotes entre diferentes redes; Comporta (gateway): eles atuam acima da camada de transporte e permitem a ligao interredes acima desta camada. bom lembrar que o termo gateway muito utilizado na literatura para designar qualquer equipamento de interconexo entre redes distintas. Outra caracterstica importante que as pontes e os roteadores, apesar de atuarem em camadas diferentes, tm funcionalidade similar. Muitos dispositivos existentes no mercado combinam a funcionalidade de uma ponte com a de um roteador. Estes equipamentos so por vezes chamados de brouter (bridge+router).

Arquiteturas de Redes

78

Captulo 8 - A Camada de Transporte

8.1

INTRODUO

A funo da camada de Transporte permitir a transferncia de informaes do sistema emissor ao sistema receptor de forma confivel e econmica, independentemente da natureza da informao ou das redes suportando a comunicao. A importncia dos servios fornecidos por esta camada est no fato que muitas aplicaes existentes podem funcionar simplesmente com a existncia de um servio confivel de transporte de informao, o que quer dizer que os servios que poderiam ser fornecidos pelas camadas superiores so dispensveis. Um exemplo disto a interconexo de estaes no sistema UNIX. Neste captulo sero apresentadas as principais definies relacionadas aos servios e protocolos de transporte, particularmente do ponto de vista do modelo OSI.

8.2

SERVIOS OFERECIDOS PELA CAMADA DE TRANSPORTE

Segundo o modelo OSI, os usurios da camada de Transporte so as entidades de Sesso, s quais deve ser oferecido o servio confivel de transporte dos bits de informao fim-a-fim, este servio sendo fornecido atravs 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 servio, ou seja, sem conexo e orientados conexo. Os servios de Transporte orientados conexo so caracterizados pelas trs etapas j descritas para outros nveis do modelo OSI, isto , estabelecimento de conexo, transferncia de dados e liberao da conexo. Estes servios so bastante similares aos servios oferecidos pela camada de Rede, o que poderia colocar em dvida a necessidade desta camada. No entanto, a sua existncia se justifica pela necessidade de servios de superviso da camada de Rede do ponto de vista das entidades efetivamente envolvidas na comunicao. Uma superviso fim-a-fim entre as aplicaes, uma vez que, at o nvel Rede, as comunicaes se fazem ponto-a-ponto, a nvel de sub-rede de comunicao. Outra contribuio importante da camada de Transporte que ela permite a utilizao de primitivas de servio padro pelas diversas aplicaes construdas sobre a rede efetuando um perfeito isolamento em relao s camadas superiores e tornando transparentes as possveis alteraes tecnolgicas que poderiam ocorrer nos nveis inferiores. Por esta razo, costuma-se fazer uma distino entre os nveis de 1 a 4 e os de 5 a 7. Os primeiros quatro nveis seriam mais orientados ao transporte efetivo das informaes e os trs nveis superiores, mais orientados s aplicaes que sero construdas sobre a rede. Poderamos sintetizar o servio fornecido pela camada de Transporte como de supervisor da qualidade de servio oferecido pela camada de Rede. Isto significa que, se a camada de Rede confivel, a camada de Transporte no ter muito a fazer. Por outro lado, se o servio de Rede deficiente, a camada de Transporte assume a funo de suprir as diferenas entre a qualidade de servio que a camada de Sesso necessita e aquilo que a camada de Rede pode oferecer. Para isto, o conceito de qualidade de servio (QOS para Quality Of Service) um aspecto importante na concepo da camada de Transporte, baseado sobre um certo conjunto de parmetros, entre os quais destacam-se: retardo no estabelecimento de uma conexo; probabilidade de falha no estabelecimento da conexo; Arquiteturas de Redes 79

desempenho (throughput); retardo de trnsito; taxa de erros residuais; proteo; prioridade; resilincia.

O retardo no estabelecimento de uma conexo o tempo decorrido entre a solicitao de uma conexo de transporte e o recebimento de sua confirmao pelo usurio do servio de transporte. Nessa caracterstica tambm est includo o retardo do processamento na entidade de transporte remota. A exemplo de todos os parmetros que medem retardo, quanto menor o retardo, melhor o servio. A probabilidade de falha no estabelecimento da conexo a possibilidade da conexo no se estabelecer dentro de um perodo mximo estabelecido devido a, por exemplo, um congestionamento na rede, falta de espao de tabela em algum lugar ou a outros problemas internos. O parmetro desempenho (throughput) calcula o nmero de bytes de dados do usurio transmitidos por segundo durante um determinado intervalo de tempo. Ele medido separadamente para cada direo de fluxo. O retardo de trnsito calcula o tempo transcorrido desde o envio de uma mensagem pelo usurio de transporte da mquina de origem at seu recebimento pelo usurio de transporte da mquina destino. A exemplo do throughput, cada direo do transporte analisada separadamente. A taxa de erros residuais calcula o nmero de mensagens perdidas ou corrompidas em uma porcentagem do total enviado. Na teoria, a taxa de erros residuais deveria ser zero, pois o trabalho da camada de transporte esconder os erros da camada de rede. Na prtica, essa taxa pode apresentar um valor baixo finito. O parmetro proteo oferece uma forma de o usurio de transporte especificar seu interesse no fato da camada de transporte fornecer proteo contra a leitura, ou a modificao, de dados por parte de terceiros. O parmetro prioridade oferece ao usurio de transporte um modo de indicar que algumas conexes so mais importantes do que outras e, em caso de congestionamento, garantir que as conexes de maior prioridade sejam atendidas primeiro. Por fim, o parmetro de resilincia oferece camada de transporte a probabilidade de finalizar uma conexo espontaneamente devido a problemas internos ou congestionamento. No momento do pedido de um estabelecimento de conexo, o usurio do transporte que est solicitando a conexo encaminha os seus parmetros desejados de QoS nas primitivas de servio. Se a camada de Transporte julga certos parmetros longe da realidade, ela pode sinalizar isto ao usurio iniciante, sem mesmo ter tentado estabelecer a conexo, atravs de uma mensagem de erro que vai, tambm, indicar a natureza do erro sinalizado. Outra possibilidade a camada de Transporte julgar que um certo valor para um parmetro seja impossvel de ser oferecido mas que um valor no muito longe daquele poderia ser oferecido. Neste caso, ela pode modificar os valores dos parmetros enquadrados e encaminhar o pedido de conexo mquina remota. Ainda, se a mquina distante verifica que ela no pode oferecer determinados valores especificados nos parmetros do pedido, ela pode modificar tambm aqueles parmetros. Se ela verifica no poder determinados parmetros nos valores mnimos permitidos, neste caso ela vai rejeitar a conexo. Esse procedimento chamado negociao de opo (option negotiation). Uma vez negociadas as opes sero mantidas durante toda a conexo. Muitas concessionrias de servios de rede tendem a cobrar mais caro por servios de melhor qualidade para evitar que os seus clientes fiquem obcecados por esses detalhes.

8.3

AS PRIMITIVAS DE SERVIO DE TRANSPORTE

As primitivas de servio de Transporte do modelo OSI so apresentadas no quadro a seguir, existindo para os servios orientados conexo e sem conexo.

Arquiteturas de Redes

80

SERVIO ORIENTADO CONEXO T_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) SERVIO SEM CONEXO T_UNITDATA.request (called, calling,qos,user_data) T_UNITDATA.indication (called, calling,qos,user_data) Como podemos ver, as primitivas de servio de Transporte se assemelham bastante quelas do servio de Rede. Existe, porm, uma diferena fundamental entre os dois nveis. No caso do nvel Rede, considera-se que o servio oferecido corresponde ao funcionamento real do sistema, representando inclusive suas falhas. Desta forma, podem ocorrer perdas de pacotes ou a emisso de comandos N_RESET de sua prpria iniciativa. J no caso do nvel Transporte, os comandos N_RESET no so propagados aos usurios (as camadas superiores), uma vez que o objetivo principal desta camada o tratamento de todos os problemas de comunicao evitando que os usurios do servio tomem conhecimento das ms condies de funcionamento da rede de comunicao (se tal o caso!). Uma outra diferena entre os dois servios so os usurios destes. No caso do servio de Rede, os usurios so as entidades de Transporte, normalmente elementos associados ao sistema operacional considerado ou a uma carta especfica instalada nos sistemas. J os usurios do servio de Transporte podem ser programas escritos pelos programadores de aplicaes, uma vez que, como j foi dito, muitas aplicaes podem comunicar-se diretamente atravs do uso direto das primitivas de servio de Transporte (no fazendo uso dos servios de Sesso ou de Apresentao). As possveis relaes entre as primitivas de servio da camada de Transporte so apresentadas na figura 8.1. As duas extremidades das ilustraes caracterizam os usurios do servio de Transporte, o fornecedor sendo representado pelo espao separando os dois usurios. Em 8.1(a) ilustrada um estabelecimento normal de conexo, onde o usurio da esquerda envia uma primitiva T_CONNECT.request camada de Transporte. O usurio da direita vai receber ento uma primitiva T_CONNECT.indication, cujos parmetros vo conduzir os valores, particularmente, da qualidade de servio a serem negociados. Este aceita o estabelecimento da conexo, retornando camada de Transporte uma primitiva T_CONNECT.response, que ser refletida, via servio de Transporte, no usurio da esquerda na forma de uma primitiva T_CONNECT.confirm. A figura 8.1(b) apresenta uma tentativa de estabelecimento de conexo, rejeitada, porm, pelo usurio da direita, que utiliza as primitivas de servio T_DISCONNECT.request e T_DISCONNECT.indication para sinalizar a rejeio. O caso similar na figura 8.1(c), porm, desta vez, o prprio fornecedor do servio de Transporte quem rejeita a conexo, enviando uma primitiva T_DISCONNECT.indication ao usurio da esquerda. No que diz respeito liberao da conexo, pode-se considerar trs diferentes maneiras: a primeira, ilustrada em 8.1(d), considera o caso em que a liberao iniciada por um dos usurios (no caso o da esquerda). A conexo liberada no momento em que o usurio da direita recebe uma primitiva T_DISCONNECT.indication, reflexo da primitiva T_DISCONNECT.request emitida pelo usurio que iniciou a liberao. Em 8.1(e) considerado o caso em que os dois usurio iniciam, simultaneamente, a liberao da conexo, neste caso, a conexo liberada sem a emisso de outras primitivas de servio; finalmente, em 8.1(f), a liberao iniciada pelo prprio servio de Transporte, que vai emitir primitivas T_DISCONNECT.indication aos dois usurios conectados. J as figuras 8.1(g) e 8.1(h), representam, respectivamente, a etapa de transferncia de dados, para dados normais e expressos.

Arquiteturas de Redes

81

T_CONNECT request

T_CONNECT confirm

T_CONNECT indication T_CONNECT response

T_CONNECT request

T_CONNECT request T_CONNECT indication T_DISCONNECT request

T_DISCONNECT indication

T_DISCONNECT indication

(a)

(b)

(c)

T_DISCONNECT request

T_DISCONNECT request T_DISCONNECT indication

T_DISCONNECT request T_DISCONNECT indication

T_DISCONNECT indication

(d)

(e)

(f)

T_DATA request T_DATA indication

T_EXPEDITED_DATA request

T_EXPEDITED_DATA indication

(g)

(h)

Figura 8.1 - As diversas interaes entre as primitivas de servio de Transporte. Um diagrama de estados para o estabelecimento e encerramento de uma conexo com primitivas simples mostrado na figura 8.2. Cada transio acionada por algum evento, por uma primitiva executada pelo usurio de transporte local ou por um pacote que chega. Para simplificar, o diagrama assume que cada TPDU confirmada separadamente e que um modelo de desconexo simtrica est sendo usado, com o cliente dando incio ao procedimento.

8.4

OS PROTOCOLOS DE TRANSPORTE

Como definido pelo modelo OSI, o servio oferecido por uma camada N o resultado da implementao de um protocolo N regendo a comunicao entre duas entidades N. Em princpio, os protocolos de Transporte apresentam preocupaes similares dos protocolos de Enlace, ou seja, o controle de erros, o controle de fluxo, o seqenciamento dos dados. No entanto, algumas diferenas podem ser levantadas: no caso da camada de Enlace, dois IMPs comunicam-se via um canal de comunicao; a nvel de Transporte, a comunicao feita via uma sub-rede; no que diz respeito ao endereamento, a nvel de Enlace, um IMP no necessita referir-se explicitamente com qual IMP ele quer dialogar, uma vez que dois IMPs so conectados por uma via nica; j no nvel Transporte, o endereo do destinatrio deve ser explicitamente definido; um outro problema a questo do controle de fluxo; ao contrrio do nvel de Enlace, onde cada conexo pode alocar um determinado nmero de buffers para o armazenamento dos quadros, no nvel Transporte isto fica mais difcil dado o nmero de conexes que pode estar sendo gerenciado num dado instante.

Arquiteturas de Redes

82

TPDU Connection Request recebida


Ociosa

Primitiva Connect Request executada

Estabelecimento passivo pendente

Estabelecimento ativo pendente

Estabelecida

Primitiva Connect executada

PDU Connection Request recebida

Desconexo passivo pendente

TPDU Disconnection Request recebida

Primitiva Disconnect executada

Desconexo ativa pendente

Ociosa

Primitiva Disconnect executada

TPDU Disconnection Request recebida

Seqncia de passos do cliente Seqncia de passos do servidor

Figura 8.2 Diagrama de estados para um mecanismo gerenciamento de conexo simples. Um aspecto a ser levado em conta no momento da concepo da camada de Transporte o servio oferecido pela camada de Rede, que pode ser classificado da seguinte maneira: servios do tipo A, que caracteriza os servios perfeitos, onde a frao de pacotes perdidos, duplicados ou corrompidos desprezvel; o tipo de servio dificilmente encontrado em redes pblicas, mas algumas redes locais so bastante prximas deste tipo de servio; servios do tipo B, onde a perda de pacotes tambm rara, mas a comunicao freqentemente interrompida (servio N_RESET) devido a problemas de congesto, de hardware ou software; servios do tipo C, no confiveis, sendo caracterizados normalmente pelas redes a longa distncia do tipo datagrama. Para cada tipo de servio, de A a C, o nvel do servio de Transporte caminha do mais simples ao mais complexo, ou seja, quanto pior o servio oferecido pela camada de Rede, melhor (e mais complexo) dever ser o servio oferecido pela camada de Transporte. Para permitir a definio de vrios nveis de oferecimento de servio, o modelo OSI, a nvel da camada de Transporte, define cinco classes de servio: classe 0, que so os servios mais simples, capazes de estabelecer uma conexo, mas baseados na hiptese que o servio de Rede no gera erros de transmisso; no existe tratamento de erros, controle de fluxo nem seqenciamento; classe 1, corresponde classe 0, mas permite implementar a retomada de dilogo, considerando que pode ocorrer quebra do dilogo a nvel de Rede (servio N_RESET); ele permite a retomada da comunicao entre duas entidades de Transporte aps a interrupo de uma conexo de Rede;

Arquiteturas de Redes

83

classe 2, que torna mais sofisticada a classe 0 pela introduo da possibilidade de manuteno de diversas conexes de Transporte sobre uma nica conexo de Rede (multiplexao); classe 3, que agrupa os mecanismos de retomada de dilogo da classe 1 com os de multiplexao da classe 2; classe 4, definida para operar sobre os servios de Rede do tipo C cuja falta de confiabilidade conhecida, devendo tratar ento os erros, perdas, duplicaes, retomada de dilogo e todos os possveis problemas no resolvidos pela camada de Rede.

No momento do estabelecimento de uma conexo, so as entidades pares que devem tomar a deciso sobre qual classe de servio adotar, uma classe sendo proposta pelo iniciante e negociada para permitir o estabelecimento da conexo. As funes do protocolo de Transporte vo depender do ambiente no qual ele vai operar assim como da natureza dos servios que devem ser supridos. Um mnimo de funes deve, todavia, ser oferecido por um protocolo de Transporte, entre as quais: o estabelecimento de conexo; transferncia de TPDUs; segmentao de mensagens; etc... O termo TPDU indicado acima serve para definir a unidade de dados trocada entre duas unidades de Transporte que a unidade de dados de protocolo de transporte (em ingls, Transport Protocol Data Unit). Por outro lado, a unidade de dados emitida por um usurio do servio Transporte muitas vezes referenciada como sendo uma mensagem. Uma mensagem a ser transmitida pode ter um tamanho qualquer, a segmentao das mensagens devendo ser assumida por esta camada. Isto significa que, se uma unidade de dados apresenta um tamanho superior ao de um pacote, ela deve ser segmentada em tantos pacotes quantos sejam necessrios para efetuar a sua completa emisso. Ainda, se uma entidade de Transporte gerencia vrias conexes num dado instante, ela deve numerar as conexes e inserir o nmero correspondente nas unidades de dados, a fim de permitir entidade receptora de identificar corretamente a conexo qual esta unidade de dados deve ser associada. Independente da classe de protocolo considerada, deve sempre existir um mecanismo de liberao de conexo, esta liberao sendo, porm, diferente dependendo da classe de protocolo considerada.

8.5

ENDEREAMENTO

Quando um processo de aplicao deseja estabelecer uma conexo com um processo de aplicao remoto, necessrio especificar a aplicao com que se conectar. O transporte sem conexo tambm tem o mesmo problema. O mtodo normalmente utilizado definir os endereos de transporte que os processos podem ouvir para receber solicitaes de conexo. Na arquitetura Internet, essas extremidades (endereo IP, porta local) formam pares. Em redes ATM, eles so os AAL-SAPs. O termo TSAP (Transport Service Access Point) um termo mais neutro. Os pontos finais anlogos da camada de rede so chamados NSAPs. Os endereos IP so exemplos de NSAPs. A figura 8.3 ilustra a relao entre o NSAP, o TSAP, a conexo de rede e a conexo de transporte para uma sub-rede orientada conexo. Cabe observar que normalmente uma entidade aceita vrios TSAPs. Em algumas redes tambm existem vrios NSAPs; no entanto, em outras, cada mquina tem somente um NSAP (por exemplo, um endereo IP). A seguir apresentado um cenrio para uma conexo de transporte atravs de uma camada de rede orientada conexo. 1. um processo servidor para informar a hora do dia no host 2 se associa ao TSAP 122 para aguardar a chegada de uma chamada. O processo de associao do processo a um TSAP dependente do sistema operacional local; 2. um processo de aplicao no host 1 deseja encontrar a hora do dia e, portanto, transmite uma solicitao especificando o TSAP 6 como origem e o TSAP 122 como destino;

Arquiteturas de Redes

84

3.

4. 5.

a entidade de transporte no host 1 seleciona um endereo de rede em sua mquina (se houver mais de um) e estabelece uma conexo de rede entre eles; atravs desta conexo a entidade de transporte do host 1 pode se comunicar com a entidade de transporte do host 2; a entidade de transporte do host 1 diz sua correspondente no host 2 que quer estabelecer uma conexo de transporte entre o seu TSAP 6 e o TSAP 122 dele; a entidade de transporte no host 2 ento pergunta ao servidor da hora do dia no TSAP 122 se ele est disposto a aceitar uma nova conexo; se ele concordar, a conexo de transporte ser estabelecida. HOST 1
Processo de aplicao TSAP 6

HOST 2
Camada de aplicao Servidor

Conexo de rede comea aqui

Conexo de transporte comea aqui

Camada de transporte

TSAP 122

NSAP

Camada de rede

NSAP

Camada de enlace

Camada fsica

Ligao fsica

Figura 8.3 TSAPs, NSAPs e conexes. Observe que a conexo de transporte acontece de TSAP para TSAP, enquanto a conexo de rede s faz parte do caminho, de um NSAP para outro NSAP. Porm fica uma questo: como o processo de usurio do host 1 sabe que o servidor de hora do dia est associado ao TSAP 122? Uma possibilidade que o servidor de hora esteja associado ao TSAP 122 h muito tempo e que, aos poucos, todos os usurios da rede tenham se acostumado com isso. Nesse modelo os servios tm endereos TSAP fixos ou estveis que podem ser divulgados aos novos usurios quando eles se associam rede. Mas nem sempre os processos de aplicao possuem estes endereos estveis. Um esquema diferente utilizado em hosts UNIX na Internet e conhecido como protocolo de conexo inicial. Neste esquema, ao invs das aplicaes estarem conectadas a TSAPs conhecidos, existe um servidor de processos que funciona como um proxy para os servidores menos usados. Ele atende a uma srie de portas ao mesmo tempo, aguardando uma solicitao de conexes TCP. Os usurios potenciais de um servio devem iniciar por uma solicitao de conexo especificando o endereo TSAP (porta TCP) do servio de que necessitam. Se nenhum servidor os estiver aguardando, eles estabelecem uma conexo com o servidor de processos, como mostra a figura 8.4 (a). Depois de receber a solicitao, o servidor de processos encerra a conexo para o servidor solicitado, permitindo que herde a conexo j existente com o usurio. Em seguida o novo servidor executa a tarefa solicitada, enquanto o servidor de processos volta a aguardar novas solicitaes , como mostra a figura 8.4 (b).

Arquiteturas de Redes

85

HOST 1
Camada de Aplicao Usurio

HOST 2

HOST 1
Camada de Aplicao

HOST 2
Servidor da hora do dia
Servidor de processos

Servidor de processos

Usurio

TSAP

TSAP

(a)

(b)

Figura 8.4 .Como um processo do usurio no host 1 estabelece uma conexo com o servidor de hora do dia no host 2 Enquanto o protocolo de conexo inicial funciona bem quando os servidores podem ser criados quando necessrios, h muitas situaes em que os servios existem de forma independente do servidor de processos. Um servidor de arquivos, por exemplo, deve ser executado em um hardware especial (uma mquina com grande capacidade de disco) e no pode ser criado dinamicamente quando algum deseja se comunicar com ele. Com freqncia, usado um esquema alternativo para administrar essa situao. Nesse modelo existe um processo especial chamado servidor de nomes (name server), ou, s vezes, servidor de diretrios (directory server). Para localizar o endereo TSAP correspondente a um determinado nome de servio, um usurio estabelece uma conexo com o servidor de nomes (que est associado a um TSAP bem conhecido). Em seguida, o usurio envia uma mensagem especificando o nome do servio, e o servidor de nomes retorna o endereo TSAP. Depois disso o usurio encerra a conexo com o servidor de nomes e estabelece uma nova conexo com o servio desejado. Ainda nesse modelo, quando um servio criado ele deve se registrar no servidor de nomes, fornecendo seu nome de servio (normalmente um string ASCII) e o endereo de seu TSAP. O servidor de nomes registra essas informaes em seu banco de dados interno para que possa fornecer as respostas quando houver consultas. Vamos supor que o usurio tenha encontrado o endereo do TSAP com que deseja estabelecer a conexo. Outra questo interessante a seguinte: como a entidade de transporte local sabe em qual mquina esse TSAP est localizado? Mais especificamente, como a entidade de transporte sabe qual endereo da camada de rede ser necessrio para estabelecer uma conexo de rede com a entidade de transporte remota que administra o TSAP solicitado? A resposta depende da estrutura dos endereos TSAP. Uma das possibilidades que os endereos TSAP sejam endereos hierrquicos (hierarchical address). Dessa forma, os endereos consistem em uma seqncia de campos usados para particionar o espao de endereo de modo disjunto. Por exemplo, um endereo realmente universal poderia ter a seguinte estrutura: endereo = <galxia> <estrela> <planeta> <pas> <rede> <host> <porta> Com este esquema, fica fcil localizar de forma direta um TSAP em qualquer lugar do universo. Do mesmo modo, se um endereo TSAP uma concatenao de um endereo NSAP e de uma porta (um identificador local especificando um dos TSAPs locais), quando uma entidade de transporte recebe um endereo TSAP para se conectar, ela usa o endereo NSAP contido no endereo TSAP para chegar entidade de transporte remota correta. Uma alternativa ao uso de um espao de endereamento hierrquico um espao de endereo simples (flat address space). Se os endereos TSAPs no forem hierrquicos, um segundo nvel de mapeamento ser necessrio para localizar a mquina apropriada. Seria necessrio um servidor de nomes que utilizasse os endereos de transporte como entrada e retornasse endereos de rede como sada. Outra

Arquiteturas de Redes

86

alternativa para algumas situaes (por exemplo, em uma LAN), fazer uma consulta solicitando mquina de destino que se identifique enviando um pacote especial para este fim.

8.6

MULTIPLEXAO E SPLITTING

A multiplexao encontrada nos vrios nveis do RM-OSI. A multiplexao de um NSAP por vrios TSAPS pode surgir por vrios motivos e o mais comum o custo. Vrias concessionrias de servios de rede fazem a sua tarifao baseada no tempo em que uma conexo de rede est aberta. Em uma aplicao com trfego em rajada essa conexo pode ficar muito tempo ociosa, tendo o usurio de pagar por este tempo. Uma soluo a multiplexao de vrias conexes de transporte na conexo de rede. A multiplexao tambm se justifica por outros motivos alm da tarifao. Por exemplo, quando a conexo de rede oferece uma banda passante muito maior que a utilizada pelas conexes de transporte. Por outro lado, pode acontecer o inverso, a conexo de rede pode oferecer uma banda passante muito mais baixa do que a necessria pela conexo de transporte. Uma soluo nesse caso realizar a diviso (splitting) da conexo de transporte em vrias conexes de rede. No caso de uma estao possuir vrios canais de sada no nvel fsico, o splitting pode ser usado para aumentar o desempenho.

8.7

ESTABELECIMENTO E ENCERRAMENTO DE CONEXES

O estabelecimento e encerramento de conexes de transporte seria simples, se a rede no perdesse, armazenasse ou duplicasse pacotes. Uma soluo para prevenir que erros decorrentes destes problemas aconteam pode ser conseguida estabelecendo um tempo de vida mximo na rede para um pacote, isto , passado este tempo ele destrudo. O tempo de vida de um pacote pode ser limitado usando-se um contador de saltos para cada um, incrementado cada vez que passa por um n intermedirio da rede ou um tempo de nascimento (timestamp) com a hora da criao. Com essas precaues podemos calcular o tempo T a partir do qual podemos ter certeza de que o pacote e suas confirmaes causaro problemas. As tcnicas utilizadas para evitar estes problemas so atravs da utilizao de timers e nmeros de seqncia e tambm atravs de um handshake de trs vias. Os problemas no encerramento de uma conexo esto relacionados ao fato de existirem trs formas de encerramento, quais sejam: um dos usurios solicita desconexo, os dois solicitam desconexo simultaneamente ou a camada de transporte desiste e transmite pedido de desconexo para ambas as partes. Em todas as situaes as liberaes so abruptas e pode haver perda de dados. Alguns autores chegam a mencionar que ...na verdade, pode ser provado facilmente que no existe nenhum protocolo que funcione...

8.8

CONTROLE DE FLUXO E BUFFERIZAO

Existe uma certa semelhana com a camada de enlace, pois tambm evita que transmissor rpido sobrecarregue receptor lento, s que no caso o emissor e receptor so aplicaes da rede. Um diferena que um IMP tem nmero pequeno de linhas e os hosts podem ter um nmero indeterminado de conexes. A estratgia de buferizao deve levar em considerao trs questes relacionadas a estratgia a ser adotada pelo transmissor quanto a buferizao de TPDUs enviadas. Isto deve ser feito quando: o servio de rede no confivel (redes tipos B e C); o receptor no pode garantir aceitao de todas as TPDUs recebidas; confirmao da camada de rede s pode garantir recebimento, no confirmao. Algumas das tcnicas usadas para determinao de tamanho do buffer so: 1. buffers de tamanho fixo encadeados; 2. buffers de tamanho varivel encadeados; 3. buffer circular estendido para cada conexo; 4. alocao dinmica de buffers.

Arquiteturas de Redes

87

Captulo 9 - A Camada de Sesso

9.1

INTRODUO

Como foi mencionado anteriormente, o modelo hierrquico de comunicao proposto no modelo OSI pode fazer distino em duas classes de camadas: as camadas inferiores, concretizadas pelas camadas de 1 a 4, j vistas, cujos servios so orientados ao transporte de informao propriamente dito, tratando essencialmente de problemas de comunicao como, por exemplo, codificao e transmisso de bits, controle de fluxo e de erros, seqenciamento, roteamento, controle de trfego e gerenciamento de conexes; as camadas superiores, concretizadas pelas camadas de 5 a 7, cujos servios se orientam mais s aplicaes escritas pelos usurios no sentido de facilitar ou simplificar as suas tarefas, fornecendo servios padronizados os mais diversos. A camada de Sesso a primeira camada (no sentido bottom-up) enquadrada na segunda classe. Ao contrrio de outras camadas j estudadas e outras que sero vistas mais adiante, a camada de Sesso foi introduzida no momento da definio do modelo OSI. As demais camadas presentes no OSI foram, de certo modo, inspiradas de modelos pr-existentes na concepo de redes j existentes na poca como, por exemplo, ARPANET. Esta , na verdade, uma das camadas mais simples do modelo OSI, oferecendo uma quantidade de servios relativamente limitada, longe dos servios oferecidos por camadas como a de Transporte, por exemplo. Nesta parte do documento, veremos ento os servios oferecidos pela Sesso e como estes so implementados atravs dos protocolos.

9.2

SERVIOS OFERECIDOS PELA CAMADA DE SESSO

Segundo o modelo OSI, os usurios dos servios de Sesso so as entidades de Apresentao, a posio desta camada estando ilustrada na figura 9.1. A principal funo desta camada oferecer aos seus usurios meios para o estabelecimento das conexes, denominadas sesses, de modo que estes possam trocar dados.
T_CONNECT request T_CONNECT indication T_CONNECT response T_DISCONNECT indication T_CONNECT request T_CONNECT request T_CONNECT indication T_DISCONNECT request

T_CONNECT confirm

T_DISCONNECT indication

(a)

(b)

(c)

T_DISCONNECT request T_DISCONNECT indication

T_DISCONNECT request

T_DISCONNECT request

T_DISCONNECT indication

T_DISCONNECT indication

(d)

(e)

(f)

T_DATA request T_DATA indication

T_EXPEDITED_DATA request

T_EXPEDITED_DATA indication

(g)

(h)

Figura 9.1 - Posio da camada de Sesso no modelo OSI.

Arquiteturas de Redes

88

Uma sesso pode ser utilizada para permitir a conexo distncia a um computador, por exemplo, atravs de um terminal, para uma transferncia de arquivo, para o carregamento de programas distncia, etc... Apesar de que, ao nvel de Sesso, so oferecidas primitivas de servio para a comunicao sem conexo, neste modo, no possvel explorar os servios orientados aos usurios, disponveis nesta camada. No que diz respeito conexo de Sesso (ou sesso, como definido acima), pode-se estabelecer as diferentes possveis relaes entre uma conexo de Sesso e uma conexo de Transporte, como mostra a figura 9.2. Em 9.2(a), mostrada uma correspondncia de 1 a 1 entre uma conexo de Sesso e uma de Transporte. Por outro lado, como mostrado em 9.2(b), pode-se utilizar uma mesma conexo de Transporte para suportar diferentes sesses. Ainda, pode-se ter o quadro inverso, onde, pela quebra de uma conexo de Transporte, a abertura de uma nova providenciada para garantir a continuidade de uma mesma sesso. Este ltimo cenrio, ilustrado em 9.2(c), se caracteriza, por exemplo, quando as entidades de Transporte assumem a tarefa de retomada de dilogo aps uma pane.
Sesso Transporte Sesso Transporte Sesso

Transporte

(a)

(b)

(c)

Figura 9.2 - Diferentes relaes entre conexo de Sesso e de Transporte: (a) correspondncia 1 a 1; (b) uma conexo de Transporte para vrias sesses; (c) vrias conexes de Transporte para uma nica sesso.

9.3

SESSO X TRANSPORTE: SIMILARIDADES E DIFERENAS

A gesto do dilogo a principal funo da camada de Sesso e, da mesma forma como foi visto para camadas inferiores, o dilogo via esta camada caracterizado pelas trs etapas a seguir: estabelecimento de sesso, transferncia de dados e liberao da sesso. As primitivas de estabelecimento e liberao de sesso oferecidas camada de Apresentao so similares quelas oferecidas prpria camada de Sesso pelo Transporte. Esta similaridade ocorre a tal ponto que, em muitos casos, a recepo de uma primitiva de servio da camada de Apresentao refletese imediatamente no envio de uma primitiva de servio equivalente da camada de Transporte. Um exemplo disto a primitiva de estabelecimento de Sesso, S_CONNECT.request, que refletida no envio de uma primitiva T_CONNECT.request. Na fase de estabelecimento de uma conexo, da mesma forma que na camada de Transporte, ocorre a negociao, entre as duas entidades envolvidas (de Apresentao) sobre que parmetros vo definir a comunicao. Dentre estes parmetros, encontram-se parmetros j conhecidos de outros nveis do modelo OSI (por exemplo, a necessidade de transferncia de dados expressos) e tambm parmetros especficos camada de Sesso (por exemplo, na abertura de uma sesso para troca de informaes via correio eletrnico, um parmetro pode ser qual usurio vai tomar a iniciativa do dilogo). Apesar das semelhanas j levantadas, pode-se destacar tambm algumas diferenas entre uma sesso e uma conexo de Transporte, essas diferenas estando particularmente associadas ao procedimento de liberao das conexes. No caso da camada de Transporte, a primitiva T_DISCONNECT.request que causa a terminao abrupta da conexo, podendo ocorrer inclusive perda dos dados ainda em trnsito. J, no caso das sesses, a primitiva responsvel da liberao S_RELEASE.request que permite terminar, de maneira ordenada a conexo, sem ocorrncia de perda dos dados (liberao negociada). possvel, no entanto, em caso de necessidade, promover uma liberao abrupta da sesso, isto, graas utilizao da primitiva S_ABORT.request. A diferena entre as duas formas de liberao de uma conexo mostrada na figura 9.3. Em 9.3(a) apresentada a liberao abrupta de uma conexo de Transporte; em 9.3(b), apresentada a liberao negociada de uma sesso. Como se pode ver em 9.3(b), ao contrrio dos servios de liberao de conexo apresentados at o momento, o servio de liberao negociada S_RELEASE um servio confirmado, caracterizado pelas primitivas request, indication, response e confirm.

Arquiteturas de Redes

89

S_DATA request T_DATA request T_DISCONNECT indication perda dado S_RELEASE indication S_RELEASE response

S_RELEASE request S_DATA indication S_RELEASE confirm

T_DISCONNECT request

(a)

(b)

Figura 9.3 - (a) liberao abrupta; (b) liberao negociada. Como mostra a figura, mesmo aps ter emitido o pedido de liberao, a entidade usuria pode continuar a receber primitivas de servio de indicao de transferncia de dados (no caso, S_DATA.indication), sendo que a desconexo s ser efetivada aps a recepo da primitiva S_RELEASE.confirm. Um outro ponto de bastante similaridade entre as camadas de Sesso e Transporte o endereamento. Da mesma forma que no Transporte, a nvel de Sesso necessrio indicar um SSAP (Ponto de Acesso ao Servio de Sesso ou Session Service Access Point) na fase de estabelecimento de sesso. Normalmente, um endereo de SSAP nada mais que um endereo de TSAP enriquecido com outras informaes. Ainda, uma diferena entre Sesso 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 dados normais e os dados expressos (ou urgentes). J na camada de Sesso, alm 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 sero explicados mais adiante, neste documento.

9.4

A GESTO DO DILOGO

Segundo o modelo OSI, todas as conexes estabelecidas so, a princpio, do tipo full duplex, ou seja, bidirecionais simultneas, conforme mostrado na figura 9.4(a). Por outro lado, existem muitas aplicaes nas quais a possibilidade de operao em half duplex pode ser mais interessante. Este servio implementado a nvel da camada de Sesso graas definio de uma ficha de dados (data token), como ilustrado na figura 9.4(b). A comunicao em half duplex uma opo negociada no momento do estabelecimento de uma sesso. Se esta opo adotada, dever ser definido tambm qual dos usurios envolvidos no dilogo poder tomar a iniciativa (possuidor da ficha).
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 request S_TOKEN_GIVE request S_DATA indication S_DATA indication S_TOKEN_GIVE indication S_DATA request

S_DATA indication

(a)

(b)

Figura 9.4 - (a) comunicao full duplex; (b) comunicao half duplex com ficha.

Arquiteturas de Redes

90

Quando este usurio terminar a sua transmisso, ele pode ceder a ficha ao usurio par para que ele possa efetuar a sua transmisso. A passagem de ficha de um usurio a outro implementada atravs da primitiva S_TOKEN_GIVE. Ainda, se um dos usurios querendo efetuar uma transmisso no possui a ficha naquele instante, ele pode requisit-la a seu par atravs da emisso de uma primitiva S_TOKEN_PLEASE.request. O usurio receptor da primitiva S_TOKEN_PLEASE.indication pode ou no querer ceder a ficha. Em caso negativo, o usurio que a requisitou no far outra coisa seno esperar a boa vontade do seu interlocutor (ou ainda, enviar dados urgentes que no necessitam a possesso da ficha). A ficha s passa a ter algum sentido no caso de comunicao half duplex. Se full duplex a opo adotada, ela no levada em conta.

9.5

A SINCRONIZAO

A camada de Sesso deve cobrir igualmente os problemas relacionados sincronizao. Esta tarefa til para a manuteno da coerncia do estado entre dois usurios interlocutores em caso de erro ou outro problema. Apesar da camada de Transporte ter, por princpio, a funo de cobrir todos os problemas relacionados retomada aps erros ou panes, esta camada cobre unicamente os problemas relacionados transmisso de dados propriamente dita, no levando em conta os problemas que podem ocorrer nas camadas superiores. Estes erros podem ocasionar perdas de dados que a camada de Transporte incapaz de detectar (uma vez que esta no a sua funo!). A camada de Sesso vem, ento, ao socorro do sistema efetuando a tarefa de sincronizao, atravs da insero a nvel dos dados de pontos de sincronizao, que permitem manter a sesso num estado correspondendo a um antigo ponto de sincronizao. A figura 9.5(a) ilustra o procedimento de insero de pontos de sincronizao. Um exemplo disto pode ser ilustrado na transmisso de um documento via rede, no qual este pode ser decomposto em pginas s quais se pode associar os pontos de sincronizao. Neste caso, a resincronizao vai consistir na retransmisso do documento a partir de uma dada pgina que estava sendo transmitida quando o problema ocorreu. A sincronizao implementada da seguinte forma: o usurio emissor insere, nas suas mensagens, pontos de sincronizao, cada ponto contendo um nmero de srie. Quando um usurio envia uma primitiva (request) para inserir um ponto de sincronizao, o outro usurio vai receber uma primitiva de indicao correspondente, isto ocorrendo de igual maneira no caso de uma resincronizao. importante notar aqui que a camada de Sesso oferece unicamente as ferramentas para a soluo dos problemas de erros e incoerncia por sincronizao/resincronizao. Na realidade, quem ativa estas ferramentas quando da ocorrncia de um problema so as entidades das camadas superiores. O mecanismo de sincronizao define dois tipos distintos de pontos de sincronizao os pontos de sincronizao mximos e mnimos. Os pontos de sincronizao mximos so utilizados para delimitar trechos da informao denominados dilogos, que representam uma decomposio lgica da informao (captulos de um livro, por exemplo). J os pontos de sincronizao mnimos so utilizados para separar pores menores da informao. No caso de um livro, esta poro poderia ser as pginas dos captulos. A figura 9.5(b) ilustra os pontos de sincronizao mximos e mnimos. Uma diferena fundamental entre os pontos mximos e mnimos reside na capacidade de resincronizao. No caso de um ponto de sincronizao mximo, aps uma pane, possvel resincronizar, no mximo, de um ponto de sincronizao mximo para trs. A partir deste ponto, impossvel recuperar informao. Isto ocorre porque um ponto mximo visto como uma fronteira de proteo, cuja informao anterior garantida ter sido recebida, o que significa que ela pode ser apagada da extremidade emissora. Isto j no ocorre no caso dos pontos de sincronizao mnimos. Alm disso, pelo fato de que os pontos de sincronizao mximos so tidos como fronteiras de proteo da informao, estes devem ser explicitamente reconhecidos pelo receptor, o que no necessrio no caso dos pontos de sincronizao mnimos. Outra informao importante que a nomenclatura utilizada para os pontos de sincronizao so bastante diversas na literatura. O ponto de sincronizao mximo tambm chamado principal ou maior. O ponto de sincronizao mnimo tambm chamado secundrio ou menor.

Arquiteturas de Redes

91

SESSO 4 5 6

ponto de sincronizao (a) SESSO DILOGO 5 2 3 4 6

ponto de sincronizao mnimo ponto de sincronizao mximo (b)

Figura 9.5 - (a) Pontos de sincronizao; (b) Pontos de sincronizao mximos e mnimos.

9.6

GERENCIAMENTO DE ATIVIDADES

Outra funo importante da camada de Sesso o controle de atividades. Esta tarefa baseada no conceito de decomposio do fluxo de dados em atividades, independentes umas das outras. O conceito de atividade vai depender da aplicao considerada, o usurio sendo o responsvel desta definio. Um exemplo tpico de utilizao do conceito a transferncia de arquivos, onde cada arquivo deve ser separado, de alguma forma, dos demais. A forma de faze-lo atravs da definio, de cada arquivo, como sendo uma atividade, como mostra a figura 9.6. Para faze-lo, antes da emisso de cada arquivo, o usurio deve enviar uma primitiva S_ACTIVITY_START.request para marcar o incio de uma atividade; isto vai gerar, no lado do receptor, uma primitiva S_ACTIVITY_START.indication sinalizando o incio do envio de uma nova atividade (neste caso particular, o arquivo).
SESSO ATIVIDADE arquivo 2 incio atividade ATIVIDADE arquivo 1 fim atividade

Figura 9.6 - Conceito de atividade aplicado a uma transferncia de arquivo. O fim da transferncia de um arquivo marcado, ento, pelo envio, por parte do emissor, de uma primitiva S_ACTIVITY_END.request. O interesse da definio de atividade o fato que certas aplicaes podem ter a garantia de atomicidade, evitando erros devido a panes ocorridas entre aes de uma mesma atividade. Um exemplo de aplicao o de uma operao bancria realizada atravs de um terminal informatizado. A operao normal se desenrola da maneira seguinte: o proprietrio da conta emite um comando informando o seu nmero de conta (e a senha correspondente) o computador do banco verifica o nmero e a senha, e bloqueia o cdigo correspondente a fim de evitar o acesso concorrente; o proprietrio da conta envia um novo comando informando o nmero da conta para onde o dinheiro deve ser transferido o computador verifica o nmero da conta e bloqueia o cdigo correspondente pela mesma razo j apresentada;

Arquiteturas de Redes

92

o proprietrio, finalmente, emite um terceiro comando informando o montante a ser transferido o computador efetiva, ento, a transferncia para a conta destinatria.

Um caso tpico deste cenrio aquele em que uma pane (falta de energia, por exemplo) ocorre no terminal sendo utilizado pelo cliente proprietrio da conta imediatamente aps o primeiro comando. O computador vai bloquear o cdigo correspondente conta, mas os demais comandos no sero efetuados. A aplicao do conceito de atividade via camada de Sesso permite solucionar este problema, garantindo a atomicidade da operao. A operao completa pode ser vista como uma atividade. Assim, aps a recepo de uma primitiva S_ACTIVITY_START.indication, o computador do banco ficaria armazenando as mensagens (de comando) at a recepo de uma primitiva S_ACTIVITY_END.indication. S neste momento, os comandos seriam efetivados pelo computador. Uma outra propriedade interessante das atividades a capacidade de ser interrompida e retomada sem a perda das informaes. Isto pode ser feito atravs da primitiva S_ACTIVITY_INTERRUPT que permite iniciar uma nova atividade e retomar aquela ao final desta segunda atividade a partir do ponto onde ela tinha sido interrompida. Um exemplo tpico aquele da transferncia de um arquivo de tamanho relativamente grande, no qual, durante a transferncia, seja necessrio, com relativa urgncia, efetuar a consulta a uma base de dados (anurio telefnico, agenda, por exemplo). Este exemplo ilustrado na figura 9.7.
1 2 3 4 5 6

transf. arquivo 1 parte 1 2 3 incio atividade 1

consulta anurio 4 5 6

transf. arquivo 2 parte fim atividade 2 retomada atividade 1 fim atividade 1

interrupo atividade 1 incio atividade 2

Figura 9. 7 - Exemplo da interrupo de um atividade para a realizao de outra.

9.7

AS PRIMITIVAS DE SERVIO DE SESSO

O quadro a seguir apresenta a lista das primitivas de servio oferecidas pela camada de Sesso, indicando as classes de primitivas compondo cada servio (R - request, I - indication, Rs - response e C confirm). So 58 primitivas organizadas em 7 grupos: estabelecimento de conexo, liberao de conexo, transferncia de dados, gerenciamento de fichas, sincronizao, gerenciamento de atividades e relatrio de anomalias. Os dois primeiros grupos so relacionados, respectivamente, inicializao e trmino das sesses. As primitivas S_CONNECT conduzem em seus parmetros informaes tais como: SSAPs dos interlocutores, qualidade do servio, nmeros iniciais dos pontos de sincronizao, etc... J os servios de liberao de sesso podem ser de trs tipos: o primeiro, caracterizado pela primitivas S_RELEASE, especificando um servio confirmado de trmino negociado de sesso (sem perda de dados); os dois outros, para e liberao abrupta de sesso (com eventual perda de dados), caracterizados pelas primitivas S_U_ABORT e S_P_ABORT, indicando, respectivamente, terminao de iniciativa do usurio (U - user) e do fornecedor do servio (P - provider). PRIMITIVA S_CONNECT S_RELEASE S_U_ABORT S_P_ABORT Arquiteturas de Redes R I Rs C FUNO ORIENTADO CONEXO estabelecimento de conexo liberao negociada de conexo liberao abrupta (usurio) liberao abrupta (fornecedor) 93

S_DATA S_EXPEDITED_DATA S_TYPED_DATA S_CAPABILITY_DATA S_TOKEN_GIVE S_TOKEN_PLEASE S_CONTROL_GIVE S_SYNC_MAJOR S_SYNC_MINOR S_RESYNCHRONIZE S_ACTIVITY_START S_ACTIVITY_END S_ACTIVITY_DISCARD S_ACTIVITY_INTERRUPT S_ACTIVITY_RESUME S_U_EXCEPTION_REPORT S_P_EXCEPTION_REPORT S_UNITDATA

transferncia de dados normais transferncia de dados urgentes transferncia de dados tipados transferncia de dados de capacidade passagem de ficha de dados pedido de ficha passagem de todas as fichas insero de ponto de sincronizao mximo insero de ponto de sincronizao mnimo pedido de resincronizao incio de uma atividade fim de uma atividade abandono de uma atividade interrupo de uma atividade retomada de uma atividade relatrio de anomalia (usurio) relatrio de anomalia (fornecedor) SEM CONEXO transferncia de dados (sem conexo)

O terceiro grupo caracterizado pelas quatro classes de primitivas para a transferncia de dados (S_DATA, S_EXPEDITED_DATA, S_TYPED_DATA e S_CAPABILITY_DATA) cada uma para um dos quatro tipos de dados (normais, urgentes, tipados e de capacidade). Os dados normais e urgentes tendo sido discutidos em outras oportunidades, cabe aqui uma apresentao dos dois outros tipos de dados. Os dados tipados so similares aos dados normais do ponto de vista da transferncia, a diferena fundamental sendo a liberdade de transmisso sem a necessidade de posse da ficha de dados. Este tipo de dados so utilizados, principalmente, para a troca de mensagens de controle entre os dois usurios. Os dados de capacidade so utilizados para a transferncia de mensagens de controle da prpria cada de Sesso. O servio S_CAPABILITY_DATA, como se pode ver na tabela, um servio confirmado, fornecendo um reconhecimento dos dados de capacidade. Ainda, ao contrrio dos dados tipados, estes dados s podem ser transmitidos se a entidade possui a ficha de transferncia de dados. O quarto grupo de servios relacionado ao gerenciamento das fichas, que so em nmero de 4: as fichas de dados (para a transferncia em half-duplex), as fichas de liberao (para o incio de uma liberao negociada), as fichas de sincronizao mnima (para a insero de pontos de sincronizao mnimos) e as fichas de sincronizao mxima e atividade (para o gerenciamento das atividades e da sincronizao). S_TOKEN_GIVE permite efetuar a transferncia de uma ou mais fichas entidade remota, as fichas a transferir sendo indicadas nos parmetros das primitivas. O quinto grupo contm os servios relativos sincronizao, seja para insero de pontos de sincronizao (atravs dos servios S_SYNC_MAJOR e S_SYNC_MINOR, dedicados, respectivamente, introduo de pontos de sincronizao mximos e mnimos), seja para a resincronizao a partir de um ponto dado (S_RESYNCHRONIZE). O sexto grupo, atravs dos servios, S_ACTIVITY_START, S_ACTIVITY_END, S_ACTIVITY_DISCARD, S_ACTIVITY_INTERRUPT e S_ACTIVITY_RESUME dedicado ao gerenciamento das atividades (incio, fim, abandono, interrupo e retomada). O stimo grupo dedicado gerao de relatrios de anomalia, tanto da parte de um dos usurios (S_U_EXCEPTION_REPORT) quanto da camada de Sesso (S_P_EXCEPTION_REPORT).

Arquiteturas de Redes

94

Captulo 10 - A Camada de Apresentao

10.1 INTRODUO
Quando foi concebida, a camada de Apresentao era responsvel unicamente das funes de converso entre dados representados em ASCII e EBCDIC. Em seguida, novos servios foram introduzidos de forma que, atualmente, pode-se descrever a tarefa desta camada por tudo o que possa estar relacionado representao dos dados a serem transmitidos, particularmente as funes de: converso de dados, criptografia e compresso. As sees que seguem apresentaro os principais problemas e as solues encontradas na realizao destas funes.

10.2 AS PRIMITIVAS DE SERVIO DA CAMADA DE APRESENTAO


O quadro a seguir apresenta a lista de primitivas de servio de Apresentao. Como se pode notar, quase todas as primitivas so idnticas quelas apresentadas na parte anterior, relativa camada de Sesso. No caso dos servios orientados conexo, por exemplo, os usurios desta camada, ou seja, as entidades da camada de Aplicao podem abrir uma sesso utilizando a primitiva P_CONNECT.request, que se reflete, na camada de Apresentao, pelo envio de uma primitiva S_CONNECT.request, j descrita quando da apresentao da camada de Sesso. De fato, a maior parte das primitivas de servio de Apresentao atravessam desta forma a camada. A novidade mostrada na camada so as primitivas P_ALTER_CONTEXT, que compem o servio de alterao de contexto de Apresentao. Um contexto a unidade na qual so reagrupados as estruturas de dados utilizadas pelas entidades de Aplicao. Ao longo de uma sesso, possvel utilizar um contexto durante um determinado tempo e utilizar um outro num outro momento. O servio P_ALTER_CONTEXT permite fazer esta modificao. A camada de Apresentao viabiliza a negociao sobre que forma de representao ser adotada para os dados manipulados pela aplicao.

Arquiteturas de Redes

95

PRIMITIVA P_CONNECT P_RELEASE P_U_ABORT P_P_ABORT P_DATA P_EXPEDITED_DATA P_TYPED_DATA P_CAPABILITY_DATA P_TOKEN_GIVE P_TOKEN_PLEASE P_CONTROL_GIVE P_SYNC_MAJOR P_SYNC_MINOR P_RESYNCHRONIZE P_ACTIVITY_START P_ACTIVITY_END P_ACTIVITY_DISCARD P_ACTIVITY_INTERRUPT P_ACTIVITY_RESUME P_U_EXCEPTION_REPORT P_P_EXCEPTION_REPORT P_ALTER_CONTEXT P_UNITDATA

R I Rs C FUNO ORIENTADO CONEXO estabelecimento de conexo liberao negociada de conexo liberao abrupta (usurio) liberao abrupta (fornecedor) transferncia de dados normais transferncia de dados urgentes transferncia de dados tipados transferncia de dados de capacidade passagem de ficha de dados pedido de ficha passagem de todas as fichas insero de ponto de sincronizao mximo insero de ponto de sincronizao mnimo pedido de resincronizao incio de uma atividade fim de uma atividade abandono de uma atividade interrupo de uma atividade retomada de uma atividade relatrio de anomalia (usurio) relatrio de anomalia (fornecedor) alterao de contexto SEM CONEXO transferncia de dados (sem conexo)

A negociao baseada no fornecimento, por parte de um usurio, de todas as estruturas de dados que ele deseja utilizar, sendo que o usurio par pode ou no aceitar a proposta. Durante o dilogo, ainda possvel que novas propostas de estruturas de dados sejam negociadas pelos dois usurios.

10.3 A NOTAO ASN.1


ASN.1 (Abstract Syntax Notation One) uma sintaxe abstrata que foi definida na ISO para solucionar a problemtica da representao dos dados. Isto foi motivado pela necessidade da existncia de uma forma de representao de dados que fosse suficientemente flexvel e genrica para que pudesse ser utilizada pelas mais diversas aplicaes existentes. ASN.1 definida pela norma ISO 8824, que apresenta as estruturas de dados previstas na sintaxe; outra norma, ISO 8825, define a sintaxe de transferncia, ou seja, a forma como as estruturas de dados ASN.1 podem ser mapeadas em binrio. As estruturas de dados ASN.1 foram definidas para prever as complexas estruturas de dados que poderiam ser manipuladas a nvel de uma dada aplicao. Um registro ou uma estrutura de dados utilizada numa aplicao bancria pode conter os mais diversos campos, como por exemplo o nome, o endereo, os nmeros de conta, as taxas de cmbio do dia, a data e hora, etc... Em outras aplicaes, pode existir a necessidade de troca de estruturas de dados as mais diversas possveis, sendo que cada aplicao pode ter as suas prprias estruturas de dados. Ainda, algumas estruturas de dados podem ser tpicas de certas aplicaes, outras especficas a uma determinada empresa ou instituio. Nos estudos apresentados das camadas inferiores, particularmente na apresentao dos protocolos existentes, muitas estruturas de dados foram apresentadas na forma de figuras, com seus

Arquiteturas de Redes

96

campos sendo apresentados por retngulos. Estas estruturas podem ser formalizadas por registros, filas, vetores, etc... A camada de Aplicao, cujas entidades so os usurios da camada de Apresentao, caracterizada por muitas estruturas de dados, transmitidas na forma de APDUs (Application Protocol Data Units), compostas de diferentes campos, cada campo tendo um determinado tipo (booleano, inteiro, etc...). A notao ASN.1 permite formalizar os diversos tipos de dados podendo compor os campos de uma APDU, reagrupando-os inclusive num mdulo de biblioteca para cada aplicao tpica. Desta forma, possvel a uma aplicao enviar uma estrutura de dados camada de Apresentao, dando a ela o nome da estrutura ASN.1 correspondente. A camada de Apresentao poder, ento, conhecer o tipo e o tamanho de cada campo compondo a estrutura de dados e, desta forma, codific-los para a transmisso. A entidade de Apresentao receptora, por sua vez, conhecendo a estrutura ASN.1 dos dados recebidos, pode fazer todas as converses que sejam necessrias para adaptar mquina receptora. O interesse da existncia de ASN.1 que esta notao serve como uma linguagem comum para todas as mquinas. Isto evita que todas as mquinas tivessem de conhecer todas as possveis formas de representao de cada uma das mquinas com as quais elas teriam de se comunicar. Com ASN.1, basta apenas que cada mquina conhea como codificar seus dados nesta notao. A norma ISO 8824 define a notao de sintaxe abstrata ASN.1, onde os principais pontos sero apresentados a seguir. Um primeiro exemplo de como um dado pode ser descrito em ASN.1, vamos fazer um paralelo entre uma estrutura de dados Pascal e uma estrutura de dados ASN.1. Vamos considerar que pretendemos representar por uma estrutura em Pascal as principais caractersticas dos dinossauros. Isto poderia ser feito atravs de uma estrutura do tipo record, onde cada campo teria seu tipo especfico e representando uma caracterstica dos dinossauros. Um exemplo disto mostrado a seguir: type dinossauro = record nome : tamanho : carnivoro : ossos : descoberta : end; array [1..12] of char; integer; boolean; integer; integer;

No caso de ASN.1, a mesma estrutura de dados poderia ser representada da seguinte forma: dinossauro ::= SEQUENCE { nome tamanho carnivoro ossos descoberta } Como se pode notar, no existem muitas diferenas entre a forma de especificar um record Pascal e uma seqncia ASN.1. De fato, tipos complexos ASN.1 so gerados a partir de tipos de base, denominados tipos primitivos. Os tipos primitivos ASN.1 so apresentados na tabela a seguir. OCTET STRING, --12 chars INTEGER, BOOLEAN, INTEGER, INTEGER

TIPO
INTEGER BOOLEAN BIT STRING OCTET STRING ANY NULL OBJECT IDENTIFIER

SIGNIFICADO
inteiro de valor arbitrrio verdadeiro / falso lista de bits lista de bytes conjunto de todos os tipos nenhum tipo nome de um objeto

Arquiteturas de Redes

97

Como j foi dito, estes tipos podem ser combinados para a definio de estruturas de dados mais complexas, isto pela utilizao de tipos construtores de ASN.1, onde os mais utilizados so: CONSTRUTOR
SEQUENCE SEQUENCE OF SET SET OF CHOICE

SIGNIFICADO
seqncia de elementos de diversos tipos seqncia de elementos de um mesmo tipo conjunto (no ordenado) de elementos de diversos tipos conjunto (no ordenado) de elementos de um mesmo tipo escolha de um tipo entre uma lista de tipos

O construtor SEQUENCE permite construir uma estrutura de dados cujos campos sejam de tipos diferentes. Ele bastante similar a um record do Pascal, como j foi visto no exemplo anteriormente apresentado. SEQUENCE OF permite construir vetores de elementos de um mesmo tipo. O construtor SET similar ao SEQUENCE, com uma diferena apenas os elementos de um SET no ordenados como no caso do SEQUENCE. Da mesma forma, SET OF similar a SEQUENCE OF, a mesma diferena sendo vlida para este caso. O construtor CHOICE permite especificar um dado cujo formato pode assumir diversas opes. Um exemplo da utilizao deste construtor mostrado abaixo. PDU_Comando ::= CHOICE { Comando_local, Comando_remoto } Alm dos tipos primitivos e construtores, existem ainda os tipos pr-definidos de ASN.1, como por 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 maisculas, as minsculas, os nmeros e os caracteres seguintes: ( ) + - . , / : = ? GeneralizedTime, para definir datas e horas. Existe ainda, em ASN.1, a possibilidade de expressar estruturas de dados onde alguns dos campos possam ou no estar presentes em tempo de execuo so os campos opcionais. Isto representado atravs da clusula OPTIONAL. Ainda pode-se atribuir a um dado um valor inicial (por default) atravs da clusula DEFAULT. Finalmente, ASN.1 define ainda o conceito de etiqueta (tag), que permite identificar um valor associando-o a um dado campo. Para mais detalhes sobre ASN.1, aconselha-se uma consulta s normas ISO 8824/8825 e outros documentos disponveis sobre esta notao.

10.4 A COMPRESSO DE DADOS


De um ponto de vista genrico, os dados transmitidos atravs de um canal podem ser vistos como uma seqncia de smbolos S1, S2, ..., SN, pertencentes a um dado alfabeto (bits, dgitos decimais, letras, palavras de uma lngua, etc...). As tcnicas de compresso de dados existentes so baseadas sobre trs diferentes aspectos da representao de dados: a limitao do alfabeto, as freqncias relativas dos smbolos, o contexto de aparecimento dos smbolos. Estes trs pontos de vista sero analisados a seguir.

10.4.1 CODIFICAO DE UM ALFABETO FINITO DE SMBOLOS


Muitas aplicaes so baseadas na representao dos dados atravs de alfabetos finitos de smbolos. Um exemplo disto so as aplicaes relacionadas utilizao de terminais, onde os dados so representados pelo alfabeto ASCII.

Arquiteturas de Redes

98

Consideremos o exemplo do gerenciamento de uma biblioteca, onde um livro poderia ser identificado pelo seu ttulo, o ttulo de um livro podendo ser expresso em 20 caracteres (ou 140 bits). Isto significa que, com uma palavra de 140 bits, poderamos identificar at 2140 livros. No entanto, no existem biblioteca no mundo que possua esta quantidade de livros. Assim, se, ao invs de identificarmos os livros pelo seu ttulo escolhermos um sistema de numerao, poderemos diminuir em muito a quantidade de bits necessria para a identificao de um livro de qualquer biblioteca.

10.4.2 CODIFICAO DEPENDENTE DA FREQNCIA


Em determinadas aplicaes, muitos smbolos de um alfabeto so muito mais utilizados que outros. Nos textos em ingls, por exemplo, a letra E aparece 100 vezes mais freqentemente que a letra Q, a palavra THE aparecendo 10 vezes mais que BE. Baseados nestas informaes, os dados podem ser codificados de tal forma que smbolos ou seqncias de smbolos sabidamente mais freqentes que outros sejam representados de uma forma especial, simplificada no que diz respeito quantidade de informao necessria. As tcnicas consistem normalmente em codificar os smbolos mais freqentes por cdigos curtos e os menos freqentes por cdigos mais longos.

10.4.3 CODIFICAO BASEADA NO CONTEXTO


A tcnica apresentada acima baseada na ocorrncia de smbolos ou determinadas seqncias de maneira isolada, como se a probabilidade de ocorrncia dos smbolos ou seqncias fosse independente daquela que os precede. Na verdade, estas probabilidades podem ser altamente dependentes da informao precedente. Por exemplo, no caso de um texto em portugus, a probabilidade de ocorrer a letra T aps a letra Q muitas vezes inferior que a probabilidade de ocorrer uma letra U aps Q. A probabilidade de ocorrncia de uma letra P aps uma letra N numa palavra nula, a menos que um erro de ortografia tenha sido cometido. Uma tcnica mais sofisticada que aquela de levar em conta este aspecto calculando a probabilidade relativa de ocorrncia de cada smbolo aps os demais smbolos de um alfabeto. No caso das letras, como o exemplo citado acima, isto vai significar na construo de 26 tabelas, cada uma contendo as probabilidades das letras seguindo uma letra do alfabeto. Se uma forte correlao existir entre os smbolos, a taxa de compresso vai ser muito melhor que aquela obtida com a utilizao da tcnica apresentada anteriormente. Uma desvantagem desta tcnica a grande quantidade de tabelas requerida para a definio das probabilidades relativas. No caso de um alfabeto composto de k smbolos, sero necessrias k2 entradas em tabela. Um mtodo possvel de compresso a organizao dos smbolos em tipos, por exemplo, no caso de letras e nmeros, pode-se classific-los em maisculas, minsculas, caracteres numricos e caracteres especiais. Assim, quatro cdigos podem ser associados aos quatro tipos e 28 cdigos vo permitir codificar os caracteres. A idia de base desta tcnica que, a princpio, todo smbolo aps uma letra minscula tem fortes possibilidades de ser tambm uma letra minscula, todo smbolo seguindo um caractere numrico tambm um caractere numrico, etc... Quando se quer chavear de um tipo de smbolo a outro, basta inserir o cdigo associado ao novo tipo. Uma tcnica similar pode ser utilizada para codificar longas seqncias de dados binrios contendo grandes quantidades de zeros. Cada smbolo de k bits indica quantos zeros separam dois 1s consecutivos. Assim, para tratar grandes faixas de zeros, o smbolo 1 indica que uma faixa de 2k - 1 mais o valor do smbolo seguinte separa os dois uns. Por exemplo, para a seqncia 000100000100000010000000000000010000001000100000001100000101 que contm as faixas de zeros de comprimentos: 3,5,6,14,6,3,7,0,1,5 e 1, pode-se utilizar a codificao seguinte: 011 101 110 111 111 000 110 011 111 000 000 001 101 001

Arquiteturas de Redes

99

onde a faixa de 14 zeros codificada por 111 111 000 (ou seja, 7 + 7 + 0 = 14). Neste caso, a compresso permitiu reduzir em 34% o tamanho da informao. Uma aplicao desta tcnica pode ser feita, com algumas modificaes, na transmisso digital de imagens de televiso colorida. O sinal constitudos de uma seqncia de quadros, de 25 a 30 por segundo, cada um contendo um vetor retangular de pontos (pixels) da imagem. Uma imagem de televiso pode ser composta de 1000 linhas de 600 pixels, cada pixel sendo codificado em 16 bits, 15 bits para a cor (com 32 nveis para cada cor) e 1 bit para informao de controle (enquadramento vertical ou horizontal). Uma codificao direta desta informao necessitaria 600000 pixels por quadro, ou seja, uma taxa de transmisso de 240 a 288 Mbits/s. Com uma codificao binria, seria necessrio dispor de uma faixa de freqncia de quase 600 MHz. Uma vez que a transmisso analgica ocupa faixas de freqncia de apenas 6 MHz, a transmisso digital, sem compresso de imagem, poderia tornar-se invivel. A soluo est no fato que, em transmisso de imagens, existe uma forte probabilidade de que muitos quadros consecutivos sejam idnticos queles que os precederam. Desta forma, basta providenciar, a nvel dos televisores, uma memria que possa armazenar o ltimo quadro recebido e, assim, transmitir apenas as diferenas entre o quadro anterior e o atual.

10.5 A CRIPTOGRAFIA
A criptografia uma tcnica bastante antiga, introduzida principalmente pelas organizaes militares, particularmente na troca de mensagens em tempo de guerra. Nessas ocasies, um problema da criptografia era a dificuldade de decodificao das mensagens criptografadas, muitas vezes tendo de ser feitas nos campos de batalha em condies totalmente adversas. Outro problema era a dificuldade na mudana de uma tcnica a outra, particularmente devido dificuldade em informar o grande nmero de pessoas que deveria estar consciente da mudana. O processo de criptografia de uma mensagem ilustrado pela figura 10.1. As mensagens a serem criptografadas so codificadas graas a uma funo parametrizada por uma chave, gerando, na sada o texto criptografado ou o criptograma. Este texto transmitido por um mensageiro ou rdio, este podendo ser escutado por um espio.
espio passivo espio ativo

ESPIO

Processo de codificao criptograma

Processo de decodificao

chave de codificao (k)

chave de decodificao

Figura 10.1 - O processo de criptografia. A diferena entre o espio e o destinatrio que, como o primeiro no tem a chave de decodificao, ele dificilmente vai poder decodificar a mensagem. Os espies podem efetuar dois tipos de ao sobre os criptogramas, copi-los unicamente para conhecer o seu contedo espio passivo ou modific-los de modo a confundir o destinatrio destes espio ativo. Um princpio das tcnicas de criptografia a suposio de que o espio conhece sempre as tcnicas gerais da criptografia, ou seja, que pelo menos o esquema apresentado na figura 10.1 conhecido. Por outro lado, criar a cada vez um mtodo diferente de criptagem a cada vez que um outro considerado conhecido representa um trabalho considervel. A forma mais eficiente de tentar esconder o jogo atravs da introduo das chaves. As chaves consistem de seqncias de caracteres relativamente curtas que permitem escolher um mtodo de

Arquiteturas de Redes

100

criptagem em funo do seu valor. A vantagem disto que, enquanto uma tcnica de criptagem pode ser modificada numa escala de anos, uma chave pode ser modificada quando se julgar necessrio. Os mtodos de criptografia podem ser organizados em duas principais classes: os mtodos por substituio e os mtodos por transposio cujos principais pontos sero vistos a seguir.

10.5.1 A CRIPTAGEM POR SUBSTITUIO


Nestes mtodos, cada letra ou grupo de letras literalmente substitudo por outra letra ou outro grupo de letras. A tcnica mais antiga de criptagem atribuda a Jlio Csar, que definiu uma tcnica onde cada letra do alfabeto seria substituda por uma letra que estivesse 3 passos sua frente ou seja, a seria 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, irreconhecvel. Esta tcnica poderia ainda ser generalizada, pelo deslocamento do alfabeto de k passos ao invs de 3. A esta tcnica generalizada, d-se o nome de permutao circular. Uma outra tcnica, a substituio monoalfabtica, uma extenso permutao circular, mas, desta vez, as letras podem ser substitudas por qualquer outra. Por exemplo, se o alfabeto abcdefghijklmnopqrstuvwxyz substitudo 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 tcnica, existem 26! (4.1026) chaves possveis. Mesmo que o espio conhea a tcnica, como ele no conhece a chave, ele teria dificuldade para descobrir o significado do criptograma. No entanto, esta dificuldade pode ser diminuda se forem consideradas as propriedades naturais da lngua utilizada. Na lngua inglesa, por exemplo, existem letras que so mais freqentemente utilizadas, como por exemplo, as letras e, t, o, ..., os digramas mais freqentes so th, in, er, ... e os trigramas mais utilizados so the, ing, and e ion. E o trigrama mais utilizado da lngua portuguesa? Nos ltimos tempos, deve ter sido CPI. Desta forma, a decodificao de um criptograma obtido com a substituio monoalfabtica, feita associando-se a letra mais freqente letra mais freqente da lngua considerada, os digramas mais freqentes queles mais freqentes da lngua considerada, etc...

10.5.2 A CRIPTAGEM POR TRANSPOSIO


Na criptagem por substituio, apesar da substituio das letras, os cdigos mantm a ordem correta das letras nas palavras e frases. Na codificao por transposio, as letras no so substitudas, mas de fato, transpostas de tal forma a esconder o verdadeiro significado do texto. Uma tcnica de criptagem mostrada na figura 10.2, denominada transposio por colunas. Nesta tcnica as linhas sero trocadas pelas colunas numeradas em funo de uma chave que , normalmente, uma palavra no contendo nenhuma letra repetida. No exemplo, a chave considerada a palavra 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 MILHO PARA A CONTA DE COLLOR vai ficar ... SUAADONRHAALRRIANOTEMPOCFMOCERAILRTL.

Arquiteturas de Redes

101

P 4 T E M P O C

E 3 R R I A N O

S 6 A I L R T L

C 2 N R H A A L

A 1 S U A A D O

R 5 F M O C E R
Texto codificado SUAADONRHAALRRIANOTEMPOC FMOCERAILRTL Texto original: TRANSFERIR UM MILHAO PARA A CONTA DE COLLOR

Figura 10.2 - Exemplo da transposio por colunas.

Arquiteturas de Redes

102

Captulo 11 - A Camada de Aplicao

11.1 INTRODUO
A camada de Aplicao tem por funo o gerenciamento dos programas de usurio (programas de aplicao) que executam em mquinas conectadas e utilizam o sistema de comunicao para a troca de informaes. Os programas de aplicao executando via um sistema de comunicao baseada no modelo OSI vo utilizar-se dos servios de comunicao oferecidos pela camada de Apresentao, descrita na parte anterior do documento. Esta camada a que mantm o contato direto com os usurios da arquitetura de comunicao, abrindo caminho para todos os servios oferecidos pelas camadas inferiores. Dentro desta parte, sero estudados os principais aspectos relacionados camada de Aplicao, particularmente, a sua estrutura e os conceitos associados e alguns exemplos de servios oferecidos a nvel de Aplicao.

11.2 ESTRUTURA DA CAMADA DE APLICAO


A grande diversidade das aplicaes podendo ser construdas sobre uma arquitetura de comunicao e a questo da heterogeneidade dos sistemas, fator importante da concepo do modelo OSI, conduziu, no mbito da ISO, definio de uma arquitetura unificada para a camada de Aplicao, ALS (Application Layer Structure), definida pela norma ISO 9545. Nesta definio, a norma no prope servio de Aplicao, mas introduz um conjunto de conceitos relacionados estrutura da camada, que pode servir como base para a definio de outras normas ou propostas de servios de Aplicao.

11.2.1 CARACTERSTICAS ESPECFICAS DA CAMADA DE APLICAO


Dado que a camada de Aplicao a mais alta do modelo OSI, ela no fornece servio a nenhuma outra camada, a noo de conexo ficando, ento, inadequada a nvel de Aplicao. Por outro lado, a comunicao entre entidades de Aplicao pares deve ser suportada por alguma forma de relao que permita a troca de informaes de controle dos protocolos de Aplicao, esta forma de relao sendo definida como uma Associao de Aplicao. Os elementos compondo a arquitetura da camada de Aplicao vo se utilizar das facilidades oferecidas pela camada de Apresentao para a manipulao e a representao de dados, e os mecanismos de controle de dilogo oferecidos pela camada de Sesso. As interaes entre os programas aplicativos permitem modelizar a operao cooperativa entre os sistemas abertos reais, necessitando porm o compartilhamento de uma quantidade de informaes que viabilize estas interaes, a fim de que o tratamento das atividades seja feito de maneira coerente. Trs tipos de informao so, particularmente, relacionados natureza das interaes entre os programas aplicativos: o conjunto de objetos sujeito s atividades de tratamento de informao; os procedimentos de controle e de cooperao do tratamento distribudo para a comunicao entre programas;

Arquiteturas de Redes

103

os estados das interaes passadas entre programas de aplicao.

11.2.2 CONCEITOS RELACIONADOS CAMADA DE APLICAO


As sees que seguem permitem introduzir alguns elementos relacionados arquitetura da camada de Aplicao, particularmente, os Processos de Aplicao, as Entidades de Aplicao, as Associaes de Aplicao, entre outras. Um Processo de Aplicao ou AP (Application Process) representa, de forma abstrata, os elementos de um sistema aberto real que realiza o tratamento de informao no contexto de uma aplicao particular. Dependendo da natureza da aplicao considerada, um Processo de Aplicao pode ter necessidade de trocar informaes com outros Processos de Aplicao, as interaes necessrias a esta troca podendo ser realizadas a partir de um nmero distinto de partes invocveis simultaneamente ou seqencialmente. A atividade de um Processo de Aplicao caracterizada, formalmente por uma instncia ou Invocao de Processo de Aplicao ou API (Application Process Invocation). Uma Entidade de Aplicao ou AE (Application Entity) representa as capacidades de comunicao (dentro do contexto OSI) de um Processo de Aplicao. Uma ou vrias Entidades de Aplicao permitem definir o que o ambiente OSI leva em conta para a comunicao de um processo de comunicao. Uma Entidade de Aplicao representa um nico Processo de Aplicao. Por outro lado, um mesmo Processo de Aplicao pode reagrupar diversas Entidades de Aplicao. Alm disso, diferentes Processos de Aplicao podem ser representados por Entidades de Aplicao de mesmo tipo, um Processo de Aplicao podendo reagrupar diversas Entidades de Aplicao de tipos diferentes. Uma Invocao de Entidade de Aplicao ou AEI (Application Entity Invocation) uma utilizao das capacidades de uma AE para as atividades de comunicao especficas de um Processo de Aplicao. Uma Associao de Aplicao ou AA (Application Association) uma relao cooperativa estabelecida entre duas AEIs para a troca de informaes. Uma ou mais AAs so criadas quando duas AEIs devem trocar informaes no contexto de uma dada aplicao. Isto significa que uma AEI pode manter, simultnea ou seqencialmente, mais de uma AA com uma ou diversas AEIs. Um Elemento de Servio de Aplicao ou ASE (Application Service Element) compreende um par servio-protocolo normalizado que pode constituir uma Entidade de Aplicao. Ele corresponde a um subconjunto das funes ou facilidades de comunicao oferecidas para o suporte de cooperao entre Entidades de Aplicao. Estas funes e facilidades so definidas pela especificao de um conjunto de Unidades de Dados de Protocolo de Aplicao ou APDUs (Application Protocol Data Units) assim como os procedimentos associados sua utilizao, definindo o Protocolo de Aplicao entre dois ASEs. Finalmente, um conceito importante o de um Contexto de Aplicao, que corresponde ao conjunto de regras e funes a serem implementadas ao longo da durao de uma Associao de Aplicao para a gesto das trocas de informaes entre AEIs. As possveis relaes entre os conceitos aqui descritos so ilustradas pela figura 11.1. Outros conceitos importantes no que diz respeito estrutura da camada de Aplicao so Objetos de Associao Simples e a Funo de Controle de Associao Simples. Os Objetos de Associao Simples ou SAO (Single Association Object) so os elementos que representam as funes e as informaes de estado relacionadas s operaes de uma associao de aplicao simples, o conceito de simples estando relacionado ao sentido de nico. Os componentes bsicos de um SAO so o Elemento de Servio de Controle de Associao ou ACSE (Association Control Service Element) e a Funo de Controle de Associao Simples ou SACF (Single Association Control Function) que sero definidas mais adiante. Um SAO representa igualmente a operao de um conjunto de ASEs existentes numa AEI para uma associao de Aplicao particular. A Funo de Controle de Associao Simples o elemento que representa a coordenao das interaes e a utilizao dos elementos de um SAO.

Arquiteturas de Redes

104

AP

API

AP

API

AE AE

AEI AEI
ASEs
CONTEXTO DE APLICAO

ASEs

AE

AEI

ASSOCIAES CONSECUTIVAS OU SIMULTNEAS

Figura 11.1 - Conceitos da arquitetura da camada de Aplicao.

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.
Camada de Aplicao AEI SAO S A C F

ASE ACSE

Camada de Apresentao

A S S O C I A O

D E A P L I C A O

Figura 11.2 - Uma AEI simples.

Arquiteturas de Redes

105

Camada de Aplicao AEI MACF SAO 1 S ASE 1 A ASE 2 C ACSE F SAO 2 S ASE 3 A ASE 4 C ACSE F SAO 3 S ASE 3 A ASE 5 C ACSE F

Camada de Apresentao

Figura 11.3 - AEI com mltiplas associaes. Em 11.2, apresentado um caso simples de uma AEI envolvida numa associao de Aplicao nica. Ela composta ento de um SAO, constitudo por dois ASEs e uma funo de controle. Em 11.3, apresentada uma AEI envolvida em trs associaes. No caso de mltiplas associaes, algumas atividades de uma mesma aplicao podem ser distribudas sobre vrias associaes. Neste caso, estas atividades devem ser coordenadas e ordenadas atravs de um conjunto de funes da prpria aplicao. Este conjunto de funes reagrupado, no modelo da camada de Aplicao, por um elemento denominado Funo de Controle de Associaes Mltiplas ou MACF (Multiple Association Control Function). Na figura 11.3, uma das associaes utilizada de maneira totalmente independente das demais, enquanto as duas outras so utilizadas num mesmo conjunto de atividades que requerem a existncia de uma MACF.

11.3 O ELEMENTO DE SERVIO ACSE


A gesto de conexes um dos problemas a serem resolvidos pela camada de Aplicao, de forma a evitar que cada aplicao desenvolvida tenha de resolver esta questo sua maneira. Assim, a nvel desta camada, foi definido um Elemento de Servio de Controle de Associao, o ACSE (Association Control Service Element) que assume esta tarefa. Como a totalidade das aplicaes conhecidas requer normalmente os servios de gesto de conexo, este elemento de servios deve estar sempre presente a nvel dos contextos de Aplicao. Nas sees que seguem, apresentaremos os servios supridos por este elemento de servio, assim como as interfaces deste com os servios das camadas inferiores.

11.3.1 OS SERVIOS OFERECIDOS PELO ACSE


Os servios oferecidos pelo ACSE so definidos pelas primitivas apresentadas no quadro a seguir.

Arquiteturas de Redes

106

PRIMITIVA
A-ASSOCIATE A-RELEASE A-ABORT A-P-ABORT

SIGNIFICADO
Estabelecimento de conexo Liberao negociada de conexo Liberao abrupta de conexo (usurio) Liberao abrupta de conexo (fornecedor)

O A_ASSOCIATE um servio confirmado que permite estabelecer uma associao a partir de um elemento de servio de aplicao. Dentre os parmetros da primitiva de servio, enviada a proposio de contexto de Aplicao. Em caso de aceitao por parte do receptor da indicao, a associao ser ento estabelecida. O servio A_RELEASE um servio confirmado que permite liberar, de maneira ordenada, uma associao estabelecida entre duas AEIs, caracterizando uma liberao negociada, como definido na parte relativa camada de Sesso. A_ABORT um servio no confirmado que permite abortar, ou liberar de forma abrupta uma associao existente. Como j descrito anteriormente, neste caso podem ocorrer perdas de informaes sendo trocadas atravs da associao. A ativao deste servio de iniciativa do usurio do ACSE. A_ABORT e pode ser ativado pelo iniciador do servio A_ASSOCIATE, no caso em que no exista concordncia a respeito do contexto de aplicao a utilizar. A_P_ABORT o servio que efetua o mesmo que A_ABORT, sendo que, desta vez, a iniciativa do fornecedor do servio.

11.3.2 AS INTERFACES DO ACSE COM OS SERVIOS DE APRESENTAO


O ACSE tem acesso a servios de duas das camadas inferiores, particularmente, a camada imediatamente inferior, de Apresentao, e a camada de Sesso. No que diz respeito aos servios de Apresentao, uma primeira correspondncia que se pode estabelecer o de uma associao com uma conexo de Apresentao. Deste ponto de vista, existem uma correspondncia de um para um, ou seja, uma associao de Aplicao corresponde a uma conexo de Apresentao. O ACSE necessita utilizar unicamente os servios de base da camada de Apresentao, ou seja, os servios P_CONNECT, P_RELEASE e P_U_ABORT. O iniciador do servio A_ASSOCIATE deve determinar o contexto de Apresentao pretendido.

11.4 OUTROS ELEMENTOS DE SERVIO


A tabela a seguir apresenta os principais padres utilizados no nvel de aplicao. O ACSE foi apresentado no item anterior. Alguns outros sero descritos brevemente a seguir. NOME Association Control Service Element Realiable Transfer Service Element Remote Operations Service Element Commitment, Concurrency and Recovery Message Handling Systems Electronic Diretory Services File Transfer, Access and Management Virtual Terminal Job Transfer Manipulation Distributed Transaction Processing Macnufacturing Message Service Common Management Information Protocol Remote Database Access Electronic Data Interchange ISO ISO8649 / ISO8650 ISO9066 Partes 1 e 2 ISO9072 Partes 1 e 2 ISO9804 / ISO9805 ISO10021 Partes 1 - 7 ISO9594 Partes 1 - 8 ISO8571 Partes 1 - 4 ISO9040 / ISO9041 ISO8831 / ISO8832 ISO10026 Partes 1 - 3 ISO9506 Partes 1 e 2 ISO9595 / ISO9596 ISO8613 Partes 1-8 ISO9735 CCITT X.217 / X.227 X.218 / X.228 X.219 / X.229 X.400 - X.420 X.500 - X.521

ACSE RTSE ROSE CCR MHS EDS FTAM VT JTM DTP MMS CMIP RDA EDI

X. 710 / X. 711 T.411 - T.418

Arquiteturas de Redes

107

11.4.1 TRANSFERNCIA CONFIVEL (RTSE)


Independente de sua complexidade, a quantidade de dados do usurio trocados a nvel de aplicao pode ser muito grande e pode haver falhas na conexo quando estes dados esto sendo trocados. Uma vez restabelecida a conexo, a troca de dados deve continuar, sem perdas. O servio de sesso j proporciona algumas facilidades atravs de pontos de sincronismo e atividades. As Aplicaes requerem duas outras facilidades: o servio deve tratar com tipos de dados ASN.1 (APDUs) ao invs de um string de octetos (SSDUs); a complexidade do servio de sesso subjacente deve ser abstrada em um servio nico e facilmente utilizvel. O RTSE proporciona este servio para outras ASEs na entidade de aplicao. Ele usa servios do ACSE, da camada de apresentao e da camada de sesso e oferece aos seus usurios um nvel adicional de abstrao dos servios oferecidos pelo ACSE e pelas camadas de apresentao e sesso, no sendo necessrio que eles saibam utiliz-los. Quando uma entidade de aplicao contm um RTSE somente o prprio RTSE pode acessar o ACSE e a camada de apresentao. Em situaes de erro o RTSE interrompe a atividade em curso e a retoma a partir do ltimo ponto de sincronizao confirmado. Se o erro for mais grave, a atividade pode ser descartada, e uma nova atividade deve ser estabelecida e a transferncia pode ser reiniciada. Cada primitiva RTSE mapeada em uma primitiva ACSE.

11.4.2 OPERAES REMOTAS (ROSE)


O servio ROSE oferece suporte a aplicaes interativas. Ele opera de maneira equivalente a uma chamada de procedimento remoto (RPC). bastante til no suporte a aplicaes distribudas quando uma aplicao que solicita a execuo de uma operao a outra aplicao, que pode devolver ou no o resultado correspondente. A entidade que solicita uma operao a invocadora e a que executa a executora. As entidades de aplicao somente podem utilizar os servios do ROSE se j houver uma associao de aplicao estabelecida. Neste caso podem existir 3 classes de associao: Classe 1: somente a entidade iniciadora da associao pode invocar operaes; Classe 2: somente a entidade respondedora da associao pode invocar operaes; Classe 3: ambas as entidades, iniciadora e respondedora da associao, podem invocar operaes. So definidas tambm classes de operao que so caracterizadas pelo tipo de interao (sncrona ou assncrona) e pelo comportamento da entidade executora. O ROSE no pode ser utilizado isoladamente, geralmente utilizado em aplicaes envolvendo MHS, DS e gerenciamento OSI.

11.4.3 CONFIABILIDADE, CONCORRNCIA E RECUPERAO (CCR)


Deve prover mecanismos que permitam que duas aplicaes residentes em sistemas abertos distintos possam coordenar seu processamento, garantindo que a execuo das unidades de trabalho s ocorra quando tais aplicaes estejam prontas e aptas para faz-lo. Este servio prov mecanismos de recuperao de informaes para um estado pr-estabelecido quando acontece alguma falha de processamento ou comunicao durante a execuo das unidades de trabalho. Alguns conceitos envolvidos so: Ao Atmica: unidade de processamento indivisvel, podendo uma aplicao realizar uma seqncia de aes atmicas; Bound Data: dados manipulados dentro do escopo de cada ao atmica. Os papis que os usurios podem assumir quando o CCR utilizado so mestre e subordinado. Os servios do CCR prestados atravs de dois procedimentos bsicos so: Two-phase-commitment; Recuperao de erros. Arquiteturas de Redes 108

Two-phase-commitment: ocorre em duas fases: a primeira fase inicia quando o usurio mestre sinaliza o incio de uma ao atmica, dentro deste contexto os usurios envolvidos trocam dados entre si. Finalizada a troca de dados o usurio mestre pergunta ao subordinado se ele est pronto para atualizar os respectivos dados. A resposta pode ser positiva ou negativa, e encerra-se a primeira fase. Na segunda fase, se a resposta for positiva o usurio mestre atualiza os prprios dados e solicita que o subordinado faa o mesmo. Feito isso o subordinado avisa o mestre encerrando a segunda fase. No caso de resposta negativa acontece um rollback, isto , os dois usurios retornam seus dados aos valores anteriores. A recuperao de erros ocorre desde que mestre e subordinado registrem, de maneira segura, determinados eventos. O usurio mestre atualiza os registros commit log record no fim da primeira fase de commitment, antes de comunicar-se com o subordinado e apaga-os depois de receber do subordinado a confirmao desta atualizao. O usurio subordinado: atualiza os registros ready log record antes de confirmar o fim da primeira fase de commitment e apaga-os quando termina de atualizar seus dados no final da segunda fase de commitment. Quando ocorre alguma falha de comunicao ou de processamento os dois usurios restabelecem a comunicao e iniciam o processo de recuperao. O CCR tambm responsvel pelo controle de concorrncia, possuindo mecanismos que permitem coordenar a atualizao de dados por mltiplas aes atmicas concorrentes. O CCR trabalha com um par de aplicaes, em ambientes distribudos, onde esto envolvidas vrios processos de aplicao. Estes devem ser organizados numa estrutura de rvore de aes atmicas por pares de processos, com aes coordenadas pelo TP.

11.4.4 PROCESSAMENTO DE TRANSAES (TP)


Tem como objetivo prover a infra-estrutura necessria ao suporte do processamento de transaes distribudas envolvendo vrios sistemas abertos. Uma transao distribuda pode ser considerada como um conjunto lgico de operaes que constitui uma unidade de trabalho caracterizada por propriedades denominadas ACID Atomicidade, Consistncia, Isolao, Durabilidade. Atomicidade: uma unidade de trabalho sempre executada de maneira completa ou no executada; Consistncia: uma unidade de trabalho deve ser executada de maneira precisa, correta e vlida em relao semntica da aplicao; Isolao: os resultados intermedirios de uma unidade de trabalho no devem tornar-se disponveis a no ser para as operaes que fazem parte de uma unidade de trabalho; Durabilidade: os efeitos da realizao de uma unidade de trabalho no podem ser alterados por nenhuma falha que venha a ocorrer posteriormente. O TP deve prover facilidades e mecanismos que permitam o commitment e rollback de uma transao e dos dados correlacionados. Ele utiliza os servios do CCR e do ACSE e serve de mediador desses elementos de servio de aplicao operando em um ambiente que pode englobar a existncia de vrias associaes de aplicao simultnea.

11.5 ACESSO E TRANSFERNCIA DE ARQUIVOS (FTAM)


Em 1987, foi publicada pela ISO a verso definitiva da norma de servios de acesso e transferncia de arquivos, FTAM (File Transfer, Access and Management), com o nmero ISO 8571. A norma cobre um dos assuntos mais importantes da interconexo de sistemas, uma vez que ela normaliza o protocolo que permite oferecer os servios de acesso e transferncia de arquivos. FTAM permite a transferncia do todo ou de parte de um arquivo, ao destinatrio ou a uma estao (sistema) distante, oferecendo ainda servios de controle de erros, retomada imediata ou no, controle de acesso a arquivos (acesso seletivo, proteo, ...) e modificao dos atributos de um arquivo. O tratamento de arquivos via FTAM baseado no conceito de arquivo virtual, que permite representar, para os servios FTAM o arquivo real. A relao entre estes elementos apresentada na figura 11.4. A noo de arquivo virtual permite tornar transparente ao usurio as diferentes formas de armazenamento e os mtodos de acesso dos sistemas de arquivo real. FTAM permite estabelecer as relaes entre o sistema de arquivos real e os sistemas de arquivos virtuais. Arquiteturas de Redes 109

Sistema Real A
ARQUIVO REAL A

Sistema Real B
ARQUIVO REAL B

Ambiente OSI
ARQUIVO VIRTUAL A

protocolo FTAM
ARQUIVO VIRTUAL C

ARQUIVO VIRTUAL B

ARQUIVO REAL C

Sistema Real C

Figura 11.4 - Relao entre arquivos virtuais e arquivos reais.

11.5.1 O SERVIDOR VIRTUAL DE ARQUIVOS


Um servidor virtual de arquivos reagrupa todas as informaes relativas aos arquivos, estas, permitindo conhecer o estado de um arquivo num dado instante. O modelo definido para o servidor de arquivos virtuais contm atributos os mais genricos possveis quanto representao dos aspectos de um servidor de arquivos reais. Este modelado como uma entidade enderevel com a qual um usurio remoto pode se comunicar, utilizando os servios FTAM. A princpio, um nmero arbitrrio de usurios pode ser associado a um mesmo servidor virtual de arquivos num dado instante. Ainda, um servidor virtual de arquivos pode gerenciar um nmero arbitrrio de arquivos, onde cada arquivo caracterizado por atributos tais como: o nome, aes possveis sobre o arquivo (leitura, insero, substituio, ...), controle de acesso (somente leitura, somente escrita, ...), tamanho do arquivo, identidade do criador, data e hora de criao, identidade do ltimo modificador, data e hora de modificao, etc... A seleo de um arquivo caracterizada por duas etapas: o estabelecimento de uma associao entre o usurio querendo selecion-lo e o servidor virtual de arquivos; o fornecimento da identidade do arquivo a selecionar. A estrutura de acesso aos arquivos num servidor virtual de arquivos assume a forma arborescente, coerente com as estruturas mais genricas dos sistemas reais de arquivos. Esta estrutura ilustrada pela figura 11.5, onde se pode ver um nico n raiz (R), ns internos (A, E) e folhas (B, C, D, F) conectadas por arcos dirigidos. Um n da rvore pode pertencer a um nico nvel, podendo, por sua vez, servir de acesso sua sub-rvore, conhecida como uma Unidade de Dados de Acesso a Arquivo ou FADU (File Access Data Unit). O contedo de um arquivo pertencente ao servidor de arquivos mantido numa ou mais Unidade de Dados ou DU (Data Unit). Uma DU um objeto de dados tipado (escalar, vetor, conjunto, ...), contendo elementos de dados atmicos denominados Elementos de Dados, aos quais normalmente associada uma sintaxe abstrata (caractere, byte, inteiro, ...). Os servios associados a um servidor virtual de arquivos so acessados via primitivas de servio, que sero apresentadas na seo a seguir.

Arquiteturas de Redes

110

FADU

R
FADU DU NVEL 0

FADU DU

E
DU NVEL 1

DU

DU

D
DU

DU

NVEL 2

Figura 11.5 - Estrutura de acesso do servidor virtual de arquivos.

11.5.2 AS PRIMITIVAS DE SERVIO DE FTAM


Os servios oferecidos por FTAM para o acesso e a transferncia de arquivos so organizados em unidades denominadas regimes. Os regimes correspondem a etapas da manipulao de arquivos, o quadro a seguir apresenta o conjunto de primitivas associado a cada um deles. O FTAM, como foi apresentado, constitui-se de um importante elemento de servio de aplicao (ASE) para as aplicaes que exijam manipulao ou transferncia de arquivos, sejam aplicaes de automao de escritrio ou de automao da manufatura. No que diz respeito a esta segunda classe de aplicaes, podemos destacar como um importante elemento de servio de aplicao, o ASE MMS (Manufacturing Message Services). CONEXO DE APLICAO F_INITIALIZE F_TERMINATE F_ABORT SELEO DE ARQUIVO F_SELECT F_CREATE F_DESELECT F_DELETE F_READ_ATTRIB F_CHANGE_ATTRIB ACESSO A ARQUIVO F_OPEN F_CLOSE F_LOCATE F_ERASE TRANSF. DE DADOS F_READ F_WRITE F_DATA F_DATA_END F_TRANSFER_END autorizao e informaes para operao inicializao da associao terminao negociada de associao terminao abrupta da associao identificao de arquivos a manipular seleo de um arquivo existente criao de um arquivo liberao de um arquivo eliminao de um arquivo leitura dos atributos do arquivo modificao de atributos de um arquivo abertura, fechamento, etc... abertura de um arquivo fechamento de arquivo localizao de um arquivo eliminao de contedo de um arquivo etapa de transferncia de dados entre arquivos leitura do contedo de um arquivo escrita sobre um arquivo transferncia de dados transferncia de fim de dados fim de transferncia de dados

Arquiteturas de Redes

111

Captulo 12 - Bibliografia

SOARES, L. F. G.; LEMOS, G.; COLCHER, S. Redes de Computadores: Das LANs, MANs e WANs s Redes ATM, 2 Edio. Ed. Campus, Rio de Janeiro, 1997.

TANENBAUM, A. S. Computer Networks, 3a edio, 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, So Paulo, 1994.

GIOZZA, W. F. et alli. Redes Locais de Computadores - Tecnologia e Aplicaes, McGraw-Hill, So Paulo, 1986.

RUDNIANSKI, M. Architecture de Rseaux: le modle ISO - Rle et Fonctionnalits, Editests, Paris, 1986.

Arquiteturas de Redes

112

Arquiteturas de Redes

113

Anda mungkin juga menyukai