Apresentao
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
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
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
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
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).
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.
Sala Edifcio Campus MAN Cidade Pas Continente Planeta WAN LAN
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.
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
Arquiteturas de Redes
14
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.
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
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
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
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
2.3
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
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
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.
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.
1 4 1 2 3 3 2 4
5 8 5 6 7 7 6 8
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
Arquiteturas de Redes
24
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
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.
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.
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.
Arquiteturas de Redes
27
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 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.
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.
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.
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
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 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
DADOS
DADOS
DADOS
DADOS
DADOS
DADOS
Enlace Fsica
BITS
Arquiteturas de Redes
36
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 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.
Arquiteturas de Redes
39
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.
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
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
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.
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
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
VCs
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
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
Subcamada CS
cabealho CS
Dado
enchimento
trailer CS
Subcamada SAR
trailer SAR
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).
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.5
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
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...
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.
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
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
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
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
Arquiteturas de Redes
56
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.)
(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.
0
4
0
3
1
2
0
1
0
3
H
2
H
1
Clculo dos Hamming bits: (1210 1110 510) ou: (01012 10112 11002) ou H = 00102
Arquiteturas de Redes
59
0
4
0
3
1
2
0
1
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.
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.
(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
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
Intervalo de timeout
10
A1
A2
A5
A7
Quadros descartados
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
recebe ACK de quatro quadros
envia um quadro
3 3 3
recebe um quadro
4
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
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 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
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
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
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
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
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
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.
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 -
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
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.
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.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.
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
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
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 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 request
T_DISCONNECT indication
T_DISCONNECT indication
(a)
(b)
(c)
T_DISCONNECT request
T_DISCONNECT indication
(d)
(e)
(f)
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
Estabelecida
Ociosa
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
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
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
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
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
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 request
T_DISCONNECT indication
T_DISCONNECT indication
(d)
(e)
(f)
T_EXPEDITED_DATA request
T_EXPEDITED_DATA indication
(g)
(h)
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
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
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
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
consulta anurio 4 5 6
9.7
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
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.
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.
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.
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.
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 decodificao
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.
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
Arquiteturas de Redes
102
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.
Arquiteturas de Redes
103
Arquiteturas de Redes
104
AP
API
AP
API
AE AE
AEI AEI
ASEs
CONTEXTO DE APLICAO
ASEs
AE
AEI
ASE ACSE
Camada de Apresentao
A S S O C I A O
D E A P L I C A O
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.
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.
ACSE RTSE ROSE CCR MHS EDS FTAM VT JTM DTP MMS CMIP RDA EDI
Arquiteturas de Redes
107
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.
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
Arquiteturas de Redes
110
FADU
R
FADU DU NVEL 0
FADU DU
E
DU NVEL 1
DU
DU
D
DU
DU
NVEL 2
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