Você está na página 1de 289

Comunicao de Dados

e
Redes de Computadores

ndice
ndice .............................................................................................................. 2
1 Histrico e Evoluo dos Sistemas e das Redes de Computadores........ 3
2 Transmisso de Dados................................................................................ 8
3 Sistemas de Comunicao........................................................................ 19
4 Erros .......................................................................................................... 31
5 Interface de Comunicao de Dados ...................................................... 36
6 Protocolos .................................................................................................. 45
7 Modelo Hierrquico de Protocolos e Padronizao .............................. 59
8 Projeto e Desenvolvimento de Protocolos .............................................. 72
9 Redes Locais, Ethernet e Internet........................................................... 96
10 Camada de Rede ..................................................................................... 135
11 Camada de Rede na Internet................................................................. 164
12 Camada de Transporte .......................................................................... 168
13 Camada de Transporte na Internet ...................................................... 172
14 Camada de Sesso................................................................................... 179
15 Implementao da Camada de Sesso.................................................. 203
16 Camada de Apresentao ...................................................................... 211
17 Camada de Aplicao............................................................................. 226
18 ATM......................................................................................................... 241
19 Redes Sem Fio e QoS.............................................................................. 269

Captulo

1
Histrico e Evoluo dos Sistemas e das Redes
de Computadores
1.1 Histrico da Computao
O baco, que surgiu por volta de 3000 a.C., o
mais antigo instrumento de computao conhecido. O
modelo da figura ao lado o baco chins, ainda
usado no oriente. Por ser eficiente e simples o baco
foi o principal instrumento de clculo at o sculo
XVII quando Blaise Pascal, em 1642, inventou a
primeira calculadora mecnica capaz de realizar
adies que ficou conhecida como Pascalina.
Em 1670 Gottfried von Leibniz inventou uma calculadora que efetuava as quatro
operaes fundamentais e extraa a raiz quadrada.
Joseph Marie Jacquard introduziu, em 1801, nos teares de sua fbrica um sistema
de cartes perfurados que representavam justamente os desenhos pretendidos,
inventando assim, o primeiro tear programvel.
A inveno da Mquina Analtica (tambm mecnica) por Charles Babbage,
professor de matemtica, por volta de 1833, abriu caminho para a construo do que
hoje seria descrito como um computador digital mecnico automtico totalmente
controlado por um programa.
Alguns anos depois George Boole iniciava um processo que implicaria em
importantes aplicaes tecnolgicas, publicando em 1847 e em 1854 os livros A
Anlise Matemtica da Lgica e Uma Investigao das Leis do Pensamento
respectivamente, dando a ele o ttulo de inventor da lgica matemtica. Sua proposta
era de que qualquer coisa podia ser representada por smbolos e regras. O
desenvolvimento de suas idias deu origem chamada lgebra de Boole.
Em 1890, Hermann Hollerith desenvolveu um equipamento que visava minimizar
o imenso trabalho dispensado no censo dos Estados Unidos. Seu invento baseava-se
nos cartes perfurados idealizados por Jacquard e o sucesso foi to grande que ele
fundou, em 1896, a Tabulation Machine Company. A TMC veio a fundir-se com mais
duas empresas formando a Computing Tabulation Recording Company. A mesma
CTRC, anos depois da morte de Hollerith, mudava de nome e nascia a IBM Internacional Business Machine.
J no sculo XX, nos anos 30, Alan Turing inventou um dispositivo de uso geral,
capaz de receber instrues para trabalhar com qualquer tipo de informao, chamado
de Mquina de Turing. A mquina funcionaria usando mecanismos relacionados com
conceitos de clculo de entrada, sada e com um programa.
Na mesma poca, Konrad Zuse criou o primeiro computador eletromecnico
chamado Versuchmodell 1 ou Z-1. Foi a primeira calculadora universal binria

controlada por um programa. Zuse ainda produziu mais trs mquinas (Z2, Z3 e Z4),
que aperfeioaram a Z1.
Anos mais tarde, o matemtico hngaro John von Neumann, por volta de 1945,
formalizou o projeto lgico de um computador. Ele sugeriu que as instrues fossem
armazenadas na memria do computador. At ento elas eram lidas de cartes
perfurados e executadas, uma a uma. Participou do projeto de construo do ENIAC
Eletronic Numerical Integrator and Calculator (University of Pensylvania), construdo
durante a Segunda Guerra Mundial, dentro de um programa do exrcito americano
que procurava automatizar o clculo de tabelas balsticas. Foi inaugurado em
fevereiro de 1946, era uma calculadora universal programvel e eletrnica, pesava
cerca de 30 toneladas, com 1500 rels, 17 mil vlvulas, e 150 kW de potncia. Tanto
as operaes aritmticas quanto as de armazenamento de dados eram conduzidas
eletronicamente.
No final da dcada de 40, Claude Shannon, um estudante do MIT, em sua tese de
mestrado criou as operaes lgicas usando cdigo binrio.
J no incio da dcada de 50, vrias mquinas foram construdas. Elas eram todas
diferentes, mas todas seguiam a chamada arquitetura de Von Neumann, delineada nos
primeiros trabalhos sobre a construo de computadores digitais. Nesta dcada
tambm surgem as quatro primeiras mquinas a transistores SEAC, TRANSAC S100,
Atlas Guidance Model I e CDC 1604, todas de construo americana.
Os circuitos integrados foram desenvolvidos e aperfeioados nos anos 60 sob
influncia do programa espacial americano, possibilitando o surgimento de
minicomputadores que eram mais poderosos e bem menores.
Em 1971, a Intel lana o primeiro microprocessador. Durante esta dcada tambm
foram desenvolvidos grandes computadores chamados de mainframes e surgiu o
primeiro computador pessoal, o Apple II, feito em 1976 pelos americanos Steven Jobs
e Stephan Wozniak.
A IBM lanou o PC/XT com um disco rgido de 110Mbits em 1983.
1.2 Histrico da Comunicao de Dados
A comunicao de dados comeou com a inveno do telgrafo por Samuel F.
Morse em 1838. As mensagens eram codificadas em cadeias de smbolos binrios e
ento transmitidas manualmente por um operador atravs de um dispositivo gerador
de pulsos eltricos. Foram implantadas cerca de 40 milhas de linha para telgrafo em
1844.
Usando as linhas de telgrafo, em 1860, realizou-se a transmisso de 15bits/s.
Dados de radar, codificados em binrio, foram transmitidos via facilidades de
telgrafo para computadores na dcada de 1940. Usavam a Bell System (linhas e
troncos) Common carries.
Teletypewriter As common carries tornaram disponveis dispositivos de
entrada/sada que poderiam ser usados para enviar informao escrita ou codificada
sobre linhas telefnicas.
No final da dcada de 50 ocorreu a exploso de desenvolvimentos para facilitar o
uso de computadores remotamente.

Os primeiros terminais interativos foram desenvolvidos na dcada de 60 e


permitiam aos usurios acessar o computador central atravs de linhas de
comunicao. Nesta poca surgiram os sistemas de Time Sharing (tempo
compartilhado).
Fornecimento de computadores com interfaces (terminais, modems e linhas
analgicas) para batch processing. O computador roda no modo batch em uma
parte do dia. Na outra parte do dia o computador coleta informaes de locais
remotos.

Computador com controlador para multilinhas (multiponto).

Com o crescimento das redes em tamanho, nmero de terminais e complexidade.


Uma das primeiras redes de computadores, experimentais, entrou em operao
entre 1969 e 1970, atravs do projeto ARPANET estimulado pela ARPA (Advanced
Research Projects Agency) [Agncia para Projetos de Pesquisa Avanados] que
passou a se chamar DARPA e faz parte do Departamento de Defesa dos Estados

Unidos. Quatro Universidades americanas foram interligadas por esta rede que
utilizava a tecnologia de comutao de pacotes. A primeira demonstrao pblica do
sistema ocorreu em 1972 e a primeira conexo internacional da ARPANET ocorreu
em 1973 com a University College of London na Inglaterra.
A idia do projeto ARPANET era a construo de um sistema de comunicaes
que no pudesse ser interrompido por avarias locais. Essa preocupao era devido
guerra fria que estava no seu auge. Os militares americanos queriam uma rede de
telecomunicaes que no possusse uma central e que no pudesse ser destruda por
nenhum ataque localizado.
Anos mais tarde, o DCA (Defense Communication Agency) dividiu a ARPANET,
formando duas redes, sendo que a parte maior ficou conhecida como MILNET e a
outra parte ficou reservada para futuras pesquisas.
1.3 Histrico e Escopo da Internet
Em meados de 1979, a ARPA criou o ICCB (Internet Control and Configuration
Board) que reunia pesquisadores envolvidos no desenvolvimento do TCP/IP
(Transmission Control Protocol)/(Internet Protocol). No incio dos anos 80, surgia a
Internet, a partir do momento em que a ARPA passou a adotar os novos protocolos
TCP/IP nas mquinas de sua rede de pesquisa. A partir disso a ARPANET se tornou o
backbone da Internet.
Para incentivar pesquisadores das universidades a adotar e usar os novos
protocolos, o DARPA tornou disponvel uma implementao de baixo custo. Nesta
poca, muitas universidades usavam o sistema operacional UNIX disponvel na
University of California: Berkeley Software Distribution, tambm chamado Berkeley
UNIX ou BSD UNIX. A ARPA conseguiu atingir cerca de 90% dos departamentos de
cincia da computao das universidades com a integrao do TCP/IP ao BSD UNIX.
Um usurio experiente de UNIX pode facilmente aprender a fazer uma cpia
remota de arquivo (rpc), idntico a cpia do UNIX.
O BSD UNIX forneceu uma nova abstrao do sistema operacional conhecida
como socket, que permitem aos programas de aplicao acessar os protocolos de
comunicao.
Em 1986, o NSF (National Science Foundation) financiou vrias redes regionais
para se conectarem com as principais instituies voltadas para pesquisa cientfica e
integrarem a Internet.
Inicialmente os nomes e endereos de todos os computadores ligados a Internet
eram mantidos em um arquivo e editados mensalmente. J em 1985 um banco de
dados central j no seria o suficiente.
Um novo mecanismo foi desenvolvido, o Domain Name System (com mquinas
chamadas name servers servidores de nomes).
1986 20.000 computadores ligados a Internet;
1987 - taxa de crescimento de 15% ao ms;
1990 200.000 computadores;
1994 3.000.000 de computadores conectados Internet em 61 pases.
No Brasil, as redes comearam a surgir em 1988, ligando universidades e centros
de pesquisa do Rio de Janeiro, So Paulo e Porto Alegre a instituies nos Estados
Unidos. No mesmo ano, o Ibase (Instituto Brasileiro de Anlises Econmicas e

Sociais), comeou a testar o AlterNex, o primeiro servio brasileiro de Internet noacadmica e no-governamental que, em 1992, seria aberto ao acesso pblico.
A RNP (Rede Nacional de Pesquisas) surgiu em 1989 para unir as redes que
ligavam as universidades e centros de pesquisas e formar um backbone de alcance
nacional.
As diretrizes tcnicas, a coordenao das pesquisas e desenvolvimento dos
protocolos TCP/IP foi realizado pelo IAB (Internet Architecture Board) que surgiu em
1983 quando a ARPA reorganizou o ICCB.
A partir de 1989 a IAB passou a se encarregar dos aspectos polticos e comerciais
do binmio TCP/IP - Internet. Os dois principais grupos do IAB so:
IRTF - Internet Research Task Force (grupos de pesquisa), coordena as
atividades de pesquisa do TCP/IP;
IETF - Internet Engineering Task Force (grupos de trabalho), concentra
problemas de engenharia;
Os relatrios tcnicos da documentao de trabalhos na Internet, proposio de
protocolos novos ou revisados e padres dos protocolos TCP/IP so chamados de
RFCs (Requests for Comments). Anteriormente foram publicados os IENs (Internet
Engineering Notes).
INTERNIC (Internet Network Information Center) trata de muitos detalhes
administrativos para a Internet e distribui RFCs e IENs.

1.3.1 Protocolos e Padronizao na Internet


Usar padres existentes se tais padres se aplicam e inventar novos protocolos
somente quando os existentes forem insuficientes, mas estar preparado para migrar
para os padres internacionais quando eles se tornarem disponveis.

Captulo

2
Transmisso de Dados
2.1 Transmisso de Dados
Na transmisso analgica os sinais eltricos variam continuamente entre todos
os valores possveis, permitidos pelo meio de transmisso.
Ex.: Microfone de telefone

Na transmisso digital uma srie de sinais que tem apenas dois valores
eltricos (ou gama discreta de valores) transmitida.
Ex.: Telegrafia (Morse)

Este ltimo tipo de sinal obtido pela rpida inverso do estado corrente.
0

Por emisso

ausncia

presena

Por interrupo

presena

ausncia

Por dupla corrente

-1

+1

CCITT Comit Consultivo Internacional de Telefonia e Telegrafia


EIA Associao das Industrias Eletrnicas
A transmisso digital a que mais se adapta forma binria de codificao
usada em processamento eletrnico de dados.

2.1.2 Modulao
As limitaes que meios de transmisso impem aos sinais transmitidos
podem ser contornadas atravs do processo de modulao, que consiste em se
imprimir uma informao em uma onda portadora pela variao de um ou mais dos
seus parmetros:

Amplitude
Varia a amplitude da portadora conforme a amplitude do sinal modulante. A
principal vantagem dessa tcnica a facilidade para realizar a modulao e
demodulao, entretanto tem duas grandes desvantagens: a velocidade da troca
de amplitude limitada pela largura de banda da linha e a outra que
pequenas mudanas da amplitude sofrem deteco no confivel. As
desvantagens da modulao em amplitude fizeram com que esta tcnica no
fosse mais utilizada pelos modems, a no ser em conjuno com outras
tcnicas.

Freqncia
A freqncia da onda portadora alterada de acordo com o sinal
modulante. Essa tcnica tambm conhecida como FSK (Frequency Shift
Keying). As suas desvantagens so a limitao da variao da freqncia pela
largura de banda da linha e a distoro causada pelas linhas torna a deteco
mais difcil do que na modulao de amplitude.

Fase
A fase da onda portadora varia de acordo com o sinal modulante. Essa tcnica,
para detectar a fase de cada smbolo, requer sincronizao de fase entre
receptor e transmissor, complicando o projeto do receptor.

A escolha do tipo de modulao de acordo com os requisitos e as necessidades


do projeto uma deciso fundamental para garantir em grande parte o xito de um
sistema de comunicao.

2.1.3 Demodulao
o processo de recuperao da informao (extrao do sinal modulante) de
uma onda portadora, sendo necessrio que o processo de modulao seja reversvel.

2.1.4 MODEM
O MODEM (MOdulador-DEModulador) o dispositivo que realiza a
adequao dos sinais binrios ao canal de transmisso, servindo de interface entre este
canal e o terminal de dados e permitindo a transmisso de sinais a longa distncia.

Figura 2.3 - Rede com Modem


Como a banda passante do sistema telefnico de 300 Hz a 3300 Hz o
espectro de freqncia do pulso deve ser deslocado para a parte do espectro disponvel
para transmisso.
A tcnica de modulao permitiu diversificao de aplicaes:

Transmisso de vrias informaes no mesmo meio, utilizando freqncias


diferentes;

Fonia e telegrafia no mesmo canal;

Vdeo, voz e dados no mesmo canal.

A maioria dos modems em operao transmite uma onda portadora senoidal


continua que modificada de acordo com os dados que devem ser enviados.
a = A seno ( 2fT + )

10

a = Amplitude instantnea da portadora no instante T.


A = Amplitude mxima da portadora.
f = Freqncia da portadora.
= Fase da portadora.
Os valores A, f ou podem ser variados, para fazer a onda portar informao,
como pode ser visto na figura abaixo.

Figura 2.4 Formas de Modulao

2.2 Linhas de Transmisso


Os trs principais obstculos que uma linha de transmisso oferecem ao envio
de um sinal so: atenuao, distoro de retardo e rudo.
Uma fonte de energia num extremo e uma carga no extremo oposto,
conectados pela linha de transmisso.

Figura 2.5. Linha de Transmisso

11

Uma linha telefnica tpica de 0,1 Km de comprimento pode ser simulada


atravs do circuito abaixo, representando um filtro passa-baixa (circuito eltrico que
permite apenas a passagem de sinais eltricos com freqncias abaixo de um
determinado valor limite), no nosso caso com freqncia de corte de 3,3kHz.

Figura 2.6 Filtro passa-baixa representando a linha telefnica de 0,1 km


Distoro uma mudana indesejada na forma de onda.

2.2.1 Distoro por Atenuao


O antigo CCITT definiu as caractersticas mnimas do canal de voz
internacional, com qualidades especiais para transmisso de dados, atravs da
recomendao M-102.
A distoro por atenuao (distoro de amplitude) consiste numa perda de
energia a medida que o sinal se propaga e diminuio da relao sinal/rudo,
dificultando a recuperao da informao transmitida na sua chegada.

12

Figura 2.7 - Variao permissvel da atenuao

2.2.2 Distoro por rudo


Consiste na interferncia provocada por uma energia indesejada proveniente
de outras fontes, podendo ser rudo trmico, alterando as propriedades do meio de
transmisso, e conseqentemente a qualidade do sinal; acoplamento indutivo podendo
provocar linha cruzada em linha telefnica.
Quando os rudos so adicionados a um sinal que contm informao, esta
pode ser parcialmente mascarada ou totalmente eliminada. Dependendo do rudo pode
ser difcil elimin-lo, constituindo um dos problemas bsicos da comunicao eltrica.

2.2.3 Distoro por retardo


Tambm conhecida como distoro de fase, onde o sinal retardado mais em
algumas freqncias do que em outras.

2.8 - Variao permissvel do retardo


13

Caso a distoro do canal no se enquadre entre esses limites, devero ser


utilizados equalizadores que compensem a variao do tempo de retardo.

Figura 2.9 Sinal com e sem equalizao


Exemplo de uma distoro por retardo, supondo uma transmisso a 2000 bits/s
(usando modulao por freqncia).
-

0 = a 1000 Hz

1 = a 3000 Hz

retorno relativo 1 ms

bit 0 transmitido com mais rapidez acaba chegando ao receptor antes do


bit 1 que o precede.

Para transmitir os sinais de dados que se apresentam na forma de pulsos


retangulares necessitamos de uma largura de banda infinita. Como os canais possuem
uma largura de banda finita, os sinais devem ser adaptados atravs de processos de
codificao ou modulao, descritos acima.
Codificao Banda Base
Modulao Modem Analgico
Os sinais so normalmente definidos por suas caractersticas em funo do
tempo. Por outro lado, os sistemas fsicos tm suas caractersticas dependentes das
freqncias que os excitam (o sistema apresenta comportamento diferente e seletivo
em relao freqncia).

14

2.10 Interpretao das distores na onda quadrada

15

Aproximao de uma funo retangular por funes ortogonais.


Considerando a passagem de um pulso retangular por um filtro passa-baixas
ideal com freqncia de corte.
f1 = 1/2T
Lbulo central de largura 2T e lbulos laterais de largura T.

16

Resposta de um filtro passa-baixa ideal a um pulso regular de durao T segundos.

Passagem do sinal de dados atravs de um filtro passa-baixa ideal e recuperao do


sinal.
Reconhecimento do sinal de sada.
-

Analisando a cada T segundos a amplitude do sinal em comparao com o


nvel de deciso estabelecido. Caso a amplitude do sinal no instante de
amostragem seja superior ao do sinal de deciso reconhecido em pulso
correspondente a 1 bit.
Fixando-se um nvel de deciso e verificando-se a ocorrncia de transies
neste nvel. Estas transies so definidas quando o sinal ultrapassa nos
sentidos positivos e negativos a amplitude no nvel de deciso.

17

(A) Trem-de-pulsos original (onda quadrada)


(B) Componente constante
(C) Componente simtrica do trem-de-pulsos e suas principais componentes
senoidais
(D) Composio da fundamental com a 3 harmnica
(E) Composio da fundamental coma 3 harmnica, tomada com a mesma
aplitude
(F) Composio da fundamental com a 3 harmnica defasada de

18

Captulo

3
Sistemas de Comunicao
Arte do transporte de informao de um ponto a outro.

Modelo do Sistema de Comunicao


Para o tratamento conceitual seguro dos fenmenos em um sistema de
comunicaes necessrio se estabelecer um modelo simplificado que consiga
descrever as suas caractersticas essenciais de funcionamento.

Fonte e Destinatrio
Fonte

Destinatrio

A fonte produz informao, dispondo de elementos simples e smbolos.


1011

1001

0010 .....1101

smbolo
mensagem
Destinatrio a quem a informao dirigida.
Alfabeto de elementos: a = {0, 1} b = {A, B, C...}
Smbolo: conjunto ordenado de elementos.
O conjunto completo de smbolos forma o alfabeto de smbolos.
Do alfabeto b pode-se compor os smbolos AA, AB, ... ou AAA, BBA
A sada da fonte ser sempre de smbolos.
A mensagem o que a fonte produz, consistindo em um conjunto ordenado de
smbolos que a mesma seleciona de seu alfabeto, conforme critrios prprios.

19

A informao considerada relacionada com a aleatoriedade no aparecimento


dos smbolos.
A cada smbolo associado uma quantidade de informao que funo de
sua probabilidade de ocorrncia.
O problema bsico consiste em estudar a maneira como sero transmitidos
estes smbolos de modo que a informao associada no seja perdida nem alterada.
Canal: transporta os smbolos e a informao associada da fonte ao destino.

fonte

emissor

meio

receptor

destinatrio

rudo
canal

O Emissor: entrega um sinal de energia adequado (modulador).


O Meio: propaga a energia entregue pelo emissor at o receptor.
O Receptor: retira a energia do meio e recupera os smbolos (demodulador).
Problemas: rudos e distoro.

Codificador e Decodificador
Freqentemente a natureza dos smbolos gerados pela fonte no adequada
para acionar o canal de transmisso. Devemos ento alterar a natureza dos elementos
que feita pela codificao.

Fonte

A
B
...
Z

Codificador

11000
01110
...
10001

mensagem

mensagem codificada

AVE

11000 01111 10000

Alfabeto de Smbolos

Sada para o canal

20

Decodificador: acoplador de informao entre o canal e o destinatrio.

Modelo Completo de um Sistema de Comunicaes

fonte

codificador

emissor

meio

receptor

decodificador

rudo
canal

Sistemas de Telecomunicaes
Sinal
escrita
falada
Imagem esttica
dinmica
Dados

Tecnologia
Telegrafia
Telefonia
Facsmile
Televiso
Comunicao
de Dados

Palavra

Toda fonte de informao dispe de um conjunto de smbolos. No mecanismo


de seleo sucessiva de smbolos, para a composio de mensagem, se produz a
informao.
N = nm
Alfabeto de n elementos.
Smbolos compostos de m elementos dentre os n citados.
Nmero n de configuraes possveis arrumando-se n elementos tomados
m a m.
ex.: {1, 0} n = 2
m=5
N = 32
Variedade de um smbolo nmero total de elementos que compe as
configuraes possveis que pode assumir este smbolo.
V=N

N varia exponencialmente (manejo incmodo).


Empregando logaritmo passo de lei exponencial para linear.

21

destinatrio

V = log2 N = mlog2 n
Base dois expressa a variedade na unidade bit.

Bit, Dibit e Tribit


O pulso binrio apresenta a variedade de 1 bit. O bit um pulso que apresenta
2 nveis distintos {0, 1}.

Codificao Bit

V = log2 2 = 1 bit
O dibit um pulso que apresenta 4 nveis distintos, portanto a cada pulso
podem ser transmitidos dois bits.

Codificao Dibit

V = log2 4 = 2 bits
O tribit um pulso que apresenta 8 nveis distintos.
V = log2 8 = 3 bits

22

Se um sinal binrio transmitido na velocidade de sinal Vs (bit/s), exigindo


uma faixa B do sistema, poder ser transmitido com a mesma velocidade na faixa B/2
se modificado para dibit e na B/3 se transformado em tribit.

Baud
O nmero de amostras por segundo medido em baud. Durante cada baud
modulado um smbolo. Desse modo, uma linha de n bauds transmite n smbolos/s.
A faixa de passagem mnima B que o sistema deve possuir para permitir o
reconhecimento de uma seqncia de pulsos entrantes de durao T, deve deixar
passar a fundamental do padro.
B=

Vm=

1
T

1
2T

baud

o inverso do menor tempo presente no sinal.


Vm= 2B

bit 2 nveis
1
T bit/s
bit / s
Vs
=1
Vm
baud
Vs=

dibit 4 nveis
2
T bit/s
bit / s
Vs
=2
Vm
baud
Vs=

tribit 8 nveis
3
T bit/s
bit / s
Vs
=3
Vm
baud
Vs=

23

Como B relaciona com Vm, podemos concluir que usando a mesma largura de
faixa B, ao se transmitir o sinal dibit se consegue o dobro de Vs e com o tribit o triplo
de Vs.
O canal telefnico tem uma faixa de passagem de 3.100Hz e na prtica usado
para transmisso de sinais de dados at 2.400 baud.
Por isso quando se quer transmitir velocidade de sinalizao de 4.800 bit/s
neste canal, se usa um sinal dibit ao qual corresponde a velocidade de modulao de
2.400 baud. De modo similar, para se transmitir em sinal com Vs = 7.200 bit/s se
emprega o sinal tribit com a Vm de 2.400 baud.
necessrio ento, codificar o sinal de modo a casar as necessidades de
transmisso de informao com as necessidades de transmisso de sinal no meio.

Exerccio:
Um modem converte um sinal de 9.600 bit/s num sinal quadribit. Quantos
bauds tem a sada do modem? Qual a freqncia da fundamental desta sada? Este
sinal apropriado para transmisso em canal telefnico?
Vs = 9.600 bit/s 16 nveis
Vs = 4Vm
Vm= 2. 400 bauds
Vm= 2B

2.400 = 2B B = 1.200 Hz
Sim.

Informao e sua Medida


Quanto maior a probabilidade menor a dvida e menor a informao
adquirida.
Quantidade de informao prpria de um smbolo xi.
I ( xi ) = f [P ( xi )]

Informao Conjunto
Encontrar uma funo f adequada
Propriedades da funo:

24

a)Se p(x i ) = 1 , ento I(x i ) = 0


b)Se p(x i ) = 0 , ento I(x i ) =
c) I(x i ) decrescente com p(x i )
A funo I(x i ) = log p(x i ) satisfaz a todos os requisitos.
I(xi) = -log2 p(xi) shannon
A probabilidade de uma condio:
o

p=

n deeventos

favorvei s

n deeventos

nf
np

possvei s

Exerccio
Seja o experimento lanar um dado para tirar a face 6. So eventos possveis
as faces 1, 2, 3, 4, 5 e 6. O nico evento favorvel a face 6. A probabilidade de sair 6
:
1
p( 6 ) = = 0,16666...
6
Para a lngua inglesa foi feito um estudo de probabilidade de ocorrncia das
letras, a mais freqente sendo a letra e com a probabilidade de 0,131 e a menos
freqente, a letra z com a probabilidade de ocorrncia de 0,00077.
Quando num texto aparece a letra e, ela carrega uma informao prpria
(e) = log 0,131
= 2,95 shannen
2

J quando aparece a letra z a informao prpria do smbolo :


(z) = log 0,00077
= 10,36 shannen
2

Por ser mais rara, isto , menos provvel, a letra z traz mais informao
prpria.

Teleprocessamento
o processamento eletrnico de dados executado remotamente.
implementado por hardware e software voltados para a comunicao e por todo um
conjunto de regras que disciplinam esta relao.

25

ASPECTOS DA REALIZAO DE SISTEMAS DE


COMUNICAES
Trs tipos de necessidades em comunicaes:
a)Operao simplex quando a informao precisa ser transmitida apenas do ponto A
ao ponto B.
b)Operao semi-duplex quando a informao precisa ser transmitida em ambos os
sentidos, de modo alternado.
c)Operao duplex quando a informao precisa ser transmitida em ambos os
sentidos, de modo simultneo.
PONTO A

COD

MOD

DEC

DEM

CODEC

MODEM

PONTO B

EMISSOR
RECEPTOR

RECEPTOR

MEIO

EMISSOR

DEM

DEC

MOD

COD

Transceptor
RUDO

Canal

Pergunta: Voc pode ter operao full-duplex a dois fios?


Sistema Analgico: Sada da fonte e entrada no destinatrio so analgicos.
Sistema Digital:

Sada da fonte e entrada no destinatrio so digitais.

turnaround-time o espao de tempo nencessrio para reverso da direo da


transmisso entre 100 e 400 ms.

26

Caractersticas do Canal
Simplex

Half-Duplex

Full-Duplex

Figura 3.13
O sinal modulador pode ser de natureza analgica ou digital.

Portadora Senoidal

Moduladora Analgica
Moduladora Digital

Portadora Trem-de-pulso

Moduladora Analgica
Moduladora Digital

Modulao

Figura 3.14
Modulao em Portadora Senoidal
A senide um sinal contnuo e peridico, com os parmetros de fase,
freqncia e amplitude.
Ep(t) = portadora

Ep(t) = E0 cos(0t + 0)

E0 = amplitude da portadora.
0 = freqncia angular da portadora.
0 = fase inicial da portadora.

27

Escolhe-se um destes parmetros, que se faz variar, imprimindo a informao.


Quando a moduladora analgica:
a) AM (amplitude modulation) ou modulao em amplitude.
b) FM (frequency modulation) ou modulao em freqncia.
c) PM (phase modulation) ou modulao em fase.

Figura 3.15
Quando a moduladora digital (a caracterstica variada da portadora senoidal
assume alguns valores descritos possveis).
a) ASK (amplitude shift keying) ou modulao por salto de amplitudes.
b) FSK (frequency shift keying) ou modulao por salto de freqncia.
c) PSK (phase shift keying) ou modulao por saltos de fases.

28

Figura 3.16

Modulao em Portadora Trem-de-Pulsos


O trem de pulsos peridico um sinal de natureza discreta, tem como
caractersticas a amplitude, a durao e o perodo.

Figura 3.17
Moduladora Analgica
a) PAM (pulse amplitude modulation): modulao de pulso em amplitude
[informao impressa na caracterstica de amplitude]
b) PWM (pulse width modulation): modulao de pulsos em largura
[informao impressa na caracterstica de durao de pulsos]
c) PPM (pulse position modulation): modulao em posio de pulso
[informao representada pelos deslocamentos relativos dos pulsos em relao a
referncias de tempo igualmente espaadas]

29

d) PFM (pulse frequency modulation): modulao de pulsos em freqncia


[informao representada pela quantidade de pulsos que ocorrem em cada intervalo de
tempo]
Na modulao digital com portadora de trem-de-pulsos a informao
impressa indiretamente atravs de cdigos.
a) PCM (pulse code modulation): modulao em cdigo de pulsos.
b) DPCM: PCM diferencial.
Informao enviada por cdigo representando a diferena dos valores da
moduladora em instantes consecutivos de amostragem.
c) DM (delta modulation): modulao delta.
Todos os trs tipos pe no meio de transmisso um sinal pulsado e codificado.
PCM e DPCM cdigo diretamente relacionado com o valor absoluto da
portadora.
O sinal de sada do DM um sinal bit relacionado basicamente com a correo
a ser imposta ao receptor distante para que siga o sinal e apenas indiretamente com a
informao da moduladora.
Moduladora
Analgica

AM
FM
PM

Moduladora
Digital

ASK
FSK
PSK

Portadora senoidal

Moduladora
Analgica

PAM
PNM
PPM
PFM

Moduladora
Digital

PCM
DPCM
DM

Portadora trem-de-pulsos

Figura 3.18

30

Captulo

4
Erros
Um circuito ser considerado satisfatrio para transmisso de dados se, em
cada 105 bits transmitidos apenas 1 bit errado ocorrer, segundo as recomendaes do
CCITT.

Consideraes sobre erros

So inevitveis em qualquer sistema de comunicao real. Os erros so raros


na parte digital da infraestrutura de transmisso. A parte analgica, de pares de
fios tranados , porm, predominante e deve continuar assim por muito tempo
ainda devido ao alto custo envolvido na sua substituio.

Sua ocorrncia no homogeneamente distribuda ao longo da transmisso


ocorre em rajadas, normalmente de comprimento inferior a 8 bits errados.
Atualmente, velocidade maior de transmisso, o rudo pode atingir um
nmero maior de bits.

importante, na escolha de um cdigo de transmisso de dados, considerar as


caractersticas dos canais utilizados para incluir maior ou menor redundncia,
a fim de assegurar a confiabilidade da informao recebida.
Eficincia = bits de informao transmitidos * 100%
total de bits transmitidos

Esta relao mostra um compromisso entre eficincia e confiabilidade

Quanto mais confivel o esquema de deteco/correo de erros, mais cara


ser sua implementao

Abordagens possveis em tratamento de erros


Incluir informaes redundantes suficientes em cada bloco de dado enviado,
de forma que o receptor seja capaz de deduzir qual deveria ser o caractere transmitido
uma das duas estratgias bsicas para tratar erros. Emprega cdigos de correo de
erros.

31

Outra estratgia, implementada via cdigos de deteco de erros, consiste na


incluso de redundncia suficiente para permitir que o receptor deduza que houve um
erro e pea a retransmisso do bloco, sem compromisso com a identificao do erro.
Ex: Cada bit poderia ser transmitido duas vezes permitindo detectar a presena
de um erro na desigualdade do par. Desta forma, no entanto, havendo 2 bits
sucessivos errados, o erro poderia no ser detectado. Alm disso a quantidade de bits
teis transmitidos, neste caso cai para a metade do total.
Deteco e retransmisso
Sobre os blocos de dados enviados so aplicados algoritmos que geram bits
redundantes. Estes bits so tambm transmitidos, permitindo verificar, no destino, se
os bits de informao esto chegando sem alterao.
Se o canal for muito suscetvel a rudos, ser necessrio usar maior
redundncia e algoritmos mais complexos para detectar e neutralizar os erros.
Estes algoritmos, na sua forma mais simples, constituem os testes de paridade.
Veremos a seguir outras tcnicas utilizadas nesta modalidade de tratamento de erros.
Paridade Vertical (Vertical Redundancy Checking) VRC
Esta tcnica consiste na adio de um bit de controle para cada caracter
transmitido.
Tomando o cdigo ASCII como exemplo, os sete primeiros bits de cada
conjunto de oito se referem ao caractere alfanumrico transmitido, enquanto o oitavo
um bit:
-

Um, se h um nmero mpar de bits 1 nos 7 bits precedentes.

- Zero, se h um nmero par de bits 1 nos 7 bits precedentes.


Aps a transmisso, o receptor pode recalcular esse bit e comparar com o
recebido, para verificar se o conjunto est correto.
A eficincia de transmisso nesse caso de 87,5%
Os cdigos so usualmente descritos usando-se a notao (n,k) para indicar um
bloco contendo n bits totais em cada bloco, dentre os quais k so bits de informao.
Um outro exemplo o cdigo (7,3).
Em cada bloco de 7 bits, 3 so de paridade, cada um testando a paridade de um
subconjunto de 3 dos 4 bits de informao do bloco, conforme mostrado abaixo:
d1 d2 d3 d4 p1 p2 p3
Bits de dados | | Bits de paridade
p1 = d1 d2 d3
p2 = d2 d3 d4
p3 = d1 d2 d4

Ou exclusivo (xor).

32

Para compensar a falha mostrada na paridade vertical, se em um caractere


houver erro em dois bits, aplica-se redundncia adicional.
Eficincia 57,14%
Paridade de bloco (Horizontal Redundancy Checking) HRC
Aqui adicionado um caractere ao fim de um bloco de comprimento fixo de
caracteres, onde cada bit o resultado da aplicao da funo sobre os bits de
posio correspondente dos caracteres do bloco.
Se houver uma inverso de dois bits em um caractere no detectada pela VRC,
ela ser pela HRC.
Para bloco de 80 caracteres e o cdigo ASCII a eficincia do canal 87,3%
((7*80/8*81) * 100%)
SRC (Spiral Redundancy Checking)
Verso de HRC modificada, na qual os bits para o clculo da paridade
horizontal so tomados diagonalmente, como mostrado na prxima figura:

Figura 4.1

Entrelaamento
Tcnica que permite detectar erros mltiplos, mediar um esquema de simples
VRC, que consiste em enviar em blocos de 7 caracteres todos os bits de posio 1,
seguidos de todos os bits de posio 2, e assim at os bits de posio 7, finalizando

33

com os de paridade. Esse sistema resiste at mesmo a rajadas de erros que alterem 7
bits consecutivos.
Sua eficincia de 87,5%, a mesma do VRC.
CRC (Cyclic Redundancy Checking)
Elaborada para operar sobre dados a serem transferidos independentemente da
sua configurao de caractere. Consiste em aplicar um polinmio sobre grupos de bits
(12 ou 16) de um bloco de dados, cujo resultado cumulativo transmitido ao final do
bloco. Na recepo so efetuadas as mesmas operaes sobre o bloco, e o resultado
obtido pode ser comparado com o resultado recebido.
Considerando um bloco de 80 caracteres de 8 bits, mais 16 de teste, a
eficincia ser de 97,5% ((640/656) * 100%)
As tcnicas de deteco de erros descritas tm por objetivo sinalizar apenas a
existncia do erro. Uma vez detectado, o emissor dos dados deve ser de algum modo,
avisado de que deve retransmitir o conjunto de dados sinalizado. Isso implica que os
dados sejam mantidos na fonte, em um buffer do tamanho do bloco, at que seu
correto recebimento tenha sido assinalado pelo receptor. Essa sinalizao
geralmente efetuada por dois caracteres denominados ACK e NAK, que significam
respectivamente, recepo correta e recepo incorreta (erro no bloco).

Deteco e correo de erros


Essa modalidade de recuperao de erros, em oposio deteco de erros
com solicitao de retransmisso, consiste na adio de bits redundantes mensagem,
permitindo sua sinalizao e tambm e restaurao do contedo original.
O cdigo (7,4) um exemplo de esquema que consiste na adio de bits
redundantes que permitem detectar e corrigir um erro ocorrido no bloco. R. H.
Hamming desenvolveu vrios desses esquemas, que receberam o nome de Hamming
codes.
A quantidade de erros recuperveis depende da quantidade adequada de bits
redundantes, que cresce bastante quando se quer corrigir dois ou mais erros.
O Hamming pode funcionar da seguinte maneira: para um bloco de
informaes de tamanho n, onde n < 2m 1, sendo m um nmero inteiro, teremos m
Hamming bits. Os Hamming bits so inseridos nas posies 1, 2, 4 , 8, e assim
sucessivamente, nas posies que so potncias de 2, da direita para a esquerda. No
exemplo descrito a seguir, o tamanho do bloco escolhido foi de 12 bits:
Posio dos bits 8 7 6 5 4 3 2 1
Informao a ser
1 1 0 0 0 0 1 0
enviada
O bloco constitudo a partir dos bits de informao e dos bits de Hamming:

34

Posio dos bits


12 11 10 9 8 7 6 5 4 3 2 1
Bits de informao
1 1 0 0 H 0 0 1 H 0 H H
no bloco
H Posio dos Hamming bits.
Os valores dos Hamming bits so o resultado da operao ou exclusivo (xor)
sobre o cdigo binrio da posio dos bits 1 ocorridos nos bits do bloco:
05(10) = 0101
11(10) = 1011
= 1110
12(10) = 1100
H = 0010
Posio dos bits
12 11 10 9 8 7 6 5 4 3 2 1
Bloco a ser transmitido 1 1 0 0 0 0 0 1 0 0 1 0
0 0 0 0 1 0 0 1 1 0 1 0
Bloco recebido
1 0 0 0 0 0 0 1 0 0 1 0
^
O receptor executa a operao de ou exclusivo com os Hamming bits e os
nmeros que indicam a localizao dos bits 1 recebidos:
H = 0010
12(10) = 1100
= 1110
05(10) = 0101
= 1011 = 11(10) posio do bit errado
Se o resultado, como no exemplo, no for zero, isso indicar que houve erro na
transmisso. O valor desse resultado a posio de bit que deve ser alterada para
corrigir o erro.
Se dois erros ocorrerem, isso ser detectado, mas o resultado do xor ser sem
sentido. Trs erros podem ocorrer e escapar do sistema de deteco.
H = 0010(2)
12(10) = 1100(2)

= 1110(2)
5(10) = 0101(2)
= 1011(2) = 11(10) -> posio do bit errado
Se o resultado como no exemplo no for zero, isso indicar que houve erro na
transmisso. O valor decimal desse resultado a posio de bit que deve ser alterada
para corrigir o erro.
Se dois erros ocorrerem, isso ser detectado, mas o resultado do OREXCLUSIVO ser sem sentido. Trs erros podem ocorrer e escapar ao esquema de
deteco.

35

Captulo

5
Interface de Comunicao de Dados
Introduo
Pode-se dividir os equipamentos utilizados em um Link de Comunicao de
Dados em dois grupos:

Equipamentos Terminais de dados (DTE) : Originam/recebem a


informao digital.
Equipamentos de Comunicao de Dados (DCE) : Tm a funo de
o Na transmisso, tratar o sinal digital gerado pelo terminal, de forma
que o mesmo possa ser transmitido ao longo de um meio
(modulao)
o Na recepo, recuperar a forma original (digital) do sinal que foi
gerado pelo terminal remoto e entrega-lo ao terminal receptor
(demodulao).

Ambos os grupos de equipamentos apresentam uma interface de


entrada/sada, normalizada pela CCITT, como mostrado no exemplo da figura
abaixo, que representa a Interface padronizada RS232:

Uma ligao de dados pode ser dividida em 4 fases distintas:


1. Estabelecimento : representa a obteno de continuidade entre os dois
pontos. Esse evento s ocorre para um circuito comutado.
2. Inicializao : representa um dilogo preliminar entre terminais e modems
com o objetivo de preparar, coordenar e sincronizar as partes envolvidas na
transmisso/recepo.

36

3. Transmisso : representa efetivamente o trfego de dados depois de


estabelecida a fase de inicializao.
4. Corte : representa o desligamento do circuito, por iniciativa de um dos
lados para uma ligao full duplex, ou por inverso do sentido para ligao
half duplex.

A Interface Normalizada V.24


Nas fases de uma ligao de comunicao h troca de sinais que no
representam a transmisso efetiva de dados entre os terminais e os modems. Esses
sinais, assim como os de transmisso efetiva, so normalizados pelo CCITT, atravs
de recomendao V.24.
A interface mecnica normalizada pela ISO, atravs da norma ISO 2593, que
define um conector padro DB 25P, como mostrado na figura abaixo:

37

Circuito normalmente utilizado.


Para equipamentos produzidos nos EUA, a norma seguida a RS232 -- C
EIA (Eletronic Industries Association), compatvel com a CCITT V.24.
Cada circuito de interface pode ser definido por caractersticas :

Funo;

Direo (modem terminal ou terminal modem);

Caractersticas eltricas.

Com relao s caractersticas eltricas, as recomendaes V.28, V.10, V.35,


V.36 e V.11 tratam do problema em funo da tecnologia, aplicao, etc.
Os circuitos podem tambm ser destinados a:
. Controle;
. Informao propriamente dita;
. Sincronismo;
. Terra.
Existe a diferena entre circuitos padronizados e o nmero de pinos dos
conectores porque V.24 procura cobrir todas as utilizaes possveis dos modems, nas
diversas faixas de velocidade. Portanto, para cada tipo especfico de modem, apenas
um subconjunto desses circuitos ser necessrio.

Interface Padro RS232-C


Essa padronizao aplicvel para interconexo entre o equipamento terminal
de dados (DTE) e o equipamento de comunicao de dados (DCE), empregando
transferncia de dados binrios tipo serial.
aplicvel para taxa de sinalizao de dados na faixa de 0 a 56 Kbps na
transferncia de sinais de dados, timing e controle, quando usado em conjunto com
equipamentos eletrnicos - cada um deles tendo um retorno simples comum (signal
ground) que podem ser interconectados no ponto de interface. No se aplica para
interfaces em que so usados contatos de fechamento e corrente.
Considera respostas para chamadas automticas. Contudo, esta padronizao
no inclui todos os circuitos necessrios para originar automaticamente uma conexo.
compatvel com a CCITT V.24 e V.28.

Caractersticas eltricas
Para circuitos de transferncias de dados, o sinal considerado em condio de marca
quando a tenso no circuito de transferncia, medida no ponto de interface, mais
negativa que -3V com relao ao circuito AB (signal ground). O sinal considerado
38

na condio de espao quando a teno for maior que +3V com relao ao circuito
AB. A regio compreendida entre -3V e +3V definida como a regio de transio. O
estado do sinal no necessariamente ser identificado de forma nica quando a tenso
est na regio de transio. Durante a transmisso de dados, a condio de marca
usada para discriminar o estado 1 binrio, enquanto a condio de espao usada para
discriminar o estado 0 binrio.

Para circuitos de transferncias de timing e controle, a funo considerada ON


quando a tenso no circuito de transferncia positiva em relao ao circuito AB, e
considerada OFF quando a tenso considerada negativa com respeito ao circuito
AB, conforme o quadro abaixo:

Figura 6.4.

Caractersticas mecnicas
Nas interfaces entre o equipamento terminal de dados e o equipamento de
comunicao de dados esto localizados conectores de sinais de interface.
recomendada a utilizao de cabos curtos, aproximadamente 15 metros, mas
possvel o uso de cabos maiores desde que a carga de capacitncia no exceda a
2500pF (medida no ponto de interface e incluindo a terminao do gerador do sinal).
importante observar que a recomendao no normaliza todos os circuitos possveis
da interface.
39

interessante que na utilizao seja dada preferncia aos sinais e pinos normalizados,
e que na necessidade do uso de pinos/circuito adicionais sejam tomados cuidados
extremos especiais.

A figura abaixo exemplifica, para um caso elementar, a troca de sinais entre as


interfaces digitais dos modems e terminais, bem como a relao dos mesmos com a
interface analgica:

Figura 6.5.

Observa-se que:
a)
b)
c)

Imediatamente aps energizados, os terminais e modems trocam os


sinais DTR e DSR pelos pinos correspondentes para indicarem que
esto aptos a iniciarem processo de transmisso.
O terminal que deseja transmitir dados solicita autorizao ao
modem, enviando o sinal RTS.
O modem que recebe RTS libera a portadora e prepara o
temporizador TA que condicionar a autorizao pelo envio do sinal
CTS. O tempo de TA dever ser pelo menos igual somatria do
tempo necessrio para propagao da portadora, do tempo necessrio
para deteco pelo modem distante e do tempo para informao ao
terminal distante.

d)
40

Cdigos Alfabetos

CCITT V 3 Alfabeto Internacional n 5


Caracteres de 7 bits, mais 1 bit de paridade. Os caracteres (totalizando 27 = 128)
incluem letras maisculas, sinais de controle, sinais de pontuao, sinais grficos e
algarismos.
ASCII (American Standart Code for Information Interchange)
Pequenas diferenas em relao ao CCITT, relacionadas com as posies de alguns
caracteres de controle.

BCD (Binary Coded Decimal)


Possui 6 bits mais 1 de paridade. Extenso do BCD 4 bits (quatro dgitos binrios
usados para representar os dgitos decimais de 0 a 9) com finalidade de incluir letras.

EBCDIC (Extended Binary Coded Decimal Interchange Code)


Utilizado pela IBM nos sistemas 360/370, possui 8 bits de dados mais 1 de paridade,
somando um total de 256 caracteres vlidos.
Em regra geral o Brasil procura seguir a recomendao V-3 (CCITT).

Fatores que influenciam na escolha do cdigo:


-

Nmero de caracteres usados


Tipo de informao a ser representada
Segurana requerida

Transmisso Paralela:
Dados bits caracteres
O sistema deve transmitir os bits do caracter de uma s vez.
Exemplo: 6 trajetrias separadas
+1 para fins de controle
Desvantagens:

Vantagem:

1. Alto custo das linhas


2. No se faz a grandes distncias
1. Terminal mais barato (no tem necessidade de decidir quais os
bits que aparecem primeiro em cada caracter).

41

Transmisso Serial:
Os bits que compem o caracter so transmitidos um de cada vez. Neste caso o
receptor deve saber qual bit o primeiro do caracter, para decodificar a informao
(sincronismo).

Transmisso Serial Assncrona:


A sincronizao conseguida por um elemento de start que precede cada caracter,
e por um elemento de stop aps os bits de informao.
A informao transmitida serialmente composta por:
Start , informao e stop
Start : transmitido no tempo de 1 bit
Stop : transmitido no tempo de 1, 1 ou 2 bits
Vantagem: os caracteres podem ser transmitidos e regularmente espaados no tempo
Desvantagem: boa parte transmitida no transporta informao til

Cod : ASCII
Exemplo: Teletipo
- no tem armazenadores temporrios
- envia caracteres em

Transmisso Serial Sncrona:


Os bits de um caracter so seguidos imediatamente pelo do prximo, no havendo
elemento entre eles.
Os conjuntos de caracteres so divididos em blocos de comprimento varivel.
Neste tipo de comunicao para haver sincronismo, os relgios do receptor e do
transmissor devem estar em fase. Que conseguido pelo envio de bits de
sincronizao no incio do bloco.

42

Observao: Se o bloco muito extenso, coloca-se caracteres (diferente de


informao) de ressincronizao no meio do bloco.
Vantagens: 1. Utilizao mais eficiente da linha
2. Melhor proteo contra erros. (FIM do bloco, bits de verificao de
erros)
Desvantagens:

1. Se h erro de sincronizao todo bloco perdido.


2. Caracteres devem ser enviados em blocos (obrigando as mquinas a

terem buffers).

Sincronismo de Bits
Na recepo feita a recuperao do clock, em funo do trem de pulsos recebidos.
Este clock recuperado possibilita a leitura dos bits recebidos.
Observao: haver necessidade de transies no trem de dados ( no existindo
seqncias longas de 0s e 1s. Uso de SCRAMBLER para misturar os bits).

Sincronismo de Caracter
Aps a sincronizao de bit, h necessidade de saber onde comea e termina um
caracter. A sincronizao de caracter feita por caracteres especiais do tipo SYN.
Observao: dois ou mais caracteres especiais para sincronizao.
Figura - Sincronismo de Caracteres

Sincronismo de Texto
Aps a sincronizao de caractere, precisamos saber onde comea e termina um
texto. Isto e feito pela insero de novos caracteres de controle, como, por exemplo:

43

STX (Start of Text): Incio do texto


ETX (End of Text): Fim do texto
O bloco ter ento aproximadamente a seguinte configurao:
SYN SYN STX MENSAGEM ETX SYN SYN
Existe ainda uma srie de caracteres especiais, que sero introduzidos nos blocos.
Damos a seguir um exemplo, destacando o caractere BCC (BIock Check Character),
que se destina ao controle de erros da transmisso.
SYN SYN

STX MENSAGEM ETX

BCC

44

Captulo

6
Protocolos
6.1. Definies
1. Conjunto de regras estabelecido para a transmisso ordenada e automtica
de dados
2. Regras seqenciais de requisies e respostas pelas quais unidades de uma
rede coordenam e controlam operaes de transferncia de dados
3. Conjunto de regras que governam a troca de informaes entre dois ou
mais processos.
Exemplos de protocolos: BSC (Binary Synchronous Communication), SDLC
(Synchronous Data Link Control), HDLC (High Data Link Control) e X25.

6.2. Protocolos de Linha


A sistematizao das 4 fases de uma ligao de dados - estabelecimento,
inicializao, transmisso e corte - bem como as caractersticas especiais da
comunicao que define os chamados protocolos de linha.
Eles tm como funes bsicas:
Endereamento;
Estabelecimento de conexo;
Confirmao de recebimento;
Controle de erro;
Retransmisso;
Controle de fluxo.

6.3. Protocolos orientados a caractere


Protocolos orientados a caractere so aqueles em que as regras so baseadas em
caracteres especiais com funes bem definidas.

45

6.3.1. Protocolo BSC (Binary Synchronous Communication)


O protocolo BSC um protocolo-padro da IBM para operar no modo half-duplex. O
BSC admite basicamente trs cdigos: EBCDIC, ASCII e Transcode de 6 bits.
Formato bsico de um bloco de mensagem em BSC:
SYN SYN SOH CABEALHO STX TEXTO ETX/ETB BCC
No exemplo apresentado, que representa uma conexo com endereo de terminal, o
bloco enviado com caracteres de sincronismo SYN seguidos do caractere SOH
(Start of Header envio de cabealho) que pode indicar o envio de endereo terminal.
Aps SOH colocado o endereo propriamente dito do terminal de destino.
Em seguida ao endereo inicia-se o campo de mensagem.
Aparece, primeiro, o caractere STX (Start of Text), que indica incio da rea
de dados propriamente dita.
Aps o preenchimento do campo de dados, podem seguir os caracteres ETB
(End of Transmission Block), significando que apesar de todo o campo ter sido
preenchido, o texto ainda no acabou; ou ETX (End of Text), representando o fim do
texto.
Ao final destes caracteres colocado mais um, o BCC (Block Check
Character), que montado a partir dos mtodos de deteco e correo escolhidos.
Outros caracteres significativos so, por exemplo:
EOT (End of Transmission): Representa o fim da transmisso de um
ou mais blocos e/ou cabealho, ou a resposta a uma chamada, quando o
terminal no tem nada a transmitir.
ENQ (Enquiry): Usado para o transmissor exigir a resposta a uma
transmisso.
ACK (Acknowledgement): Usado para indicar que um bloco foi bem
recebido.
NACK (Negative Acknowledgement): Usado para indicar que um
bloco foi recebido com erro (a partir da anlise do BCC) e que deve ser
retransmitido.
Qualquer que seja o protocolo de linha adotado pode-se ter ligao ponto a
ponto ou ligao multiponto, de forma que o computador possa transmitir para um dos
terminais e um dos terminais possa transmitir para o computador, sempre com
iniciativa de quem controla a rede.
A figura abaixo ilustra as fases de conversao do protocolo BSC, que sero
detalhadas a seguir.

46

Figura 7.1
6.3.2. Fases de conversao do protocolo BSC
1. A informao do bloco acrescida de caracteres de sincronismo (SYN),
seguidos de caractere que indica incio de texto (STX). Em seguida ao
bloco B1 aparece o caractere ETB, indicando o fim desse bloco, mas o
texto continuar, depois de inserido o caractere de controle de erro BCC.
2. Como no exemplo o terminal recebeu sem erros o bloco B1, envia para A o
caractere bloco bem recebido (ACK), precedido dos caracteres de
sincronismo (SYN).
3. O terminal A envia ento o bloco B2, de modo similar ao envio de B1,
com a introduo do caractere ETX no lugar do ETB, por se tratar do
ltimo bloco. Como a transmisso ser terminada, introduzido o
caractere EOT.
4. O terminal B no recebe bem o bloco B2 e informa ao terminal A, pelo
caractere NACK, precedido dos caracteres de sincronismo (SYN). Isto
tambm significa pedido de retransmisso do bloco B2.
5. O terminal A retransmite todo o bloco B2.
6. O terminal B recebe bem e confirma.

6.3.3. Ligao multiponto

Procedimento de controle terminal: nas configuraes do tipo multiponto


(onde h derivao de terminao) h a necessidade de disciplinar o
partilhamento temporrio dos recursos.
Procedimento de chamada (polling): procedimento no qual o terminal de
controle pergunta seqencialmente aos terminais de ponta se querem
transmitir. Estes, por sua vez, devem aceitar ou rejeitar convites; so
expressos atravs de combinaes dos caracteres especiais do protocolo.

47

Figura 7.2

Figura 7.3

Procedimento de seleo: usado na situao em que o terminal de controle deseja


selecionar um dos terminais de ponta para que este receba uma mensagem.

48

Figura 7.4

Exemplo de um Procedimento de chamada:


ENQ POL T1 SOH SYN SYN
T1, quer transmitir?
SYN SYN T1 EOT SYN
No
ENQ POL T2 SOH SYN SYN
T2, quer transmitir?
SYN SYN SOH T2 STX TEXTO ETB BCC
Sim, eis a mensagem.
ENQ POL T2 SOH SYN SYN
OK T2, recebi bem, mande outro bloco.
.........
ENQ POL T1 SOH SYN SYN
T1, quer transmitir?
Basicamente existem trs tipos de Polling:
a) Roll Call: interrogao seqencial de cada estao remota atravs de endereo
pela controladora.
b) Hub Polling: interrogao iniciada pela estao mais afastada do link que
assume o controle e passa a interrogar as outras estaes.
c) String Polling: interrogao por grupo de estaes.
Existem tambm trs tipos bsicos de procedimentos de seleo:
a) Normal Selection: quando a seleo enviada a cada estao, aguardando
resposta individual para dar procedimento seqncia.
b) Sequence Selection: quando a seleo enviada seguida de mensagem.
c) Broadcasting Selection: quando a seleo enviada a todas as estaes ao
mesmo tempo.

49

Figura 7.5

Exemplo de um Procedimento de seleo:


SEL Tn SOH SYN SYN
Terminal Tn, tenho mensagem para voc, quer receber?
50

SYN SYN Tn NACK


Agora no.
SEL Tn SOH SYN SYN SEL
Terminal Tn, tenho mensagem para voc, quer receber?
SYN SYN Tn ACK
Sim, pode enviar.
Existem trs tipos bsicos de procedimento de seleo:
1. Normal Selection: quando a seleo enviada a cada estao, aguardando
resposta individual para dar procedimento seqncia.
2. Sequence Selection: quando a seleo enviada seguida de mensagem.
3. Broadcasting selection: quando a seleo enviada a todas as estaes ao
mesmo tempo.
Existem aplicaes em que, para otimizar o tempo de resposta, se dispensa o
envio de ACK para confirmao, assumindo que, quando no for recebido NACK,
significa que tudo est bem. A essa prtica d-se o nome de Dispensa do ACK
positivo.

6.4 - Protocolos orientados a bit


Os protocolos orientados a bit usam campos com tamanho e posies definidas
no cabealho para realizao das funes de enlace. O cabealho e cauda tm
tamanhos fixo e o campo de dados pode ter um nmero qualquer de bits. Foram
desenvolvidos para superar as deficincias dos protocolos orientados a caracter. Os
requisitos essenciais para estes novos protocolos eram:
independncia do cdigo utilizado;
adaptao a diferentes aplicaes e configuraes;
operao em half-duplex e full-duplex;
alta eficincia;
elevada confiabilidade;
Final de 1969 a ANSI (American National Standards Institute) e a ISO
(International Standards Organization) iniciaram os trabalhos formais para o
estabelecimento de padres de protocolos orientados a bit. Em 1973, a IBM anuncia o
SDLC (Synchronous Data Link Control). Em 1979, a ISO divulgou um conjunto de
padres que define o HDLC (High Level Data Link Control Procedure). O HDLC
abriga, na verdade, uma srie de outros protocolos como, por exemplo, o LAPB (Link
Access Procedure Balanced) adotado pelo CCITT (hoje ITU-T) no nvel 2 do X.25,
e o LAPD (Link Access Procedure D-Channel), definido como protocolo de enlace a
RDSI (Rede Digital de Servios Integrados).

6.4.1 - HDLC

51

O HDLC um dos derivados do protocolo de enlace de dados utilizado na


SNA da IBM, o SDLC (protocolo Synchronous Data Link Control). Depois de
desenvolver o SDLC, a IBM o submeteu ao ANSI e ISO para sua aceitao como
padro nos EUA e no mundo, respectivamente. O ANSI o modificou tornando-o
conhecido como ADCCP (Advanced Data Communication Control Procedure), e a
ISO o alterou transformando-o no HDLC (High-level Data Link Control).
Para satisfazer a grande variedade de aplicaes, HDLC define trs tipos de
estaes, duas configuraes de link e trs modos de transferncia.
Os trs modos estao :
1. Estao Primria: Fica responsvel pelo controle da operao de acesso.
Frames emitidos por ela so chamados commands (comandos).
2. Estao Secundria: Opera sob controle da estao primria. Os frames
emitidos so chamados responses (respostas). A primria mantm uma
separao de acesso lgico com cada estao secundria da linha.
3. Estao Combinada: Combina as caractersticas da estao primria e da
secundria. Ela pode emitir tanto commands quanto responses.
As duas configuraes de link :
1. No-Balanceada: Consiste de uma estao e uma ou mais secundrias.
Suporta transmisso tanto half-duplex quanto full-duplex.
2. Balanceada: Consiste das duas estaes combinadas e suporta transmisso
tanto half-duplex quanto full-duplex.
Os trs modos de transferncia:
1. Modo Normal de Resposta (NRM): Usado com uma configurao no
balanceada. A estao primria pode iniciar a transmisso de dados para a
estao secundria, mas a secundria no pode somente transmitir dados em
resposta de um comando da primria.
2. Modo Assncrono Balanceado (ABM): Usado com uma configurao
balanceada. A estao balanceada pode iniciar a transmisso receber
permisso de outra estao combinada.
3. Modo de Resposta Assncrona (ARM): Usada com uma configurao nobalanceada. A estao secundria pode iniciar transmisso sem permisso
explcita da estao primria. A primria ainda tem a responsabilidade da
linha, incluindo inicializao, recuperao de erro, e desconexo lgica.
O HDLC usa transmisso sncrona. Todas as transmisses so em forma de
frames, e um simples formato de frame suficiente para todos os tipos de trocas de
dados e controles.

52

1. Campo Flag: delimita o frame nas duas extremidades com um nico padro
01111110. Um simples flag pode ser usado como flag de fechamento por um
frame e como flag de abertura pelo prximo.
2. Campo de Endereo: identifica a estao secundria transmitida ou recebida
do frame. Este campo no necessitado por acessos ponto-a-ponto, mas
sempre includo a fim de uniformizar. usado apenas para distinguir
comandos e respostas.
3. Campo de dados: pode conter informaes arbitrrias. Ele pode ser
arbitrriamente longo, embora a eficincia do checksum diminua com o
aumento do comprimento do quadro devido maior probablilidade de vrios
erros em rajada. Este campo est presente somente nos I-frames e U-frames.
4. Campo sequncia de checagem (FCS): um cdigo de deteco de erro
calculado com o resto dos bits do frame, exclusivo dos flags. O checksum
uma variao menos importante do cdigo de redundncia cclica, que utiliza
CRC-CCITT como polinmio gerador.
5. Campo de controle: usado para nmeros de sequncia, confirmaes e
outras finalidades. HDLC define trs tipos de frames, com formato diferente
do campo de controle.
Frame de Informao (I-frames): leva os dados a ser transferidos pelo
usurio. Adicionalmente, fluxo de dados e controle de erro, usando o
mecanismo ARQ, pegam carona (piggypaked) em um frame de
informao.
Frame Superviso (S-frame): prove o meconismo ARQ quando
piggybacking no usado.
Frame No-numerado(U-frame): prove funes suplementares de controle
de acesso.

6.4.2 - Protocolos de Acesso X25


Considere agora um sistema de teleprocessamento que utiliza um meio de
comunicao transparente comutao, onde o termo transparente se relaciona ao fato
de o circuito no alterar as mensagens.
Se esse meio de transmisso for substitudo por um sistema mais sofisticado,
capaz de interligar o computador do usurio com outro computador ou terminal, esse
computador/terminal ter de aprender, pelo menos, como solicitar uma conexo. Isso
verdade at para o caso de o sistema ser uma rede de comutao de circuitos, que,
uma vez estabelecida a chamada, se torna transparente comunicao.

53

No caso de uma rede de comutao de pacotes, onde cada n uma entidade


inteligente e ativa, com muito mais razo tornou-se necessria a criao de um
protocolo que possibilitasse a comunicao entre a rede e seus usurios.
Dessa necessidade surgiu a Recomendao X25 do CCITT (Comit
Consultivo Internacional de Telegrafia e Telefonia), especificando um protocolo de
acesso para redes de comutao de pacotes, estruturado em 3 nveis:
1. Nvel Fsico: relacionado com as funes do interfaceamento digital criar
condies para a transmisso dos sinais.
2. Nvel de Rede (frame): torna o meio de transmisso mais confivel atravs de
procedimentos de deteco de erro e de fiscalizao de seqncia do controle
de fluxo.
3. Nvel-Pacote: fornece os meios para estabelecimento, manuteno e
desconexo de um circuito virtual.
O X-25 uma soluo composta de hardware e software para a conexo de
microcomputadores PC compatveis a uma variedade de outros computadores atravs
de uma rede de pacotes pblica ou privada.
De fcil manuseio e instalao, o X-25 permite que um PC se transforme num
dispositivo TTY ou em um terminal emulando VT100, IBM 3278-2 e vrios outros
tipos de terminais. As solues X-25 para comunicao de dados a longa distncia,
WAN (Wide Area Network), esto disponveis para diversos ambientes como
Windows NT, Unix, Netware e MS-DOS.

6.5 - Analisadores de Protocolos


Analisadores de protocolos so ferramentas capazes de monitorar o trfego de
uma rede em tempo real. Possuem diferentes caractersticas e funcionalidades, assim
como diferentes formas de apresentar as informaes capturadas, variando de acordo
com o modelo do produto. Alguns, so disponveis em software, outros, so
fornecidos com um tipo de computador porttil.
Os analisadores de protocolo permitem a monitorao de uma rede
transparentemente, sem interferir em nenhuma transmisso. Muitos modelos pemitem
a captura e gravao, analisando e relatando para o gerente os pacotes que foram
54

transmitidos em uma rede. A captura pode ser feita a nvel de trfego global,
mostrando tudo o que passa pela rede, ou de modo especfico, capturando pacotes de
acordo com parmetros escolhidos (tais como endereo origem, destino, trechos de
contedo). Esta capacidade do analisador permite verificar a ocorrncia de pacotes
no sincronizados, corrompidos, com erros de checksum, ou com falta de prembulo,
possibilitando ainda a monitorao das atividades dos usurios, detectando atos
ilegais, anti-ticos ou contra a poltica de uma rede.
Um analisador de protocolo pode ser utilizado para uma grande variedade de
propsitos, tais como a deteco de falhas de software e hardware, otimizao da
rede, isolamento de cabos com problemas. Muitos dos analisadores incluem funes
dos testadores de nvel fsico, mas fornecem vises muito mais detalhadas e
prolongadas das redes, podendo ficar executando as vinte e quatro horas de um dia,
detectando desta forma problemas que, mesmo sendo suspeitos, so difceis de serem
localizados sem uma superviso constante da rede. Alm disso, quando os
analisadores decodificam desde protocolos das camadas inferiores at protocolos das
camadas superiores, facilitam a localizao de problemas em camadas especficas.
Os analisadores de protocolos so muito teis para o gerenciamento de redes,
fornecendo informaes para resolver seus problemas. Graas coleta de dados de
trfego da rede, apresentam o estado de muitas variveis diferentes e as estatsticas
obtidas destas variveis. Alguns analisadores possuem um pacote de estatsticas
sofisticado, que geram grficos para anlise visual. Com estes grficos, possvel
observar diversos parmetros da rede, tais como colises, erros, quantidade de
quadros de broadcast, utilizao da rede. Em posse destes dados, facilitada ao
gerente a tarefa de identificar tendncias, levantar hipteses e efetuar modificaes
antes da ocorrncia de problemas, contribuindo em muito para a gerncia da rede.
Alguns dos problemas que podem ser percebidos com a monitorao de
software de uma rede so as sobrecargas da rede, erros de protocolos de transmisso e
erros com transmisses broadcast. A utilizao de alarmes, mensagens de erro,
estatsticas e outras informaes fornecidas pelos analisadores podem ajudar a
identificar tais problemas. As condies de alarme podem ser definidas pelo usurio,
onde alertas sero enviados em respostas a estas condies, como, por exemplo,
quando a taxa de utilizao de uma rede aumenta em dez por cento acima dos nveis
normais.

6.5.1 Analisador de Protocolos (Modelo Step 2)


Identificador de falhas em sistemas de comunicao de dados. Permite a
realizao de diagnsticos detalhados de problemas apresentados em redes de
comunicao de dados.

Caractersticas principais

Monitorao de Protocolos;

55

BERT/BLERT (Teste de Bit/Block Error Rate);


Medidas de tempo;
Simulao
Memria de massa (disquetes de 5 )

Facilidades de operao
Menu de programao e teclado funcional para passagem de parmetros de um
ambiente de teste. 32 KB de RAM no voltil armazenam informaes de
programao, dados ou resultados de ensaios realizados, permitindo assim a
realizao de testes em campo para anlise posterior.

Monitorao de Protocolos Orientados a Caractere


Seleciona-se o cdigo de apresentao de dados com as opes EBCDIC,
ASCII, HEX 5, 6, 7, 8 bits (sem contar os de paridade). Escolhido o cdigo, deve ser
selecionada a forma de apresentao de dados:
1. Display Half-Duplex: os dados transmitidos e recebidos so apresentados na
seqncia de captura.
2. Display Full-Duplex: os dados transmitidos e recebidos so apresentados em
duas linhas, em ordem consecutiva de chegada.

Monitorao de Protocolos Orientados a Bit


Monitorao on-line, interpretando o nvel 2 dos frames, reservando uma linha
para cada frame adquirido. Os frames relativos transmisso (TD) so apresentados
em vdeo normal, os relativos recepo (RD) so apresentados em vdeo reverso. As
opes de display so:
1. X25/2: apresentao de nvel 2 com interpretao de mnemnicos. Mostra at
9 bytes de campo de informao e o status do frame. Disponvel on-line e
offline.
2. X25/3: interpretao do nvel 3, segundo a recomendao CCITT X25.
Informaes de controle de pacote so interpretadas em mnemnicos.
Disponvel offline.
3. Display Full-Duplex Comprimido: apresentados todos os bytes contidos nos
frames. Inicio de frame mostrado com dupla intensidade e erro de FCS
apresentado com o ltimo caractere piscando. Disponvel offline.
4. Display Full-Duplex Expandido:contm todas as funes do Full-Duplex
Comprimido, apresentando os bytes na ordem correta de chegada entre DCE e
DTE. Disponvel offline.
5. Display Esttico: apresentado sob forma esttica e grfica. Contm
informaes sobre o nmero de frames, nmero de erros de FCS e nmero de

56

aborts de forma independente para as linhas de transmisso e recepo.


Disponvel on-line e offline.

Teste de Bit/Block Error Rate (BERT/BLERT)


Permite a medio simultnea de taxas de bits e blocos errados, identificando
falhas em modems e linhas de transmisso. Devem ser escolhidos o tamanho do
bloco, a durao do teste e o modo de operao (sncrono, assncrono, assncrono com
frame).
Os testes so feitos com o padro internacional pseudo-aleatrio de 511 bits.
Durante a execuo do teste, permitida a insero de erros e a reinicializao de
todos os contadores.

Medidas de Tempo (Time Measurement)


Permite medies de tempos entre transies dos sinais da interface digital.
Duas medidas independentes podem ser programadas e realizadas simultaneamente.
Elas so executadas de forma ininterrupta.

Caractersticas Especiais
1. Trigger - permite programar o inicio ou o fim de um teste ou monitorao
caso seja identificado o evento de trigger programado. Permite tambm a
contagem de trigger durante a monitorao.
2. Sigilo - possibilidade de excluir da tela o campo de informaes, garantindo a
privacidade dos dados transmitidos. feita atravs de uma chave no painel
frontal.

Funes
9 Find - Realiza a procura de uma seqncia de dados programados de at 8
caracteres, permitindo que se identifique uma certa seqncia desejvel.
9 Freeze - Congela a tela durante a monitorao, permitindo a anlise detalhada
dos dados expostos na tela. No interrompe a monitorao.
9 Verify - Apresenta na tela a programao completa dos parmetros de
monitorao.
9 Print - Imprime a tela em uma impressora serial conectada ao analisador.
9 Status(modo) - Apresentao dos sinais da interface sob forma grfica em
relao aos dados capturados.
9 Stat(modo) - Apresentao estatstica e grfica dos protocolos HDLC/SDLC.
9 Al/Hex - Realiza a converso dos dados de alfanumrico para hexadecimal e
vice-versa.

57

9 Sto - Permite a gravao de um teste em uma rea de memria reservada (Sto


0 e Sto 1).
9 Delay - Em monitorao BSC, permite visualisar os tempos entre blocos
transmitidos e recebidos (armazena os ltimos 127 tempos).

Especificaes Tcnicas
Dimenses

Largura
Altura
Comprimento

360mm
158mm
509mm

Peso

10kgf

Temperatura
de Operao

0 a 40C

Umidade
Relativa

0 a 95%
no condensado

Alimentao

Tenso
Freqncia

Monitorao de Protocolos
Teste de Bit/Bloc Error Rate
Medidas de Tempo

Capacidade
de Teste

BERT/BLERT

110/220Vca +5%
60Hz + 5%

Protocolos
Velocidade
Padro
Contadores
Teste simultneo
Tamanho do teste
Tamanho do bloco

Sncrono, Assncrono com e sem Frame


50 a 19200 Bps
Pseudo-aleatrio de 511 bits
Blocos (repetidos, errados), Bits (recebidos,errados)
Bit/Block Error Rate
Contnuo ou programvel em KB
Programvel em Bytes
Medidas de tempo entre sinais de interface
2 Timers independentes e simultneos
Programao dos sinais e respectivas transies
RTS, CTS, DSR, DCD, DTR e RI

Medidas de
Tempo
Sinais Disponveis

Interface para
Impressora Serial

Protocolo
Velocidade
Cdigo
Paridade
Stop Bits
Controle de Fluxo
Colunas
Flay Back Buffering

Teclado
Supresso
de Dados
Pesquisa de
Dados Memria

Assncrono
50 a 19200 Bps
ASCII
Impar, Par, Marca, Espao, Nenhuma
2
XON/XOFF e por DTR
40, 80, 120
1 a 65535ms
Quert, 64 teclas

Por Programao
Por Chave Manual

Modo Status

1 a 3 caracteres programveis
campo de informao dos protocolos sncronos
Para frente e para trs, pgina por pgina, linha por
linha.
Linha por linha, caractere por caractere
40KB
32KB no voltil
7KB, em at 2 telas em reas reservadas:
Funo STO0 e STO1.

Capacidade de Memria

EPROM
RAM
Armazenamento de Dados

Monitorao da Interface Digital

24 Leds
Leds Vermelhos
Leds Verdes

Condio ON ou +V
Condio OFF ou V

Display

Tipo
Elementos
TD/RD
Apresentao

CRT 5, fsforo verde, no reflexivo


16 linhas de 32 caracteres
vdeo normal/vdeo reverso
Half-Duplex, Full-Duplex, TD, RD

Apresentao de Erros

Paridade
Frame
CRC/LRC

Caractere em dupla intensidade


Caractere piscando
CRC/LRC piscando

58

Captulo

7
Modelo
Hierrquico
Padronizao

de

Protocolos

7.1 Introduo
As Redes de Computadores - locais ou a longa distncia - surgiram para viabilizar o
compartilhamento eficiente de recursos computacionais (hardware, software e dados)
dos usurios. Em geral, esses recursos so sistemas heterogneos: equipamentos de
fabricantes diferentes tm caractersticas diferentes, utilizam e rodam softwares com
caractersticas especficas distintas para as aplicaes desejadas pelos usurios, e
manipulam e produzem dados com formatos incompatveis. Tal heterogeneidade
dificulta consideravelmente a interconexo de equipamentos de fabricantes diferentes.
A interconexo de redes, por sua vez, contribui para dificultar o problema ainda mais.
A incompatibilidade entre equipamentos e/ou redes foi inicialmente resolvida atravs
do uso de Conversores.

CONVERSOR

SISTEMA A

SISTEMA B

Figura 7.1: Interconexo dos sistemas A e B via conversor.

O conversor interpreta a informao originria de um dos sistemas e passa a


informao para o sistema destinatrio, aps traduzi-la para uma forma compatvel ao
destino. 0 uso de conversores, entretanto, deficiente. So lentos e inadequados para
solucionarem incompatibilidades em nvel de aplicaes.
O termo Aberto se aplica a qualquer sistema adotando os padres do SCl6(subcomit
criado para estudar o problema de padronizao) pode interagir com qualquer outro
sistema que obedea aos mesmos padres. O termo OSI refere-se, pois, aos padres
para a troca de informaes entre terminais, computadores, pessoas, redes, processos
etc. que esto abertos para os demais, com o propsito de troca de informao atravs
do uso dos padres aplicveis.

59

MEIOS FSICOS DE MUNICAO

Figura 7.2: Sistemas conectados por meios fsicos.

No ambiente OSI, um sistema um conjunto de computadores com o software


associado, perifricos, terminais, operadores humanos, processos fsicos, meios para
transferncia de informao etc., capaz de processar a informao. A transferncia de
informao entre sistemas feita por meios fsicos, o "OSI" no se refere apenas aos
aspectos de comunicao entre sistemas, mas tambm como estes sistemas cooperam
para executar uma tarefa distribuda de um processo de aplicao.

7.2 Estruturas em Camadas


H um conjunto implcito de regras que regulamenta a comunicao. Na terminologia
de Redes de Computadores, este conjunto de regras recebe o nome de Protocolo.
O projeto da "arquitetura" de uma Rede de Computadores que permita seus usurios a
se comunicarem eficientemente no uma tarefa simples. Tudo tem de ser cuidadosa
e corretamente especificado para que os vrios processos de aplicao possam
cooperar de forma harmnica e compatvel no processamento de tarefas distribudas
pela rede. 0 problema complexo, quer o projeto seja de uma Rede a Longa Distncia
ou de uma Rede Local. Para reduzir a complexidade no projeto de Redes de
Computadores: o princpio projetar uma rede com um conjunto hierrquico de
camadas, cada camada baseada na camada inferior. Reduzindo o projeto global da
rede ao projeto de cada uma das camadas, simplifica-se consideravelmente o trabalho
de desenvolvimento e de manuteno.
A arquitetura do RM - OSI (Modelo de Referncia para a interconexo de Sistemas
Abertos) construda segundo um processo hierrquico onde cada camada utiliza os
servios providos pela camada imediatamente inferior, para fornecer um servio de
"melhor qualidade" camada superior.

Vantagens:

60

a complexidade do esforo global de desenvolvimento reduzida atravs de


abstraes, isto , no interessa para uma determinada camada como as demais
implementam o fornecimento de seus servios; s importa o que a camada
oferece como servio.

a independncia entre as camadas, ou seja, a camada (N) preocupa-se apenas


em utilizar os servios da camada (N-1) e fornecer os seus servios camada
(N+1), independentemente do seu protocolo. assim que uma camada pode
ser alterada sem mudar as demais.

BRASIL

MENSAGENS

QUEBEC

CAMADA 3
(ZOOTCNICO)

CAMADA 3
(ZOOTCNICO)

(PORTUGUS/FRANCS)

MENSAGENS
CAMADA2
(TRADUTOR)

CAMADA2
(TRADUTOR)

CAMDA1
(ENGENHARIA DE
COMUNICAO)

CAMADA1
(ENGENHARIA DE
COMUNICAO)

(INGLS)

MENSAGENS

(TELEGRAMA/FONE/...)

Figura 7.3: Arquitetura hierrquica com trs camadas para a comunicao entre
os zootcnicos.

Uma ilustrao abaixo pode ajudar a sedimentar os conceitos apresentados da


estruturao de uma arquitetura em camadas. Imagine dois zootcnicos, um no Brasil
e outro no Qubec, que desejam se comunicar. Como eles no falam uma lngua em
comum, cada uma contrata um tradutor. O zootcnico brasileiro contrata um tradutor
Portugus-Ingls-Portugus, e o qubcois contrata um tradutor Francs-InglsFrancs. Cada tradutora contrata, ento, um engenheiro de comunicaes. tudo
arranjado, o zootcnico brasileiro deseja enviar ao qubcois a mensagem "Eu gosto
de coelhos". O procedimento utilizado para viabilizar a comunicao desejada :
primeiro, o zootcnico brasileiro passa a mensagem "Eu gosto de coelhos" a seu
tradutor que a transforma para "I like rabbits". Em seguida, o tradutor passa esta

61

ltima mensagem a seu engenheiro que a transmite via telegrama, telefone, rede de
computador ou por outro meio, dependendo do que os dois engenheiros acertaram de
antemo. Quando chega a mensagem em Qubec, ela traduzida para "J'aime les
lapins" e entregue ao zootcnico qubcois. O processo descrito pode ser
esquematizado como mostra a figura acima. A camada (3) corresponde aplicao
propriamente dita (no caso a conversao entre os dois zootcnicos); a camada (2)
oferece o servio de traduo de mensagens e a camada (1) oferece o servio de
transmisso de mensagens. Observe que o protocolo em cada uma das camadas
totalmente independente dos outros, desde que as "interfaces" entre as camadas no
sejam alteradas.
A arquitetura do RM-OSI foi desenvolvida a partir de trs elementos bsicos:

Os processos de aplicao existentes no ambiente OSI.

As conexes que ligam os processos de aplicao e que lhes permitam trocar


informaes.

Os sistemas.

Os servios (N) so oferecidos s entidades (N+1 ) nos Pontos de Acesso de


Servios ("Service Access Points" - SAP) ou SAPs (N), que representam as interfaces
lgicas entre as entidades (N) e (N+1). Assim, uma entidade (N) oferece servio (N)
na SAP (N), e uma entidade (N+1) procura o mesmo servio (N) na SAP (N). Um
SAP (N) servido e usado apenas por uma entidade (N) e uma entidade (N+1)
respectivamente, porm uma entidade (N) pode servir vrios SAPs (N) e uma entidade
(N+1) usar vrios SAPs (N).
Informaes entre entidades (N+1) so trocadas atravs de uma associao
chamadas conexo (N), estabelecida na camada (N) usando um protocolo (N). A
camada (N) oferece conexes (N) como parte dos servios (N). As conexes podem
ser do tipo ponto-a-ponto ou de pontos-teminais-mltiplos; estas ltimas
correspondem a associaes mltiplas entre entidades. 0 terminal de uma conexo (N)
se d num SAP (N) e chamado Ponto Terminal de Conexo (N) (CEP (N), do termo
em ingls "Connection End Point".

62

ENTIDADES (N+1)

CAMADA(N+1)
SERVIO(N)
CONEXO (N)
CEP (N)

PROTOCOLO (N)
CAMADA(N)

N)

ENTIDADE(N)

SAP(N-1)

Figura 7.4: Ilustrao de alguns termos do RM-OSI da ISO.

7.3 As Sete Camadas do RM-OSI da ISO


A prpria ISO afirma que seria difcil provar que sete camadas formam a
"melhor" arquitetura para a interconexo de Sistemas Abertos. Alguns princpios
aplicados para chegar s sete camadas para a arquitetura do RM-OSI:

No criar um nmero muito grande de camadas a fim de no dificultar o


trabalho de integrao dessas camadas;

Criar camadas separadas para tratar de funes que sejam claramente


diferentes;

Funes similares devem ser agrupadas numa mesma camada;


A camada mais alta, camada (7), a Camada de Aplicao; a camada (6) a
Camada de Apresentao; a (5), a Camada de Sesso; a (4), a Camada de
Transporte; a (3) a Camada de Rede a (2), a Camada de Enlace de Dados; e a
camada (1), a mais baixa, a Camada de Meios Fsicos. Seguem detalhes
sobre cada uma destas camadas.

Camada de Meios Fsicos(1) - permite a flexibilidade de uso de vrios meios fsicos


para interconexo com procedimentos de controle diferentes. Define as caractersticas
mecnicas, eltricas, funcionais e de procedimentos para ativar, manter e desativar
conexes fsicas para a transmisso de bits. O projeto da camada fsica pode ser
considerado como de domnio do engenheiro eletrnico.
63

Camada de Enlace de Dados(2)- detecta, e possivelmente corrige erros na camada


de meios fsicos, fornece camada de rede a capacidade de pedir estabelecimento de
circuitos de dados na camada (1) (isto , a capacidade de controlar o chaveamento de
circuitos). responsvel pelo envio da confirmao de recebimento
(acknowledgement), caso o quadro de confirmao seja destrudo, existe a
possibilidade do da informao ser retransmitida, ocasionando a duplicao de dados
enviados. Cabe a esta camada resolver problemas causados por quadros perdidos,
duplicados ou danificados. Outra funo desta camada o controle de fluxo de
informaes, impedindo, por exemplo, que um transmissor rpido afogue um receptor
lento com informaes.
Camada de Rede(3) Esta camada agrupa protocolos de operao da rede, tais como
algoritmos de roteamento e de controle de congestionamento. Cabe a ela levar os
pacotes da origem ao destino, optando caminho apropriado. A camada de rede deve
conhecer a topologia da subrede, proporcionado uma rota que evite
congestionamentos, podendo inclusive exigir muitos saltos em ns intermedirios.
Quando a origem e o destino esto em redes diferentes, cabe a camada de redes
resolver os problemas de compatibilidade como: diferenas de endereamento,
tamanho do pacote, protocolos diferentes...
Camada de Transporte(4) - h a necessidade de controlar o transporte de dados do
sistema fonte ao sistema destino, isto , fim-a-fim, para que o servio de transporte
atinja sua totalidade. 0 propsito da camada de transporte , pois, fornecer o servio
de transferncia transparente de dados (fim-a-fim) entre entidades da camada de
sesso. A complexidade das funes na camada de transporte, que so responsveis
pela qualidade do servio oferecido, depende da qualidade do servio de rede
disponvel. Se a conexo oferecida pela camada da rede for confivel e econmica, as
funes necessrias na camada de transporte sero proporcionalmente reduzidas.
Camada de Sesso(5) - o propsito da camada de sesso organizar e sincronizar o
dilogo, e gerenciar a troca de dados entre entidades da camada de apresentao
comunicantes. Os servios so classificados em duas categorias:

"Servio de Administrao de Sesso" que une duas entidades, e mais tarde as


desune(login/logoff).

"Servio de Dilogo de Sesso" que controla a troca de dados, delimita e


sincroniza operaes de dados entre duas entidades de apresentao. Como por
exemplo, trocar informaes em half-duplex, full-duplex etc.

Camada de Apresentao(6) A Camada de apresentao, ao invs de se preocupar


com a movimentao ordenada de bits, se relaciona com a preservao do significado
das informaes transportadas, resolvendo problemas de diferena de sintaxe entre
sistemas abertos comunicantes. Computadores podem ter diferentes formas de
representao interna dos dados, havendo a necessidade de acordos e convenes para
assegurar compreenso mtua. tarefa de apresentao codificar (podendo haver
compresso e criptografia) dados estruturados desde o formato interno usado no
transmissor para um fluxo de bits adequado transmisso, e depois decodific-los na
representao do destino.

64

Camada de Aplicao(7) - a camada mais alta do RM-OSI. Todas as outras camadas


existem para dar suporte a esta. a "janela', entre usurios comunicantes no ambiente
OSI, atravs da qual ocorre toda troca de informao significativa para esses usurios.
N-INTERMEDIRIO

Transporte
Transporte
Rede
Rede
Enlace de dados
Meios Fsicos

Enlace de dados
Meios Fsicos

MEIOS FSICOS PARA INTERCONEXO DE SISTEMAS ABERTOS (OSI)

Figura 7.5: As setes camadas para a arquitetura OSI.

7.3 Identificao e Rotas


O RM OSI for proposto para possibilitar a comunicao entre processos em
sistemas abertos. Um sistema aberto constitudo por entidades. Para que entidades
em sistemas distintos possam se comunicar, elas devem ser capazes de identificar
umas as outras. A identificao de entidades, em sistemas distribudos conectados por
rede(s) um problema difcil. A dificuldade aumenta quando se consideram vrias
redes interconectadas, ou mesmo redes isoladas, com capacidade de alterar suas
configuraes dinamicamente.
7.4 Nomes, Endereoes e Rotas
Schoch [SCHO 78) deu as seguintes definies para esses termos que embora
sejam informais, so teis para diferenciar os conceitos envolvidos:

o Nome indica o que se procura;

o Endereo indica onde ele se encontra; e

a Rota indica como se chega l.

Nomes so identificadores usados para distinguir uma entidade de outra. Um


nome deve ser nico. Um nome pode incorporar informao estruturada na forma de
atributos que caracterizam a entidade. Uma classe de atributos pode ser usada para
indicar a localizao de uma entidade numa rede. Endereos so nomes que
incorporam atributos de localizao, mas um nome no necessariamente um

65

endereo. Numa rede, o endereo de uma mquina de um usurio d a sua localizao


relativa aos outros usurios, no espao delimitado pela(s) rede(s). Endereo especfico
de rede e endereo nico. No primeiro caso, um usurio tem um endereo que deve
ser nico na sua rede, mas um outro usurio, em uma outra rede, pode ter o mesmo
endereo. No segundo caso, cada usurio tem um endereo que nico em todo o
espao delimitado por todas as redes interligadas. Uma rota caracteriza a localizao
de uma entidade-destino pela indicao de um caminho para se chegar at ela. Uma
rota um endereo, enquanto que um endereo pode ser ou no uma rota.

7.5 Sistemas de Identificao


Um sistema de identificao consiste de:

Um alfabeto para a construo de identificadores de vrias camadas.

Regras para a formao de identificadores.

Funes de mapeamento para transformar identificadores de uma camada em


identificadores de camadas inferiores.

Mecanismos de atualizao de contexto, para que as entidades identificadas ou


objetos por elas manipuladas possam ser relocados, compartilhados, criados ou
destrudos.
Para que um sistema de identificao seja adequado, num ambiente aberto, vrias
metas devem ser atingidas, das quais destacamos as seguintes:

Adequao para aplicaes de transaes e aplicaes usando conexes.

Suporte para identificadores adequados a humanos e identificadores adequados


ao processamento por mquinas.

Suporte para identificadores com contexto global e identificadores com


contexto local.

Suporte para relocao de entidades.

Suporte para cpias mltiplas de objetos.

Suporte para que vrios objetos ou entidades tenham o mesmo identificador.


Deve ser possvel identificar unicamente cada entidade e objeto do ambiente
aberto global. 0 problema como criar um espao global de identificadores nicos
num ambiente heterogneo onde cada domnio de identificao local usa um mtodo
diferente de criar identificadores nicos neste domnio.Uma soluo a de usar
concatenao hierrquica onde cada domnio local tenha um identificador nico e
concatene o identificador local a este. Uma outra alternativa a de definir um espao
global de identificao e dividir este espao entre os domnios locais, os quais devem
mapear seus identificadores locais nos identificadores globais.
7.5.1. IDENTIFICADORES NO RM-0SI
A primeira observao que se faz quanto ao RM-OSI (Reference Model Open
Systems Interconections International Organization for Standardization) : a ISO
utiliza o termo Ttulo no lugar do nosso termo Nome. Assim, um Ttulo-Global
identifica uma entidade (N), independentemente de sua localizao, e nunca
alterado. Um Ttulo-Local um nome que identifica univocamente entidades
distintas, mas s num contexto ou espao limitado, denominado Domnio de Ttulo.

66

Um Ttulo-Global consiste de duas partes:


1. Um Nome de Domnio de Ttulo para identificar o Domnio de Ttulo no
ambiente OSI.
2. Um Sufixo de Ttulo que nico na extenso do Domnio de Ttulo
identificado (por a).

TTULO (N+1)
CAMADA (N+1)

ENTIDADE (N+1)
SERVIOS (N)
ENDEREO (N)

CONEXO (N)
IDENTIFICADOR
DE
CEP (N)
CAMADA (N)
TTULO (N)
ENTIDADE (N)

Figura 7.6: Ilustrao dos termos (RM-OSI da ISO): Ttulo (N), Endereo(N) e
Identificador de CEP(N) (CEP Connection end Point).

Os Domnios de Ttulo importantes so as prprias camadas. Neste caso, e de


forma genrica, o Nome de Domnio de Ttulo identifica a camada (N), enquanto um
Sufixo de Ttulo um Ttulo-Global (N) que identifica uma entidade (N) (na camada
(N)).
Um Ponto de Acesso a Servio, SAP (N), referenciado atravs de um Endereo (N).
Um Endereo (N) identifica univocamente um SAP (N) ao qual se liga uma entidade,
na separao entre a camada (N) e a camada (N+1). Se a entidade no se liga mais ao
SAP (N), o endereo no dar mais acesso entidade. Caso o SAP (N) seja
remanejado para uma outra entidade, o seu endereo d acesso a esta nova entidade e
no antiga, que porm, continua a ser identificada pelo seu Ttulo-Global.
A ISO tambm define o conceito de Rota na arquitetura do RM-OSI. Uma
funo de roteamento serve para "traduzir" o endereo de uma entidade em um
caminho ou rota pela qual a entidade pode ser alcanada.

67

A1

A2

F
ENDEREO (N)

CAMADA (N)
M2

M1

B C

ENDEREO (N+1)
A

C
M1: MAPEAMENTO HIERRQUICO
M2: MAPEAMENTO POR TABELA

Figura 7.7: Tipos de mapeamento entre Endereos (N) e Endereos (N-1).

Dentro de um SAP(N), o Identificador(N) usado pela entidade(N) e pela


entidade (N+1), em ambos os lados do SAP(N), para identificar a conexo(N). Cada
identificador de CEP(N) consiste de duas partes:
- um endereo(N-1) do SAP(N-1) a ser usado conjuntamente com a conexo(N1);
- um sufixo de CEP(N) que nico no contexto ou espao do SAP(N-1).

7.5.2. CONEXES
Um dos servios que a camada (N) oferece camada (N+1) a transferncia
de informao entre entidades (N + 1) cooperantes. Essa transferncia se d numa
conexo (N). Como vimos, uma conexo (N) uma associao estabelecida para
comunicao entre entidades (N + 1). Cada uma das entidades (N+ 1) identificada
pelo seu endereo (N). Uma dada entidade (N) pode ter uma ou mais conexes
estabelecidas com outras entidades (N), com uma s outra entidade(N), ou ento com
ela prpria. Uma entidade (N + 1) tem acesso a uma conexo (N) atravs de um SAP
(N) (Ponto de Acesso de Servio). Uma conexo (N) poder ter dois ou mais pontos
terminais. Uma entidade (N + 1) faz referncia conexo (N) usando o identificador
CEP (N) apropriado.
Estabelecimento de uma conexo

Para que a conexo (N) seja estabelecida preciso que haja uma conexo (N1) disponvel. Se a conexo(N-1) no estiver disponvel, ser necessrio estabelec-la.
O estabelecimento de uma conexo(N implica consequentemente que estejam
estabelecidas conexes em todas as camadas inferiores.

68

Liberao de uma Conexo


A liberao de uma conexo(N-!) no causa necessariamente a liberao da
conexo ou conexes(N) que a usam. A liberao da conexo(N) entre
entidades(N+1) requer ou a disponibilidade de uma conexo (N+1) ou. um acordo
entre as entidades (N+1) para desfazer a conexo(N).

Multiplexao
As conexes(N) so suportadas por conexes(N-1); uma das funes da
camada(N) faz a correspondncia das conexes (N) com as conexes (N-1). A
correspondncia pode ser de trs tipos:
1. correspondncia uma a uma na qual cada conexo(N) construda em cima de
apenas uma conexo(N-1):
2. multiplexao para cima, na qual vrias conexes (N) so multiplexadas em
apenas uma conexo (N-1);
3. multiplexao para baixo, na qual uma conexo (N) construda em cima de
vrias conexes (N-1).
O tipo(1), multiplexao para cima, a nica maneira de estabelecer vrias
conexes (N) num ambiente onde apenas existe uma conexo (N-1). O tipo (2) toma
mais econmico o uso do servio (N-1).
O tipo (3), multiplexao para baixo, indicado nos casos em que se deseje
uma melhor vazo da camada (N-1)- obtida atravs da utilizao de conexes (N-1)
mltiplas.
Transferncia de Dados

Informao de controle e dados de usurios so trocados entre entidades(N)


atravs de unidades de dados do protocolo (N). Uma unidade de dados de protocolo
(N) uma unidade de dados especificada num protocolo (N) que contm informao
de protocolo (N) e, possivelmente, dados de usurio (N).
1. Informao de Controle de Protocolo(N) - PCI (N) - ((N) "Protocol ontrol
Information") qualquer informao que suporta a operao conjunta de
entidades (N). PCI (N) trocada entre duas entidades (N) cooperantes atravs
de uma conexo (N-1).
2. Dados de Usurio (N)- so. dados troados entre quaisquer duas entidades(N)
como um servio para as entidades (N+1) sendo atendidas pelas, entidades
(N)).
3. Unidade de Dados de Protocolos (N) - PDU(N) - ((N) Protocol Data Unit")
uma unidade contendo PCl(N) e possivelmente dados de usurio.
4. Unidade de Dados de Servio (N)- SDU (N) - ((N) - "Service Data Unit")
uma unidade transferida entre uma entidade (N+1) e uma entidade (N).
5. Unidade de Dados de Interface (N) - IDU (N) - ((N) "Interface Data Unit") -
a unidade, de informao transferida atravs de um Ponto de Acesso a Servio
entre uma entidade (N+1) e uma entidade (N).

69

6. Informao de Controle de Interface (N) informao de controle trocada


entre uma entidade (N-1) e uma entidade (N) para coordenar a operao
conjunta destas entidades.
7. Dados de Interface (N) informao recebida por uma entidade (N) ou ainda
de uma entidade (N+1), para ser transmitida para outra entidade (N+1) numa
conexo (N).
de importncia salientar que a transferncia de dados pede ser efetuada
durante o estabelecimento de uma conexo, isto , Dados de Usurio (N), podem ser
levados pelo pedido de estabelecimento de conexo (N) e pela resposta de
estabelecimento de conexo (N). Alm disso, Unidades de Dados nas vrias camadas
podem no ter tamanhos compatveis.
A camada (N) pode ainda prover:

Seqenciamento de fluxo de dados para garantir que os dados sero entregues


na mesma ordem que foram submetidos pela camada (N+1);

Deteco e Notificao de Erro para melhorar a qualidade da conexo;

Controle de Fluxo entre entidades (N) pares, e/ou Controle de Fluxo de


Interface entre camadas adjacentes,

Funo Reset para recuperao de perdas de sincronizao entre entidades (N)


pares.

7.6

GERNCIA

A ISO [ISO 97] identifica trs categorias de atividades de gerncia:


Gerncia de Aplicao.
Gerncia de Sistemas.
Gerncia de Camada.

A Gerncia de Aplicao faz a gerncia dos processos de aplicao da OSI.


Atividades tpicas nesta categoria incluem:

inicializao de parmetros representando processos de aplicao;

iniciao, manuteno e terminao de processos de aplicao;

alocao e liberao de recursos para processos de aplicao;

deteco e preveno de interferncia e "deadlocks" no uso de recursos;

controle de segurana etc.


A Gerncia de Sistemas diz respeito a gerncia dos vrios recursos e seu
estado por todas as camadas da arquitetura OSI. Exemplos de funes tpicas nesta
categoria:
a) gerncia de ativao/desativao incluindo:

ativao, manuteno e terminao de recursos

algumas funes de carregamento de programas;

estabelecimento/manuteno/liberao de conexes entre entidades de


gerncia;

inicializao/alterao de parmetros de sistemas abertos;

70

b) monitorao, incluindo relatrios de estado, mudanas de estado e estatsticas;


c) controle de erro, reconfigurao e reiniciao.
A Gerncia de Camada tem dois aspectos: um que diz respeito s atividades da
camada, e outro que forma um subconjunto da gerncia de sistemas.
A fim de acrescentar as atividades de gerncia ao RM-OSI, a estrutura bsica
do RM-OSI teve de ser estendida para acomodar as entidades de gerncia. A extenso
feita pela ISO recebeu o nome de "OSI Management Framework".
Na figura abaixo ilustramos o OSI Management Framework", que acrescenta
uma "camada artificial", vertical - de nvel hierrquico (7) - na qual reside o Protocolo
de Gerncia de Sistemas usado pelas Entidades de Aplicao para Gerncia de
Sistemas. Essa "camada artificial" deve manter interfaces com todas as demais
camadas . A execuo propriamente dita da funo de gerncia se d com interao
direta entre a entidade de aplicao para gerncia de sistemas com a entidade
correspondente na camada em questo (atravs da seta dupla, mais larga).

71

Captulo

8
Projeto e Desenvolvimento de Protocolos
8.1. Introduo
No captulo anterior, dizamos que um protocolo um conjunto de regras que
viabilizam e ordenam a comunicao entre entidades cooperantes em sistemas
abertos, possivelmente heterogneos. Em captulos subseqentes, discutiremos
protocolos para as camadas de transporte, sesso, apresentao e aplicao do RMOSI. Em nossa discusso, freqentemente lanaremos mo da lngua portuguesa linguagem natural para os brasileiros - para apresentarmos tais protocolos. O uso
apenas da linguagem natural pode, porm, resultar em descries informais as quais
geralmente tm os atributos de serem incompletas e longas, no-consistentes, de
compreenso dbia ou de interpretaes variadas. bvio que um protocolo no pode
ser descrito informalmente sob o risco de no cobrir todas as possveis situaes. O
resultado, de qualquer forma, um protocolo que, quanto mais complexo, menos
chance ter de viabilizar coisa alguma, e muito menos a comunicao entre sistemas
heterogneos.
imprescindvel que a especificao ou descrio de um protocolo seja
concisa e precisa, totalmente ausente de ambigidades crena geral, que isto s se
verifica atravs de uma especificao formal do protocolo. No que a descrio
informal (at mesmo causal) do protocolo deixe de ter seus mritos. Como j
dissemos, talvez seja esta a maneira mais indicada para os humanos entenderem
alguns protocolos - principalmente os mais complexos, que no so incomuns no
ambiente de processamento distribudo de uma rede local. Em adio, o
desenvolvimento inicial de protocolos utilizou a descrio informal, provavelmente
como resultado da inexistncia de tcnicas formais para a especificao de protocolos
conciliadas. Entretanto, assim que os protocolos comearam a se tornar mais
sofisticados e complicados, formou-se um consenso sobre a necessidade de
especificaes atravs de tcnicas formais. Na segunda seo deste captulo,
revisaremos os principais tipos de tcnicas para especificao de protocolos.
Mesmo quando a descrio informal de um protocolo fornecida para
benefcio de compreenso de sua operao, de boa prtica fornecer tambm a sua
especificao formal, isto porque esta serve de base para a validao, verificao,
testes e implementao do protocolo.
A validao e verificao de um protocolo so atividades importantes durante
o seu projeto. Essa importncia reforada quando o protocolo est para se tornar um
produto comercial e, mais ainda, quando o protocolo sendo especificado est para ser
sugerido como um padro. Por validao de um protocolo entende-se: as atividades
para mostrar ou assegurar que a especificao e implementao do protocolo
satisfaro as necessidades da comunicao para a qual ele est sendo projetado (ex:
Os tempos de atraso na entrega das mensagens esto

72

dentro do esperado? O controle de fluxo empregado adequado?). As atividades de


validao, desempenhadas durante todo o projeto de protocolo, podem incluir estudos
de simulao, modelagem analtica, etc. Aqui estamos interessados num nico aspecto
da validao, a verificao de protocolos, isto , na determinao de certas
caractersticas lgicas da especificao do protocolo que indicam se ele tem defeitos
ou no (ex: possibilidades de deadlock). As operaes para verificao de um
protocolo so, portanto, realizadas em cima de sua especificao; na realidade, elas
consistem de manipulaes da especificao.O uso de tcnicas formais de
especificao contribui inquestionavelmente para facilitar quando no para
possibilitar, estas operaes.
Aps verificada a especificao de um protocolo, o prximo passo
implement-lo. Uma tarefa importante o teste de consistncia da implementao (ou
de partes da implementao) com a especificao do protocolo. Em outras palavras, a
implementao age de acordo com a especificao. Dois bnus valiosos, conseqentes
da especificao formal de um protocolo, que tem sido alvos de investigaes so:
1) a possibilidade de implementao automtica
2) a gerao automtica de testes a partir da especificao.
Em 1, a idia gerar programas executveis diretamente, por meios
automticos, a partir da especificao de um protocolo. Talvez no se tenha chegado
ainda ao estgio em que a implementao do protocolo como um todo, seja obtida
automaticamente. Boa parte ainda ter que ser feita a mo. Entretanto, a
implementao parcial automtica traz subsdios para facilitar esta tarefa e certamente
contribuiu para reduzir o custo e a introduo de erros, caractersticas de
implementaes manuais. Em 2, alguns cenrios de testes so automaticamente
obtidos da especificao. Mais uma vez, isto no elimina por completo o trabalho de
desenvolvimento do testador da implementao, mas uma contribuio para
amenizar os esforos deste desenvolvimento.
ESPECIFICAO
INFORMAL

VALIDAO

ESPECIFICAO
FORMAL

VERIFICAO

IMPLEMENTAO

AUTOMTICA

GERAO
AUTOMTICA
DE TESTES

IMPLEMENTAO

TESTES

Figura 8.1- Projeto de Protocolo

Tradicionalmente, os protocolos tm sido implementados inteiramente em


software. Entretanto, para que os requisitos de velocidade das redes atuais sejam

73

atendidos, pode ser necessrio implementar parte de um protocolo em hardware, o que


implica em promover a partio hardware/software da sua especificao. Atualmente
o projetista tem poucos recursos para auxili-lo no refinamento da especificao e na
partio do protocolo. Neste caso, til fornecer ao projetista medidas de
desempenho de maneira a automatizar o processo. Combinam-se os parmetros
utilizados numa funo de custo nica, denominada funo objetivo, que fornece uma
medida da qualidade da partio, auxiliando o projetista a selecionar aquela que
melhor satisfaz as especificaes.
Utiliza-se uma ferramenta de anlise de desempenho, denominada Tangram-II,
para auxiliar na identificao das operaes crticas em termos de tempo e outros
parmetros tais como, por exemplo, vazo. Com base nessas medidas o projetista
pode analisar a sensibilidade das especificaes de projeto aos parmetros do modelo
e definir a partio.
O protocolo inicialmente modelado nas redes de Petri estocsticas.
Posteriormente, gerado um novo modelo, markoviano, utilizando o Tangram-II. Os
valores dos parmetros deste novo modelo so fornecidos por um mtodo de
otimizao baseado em algoritmos genticos. Para cada conjunto de valores
fornecidos pelo algoritmo gentico, o Tangram-II calcula medidas de desempenho que
indicam o seu grau de aptido em relao a uma funo objetivo especificada pelo
projetista. Desta forma, realiza-se uma seleo dos melhores conjuntos de parmetros,
gera-se uma nova populao e realimenta-se o Tangram-II. Este processo se repete at
que a funo objetivo esteja dentro de uma preciso especificada. Por exemplo, se a
especificao for uma determinada curva de vazo para o protocolo, so fornecidos os
parmetros do modelo que melhor aproximam a curva.
Os avanos tecnolgicos que ocorreram nos ltimos anos nas reas de
comunicao celular, redes locais sem fio (wireless LANs) e comunicao via satlite
criaram novas linhas de pesquisa em Cincia da Computao que comearam a ser
investigadas recentemente. Uma delas a rea de computao mvel que tem
recebido muita ateno por parte da comunidade cientfica. O termo mvel significa
"ser capaz de mover mas retendo a conexo com a rede". Computao mvel
representa um novo paradigma computacional que tem como objetivo prover aos
usurios acesso permanente a rede independente de sua localizao fsica. Esse acesso
pode ser feito utilizando um dispositivo computacional porttil como computadores
laptops ou palmtops, ou telefones celulares. Com a diminuio dos custos desses
dispositivos, a computao mvel se tornar vivel no somente para o segmento
empresarial mas para as pessoas de uma forma geral. importante observar que
computao mvel expande a rea de computao distribuda para incluir servios
oferecidos a um usurio independente de sua localizao e, mais importante, de
mudanas na localizao. A combinao de comunicao sem fio com a mobilidade
de computadores criou problemas novos nas reas de redes de computadores, sistemas
operacionais, sistemas de informao, otimizao, dentre outras.
Os protocolos de comunicao sempre foram projetados levando-se em
considerao caractersticas do ambiente onde so executados. No caso da pilha de
protocolos para um ambiente mvel, as caractersticas principais do ambiente, que so
bandwidth baixa e alta taxa de erro, afetam os protocolos de todas as camadas. Logo,
atravs do uso de tcnicas de compresso pode-se obter uma melhor eficincia do
canal de comunicao. Alm disso, vrios princpios de projeto de protocolos foram
propostos dependendo da funo de cada camada.

74

Ao se projetar protocolos de comunicao deve-se seguir certos princpios


como os definidos em Holzmann (Design and Validation of Computer Protocols) que
identifica cinco partes distintas, a saber:
1. O servio a ser provido pelo protocolo
2. As suposies sobre o ambiente no qual o protocolo ser executado
3. O vocabulrio de mensagens usado para implementar o protocolo
4. A codificao (formato) de cada mensagem no vocabulrio
5. As regras de procedimento usadas para garantir a consistncia das trocas de
mensagens e, em ltima anlise, executar o servio especificado
Normalmente, por um abuso de linguagem, a quinta parte chamada de
protocolo e a mais difcil de projetar e verificar.
interessante observar que cada parte da especificao do protocolo pode
definir uma hierarquia. Por exemplo, o vocabulrio do protocolo pode ser formado
por uma hierarquia de classes de mensagens.
De uma forma geral, o projeto do protocolo deve ser estruturado buscando
sempre:
1. Simplicidade: protocolo deve ser construdo a partir de um pequeno nmero de
funes bem projetadas e bem entendidas.
2. Modularidade: um protocolo complexo pode ser construdo a partir de
mdulos mais simples que interagem de forma bem definida e simples.
3. Bem-formado: um protocolo, como qualquer outro sistema, no deve conter
funes que nunca sero executadas ou que no foram definidas; deve possuir
limites conhecidos como tamanho de fila de mensagens; deve ser autoestabilizante e poder ser adaptado.
4. Robustez: idealmente, o protocolo deve fazer suposies mnimas sobre o
ambiente onde ser executado. Na prtica, isso difcil de obter pois o
ambiente influencia diretamente a forma como o protocolo deve trabalhar.
5. Consistncia: protocolos, como outros algoritmos distribudos, devem possuir
certas propriedades como no possurem deadlocks ou livelocks, terminaes
erradas.
8.2. Especificao formal de protocolos
O projeto de um protocolo baseia-se, sobretudo, na especificao formal do
protocolo. Segundo P. R. F. [CUNH 83], a especificao de um protocolo deve
explicar exatamente todas as condies que ele deve satisfazer e nada mais. Ela deve
expressar o essencial e omitir o no essencial; deve ser, como j dito, clara e precisa.
a onde reside a dificuldade, baseando-se que estes dois predicados so, as vezes,
antagnicos. As tcnicas formais para especificao de protocolos existem para que
se faam especificaes com esses dois predicados. Esta seo trata das tcnicas
formais mais comumente empregadas na especificao de protocolos de comunicao
para redes de computadores.
A arquitetura da rede que adotamos a arquitetura para interconexo de
sistemas abertos da ISO, o RM-OSI. O RM-OSI estruturado em sete camadas
hierrquicas de protocolos onde cada camanda oferece servios camada
imediatamente superior (ex.: a camada (7) oferece servios de comunicao aos
processos sendo executados nos vrios sistemas conectados a rede). Os servios de
cada camada so providos pelo Protocolo da camada. Falamos ento de Especificao

75

de servios e Especificao de protocolos. Consideremos primeiro a especificao de


servios.

8.2.1. Especificao de servios


Especificao de servios de um protocolo consiste na descrio do
comportamento de entrada e sada da camada de protocolo correspondente [BOCH
80], isto , a especificao de servios do protocolo (N) descreve o servio de
comunicao fornecido pela camada (N).
A especificao de servios do protocolo (N) deve definir as primitivas de
servio (N), a ordem de execuo dessas primitivas e os efeitos da execuo de cada
uma delas. Ela, porm, no se deve ocupar em definir detalhes de implementao das
primitivas, esses detalhes so pertinentes interface e as camadas (N) e (N+1) e,
como j visto, podem variar em funo do sistema operacional sob o qual ir rodar a
implementao da interface e do prprio protocolo ou da linguagem de codificao
empregada, etc.
Um exemplo dos pontos importantes numa especificao de servio nos
fornecida em [BOCH 80] com o servio da camada de transporte (camada 4 do RMOSI). Neste caso, algumas primitivas bsicas so os pedidos de conexo, desconexo,
enviar e receber mensagens. A execuo destas primitivas envolve uma entidade na
camada (4), aquela que prov o servio, e uma entidade na camada (5), aquela que
recebe o servio. Durante a execuo, estas duas entidades comunicam-se atravs de
parmetros. A especificao do servio de transporte deve definir os possveis valores
para estes parmetros e a direo de transferncia para cada parmetro. A ordem de
execuo das primitivas tambm deve ser explicitada (ex: enviar no pode ser
executado antes de conexo). Num dado instante, as primitivas com possibilidade de
execuo e os valores permitidos para os parmetros dependem do passado das
interaes entre as entidades. A especificao deve indicar todas as situaes, os
estados possveis de acontecer, enquanto o servio est sendo prestado e como estas
situaes ou estados so alterados, em funo de alteraes passadas e de uma nova
interao. A alterao do estado pode ainda ser em funo de interaes passadas no
sistema local (restries locais de interaes anteriores em sistemas remotos e/ou
restries globais). No servio de transporte, o fato de enviar e receber s poderem ser
executados aps a conexo ter sido efetuada com sucesso, uma restrio local; j o
fato do valor do parmetro que indica o nmero de mensagens do primeiro receber,
executado num sistema, ser igual ao valor do mesmo parmetro do primeiro enviar,
executando em outro sistema remoto comunicante, um exemplo de uma restrio
global.
A utilizao de tcnicas para a especificao formal de servios ainda muito
escassa. Dentre os trabalhos iniciais na rea, destacam-se os empregos de mtodos de
engenharia de software em geral e mtodos descritivos do histrico de entradas e
sadas da camada de protocolo; histrico este fornecido em termos das seqncias de
entrada e sada permitidas e de suas interdependncias. Uma outra alternativa para a
especificao das seqncias permitidas de interaes atravs de mtodos de
especificao algbrica [GUTT 78]; mais detalhes acerca dos mtodos mencionados,
incluindo comparaes entre eles podem ser encontrados em [SUNS 79]; a maioria
dos trabalhos em especificao formal de protocolos, concentram-se mais nos
protocolos do que nos servios que eles fornecem.

76

8.2.2. Especificao de Protocolos


A especificao dos servios da camada N no define como o protocolo N
fornece os servios. A especificao do protocolo N define as entidades cooperantes
da camada N e como estas entidades fornecem os servios, no define toda entidade
N, mas apenas na extenso necessria para assegurar compatibilidade com as outras
entidades da camada. Mais uma vez, a questo de como a entidade ser implementada
deixada em aberto para propiciar liberdade na escolha dos mtodos de
implementao.
Na especificao do protocolo N, a camada N deve ser descrita. A prpria ISO
apresenta diretrizes para uma descrio de camada (ISO 81). De acordo com ela, os
seguintes pontos devem constar na descrio da camada N:
1.Uma exposio geral do propsito da camada e de seus servios.
2.Uma especificao exata do servio fornecido pela camada.
3.Uma especificao exata do servio necessrio a ser fornecido pela camada N1.
4.A estrutura interna da camada N, em termos das entidades N e de suas
relaes.
5.Uma descrio do(s) protocolo(s) entre as entidades N incluindo:
Uma descrio geral e informal da operao das entidades.
Detalhes adicionais, tais como consideraes para melhorar o desempenho,
sugestes para implementao, ou uma descrio pormenorizada que se
aproxime de uma implementao.
Uma especificao do protocolo que inclua:
Uma lista dos tipos e formatos de mensagens trocadas entre as entidades
N.
As regras que governam a reao de cada entidade N a comandos nas
interfaces, mensagens de outras entidades e eventos internos.
Observe que o ponto 3 redundante com a descrio da camada N-1; ele
incluindo para tornar a especificao do protocolo N independente das demais.
Uma especificao formal do protocolo N pode ser feita atravs do uso de vrias
tcnicas. Estas tcnicas so classificadas em trs categorias: modelos de transio,
linguagens de programao e modelos mistos.

8.2.2.1. Modelos de Transio


Nesta categoria classificam-se os modelos de Mquina de estados Finita
(MEF) [DANT 80], Redes de Petri [MERL 76], Linguagens Formais [TENG 78], os
chamados Grficos da UCLA [POST 74] e Colquios [MEZZ 73], dentre os mais
conhecidos. Destes, os mais populares so MEF e Redes de Petri.
Andr Danthine, afirma que as redes de petri so provavelmente mais indicadas
no estgio inicial da especificao de protocolo [DANT 80]. Isso porque elas so mais
prximas de uma linguagem natural e facilitam a identificao de uma nova situao
ou estado para onde o protocolo migra, em resposta a ocorrncia de eventos ou
transies (simbolizando a emisso de comandos nas interfaces, chegadas de

77

mensagens ou estouros de temporizao). Em estgios subseqentes, porm, quando a


especificao do protocolo retocada e finalizada, a realizao de MEF mais
vantajosa, pois propicia uma especificao mais compacta. Na realidade, uma MEF e
redes de Petri so equivalentes e uma pode ser transformada na outra sem muita
dificuldade. Aqui, escolhemos o modelo de MEF para ilustrao dos modelos de
transio. A razo para o nome desta categoria, como tambm o sentido em que so
utilizados os termos transio e estado de um protocolo, ficaro melhor esclarecidos
ao longo da nossa apresentao.
Uma MEF formalmente definida como uma quntupla (X,E,S,FPE,PS) onde X
um conjunto finito de estados, E um conjunto finito de entradas, S um conjunto
finito de sadas ; FPE a funo de prximo estado que mapeia os pares correntes
(estado, entrada) no prximo estado, isto , a funo (FPE: exX -> X), e PS uma
funo de sada que mapeia os pares correntes (estado, entrada) na sada corrente, isto
, a funo (FS: ExX -> S). FPE tambm chamada funo de transio de estado.
Uma MEF ou se encontra num estado (estado presente) ou se encontra em
transio para um prximo estado. Uma transio ocorre em resposta a uma nova
entrada. O prximo estado para onde migra a MEF determinada pela funo FPE,
que utiliza, na sua deciso, informaes sobre o estado presente e da entrada recebida.
A sada, fornecida pela MEF, no prximo estado indicada pela funo FS. A
operao de uma MEF pode emular o funcionamento de um protocolo.
Como em uma MEF, o protocolo N permanece num certo estado at que seja excitado
por alguma entrada (ex: comandos na camada N+1, chegada de mensagens da camada
N-1, timeouts, etc). O protocolo responde entrada fazendo algum processamento
(modelado por uma transio MEF) e em seguida muda para um novo estado,
produzindo uma sada, na forma de uma requisio de servio da camada N-1 ou
envio de uma mensagem para a camada N+1, inicializao de temporizadores, etc.
Portanto, a construo de uma MEF correspondente a um protocolo N uma maneira
de especificar formalmente o protocolo.
Consideremos como exemplo do uso de MEFS o seguinte protocolo de enlace
de dados que podemos imaginar como sendo utilizado entre duas interfaces de uma
rede local. Cada interface composta de uma parte emissora e de uma parte receptora.
A emissora de uma interface conversa com a parte receptora da outra. Considerandose um dos pares emissora - receptora, a emissora envia somente quadros de dados para
a receptora que, por sua vez, manda apenas reconhecimentos de volta para a emissora,
para sinalizar quadros de dados recebidos corretamente. O meio de transmisso no
livre de rudo e pode perder quadros ou entreg-los com erro. Um quadro recebido
com erro desprezado e equivale, portanto, a um quadro perdido. O controle de fluxo
do tipo envia-espera, isto , aps enviar um quadro de dados, a emissora aguarda a
chegada de seu reconhecimento. Se decorrido um certo intervalo de tempo (chamado
de intervalo de temporizao), o reconhecimento ainda no tiver chegado, a emissora
retransmite o quadro de dados. Aps receber o reconhecimento, a emissora pode
receber um outro quadro do nvel superior e transmiti-lo. Para manter seqenciamento
de quadros de dados e de seus respectivos reconhecimentos, os valores 0 e 1 so
utilizados. Assim, o quadro nmero 1 s enviado aps recebimento do
reconhecimento para o quadro 0, e vice-versa. Os quadros recebidos corretamente do
meio de transmisso pelas interfaces so passados para o nvel superior (chamado
usurio", no que segue). Acabamos de especificar (parcialmente) o protocolo
informalmente. A seguir apresentamos a especificao com o formalismo do modelo
MEF.

78

Uma MEF, quando usada para modelar um protocolo, denominada Mquina


de Protocolo.Geralmente, um protocolo divide-se logicamente em duas partes, uma
para cada entidade implementando o protocolo.Assim, existem duas mquinas que
modelam o protocolo do exemplo.Como neste exemplo, as duas entidades so
simtricas (cada uma tem comportamento idntico outra), basta especificarmos uma
nica mquina de protocolo e lembrarmos que existe uma tal mquina para cada lado.
A mquina de protocolo est sempre num determinado estado, em qualquer
instante de tempo. O estado consiste de todas as variveis da parte receptora e do
estado principal da mquina.Para a emissora, temos dois estados principais:
aguardando um quadro do usurio e aguardando um reconhecimento.Alm disso,
temos na parte emissora uma varivel binria indicando o prximo quadro a transmitir
ou aguardando reconhecimento. Temos, ento, para a parte emissora, quatro estados:

Espera quadro do usurio que ser transmitido como quadro 0.


Espera quadro do usurio que ser transmitido como quadro 1.
Espera reconhecimento do quadro 0.
Espera reconhecimento do quadro 1.

Para a receptora temos apenas dois estados:

Aguardando quadro 0.
Aguardando quadro 1.

O estado total da mquina de protocolo o produto cartesiano dos estados da


emissora e da receptora, j que cada entidade tem uma emissora e uma receptora.
Formalizando, temos que X, o conjunto finito de estados :
X
=
0,0),(EU,0,1),(EU,1,0),(EU,1,1),(ER,0,0),(ER,0,1),(ER,1,0),(ER,1,1)}

{(EU,

Onde EU significa Esperando por um quadro de usurio e ER significa


Esperando por um reconhecimento. Os dois nmeros no estado so variveis
binrias associadas emissora e receptora, respectivamente. Continuando com o
formalismo da MEF, precisamos de E, o conjunto de entrada. Uma entrada, aqui,
significa um evento passvel de acontecer enquanto a mquina estiver num
determinado estado, temos:
E = {QU, ACK0IN, ACK1IN, DADO0IN, DADO1IN, TEMPORIZAO}
Onde:
QU = Quadro do Usurio;
ACK0IN = recebimento de um reconhecimento para o quadro 0;
ACK1IN = recebimento de um reconhecimento para o quadro 1;
DADO0IN = recebimento do quadro de dados 0;
DADO1IN = recebimento do quadro de dados 1;
TEMPORIZAO = estouro do temporizador.
Observe que QU representa um evento ocorrendo na interface superior;
ACK0IN; ACK1IN; DADO0IN; DADO1IN representam eventos ocorrendo na

79

interface inferior; e TEMPORIZAO representa um evento interno. O conjunto


finito de sadas, S, representa as aes que devem ser feitas pelo protocolo em
resposta a uma entrada. Neste caso, temos:
S = {ENVU, RECU, ACK0OUT, ACK1OUT, DADO0OUT, DADO1OUT, LT,
DT}
Onde:
ENVU = envia quadro ao usurio;
RECU = recebe quadro do usurio;
ACK0OUT = envia reconhecimento para o quadro 0;
ACK1OUT = envia reconhecimento para o quadro 1;
DADO0OUT = envia quadro de dados com numerao 0;
DADO1OUT = envia quadro de dados com numerao 1;
LT = liga temporizador;
DT = desliga temporizador.
Utilizaremos um mtodo grfico para completar a especificao da mquina de
protocolo. A seguinte conveno ser adotada:

Figura 8.2 Conveno para Mtodo Grfico


Onde a entrada E causa uma transio do estado X para o estado Y gerando uma
sada S. O diagrama de estados para o protocolo considerado fornecido na figura a
seguir:

80

Figura 8.3 Diagrama de Estados


Tomemos como exemplo o estado (EU, 0, 0): a emissora est esperando um
quadro do usurio que, quando chegar, ser enviado com numerao 0, e a parte
receptora esta aguardando um quadro de dados com numerao 0. H duas transies
partir deste estado. Associada parte emissora, a recepo de um quadro do usurio
(QU) far com que o quadro seja enviado e o temporizador ser ligado; a mquina
passa ento ao estado (ER,0,0) para esperar o reconhecimento do quadro. No estado
(EU,0,0), a parte emissora/receptora da entidade est aguardando o quadro de dados
com numerao 0 e, quando este chegar um reconhecimento ser enviado, o quadro
recebido ser passado para o usurio e a mquina passa para o estado (EU,0,1), onde a
parte emissora no mudou, mas a parte receptora esta aguardando o quadro de dados
1.
Como em uma MEF, o protocolo N permanece num certo estado at que seja
excitado por alguma entrada (ex: comandos na camada N+1, chegada de mensagens
da camada N-1, timeouts, etc). O protocolo responde entrada fazendo algum
processamento (modelado por uma transio MEF) e em seguida muda para um novo
estado, produzindo uma sada, na forma de uma requisio de servio da camada N-1
ou envio de uma mensagem para a camada N+1, inicializao de temporizadores, etc.
Portanto, a construo de uma MEF correspondente a um protocolo N uma maneira
de especificar formalmente o protocolo.
Consideremos como exemplo do uso de MEF o seguinte protocolo de enlace
de dados que podemos imaginar como sendo utilizado entre duas interfaces de uma
rede local. Cada interface composta de uma parte emissora e de uma parte receptora.
A emissora de uma interface conversa com a parte receptora da outra. Considerandose um dos pares emissora - receptora, a emissora envia somente quadros de dados para
81

a receptoras que, por sua vez, manda apenas reconhecimentos de volta para a
emissora, para sinalizar quadros de dados recebidos corretamente. O meio de
transmisso no livre de rudo e pode perder quadros ou entreg-los com erro. Um
quadro recebido com erro desprezado e equivale, portanto, a um quadro perdido. O
controle de fluxo do tipo envia-espera, isto , aps enviar um quadro de dados, a
emissora aguarda a chegada de seu reconhecimento. Se decorrido um certo intervalo
de tempo (chamado de intervalo de temporizao), o reconhecimento ainda no tiver
chegado, a emissora retransmite o quadro de dados. Aps receber o reconhecimento, a
emissora pode receber um outro quadro do nvel superior e transmiti-lo. Para manter
seqenciamento de quadros de dados e de seus respectivos reconhecimentos, os
valores 0 e 1 so utilizados. Assim, o quadro nmero 1 s enviado aps recebimento
do reconhecimento para o quadro 0, e vice-versa. Os quadros recebidos corretamente
do meio de transmisso pelas interfaces so passados para o nvel superior (chamado
usurio", no que segue). Acabamos de especificar (parcialmente) o protocolo
informalmente. A seguir apresentamos a especificao com o formalismo do modelo
MEF.
Uma Mef, quando usada para modelar um protocolo, denominada Mquina
de Protocolo.Geralmente, um protocolo divide-se logicamente em duas partes, uma
para cada entidade implementando o protocolo.Assim, existem duas mquinas que
modelam o protocolo do exemplo.Como neste exemplo, as duas entidades so
simtricas (cada uma tem comportamento idntico outra), basta especificarmos uma
nica mquina de protocolo e lembrarmos que existe uma tal mquina para cada lado.
A mquina de protocolo est sempre num determinado estado, em qualquer
instante de tempo. O estado consiste de todas as variveis da parte receptora e do
estado principal da mquina.Para a emissora, temos dois estados principais:
aguardando um quadro do usurio e aguardando um reconhecimento.Alm disso,
temos na parte emissora uma varivel binria indicando o prximo quadro a transmitir
ou aguardando reconhecimento. Temos, ento, para a parte emissora, quatro estado:
1.
2.
3.
4.

Espera quadro do usurio que ser transmitido como quadro 0.


Espera quadro do usurio que ser transmitido como quadro 1.
Espera reconhecimento do quadro 0.
Espera reconhecimento do quadro 1.

82

Para a receptora temos apenas dois estados:


1. Aguardando quadro 0.
2. Aguardando quadro 1.
O estado total da mquina de protocolo o produto cartesiano dos estados da
emissora e da receptora, j que cada entidade tem uma emissora e uma receptora.
Formalizando, temos que X, o conjunto finito de estados :
X = {(EU,0,0), (EU,0,1), (EU,1,0), (EU,1,1), (ER,0,0),
(ER,0,1), (ER,1,0), (ER,1,1)}

Onde EU significa Esperando por um quadro de usurio e ER significa


Esperando por um reconhecimento. Os dois nmeros no estado so variveis
binrias associadas emissora e receptora, respectivamente. Continuando com o
formalismo da MEF, precisamos de E, o conjunto de entrada. Uma entrada, aqui,
significa um evento passvel de acontecer enquanto a mquina estiver num
determinado estado, temos:
E = {QU, ACK0IN, ACK1IN, DADO0IN, DADO1IN, TEMPORIZAO}
QU
= Quadro do Usurio;
ACK0IN = recebimento de um reconhecimento para o quadro 0
ACK1IN = recebimento de um reconhecimento para o quadro 1
DADO0IN = reconhecimento do quadro de dados 0
DADO1IN = reconhecimento do quadro de dados 1
TEMPORIZAO = estouro do temporizador.

Observe que QU representa um evento ocorrendo na interface superior;


ACK0IN; ACK1IN; DADO0IN; DADO1IN representam eventos ocorrendo na
83

interface inferior; e TEMPORIZAO representa um evento interno. O conjunto


finito de sadas, S, representa as aes que devem ser feitas pelo protocolo em
resposta a uma entrada. Neste caso, temos:
S = {ENVU, RECU, ACK0OUT, ACK1OUT, DADO0OUT, DADO1OUT, LT, DT}
ENVU
RECU
ACK0OUT
ACK1OUT
DADO0OUT
DADO1OUT
LT
DT

=
=
=
=
=
=
=
=

envia quadro ao usurio


recebe quadro do usurio
envia reconhecimento para
envia reconhecimento para
envia quadro de dados com
envia quadro de dados com
liga temporizador
desliga temporizador

o quadro 0
o quadro 1
numerao 0
numerao 1

Utilizaremos um mtodo grfico para completar a especificao da mquina de


protocolo . A seguinte conveno ser adotada:

Onde a entrada E causa uma transio do estado X para o estado Y gerando uma
sada S. O diagrama de estados para o protocolo considerado fornecido na figura a
seguir:
Tomemos como exemplo o estado (EU, 0, 0): a emissora est esperando um
quadro do usurio que, quando chegar, ser enviado com numerao 0, e a parte
receptora esta aguardando um quadro de dados com numerao 0. H duas transies
partir deste estado. Associada parte emissora, a recepo de um quadro do usurio
(QU) far com que o quadro seja enviado e o temporizador ser ligado; a mquina
passa ento ao estado (ER,0,0) para esperar o reconhecimento do quadro. No estado
(EU,0,0) , a parte emissora/receptora da entidade est aguardando o quadro de dados
com numerao 0 e, quando este chegar um reconhecimento ser enviado, o quadro
recebido ser passado para o usurio e a mquina passa para o estado (EU,0,1), onde a
parte emissora no mudou, mas a parte receptora esta aguardando o quadro de dados
1.
Lembre-se agora que existe uma mquina de protocolo tal como mostrada para
cada entidade comunicante (os dois lados da conexo). Num determinado instante,
cada mquina pode estar num estado distinto, e h naturalmente uma dependncia
natural entre as duas mquinas.Por exemplo, a entrada DADO0IN numa mquina,
depende da sada DADO0OUT na outra. Porm o fato do canal perder quadros
implica que DADO0IN e DADO0OUT no tem dependncia direta. A comunicao
entre as duas mquinas se faz entre as duas MEFS adicionais, representando as duas
direes do canal. Uma direo do canal pode estar em um de dois estados vazio ou
transferindo. A MEF modelando cada direo do canal e mostrada na figura a
seguir:

84

Porm nem tudo so flores. O mtodo MEF apresenta uma dificuldade


considervel quando o protocolo mais sofisticado do que aquele que consideramos
no exemplo. Esta dificuldade causada pela exploso do espao de estados . Para o
protocolo que consideramos, o nmero total de estados era 8. Agora se permitssemos
um controle de fluxo em que o emissor pudesse continuar a enviar quadro de dados,
at uma mximo W quadros, antes de parar para esperar pelo reconhecimento, ento o
nmero de estados realmente cresceria. Qual seria o nmero de estados para W =8?
Fica claro que mesmo para protocolos simples, desenhar o diagrama de estados e
identificar todas as possveis transies entre eles no trivial, quando o nmero de
estados grande. Existem mtodos para restringir a dificuldade proveniente da
exploso do espao de estados. Alguns deles so:

Especificao parcial: a idia apenas especificar o que principal, as


transies principais, ignorando variveis e parmetros secundrios.
Juno de transies: a idia aqui combinar duas ou mais transies em
uma nica transio conjunta na especificao global do protocolo.
Decomposio em subcamadas: a idia criar vrias subcamadas para
servios especficos e desta forma diminuir a complexidade do protocolo de
uma maneira global.
Classificao de estados por asseres: este mtodo identifica asseres que
so predicados em um conjunto de estados. Na especificao global do
protocolo, considera-se coletivamente os estados em cada um dos conjuntos
formados, ao invs de individualmente. Isso reduz, assim, o nmero total de
estados a serem considerados.
Automao: a gerao automtica de estados e de transies entre eles reduz
o esforo humano na especificao de um protocolo com muitos estados. A
idia neste mtodo no diminuir o nmero de estados mas, sim, simplificar
o processo de gerao do diagrama de estados.

Linguagens de Programao
medida que um protocolo se torna mais complexo, a dificuldade de
especific-lo a travs dos modelos de transio aumenta. Alguns mtodos existem
para amenizar esta dificuldade, mas a partir de um certo grau de complexidade do
protocolo, a exploso de estados torna-se to severa que a especificao atravs dos
modelos de transio torna-se invivel. A especificao formal do protocolo tem
ento que ser feita atravs de outras tcnicas; uma delas por meio do uso de
linguagens de programao.
85

O interesse da utilizao de linguagens de programao para especificar


protocolos surgiu com a observao de que um protocolo na realidade um algoritmo
e pode assim ser descrito de forma clara e precisa atravs de uma linguagem de
programao de alto nvel. A especificao do protocolo toma ento a forma de um
programa escrito em uma linguagem como PROLOG, PASCAL, etc. Como ilustrao
vejamos o protocolo anteriormente especificado utilizando MEFs, agora especificado
em C:
#define
#define
#define
#define
#define
#define

SEQMAX 1
MENSMAX ...
PARA_SEMPRE for (;;)
TEMPOMAX ...
VERDADEIRO 1
FALSO 0

typedef int boolean;


typedef long tempo;
typedef unsigned num_seq;
typedef struct{
char m [MENSMAX]
} Mensagem;
typedef enum TipoQ {
ack,
dado
} Tipo_quadro;
typedef enum TipoE{
Quadro_usuario,
Quadro_rede,
Temporizador
} Tipo_evento;
typedef struct{
Tipo_quadro tipo;
Num_seq seq;
Mensagem info;
} Quadro;
emissor (){
Num_seq pqae;
Quadro qin,qout;
boolean ok;
pqae = 0;
PARA_SEMPRE {
qout.info = rec_usuario();
qout.tipo = dado;
qout.seq = pqae;
env_quadro (qout);
liga_temporizador(TEMPOMAX);
ok = FALSO;
While (ok == FALSO){
switch (esperaevento()){
case temporizador:
env_quadro(qout);
liga_temporizador(TEMPOMAX);
break;
case quadroDaRede:
qin = rec_quadro();
if (qin.tipo == ack && qin.seq == pqae) {
desliga_temporizador();
pqae++;

86

ok = VERDADEIRO;
}
break;

receptor (){
Quadro quadro;
Num_seq pqar;

pqar = 0;
PARA_SEMPRE {
if (espera_evento() == Quadro_rede) {
quadro = rec_quadro();
if (quadro.tipo = dado && quadro.seq ==pqar) {
env_usuario(quadro);
quadro.tipo = ack;
env_quadro(quadro);
pqar++;
}
}
}

Mensagem rec_usuario(){
/*bloqueia at retornar uma mensagem do usurio */
}
env_usuario(m){
/*entrega a mensagem ao usurio*/
}
Quadro rec_usuario(){
/*retorna um quadro recebido na rede*/
}
env_quadro(q){
/*transmite o quadro q*/
}
Tipo_evento espera_evento(){
/*bloqueia at ocorrer um evento e retorna seu tipo*/
}
liga_temporizador(t){
/*escalona o evento temporizador em t unidades de tempo*/
}
desliga_temporizador(){
/*cancela o pedido de temporizao*/
}

A notao diz que se P verdadeira antes que C seja executado, ento quando
C terminar, Q ser verdadeira. Dependendo da linguagem de programao escolhida,
regras especficas definem a semntica de C,P e Q, e como derivar as asseres P e Q
para cada comando C no programa-especificao do protocolo sendo verificado.
As asseres P e Q podem tambm ser usadas para verificar as propriedades de
rotinas, procedimentos e funes do programa-especificao, no somente de seus
comandos. Novamente, deve-se demonstrar que a assero de pr-condio P junto
com o cdigo da rotina, procedimento ou funo bastam para provar a ps-condio Q
da rotina, procedimento ou funo.
Para que o esforo de verificao seja eficiente, deve-se procurar decompor a
especificao do protocolo em partes, cujas verificaes sejam independentes da

87

verificao completa ou total da especificao. Isto deve ser feito tanto para
programas seqenciais grandes, como principalmente para programas paralelos, pois
nestes a complexidade aumentada pela comunicao entre procedimentos
concorrentes. O nmero de verificaes pode ser reduzido se a explorao de estados
for feita por classes de estados, em vez de ser feita para cada estado em separado.
Desta forma, a complexidade da prova pode ser consideravelmente limitada mesmo
para os protocolos mais complexos.
A prova por asseres uma tcnica que pode ser aplicada para verificar a
totalidade das propriedades de um protocolo, no apenas das propriedades gerais.
Neste sentido, ela mais abrangente que a anlise de alcanabilidade.

Lgica Temporal
A verificao das propriedades gerais de atividades e progresso de um
protocolo, por ser provada quando possvel com a prova por asseres, no fcil,
haja vista que esta tcnica se concentra na explorao do estado presente do
protocolo. A verificao de tais propriedades envolve asseres referentes
ocorrncia futura de um certo evento. Para facilitar a verificao das propriedades de
atividade e progresso, a prova por asseres foi estendida com a introduo de
operadores temporais, emprestados da lgica temporal. Dois operadores bsicos da
lgica temporal, suficientes para definir as asseres relativas s propriedades de
atividades e progressos, so os operadores (de agora em diante) e
(eventualmente). Sua definio feita em termos de seqncia de estados no
programa.

Tcnicas mistas
As tcnicas mistas so utilizadas para verificar especificaes de protocolos
feitas por mtodos mistos. Essas tcnicas surgiram com o propsito de agregar as
vantagens da anlise de alcanabilidade e da prova de asseres.
A verificao com uma tcnica mista, emprega a anlise de alcanabilidade
para determinar as propriedades gerais do protocolo, a partir da especificao feita por
uma mquina de estados. A verificao das propriedades especficas feita pela prova
de asseres dos programas que contm as variveis, rotinas e funes que
complementam a mquina de estados. Assim, o uso de uma tcnica mista propicia a
separao da verificao de um protocolo em duas partes distintas e complementares.
Essa separao faz com que as propriedades da mquina de estados sejam verificadas
independentemente e de maneira muito simples, fornecendo resultados parciais mas,
bastante teis, pois erros graves no protocolo podem ser rapidamente detectados e
corrigidos. A verificao do contexto do protocolo pode vir em seguida, com a prova
por asseres, que agora simplificada, j que a parte de controle j foi devidamente
investigada.

Implementao de protocolos
Concluda a verificao da especificao de um protocolo, a vez de
implement-lo nos vrios sistemas da rede que iro utiliz-lo em suas comunicaes.

88

A implementao de um protocolo, em princpio, pode ser feita em hardware ou em


software. No contexto de uma rede local, a implementao dos protocolos (1), (2) e
(3) freqentemente realizada em hardware em torno de um microprocessador.
Muitas das funes desses protocolos j so inclusive implementadas por pastilhas de
circuito integrado. Antes que as questes pertinentes implementao de um
protocolo sejam endereadas, necessrio decidir sobre certos pontos do protocolo
deixados indefinidos em sua especificao. Isso no quer dizer que a especificao
seja defeituosa ou incompleta. Nesse estgio ela j deve ter sido, inclusive, verificada.
Tais pontos foram propositadamente deixados em aberto na especificao, para que as
decises tomadas pelo implementador reflitam peculiaridades e facilidades do sistema
em que rodar a implementao e/ou para que as decises possibilitem nveis
desejados de desempenho para a operao do protocolo. Geralmente esses pontos
tomam a forma de constantes ou primitivas na especificao. Por exemplo, a
especificao de um protocolo de transporte para retransmisses e controle de fluxos
no especifica o valor do intervalo do temporizador de retransmisso (apenas indica
que o intervalo uma constante, mas no seu valor). Tampouco define que estratgias
especficas devem ser utilizadas para o controle de fluxos, gerenciamento de buffers,
retransmisses etc. Isso toma a forma de nomes de primitivas, na especificao, sem
maior detalhamento. O implementador, porm, deve decidir que valores e estratgias
usar. O objetivo de primitivas justamente o de agrupar as partes do protocolo que
so dependentes da implementao. importante observar que as decises do
implementador no afetam a operao correta do protocolo, isto , no o impedem de
prestar o servio para o qual foi projetado em conjunto com outra entidade
implementada de forma diferente, mas podem influir no seu desempenho. De qualquer
forma, antes de implementar um protocolo, deve-se decidir sobre os pontos em aberto
na sua especificao. como se a especificao fosse refinada para incluir as
decises. Assim, passaremos a considerar os aspectos genricos relacionados com as
indefinies de um protocolo e a discutir opes para elimin-las. Os aspectos de
implementao propriamente dita so abordados em seguida.

Opes de implementao
As opes disponveis ao implementador so limitadas basicamente por dois
aspectos: as facilidades do sistema em que a implementao rodar e o desempenho
almejado do protocolo. Conseqentemente, uma discusso rigorosa e minuciosa do
assunto requer a capacidade de avaliar o desempenho do protocolo em funo de
opes contempladas. Do ponto de vista apenas do desempenho, a opo selecionada
seria a que oferece um melhor nvel de desempenho.
Dentre os pontos no totalmente definidos na especificao de um protocolo,
escolhemos os seguintes: valores de temporizao, estratgias de retransmisso, de
reconhecimento e de controle de fluxos, localizao de usurios e alocao de
recursos. A lista no completa nem se aplica na sua totalidade a qualquer protocolo.
Ela serve, entretanto, para introduzir o assunto e ilustrar seus aspectos principais.
Discutimos agora algumas possveis opes para definio de cada um desses pontos.
Valores de temporizao

89

Uma temporizao de retransmisso, num protocolo N, indica o intervalo de


tempo que uma entidade N deve esperar para transmitir uma PDU N no confirmada
pela entidade N par receptora. Um alto valor de temporizao causar atrasos
desnecessrios na comunicao entre as entidades N. Por outro lado, um baixo valor
de temporizao pode causar retransmisses freqentes, reduzindo-se a vazo til da
conexo usada na comunicao. desejvel, pois, que o valor da temporizao de
retransmisso seja escolhido de tal maneira a evitar esses problemas, forando uma
retransmisso apenas quando o reconhecimento da PDU N enviada j devia ter
chegado. Para tanto, o valor escolhido deveria ser a soma dos tempos de trnsito da
PDU N e de seu reconhecimento atravs das camadas inferiores de um protocolo no
sistema emitente, do tempo de transmisso nos meios fsicos, dos tempos de trnsito
nas camadas inferiores mais atrasos de consumo da PDU N no sistema receptor, e do
processamento necessrio para gerar o reconhecimento de volta. Esses tempos so, em
geral, variveis aleatrias sujeitas a flutuaes. Uma possibilidade utilizar as
medidas dos tempos acima, talvez conjugadas a um fator que considere as flutuaes.
Estratgia de retransmisso
O nmero de retransmisses a serem feitas numa conexo antes que essa seja
julgada defeituosa, a tentativa de us-la, abort-la, nem sempre vem definido na
especificao. Neste caso, cabe ao implementador escolher um valor. Observe-se que
tambm neste caso a deciso deve considerar as implementaes nos outros sistemas,
pois o nmero de retransmisses pode influenciar a definio da temporizao de
desistncia dos outros sistemas. A estratgia de retransmisses pode tambm incluir
mecanismos para ajuste dinmico do intervalo de retransmisso em funo do trfico
na rede. Por exemplo, a funo de retirada de protocolo de acesso aleatrio ao meio de
transmisso numa rede local um de seus mecanismos. A escolha da funo de
retirada afeta o desempenho do protocolo, mas se observadas certas restries, pode
ser particularizada para cada sistema, sem afetar a operao correta do protocolo.
Estratgia de reconhecimento
O uso de reconhecimento feito pelos mecanismos de controle de erro e de
controle de fluxo. Em ambos os casos, a chegada de um reconhecimento ntegro inibe
a retransmisso de PDUs e, conseqentemente, reduz a utilizao de recursos de
comunicao, de processamento nos sistemas e de recursos de armazenamento usados
pelos mecanismos de retransmisso. A estratgia de reconhecimento executada
ativamente pela parte receptora do protocolo; a parte emissora apenas consome
passivamente, quando chegam, liberando os recursos de armazenamento utilizados
pelas PDUs reconhecidas. Vejamos o modo como reconhecimentos podem ser
gerados e enviados pela parte receptora do protocolo.
Uma opo de implementao da parte receptora gerar um reconhecimento
para cada PDU de dados recebida corretamente. Essa estratgia pode desperdiar
recursos de comunicao da rede e forar a parte emissora do sistema remoto
comunicante e dedicar muito esforo para o recebimento e processamento de
reconhecimentos. Trs alternativas para evitar estes problemas seriam:

concatenar reconhecimentos em outras PDUs, voltando para o sistema remoto;

90

reduzir o nmero de reconhecimentos de um por PDU, recebida para um por


X PDUs a emisso de um reconhecimento com nmero de seqncia N
confirma o recebimento correto das PDUs nmeros N, N-1, N-2, N-X + 1;

emitir um reconhecimento para todas as PDUs recebidas, dentro de um


determinado intervalo de tempo neste caso, uma temporizao controla a
emisso do reconhecimento e o intervalo de temporizao claramente
dependente da temporizao de retransmisso da entidade emissora.
A parte receptora tem ainda que definir como proceder para emitir o
reconhecimento na chegada de uma PDU. Aqui temos basicamente duas opes: 1
emitir o reconhecimento somente aps passar a PDU para a camada superior de
protocolo (ou usurio) ou, ento, 2 emitir imediatamente o reconhecimento. A opo 1
d margem para a implementao descartar PDUs ainda no reconhecidas, liberando
recursos quando necessitados. A opo 2 responsabiliza a implementao pela guarda
da PDU, impedindo-a de jogar com os buffers de armazenamento.

Implementao como Processo do Usurio


Um processo de usurio, na maioria dos sistemas operacionais, propicia um
ambiente de execuo para os programas dos usurios do sistema. Uma maneira
natural de implementar um protocolo , pois, codificar sua especificao na forma
de um programa, requisitar um processo do sistema operacional e rodar o programa
no processo obtido.Esta soluo pode, entretanto, ser lenta e no atender ao objetivo
2, pois o usurio, em geral, tem pouco controle sobre a prioridade com a qual ele ser
escalonado pelo sistema operacional. Por outro lado, ela no exige do programador
conhecimentos aprofundados do ncleo do sistema operacional.

Implementao no Ncleo do Sistema Operacional


A rede, do ponto de vista do sistema local, pode ser considerada como um
dispositivo perifrico (de comunicao) tal qual terminais, unidades de disco,
impressora etc. Drivers para esses dispositivos geralmente residem no ncleo do
sistema operacional e os processos sendo executados (processos de usurio)
manipulam tais dispositivos atravs de chamadas ao sistema operacional. A
implementao do protocolo, sob esta viso da rede, poderia ser feita como um driver
residindo no ncleo. A interao com as outras camadas de protocolo poderia ser
ento realizada atravs de operaes de leitura (read) e escrita (write) , via um
conjunto especial de chamadas do sistema operacional.Esta soluo, evita a
dependncia do escalonamento de processos para execuo da implementao,
facilitando o alcance do objetivo 2, e simplifica o projeto de aplicao que usa a rede.
Por outro lado, o implementador deve ser um expert no sistema operacional; a
execuo do driver do protocolo pode degradar sensivelmente a resposta do sistema
local ou o driver pode ainda no caber no espao de memria reservado para o
ncleo.

Implementao num Processador Front-End

91

Se as limitaes das solues anteriores descartam sua adoo, pode-se optar


por implementar o protocolo num processador front-end dedicado. Esta soluo
isola a implementao do ncleo do sistema operacional da mquina hospedeira, evita
o consumo excessivo de recursos do hospedeiro, e o processador front-end pode ainda
ser compartilhado entre vrios hospedeiros. O custo do processador pode, entretanto,
no ser suportvel, e ainda resta o problema de interconecta-lo mquina hospedeira.
Esta interconexo pode inclusive tomar-se em gargalo, degradando o desempenho das
interaes entre as vrias camadas de protocolo.
Um ltimo ponto a ser considerado, independentemente da forma de
integrao adotada, o controle de fluxo na interface com o usurio (ou a camada
superior) da implementao. Dois so os aspectos desse controle de fluxo: o controle
da taxa em que o usurio inicia as chamadas de servio para a implementao, e o
controle da passagem de informaes entre a implementao e seu usurio.
A taxa na qual o usurio inicia chamadas de servio deve ser controlada para
evitar que as entidades no protocolo implementado sejam congestionadas com muitos
pedidos. Tal controle pode ser efetuado automaticamente, em decorrncia dos limites
do mecanismo para comunicao interprocessos utilizado para implementar as
primitivas de servio, ou mecanismos especiais podem ser introduzidos na
implementao para este fim. A implementao deve tambm prover meios de
controlar o tamanho de unidades de dados que ela manipular e a taxa na qual tais
unidades so submetidas a ela e entregues ao usurio. Um exemplo de como construir
um mecanismo de controle de fluxo na interface de uma implementao apresentado
em [QUEI 84]. Neste caso, filas de entrada e sada da implementao so
definidas onde so depositados os pedidos e prestaes de servio do usurio e da
implementao respectivamente. O comprimento finito destas filas limita
automaticamente o nmero das interaes atravs da interface e tanto o usurio
quanto a implementao podem consumir os itens nas filas, nas taxas convenientes.O
tamanho dos dados pode tambm ser facilmente controlado para convenincia, tanto
do usurio, quanto da implementao, atravs da passagem de um descritor; (ex.: um
apontador de arquivo contendo os dados). De posse do descritor, a implementao e o
usurio podem ler e escrever os dados no arquivo em pedaos de tamanho
adequado.Trs maneiras de como implementar esta soluo so apresentadas em
[NBS 83].
Neste estgio, todos os pontos em aberto na especificao foram definidos, e
decidiu-se sobre o modo de integrar a implementao no sistema local. Resta faz-la.

MODELO GERAL DE IMPLEMENTAO


Discutiremos aqui um modelo sugerido em [NBS 81], para a implementao
de protocolos. O modelo geral, sendo vlido para qualquer implementao realizada
em software, para execuo em qualquer sistema. A estruturao do modelo
assemelha-se estrutura da especificao formal do protocolo e tem a vantagem de
possibilitar a implementao e as suas interaes.
Cada um dos mdulos do programa-implementao corresponde univocamente
a uma transio, ou a um procedimento, primitiva ou evento das interfaces definidas
na especificao. Outros mdulos do modelo refletem as escolhas feitas pelo
implementador para refinar a especificao, como, por exemplo, controle de fluxo
na interface, escalonamento das vrias atividades do protocolo, multiplexao de
92

atividades concorrentes nas diversas entidades da camada etc. Caso o protocolo


envolva o controle de vrias conexes, existir uma entidade para controlar cada uma
delas. A informao sobre o estado de cada entidade guardada numa estrutura de
dados chamada Estrutura de Controle de Entidades.
A implementao excitada pela chegada de eventos das camadas adjacentes.
Ao chegar um evento, ele identificado pelo Processador de Interface para
determinar qual a entidade de destino que dever process-lo. Em seguida, o
processador de interface escalona o evento para atendimento pelas Rotinas de
Eventos de Interface. A rotina de eventos de interface apropriada ento constri uma
Estrutura de Dados com informaes sobre o evento de interface particular e chama o
escalonador de Funes de Transio.
De posse do tipo de evento de interface e da identificao da entidade-destino,
o escalonador examina o estado dessa entidade na estrutura de controle de entidades.
O estado presente da entidade e o tipo de evento servem de ndice na tabela de
Transies para obter uma lista de transies possveis, em ordem de prioridade. O
escalonador ento chama o mdulo responsvel para processar o tipo de transio
com a prioridade mais alta. Se nenhuma transio aplicvel (a lista se encontra
vazia), uma indicao de erro enviada de volta e o evento descartado.
O mdulo chamado pode, por sua vez em funo das aes especificadas
para a transio a ser processada chamar procedimentos, invocar primitivas ou gerar
eventos para as camadas adjacentes (cada um desses ltimos representados por um
mdulo no modelo).
A gerao desses eventos feita pelas rotinas de eventos de interfaces que
constroem as estruturas de dados associadas e chamam o processador de interface
para despachar os eventos para a camada apropriada.

IMPLEMENTAO AUTOMTICA
A partir do modelo da especificao do protocolo, a sua implementao pode
ser feita, escrevendo-se o cdigo para cada mdulo do programa-implementao. A
atividade nesta fase consiste simplesmente do esforo de programao. Idealmente, a
especificao formal do protocolo principalmente, se feita por uma linguagem de
programao deve facilitar razoavelmente a sua traduo para uma
implementao executvel. Melhor seria se pudssemos ter a produo automtica da
implementao, ou pelo menos de alguns de sus mdulos. Isto possvel.
Naturalmente que a totalidade da implementao no pode ser gerada
automaticamente. Os mdulos que dependem das escolhas do implementador para os
pontos em aberto na especificao no podem ter sua codificao automatizada. A
forma destes mdulos definida em funo das inclinaes do implementador, das
caractersticas da mquina hospedeira e de seu sistema operacional. Isto fora o
implementador a escrever manualmente o cdigo para esses mdulos. De nossas
discusses anteriores, podemos identificar os mdulos com codificao manual como
sendo o processador de interface, as rotinas de eventos de interface e os mdulos de
primitivas de servio. Em geral, tudo que depende das interfaces com a camada deve
ser implementado manualmente.
Os mdulos de processamento de transies, procedimentos, escalonador de
funes de transio e a lista de transies podem ser gerados automaticamente a
partir dos segmentos da especificao formal referentes a estes mdulos. Convm
observar que para tanto, deve-se separar cuidadosamente as escolhas a serem feitas
93

pelo implementador da especificao desses segmentos e o modelo de implementao


deve ser modularizado para isolar claramente os mdulos com gerao automtica.
Mtodos para produzir implementaes a partir de especificaes formais de
protocolos so discutidos nas refer6encias fornecidas, relativas ao assunto. Em [NBS
81], discuti-se um tal mtodo, na forma de um compilador de especificao formal,
que l6e a especificao com declaraes de dados e produz uma funo na linguagem
de programao C, para cada transio e procedimento. Para se ter uma idia da
aplicabilidade do mtodo, as classes 2 e 4 do protocolo de transporte do NBS
(praticamente idntico ao da ISO) foram implementadas usando a organizao do
modelo geral de implementao; a implementao contm aproximadamente 10000
linhas de cdigo na linguagem de programao C, 60% quais geradas
automaticamente ou aproveitveis para qualquer protocolo.

TESTES DE IMPLEMENTAO DE PROTOCOLOS


A implementao de um protocolo, como de qualquer outro algoritmo, pode
conter erros de lgica. Uma implementao logicamente errada pode at ser
executvel, mas, em geral, ela produzir resultados inesperados e, pior, indesejveis.
Para que isto no acontea, necessrio que a implementao seja testada para, seno
garantir, aumentar nossa confiana de que sua execuo alcanar os objetivos do
protocolo. Esta seo trata de testes de implementaes de protocolos.
Como visto na ltima seo, a implementao de um protocolo pode ser feita
em hardware ou em software. A implementao em hardware de menos interesse
aqui porque ela geralmente restrita sub-rede de comunicao (camada (1), (2) e (3)
do RM-OSI) cujos componentes e/ou servios j so disponveis comercialmente,
tornando os seus fornecedores responsveis pelos testes. As implementaes em
software dos protocolos (4) a (7) nos so mais interessantes. Isto porque estes
protocolos, sendo de responsabilidade dos usurios da rede, provavelmente sero
implementados como programas executveis nos vrios sistemas na rede. Assim,
supomos implicitamente implementaes em software de protocolos de alto nvel.
Esta suposio, porm, no restritiva desde que o contedo da seo pode ser
aplicvel sem maiores dificuldades s implementaes de outras camadas do RMOSI, mesmo quando realizadas em hardware.O teste da implementao de um
protocolo feito para determinar se ela conforma com a especificao (j verificada)
do protocolo. O teste de conformidade positivo se o software implementando o
protocolo executa as funes e prov os servios do protocolo de acordo com a sua
especificao.
GERAO DE SEQNCIAS DE TESTES
As seqncias de testes devem ser elaboradas de tal forma a enderear
aspectos salientes dos servios e dos mecanismos do protocolo para provar se eles so
providos corretamente pela implementao em teste. Os critrios essenciais a serem
atendidos, na elaborao de cada teste, na seqncia, so:
(1) O teste tem um objetivo claro, podendo-se declarar precisamente o que ser
alcanado com sua realizao.
(2) O resultado do teste conhecido a priori.
(3) O teste peculiar e no uma variante trivial de outro teste na seqncia. Isto no
implica que testes distintos no possam usar a mesma seqncia de testes para
94

alcanar seu objetivo. Na verdade, testes de invarincia de comportamento


requerem a sua repetio.

95

Captulo

9
Redes Locais, Ethernet e Internet
Definio:
Conjunto de sistemas de computao independentes, autnomos,
interconectados, para permitir a cada sistema utilizar todos os recursos dos outros
sistemas, chamando suas prprias sub-rotinas.
Como foi dada grande ateno no decorrer das aulas a interface de
comunicao serial
RS232C. Vamos iniciar nosso estudo de redes de
computadores partindo do uso desta interface em redes locais de computadores
pessoais.
Todo computador pessoal tem a disposio uma placa de comunicao serial
RS-232C que tem o objetivo de possibilitar ligao ponto a ponto e que atravs de
um circuito adaptador pode possibilitar uma rede.
O circuito adaptador para possibilitar uma rede pode ser simples como o
mostrado na figura A. Onde apresentado um diodo por porta, dois resistores de
terminao e uma fonte de 12V.

Para melhorar o circuito apresentado na figura A basta usar um cabo blindado (


recordar o circuito do RS 232 entendido).
Pelo circuito da figura A quando caracteres so enviados de um terminal, eles
so recebidos em todos os terminais da rede, incluindo o terminal de onde foram
enviados. Entretanto, se dois ou mais terminais enviam diferentes mensagens ao
mesmo tempo. Cada terminal que transmite receber outra mensagem que diferente
da enviada; esta mensagem ser a lgica OR das mensagens enviadas. Isto permite
uma importantssima propriedade que a deteco de coliso.
96

Aqui usa-se o fato de que um terminal RS-232 mantm sua linha de transmisso
em voltagem negativa quando no transmite, e ento pulsa a linha de transmisso para
voltagem positiva no incio de um caracter (bit de start).
O padro RS-232 define o nvel positivo como um 0 transmitido e o nvel
negativo como um binrio 1. Em outras palavras, o caracter comea com um 0,
seguido pelo byte do cdigo transmitido. Pelo menos um binrio 1 inserido depois
de cada byte, e ele chamado de stop bit.
O resistor de terminao fornece o nvel negativo e cada porta RS232 pode levar
a linha para o nvel positivo pelo pulso de incio de um caracter. Em termos de
bits, o resistor fornece os 1s e a porta fornece os 0s.
Os limites de velocidade e distncia surgem da combinao das limitaes do
driver de corrente e da carga da sada receptora da rede.
Limites: Distncia, velocidade e nmero de receptores.
Por exemplo: Com a figura A pode-se usar a rede em 19.200 BPS para seis
dispositivos separados de 20 ps, ou pode-se conectar trs dispositivos com duas
milhas de fio e fluir 300 BPS.

Algumas modificaes simples podem ser realizadas para expandir a capacidade


da rede. Na figura B mostrado um circuito que possibilita maior nmero de
sadas receptoras.
Na figura B um amplificador operacional usado para bufferizar um sinal que
esta chegando. Isto reduz a carga localizada de cada n na rede, permitindo
um virtualmente ilimitado nmero de ns na rede.
O sinal que indica se a rede est ocupada fornecido pelo resistor R1 e
capacitor C1. A finalidade deste sinal de desobrigar o software de trocar a
condio da rede. O circuito trabalha pela carga de C1 durante o bit de start

97

do caracter. O capacitor ento se descarregar por R1. A escolha destes dois


valores feita pela mais baixa taxa de dados usada na rede. A figura B tem
valores de R1 e C1 para 1200 BPS.
Tabela com valores de R1 relacionados com a taxa de transferncia:
Taxa de transferncia (BPS)
1200
2400
4800
9600
19.2k
38.4k
76.8k
153.6k

Valor do R1 (k Ohms)
330
160
82
39
22
10
5.1
2.2

Com este exemplo podemos comear a perceber alguns conceitos bsicos


tratados em redes de computadores.
Por Exemplo:
Antes de uma estao transmitir ela sente o estado da rede pelo pino 8
verificando se a mesma est ocupada ou no. Isto faz parte do protocolo de acesso ao
meio.
Outro fato a observar que possvel detectar coliso de mensagens caso duas
estaes transmitirem ao mesmo tempo e ento fazer com que uma estao transmita
entes da outra.
O protocolo de acesso a meio dividido em dois grupos:
No Determinsticos:
- CSMA (Carrier Sense Multiple Access) ouvir antes de falar.
- CSMA/CD (CSMA com Colision Detection) ouvir enquanto fala.
- CSMA/CD-OB (CSMA/CD com Ordely Backoff) retransmisso escalonada.
Determinstico:
- Marca de controle (token).

98

TCP/IP

9.1 Introduo e viso geral

9.1.1 A motivao para a interligao em redes


A comunicao de dados tornou-se parte fundamental da computao. As
redes de abrangncia mundial renem dados sobre assuntos diversificados como
condies atmosfricas, produo de safra e trfego areo. Os grupos estabelecem
listas de correio eletrnico para que possam compartilhar informaes de interesse
comum. As pessoas que cultivam hobbies promovem intercmbio de programas para
seus computadores de uso pessoal. No meio cientfico, as redes de dados so
essenciais porque permitem que os cientistas enviem programas e dados a
supercomputadores remotos para processamento, com o intuito de recuperar os
resultados e trocar informaes com seus colaboradores.
Lamentavelmente, a maioria das redes constitui entidades independentes
estabelecidas para atender s necessidades de um grupo isolado. Os usurios
selecionaram uma tecnologia de hardware que seja adequada aos seus problemas de
comunicao. impossvel a estruturao de uma rede universal com base em uma
nica tecnologia de hardware, j que nenhuma rede nica atende a todas as aplicaes.
Alguns usurios precisam de uma rede de alta velocidade para conectar-se a
mquinas, mas essas redes no podem ser expandidas para alcanar grandes
distncias. Outros preferem uma rede de velocidade inferior que faa conexo com
mquinas a centenas de milhas de distncia.
Nos ltimos 15 anos, foi desenvolvida uma nova tecnologia para possibilitar a
interconexo de muitas redes fsicas diferentes e faz-las operar como uma unidade
coordenada. Essa tecnologia, denominada interligao em redes, acomoda distintas
tecnologias bsicas e hardware, proporcionando uma forma de interconectar redes
heterogneas e um conjunto de convenes que possibilitam as comunicaes. A
tecnologia de interligao em redes esconde os detalhes de hardware de rede, e
permite que os computadores se comuniquem independentemente de suas conexes
fsicas.
A tecnologia de interligao em redes que ser descrita neste livro um
exemplo de interconexo de sistema aberto porque, ao contrrio dos sistemas de
comunicao patenteados, disponveis por determinado fornecedor, as especificaes
esto disponveis publicamente. Por esse motivo, qualquer pessoa est apta a
desenvolver o software necessrio para estabelecer comunicao de interligao em
redes. O mais importante que toda a tecnologia foi projetada para estimular a
comunicao entre mquinas de arquitetura de hardware distintas, para utilizar
qualquer hardware de comutao de pacotes, e para aceitar diversos sistemas
operacionais.
Para avaliar a tecnologia de interligao em redes, pense no quanto ela
influencia uma atividade profissional. Considere, por exemplo, o que resulta da

99

interconexo dos computadores utilizados pelos cientistas. Qualquer cientista poder


promover o intercmbio dos dados resultantes de um experimento com outro cientista.
Os centros nacionais podem coletar dados de um fenmeno natural e torn-los
disponveis para todos os cientistas. Os programas e servios de computadores
disponveis em um determinado local podem ser utilizados por cientistas de outras
localidades. Em conseqncia, aumenta a velocidade com que se desenvolvem as
investigaes cientficas. E as mudanas so drsticas.

9.1.2 A interligao em redes TCP/IP


Ao longo dos anos, as agncias governamentais norte-americanas perceberam
a importncia e o potencial da tecnologia de interligao em redes e vm financiando
as pesquisas que possibilitaram a interconexo global de redes. A tecnologia da
ARPA inclui um conjunto de padres de rede que especificam os detalhes de sistema
pelo qual os computadores se comunicam, bem como um conjunto de convenses
para interconexo em rede e para roteamento. Denominado oficialmente Pilha de
Protocolos de interligao em redes TCP/IP, e geralmente citado como TCP/IP, essa
pilha pode ser utilizada para comunicao em qualquer conjunto de redes
interconectadas. Algumas empresas, por exemplo, utilizam o TCP/IP para
interconectar todas as redes de sua organizao, ainda que a empresa no se
comunique com redes externas. Outros grupos utilizam o TCP/IP para estabelecer
comunicaes entre sites geograficamente distantes.
Embora a tecnologia TCP/IP seja, por si s, notvel, ela especialmente
interessante porque sua viabilidade foi demonstrada em larga escala. Constitui a
tecnologia de base para uma interligao em redes global que conecta domiclios,
campus universitrio e outras escolas, organismos e laboratrios do governo em 61
pases. Nos Estados Unidos, a National Science Foundation (NCF), o Department of
Energy (DOE), o Department of Defense (DOD), a Health and Human Service
Agency (HHS) e a National Aeronautics and Space Administration (NASA)
participaram do financiamento da internet e utilizaram o TCP/IP para conectar muitas
de suas instalaes de pesquisa. Conhecida como internet ARPA/NSF, internet
TCP/IP, internet global, ou simplesmente como internet, a interligao em redes
resultante permite que os pesquisadores de instituies conectadas compartilhem
informaes com seus colegas de todo o mundo com a mesma facilidade com que
compartilham informaes com pesquisadores da sala ao lado. Um sucesso
extraordinrio, a internet demonstra a viabilidade da tecnologia TCP/IP e mostra
como se pode lidar com uma diversidade de tecnologia de redes.
9.1.3 Servios de interligao em redes
impossvel avaliar os detalhes globais que existem por trs do TCP/IP sem
compreender os servios que ele fornece. Esta seo faz uma ligeira anlise dos
servios da interligao em redes, evidenciando os servios que a maioria dos
usurios acessa, deixando para captulos posteriores a abordagem de como
computadores se interconectam via TCP/IP, e de como a funcionalidade dos servios
implementada.

100

Grande parte de nossa abordagem de servios ter como foco padres


denominados protocolos. Protocolos como TCP e IP fornecem as regras para a
comunicao. Eles contm os detalhes de formatos de mensagens, descrevem o que
um computador faz ao receber uma mensagem e especificam como um computador
trata os erros ou outras condies anormais. O mais importante que esses protocolos
permitem que tratemos a comunicao atravs do computador, independente do
hardware da rede de qualquer fornecedor em particular. De certa forma, os protocolos
esto para a comunicao assim como os algoritmos esto para a computao. Um
algoritmo permite que uma pessoa especifique ou compreenda a computao sem
conhecer os detalhes de um conjunto de instrues de uma CPU em especial. Da
mesma forma, um protocolo de comunicao permite que algum especifique ou
entenda uma comunicao de dados sem depender de conhecimentos minuciosos do
hardware da rede de um fornecedor especfico.
Ocultar os detalhes de baixo nvel de comunicao facilita a melhoria da
produtividade de diversas formas. Primeiro, os programadores lidam com abstraes
de alto nvel, no precisando aprender ou lembrar-se de todos os detalhes sobre
determinada configurao de hardware. Assim sendo podem-se criar novos programas
rapidamente. Segundo, como os programas desenvolvidos com abstraes de alto
nvel no esto restritos a uma arquitetura de mquina especfica ou a um hardware de
rede especfico, eles no precisam ser mudados quando as mquinas ou as redes forem
reconfiguradas. Terceiro, como os programas aplicativos desenvolvidos com
protocolos de alto nvel so independentes do hardware, eles podem promover uma
comunicao direta entre um par de mquinas arbitrrio. Os programadores no
precisam elaborar verses especiais de software aplicativo para mover e traduzir
dados entre cada par de mquinas possveis.
Veremos que todos os servios de rede so descritos por protocolos. As
prximas sees referem-se a protocolos utilizados para especificar servios em nvel
de aplicativos, bem como aqueles utilizados para definir servios em nvel de rede. Os
ltimos captulos explicam com mais detalhes cada um desses protocolos.
9.1.3.1 Servios de interligao em redes em nvel de aplicativos
Do ponto de vista do usurio, uma interligao em redes TCP/IP aparenta ser
um conjunto de programas aplicativos que utilizam a rede para desempenhar tarefas
de comunicao consideradas necessrias. Usamos a expresso capacidade de
interoperabilidade para definir a capacidade de sistemas computadorizados diferentes
participarem da soluo de problemas computacionais. Os programas aplicativos de
interligao em redes demonstram alto grau de capacidade de interoperabilidade. A
maioria dos usurios que acessa a internet o faz simplesmente executando programas
aplicativos sem compreender a tecnologia do TCP/IP, a estrutura da interligao em
redes principal, ou mesmo o caminho por onde os dados trafegam para seu destino;
eles lanam mo de programas aplicativos e do software da rede principal para tratar
desses detalhes. Apenas os programadores que desenvolvem programas aplicativos de
rede precisam considerar a interligao em redes e ter certo entendimento da
tecnologia.
Os servios aplicativos da internet mais comuns e difundidos incluem:

101

Correio eletrnico. O correio eletrnico permite que um usurio elabore


memorandos e os envie a indivduos ou grupos. Uma outra parte do aplicativo do
correio eletrnico permite que os usurios leiam os memorandos que receberem. O
correio eletrnico tem sido to bem-sucedido que muitos usurios da internet
dependem dele para correspondncia comercial normal. Embora existam muitos
sistemas de correio eletrnico, a utilizao do TCP/IP faz com que a entrega de
correio seja mais confivel, j que no depende de computadores para processamentos
intermedirios na transmisso de mensagens. Um sistema de entrega de correio
TCP/IP opera atravs do contato direto entre a mquina do transmissor e a mquina
do receptor. Assim, o transmissor sabe que quando a mensagem deixa a mquina
local, ela foi recebida com xito no destino.
Transferncia de arquivos. Embora alguns usurios s vezes transfiram arquivos
atravs do correio eletrnico, ele se destina, sobretudo, a mensagens de pouco texto.
Os protocolos TCP/IP incluem um programa aplicativo que permite que os usurios
enviem ou recebam arbitrariamente arquivos externos de programas de dados. Ao
utilizar, por exemplo, um programa de transferncia de arquivos, a pessoa pode copiar
de uma mquina para outra uma base de dados extensa contendo imagens de satlite,
um programa escrito em Pascal ou C++, ou um dicionrio de ingls. O sistema indica
uma maneira de checar os usurios autorizados, ou at de evitar acessos. Tal como
ocorre com o correio eletrnico, a transferncia de arquivos na interligao em redes
TCP/IP confivel porque as duas mquinas envolvidas comunicam-se diretamente,
sem depender de mquinas intermedirias que faam cpias do arquivo ao longo do
processo.
Login remoto. O login remoto permite que, de seu computador, um usurio entre
em conexo com uma mquina remota e estabelea uma sesso interativa de login. O
login remoto faz com que uma janela na tela do usurio parea conectar-se
diretamente com a mquina remota, enviando cada toque no teclado a uma mquina
remota e exibindo cada caracter que o computador remoto imprimi na janela do
usurio. Quando a sesso de login remoto termina, o aplicativo retorna o usurio ao
sistema local.
Voltaremos a falar sobre esses e outros aplicativos nos prximos captulos, a fim de
analis-los com maiores detalhes. Veremos exatamente como eles utilizam os
protocolos bsicos TCP/IP, e por que a existncia de padres para protocolos de
aplicativos contribuiu para assegurar sua disseminao.

9.1.3.2 Servios de interconexo no nvel da camada de rede


Um programador que escreve programas aplicativos que utilizam protocolos
TCP/IP possui uma viso totalmente diferente de uma interligao em redes, se
comparado a um usurio que simplesmente executa aplicativos como correio
eletrnico. No nvel da camada de rede, uma interconexo proporciona dois extensos
tipos de servios que todos os programas aplicativos utilizam. Embora no seja
importante, neste momento, compreender os detalhes desses servios eles no podem
ser omitidos de qualquer viso geral do TCP/IP:
Servio de entrega de pacotes sem conexo. Este servio, explicado com
detalhes ao longo do texto, forma a base para todos os servios de interligao
em redes. A entrega sem conexo constitui uma preocupao do servio
102

oferecido pela maioria das redes distribuidoras de encomendas. Isso


simplesmente significa que a interligao em redes TCP/IP promove o
roteamento de pequenas mensagens de uma mquina para outra, com base nas
informaes do endereo contidas na mensagem. Como o servio sem conexo
promove o roteamento de cada pacote separadamente, no h garantia de
entrega, e nem de entrega na mesma ordem na qual os pacotes foram
transmitidos. J que quase sempre h um mapeamento direto para o hardware, o
servio sem conexo extremamente eficiente. O mais importante que a
entrega de pacotes, sem conexo, com base para todos os servios de
interligao em redes, torna os protocolos TCP/IP adaptveis a uma ampla gama
de hardware de redes.

Servio de transporte de streams confiveis. A maioria dos aplicativos precisa


de muito mais do que uma entrega de pacotes, porque eles exigem que o
software de comunicao corrija automaticamente erros de transmisso, pacotes
perdidos, ou falhas de comutaes ao longo do caminho entre o transmissor e
receptor. O servio de transporte confivel trata desses problemas. Ele permite
que um aplicativo de um computador estabelea uma conexo com um
aplicativo de outro computador, e a seguir envie um grande volume de dados
atravs da conexo, como se fosse uma conexo de hardware direta e
permanente. Naturalmente, em um nvel mais baixo, os protocolos de
comunicao dividem a cadeia de dados em mensagens curtas e as envia, uma
de cada vez, esperando que o receptor confirme a recepo.

Muitas redes oferecem servios bsicos semelhantes aos mencionados acima,


de modo que algum poderia questionar o que diferencia os servios TCP/IP de
outros. As principais caractersticas diferenciadoras so:

Independncia da tecnologia de redes. Embora o TCP/IP seja baseado em


tecnologia convencional de comutao de pacotes, ele independente do
hardware de qualquer fornecedor especfico. A internet global inclui diversas
tecnologias de rede, desde as redes projetadas para operar em um prdio at as
projetadas para cobrir grandes distncias. Os protocolos TCP/IP definem a
unidade de transmisso de dados denominada datagrama, e especifica como
transmitir datagramas em uma rede especfica.
Interconexo universal. Uma interligao em redes TCP/IP permite a
comunicao de que qualquer par de computadores ao qual ela conectada. A
cada computador atribudo um endereo universalmente reconhecido por toda
a interligao em redes. Cada datagrama traz os endereos de sua origem e de
seu destino. Os computadores de comutao intermediria utilizam o endereo
de destino para tomar decises sobre roteamento.
Confirmaes fim-a-fim. Os protocolos de interligao em redes TCP/IP
fornecem uma confirmao entre a origem e o destino final, e no entre
mquinas sucessivas ao longo do caminho, mesmo quando as duas mquinas
no se conectam a uma mesma rede fsica.
Padres de protocolo de aplicativos. Alm dos servios bsicos no nvel de
transporte (como conexes de streams confiveis), os protocolos TCP/IP
incluem padres para muitos aplicativos comuns, inclusive o correio eletrnico,
a transferncia de arquivos e o login remoto. Assim, quando esto
103

desenvolvendo programas aplicativos que utilizam TCP/IP, os programadores


sempre descobrem que o software existente oferece os servios de comunicao
de que eles precisam.

9.1.4

Histria e escopo da Internet

O que faz com que a tecnologia TCP/IP seja to notvel deve-se, em parte,
sua utilizao quase universal, e tambm dimenso e taxa de crescimento da
internet. A ARPA iniciou suas atividades voltando-se para uma tecnologia de
interligao em redes em meados da dcada de 1970, e a arquitetura e os protocolos
adquiriram sua forma atual por volta de 1977-79. Nessa ocasio, a ARPA era
conhecida como a primeira agncia a financiar a pesquisa de redes de comutao de
pacotes e como a pioneira de muitas idias sobre comutao de pacotes por meio de
sua famosa ARPANET. A ARPANET utilizava a interconexo convencional de linha
ponto a ponto pelo sistema de leasing, mas a ARPA tambm financiou a explorao
de comutadores de pacotes em redes de rdio e canais de comunicao via satlite. Na
realidade, a crescente diversidade de tecnologias de hardware de rede contribuiu para
forar a ARPA a estudar a interligao em redes e impulsionar a efetivao de uma
interligao em redes.
A disponibilidade de recursos financeiros para pesquisa, pela ARPA,
despertou a ateno e aguou a imaginao de vrios grupos de pesquisa,
especialmente daqueles cujos membros tiveram experincia anterior com a comutao
de pacotes na ARPANET. A ARPA programou reunies informais com pesquisadores
a fim de trocar idias e discutir os resultados das experincias. Por volta de 1979,
tantos eram os pesquisadores envolvidos no desenvolvimento do TCP/IP que a ARPA
constituiu um comit informal para coordenar e orientar o projeto dos protocolos e da
arquitetura da emergente internet. Denominado Internet Control and Configuration
Board (ICCB), o grupo reuniu-se regularmente at 1983 quando passou por uma
reorganizao.
A internet global teve seu incio mais ou menos em 1980, quando a ARPA
passou a adotar os novos protocolos TCP-IP nas mquinas ligadas s suas redes de
pesquisa. A ARPANET, j instalada, rapidamente tornou-se o backbone da nova
internet, e foi utilizada para muitas das primeiras experincias com TCP/IP. A
transio para a tecnologia da internet foi completada em janeiro de 1983, quando o
Office of the Secretary of Defense ordenou que todos os computadores conectados a
redes de longa distncia utilizassem o TCP/IP. Ao mesmo tempo, a Defense
Communication Agency (DCA) dividiu a ARPANET em duas redes distintas, uma
para futuras pesquisas e outra para comunicao de carter militar. A parte
relacionada pesquisa conservou o nome ARPANET; a parte militar, maior, tornouse conhecida como rede militar, MILNET.
Para incentivar os pesquisadores das universidades a adotarem e utilizarem os
novos protocolos, a RPA possibilitou uma implementao disponvel a baixo custo.
Nessa ocasio, a maioria dos departamentos de cincia da computao das
universidades executava uma verso do sistema operacional UNIX; esse sistema
disponvel na Berkley Software Distribution, da Universidade da Califrnia, era
conhecido como Berkeley UNIX ou BSD UNIX. Ao financiar a Bolt Beranek and
Newman, Inc. (BBN), para implementar seus protocolos TCP/IP para uso com o

104

UNIX, e ao financiar a universidade da Califrnia, Berkeley, para integrar os


protocolos TCP/IP ao BSD UNIX, a ARPA conseguiu atingir at 90% dos
departamentos de cincia da computao das universidades. O novo software de
protocolo surgiu numa ocasio especialmente importante, porque muitos
departamentos acabavam de adquirir o segundo ou o terceiro computador, e os
estavam conectando as redes locais. Os departamentos precisavam de protocolos de
comunicao e geralmente nenhum outro estava disponvel.
O software distribudo pela universidade da Califrnia, Berkeley, tornou-se
popular porque oferecia mais do que protocolos TCP/IP bsicos. Alm de programas
padro, de aplicativos TCP/IP, Berkeley oferecia um conjunto de utilitrios para
servios de rede que lembravam os servios UNIX utilizados em uma mquina
individual. A principal vantagem dos utilitrios Berkeley reside em sua semelhana
com o padro UNIX. Um usurio experiente da UNIX, por exemplo, pode facilmente
aprender a usar o utilitrio de cpia de arquivo remoto de Berkeley (rcp), porque ele
se comporta exatamente como o utilitrio de cpia de arquivo da UNIX, exceto
quando permite que os usurios copiem arquivos para mquinas remotas ou a partir
delas.
Alm de um conjunto de programas utilitrios, o Berkeley UNIX apresentou
uma nova abstrao no sistema operacional conhecido como socket, que faculta aos
programas de aplicao acessar protocolos de comunicao. Por se tratar de uma
popularizao do mecanismo UNIX para I/O, o socket possuiu opes para vrios
tipos de protocolos de rede alm do TCP/IP. Seu projeto foi debatido desde a
apresentao, e muitos pesquisadores de sistemas operacionais propuseram
alternativas. Entretanto, independente de seus mritos como um todo, a introduo do
socket foi importante porque permitiu que, sem muito esforo, os programadores
utilizassem os protocolos TCP/IP. Assim, os pesquisadores foram incentivados a
experimentar o TCP/IP.
O sucesso alcanado pela tecnologia TCP/IP e a internet entre pesquisadores
da cincia da computao, levou outros grupos a adot-lo. Ao perceber que a
comunicao de redes logo seria parte decisiva da pesquisa cientfica, a National
Science Foundation assumiu um papel importante na expanso da internet TCP/IP
visando a envolver o maior nmero possvel de cientistas. Em 1985, essa organizao
iniciou um programa para estabelecer redes de acesso centralizadas em torno de seus
seis centros de supercomputadores. Em 1986, ela expandiu o desenvolvimento de
redes ao financiar um novo backbone denominado NSFNET, que praticamente
alcanava todos os seus centros de supercomputadores e conectou-os a ARPANET.
Finalmente, em 1986, a NSF forneceu o capital inicial para muitas redes regionais que
agora se conectam s principais instituies voltadas para a pesquisa cientfica de
determinada rea. Todas as redes financiadas pela NSF utilizam protocolos TCP/IP, e
todas so parte da internet global.
Sete anos aps sua criao, a internet cresceu, abrangendo centenas de redes
individuais localizadas nos Estados Unidos e na Europa. Conectou aproximadamente
20000 computadores de universidades, rgos pblicos e laboratrios de pesquisa
organizacional. O tamanho e a utilizao da internet continuou em ascenso muito
mais acelerada do que o previsto. No final de 1987, estimou-se que o crescimento
alcanara 15 % ao ms. Em torno de 1994, a internet global alcanava mais de 3
milhes de computadores em 61 pases.

105

A utilizao de protocolos TCP/IP e o crescimento da internet no se


limitaram a projetos financiados pelo governo. Grandes companhias voltadas para o
setor de computadores conectaram-se internet, bem como muitas outras
organizaes de grande porte como companhias de petrleo, indstria automobilstica,
empresas de eletrnica, companhias farmacuticas e portadoras de telecomunicaes.
As empresas de pequeno porte e mdio porte comearam a conectar-se na dcada de
1990. Alm disso muitas outras utilizavam os protocolos TCP/IP em suas
interligaes em redes corporativas, mesmo tendo optado por no participar da
internet global.
Uma expanso acelerada trouxe problemas de escala no previstos no projeto
original e motivou os pesquisadores a encontrar tcnicas para gerenciar numerosos
recursos distribudos. No projeto original, por exemplo, os nomes e endereos de
todos os computadores conectados internet eram mantidos em um nico arquivo que
era editado manualmente e, a seguir, distribudo a todos os sites da internet. Em
meados da dcada de 1980, tornou-se bvio que um banco de dados de origem no
seria suficiente. Primeiro, os pedidos para atualizao de arquivos rapidamente
provocaria excesso do pessoal disponvel para process-los. Segundo, ainda que
existisse um arquivo-fonte correto, a capacidade da rede seria insuficiente para
permitir a distribuio freqente para todos os sites ou o acesso on-line a cada site.
Novos protocolos foram desenvolvidos e um sistema de atribuio de nome foi
colocado em vigor atravs da internet global para permitir que qualquer usurio
automaticamente determinasse o nome de uma mquina remota. Conhecido como
Domain Name System, o mecanismo conta com mquinas denominadas servidores de
nome para responder a consultas sobre nomes. Nenhuma mquina contm todo o
banco de dados de nomes de domnios. Em vez de uma mquina, os dados so
distribudos por um conjunto de mquinas que utilizam protocolos TCP/IP para se
comunicarem entre si quando estiverem respondendo a uma consulta.
9.1.5 O conselho de arquitetura da internet
J que a srie de protocolos de interligao em redes TCP/IP no surgiu de um
fornecedor especfico, ou de uma sociedade profissional reconhecida, natural
perguntar quem estabelece as diretrizes tcnicas e decide quando os protocolos
devem-se tornar um padro? A resposta um grupo conhecido como Internet
Architecture Board (IAB). O IAB proporciona a base e a coordenao para muitas
pesquisas e desenvolvimentos, como a base de protocolos TCP/IP e orienta a evoluo
da internet. Ele decide quais protocolos so uma parte necessria da pilha TCP/IP e
estabelece polticas oficiais.
Criado em 1983, quando a ARPA reorganizou o Internet Control and
Configuration Board, o IAB herdou muitos de seus atributos de um grupo anterior.
Seus objetivos iniciais eram estimular o intercmbio de idias entre os principais
envolvidos em pesquisas relacionadas ao TCP/IP e internet, e manter os
pesquisadores concentrados em objetivos comuns. Ao longo dos seis primeiros anos,
o IAB passou de um grupo de pesquisa especfico da ARPA para uma organizao
autnoma. Durante esses anos, cada membro do IAB presidia uma Internet Task
Force, com a atribuio de investigar um problema ou conjuntos de questes
consideradas importantes. O IAB consistia em aproximadamente dez equipes de

106

trabalho, e as funes variavam da investigao de como a carga de trfego de vrios


aplicativos afeta a internet, at o tratamento de problemas tcnicos de curto prazo da
internet. O IAB reunia-se vrias vezes por ano para receber relatrios de status de
cada equipe de trabalho, analisar e revisar diretrizes tcnicas, discutir polticas e trocar
informaes com representantes de instituies como ARPA e NFS, as quais
financiavam as operaes e pesquisas da internet.
O presidente do IAB ocupava o cargo de Arquiteto da Internet, e era
responsvel pela sugesto de diretrizes tcnicas e coordenao de atividades das
vrias equipes de trabalho.
Cabia a ele novas equipes de trabalho, por recomendao do IAB, e tambm
representar o IAB perante outros.
Os iniciantes em TCP/IP s vezes se surpreendem ao saber que o IAB no
gerenciava um grande oramento: embora estabelecesse diretrizes, no financiava a
maior parte da pesquisa e da tecnologia previstas. Em seu lugar, voluntrios
executavam grande parte do trabalho. Cada membro do IAB era responsvel pelo
recrutamento de voluntrios para trabalhar em suas equipes, convocar e realizar
reunies de equipes de trabalho e informar o andamento ao IAB. Normalmente, os
voluntrios originavam-se da comunidade acadmica ou de organizaes comerciais
que produziam ou utilizavam TCP/IP. Pesquisadores atuantes participavam das
atividades das equipes de trabalho da internet por duas razes. Por um lado, servir em
uma equipe de trabalho lhes oferecia oportunidade de adquirir mais conhecimentos
sobre novas questes a serem pesquisadas. Por outro lado, novas idias e solues de
problemas projetados e testados por equipes de trabalho freqentemente tornavam-se
parte da tecnologia TCP/IP da internet. Os componentes percebiam que seu trabalho
exercia direta influncia positiva na rea.
9.1.6

A reorganizao do IAB

Em meados de 1989, a tecnologia TCP/IP e a internet haviam ultrapassado o


projeto de pesquisa inicial, se transformando em recursos das quais milhares de
pessoas dependiam para exercer suas atividades comerciais dirias. No era mais
possvel apresentar novas idias mudando algumas instalaes da noite para o dia. Em
grande parte, todas as centenas de companhias comerciais que ofereciam produtos
TCP/IP determinavam quais produtos iriam interoperar, decidindo quando incorporar
mudanas a seu software. Os pesquisadores que planejavam especificaes e testavam
novas idias em laboratrio j no poderiam esperar uma aceitao imediata e prtica
das idias. O irnico que os pesquisadores que projetaram e monitoraram o
desenvolvimento do TCP/IP sentiram-se vencidos pelo sucesso de seu plano inicial.
Em resumo, o TCP/IP tornou-se uma tecnologia de produo bem sucedida e o
mercado comeou a dominar sua evoluo.
Para refletir as realidades polticas e comerciais do TCP/IP e da internet, o
IAB foi reorganizado em meados de 1989. A presidncia mudou, os pesquisadores
foram removidos do prprio IAB para um grupo subsidirio e um novo conselho do
IAB foi constitudo para incluir representantes da comunidade.
A figura 1.1 ilustra a nova organizao do IAB e o relacionamento de
subgrupos.

107

A Organizao do IAB
O Conselho
IETF

IRTF
IESG

IRSG

...

rea 1

Grupos de pesquisa

...

...

rea n

...

Grupos de trabalho

Figura 9.1 A estrutura do IAB aps a reorganizao de 1989

De acordo com a Figura 9.1 alm do prprio conselho, a organizao do IAB


abriga dois grupos principais: a Internet Research Task Force (IRTF) e a Internet
Engeneering Task Force (IETF).
A IETF concentra problemas de engenharia, a curto ou mdio prazo. A IETF
existia na estrutura original do IAB, e seu sucesso contribuiu, em parte, para motivar a
reorganizao. Ao contrrio da maioria das equipes de trabalho do IAB, que limitavase a alguns indivduos que se concentravam em uma tarefa especfica, a IETF cresceu
para incluir dezenas de membros atuantes que trabalhavam em muitos problemas
simultaneamente. Antes da reorganizao, a IETF era dividida em mais de 20 grupos
de trabalho, cada um concentrando-se em um problema especfico. Esses grupos
realizavam reunies isoladas para formular solues para problemas. Alm disso, toda
a IETF reunia-se regularmente para analisar os relatrios dos grupos de trabalho e
discutir as mudanas propostas ou as inovaes tecnologia TCP/IP. Normalmente,
essas reunies eram realizadas trs vezes por ano, todas elas atraindo centenas de
participantes e espectadores. A IETF tornou-se muito grande para ser administrada
por um presidente.
Como a IETF era conhecida em toda a internet, e porque suas reunies eram
amplamente reconhecidas e assistidas, a estrutura reorganizada do IAB mantm a
IETF, mas divide-a em aproximadamente um dezena de reas, cada uma com seu
prprio administrador. O presidente da IETF e os administradores de rea formam o
Internet Engeneering Steering Group (IESG) responsvel pela coordenao da
produo dos grupos de trabalho da IETF. O nome IETF agora refere-se a toda a
estrutura, incluindo o presidente, administradores de rea e demais membros dos
grupos de trabalho.

108

Criada durante a reorganizao, a Internet Research Task Force o


complemento para pesquisa da IETF. A IRTF coordena as atividades de pesquisa
relacionadas aos protocolos TCP/IP ou arquitetura de interligao em redes em
geral. A exemplo da IETF, a IRTF dispe de um pequeno grupo denominado Internet
Research Steering Group, ou IRSG, que estabelece prioridades e coordena as
atividades de pesquisa. Ao contrrio da IETF, a IRTF atualmente uma organizao
muito menor e menos atuante. Cada membro do IRSG administra um internet research
group voluntrio, anlogo aos grupos de trabalho da IETF. A IRTF no composta
por reas.
9.1.7

A Internet Society

Quando, em 1992, a internet desvinculou-se da tutela governamental nos


Estados Unidos, foi constituda uma sociedade, visando estimular a participao
naquela rede. Com o nome de The Internet Society, o grupo uma organizao
internacional inspirada na national Geographic Society. Na posio de host do IAB, a
Internet Society continua a estimular as adeses internet e sua utilizao em todo o
mundo.
9.1.8

RFCs (Request for Comments) da Internet

J mencionamos que nenhum fornecedor detm o direito de propriedade sobre


a tecnologia TCP/IP, bem como nenhuma sociedade profissional ou instituies
responsveis pelos padres. Desse modo, a documentao de protocolos, padres e
polticas no pode ser obtida de um fornecedor. Em vez disso, a National Science
Foundation financia um grupo da AT&T para manter e distribuir informaes sobre
TCP/IP e internet global. Conhecido como Internet Network Information Center
(INTERNIC), o grupo trata de muitos detalhes administrativos para a internet, alm
de distribuir a documentao.
Documentao para o trabalho da internet, as propostas para protocolos novos
ou revisados e os padres de protocolos TCP/IP constam todos de uma srie de
relatrios tcnicos denominados Request for Comments da internet, ou RFCs. Os
RFCs podem se curtos ou longos, podem abranger conceitos amplos ou detalhados e
podem ser padres ou simplesmente propostas para novos protocolos. O editor do
RFC um membro do IAB. Embora os RFCs sejam editados, a eles no dispensada
a mesma ateno que aos jornais de pesquisa acadmica. Alm disso, alguns relatrios
relativos internet foram publicados anteriormente, em sries paralelas de relatrios
denominados Internet Engeneering Notes, ou IENs. Embora a srie IEN j no vigore
mais, nem todos os IENs aparecem na srie RFC. H referncias a RFCs e a uns
poucos IENs ao longo do texto.
A srie RFC numerada seqencialmente, na ordem cronolgica em que os
RFCs so preparados. A cada RFC novo ou revisado atribudo um novo nmero;
assim, os leitores precisam estar atentos para obter a verso de documento cujo
nmero seja mais elevado. Est disponvel um ndice para facilitar a identificao da
verso correta.

109

Para colaborar com o INTERNIC e agilizar a recuperao de documentos, em


todo o mundo muitos sites armazenam cpias de RFCs e as tornam disponveis para a
comunidade. possvel obter RFCs via correio postal, correio eletrnico, ou
diretamente atravs da internet, utilizando um programa de transferncia de arquivos.
Alm disso, o INTERNIC e outras organizaes colocam disposio verses
preliminares de documentos RFC conhecidos como Internet Drafts. Informe-se com
pessoas experientes em rede local sobre como obter RFCs ou internet drafts no seu
site, ou consulte o Apndice 1 para obter instrues sobre sua recuperao.
9.1.9

Protocolos e padronizao da Internet

Os leitores familiarizados com redes de comunicao de dados sabem que


existem vrios padres de protocolo de comunicao. Muitos deles so anteriores
internet, remetendo pergunta: por que os planejadores da internet inventaram novos
protocolos, quando tantos padres internacionais j existiam? A resposta complexa,
mas segue uma mxima simples:
Utilize os padres dos protocolos existentes sempre que esses padres se
aplicarem; crie novos protocolos apenas quando os padres existentes
forem insuficientes e estejam aptos para utilizar novos padres se eles se
tornarem disponveis e proporcionarem uma funcionalidade equivalente.
Assim, embora aparente ser o contrrio, a Pilha de Protocolos TCP/IP da
internet no foi criada com o objetivo de ignorar ou evitar padres existentes. Surgiu
simplesmente porque nenhum dos protocolos existentes satisfaziam necessidade de
um sistema de comunicao de interligao em redes interoperveis.
9.1.10 Expanso e tecnologia futuras
A tecnologia TCP/IP e a internet continuam a se desenvolver. Novos
protocolos esto sendo propostos; os antigos esto sendo revisados. A NSF
acrescentou considervel complexidade ao sistema ao introduzir uma rede backbone,
redes regionais e centenas de redes universitrias. Em todo o mundo, outros grupos
tambm continuam a conectar-se internet. Entretanto, a mudana mais significativa
surge no das conexes adicionais de rede, mas de trfego adicional. medida que
novos usurios conectam-se internet e surgem novos aplicativos, muda a
configurao do trfego. Quando fsicos, qumicos e bilogos comeam a utilizar a
internet, eles trocavam arquivos de dados coletados de seus experimentos. Esses
arquivos pareciam grandes se comparados s mensagens de correio eletrnico. To
logo a internet tornou-se popular e os usurios passaram a buscar informaes atravs
de servios como gopher e a World Wide Web, novamente o trfego aumentou.
O crescimento da demanda por conexo de redes no deve estar fora de
cogitao. Durante vrios anos, a indstria computacional experimentou incessante
demanda do aumento da capacidade de processamento e de maior armazenamento de
dados. Os usurios ainda esto comeando a aprender como utilizar redes. No futuro,

110

podemos esperar aumentos contnuos na demanda de comunicao. As tecnologias de


comunicao de maior capacidade sero, portanto, necessrias para a adaptao ao
crescimento.
A figura 1.2 resume a expanso da internet e ilustra um importante produto em
evoluo: a mudana de complexidade surge porque numerosos grupos autnomos
gerenciam partes da internet global. Os projetos iniciais para muitos subsistemas
dependiam de uma gerncia centralizada. necessrio maior esforo para expandir
esses projetos a fim de adapt-los a uma gerncia descentralizada.
Nmero de redes

Nmero de computadores

Nmero de administradores

100

1980

10

10

1990

103

105

101

1997

106

108

102

Figura 1.2

Expanso da Internet conectada. Alm do crescimento em trfego, resultante


do tamanho cada vez maior, a Internet enfrenta uma complexidade que tem
sua origem numa gerncia descentralizada, no s do desenvolvimento,
como das operaes

9.1.11 Organizao do texto


O material sobre TCP/IP est contido em trs volumes. O presente volume
apresenta a tecnologia TCP/IP, os aplicativos que utilizam e a arquitetura da internet
global em maiores detalhes. Aborda os fundamentos de protocolos como o TCP/IP e o
IP, e mostra como eles se ajustam na interligao em redes. Alm de fornecer
detalhes, o texto destaca os princpios gerais que sustentam os protocolos de rede,
explica por que os protocolos TCP/IP adaptam-se facilmente a muitas tecnologias de
rede fsicas essenciais. O Volume II aborda, em profundidade os detalhes internos dos
protocolos TCP/IP, mostrando como eles so implementados. Ele apresenta o cdigo
de um sistema de trabalho para ilustrar como os protocolos isolados funcionam juntos
e contm detalhes teis s pessoas cuja responsabilidade criar interligaes em redes
empresariais. O Volume III mostra como os aplicativos distribudos utilizam o
TCP/IP na comunicao. A est em foco o paradigma cliente/servidor, base de toda a
programao distribuda. A interface entre programas e protocolos discutida, e
mostrada como os programas clientes/servidor so organizados. Alm disso, o
Volume III descreve o conceito do procedimento remoto e indica como os
programadores utilizam as ferramentas necessrias para desenvolver softwares do tipo
cliente/servidor.
At aqui, falamos sobre a tecnologia TCP/IP e a internet, em termos gerais,
resumindo os servios oferecidos e a histria de seu desenvolvimento. O prximo
captulo oferece um resumo do tipo de hardware de rede utilizado em toda a internet.
Sua finalidade no realar nuana do hardware de um fornecedor especfico, mas
concentra-se naquelas caractersticas de cada tecnologia, consideradas fundamentais
para uma arquitetura de interligao em redes. Os captulos posteriores pesquisam os
protocolos e a internet, atingindo trs objetivos: exploram os conceitos gerais e
analisam o modelo arquitetnico da internet, examinam os detalhes dos protocolos
TCP/IP e abordam os padres para servios de alto nvel, como correio eletrnico e
111

transferncia de arquivos. Os captulos 3 at 12 analisam os princpios fundamentais e


descrevem o software de protocolo de rede existente em quaisquer mquinas que
utilizem TCP/IP. Os ltimos captulos descrevem os servios que abrangem mltiplas
mquinas, incluindo a difuso de informaes de roteamento, resoluo de nome e
aplicativos como o correio eletrnico.
Dois apndices seguem-se ao texto principal. O primeiro contm um guia dos
RFCs. Ele continua desenvolvendo a descrio dos RFCs encontrados neste captulo e
oferece exemplos de informaes que podem ser encontradas em RFCs. Descreve, em
detalhes, como obter RFCs atravs de correio eletrnico, do correio postal e da
transferncia de arquivos. Finalmente, como o ndice do RFC padro apresentado
em ordem cronolgica, o apndice apresenta uma lista de RFCs, organizada por
tpicos, para que os iniciantes localizem facilmente os RFCs relacionados com
determinado assunto.
O segundo apndice contm uma lista, em ordem alfabtica, de termos e
abreviaes utilizadas na literatura e no texto. J que os iniciantes muitas vezes
consideram a nova terminologia confusa e difcil de ser lembrada, eles so
estimulados a utilizar a lista em ordem alfabtica, em vez de pesquisar ao longo do
texto.

como obter RFCs atravs de correio eletrnico, do correio postal e da


transferncia de arquivos. Finalmente, como o ndice do RFC padro
apresentado em ordem cronolgica, o apndice apresenta uma lista de RFCs,
organizada por tpicos, para que os iniciantes localizem facilmente os RFCs
relacionados com determinado assunto.
O segundo apndice contm uma lista, em ordem alfabtica, de termos e
abreviaes utilizadas na literatura e no texto. J que os iniciantes muitas vezes
consideram a nova terminologia confusa e difcil de ser lembrada, eles so
estimulados a utilizar a lista em ordem alfabtica, em vez de pesquisar ao longo do
texto.

9.1.11.1 Resumo
Uma interligao em redes consiste em um conjunto de redes conectadas que
agem como um todo coordenado. A principal vantagem que ela proporciona uma
interconexo universal, ao mesmo tempo em que permite que grupos de indivduos
utilizem qualquer hardware de rede que melhor atenda s suas necessidades.
Examinaremos os princpios que orientam a comunicao de interligao em redes em
geral e os detalhes de uma pilha de protocolos dessa interconexo, em particular.
Tambm discutiremos como esses protocolos so utilizados em uma interconexo
desse tipo. A tecnologia que utilizaremos em nosso exemplo, denominada TCP/IP em
virtude de seus dois protocolos principais, foi desenvolvida pela ARPA Advanced
Research Projects Agency. Ela fornece a base para a internet global, uma interligao
em redes ampla e operacional que conecta universidades, organizaes e
departamentos do governo em muitos pases em todo o mundo. A internet global est
passando por uma rpida expanso.

112

9.2 Anlise das tecnologias bsicas de rede


9.2.1 Introduo
importante compreender que a internet no um novo modelo de rede fsica.
Ao contrrio, um conjunto de redes fsicas ligadas entre si e de convenes sobre o
uso de redes que estabelecem a conexo entre computadores. J que o hardware de
rede desempenha um papel apenas secundrio no contexto geral, torna-se necessrio,
para a compreenso da tecnologia da internet, fazer a distino entre os mecanismos
de baixo nvel oferecidos pelo hardware e os recursos de alto nvel que os protocolos
TCP/IP oferecem. importante compreender tambm a influncia que os recursos
fornecidos pela tecnologia de comutao de pacotes exerce na escolha de projetos de
alto nvel.
O objetivo deste captulo introduzir os conceitos e terminologias bsicas
sobre a comutao de pacotes e analisar algumas tecnologias bsicas de hardware de
rede que vm sendo usadas nas ligaes entre redes que utilizam o TCP/IP. Os
captulos posteriores descrevem como tais redes so conectadas entre si e como os
protocolos TCP/IP conciliam hardwares completamente diferentes. A lista contida
neste captulo certamente no ser abrangente, mas servir para demonstrar
claramente a variedade de redes fsicas com as quais os TCP/IP operam. Voc pode,
tranqilamente , ignorar a maior parte dos detalhes tcnicos, mas deve tentar
compreender a idia da comutao de pacotes e imaginar o desenvolvimento de um
sistema de comunicao homogneo com hardwares heterogneos. O mais importante
observar atentamente as particularidades dos mecanismos de endereamento fsico
utilizados pelas vrias tecnologias; os captulos posteriores explicaro detalhadamente
como os protocolos de alto nvel utilizam os endereos fsicos.

9.2.2 Duas abordagens sobre a comunicao de rede


Independente do tipo de conexo que faam, seja entre computadores ou entre
terminais e computadores, as redes de comunicao dividem-se em dois tipos bsicos:
de comutao de circuitos (tambm conhecidas como redes baseadas em conexes) e
de comutao de pacotes (conhecidas, ainda, como redes sem conexo). As primeiras
operam formando uma conexo dedicada (circuito) entre duas pontas. O sistema
telefnico dos Estados Unidos utiliza uma tecnologia de comutao de circuitos
uma chamada telefnica estabelece um circuito da linha de quem telefona, atravs de
uma central de comutao local, passando por linhas do tronco, at uma central de
comutao remota e, finalmente, ao destinatrio da chamada. Enquanto um circuito
estiver aberto, o equipamento telefnico testa o microfone vrias vezes, converte os
sinais para o formato digital e os transmite atravs do circuito para o receptor. O
transmissor tem a garantia de que os sinais sero distribudos e reproduzidos, pois o
circuito oferece um percurso de dados seguro, de 64 kbps, o mnimo necessrio para o
envio de voz digitalizada. A vantagem da comutao de circuitos reside na sua
capacidade segura: uma vez que um circuito estabelecido, nenhuma outra atividade
113

de rede poder reduzir a capacidade do circuito. A desvantagem da comutao de


circuitos o alto custo: o preo fixo, independente do trfego. Por exemplo, o preo
de uma ligao telefnica o mesmo, ainda quando as duas pontas no se
comunicam.
As redes de comutao de pacotes, utilizadas normalmente para fazer a
conexo entre computadores, fazem uma abordagem completamente diferente. Em
uma rede daquele tipo, as mensagens a serem transmitidas atravs das estaes da
rede so divididas em pequenas unidades chamadas pacotes que so multiplexados
por meio de conexes entre mquinas de alta capacidade. Um pacote que geralmente
contm apenas pequenas unidades de informaes transporta uma identificao que
capacita o hardware da rede a enviar as informaes a determinado destino. Por
exemplo, a transmisso de um arquivo extenso entre dois equipamentos deve ser feita
a partir da diviso do arquivo em vrios pacotes antes de encaminh-los rede. O
hardware da rede envia os pacotes aos seus respectivos destinos onde o software os
rene novamente em um nico arquivo. A grande vantagem da comutao de pacotes
a possibilidade de realizar simultaneamente vrias comunicaes entre
computadores, com conexo entre equipamentos compartilhados por todos os pares de
equipamentos que esto se comunicando. A desvantagem que, medida que a
atividade se intensifica, um determinado par de computadores conectados entre si
recebe uma capacidade menor da rede. Ou seja, toda vez que uma rede de comutao
de pacotes estiver sobrecarregada, os computadores conectados a ela tero que esperar
at poderem enviar pacotes adicionais.
Apesar da grande desvantagem de no assegurar a capacidade da rede, as redes
de comutao de pacotes tornaram-se muito populares. Os motivos para a adoo
desse tipo de rede so o preo e a eficincia. J que vrias podem compartilhar o
hardware da rede, o nmero de conexes diminui e o custo se mantm baixo. O fato
de os engenheiros terem conseguido montar um hardware de rede de alta velocidade
fez com que a capacidade deixasse de ser um problema. A comutao de pacotes to
utilizada pelas interconexes de computadores que, durante todo o restante do
captulo, o termo rede vai se referir somente s redes de comutao de pacotes.
9.2.3 Redes de longas distncias e redes locais
As redes de comutao de pacotes que operam em grandes reas geogrficas
so basicamente diferentes daquelas que operam em reas pequenas (p ex. um nico
compartimento). Com o intuito de ajudar a caracterizar as diferenas de capacidade e
de finalidade, as tecnologias de comutao de pacotes so divididas em duas
categorias, de acordo com a extenso: redes de longas distncias (WANs) e redes
locais (LANs). As duas categorias no possuem definies formais. Ao contrrio, os
fornecedores utilizam os termos de forma coloquial para que os consumidores saibam
diferenciar as duas tecnologias.
As tecnologias de rede remota ou de redes de longas distncias possibilitam a
comunicao entre grandes distncias. A maioria das tecnologias de rede de longas
distncias no impe um limite na extenso da distncia; permite que os dois
extremos se comuniquem a uma distncia arbitrria. Uma rede de longas distncias,
por exemplo, pode operar em um continente ou conectar computadores de continentes
diferentes. Geralmente, as redes de longas distncias operam em velocidades mais
lentas do que as redes locais, e necessitam de um retardo de transmisso bem maior

114

entre as conexes. A velocidade de uma rede de longas distncias varia de 56 kbps a


155 Mbps. O retardo de transmisso em uma rede de longas distncias pode variar
desde alguns milissegundos at vrios dcimos de segundo.
As tecnologias de rede local possuem uma velocidade de conexo entre
computadores bem mais rpida, mas deixam a desejar na capacidade de operar em
longas distncias. Por exemplo, uma rede local tpica abrange uma rea pequena,
como um nico edifcio ou um campus, e funciona entre 10 Mbps e 2 Gbps. J que
essas tecnologias operam em pequenas reas, o retardo de transmisso bem menor
do que o das tecnologias de rede de longas distncias, o qual pode durar desde alguns
dcimos de um milissegundo, at no mximo dez milissegundos.
J mencionamos a escolha entre velocidade e distncia: tecnologias que
oferecem uma velocidade maior de comunicao abrangem pequenas reas
geogrficas. Existem tambm outras diferenas entre as categorias de tecnologias. Na
tecnologia de rede local, cada computador geralmente contm um dispositivo de
interface de rede que conecta a mquina diretamente ao ambiente de rede.
Normalmente, a rede em si passiva, dependendo dos dispositivos eletrnicos dos
computadores ligados a ela para gerar e receber os sinais eltricos necessrios. Na
tecnologia de rede de longas distncias, uma rede geralmente consiste em uma srie
de computadores denominados comutadores de pacotes, interligados por linhas e
modems de comunicao. possvel aumentar o tamanho da rede com a adio de um
novo comutador e de uma nova linha de comunicaes. Ligar o computador de um
usurio a uma rede de longas distncias significa conect-lo a uma dos comutadores
de pacotes. Cada comutador, ao longo de um percurso na rede de longas distncias,
inicia um retardo de transmisso ao receber um pacote e o transfere ao comutador
seguinte. Desse modo, quanto maior a rede de longas distncias, mais tempo ela
levar para desobstruir o trfego.
Este livro trata do software que concentra as diferenas tecnolgicas entre as
redes e que faz a interconexo independente do hardware bsico. Para saber optar
entre os diferentes modelos de software, necessrio compreender como eles se
relacionam com o hardware da rede. As sees contm exemplos de tecnologias de
rede que foram usadas na internet, mostrando algumas das diferenas existentes entre
elas. Os captulos posteriores explicam como o software TCP/IP identifica tais
diferenas, tornando o sistema de comunicao independente da tecnologia bsica do
hardware.
9.2.3.1 Endereos de hardware da rede
Cada tecnologia do hardware da rede define um mecanismo de endereamento
utilizado pelos computadores para definir o destino de cada pacote. A todos os
computadores conectados a uma rede atribudo um nico endereo, geralmente um
nmero inteiro. Um pacote enviado atravs de uma rede possui um campo de
endereo de destino que contm o endereo do destinatrio. O endereo de destino
aparece na mesma localizao em todos os pacotes, possibilitando ao hardware da
rede identificar o endereo de destino facilmente. Um transmissor deve saber o
endereo do destinatrio e o deve inserir no campo de endereo de destino de um
pacote antes de encaminh-lo.
Todas as tecnologias do hardware especificam como os endereos so
atribudos aos computadores. O hardware especifica, por exemplo o nmero de bits do

115

endereo, assim como a localizao do campo do endereo de destino de um pacote.


Apesar de algumas tecnologias utilizarem esquemas de endereamento compatveis, a
maioria no o faz. Este captulo contm alguns exemplos de esquemas de
endereamento de hardware; os captulos posteriores explicam como os TCP/IP
conciliam esquemas de endereamento de hardware diferentes.
9.2.4 A tecnologia Ethernet
Ethernet o nome dado a uma tecnologia de rede local popular, de comutao
de pacotes, criada pela Xerox PARC no incio da dcada de 1970. As empresas
Xerox, Intel e Digital Equipment padronizaram a Ethernet em 1978; o IEEE criou
uma verso compatvel do padro, utilizando o nmero 802.3. A Ethernet tornou-se
uma tecnologia de rede local popular; a maioria das empresas de mdio e grande porte
a utiliza. Este pioneirismo gerou os seus frutos; a grande maioria dos fabricantes de
hardware usa a topologia Ethernet para LAN, alm de ser considerada a melhor
topologia em confiabilidade e produtividade operacional para LAN. J que se tornou
to popular, a Ethernet possui muitas variantes; falaremos primeiro sobre o modelo
original, e depois sobre as variantes.
Segundo o modelo ISO/OSI, o Ethernet um padro que define os nveis 1 e 2
especificados respectivamente pelas normas 802.3 e 802.2 da IEEE.
Com relao ao nvel fsico, o Ethernet uma rede de topologia de barramento,
com CSMA/CD (carrier sense multiple access wiht collision detection): cada
estao que quiser acessar a linha verifica sua ocupao; se estiver livre, transmite; se
no, espera o fim da transmisso atual para transmitir. Se duas estaes iniciarem a
transmisso ao mesmo tempo, a coliso detectada por ambas estaes, que abortam
a transmisso, gerando uma retransmisso. Esta retransmisso segue algoritmo que
visa reduzir a chance de nova coliso.
O Protocolo de Controle de Acesso aos Meios Fsicos
O principal trecho da especificao de camada de link de dados para redes
Ethernet descreve a forma como as estaes devero compartilhar o acesso a cabos
coaxiais atravs de um processo denominado CSMA/CD (Carrier Sense Multiple
Access with Collision Detection). O CSMA/CD um protocolo de controle de acesso
aos meios fsicos (MAC) que determina a forma como os ns da rede compartilham o
acesso ao cabo. O meio fsico o cabo coaxial que conecta os ns da rede, e o
protocolo de controle de acesso o esquema de compartilhamento. Para que pacotes
de informao possam percorrer o cabo da rede Ethernet, eles devem lidar com o
CSMA/CD.
O CSMA/CD verifica a rede antes de transmitir. Se receber dados de um
software de alto nvel, antes de envi-los, a placa adaptadora de rede verifica se outra
estao est transmitindo no cabo. A placa s transmitir a mensagem quando o cabo
estiver livre.
O CSMA/CD tambm funciona como mediador quando o inevitvel acontece:
dois ou mais ns comeam a transmitir simultaneamente em um cabo livre, e as
transmisses colidem. As placas adaptadoras podem detectar essas colises por causa
do nvel de sinal eltrico mais alto que as transmisses simultneas produzem.
Quando detectam uma coliso, as placas adaptadoras de rede comeam a transmitir o

116

que denominamos "sinal de congestionamento", garantindo que todos os ns


conflitantes percebam a coliso. Em seguida, todas as placas param de transmitir e
acessam suas programaes internas, a fim de determinar um tempo aleatoriamente
selecionado para retransmisso. Esse perodo de "retrao" assegura que as estaes
no continuem a enviar sinais que possam entrar em coliso quando o trfego no cabo
diminuir.

O sinal em um cabo coaxial desbalanceado anulado devido prpria reflexo do


mesmo no final do circuito.

Com a carga nas extremidades o sinal distribudo pelo barramento, sendo que
apenas o micro de destino receber a informao.

Se um ou mais requisitarem o barramento, haver uma coliso entre os sinais e o


primeiro a solicitar ficar com o barramento

A informao est disponvel em todos os micros no padro ethernet.

117

Cada cabo da Ethernet possui aproximadamente 0,5 polegadas de dimetro e at


500 metros de comprimento. Um resistor anexado entre o fio central e a proteo,
em cada uma das extremidades, para evitar o reflexo de sinais eltricos.
O modelo original da Ethernet possua um cabo coaxial, como o ilustrado na
figura 2.1. Tambm chamado de ether, o cabo em si completamente passivo; todos
os componentes eletrnicos ativos que fazem a rede funcionar so associados aos
computadores conectados rede.

Para se fazer a conexo entre um computador e um cabo coaxial Ethernet


necessrio um dispositivo de hardware chamado transceptor. Fisicamente, a conexo
entre um transceptor e a Ethernet necessita de um pequeno orifcio nas camadas
exteriores do cabo, como ilustra a Figura 2.2. Em tese, o termo usado para descrever a
conexo entre um transceptor de Ethernet e um cabo derivao (TAP). Geralmente,
pequenos pinos de metal montados no transceptor passam pelo orifcio e oferecem
contatos eltricos ao fio central e proteo metlica. Alguns conectores fabricados
necessitam que o cabo seja cortado, e um T, inserido.

Cada conexo a uma Ethernet necessita de dois componentes eletrnicos


principais. Um transceptor que conecta-se ao fio central e proteo metlica do
118

cabo, captando e enviando sinais no ether. Uma interface do host ou um adaptador de


host encaixa-se no barramento do computador (p. ex. na placa me) e conecta-se ao
transceptor.
Um transceptor um pequeno componente do hardware, geralmente
localizado fisicamente ao lado do ether. Alm do hardware analgico que recebe e
controla os sinais eltricos no ether, um transceptor contm um circuito digital que
possibilita sua comunicao com um computador digital. O transceptor pode detectar
quando o ether est em uso e converter os sinais eltricos analgicos do ether para a
forma digital (e a partir dela). Um cabo chamado AUI (Attachment Unit Interface)
conecta o transceptor a uma placa adaptadora de um computador host. Chamado
informalmente de cabo transceptor, o cabo AUI possui muitos fios. Tais fios
transportam a energia eltrica necessria para a operao do transceptor, os sinais que
controlam a operao do transceptor e o contedo dos pacotes que esto sendo
enviados ou recebidos. A figura 2.3 ilustra como os componentes formam a conexo
entre um barramento num sistema de computador e um cabo Ethernet.
Cada uma das interfaces do host controla a operao de um transceptor, de
acordo com as instrues que recebe do software do computador. Para o software do
sistema operacional, a interface parece ser um dispositivo de entrada e sada que
recebe instrues bsicas de transferncia de informaes a partir do computador,
controla o transceptor para execut-las, interrompe quando a operao chega ao fim e
reporta as informaes de status. Apesar de o transceptor ser um simples dispositivo
do hardware, a interface do host pode ser complexa (p. ex. pode conter um
microprocessador utilizado para controlar transferncias entre a memria do
computador e o ether).

119

Na prtica, as instrues que utilizam a Ethernet original em um ambiente de


trabalho convencional instalam o cabo da Ethernet ao longo do teto de cada sala e
conectam todas as salas ao cabo. A Figura 2.4 ilustra o esquema de fiao fsico
resultante.
9.2.4.1 Ethernet de fio fino
Vrios componentes da tecnologia original de Ethernet possuem propriedades
indesejveis. Por exemplo, em virtude de o transceptor possuir componentes
eletrnicos, seu custo no baixo. Alm disso, j que os transceptor so localizados
no cabo, e no nos computadores, o acesso a eles torna-se difcil, bem como sua
substituio. O cabo coaxial que forma o ether tambm pode ser de difcil instalao.
Para oferecer o mximo de proteo contra interferncia eltrica de dispositivos como
motores eltricos, o cabo possui uma forte proteo que o torna difcil de ser dobrado.
Um cabo AUI tambm forte e difcil de ser dobrado.

120

Para reduzir custos em ambientes como escritrios, que no possuem muita


interferncia eltrica, os engenheiros criaram um esquema de fiao alternativo para a
Ethernet. Conhecido como Ethernet de fio fino (Thin-wire ethernet ou thinnet), o cabo
coaxial alternativo mais fino, mais barato e mais flexvel. Entretanto, uma Ethernet
de fio fino possui algumas desvantagens. J que no oferece muita proteo contra
interferncia eltrica, ela no pode ficar prxima a equipamento eltricos muito
potentes, como os de um fbrica. Alm disso, a Ethernet de fio fino opera em
distncias um pouco menores e comporta uma quantidade de conexes menor, pro
rede, do que a ethernet de fio grosso.
Para reduzir ainda mais o custo, os engenheiros substituram o transceptor de
alto custo com circuitos especiais de alta velocidade e fizeram uma conexo direta
entre um computador e o ether. Assim, em um esquema de fio fino, um computador
possui tanto a interface do host como o circuito que conectado ao cabo. Os
fabricantes de microcomputadores e de estaes de trabalho consideram a Ethernet de
fio fino um esquema particularmente atrativo, em virtude da possibilidade da conexo
entre o hardware da Ethernet e computadores de placa nica, e de instalar diretamente
os conectores na parte traseira do computador.
Como o Ethernet de fio fino conecta diretamente um computador a outro, o
esquema de fiao funciona perfeitamente quando vrios computadores ocupam um
mesmo compartimento. O cabo de fio fino percorre o trajeto diretamente de um
computador a outro. Para incluir um outro computador, basta conect-lo cadeia. A
Figura 2.5 ilustra as conexes utilizadas pela Ethernet de fio fino.

121

As redes Ethernet de fio fino so projetadas para serem facilmente conectadas


e desconectadas. Essa tecnologia utiliza conectores BNC, os quais no necessitam de
ferramentas para conectar um computador ao cabo. Assim, possvel que o prprio
usurio conecte um computador a uma rede Ethernet de fio fino sem a ajuda de um
tcnico. claro que o fato de os usurios poderem manipular o ether sozinhos traz
algumas desvantagens; se um usurio desconectar o ether, impedir a comunicao de
todas as outras mquinas no ether. Muitas vezes, entretanto, as vantagens so bem
maiores do que as desvantagens.
9.2.4.2 Ethernet de pares tranados
Graas ao avano da tecnologia foi possvel construir redes Ethernet que no
necessitam da proteo eltrica de um cabo coaxial. Chamada de Ethernet de pares
tranados, essa tecnologia permite que um computador acesse uma rede Ethernet
utilizando um par de fios de cobre normais sem proteo, semelhantes aos utilizados
para fazer a conexo entre equipamentos telefnicos. A vantagem desse tipo de
tecnologia que, alm de reduzir os custos, oferece proteo a outros computadores
da rede no caso de um usurio desconectar um nico computador. Em alguns casos,
uma tecnologia de pares tranados possibilita que uma instituio utilize a Ethernet
com a fiao telefnica j existente, sem a adio de novos cabos. Conhecido
tecnicamente como 10Base-T, o esquema de fiao de pares tranados conecta cada
computador a um HUB da Ethernet, como ilustra a Figura 2.6.

122

O HUB um dispositivo eletrnico que estimula os sinais num cabo Ethernet.


Fisicamente, o HUB formado por uma pequena caixa que geralmente alojada em
um gabinete de fiao; uma conexo entre um HUB e um computador deve ter menos
de cem metros de extenso. Um HUB necessita de energia eltrica e, talvez, de
pessoal qualificado para fazer o monitoramento e o controle de sua operao na rede.
Para a interface com um computador, a conexo a um HUB parece funcionar do
mesmo modo que a conexo a um transceptor. Ou seja, um HUB da Ethernet possui a
mesma capacidade de comunicao que uma Ethernet de fio fino ou de fio grosso; os
conectores apenas oferecem um esquema de fiao alternativo.
9.2.4.3 Esquemas de fiao mltiplos e com adaptadores
Para se fazer uma conexo Ethernet de fio grosso necessrio um conector
AUI; j para uma conexo Ethernet de fio fino necessrio um conector RJ45,
similar aos conectores modulares utilizados pelos aparelhos telefnicos. A maioria
dos produtos da Ethernet permite que o cliente escolha o esquema de fiao que
deseja. As placas adaptadoras para os microcomputadores, por exemplo, geralmente
vm acompanhadas de trs conectores, como ilustra a Figura 2.7. Apesar de s um
conector poder ser utilizado de cada vez, um computador que possua tal adaptador
pode facilmente ser transferido de um esquema de fiao a outro.

123

9.2.4.4 Caractersticas de uma rede Ethernet


A Ethernet uma tecnologia de barramento de difuso de 10 Mbps, 100 Mbits
e ate 1 Gbits, com mtodo de entrega sem garantia e controle de acesso distribudo.
um barramento porque todas as estaes compartilham um nico canal de
comunicao; de difuso (broadcast) porque todos os transceptores recebem cada
uma das transmisses. O mtodo adotado, de encaminhar pacotes somente de uma
estao a outra ou a um subconjunto de todas as estaes, ser discutido mais adiante.
Por enquanto, suficiente compreender que os transceptores no diferenciam as
transmisses um transceptor transporta todos os pacotes do cabo para a interface do
host que, por sua vez, seleciona os pacotes que o computador deve receber e retm os
demais. A Ethernet tambm chamada de mecanismos Best-Effort porque o hardware
no fornece qualquer informao ao transmissor sobre a entrega do pacote. Por
exemplo, se a mquina destinatria estiver desligada, os pacotes que estavam
destinados a ela se perdero e o transmissor no ser notificado. Posteriormente,
veremos como os protocolos TCP/IP lidam com hardware para transmisso BestEffort.
O controle de acesso Ethernet distribudo porque, ao contrrio de algumas
tecnologias de rede, a Ethernet no possui nenhuma autoridade central para permitir o
acesso. O esquema de acesso Ethernet chamado CSMA/CD (Carrier Sense
Multiple Access with Collision Detect). um CSMA porque vrios equipamentos
podem acessar a Ethernet simultaneamente e cada um deles estabelece se o meio est
ou no livre, detectando a presena ou no de sinal. Quando uma interface do host tem
um pacote para transmitir, ela verifica o meio para saber se h alguma mensagem
sendo transmitida (ou seja, detecta o transceptor). Se nenhuma transmisso for
detectada, a interface do host inicializa a transmisso. Cada uma das transmisses
possui um limite de durao (porque h um tamanho mximo de pacote). Alm do
mais, o hardware deve observar um intervalo mnimo de tempo entre as transmisses,
o que significa que nenhum par de equipamentos comunicantes pode utilizar a rede
sem oferecer aos demais equipamentos uma oportunidade de acesso.
124

9.2.4.5 Deteco de coliso e recuperao


Quando um transceptor inicia uma transmisso, o sinal no consegue alcanar
todos os locais da rede, simultaneamente. Ao contrrio, ele percorre o cabo a
aproximadamente 80% da velocidade da luz. Desse modo, possvel que dois
transceptores detectem que a rede est disponvel e inicializem uma transmisso ao
mesmo tempo. Quando os dois sinais eltricos se sobrepem, ambos tornam-se
invlidos. Tais incidentes so chamados colises.
A Ethernet lida com as colises de uma forma simples.Cada transceptor
monitora o cabo, enquanto ele est transmitindo e verifica se algum sinal incomum
interfere na transmisso. Em tese, o monitoramento recebe o nome de CD (collision
detect), tornando a ethernet uma rede de CSMA/CD. Quando uma coliso detectada,
a interface do host interrompe a transmisso, espera que a atividade cesse e tenta
inicializ-la novamente. preciso ter muito cuidado, caso contrrio, a rede pode ser
desativada com todos os transceptores que estejam tentando transmitir e as
transmisses podem resultar em colises.
Para evitar tais situaes, e Ethernet utiliza uma poltica chamada binary
exponencial backoff, na qual um transmissor espera um tempo aleatrio aps a
primeira coliso. A durao mxima deste tempo aleatrio duas vezes a da primeira
tentativa, caso a segunda tentativa tambm resulte em colises; quatro vezes caso a
terceira tentativa tambm resulte em coliso, e assim por diante. O motivo para o uso
da poltica binary exponencial backoff que, em uma situao improvvel na qual
muitas estaes tentam transmitir simultaneamente, pode ocorrer um grande
congestionamento. Em tal situao, h grande probabilidade de duas estaes
escolherem intervalos aleatrios que estejam prximos uns dos outros. Por isso, a
probabilidade de uma outra coliso ocorre muito grande. Dobrando-se o tamanho
mximo do retardo aleatrio de transmisso, a estratgia binary exponencial backoff
dispersa rapidamente as tentativas de retransmisso das estaes em um perodo de
tempo razoavelmente longo, diminuindo, assim, a probabilidade de ocorrncia de
futuras colises.
9.2.4.6 A capacidade da Ethernet
A ethernet padro possui 10 Mbps, o que significa que as informaes podem
ser transmitidas no cabo a uma velocidade de 10 milhes de bits por segundo. Apesar
de o computador poder gerar informaes na velocidade da Ethernet, no se deve
considerar a velocidade da rede, por si s, como a taxa na qual dois computadores
fazem o intercmbio de informaes. Ao contrrio, a velocidade da rede deve ser
considerada como uma medida da capacidade total do trfego da rede. Compare uma
rede a uma auto-estrada que conecta vrias cidades, e os pacotes aos carros dessa
auto-estrada. Largas bandas passantes possibilitam a conduo de carga (trfego)
pesada, ao passo que bandas passantes estreitas significam que a auto-estrada no
pode conduzir a mesma quantidade de trfego. Uma Ethernet de 10 Mbps, por
exemplo, pode controlar poucos computadores que geram carga pesada, ou muitos
gerando carga leve. Atualmente, as redes Ethernet tem atingido maiores velocidades,
sendo possivel o trafego de informacoes a 100 Mbits e a 1 Gbits.

125

9.2.4.7 Endereos fsicos da Ethernet


A Ethernet possui um sistema de endereamento de 48 bits. A cada
computador conectado a uma Ethernet projetado um nico nmero de 48 bits
conhecido como o endereo da Ethernet. Para projetar um endereo, os fabricantes do
hardware da Ethernet compram blocos de endereos de Ethernet e os designam em
seqncia, medida que fabricam o hardware da interface da Ethernet. Assim, duas
interfaces de hardware no possuem, teoricamente, o mesmo endereo fsico da
Ethernet.
Normalmente, o endereo da Ethernet pode ser lido pela mquina na interface
de hardware do host. J que os endereos de Ethernet pertencem aos dispositivos do
hardware, s vezes so chamados endereos do hardware ou endereos fsicos.
Observe a seguinte caracterstica dos endereos fsicos da Ethernet:
Os endereos fsicos so associados ao hardware da interface da Ethernet; transferir
a interface do hardware para uma nova mquina ou substituir uma interface do
hardware que apresentou problemas ir alterar o endereo fsico da mquina.
O fato de saber que os endereos fsicos da Ethernet podem ser alterados
esclarece e porqu de nveis mais elevados de software de rede serem projetados para
acomodar tais alteraes.
A interface de hardware do host analisa os pacotes e decide quais sero
repassados do host. Vale lembrar que cada interface recebe uma cpia pacote
mesmo os enviado a outros equipamentos. A interface do host utiliza como um filtro o
campo do endereo de destino de um pacote. A interface desconsidera os pacotes
endereos aos outros equipamentos e deixa passar para o host somente os pacotes
endereados a ele. O mecanismo de endereamento e o filtro do hardware so
necessrios para evitar que um computador fique sobrecarregado com informaes
desnecessrias. Apesar de a CPU da mquina (estao de trabalho) poder fazer a
verificao, quando ela realizada pela interface do host o trfego na Ethernet no
diminui a velocidade de processamento de todos os outros computadores.
Um endereo da Ethernet, de 48 bits, pode ter mais utilidade do que
simplesmente especificar um nico computador de destino. Um endereo pode ser de
trs tipos:

O endereo fsico de uma interface de rede (um endereo unicast)


O endereo de difuso (broadcast) da rede
Um endereo multicast
Por conveno, o endereo de difuso (broadcast) (todos 1s) reservado para o
envio simultneo a todas as estaes. Os endereos de multicast provem uma forma
limitada de difuso, na qual um subconjunto de computadores de uma rede aceita
monitorar determinado endereo de multicast. O conjunto dos computadores
integrantes conhecido como grupo de multicast. Para unir um grupo de multicast,
um computador deve programar sua interface do host para aceitar o endereo de
multicast do grupo. A vantagem do multicast est na possibilidade de limitar a
difuso: cada computador de um grupo de multicast pode ser acessado com uma
simples transmisso de pacotes, mas os computadores que optam por no participar de
determinado grupo recebem os pacotes enviados ao grupo.
126

Para conciliar transmisso e endereamento de multicast, o hardware da


interface da Ethernet deve reconhecer mais do que seu endereo fsico. Uma interface
do host geralmente recebe pelo menos dois tipos de pacotes: os endereados ao
endereo fsico da interface (ou seja, unicast) e os endereados aos endereos de
transmisso da rede. Algumas interfaces podem ser programadas para identificar
endereos de multicast ou at mesmo endereos fsicos alternados. Quando o sistema
operacional inicializado, ele inicializa tambm a interface da Ethernet, oferecendo
um conjunto de endereos a serem reconhecidos. A interface, ento, analisa o campo
de endereo de destino em cada pacote, deixando passar para a mquina (host)
somente as transmisses designadas a um dos endereos especificados.

9.2.4.8 O formato do quadro da Ethernet


A ethernet deve ser considerada uma conexo no nvel de enlace de dados
entre mquinas. Desse modo, faz sentido observar as informaes transmitidas como
um quadro. Os quadros da Ethernet possuem vrios comprimentos, sendo que no h
nenhum inferior a 64 octetos ou superior a 1518 octetos (cabealho, informaes e
CRC). Como em todas as redes de comutao de pacotes, cada quadro da Ethernet
contm um campo com o endereo de seu destinatrio. A Figura 2.8 ilustra o formato
do quadro da Ethernet que possui o endereo fsico de origem, assim como o endereo
de destino.

Alm de identificar a origem e o destino, cada quadro transmitido atravs da


Ethernet contm um prembulo, um campo de tipo, um campo de informaes, e um
CRC. O prembulo consiste em 64 bits de 0s e 1s alternados com o propsito de
ajudar no recebimento de ns sincronizados. O CRC de 32 bits ajuda a interface na
deteco dos erros de transmisso: o transmissor considera o CRC como uma funo
da informao no quadro, e o receptor reconsidera o CRC para verificar se o pacote
foi ou no recebido intacto.
O campo de tipo do quadro contm um nmero inteiro de 16 bits que identifica
o tipo de informao que est sendo transportada no quadro. Para a Internet, o campo
de tipo do quadro fundamental porque demonstra que os quadros da Ethernet so
auto-identificveis. Quando um quadro chega a determinado equipamento, o sistema
operacional utiliza o tipo do quadro para determinar qual mdulo do software do
protocolo deve processar o quadro. As maiores vantagens dos quadros autoidentificveis esto na possibilidade de utilizar vrios protocolos em conjunto em um
s equipamento e permitem que vrios protocolos sejam mesclados na mesma rede

127

fsica, sem interferncia. Uma pessoa pode ter um programa de aplicao, por
exemplo, utilizando os protocolos da Internet, ao passo que outra utilizou um
protocolo local experimental. O sistema operacional utiliza o campo de tipo de um
quadro que chega a fim de decidir como processar o contedo. Veremos mais adiante
que os protocolos TCP/IP utilizam quadros de Ethernet auto-identificveis para fazer
a distino entre os vrios protocolos.
9.2.4.9 Como aumentar o comprimento da Ethernet com repetidores
Apesar de um cabo da Ethernet possui um comprimento mximo, a rede pode
ser aumentada de duas maneiras: com o auxlio de repetidores e de pontes. Um
dispositivo de hardware chamado repetidor pode ser utilizado para transmitir sinais
eltricos de um cabo a outro. Entretanto, no mximo dois repetidores podem ser
colocados entre duas mquinas, de modo que o comprimento total de uma nica
Ethernet continua muito pequeno (trs segmentos de 500 metros cada). A Figura 2.9
ilustra um uso tpico de repetidores no edifcio de uma empresa. Um nico cabo
percorre verticalmente o edifcio, e um repetidor une o backbone a um cabo adicional
em cada um dos andares. Os computadores conectam-se aos cabos em cada andar.

9.2.4.10 Como Aumentar o Comprimento da Ethernet com pontes


As pontes so melhores do que os repetidores porque no repercutem os
rudos, as falhas ou os quadros com m formao; um quadro inteiramente vlido
deve ser recebido antes que a ponte o aceite e o transmita para o outro segmento.
Alm disso, as interfaces das pontes esto de acordo com as regras do CSMA/CD da
Ethernet, de tal modo que as colises e as demoras na difuso em um nico fio
permanecem isoladas do outro fio. Desse modo um nmero (quase) arbitrrio de
Ethernets pode ser conectado juntamente com as pontes.

128

O importante que:
As pontes concentram os detalhes da interconexo: um conjunto de segmentos
em ponte age como uma simples Ethernet.
Um computador utiliza exatamente o mesmo hardware para se comunicar com
outro computador atravs da ponte e no segmento local.
A maioria das pontes faz muito mais do que duplicar quadros de um fio a
outro: tomam decises importantes, como a escolha de quais quadros passar adiante.
Tais pontes so chamadas de adaptadoras ou de aprendizagem. Uma ponte adaptadora
possui um computador com duas interfaces de Ethernet. O software em uma ponte
adaptadora possui duas listas de endereos, uma para cada interface. Quando um
quadro chega de uma Ethernet E1, a ponte adaptadora inclui o endereo de origem da
Ethernet de 48 bits lista associada com E1 . Do mesmo modo, quando um quadro
chega de uma Ethernet E2 a ponte inclui o endereo de origem lista associada com
E2. Assim, com o passar do tempo, a ponte adaptadora saber que equipamentos
encontram-se na E1 e na E2.
Aps gravar o endereo de origem de um quadro, a ponte adaptadora utiliza o
endereo de destino para decidir se passa adiante, ou no, o prximo quadro. Caso a
lista de endereos indique que o destino encontra-se na Ethernet da qual o quadro se
originou, a ponte no dar continuidade ao quadro. Se o destino no se encontrar na
lista de endereos (ou seja, o destino um endereo de difuso, ou um endereo de
multicast, ou a ponte ainda no encontrou a instalao do destinatrio), a ponte
passar o quadro adiante, a outra Ethernet.
As vantagens das pontes adaptadoras devem estar bvias. J que a ponte utiliza
os endereos encontrados no trfego normal, ela completamente automtica no
necessrio configurar a ponte com endereos especficos. J que no passa adiante o
trfego desnecessrio, uma ponte ajuda a aumentar a eficincia de uma rede
congestionada, isolando o trfego em segmentos especficos. As pontes operam
excepcionalmente bem se uma rede puder ser dividida fisicamente em dois segmentos
que contenham um conjunto de computadores com comunicaes freqentes (p. ex.,
cada segmento contm um conjunto de estaes de trabalho juntamente com um
servidor). Ou seja:
Uma ponte Ethernet adaptadora conecta dois segmentos de Ethernet,
passando quadros de uma para outro. Atravs dos endereos de origem,
identifica os equipamentos que se encontram nos segmentos da Ethernet e
agrupa informaes adquiridas pelos endereos de destino para no realizar
uma transmisso desnecessria.
De acordo com a viso do TCP/IP, as Ethernets ligadas por pontes so
simplesmente uma outra forma de conexo fsica de rede. O importante que:
Em virtude de a conexo entre cabos fsicos, fornecida pelas pontes e pelos
repetidores, ser transparente para os equipamentos conectados Ethernet,

129

consideramos os segmentos mliplos da Ethernet, conectados por pontes e


repetidores, um sistema nico de rede fsica.
A maioria das pontes comercializadas no mercado muito mais sofisticada e
robusta do que as que foram descritas aqui. Na primeira vez em que so colocadas em
operao, verificam a existncia de outras pontes e fazem o reconhecimento da
topologia da rede. Utilizam um algoritmo spanning-tree distribudo para decidir qual o
melhor modo de transmitir os quadros. As pontes decidem como distribuir os pacotes
de difuso, de modo que somente uma cpia de cada quadro de difuso seja
encaminhado a cada cabo. Sem tal algoritmo, as Ethernets e as pontes conectadas em
crculo produziriam resultados catastrficos, pois iriam transmitir pacotes em ambas
as direes, simultaneamente.
9.2.5 FDDI (Fiber Distributed Data Interconnect)
A FDDI uma conhecida tecnologia de rede que opera em pequenas reas
geogrficas e oferece uma largura de banda maior do que a Ethernet. Ao contrrio da
Ethernet e de outras tecnologias de redes locais que utilizam cabos para transportar os
sinais eltricos, a FDDI utiliza firas de vidro e transmite as informaes, convertendoas em feixes de luz.
A fibra tica possui duas vantagens sobre o fio de cobre. A primeira que so
imunes interferncia eletromagntica, podendo ficar prximas a dispositivos
eltricos potentes. A segunda que, como utilizam luz, a quantidade de informaes
transportadas por um nico canal de fibra tica significativamente maior do que a
dos cabos que transportam sinais eltricos.
A instalao das fibras de vidro pode ser difcil e, caso sejam dobradas,
certamente se quebraro. Entretanto, um cabo tico surpreendentemente flexvel. A
fibra de vidro possui um dimetro pequeno e os canos vm acompanhados de uma
capa plstica que impede que a fibra se quebre. Tais cabos no podem ser dobrados
em um ngulo de 90o graus, mas podem dobrar-se em forma de arco formando
dimetros menores. conseqentemente, a instalao no apresenta maiores
dificuldades.
9.2.5.1 Caractersticas de uma rede FDDI
A FDDI uma rede token ring de 100Mbps dotada de um recurso de autoreparo. uma rede em anel porque forma um crculo fechado, iniciando em um
computador, passando por todos os outros, e novamente retornando ao computador de
origem. Trata-se de uma rede de tecnologia token ring porque utiliza um token como
forma de controlar a transmisso. Quando a rede est inativa, um quadro especial
denominado token passa de estao a estao. Sempre que uma estao tiver que
enviar um pacote, ela ter que esperar a chegada de um token, enviar o pacote e
depois passar o token estao seguinte. O token que est sendo utilizado garante o
equilbrio: concede a todas as estaes a oportunidade de enviar um pacote antes que
outra estao envie um segundo pacote.

130

Talvez a caracterstica mais importante de FDDI resida em sua capacidade de


detectar e solucionar problemas. A rede considerada auto-reparvel porque o
hardware comporta uma falha automaticamente.
9.2.5.2 Anis duais com rotaes opostas
Para oferecer um recurso de recuperao automtica de falhas, o hardware da
FDDI utiliza dois anis independentes que se conectam a cada computador. A Figura
2.10 ilustra a topologia.

Os anis da FDDI so chamados de rotao oposta (counter rotating) porque o


trfego flui em direes contrrias em cada anel. O motivo para a adoo de um
esquema de rotao oposta ficar mais claro quando analisarmos o modo como a
FDDI soluciona os problemas.
A menos que surja uma falha, o hardware da FDDI no utiliza os dois anis.
Na verdade, uma interface da FDDI comporta-se como qualquer token que passa pela
interface da rede at ocorrer uma falha. A interface examina todos os pacotes que
circulam pelo anel e compara o endereo de destino de cada pacote com o endereo
do computador. A interface guarda uma cpia de todos os pacotes destinados ao
computador local, mas tambm os transmite ao redor do anel.
Quando um computador tiver que transmitir um pacote, ele dever esperar a
chegada do token, cessar temporariamente a transmisso de bits e enviar o pacote.
Aps o envio de um pacote, a interface transmite o token e reinicia a transmisso de
bits. Se uma estao tiver mais de um pacote espera para ser enviado quando receber
o token, um pacote somente ser enviado antes de passar o token. Assim, o esquema
de tokens assegura a todas as estaes um acesso igual rede.
O hardware da FDDI torna-se mais interessante quando ocorre uma falha de
hardware. Quando a interface percebe que no pode comunicar-se com o computador
ao lado, o anel de garantia utilizado para contornar a falha. A Figura 2.11, por
exemplo, ilustra um anel da FDDI com uma falha e as duas interfaces prximas que
eliminaram a falha do anel.

131

A finalidade do segundo anel e a razo pela qual as informaes fluem em direes


opostas so explicadas agora: a falha talvez seja decorrente da desconexo da fibra (p.
ex., um corte acidental). Se as fibras de ambos os anis seguirem o mesmo percurso
fsico, muito provvel que a segunda fibra tambm seja desconectada. O hardware
da FDDI automaticamente utiliza o anel de rotao oposta para formar o crculo
fechado na direo em que ele ainda est operando. Com isso, os outros computadores
podem continuar se comunicando, mesmo com a ocorrncia da falha.
Quando o hardware da FDDI detecta uma falha na rede, automaticamente
repassa as informaes para o anel de garantia, para que as outras estaes
possam continuar se comunicando.
9.2.5.3 O formato do quadro da FDDI
Os padres da FDDI especificam o formato dos quadros utilizados na rede. A
tabela a seguir enumera os campos em um quadro da FDDI.

132

Assim como ocorre em outras tecnologias, cada computador conectado a uma


rede FDDI possui um endereo de destino, e cada quadro contm um campo para esse
endereo. Entretanto, para tornar a FDDI ainda mais flexvel e para oferecer um modo
padro para a conexo de dois anis da FDDI entre si, foi projetado mais de um
formato de quadro. O campo para o endereo de destino, por exemplo, possui de
quatro a 12 smbolos, e cada smbolo uma unidade de quatro bits. O quadro tambm
possui um campo pequeno utilizado para o roteamento. O transmissor pode usar o
campo de roteamento para especificar que um quadro deve ser transmitido primeiro
para um ponto de conexo, e depois para um destino em um anel conectado.
Uma das vantagens da FDDI reside no amplo tamanho de seu quadro. J que
um quadro pode conter 9000 smbolos de quatro bits, o quadro total contm at 4500
octetos de extenso. Em virtude de a informao do cabealho ocupar no mximo
algumas centenas de octetos, um nico quadro pode transportar 4Kb de octetos de
informaes do usurio. Para as aplicaes que transportam grandes quantidades de
informaes (p. ex., transferncia de arquivos), um quadro amplo significa uma
sobrecarga menor e, conseqentemente, um throughput elevado.
9.2.6 ATM (Asynchronous Transfer Mode)
O ATM (Asynchronous Transfer Mode) o nome dado a uma tecnologia de
rede de alta velocidade, baseada em conexo, que vem sendo usada tanto nas redes
que operam em pequenas como em grandes reas geogrficas. Pelos padres
correntes, as redes de alta velocidade so aquelas que operam a uma velocidade de, no
mnimo, 100 Mbps; o ATM pode intercambiar informaes com velocidades de at
gigabit/segundo. claro que para se obter velocidades to altas necessrio um
equipamento complexo de ltima gerao. Conseqentemente, as redes ATM
possuem um custo mais alto do que as demais tecnologias.

133

Para alcanar altas velocidades de transferncia, uma rede ATM utiliza


tcnicas de hardware e software especiais. Em primeiro lugar, uma rede ATM
formada por um ou mais comutadores de alta velocidade que so conectados aos
computadores host e a outros comutadores ATM. Em segundo lugar, o ATM utiliza
fibras ticas para fazer conexes, inclusive conexes entre um computador host e um
comutador ATM. As fibras ticas possuem uma velocidade de transferncia maior do
que a dos fios de cobre; normalmente, a conexo entre um host e um comutador ATM
opera a uma velocidade de 100 ou 155 Mbps. E, em terceiro, as camadas mais baixas
de uma rede ATM utilizam quadros de tamanhos fixos chamados clulas. Como as
clulas possuem exatamente o mesmo tamanho, o hardware do comutador ATM pode
process-las rapidamente.

9.2.6.1 O tamanho da clula do ATM


Por incrvel que parea, cada clula do ATM possui somente 53 octetos. A
clula possui cinco octetos de cabealho, seguidos por 48 octetos de informao. Os
captulos posteriores mostraro que ao utilizar uma tecnologia ATM para enviar um
trfego IP, o tamanho de 53 octetos irrelevante uma rede ATM recebe e transmite
pacotes muito maiores.
9.2.6.2 Rede baseada em conexo
A rede ATM difere das redes de comutao de pacotes porque oferece um
servio em conexo. Antes de um computador host conectado a um ATM enviar
clulas, ele deve primeiramente interagir com o comutador para especificar o
endereo do destinatrio. A interao anloga a uma ligao telefnica. O host
especifica o endereo do computador remoto e espera o comutador ATM entrar em
contato com o sistema remoto e estabelecer um caminho (rota fixa). Se o computador
remoto no aceitar o pedido, no responder ou se o comutador ATM no puder
alcanar o computador remoto, o pedido para estabelecer a comunicao falha.
Quando uma conexo feita, o comutador ATM local escolhe um
identificador da conexo e passa-o para o host, juntamente com uma mensagem
informando o sucesso da conexo. O host utiliza o identificador da conexo ao enviar
ou receber clulas.
Ao terminar uma conexo, o host comunica-se novamente com o comutador
ATM para que a conexo seja desfeita. O comutador desconecta os dois
computadores. A desconexo equivale a tirar um telefone do gancho no final de uma
ligao telefnica; aps a desconexo, o comutador pode novamente utilizar o
identificador da conexo.

134

Captulo

10
Camada de Rede
A camada de rede se ocupa de levar pacotes desde a origem por todo o caminho
at o destino. Chegar ao destino pode exigir muitos saltos em ns intermedirios ao
longo do percurso. Essa funo contrasta nitidamente com a da camada de enlace de
dados, que tem o objetivo mais modesto de simplesmente mover quadros de uma
extremidade para outra de um fio. Portanto, a camada de rede a camada mais baixa
que lida com transmisso fim a fim.
Para alcanar seus objetivos, a camada de rede deve conhecer a topologia da subrede de comunicaes e escolher caminhos apropriados atravs dela. Tambm deve
cuidar de escolher rotas que evitem a sobrecarga de algumas linhas de comunicao
enquanto outras ficam ociosas. Finalmente, quando a origem e o destino esto em
redes diferentes, tarefa da camada de rede lidar com essas diferenas e solucionar os
problemas que resultam do fato.

10.1 Temas de Projeto da Camada de Rede


Nesta seo forneceremos uma introduo a alguns dos temas com que devem
se envolver os projetistas da camada de rede. Esses temas incluem o servio fornecido
camada de transporte, o roteamento de pacotes atravs da sub-rede, controle de
congestionamento e a conexo de mltiplas redes (interconexo de redes).
Examinaremos os trs ltimos assuntos com maiores detalhes, mais adiante, neste
captulo.

10.1.1 Servios Fornecidos Camada de Transporte


A camada de rede fornece servios camada de transporte. Como em algumas
redes (p.ex, as redes ARPANET X.25), a camada de rede funciona nos IMPs e a
camada de transporte nos hosts, a fronteira entre as camadas de rede e de transporte
nessas redes tambm a fronteira entre a sub-rede e os hosts. Isso significa que os
servios fornecidos pela camada de rede definem os servios proporcionados pela
sub-rede.
Quando a sub-rede executada por uma concessionria comum ou PTT e os
hosts pertencem aos usurios, o servio da camada de rede se torna a interface entre a
concessionria e os usurios. Dessa forma, ela define os direitos e responsabilidades
da concessionria, e por esse motivo de grande importncia tanto para a
concessionria como para os usurios. Como se poderia esperar sob essas
circunstncias, tem havido grande discusso e controvrsia em relao aos servios
que devem ser oferecidos. Vamos examinar brevemente essa controvrsia.
Os servios da camada de rede foram projetados tendo em vista os seguintes
objetivos:
135

1. Os servios devem ser independentes da tecnologia da sub-rede.


2. A camada de transporte deve estar isolada do nmero, tipo e topologia das
sub-redes presentes.
3. Os endereos da rede que se tornam disponveis para a camada de transporte
devem usar um plano de numerao uniforme, mesmo atravs de lance e
WANs.
Dados esses objetivos, os projetistas da camada de rede tiveram bastante
liberdade para escrever especificaes detalhadas dos servios a serem oferecidos
camada de transporte. Essa liberdade rapidamente degenerou em uma violenta batalha
entre duas faces opostas. O ponto central da discusso era a dvida se a camada de
rede deveria fornecer servio baseado em conexes ou servio sem conexes.
Esse mesmo tema ocorre na camada de enlace de dados, como vimos no
captulo anterior, mas no to srio naquele caso. A definio do LLC fornece
ambos, e como as LANs so sempre de propriedade dos usurios e operadas por eles,
os usurios podem utilizar o que preferirem. Com a camada de rede, a situao
diferente. Se a concessionria s oferece um tipo de servio e os usurios desejam o
outro, em geral no existe nenhuma alternativa.
Um grupo (representado pela comunidade Internet ARPA) argumenta que o
trabalho da sub-rede mover bits de um lado para outro e nada mais. No seu ponto de
vista (baseado em praticamente 20 anos de experincia real com uma rede em
funcionamento), a sub-rede inerentemente no-confivel, no importa como
projetada. Por conseguinte os hosts devem aceitar o fato de que ela no-confivel e
fazer eles mesmos o controle de erros (i.e, a deteco e deteco de erros) e o controle
de fluxo.
Esse ponto de vista conduz rapidamente concluso de que o servio da rede
deve ser sem conexes, com primitivas ENVIAR PACOTE e RECEBER PACOTE. Em
particular, nenhum controle de fluxo e verificao de erros deve ser feito, porque os
hosts vo fazer isso de qualquer forma, e h provavelmente pouca vantagem em fazlo duas vezes. Alm disso, cada pacote tem de transportar o endereo de destino
completo, porque cada pacote enviado expedido independentemente dos seus
predecessores, se houver.
O outro grupo (representado pelas concessionrias) argumenta que cada
camada de rede (e a sub-rede) deve fornecer um servio confivel, baseado em
conexes que tm as seguintes propriedades:
1. Antes de enviar dados, a entidade de transporte de origem deve configurar
uma conexo para a entidade de transporte de destino. Essa conexo, que
recebe um identificador especial, ento utilizada at que no existam mais
dados a enviar, e ao fim desse tempo a conexo explicitamente liberada.
2. Quando uma conexo definida, as duas entidades de transporte e a camada
de rede que fornece o servio podem entrar em uma negociao sobre os
parmetros do servio e sobre a qualidade e o custo do servio a ser fornecido.
3. A comunicao se d em ambos os sentidos, e os pacotes so entregues em
seqncia, sem erros. O modelo conceitual por trs disso uma fila bemcomportada com a propriedade de primeiro a entrar, primeiro a sair.
4. O fluxo de controle fornecido automaticamente, para evitar que um
transmissor rpido despeje pacotes na fila a uma velocidade maior do que
aquela em que o receptor podem tir-los de l, o que levaria a um estouro.

136

Outras propriedades, tais como uma confirmao explcita de entrega e pacotes


de alta prioridade, so opcionais.
Uma analogia entre o servio baseado em conexes e o servio sem conexes
pode esclarecer a situao. A rede telefnica pblica oferece um servio baseado em
conexes. Primeiro, o cliente disca um nmero para estabelecer uma conexo. Depois,
as partes conversam (trocam dados). Finalmente, a conexo desfeita. Embora o que
acontece no interior do sistema telefnico seja sem dvida muito complicado, os dois
usurios so presenteados com a iluso de um canal dedicado ponto a ponto que
sempre entrega as informaes na ordem em que so enviadas.
Em contraste, o sistema postal (ou sistema telegrfico) sem conexes. Cada
carta leva o endereo completo do destino e transportada independentemente de
todas as outras cartas. As cartas no chegam necessariamente na ordem em que foram
postadas. Se um carteiro perde acidentalmente uma carta, o correio no se interrompe
para enviar uma duplicata. Em resumo, o controle de erros e o controle de fluxo so
tratados pelos prprios usurios, fora do sistema postal (sub-rede). A Figura 5-1
resume as diferenas entre o servio baseado em conexes e o servio sem conexes.
A argumentao sobre servios baseados em conexes e sem conexes
envolve realmente a questo de onde inserir a complexidade. No servio baseado em
conexes, ela est na camada de rede (sub-rede); no servio sem conexes ela est na
camada e transporte (hosts). Os partidrios do servio sem conexes dizem que a
capacidade de computao do usurio est se tornando barata, e assim no h razo
para inserir a complexidade nos hosts (freqentemente em chip de co-processador
especial de rede). Alm disso, argumenta-se que a sub-rede um investimento
nacional importante que ir subsistir por dcadas, de modo que no deve ser
atravancado com recursos que podem se tornar rapidamente obsoletos, mas tero de
ser calculados na estrutura de preos por muitos anos. Ademais, algumas aplicaes,
tais como voz digitalizada e a coleta de dados em tempo real, podem considerar a
entrega veloz como muito mais importante do que a entrega precisa.
Por outro lado, os defensores do servio baseado em conexes dizem que a maior
parte dos usurios no est interessada em executar complexos protocolos da camada
de transporte em suas mquinas. O que eles querem um servio confivel e livre de
problemas, e esse servio pode ser mais bem suprido com conexes.Finalmente,
existe o problema real da credibilidade. Se os usurios no esto dando crdito os
reclames da concessionria de que a sub-rede s perde um pacote uma vez em cada
lua cheia, eles iro implementar toda a verificao de erros de qualquer forma na
camada de transporte para se protegerem. Entretanto, se um nmero suficiente de
pessoas fizer isso, torna-se um desperdcio gastar um bocado de esforo e dinheiro na
camada de rede para conseguir

Tema
Endereo de destino
Seqncia de pacotes
Controle de erros
Controle de fluxo

Baseados em conexo
Necessrio apenas durante
a configurao
Garantido
Feito pela camada de rede
(p. ex, sub-rede).
Fornecido pela camada de
rede

Sem conexo
Necessrio em cada pacote
No garantido
Feito pela camada de
transporte (p. ex, hosts).
No fornecido pela camada
de rede
137

possvel negociao de Sim


opes?
So usados identificadores Sim
de conexes?

No
No

Figura 10-1 Resumo das principais diferenas entre o servio baseado em conexes e o
servio sem conexes

alta confiabilidade. A sub-rede poderia simplesmente fornecer um servio barato e


simples sem conexes e dizer aos usurios para fazer todo o servio, visto que muitos
deles vo faze-lo de qualquer maneira, no importa o que a concessionria lhes diga.
Para encurtar a histria, os defensores do servio baseado em conexes
superaram em nmero os defensores do servio sem conexes no comit que escreveu
a definio do servio da camada de rede, e assim o servio de rede OSI foi
originalmente um servio baseado em conexes. (Foi dito que os PTTs preferiam o
servio baseado em conexes porque no poderiam cobrar pelo tempo de conexo se
no houvesse conexo). Contudo, as pessoas favorveis ao servio sem conexes
mantiveram um lobby pela causa e a ISSO modificou posteriormente a definio do
servio para incluir as duas classes de servios. Ambos os tipos so agora permitidos,
e os protocolos para suporte a eles foram incorporados estrutura do modelo OSI.
A camada de rede no o nico campo de batalha entre os dois grupos. Os
mesmos temas surgem em todas as camadas. A luta foi finalmente resolvida em
definitivo por uma reviso no modelo OSI de modo a permitir que os dois tipos de
servios sejam oferecidos da em diante. Na figura 5-2, vemos como os dois tipos de
servio se relacionam um com o outro. Na parte superior de cada camada (exceto na
camada de aplicao) esto os PASs (pontos de acesso ao servio), atravs dos quais a
camada acima acessa os servios. Cada PAS tem um endereo nico que o identifica.
A partir da camada de enlace de dados, esses servios podem ser baseados em
conexes ou sem conexes (o tema discutvel na camada fsica visto que o controle
de erros e o controle de fluxo no so relevantes nessa camada).
Dois caminhos bvios so o servio completamente baseado em conexes de
cima para baixo e o servio sem conexes. Entretanto, tambm possvel o servio
baseado em conexes fornecido pelas camadas de rede ou de transporte mesmo que as
camadas inferiores sejam sem conexes. Nesse caso, as camadas de rede ou de
transporte devem tratar a converso. Por exemplo, um servio de transporte baseado
em conexes poderia ser construdo em uma LAN com um servio de enlace de dados
sem conexes colocando-se o controle de erros, o controle de fluxo e funcionalidades
relacionadas na camada de rede ou na camada de transporte.

138

Figura 10-2 Misturas de servios baseados em conexes e servios sem conexes no modelo
OSI

O mecanismo inverso, implementando um servio sem conexes para as


camadas superiores na parte alta de um servio baseado em conexes tambm
possvel. Embora isso parea desperdcio, poderia ser til na conexo de duas LANS
completamente sem conexes com uma WAN que oferece somente o servio de rede
baseado em conexes. Em qualquer evento, a converso entre os dois tipos de servio
pode ser feita pela camada de rede ou pela de transporte, mas no em camadas mais
altas.

As Primitivas de Servio da Rede OSI


O Padro Internacional 8348 define o servio de rede pela especificao das
primitivas que se aplicam fronteira entre a camada de rede e a camada de transporte.
So fornecidas tanto as primitivas baseadas em conexes quanto as sem conexes.
As primitivas baseadas em conexes utilizam o modelo da Figura 5-3. Nesse modelo,
uma conexo um par de filas conceituais entre dois PASRs (endereos de rede), uma
fila para o trfego em cada sentido. Antes de estabelecer uma conexo, temos a
situao da Figura 5-3(a). Depois de um estabelecimento bem-sucedido, temos a
situao da Figura 5-3(b). Finalmente, depois que trs pacotes so enviados, o estado
das conexes poderia ser semelhante Figura 5-3(c).

139

Figura 10-3 (A) Antes de estabelecer uma conexo (B) Depois de estabelecer uma conexo
(C) Depois que dois pacotes so enviados, mas ainda no recebidos.

As primitivas de servio de rede baseada em conexes do modelo OSI esto


listadas na Figura 5-4(a). Elas podem ser agrupadas em quatro categorias, para
estabelecer, liberar usar e reinicializar conexes, respectivamente. A maior parte das
primitivas tem parmetros. A maneira exata como os parmetros so passados para as
primitivas dependente da implementao. O efeito de cada primitiva pode ser
descrito pelo modo como ela altera o estado das filas da Figura 5-3.
A primitiva N_CONNECT.pedido, usada para estabelecer uma conexo,
especifica o endereo de rede conectar e o endereo de rede do chamador. E tambm
contm duas variveis booleanas usadas para solicitar a confirmao de cada pacote
enviado. Se a camada de rede no fornecer confirmaes a varivel fixada em falso
quando entregue ao destino da primitiva N-CONNECT.indicao. Se a camada de
rede fornece confirmaes mais o destino no deseja usa-las, ento ele fixa o flag em
falso na sua N-CONNECT.resposta. Somente se as duas entidades de transporte e o
fornecedor do servio de rede quiserem usa-las elas so utilizadas. Esse recurso um
exemplo de negociao de opes.
O flag exp_procurados um segundo exemplo de negociao de opes. Se
aceito pelas trs partes, permite o uso de dados expressos, essencialmente pacotes que
podem violar a ordenao normal da fila saltar para o incio dela. O fato de fazerem
realmente isso ou no, dependente da implementao. Um exemplo tpico de dados
expressos um usurio em um terminal pressionando a tecla DEL para interromper
um programa em execuo. O pacote DEL ir como dados expressos.
O parmetro qds formado na realidade de duas listas de valores que
determinam a qualidade do servio fornecido pela conexo. A primeira lista determina
o objetivo-o que o chamador deseja realmente. A segunda lista determina os valores
mnimos considerados aceitveis. Se o servio de rede incapaz de fornecer pelo
menos o valor mnimo de qualquer parmetro especificado pelo chamador (parte que
faz a chamada) ou pelo chamado (parte que recebe a chamada), o estabelecimento da

140

conexo falha. Os valores que podem ser especificados incluem throughput, retardo,
taxa de erros, sigilo e custo, entre outros.
N-CONNECT.pedido
(chamado,
chamador,
confs_procuradas,
gds,
dados_do_usurio).
N-CONNECT.indicao
(chamado,
chamador,
confs_procuradas,
gds,
dados_do_usurio).
N-CONNECT.resposta (respondedor, confs_procuradas, gds, dados_do_usurio).
N-CONNECT.confirmao (respondedor, confs_procuradas, gds, dados_do_usurio).
N-DISCONNECT.pedido
(originador,
motivo,
dados_do_usurio,
endereo_de_resposta).
N-DISCONNECT.indicao
(originador,
motivo,
dados_do_usurio,
endereo_de_resposta).
N-DATA.pedido (dados_do_usurio)
N-DATA.indicao (dados_do_usurio)
N-DATA.ACKNOWLEDGE.pedido ()
N-DATA.ACKNOWLEDGE.indicao ()
N-EXPEDITED-DATA.pedido (dados_do_usurio)
N-EXPEDITED-DATA.indicao (dados_do_usurio)
N-RESET.pedido (originador, motivo).
N-RESET.indicao (originador, motivo).
N-RESET.resposta ()
N-RESET.confirmao ()
(a)
N-UNITDATA.pedido
(endereo_de_origem,
endereo_de_destino,
dados_do_usurio).
N-UNITDATA.indicao
(endereo_de_origem,
endereo_de_destino,
dados_do_usurio).
N-FACILITY.pedido (qds)
N-FACILITY.indicao (endereo_de_destino, qds, motivo).
N-REPORT.indicao (endereo_de_destino, qds, motivo).

qds,
qds,

(b)
Figura 10-4 (a) Primitivas de servio da rede baseada em conexes OSI (b) Primitivas de
servio da rede sem conexes OSI

Notas sobre a terminologia:


Chamado: Endereo da rede (PASR) a ser chamado
Chamador: Endereo da rede (PASR) usado pela entidade de transporte que
chama
Confs_procuradas: Flag booleano e especificando se confirmaes so
desejadas
Exp_procurados: Flag booleano especificando se os dados expedidos sero
enviados
Qds: Qualidade do servio desejado

141

Dados_do_usurio: 0 ou mais bytes de dados transmitidos mas no


examinados
Respondedor: Endereo da rede (PASR) conectado ao destino
Originador: Especificao da razo para que o evento tenha acontecido
O chamador pode incluir alguns dados do usurio no pedido de conexo. O
chamado pode inspecionar esses dados antes de decidir se aceita ou rejeita o pedido.
Os pedidos de conexes so aceitos com a primitiva N-CONNECT.resposta e
rejeitados com a primitiva N-DISCONNECT.pedido. Quando um pedido rejeitado, o
campo motivo permite que o chamado informe por que no aceitou a conexo e se a
condio permanente ou transitria. A prpria camada de rede tambm pode rejeitar
tentativas de estabelecer conexes, por exemplo, se a qualidade do servio desejado
no estiver disponvel (condio permanente) ou a sub-rede estiver sobrecarregada
atualmente (condio transiente).
As primitivas N-CONNECT restantes e as primitivas N-DISCONNECT so
objetivas e necessitam de poucos comentrios adicionais. Depois que uma conexo
estabelecida, qualquer das partes pode transmitir dados usando N-DATA.pedido.
Quando esses pacotes chegam, uma primitiva N-DATA.indicao invocada na
extremidade de recepo. Os dados expressos usam primitivas anlogas a essas
ltimas para dados regulares.
Se as confirmaes tiverem sido admitidas, quando um pacote recebido,
espera-se que o recipiente emita uma N-DATA-ACKNOWLEDGE.pedido. Essa
primitiva no contm qualquer nmero de seqncia, e assim a parte que envia os
dados originais deve simplesmente contar confirmaes. Se a qualidade do servio
baixa e os dados e confirmaes podem ser perdidos, esse esquema no muito
satisfatrio. Por outro lado, no tarefa da camada de rede fornecer um servio isento
de erros; esse trabalho realizado pela camada de transporte. As confirmaes da
camada de rede so meramente uma tentativa de melhorar a qualidade do servio, e
no de torna-lo perfeito.
As primitivas N_RESET so usadas para relatar catstrofes, tais como quedas
de qualquer entidade de transporte ou do prprio fornecedor do servio de rede.
Depois que uma N-RESET pedida, indicada, respondida e confirmada, as filas
devero ao seu estado original vazio. Os dados presentes nas filas no momento do NRESET so perdidos. Novamente nesse caso, trabalho da camada de transporte
recuperar-se de N-RESETs.
As primitivas OSI sem conexes so dadas na Figura 5-4(b). As primitivas NUNITDATA so usadas para enviar at 64.512 bytes de dados (1k menor que 216, para
proporcionar bastante espao para diversos cabealhos e ainda manter a unidade final
menor que 216 bytes). As primitivas N-UNITDATA no fornecem nenhum controle de
erros, nenhum controle de fluxo e nenhum outro controle. O transmissor apenas
descarrega o pacote na sub-rede e espera pelo melhor.
A primitiva N-FACILITY.pedido projetada de modo a permitir que um
usurio de servio de rede pergunte sobre caractersticas mdias de entrega ao destino
especificado, tais como a porcentagem de pacotes que esto sendo entregues. A

142

primitiva N-FACILITY.indicao vem da prpria camada de rede, no de uma


entidade de transporte remota.A primitiva N-REPORT.indicao permite camada de
rede relatar problemas ao usurio de servio de rede. Por exemplo, se um determinado
destino est disponvel, esse fato poderia ser relatado com essa primitiva. Os detalhes
de como a primitiva usada so dependentes da rede e no definidos no padro.
Uma das funes da camada de rede proporcionar uma nomenclatura
uniforme para uso da camada de transporte. No caso ideal, todos os operadores da
rede pelo mundo deveriam se juntar e concordar sobre um espao de nomes nico, de
modo que cada fio que se estendesse a partir de uma sub-rede em um escritrio ou lar
teria um endereo nico em nvel mundial. Infelizmente, isso est longe de acontecer.
Para fazer o melhor uso possvel da situao existente, o endereamento da
camada de rede do modelo OSI foi projetado para incorporar a diversidade de
endereamento de rede de hoje em dia. Todas as primitivas de servio da rede
utilizam endereos PASR para identificar a origem e o destino. O formato desses
endereos PASR mostrado na Figura 5-5. Cada endereo PASR tem trs campos. O
primeiro o campo IAF (Identificador de Autoridade e Formato), que identifica o tipo
de endereo presente no terceiro campo, o PED (Parte Especfica do Domnio). Os
cdigos foram alocados a fim de permitir que o campo PED contenha endereos de
pacotes da rede, nmeros de telefones, nmeros ISDN, nmeros de telex e esquemas
de numerao similares existentes, tanto em binrio como em decimal compactado. O
campo IAF pode conter valores de 10 at 99, deixando grande quantidade de espao
para planos de numerao futuros.

Figura 10-5 O formato dos endereos da rede OSI (PASRs)

O segundo, ou campo IDI (Identificador do domnio inicial), especifica o


domnio ao qual pertence o nmero na parte PED. Por exemplo, se o PED um
nmero de telefone, o IDI poderia ser o cdigo do pas para esse nmero. O endereo
PASR tem comprimento variado, de at 40 dgitos decimais ou 20 bytes de extenso.
A fim de compreender para que servem os endereos PASR, pode ser til fazer
uma analogia ou com o sistema telefnico. A maioria dos escritrios e lares modernos
so equipados com uma ou mais tomadas s quais os telefones podem ser conectados.
Cada tomada tem um fio que se estende at uma central de comutao telefnica (ou
PBX). A essa tomada atribudo em nmero nico em nvel mundial, consistindo em
um cdigo de pas, um de rea e um nmero de assinante.
Sempre que um telefone conectado a uma tomada, esse telefone pode ser
alcanado pela discagem do nmero da tomada. Note que o nmero realmente se
aplica tomada, no ao telefone atualmente conectado a ela.Quando deslocado de
um escritrio para outro, o telefone adquire o nmero do novo escritrio; no leva o
nmero antigo com ele. Portanto, as tomadas do ao sistema telefnico um espao de

143

nomes uniforme, independente de qual telefone em particular possa estar conectado


no momento, ou de qual pessoa estar respondendo quando ele tocar.
Nessa analogia, as tomadas telefnicas so os PASRs e os nmeros de
telefones so os endereos PASR. Quando uma entidade de transporte pede rede que
faa uma chamada para uma mquina remota, ela especifica o endereo PASR (i.e., o
nmero do telefone) a ser chamado. A camada de rede no cuida de qual entidade de
transporte (i.e., telefone) est atualmente associada (conectada) a esse PASR, e
certamente no sabe a que usurio pertence a entidade de transporte (i.e., que pessoa
ir responder ao telefone). O modo como as entidades de transporte se conectam aos
PASRs um assunto da camada de transporte, e no da camada de rede.
10.1.2 Organizao Interna da Camada de Rede
Tendo examinado as duas classes de servios que a camada de rede pode
fornecer aos seus usurios, hora de ver o seu funcionamento interno. Infelizmente, o
modelo OSI no fornece uma especificao dos algoritmos bsicos, tais como o
roteamento e o controle do congestionamento. Estes so dependentes da
implementao. Apesar disso, eles so importantes, e definitivamente vale a pena
estuda-los em detalhes.
Como uma conseqncia, este captulo ir abordar muitos temas de projetos de
sub-redes que no so estritamente parte da camada de rede, embora estejam
relacionados com ela. Tambm discutiremos, onde for apropriado, a camada de rede
do OSI. Para tornar claro onde estaremos discutindo o projeto de sub-redes (em
oposio ao OSI), usaremos os termos de sub-redes IMP e host em lugar de
camada de rede e camada de transporte, embora os ltimos sejam equivalentes em
algumas redes.
Existem basicamente duas filosofias diferentes para organizao da sub-rede, uma
usando conexes e a outra funcionando sem conexes.
No contexto da operao interna da sub-rede, uma conexo usualmente chamada
de circuito virtual, em analogia aos circuitos fsicos estabelecidos pelo sistema telefnico.
Os pacotes independentes da organizao sem conexes so chamados datagramas, em
analogia aos telegramas.
Os circuitos virtuais so usados geralmente em sub-redes cujo servio principal
baseado em conexes, e assim os descreveremos nesse contexto. A idia bsica dos
circuitos virtuais evitar que se tenha de tomar decises sobre roteamento para cada pacote
enviado. Em vez disso, quando uma conexo estabelecida, escolhe-se uma rota desde a
mquina de origem at a de destino, como parte da definio da conexo. Essa rota usada
para todo o trfego que flui pela conexo, exatamente da mesma forma como funciona o
sistema telefnico. Quando a conexo desfeita, o circuito virtual descartado.
Em contraposio, com uma sub-rede de datagramas nenhuma rota estabelecida
antecipadamente, mesmo que o servio seja baseado em conexes. Cada pacote enviado
roteado independentemente dos seus predecessores. Pacotes sucessivos podem seguir
diferentes rotas. Embora tenham de realizar mais trabalho, as sub-redes de datagramas so
tambm mais resistentes e se adaptam a falhas e congestionamentos com mais facilidade do
que as sub-redes de circuitos virtuais. Discutiremos mais adiante os prs e os contras das
duas abordagens. Se os pacotes que fluem por um determinado circuito virtual usarem
sempre a mesma rota atravs da sub-rede, cada IMP deve lembrar para onde seguem os
pacotes de cada um dos circuitos virtuais atualmente abertos que passam atravs dele.

144

Todos os IMPs devem manter uma tabela com uma entrada para cada circuito virtual
aberto. Evidentemente, os circuitos virtuais que no passam atravs do IMP X no tm
entradas na tabela de X. Cada pacote que viaja atravs da sub-rede deve conter em seu
cabealho um campo de nmero de circuito virtual, alm dos nmeros de seqncia, somas
de verificao e outros. Quando um pacote chega a um IMP, o IMP sabe sobre qual linha
ele chegou e qual o nmero do circuito virtual. Baseado apenas nessas informaes, o
pacote tem de ser direcionado para o IMP correto.
Quando uma conexo de rede definida, um nmero de circuito virtual que ainda
no esteja em uso nessa mquina escolhido como identificador da conexo. Como cada
mquina escolhe independentemente os nmeros de circuitos virtuais, o mesmo nmero de
circuito virtual tem probabilidade de estar em uso em dois diferentes caminhos atravs de
algum IMP intermedirio levando a ambigidades.
Considere a sub-rede da Figura 5-6(a). Suponha que um processo no host de A
deseja se comunicar com um processo no host de D. A escolhe o circuito virtual 0.
Vamos imaginar que seja escolhida a rota ABCD. Simultaneamente, um processo em
B decide que deseja se comunicar com um processo em D (no o mesmo que o
processo de A escolheu). Se no houver nenhum circuito virtual aberto comeando em
B nesse ponto, o host B tambm escolher o circuito virtual 0. Suponha ainda que a
rota BCD seja selecionada como a melhor. Depois que ambos os circuitos virtuais
foram definidos, o processo em A envia sua primeira mensagem para D, no circuito
virtual 0. Quando o pacote chega a D, o host no sabe qual processo do usurio lhe
deu o pacote.

145

Figura 10-6 (a) Sub-rede de exemplo (b) Oito circuitos virtuais atravs da sub-rede
(c) Tabelas do IMP para os circuitos virtuais em (b) (d) As mudanas no circuito
virtual como uma progresso de pacote
Para solucionar esse problema, sempre que deseja criar um novo circuito virtual de
sada, o host escolhe o nmero de circuito mais baixo que no esteja em uso no momento.
O IMP (digamos X) no dirige esse pacote definido para o IMP seguinte (digamos Y) ao
longo da rota em que est. Em vez disso, X verifica em sua tabela todos os nmeros de
circuitos que esto sendo usados atualmente para o trfego que chega a Y. Depois, escolhe
o numero livre mais baixo e substitui o nmero que est no pacote por esse nmero,
sobrescrevendo o nmero escolhido pelo host. De modo semelhante, o IMP Y escolhe o
nmero de circuito mais baixo que esteja livre entre ele e o IMP seguinte.
Quando esse pacote de configurao chega finalmente ao destino, o IMP de l
escolhe o nmero de circuito de entrada mais baixo disponvel, sobrescreve o nmero de
circuito encontrado no pacote e passa o pacote para o host. Dessa forma, o host de destino
sempre v o mesmo nmero de circuito em todo o trfego que chega por um determinado
circuito virtual, no importando se o host de origem est usando coerentemente um nmero
diferente.

146

A Figura 5-6(b) mostra oito exemplos de circuitos virtuais pertinentes a sub-rede da


parte (a). A parte (c) da figura mostra as tabelas dos IMPs, supondo que os circuitos foram
criados na ordem: ABCD, BCD, AEFD, BAE, ABFD, BF, AEC e AECDFB. O ltimo
circuito (AECDFB) pode parecer um pouco cheio de rodeios, mas, se as linhas AB, BC e
EF fossem muito sobrecarregadas quando o algoritmo de roteamento fosse executado, essa
poderia muito bem ser a melhor opo.
Cada entrada consiste em uma parte de entrada e uma de sada. Cada uma das duas
partes tem um nome de IMP (usado para indicar uma linha) e um nmero de circuito
virtual. Quando chega um pacote, a tabela examinada na parte esquerda (de chegada),
usando a linha de chegada e o nmero de circuito virtual encontrado no pacote como chave.
Quando encontrada uma coincidncia, a parte de sada naquela posio da tabela informa
em que nmero de circuito virtual deve ser inserido o pacote e para qual IMP ele deve ser
enviado. H representa host, tanto no lado de entrada quanto no de sada.
Como exemplo, considere um pacote viajando do host A para o host B sobre o
circuito virtual (i.e., rota AECDFB). Quando o IMP A recebe um pacote do seu
prprio host, com o circuito 4, ele pesquisa em sua tabela, encontrando uma
correspondncia para H 4 na entrada 5 (a entrada superior 0). A parte de sada dessa
entrada E 3, o que significa substituir o circuito 4 pelo circuito 3 e envi-lo para o IMP E.
Ento, o IMP E recebe um pacote de A com o circuito 3 e assim procura por A 3 e encontra
uma correspondncia com a terceira entrada. Agora o pacote vai para C com o circuito 1. A
seqncia de entradas usadas est assinalada pela linha em negrito. A Figura 5-6(d) mostra
essa seqncia de nmeros do pacote.
Pelo fato de que os circuitos virtuais podem ser inicializados a partir de qualquer
extremidade, ocorre um problema quando definies de chamadas esto se propagando em
ambos os sentidos a um s tempo ao longo de uma cadeia de IMPS. Em algum ponto eles
chegariam a IMPs adjacentes. Cada IMP tem de extrair agora um nmero de circuito virtual
para usar no circuito (full-duplex) que ele est tentando estabelecer. Se foram programados
para escolher um nmero mais baixo que ainda no esteja em uso no elo, eles usaro o
mesmo nmero, fazendo com que dois circuitos virtuais no relacionados sobre a mesma
linha fsica tenham o mesmo nmero. Quando um pacote de dados chegar mais tarde, o
IMP de recepo no tem meios para dizer se ele um pacote no sentido direto em um
circuito ou um pacote no sentido inverso em outro. Se os circuitos forem simplex, no
existe nenhuma ambigidade.
Observe que cada processo deve ser obrigado a indicar quando est fazendo uso de
um circuito virtual, de modo que este possa ser purgado das tabelas do IMP, a fim de
recuperar o espao. Nas redes pblicas, a motivao para isso outra: os usurios so
invariavelmente cobrados pelo tempo de conexo, bem como pelos dados transportados.
Isso vale para o uso de circuitos virtuais internos sub-rede. A outra possibilidade usar
datagramas internamente, em cujo caso os IMPS no tm uma tabela com uma entrada para
cada circuito virtual aberto. Em vez disso, eles tm uma tabela informando qual linha de
sada utilizar para cada IMP de destino possvel. Essas tabelas tambm so necessrias
quando os circuitos virtuais so usados internamente, a fim de especificar a rota para um
determinado pacote. Cada datagrama deve conter o endereo completo de destino (a
mquina e o endereo PASR ao qual o processo de destino est associado). Quando um
pacote chega, o IMP procura a linha de sada a usar e o envia atravs desse caminho. Nada
no pacote modificado. Alm disso, o escabelecimento e a liberao das conexes da
camada de rede ou de transporte no requer qualquer trabalho especial da parte dos IMPs.

147

Comparao entre Circuitos Virtuais e Datagramas no Interior da Sub-rede


Tanto os circuitos virtuais quanto os datagramas tm seus defensores e seus
detratores. Tentaremos agora resumir os argumentos de ambas as partes. No interior
da sub-rede, a principal negociao entre circuitos virtuais e datagramas est entre o
espao de memria no IMP e a banda passante. Os circuitos virtuais permitem que os
pacotes contenham nmeros de circuitos em lugar de endereos de destino completos.
Se os pacotes tendem a ser claramente curtos, um endereo de destino completo em
cada pacote pode representar uma quantidade significativa de overhead, e, portanto de
banda passante desperdiada. O uso de circuitos virtuais intermos sub-rede se torna
especialmente atrativo quando muitos dos hosts so realmente terminais interativos,
com apenas uns poucos caracteres por pacote. O preo pago para utilizar internamente
circuitos virtuais o espao da tabela dentro dos IMPS. Dependendo do custo relativo
dos circuitos de comunicao versus memria do IMP, um ou outro pode ser mais
barato.
Para sistemas de processamento de transaes (p.ex., lojas, chamando para
verificar compras com cartes de crdito), o overhead requerido para definir e limpar
um circuito virtual pode diminuir o uso do circuito. Se a parte principal do trfego que
se espera ter desse tipo, o uso de circuitos virtuais no interior da sub-rede faz pouco
sentido. Os circuitos virtuais tambm apresentam um problema de vulnerabilidade. Se
um IMP cair e perder sua memria, mesmo que retome um segundo depois, todos os
circuitos virtuais que passam atravs dele tero de ser abortados. Em contraste, se um
IMP de datagramas cair, somente os usurios cujos pacotes estavam enfileirados no
IMP no momento da queda iro sofrer, e talvez nem mesmo todos eles, dependendo
de j terem sido confirmados ou no. A perda de uma linha de comunicaes fatal
para circuitos virtuais que a utilizam, mas pode ser facilmente compensada se forem
usados datagramas. Os datagramas tambm permitem aos IMPs balancear o trfego
por toda a subrede, visto que as rotas podem ser alteradas no meio de uma conexo.
Vale a pena explicitar que o servio oferecido (baseado em conexes ou sem
conexes) um assunto separado da estrutura da sub-rede (circuito virtual ou
datagrama). Em teoria, todas as quatro combinaes so possveis. Obviamente, uma
implementao em circuito virtual de um servio baseado em conexes e uma
implementao de datagrama para um servio sem conexes so razoveis. A
implementao de conexes usando datagramas tambm faz sentido quando a subrede est tentando fornecer um servio altamente resistente.
A quarta possibilidade, um servio sem conexes sobre uma subrede de
circuito virtual, parece estranha, mas poderia acontecer em uma sub-rede projetada
originalmente para servio baseado em conexes, com o servio sem conexes
aplicado como uma reflexo posterior. Em tal arranjo, a sub-rede poderia ter de
definir, utilizar e liberar um circuito virtual para cada pacote enviado, o que no seria
muito agradvel.
A figura 5-7 resume algumas diferenas entre as sub-redes que usam
internamente datagramas e as que usam circuitos virtuais.
Tema
Definino do Circuito
Obrigatrio

Sub-rede de datagrama

Sub-rede circuito virtual

No possvel
Cada pacote contm os
endereos completos de
origem e destino

Obrigatrio
Cada pacote contm um
nmero certo do circuito
virtual
148

Informaes sobre o
estado
Roteamento

A sub-rede no contm
informaes sobre o
estado
Cada pacote roteado de
forma independente

Efeito de falhas em ns

Nenhum, exceto para


pacotes perdidos durante a
queda

Controle de
congestionamento

Difcil

Cada circuito virtual


estabelecido exige espao
na tabela da sub-rede
A rota escolhida quando
o circuito virutal definido
e todos os pacotes seguem
esta rota
Todos os CVs que
passaram atravs do
equipamento que falhou
esto encerrados
Fcil se buffers em nmero
suficiente podem ser
colocados
antecipadamente para cada
CV definido
Na camada de rede
Servio baseado em
conexes

Na cadama de transporte
Servios baseados em
conexes e servio sem
conexes
Figura 10-7 Comparao entre as sub-redes de datagramas e de circuito virtual. Note
a semelhana com os servios sem conexes da Figura 5-1.

Complexidade
Adequado a

10.1.3 Roteamento
A funo real da camada de rede rotear pacotes desde a mquina de origem
at a mquina de destino. Na maioria das sub-redes, os pacotes iro exigir muitos
saltos para realizar a viagem. A nica exceo notvel o caso das redes de difuso,
mas mesmo aqui o roteamento tem importncia, se a origem e o destino no esto na
mesma rede. Os algoritmos que selecionam as rotas e as estruturas de dados que
utilizam so uma rea importante do projeto da camada de rede. Nesta seo iremos
descrever exatamente o problema. Mais adiante neste captulo, examinaremos em
detalhes muitos dos algoritmos que forem propostos.
O algoritmo de roteamento parte do software da camada de rede responsvel
por decidir sobre que linha de sada um pacote que chega deve ser transmitido. Se a
sub-rede usa internamente datagramas, essa deciso deve ser tomada novamente para
cada pacote de dados que chega. Entretanto, se a sub-rede utiliza internamente
circuitos virtuais, as decises sobre o roteamento so feitas somente quando um
novo circuito virtual est sendo definido. Depois disso, os pacotes de dados seguem
exatamente a rota que foi estabelecida previamente. O ltimo caso chamado s
vezes de roteamento de sesso, porque uma rota permanece em vigor para uma
sesso inteira (por exemplo, uma sesso de registro em um terminal ou uma
transferncia de arquivo).
Independente do fato de as rotas serem escolhidas separadamente para cada
pacote ou apenas quando novas conexes so estabelecidas, h certas propriedades
que so desejveis em um algoritmo de roteamento: correo, simplicidade,
resistncia, estabilidade, equanimidade e favorabilidade. A correo e a
simplicidade dificilmente precisam de comentrios, mas a necessidade de resistncia
pode ser menos bvia a princpio. Uma vez que uma rede importante entra no ar, ela
pode ter a perspectiva de funcionar continuamente durante anos sem falhas totais do
149

sistema. Durante esse perodo haver falhas de hardware e software de todos os


tipos. Hosts, IMPS e linhas iro parar e voltar a funcionar repetidamente, e a
topologia ir se modificar muitas vezes. O algoritmo de roteamento tem de estar
apto a conviver com essas mudanas na topologia e no trfego sem exigir que todos
os jobs em todos os hosts sejam abortados e a rede seja reinicializada toda vez que
algum IMP se quebra.
A estabilidade tambm um objetivo importante para o algoritmo de
roteamento. Existem algoritmos de roteamento que nunca convergem para o
equilbrio, no importa por quando tempo funcionem. A equanimidade e a
favorabilidade podem soar como caractersticas bvias-seguramente ningum se
oporia a elas, mas, da forma como se apresentam, elas so em geral objetivos
contraditrios. Como um exemplo simples desse conflito, veja a Figura 5-8.
Suponha que exista bastante trfego entre A e A', entre B e B' e entre C e C' para
saturar os enlaces horizontais. A fim de maximizar o fluxo total, o trfego de X para
X' seria completamente interrompido. Infelizmente, X e X' podem no ver isso dessa
maneira. Evidentemente, necessrio algum compromisso entre a eficincia global
e a equanimidade para conexes individuais.
Antes que possamos tentar at mesmo encontrar compromissos entre
equanimidade e favorabilidade, devemos decidir o que buscamos otimizar. A
reduo do retardo mdio de um pacote uma candidata evidente, mas isso iria
tornar mximo o throughput total da rede. Alm disso, esses dois objetivos tambm
so conflitantes, visto que a operao de qualquer sistema de enfileiramento
prximo a sua capacidade mxima (p -> 1) implica um longo retardo no
enfileiramento. Como um compromisso, muitas redes tentam minimizar o nmero
de saltos que um pacote tem de fazer, porque a reduo do nmero de saltos tende a
melhorar o retardo e ainda reduzir a quantidade de banda passante consumida, o que
tende a melhorar tambm o throughput.

Figura 10-8 Conflito entre equanimidade e favorabilidade


Os algoritmos de roteamento podem ser agrupados em duas classes principais:
os no-adaptativos e os adaptativos. Os algoritmos no-adaptativos, ao contrrio dos
adaptativos, no baseiam suas decises de roteamento em medidas ou estimativas do
trfego e da topologia atuais. Se um algoritmo adaptativo gerencia a boa adaptao ao
trfego, ele ir naturalmente realizar a sada de um algoritmo que ignore o que
acontece na rede, mas se adaptar bem ao trafego mais fcil de dizer do que fazer. Os
algoritmos adaptativos podem ainda ser subdivididos em centralizados, isolados e
distribudos (McQuillan, 1974); estes sero discutidos em detalhes a seguir.

150

10.1.4 Congestionamento
Quando esto presentes pacotes em excesso em uma (parte de) sub-rede, o
desempenho se degrada. Essa situao chamada de congestionamento. A Figura 5-9
retrata o sintoma. Quando o nmero de pacotes descarregados na sub-rede pelos hosts
est dentro da sua capacidade de transporte, todos so entregues (com exceo de uns
poucos que so afetados por erros de transmisso), e o nmero entregue
proporcional ao nmero enviado. Entretanto, conforme o trfego aumenta muito, os
IMPs no so mais capazes de cuidar dele, e comeam a perder pacotes. Isso tende a
tornar as coisas piores. No caso de trfego muito intenso, o desempenho entra em
colapso total e praticamente nenhum pacote entregue.

Figura 10-9 Quando oferecido trfego em demasia, vem o congestionamento, e o


desempenho se degrada nitidamente.
O congestionamento pode ser provocado por diversos fatores. Se os IMPs so
excessivamente lentos para realizar as vrias tarefas de contabilidade que so exigidas
deles (enfileirar buffers, atualizar tabelas, etc.), as filas podem crescer, ainda que
exista um excesso de capacidade de linha. Por outro lado, mesmo que a CPU do IMP
seja infinitamente rpida, as filas crescero sempre que a velocidade do trfego de
entrada exceder a capacidade das linhas de sada. Isso pode acontecer, por exemplo,
se trs linhas de entrada esto entregando pacotes na sua velocidade mxima, e todos
precisam ser direcionados ao longo da mesma linha de sada Dessa forma, o problema
se resume a no haver buffers no IMP em nmero suficiente. Recebendo um
suprimento infinito de buffers, o IMP pode sempre reduzir qualquer engarrafamento
temporrio simplesmente conservando em seu poder todos os pacotes por todo o
tempo necessrio o. evidente que, para uma operao estvel, os hosts no podem
bombear indefinidamente pacotes para a sub-rede a uma taxa mais alta do que ela
pode absorver.
O congestionamento tende a se nutrir de si mesmo e tornar-se pior. Se um IMP
no tiver nenhum buffer livre ele tem de ignorar os pacotes recm-chegados.
Quando um pacote descartado, o IMP que enviou o pacote se interrompe e o
retransmite, talvez muitas vezes, em ltima anlise. Como o IMP que transmite no
pode descartar o pacote at que seja confirmado, o congestionamento no extremo do
receptor fora o transmissor a se abster de liberar um buffer que ele normalmente teria

151

liberado. Dessa maneira, o congestionamento se propaga, como carros aproximandose de um posto de pedgio.
Definitivamente, vale a pena destacar explicitamente a diferena entre o
controle do congestionamento e o controle de fluxo, o que os autores de muitos livros
e trabalhos sobre o assunto no parecem compreender.
O controle do congestionamento tem relao com garantir que a sub-rede seja
capaz de transportar o trfego oferecido. um tema global, envolvendo o
comportamento de todos os hosts, todos os IMPS, o processamento de
armazenamento e expedio dentro dos IMPS, e todos os outros fatores que tendem a
diminuir a capacidade de transporte da sub-rede.
Em contraste, o controle de fluxo se relaciona com o trfego ponto a ponto
entre um determinado transmissor e um determinado receptor. Seu servio garantir
que um transmissor rpido no possa transmitir continuamente dados mais
rapidamente do que o receptor possa absorv-los. O controle de fluxo quase sempre
envolve algum feedback do receptor para o transmissor, a fim de informar ao
transmissor como as coisas esto indo outra extremidade.
Para ver a diferena entre esses dois concertos, considere uma rede de fibra tica com
uma capacidade de 1000 Gbps, sobre a qual um supercomputador estava tentando
transferir um arquivo para um microcomputador a 100 Mbps. Embora no existisse na
verdade qualquer congestionamento (a rede propriamente dita no est com
problemas), o controle de fluxo seria necessrio, a fim de forar o supercomputador a
parar freqentemente, para dar ao microcomputador uma chance de se recuperar do
atraso.
No outro extremo, considere uma rede "armazena e transmite" com linhas de 1
Mbps e 1000 grandes minicomputadores, metade deles tentando transferir arquivos
taxa de 100 Kbps para a outra metade. Aqui o problema no seria o de transmissores
rpidos sobrecarregando recipientes lentos, mas simplesmente que o trfego total
oferecido poderia exceder facilmente aquele que a cede poderia manipular.
Mais adiante neste captulo, examinaremos em detalhes o controle do
congestionamento e discutiremos diversos algoritmos para lidar com ele. Deve ficar
claro que o controle de congestionamento e o roteamento esto intimamente
relacionados, com decises pobres sobre roteamento, sendo uma causa importante de
congestionamento.

10.1.5 Interconexo de Redes


Exatamente como o controle do congestionamento est estreitamente
relacionado com a funo principal da camada de rede, o roteamento est relacionado
com a interconexo de redes. Quando as mquinas de origem e de destino esto em
diferentes redes, todos os problemas usuais do roteamento esto presentes, e piores.
Por exemplo, se as redes que contm as mquinas de origem e de destino no
estiverem diretamente conectadas, o algoritmo de roteamento tem de encontrar um
caminho atravs de uma ou mais redes intermedirias. Podem existir muitas opes
possveis, todas com diferentes caractersticas, vantagens e desvantagens.
Roteamento parte, outro problema com a interconexo de redes que nem
todas as redes usam os mesmos protocolos. Protocolos diferentes implicam diferentes
formatos de pacotes, cabealhos, procedimentos de controle de fluxo, regras de
152

confirmao e outros detalhes. Em conseqncia disso, quando so deslocados


pacotes de uma rede para outra, as converses so necessrias. Algumas vezes no
diretas, mas geralmente todas so. Simplesmente pense sobre o que acontece quando
um pacote tem de atravessar sub-redes de circuitos virtuais e datagramas no seu
caminho at o destino. Mais adiante neste captulo, estudaremos em detalhes a
interconexo de redes, seus problemas e suas solues.

10.2 Algoritmo de Roteamento


Os algoritmos de roteamento podem ser agrupados em duas classes principais: os noadaptativos e os adaptativos. Os algoritmos no-adaptativos no baseiam suas
decises sobre roteamento em medidas ou estimativas do trfego e da topologia
correntes. Em vez disso, a escolha da rota a utilizar para it de i para j (para todo i e
todo J) computada com antecedncia, separadamente, e transferida para os IMPS
quando a rede inicializada. Esse procedimento chamado algumas vezes de
roteamento esttico.
Os algoritmos adaptativos, por outro lado, tentam alterar suas decises sobre o
roteamento de modo a refletirem mudanas na topologia e no trfego correntes.
Existem trs famlias diferentes de algoritmos adaptativos, que se distinguem pelo
tipo de informaes que utilizam. Os algoritmos globais usam informaes coletadas
de toda a sub-rede, em uma tentativa de tomar decises timas. Essa abordagem
chamada de roteamento centralizado.
Os algoritmos locais rodam separadamente em cada IMP e s utilizam as
informaes ali disponveis, tais como comprimentos de filas. Esses algoritmos so
conhecidos como algoritmos isolados. Finalmente, a terceira classe de algoritmos
utiliza uma mistura de informaes globais e locais. Esses no os chamados
algoritmos distribudos. Todas as trs classes sero discutidas detalhadamente a
seguir. Informaes adicionais sobre o roteamento podem ser encontradas em Bell e
Jabbour (1986).

10.2.1. Roteamento pelo Caminho Mais Curto


Vamos iniciar nosso estudo dos algoritmos de roteamento com uma tcnica
amplamente utilizada em vrias formas, porque simples e fcil de entender. A idia
construir um grafo da sub-rede, com cada n do grafo representando um IMP e cada
arco representando uma linha de comunicao. Para escolher uma rota entre um
determinado par de IMPs, o algoritmo simplesmente encontra o caminho mais curto
entre eles.
O conceito de caminho mais curto merece algumas explicaes. Uma forma de
medir o comprimento de um caminho o nmero de saltos. Usando essa unidade de
medida, os caminhos ABC e ABE na Figura 5.10 so igualmente longos. Outra
unidade de medida a distncia geogrfica em quilmetros, em cujo caso ABC
claramente muito mais longo do que ABE (considerando que a figura esteja
desenhada em escala).
Contudo, muitas outras unidades de medida tambm so possveis. Por
exemplo, cada arco poderia ser rotulado com o enfileiramento mdio e o retardo de

153

transmisso para um pacote de teste padro conforme determinado por execues de


testes horrios ou dirios. Com essa rotulao do grafo, o caminho mais curto o
caminho mais rpido, em vez de ser o caminho com menos arcos ou quilmetros.
No caso mais geral, os rtulos nos arcos poderiam ser computados em funo
da distncia, da banda passante, do trfego mdio, do custo da comunicao, do
comprimento mdio da fila, do retardo medido e de outros fatores. Pela modificao
da funo ponderada, o algoritmo deveria computar ento o caminho "mais curto"
de acordo com qualquer um de uma srie de critrios.

Figura 10.10. As cinco primeiras etapas usadas na computao do caminho


mais curto de A para D. As setas indicam o n de trabalho.

So conhecidos diversos algoritmos para a computao do caminho mais


curto entre dois ns de um grafo. O algoritmo mostrado de Dijkstra (1959). Cada
n rotulado (dentro de parnteses) com sua distncia a partir do n de origem ao
longo do melhor caminho conhecido. Inicialmente, nenhum caminho conhecido e,
portanto, todos os ns esto rotulados com infinito. Conforme o algoritmo continua
e os caminhos so encontrados, os rtulos podem se alterar, refletindo os melhores
caminhos. Um rtulo pode ser experimental ou permanente. Inicialmente, todos os
rtulos so experimentais. Quando se descobre que um rtulo representa o caminho
mais curto possvel desde a origem at esse n, ele transformado em permanente;
nunca mais ser alterado.
Para ilustrar como funciona o algoritmo de rotulao, observe o grafo
ponderado no-direcionado da Figura 5.10(a), onde os valores representam, por
exemplo, a distncia. Queremos descobrir o caminho mais curto de A para D.
Vamos comear assinalando o n A como permanente, indicando-o com um crculo
154

preenchido. Depois examinamos, um de cada vez, os ns adjacentes ao n A (o n


de trabalho), rotulando novamente cada n com a distncia at A. Sempre que um
n rotulado outra vez, tambm o rotulamos com o n a partir do qual o teste foi
feito, de modo que possamos reconstruir mais tarde o caminho final. Tendo
examinado cada um dos ns adjacentes ao n A, examinamos todos os ns rotulados
experimentalmente em todo o grafo, e transformamos aquele que tiver o menor
rtulo como permanente, como mostra a Figura 5.10(b). Esse n passa a ser o novo
n de trabalho.
Agora partimos de B e examinamos todos os ns adjacentes a ele. Se a soma
do rtulo sobre B com a distncia de B at o n que est sendo considerado for
menor que o rtulo nesse n, temos um caminho mais curto e, portanto, o n
novamente rotulado.
Depois que todos os ns adjacentes ao n de trabalho forem inspecionados e
os rtulos experimentais, se possvel, alterados, todo o grafo pesquisado em busca
do n rotulado experimentalmente com o menor valor. Esse n transformado em
permanente, e passa a ser o n de trabalho para a etapa seguinte. A Figura 5.10
mostra os cinco primeiros passos do algoritmo.
Para ver por que o algoritmo funciona, observe a Figura 5.10(c). Nesse
ponto, acabamos de tornar E permanente. Suponha que houvesse um caminho mais
curto do que ABE, digamos AXYZE. Existem duas possibilidades: ou o n Z j foi
transformado em permanente, ou ainda no. Se ele j foi transformado, ento E j foi
testado (na etapa seguinte quela em que Z foi transformado em permanente), de
modo que AXYZE no teria escapado nossa ateno.
Agora, considere o caso em que Z ainda est rotulado experimentalmente. Ou
o rtulo em Z maior ou igual ao que est em E, e nesse caso AXYZE no pode ser
um caminho mais curto do que ABE, ou ele menor do que o de E, e ento Z, e no
E, ir se tornar permanente primeiro, permitindo que E seja testado a partir de Z.
Esse algoritmo dado em Pascal na Figura 5.12. A nica diferena entre o
programa e o algoritmo descrito anteriormente que, na Figura 5.12, computamos o
menor caminho a partir do n terminal, t, em vez de a partir do n de origem, s. Como
o caminho mais curto de t para s em um grafo no-direcionado igual ao caminho
mais curto de s para t, no importa em qual extremidade iniciamos (a menos que
existam vrios caminhos mais curtos, em cujo caso a inverso da pesquisa poderia
descobrir um caminho diferente). O motivo para pesquisar em sentido inverso que
cada n est rotulado com seu predecessor em vez de com seu sucessor. Quando se
copia o caminho final na varivel de sada, caminho, o caminho invertido. Pela
inverso da pesquisa, os dois efeitos se cancelam, e a resposta produzida na ordem
correta.

Figura 11-11 Progresso pelo caminho inverso

155

A principal vantagem da progresso pelo caminho inverso que ela


razoavelmente eficiente e tambm fcil de implementar. No requer que os IMPs
saibam sobre rvores geradoras, nem tem o overhead de uma lista de destinos ou
mapa de bits em cada pacote de difuso como ocorre na abordagem de mltiplos
destinos. Nem exige qualquer mecanismo especial a fim de parar o processo, como
ocorre com a enchente (ou um contador de saltos em cada pacote e um conhecimento
a priori do dimetro da sub-rede, ou uma lista de pacotes j vistos por origem).

Figura 10.11 Um procedimento para computar caminho mais curto atravs de


um grafo

156

10.2.2. Roteamento de Caminhos Mltiplos


At agora, estamos pressupondo que existe um nico "melhor" caminho entre
qualquer par de ns e que todo o trfego entre eles usa esse caminho. Em muitas
redes, existem diversos caminhos entre pares de ns que so quase igualmente bons.
Freqentemente, pode ser obtido melhor desempenho pela diviso do trfego sobre
diversos caminhos, a fim de reduzir a carga em cada uma das linhas de comunicao.
A tcnica de utilizar mltiplas rotas entre um nico par de ns chamada roteamento
de caminhos mltiplos ou algumas vezes roteamento bifurcado.
O roteamento de caminhos mltiplos aplicado tanto a sub-redes de
datagramas quando a sub-redes de circuitos virtuais. Para sub-redes de datagrama,
quando um pacote chega a um IMP para seguir em frente, feita uma escolha entre as
diversas alternativas para esse pacote, independente das escolhas feitas para outros
pacotes para o mesmo destino no passado. Para sub-redes de circuitos virtuais, sempre
que um circuito virtual definido, uma rota definida, mas diferentes circuitos
virtuais (da parte de diferentes usurios) so roteados independentemente.
O roteamento de caminhos mltiplos pode ser implementado como a seguir.
Cada IMP mantm uma tabela com uma linha para cada IMP de destino possvel.
Uma linha determina a melhor, a segunda melhor, a terceira melhor, etc, linha de
sada panda aquele destino, juntamente com um peso relativo. Antes de direcionar um
pacote, um IMP gera um nmero aleatrio e depois escolhe entre as alternativas,
usando os pesos como probabilidades. As tabelas so elaboradas manualmente pelos
operadores da rede, carregadas nos IMPS antes de a rede ser estabelecida e no mais
modificadas depois disso.
Como um exemplo, considere a sub-rede da Figura 5.12(a). A tabela a de
roteamento do IMP J dada na Figura 5.12(b). Se J recebe um pacote cujo destino
A, ele utiliza a linha rotulada A. Aqui, trs opes so apresentadas. A linha para A
a primeira opo, seguida pelas linhas para I e H, respectivamente. Para se decidir, J
gera um nmero aleatrio o entre 0,00 e 0,99. Se o nmero estiver abaixo de 0,63, a
linha A usada; se ele estiver entre 0,63 e 0,83, I usada; em caso contrrio, H
usada. Portanto, os trs pesos so as probabilidades respectivas para A, I ou H serem
usadas.

10.3 ALGORITMOS PARA CONTROLE DO CONGESTIONAMENTO


Nos prximos subitens sero averiguadas as cinco estratgias para o controle do
congestionamento.

10.3.1 Pr-alocao de Buffers


Quando um circuito virtual definido, o pacote com o pedido de chamada,
segue o seu caminho atravs da sub-rede, realizando entradas em tabelas, conforme
avana. Quando ele chega ao destino, a rota a ser seguida por todo o trfego de dados
subseqente, fica determinado, e as entradas so feitas nas tabelas de roteamento para
todos os IMPs intermedirios.

157

Normalmente, o pacote que solicita a chamada no reserva qualquer espao


em buffer nos IMPs intermedirios, apenas entradas na tabela. Entretanto, uma
modificao simples no algoritmo de configurao poderia fazer cada pacote com
pedido de chamada reservar tambm um ou mais buffers de dados. Se um pacote com
pedido de chamada chegar a um IMP e todos os buffers estiverem reservados, outra
rota deve ser procurada ou ento um "sinal de ocupado" deve ser retornado ao
chamador. Mesmo se os buffers no estiverem reservados, alguns circuitos virtuais
podem ter de ser novamente roteados ou rejeitados por falta de espao na tabela, e
assim a reserva de buffers no acrescentaria nenhum problema que j no estivesse l.
Pela alocao permanente de buffers para cada circuito virtual em cada IMP,
sempre existe um lugar para armazenar qualquer pacote que chega, at que possa ser
encaminhado. Primeiro, considere o caso de um protocolo IMP-IMP de pra-espera.
Um buffer por circuito virtual por IMP suficiente para circuitos simplex, e um para
cada sentido suficiente para circuitos-full-duplex. Quando chega um pacote, a
confirmao no enviada de volta ao IMP transmissor at que o pacote tenha sido
encaminhado. Efetivamente, uma confirmao significa que o receptor ainda no
recebeu o pacote corretamente, mas tambm que ele possui um buffer livre e est
inclinado a aceitar outro pacote. Se o protocolo IMP-IMP permitir muitos pacotes
pendentes, cada IMP ter de dedicar o equivalente em buffers de toda uma janela a
cada circuito virtual, para eliminar completamente a possibilidade de
congestionamento.
Quando cada circuito virtual que passa atravs de um IMP possui uma
quantidade suficiente de espao em buffer dedicado a ele, a comutao de pacotes se
torna bastante similar a comutao de circuitos. Em ambos os casos obrigatrio um
procedimento envolvendo a configurao. E so permanentemente alocados recursos
para conexes especficas, existindo ou no algum trfego. Em ambos os casos o
congestionamento impossvel, porque todos os recursos necessrios para processar o
trfego j estavam reservados. Nos dois casos h um uso potencialmente ineficiente
dos recursos, porque os recursos que no esto sendo usados pela conexo para a qual
so alocados esto indisponveis para qualquer outra.
Por ser caro dedicar um conjunto completo de buffers a um circuito virtual
ocioso, algumas sub-redes podem us-lo somente onde so essenciais baixo retardo e
grande banda passante como, por exemplo, em circuitos virtuais que transportam voz
digitalizada. Para circuitos virtuais em que o baixo retardo no absolutamente
essencial o tempo todo, uma estratgia razovel associar um timer a cada buffer. Se
o buffer permanecer ocioso por tempo excessivo, ele liberado, para ser readquirido
quando chegar o prximo pacote. Evidentemente, a aquisio de um buffer poderia
levar algum tempo e, assim, os pacotes tero de ser encaminhados sem buffers
dedicados, at que a cadeia de buffers possa novamente ser definida.
10.3.2 Descarte de Pacotes
Nosso segundo mecanismo de controle do congestionamento exatamente o
oposto do primeiro. Em vez de reservar todos os buffers antecipadamente, nada
reservado. Ou seja:
Se um pacote chegar e no houver nenhum lugar onde coloc-lo, o IMP simplesmente
o descarta.
Se a sub-rede oferecer o servio de datagrama aos hosts, isso tudo: o
congestionamento resolvido descartando-se pacotes vontade.

158

Se a sub-rede oferece o servio de circuitos virtuais, uma cpia do pacote deve


ser mantida em algum lugar, de modo que ele possa ser retransmitido mais tarde.
Uma possibilidade que o IMP que envia o pacote descartado continue se
interrompendo e retransmitido o pacote at que ele seja recebido. Outra possibilidade
a de que o IMP de transmisso desista aps um certo nmero de tentativas e solicite
ao IMP de origem para se interromper e comear tudo de novo.
O descarte de pacotes vontade pode ser levado longe demais.
evidentemente uma estupidez extrema ignorar um pacote que chega contendo uma
confirmao de um IMP vizinho. Essa confirmao permitiria ao IMP abandonar um
pacote recebido nesse momento e portanto liberar um buffer. Entretanto, se o IMP no
tem buffers de reserva, ele no pode adquirir qualquer outro pacote que chega para ver
se ele contm uma confirmao. A soluo reservar permanentemente um buffer por
linha de entrada, a fim de permitir a todos os pacotes que chegam serem
inspecionados. bastante lgico para um IMP examinar um pacote recm-chegado,
fazer uso de qualquer confirmao transportada por ele e depois descartar de alguma
maneira o pacote. Alternativamente, o portador de boas notcias poderia ser
recompensado por mant-las usando o buffer recentemente liberado como novo buffer
de entrada.
Se o congestionamento vai ser evitado, necessria uma regra para informar
quando manter um pacote quando descart-lo. Irland (1978) estudou esse problema e
chegou a uma heurstica simples, ainda que eficiente, para descartar pacotes. Na
ausncia de qualquer regra explcita em contrrio, uma nica linha de sada poderia
tomar para si todos os buffers disponveis em um IMP, visto que so simplesmente
atribudos ao primeiro que chegar.
A Figura 5-22(a) mostra um IMP com um total de 10 buffers. Trs desses
buffers esto permanentemente atribudos as linhas de entrada. Os sete restantes
contm pacotes enfileirados para transmisso em uma das linhas de sada.

Linhas de
sada

Linhas de
entrada
(a)

Buffers
livres
(b)

Figura 10-22 O congestionamento pode ser reduzido estabelecendo-se um limite


superior para o nmero de buffers enfileirados em uma linha de sada
Muito embora duas linhas de sada estejam ociosas, quaisquer pacotes que
cheguem destinados a essas linhas devem ser descartados porque no existem buffers
de reserva. Isso obviamente um desperdcio. A idia de Irland limitar o nmero de
buffers que podem estar associados a uma fila de sada qualquer. Por exemplo, se o
limite fosse fixado em quatro, a situao da Figura 5-22(b) iria prevalecer: trs buffers
atribudos. Um pacote recentemente chegado que quisesse continuar sobre a primeira
linha de sada seria descartado, em vez de ter permisso para aumentar o comprimento
da fila para cinco.
Essa estratgia no realmente to drstica quanto aparenta. Afinal de contas,
essa linha de sada j est funcionando em sua capacidade mxima. Ter sete pacotes
enfileirados em vez de quatro no ir empurrar os bits para fora nem um pouco mais
rpido, mas permitir que o trfego para as outras linhas seja encaminhado
imediatamente, possivelmente duplicando ou triplicando a velocidade de sada do
IMP. Em qualquer caso, o pacote descartado ser retransmitido em pouco tempo. Se

159

estiver bem ajustado, o sistema-ainda ser retransmitido antes que a fila se esvazie, e
assim a sua rejeio inicial nem mesmo ser notada.
Irland estudou diversos algoritmos diferentes para determinar o comprimento
Mximo da 61a, m, para um IMP com k buffers (os buffers dedicados de modo
permanente a entrada no contam). O caso sem controle m = k. Se existirem s linhas
de sada, o caso m = k/ s significa efetivamente que cad& buffer est dedicado a uma
determinada linha de sada. Nenhuma linha pode tomar emprestado nem mesmo um
buffer de uma linha ociosa. Intuitivamente isso no eficiente, e o estudo admite essa
sada.
O valor timo de m vem a ser uma funo complicada do trfego mdio.
Embora o IMP pudesse tentar medir seu trfego e ajustar continuamente m, se o
trfego viesse em rajadas, essa probabilidade no funcionaria bem. Entretanto, Irland
descobriu um mtodo experimental simples que geralmente d um desempenho bom,
embora no timo: m=k/s. Por exemplo, para sete buffers em pool e trs linhas,
m=7/3, e assim 4 buffers seriam alocados.
Uma idia afim, devida a Kamoun (1976), evita diretamente que qualquer
linha ou linhas fiquem com fome: um nmero mnimo de buffers dedicado a cada
linha. Se no existir nenhum trfego, os buffers vazios so reservados. O mtodo de
Irland pode ser combinado com o de Kamoun para se ter um nmero mnimo e um
mximo de buffers para cada linha. A ARPANET utiliza esse mtodo.
Embora seja fcil, o descarte de pacotes tem algumas desvantagens. A
principal, a banda passante extra necessria para as duplicatas. Se, a probabilidade
de um pacote ser descartado p, o nmero esperado de transmisses antes que ele seja
aceito 1 /(1- p). Um tempo relacionado com esse a durao que poderia ter o
intervalo de temporizao. Se for muito curto, as duplicatas sero geradas quando no
forem necessrias, tornando pior o congestionamento. Se for longo demais, o tempo
de retardo ir aumentar.
Uma forma de minimizar a quantidade de banda passante desperdiada na
retransmisso de pacotes descartados descartar sistematicamente pacotes que ainda
no tenham viajado para longe e, portanto no representem um grande investimento
em recursos. O caso limite dessa estratgia o descarte de pacotes recm-chegados de
hosts em detrimento do descarte do trfego em trnsito. Por exemplo, os IMPs
poderiam recusar ou descartar novos pacotes de hosts associados sempre que o
nmero de buffers ocupados por novos pacotes (ou pelo total de pacotes) exceder
algum limite.

10.3.3 Controle Isarritmico do Congestionamento


O congestionamento ocorre quando existem pacotes em excesso na sub-rede.
Uma abordagem direta para control-lo limitar o nmero de pacotes na sub-rede.
Davies (1972) props um mtodo que refora precisamente essa limitao.
Nesse mtodo, chamado isarritmico porque mantm constante o nmero de pacotes,
existem permisses, que circulam dentro da subrede. Sempre que um IMP deseja
enviar um pacote entregue a ele pelo seu host, deve primeiro capturar uma permisso
e destru-la. Quando o IMP de destino finalmente remove o pacote da sub-rede, ele

160

regenera a permisso. Essas regras simples asseguram que o nmero de pacotes na


sub-rede nunca ir ultrapassar o nmero de permisses inicialmente presentes.
Entretanto, esse mtodo tem alguns problemas. Primeiro, embora garanta que a
sub-rede, como um todo, nunca ficar congestionada, no garante que um
determinado IMP no ser repentinamente entulhado com pacotes.
Em segundo lugar, a forma de distribuir as permisses est longe de ser bvia.
Para evitar que um pacote recentemente gerado venha a sofrer um longo retardo
enquanto o IMP local tenta descobrir uma permisso, as permisses devem ser
distribudas de maneira uniforme, para que cada IMP tenha algumas. Por outro lado, a
fim de permitir a transferncia de arquivos em grande banda passante, indesejvel
para o IMP transmissor ter de sair caando por todas os lados at encontrar
permisses em nmero suficiente. Seria bem melhor se todas estivessem
centralizadas, de modo que os pedidos de quantidades substanciais pudessem ser
honrados rapidamente. Deve ser encontrado um ponto de compromisso, tal como um
nmero mximo de permisses que pudessem estar presentes em qualquer IMP,
comas permisses em excesso sendo obrigadas a procurar um IMP com espao para
elas. Observe que o passeio aleatrio das permisses em excesso, por si mesmo, j
introduz uma carga na sub-rede.
Em terceiro lugar, mas no menos importante, se as permisses jamais so
destrudas por qualquer motivo (por exemplo erro de transmisso, mau funcionamento
de IMPs, o descarte por um IMP congestionado), a capacidade de transporte de rede
ser reduzida para sempre. No h nenhum modo fiel de descobrir quantas permisses
ainda existem enquanto a rede estiver funcionando.

10.3.4 Controle de Fluxo


Algumas redes (notadamente a ARPANET) tentaram usar mecanismos de
controle de fluxo para eliminar o congestionamento. Embora os esquemas de controle
de fluxo possam ser utilizados pela camada de transporte para evitar que um host
sature outro, e embora os esquemas de controle de fluxos possam ser usando para
evitar que um IMP sature seus vizinhos, difcil controlar a quantidade total de
trfego na rede usando regras de controle de fluxo fim a fim. Mais ainda, se os hosts
so forados a parar de transmitir devido a regras estritas de controle de fluxo, a subrede no ser carregada pesadamente.
O controle de fluxo no pode realmente solucionar problemas de
congestionamento por um bom motivo: o trfego no computador em rajadas. Na
maior parte do tempo um usurio interativo ocupa seu terminal e fica diante dele
coando a cabea, mas de vez em quando pode desejar examinar um arquivo extenso.
O pico de trfego potencial imensamente mais alto do que a taxa mdia. Qualquer
esquema de controle de fluxo que esteja ajustado de modo a limitar cada usurio
taxa mdia fornecer um servio ruim quando o usurio quiser uma rajada de trfego.
Por outro lado, se o limite do controle de fluxo estiver ajustado em um valor alto o
suficiente para permitir que o pico de trfego seja alcanado, ele tem pouco valor
como controle de congestionamento quando diversos usurios demandarem o pico de
uma s vez. (Se metade das pessoas no mundo repentinamente pegasse seu telefone
para chamar a outra metade, haveria uma grande quantidade de sinais de ocupado; o
sistema telefnico tambm est projetado para o trfego mdio, e no para o pior
caso.).

161

Quando usado em uma tentativa de dominar o congestionamento, o controle de


fluxo pode se aplicar ao trfego entre pares de:
Processos do usurio (p.ex, uma mensagem pendente por circuito virtual).
Processos do usurio (p.ex, uma mensagem pendente por sircito virtual).
Hosts, sem levar em considerao o nmero de circuitos virtuais abertos.
IMPS de origem e de destino, sem se importar com os hosts.
Alm disso, o nmero de circuitos virtuais abertos pode ser limitado.

10.3.5 Pacotes Limitadores


Embora a limitao do volume de trfego entre cada par de IMPs ou hosts
possa indiretamente aliviar o congestionamento, ela o faz ao preo de uma reduo
potencial no throughput, mesmo quando no existe nenhum prenncio de
congestionamento. O que realmente necessrio um mecanismo que seja disparado
somente quando o sistema est congestionado.
Uma forma fazer com que cada IMP monitore a utilizao percentual de cada uma
das suas linhas de sada. Associado a cada linha est uma varivel real, u, cujo valor,
entre 0,0 e 1,0, reflete a utilizao recente dessa linha. Para manter uma boa
estimativa de u, uma amostra da utilizao instantnea da linha, f (0 ou 1), pode ser
feita periodicamente, atualizando-se u de acordo com

u _ novo = u _ velho + (1 a ) f
onde a constante a determina a velocidade com que o IMP esquece seu histrico
recente.
Sempre que u se desloca acima do limiar, a linha de sada entra em estado de
"ateno". Cada pacote recm-chegado verificado para se saber se a sua Iinha de
sada est em estado de ateno. Se estiver, o IMP envia um pacote limitador de volta
ao host de origem, dando-lhe o destino encontrado no pacote. O prprio pacote
marcado (um bit de cabealho ativado) de forma que no venha a gerar mais tarde
qualquer outro pacote limitador, e encaminhado da forma usual.
Quando recebe o pacote limitador, o host de origem obrigado a reduzir o
trfego enviado ao destino especificado em X%. Como outros pacotes visando o
mesmo destino j esto provavelmente a caminho e iro gerar ainda mais pacoteslimitadores, o host deve ignorar os pacotes limitadores que foram referentes a esse
destino por um intervalo de tempo fixado. Depois que esse perodo tiver expirado, o
host fica escuta de mais pacotes limitadores durante um outro intervalo. Se chegar
algum, a linha ainda est congestionada, e assim o host reduz ainda mais o fluxo e
comea novamente a ignorar os pacotes limitadores. Se nenhum pacote limitador
chegar durante o perodo de escuta, o host pode aumentar de novo o fluxo. O feedback
implcito nesse protocolo deve evitar o congestionamento, ainda que no controle
qualquer fluxo, a menos que ocorram problemas.
Foram propostas algumas variaes sobre esse algoritmo de controle de
congestionamento. Para uma deles, os IMPs poderiam manter dois nveis crticos.
Acima do primeiro nvel, os pacotes limitadores so enviados de volta. Acima do
segundo, o trfego que chega simplesmente descartado, seguindo a teoria de que o
host provvelmente j foi avisado. Sem tabelas extensivas, difcil para o IMP saber
quais hosts foram avisados recentemente sobre quais destinos, e deles no o foram.

162

Outra variao utilizar os comprimentos das filas e no a utilizaco da linha


como sinal de disparo. A mesma ponderao exponencial pode ser usada tanto com
essa unidade de medida quanto com u, evidentemente. Ainda outra possibilidade
fazer com que os IMPs propaguem as informaes sobre o congestionamento
juntamente com informaes sobre o roteamento, de modo que o disparo no esteja
baseado apenas nas observaes dos IMPS, mas no fato de que em algum lugar ao
longo do caminho existe um engarrafamento. Pela propagao das informaes sobre
o congestionamento pela sub-rede, os pacotes limitadores podem ser enviados mais
cedo, antes que muitos pacotes estejam no caminho, evitando assim que o
congestionamento aumente.
10.3.6 Impasses
O mximo em congestionamento um impasse (deadlock), tambm chamado
de travamento. O primeiro IMP no pode prosseguir at que o segundo IMP faa
alguma coisa, e o segundo IMP no pode continuar porque est esperando que o
primeiro IMP faa algo. Ambos os IMPs chegaram a um estado de suspenso
completa e permanecero nele para sempre. Os impasses no so considerados uma
propriedade desejvel em sua rede.
O travamento mais simples pode acontecer com dois IMPs.

163

Captulo

11
Camada de Rede na Internet
ARP Refinamentos (otimizaes)
Utilizao de um cache local com timeout, para o caso de precisar
contactar a mesma mquina. Da prxima vez, ela encontrar o
mapeamento em seu prprio cache, eliminando a necessidade de uma
segunda transmisso;
Ao receber o pacote ARP o receptor atualiza sua cache local com o
endereo IP do transmissor, caso o receptor no possua uma entrada
em sua tabela local, ser ento includa uma;
Quando uma nova mquina aparece na rede, podemos atualizar seu
mapeamento a todas as mquinas executando um ARP via Broadcast;
Quando as mquinas receberem um ARP via broadcast, atualizaro suas
tabelas ARP locais.

Problemas que podem ocorrer com o uso do ARP


Se a mquina destino estiver desligada ou muito ocupada, o host deve:
armazenar o pacote e esperar;
retransmitir;
se a demora grande, descartar.
Se o request ARP se perder, o host deve:
armazenar o pacote e esperar;
retransmitir;
se a demora grande, descartar.
Se o requert ARP atingiu o destino, mas, o mesmo apresentou problemas e
teve de ser trocado, apesar da resposta j ter sido enviada o host deve:
d)Adotar um timer para as entradas nos caches;
e)atualizar o cache quando uma resposta chegar.

164

11.2 RARP Reverse ARP


O RARP faz exatamente o contrrio que o protocolo ARP. Ele resolve o
problema de identificao de um endereo IP atravs de um endereo fsico. Esta
soluo geralmente utilizada quando utilizamos estaes sem disco.
Quando uma estao sem disco ligada, ela envia um broadcast fsico
(utilizando o endereo MAC) a todos os passveis servidores ARP; o servidor
PRIMRIO identifica o n de srie da CPU do requisitante e envia informaes para
sua inicializao, como imagem para carga e endereo fsico (MAC) do servidor; o
requisitante solicita ento um endereo IP ao servidor.

Problemas:
Quando h perda ou corrompimento de uma requisio:
O software RARP deve prover solues.
Quando o servidor RARP est desligado ou com problemas:
A estao confia no servidor RARP, desta forma, novas tentativas
sero enviadas. (Servidor Secundrio).
Os roteadores no encaminham broadcast fsico:
Colocar um servidor ARP em cada rede ou utilizar o protocolo
BOOTP.

11.2 Protocolo BOOTP


O BOOTP um protocolo de bootstrap alternativo (ver RFCs 951, 1048 e
1084). Utiliza mensagens UDP, que so enviadas pelos roteadores, ele fornece
informaes adicionais s estaes de trabalho sem disco, como o endereo IP do
servidor de arquivos que mantm a imagem da memria, o endereo IP do roteadorpadro (default gateway) e a mascara da sub-rede a ser usada.

11.2.1 Roteadores
Um roteador pode determinar a melhor rota entre duas ou mais redes. Trabalha
na camada de REDE do modelo OSI, portanto, em se tratando do protocolo TCP/IP,
utiliza o IP para fazer o roteamento entre redes. Quando um roteador encontra um
datagrama com um protocolo que no aceita, o datagrama abandonado.
Roteadores conectam redes com topologias diferentes e possuem capacidade
de filtragem. Um campo dentro do protocolo IP define que tipo de protocolo esta
sendo carregado no datagrama.

165

11.2.2 Gateway
Um gateway um dispositivo que efetua a traduo entre dois protocolos
diferentes, e s vezes duas topologias diferentes. Pro exemplo, preciso um gateway
para traduzir do TCP/IP para SNA (IBM).

11.3 Protocolos de Roteamento


Inicialmente um roteador s conhece as redes ou sub-redes a que est
diretamente conectado. Ele fica sabendo sobre outras redes de duas maneiras; (1) rotas
estticas e (2) protocolos de roteamento.
Rota Esttica um caminho na tabela de roteamento que configurada
manualmente por um administrador de rede.

Figura 13.1- Rota esttica

Rota Dinmica utiliza protocolos de roteamento para trocar informaes com


roteadores vizinhos sobre suas tabelas de roteamento de forma automtica.
Atualizando as mudanas dinamicamente.
Alguns protocolos de roteamento so:
RIP Routing Information Protocol.
OSPF Open Short Path First.
IGRP Interior Gateway Routing Protocol
BGP Border Gateway Protocol.
EGP exterior gateway Protocol.

11.3.1 Classificao dos Protocolos de Roteamento


Os protocolos de roteamento podem ser divididos em classes:
protocolos de roteamento interiores (IGP)
protocolos de roteamento exteriores (EGP)

166

Antes de entendermos a classificao dos protocolos de roteamento, devemos


entender os conceitos de sistemas autnomos, roteadores internos e
roteadores de fronteiras.
Sistemas autnomos grupo de roteadores que compartilham informaes
atravs do mesmo protocolo de roteamento.
Roteadores Internos so roteadores que utilizam apenas os protocolos
utilizados no seu Sistema Autnomo.
Roteadores de fronteiras so roteadores que interconectam vrios sistemas
autnomos.

Figura 13.1

167

Captulo

12
Camada de Transporte
Os programas da camada de transporte rodam somente nos hosts e no nos
IMPs, em contraste com as trs camadas inferiores que esto presentes em ambos.

Objetivos da Camada de Transporte

O objetivo primrio da camada de transporte propiciar o transporte de dados


entre processos de usurios que rodam em sistemas interconectados;
O transporte de dados deve ser confivel e eficiente. Pois esta a camada mais
alta com esta responsabilidade, liberando as camadas superiores desta funo;
A camada de transporte deve melhorar a qualidade dos servios de rede, a fim
de atender s necessidades e os requisitos da camada de sesso. Para isto, a
camada de transporte deve ter funes de estabelecimento de conexo,
endereamento, seqencializao, recuperao de erros e falhas,
multiplexao, controle de fluxo, gerncia de buffer e sincronizao.

Servios da Camada de Transporte


A implementao de um protocolo de transio denominado ET (Estao de
Transporte). Cada sistema hospedeiro da rede para se comunicar com outro deve ter
uma ET, por exemplo, como um processo independente ao qual o usurio tem acesso
via primitivas de comunicao.
A interao entre a ET e os demais processos, seus usurios, se d atravs da interface
com processo-usurio (figura 4.2), Pontos de Acesso a Servio de Transporte (TSAP),
e efetuada pela requisio de servios de transporte pelos usurios e a conseqente
prestao de servios de transporte pela ET.

PRIMITIVAS DE SERVIO
Sero ilustrados os servios tpicos da camada de transporte examinando as
primitivas de servio da proposta de padronizao do protocolo de
transporte feita pela ISO em Janeiro de 1984.
As interaes entre entidades implementadas nas vrias Ets so realizadas
atravs da troca de Unidades de Dados do Protocolo de Transporte
(TPDUs) As vrias TPDUs utilizadas recebem nomes relacionados aos
que prestam, exemplos:

168

Pedido de Conexo (Connection Request TPDU)

CR-TPDU

Confirma Conexo (Connection Confirm TPDU)

CC-TPDU

Pedido de Desconexo (Disconnect Request TPDU)

DR-TPDU

Confirma Desconexo (Disconnect Confirm TPDU)

DC-TPDU

Dados (Data TPDU)

DT-TPDU

Dados Urgentes (Expedited Data TPDU)

ED-TPDU

Reconhecimento de Dados (Data Acknolegde TPDU)

AK-TPDU

Reconhecimento Urgente (Expedited Acknolegde TPDU)

EA-TPDU

Rejeio (Reject TPDU)

RJ-TPDU

Erro (Error TPDU)

ER-TPDU

Cada TPDU tem associado um nmero de campos, utilizados para o


controle das interaes entre as entidades de transporte e o processamento
correto das informaes, exemplos:
Indicador de Comprimento (Length Indicator)

LI

Crdito

CDT

Identificador de TSAP

TSAP-ID

Referncia de Destino

DST-REF

Referncia de Fonte (Source Reference)

SRC-REF

Nmero de DT TPDU

TPDU-NR

Nmero de ED TPDU

ED-TPDU-NR

Nmero de Seqncia de Resposta

YR-TU-NR

Nmero de ED TPDU de Resposta

YR-EDTU-NR

Uma entidade que emite uma CR-TPDU chamada INICIADORA e a entidade


com quem deseja estabelecer conexo chamada. REPONDENTE. Se uma
entidade se envolver com mltiplas conexes simultaneamente ela pode ser
iniciadora e respondente.

169

As interaes entre uma ET e um processo usurio de transporte so


realizados atravs da troca de primitivas de servios de transporte. Uma
primitiva tem associada uma lista de parmetros e, uma vez invocada,
desencadeia os eventos de primitivas de servios. Em resposta a estes eventos, as
ET envolvidas emitem TPDUs ou invocam as primitivas adequadas.

Par complementar de primitivas


REQUEST --------- Indication
CONFIRM----------Response
Existem dois grupos de primitivas, divididos de acordo com os servios
envolvidos (ver tabela 4.1):
1 Primitivas para estabelecimento e encerramento de conexo.
2 Primitivas para transporte de dados.
Estabelecimento de uma Conexo (Ler e observar figura 4.4.a)
A camada de sesso passa a primitiva T-CONNECT Request com
parmetros para a camada de transporte, por exemplo, o endereo de
transporte chamado e funes opcionais requisitadas pelo processo

170

iniciador, como por exemplo:


Tamanho de TPDU.
Mapeamento de endereos de transporte para endereos de rede.
Funes a serem empregadas na fase de transferncia de dados
(qualidade de servios).
O exame destes parmetros pela ET iniciadora leva a escolher o servio
de rede mais apropriado, como por exemplo, multiplexao em uma ou
mais conexes de rede.
A ET, ento, prepara o TPDU que no caso o CR-TPDU carregando
seus campos de acordo com os valores dos parmetros da Primitiva TCONNECT Request.
A TPDU preparada passada, ento, como uma Unidades de Dados de
Servios de Rede (NSDU), para a camada de rede para ser entregue a
ET respondente.
A ET respondente recebe a TPDU e invoca a primitiva T-CONNECT
Indication para informar ao processo usurio respondente o pedido de
conexo.
Para estabelecer a conexo o processo usurio respondente passa a
primitiva T-CONNECT Response e a ET envia o TPDU CC-TPDU com
campos definidos pelos parmetros da primitiva invocada (ver figura
4.4.a).

171

Captulo

13
Camada de Transporte na Internet

Camada de Transporte
O objetivo da camada de transporte propiciar o transporte de dados entre os
processos de usurios que rodam em sistemas interconectados.
Os programas da camada de transporte rodam somente nos hosts e no nos
equipamentos utilizados para interconexo de redes, como hubs, pontes e roteadores,
pois a camada de transporte encontra-se acima das trs camadas de interconexo de
redes, especificamente acima da camada de rede.
O transporte de dados deve ser confivel e eficiente. A camada responsvel
pela qualidade dos servios de rede, a fim de atender s necessidades e requisitos da
camada acima, sesso (OSI) ou aplicao (INTERNET), dependendo da arquitetura
usada. Para tal a camada de transporte deve apresentar as seguintes funes:
Estabelecimento de conexo
Endereamento
Sequencializao
Recuperao de erros e falhas
Multiplexao
Controle de fluxo
Gerncia de buffer
Sincronizao

13.1 Servios da camada de Transporte


A camada de transporte divide-se em (1) Entidade ou Estao de Transporte
(ET) e (2) Primitivas de Acesso.
Entidade de Transporte (ET) - a implementao do protocolo de
transporte.
Primitivas de Acesso so os comandos utilizados pelas camadas superiores
para acessar os servios oferecidos pela camada de trasporte.

172

13.2 Entidade de Transporte (ET)


Consideraes:
Cada host da rede deve ter sua ET para se comunicar
O processo de usurio tem acesso as Ets atravs das primitivas de acesso

13.2.1 SAP Service Access Poits


As operaes entre entidades de camadas adjacentes dentro de um mesmo
sistema aberto ocorrem nos pontos de acesso de servio (SAP - Service Acess Point),
que esto localizados na interface entre duas camadas. No caso da camada transporte
esses pontos so denominados TSAP (Transport Service Acess Point).
USURIO: requisita servios de transporte.
ET: presta servios de transporte.

Figura 13.1 - Comunicao entre camadas

13.3 Primitivas de Servio


As camadas se comunicam pelos TSAP utilizando-se de primitivas de
servio. Estas primitivas esto definidas em quatro tipos:
- request (pedido): iniciada por uma camada (N+1) para pedir algum servio
camada (N);
- indication (indicao): emitida pela camada (N) camada (N+1) para
indicar a ocorrncia de algum evento;
- response (resposta): enviada camada (N) - pela camada (N+1), em
resposta indicao recebida da camada (N);
- confirmation (confirmao): emitida pela camada (N) para indicar ao
originador do pedido do servio que o servio foi completado.
Um servio que utiliza as quatro primitivas chama-se servio confirmado. Um
servio no-confirmado utiliza-se apenas das duas primeiras: pedido e indicao.
O servio de transporte recebe do nvel superior a ele os dados a serem
enviados, na forma de unidade de dados de servio de transporte - TSDU
(Transport Service Data Unit). Estas TSDUs so passadas ao servio de transporte
como parmetros de primitivas de servio usadas para transferir dados. As entidades

173

pares (entidades de mesma camada residentes em sistemas abertos diferentes) trocam


elementos de protocolo denominados unidades de dados do protocolo de transporte
- TPDU (Transport Protocol Date Unit).
Normalmente o tamanho de uma TSDU no fixo, podendo exceder o
tamanho que a TPDU pode transportar. Quando isso acorre, o protocolo de transporte
segmenta a TSDU e a transporta em vrias TPDU, remontando-a novamente no
destino.
Para minimizar as interaes entre camadas, um usurio da camada de
transporte entrega de uma s vez essa vrias TSDUs que sero transportadas em
uma nica TPDU. Este procedimento chamado de concatenao. Na recepo, o
usurio da camada de transporte deve ser capaz de identificar e separar as diversas
TSDUs entregues em uma nica interao por essa. Este procedimento chamado de
separao.
Uma conexo de transporte definida como uma associao estabelecida
entre entidades de sesso com o objetivo de transferir dados. Cada conexo de
transporte associada a uma conexo de rede - no caso das duas camadas estarem
operando em modo orientado conexo. Nessa situao, se a conexo de rede falhar,
a conexo de transporte pode ser associada outra conexo de rede; e as TPDU
perdidas podem ser retransmitidas. Tal procedimento conhecido como reassociao
aps falha.
Nem sempre o mapeamento das conexes de um-para-um, podendo ocorrer
no transmissor uma multiplexao de mais de uma conexo de transporte em uma
conexo de rede. O inverso ocorre no receptor, a demultiplexao da conexo de rede
nas vrias conexes de transporte. Alm disso, pode acontecer de termos uma
conexo de transporte associada a mais de uma conexo de rede. Este processo
denominado, no transmissor, de splitting. No receptor, acontece o processo inverso,
chamado de recombinao.
Quando tem-se uma conexo estabelecida, pode-se transmitir dados. A camada
de transporte transmissora faz uma enumerao das TPDU enviadas, para que a
camada de transporte receptora possa fazer a resseqnciao das mesmas, garantindo
que o receptor receba as TPDU na mesma ordem que o transmissor as enviou.
Existem dois tipos de enumeraes para a camada de transporte: normal e extendida.
A numerao extendida utilizada em redes de alto throughput, exigindo poucos
reconhecimentos de recebimentos de dados. At que tal reconhecimento chegue,
ocorre a reteno das TPDU correspondentes pela a entidade de transporte
transmissora, permitindo assim uma retransmisso se necessrio. A retransmisso
feita pela camada de transporte por ocorrncia de erros na camada de rede conhecida
como ressincronizao da conexo de transporte.
A camada de transporte pode realizar um controle de erros atravs de uma
checksum inserida como um parmetro das TPDU. Ela tambm realiza um controle
de fluxo denominado janela deslizante com alocao de crdito. Levando em
considerao que estes artifcios podem provocar um retardo no fluxo de dados; ento,
para transmitir dados com urgncia, foi definido prioridades para os chamados dados
expressos sobre os dados normais.

174

Terminada a transmisso de dados, a conexo liberada normalmente. Quando


a conexo liberada por ocasio de uma reinicializao ou por falha da conexo de
rede, diz-se que houve uma liberao com erro.
A camada de transporte prov um mecanismo sutil de preveno a erros aps a
liberao da conexo. O mecanismo trata-se de no permitir que sejam reutilizadas
referncias de transporte durante um perodo de tempo grande o bastante para que no
tenham mais TPDU com tais referncias circulando pela rede. Tais referncias so
ditas referncias congeladas.

Tipos de TPDUs

Figura 13.2 - Tipos de TPDUs

Formato das TPDU


Todas as TPDU devem conter um nmero inteiro de octetos que so
numerados a partir de 1 e na ordem crescente em que so colocados na NSDU. Os bits
no octeto so numerados de 1 at 8, onde o bit 1 o de menor ordem. Na
representao de nmeros binrios que usam octetos consecutivos, o octeto de menor
ordem tem o valor mais significativo.
Podemos representar a constituio de uma TPDU, genericamente, por:
um cabealho constitudo de:
- um campo indicador de tamanho LI;
- uma parte fixa e uma parte varivel (se existir);
um campo de dados (se existir).
A figura abaixo esclarece com perfeio o que foi dito acima.

175

Figura 13.3
O campo indicador de tamanho LI est contido no primeiro octeto (8 bits) de
todas as TPDU. Ele um nmero binrio e seu valor mximo 254 (11111110). LI
corresponde ao tamanho do cabealho, excluindo a ele mesmo.
A parte fixa do cabealho contm parmetros de uso freqente. O primeiro
parmetro da parte fixa o cdigo da TPDU, e a partir dele que so definidos o
tamanho e a estrutura da TPDU. Em certos casos, a classe do protocolo e o formato
(normal ou estendido) tambm influenciam no tamanho e na estrutura da TPDU.
Em contradio parte fixa, a parte varivel do cabealho contm os
parmetros menos freqentemente usados. A parte varivel, se existir, deve conter um
ou mais parmetros. Seu tamanho definido pelo LI menos o tamanho da parte fixa.
O campo indicao do tamanho do parmetro contm, em octetos, o tamanho
do campo valor do parmetro. Por fim o campo de dados, contendo os dados do
usurio - que so tratados de forma transparente pelo protocolo de transporte. Pode-se
representar a estrutura de cada TPDU da seguinte forma:

Campos da TPDU:
Tabela 13.1
LI
TDU
CDT
TSAP-ID
YR-TU-NR
AKTIME
DST-REF
SRC-REF

indicador de tamanho
unidade de dados do protocolo de transporte
crdito
ponto de acesso do servio de transporte
nmero da seqncia
tempo de acknowledgement
destino
fonte

176

Camada de Transporte da INTERNET


A camada de transporte tem o objetivo de prover uma comunicao confivel
entre dois processos, estando eles ocorrendo dentro da mesma rede ou no. Ela deve
garantir que os dados sejam entregues livres de erros, em seqncia e sem perdas ou
duplicao.
A Arquitetura Internet especifica dois tipos de protocolos na camada de
transporte: o UDP (User Datagram Protocol) e o TCP (Transmission Control
Protocol). O UDP um protocolo no orientado conexo que pode ser considerado
como uma extenso do protocolo IP, e no oferece nenhuma garantia em relao
entrega dos dados ao destino.
J o protocolo TCP oferece aos seus usurios um servio de transferncia
confivel de dados, atravs da implementao de mecanismos de recuperao de
dados perdidos, danificados ou recebidos fora de seqncia, minimizando o atraso na
sua transmisso.
A cada fragmento transmitido incorporado um nmero de seqncia, de
forma a no se perder a ordem dos segmentos a serem juntados para formar o
datagrama. Existe um mecanismo de reconhecimento para executar essa funo que
funciona da seguinte forma: o reconhecimento transmitido pelo receptor ao receber o
segmento X o nmero do prximo segmento que o receptor espera receber (X+1),
indicando que j recebeu todos os segmentos anteriores a este. Atravs da anlise dos
nmeros de segmento, o receptor pode ordenar os segmentos que chegaram fora de
ordem e eliminar os segmentos duplicados. Com base no checksum que adicionado
a cada segmento transmitido, os erros de transmisso so tratados e os segmentos
danificados so descartados. Existe ainda um controle de fluxo baseado no envio da
capacidade de recebimento do receptor, contado a partir do ltimo byte recebido, ao
transmissor. Desta forma o transmissor consegue controlar a quantidade de dados que
so enviados ao receptor para no haver descarte de segmentos nem necessidade de
retransmisso, que ocasionam a queda do desempenho da rede.
Para permitir que vrios usurios (processos de aplicao) possam utilizar
simultaneamente os servios do protocolo TCP, foi criado o conceito de porta. Para
no haver problemas de identificao de usurios, o identificador da porta associado
ao endereo IP onde a entidade TCP est sendo realizada, definindo assim um socket.
A associao de portas a processos de aplicao (usurios) tratada de forma
independente por cada entidade TCP. No entanto, processos servidores que so muito
utilizados, como FTP, Telnet, etc, so associados a portas fixas, divulgadas aos
usurios. Uma conexo identificada pelo par de sockets ligados em suas
extremidades. Um socket local pode participar de vrias conexes diferentes com
sockets remotos. Uma conexo pode ser utilizada para transportar dados em ambas as
direes simultaneamente, ou seja, as conexes TCP so full-duplex.
importante observar aqui que quando se fala que o TCP orientado
conexo, no se fala em conexo a nvel fsico, mas sim a nvel lgico. Este conceito
pode ser compreendido atravs da figura abaixo.

177

Figura 13.4 - Servios orientados e no orientados conexo

No caso da figura acima, a mquina A quer se comunicar com a mquina B


atravs de uma rede em anel utilizando TCP/IP. A nica conexo fsica que existe
entre A e B atravs do anel, passando pelas mquinas C e D. Em nvel de IP, a
comunicao no orientada conexo, portanto muito simples enxergar que os
dados possuem apenas dois caminhos para ir de A at B: atravs de C ou atravs de D.
Em nvel de TCP, porm, a comunicao entre os computadores A e B ocorre como se
houvesse uma conexo direta entre eles. Isso implica que, se em nvel de IP os dados
podem chegar fora de ordem, o TCP tem que garantir a ordenao destes dados, de
forma que eles sempre cheguem na ordem correta, como aconteceria se houvesse uma
conexo fsica direta entre A e B.

178

Captulo

14
Camada de Sesso
As camadas de sesso, apresentao e aplicaes formam o conjunto das
camadas superiores do Modelo de Referncia OSI. Em contraste com as quatro
camadas inferiores, que visam suprir a comunicao confivel fim a fim, as camadas
superiores esto relacionadas com o fornecimento de servios voltadas ao usurio.
Elas usam canais principais, livres de erros, proporcionados pela camada de
transporte, e acrescentam recursos adicionais teis para uma ampla variedade de
aplicaes, de forma que as pessoas que escrevem essas aplicaes no tenham de
reimplementar repetidamente esses recursos, inmeras vezes, como parte de cada
programa diferente.
A camada de sesso basicamente uma inveno da ISO. Antes do Modelo
OSI, nenhuma rede existente possua uma camada de sesso (embora alguns servios
de sesso da OSI estejam presentes na SNA, ainda que espalhados por diversas
camadas). Durante o desenvolvimento do OSI, houve considervel polemica sobre a
necessidade de uma camada de sesso. Por exemplo, a proposta britnica ISO tinha
apenas cinco camadas e no inclua a camada de sesso.
Muito embora a grande maioria do comit da ISO decidisse posteriormente
incluir uma camada de sesso, fica evidente que a partir da brevidade deste capitulo
que a camada de sesso uma camada magra, com relativamente poucos recursos,
em relao s camadas mais baixas. Alm disso, quando se estabelece uma conexo
com a camada de sesso podem ser selecionadas opes que desativam maior parte
dos recursos disponveis.Ela no to importante quanto, digamos, a camada de
transporte, e muitas aplicaes nem se quer necessitam dos poucos recursos que ela
possa ter. Apesar de tudo, ela parte do Modelo de Referncia do OSI; assim,
passamos ao estudo dos servios que a camada de sesso oferece e do modo como
eles funcionam.

14.1. TEMAS DE PROJETO DA CAMADA DE SESSO


Nesta seo, iremos discutir algumas das questes relevantes para o projeto da
camada de sesso. Estas questes incluem o gerenciamento de dilogos, a
sincronizao e o gerenciamento das atividades, entre outras. Todas podem ser
consideradas como servio de valor agregado inseridos no topo da conexo de
transporte pura.

179

14.1.1. SERVIOS FORNECIDOS CAMADA DE APRESENTAO


A camada de sesso fornece servios camada de apresentao. Sua posio
hierrquica mostra da na figura 16.1.

Figura 14.1. As camadas de Transporte, Seo e Apresentao.


Essa figura semelhante a uma outra mostrada anteriormente, exceto pelo
fato de os pontos de acesso de servio serem chamados de pontos de acesso de aos
servios de sesso (PASSs) e de as unidades de dados serem denominadas unidades
de dados do protocolo de sesso (UDPSs). De modo anlogo ao ocorre na camada de
transporte, usaremos o termo fornecedor do servio de sesso e entidade de sesso de
forma intercambivel.
A principal funo da camada de sesso oferecer meios para os
usurios da camada de sesso (exemplos: entidades de apresentao ou, s vezes,
simplesmente processos comuns do usurio) estabeleam conexes, chamadas sesses
e transfiram dados por intermdio delas de forma ordenada. A sesso poderia ser
usada para um login remoto para um terminal distante, ou ainda para uma
transferncia de arquivos, ou ainda para qualquer entre muitos propsitos.Embora as
primitivas sem conexes estejam disponveis na camada de sesso, uma sesso sem
conexes no pode fazer qualquer uso dos recursos voltados ao usurio para os quais
a camada de sesso foi projetada. Por essa razo focalizaremos inicialmente o modelo
baseado em conexes. Contudo, mais adiante, discutiremos neste capitulo, uma
aplicao interessante das sesses sem conexes.
Uma sesso guarda uma estreita semelhana com uma conexo de
transporte, mas as duas no so idnticas. Em geral, quando chega uma solicitao
para que a camada de sesso estabelea uma sesso, deve ser estabelecida uma
conexo de transporte a fim de levar a cabo a comunicao. Quando a sesso
encerrada, tambm liberada a conexo de transporte. Nesse exemplo, h um
mapeamento de um para um entre a sesso e a conexo de transporte. Essa situao
esta ilustrada na figura 16.2.

180

Figura 14.2. Trs formas de mapear sesses sobre conexes de transporte


f)Mapeamento de um para um
g)Sesses consecutivas utilizam a mesma conexo de transporte
h)Uma sesso abrange varias conexes de transporte. O eixo horizontal
corresponde ao tempo.
Entretanto, tambm so possveis outros mapeamentos. Considere o caso de
uma empresa area com escritrios de reserva em muitas cidades. Cada escritrio
tem agentes com terminais conectados a um minicomputador do escritrio local.
Os minicomputadores esto conectados por uma rede remota a um computador
principal que contm o banco de dados reserva. Sempre que um agente responde a
uma chamada, se estabelece uma sesso para o computador principal.Quando a
chamada processada a sesso se encerra, mas no h necessidade de se dar ao
trabalho de liberar a conexo de transporte subjacente, porque ela ser
seguramente necessria dentro de alguns segundos.
Um terceiro mapeamento possvel entre as sesses e as conexes de transporte
dado na figura 7-2(c). Neste caso temos uma sesso que abrange varias conexes
de transporte. Se, por exemplo, falhar (seja qual for o motivo) uma conexo de
transporte, a camada de sesso pode estabelecer uma nova conexo de trans porte
e continuar a sesso atravs dela. Se as entidades de transporte residirem nos
hosts, essa situao no deve ocorrer, por as entidades de transporte devem
recuperar elas prprias de falhas na camada de rede ( i.e, sub-rede).Contudo, se as
entidades de transporte forem externas aos hosts, o problema da recuperao de
falhas externas deslocado para a camada de sesso, porque esta se torna ento a
camada de software mais baixa que pode sobreviver a desastres na sub-rede.
Para completar, no permitido multiplexar diversas sesses simultaneamente
sobre uma conexo de transporte da forma como a camada de transporte pode
multiplexar varias conexes de transporte sobre uma conexo de rede. Em um
instante qualquer, cada conexo de transporte conduz no mximo uma sesso. A
multiplexao feita para reduzir os custos ou melhorar o desempenho, funes
da camada de transporte.
14.1.2. INTERCMBIO DE DADOS
O recurso mais importante da camada de sesso o intercambio de dados.
Uma sesso, como uma conexo de transporte passa por trs fazes: estabelecimento,
utilizao e liberao. As primitivas fornecidas camada de apresentao para
estabelecer, usar e liberar so bastante semelhantes s primitivas fornecidas a camada
de sesso para estabelecer, usar e liberar conexes de transporte. Em muitos casos
tudo que a entidade de sesso tem de fazer quando uma primitiva invocada pelo

181

usurio de sesso chamar uma primitiva de transporte correspondente para que o


trabalho seja realizado.
Por exemplo, quando um usurio se sesso emite uma primitiva S
CONNECT.pedido para estabelecer uma sesso, o fornecedor da sesso simplesmente
emite um T CONNECT.pedido para estabelecer uma conexo de transporte
(supondo que nenhuma conexo de transporte esteja disponvel). De modo
semelhante, o estabelecimento da sesso, como o estabelecimento da conexo de
transporte, envolve negociao entre parceiros (usurios) para definir os valores dos
diversos parmetros. Na realidade, alguns desses parmetros so pertinentes
conexo de transporte, tais como a qualidade do servio e o flag que informa se so ou
no permitidos os dados expedidos, que so simplesmente passados para conexo de
transporte sem qualquer modificao. Outros parmetros esto relacionados
especificamente com camada de sesso. Por exemplo, se uma sesso esta sendo
estabelecida entre dois computadores com a finalidade de intercambiar correio
eletrnico em ambos os sentidos, um parmetro de sesso poderia especificar qual dos
dois lados ser o primeiro a transmitir.
A diferena entre uma liberao disciplinada e uma liberao abrupta pode ser
vista na figura 7-3. Na liberao abrupta to logo um usurio emite a primitiva
adequada para a desconexo, nenhum dado pode ser entregue a ele. Na figura 7.3(a),
uma vez que B tenha invocado T DISCONNECT.pedido, sua extremidade da
conexo imediatamente liberada. Ele no pode receber a mensagem que est
atualmente em transito para ela, mesmo se essa mensagem chegar antes que a UDPT
DP chegue a extremidade A. Alm disso, A pode no recusar o pedido de liberao da
conexo. O fornecimento do servio de transporte apenas emite uma Tdisconnect.indicao e pronto. como uma conexo telefnica: quando uma parte
desliga o telefone, a conexo encerrada, no importa o desejo da outra parte.
A liberao disciplinada funciona de forma diferente. Ela utiliza um handshake
completo com as primitivas pedido, indicao, resposta e confirmao. Na figura 73(b), mesmo depois de ter emitido uma primitiva S RELEASE.pedido, B ainda pode
aceitar a mensagem at que A tenha aceitado a liberao. Simplesmente por ter
emitido um S RELEASE.pedido no encerra por si mesmo a sesso. O usurio
remoto tem que concordar. Se o usurio remoto quiser continuar a sesso ele pode
rejeitar a tentativa de liberao (fixando um parmetro na primitiva S
RELEASE.resposta), e a sesso continua como se nada tivesse acontecido. Uma
sesso s encerrada quando ambas as partes concordam em faze-lo.
Se voc acha estranho que a liberao disciplinada esteja presente na camada
de sesso mas no na camada de transporte pode ter certeza de que voc no esta
sozinho. Quando delineava o padro da camada de transporte para o governo dos
E.U.A, o National Bureau of Standarts (NBS) tambm considerou este detalhe
bastante estranho e decidiu acrescentar uma opo de liberao disciplinada camada
de transporte, solucionando dessa forma o problema e ao mesmo tempo tornando o
padro dos E.U.A diferente do que era usado no resto do mundo. As pessoas que
lidam com padres precisam com freqncia escolher entre faze-lo do modo certo ou
da forma que todos fazem. Esse o motivo pelo qual existem tantos padres.
O endereamento outra rea que a camada de sesso e a camada de
transporte se diferenciam, embora apenas ligeiramente. Para estabelecer uma sesso,
deve-se estabelecer o endereo PASS (em lugar do endereo PAST) a fim de se
conectar a ele. Embora os padres no informem como deve ser construdos os
endereos PASS, provvel que um endereo PASS, na prtica, em um endereo
PAST complementado por algumas informaes adicionais de identificao.

182

Outra maneira na qual o intercmbio de dados de sesso difere do intercmbio


de dados de transporte o nmero de diferentes tipos de dados. A camada de
transporte apresenta dois fluxos de dados logicamente independentes, os dados
regulares e os dados expedidos. A camada de sesso possui ambos ou mais dois (
dados tipificados e dados de capacidade). Os dois outros fluxos se relacionam a
recursos da camada de sesso que ainda no abordamos; assim, adiaremos a nossa
discusso sobre eles at mais adiante neste capitulo.

14.1.3 GERENCIAMENTO DE DILOGOS


Em principio, todas as conexes OSI so full-duplex, ou seja, as UDPS podem
se mover em ambos os sentidos simultaneamente sobre a mesma conexo. A
comunicao full-duplex mostrada na figura 7-4(a). Contudo, existem muitas
situaes em que o software da camada superior esta estruturada de forma esperar que
os usurios se revezem (comunicao half-duplex). Esse projeto no tem nenhuma
relao com as limitaes de alguns terminais antigos ainda existentes que no podem
funcionar de modo full-duplex, mas sim com o projeto de software da camada
superior de uma forma conveniente.
Como exemplo, considere um sistema de gerenciamento de bancos de dados
que pode ser acessado a partir de terminais remotos (ex: a reserva de passagem area
ou o banco em casa). O modo mais comum de operao aquele que o usurio envia
uma consulta ao sistema de banco de dados e espera a resposta. Permitir que os
usurios transmitissem uma segunda e uma terceira consultas antes que a primeira
tenha sido respondida complica desnecessariamente o sistema. Logicamente,
desejvel o funcionamento do sistema no modo half-duplex: ou a vez de o usurio
transmitir ou a vez do sistema do banco de dados.
O controle (e o encorajamento) de quem deve ter a vez de conversar
chamado gerenciamento de dilogos e um dos servios que podem ser fornecidos
pela camada de sesso quando solicitados.
A forma de implementao de um gerenciamento de dilogos pelo uso de
token de dados. Quando uma sesso estabelecida, a operao half-duplex uma das
opes que podem ser selecionadas. Se escolhida a operao half-duplex, a
negociao inicial tambm determina qual dos lados recebe o primeiro token.
Somente o usurio que retm o token pode transmitir os dados; o outro tem que
permanecer em silencio. Quando detentor do token encerra sua transmisso, passa o
token ao seu parceiro usando a primitiva S TOKEN-GIVE.pedido, como mostra a
figura.
O que acontece se o usurio que no retm o token deseja transmitir dados?
Ele pode pedir polidamente o token, utilizando a primitiva S TOKENPLEASE.pedido. O detentor do token pode concordar e passar o token, ou pode
recusar e, nesse caso o outro usurio ter simplesmente de aguardar (ou enviar uma
mensagem de emergncia usando dados pedidos, que no exigem o token). Se a
operao full-duplex selecionado quando a sesso estabelecida, no se usa nenhum
token para transmisso de dados.

14.1.4 SINCRONIZAO

183

O outro servio da camada de sesso a sincronizao, que utilizada para


devolver as entidades de sesso a um estado conhecido na eventualidade de um erro
ou divergncia. primeira vista esse servio pareceria desnecessrio, por que a
camada de transporte foi cuidadosamente projetada para se recuperar de modo
transparente de todos de todos os erros de comunicao e quedas de sub-rede.
Contudo um estudo mais profundo mostra que acamada de transporte foi projetada
somente para mascarar os erros de comunicao. Ela no pode se recuperar de erros
de uma camada superior.
Como exemplo dos problemas que podem ocorrer, considere o servio de
teletexto que est substituindo gradualmente o telex (TWX) para a remessa de
mensagens impressas de uma companhia para a outra. Os assinantes desse servio
utilizam um dispositivo contendo uma CPU, teclado, monitor, impressora, modem,
telefone, e, algumas vezes, uma unidade de disco. Primeiro, o usurio compe uma
mensagem utili8zando o monitor e o teclado. Ento, a CPU chama a mensagem a
empresa a que se destina a mensagem, estabelece uma sesso e transfere a mensagem.
Se o dispositivo de recepo no possui armazenamento em disco, uma possibilidade
real nas verses mais econmicas, as mensagens tm de ser impressas em tempo real,
medida que so recebidas.
To logo seja recebida, cada UDPS confirmada e o texto levado
impressora. Agora suponha que ocorra um problema com o papel ou com a fita.
Mesmo que o operador humano perceba o problema rapidamente e aperte um boto
do dispositivo a fim de interromper a impresso, algumas informaes podem se
perder. Mesmo que ja tenham sido reconhecidas, o transmissor no ter mais uma
cpia e a transmisso da mensagem falhar.
No h nada que a camada de transporte possa fazer com relao a esse
problema; afinal, afinal ela realizou com perfeio o seu trabalho: deslocou todos os
bits de modo confivel do transmissor at o receptor. S depois de transferir as UDPS
para a camada de sesso que ela enviou de volta a confirmao. No culpa da
camada de transporte se as camadas superiores tenham falhado.
A soluo se encontra na camada de sesso. Os usurios de sesso podem
dividir o texto em pginas e inserir um ponto de sincronizao entre elas. No caso de
ocorrer algum problema, possvel reinicializar o estado de sesso a um ponto de
sincronizao anterior ou continuar a partir dele. evidente que a fim de tornar
possvel este processo, chamado de ressincronizao, o usurio de sesso transmissor
(e no a entidade de sesso) tem que continuar a reter os dados pelo tempo em que
poderiam ser necessrios.
importante compreender o que a semntica de sincronizao da camada de
sesso. Os usurios da sesso podem introduzir pontos de sincronizao no fluxo da
mensagem. Cada ponto de sincronizao contm um nmero de srie. Quando um
usurio emite uma primitiva a fim de solicitar um ponto de sincronizao, o outro
recebe uma indicao. De forma semelhante, quando um deles emite uma primitiva
para ressincronizao, o outro recebe tambm uma indicao disso. O salvamento de
mensagem e a subseqente retransmisso se da acima da camada de sesso. Tudo que
a camada de sesso proporciona um meio de conduzir sinais numerados de
sincronizao e ressincronizao atravs da rede.
O mecanismo realmente um pouco mais complexo do que descrevemos at
agora. Existem dois pontos diferentes de pontos de sincronizao, o principal e o
secundrio, cada um com suas prprias primitivas. As unidades delimitadas pelo
ponto de sincronizao principal so chamadas de unidades de dilogos e representam
logicamente partes significativas do trabalho. Por exemplo, quando se transmite um

184

livro, os captulos poderiam estar delimitados por pontos de sincronizao principais e


as paginas por pontos de sincronizao secundrios.
Os pontos de sincronizao diferem entre si de diversas maneiras. Uma delas
que, quando se d ressincronizao, s possvel retornar a ponto de sincronizao
mais recente e nada mais. Portanto, no intervalo de tempo entre os pontos de
sincronizao 6 e 7 na figura 7-6 permitido ressincronizar voltando ao ponto 6, mas
no aos pontos 1,2,3,4 ou 5. Erguendo um muro em cada ponto de sincronizao
principal, o transmissor sabe que os dados que foram enviados antes dele podem ser
descartados com segurana. Os pontos de sincronizao secundrios no possuem
essa propriedade. Apenas antes do ponto de sincronizao 6 na Figura 7-6 permitido
ressincronizar para 1, 2, 3, 4, ou 5. claro que a escolha do tipo e do local de
utilizao do ponto de sincronizao tarefa dos usurios de sesso.
Os pontos de sincronizao principais so to significativos que cada um deles
inserido no fluxo de dados confirmado explicitamente. Os pontos de sincronizao
secundrios no so confirmados. Em um canal de satlite, onde o retardo mnimo
para enviar a mensagem e obter a confirmao de 540ms, essa distino pode ser
importante.
Fixar um ponto de sincronizao, seja ele principal ou secundrio, requer a
posse das fichas relevantes. Esto disponveis duas fichas independentes (para
sincronizao principal e secundaria). Cada uma delas se distingue da outra e as duas
so diferentes das fichas usadas para fluxo de dados de controle nas conexes halfduplex. Quando ocorre a ressincronizao, todas as fichas so restauradas as posies
que elas tinham no instante em que foi sincronizado o ponto de sincronizao.

14.1.5 Gerenciamento de atividade.


Outro recurso fundamental da camada de sesso, intimamente relacionada
sincronizao, o gerenciamento da atividade. A idia por trs do gerenciamento da
atividade permitir que o usurio divida o fluxo de mensagens em unidades lgicas
denominadas atividades. Cada atividade completamente independente de quaisquer
outras atividades que possam ter vindo antes ou que venham depois dela.
Cabe ao usurio determinar o que uma atividade. Como primeiro exemplo,
considere uma sesso definida para a finalidade de transferir diversos arquivos entre
computadores. necessrio algum meio de assinalar o local onde termina um arquivo
e onde comea o prximo. Utilizar o caracter ASCII (file separator) no uma boa
idia porque, se os arquivos contiverem informaes binrias, esse caracter poderia
aparecer nos dados e indicar acidentalmente o final do arquivo quando no fosse esta
a inteno. Uma possibilidade utilizar alguma forma de preenchimento de
caracteres, como feita na camada de enlace de dados, mas na camada de sesso o
preenchimento ter de ser feito provavelmente em software em vez de hardware e
assim ser lento.
O que realmente necessrio, algum meio de inserir um marcador no fluxo
de mensagem que seja ele prprio distinto de uma mensagem de dados (algumas
vezes chamado de informao fora de faixa. Uma forma de alcanar este objetivo
definir cada transferencia de arquivo como uma atividade diferente. Antes de ser
iniciada cada transferencia de arquivo, o transmissor emite uma primitiva S
ATIVIDADE INICIO.pedido, que aparece aparece do outro lado como uma S
ATIVIDADE INICIO.indicao, assinalando o inicio do arquivo. De forma similar,

185

depois que cada transferencia de arquivo se completa, pode ser utilizada a primitiva S
ATIVIDADE FIM para denotar o final do arquivo.
importante enfatizar aqui do que constitui uma atividade feita pelos
usurios, e no pela camada de sesso. Tudo que a camada de sesso faz assegurar
que, quando umas solicitaes da S ATIVIDADE [e feita por um usurio, o outro
usurio receba indicao correspondente. No de interesse da camada de sesso
quando tais solicitaes so feitas e como o receptor reage s indicaes. A camada de
sesso se interessa apenas pela execuo das primitivas, e no pelo seu significado
(semntica) ou sua utilizao. Vale a pena notar que uma atividade abrange todo o
trafego enviado em ambos os sentidos].
Como um segundo exemplo da maneira pela qual o gerenciamento da
atividade pode ser utilizado, considere um sistema de banco em casa no qual as
pessoas podem fazer pagamentos de contas usando seus computadores pessoais para
transferir dinheiro de suas contas para as das companhias que emitem as contas. O
programa em execuo no computador pessoal poderia comear pedindo o nmero da
conta a ser
debitada e enviando essa informao como primeira mensagem. Depois, ele
poderia pedir sucessivamente o nmero da conta a receber o credito enviar esses itens
como as mensagens dois e trs.
Quando a primeira mensagem chega ao computador do banco, o registro em
disco que contm a conta a ser debitada localizado e bloqueado a enviar qualquer
acesso concorrente. Quando chega a segunda mensagem, o registro da conta a ser
creditada tambm bloqueado. Ao chegar a terceira mensagem, o dinheiro
transferido e as duas contas so desbloqueadas.
Imagine o que aconteceria se acontecesse uma falha de energia eltrica que
deixasse a casa do usurio no escuro exatamente depois que a primeira mensagem foi
enviada, recebida no banco e processada.a transao nuca se completaria e a conta
ficaria para sempre bloqueada. Para evitar situaes como essa, a transao bancaria
poderia ser estruturada como uma atividade da camada de sesso.depois de receber a
S-ATIVIDADE-INCIO.indicao,o computador do banco poderia simplesmente
acumular
as
mensagens
que
chegassem
ate
a
S-ATIVIDADEFIM.indicao.assinalasse que no haveria mais nenhuma. S ento, comearia o
processamento e o bloqueio. Dessa forma, nenhuma falha externa poderia fazer o
computador do banco se perder no meio de uma transao.
A tcnica de juntar mensagens em um buffer de entrada ate que todas elas
tenham chegado antes de iniciar o processamento de qualquer uma delas
denominado isolamento. Nos primeiros esboos da camada de sesso. Mais tarde,
contudo, o comit da ISO concluiu que o isolamento poderia ser realizado igualmente
bem pelo uso do gerenciamento de atividade, e assim o servio de isolamento no foi
includo no padro publicado.
No terceiro e ltimo exemplo de gerenciamento de atividade faz uso de uma
propriedade que ainda no mencionamos: as atividades podem ser interrompidas (ou
seja, suspensas) e mais tarde reiniciadas sem perdas de informaes. Considere o caso
de algum que comeou a transferir um arquivo muito longo de seu computador do
trabalho para o computador pessoal de sua casa. Em meio a transferncia, ele precisa
fazer uma chamada telefnica urgente e precisa examinar o numero de telefone no
catalogo telefnico on-line do escritrio, de preferncia sem arruinar a transferncia
do arquivo.
Existe uma soluo para esse problema. A transferncia do arquivo iniciada
como uma atividade. Em certo momento do processo, possvel emitir um S-

186

ATIVIDADE-INTERRUPO.pedido a fim de suspender a transferncia do arquivo.


Ento, outra atividade pode ser iniciada e completada e finalmente a atividade original
pode ser retomada a partir do ponto em que foi interrompida.
O gerenciamento de atividades a forma principal de estruturar uma sesso.
Por essa razo, essencial que ambas as partes concordem em relao ao que seja a
estrutura de atividades. Poderia surgir um problema se ambas tentassem iniciar
simultaneamente atividades. Para evitar que ocorra esse evento, o gerenciamento de
atividades controlado por uma ficha (na verdade a mesma ficha usada para os pontos
de sincronizaes principais). Para invocar um servio de atividade, um usurio deve
estar de posse da ficha pode ser passada e solicitada de forma independente dos dados
e das fichas de sincronizao secundria.
Na realidade, a situao pouco mais complicada do que descrevemos. Ela
comeou como mostramos; porm, a ISSO concluiu mais tarde que poderiam ocorrer
problemas se um usurio iniciasse uma atividade enquanto o outro estivesse fazendo
uma sincronizao secundria. Para evitar essa situao, as regras foram alteradas d
modo a exigir que um usurio retenha tanto a ficha de atividade quanto de
sincronizao secundria, como tambm a ficha de dados (se utilizada) antes de
iniciar uma atividade ou uma operao de sincronizao. Essa estratgia eliminou os
problemas originais, mais criou um novo: o que acontece se um usurio retm a ficha
de atividade e o outro retm a ficha de sincronizao secundria, e ambos querem as
duas fichas? Cada um fica em um loop, emitindo uma primitiva S-PEDIRFICHA,sem chegar a lugar nenhum. O resultado um empasse. A nica soluo
todas as aplicaes tentarem ser muito cuidadosas. Em retrospecto, uma nica ficha
poderia ter sido melhor.
As atividades esto intimamente relacionadas aos pontos de sincronizao.
Quando uma atividade iniciada, os nmeros de serie de sincronizao so
reinicializados em 1 e estabelecido um ponto de sincronizao principal. possvel
estabelecer pontos de sincronizao adicionais, sejam eles principais ou secundrios,
dentro de uma atividade.
Como inicio de cada atividade tambm corresponde a um ponto de
sincronizao principal, uma vez que uma atividade tenha se iniciado, no possvel
ressincronizar a um ponto anterior ao de inicio dessa atividade. Em particular no
possvel ressincronizar voltando a um ponto de sincronizao de uma atividade
anterior.

14.1.6 Relatrio de Excees


outro recurso de camada de sesso um mecanismo de uso geral para relatar
erros inesperados. Se o usurio tiver problemas por qualquer motivo, esses problemas
podem ser relatados ao parceiro pelo uso de uma primitiva S-U-RELATEXCEO.pedido.alguns dados do usurio podem ser transferidos usando essa
primitiva. Em geral, os dados do usurio iro explicar o que aconteceu.
Como exemplo, suponha que um programador projete um protocolo complexo
de sete camadas de uso geral para alguma aplicao especifica. Durante a depurao
do protocolo(ou mesmo depois de que ele esteja supostamente depurado) podem
ocorrer erros de protocolo. Estes podem ser relatados ao parceiro usando o mecanismo
de relatrio de excees da camada de sesso.
O relatrio de excees no se aplica apenas a erros detectados pelo usurio. O
fornecedor do servio pode gerar uma S-F-RELAT-EXCEO.indicao a fim de

187

notificar o usurio sobre problemas internos na camada de sesso ou problemas


relatados a ele pela camada de transporte ou pelas camadas inferiores. Esses relatrios
contm um campo descrevendo a natureza da exceo. Cabe ao usurio decidir que
ao executar, se for o caso.

14.1.7 As Primitivas de Servio de Sesso no OSI


Nesta seo iremos examinar sistematicamente todas as primitivas de sesso
OSI e descrever a funo de cada uma. Elas esto listadas na figura 7-10. Cada linha
da tabela corresponde a um grupo de uma a quatro primitivas.potencialmente, cada
tipo de primitiva tem suas verses pedido, indicao, resposta e confirmao.
Entretanto, nem todas as combinaes so validas. Por exemplo, S-DADOS tem
somente pedido e indicao.as confirmaes (i. e.,resposta e confirmao) so de
responsabilidade das camadas mais baixas.
Primitiva de sesso do OSI
S-CONEXO
S-LIBERAO
S-U-ABORTA
S-F-ABORTA
S-DADOS
S-DADOS-XPRESSOS
S-DADOS-TIPIFICADOS
S-DADOS-DECAPACIDADE
S-ENTREGAR-FICHA
S-PEDIR-FICHA
S-ENTREGAR-CONTROLE
S-SINC-PRINCIPAL
S-SINC-SECUNDRIO
S-RESSINCRONIZAO
S-ATIVIDADE-INICIAR
S-ATIVIDADE-FINALIZAR
S-ATIVIDADEDESCARTAR
S-ATIVIDADEINTERROMP
S-ATIVIDADE-RETOMAR
S-U-RELAT-EXCEO
S-F-RELAT-EXCEO

Ped. Indic. Resp. Conf. Significado


X
X
X
X Estabelece uma sesso
X
X
X
X Encerra uma sesso de forma elegante
X
X
Liberao abrupta iniciada pelo usurio
X
Liberao abrupta iniciada pelo fornecedor
X
X
Transferncia de dados normal
X
X
Transferncia de dados expedidos
X
X
Transferncia de dados fora de faixa
X
X
X
X Transferncia de dados de informaes de controle
X
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X
X

X
X

X
X
X

X
X
X

X
X
X

X
X
X

Entrega uma ficha ao parceiro


Solicita uma ficha ao parceiro
Entrega todas as fichas ao parceiro
Insere um ponto de sincronizao principal
Insere um ponto de sincronizao secundrio
Retorna a um ponto de sincronizao anterior
Inicia uma atividade
Finaliza uma atividade
Abandona uma atividade
Suspende uma atividade
Reinicia uma atividade suspensa
Relatrio de uma exceo de usurio
Relatrio de uma exceo do fornecedor

(a)
S-UNIDADES DE DADOS

Transferncia de dados sem conexo


(b)

Figura 14-10 (a) Primitivas do servio de sesso baseadas em conexes do


OSI (b) Primitivas do servio de sesso sem conexes do OSI

188

Existem 58 primitivas de servio de sesso baseadas em conexes. Podem ser


agrupadas em sete grupos para uma melhor compreenso:
1.
2.
3.
4.
5.
6.
7.

Estabelecimento de conexes.
Liberao de conexes.
Transferncia de dados.
Gerenciamento de fichas.
Sincronizao.
Gerenciamento de atividades.
Relatrio de excees.

1. Estabelecimento de Conexes.
Contm seis primitivas da forma S-CONEXO.xxx: S-CONEXO.pedido
especifica um identificador de sesso, os endereos de PASS (chamador e chamado),
a qualidade de servio, o nmero do ponto de sincronizao inicial, atribuio inicial
das fichas, alguns dados do usurio (opcionais) e possivelmente opes diversas.
As opes so fornecidas porque nem todas as sesses exigem todos os
servios que esto potencialmente disponveis a sincronizao, o gerenciamento de
atividades, o relatrio de excees e certos tipos de transferncias de dados, a serem
discutidos em seguida, podem ser ativados ou desativados individualmente para cada
sesso, dependendo das necessidades dos usurios.

2. Liberao de conexes.
Existem cinco primitivas relacionadas com a liberao de sesses. SLIBERAO.pedido usada para solicitar o trmino disciplinado de uma sesso.
Uma alternativa a essa liberao comum uma liberao negociada, que utiliza uma
ficha de liberao. Quando essa opo tiver sido selecionada no momento do
estabelecimento da sesso, somente o usurio de posse dessa ficha pode iniciar uma
liberao. Esse recurso algumas vezes til quando as duas extremidades de uma
sesso so iguais, exibindo um relacionamento mestre-escravo.
Tambm so fornecidas duas formas de liberao abrupta, uma iniciada pelo
usurio e outra pelo fornecedor. A ultima somente ocorre se for detectado um erro
fatal pela entidade de sesso.

3. Transferncia de dados.
Conforme mencionamos rapidamente antes, existem quatro fluxos de dados
independentes. So eles:
1.Dados regulares
2.Dados expedidos
3.Dados tipificados

189

4.Dados de capacidade
Os dois primeiros tipos j foram bastante discutidos, e assim vamos examinar
os outros dois. Os dados tipificados so como dados regulares, exceto pelo fato de que
sempre podem ser enviados, no importa quem seja o proprietrio das fichas. Em
contraste com a chegada de dados comuns, assinalada por uma primitiva SDADOS.indicao, de modo que receptor pode inform-las em deparado. Os dados
tipificados podem ser utilizados pelo usurio do servio de sesso para mensagens de
controle ou qualquer outra finalidade.
Os padres da camada de sesso no especificam como os dados tipificados
devem ser usados. Entretanto, a inteno do comit da ISO foi proporcionar um fluxo
de dados fora de faixa para informaes de controle das camadas mais altas, a
manuteno de dados e o gerenciamento do sistema. Por esse motivo, os dados
tipificados podem ser enviados a qualquer tempo, sem se importar com fichas. J
examinamos antes este conceito de canal especial para informaes de controle. No
protocolo X.25, existe um bit Q no cabealho para indicar dados qualificados
tipificados pudessem ser enviados usando o bit Q. infelizmente, o servio da camada
de transporte no tem nenhum conceito de dados tipificados. Assim, no existe meio
para a entidade de sesso informar camada de transporte que uma mensagem contm
dados tipificados.
O quarto fluxo de dados, que chamado de dados de capacidade, tambm foi
elaborado para fins de controle, mas para controle da prpria camada de sesso. Sua
funo real permitir que as opes e parmetros da sesso sejam modificados
enquanto ela esteja em andamento (embora em teoria possam ser usados para
qualquer finalidade com a qual concordem os usurios da sesso). Ao contrrio dos
dados tipificados, os dados de capacidade so completamente reconhecidos. Alm
disso, para evitar confuso, os dados de capacidade s podem ser transmitidos fora
das atividades(i.e., entre elas), e somente quando h posse das fichas de dados, de
sincronizao e de atividade.

4 .Gerenciamento de fichas
A camada de sesso tm quatro fichas, como mostra a figura 7-11. A primitiva
S-ENTREGAR-FICHA.pedido pode ser usada para passar uma ou mais fichas
entidade parceira. Os parmetros especificam quais fichas devem ser entregues. A
primitiva S-PEDIR-FICHA.pedido pode ser usada para anunciar que o usurio que
emite a primitiva quer a fichas especificadas. Finalmente, usa-se a primitiva SENTREGAR-CONTROLE.pedido para resgatar todas as fichas de uma s vez. Essa
primitiva s pode ser usada fora das atividades; logicamente, no necessria, mas foi
includa a pedido do CCITT para compatibilidade com seu protocolo de teletexto, que
funciona em termos de controle e no em termos de fichas.

Tipo de ficha
Ficha de dados
Ficha de liberao
Ficha de sincronizao secundaria

Controle
Transferncia de dados no modo halfduplex
Inicio da liberao disciplinada
Insero de pontos de sincronizao
190

secundaria
Ficha principal/atividade
Atividade ou pontos de sincronizao
principais
Figura 7-11 As fichas da camada de sesso

5. Sincronizao.
So fornecidas primitivas tanto para a sincronizao principal quanto para a
secundaria, bem como a resincronizacao. Todas as primitivas so confirmadas. Cada
primitiva especifica o nmero se sries do ponto de sincronizao que ela deseja
estabelecer ou ao qual deseja retornar. Esses nmeros de srie esto na faixa de 0 a
999.999. Todas as primitivas de sincronizao exigem a posse das fichas
correspondentes.

6. Gerenciamento de atividades.
As atividades podem ser iniciadas, interrompidas, retomadas e descartadas
(abandonadas). Como a sincronizao, o gerenciamento de atividades controlado
por fichas.

7 .Relatrio de excees.
Observe que S-F-EXCEO, como S-F-ABORTAR, no pode ser solicitada.
O fornecedor do servio decide se e quando emiti-la.
As primitivas do OSI so implementadas pela entidade de sesso atravs do
uso do protocolo de sesso. Discutiremos esse protocolo mais adiante, neste capitulo.

191

14.2 CHAMADA A PROCEDIMENTOS REMOTOS


A principal tarefa da camada de sesso gerenciar o dialogo e lidar com erros
(ex., quedas do sistema) que ocorrem acima da camada de transporte. No modelo de
Referencia OSI, uma sesso sem conexes faz pouco sentido. Entretanto, existe
pesquisa considervel nas universidades e na industria sobre um modelo radicalmente
diferente para o controle do dilogo e dos erros com base no modelo sem conexes.
Esse trabalho, com nome de RPC (Remote Procedure Call [chamada a Procedimentos
Remotos]), foi amplamente implementado em redes e especialmente em sistemas
distribudos.
A RPC que no cabe muito bem no modelo de referencia OSI, foi projetada
para ser rpida e, por conseguinte, no contem uma estrutura em mltiplas camadas.
Logicamente, a chamada a procedimentos remotos se relaciona basicamente com as
mesmas questes que envolvem a chamada de sesso, embora de uma perspectiva
muito diferente. Assim, ns a examinaremos neste captulo. Contudo, observe que a
RPC tambm pode ser implementada na camada de aplicao, porm com menor
eficincia. Portanto, as vezes encontramos discusses a seu respeito naquele contexto.

14.2.1 O Modelo Cliente Servidor


At agora, temos pressuposto taticamente que os dois processos que se
comunicam por uma conexo de sesso ou de transporte so simtricos. Na prtica,
essa suposio violada com freqncia. Um exemplo comum uma rede de
computadores pessoais ou estaes de trabalho sem unidades de disco, chamadas
clientes, que se comunicam por uma rede com um servidor de arquivos que possui um
disco no qual todos os arquivos esto armazenados. Neste sistema, os clientes
acessam seus dados enviando pedidos ao servidor, o qual executa um trabalho
solicitado e devolve as respostas. A comunicao sempre usa o formato de pares
pedido-resposta, sempre iniciados pelos clientes, nunca pelo servidor. Esse modelo
chamado de modelo cliente-servidor

Conquanto seja obviamente possvel estabelecer sesses entre clientes e


servidores e depois usar a comunicao half-duplex sobre essas sesses, o alto
overhead causado por mltiplas camadas de conexes freqentemente
desestimulante para aplicaes, tais como servidores de arquivos em que o
desempenho critico. Uma forma de comunicao totalmente sem comunicao,
totalmente sem conexes construda exatamente na parte superior do recurso de
datagrama simples (especialmente nas LANs) quase sempre uma opo muito
melhor.
Mesmo se os problemas de desempenho puderem ser solucionados pelo uso do
modo sem conexes, o modelo ainda tem um defeito importante: a base conceitual de
toda a comunicao a I/O (entrada/sada). Os programas se comunicam uns com os
outros usando comando tais como X-DADOS.pedido e X-DADOS.indicao, a
primeira delas uma I/O e outra uma interrupo. Dificilmente essas seriam
ferramentas apropriadas para a construo de aplicaes bem estruturadas.
192

A linha de pensamento da RPC aborda o modelo cliente-servidor de um ponto


de vista completamente diferente. Nessa perspectiva, um cliente que envia uma
mensagem a um servidor e obtm uma resposta como um programa que chama um
procedimento e recebe um resultado. Em ambos os casos, o chamador inicia uma ao
e aguarda at que ela seja completada e os resultados estejam disponveis. Embora no
caso comum (local) o procedimento rode em um equipamento diferente, o chamador
no precisa estar ciente dessa distino.
Para ajudar a oculta ainda mais a diferena entre chamadas locais e remotas,
possvel incorporar RPC linguagem de programao. Supomos, por exemplo, que
ns proporcionamos a cada um dos clientes no servidor de arquivos um procedimento
(de biblioteca) ler, que pode ser chamado com trs parmetros: um indicador
informando o arquivo a ser lido, um buffer para receber os dados lidos e uma
contagem do numero de bytes a ler. Uma chamada como:
Ler (idarquivo, buffer, contagem)
ento uma chamada comum a um procedimento local (ou seja, um
procedimento includo pelo linkeditor no espao de endereos do chamador). Esse
procedimento transmite uma mensagem ao servidor de arquivos e espera pela
resposta. S depois que chega a resposta que ler devolve o controle ao chamador.
A beleza desse esquema que a comunicao cliente-servidor utiliza agora o
formato de chamadas a procedimento em vez de comando I/O(ou pior ainda,
interrupes). Todos os detalhes de funcionamento da rede podem ser ocultados do
programa de aplicao pela sua insero nos procedimentos locais tais como ler.
Esses procedimentos so denominados stubs.
Nesse exemplo, o procedimento stub realmente transfere dados, mas um
procedimento stub pode igualmente bem enviar uma mensagem solicitando que o
servidor realize uma operao arbitraria. Por exemplo:
Eliminar(nome-de-arquivo)
Poderia fazer com que o procedimento stub eliminar enviasse uma mensagem
ao servidor de arquivos pedindo a ele para destruir o arquivo especificado.
Fornecendo procedimentos stub apropriados, podemos fazer com que o cliente
invoque aes arbitrarias no servidor de uma forma muito mais natural para o
programador de aplicaes do que o trabalho com I/O e interrupes. O objetivo final
fazer com que uma chamada a procedimento remoto no aparente qualquer
diferena em relao a uma chamada local.

14.2.2 Interpretao da Chamada a um Procedimento Remoto


Nesta seo examinaremos mais de perto a forma pela qual a RPC
implementada. Podem ser encontradas mais informaes no trabalho de Birrell e
Nelson (1984).

193

A chamada remota engloba dez etapas. A etapa 1 consiste no programa (ou


procedimento) do cliente que chama o procedimento stub encadeado no interior do
seu prprio espao de endereos. Os parmetros podem ser passados de maneira
usual. O cliente no percebe nada fora do normal em relao essa chamada, por ser
ela uma chamada local comum.
Ento, o stub do cliente recolhe parmetros e os condiciona em uma
mensagem. Essa operao conhecida como coleta parmetros. Depois de construda
a mensagem entregue camada de transporte para transmisso (etapa 2). Em um
sistema de LAN sem conexes, a entidade de transporte provavelmente ir apenas
anexar um cabealho a mensagem e coloca-la na rede sem trabalho adicional (etapa
3). Em uma WAN, a transmisso real pode ser mais complicada. Em muitos sistemas,
a etapa 2 um desvio para o sistema operacional.

Figura 14-13. As dez etapas necessrias para a execuo de uma chamada a


procedimento remoto
Quando a mensagem chega ao servidor, a entidade de transporte desse lado a
entrega ao stub do servidor (etapa 4 ), que desagrupa os parmetros coletados. O stub
do servidor chama ento o procedimento do servidor (etapa 5), passando dos
parmetros na forma padro. O procedimento do servidor no tem meios de saber que
esta sendo ativado remotamente porque seu chamador imediato um procedimento
local e obedece a todas as regras padro. Somente os stubs sabem que algo peculiar
esta em andamento.
Depois de completar seu trabalho, o procedimento do servidor retorna(etapa
6), da mesma maneira que qualquer outro procedimento retorna quando se encerra.
Ele tambm pode devolver um resultado a seu chamador. Ento, o stub do servidor
coleta o resultado em uma mensagem e a entrega interface de transporte (etapa 7),
possivelmente fazendo uma chamada ao sistema, exatamente como na etapa 2. Depois
que a resposta retorna mquina cliente (etapa 8), ela entregue ao stub do cliente
(etapa 9). Finalmente, o stub do cliente retorna ao seu chamador, o procedimento do
cliente. Qualquer valor retornado pelo servidor na etapa 6 entregue ao cliente na
etapa 10.
O objetivo de todo o mecanismo dar ao procedimento do cliente a iluso de
que ele esta fazendo uma chamada direta ao procedimento servidor distante. Na
medida em que a iluso bem sucedida e o cliente no pode saber que o servidor

194

remoto, o mecanismo dito ser transparente. Contudo, uma inspeo mais atenta
revela algumas dificuldades para se conseguir transparncia total.
O principal problema ocorre com passagem de parmetros. fcil passar por
valores inteiros, nmeros em ponto flutuante e strings de caracteres. O stub do cliente
simplesmente os insere na mensagem. Na pior hiptese poderia ser necessria uma
conveno para algum formato padro da rede (tais converses so parte da camada
de apresentao e sero discutidas em detalhes no prximo capitulo). A passagem de
estruturas, registros ou vetores desses tipos igualmente direto.
O problema surge quando a linguagem permite que os parmetros sejam
passados por referncia, em vez de por valor. Para uma chamada local, um ponteiro
(o endereo do parmetro) passado normalmente ao procedimento chamado. Este
procedimento sabe que esta lidando com um parmetro de referencia e assim pode
seguir o ponteiro a fim de acessar o parmetro.
Esta estratgia falha completamente para uma chamada remota. Quando o
compilador produz o cdigo para o servidor, ele no sabe nada sobre a RPC, e gera as
instrues usuais para seguir o ponteiro. evidente que o objeto que esta sendo
apontado no se encontra nem mesmo na maquina do servidor e, ainda que estivesse
l, no teria o mesmo endereo que tinha na maquina do cliente. Como resultado
quando um cliente tenta utilizar um parmetro de referencia, recebe o valor errado e a
computao falha.
Uma soluo possvel substituir o mecanismo de parmetros chamados por
referencia pela chamada por copia/restaurao. Com a copia/restaurao o stub do
cliente localiza o item que esta sendo indicado e o transmite ao stub do servidor. Este
ltimo o insere em algum lugar da memria e passa ao procedimento do servidor um
ponteiro para ele. O servidor capaz ento de acessar o item da forma usual. Quando
o procedimento do servidor devolve o controle ao stub, este transmite o item de dados
(possivelmente modificado) de volta ao stub do cliente, que por sua vez utiliza para
sobrescrever o parmetro de transferncia original.
Embora o mecanismo de copia/restaurao freqentemente funcione, ele pode
falhar em certas situaes patolgicas. P exemplo, considere o programa da figura 714. quando esse programa roda localmente, ambos os parmetros na chamada a
duploincr so ponteiros para a, que incrementado duas vezes e o numero 2
impresso.
program teste(output);
var a : integer;
procedure duploincr(var x, y : integer);
begin
x := x + 1;
y := y + 1;
end;
begin
{programa principal}
a := 0;
duploincr(a, a);
writeln(a);
end.

Figura 14-14 Se o procedimento duploincr for executado remotamente, o


programa falha

195

Agora vejamos o que acontece se duploincr chamado como um


procedimento remoto usando copia/restaurao. O stub do cliente processa
separadamente cada parmetro, e assim envia duas copias de a ao stub do servidor. O
procedimento do servidor incrementa uma vez cada copia, e ambas so devolvidas ao
stub do cliente que ento as restauras seqencialmente. Primeiro, a restaurado ao
valor 1 e depois restaurado novamente ao valor 1. Portanto, o valor final 1 em vez
do valor 2, que seria a resposta correta.
Os ponteiros geram problemas semelhantes aos parmetros por referencia.
Eles so especialmente incmodos se apontam para o meio de listas ou grafos
complexos ou para estruturas de dados envolvendo registros variantes. Os parmetros
de procedimentos ou funes tambm so difceis de manipular, embora seja possvel
ao stub do servidor substitu-los por procedimentos locais ao equipamento do servidor
que invoquem os procedimentos chamados na maquina do cliente atravs de uma
RPC invertida.
Muitos sistemas de RPC simplificam logo todo o problema, pela proibio do
uso de parmetros de referencia, ponteiro e parmetros de procedimento ou funes
nas chamadas remotas. Tal deciso torna a implementao mais fcil mas degrada a
transparncia, porque as regras para chamadas locais e remotas fica diferentes nesse
caso.
Vamos agora sair da passagem de parmetros para outra questo de
implementao: como o stub do cliente sabe quem chamar? Nas redes baseadas em
conexes tradicionais, as sesses so estabelecidas entre PASSs, cada um dos quais
possui um numero de telefone fixo. Para RPC necessrio um esquema mais
simples, ainda que mais dinmico.
Birrell e Nelson (1984) descreveram um esquema envolvendo no apenas
clientes e servidores, mais tambm um tipo especializado de sistemas de bancos de
dados. No seu mtodo, quando um servidor inicializado, registra-se no sistema de
bancos de dados pelo envio de uma mensagem contendo o seu nome (na forma de um
string ASCII), seu endereo na rede (ex., um PASR, PAST ou PASS) e um
identificador nico (ex., um inteiro aleatrio de 32 bites). Esse registro feito fazendo
com que o servidor chame um procedimento export, o qual manipulado pelo
stub(etapas 1 e 2).

196

Figura 14-15 A vnculao cliente-servidor feita atravs de um banco de


dados
Mais tarde, quando o cliente faz sua primeira chamada (etapa 3) e seu stub fica
diante do problema de localizar o servidor, o stub envia seu nome em ASCII, que
tambm o nome do servidor, ao sistema de bancos de dados (etapa 4). O sistema de
bancos de dados devolve ento o endereo de rede do servidor e o identificador nico
(etapa 5). Esse processo chamado de vinculao (binding). Desse ponto em diante, o
stub sabe como localizar o servidor, e assim a vinculao no necessria nas
chamadas subseqentes.
O identificador nico de 32 bits includo e cada chamada RPC e utilizado
pela entidade de transporte no equipamento do servidor para informar qual dos muitos
stubs do servidor deve receber a mensagem que chega. Ele tambm tem outro papel.
Se o servidor cair e for reiniciado, ele se registra novamente no sistema de bancos de
dados, usando um novo numero nico. As tentativas do cliente de se comunicar com
ele usando o antigo identificador nico falharo, fazendo com que fiquem cientes da
queda e forando-os a fazer nova vinculao.
Outra questo fundamental da implementao o protocolo utilizado. No caso
mais simples, o protocolo da RPC pode consistir em duas mensagens: um pedido e
uma resposta. Tanto o pedido quanto a resposta contm o nmero nico que identifica
o servidor, um identificador de transao e os parmetros. Quando envia um pedido, o
stub do cliente (em alguns sistemas) pode fixar um timer. Se o timer disparar antes de
a resposta disparar, o stub pode pedir ao servidor para verificar se o pedido chegou. Se
no, ele pode retransmiti-l. O objetivo do identificador de transao permitir que o
servidor reconhea e rejeite pedidos duplicados. O reconhecimento de pedidos
duplicados s possvel se o servidor controlar o identificador de transao mais
recente de cada cliente.
Uma ltima questo da implementao o tratamento de excees. De modo
diferente de chamadas a procedimentos locais, em que nada pode dar errado, podem
ocorrer muitos erros na RPC como, por exemplo, o servidor estar inativo. Se a
linguagem de programao o permitir, a ocorrncia de um erro de RPC no devolveria

197

o controle ao chamador, mas surgiria uma exceo a ser manipulada por um tratador
de excees. O projeto de mecanismo de tratamento de excees dependente da
linguagem, mas claramente necessrio um mtodo para distinguir chamadas mal
sucedidas daquelas que obtiveram sucesso.

14.2.3 Semntica da Chamada a Procedimento Remoto


Tambm de modo diferente das chamadas a procedimento locais, as chamadas
a procedimentos remotos esto sujeitos perda de mensagens, quedas do servidor e
quedas de clientes. Esses efeitos influenciam na semntica da RPC e no objetivo de
torn-la transparente. Nesta seo, examinaremos os problemas causados por falhas
no servidor, na seguinte, iremos examinar falhas nos clientes.
Considere o que acontece se o servidor falhar depois de executar o pedido,
mais antes de enviar a resposta. H pelo menos trs formas possveis de programar o
stub do cliente para lidar com essa situao.
1. Simplesmente se manter para sempre esperando pela resposta que
nunca vir.
2. Interromper-se e gerar uma exceo ou relatar a falha do cliente.
3. Interromper-se e retransmitir o pedido.
A primeira abordagem semelhante ao que acontece quando um programa
chama o procedimento contendo um loop infinito. Nenhum timer usado localmente
e o procedimento nunca retorna. obrigatria a interveno manual para encerrar o
programa. Se o objetivo tornar a semntica da RPC semelhante a chamadas a
procedimentos locais, exige algo a ser dito sobre essa abordagem.
A segunda abordagem para tratar as falhas no servidor fazer com que o stub
do cliente se temporize e gere uma exceo (se a linguagem de programao suportar
excees), ou relate um erro em caos contrario. Esse mtodo anlogo ao que
acontece se um procedimento chamado recebe um erro de proteo de memria ou
tenta fazer a diviso por zero. Se tiver ativado um tratador adequado, a exceo ser
captada e processada. Caso contrario, o programa ser encerrado.
A terceira forma de abordagem convenciona que o stub do cliente temporizese e retransmita o pedido. Tendo em vista que o servidor registrar outra vez um novo
identificador nico no sistema de bancos de dados aps uma queda, a retransmisso
ser rejeitada pela entidade de transporte na mquina do servidor quando ele encontrar
o identificador nico antigo, agora invlido.
Se a entidade de transporte transmitir de volta uma resposta com erro, o stub
do cliente pode desistir ou revincular e tentar novamente. Se o stub do cliente repetir a
vinculao e a chamada, concebvel que a operao seja realizada duas vezes. De
fato, podemos ter a repetio da operao mesmo sem quedas, se a resposta for pedida
e permitirmos ao stub do cliente tentar transmitir novamente.
O problema desta abordagem reside no fato de se aceitvel a repetio da
operao em execuo. Se a operao no altera o estado do sistema(ou seja,
idempotente), no h mal em que ela repita-se.
Por outro lado, se a operao consistir em acrescentar um bloco ao final de um
arquivo, por exemplo, ento muito importante o nmero de vezes que a operao
realizada (j que ele acarreta uma mudana de estado do sistema).

198

Se todas as operaes pudessem ser modeladas em uma forma idempotente,


ento a terceira abordagem seria obviamente a melhor. Infelizmente, para algumas
operaes isto no possvel (transferncia de dinheiro de uma conta bancria por
exemplo).
Como resultado destas dificuldades, a semntica exata dos sistemas de
chamadas a procedimentos remotos pode ser classificadas de diversas maneiras,
segundo Nelson (1981).
A mais desejvel das espcies de semntica a exatamente uma vez, na qual
toda chamada executada exatamente uma vez, nem mais nem menos. Esse objetivo
inatingvel, porque depois da queda de um servidor no sempre possvel informar se
a operao foi ou no realizada.
possvel uma forma mais frgil da semntica de exatamente uma vez, se a
linguagem de programao suportar o tratamento de excees. Nessa variao, se uma
chamada retornar normalmente, significa que no ocorreu nenhuma queda e que a
operao foi executada exatamente uma vez.
Se o servidor falhar ou for detectado um erro srio, no h qualquer retorno da
chamada. Em vez disso, gerada uma exceo e invocado o tratador de excees
apropriado. Com esta semntica, os procedimentos no cliente no tem de ser
programados para lidar com erros, mas sim os tratores de exceo.
Um segundo tipo de semntica o de no mximo uma vez. Quando usada
essa forma, o controle sempre retorna ao chamador. Se tudo correu bem, a operao
ter sido realizada exatamente uma vez.
Entretanto, se foi detectada uma falha no servidor, o stub do cliente ir parar e
retornar um cdigo de erro. No h tentativas de retransmisso. Nesse caso, o cliente
sabe que a operao foi realizada zero vezes ou uma vez, no mais do que isso. A
recuperao adicional trabalho do cliente.
Uma terceira espcie de semntica para a RPC a de pelo menos uma vez. O
stub do cliente mantm-se tentando indefinidamente at receber uma resposta
apropriada. Quando o chamador recebe o controle de volta ele sabe que a operao foi
realizada uma ou mais vezes.
Para operaes idempotentes, essa situao ideal. No caso das operaes
no-idempodentes, podemos distinguir diversas variaes. provvel que a mais til
seja que o resultado retornado com certeza o resultado das operaes finais, no o
das primeiras. Se o stub do cliente utilizar um identificador de transao diferente em
cada retransmisso, ser possvel para ele saber qual resposta pertence a qual pedido
e, portanto filtrar todas elas, com exceo da ultima. Essa semntica chamada ltima
dentre vrias.
Em resumo, o objetivo de chegar a uma semntica totalmente transparente
dificultado pela possibilidade de desastres que afetem o servidor, mas no o cliente.
Em sistemas de um nico processador, essa situao no ocorre, porque uma falha que
atinge o servidor tambm atinge o cliente.
RFOS
Quando um cliente falha depois de iniciar uma chamada a um procedimento
remoto, seu processo continua em execuo no servidor. Um processo em execuo
sem um superior (ou pai) denominado rfo.
Os rfos podem causar diversos problemas, como desperdcio de ciclos de
CPU e bloqueamento de arquivos e outros objetos, impedindo o acesso a eles por

199

outros processos. Finalmente, se um cliente comea outra vez uma RPC, os resultados
devolvidos pelos rfos podem provocar confuses.
Nelson descreve quatro maneira de se lidar com rfos. Na primeira forma,
chamada extermnio, quando um equipamento se recupera de um desastre, ele verifica
se havia qualquer RPC em curso no momento da queda. Se havia, ele pede (s)
mquina(s) do servidor para eliminar os processos em execuo sob seu nome.
Para usar o algortmo de extermnio, necessrio que os stubs do cliente
registrem RPCs antes de execut-las. Quando as RPCs se completam, suas entradas
so eliminadas do registro de RPCs pendentes. O registro deve ser mantidos de forma
persistente, que sobreviva quedas do processador .
Os rfo podem eles prprios fazer chamadas e procedimentos remotos,
gerando outros rfos. Portanto, o algoritmo de extermnio deve ser recursivo. A
tcnica de extermnio pode falhar nas eliminaes de todos os rfos (como uma rede
particionada com alguns nodos inalcanveis por exemplo).
A segunda forma de eliminar rfos a expirao. Essa tcnica no exige
qualquer registro. Quando uma RPC iniciada, o servidor recebe um certo prazo para
completar a chamada. Se a chamada no completar-se dentro do intervalo original, o
stub do servidor deve pedir ao stub do cliente um novo prazo.
Se a mquina do cliente tiver sofrido uma queda ou ter sido reiniciada, esse
evento ser detectado, o timer no ser renovado e o servidor ter permisso para se
desativar. Quando utilizada a expirao, tudo que um cliente tem a fazer se
certificar de que decorreu um certo prazo desde a ultima queda antes de emitir a
primeira RPC.
A terceira tcnica para se livrar dos rfos chamada reencarnao. Nesse
mtodo, o tempo dividido em pocas numeradas seqencialmente. Quando um
cliente em recuperao falha na tarefa de exterminar seus rfos, ele transmite a todas
as mquinas o incio de uma nova poca. Elas reagem eliminando todos os seus
processos servidores. Como todos os pedidos e respostas sempre contm o nmero da
poca em que foram iniciados, quaisquer respostas que eventualmente chegarem de
rfos carregaro um numero de poca obsoleto e portanto sero detectveis.
A quarta abordagem para deteco de rfos semelhante terceira. Ela
tambm utiliza pocas porm , em lugar de cada mquina eliminar toda atividade
remota quando uma nova poca declarada, ela tenta localizar o cliente que deu
partida ao servidor. Somente se esse cliente no puder ser encontrado, o servidor
eliminado. Esse algoritmo denominado reencarnao suave.
At agora assumiu-se que, to logo um rfo possa ser encontrado, ele pode
ser eliminado. Porm um rfo pode estar rodando no interior de uma regio critica,
ou pode ter bloqueado alguns arquivos. Sob essas circunstncias, eliminar o rfo
pode criar impasses ou inconsistncias em bancos de dados.
Alem disso, um rfo j pode ter preparado seu trabalho futuro. Por exemplo,
um rfo pode ter feito uma entrada em uma fila para um arquivo a ser impresso mais
tarde ou para alguma outra ao futura a ser executada. Mesmo se o prprio rfo for
eliminado, o trabalho enfileirado pode ser eventualmente executado. O problema da
eliminao de rfos discutido em maiores detalhes por Shrivastava e Panziere
(1982).

200

DISCUSSO DA RPC
Existem alguns aspectos com que se defronta o projetista de qualquer sistema
de RPC. Eles dividem-se em quatro categorias:
Projeto para interface;
Projeto do cliente;
Projeto do servidor;
Projeto do protocolo.
No projeto para interface, o ncleo do assunto at que ponto a transparncia
dever ser perseguida. Dados os problemas com parmetros e ponteiros, e a remota
possibilidade de conseguir a semntica de exatamente uma vez em face de falhas,
Hamilton(1984) argumentou que a transparncia no deveria nem mesmo ser tentada.
Ele defende o acrscimo de uma palavra chave, remoto, a frente da declarao de
qualquer procedimento que possa ser chamado remotamente, para alertar o
compilador e evitar confuses para o programador.
Por outro lado, embora no papel paream imensons, os problemas do RPC so
reduzidos. Quedas so raras e a maior parte dos outros problemas pode ser
manipulada pelo projeto cuidadoso de stubs e compiladores.
Uma questo importante como os stubs so produzidos. Uma possibilidade
que sejam escritos a mo. Outra que o compilador os produza como resultado do
processo de compilao. A ltima possibilidade muito conveniente mas bastante
complicada, a menos que a linguagem seja muito fortemente tipada.
Outro tema o tratamento de excees. Se no existir nenhum mecanismo de
exceo adequado o procedimento do cliente ter de testar todos os retornos de erros
possveis e estar preparado para manipul-los, uma situao no-transparente.
Por ltimo, vem a questo da vinculao. A forma precisa pela qual os
servidores exportam seus nomes, o modo como os clientes podem selecionar uma
instncia especfica de um servidor quando existem muitas instncias idnticas e o
momento em que a revinculao funciona so temas importantes.
O projeto do cliente envolve temporizaes e rfos. Os stubs do cliente
devem se temporizar depois de algum tempo sem receber nenhuma resposta ou eles
devem simplesmente esperar para sempre? Se interrompem-se, que aes devem
executar, que semntica lhes deve ser fornecida e como os rfos so tratados?
A principal questo referente ao projeto do servidor o paralelismo. Em um
extremo, sempre que chega um pedido para execuo de um procedimento do
servidor, um novo processo criado e o procedimento roda como parte desse
processo. Se chegarem outros pedidos de outros clientes antes que o primeiro tenha
terminado, mais processos so criados e todos eles se executam em paralelo,
independentes uns dos outros. No outro extremo, existe um processo nico associado
antes que o primeiro se tenha encerrado, ele deve esperar sua vez.
A primeira abordagem implica o nus da criao de processos a cada RPC,
mas permite a execuo em paralelo das chamadas. A segunda mais simples e rpida
se houver apenas uma chamada por vez, mais no permite qualquer paralelismo se
existirem chamadas mltiplas.
No projeto do protocolo o essencial conseguir um alto desempenho. Houve
grande controvrsia sobre esse ponto. Muitos pesquisadores acreditam que a nica
forma de tornar a RPC mais rpida execut-la na parte superior da interface de
pacotes bruta, com camadas de transporte e de rede nulas.

201

Por outro lado, algumas pessoas com mentalidade mais ligada a conexes
imaginam que a RPC pode rodar de forma adequada na camada de aplicaes, mesmo
se houver muitas camadas de protocolos abaixo dela. Essa a direo que vem
tomando a ISO.
Nesse modelo, existem as primitivas VINCULAR, DESVINCULAR,
INVOCAR e RESULTADO, cada uma com pedido, indicao, resposta e
confirmao.

202

Captulo

15
Implementeo da Camada de Sesso
PEQUENA INTRODUO:
A tarefa bsica do nvel de sesso utilizar o servio provido pelo nvel de
transporte, que simplesmente move bits de uma mquina para outra e adicionar alguns
servios orientados ao usurio.
Genericamente falando, o nvel de sesso deveria assegurar que eventuais
falhas ao nvel de transporte fossem transparentes aos nveis superiores.
SERVIOS PROVIDOS PELO NVEL DE SESSO
Segundo o padro ECMA-75, os servios definidos para o nvel de sesso
proveriam facilidades de cinco tipos. Cada tipo de servio de acesso definido por
meio de primitivas. As primitivas associadas a cada tipo de servio so as seguintes:
FACILIDADES
Estabelecimento da conexo
Termino da conexo
Transferncia de dados de sesso
Quarentena
Sincronizao

NOME DA PRIMITIVA
S-CONNECT
S-RELEASE
S-DISCONNECT
S-ABORT
S-DATA
S-EXPEDITED
S-QUARENTINE-DELIVER
S-QUARENTINE-CANCEL
S-SYNC
S-END-DU
S-RESYNC
S-TOKEN-GIVE
S-PLEASE

Cada uma destas primitivas tem seus parmetros e existe um protocolo para
gerenciar as trocas entre os nveis de sesso.

203

UNIDADES FUNCIONAIS
Unidades funcionais so grupamentos de servios relacionados definidos no
padro ISSO, para fins de negociao na fase de estabelecimento da conexo de
sesso e para fins der referencia para outros padres internacionais. Aqui ser
implementada apenas a unidade funcional denominada KERNEL, que suporta os
servios bsicos de sesso, exigidos para estabelecer uma conexo de sesso,
transferir dados normais e liberar a conexo de sesso.
Abaixo relacionado unidade funcional Kernel e os servios a ela
associados.
Unidade Funcional
Kernel

Servios
Session Connection
Normal Data Transfer
Ordery Release
U-Abort
P-Abort

Cd.
CN
AC
RF
FN
DN
AB
AA
DT

SPDU
CONNECT
ACCEPT
REFUSE
FINISH
DISCONNECT
ABORT
ABORT ACCEPT
DATA TRANSFER

O kernel constitui a unidade funcional mnima que deve ser implementada


para que um sistema possa interagir com outros OSI.

PROTOCOLO DE SESSO
O protocolo de sesso proposto pela ISSO especifica:
- Os procedimentos para transferir dados e informao de controle entre duas
entidades de sesso pares;
- Os meios para selecionar as unidades funcionais a serem usadas pelas
entidades de sesso;
- A estrutura e codificao das unidades de dados do protocolo de sesso
usados para transferncia de dados e informaes de controle.
De acordo com este trabalho a entidade de sesso comporta-se como uma
mquina de estado finita. Atravs de um ASAP (Aplication Service Access Point), so
recebidos os dados de um usurio do servio de sesso, os quais so estruturados de
acordo com o protocolo de sesso definido pela ISO, e enviados na forma de SPDUs a
entidade de sesso par, usando os servios providos pelo nvel de transporte ao qual
so entregues os TSDUs (Transport Service Data Units).
As entidades de sesso intercambiam UDPS (Unidades de Dados de
Protocolos de Sesso), referidas tambm como SPDU (Session Protocol Data units)
que contm dados e/ou informao de controle.

204

A interao de uma mquina provedora de servio de sesso com o usurio do


servio de sesso se d por meio de primitivas do servio de sesso (S-CONNECT
request, S-DATA indication, etc).
A interao da entidade de sesso com o servio de transporte, por ela usado,
tambm se d por meio de primitivas, mas usando as primitivas do servio de
transporte de quem a entidade de sesso usuria (T-CONNECT request, T-DATA
request, T-DISCONECT request, T-DATA indication, etc).
Como neste trabalho o protocolo de transporte no orientado conexo e sua
implementao foi assim realizada, o protocolo de sesso no troca primitivas atravs
de SSAP, mas apenas passa a estes o s SPDUS.

Formato dos SPDUS


O Formato dos SPDUS mostrado na figura abaixo.
S1

L1

Campo de Parmetros

Campo de Informaes do Usurio

S1 Tipo de SPDU Inclui os campos C1 e R1 definidos na recomendao S.62 do CCITT.


C1 Identificador de comando.
R1 Identificador de resposta
L1 Comprimento do campo dos parmetros (nmero binrio)
Unidades PGI (Parameter Group Identifier)
PGI L1

Campo de Parmetros

PGI Identifica o grupo de parmetros


L1 Comprimento do campo dos parmetros
Campos de parmetros:
- Simples
- Uma ou mais unidades PI (Parameter Identifier)
Unidades PI
PGI L1

Campo de Parmetros

PI Identifica o parmetro
L1 Comprimento do campo dos parmetros
Campos de parmetros = valor do parmetro

205

ANALISE DA NORMA REFERENTE AO PROTOCOLO DE SESSO


Consultando o DRAFT PROPOSAL ISSO/DP 8327 cujo ttulo
Information Processing Systems Open Systems Interconnection Basic
Connection session Protocol Specification, foi analisada a mesma dedicando maior
ateno ao capitulo 8 que trata da estrutura e cdigos do SPDUs e ao anexo A que
mostra a tabela de estados de todas as unidades funcionais.
Devido ao melhor encaminhamento das atividades, para se obter xito na
conexo micro mainframe, optou-se por implementar apenas a unidade funcional do
kernel. Para obter a mquina de estados da unidade funcional kernel a partir da tabela
de estados do anexo A foi necessrio percorrer as tabelas seguindo ordenadamente a
ocorrncia de eventos e troca de estados, considerando apenas as primitivas e SPDUs
envolvidas ba unidade funcional kernel. O diagrama de classes resultante do
procedimento acima mostrado na folha de papel milimetrado, ou seja, na prxima
pgina.
Como o protocolo de transporte foi implementado de forma no orientado a conexo
estando sempre ativo, algumas modificaes foram realizadas na mquina de estados
finitos do protocolo de sesso, estas modificaes aparecem na pgina 07 (folha de
papel manteiga).
Comparando o primeiro diagrama com o segundo, observa-se que o estado
STA1B (await TCONcnf) da no existe mais e todos os eventos que aconteciam
devido s primitivas do servio de transporte tambm deixam de existir.
Para exemplificar observe que quando no STA1 ocorre evento de entrada
SCONreq a sada ser o evento de sada CN e o prximo estado sero STA2A e no o
STA1B como acontecia antes.
Observando o diagrama de estados da SPM (Session Protocol Machine)
Kernel com transporte no orientado a conexo procurou-se estabelecer uma
comunicao mnima entre duas entidades pares de sesso, considerando a solicitao
de abertura de conexo de parte o usurio de sesso, a transferncia de dados e a
desconexo. Para isso foi necessrio, novamente, alterar a mquina de estados.
A comunicao entre as entidades de sesso mostrada na pgina 09, e o
correspondente diagrama de estados mostrado na pgina 10.
Na pgina 09 so mostradas as SPDUs e primitivas envolvidas na
comunicao entre entidades pares. Neste caso, primitivas so trocadas com o nvel
superior e SPDUs com o nvel inferior (nvel de transporte) que passa as SPDUs para
a outra entidade correspondente.
Em relao s primitivas uma u (seta) esquerda da mesma indica que um
evento de sada da SPM, enquanto que uma r (seta) direita da mesma indica que
um evento de entrada da SPM.
Em relao as SPDUs uma s (seta) esquerda do mesmo indica que um
evento de sada da SPM, enquanto que uma s (seta) direita da mesma indica que
um evento de entrada da SPM.
A transio entre os dados com os respectivos eventos de entrada e sada
mostrada para a fase de conexo, transferncia de dados e desconexo.
O diagrama de estados correspondente est mostrado na pgina 10. Convm
ressaltar que este ser implementado inicialmente para ser expandido futuramente,
com o objetivo de manipular com as estruturas e possibilitar experincia no trato das
estruturas utilizadas implementao mais simplificada da SPM.

206

Entidade A
STA1
SCONreq
CN
STA2A
AC
SCONcnf+
STA713
SDTreq
DT
STA713
DT
SDTind
STA713
SRELreq
FN-nr
STA3
DN
SRELcnf+
STA1

Conexo

Transferncia
De Dados

Desconexo

Entidade B
STA1
CN
SCONind
STA8
SCONrsp+
AC
STA713
DT
SDTind
STA713
SDTreq
DT
STA713
FN-nr
SRELind
STA9
SRELrsp+
DN
STA1

Comunicao entre entidades pares de sesso

Cdigo dos SPDUs do Kernel


Nome do SPDU
CONNECT
ACCEPT
REFUSE
FINISH
DISCONNECT
ABORT
ABORT ACCEPT
DATA TRANFER

Cd. Do SPDU
CN
AC
RF
FN
DN
AB
AA
DT

Cdigo
13
14
12
09
10
25
26
01

Cdigo atribudo s primitivas usadas nesta implementao:

207

Cdigo
01
02
03
04
05
06
07
08
09
20

Abreviatura
SCON req
SCON rspt
SCON rsp SDT req
SREL req
SREL rsp+
SREL rspSUAB req
SUER req
TIM

Descrio
S-CONNECT request primitive
S-CONNECT (accept) response primitive
S-CONNECT (reject) response primitive
S-DATA request primitive
S-RELEASE request primitive
S-RELEASE (accept) response primitive
S-RELEASE (reject) response primitive
S-U-ABORT request primitive
S-U-EXCEPTION-REPORT request primitive
Time Out

Dos eventos de sada:


Cdigo
10
11
12
13
14
15
16
17
18
19

Abreviatura
SCON ind
SCON cnf +
SCON cnf SDT ind
SPAB ind
SREL ind
SREL cnf +
SREL cnf STD ind
SUA Bind

Descrio
S-CONNECT indication primitive
S-CONNECT (accept) confirm primitive
S-CONNECT (reject) confirm primitive
S-DATA indication primitive
S-P-ABORT indication primitive
S-RELEASE indication primitive
S-RELEASE (accept) confirm primitive
S-RELEASE (reject) confirm primitive
S-TYPED-DATA indication primitive
S-U-ABORT indication primitive

A seguir so mostrados os formatos dos SPDUS, com seus respectivos


campos, usados na implementao do subconjunto do SPM Kernel, que esta sendo
implementado.
Os valores para os devidos campos de SPDU foram escolhidos baseando-se no
captulo 8 da norma da ISO referente ao protocolo de sesso. Este captulo trata dos
cdigos e formatos dos SPDUS.

IDENTIFICADORES E CAMPOS DE PARMETROS ASSOCIADOS A


CADA SPDU:
SPDU CONNECT (CN)
13

SPDU ACCEPT (AC)


14

SPDU FINISH (FN)


9

208

SPDU DISCONNECT (DN)


10

SPDU DATA TRANFER (DT)


1

25

X Indica que este campo receber o valor correspondente s condies abaixo


citadas.
VALOR
01
02
03
00

CONDIES
Incio de SPDU
Fim de SPDU
Incio e fim de SPDU
SPDU intermedirio

DOCUMENTAO DO PROGRAMA
O programa que implementa SPM dividido em cinco partes que programa
principal e quatro procedimentos. Cada uma destas partes descrita a seguir.

PROGRAMA PRINCIPAL
No programa principal so declaradas as duas TASKs T e TF; as filas
SSAP-TS, SSAP-ST, ASAP-SA, ASAP-AS e FILA. Os arquivos de entrada e sada
respectivamente; REM e REN e algumas variveis globais. Depois inicializada a
SPM colocando STA = 1 e STB = 1 e disparados os processos SESSO e
FANTASMA No final do programa as TASKs so encerradas.
O programa principal dispara os processos referentes aos procedimentos
SESSO e FANTASMA.
O procedimento SESSO juntamente com os procedimentos PRIMIT e
SPDUS satisfaz os requisitos de implementao do subconjunto da SPM Kernel. O
procedimento FANTASMA tem a funo de testar os demais procedimentos
colocando e retirando mensagens de suas filas; imprimindo resultados de acordo com
os dados de entrada. Quando o procedimento FANTASMA causa o evento NUNCA,
so encerradas as duas TASKs causando o fim do programa.

PROCEDIMENTO SESSO
Para melhor entendimento do procedimento SESSO bom observar a figura
que mostra os diversos nveis da ligao micro-mainframe mostradas a seguir.

209

Mensagens associadas a cada fila:


TSDUIN
TSDUOUT
SSDUOUT
SSDUIN

SSAP-TS
SSAP-ST
ASAP-SA
ASAP-AS

O procedimento SESSO aguarda que chegue uma mensagem na fila SSAPTS oriunda do nvel de usurio dos servios se SESSO, ou seja, do nvel de
Apresentao para cima. Quando uma destas mensagens chegar, ela ser removida da
fila e de acordo com o seu contedo sero tomadas as decises conforme o protocolo
de sesso da proposta da ISO. Isto implementado utilizando um trecho de programa
similar ao mostrado a seguir.
1: % WAIT (SSAP-TS. QINSERT, ASAP-ASQINSERT)
CASE 1 OF
BEGIN
1: % CHEGOU UMA MENSAGEM NA FILA SSAP-TS
T: = REMOVE (TSDUIN, SSAP-TS);
% TRATA A MENSAGEM, DESENCAPSULA E REAGE DE
% ACORDO COM O PROTOCOLO DE SESSO KERNEL SPDUS;
% SE OCORREU UM SPDU DE TRANSFERNCIA DE DADOS,
% ENTO CONCATENAR OS DADOS JUNTO COM A PRIMITIVA %
CORRESPONDENTE,
% SENO PASSAR APENAS A PRIMITIVA PARA O NVEL
% SUPERIOR
ALLOCATE (SSDUDUT, TAM);
INSERT (SSDUOUT, ASAP-SA);
2: % CHEGOU UMA MENSAGEM NA FILA ASAP-AS
T: = REMOVE (SSDUIN, ASAP-AS);
% TRATA A MENSAGEM, REAGE DE ACORDO COM O
% PROTOCOLO SSESO KERNEL E ENCAPSULA PRIMIT;
% CORFORME A PRIMITIVA MONTA O SPDU E INSERE NA FILA %
PARA O TRANSPORTE
% SE A PRIMITIVA FOR DE DADOS E OS DADOS TIVEREM
%
MAIS DE 128 BYTES; DIVIDE A MENSAGEM EM
% PARTES
128.
ALLOCATE (TSDUOUT, TAM);
INSERT (TSDUOUT, SSAP-ST);
END;

PROCEDIMENTOS SPDUS E PRIMIT


Uma boa maneira de implementar uma mquina de estados usando o
comando CASE. Procedendo desta forma pode-se associar cada estado a um nmero.
Abaixo so mostradas as relaes entre os estados do diagrama de estados da SPM
Kernel e os nmeros associados nos procedimentos SPDUS e PRIMIT.

210

Estados
STA 1
STA 1A
STA 1B
STA 1C
STA 2A
STA 3
STA 8
STA 9
STA 16
STA 713

Nome
Idle no Tc
await AA
await TCONonf
Idle TC con
await Ac
await Dn
await SCONrsp
await SREL rsp
await TDISind
data transfer

Nmero
01
02
03
04
05
06
07
08
09
10

211

Captulo

16
Camada de Apresentao
A Camada de Apresentao relaciona-se com a sintaxe e a semntica das
mensagens, converso de cdigos entre mquinas e outros servios de converso.
A principal tarefa desta camada codificar dados estruturados de acordo com
o formato interno do transmissor um formato adequado para transmisso dos
mesmos e depois decodific-los de acordo com o exigido no equipamento destino.
So funes da Camada de Apresentao:
i)Sintaxe e semntica de mensagens;
j)Codificao de dados (Ex: ASCII, EBCDIC);
k)Compatibilizao das estruturas de representao de dados;
l)Compresso de dados, e
m)Autenticao.
Como exemplo de incompatibilidade de representao de dados, podemos
citar os microprocessadores Intel e Motorola: os processadores da Intel (famlia 8086)
representam binariamente os valores direita para esquerda, de forma invertida,
enquanto que os microprocessadores Motorola (famlia 68000) os representam da
esquerda para direita. Alm desta diferena existem outras incompatibilidades entre
processadores menos difundidos.
A converso da forma de representao dos dados pode ser feita de duas
maneiras: cada receptor decodifica os dados recebidos ou o transmissor e o receptor
codificam os dados para um formato de transmisso e os decodificariam para sua
representao particular.
A primeira soluo inconveniente pois o receptor deve ser capaz de
identificar as diferenas entre ele e os demais transmissores com os quais comunica-se
para ser capaz de adaptar os dados recebidos. J para a segunda soluo tm-se um
algoritmo mais simples: o codificador e o decodificador poderiam se basear em uma
estrutura padro para transmisso e o formato de representao interna dos dados seria
irrelevante. esse o objetivo da notao ASN.1, discutida mais adiante.
A compactao dos dados faz-se necessria dado o custo de transmisso dos
dados.
tambm na camada de apresentao que os dados podem ser criptografados.
Com isso documentos de real importncia poderiam ser enviados de forma sigilosa.
Quando feita uma criptografia dos dados, uma unidade de criptografia
inserida entre os sistemas comunicantes, sendo que inicialmente os dados so
codificados de forma a serem entendidos por ambos os sistemas e depois
criptografados de forma que s as entidades comunicantes possam interpretar os
dados.

212

16.1. A NOTAO PARA SINTAXE ABSTRATA UM


ASN.1 ou Abstract Syntax Notation One uma notao que permite definir
tipos de dados simples e complexos e especificar valores que estes tipos podem
assumir.
Os valores transmitidos podem ser de diversos tipos. Existem os tipos simples
e tipos complexos estruturados, formados por vrios tipos simples combinados. Cada
tipo recebe uma denominao (rtulo ou tag) que o distingue dos demais.
Algumas das maneiras de definir novos tipos so:
Uma sequncia (ordenada) de tipos existentes;
uma sequncia no ordenada de tipos existentes;
uma seleo de um dentre um conjunto de tipos.
Um mesmo rtulo pode ser atribudo a mais de um tipo cuja particular
identificao ser decidida pelo contexto em que for usado. Existem quatro classes de
rtulos:
n)UNIVERSAL: pode ser atribudo a um tipo simples ou a um mecanismo de
construo, conforme especificado na tabela A.1.
o)APLICAO: rtulos atribudos a tipos por padres especficos. Num
particular padro os rtulos da classe de APLICA[[Atilde]]O somente
podem ser atribudos a um nico valor.
p)PRIVADA: rtulos usados numa empresa especifica.
q)ESPECIFICADO-POR-CONTEXTO: interpretado de acordo com o
contexto em que usado.

Tabela 16.1 Rtulos atribudos na classe universal


UNIVERSAL 1
UNIVERSAL 2
UNIVERSAL 3
UNIVERSAL 4
UNIVERSAL 5
UNIVERSAL 6
UNIVERSAL 7
UNIVERSAL 8
UNIVERSAL 9-15
UNIVERSAL 16
UNIVERSAL 17
UNIVERSAL 18-22, 25-27
UNIVERSAL 23-24
UNIVERSAL 28-...

tipo booleano
tipo inteiro
tipo string de bits
tipo string de octetos
tipo nulo
tipo identificador de objeto
tipo descritor de objeto
tipo externo
reservados para adendos ao padro
tipo SEQUENCE e SEQUENCE-OF
tipo SET e SET-OF
tipos string de conjuntos de caracteres
tipo hora
Reservados para adendos ao padro

O valor do rtulo especificado indicando-se sua classe e o nmero dentro da


classe (que deve ser inteiro no negativo), em notao decimal.
As regras de codificao sempre conduzem o rtulo do tipo, explcita ou
implicitamente, bem como alguma representao do valor do tipo.

213

As regras de codificao constituem outro padro que aplicadas ao valor de


um certo tipo definido pela ASN.1 resultam na especificao completa dos valores
daquele tipo durante a transferncia.
Supondo que a definio de um registro de funcionrio tenha sido definido e
recebido a denominao de DADOS-PESSOAL. Os campos pertinentes a tal tipo de
registro poderiam ser como os seguintes:
Nome: Joao P. Silva
Cargo: Diretor
Numero: 51
Data de admisso: 17 de setembro de 1971
Nome da esposa: Maria Silva
Numero de filhos: 2
Informaes sobre filhos
Nome: Rafael Silva
Data de nascimento: 11 de novembro de 1957
Informaes sobre filho
Nome: Suzana Silva
Data de nascimento: 17 de julho de 1959
A descrio formal deste registro, usando a notao ASN.1 seria:
Registro pessoal::- [APPLICATION 0] IMPLICIT SET
{ Nome,
Cargo [0] ISO646 String,
NumeroEmpregado,
DataIngresso [1] Date,
NomeEsposa
[2] Name,
Filhos
[3] IMPLICIT SEQUENCE OF
InformaoFilho DEFAULT {
}}
Informaofilho::- SET
{ Nome,
DataNascimento [0] Date}
Nome ::- [APPLICATION 1] IMPLICIT SEQUENCE
{ Nome ISO646 String,
Inicial ISO646 String,
Sobrenome ISO646 String,
NumeroEmpregado::- [APPLICATION 2] IMPLICIT
INTEGER
Date ::- [APPLICATION 3] IMPLICIT ISO 646
String -- AAAAMMDD
O valor ou contedo de um registro deste tipo
seria:
{ nome "Joao", inicial "P", sobrenome "Silva"},
Os detalhes desta especificao sero apresentados na prxima sesso.
214

ASN.1 ou Abstract Syntax Notation One e uma notao que permite definir
tipos complexos e especificar valores destes tipos. As regras de codificao
constituem outro padro que aplicadas ao valor de um certo tipo definido pela ASN.1
resultam na especificao completa dos valores daquele tipo durante a transferncia.
As regras de codificao sempre foram a transmisso do rtulo de um tipo, implcita
ou explicitamente, juntamente com a representao do seu valor.
Supondo que a definio de um registro de funcionrio tenha sido definido e
recebido a denominao de DADOS-PESSOAL. Os campos pertinentes a tal tipo de
registro poderiam ser como os seguintes:
Nome: Joao P. Silva
Cargo: Diretor
Numero: 51
Data de admisso: 17 de setembro de 1971
Nome da esposa: Maria Silva
Numero de filhos: 2
Informaes sobre filhos
Nome: Rafael Silva
Data de nascimento: 11 de novembro de 1957
Informaes sobre filho
Nome: Suzana Silva
Data de nascimento: 17 de julho de 1959
A descrio formal deste registro, usando a notao ASN.1 seria:
Registro pessoal::- [APPLICATION 0] IMPLICIT SET
{ Nome,
Cargo [0] ISO646 String,
NumeroEmpregado,
DataIngresso [1] Date,
NomeEsposa
[2] Name,
Filhos
[3] IMPLICIT SEQUENCE OF
InformaoFilho DEFAULT {
}}
Informaofilho::- SET
{ Nome,
DataNascimento [0] Date}
Nome ::- [APPLICATION 1] IMPLICIT SEQUENCE
{ Nome ISO646 String,
Inicial ISO646 String,
Sobrenome ISO646 String,
NumeroEmpregado::- [APPLICATION 2] IMPLICIT
INTEGER
Date ::- [APPLICATION 3] IMPLICIT ISO 646
String -- AAAAMMDD

215

O valor ou conteudo de um registro deste tipo


seria:
{ nome "Joao", inicial "P", sobrenome "Silva"},
Os detalhes desta especificao sero apresentados na prxima sesso.

16.2 A notao usada em ASN.1


ASN.1 utiliza alguns tipos primitivos (elementos de dados) com os quais
podem ser compostas estruturas mais complexas. Os tipos primitivos ou bsicos so:
BOOLEAN
INTEGER
BITSTRING
OCTETSYTRING
NULL
Estruturas complexas so definidas agregando-se tais tipos primitivos de
algumas formas previstas na ASN.1. As principais formas de estruturao de tipos
compostos ou "construdos" so:
SEQUENCE-lista ordenada de tipos
SEQUENCE OF-iterao ilimitada de um nico tipo Mecanismos de
SET-lista no ordenada de tipos estruturao
SET OF-interao ilimitada de um nico tipo (a ordem no e importante)
CHOICE-um campo que consiste de uma valor dentre os tipos listados.
ASN.1 define uma notao para especificao de valores e para definio de
tipos. A definio de um tipo consiste numa coleo de campos que, no mais baixo
nvel, consiste de um identificador, uma possvel etiqueta (rtulo ou "tag"), uma
referncia e uma possvel indicao de que aquele campo e opcional (pode ser
omitido).
No menor nvel os campos da definio so combinados usando mecanismos
de estruturao que comea com o nome do tipo da estrutura e ento, em geral, uma
lista de campos separados por vrgulas e envolvidos em chaves "{}". vlido usar
aninhamento de estruturas.
O identificador compreensvel (letra minscula) serve apenas para auxiliar a
compreenso mas ignorado pelas regras de codificao bsicas.
O rtulo ("tag") permite que dois tipos aparentemente idnticos sejam separados tal
que seu uso possa ser distinguido em construes tal como CHOICE ou SET.
Assim, um tipo ser definido, segundo a ASN.1 usando-se uma das sequncias
de tipo vlidas, que so:
Type::= BuiltinType|DefinedType
BuiltinType::= BooleanType|
IntegerType|
BitStringType|
OctetStringType|
NullType|
SequenceType|
216

SequenceOfType|
SetTypeType|
SetOfType|
ChoiceType|
TaggedType|
AnyType|
CharacterSetType|
UsefulType|
O DefinedType especifica sequncias externas usadas para referir definies
de tipos e valores.
Os mais significativos tipos de primitivos sero definidos a seguir:
O tipo BOOLEAN e usado para representar valores de variveis lgicas (isto
que somente podem assumir dois estados). Quando escolher um nome
representar uma varivel boolena deve ser escolhido um que descreva o estado
verdadeiro, por exemplo:
Casado ::= BOOLEAN
O tipo INTEGER e usado para modelar os valores designativos de ordem
(cardinal) ou inteiros. Exemplo:
SaldoDaConta ::= INTEGER -- em centavos; negativo significa debito
Pode ser definido o valor mnimo e mximo, por exemplo:
DiaDoMes ::= INTEGER {primeiro(1),ultimo(31)}
Tambm pode-se usar inteiros como smbolos:
DiaDaSemana ::= INTEGER {Domingo(1), Segunda(2), Tera(3),
Quarta(4), Quinta(5), Sexta(6), Sbado(7)}
EstadoMarital ::= INTEGER {solteiro(0),casado(1),vivo(2)}
Usa-se o tipo BITSTRING para modelar dados binrios de formato e
comprimento qualquer (inclusive no multiplo do 8). Poe-se usar este tipo para
representar um mapa em que se indica pela posio dos bits ligados a
ocorrncia de algum fato, por exemplo:
DiasComSolNoMes::= BITSTRING{primeiro(1),ultimo(31)} -- Um dia foi
ensolarado se o bit correspondente a ele no mapa tem valor 1
O tipo OCTET STRING usado para modelar dados de qualquer formato e
comprimento mltiplo de 8 bits. Exemplo:
CorpoDoPacote ::= OCTET STRING
OU
Sobrenome ::= PrintableString
A segunda forma prefervel, quando possvel.
O tipo NULL usado para indicar ausncia de algum elemento numa
sequncia, tal como no exemplo seguinte:
IdentificaoPaciente ::= SEQUENCE
{ nome
OCTET STRING,
numeroQuarto CHOICE
{INTEGER,
NULL --se o paciente j saiu do
hospital-- }}

O tipo SEQUENCE OF usado para modelar uma coleo de variveis cujo


tipo o mesmo, cujo nmero e grande e imprevisvel e cuja ordem e
significativa. Exemplo:
217

NomeNaesMembros ::= SEQUENCE OF ISO646String


-- na ordem em que se integraram

O tipo SEQUENCE usado para modelar uma coleo de variveis cujo tipo
e o mesmo, cujo nmero e conhecido e modesto e cuja ordem e significante,
desde que a composio do conjunto dificilmente varie de uma verso do
protocolo para outra. Exemplo:
NomeDosFuncionarios ::= SEQUENCE
{presidente
ISO646String,
vicePresidente ISO646String,
secretaria
ISU646String }
Tambm pode ser usado o tipo SEQUENCE quando o tipo dos integrantes
difere, mas o nmero e conhecido e modesto e cuja ordem e significante,
desde que a composio do conjunto dificilmente mude de uma verso do
protocolo para outra. Exemplo:
Credenciais ::= SEQUENCE
{nomeUsuario ISO646String,
password
ISO646String,
numeroConta INTEGER }
Se os elementos de uma sequncia so em nmero fixo mas de vrios tipos,
um nome de referncia deve ser atribudo a cada elemento cujo objetivo no
seja completamente evidente de seu tipo. Exemplo:
Arquivo ::= SEQUENCE
{ TipoConteudo,
outros
AtributosArquivo,
conteudo
ANY
}

O tipo SET usado para representar uma coleo de variveis cujo nmero e
conhecido e modesto e cuja ordem no e significante. Neste caso, cada
varivel deve ser rotulada neste contexto. Exemplo:
NomeUsuario ::= SET
{ nomePessoal
[0] IMPLICIT ISO646String,
nomeOrganizao [1] IMPLICIT ISO646String,
nomePais
[2] IMPLICIT ISO646String }

A palavra OPTIONAL pode ser colocada aps uma varivel do conjunto cujo
aparecimento e opcional. Se os membros de um tipo SET so em nmero fixo,
tambm deve ser atribudo um nome a cada membro cujo fim no e evidente
de seu tipo. Exemplo:
AtributosArquivo ::= SET
{proprietario
[0] IMPLICIT
NomeUsuario,
tamanhoDoConteudoEmOctetos [1] IMPLICIT
INTEGER,
[2] IMPLICIT
ControleAcesso }
O tipo SET OF pode ser usado para representar uma coleo de variveis
cujos tipos so os mesmos e cuja ordem no e significante.Ex:
PalavrasChave ::= SET OF ISO646String --em qualquer ordem

218

O tipo rotulado usado para definir um tipo de dados de uso geral,


independente de aplicao que deve ser distinguvel de qualquer outro, por
meio de sua representao. Exemplo:
ChaveCriptografia ::= [UNIVERSAL 24] IMPLICIT OCTET STRING -sete octetos
Tambm podem ser usados tipos rotulados para definir um tipo de
dados de uso amplo e disperso, num particular contexto de apresentao e
que deve ser distinguvel (por meio de sua representao) de todos os
outros tipos de dados usados naquele contexto de apresentao. Exemplo:
NomeArquivo ::= [APPLICATION 8] IMPLICIT
SEQUENCE
{ nomeDiretorio ISO646String,
nomeRelativoArquivoDiretorio ISO646String }
Os rtulos especficos de um contexto so usados para distinguir os
membros de um conjunto. Os rtulos numricos devem comear de zero se
sua nica meta e distinguir os tipos. Exemplo:
RegistroCliente ::= SET
{nome
[0] IMPLICIT ISO646String,
enderecoPostal [1] IMPLICIT ISO646String,
numeroConta
[2] IMPLICIT INTEGER,
debito
[3] IMPLICIT INTEGER --em
centavos-- }
Quando um particular membro do conjunto recebeu um rtulo a nvel
de
aplicao no necessita receber rtulo especifico de contexto.Ex:
RegistroProduto ::= SET
{
CodigoUniforme,
descrio
[0] IMPLICIT ISO646String,
numeroEstoque [1] IMPLICIT INTEGER }
CodigoUniforme ::= [APPLICATION 13] IMPLICIT
INTEGER
Rotulao especifica de contexto tambm e usada para distinguir as
alternativas de uma escolha (CHOICE). Rtulos numricos comeam em
zero se seu nico propsito e distinguir os diversos tipos. Exemplo:
AtributoDeCliente ::= CHOICE
{nome
[0] IMPLICIT ISO646String,
enderecoPostal [1] IMPLICIT ISO646String,
numeroDaConta [2] IMPLICIT INTEGER,
debito
[3] IMPLICIT INTEGER -- em
centavos--}
Os rtulos de uso privativo so usados para rotular tipos de dados que
so de uso apenas no escopo de uma particular organizao ou pais e que
devem ser distinguiveis de todos os demais tipos de dadso usados por
aquela organizao ou pais. Exemplo:
NumeroCartaoAcme ::= [PRIVATE 2] IMPLICIT INTEGER

219

O tipo CHOICE (seleo) e usado para representar uma varivel que e


selecionada dentre uma coleo de variveis cujo nmero e conhecido e
modesto. Cada varivel do conjunto deve ser identificada por um rtulo
especifico do contexto. Exemplo:
IdentificadorArquivo ::= CHOICE
{ nomeRelativo [0] IMPLICIT ISO646String, -nome do arquivo
nomeAbsoluto [1] IMPLICIT ISO646String, -nome do arquivo e do
diretorio que o contem<
numeroSerial [2] IMPLICIT INTEGER
--identificador atribuido pelo sistema }
O tipo seleo e usado para representar uma varivel cujo tipo e um
dentre alguma particular alternativa de um CHOICE previamente definido.
Exemplo: a definio seguinte possvel
AtributosCorrentes ::= SEQUENCE
{ data-ultimo-uso
AtributoArquivo,
nome-arquivo
AtributoArquivo }
se existir a seguinte definio:
AtributoArquivo ::= CHOICE
{ data-ultimo-uso
INTEGER,
nome-arquivo ISO646String

O tipo ANY usado para modelar uma varivel cujo tipo no e especificado
ou e especificado em outro ponto usando ASN.1.Exemplo:
ConteudoMensagem ::= ANY
-- um elemento de dados cujo tipo e especificado na norma XXX
O tipo EXTERNAL usado para referenciar uma varivel cujo tipo no
especificado ou que especificado em outro local usando ASN.1.

16.3 Basic Encoding Rules


As "Basic Encoding Rules" provem um algoritmo que especifica como um
valor de qualquer estrutura (tipo) definida usando ASN.1 deve ser codificada para
transmisso. O uso do algoritmo no sentido contrrio permite que qualquer receptor
que tinha conhecimento da definio do tipo ASN.1, possa decodificar os bits que
chegam em um valor daquele tipo.
A codificao de um tipo de dados ASN.1 (usando as Basic Encoding Rules) permite
que um receptor, sem conhecimento da definio de tipo, reconhea o inicio e o fim
das construes (SEQUENCE, SET, etc) e os octetos representando os tipos bsicos
de dados (BOOLEAN, INTEGER). No uso mais simples da notao, e tambm
possvel determinar, a partir da codificao, as construes efetivamente usadas e os
tipos de dados bsicos.)

220

Quando o rtulo ASN.1 ("[]") e empregado, a codificao porta tanto o valor do


rtulo como o valor identificando a construo do tipo de dado bsico que foi
rotulado.
Tambm e possvel, na notao ASN.1, usar o que e chamado rotulao IMPLCITA
a qual indica que, nas situaes em que e usada, a rotulao no e necessria durante a
transferncia dos dados, pois pode ser percebida
pelo contexto e assim, e minimizada a quantidade de octetos transferida. A alternativa
IMPLICIT no deve ser usada com os tipos CHOICE, ANY ou EXTERNAL.
Exemplo:
ExemploTipo ::= CHOICE
{ primeiraEscolha [0] IMPLICIT INTEGER,
segunda-escolha [1] IMPLICIT BOOLEAN }
Neste caso, o valor do rtulo (zero ou um) estar presente na codificao
gerada pela regras de codificao mas os cdigos para identificar que os tipos so
INTEGER ou BOOLEAN sero suprimidos. Evidentemente, o receptor devera
conhecer a definio dos tipos para saber, pelo rtulo, qual o tipo recebido.
Cada valor de dados a ser codificado ter uma representao consistindo de:
T tipo
C comprimento - quando indefinido, termina com 2 octetos nulos
V valor - pode ser em si uma srie de componentes TCV
As regras de codificao sempre conduzem o rtulo do tipo, explcita ou
implicitamente, bem como alguma representao do valor do tipo. Estas regras
constituem outro padro que aplicadas ao valor de um certo tipo definido pela ASN.1
resultam na especificao completa dos valores daquele tipo durante a transferncia.
Exemplo de uso da ASN.1 para descrio de uma estrutura de dados concernente a um
registro de pessoa. O registro contem os seguintes campos:
Nome: John T. Smith
Cargo: Director
Numero: 51
Data de admissao: 17 de setembro 1971
Nome da esposa: Mary Smith
Numero de filhos: 2
Informaes sobre filhos
Nome: Ralph T. Smith
Data de nascimento: 11 de novembro 1957
Informaes sobre filho
Nome: Susan B. Jones
Data de nascimento: 17 de julho de 1959
Nome: John T. Smith
Cargo: Diretor
Nmero: 51
Data de admisso: 17 de setembro 1971
Nome da esposa: Mary Smith
Nmero de filhos: 2
221

Informaes sobre filhos:


Nome: Ralph T. Smith
Data de nascimento: 11 de novembro 1957
Informaes sobre filhos:
Nome: Susan B. Jones
Data de nascimento: 17 de julho de 1959
A descrio formal deste registro, usando a notao padronizada seria:
Registro pessoal::- [APPLICATION 0] IMPLICIT SET
{ Nome,
cargo [0] ISO646 String,
numero NumeroEmpregado,
dataDeIngresso [1] Date,
nomeDaEsposa
[2] Name,
filhos
[3] IMPLICIT SEQUENCE OF
InformaoFilho DEFAULT { }}
InformaoFilho::- SET
{ Nome,
dataNascimento [0] Date}
Nome ::- [APPLICATION 1] IMPLICIT SEQUENCE
{ nome ISO646 String,
inicial ISO646 String,
sobrenome ISO646 String,
NumeroEmpregado::- [APPLICATION 2] IMPLICIT INTEGER
Date ::- [APPLICATION 3] IMPLICIT ISO 646 String AAAAMMDD

O valor ou contedo de um registro deste tipo seria:


{ nome "John", inicial "T", sobrenome "Smith"},
titulo "Director",
numero 51,
dataDeIngresso "19710917",
nomeDaEsposa {nome "Mary", inicial "T", sobrenome "Smith"},
filhos
{{{nome "Ralph",inicial "T",sobrenome "Smith} ,
dataDeNascimento "19571111" },
{{nome "Susan", inicial "B",sobrenome "Jones"},
dataDeNascimento =19590717"
}}

17.3.1 Regras gerais para codificao


A codificao de um valor de todos os tipos, exceto os externos dever
consistir de 4 octetos, os quais devero aparecer na seguinte ordem:
Identificao;
Comprimento;
Contedo;
Fim-de-contedo.

16.3.1.1. Os octetos de identificao indicam a classe e nmero:

222

Bits

Classe

Nmero do Rtulo

Universal

00

Codificao primitiva

Application

01

Codificao complexa

Especfica de Contexto

10

Privada

11

Quando o nmero do rtulo no puder ser expresso com apenas 5 bits, usa-se a
seguinte forma :

1
Classe

Nmero do Rtulo

Nmero do Rtulo

Codificao
0

Nmero do Rtulo
ltimo

No ltimo

16.3.1.2. Octetos de comprimento


Podero ser indicados de duas maneiras:

Um ou mais octetos indicando o comprimento do contedo;

Neste caso, se o comprimento for menor do que 127 o formato ser:

0
Comprimento

223

Caso o comprimento for maior do que 127 :

1
Nmero de octetos
subsequentes

Comprimento

Indicando apenas o final do campo, da seguinte maneira:

Isto indica que o final do contedo ser sinalizado por um octeto de fim-decontedo.
16.3.1.3. Octetos de contedo
Zero ou mais octetos codificando os valores sendo transmitidos.

16.3.1.4. Octetos de fim-de-contedo


Dois octetos zero. Este campo somente estar presente quando o comprimento do
contedo no for conhecido ao ser iniciada sua transmisso; neste caso, no octeto de
comprimento ser sinalizada esta forma de delimitao de contedo.

16.3.2. Regras de codificao para valores

16.3.2.1. Booleano (primitivo)

FALSE : octeto zero;


TRUE : qualquer valor no nulo.

16.3.2.2. Integer (primitivo)


Consiste de um ou mais octetos concatenados cujo contedo devera ser o
complemento de dois do nmero binrio inteiro igual ao valor inteiro. Se mais de um
octeto e usado, os primeiros nove bits no devero ser todos nulos ou todos "1".

16.3.2.3. String binrio ( BIT STRING )

Primrio
224

Nmero de bits no
utilizados no ltimo octeto
ou

Nenhum octeto subseqente, se o string binrio est vazio

Composto

Consiste de zero ou mais codificaes completas de valores de dados, cada


qual sendo a codificao de um string de bits.

16.3.2.4. String de octetos (OCTET STRING)

Primrio: zero ou mais octetos;

Composto: zero ou mais codificaes completas de zero ou mais valores


dados.

16.3.2.5. Valor nulo primitivo


Nenhum octeto e o octeto de comprimento ser zero.

16.3.2.6. Valores seqenciados (composto)


Contm codificao completa de um valor de dados para cada um dos tipos
listados na definio ASN.1, na ordem em que aparecem na definio.
Observao: no e possvel transferir codificao de valores de dados
posteriores na definio ASN.1 sem que os anteriores sejam conhecidos.

16.3.2.7. Seqncia de valores (composto)


Consiste zero, um ou mais codificaes completas de valores com os tipos
listados na definio ASN.1. A ordem das codificaes dos valores deve ser a mesma
que a ordem dos valores a serem codificados ou produzidos por decodificao.

16.3.2.8. Conjunto de valores diferentes ou iguais (SET ou SET-OF) composto

225

Consiste na codificao completa de um valor de dados de cada um dos


tipos listados na definio ASN.1, na ordem escolhida pelo emissor.

16.3.2.9. Escolha (CHOICE)


A codificao de um valor escolhido deve ser a mesma de um valor do tipo
escolhido.

16.3.2.10. Seleo (SELECTION)


A codificao de um valor selecionado devera ser a mesma que a codificao
de um valor do tipo selecionado. A codificao pode ser primitiva ou composta,
dependendo do tipo selecionado.

16.3.2.11. Valor rotulado


A codificao de um valor rotulado deve ser derivada da codificao completa
do correspondente valor do tipo aparecendo na notao dos tipos rotulados
(denominada a base da codificao).

16.3.3 Codificao do registro de pessoal exemplificado segundo as Basic


Encoding Rules
Rotulo

Contedo

Comprimento
60

8185
61

10
16
16

4
1

John

T
A0
42
A1

16
0A
16
01
0A
43

Smith

08
33

Diretor

08

19710917

226

Captulo

17
Camada de Aplicao
17.1 Temas de Projeto da Camada de Aplicaes
Faremos nesta seo uma breve introduo e uma abordagem geral das
aplicaes que sero estudadas neste captulo, apenas para ter uma idia de que tipos
de questes devem ser tratadas no estudo da camada de aplicaes. Esses temas
incluem a transferncia de arquivos, o correio eletrnico e os terminais virtuais, entre
outros. Mais adiante, retornaremos a cada tpico para examin-los em detalhes.
Alm disso, tambm examinaremos brevemente dois blocos de construo que
so oferecidos com freqncia por essas e outras aplicaes. Um deles lida com
gerenciamento de conexes e o outro se relaciona com a concorrncia.
17.1.1 Transferncia, Acesso e Gerenciamento de Arquivos
A transferncia de arquivos e o acesso a arquivos remotos so duas aplicaes
das mais comuns em qualquer rede de computadores. Pessoas que trabalham juntas
em um projeto precisam em geral compartilhar arquivos. Uma sada ter um
equipamento onde o original de cada arquivo esteja contido e fazer com que suas
cpias sejam transferidas para outras mquinas conforme necessrio. Outra
abordagem ter cada arquivo ativo na mquina em que foi criado (ou em que
mantido), e fazer com que os usurios em outras mquinas peam cpias quando
precisarem deles.
Outra situao em que utilizada a transferncia de arquivos em uma
universidade que tenha vrias estaes de trabalho sem unidades de disco espalhadas
pelo campus juntamente com um ou mais computadores com discos de grande
capacidade. Os estudantes podem se registrar em qualquer estao de trabalho e
acessar seus arquivos por meio da rede. Em um projeto alternativo, as estaes de
trabalho podem ser equipadas com pequenas unidades de disco, permitindo aos
estudantes transferirem seus arquivos para suas estaes de trabalho no incio de cada
sesso no terminal e transferi-los de volta para a mquina principal quando tiverem
terminado. Essa disposio significa que um estudante pode trabalhar em qualquer
estao do campus (ou talvez at mesmo no dormitrio), no apenas na estao de
trabalho especfica em que esto seus arquivos.
O acesso a arquivos remotos (como no caso das estaes de trabalho sem
unidades de disco) semelhante transferncia de arquivos, exceto pelo fato de que
somente partes de arquivos so lidas ou escritas, em vez de arquivos inteiros. As
tcnicas usadas para a transferncia de arquivos e acesso a arquivos remotos so
similares, de modo que no faremos grande distino entre elas at chegarmos
discusso sobre a duplicao de arquivos. Alm disso, o acesso a um arquivo
localizado em um computador remoto que tem seus prprios usurios bastante

227

diferente de acessar um arquivo em um equipamento servidor de arquivos dedicado


que no tem nenhum usurio local, e portanto no faremos grande distino entre
esses dois casos. Para simplificar, iremos supor que os arquivos esto localizados em
mquinas servidoras de arquivos, com os usurios em equipamentos clientes
desejando transferir esses arquivos no todo ou em parte, para leitura e escrita.
Em contraste com as camadas de sesso e de apresentao, sobre as quais
havia pouqussimos trabalhos fora do OSI, houve uma intensa pesquisa sobre a
transferncia de arquivos nas universidades e na indstria. Muitos servidores de
arquivos foram construdos e experimentados (Svobodova, 1984). Como resultado,
nossa discusso sobre transferncia de arquivos refletir tanto o trabalho do OSI
quanto s pesquisas fora do OSI.
A idia fundamental dos servidores de arquivos mais modernos a de um
armazenamento de arquivo virtual, um servidor de arquivos abstrato, que esteja
pronto ou em execuo como um processo em um computador de tempo
compartilhado. O armazenamento virtual apresenta a seus clientes uma interface
padronizada e oferece um conjunto de operaes padronizadas que os clientes podem
executar. As transferncias de e para o armazenamento virtual so protocolos
padronizados. Se o servidor de arquivos real tiver uma estrutura interna diferente da
que tem o armazenamento virtual, ele precisar de algum software de camada de
aplicaes para ocultar a verdade dos clientes e tornar visvel somente a interface de
armazenamento virtual. Pela padronizao de uma determinada interface de
armazenamento virtual, como fez OSI, possvel aos programas de aplicao
acessarem e transferirem arquivos remotos sem conhecer todos os detalhes de
numerosos servidores de arquivos incompatveis.
Veremos neste captulo algumas caractersticas do armazenamento virtual do
OSI, e discutiremos ainda alguns temas relacionados com o projeto e a implementao
de servidores de arquivos e protocolos de transferncia de arquivos.

17.1.2 Correio Eletrnico


Quando a ARPANET foi colocada em operao pela primeira vez, seus
projetistas esperavam que o trfego de processo para processo fosse dominar. Mas
estavam errados. Logo a partir do seu comeo, o volume de correio eletrnico entre
pessoas superou o volume de comunicaes entre processos. Conquanto nem a neve,
nem a chuva, nem o calor, nem a escurido da noite possam impedir os estafetas do
servio postal de completarem com presteza suas rotinas determinadas, a capacidade
da ARPANET de entregar uma mensagem de costa a costa em poucos segundos deu
incio a uma revoluo na maneira como as pessoas se comunicam.
Evidentemente, a atrao do correio eletrnico vem do fato de ele ser muito
rpido. Contudo, existem outras vantagens que no so igualmente bem conhecidas. O
telefone tambm proporciona acesso instantneo, mas as pesquisas tm demonstrado
que cerca de 75% de todas as chamadas comerciais falham em seu objetivo
(Lamento muito, mas Sr. Smith est em reunio/fora da cidade/longe de sua mesa.).
O correio eletrnico tem a velocidade do telefone sem exigir que as duas partes
estejam disponveis no mesmo instante. E tambm deixa uma cpia escrita da
mensagem que pode ser enviada a muitas pessoas de uma s vez.

228

Embora o correio eletrnico possa ser visto simplesmente como um caso


especial de transferncia de arquivo, ele tem uma srie de caractersticas especficas
que no so comuns a todas as transferncias de arquivo. Por um lado, os
transmissores e receptores finais so quase sempre pessoas, e no mquinas. Esse fato
resultou em que os sistemas de correio eletrnico fossem construdos como duas
partes distintas, mas intimamente relacionadas: uma para prover a interface humana
(p.ex., composio, edio e leitura da correspondncia), outra para o transporte
postal (p.ex., gerenciar listas de correspondncia e fornecer notificao de entrega).
Outra diferena entre o correio eletrnico e a transferncia de arquivos de uso
geral que as mensagens de correio so documentos altamente estruturados. Em
muitos sistemas, cada mensagem apresenta um grande nmero de campos alm do seu
contedo. Esses campos incluem o nome e o endereo do transmissor, o nome e o
endereo do destinatrio, a data e a hora da postagem, uma lista de pessoas que devem
receber cpias em carbono, a data de expirao, o nvel de importncia, certificados
de segurana e muitos outros.
Muitas companhias telefnicas e PTTs esto interessadas em oferecer o
correio eletrnico como um servio padro para companhias e assinantes individuais.
Para prevenir o caos em nvel mundial, o CCITT definiu em 1984 uma srie de
protocolos para o que ele chama de MHS (Message Handling Systems Sistemas
de tratamento de mensagens) em sua srie de recomendaes X.400. O ISO tentou
incorpor-las a camada de aplicao do OSI sob o nome MOTIS (Message-Oriented
Text Interchange Systems Sistemas de Intercmbio de Texto Baseados em
Mensagens), embora tal incorporao no seja inteiramente direta, dada a carncia de
estrutura na srie X.400. Em 1988, o CCITT modificou o X.400, em uma tentativa de
convergncia com o MOTIS. Discutiremos o MOTIS mais a diante neste captulo.
Material adicional sobre correio eletrnico pode ser encontrado em Huffman (1987);
Hutchison e Desmond (1987); Solman (1987) e Taylor (1988).

17.1.3 Terminais Virtuais


Por um motivo ou outro, a padronizao dos terminais foi um fiasco completo.
Praticamente todo terminal aceita certas seqncias de caracteres chamadas
seqncias de escape, para movimentar o cursor, entrar e deixar o modo de vdeo
reverso, inserir e eliminar caracteres e linhas, etc. Existem padres do ANSI e outros
para essas seqncias de escape, mas ningum os utiliza. Cada fabricante tem suas
prprias seqncias de escape, incompatveis com as de qualquer outro fabricante.
Alm disso, o problema da entrada (teclado) ainda pior do que o problema da sada
(tela).
Como resultado, torna-se difcil para qualquer pessoa escrever um editor de
tela que funcione com um conjunto de teclado e vdeo arbitrrio. Ainda que um dado
terminal tivesse uma tecla rotulada inserir caractere, muito improvvel que
existisse um editor capaz de utilizar esta tecla com a funcionalidade para a qual ela foi
concebida.
De forma semelhante, se um programa de reservas de passagens areas
exibisse uma lista de vos disponveis, seria timo se o usurio pudesse apenas mover
o cursor para o vo desejado usando as teclas de setas no teclado ou o mouse e depois
pressionar a tecla de retorno de cursor ou dar um clique em um boto do mouse para
selecionar o vo. As companhias areas resolvem esse problema adquirindo o
computador principal, todos os terminais e o software de um nico fabricante, de

229

modo que tudo funcione em conjunto. Entretanto, medida que mais e mais pessoas
tm acesso aos sistemas de reservas a partir de seus terminais e computadores
pessoais atravs de redes, o problema da incompatibilidade no pode mais ser
desprezado.
A abordagem do OSI para solucion-lo definir um terminal virtual, na
realidade uma estrutura de dados abstrata que representa o estado abstrato do terminal
real. Essa estrutura de dados pode ser manipulada pelo teclado e pelo computador,
sendo seu estado atual refletido no monitor. O computador pode consultar a estrutura
de dados abstrata para descobrir algo sobre a entrada pelo teclado e pode modificar a
estrutura de dados abstrata para fazer com que a sada aparea na tela. Na seo sobre
terminais virtuais, descrevemos com alguns detalhes como funciona essa idia.

17.1.4 Outras Aplicaes


Vrias outras aplicaes foram ou esto sendo padronizadas. Muitas delas
pertencem a alguma indstria especfica, tal como o ramo bancrio. No entanto, h
algumas outras que so bastante gerais e por isso merecem pelo menos algumas
palavras. Entre estas ltimas esto servios de diretrio, entrada de jobs remota,
grficos e telemtica.
Os servios de diretrio so o equivalente eletrnico da lista telefnica:
fornecem um meio para encontrar o endereo de rede de pessoas e servios
disponveis na rede. Mesmo deixando de lado a questo de que esse servio seria o
PASR, o PAST, o PASS, o PASP ou alguma outra coisa, existe uma variedade
bastante grande de questes de projeto interessantes sobre o servio de diretrio, que
discutiremos neste captulo.
A entrada de jobs remota permite a um usurio trabalhando em um
computador controlar a execuo de um job em outro computador. Em geral, o
usurio de um computador pessoal carregando um job em lote para execuo em um
grande mainframe em algum outro lugar. Em muitos casos, o programa, os arquivos
de dados e as instrues de controle do job tm de ser todas coletadas, possivelmente
de mquinas diversas, organizadas e executadas como uma unidade. Por fim, a sada
deve ser direcionada para seus destinos apropriados.
Nem todas as aplicaes so baseadas em texto. Algumas utilizam
principalmente desenhos. Assim, existe a necessidade de enviar, por exemplo,
esquemas de engenharia atravs de redes para exibio e plotagem remotas. Tem sido
feito um trabalho considervel nessa rea; discutiremos algumas idias relacionadas
com o assunto mais adiante.
A telemtica o nome coletivo para os servios de informao pblica para
uso no lar o no escritrio. O teletexto um sistema simples no qual uma pequena
quantidade de informaes pode ser enviada a um grande nmero de pessoas usando a
difuso convencional de televiso. O videotexto (chamado formalmente de viewdata)
um servio interativo, no qual os usurios podem acessar extensos bancos de dados
pblicos e realizar transaes simples como fazer reservas.

230

17.1.5 Elementos de Servio do OSI ACSE e CCR


Depois de a ISO ter trabalhado nessas aplicaes e em outras por um certo
perodo, tornou-se aparente que muitas aplicaes apresentavam algo em comum.
Quase todas precisavam gerenciar conexes e muitas tinham de coordenar atividades
entre trs ou mais partes. Para evitar que cada nova aplicao fosse forada a
desenvolver esses programas mais uma vez, a ISO decidiu padronizar tais programas
em blocos bsicos de construo. Descrevemos em seguida dois dos mais importantes
entre eles.

Elemento de Servio do Controle de Associao


O ACSE (Association Control Service Element Elemento do Servio de
Controle de Associao) foi projetado para gerenciar conexes, que so chamadas na
camada de aplicaes de associaes. A figura 9-1 mostra as primitivas do ACSE.
Cada primitiva do ACSE faz um mapeamento de um para um com a primitiva
de servio correspondente da camada de apresentao. Em conseqncia, seria
legtimo perguntar que utilidade elas tm. Seguramente, as aplicaes poderiam muito
bem apenas utilizar diretamente as primitivas de apresentao. H duas razes para
sua existncia. A primeira a simetria. Todas as outras camadas tm suas prprias
primitivas para o estabelecimento de conexes, de forma que seria estranho se a
camada de apresentao no as tivesse. A segunda razo que alteraes futuras no
ACSE podem dar mais trabalho para A-ASSOCIATE, como por exemplo, a
autenticao de usurios. Tal funo evidentemente imprpria para a camada de
apresentao.

Compromisso, Concorrncia e Recuperao


O CCR (Commitment, Concurrency and Recovery Compromisso,
Concorrncia e Recuperao) um elemento de servio que coordena interaes
entre mltiplas partes de uma forma imune a falhas, mesmo em face de repetidas
quedas do sistema. Praticamente todas as aplicaes que necessitam operar de modo
confivel utilizam o CCR.
Para ver que tipo de problema o desenvolvimento do CCR buscava solucionar,
considere uma transao bancria simples. Marvin instruiu seu banco para transferir
um milho de dlares de sua conta em Amstelveen. A instruo foi passada para a
cmara de compensao eletrnica que lida com todas as transferncias
interbancrias.
O protocolo fcil de compreender aquele em que a cmara de compensao
envia mensagens simultneas aos dois bancos instruindo-os para debitar ou creditar na
conta apropriada e depois confirmarem que o servio foi feito. O problema surge
quando um dos bancos cumpre a tarefa e o outro incapaz de execut-la por alguma
razo, tal como uma falha na rede. O que precisamos de um protocolo que tenha
sucesso completo ou no faa absolutamente nada, em lugar de um que realiza parte
do trabalho e deixa o sistema bancrio em um estado inconsistente.
O CCR resolve esse problema atravs de aes atmicas. Uma ao atmica
um conjunto de mensagens e operaes que se realizam por completo ou podem ser
levadas de volta ao estado original, como se nenhuma ao tivesse ocorrido.
231

As aes atmicas so implementadas utilizando um comprometimento de


duas fases, uma tcnica utilizada inicialmente em bancos de dados distribudos mas
que aplicvel a praticamente qualquer operao de mltiplas partes. Isto est
ilustrado na Figura 17-2.
Na primeira fase, o mestre (a cmara de compensao do nosso exemplo) diz a
cada escravo (outro banco) o que deseja que seja feito. Cada escravo verifica se pode
executar seu pedido. Se puder, ele registra o pedido no armazenamento estvel
(algum meio, tal como um disco duplicado, reconhecido capaz de sobreviver a
desastres), bloqueia os dados para que nenhum outro pedido de outros mestres possa
interferir, e relata de volta o seu sucesso. Ele tambm registra o estado inicial dos
dados (p.ex., o saldo da conta) no armazenamento estvel. Por outro lado, se no
puder executar o pedido, o escravo simplesmente informa de imediato a falha e no
faz nada alm disso.
Mestre

Escravo

Iniciar ao atmica;
Enviar Pedido 1;
.
.
.
Enviar Pedido n;
Enviar mensagem "Preparar para cumprir";
if (ao pode ser realizada) then
begin
Bloquear dados;
Armazenar estado inicial em disco;
Armazenar pedidos em disco;
Enviar mensagem "OK";
end
else
Enviar "Falha";
if (todos os escravos disseram OK) then
enviar mensagem "cumprir"
else
enviar mensagem "retornar";
Esperar pelas confirmaes;

if (mestre disse cumprir) then


begin
Fazer trabalho;
Desbloquear dados;
end;
Enviar mensagem "confirmao";

Figura 17-2 O comprometimento de duas fases


Quando todas as respostas retornam, o mestre verifica se todos os escravos
podem cumprir as tarefas que lhes so atribudas. Se isso ocorrer, ele envia a cada
escravo uma mensagem de comprometimento, instruindo-o para ir em frente e
realizar a tarefa. Como a perda de mensagem tratada pelas camadas mais baixas, o
nico detalhe que pode sair errado um escravo sofrer uma pane antes de cumprir sua
tarefa. Entretanto, ele pode recuperar-se quando retornar atividade, examinando o
armazenamento, estvel para ver qual era o estado inicial e o que ele devia ter feito.
Se qualquer dos escravos informar uma falha na primeira fase, o mestre aborta
a ao e avisa a todos os escravos para desbloquearem seus dados e voltarem ao
estado inicial. O resultado final que nenhum trabalho feito e nenhum dado
alterado.

232

Primitiva CCR do OSI Da parte de


C-INICIAR
Mestre
C-PREPARAR
Mestre
C-PRONTO
Escravo
C-RECUSAR
Escravo
C-REGISTRAR
Mestre
C-RETORNAR
Mestre
C-REINICIAR
Qualquer um
Figura 17-3 As primitivas do CCR

Descrio
Inicia uma ao atmica
Fim da fase 1; prepara para registrar
O escravo est apto a fazer seu trabalho
O escravo no capaz de fazer seu trabalho
Cumpre a ao
Aborta a ao
Anuncia que ocorreu uma falha

O CCR fornece primitivas para cada uma das aes essenciais do


comprometimento de duas fases que podem ser vistas na Figura 9-3. As seis primeiras
j foram discutidas. A ltima utilizada quando o mestre ou um escravo foi
reinicializado depois de uma queda. Sua finalidade restabelecer o estado da ao
sua condio inicial, para que ela possa ser repetida.

Um elemento arquitetural definido com o propsito de esclarecer melhor o


que se passa no nvel da camada de aplicao. o conceito de ASE (Application
Service Element) que o elemento de busca desta camada.
Uma entidade de aplicao pode conter um ou mais (at vrios) ASEs.
importante prever meios para gerenciar as atividades destes ASEs e suas instncias de
comunicao e associaes.

Processos de aplicao

Sistema
Operacional
Mtodo de
acesso

Aplicao
local

O
S
I

Outros

A camada de aplicaes contm os programas do usurio (tambm conhecidos


como aplicaes ou aplicativos) que fazem o verdadeiro trabalho para o qual os
computadores foram adquiridos. Esses programas utilizam os servios oferecidos pela
camada de aplicaes para suas necessidades de comunicao. Entretanto, certas
aplicaes, tais como a transferncia de arquivos, so to comuns que foram
desenvolvidos padres a fim de eliminar a necessidade de cada empresa desenvolver

233

sua prpria aplicao e para garantir que todos usem os mesmos protocolos.

Processos e entidades de aplicao


O processo de aplicao responsvel pelo funcionamento das aplicaes
distribudas.
A entidade de aplicao a parte do processo responsvel por gerar
comunicaes. Somente a entidade de aplicao normalizada. O processo de
aplicao pode ser elaborado de maneira livre.
Elemento de servio da camada de aplicao (ASE Application Service
Element)
Ex: FTAM usa a noo de ASE.
-

ASEs so especficos a cada aplicao;

Uma entidade de aplicao pode conter um ou vrios ASEs;

Objeto de associao nica (SAO Single Association Object)


-

Um SAO o componente de uma entidade de aplicao que serve para


modelar um conjunto de funes e de informaes de controle referentes a
uma nica associao;

Existe um ASE que apresentado em todos SAO que o ACSE,


permitindo gerenciar a associao que une um SAO local a um SAO
remoto;

Todas as regras de coordenao de funcionamento dos ASEs so gerenciados pelo

Processos e entidades de aplicao


O processo de aplicao responsvel pelo funcionamento das aplicaes
distribudas.
A entidade de aplicao a parte do processo responsvel por gerar
comunicaes. Somente a entidade de aplicao normalizada. O processo de
aplicao pode ser elaborado de maneira livre.
Elemento de servio da camada de aplicao (ASE Application Service
Element) um agrupamento que suporta um conjunto de necessidades de
comunicao.
Ex: FTAM usa a noo de ASE.
-

ASEs so especficos a cada aplicao;

234

Uma entidade de aplicao pode conter um ou vrios ASEs;

Objeto de associao nica (SAO Single Association Object)


-

Um SAO o componente de uma entidade de aplicao que serve para


modelar um conjunto de funes e de informaes de controle referentes a
uma nica associao;

Existe um ASE que apresentado em todos SAO que o ACSE,


permitindo gerenciar a associao que une um SAO local a um SAO
remoto;

Todas as regras de coordenao de funcionamento dos ASEs so


gerenciados pelo SACF (Single Association Control Function);

Os ASEs contidos em um SAO colaboram, visando a prestao de servios


a um usurio. Eles vo utilizar a mesma associao estabelecida entre as
entidades de aplicao homologas;

Conceito de associaes mltiplas


MACF (Multiple Association Control Function) permite gerir vrios SAOs, no
caso de uma Entidade de Aplicao que estabelece vrias associaes mltiplas.
A camada de aplicao OSI definida para suportar diferentes aplicaes. No
modelo de referncia OSI, a camada que d suporte para os aplicativos (ou
aplicaes) dos usurios. Os aplicativos que fazem o verdadeiro trabalho para o qual
os computadores foram adquiridos. Os aplicativos utilizam-se dos servios da camada
de aplicao para suas necessidades de comunicao.
Um Processo de Aplicao (AP - Application Process) um processo que
roda na camada de aplicao e uma Entidade de Aplicao (AE) representa os
aspectos de comunicao dos processos de aplicao.
Vrios agrupamentos de funcionalidades foram definidos para preencher as
necessidades das aplicaes. Um elemento de servio de aplicao (ASE - Application
Service Element) um agrupamento que suporta um conjunto de necessidades de
comunicao de uma aplicao. Cada AE composta por um ou mais elementos de
servio de aplicao (ASEs). Alguns exemplos de ASEs so o ACSE - Association
Control Service Element (usado para estabelecer e gerenciar uma associao entre
entidades pares de aplicao), o ROSE - Remote Operation Service Element (usado
para a execuo de operaes remotas), o RTSE - Reliable Transfer Service Element
(oferecendo um servio de transferncia confivel), o CCR - Commitment
Concurrency and Recovery (que possibilita a execuo de vrias operaes de uma
forma atmica).

235

AE (Aplication Entity)
ASE (Application Service Element) + + ASE
( ACSE, ROSE, RTSE, CCR, SMASE, CMISE)

Alguns processos de aplicao (APs), tais como o FTAM - File Transfer


Access Management (usado para a transferncia e manipulao remota de arquivos) e
o MHS - Message Handling System (usado para a transferncia e manipulao de
mensagens) tambm so utilizados por outras aplicaes devido s facilidades que
eles oferecem.

Elementos de Servio para aplicaes de gerenciamento


Uma aplicao de gerenciamento, como qualquer outra aplicao no Modelo
OSI, utiliza-se dos servios oferecidos pelos elementos de servio ASEs (Application
Service Element) da camada 7 do RM-OSI (Reference Model - Open System
Interconnection).
Para o caso especial da aplicao de gerenciamento, dois elementos de servio
genrico so necessrios: o ACSE (Association Control Service Element), que oferece
servios para o estabelecimento e controle das associaes de gerenciamento e o
ROSE (Remote Operations Service Element) que fornece servios para a execuo de
operaes remotas.
Alm destes elementos de servio, dois outros so definidos para dar suporte
s aplicaes de gerenciamento: o CMISE (Common Management Information
Service Element) e o SMASE (System Management Application Service Element).
Na figura abaixo esto representados os elementos de servio ACSE, ROSE,
SMASE e CMISE, utilizados por uma aplicao de gerenciamento, com as
respectivas primitivas de servio.
Para garantir um perfeito entendimento do fluxo das informaes de
gerenciamento trocadas entre gerentes e agentes, necessrio conhecer, com detalhes,
os elementos de servio envolvidos.

236

Aplicao de
gerenciamento

Aplicao de
gerenciamento
A
SMASE
C
CMISE
S
E
ROSE
outras camadas

A
C
CMISE S
ROSE E
outras camadas
SMASE

CMIP - PDU

Primitivas oferecidas pelos elementos de servio:


ACSE
A-ASSOCIATE
A-RELEASE
A-ABORT

ROSE
RO-INVOKE
RO-RESULT
RO-ERROR
RO-REJECT

SMASE (OMF)
PT-GET
PT -SET
PT -CANCEL-GET
PT -ACTION
PT -CREATE
PT -DELETE
PT -EVENTREPORT

CMISE
M-GET
M-SET
M-CANCEL-GET
M-ACTION
M-CREATE
M-DELETE
M-EVENTREPORT

Figura 17.2 - Elementos de Servio para o suporte s aplicaes de


gerenciamento

Controle de Associao (ACSE)


A funo principal do ACSE prover facilidades bsicas para o controle de
uma associao de aplicao entre duas entidades de aplicao, as quais se
comunicam por meio de uma conexo realizada na camada de apresentao.
Os servios ACSE so providos pelo uso do protocolo ACSE em conjunto
com os servios P-CONNECT, P-RELEASE, P-U-ABORT e P-P-ABORT da camada
de apresentao.

Operaes Remotas (ROSE)


O elemento de servio ROSE oferece servios de suporte aplicaes
interativas. De uma forma geral, opera de maneira equivalente a uma chamada de
procedimento remoto (RPC - Remote Procedure Call).
Este elemento de servio bastante til no suporte s aplicaes distribudas.
Existe sempre uma aplicao que solicita a execuo de uma operao a outra
aplicao, que pode devolver ou no o resultado correspondente.
A entidade que solicita uma operao chamada entidade invocadora e a que
237

recebe a solicitao chamada entidade executora.


importante observar que as entidades de aplicao somente podem utilizar os
servios do ROSE se j houver uma associao de aplicao estabelecida. Neste caso,
podem existir 3 classes de associao:
Classe 1: somente a entidade iniciadora da associao pode invocar operaes.
Classe 2: somente a entidade respondedora da associao pode invocar operaes.
Classe 3: ambas as entidades, iniciadora e respondedora da associao, podem invocar
operaes.
So definidas, tambm, cinco classes de operao, que so caracterizadas pelo
tipo de interao (sncrona ou assncrona) e pelo comportamento da entidade
executora. O tipo de interao diz respeito forma como a entidade iniciadora se
comporta aps a solicitao de uma operao, isto , se fica bloqueada aguardando o
resultado da operao (operao sncrona) ou se fica livre para executar outras
operaes (operao assncrona). O comportamento da entidade executora modelado
em termos de emisso de uma resposta operao (sucesso ou falha da operao) ou
se nenhum resultado emitido (operao no confirmada.
O ROSE geralmente utilizado por aplicaes envolvendo o servio de
mensagens MHS (Message Handling Service), o servio de diretrio DS (Directory
Service) ou o servio de informao de gerenciamento CMIS. O usurio do ROSE
dispe de um conjunto de primitivas de servio descritas na tabela 1.
Primitiva
RO-INVOKE
RO-RESULT
RO-ERROR
RO-REJECT-U
RO-REJECT-P

Significado
Invoca uma operao
Resultado de operao bem sucedida
Resultado de operao sem sucesso
Rejeio iniciada pelo usurio
Rejeio iniciada pelo provedor

Tipo de servio
no confirmada
no confirmada
no confirmada
no confirmada
s indicao

Tabela 17.1 - Primitivas de servio do ROSE

Protocolo ROSE
Para cada servio iniciado pelo usurio do ROSE criada uma APDU ROSE,
que mapeada para a primitiva RT-TRANSFER do RTSE ou para o servio P-DATA
de apresentao.

Fluxo da informao de gerenciamento


Uma aplicao de gerenciamento (exercendo o papel de gerente ou de agente),
solicita uma associao com uma entidade par, atravs da primitiva de servio de
associao A-ASSOCIATE.request oferecida pelo ACSE, indicando as unidades
funcionais que suporta e outras informaes relevantes para a associao a ser
estabelecida. A entidade par responde ao pedido atravs da primitiva AASSOCIATE.response, confirmando ou negando o estabelecimento da associao. A
fase de troca de informaes de gerenciamento s pode ser iniciada caso a associao
tenha sido estabelecida com sucesso. Na resposta afirmativa para o estabelecimento
da associao, a entidade respondedora confirma ou restringe o conjunto das

238

funcionalidades que podem ser utilizadas nesta instncia de associao. A figura 2


mostra um exemplo de fluxo de informaes em uma associao entre duas entidades
de aplicao de gerenciamento.

MIS-User
local
A-Assoc.req

ACSE local

outras
camadas

ACSE remoto MIS-User remoto

P-Connect.req

...PConnect.ind
A-Assoc.ind
A-Assoc.resp
PConnect.resp
PConnect.conf
A-Assoc.conf

Figura 17.3- Fase de Associao entre dois MIS-Users

O elemento de servio CMISE composto da especificao de um conjunto de


servios denominado CMIS (Common Management Information Service) e de um
protocolo denominado CMIP (Common Management Information Protocol). O CMIS
composto de um conjunto de primitivas que oferecem servios para a criao (MCREATE) e destruio (M-DELETE) de objetos gerenciados, para a execuo de
aes (M-ACTION) sobre objetos gerenciados e, ainda, operaes de leitura (M-GET)
e modificao (M-SET) de valores de atributos de objetos gerenciados. Um servio
para o cancelamento de um pedido de leitura de valores de atributos de vrios objetos
(M-CANCEL-GET) oferecido de modo opcional, isto , o suporte a este servio no
obrigatrio.
As operaes e notificaes de gerenciamento so solicitadas diretamente ao
CMISE (que utiliza os servios oferecidos pelo ROSE) ou, em sistemas que
apresentam alguma funcionalidade, ao SMASE. O CMISE utiliza os servios
oferecidos pelo ROSE para transferir as operaes e notificaes para o MIS-User
remoto. No caso de serem solicitadas ao SMASE, estas so repassadas por um
servio de Pass-Through para o CMISE. O servio de Pass-Through para as
operaes e notificaes de gerenciamento oferecido pela Funo de Gerenciamento
de Objetos, denominada OMF (Object Management Function). A figura 3 mostra o
cenrio de comunicao entre dois MIS-Users, na solicitao de uma leitura de valor
de atributo.

239

MIS-User SMASE
local

CMISE

ROSE
local

outras
ROSE CMISE SMASE MIS-User
remoto
camadas remoto

PT-Get.
request
M-GET.
request
RO-INVOKE.
request
P-Data.
request
P-Data.
indic
RO-INVOKE.
indic
M-Get.
indic
PT-Get.
indic
PT-Get.
response
M-Get.
response
RO-RESULT.
request
P-Data.
request
P-Data.
indication
RO-RESULT.
indication
M-Get.
confirm
PT-Get.
confirm

Figura 17.4 - Cenrio de comunicao para a operao de leitura de valor de atributo

240

1. A-ASSOCIATE.request
2. P-DATA.request
3. P-DATA.indication
4. A-ASSOCIATE.indication
5. A-ASSOCIATE.response
6. P-DATA.request
7. P-DATA.indication
8. A-ASSOCIATE.confirm
9. PT-SET.request
10. M-SET.request
11. RO-INVOQUE.request
12. P-DATA.request
13. P-DATA.indication
14. RO-INVOKE.indication

1. M-SET.indication
2. PT-SET.indication
3. PT-SET.response
4. M-SET.response
5. RO-RESULT.request
6. P-DATA.request
7. P-DATA.indication
8. RO-RESULT.indication
9. M-SET.confirm
10. PT-SET.confirm
11. A-RELEASE.request
12. P-DATA.request
13. P-DATA.indication
14. A-RELEASE.indication

241

Captulo

18
ATM
LISTA DE ABREVIATURAS
AAL
ACR
ABR
ABT
ACR
ART
ATM
ATC
ATS
ATM-PDU
AS
B-ISDN
B-NT
B-TA
B-TE
BER
BT
CAC
CBR
CBS
CDV
CDVT
CER
CI
CLP
CLR
CMR
CPCS
CPE
CS
CTD
CTP
DBR
DCE
DSU
DTE
EBCI
EBCN

ATM Adaptation Layer


Allowed Cell Rate
Available Bit Rate
ATM Block Transfer
Available Cell Rate
Actual Re-emission Time
Asynchronous Transfer Mode
ATM Transport Capability
Adaptative Traffic Shaping
ATM Protocol Data Unit
ATM Switch
Broadband-Integrated Service Data Network
Broadband-Network Terminating
Broadband Terminal Adaptation
Broadband Terminal Equipment
Bit Error Rate
Burst Tolerance
Connection Admission Control
Constant Bit Rate
Cell Burst Size
Cell Delay Variation
Cell Delay Variation Tolerance
Cell Error Rate
Connection Identifier
Cell Loss Priority
Cell Loss Ratio
Cell Missinsertion Rate
Common Part Convergence Sublayer
Customer Premises Equipment
Convergence Sublayer
Cell Transfer Delay
Controlled Traffic Parameters
Deterministic Bit Rate
Data Communication Equipment
Data Service Unit
Data Terminal Equipment
Explicit Backward Congestion Indication
Explicit Backward Congestion Notification
242

ECN
EFCI
EFCN
ER
ERN
ES
FC
FDDI
FEC
GCRA
GFC
HEC
IETF
ILMI
ISDN
ITU
ITU-T
LAN
LCT
LT
MBS
MCR
MMPP
MMBP
MPEG
NCTP
NNI
NRT-VBR
OAM
OC
OSI
P-NNI
PCI
PCR
PDH
PDU
PLCP
PMD
PRM
PT
PTI
PVC
QoS
QoS-UP
QoS-NP
RM
RT-VBR
SAP
SBR
SCR

Explicit Congestion Notification


Explicit Forward Congestion Indication
Explicit Forward Congestion Notification
Explicit Rate
Explicit Rate Notification
End System
Flow Control
Fiber Distributed Data Interface
Forward Error Correction
Generic Cell Rate Algorithm
Generic Flow Control
Head Error Control
Internet Engineering Task Force
Interim Local Management Interface
Integrated Service Data Network
International Telecommunication Union
ITU- Telecommunication Standardization Sector
Local Area Network
Last Compliance Time
Line Terminating
Maximum Burst Size
Minimum Cell Rate
Markovian Modulated Poisson Process
Markovian Modulated Bernouille Process
Motion Picture Experts Group
Non Controllable Traffic Parameters
Network to Network Interface
Non Real Time-Variable Bit Rate
Operating Administration and Maintenance
Optical Carrier
Open System Interconnection
Private -NNI
Protocol Control Information
Peak Cell Rate
Plesyochronous Digital Hierarchy
Protocol Data Unit
Physical Layer Convergence Protocol
Physical Medium Dependent
Protocol Reference Model
Payload Type
Payload Type Indicator
Permanent Virtual Connection
Quality of Service
Quality of Service - User Parameter
Quality of Service - Network Parameter
Resource Management
Real Time- Variable Bit Rate
Service Access Point
Statistical Bit Rate
Sustainable Cell Rate

243

SDH
SDU
SECBR
SES
SONET
STP
SVC
STM
TAT
TC
TD
TP
TRT
TS
UBR
UNI
UPC
UTP
VBR
VC
VCC
VCI
VP
VPC
VPI
WAN

Synchronous Digital Hierarchy


Service Data Unit
Severely Errored Cell Block Ratio
Source End Station
Synchronous Optical Network
Shielded Twisted Pair
Switched Virtual Connection
Synchronous Transfer Mode
Theoretical Arrival Time
Transmission Convergence ou Traffic Control
Traffic Descriptor
Transmission Path
Theoretical Re-emission Time
Traffic Shaping
Unspecified Bit Rate
User Network Interface
Usage Parameter Control
Unshielded Twisted Pair
Variable Bit Rate
Virtual Channel
Virtual Channel Connection
Virtual Channel Identifier
Virtual Path
Virtual Path Connection
Virtual Path Identifier
Wide Area Network

244

INTRODUO
Atualmente a comunicao despreza distncias e fronteiras, e no depende
mais da movimentao fsica de pessoas ou de mensagens escritas. A base para a
comunicao so as redes especficas, voltadas para tipos determinados de servios,
dando lugar a sistemas baseados em redes digitais de alta velocidade, capazes de
suportar a integrao de mltiplos servios.
Eliminando ou atenuando as limitaes impostas pelo distanciamento fsico e
abolindo fronteiras geogrficas, as redes de computadores vm trazendo alteraes
profundas s relaes de trabalho e s formas de relacionamento interpessoal. As
RDSI-FL, Redes Digitais de Servios Integrados de Faixa Larga (ou B-ISDN,
Broadband Services Digital Network), que suportam trfegos de naturezas diversas,
como voz, imagem, vdeo e dados integrados em um mesmo meio, so uma tendncia
mundial. Em qualquer uma dessas anlises, a tecnologia ATM (Asynchronouns
Transfer Mode) associada intimamente RDSI-FL.
No h dvidas de que a ATM ser a personagem mais importante no mundo
das redes de comunicao num futuro prximo e que desempenhar um papel central
e unificador na evoluo das diversas categorias de redes de computadores atualmente
existentes.
ATM hoje a mais importante tecnologia capaz de aproximar, em torno de
grandes interesses comuns, as industrias de computadores e de comunicaes. Ao seu
redor esto empresas representativas de segmentos industriais que englobam desde
fornecedores de componentes eletrnicos at fabricantes de computadores, incluindo
fornecedores de equipamentos de redes e de telecomunicaes e provedores de
servios de longa distncia. Nesses ambientes, ATM atualmente a tecnologia mais
ativamente pesquisada. Nunca antes tantos fabricantes de computadores estiveram
envolvidos com atividades da ITU-T, International Telecommunication Union Telecommunication
Standardization
Sector
(Unio
Internacional
de
Telecomunicaes Setor de Padronizao em Telecomunicaes), associada s
empresas do setor de telecomunicaes.
Como regra, um salto evolutivo na rea das redes de telecomunicaes resulta
sempre na convergncia entre foras do mercado e progressos tecnolgicos. ATM no
exceo. Pelo lado dos interesses de mercado, o que se pode observar uma
expectativa de demanda crescente imposta por novas classes de aplicaes, sejam elas
de uso residencial ou profissional, existentes ou apenas vislumbradas como TV de alta
definio, videotelefonia, vdeo sob demanda, videoconferncia, transmisso de
imagens mdicas ou para fins educacionais, interligao e redes locais de alta
velocidade, entre muitas outras.
Ao mesmo tempo em que muitos esperam, para um futuro no distante, um
mundo homogneo no qual a infra-estrutura ATM impere absoluta, existe a clara
compreenso de que por um longo perodo, ser ainda necessria e crucial a
coexistncia pacfica com outras tecnologias de comunicao. esse reconhecimento
que tem hoje norteado grande parte das iniciativas de padronizao da tecnologia
ATM.
Este captulo tem por objetivo abranger os principais aspectos que envolvem a
tecnologia ATM, desde os conceitos fundamentais para seu entendimento, at a
interoperabilidade de redes ATM com redes herdadas.

245

1 A EVOLUO DAS REDES DE TELECOMUNICAES


As redes de telecomunicaes sofreram uma grande evoluo desde os tempos
de Alexander Graham Bell at os nossos dias. Passamos de redes analgicas
comutadas manualmente s modernas centrais digitais com transmisso atravs de
cabos de fibra tica.
Para cada tipo de servio especializado (telefonia, telex, comunicao de
dados, etc.) criaram-se redes dedicadas, onde em geral, apenas os meios de
transmisso de longa distncia so compartilhados. Deste modo, chegamos ao cenrio
da Figura 18.1 onde um usurio corporativo necessita contratar diversos servios a,
possivelmente, fornecedores diferentes para atender s diversas necessidades de
comunicao de sua empresa.
Telefone
Rede Telefnica Comutada por Circuitos

Enlace Privado
de microondas ou
satlite

PC

Videoconferncia

Rede de dados
comutada por pacotes
Mainframe

Rede Telex
Telex

Figura 19.1 - redes de comunicao antes da RDSI


A rede telefnica utiliza uma tcnica conhecida como comutao de circuitos
onde canais de voz, com largura de faixa de 4kHz, so alocados de forma dedicada ao
longo do percurso entre os terminais chamador e o chamado, enquanto durar a
conexo (chamada telefnica). Apesar de boa parte dos canais de comunicao entre
as centrais, assim como a prpria central de comutao, serem digitais, os acessos aos
usurios so ainda na sua maioria analgicos. Deste modo, equipamentos como
computadores necessitam transmitir os seus dados digitais analogicamente, atravs de
modems. Posteriormente este sinal analgico ser codificado digitalmente nas centrais
para transmisso na rede telefnica digital. Na central digital destino, ele

246

decodificado para analgico para ser entregue ao usurio remoto onde , demodulado

para digital (pelo modem) para que o computador destino possa processar a
informao recebida. Veja Figura 18.2 abaixo.
Figura 19.2 - Uma chamada entre dois computadores.
Hoje, em quase todos os locais, somente o loop local analgico, sendo todos
os demais troncos digitais, conforme mostrado na Fig. 1.3.

Figura 19.3 - Rota de um circuito tpico de uma chamada a mdia distncia.


realizada uma multiplexao por diviso no tempo (TDM - Time Division
Multipexing) entre as estaes final (End office), interurbana (Toll office) e de
comutao intermediria (Intermediate Switching Office), sendo que todo o trfego
realizado atravs de fibra tica e a largura de banda sempre aumenta no sentido da
estao de comutao intermediria.

1.1 SONET/SDH

247

Nos primrdios da fibra tica, cada companhia telefnica tinha seu prprio
sistema tico TDM. Assim em 1989 a CCITT divulgou um conjunto de
recomendaes chamado SDH (Synchronous Digital Hierarchy - Hierarquia Digital
Sncrona) juntamente com o padro SONET (Synchronous Optical NETwork- Rede
ptica Sncrona). SDH e SONET se diferem em poucos aspectos.
Hoje todo o trfego intercontinental realizado utilizando-se troncos de
altssima velocidade atravs de SONET/SDH. Segue abaixo, tabela com as taxas de
multiplexao da SDH e da SONET.

Tabela 19.1 - Taxas de multiplexao da SDH e da SONET.

2. Conceitos Fundamentais de Redes ATM


2.1 Origem do ATM
Por volta de 1984, por iniciativa do CCITT do ITU e alguns fabricantes de
equipamentos de telecomunicaes, comearam a ser formados grupos de estudos
para tentar delinear um novo conceito de telecomunicaes que ficou sendo conhecido
como Integrated Service Digital Network ou simplesmente ISDN. A partir de 1988
comearam a surgir os primeiros resultados destes grupos sob forma das
recomendaes da srie I do ITU (antigo CCITT). As caractersticas deste novo
conceito ISDN podem ser resumidas em trs aspectos fundamentais: servios

248

integrados em um suporte nico, transmisso e comutao digital ponta a ponta, e


padres universais nos seus aspectos tcnicos e interfaces de acesso.
Foram previstas duas fases de implantao para o ISDN. Inicialmente seriam
integrados principalmente os servios de voz e dados segundo um rede com canais de
taxas mltiplas, porm fixas, at 2,048 Mbit/s, conhecida como N-BISDN (Narrow
band ISDN). Numa segunda fase haveria a integrao de todos os servios: voz, dados
e principalmente audio e imagens em tempo real. Esta rede foi concebida para utilizar
como suporte de transmisso os canais de alta velocidade de 155 Mbit (acesso bsico)
ou 622 Mbit/s (acesso primrio) do suporte digital pblico conhecido como
Synchronous Digital Hierarchy (SDH), e foi denominado de B-ISDN (Broad band
ISDN).
A inovao tecnolgica mais importante que surgiu a partir deste trabalho de
padronizao sem dvida o modo de transferncia assncrona (Asynchronous
Transfer Mode - ATM), que parte integrante do nvel de transporte da B-ISDN. O
ATM, tambm chamado de Cell Relay, uma tcnica de transmisso, transporte e
multiplexao baseada em clulas de tamanho fixas projetado especialmente para
altas taxas. Apesar das intensas atividades de padronizao do ITU, atravs do ITUT1, estes novos conceitos no produziram, nos seus primeiros anos, os impactos
esperados pelos seus idealizadores, por dois grandes motivos:
sua origem predominantemente de gabinetes de estudos do ITU-T, sem uma
participao efetiva das grandes operadoras de telecomunicaes e dos fabricantes
multinacionais de equipamentos,
os altos custos em termos de investimentos exigidos para sua concretizao,
que tornavam praticamente invivel sua implantao na maioria dos pases.
No inicio dos anos 90 esta situao foi dramaticamente alterada a partir de um
fenmeno imprevisto chamado Internet. O crescimento explosivo desta rede trouxe
consigo a disseminao e popularizao dos servios de informtica. O surgimento do
world wide web (www) a partir de 1992, que permite o acesso rpido e fcil a seus
recursos por qualquer pessoa no especializada, tornaram a Internet a primeira rede
com caractersticas de um sistema global de informao. Paradoxalmente porm, foi
tambm a partir do seu enorme sucesso que ficaram mais expostas as limitaes
inerente ao protocolo IP da Internet, que no foi previsto para integrao em tempo
real de mltiplos servios como voz dados e imagens animadas.
Pesquisadores em todo mundo voltaram seus esforos e estudos no sentido de
avaliar antigas e novas propostas que viabilizassem a integrao de mltiplos servios
em uma rede nica. O objetivo principal destes estudos era desenvolver um novo
servio de transporte, digital e de alta velocidade e que atendesse todos os servios,
atuais e futuros, de uma forma integrada. A tecnologia que atualmente est mais
prxima de um consenso entre os pesquisadores e usurios sem dvida o
Asynchronous Transfer Mode (ATM), desenvolvido originalmente pelos grupos de
estudos do ITU-T para B-ISDN.

2.2 Regulamentao e padronizao em ATM

ITU-T neste texto corresponde ao Telecommunication Standards Sector do ITU

249

Os primeiros esforos de padronizao de B-ISDN e ATM datam de 1988 e


foram protagonizados pelo antigo CCITT do ITU atravs das recomendaes da srie
I. Atualmente estas recomendaes esto sob a responsabilidade da International
Telecommunication Union Telecommunications Standards Sector (ITU-TSS).
Paralelamente foi constitudo em 1991 um organismo internacional
denominado ATM Forum, a partir de uma iniciativa, principalmente dos fabricantes
de equipamentos, que tem como objetivo principal, acelerar o uso de produtos e
servios ATM atravs de uma rpida convergncia e demonstrao de especificaes
de interoperabilidade e tambm, para promover uma cooperao entre as indstrias de
equipamentos ATM. O ATM Forum no um organismo de padronizao, porm,
trabalha em cooperao com organismos como o ITU-T e o American National
Standards Institute (ANSI). O ATM Forum e o ITU-T so atualmente os principais
organismos engajados no esforo de padronizao do ATM.
Acompanhando de perto as atividades destes dois organismos, encontramos
tambm o International Engineering Task Force (IETF) da Internet, que est
procurando principalmente solues ATM que permitam integrao de servios sobre
a plataforma TCP/IP da Internet.

2.3 O Conceito ATM


Nos ltimos dois anos formou-se um consenso sem precedentes entre os
fabricantes de equipamentos de comunicao de dados, que o ATM ser a tecnologia
de rede universal. Este consenso est provocando um enorme esforo de
desenvolvimento do ATM, tanto por parte dos fabricantes como dos pesquisadores em
redes. A aceitao, praticamente universal do ATM, vem principalmente do fato de
que o ATM possui caractersticas nicas.
uma tcnica de transferncia baseada em pacotes de tamanho fixo
chamados clulas e estruturado segundo conexes de canais e rotas virtuais
(VCs e VPs) que podem ser multiplexadas de forma dinmica num mesmo
meio fsico.
O fluxo de informao em cada conexo pode ser de banda varivel e de
forma integrada em um mesmo enlace fsico para diferentes tipos de trfego
como; voz, dados, imagens, vdeo, som de alta qualidade, multimdia etc.,
como pode ser observado na Figura 2.1.
uma tecnologia nova projetada para operar nos atuais ambientes
tecnolgicos das telecomunicaes estruturados sobre as modernas sistemas
tico-digitais de transmisso como o SDH/SONET.

250

Diferentes servios convergem para conexes virtuais distintas em um mesmo meio fsico
Taxa

Taxa

Taxa

Tempo

CBR
Canal virtual
com taxa de bit
constante
(baixa)

Taxa

Tempo

CBR
Canal virtual
com taxa de bit
constante
(alta)

Tempo

VBR
Canal Virtual
com taxa de bit
varvel

Tempo

ABR
Canal virtual com
taxa de bit em
rajada
(Avaiable Bit Rate)

Nvel AAL
segmentao e
remontagem

Nvel ATM
multiplexao e
rede de
transporte

MUX

Clula ATM

Nvel Fsico
STM
Sinchronous Transfer Mode
(SDH/SONET)

Figura 2.1 - O conceito bsico de ATM


Tambm se apresenta como uma alternativa eficiente e econmica para
estruturar redes locais com taxas e servios de acordo com as necessidades
do usurio, alm de permitir uma integrao LAN/WAN sem problemas de
interoperabilidade.
Pode-se afirmar que o ATM atualmente uma tecnologia que no est mais
confinada somente ao contexto da B-ISDN e encontrada cada vez mais em
aplicaes como LANs, MANs, LAN-switching, backbones e workstations. O ATM
como tecnologia de transporte para a B-ISDN um conceito mais abrangente, j que o
objetivo principal da B-ISDN a formao de uma rede pblica mundial de
telecomunicaes, com servios integrados para formar um sistema global de
informao.

2.3.1 O Protocol Reference Model (PRM) para B-ISDN


Para entender melhor a funcionalidade do ATM vamos nos utilizar do modelo
de referncia dos protocolos (Protocol Reference Model - PRM) para B-ISDN,

251

sugerido atravs da recomendao I.321 do ITU-TSS, de abril de 1991 [ITU91], que


pode ser observado na Figura 2.2
Este modelo, ao contrrio do modelo tradicional MR-OSI da ISO [ABN86], de
plano nico, apresenta uma estrutura em trs planos: plano de usurio, plano de
gerenciamento e plano de controle. O plano de usurio responsvel pela
transferncia de informaes de usurio.
Plano de Gerenciamento
Sub-plano de gerenciamento de camadas

Plano de Controle
e Sinalizao
Nveis
Superiores

Nvel de
Adaptao
ou AAL

Nveis Superiores dependentes do tipo


de Servio ou Aplicao
Subnvel AAL de Convergncia CS (Convergence Sublayer)
Classes que dependem do tipo de Servio
Subnvel AAL de Segmentao e Remontagem SAR
(Segmentation and Reassembling)
Subnvel ATM de Canal Virtual, VC (Virtual Channel)

Nvel de Rede
ATM

Nvel Fsico
PM

Plano de Usurio

Subnvel ATM de Rota Virtual, VP (Virtual Path)


Subnvel PM de Convergncia de Transmisso, TC (Trans. Conv.)
Subnvel PM Dependente do Meio, PMD
(Physical Medium Dependent)

Figura 2.2 - Modelo de Referncia de Protocolos da B-ISDN segundo a Rec. I.321


O plano de controle encarregado das funes e protocolos de sinalizao
entre os diversos objetos gerenciados e localizados fisicamente em diferentes locais
(ns de rede ou equipamentos de usurio). O plano de gerenciamento em particular,
responsvel pelo estabelecimento das conexes e pelo gerenciamento de todos os
nveis, tanto do plano de usurio, como do plano de controle. Observe-se que as
funes de gerenciamento de recursos e controle de trfego esto vinculados
especialmente a este plano e algumas das suas funes sero abordadas no Captulo 9.
Na Tabela 2.1 so resumidas as principais funes e servios oferecidos nos
diversos nveis2 e subnveis do PRM do ITU-T. Na primeira coluna da Tabela 2.1
indicada uma possvel equivalncia de algumas funes com o modelo tradicional
MR-OSI de 7 camadas, normalmente utilizado em redes de computadores.

Nveis OSI
Equivalentes

Nveis
ATM

Subnveis
ATM

Funes

Enquanto o ITU-T prefere a palavra camada (layer) na descrio do PRM, a ISO prefere a palavra
nvel (level) no MR OSI. Conceitualmente as duas palavras so utilizadas de forma equivalente neste
texto.

252

CS
3e4

AAL
SAR

2e3

ATM

TC
1e2

FSICO
PMD

- Recuperao relgio fonte (controle CDV)


- Montagem e decomposio das PDU SAR
- Deteco de perda e insero de clulas
- Segmentao e remontagem
- Controle de fluxo
- Gerao/Extrao do cabealho de clula
- Gerenciamento de Canais/Rotas virtuais
- Adaptao taxa de clulas com taxa de bit
- Verificao/gerao CRC de cabealho
- Gerao de clulas
- Empacot/Desemp clulas do mdulo de transp.
- Gerao mdulos de transporte (STM/STS)
- Sincronismo de bit
- Acesso fsico a Rede (HDSL ou FTTC)

Tabela 2.1 - Principais funes dos diversos nveis na B-ISDN


Os nveis definidos no PRM do ITU-T, atendem no entanto os mesmos
objetivos do MR-OSI, ou seja, os nveis proporcionam um perfeito isolamento entre
as diversas funes de cada nvel, tornando as funes de um nvel totalmente
transparentes em relao aos de outros nveis.

Tabela X.1. Principais funes dos diversos nveis na B-ISDN.

Nveis OSI
Equivalentes

Nveis
ATM

Subnveis
ATM
CS

3e4

AAL
SAR

2e3

ATM

Funes
- Recuperao relgio fonte (controle CDV)
- Montagem e decomposio das PDU SAR
- Deteco de perda e insero de clulas
- Segmentao e remontagem
- Controle de fluxo
- Gerao/Extrao do cabealho de clula
- Gerenciamento de Canais/Rotas virtuais
- Multiplexao/demultiplexao de clula

253

- Desacoplamento de taxa de clulas


- Adaptao taxa de clulas com taxa de bit
2
TC
- Verificao/gerao CRC de cabealho
FSICO
- Gerao de clulas
-Empacotamento/Desempacotamento
de
clulas do mdulo de transporte.
PMD
- Sincronismo de bit
1
- Acesso rede fsica (HDSL ou FTTC)
Os nveis definidos no PRM do ITU-T atendem, no entanto, os mesmos
objetivos do MR-OSI, ou seja, os nveis proporcionam um perfeito isolamento entre
as diversas funes de cada nvel, tornando as funes de um nvel totalmente
transparentes em relao s de outros nveis.

2.3.2 HIERARQUIA DE TRANSPORTE ATM


O Nvel de rede ATM e o nvel fsico constituem a hierarquia de transporte
ATM, enquanto o nvel de adaptao (AAL) e os nveis superiores, at a aplicao,
constituem a hierarquia de aplicao, como pode ser observado na Tabela X.2.
Tabela X.2. Estrutura da hierarquia de aplicao e transporte em uma rede ATM.

Hierarquia
De
Aplicao

Nveis Superiores
(Aplicaes)

Nvel AAL

Subnvel CS (Convergence Sublayer)

Nvel ATM

Subnvel SAR (Segmentation and Reassembly)


Subnvel de comutao VC (Virtual Channel)

Hierarquia
de
Transporte

Subnvel de comutao VP (Virtual Path)


Subnvel de Rota de Transmisso (Path)
Nvel Fsico
(SONET/SDH)

Subnvel de Linha (Line)


Subnvel de Seco de Regenerao (Section)

Subnvel de Converso Opto/Eltrica (Fsico)


Os protocolos da hierarquia de transporte se comunicam entre os
equipamentos terminais de usurio (TE - Terminal Equipment) e o n da rede atravs
da interface UNI (User Network Interface) ou entre dois ns atravs da interface NNI
(Network Network Interface), como pode ser observado na Fig. X.3. J os protocolos
da hierarquia de aplicao se estabelecem fim a fim entre os equipamentos de usurio
(TE). A base da hierarquia de transporte ATM o nvel ATM, tambm chamado de
nvel de rede ATM, alm do nvel fsico, que atualmente pode ser desde um simples
par tranado privativo at os canais ticos de alto desempenho da hierarquia digital
sncrona (SDH) do sistema de telecomunicaes pblico. Vale a pena lembrar que as
funes do nvel de rede ATM so completamente transparentes em relao s
funes do nvel fsico, conforme exigncia do prprio PRM [ITU91].

254

Nveis
Superiores
AAL

REDE ATM
Protocolo de Adaptao ATM fim a fim

Nveis
Superiores
AAL
ATM

ATM

ATM

ATM

FISICO

FISICO

FISICO

FISICO

N 2

Equipamento
Terminal (TE)

Equipamento
Terminal (TE)

Interface UNI

N 1
Interface NNI

Interface UNI

Figura X.3. Modelagem de uma rede ATM segundo o modelo PRM da I.321.

2.3.4 MODELO DE ARQUITETURA DE UMA REDE ATM

2.34.1 EQUIPAMENTOS DOS USURIOS


Comeando pelos TEs (Terminal Equipments) deve-se ter em conta que so
eles, em ltima instncia, a razo de ser da rede. Esses equipamentos e seus usurios
que, pela necessidade de troca de informaes entre si, suscitam a existncia da rede.
Computadores e estaes de trabalho so hoje exemplos tpicos de TEs em uma rede
ATM. A ligao destes equipamentos de processamento a uma rede ATM exige
adaptao, normalmente na forma de dispositivos e programas adicionais. Por
exemplo, se uma estao de trabalho vai ser incorporada a uma rede ATM necessitar
de uma placa adaptadora, tambm conhecida como NIC (Network Interface Card),
compatvel com as caractersticas internas da estao, qual se liga atravs de
conectores adequados. Em geral, a prpria placa inserida em conectores apropriados
pr-existentes na estao, constituintes do chamado barramento do sistema. De outro
lado, a placa adaptadora permitir a conexo de cabo apropriado ao padro ATM.
Convm lembrar que a simples presena de uma placa adaptadora no basta para o
funcionamento de um TE em uma rede ATM. indispensvel a presena de software
responsvel pela adequada interao do equipamento com a rede. Parte desse
software, quando no todo ele, executada no prprio equipamento que recebe a
placa adaptadora e deve permitir:
controle da placa adaptadora pelo equipamento hospedeiro;
a adaptao das aplicaes executadas na TE conexo ATM, com maior ou menor
grau de transparncia para o usurio;
a incorporao de novas caractersticas funcionais a aplicaes j utilizadas
anteriormente;
a incorporao de novas aplicaes.

255

Eventualmente, em funo da soluo particular adotada no projeto da placa


adaptadora, pode haver uma parcela do software que est sendo executado na prpria
placa, contribuindo para que as funes enumeradas sejam executadas de forma mais
eficiente.
Completando a anlise dos TEs, a sua hoje restrita variedade dever ser
substancialmente expandida no futuro com a esperada macia presena de redes ATM
unificando os mais diversos servios de comunicao, j existentes ou por elas
viabilizados. possvel antecipar a futura presena entre os TEs dos mais diversos
tipos de dispositivos de intercomunicao de voz, dados e imagens: telefone,
videofone, fac-smile, TV de definio normal, terminais de videoconferncia, TV
interativa e TV de alta definio (HDTV).
2.3.4.2 SWITCHES
As switches podem desempenhar variadas funes na rede. Como o prprio
nome do dispositivo sugere, essas funes so resultado da evoluo da idia bsica
da chave ou interruptor, que permite interligar diferentes pontos da rede e alterar essas
conexes conforme a necessidade. As switches so responsveis por dirigir aos seus
destinos finais as informaes que trafegam na rede. Para tanto, usam recursos de
comutao e de armazenamento temporrios destas informaes. De qualquer
maneira, o objetivo propiciar a ligao apropriada entre quaisquer terminais na rede,
concentrando ou expandindo ligaes fsicas, ou ainda provendo pontos de acesso aos
usurios. Para atingir esses objetivos, uma swicth ATM deve ser capaz de
desempenhar duas funes bsicas, examinadas a seguir. A primeira das funes da
switch, e mais prxima das suas origens histricas nas antigas centrais telefnicas, a
chamada comutao espacial. Nesta, toda informao apresentada em uma
determinada porta de entrada ser dirigida, como resultado de uma conexo prvia, a
uma porta de sada especfica. A segunda funo da switch a chamada comutao
temporal. A mesma porta de entrada pode trazer informaes (Fig. X.4).

Figura X.4. Funes do Switch.


A switch ATM pode praticar a comutao temporal, ou seja, alterar a posio
na escala de tempo ocupada por um determinado conjunto de informaes. Estas duas
funes, comutao espacial e comutao temporal, podem ser reunidas como
tcnicas distintas e complementares para se atingir o mesmo objetivo: direcionar as
informaes.
2.34.3 GATEWAYS

256

O gateway propicia a integrao entre uma rede no-ATM e uma rede ATM. Esse
objetivo principal de um gateway no impede que outros objetivos, semelhantes aos
que se busca atingir com as switches, possam ser simultaneamente buscados. Isto de
fato ocorre e, muito freqentemente, gateways incorporam funes tpicas de switches
(comutao espacial e temporal, manipulao de cabealhos e armazenamento
temporrio), ao lado da converso de protocolos de comunicao.
2.3.4.4 INTERLIGAO ENTRE DISPOSITIVOS EM UMA REDE ATM
Figura X.5. Interfaces da tecnologia ATM.

O modelo de interligao da Fig. X.5 mostra dois tipos de interconexo, mais


conhecidos pelas siglas UNI e NNI. A UNI, ou Interface Usurio-Rede, define a
interface entre o TE (Terminal Equipment) e a switch. A NNI, ou Interface RedeRede, define a interface entre switches. Viabilizar a interconexo e a interoperao de
sistemas em rede exige que regras claras sejam estabelecidas, e esse o papel das
interfaces UNI e NNI.
Essas interfaces, assim como os outros aspectos do ATM, tm sido objeto de normas
desenvolvidas principalmente por dois organismos: o ATM Forum e a ITU-T.

2.34.5 UNI USER-NETWORK INTERFACE


O primeiro aspecto a destacar que as normas no fazem qualquer atribuio
apriorstica de espao nas clulas, em funo de aplicaes especficas. Desta forma,
qualquer composio de aplicaes no trfego que passa pela UNI facilmente
suportada, desde que a capacidade mxima de trfego no seja excedida. Essa
caracterstica est entre as que habilitam o ATM a transportar os mais diversos tipos
de informao (som, imagem, voz e dados) simultaneamente.
Quanto aos aspectos explicitamente tratados pelas normas relativas UNI, podem ser
relacionados:
Meio fsico;
Sincronismo;
Montagem e desmontagem do frame (quadro) de transmisso;
Codificao;
Desacoplamento das taxas de transmisso de clulas;

257

Controle de erro no cabealho;


Delineamento de clula;
Estrutura da clula;
Gerncia;
Controle de trfego e congestionamento;
Sinalizao.
Como se pode ver, a natureza desses tpicos bastante variada e abrange questes
que vo do cabo que interliga dispositivos aos procedimentos de gerncia de mais alto
nvel.

2.3.4.6 NNI NETWORK -NETWORK INTERFACE


Diferentemente da UNI, estabelecida h mais tempo, s recentemente a NNI
foi objeto de uma especificao do ATM Forum. A primeira norma, a PNNI (Private
Network-Network Interface), Fase 1 do ATM Forum, destinada a NNIs em redes
privadas, foi publicada no incio de 1996. Assim como a UNI, a norma engloba
questes que vo dos meios fsicos de interligao aos protocolos envolvidos na
operao, manuteno e gerncia da rede. Entretanto, tambm possvel afirmar que
essas questes adquirem outro grau de complexidade na NNI, pelo fato de poder
existir uma trama de ligaes at seu destino. O caminho encontrado deve garantir o
atendimento s condies estabelecidas para a conexo. Todos esses fatos contribuem
para a complexidade da NNI, o que explica, inclusive, a demora para se alcanar uma
padronizao universalmente aceita.

2.3.4.7 REDE PBLICA E REDE PRIVADA


Um conceito que costuma ser usado nas redes ATM a distino entre rede
pblica e rede privada. Tradicionalmente, esses conceitos esto relacionados com o
uso de circuitos compartilhados (rede pblica) ou dedicados (rede privada), mesmo
quando, no segundo caso, a posse e a transmisso das linhas sejam de uma operadora
pblica de telecomunicaes. Especificamente no caso da rede ATM, se esta for
pblica, o acesso de um equipamento privado rede se dar atravs do padro de UNI
pblica, ainda que esse equipamento seja uma switch de um usurio. O padro de NNI
pblica aplicvel apenas em switches de operadoras da rede pblica ATM. J na
rede ATM privada, os padres aplicveis so os de UNI privada e NNI privada
(PNNI).

2.3.5 CAMADA FSICA


A camada fsica equivalente aos nveis fsico e de enlace do modelo de
referncia OSI. Apresenta duas subcamadas: a subcamada de meio fsico (Physical
Medium PM), responsvel pela transmisso adequada de bits pelo meio fsico,
incluindo o alinhamento de bits, sinalizao na linha e converso eletro-tica; e
subcamada de Convergncia de Transmisso (Transmission Convergence TC), que
oferece um conjunto de servios nico camada ATM, realizando funes como

258

desacoplamento da taxa de transmisso em relao taxa de gerao de clulas,


controle de erros do cabealho e delineamento de clulas.
A subcamada PM tem como funo a transmisso e a recepo da seqncia contnua
de bits pelo meio fsico. Ao receber a seqncia de bits transmitidos, essa subcamada
simplesmente a repassa subcamada TC.
Na transmisso, a subcamada de convergncia de transmisso (TC) recebe um fluxo
de clulas vindo da camada ATM. No recebimento de uma seqncia contnua de bits
(ou bytes, dependendo da PM), a subcamada de convergncia TC, baseada em
informaes inseridas pela TC transmissora, recupera as fronteiras das clulas, que
so em seguida passadas camada ATM.

2.3.5.1 SUBCAMADA DE MEIO FSICO


A funo bsica da subcamada PM transmitir um conjunto de bits atravs de
uma linha de transmisso, incluindo converses eletro-tico. Na prtica, a PM
costuma trabalhar no nvel de bytes. Na maioria dos sistemas de transmisso as
informaes passam por algum tipo de codificao para garantir uma certa taxa de
transies no sinal enviado, de forma a facilitar a sincronizao entre as partes. A
subcamada de meio fsico responsvel pela codificao do fluxo de informao
recebido da TC em uma forma adequada para a transmisso no meio fsico, para que
seja possvel a sincronizao entre os circuitos transmissores e receptores.
A codificao tambm est relacionada com uma das formas de delineamento de
clulas que ser vista a seguir.

259

2.3.5.2 SUBCAMADA DE CONVERGNCIA DE TRANSMISSO


As principais funes dessa subcamada so: a gerao e verificao do HEC, o
delineamento de clulas, o embaralhamento do sinal, a gerao e recuperao de
quadros e o desacoplamento da taxa de clulas.

2.35.2.1 GERAO E VERIFICAO DO HEC


O campo HEC um conjunto de bits, que permite a deteco de erros no cabealho,
ou a correo, se apenas um bit tiver sido invertido. Os oito bits do HEC
implementam um mecanismo do tipo Cyclic Redundancy Check (CRC-8) que atua
sobre os 4 primeiros octetos do cabealho. Alm de deteco de erros, o mecanismo
permite tambm correo de erros de 1 bit. Quando um erro detectado, no h
maneira confivel de se determinar se o erro corrigvel (aconteceu a inverso de
apenas um bit) ou irrecupervel (dois ou mais bits em erro). Se decidirmos pela
correo de erro, aceitamos o fato de existir uma probabilidade de que o erro seja em
dois ou mais bits e, portanto, que o resultado da suposta correo seja invlido.
Alguns acreditam que a probabilidade de erros duplos ser to pequena em sistemas
de transmisso com fibras ticas que o risco de correo vale a pena. Outros
discordam, argumentando que no h razo para correr riscos desnecessrios, porque
um erro mal corrigido ocasionar o encaminhamento errado da clula. De qualquer
forma, a camada AAL deve detectar tanto a perda quanto a entrada de clulas erradas.

2.3.5.2.2 DELINEAMENTO DE CLULAS


O delineamento de clulas a funo que permite determinar onde, dentro de um
fluxo de bits ou bytes recebidos, comea e termina uma clula. Existem trs formas
bsicas de efetuar essa tarefa:

2.5.2.1 Gerao e verificao do HEC


O campo HEC um conjunto de bits, que permite a deteco de erros no cabealho,
ou a correo, se apenas um bit tiver sido invertido. Os oito bits do HEC
implementam um mecanismo do tipo Cyclic Redundancy Check (CRC-8) que atua
sobre os 4 primeiros octetos do cabealho. Alm de deteco de erros, o mecanismo
permite tambm correo de erros de 1 bit. Quando um erro detectado, no h
maneira confivel de se determinar se o erro corrigvel (aconteceu a inverso de
apenas um bit) ou irrecupervel (dois ou mais bits em erro). Se decidirmos pela
correo de erro, aceitamos o fato de existir uma probabilidade de que o erro seja em
dois ou mais bits e, portanto, que o resultado da suposta correo seja invlido.
Alguns acreditam que a probabilidade de erros duplos ser to pequena em sistemas
de transmisso com fibras ticas que o risco de correo vale a pena. Outros
discordam, argumentando que no h razo para correr riscos desnecessrios, porque
um erro mal corrigido ocasionar o encaminhamento errado da clula. De qualquer
forma, a camada AAL deve detectar tanto a perda quanto a entrada de clulas erradas.

260

2.5.2.2 Delineamento de clulas


O delineamento de clulas a funo que permite determinar onde, dentro
de um fluxo de bits ou bytes recebidos, comea e termina uma clula. Existem trs
formas bsicas de efetuar essa tarefa:
r)O transmissor inclui uma seqncia de bits delimitadora, que marca o incio e o fim
das clulas. Esse o mtodo tradicional, usado para delimitao de quadros no
nvel de enlace nas redes de comutao de pacotes.
s)Alguns sistemas de transmisso utilizam quadros cclicos, como o caso dos
sistemas que utilizam hierarquias digitais. Quadros podem ser utilizados de duas
formas para delinear as fronteiras de uma clula. A primeira atravs do
posicionamento fixo das clulas atravs das estruturas dos quadros (o que causa
perda de capacidade caso uma clula no se adapte exatamente no quadro). A
segunda a incluso de bits de overhead na estrutura do quadro, de forma a
apontar para as fronteiras das clulas. A utilizao de quadros cclicos pressupe a
existncia de algum mecanismo de delimitao desses quadros. funo da TC
gerar os quadros com a delimitao adequada.
t)Na terceira, o HEC pode ser utilizado para localizar as fronteiras das clulas.
Inicialmente o receptor fica no estado de caa, onde monitora, atravs de uma
janela de tamanho igual a cinco octetos (tamanho do cabealho incluindo o campo
HEC), o fluxo de bits que chegam. Para cada configurao desse cinco octetos, a
corretude do suposto cabealho verificada (atravs do suposto HEC). Quando
uma seqncia correta detectada, a caa termina e o receptor procura por uma
confirmao de que o sincronismo foi realmente atingido. A cada 53 octetos, o
receptor verifica a corretude dos ltimos cinco (que correspondem ao cabealho
da prxima clula).

2.5.2.3 Embaralhamento
A subcamada de convergncia de transmisso pode efetuar o embaralhamento da
seqncia de bits da parte de informao da clula a ser transmitida, de forma a evitar
longas seqncias de uns ou zeros. Esse procedimento tambm diminui as chances de
que uma seqncia de informao seja confundida com o cabealho, quando o
receptor est no estado de caa como no caso exposto anteriormente.

261

2.5.2.4 Gerao e Recuperao de Quadros


Dos aspectos referentes camada fsica, o de maior controvrsia foi a definio da
estrutura de transmisso. A ANSI era a favor da utilizao de uma estrutura baseada
na SDH, mantendo a compatibilidade com a NNI. J a ETSI (European
Telecomunications Standards Institute) recomendava a utilizao de uma forma
totalmente baseada em clulas, sem delimitao de quadros. O ITU-T resolveu adotar
as duas opes de transmisso para a UNI.
A definio de estruturas baseadas em hierarquias digitais, como a SDH ou a
PDH, pressupe a utilizao de TDM sncrono para a construo de uma hierarquia a
partir de um sinal bsico. Na definio de sinal bsico de uma hierarquia, no h
nenhuma restrio sobre a forma como a informao ocupar a capacidade do sinal
definido. A utilizao de hierarquias baseadas em TDM sncrono no implica em
dizer que o modo de transferncia sncrono, pois a alocao da capacidade do sinal
bsico pode ser feita de forma assncrona.
Em sistemas cuja subcamada PM baseada em SDH ou PDH, a TC
responsvel por criar a estrutura de quadros cclicos para a transmisso das clulas
assim como a recuperao das clulas a partir de quadros recebidos. Para estruturas de
transmisso orientada a clulas, a estrutura de quadros no necessria, sendo a
delimitao das clulas obtidas diretamente do HEC.

2.5.2.5 Estruturas Baseadas em TDM Sncrono


As estruturas baseadas em TDM sncrono englobam os esquemas que definem
hierarquias digitais de transmisso baseadas na multiplexao sncrona no tempo de
sinais bsicos. As primeiras aplicaes foram em redes telefnicas.

2.5.2.5.1 Estrutura Baseada na PDH


Alguma marcao deve ser inserida no incio e fim de ciclos para que os sinais
possam ser corretamente separados em cada nvel da hierarquia. Alm disso, cada
multiplexador deve ser capaz de absorver pequenas variaes nas taxas dos sinais de
entrada. Essas variaes podem ser ocasionadas devido a pequenas diferenas nos
relgios de cada uma das fontes dos sinais ou a variaes sofridas pelos prprios
meios fsicos.
Para lidar com os requisitos de ajuste de taxa e sincronizao, os
multiplexadores inserem bits extras de enchimento de forma a ajustar a taxa de cada
uma das entradas dos multiplexadores. Um buffer elstico no qual a taxa de colocao
de bits na entrada menor do que a taxa de transmisso na sada ser utilizada e os
bits extras entraro para completar a taxa de sada que ser maior do que a soma de
todas as taxas de entrada. Os bits extras de enchimento devem ser devidamente
identificados e retirados dos demultiplexadores do mesmo nvel. Isso requer que
algum mecanismo de identificao dos bits de enchimento seja implementado.

262

2.5.2.5.2 Estrutura Baseada na SDH


A SDH nasceu da definio do padro SONET, em resposta necessidade da
definio de uma hierarquia nica com um esquema de combinao de sinais tambm
nico. A estrutura bsica do SONET um quadro de 810 bytes que se repete a cada
125seg. Assim, essa estrutura permite que cada byte do quadro corresponda a um
canal de 64 Kbps. Sabendo-se que o tamanho do quadro de 810 byes, e que a taxa de
amostragem para construirmos uma sada PCM de 8000 amostras por segundo, para
que se mantenha uma taxa assegurada para cada canal, necessrio que os frames se
repitam 8000 vezes por segundo. E cada segmento tem durao suficiente para
transmisso de 8 bits de uma amostra PCM. A taxa do sinal bsico do SONET de
810 bytes x 8000quadros/Seg x 8 bits = 51, 84Mbps/Seg
O sinal bsico denominado STS-1 (Synchronous Transport Signal level 1), e
pode ser dividido em camadas.
A camada de seo do SONET processada por todos os equipamentos da
rede, incluindo regeneradores. O overhead de seo inclui bits de delimitao de
quadro e bits de paridade. Quando o sinal passa pelo processo de embaralhamento,
para evitar longas seqncias de uns e zeros, os bits de overhead de seo so
deixados intactos.
A camada de linha processada por todos os equipamentos da rede, exceto os
regeneradores. Os bits de overhead de linha incluem ponteiros para a delimitao de
estruturas internas ao envelope de carga que se constituem nas unidades de dados
trocadas pela camada de caminho.
A camada de caminho processada apenas pelos terminais, e os bits de
overhead de caminho incluem bits de paridade, bits que identificam o tipo de carga e
etc.

2.5.2.5.3 Estrutura Baseada em Clulas


Na estrutura baseada em clulas, existe um fluxo contnuo de clulas sem qualquer
necessidade de diviso em quadros, sendo o delineamento das clulas realizado
atravs do campo HEC. Como no necessria a diviso em quadros, o padro de
sincronismo deve ser colocado em algumas clulas ATM vagas. Quando a interface
estiver sobrecarregada, clulas carregando sincronismo devem ser foradas
periodicamente.
As recomendaes para estruturas baseadas em clulas aplicam-se interface
UNI, definindo a possibilidade de utilizao das taxas 155,52 Mbps, 602,08 Mbps e
25,6 Mbps.
2.5.2.5.4 Estrutura Baseada no FDDI

263

O ATM Frum definiu uma opo para UNI privativa baseada no FDDI. A idia
utilizar a camada PMD do FDDI como suporte para a transmisso. O protocolo utiliza
o cdigo blocado quatro entre cinco. Um dos smbolos, que no pertence ao conjunto
de cinco bits vlidos para dados, utilizado toda vez que no existem clulas para
transmitir, evitando que o TC tenha que gerar clulas ociosas. Essa codificao
permite que smbolos especiais sejam utilizados para o delineamento de clulas.
Assim, como na estrutura baseada em clulas, no necessria a gerao ou
recuperao de quadros.

2.5.2.6 Desacoplamento da Taxa de Clulas


As normas para a subcamada de meio fsico (PM) , em geral baseiam-se na
transmisso de bytes continuamente sem nenhum perodo ocioso. Em geral, as
tcnicas de transmisso utilizadas so tcnicas de transmisso sncrona que se
caracterizam pelo envio contnuo de blocos de informao. Como a gerao de clulas
para a transmisso assncrona, quando no h clulas a transmitir, a subcamada TC
deve se encarregar de inserir clulas ociosas (identificadas por um padro especial no
cabealho) de forma a manter constante a taxa de gerao de informao para a
subcamada PM.

2.6 Camada ATM


Assim como a camada fsica, a camada ATM toma parte do funcionamento de todos
os elementos da rede, incluindo os comutadores. A camada ATM equivalente s
camadas de rede e transporte do modelo de referncia OSI. As funes da camada
ATM so especificadas pela recomendao I.150 e incluem:
Multiplexao e demultiplexao de clulas.
Adio e remoo do cabealho das clulas.
Chaveamento e encaminhamento de clulas baseado na informao do cabealho
(realizado pelos ns de comutao).
Controle genrico de fluxo (Generic Flow Control - GFC) na UNI.
As informaes que circulam entre as camadas fsica e ATM esto na forma de
clulas ATM. Todo o processamento na camada ATM feito a partir da gerao e
inspeo dos campos do cabealho da clula ATM. Essas clulas podem ter dois
formatos aplicveis a comunicao entre dispositivos pela UNI ou NNI, diferenciadas
atravs do cabealho.
A base do ATM as clulas de tamanho fixo com uma estrutura (Figura 2.6).
Dos 53 bytes que constituem a clula, cinco fazem parte do cabealho e 48 bytes
constituem o campo de informao de usurio. Os cinco bytes do cabealho contm
todas as informaes de controle dos protocolos do nvel ATM que por sua vez
implementam as diversas funes deste nvel.
Os 48 bytes de informao de usurio em momento algum so interpretados no
nvel ATM. O cabealho apresenta os seguintes campos de informao:

264

GFC: Generic Flow Control

4 bits ou 0 bits

VPI:

Virtual Path Identifier

8 ou 12 bits

VCI:

Virtual Channel Identifier

16 bits

PT:

Payload Type

3 bits

CLP: Cell Loss Priority

1 bit

HEC: Header Error Control

8 bits

A seguir sero apresentadas, de forma resumida, as principais funcionalidades


associadas a cada um destes campos.

Clula tipo UNI

Clula tipo NNI

(User Network Interface)

(Network Network Interface)

GFC

VPI

VPI

VCI

VCI

3
4

VCI

VPI

HEC

CLP

4
5

VCI
VCI

3
PTI

VPI

VCI

PTI
HEC

Informao
til

Informao
til

48 bytes

48 bytes

( Pay Load)

( Pay Load)

51

51

52

52

53

53

CLP

LEGENDA
GFC: Generic Flow Control
4 bits na clula UNI, ou 0 bits na clula NNI
VPI: Virtual Path Identifier
8 bits na clula UNI, ou 12 bits na clula NNI
VCI: Virtual Channel Identifier 16 bits
PTI: Payload Type Identifier 3 bits
CLP: Cell Loss Priority
1 bit
HEC: Header Error Correction 8 bits
TOTAL: 40 bits (5 bytes)

Figura 2.6. Estrutura das clulas UNI e NNI

2.6.1 Campo de GFC

265

O campo do Generic Flow Control (GFC) formado pelos quatro primeiros bits do
primeiro octeto do cabealho, e usado em funes de controle de trfego entre
estao terminal e rede, com significado, portanto, apenas na interface UNI. O campo
GFC define um mecanismo que pode ser usado pela rede no sentido de controlar o
fluxo de trfego do usurio segundo diferente perfis de qualidades de servio (QoS).
No interior da rede o campo de GFC suprimido e os quatro bits so
utilizados para expandir o campo do VPI de oito para 12 bits o que permite um
suporte para um nmero maior de conexes VP (VPC), tanto de usurio como para
gerenciamento. Mesmo assim, em vista do tamanho reduzido dos campos VPI e VCI,
h necessidade de reutilizao geogrfica dos mesmos. Esta funo realizada pelos
comutadores ATM.
2.6.2 Identificadores VPI e VCI
As clulas de uma determinada fonte de informao so enviadas para a rede com um
cabealho que contm a informao da conexo virtual a ser seguida atravs da rede e
o canal virtual at chegar no usurio final. O cabealho possui dois campos principais
associados ao conceito de VC e VP: o identificador de rota virtual VPI e o
identificador de canal virtual VCI. O encaminhamento das clulas atravs da rede se
d a partir da informao contida nos campos de VPI e VCI.
2.6.3 O campo Payload Type Identifier - PTI
Este campo identifica o tipo de informao contido no campo de informao da
clula. O primeiro bit em zero indica informao de usurio (clula de usurio),
enquanto o bit em um indica clula com informao de gerenciamento de recursos
(clula RM - Resource Management), ou clula de operao e manuteno (clula
OAM - Operation Administration Maintenace).
O segundo bit do campo PTI das clulas de usurio utilizado em mecanismos
de notificao explcita de congestionamento para a estao final. As clulas, ao
passarem por um n congestionado (ocupao de buffers atingiu um limite superior),
so marcadas atravs deste bit, de modo que a estao final ao receber esta
informao, pode mandar uma mensagem de volta, pedindo para que o terminal da
outra ponta reduza a taxa de emisso de clulas.
O terceiro bit do PTI de clulas de usurio, quando for zero, indica que a
clula continuao de uma seqncia de clulas que compem um determinado
quadro SAR-SDU (Segmentation and Reassembling - Service Data Unit), e se for um,
indica que a ltima clula deste quadro. O quadro SAR-SDU integra o subnvel
SAR do nvel AAL.

2.6.4 Cell Loss Priority CLP


O campo de CLP formado de um bit e define um mecanismo de prioridade no
descarte de clulas quando surgem problemas de congestionamento devido a
266

transbordos de buffers em switch ATM. Tendo em vista a natureza estatstica da


multiplexao das conexes em ATM, praticamente impossvel evitar que ocorram
perdas de clulas devido a transbordos de buffers. Neste caso, as clulas com o bit de
CLP setado (clulas de baixa prioridade) podero ser descartadas pela rede, enquanto
clulas com o bit CLP no setado (clulas de alta prioridade) no sero descartadas na
medida do possvel.
O bit de CLP pode ser utilizado tanto pela rede como pelo usurio. Durante o
processo de estabelecimento de uma conexo VC feito um contrato de trfego entre
estao e rede, definindo as caractersticas de trfego do servio. Baseado neste
contrato, a rede garante os parmetros de qualidade do servio estabelecidos neste
contrato. No entanto, para se proteger, a rede policia os parmetros do contrato para
ver se o fluxo do usurio no viola os termos do contrato. Quando uma clula
detectada violando algum parmetro, a rede poder descartar a clula na prpria
interface, ou aceit-la na base do melhor esforo para entreg-la, marcando a, porm
para descart-la se houver problemas.
O usurio tambm pode tirar vantagem do bit de CLP. Por exemplo, em um
fluxo de vdeo pode-se classificar alguns quadros como mais importantes que outros e
marc-los atravs do CLP. A seqncia de sincronismo temporal, por exemplo, mias
importante que uma seqncia de varredura espacial do sinal de vdeo. Desta forma, o
usurio sinaliza rede que quando houver problemas de congestionamento, a
aplicao prefere que sejam descartadas preferencialmente aquelas clulas marcadas
como sendo de baixa prioridade.

2.6.5 Header Error Correction - HEC


Este campo do cabealho atende principalmente duas funes: (1) deteco e correo
de erro de cabealho e (2) delimitao de clulas. Os oito bits do HEC implementam
um mecanismo do tipo Cyclic Redundancy Check (CRC-8) que atua sobre os quatro
primeiros octetos do cabealho. Alm de deteco de erros, o mecanismo permite
tambm correo de erros de um bit, reduzindo a probabilidade de encaminhamento
errneo de clulas, o que por sua vez reduz drasticamente o efeito de multiplicao de
erros.
A segunda funo do HEC a identificao do incio e do fim das clulas
dentro de um fluxo de bits, que uma funo tpica do nvel de enlace.

2.6.6 Conexes ATM


Conexes ATM podem ser classificadas de acordo com as formas que so
estabelecidas e com o nmero de usurios finais ATM envolvidos em uma
transmisso. Segundo a forma como so estabelecidas, existem dois tipos
fundamentais de conexes ATM:

267

Conexes Virtuais Permanentes (PVCs Permanent Virtual Connections) So


conexes estabelecidas e encerradas por um mecanismo externo, tipicamente um
software de gerenciamento de rede, e geralmente permanecem ativas por longo tempo.
Conexes Virtuais Chaveadas (SVCs Switched Virtual Connections) So
conexes estabelecidas e encerradas automaticamente atravs de um protocolo de
sinalizao e permanecem ativas at que um sinal indique que a conexo deve ser
encerrada.
Segundo o nmero de usurios finais ATM envolvidos na transmisso tambm
existem dois tipos fundamentais de conexes ATM (Figura. 2.7):
Conexes Ponto a Ponto (Point-to-point connections) Conecta apenas dois

usurios finais ATM e podem ser unidirecionais ou bidirecionais


Conexes Ponto para Multiponto (Point-to-multipoint connections) Conecta um
usurio final ATM fonte (n raiz) com mltiplos usurios finais ATM de destino (ns
folhas). A replicao de clulas deve ser feita no n onde a conexo ATM se divide a
fim de possibilitar que todos os ns folhas recebam suas clulas. Tais conexes so
unidirecionais, ou seja, permitem que o n raiz transmita para os ns folhas, mas no
permitem que os ns folhas transmitam para o n raiz ou para outros ns folhas. As
conexes ponto para multiponto desempenham um papel importante na habilidade de
conduzir trfego broadcast e multicast sobre redes ATM.

2.6.7 Conexes Virtuais


Usurio Final ATM

Switch ATM

Usurio Final ATM

- Ponto-a-ponto
- Unidirecional/bidirecional

Switch ATM

Usurio Final ATM

Usurio Final ATM

Usurio Final ATM


- Ponto para multiponto
- Unidirecional

Fig. 2.7 Conexes ATM ponto a ponto e ponto para


multiponto
Uma conexo virtual um canal lgico entre dois usurios finais ATM e
usada para transportar clulas. As recomendaes do ITU-T se referem a estas
conexes lgicas de ponta a ponta entre dois usurios finais ATM como: conexo de

268

canal virtual (VCC Virtual Channel Connection). Uma VCC uma concatenao de
um ou mais canais virtuais (VC Virtual Channel). Um canal virtual simplesmente
descreve o transporte unidirecional de clulas ATM com um identificador comum,
VCI, em cada clula. Um enlace de canal virtual (VCL - Virtual Channel Link) um
canal virtual entre dois pontos (ex. estao e chaveador) em uma VCC onde o VCI
atribudo, trocado ou removido.
O VCI no cabealho da clula tem significado apenas para as clulas fluindo
sobre um enlace de canal virtual (VCL). Em outras palavras, o VCI para as clulas
fluindo em um VCC pode mudar conforme elas passam atravs de diferentes
chaveadores ( Fig. 2.8 e Fig. 2.9 ).

2.6.8 Caminhos Virtuais


Um caminho virtual ATM (VP Virtual Path) um grupo de canais virtuais.
Cada canal virtual associado a um caminho virtual. Mltiplos canais virtuais podem
ser associados com um mesmo caminho virtual. Um caminho virtual est apoiado
sobre um enlace de caminho virtual (VPL Virtual Path Link). Um VPL um
caminho virtual entre dois pontos onde o VPI atribudo, trocado, ou removido. Uma
conexo de caminho virtual (VPC Virtual Path Connection) a concatenao de um
ou mais VPLs.
Os conceitos de caminho virtual e conexo virtual oferecem um mecanismo
flexvel e robusto para o estabelecimento e o chaveamento de conexes dentro de uma
rede ATM. Combinados existem 24 bits para o VPI/VCI na UNI e 28 bits na NNI.

Fig. 2.8 Estrutura de Comutao ATM

269

Captulo

19
Redes Sem Fio e QoS
1.1 Redes sem fio
Com o extraordinrio crescimento ocorrido nos ltimos anos nas reas de
comunicao celular, redes locais sem fio e servios via satlite, a tendncia que em
um futuro prximo, informaes e recursos possam ser acessados e utilizados em
qualquer lugar e a qualquer momento. Dado o atual crescimento do segmento de
computadores pessoais portteis e PDA's (Personal Digital Assistants), estima-se que
em poucos anos, dezenas de milhes de pessoas tero um laptop, palmtop ou algum
tipo de PDA. Independente do tipo de dispositivo porttil, a maior parte desses
equipamentos dever ter capacidade de se comunicar com a parte fixa da rede e,
possivelmente, com outros computadores mveis. A comunicao sem fio elimina a
necessidade do usurio manter-se conectado a uma infra-estrutura fixa e em geral,
esttica. A esse ambiente de computao d-se o nome de computao mvel. A
necessidade de tomada de deciso em tempo real, tem levado usurios dos mais
diversos setores e profisses a buscarem tecnologias que possibilitem o acesso,
tratamento e uso de informaes em tempo reduzido, conforme a necessidade de
quem o utiliza.
O telefone celular um timo exemplo, estimulou nos usurio a busca por
maior comodidade, agilidade e capacidade de mobilidade exigindo cada vez mais o
aumento de qualidade nos mais diversos tipos de tecnologia mvel.
A Internet um exemplo de tecnologia fixa, que tambm teve que evoluir para
se adequar s necessidades latentes e mutantes dos usurios atuais e potenciais. O
quadro a seguir ressalta o acima exposto:
Como se pode perceber atravs da anlise do quadro, existe uma forte
tendncia de crescimento de assinantes na utilizao de novas formas de tecnologia,
tanto fixa quanto mvel [33].
A seguir so relacionados os conceitos bsicos de redes ad hoc, qualidade de
servio, largura de banda e padro IEEE 802.11.

270

1000

Assinantes (milhes)

900
800

Fixos

700
600
500

Mveis

Internet
(Mveis e Fixos)

400
300
200
100
0
1996

1997

1998

1999

2000

2001

2002

2003

2004

Quadro 1: Anlise crescimento na utilizao de novas tecnologias

1.2 Redes Ad Hoc


A seguir apresentado um breve histrico das redes ad hoc, bem como seu
conceito e classificao.

1.2.1 Histrico das redes ad hoc


As redes ad hoc tiveram seu incio com as pesquisas realizadas na dcada de
70 pela United States Defense Advanced Research Projects Agency (U.S DARPA)
com o projeto Packet radio network (PRNET).
Tal projeto tinha como intuito explorar e ampliar os usos e aplicaes de redes
de pacote de rdio em um ambiente ttico militar com o objetivo principal de
melhorar a comunicao de dados.
Em 1983, a agncia americana (U.S Darpa) fez o lanamento do programa
Survivable Adaptive Network, conhecido como SURAN, o qual foi desenvolvido para
ampliar a base tecnolgica que havia sido desenvolvida no projeto PRNET.
O SURAN foi desenvolvido com o intuito de suportar grandes redes e tambm
desenvolver protocolos de rede adaptativos os quais tivessem a capacidade de adaptarse s rpidas e volteis mudanas nas condies de ambientes tticos.
O GloMo (Global Mobile Information Systems) foi o ultimo programa
iniciado pela U.S DARPA em 1994, e foi desenvolvido para satisfazer os requisitos de
defesa para sistemas de informaes consistentes e com capacidade ampla de
expanso.
Com o passar do tempo as aplicaes das redes ad hoc ultrapassaram o uso
meramente militar e passaram a servir a outros fins como busca e salvamento de
pessoas, conferncias entre outras aplicaes.

271

1.2.2 O que so redes Ad Hoc


Ad hoc no um termo necessariamente novo, j utilizado em outras reas
do conhecimento como por exemplo, Administrao. A denominao vem do latim e
significa literalmente para isto, ou ainda, apenas para este propsito, ou seja, tem
o carter de temporalidade. Em outras palavras, ad hoc pode ser entendido como algo
que criado ou ainda utilizado para a resoluo de um problema especfico e
imediato.
Geralmente, numa rede ad hoc no h topologia predeterminada, e nem
controle centralizado, por isso, esse tipo de rede no requer uma infra-estrutura tal
como backbone, ou pontos de acesso configurados antecipadamente.
O tipo de ambiente onde os usurios podem utilizar comunicao sem fio para
acessar recursos distribudos faz parte da linha de pesquisa de Rede Mvel sem fio, e
chamada de Rede Mvel ad hoc. Uma rede mvel ad hoc uma rede onde os nodos
so mveis e podem se comunicar diretamente entre si [20], atravs de uma placa de
interface de rede sem fio que est instalada em todos os dispositivos que fazem parte
desta rede e com capacidade de compartilhar recursos.
Redes mveis ad hoc so tambm conhecidas como MANET (Mobile ad hoc
Network). Numa MANET uma rota entre dois computadores pode ser formada por
vrios hops (saltos) atravs de um ou mais computadores na rede, conforme pode ser
observado na Figura 1.

A
B

Figura 1: Exemplo de uma comunicao entre os computadores de uma MANET

Na figura 1 os crculos demonstram o alcance da comunicao das unidades


mveis e, por exemplo, as mensagens de A para D devem passar pelos nodos B e C
para chegar em D.
Neste tipo de rede, os nodos podem se movimentar livremente e se comunicar
diretamente com outro nodo que esteja dentro de sua rea de alcance. Deste modo, a
topologia da rede muda freqentemente de forma imprevisvel. Isso significa que um
computador intermedirio I, que num determinado instante faz parte de uma rota
entre dois hosts A e B, pode no fazer parte dessa mesma rota mais tarde. [20]

272

1.2.3 Direct Sequence Spread Spectrum (DSSS)


DSSS a segunda forma de espalhamento de freqncia de rdio. Nesta
tecnologia de transmisso um sinal de dados na estao emissora combinado com
uma taxa maior de sequenciamento de bits, o chipping code, que separa os dados do
usurio de acordo com a taxa de espalhamento. Este cdigo um padro redundante
do bit para transmisso, aumentando a resistncia do sinal para transferncia. Se um
ou mais bits no padro so perdidos durante a transmisso, o dado original pode ser
recuperado devido redundncia de transmisso.
A camada fsica DSSS usa uma seqncia de 11 bits para espalhar os dados
antes de transmiti-los. Cada bit transmitido modulado por esta seqncia. Este
processo espalha a energia de rdio-freqncia em torno de uma ampla largura de
banda que pode ser necessria para transmitir o dado. A carga de processamento do
sistema definido como sendo 10 vezes o logaritmo da taxa de espalhamento
(tambm conhecido como taxa de chip) para o dado. O receptor concentra o sinal de
rdio-freqncia recebido para recuperar o dado original. A vantagem desta tcnica
que ela reduz os efeitos de interferncia de fontes de banda estreita.
No quadro dois apresentada uma comparao das caractersticas distintas
entre as duas tecnologias, embora tenham os mesmos objetivos. J a tabela 1,
caracteriza as tecnologias.
FHSS
Complicada
Alta potncia
Alto perodo de latncia
Conexo de entrada lenta
Alto alcance interno
Altas taxas de transferncias

X
X
X
X
X
X
X

DSSS
Fcil e simples
Baixa potncia
Curto perodo de latncia
Conexo de entrada rpida
Curto alcance interno
Baixas taxa de transferncia

273

Quadro 2: Comparao entre FHSS e DSSS [35]


CARACTERSTICAS

FHSS

DSSS

Banda

2.4 GHz

2.4 GHz

Padro

IEEE 802.11

IEEE 802.11b

Modulao de Freqncia
(FM)
Envia dados sobre canais 1
MHz

Modulao de Amplitude
(AM)
Fixado em canal de
17MHz

Servios Suportados

Dado, vdeo, voz

Dado

Mximo
de
Independentes

15

HomeRF, Bluetooth

802.11b

Tcnica de Modulao
Canal da Portadora

Canais

Tecnologia da Indstria

Tabela 1: Caractersticas das tecnologias FHSS e DSSS [42]


A tecnologia FHSS est baseada em freqncias, ou seja, diferentes
freqncias em diferentes instantes de tempo, pr-acordados entre emissor e receptor.
J a tecnologia DSSS, est baseada em um cdigo que identifica o emissor e o sinal
espalhado em vrias freqncias com menor amplitude.
Na seqncia estudaremos Qualidade de Servio (QoS), fator muito importante
na transmisso dos dados em uma rede.

2.5 Qualidade de Servio (QoS Quality of Service)


Em relao a QoS dois conceitos so de fundamental importncia:
O gerenciamento eficiente dos recursos de rede para fornecer servios
adequados, passa necessariamente pela capacidade de controle dos
mecanismos de tratamento de trfego;
Regras previamente definidas para as polticas de rede.
Com base nos conceitos acima apresentados, pode-se definir QoS como os
procedimentos e aes que tem como intuito controlar os meios de tratamentos de
trfego na rede, com objetivo de prestar servios especficos aos usurios, no entanto
sujeito s polticas da rede. Outro aspecto importante a ser explicitado, diz respeito
alocao da banda varivel a qual representa uma forma de implementar a QoS, a qual
deve adaptar-se s condies especficas da rede.
De outra forma, QoS trata de uma poltica para dividir mais racionalmente a
banda disponvel e tentar garantir, para certos servios, a latncia e largura de banda.
Necessria especialmente em momentos de sobrecarga da rede, pois aqueles servios
definidos como prioritrios devero continuar funcionando perfeitamente, mesmo que
isto prejudique a performance de outros de menor importncia [23].
QoS uma maneira de fornecer classes de servios diferenciados em nveis de
prioridade para fluxos de dados. Os servios diferenciados podem ser definidos, em
parte, pelos seguintes parmetros: largura de banda, taxa de erros, atraso e variao no
tempo e na seqncia da entrega das informaes (jitter). QoS pode atribuir nveis de
274

prioridade e ento tentar fornecer estes servios diferenciados para fluxos de dados ou
hosts especficos [13]. No so todas as aplicaes que realmente necessitam de
garantias fortes e rgidas de qualidade de servio (QoS) para que seu desempenho seja
satisfatrio.
A QoS oferecida em redes um importante aspecto de implantao e operao
para as redes de pacote como um todo, tornando-se fundamental para o desempenho
das aplicaes. A QoS se refere habilidade da rede em prover o melhor servio para
cada tipo de trfego, sobre as diferentes tecnologias de rede. Entretanto, para extrair o
mximo de recursos e a garantia de um nvel adequado de servio para os diversos
tipos de aplicaes, necessrio implementar mecanismos que garantam a qualidade
de servios.
A QoS em redes independe do seu tamanho, sendo formada pelo
encadeamento da qualidade em cada um dos hops dentro de uma rota de
comunicao. As redes IP tradicionais utilizam o roteamento Best Effort, o qual tem
seu cerne baseado no princpio das filas FIFO (First In First Out). O emprego de tais
filas tem como objetivo produzir latncia e minimizar a perda de pacotes quando as
redes encontram-se congestionadas a fim de minimizar a ocorrncia de jitter
ocasionado pelo atraso entre os pacotes.
Desta forma, possvel destacar um primeiro requisito tcnico que a QoS
por hop. Por se tratar do menor elemento controlvel dentro de uma rede, o qual pode
integrar dois ou mais canais de comunicao, imprescindvel que cada um tenha
uma forma caracterstica para tratar QoS nas comunicaes.
Outro elemento de destaque a possibilidade de viabilizao de diversas rotas,
dentro do conceito das redes Ad Hoc, existe a possibilidade de existncia de vrios
caminhos paralelos entre dois pontos, dependendo do grau de mobilidade dos ns que
fazem parte dessas rotas, os mesmo podem existir ou deixar de existir com uma
relativa freqncia. O uso de vrias rotas traz como vantagem a sensvel reduo da
carga no caminho entre dois pontos, o que implica obviamente na reduo da
possibilidade de perdas de pacotes e do jitter.
Os mecanismos que possibilitam o tratamento do trfego da rede so
determinantes do nvel de qualidade de servio. Tais mecanismos tm a funo de
implementar e exercer controles considerando as polticas vigentes da rede, que so
duas: por usurios e por aplicaes.
Por analogia, pode-se usar o exemplo da Internet e das Intranets, no qual a
largura de banda de suma importncia. H um uso crescente dos benefcios gerados
pela Internet e imposto pelas turbulncias e urgncia de uso eficaz e racional do
tempo aliados rpida obsolescncia das informaes.
A gigantesca quantidade de dados que precisam ser transmitidos diariamente
atravs da Internet vem crescendo exponencialmente. Novos aplicativos, como
RealAudio, RealVdeo, Internet phone e sistemas de videoconferncia necessitam
cada vez mais largura de banda em comparao aos aplicativos usados nos primeiros
anos de Internet.
Ao passo que aplicativos tradicionais da Internet como WWW, FTP ou Telnet
no toleram perda de pacotes, mas so menos sensveis aos retardos variveis. A
maioria dos aplicativos em tempo real apresenta exatamente o comportamento oposto,
pois podem compensar uma quantidade razovel de perda de pacotes, mas so,
normalmente, muito crticos com relao aos altos retardos variveis.
Isso significa que sem algum tipo de controle de largura de banda, a qualidade
dos fluxos de dados em tempo real depende da largura de banda disponvel no
momento.

275

Larguras de banda baixas, ou mesmo larguras de banda melhores, no entanto,


instveis, causam m qualidade em transmisses de tempo real, com eventuais
interrupes ou paradas definitivas da transmisso.
Mesmo a qualidade de uma transmisso usando o protocolo de tempo real
(RTP) depende da utilizao do servio de entrega IP subjacente. Por isso, se faz
urgente a aplicao de conceitos cada vez mais adequados as necessidades reais e
potenciais no intuito de aumentar a probabilidade de nveis elevados de QoS
especfica para aplicativos em tempo real na Internet.
QoS pode ser conceituada como um conjunto de parmetros que descrevem a
qualidade de um fluxo de dados especficos. A pilha do protocolo IP bsica propicia
somente uma QoS que chamada de "melhor tentativa".
Os pacotes so transmitidos de um ponto ao outro sem qualquer garantia de
uma largura de banda especial ou retardo mnimo, ou seja, os equipamentos de rede
enviam informaes e vo progressivamente aumentando a taxa de transferncia, para
tentar atingir o mximo de desempenho.
No momento de trfego de melhor tentativa, as requisies na Internet so
processadas conforme a estratgia do primeiro a chegar, primeiro a ser atendido.
Isso significa que todas requisies tm a mesma prioridade e processada uma aps
a outra, sendo assim, no h possibilidade de fazer reserva de largura de banda para
conexes especficas ou aumentar a prioridade de uma requisio especial.
Atualmente, h dois princpios bsicos para conseguir QoS:
u)Servios Integrados (IntServ);
v)Servios Diferenciados (DiffServ);
O IntServ um modelo baseado em reserva de recursos, ao passo que, os
servios diferenciados (DiffServ) representam uma proposta na qual os pacotes so
marcados de acordo com a classe de servios pr-determinada.
Os conceitos e caractersticas de cada um deles sero destacados na
seqncia.

2.5.1 Servios Integrados (IntServ)


O modelo de servios integrados caracterizado pela reserva de recursos.
Antes de iniciar uma comunicao, a emissora solicita ao receptor a alocao de
recursos necessria para definir-se uma boa qualidade na transmisso dos dados.
O protocolo RSVP (Resource Reservation Protocol) utilizado, nesse modelo,
para troca de mensagens de controle de alocao dos recursos. A alocao de
recursos, diz respeito largura de banda e ao tempo em que ser mantida a conexo.
Neste perodo de tempo, o emissor daquele servio tem uma faixa de largura de banda
disponvel para transmitir seus dados.
O IntServ caracteriza-se pela alocao de recursos para dois novos tipos de
servios:
os servios de carga controlada para aplicaes que requerem segurana
e destacam o servio de melhor esforo;
os servios garantidos para aplicaes que necessitam de um atraso
constante [46].

276

Figura 6: Sinalizao RSVP [46]


Na figura acima, supe-se que a mquina JAZZ deseje fazer comunicao de
voz atravs da Internet (voz sobre IP) com a mquina CIRANDA. Esta aplicao
requer baixo atraso e baixa variao do atraso (jitter) para que sejam mantidos os
requisitos de qualidade. Ento, JAZZ envia uma mensagem especificando as
caractersticas para o trfego (path) para CIRANDA. Quando a mensagem de path
chega a CIRANDA, inicia-se o procedimento de reserva de recursos (resv) por todo
caminho entre este dois ns da rede. Todos os roteadores entre os dois pontos passam
pelo processo de alocao de recursos e qualquer um deles pode rejeitar a solicitao,
informando para JAZZ que a solicitao no foi aceita. Caso todos os roteadores
tenham condies de disponibilizar os recursos solicitados, alocada a largura de
banda e buffer necessrios para a aplicao.
Durante a transmisso dos pacotes, so feitas classificaes nos roteadores
para cada fluxo, colocando-os em filas especficas para a aplicao. Como o controle
feito basicamente nos roteadores, isso exige grande capacidade de processamento,
armazenamento e bons algoritmos para tratamento de filas, ou seja, aumenta o grau de
complexidade nos roteadores.
O IntServ foi projetado para estabelecer QoS "end-to-end", ou seja, aumentar a
probabilidade de que a qualidade ser adequada, exatamente como foi estabelecido na
configurao original, entre os dois pontos que esto conectados atravs deste sistema.
O que ocorre, que vrias conexes virtuais so estabelecidas como em
Frame-Relay e ATM, e os roteadores armazenam em tabelas o estado de cada
conexo.
Portanto, para estabelecer um canal IntServ entre dois pontos, o aplicativo do
usurio ir perguntar para o roteador se ele pode oferecer o recurso que a aplicao
necessita no momento, e este roteador ir perguntar ao seu prximo, que ir perguntar
ao prximo, at chegar na outra ponta. Se todos tiverem recurso disponvel para
oferecer, o canal estabelecido; caso contrrio, no feita a conexo IntServ [49].
Embora a idia e o conceito sejam muito interessantes, o IntServ no funciona
bem em grandes redes, pois nenhum roteador capaz de guardar uma tabela com
muitas conexes IntServ e comparar a cada pacote IP, em contrapartida, mais
recomendado para redes pequenas em funo de diversos fatores, como por exemplo o
custo.
277

A seguir, apresenta-se com mais detalhe o Protocolo RSVP.

2.5.1.1 Protocolo RSVP (ReSerVation Protocol)


Resource ReSerVation Protocol (RSVP) pode ser conceituado como um
protocolo de sinalizao que opera no nvel trs reservando recursos em redes
habilitadas para tratar da QoS, tem ainda a funo de coordenar a aplicao de
mecanismos de tratamento de trfego em mltiplos dispositivos, com o objetivo de
obter a maior QoS fim-a-fim.
De forma sucinta, o RSVP opera da seguinte maneira: envia uma requisio de
pedido de recursos em somente uma direo e trata de forma distintiva o emissor e o
receptor, mesmo que paralelamente a aplicao atue tanto como emissora quanto
receptora. importante fazer uma ressalva, esse protocolo no transporta dados de
aplicaes, ou seja, executa somente em background, no tendo a funo de enviar
dados.
O RSVP foi desenvolvido para que o host possa se beneficiar de QoS
especficas conforme a aplicao a qual se destina. No entanto, o RSVP no tem a
funo de atuar como roteador e sim para operar com protocolos unicast e multicast,
tanto atuais, quanto futuros. A diferena fundamental que os protocolos de
roteamento determinam o destino dos pacotes enviados enquanto o RSVP tem a
funo especfica de primar pela QoS desses pacotes que so enviados conforme o
roteamento determina.
O mecanismo de funcionamento do RSVP, opera da seguinte maneira:
transmitida uma mensagem PATH que descreve para os receptores o dado a ser
transmitido e o caminho que o mesmo dever tomar. Como resposta, os receptores
enviam mensagens RESV que segue o mesmo caminho de volta da mensagem PATH,
informando que o perfil de trfego solicitado suportado pelo receptor que est
respondendo. Os tipos de informaes suportadas por esse tipo de protocolo so:
a) Informao de classificao (meio de identificao do trfego);
b) O tipo de informao requerido da rede (IntServ);
c) Parmetros quantitativos descrevendo o trfego;
d) Informaes de poltica (identificando o usurio e a aplicao
correspondente).
Os dispositivos que contam com o mecanismo RSVP extraem informaes de
polticas da rede e fazem sua verificao. Tais solicitaes de recursos podem no ser
aceitas diante dessas polticas de rede evitando que a mensagem siga o seu destino.
Quando esse fato ocorre, enviada uma mensagem de rejeio. Quando as mensagens
no so rejeitadas por polticas de rede ou indisponibilidade de recursos d-se a
reserva a qual significa que os recursos que foram solicitados sero alocados para o
trfego pertencente ao fluxo solicitante. Quando d reserva, uma requisio do RSVP
QoS encaminhada para dois mdulos de deciso local:
Admission Control determina se o n tem recurso suficiente para
suportar o QoS solicitado.
Policy Control determina se o usurio tem permisses administrativas
para fazer a reserva.
Se ambas as verificaes procederem positivamente so estabelecidos
parmetros packet classifier e tambm na interface do enlace com o objetivo de obter
o QoS necessrio. No entanto, se alguma rejeio ocorrer retornado uma notificao

278

de erro pelo protocolo RSVP para o processo de aplicao que originalmente solicitou
a requisio.

2.5.2 Servios Diferenciados (Diffserv)


A idia fundamental da Arquitetura de Servios Diferenciados (DiffServ)
definir um conjunto pequeno de mecanismos que possam ser implementados nos ns
da rede e que suportem uma grande variedade de servios oferecendo QoS com
escalabilidade; sem estado para cada fluxo e sinalizao a cada n. O tratamento
oferecido por um n compatvel com essa abordagem, efetuado sobre uma
agregao de fluxos. No mais para um fluxo individual. Os pacotes que no
pertencem a nenhum fluxo contratado recebem o servio padro, o qual equivalente
ao servio de melhor esforo, atualmente oferecido.
O diffserv se difundiu devido a sua praticidade e baixo custo, e hoje
amplamente usado. Toda sua operao baseada em marcar um campo no cabealho
dos pacotes IP, que no era utilizado at ento. Este campo de 8 bits, hoje chamado de
TOS (Type of Service) no Ipv4, conforme pode ser observado na Figura 7, e TCF
(Traffic Class Field) no Ipv6 conforme pode ser observado na Ffigura 8 recebe um
valor numrico que os roteadores usam para saber que tratamento dar a este pacote.
Sua marcao pode ser feita usando como regra o endereo de origem ou destino,
porta de origem ou destino, horrio, MAC Address, e outras, alm de poder combinar
vrias delas [49].
Quando um pacote chega a uma mquina ele ser analisado pelo
Classificador, e dependendo do contedo de seu campo de TOS ou TCF ele ser
encaminha para uma fila. Com isto, os roteadores deixam de ter filas nicas do tipo
FIFO (primeiro a entrar o primeiro a sair) e passam a ter diversas filas, que recebem
pacotes de acordo com sua marcao. Os roteadores que so habilitados a usar
diffserv, tratam o pacote de maneira diferenciada, inserido-o em uma fila de maior ou
menor prioridade, e os roteadores que no tm este recurso, apenas o ignoram, e
repassam o pacote com o campo intacto [47].
Dessa forma, embora o diffserv no seja um mecanismo que garanta 100% a
qualidade da rede, ele muito fcil e prtico de implementar, bastando um sistema
operacional para microcomputadores PCs comuns, com um microcomputador. Ele
tambm escalvel, pois os roteadores no tm que manter em memria e processar o
estado de cada pacote, devem apenas colocar em filas de acordo com marcaes
simples. A figura abaixo ilustra as diferenas e similaridades no preenchimento dos
campos do cabealho do Ipv4 e Ipv6:

IPv4
Version

IHL

TOS

Identification
Time to Live

Protocol

Total Length
Flag

Fragment Offset

Header Checksum

Source Address
Destination Address
Figura 7: Modelo Cabealho do Ipv4 [44]
279

IPv6
Traffic Class
Payload Length

Version

Flow Label
Next
Hop Limit
Header
Source Address

Destination Address
Figura 8: Modelo Cabealho do Ipv6 [44]
A identificao da agregao de fluxos no interior de um domnio DiffServ
efetuada atravs da marcao de um novo campo chamado DS (Differentiated
Services). O campo DS obtido pela renomeao do campo TOS, no caso do Ipv4, ou
no campo do Traffic Class, no caso do Ipv6.
Formato do byte DS:
DSCP (Differenciated Services Code Point)
CU (Currently Undefined)

DSCP

CU

Figura 9: Formato do byte do Differenciated Service (DS) [44]

Figura 10: Domnio de Servios Diferenciados DS [48]

280

A figura acima representa um domnio DiffServ. No entorno do domnio esto


localizados os ns de fronteira 1, 4 e 5. Nesses ns, os fluxos so agregados e estas
agregaes so encaminhadas pelo ns interiores 2 e 3. Esta arquitetura somente
prov a diferenciao de servios em uma nica direo do fluxo de trfego, sendo
portanto assimtrica. Os ns de fronteira assumem, dependendo do sentido do trfego
tratado, o papel de ns de ingresso ou egresso. Na ilustrao da Figura 10, o n 1
representa um roteador de ingresso e o n 4 um roteador de egresso. [48]
No modelo DiffServ o encaminhamento das agregaes feito segundo uma
poltica de Comportamento por N (Per-Hop Behavior, PHB). O resultado de uma
transmisso, isto , o servio fim a fim conseguido atravs da combinao dos PHBs
entre os domnios ao longo do caminho. Atualmente, existem duas propostas de PHB
para a implementao de Servios Diferenciados: o Encaminhamento Expresso
(Expedited Forwarding EF) e o Encaminhamento Assegurado (Assured Forwarding
AF). O primeiro oferece a garantia de uma taxa mnima de transmisso prconfigurada em cada n compatvel com a proposta de Servios Diferenciados que o
suporte. Assim, o PHB EF pode ser utilizado para a obteno de um servio fim-a-fim
com baixa perda, baixo retardo, baixa variao do retardo (jitter) e banda passante
assegurada atravs de um domnio DS. Entre os pontos finais de um domnio DS, o
Servio de Encaminhamento Expresso apresenta-se como um caminho virtual
dedicado que possui a taxa de transmisso pr-configurada. [48]
O PHB de Encaminhamento Assegurado prov quatro classes, cada uma com
uma certa quantidade de recursos (memria e banda passante) alocada. Em cada
classe, os pacotes podem ser marcados com uma de trs preferncias para descarte.
Havendo congestionamento, a preferncia de descarte determina a importncia
relativa entre os pacotes de uma mesma classe. No h o reordenamento de pacotes de
um mesmo fluxo quando estes pertencem a uma mesma classe.
A abordagem Servios Diferenciados tambm possui alguns problemas.
Dentre eles, podemos citar a baixa granulosidade (no possui um bom mecanismo de
distino frente diversidade de fluxos presentes) e o nmero limitado de classes.

2.5.2.1 Classes
Um aspecto diffserv a capacidade de trabalhar com classes de servios tecnicamente conhecido como CBQ (Class Based Queue). Usando classes poderamos
dizer que todo download (ftp) feito por usurios no pode ultrapassar uma velocidade
pr-determinada. Dizer tambm que o e-mail no prioritrio, ou seja, seus pacotes
podem esperar pacotes de navegao web passarem para serem transmitidos.
Como se tudo isto no bastasse, ainda pode-se configurar as classes de forma a
uma emprestar seus recursos a outra em momentos de ociosidade, mas tom-las de
volta se preciso. Outro exemplo seria um provedor de acesso a Internet com um link
de 10Mbit.
Poderiam ser criadas duas classes principais, uma de 8Mbit no mximo para os
clientes, e 2Mbit de velocidade mxima para o escritrio do provedor. Entretanto,
durante a noite no h ningum trabalhando no escritrio, e os 2Mbit destinados a ele
seriam desperdiados.

281

Para resolver este problema, pode-se configurar as classes para que a classe do
escritrio possa emprestar sua banda disponvel para os usurios do provedor depois
do horrio de expediente.[47]

2.5.2.2 Utilidade e aplicabilidade


Os procedimentos relativos a QoS nas redes ad hoc, so especialmente teis e
necessrios para:
Eliminar ou minimizar congestionamentos da rede;
Dar melhor suporte para largura da banda;
Modelar e priorizar os aspectos ligados ao trfego de informaes, entre
outros.
A adoo de procedimentos da QoS tem como funo, a priori, melhorar as
condies de utilizao das redes ad hoc, pois quanto melhor a condio da rede, mais
fcil prever problemas ou gargalos e gerir as mudanas necessrias ao longo do
tempo.

2.6 Aspectos relevantes para latncia e largura de banda


O assunto relacionado a enfileiramento, apresenta-se como de substancial
importncia, dada sua influncia sobre QoS. A utilizao do esquema de
enfileiramento tem a funo de proporcionar determinados nveis de qualidade atravs
da capacidade de transmisso ou da largura disponvel de bandas, considerando
determinados fluxos de trfegos e a conseqente latncia de pacotes sobre a QoS.
esquema de enfileiramento tem a funo de proporcionar determinados nveis de
qualidade atravs da capacidade de transmisso ou da largura disponvel de bandas,
considerando determinados fluxos de trfegos e a conseqente latncia de pacotes
sobre a QoS.
Existem basicamente duas formas para tratar desse assunto. A primeira o
levantamento de informaes que destaque a capacidade de transmisso de um
parmetro para acompanhar a efetividade da transmisso, e o nvel do seu fluxo. A
segunda d-se atravs da mensurao de latncia de pacotes em determinados fluxos.
O nvel de latncia tem relao com a capacidade da interface, a largura de banda
existente e a seqncia na qual o fluxo da interface servido.
Outro elemento a ser considerado e que afeta a latncia a variao desta entre
os pacotes de um mesmo fluxo, ou seja, o jitter e paralelamente o tipo de mecanismo
utilizado para enfileiramento.
2.6.1 Largura de Banda
Largura de Banda ou Bandwidth a faixa de freqncia necessria para a
sinalizao. A diferena entre a freqncia mais alta e mais baixa de uma banda
medida em Hertz [21].
A largura de uma banda de freqncia eletromagntica representa a velocidade
com que os dados fluem, seja numa linha de comunicao ou no barramento de um
computador. Quanto maior a largura de banda, mais informaes podem ser enviadas
282

num dado intervalo de tempo, pode ser expressa em bits por segundo (bps), bytes por
segundo (Bps) ou ciclos por segundo (Hz) [22].
As consideraes a respeito da largura de banda so importantes para a
Qualidade de Servio, pois determinam a qualidade do trfego das informaes.
Quanto maior a largura da banda, menor sero os problemas relativos ao trfego.
Logo, esta deve ser trabalhada no intuito de otimizar as aplicaes e requisitos para
atender as necessidades de gerenciamento da rede. No entanto, perde-se em eficincia
quando h compartilhamentos. Em contra partida, os procedimentos relativos
largura da banda devem ser tratados de forma especfica, respeitando as exigncias de
funcionalidade da rede. Permitem ganho de eficincia nas redes ad hoc, como por
exemplo, agilidade no trfego de informaes.

2.6.2 Trfego de informao


Diferentes tipos ou intensidade de trfegos so gerados se for considerada a
diversidade das aplicaes e usurios que, simultaneamente, demandam diferentes
tipos de recursos de rede. Esta adversidade pode ser percebida atravs da variao das
taxas de cargas a qual so submetidas s redes. Tais variaes se do em funo das
diferenas de tamanhos de pacotes e horrios. Para que exista eficincia na alocao
de recursos no sentido de atender as aplicaes e usurios, quatro requisitos se fazem
necessrios:
Bandwidth (largura de banda) taxa de trfego necessria para uma
aplicao;
Perda de Pacotes - percentual de pacotes de dados perdidos;
Latncia indica o atraso que uma aplicao pode tolerar para transmisso
de pacotes;
Jitter variao da latncia.
O trfego de informaes tambm afeta a qualidade de servios. Quando o
recebimento de informao for maior do que sua capacidade de liberao, ocorre o
congestionamento. Para lidar com este problema existem trs abordagens.
1. Mecanismos de enfileiramento quando ocorre o congestionamento as
informaes so armazenadas na memria dos dispositivos, sendo que o
maior problema a variao de latncia.
2. Descarte de pacotes quando h o congestionamento e a informao se
torna obsoleta, os pacotes so descartados.
3. Classificao do trfego determinao prvia da ordem de prioridade da
informao.
Deste modo, a qualidade do servio determinada em parte pela capacidade de
utilizao otimizada dos mecanismos de controle de trfego. Para tanto existem as
formas de classificao, onde os pacotes so alocados em diferentes filas. Tais filas se
valem de algoritmos especficos que tem como funo determinar os caminhos mais
adequados os quais os pacotes devem percorrer.
A configurao da rede deve levar em considerao dois pontos principais, no
sentido de manter a qualidade do servio:
283

Informao de classificao para que os dispositivos separem o trfego em


diferentes filas;
Filas e algoritmos de filas, que aloquem os pacotes em diferentes filas.
Basicamente, existem duas formas de QoS:
a) Reserva de recursos (Servios Integrados): os critrios de polticas de
gerenciamento de banda determinam a maneira como os recursos sero alocados para
atender os nveis necessrios de QoS das aplicaes.
b) Priorizao (Servios Diferenciados): Novamente os critrios adotados nas
polticas de gerenciamento de banda, determinam de que maneira o trfego
classificado e quais recursos devem ser alocados para atend-lo.
O trfego de informaes afeta substancialmente a qualidade de servios. Por
isso, necessrio ter mecanismos refinados de controle que classifique, enfileire e
escalone de forma distintiva os diversos tipos de trfego adequando-se aos padres de
qualidade nos servios prestados pela rede ad hoc.

2.7 Padro para Redes Locais sem Fio - IEEE 802.11


IEEE 802.11 representa o primeiro padro para produtos de redes locais sem
fio de uma organizao independente e internacionalmente reconhecida, a IEEE (The
Institute of Eletrical and Eletronics Engineers, Inc.).
A maioria dos produtos para redes locais sem fio disponveis no mercado
soluo proprietria spread spectrum operando nas bandas de freqncia ISM
(Industrial, Scientific, and Medical) de 902 MHz e 5,85 GHz [32]. Solues
proprietrias so tipicamente customizadas e obrigam os usurios finais a adquirirem
produtos de uma nica fornecedora de equipamentos. No entanto, assim que os
produtos so introduzidos em conformidade a um padro, os usurios podem escolher
dentre um nmero de fornecedores produtos que so compatveis, favorecendo a
competio. Interoperabilidade, baixo custo e estmulo de demanda de mercado so
algumas das vantagens que solues baseadas em padres oferecem.
O padro IEEE 802.11 define protocolo para dois tipos de redes:

Rede ad hoc: uma rede simples onde as comunicaes so estabelecidas


entre mltiplas estaes em uma certa rea de cobertura, sem o uso de um
ponto de acesso ao servidor. O padro especifica os critrios que cada
estao deve observar, de modo que todos tenham acesso ao meio sem fio.
Ele prov mtodos para gerenciar requisies para o uso da mdia,
garantindo mxima performance para todos os usurios.

Rede Infra-Estruturada (Cliente/Servidor): usa um ponto de acesso para


controle da alocao de tempo de transmisso para todas as estaes e
habilita estaes mveis a realizar roaming (ou seja, a capacidade que uma
estao sem fio tem de sair de sua rede e migrar para outra). O ponto de
acesso usado para manipular trfego do rdio mvel para o backbone,
com ou sem fio, da rede cliente/servidor. O ponto de acesso direciona os
dados entre as estaes e outras estaes sem fio direcionam para o
servidor da rede.

284

O comit de padres IEEE 802 formou o Grupo de Trabalho do Padro para


Redes Locais sem fio 802.11 (802.11 Wireless Local rea Networks Standars Group)
em 1990. Este grupo desenvolveu uma padro global para equipamento de rdio e
redes operando na banda de freqncia no-licenciada de 2,4 GHz para taxas de dados
de 1 e 2 Mbps. O padro foi concludo em junho de 1997 e no especifica tecnologia
de implementao, mas simplesmente especificaes para a camada Fsica e de
Controle de Acesso ao Meio (MAC Mdium Access Control). O padro permite aos
fabricantes de equipamentos de redes locais sem fio construir equipamentos de redes
interoperacionais.

2.7.1 Camada MAC (Mdium Access Control)


A camada MAC projetada para poder assegurar autenticao e servios
sensveis a tempo. Adotou-se o mecanismo de acesso mltiplo com preveno de
coliso CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance), onde
este trabalha da seguinte maneira: Uma estao solicitada para transmitir escuta no
meio. Se o meio est ocupado com a transmisso da outra estao, ento a estao
atrasa sua transmisso por um determinado perodo de tempo [24].
A especificao da camada MAC para 802.11 tem semelhanas ao padro
802.3. O protocolo para 802.11 usa o CSMA/CA. Este protocolo evita colises (ao
contrrio de detectar uma coliso, como fazia o algoritmo usado no 802.3), porque
difcil detectar colises em uma rede de transmisso rdio-frequncia.
A sub-camada fsica usa um algoritmo (CCA Clear Channel Assentment)
para determinar se o canal est livre. Este acompanhado pela medida da energia de
rdio-frequncia na antena e determina a fora o sinal recebido. Se a fora do sinal
recebido menor que um determinado valor , o canal declarado livre e a camada
MAC recebe o estado de canal livre para tranmisso de dados. Caso contrrio, as
transmisses de dados so adiadas de acordo com as regras do protocolo.
Esta tcnica mais seletiva, uma vez que ela verifica se o sinal do mesmo
formato de um transmissor 802.11. O protocolo CSMA/CA (Carrier Sense Multiple
Access / Collision Avoidance) permite minimizar colises pela transmisso dos
quadros RTS (Request To Sender) e CTS (Clear To Sender), dos dados e do sinal
ACK (Acknowledge). No mtodo CSMA/CA pode ocorrer colises e esse mtodo no
garante a entrega correta dos dados. Com isso, uma estao aps transmitir um
quadro, necessita de um aviso de recebimento que deve ser enviado pela estao
receptora. A estao remetente aguarda um tempo (timeout) pelo aviso do
recebimento do quadro por parte das estaes destino. Caso este aviso no chegue no
tempo considerado, a estao origem realiza novamente a transmisso do quadro.
Para melhorar a transmisso de dados, o protocolo DFWMAC acrescenta ao
mtodo CSMA/CA com reconhecimento, um mecanismo opcional que envolve a
troca de quadros de controle RTS e CTS antes da transmisso de quadro de dados
[20]. A comunicao funciona da seguinte forma:

A comunicao estabelecida quando um dos ns sem fio envia um


sinal RTS, sendo que este possui as funcionalidades de reservar o meio
para a transmisso do quadro de dados, e de verificar se a estao destino

285

est pronta para receber o quadro de dados, sendo que nesta ltima
funcionalidade a estao destino pode estar operando no modo de
economia de energia (modo power save). O sinal RTS inclui ainda o
destinatrio e o
o tempo reservado para o envio do quadro de dados. Esta informao utilizada por
outros nodos que podem escutar tanto o transmissor como o receptor para atualizar
seus Net Allocation Vectors (NAV) um temporizador que est sempre
decrementando se no for zero. A um nodo no se permite que inicie transmisso se o
seu NAV for diferente de zero. Refere-se a utilizao de NAV a fim de determinar se
o canal est livre ou ocupado como o mecanismo de Deteco Virtual de Portadora.
Como nodos que podem ouvir ou o transmissor ou o receptor evitam enviar
informao durante a transmisso do quadro de dados, a probabilidade de sucesso
grande.
Entretanto, o aumento de probabilidade obtido s custas de um overhead
considervel
envolvendo as trocas dos quadros CTS e RTS, que pode ser significativo para quadros
de
dados pequenos.
Os servios sem conteno, providos por PCF, so gerenciados pelo Point
Coordinator (PC), que deve operar junto aos pontos de acesso da clula da rede sem
fio e que define qual estao tem o direito de transmitir. Essencialmente, o PC
pergunta a cada estao se esta deseja transmitir um mecanismo tpico de polling.
O PCF controla quadros durante o perodo livre de conteno Contention
Free
Period (CFP) , que seguido por um perodo de conteno, controlado pelo
mecanismo DCF, anteriormente descrito. O PC ganha o controle de CFP e tenta
manter o controle pelo perodo inteiro porque espera um tempo menor para transmitir
do que estaes utilizando procedimento de acesso DCF. Este intervalo de tempo,
pouco menor que DIFS, mas maior que SIFS, denominado de PIFS (PCF
InterFrame Space).
No incio de cada CFP, aps esperar um tempo PIFS, o PC informa, atravs de
um
quadro beacon, qual o tempo total de CFP e quando ocorrer novamente. Todas as
estaes devem colocar como valor de NAV a durao total de CFP a fim de evitar
com que alguma estao tome o controle do meio durante este perodo. Aps um
intervalo de tempo SIFS, o PC pode enviar dados, requisitar que estaes enviem
dados, confirmar dados que recebeu, (empregando apenas um quadro MAC quando
possuir mais de uma tarefa a ser realizada) ou acabar com o CFP. Durante CFP,
somente estaes que estiverem na lista de polling do PC podem transmitir, mas todas
as estaes podem receber dados. O PC pode terminar CFP a qualquer momento,
mesmo que o tempo de durao informado no quadro beacon no tenha se esgotado,
baseado no trfego disponvel e no tamanho de sua lista de polling.
Todos as estaes que esto na lista de polling e, portanto, que respondem a
pedido de transmisso do PC, ignoram o mecanismo de deteco virtual de portadora
(temporizador NAV), verificando apenas se o meio est livre aps um intervalo SIFS.
Estaes fora da lista que recebem quadros de dados devem confirm-los segundo as
regras do procedimento DCF. O mecanismo bsico da camada MAC conhecido
como Distribution Coordination Function (DCF), que prov acesso mltiplo
assncrono e com conteno, com deteco de portadora e preveno de coliso

286

CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance).


Opcionalmente, suportado pelo DCF, pode ser oferecido um mecanismo com servios
livres de conteno, denominado de Point Coordination Function (PCF) [FIS95a].
Atravs do DCF, uma estao que deseja transmitir s pode proceder a transmisso se
o seu temporizador de backoff estiver em zero e se o meio estiver livre por um tempo
maior ou igual constante DIFS (Distributed InterFrame Space). Caso o seu
temporizador ainda no seja zero, mas o meio estiver livre, a estao decrementa
continuamente o temporizador. O valor deste temporizador no pode ser diminudo
enquanto o meio estiver ocupado.
Entretanto, se a estao deseja transmitir e o seu temporizador j for zero e o
meio estiver ocupado, ela deve aguardar at o fim da transmisso atual e escolher um
novo valor para o seu temporizador de backoff, que s poder ser decrementado
enquanto o meio estiver livre.
Empregam-se um mecanismo de confirmao, que indica a recepo exitosa
ou no de cada quadro de dados (pois o transmissor no pode determinar se o quadro
foi recebido corretamente escutando sua prpria transmisso). O receptor transmite
um quadro de confirmao (acknowledgment frame) aps o intervalo de tempo SIFS
(Short InterFrame
Space), que menor do que DIFS, imediatamente aps a recepo do quadro de
dados. Notase que o quadro de confirmao enviado sem o receptor escutar o canal.
Se o quadro de confirmao no for recebido, o transmissor assume que o quadro de
dados foi perdido e uma retransmisso planejada. Denomina-se este mtodo como
Basic Access (BA).
Caso uma estao inquirida no envie dados ou uma estao de fora da lista de
polling no confirme dados recebidos, o PC assume o controle do meio aps intervalo
PIFS.
Caso uma estao inquirida no possua dados a serem enviados, deve retornar
um quadro nulo (null frame), para o PC ter garantias que no houve problemas de
transmisso (como interferncia causada pela sobreposio de clulas de transmisso).
Uma estao define para a rede sem fio, no incio de suas atividades, se deseja
ou no estar na lista de polling, podendo mudar seu estado em relao lista mais
tarde. O PC tambm interfere na constituio da lista, integrando ou descartando
estaes da lista pela observao de seu trfego nos perodos sem e de conteno.
Por fim, observa-se que nem todos as estaes reconhecem o modo de
operao PCF. Neste caso, jamais integraro a lista e, se receberem dados, devero
confirm-los como no regime DCF. Supe-se que jamais obtero o controle do canal
pois, em nenhum momento, o canal dever ficar livre por um tempo igual ou maior do
que DIFS (na verdade, o tempo mximo em que o canal ficar livre deve ser igual a
PIFS).
Percebe-se que, apesar do mecanismo de polling sempre apresentar um
overhead
considervel [CHE94], a escolha deste mecanismo para prover servios livres de
conteno resultado de uma srie de compromissos. Como exemplo, nem todos as
estaes precisam ter o mecanismo de PCF [FIS95a], simplificando a implementao
da camada MAC. Mesmo assim, estas estaes so capazes de receber e confirmar
dados durante o perodo de PCF, pelo fato dos mecanismos de acknowledgment serem
iguais nos dois perodos (DCF e PCF). Uma das alternativas estudadas para prover
servios livres de conteno em redes locais sem fio, o TDMA (Time Division
Multiple Access), alm de exigir um mecanismo rgido de sincronismo em relao a

287

slots de tempo [BAU95], alija estaes, que no o implementem, de se comunicarem


durante o perodo livre de conteno.
As solues adotadas para servios com e sem conteno visam a atender
principalmente requisitos de economia de energia. De fato, o mecanismo de deteco
virtual da portadora possibilita que se desliguem os circuitos de transmisso e
recepo at o temporizador NAV atingir zero, pois a estao no pode transmitir e
no deve receber nenhum quadro durante este tempo.
A troca de quadros especiais RTS e CTS restringe a probabilidade de ocorrer
alguma coliso durante o perodo de envio destes quadros. Pode-se considerar esta
troca como um mecanismo de deteco de coliso, uma vez que s se inicia a
transmisso dos dados aps o transmissor receber CTS em resposta a RTS. Caso este
mecanismo falhe, ou porque o quadro RTS no chegou ao receptor, ou porque o
transmissor no recebeu RTS, assume-se que houve uma coliso (pois algum mais
est transmitindo) e suspende-se temporariamente o envio de mensagem. Alm disso,
este mecanismo de deteco de coliso adequa-se ao fato de que, em equipamentos de
redes locais sem fio, no haver deteco de portadora enquanto se transmite. Por fim,
a troca de quadros evita o problema do terminal escondido [BHA94], onde uma
estao no percebe que o destinatrio de sua transmisso (B) j est recebendo dados
de outra estao (A), por estar fora do alcance de A, e comea a enviar para B.
Ocorre, ento, uma coliso no receptor B.
Por fim, deve-se ressaltar que a subcamada MAC apia-se integralmente na
capacidade do nvel fsico em determinar se o meio est livre ou no. Dado que as
caractersticas do meio mudam constantemente ao longo do tempo, a camada fsica
dever ser implementada de forma bastante robusta para evitar falsas concluses sobre
o estado do meio.

Concluso
O padro 802.11 constitui-se em um dos mais complexos da famlia IEEE 802
[RYP96], por necessitar atender as peculiaridades inerentes ao meio de transmisso. O
Grupo de Trabalho 802.11, ao oferecer duas tcnicas de transmisso de rdiofreqncia para a banda de 2,4 GHz e uma de infravermelha difusa, com vazo de 1 a
2 Mbit/s, acredita que est fechando o leque de aplicaes tpicas de uma rede local
sem fio [HAY96], quer sejam ambientes internos, como escritrios, lojas, quer sejam
ambientes externos, como campi de uma Universidade ou em complexos prediais.
A transmisso infravermelha difusa deve permanecer restrita a nichos de
mercado. A favor desta tcnica de transmisso, pode-se apontar que sua propagao
nunca passa alm dos limites impostos por paredes e tetos do local onde est
funcionando, fato que pode se consolidar como uma importante caracterstica de
segurana.
Em uma anlise mais detalhada das especificaes propostas para as tcnicas
de
rdio-freqncia, a tolerncia a interferncias em suas mais diversas formas tem um
peso
considervel. A transmisso FHSS apresenta, desde sua definio, preocupao em
lidar com interferncias, prevendo, inclusive, a operao de diversas redes
simultneas em uma mesma rea geogrfica. J a tecnologia DSSS, mesmo sendo a
mais difundida no momento, no apresenta caractersticas de desempenho
comparveis a FHSS. A maioria dos fornecedores de redes locais sem fio, atualmente,

288

possui projetos de desenvolvimento centrados em FHSS [PRO96]. Parece-nos que,


tanto em termos de desempenho como de flexibilidade operacional, a opo pela
tecnologia de FHSS no nvel fsico para redes locais sem fio dever ser privilegiada
nos prximos anos.
Independente de qual tcnica de transmisso se utilize, um bom funcionamento
dos mecanismos implementados na subcamada MAC depende do correto
funcionamento destas. O nvel fsico deve ser capaz de avaliar corretamente se o meio
est livre ou no, tarefa no trivial e que, pela presena de interferncias, pode levar a
concluses falsas. Nunca demais refrisar a importncia do impacto de interferncias,
pois um sinal com um determinado
alcance em rea sem obstculos pode inteferir em uma rea bem maior [RYP95].
A subcamada MAC deste padro, por exemplo, constitui-se um exemplo de
como o meio de transmisso pode influenciar alm do nvel fsico. De fato, o esquema
de troca de] quadros RTS-CTS evita que seja necessrio a deteco de portadora
enquanto se transmite, ao bastante complicada para um ambiente sem fio. A
subcamada MAC ainda capaz de prover opcionalmente servios sensveis a tempo.
Resta, contudo, um estudo mais detalhado
sobre o desempenho deste esquema para servios com tempo de resposta limitado.
Alm disso, resta saber se, de fato, redes sem fio podem aparecer para a
subcamada LLC e nveis superiores como qualquer outra rede IEEE 802. O padro,
ainda em elaborao, no definiu at que grau prover mobilidade para as estaes
mveis [FIS95b]. Ou seja, deve-se definir ainda qual ser o grau de mobilidade
permitido para estaes mveis poderem se deslocar de uma rede mvel para outra.
Se houver permisso para este tipo de mobilidade, novos problemas podem surgir,
como correto roteamento de pacotes de dados para as estaes, questes no
levantadas neste artigo.
Por fim, a insero de redes sem fio junto ao mercado reside basicamente em
trs
fatores, a saber: segurana, pois o meio de transmisso, por ser de domnio pblico,
no
considerado confivel; custo, ainda bastante elevado, e vazo, considerada baixa para
as
atuais aplicaes multimdia sensveis a tempo. Para o primeiro item, o padro
contempla um esquema de segurana com o mesmo nvel de privacidade de sistemas
fixos (WEP Wired Equivalent Privacy). O custo deve sofrer redues, medida em
que mais fabricantes produzam equipamentos de acordo com o padro e em que estas
tecnologias amaduream e comecem a ser utilizadas. A questo da vazo s ser
resolvida com pesquisas para transmitir em canais com largura de banda maior do que
a especificada at agora. Entretanto, componentes para freqncia muito altas so
mais caros, alm de poder envolver riscos sade ainda no pesquisados.

289