Buscar

apostila de arquitetura de redes de computadores

Prévia do material em texto

CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA
COMPUTAÇÃO
PROFa ELIZABETH SPECIALSKI
INE - UFSC
beth@inf.ufsc.br
FLORIANÓPOLIS, MARÇO DE 2000
Arquiteturas de Redes 2
Apresentação
Profa. Elizabeth Sueli Specialski, MSC. UFRGS (Brasil, 1981)
Elizabeth Sueli Specialski graduou-se em Matemática pela Pontifícia
Universidade Católica do Rio Grande do Sul em 1978, obteve o título de
Mestre em Ciências da Computação pela Universidade Federal do Rio
Grande do Sul em 1981 e o título de Doutora em Engenharia pela
Universidade Federal de Santa Catarina em março de 2000. É
professora no nível Adjunto IV da Universidade Federal de Santa
Catarina e vem atuando em pesquisa e formação na área de Redes de
Computadores e de Gerência de Redes de Computadores e de
Telecomunicações junto ao Departamento de Informática e de
Estatística da UFSC nos cursos de Graduação em Computação e Pós-
Graduação em Computação e em Engenharia de Produção. Seu
desempenho é traduzido pela publicação de mais de 50 trabalhos em
Congressos Nacionais e Internacionais, palestras convidadas e
consultorias realizadas junto a empresas fornecedoras de produtos e
serviços de telecomunicações.
Endereço para contato:
Prof. Elizabeth Sueli Specialski
Departamento de Informática e de Estatística
Universidade Federal de Santa Catarina
Campus Universitário — Trindade
88040-900 — Florianópolis — SC
Tel.: (048) 331-9498
Fax: (048) 331-9566
E-mail: beth@inf.ufsc.br
Arquiteturas de Redes 3
Sumário
Capítulo 1 - Introdução às Redes de Comunicação ............................................................. 6
1.1 INTRODUÇÃO...........................................................................................................................6
1.2 HISTÓRICO DAS REDES DE COMUNICAÇÃO................................................................................7
1.3 IMPORTÂNCIA DAS REDES DE COMUNICAÇÃO ...........................................................................8
1.4 O HARDWARE DE REDE ...........................................................................................................9
1.4.1 As diferentes topologias...................................................................................................9
1.4.2 Topologia física X topologia lógica ............................................................................... 11
1.4.3 Categorias de redes....................................................................................................... 11
1.5 O SOFTWARE DE REDE........................................................................................................... 12
1.5.1 Serviços necessários à comunicação.............................................................................. 12
1.5.2 A organização de funções .............................................................................................. 14
1.5.3 A estruturação em camadas ........................................................................................... 15
Capítulo 2 - Conceitos Básicos do Software de Rede........................................................ 17
2.1 INTRODUÇÃO......................................................................................................................... 17
2.2 HIERARQUIA DE PROTOCOLOS ................................................................................................ 17
2.3 DIFERENÇAS ENTRE SERVIÇO E PROTOCOLO ........................................................................... 19
2.4 QUESTÕES DE PROJETO RELACIONADAS ÀS CAMADAS.............................................................. 19
2.5 INTERFACES E SERVIÇOS ........................................................................................................ 20
2.6 SERVIÇOS ORIENTADOS À CONEXÃO E SEM CONEXÃO .............................................................. 21
2.7 PRIMITIVAS DE SERVIÇO ........................................................................................................ 22
Capítulo 3 - Arquiteturas de Redes ..................................................................................... 25
3.1 INTRODUÇÃO......................................................................................................................... 25
3.2 CLASSIFICAÇÃO DAS REDES DE COMPUTADORES .................................................................... 25
3.2.1 Redes Locais ................................................................................................................. 25
3.2.2 Redes Metropolitanas .................................................................................................... 26
3.2.3 Redes Geograficamente Distribuídas ............................................................................. 26
3.2.4 Redes Sem Fio............................................................................................................... 27
3.2.5 Ligação entre Redes ...................................................................................................... 28
3.2.6 Parâmetros de comparação ........................................................................................... 28
3.3 AS ARQUITETURAS DE REDE.................................................................................................... 29
3.4 A ARQUITETURA DO RM/OSI................................................................................................. 30
3.5 A ARQUITETURA TCP/IP – INTERNET .................................................................................... 30
3.6 AS REDES LOCAIS.................................................................................................................. 31
3.6.1 O RM-OSI e as redes locais ........................................................................................... 31
3.6.2 O padrão IEEE 802 ....................................................................................................... 32
3.6.3 Interconexão de redes locais.......................................................................................... 33
Capítulo 4 - Modelos de Referência..................................................................................... 35
4.1 INTRODUÇÃO......................................................................................................................... 35
4.2 O MODELO DE REFERÊNCIA OSI ............................................................................................. 35
4.2.1 As camadas do RM-OSI................................................................................................. 37
4.3 O MODELO DE REFERÊNCIA TCP/IP ........................................................................................ 39
4.3.1 As camadas do TCP/IP.................................................................................................. 39
4.4 ATM E O MODELO DE REFERÊNCIA B-ISDN .......................................................................... 42
4.4.1 Elementos básicos ATM................................................................................................. 43
4.4.2 Camadas de Adaptação ATM......................................................................................... 44
Arquiteturas de Redes 4
4.4.3 Estrutura da AAL .......................................................................................................... 46
4.4.4 Meio de Transmissão..................................................................................................... 46
4.4.5 Camada física do modelo de referência B-ISDN............................................................. 47
4.5 OUTROS EXEMPLOS DE REDES ................................................................................................ 47
Capítulo 5 - A Camada Física............................................................................................... 50
5.1 INTRODUÇÃO......................................................................................................................... 50
5.2 OS SUPORTES DE TRANSMISSÃO ..............................................................................................50
5.2.1 O par de fios trançados ................................................................................................. 50
5.2.2 Os cabos coaxiais.......................................................................................................... 50
5.2.3 As fibras óticas.............................................................................................................. 51
5.2.4 As redes sem fio (radiodifusão)...................................................................................... 51
5.3 ASPECTOS DA TRANSMISSÃO DE DADOS .................................................................................. 52
Capítulo 6 - A Camada de Enlace de Dados........................................................................ 55
6.1 INTRODUÇÃO......................................................................................................................... 55
6.2 AS CLASSES DE SERVIÇOS DE ENLACE .................................................................................... 55
6.3 AS PRIMITIVAS DE ENLACE..................................................................................................... 56
6.4 O CONCEITO DE QUADRO........................................................................................................ 57
6.5 O CONTROLE DE ERRO............................................................................................................ 58
6.5.1 Os códigos de correção de erro ..................................................................................... 59
6.5.2 Os códigos de detecção de erro...................................................................................... 60
6.5.3 Procedimentos para controle de erro ............................................................................. 61
6.6 O CONTROLE DE FLUXO ......................................................................................................... 64
6.7 O CONTROLE DE ACESSO AO MEIO .......................................................................................... 65
6.8 ALGUNS EXEMPLOS DE PROTOCOLOS DE ENLACE..................................................................... 66
Capítulo 7 - A Camada de Rede........................................................................................... 68
7.1 INTRODUÇÃO......................................................................................................................... 68
7.2 SERVIÇOS OFERECIDOS PELA CAMADA DE REDE ...................................................................... 68
7.3 ORGANIZAÇÃO INTERNA DA CAMADA DE REDE ....................................................................... 70
7.4 AS PRIMITIVAS DE SERVIÇO DE REDE....................................................................................... 71
7.5 O ENDEREÇAMENTO DE REDE................................................................................................. 73
7.6 A FUNÇÃO DE ROTEAMENTO .................................................................................................. 74
7.6.1 Algoritmo do caminho mais curto .................................................................................. 74
7.6.2 Roteamento multicaminhos ............................................................................................ 75
7.7 O CONTROLE DE CONGESTIONAMENTO ................................................................................... 76
7.7.1 A pré-alocação de buffers .............................................................................................. 76
7.7.2 A destruição de pacotes ................................................................................................. 77
7.7.3 O controle de fluxo ........................................................................................................ 77
7.7.4 Outras técnicas.............................................................................................................. 77
7.8 LIGAÇÕES INTER-REDES ......................................................................................................... 77
Capítulo 8 - A Camada de Transporte ................................................................................. 79
8.1 INTRODUÇÃO......................................................................................................................... 79
8.2 SERVIÇOS OFERECIDOS PELA CAMADA DE TRANSPORTE ........................................................... 79
8.3 AS PRIMITIVAS DE SERVIÇO DE TRANSPORTE .......................................................................... 80
8.4 OS PROTOCOLOS DE TRANSPORTE .......................................................................................... 82
8.5 ENDEREÇAMENTO.................................................................................................................. 84
8.6 MULTIPLEXAÇÃO E SPLITTING................................................................................................. 87
8.7 ESTABELECIMENTO E ENCERRAMENTO DE CONEXÕES.............................................................. 87
8.8 CONTROLE DE FLUXO E BUFFERIZAÇÃO .................................................................................. 87
Capítulo 9 - A Camada de Sessão ....................................................................................... 88
9.1 INTRODUÇÃO......................................................................................................................... 88
9.2 SERVIÇOS OFERECIDOS PELA CAMADA DE SESSÃO ................................................................... 88
9.3 SESSÃO X TRANSPORTE: SIMILARIDADES E DIFERENÇAS .......................................................... 89
9.4 A GESTÃO DO DIÁLOGO.......................................................................................................... 90
9.5 A SINCRONIZAÇÃO................................................................................................................. 91
9.6 GERENCIAMENTO DE ATIVIDADES........................................................................................... 92
Arquiteturas de Redes 5
9.7 AS PRIMITIVAS DE SERVIÇO DE SESSÃO................................................................................... 93
Capítulo 10 - A Camada de Apresentação........................................................................... 95
10.1 INTRODUÇÃO......................................................................................................................... 95
10.2 AS PRIMITIVAS DE SERVIÇO DA CAMADA DE APRESENTAÇÃO ................................................... 95
10.3 A NOTAÇÃO ASN.1 ............................................................................................................... 96
10.4 A COMPRESSÃO DE DADOS ..................................................................................................... 98
10.4.1 Codificação de um alfabeto finito de símbolos................................................................ 98
10.4.2 Codificação dependente da freqüência........................................................................... 99
10.4.3 Codificação baseada no contexto................................................................................... 99
10.5 A CRIPTOGRAFIA ................................................................................................................. 100
10.5.1 A criptagem por substituição ....................................................................................... 101
10.5.2 A criptagem por transposição ...................................................................................... 101
Capítulo 11 - A Camada de Aplicação ................................................................................103
11.1 INTRODUÇÃO....................................................................................................................... 103
11.2 ESTRUTURA DA CAMADA DE APLICAÇÃO ..............................................................................103
11.2.1 Características específicas da camada de Aplicação.................................................... 103
11.2.2 Conceitos relacionados à camada de Aplicação........................................................... 104
11.2.3 Exemplos de Estruturas de AEIs .................................................................................. 105
11.3 O ELEMENTO DE SERVIÇO ACSE .......................................................................................... 106
11.3.1 Os serviços oferecidos pelo ACSE................................................................................ 106
11.3.2 As interfaces do ACSE com os serviços de Apresentação.............................................. 107
11.4 OUTROS ELEMENTOS DE SERVIÇO ......................................................................................... 107
11.4.1 Transferência Confiável (RTSE) .................................................................................. 108
11.4.2 Operações Remotas (ROSE) ........................................................................................ 108
11.4.3 Confiabilidade, Concorrência e Recuperação (CCR) ................................................... 108
11.4.4 Processamento de Transações (TP).............................................................................. 109
11.5 ACESSO E TRANSFERÊNCIA DE ARQUIVOS (FTAM) ................................................................ 109
11.5.1 O servidor virtual de arquivos ..................................................................................... 110
11.5.2 As primitivas de serviço de FTAM................................................................................ 111
Capítulo 12 - Bibliografia ....................................................................................................112
Arquiteturas de Redes 6
Capítulo 1 - Introdução às Redes de
Comunicação
1.1 INTRODUÇÃO
A história nos mostra que cada um dos últimos séculos foi dominado por uma tecnologia
diferente. A revolução industrial no século XVIII, as máquinas a vapor no século XIX e a tecnologia da
informação no século XX. Exemplos disto são as redes de telefonia em escala mundial, o rádio, a
televisão, os computadores e os satélites de comunicação. Com estas conquistas, o conceito de distância
geográfica tornou-se, em alguns casos, um fator pouco importante para a solução de problemas.
Apesar da indústria da informática ser muito jovem se comparada a outros setores (a de
automóveis e de aviões, por exemplo), os progressos ocorridos foram espetaculares em um curto espaço
de tempo. Nas duas primeiras décadas de sua existência, os sistemas computacionais eram
acondicionados em uma grande sala com paredes de vidro, através das quais a maior parte dos visitantes,
e até usuários, podiam contemplar extasiados aquela maravilha eletrônica. Uma empresa de médio porte
ou uma universidade contava apenas com um ou dois computadores, enquanto grandes instituições
tinham, no máximo, algumas dezenas. Era pura ficção científica a idéia de que, em apenas 20 anos,
haveria milhões de computadores muito mais avançados, do tamanho de um selo postal, ou ainda menor.
A fusão dos computadores e das comunicações teve uma profunda influência na forma como os
sistemas computacionais foram organizados. Está totalmente ultrapassado o conceito de “centro de
computação” como uma sala onde os usuários levam os programas para serem processados. Este conceito
foi substituído pelas chamadas redes de computadores, nas quais os trabalhos podem ser realizados por
uma série de computadores interconectados. Sendo assim, é uma necessidade o conhecimento, por parte
do pessoal envolvido com informática, dos conceitos e funcionamento das redes de computadores.
É importante então conceituar o que entendemos por redes de computadores. Nós usaremos o
termo rede de computadores para designar um conjunto de computadores autônomos e
interconectados. Dois computadores são interconectados quando podem trocar informações através de
algum mecanismo de comunicação. Quando dizemos que eles devem ser autônomos desejamos excluir os
sistemas onde existe uma clara relação mestre/escravo.
Outro esclarecimento importante é fazer uma clara distinção entre uma rede de computadores e
um sistema distribuído. A principal diferença entre eles é que, em um sistema distribuído, a existência
de diversos computadores autônomos é transparente para o usuário. A transparência de utilização é dada
pelo sistema operacional. Em suma, o usuário de um sistema distribuído não tem consciência de que há
vários processadores. Para ele é como se existisse um processador virtual e todas as atividades para
execução de uma tarefa acontecem de forma o mais automatizada possível. Por outro lado, em uma rede,
o usuário necessita realizar explicitamente suas tarefas, tais como: fazer o login em uma máquina,
realizar a transferência de seus arquivos, submeter suas tarefas remotas, entre outras. Na prática, um
sistema distribuído é um sistema de software instalado em uma rede, proporcionando um alto grau de
coesão e transparência ao usuário. É o software, ou o sistema operacional, que determina a diferença entre
uma rede e um sistema distribuído, não o hardware. No entanto os dois assuntos possuem uma série de
pontos em comum, por exemplo: os sistemas distribuídos e as redes necessitam movimentar arquivos. A
diferença está em quem é o responsável pela movimentação: o sistema operacional ou o usuário.
Arquiteturas de Redes 7
1.2 HISTÓRICO DAS REDES DE COMUNICAÇÃO
A evolução da microeletrônica e da informática tem possibilitado a obtenção de processadores e
outros componentes de computadores cada vez mais potentes e velozes, num tamanho mais reduzido e
num preço cada vez mais acessível a um maior número de pessoas.
Os microprocessadores existentes hoje em dia, que ocupam o espaço menor do que uma caixa de
fósforos, substituem e ultrapassam as capacidades dos computadores de alguns anos atrás, que ocupavam
salas inteiras. Estes eram máquinas bastante complexas no que diz respeito à sua utilização, sendo
operadas apenas por especialistas. Os usuários daqueles computadores normalmente submetiam seus
programas aplicativos como jobs (ou tarefas) sem qualquer interação com o processamento do programa.
Uma primeira tentativa de interação com o computador ocorreu no início dos anos 60, com a
técnica de time-sharing, que foi o resultado do desenvolvimento dos sistemas computacionais e da
tecnologia de transmissão de dados. Nesta técnica, um conjunto de terminais era conectado a um
computador central através de linhas de comunicação de baixa velocidade, o que permitia aos usuários
interagir com os seus programas. A necessidade de conexão de terminais para o processamento interativo
foi o ponto de partida para o estabelecimento de necessidades de comunicação nos computadores. A
técnica de time-sharing permitia a um grande conjunto de usuários o compartilhamento de um único
computador para a resolução de uma grande diversidade de problemas e as aplicações desenvolvidas
foram cada vez mais se multiplicando e se diversificando (cálculos complexos, produção de relatórios,
ensino de programação, aplicações militares, etc). Este aumento na demanda implicava numa necessidade
crescente de atualizações e incremento na capacidade de cálculo e de armazenamento nas CPUs, o que
nem sempre era viável ou possível, dado que os computadores do tipo mainframes nem sempre eram
adaptados para suportar determinadas extensões.
O avanço tecnológico na área dos circuitos integrados, gerando componentes mais poderosos a
um custo mais baixo, foi caindo o preço da CPU. Este evento constituiu a chamada revolução do
hardware. Nos anos 70, com o surgimento dos minicomputadores, foi possível adaptar as capacidades de
processamento às reais necessidades de uma dada aplicação. Além disso, um grande número de usuários
operavam sobre conjuntos comuns de informações, gerando a necessidade de compartilhamento de dados,
de dispositivos de armazenamentoe de periféricos entre os vários departamentos de uma empresa. Isto
deu um novo impulso aos trabalhos no sentido de resolver os problemas de comunicação entre os
computadores. Este novo tipo de aplicações exigia velocidade e capacidade de transmissão muito mais
elevadas que no caso da conexão de terminais a um computador central. Assim, com a utilização de
minicomputadores interconectados, obtinha-se muitas vezes uma capacidade de processamento superior
àquela possível com a utilização dos mainframes. Outro aspecto interessante é que as redes podiam ser
estendidas em função das necessidades de processamento das aplicações. Além disso, a modularidade
natural das redes de computadores era tal que uma falha num minicomputador ou na rede tinha um efeito
bastante limitado em relação ao processamento global.
O surgimento dos minicomputadores e dos computadores pessoais trouxe uma nova solução para
o problema de máquinas multi-usuário pois dava uma CPU para cada um deles. As pequenas companhias
e as subsidiárias utilizavam-se dos minicomputadores para algum processamento local e na preparação
dos dados para o bureaux de serviços ou para a matriz. Os dados eram transferidos quando exigiam um
grande volume de processamento ou um processamento requerendo software ou hardware especial.
O uso dos minicomputadores minimizou mas não solucionou o problema da comunicação.
Minimizou porque os dados podiam agora ser preparados e armazenados em fita magnética e
transportados via sistema de malotes. Este sistema de transporte não é, obviamente, o mais adequado para
transferência de informação pois está sujeito a acidentes, gerando atraso ou perda total do material.
Por outro lado, o sistema centralizado oferecia a vantagem de compartilhar recursos caros tanto
de software como de hardware, ou seja, o software e hardware especial era caro mas seu preço era
amortizado pelo rateio do custo dos periféricos entre os vários usuários. Surge, então, a necessidade de
uma nova tecnologia para compartilhamento de recursos.
Paralelamente, a tecnologia de comunicações alcançava a transmissão digital em linhas
telefônicas através de modems. Este serviço era caro e apenas suportado por grandes companhias, uma
vez que utilizavam linhas telefônicas de forma dedicada. Esta situação perdurou por algum tempo (no
Brasil, até março de 1985) e era necessária outra solução para comunicação através de uma nova
tecnologia de comunicação.
A necessidade da disseminação da informação e os avanços em tecnologia de armazenamento,
propiciaram o aparecimento de discos de grande capacidade e mais baratos (explosão da informação e
grandes bancos de dados). Aí o problema de comunicação tornou-se muito mais sério. Para acessos não
Arquiteturas de Redes 8
muito freqüentes, uma linha telefônica dedicada não era viável em termos de custo e o transporte via
malote era inviável em termos de velocidade. A solução para o compartilhamento de recursos físicos e
lógicos juntamente com a vantagem de se ter um sistema descentralizado, só pode ser alcançada através
da interconexão das CPUs entre si. É a isso que se propõem as redes de computadores.
As soluções encontradas, na época, para a comunicação de computadores em termos de longa
distância foi a tecnologia de comutação de pacotes, que solucionou o problema da linha telefônica
dedicada e o problema do transporte via malote. Num ambiente restrito a uma região local (por exemplo,
uma fábrica, um campus), o problema do compartilhamento de recursos através de interconexão de CPUs
foi resolvido através da tecnologia de redes locais.
Atualmente, as vantagens dos sistemas distribuídos e interconectados são uma evidência
reconhecida para as aplicações mais diversas, desde a automação de escritórios até o controle de
processos, passando por aplicações de gerenciamento bancário, reservas de passagens aéreas,
processamento de texto, educação à distância, correio eletrônico, WWW, entre outras tão bem
conhecidas.
A junção de duas tecnologias – comunicação e processamento de informações – veio
revolucionar o mundo em que vivemos, abrindo as fronteiras para novas formas de comunicação, e
permitindo maior eficácia dos sistemas computacionais. As redes de computadores são uma realidade
neste nosso contexto atual.
1.3 IMPORTÂNCIA DAS REDES DE COMUNICAÇÃO
Um grande número de empresas possui atualmente uma quantidade relativamente grande de
computadores operando nos seus diversos setores. Um exemplo deste fato é aquele de uma empresa que
possui diversas fábricas contendo cada uma um computador responsável das atividades de base da fábrica
(controle de estoques, controle da produção e produção da folha de pagamentos). Neste exemplo, apesar
da possibilidade de operação destes computadores de maneira isolada, é evidente que sua operação seria
mais eficiente se eles fossem conectados para, por exemplo, permitir o tratamento das informações de
todas as fábricas da empresa. O objetivo da conexão dos diferentes computadores da empresa é permitir o
que poderíamos chamar de compartilhamento de recursos, ou seja, tornar acessíveis a cada computador
todos os dados gerados nas diversas fábricas da empresa.
Um outro ponto importante da existência das Redes de Comunicação é relacionado a um
aumento na confiabilidade do sistema como um todo. Pode-se, por exemplo, ter multiplicados os
arquivos em duas ou mais máquinas para que, em caso de defeito de uma máquina, cópias dos arquivos
continuem acessíveis em outras máquinas. Além disso, o sistema pode operar em regime degradado no
caso de pane de um computador, sendo que outra máquina pode assumir a sua tarefa. A continuidade de
funcionamento de um sistema é ponto importante para um grande número de aplicações, como por
exemplo: aplicações militares, bancárias, o controle de tráfego aéreo, etc.
A redução de custos é uma outra questão importante da utilização das Redes de Comunicação,
uma vez que computadores de pequeno porte apresentam uma menor relação preço/desempenho que os
grandes. Assim, sistemas que utilizariam apenas uma máquina de grande porte e de custo muito elevado
podem ser concebidos à base da utilização de um grande número de microcomputadores (ou estações de
trabalho) manipulando dados presentes num ou mais servidores de arquivos. Os mainframes são dezenas
de vezes mais rápidos do que alguns computadores pessoais mas também seu preço é milhares de vezes
maior. Esta situação levou os projetistas a criarem sistemas baseados em computadores pessoais para os
usuários com os dados mantidos em um ou mais servidores de arquivos compartilhados, Neste modelo os
usuários são chamados clientes e a organização geral é denominada modelo cliente/servidor. No modelo
cliente/servidor um processo cliente envia uma mensagem de solicitação ao processo servidor para que
alguma tarefa seja executada. Em seguida o processo servidor executa a tarefa e envia a resposta ao
processo cliente. Geralmente existem muitos clientes usando um pequeno número de servidores.
Ainda temos como vantagem no uso das redes a escalabilidade, que é a possibilidade de
aumentar gradualmente o desempenho do sistema à medida que cresce o volume de carga, através da
adição de mais processadores. Esta era uma enorme dificuldade nos sistemas centralizados. Quando o
limite de capacidade era atingido, o sistema tinha que ser substituído por um maior, o que geralmente
implicava em altos custos e grandes aborrecimentos para os usuários.
Outras vantagens estão relacionadas ainda a questões que não tem relação com tecnologia. Uma
rede de computadores oferece um meio de comunicação altamente eficaz para funcionários que
Arquiteturas de Redes 9
trabalham em locais muito distantes um do outro. Uma rede viabiliza, por exemplo, a possibilidade de
duas ou mais pessoas escreverem um relatório mesmo estando separadas por milhares de quilômetros.
Quando algum dos participantes faz uma alteração no documento on-line, seus parceiros podem vê-la
imediatamente, sem que seja necessário passar dias esperando por uma carta. Isto facilitao espírito de
equipe e reduz em muito o custo de manutenção de equipes de trabalho que não estão localizadas m uma
mesma cidade.
1.4 O HARDWARE DE REDE
Vamos agora dar um pouco de atenção a forma de estruturação de uma rede. Em relação à
estruturação, dois aspectos podem ser abordados: a física e a lógica. Para isso serão discutidas as várias
topologias de uma rede. O conceito de topologia, até há pouco relacionado apenas com a estruturação
física da rede, agora abrange, também, a forma como a mesma é definida logicamente.
Existem várias classificações para as diferentes redes de computadores. Dentre elas, duas
dimensões se destacam mais: a escala e a tecnologia de transmissão.
Basicamente há dois tipos de tecnologia de transmissão: as redes em difusão e as redes ponto-
a-ponto. Nas redes em difusão há apenas um canal de transmissão compartilhado por todas as máquinas.
Uma mensagem enviada por uma estação é “ouvida” por todas as outras estações. Nas redes ponto-a-
ponto existem várias conexões entre pares individuais de estações. Estes dois tipos de ligação podem ser
visualizados na figura 1.1 a seguir.
 computador
 cabo
 (a) (b)
Figura 1.1 – Rede em difusão (a) e rede ponto-a-ponto (b).
1.4.1 AS DIFERENTES TOPOLOGIAS
Um ponto importante no que diz respeito à concepção de uma rede de comunicação é a definição
da maneira como as diferentes estações serão interligadas. Estes arranjos são denominados topologia da
rede. Estas topologias estão relacionadas a forma como o canal de comunicação será alocado, ou seja,
através de canais ponto-a-ponto ou canais de difusão.
Nas topologias que utilizam canais ponto-a-ponto, a rede é composta de diversas linhas de
comunicação, cada linha sendo associada à conexão de um par de estações. Neste caso, se duas estações
precisam comunicar-se e não há entre elas um cabo comum, a comunicação será feita de modo indireto,
através de uma (ou mais) estações. Assim, quando uma mensagem é enviada de uma estação a outra de
forma indireta, ela será recebida integralmente por cada estação e, uma vez que a linha de saída da
estação considerada está livre, retransmitida à estação seguinte.
Esta política de transmissão é também conhecida por store and forward. A maior parte das redes
de longa distância são do tipo ponto-a-ponto. As redes ponto-a-ponto podem ser concebidas segundo
diferentes topologias. As redes locais ponto-a-ponto são caracterizadas normalmente por uma topologia
simétrica; as redes de longa distância apresentam geralmente topologias assimétricas. A figura 1.2
apresenta as diferentes topologias possíveis nas redes ponto-a-ponto.
Arquiteturas de Redes 10
Figura 1.2 - Topologias ponto-a-ponto: estrela, anel, malha regular, malha irregular e árvore.
Uma outra classe de redes, as redes de difusão, são caracterizadas pelo compartilhamento, por
todas as estações, de um único canal de comunicação. Neste caso, as mensagens enviadas por uma
estação são recebidas por todas as demais conectadas ao suporte de transmissão, sendo que um campo de
endereço contido na mensagem permite identificar o destinatário. Na recepção, a máquina verifica se o
conteúdo do campo de endereço corresponde ao seu e, em caso negativo, a mensagem é ignorada. As
redes locais pertencem geralmente a esta classe de redes. Nas redes de difusão existe a possibilidade de
uma estação enviar uma mesma mensagem às demais estações da rede, utilizando um código de endereço
especial. Neste caso, todas as estações vão tratar as mensagens recebidas endereçadas para este endereço
comum. Este modo de operação é denominado broadcasting. Alguns sistemas de difusão também
suportam transmissão para um subconjunto de estações, conhecido como multicasting.
A figura 1.3 apresenta algumas topologias possíveis no caso das redes em difusão. Numa rede
em barramento, uma única máquina pode estar transmitindo a cada instante. As demais estações devem
esperar para transmissão caso o barramento esteja ocupado. Para isto, um mecanismo de arbitragem
deve ser implementado para resolver possíveis problemas de conflito (quando duas ou mais estações
querem enviar uma mensagem), este mecanismo pode ser centralizado ou distribuído.
Figura 1.3 - Topologias das redes de difusão: barramento, satélite e anel
No caso das redes de satélite (ou rádio), cada estação é dotada de uma antena através da qual
pode enviar e receber mensagens. Cada estação pode “escutar” o satélite e, em alguns casos, receber
diretamente as mensagens enviadas pelas demais estações. No caso do anel, cada bit transmitido é
propagado de maneira independente em relação à mensagem ao qual ele pertence. Em geral, cada bit
realiza uma volta completa no anel durante o tempo necessário para a emissão de um certo número de
bits, antes mesmo da emissão completa da mensagem. Também nesta topologia, é necessária a
implementação de um mecanismo de acesso ao suporte de comunicação.
As redes de difusão podem ainda considerar duas classes de mecanismos de acesso ao suporte de
comunicação: estáticas ou dinâmicas. Um exemplo do primeiro caso é a definição de intervalos de tempo
durante os quais cada estação tem a posse do canal de comunicação, permitindo então que esta emita a
Arquiteturas de Redes 11
mensagem de maneira cíclica. No entanto, esta política é bastante ineficiente do ponto de vista do envio
das mensagens, uma vez que muitas estações não vão enviar mensagens nos intervalos a elas destinadas.
Já na outra classe de mecanismos, os dinâmicos, o acesso é dado às estações segundo a demanda de envio
de mensagens. Nos mecanismos de acesso dinâmicos, pode-se ainda considerar dois casos:
• os mecanismos centralizados, nos quais uma estação central (ou árbitro) é a responsável pela
definição do direito de acesso ao suporte de comunicação;
• os mecanismos distribuídos, nos quais cada estação define quando ela vai emitir a mensagem.
1.4.2 TOPOLOGIA FÍSICA X TOPOLOGIA LÓGICA
A topologia de uma rede irá determinar, em parte, o método de acesso a rede utilizado. Métodos
de acesso são necessários para regular a utilização dos meios físicos compartilhados. A forte tendência de
utilização de hubs nas instalações físicas das redes corresponde, fisicamente, a implantação de uma
topologia em estrela. Esta tendência é explicada pela crescente necessidade de melhorar o gerenciamento
e a manutenção nessas instalações. A topologia em estrela apresenta uma baixa confiabilidade porém os
avanços da eletrônica já permitem que se construam equipamentos de alta confiabilidade, viabilizando
este tipo de topologia.
A utilização de hubs não exige, necessariamente, que as interfaces das estações com a rede o
percebam como uma topologia em estrela. O funcionamento continua a ser como no acesso a um
barramento ou a um anel, com os seus respectivos métodos de acesso. Sendo assim, podemos diferenciar
dois tipos de topologias: uma topologia lógica, que é aquela observada sob o ponto de vista das interfaces
das estações com a rede (que inclui o método de acesso), e uma topologia física, que diz respeito à
configuração física utilizada na instalação da rede.
A construção dos hubs teve uma evolução contínua no sentido de que os mesmos não
implementem somente a utilização do meio compartilhado, mas também possibilitem a troca de
mensagens entre várias estações simultaneamente. Desta forma as estações podem obter para si taxas
efetivas de transmissão bem maiores. Esse tipo de elemento, também central, é denominado switch. As
redes ATM, por exemplo, baseiam-se na presença de switches de grande capacidade de comutação que
permitem taxas de transmissão que podem chegar à ordem de Gbps (gigabits por segundo).
1.4.3 CATEGORIAS DE REDES
As redes também podem ser classificadas por escala. A figura 1.4 mostra uma classificação das
várias redes de computadores em relaçãoa sua abrangência. Basicamente elas podem ser classificadas em
três grupos: LAN – Local Area Network ou Rede Local, MAN – Metropolitan Area Network ou Rede
Metropolitana e WAN – Wide Area Network ou Rede Geograficamente Distribuída (ou de Longa
Distância).
 
Distância entre nós Abrangência
até 10 m
até 100 m
até 1 km
até 10 km
até 100 km
até 1.000 km
até 10.000 km
Sala
Edifício
Campus
Cidade
País
Continente
Planeta
 L A N
M A N
W A N
Figura 1.4- Classificação de redes quanto a distância física entre os nós.
Arquiteturas de Redes 12
A diferença na dimensão das redes introduz diferentes problemas e necessidades. No que diz
respeito ao exemplo de microcomputadores, a rede é classificada como sendo uma Rede Local,
caracterizada particularmente por uma pequena extensão, limitando-se normalmente à interconexão de
computadores localizados numa mesma sala, num mesmo prédio ou num campus. Este tipo de rede
invariavelmente proprietária. Uma alternativa a este tipo de rede, muito utilizada atualmente são as Redes
Metropolitanas, que são utilizadas quando as distâncias entre os módulos processadores aumenta
consideravelmente, atingindo distâncias metropolitanas. Elas podem ser públicas ou privadas.
No exemplo de empresa possuindo diversas fábricas, a rede utilizada permitiria conectar
computadores localizados em diferentes prédios numa mesma cidade ou mesmo em cidades distantes de
uma dada região. Esta caracteriza uma Rede de Longa Distância ou Rede Geograficamente
Distribuída.
Esta classificação não é, de maneira alguma, fechada. Por exemplo, uma rede local pode alcançar
dimensões metropolitanas e ainda assim ser considerada local. Nos próximos capítulos serão estudados
mais detalhadamente cada um destes tipos de redes.
1.5 O SOFTWARE DE REDE
No projeto de uma rede muitos problemas precisam ser resolvidos e podem existir várias
soluções para os mesmos. Primeiramente definiremos alguns problemas mais comuns encontrados no
projeto de um software de rede. Em seguida apresentaremos uma definição inicial sobre a forma como os
softwares de rede são estruturados, através de um exemplo.
1.5.1 SERVIÇOS NECESSÁRIOS À COMUNICAÇÃO
Como visto nas seções precedentes, as redes de computadores podem se caracterizar por
diferentes configurações e topologias. Apesar da diversidade no que diz respeito a este aspecto, todas as
possíveis configurações têm um objetivo comum — a transferência de dados.
O problema que se coloca é então relacionado à especificação dos procedimentos e mecanismos
que devem ser implementados para viabilizar o funcionamento da rede. A resolução deste problema é
baseada principalmente no conhecimento prévio das funções que devem ser suportadas pela rede, assim
como do ambiente no qual ela vai ser inserida. Estes aspectos serão mostrados aqui através de alguns
exemplos. O primeiro exemplo é baseado nas políticas de time-sharing já descrita anteriormente. Vamos
considerar o caso em que temos apenas um terminal conectado a um computador, como mostrado na
figura 1.5.
Figura 1.5 - Terminal conectado a um computador central
Considerando que um usuário vai servir-se do terminal para processar informações no
computador central, para que isto seja possível, é necessário que o computador central seja dotado do
programa necessário ao tratamento daquelas informações. Em caso positivo, o terminal e o computador
devem estabelecer um diálogo que permita o bom desenrolar das operações de tratamento das
informações. Este diálogo deverá permitir, por exemplo, que o usuário comunique sua intenção (de
Arquiteturas de Redes 13
processar as informações!) ao computador e, em seguida, envie as informações a serem processadas. Uma
vez efetuado o tratamento, o computador deve retornar os resultados ao terminal.
Esta seqüência de operações, apesar de aparentemente elementar, requer a satisfação de uma
série de condições. Vamos supor, por exemplo, que o computador central e o terminal tenham sido
fabricados de forma totalmente independente um do outro, o que pode ter resultado numa diferente
filosofia no que diz respeito ao formato das informações. Um primeiro obstáculo a ser vencido é aquele
da linguagem; o terminal deveria então se adaptar à linguagem do computador central.
Resolvido o problema de compreensão, um outro problema encontrado diz respeito aos possíveis
erros de transmissão que podem ocorrer durante a comunicação, uma vez que as linhas de comunicação
estão sujeitas a ruídos e outros fenômenos podendo provocar perdas de informação.
Uma outra questão pode ainda estar relacionada à velocidade de funcionamento dos dois
elementos. Se considerarmos que o computador central opera numa velocidade superior à do terminal, por
exemplo, o terminal corre o risco de ser “bombardeado” pelo fluxo de dados vindo do computador, o que
vai exigir então o estabelecimento de um mecanismo de controle do fluxo de informações.
Resumindo, a rede de comunicação deve, além de suprir as funções de transmissão e tratamento
de informações, oferecer serviços de adaptação, detecção e correção de erros de transmissão e controle de
fluxo.
Vamos considerar agora que, ao invés de um único terminal, vamos conectar um maior número
deles ao computador central, como mostra a figura 1.6. Aqui, cada terminal pode, a princípio e a qualquer
momento, tomar a iniciativa da troca de dados com o computador. Isto significa que cada terminal terá de
ser caracterizado por um endereço específico, cuja utilização correta vai permitir evitar que o computador
central envie as informações aos terminais de maneira indevida.
Figura 1.6 - Configuração com vários terminais
Por outro lado, se o número de terminais conectados ao computador central tornar-se
relativamente elevado (a fim de permitir a utilização máxima da capacidade de processamento deste), será
necessário organizar as interações entre terminais e o computador central em sessões, de tal forma que, ao
término de uma sessão entre um terminal e o computador central, este terá liberados determinados
elementos (envolvidos naquela sessão) que poderão atender outros terminais em estado de espera.
Ainda, considerando que nem todos os terminais vão efetuar o mesmo tipo de tratamento de
forma simultânea, dever-se-á, então, especificar a aplicação associada. Assim, todas as necessidades
vistas neste exemplo deverão ser associadas às funcionalidades definidas no exemplo anterior. Mas os
problemas não terminam por aqui... (é impossível, no momento, prever onde terminarão os problemas!)
Vamos considerar ainda um exemplo, mais particularmente o de uma rede contendo diversos
computadores, terminais, e outros periféricos, cada um destes elementos constituindo um nó da rede. A
figura 1.7 mostra uma situação deste tipo. Neste exemplo, os dois elementos envolvidos numa
comunicação não serão mais necessariamente adjacentes; além disso, podem existir diversas maneiras de
conectá-los, o que vai corresponder a diferentes caminhos. No exemplo mostrado na figura, os nós 1 e 5
podem ser conectados por, pelo menos, uns 10 caminhos e a escolha de qual caminho utilizar deverá
então ser realizada, o que é não é uma tarefa tão simples quanto possa parecer.
Arquiteturas de Redes 14
Ainda, se a rede é da classe ponto-a-ponto (ou comutação de pacotes), o sistema de comunicação
deve assegurar a correta transmissão da informação de um ponto a outro. Particularmente, será necessário
garantir que as mensagens enviadas serão recuperadas e reconstituídas na ordem correta no ponto de
chegada.
Um requisito também importante é o aspecto da codificação das mensagens de modo a evitar o
acesso a informações de parte de usuários alheios ao sistema considerado. A esta função pode-se,
eventualmente, acrescentar técnicas de compressão de dados, necessárias se a informação enviada é
demasiadamente redundante e o custo da comunicação é alto.
1
2
3
5
4
Figura 1.7 - Configuração com vários computadores e terminais.
1.5.2 A ORGANIZAÇÃO DE FUNÇÕES
Uma vezlistadas as diferentes necessidades relacionadas a uma rede de comunicação, a questão
que se coloca é a da viabilidade de um projeto de rede, dada a quantidade de funções a implementar.
Uma outra questão é a do ordenamento das funções. O controle de fluxo deve ser realizado antes
ou depois da correção de erros? Uma vez resolvida esta questão, que elementos da rede serão
responsáveis da implementação destas funções? As soluções adotadas são dependentes do suporte de
transmissão utilizado? Elas continuam válidas no caso de expansão da rede? Estas questões representam,
de certo modo, a necessidade de levar em conta um certo ordenamento no que diz respeito à adoção das
soluções para cada problema.
Uma ilustração típica do problema é aquela da comunicação entre duas empresas. Vamos supor
que o Diretor de uma Empresa A quer comunicar-se com o Diretor de uma Empresa B. Ele convoca a sua
Secretária Administrativa e solicita, informalmente, que esta construa um texto relativo ao assunto a ser
tratado. A Secretária Administrativa elabora o documento e o entrega ao Office Boy que vai envelopá-lo e
encaminhá-lo ao Chefe do Setor de Malote. Este último encaminha o documento ao Serviço Postal para
condução à Empresa B.
Considerando que a Empresa B apresenta uma estrutura similar à Empresa A, como é ilustrado
na figura 1.8, os mesmos elementos atuam, cada um em suas funções, para fazer com que a
correspondência chegue às mãos do Diretor da Empresa.
Este processo caracteriza, na verdade, a filosofia de concepção das redes de comunicação, que é
baseada em dois conceitos fundamentais: o da hierarquia e o da descentralização, cuja conjunção vai
permitir responder à questão de ordenação na adoção das soluções. Segundo esta filosofia, uma tarefa
global é vista como sendo decomposta a medida que se vai descendo na hierarquia e que a única interação
física se faz no seu nível mais baixo.
Arquiteturas de Redes 15
Diretor
Empresa
Secretária
Administrativa
Office
Boy
Chefe
Malote
Empresa A
Serviço Postal
Empresa B
Diretor
Empresa
Secretária
Administrativa
Office
Boy
Chefe
Malote
Figura 1.8 - Filosofia de concepção das redes, ilustrada por um processo de relações entre empresas.
Podemos considerar que a comunicação entre dois nós de uma rede é uma tarefa global que afeta
um sistema complexo e, consequentemente, sujeita à aplicação dos princípios de hierarquização e de
descentralização.
As vantagens da adoção destes princípios são, fundamentalmente:
• facilidade de estudo e de implementação da rede a partir de elementos de base existentes, o
que permite a redução dos custos de instalação;
• simplificação de sua operação em função da definição de regras formais;
• garantia de confiabilidade de um sistema que seja aceitável, particularmente graças ao
encapsulamento das funções o que permite limitar a propagação de erros e facilitar a
manutenção;
• garantia, pela modularidade, de um grau satisfatório de evolutividade e de extensibilidade da
rede;
• otimização de desempenho.
Todos estes aspectos nos conduzem a conceber uma arquitetura de comunicação como sendo
uma organização de software e hardware estruturada em níveis ou camadas.
1.5.3 A ESTRUTURAÇÃO EM CAMADAS
Os conceitos de hierarquia e descentralização podem ser empregados de diferentes formas, cada
um podendo implicar num tipo de rede particular. Em função desta provável multiplicidade, surgiu então
a necessidade de uma normalização permitindo a conexão de diferentes classes de hardware.
Para possibilitar a normalização, foi necessário estabelecer um modelo teórico capaz de
representar as relações entre as diferentes tarefas implementadas nos diferentes níveis hierárquicos. A
possibilidade de interconexão de um número qualquer de sistemas, ou seja, de conjuntos autônomos
podendo efetuar tarefas de tratamento ou de transmissão de informação, era uma característica essencial
para o modelo a ser estabelecido.
A figura 1.9 ilustra uma arquitetura hierarquizada em 4 camadas que permitirá introduzir o
conjunto de conceitos relacionados ao modelo estabelecido. O objetivo de cada camada é o oferecimento
de um tipo de serviço a sua camada superior de forma a evitar que esta necessite conhecer certos aspectos
de como este serviço é realizado. A camada n assume que a comunicação com a camada n de uma outra
máquina existe, embora não seja direta. Para que esta comunicação exista, ela se serve de um conjunto de
convenções e regras que vão permitir gerenciar esta comunicação. A este conjunto de regras e
convenções, dá-se o nome de protocolo. Como se pode ver na figura, não existe meio de comunicação
Arquiteturas de Redes 16
direto entre as diferentes camadas (apenas o meio de transmissão na camada 1), o que significa que não
existe transferência direta de dados entre a camada n de uma máquina à camada n de outra máquina.
Na realidade, cada camada transfere os dados à camada imediatamente inferior até a camada
mais baixa; o dado é então transmitido à outra máquina através do meio de transmissão. A comunicação
entre as camadas é vista então como uma comunicação virtual e é representada, na figura 1.9, pelas linhas
ligando cada par de camadas.
Figura 1.9 - Modelo hierarquizado em 4 camadas.
Cada camada comunica-se com as camadas adjacentes (acima ou abaixo) através de uma
interface que define as informações que podem ser trocadas e os serviços que a camada inferior oferece à
camada superior.
Ao conjunto das camadas compondo uma rede dá-se o nome de arquitetura da rede, e as
especificações da arquitetura devem conter informações suficientes para permitir o correto
desenvolvimento da rede, tanto do ponto de vista do software quanto do hardware.
Mais detalhes relacionados ao projeto em camadas ou níveis e a nomenclatura utilizada para
interfaces, serviços e protocolos de comunicação serão abordados no capítulo 2.
Camada 4
Camada 3
Camada 2
Camada 1
Meio de Comunicação
Camada 4
Camada 3
Camada 2
Camada 1
Protocolo da Camada 4
Protocolo da Camada 3
Protocolo da Camada 2
Protocolo da Camada 1
SISTEMA BSISTEMA A
Interface
3/4
Interface
3/4
Interface
2/3
Interface
2/3
Interface
1/2
Interface
1/2
Arquiteturas de Redes 17
Capítulo 2 - Conceitos Básicos do Software de
Rede
2.1 INTRODUÇÃO
Nas primeiras redes de computadores os aspectos relacionados ao hardware foram colocados
como prioridade e os aspectos de software em segundo plano. No entanto logo foi percebida a
fundamental importância dos mecanismos de software de uma rede, e, em função disto, os softwares de
rede são altamente estruturados. Os conceitos relacionados a esta estruturação são de vital importância
para a compreensão de todos os aspectos relacionados à arquitetura de redes como um todo.
2.2 HIERARQUIA DE PROTOCOLOS
Para reduzir a complexidade do projeto, a maioria das redes foi organizada como uma série de
níveis ou camadas, que são colocadas uma sobre a outra. O número, o nome, o conteúdo e a função de
cada camada difere de uma rede para outra. Em todas as redes, no entanto, o objetivo de cada camada é
oferecer determinados serviços para as camadas superiores, ocultando detalhes da implementação desses
recursos.
Conforme já introduzido anteriormente, a figura 2.1 ilustra a arquitetura hierarquizada em 7
camadas que permitirá introduzir o conjunto de conceitos relacionados a uma arquitetura multicamadas.
Conforme já mencionado, o objetivo de cada camada é o oferecimento de um determinado serviço às
camadas superiores, utilizando-se, também dos serviços oferecidos pelas camadas inferiores, de forma a
evitar que estas necessitem conhecer certos aspectos da implementação destes serviços.
A camada n assume a comunicação com a camada n de uma outra máquina. Para faze-lo, ela se
serve de um conjunto de convenções e regras que vão permitir gerir esta comunicação. A este conjunto de
regras e convenções, dá-se o nome de protocolo da camada n, ou, simplesmente, protocolo n.
Basicamente, um protocolo é um conjunto de regras sobre o modo como se dará a comunicação entre aspartes envolvidas.
As entidades representando camadas correspondentes em diferentes sistemas são denominadas
processos pares, ou entidades pares. Os processos pares vão se comunicar através dos protocolos. Como
se pode ver na figura 2.1, não existe meio de comunicação físico entre as diferentes camadas o que
significa que não existe transferência direta de dados entre a camada n de uma máquina à camada n de
outra máquina.
Cada camada transfere os dados à camada imediatamente inferior até a camada mais baixa; o
dado é então transmitido à outra máquina através do meio de transmissão. A comunicação entre as
camadas é vista como uma comunicação virtual e é representada, na figura 2.1, pelas linhas horizontais
entre as camadas. Cada camada comunica-se com as camadas adjacentes (acima e abaixo) através de uma
interface, que define as operações elementares e os serviços que a camada inferior oferece à camada
considerada.
No momento da definição do número de camadas que vai compor uma rede e do papel que cada
uma delas deve cumprir, uma tarefa importante será a definição completa das interfaces entre as camadas
e isto vai implicar que na definição do serviço oferecido por cada camada. Uma vantagem da correta
definição das interfaces é a facilidade da introdução de modificações nas implementações das diferentes
camadas; os mecanismos podem ser implementados de forma diferente, desde que as interfaces
anteriormente definidas sejam respeitadas.
Arquiteturas de Redes 18
Camada 7
Camada 6
Camada 5
Camada 4
Camada 3
Camada 2
Camada 1
Meio de Transmissão
Camada 7
Camada 6
Camada 5
Camada 4
Camada 3
Camada 2
Camada 1
Protocolo da Camada 7
Protocolo da Camada 6
Protocolo da Camada 5
Protocolo da Camada 4
Protocolo da Camada 3
Protocolo da Camada 2
Protocolo da Camada 1
SISTEMA BSISTEMA A
Interface
6/7
Interface
6/7
Interface
5/6
Interface
5/6
Interface
4/5
Interface
4/5
Interface
3/4
Interface
3/4
Interface
2/3
Interface
2/3
Interface
1/2
Interface
1/2
Figura 2.1 - Modelo hierarquizado em 7 camadas.
Ao conjunto das camadas compondo uma rede dá-se o nome de arquitetura da rede, e as
especificações da arquitetura devem conter informações suficientes para permitir o correto
desenvolvimento da rede, tanto do ponto de vista do software quanto do hardware. Por outro lado, os
detalhes de implementação dos mecanismos em cada camada, assim como as especificações detalhadas
das interfaces não fazem parte da definição da arquitetura da rede.
A figura 2.2 permite ilustrar o processo da comunicação no contexto de uma arquitetura
multicamadas. O processo da camada 7 gera uma mensagem M, que será transmitida desta à camada
inferior segundo o que estiver definido pela interface das camadas 6/7.
Considera-se que esta transmissão introduz algumas modificações na mensagem (por exemplo,
uma compressão de dados), o que justifica uma nova representação desta por m. Esta mensagem é, por
sua vez, transmitida à camada 5, através da interface das camadas 5/6. No exemplo considerado na figura,
a mensagem não sofre modificações, mas esta camada efetua o controle de fluxo. A camada 4 é
responsável pela decomposição da mensagem a fim de respeitar as restrições de tamanho que podem ser
impostas pelas camadas inferiores. Assim, m é decomposta em M1 e M2.
Para isto, é inserido também na mensagem (ou nas partes da mensagem) um cabeçalho H4
contendo uma informação de controle, como, por exemplo, um número de ordem que vai permitir,
posteriormente na camada 4 do sistema destinatário, a reconstrução da mensagem a partir das partes
recebidas. Outras informações podem ainda estar contidas neste cabeçalho, como, por exemplo, o
tamanho da mensagem ou o instante de envio.
Na camada 3, é feita a escolha das linhas de saída e um novo cabeçalho, H3, é introduzido às
mensagens. Na camada 2, além de um cabeçalho, H2, é introduzido também um sufixo, T2, contendo
informações específicos a esta camada, por exemplo, controle de erro. A mensagem é finalmente entregue
à camada 1 para emissão via meio físico.
No sistema destinatário, o processo inverso acontece, sendo que as mensagens vão subindo, de
camada em camada, e os cabeçalhos retirados nas camadas respectivas, de modo a evitar que estes sejam
transferidos às camadas que não lhes dizem respeito.
Um aspecto importante mostrado na figura 2.2 é o da comunicação virtual ocorrendo entre as
diferentes camadas pares. As camadas em cada nível possuem uma visão da comunicação horizontal,
mesmo se as mensagens são na realidade transmitidas às camadas inferiores pertencentes ao mesmo
sistema.
Arquiteturas de Redes 19
M
m
m
H4 M2H4 M1
H3 H4H4 M1H3 M2
H2 H3H4 M1H3 H4H2 M2
M
m
m
H4 M2H4 M1
H3 H4H4 M1H3 M2
H2 H3H4 M1H3 H4H2 M2
Protocolo
da Camada 2
Protocolo
da Camada 3
Protocolo
da Camada 4
Protocolo
da Camada 5
Protocolo
da Camada 6
Protocolo
da Camada 7
TRANSMISSOR RECEPTOR
Figura 2.2 - Ilustração da comunicação virtual numa arquitetura de rede.
2.3 DIFERENÇAS ENTRE SERVIÇO E PROTOCOLO
Embora sejam freqüentemente confundidos, serviço e protocolo são dois conceitos distintos. O
importante nesta distinção é de poder estabelecer a relação entre os dois conceitos.
O SERVIÇO corresponde a um conjunto de operações que uma camada é capaz de oferecer à
camada imediatamente superior. Ele define o que uma camada é capaz de executar sem se preocupar com
a maneira pela qual as operações serão executadas. O serviço está intimamente relacionado com as
interfaces entre duas camadas, sendo a inferior a fornecedora do serviço e a superior a usuária deste.
O PROTOCOLO define um conjunto de regras que permitem especificar aspectos da realização do
serviço, particularmente, o significado dos quadros, pacotes ou mensagens trocadas entre as entidades
pares de uma dada camada. A nível de uma determinada camada, o protocolo pode ser mudado sem
problemas, desde que as interfaces com a camada superior e inferior não sejam alteradas, ou seja, que elas
continuem a ter a mesma visibilidade no que diz respeito aos serviços realizados pela camada que foi
alterada; isto corresponde, na verdade, a um certo desacoplamento entre os conceitos de serviço e
protocolo.
2.4 QUESTÕES DE PROJETO RELACIONADAS ÀS CAMADAS
Algumas questões de projeto fundamentais das redes de computadores estão presentes em
diversas camadas. A seguir serão discutidas as mais importantes.
Todas as camadas precisam de um mecanismo para identificar os transmissores e receptores.
Como em geral uma rede tem muitos computadores, e alguns deles têm vários processos, é necessário um
meio para que um processo de uma máquina especifique com quem ele deseja se comunicar. Como pode
haver vários destinos, há a necessidade de se criar uma forma de endereçamento para definir o destino
específico.
Outra preocupação recai sobre as direções do tráfego. Em alguns sistemas, os dados são
transferidos em apenas uma direção. Em outros, eles podem ser transferidos em ambas as direções, mas
não simultaneamente. Também é possível transmitir em ambas as direções simultaneamente. O protocolo
também deve determinar o número de canais lógicos correspondentes à conexão e quais são as suas
Arquiteturas de Redes 20
prioridades. Muitas redes oferecem pelo menos dois canais lógicos por conexão, um para dados normais e
outro para dados urgentes.
O controle de erro é uma questão importante, pois os circuitos de comunicação física podem
não ser perfeitos. Muitos códigos de detecção e correção de erros são conhecidos e as partes envolvidas
em uma conexão devem chegar a um consenso quanto ao que deve ser usado. Além disso, o receptor deve
ter alguma forma de informar ao emissor as mensagens que foram recebidas corretamente e as que não
foram.
Nem todos os canais de comunicação preservam a ordem das mensagens enviadas por eles.
Para lidar com uma possível perda de seqüência, o protocolo deve fazer uma provisão explícita para que o
receptor possa remontar adequadamente os fragmentos recebidos. Uma solução óbvia é numerar os
fragmentos,mas isso ainda deixa aberta a questão do que deve ser feito com os fragmentos que chegam
fora de ordem ou, pior ainda, o que fazer quando algum ou alguns se perdem.
Um problema que deve ser resolvido em diversas camadas é a falta de habilidade de todos os
processos para aceitarem arbitrariamente mensagens longas. Esta propriedade nos leva ao uso de
mecanismos para desmontar, transmitir e remontar mensagens. Uma questão é o que fazer quando
estas unidades se tornam tão pequenas que o envio de cada uma em separado se torna ineficiente. Nesse
caso a solução é reunir as pequenas mensagens com um destino comum em uma grande mensagem e
desmembrá-la na outra extremidade.
Uma outra questão que afeta todas as camadas diz respeito à velocidade dos dados,
particularmente quando o emissor é mais rápido que o receptor. Várias soluções foram adotadas e serão
discutidas posteriormente. Algumas delas trabalham com a possibilidade do receptor determinar
dinamicamente sua situação atual. Outras limitam o emissor a uma taxa de transmissão predeterminada.
Quando for inconveniente, ou algumas vezes caro, configurar uma conexão para cada par de
processos de comunicação, a camada inferior pode usar a mesma conexão para diversas conversações não
relacionadas. Desde que seja feita de modo transparente, a multiplexação e a demultiplexação de
conexões podem ser executadas por qualquer camada.
Quando houver vários caminhos entre a origem e o destino, um deles deve ser escolhido.
Algumas vezes essa decisão deve ser dividida em duas ou mais camadas. Para enviar dados de Londres
para Roma, por exemplo, devem ser tomadas duas decisões: uma de alto nível, decidindo sobre o trajeto a
ser escolhido (via França ou Alemanha, com base nas respectivas leis de privacidade) e uma de baixo
nível, escolhendo sobre quais dos circuitos físicos disponíveis os dados serão transmitidos (com base na
carga de tráfego atual).
2.5 INTERFACES E SERVIÇOS
Conforme já mencionado, a função de cada camada é oferecer serviços para a camada acima
dela. Os elementos ativos de uma camada, ou seja, os processos que a implementam são chamados
entidades. Estas podem ser entidades de software ou de hardware. Às entidades localizadas em
diferentes sistemas, mas associadas a um mesmo nível (ou camada), dá-se o nome de entidades pares. As
entidades recebem também uma denominação complementar em função da camada à qual elas estão
relacionadas — por exemplo, entidade de aplicação, entidade de transporte, entidade de enlace, entre
outras.
As entidades de uma camada N (ou entidades N) implementam um serviço que é utilizado pela
camada N+1. Assim, a camada N é dita ser um fornecedor de serviço e a camada N+1 é denominada
usuária de serviço.
Por outro lado, a camada N poderá utilizar os serviços da camada imediatamente inferior, a
camada N-1, para oferecer os serviços à camada superior. Ela pode ainda oferecer diferentes categorias
(ou classes) de serviços: serviços mais eficientes e mais “caros” ou serviços lentos e “econômicos”.
Os serviços oferecidos por uma camada são acessíveis em pontos de acesso aos serviços, ou
SAP (Service Access Point). Os SAPs da camada N são os lugares onde a camada N+1 poderá ter acesso
aos serviços oferecidos, cada SAP sendo identificado por um endereço único. Por exemplo, os SAP de
uma rede telefônica são as tomadas às quais podem ser conectados os aparelhos telefônicos e seus
endereços são os números de telefone associados à tomada considerada.
Para que duas camadas possam trocar informações, existe uma série de regras a serem
respeitadas, definidas pela interface. Através de uma interface, a camada N+1 envia uma unidade de
dados de interface, ou IDU (Interface Data Unit) à entidade da camada N pelo SAP. A IDU é composta
Arquiteturas de Redes 21
de uma parte denominada unidade de dados de serviço, ou SDU (Service Data Unit) e de outras
informações de controle. A SDU é a informação transmitida via rede à entidade par e, em seguida, à
camada N+1. A informação de controle é utilizada para auxiliar a gestão da camada inferior em seu
trabalho (por exemplo, o número de bytes compondo a SDU correspondente).
Para transmitir uma SDU, a entidade da camada N pode fragmentá-la em diversas partes, e cada
parte vai receber um cabeçalho, sendo enviada como uma unidade de dados de protocolo, ou PDU
(Protocol Data Unit). Os cabeçalhos de PDU são utilizados pelas entidades pares para o transporte do
protocolo. Elas identificam a PDU contendo os dados e aquelas contendo informações de controle
(números de seqüência, contagens, etc). A figura 2.3 ilustra o processo descrito. As PDUs recebem
normalmente uma denominação segundo a camada à qual estão associadas. Por exemplo, as PDUs de
aplicação são ditas APDU, assim como as de apresentação são as PPDU, as de sessão SPDU, e assim por
diante.
ICI SDU
ICI SDU SDU
SAP
Camada
N+1
Camada
N
Interface
Cabeçalho
N-PDU
IDU
Figura 2.3 - Ilustração dos diferentes conceitos associados a interface entre camadas.
2.6 SERVIÇOS ORIENTADOS À CONEXÃO E SEM CONEXÃO
As camadas de uma arquitetura de rede podem oferecer diferentes classes de serviços às camadas
superiores. Estes serviços podem ser orientados a conexão ou não orientados a conexão (também
chamada sem conexão).
No que diz respeito ao serviços orientados à conexão, podemos citar como exemplo típico o
sistema telefônico. Para que seja possível falar com alguém no telefone é necessário, inicialmente, tirar o
fone do gancho, digitar (ou discar) um número, esperar que o interlocutor atenda, falar com a pessoa que
precisamos e, finalmente, desligar.
Este é o princípio de base de um serviço orientado conexão:
• estabelecimento da conexão,
• utilização do serviço (ou enviar mensagem) e
• término da conexão.
O aspecto principal da conexão é o fato de que ela funciona como uma espécie de canal virtual
através do qual irão transitar as mensagens envolvidas na realização do serviço.
Já os serviços sem conexão são estruturados como o sistema postal, onde cada mensagem (ou
carta, se consideramos o exemplo citado) contém o endereço do destinatário e é encaminhada no sistema,
independente de outras. O princípio básico é então apenas: enviar mensagem.
Normalmente, se duas mensagens são enviadas a um mesmo destinatário, a primeira a ser
enviada deve ser a primeira a ser recebida. Por outro lado, neste modo de serviço pode ocorrer que uma
mensagem seja atrasada fazendo com que a segunda mensagem seja recebida primeiro. Já nos serviços
orientados conexão, isto jamais poderá acontecer.
Cada serviço é caracterizado por uma qualidade de serviço. Tendo em vista o parâmetro
qualidade, os serviços podem ser divididos em confiável e não-confiável. Um serviço dito confiável é
aquele em que os dados não podem ser jamais perdidos, ou melhor, jamais podem deixar de realizar o
Arquiteturas de Redes 22
serviço adequadamente e, por vezes, algum mecanismo de recuperação em caso de falha deve ser
utilizado. Serviços não confiáveis são aqueles onde, eventualmente, dados podem ser perdidos e não
recuperados pela camada em questão.
Normalmente, a implementação de serviços confiáveis é feita através da definição de mensagens
de reconhecimento enviadas pelo receptor, para cada mensagem recebida do emissor. Este processo,
embora extremamente benéfico, introduz uma lentidão na transferência de dados, o que significa que nem
sempre ele é desejável num sistema.
Os serviços confiáveis orientados conexão apresentam duas variantes. No primeiro caso, as
fronteiras das mensagens são sempre preservadas. Se duas mensagens de 1 Kbytes são enviadas, elas
chegarão sob a forma de duas mensagens de 1 Kbytes e nunca como uma única mensagem de 2 Kbytes. Já
na segunda variante, se uma mensagem de 2 Kbytes é recebida, não há como identificar se ela foi enviada
realmente como uma única mensagem de 2 Kbytes, como duas mensagens de 1 Kbytes, ou ainda como
2048 mensagens de 1 byte. Porém em algumas aplicações, é necessário 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 páginas.
No que diz respeito aos dois tipos de serviços (orientados conexão e sem conexão), nem todas as
aplicações requerem a utilização de conexão. Um exemplo disto pode ser o de uma aplicação de correio
eletrônico. Pode-se imaginar uma aplicação de correio em que o usuário não se interesse no
estabelecimento de conexão e tampouco a uma confiabilidade de 100% no que diz respeito à chegada das
mensagens. Os serviços sem conexão e não-confiáveis são denominados serviços de datagrama.
Existem casos, porém, em que, apesar de não necessitar o estabelecimento de conexão, a
confiabilidade é essencial. O serviço utilizado neste caso é dito de datagrama com reconhecimento. O
serviço de pedido-resposta já é um outro tipo de serviço no qual o emissor envia um datagrama contendo
um serviço e o receptor envia um outro contendo a resposta a este pedido.
A tabela a seguir ilustra os diferentes serviços com e sem conexão, com exemplos de aplicação
destes serviços.
SERVIÇOS MODALIDADES EXEMPLO
Transferência confiável de mensagens com conexão seqüência de páginas
Transferência confiável de bytes com conexão login remoto
Transferência não confiável com conexão voz digitalizada
Datagrama não confiável sem conexão correio eletrônico
Datagrama confiável sem conexão correio eletrônico registrado
Pedido-Resposta sem conexão consulta a bases de dados
2.7 PRIMITIVAS DE SERVIÇO
Um serviço é definido formalmente por um conjunto de primitivas (ou operações) disponíveis a
um usuário ou a outras entidades para o acesso àquele serviço. Estas primitivas permitem indicar a ação a
ser executada pelo serviço ou ainda um pedido de informação sobre uma ação executada previamente.
As primitivas de serviço são divididas em quatro classes: pedido (request), indicação
(indication), resposta (response) e confirmação (confirm).
A tabela a seguir mostra o significado de cada uma destas primitivas no que diz respeito à
execução de um serviço.
PRIMITIVA SIGNIFICADO
request Pedido enviado por uma entidade que solicita um serviço
indication Através dela, a entidade par é informada de uma solicitação de serviço
response A entidade par responde ao pedido de serviço
confirm A entidade solicitante é informada do resultado do serviço
Arquiteturas de Redes 23
Uma analogia com o sistema telefônico pode ser de grande utilidade para que se entenda a
utilização dessas primitivas. Nesse caso considere os procedimentos necessários para você telefonar à tia
Nena e convidá-la para tomar um chá em sua casa:
AÇÃO PRIMITIVA
1 Você disca o número do telefone da casa de sua tia. CONNECT.request
2 O telefone dela toca. CONNECT.indication
3 Ela tira o telefone do gancho. CONNECT.response
4 Você ouve o “alô” dela. CONNECT.confirm.
5 Você a convida para o chá DATA.request
6 Ela ouve o convite DATA.indication
7 Ela diz que terá o maior prazer em ir a sua casa. DATA.request
8 Você ouve a aceitação DATA.indication
9 Você coloca o telefone no gancho DISCONNECT.request
10 Ela ouve você colocar o telefone no gancho e faz o mesmo. DISCONNECT.indication
A figura 2.4 mostra essa mesma seqüência de procedimentos como uma série de primitivas de
serviço, inclusive a confirmação final de encerramento de conexão. Cada procedimento envolve a
interação entre duas camadas de um dos computadores. Cada request ou response provoca logo em
seguida um indication ou confirm do outro lado.
Camada N+1 1 5 9
Camada N 4 8 Você
1 2 3 4 5 6 7 8 9 1 Tempo
Camada N+1 3 7
Camada N 2 6 10 Tia Nena
Figura 2.4 – Mapeamento das primitivas do convite para tomar chá. Os números próximos à extremidade
das setas fazem referência às primitivas de serviço utilizadas no exemplo anterior.
Vamos agora considerar o exemplo de utilização das primitivas de serviço para o seguinte
serviço orientado à conexão com oito primitivas de serviço:
CONNECT.request – Solicita o estabelecimento de conexão.
CONNECT.indication – Sinalização da parte para a qual foi feita a chamada.
CONNECT.response – Usada pelo receptor da chamada para aceitá-la (ou rejeitá-la).
CONNECT.confirm – Permite que a origem da chamada saiba que ela foi aceita.
DATA.request – Solicita o envio de dados.
DATA.indication – Sinal de chegada de novos dados.
DISCONNECT.request – Solicita o encerramento de uma conexão.
DISCONNECT.indication – Sinal do par sobre a solicitação.
Para requisitar o estabelecimento de uma conexão, a entidade que quer iniciar o diálogo envia
uma primitiva de serviço de pedido de abertura de conexão, CONNECT.request que vai se refletir, na
entidade destinatária, por uma primitiva de indicação, CONNECT.indication.
A entidade que recebeu a indicação vai enviar uma primitiva de resposta, CONNECT.response,
para informar se esta aceita ou não a conexão. Finalmente, a entidade emissora vai saber do resultado do
seu pedido pela recepção de uma primitiva de serviço de confirmação, CONNECT.confirm.
Parâmetros podem ser associados às primitivas; no caso do serviço de conexão, por exemplo, os
parâmetros podem especificar os seguintes aspectos relacionados à conexão desejada: a máquina com a
qual se deseja dialogar, o tipo de serviço desejado, o tamanho máximo das mensagens, etc... Se a entidade
invocada não está de acordo com os parâmetros contidos na primitiva de indicação recebida, esta pode
Arquiteturas de Redes 24
fazer uma contra-proposta, através dos parâmetros da primitiva de resposta, que será transmitida à
entidade emissora através dos parâmetros da primitiva de confirmação.
Os serviços podem ser de dois tipos: confirmados ou não-confirmados. No caso dos serviços
confirmados, as quatro classes de primitivas são definidas, ou seja, pedido (request), indicação
(indication), resposta (response) e confirmação (confirm). Isto significa que a entidade que requisitou o
serviço terá sempre uma informação sobre as condições de realização deste e até se este foi realizado com
sucesso ou não.
Nos serviços não-confirmados, apenas as duas primeiras classes de primitivas são utilizadas, ou
seja, pedido (request) e indicação (indication). Neste tipo de serviços, a entidade emissora do pedido não
receberá nenhuma informação sobre as condições de realização do serviço requisitado, nem mesmo se
este foi realizado. A tabela a seguir apresenta um conjunto de primitivas associadas a um serviço
orientado à conexão.
PRIMITIVA SIGNIFICADO
CONNECT.request pedido de estabelecimento de uma conexão
CONNECT.indication indicação à entidade invocada
CONNECT.response utilizada para indicar a aceitação ou não da conexão
CONNECT.confirm informa à entidade emissora se a conexão é aceita
DATA.request pedido de envio de dados
DATA.indication sinalização da chegada de dados
DISCONNECT.request pedido de término da conexão
DISCONNECT.indication indicação do pedido à entidade par
Neste exemplo, CONNECT é um serviço confirmado enquanto os serviços DATA e
DISCONNECT são não-confirmados. A figura 2.5 permite ilustrar as trocas de primitivas de serviço
entre as camadas no caso de um serviço confirmado. O exemplo utilizado é o serviço CONNECT.
SISTEMA A
Camada N+1
Camada N
connect_request
connect.confirm
SISTEMA B
Camada N+1
Camada N
connect.indication
connect.response
Figura 2.5 - Ilustração da troca de primitivas de serviço (confirmado).
Arquiteturas de Redes 25
Capítulo 3 - Arquiteturas de Redes
3.1 INTRODUÇÃO
A solução para o compartilhamento de recursos físicos e lógicos juntamente com a vantagem de
se ter um sistema descentralizado foi alcançada através da interconexão das CPUs entre si. É a isso que se
propõem as redes de computadores. A solução para a comunicação de computadores em termos de longa
distância foi a tecnologia de comutação de pacotes, que solucionou o problema da linha telefônica
dedicada. Para pequenas distâncias a solução foi a implantação de redes locais.
De uma forma geral, o objetivo de uma rede é tornar disponível a qualquer usuário todos os
programas, dados e outros recursos independente de suas

Continue navegando