Académique Documents
Professionnel Documents
Culture Documents
Eleri Cardozo
Mauricio F. Magalh~aes
Departamento de Engenharia de Computac~ao
e Automac~ao Industrial
Faculdade de Engenharia Eletrica e de Computac~ao
Universidade Estadual de Campinas
2002
c 1995-2002 DCA/FEEC/UNICAMP
Cap
tulo 1
~
INTRODUC
AO
DCA-FEEC-UNICAMP
DCA-FEEC-UNICAMP
fronteira da
subrede de comunicao
Roteador
subrede de comunicao
Host
canal
DCA-FEEC-UNICAMP
(a)
(b)
(d)
(c)
Figura 1.2: Topologias tpicas em subredes ponto-a-ponto: (a) estrela, (b) anel, (c) arvore,
(d) generica.
proced^encias, etc.
Um padr~ao e denominado de facto apos ter sido adotado sem nenhuma ac~ao de entidade
reguladora. Exemplo: IBM-PC. Por outro lado, padr~oes de jure s~ao produzidos por entidades
reguladoras, nacionais ou internacionais, governamentais ou n~ao. Exemplo: ISO-9000.
Cada pas industrializado ou semi-industrializado possui uma entidade de padronizac~ao.
As mais conhecidas no ramo da engenharia eletrica s~ao:
(a)
(b)
(c)
Figura 1.3: Topologias tpicas em subredes de difus~ao: (a) barramento, (b) radiodifus~ao via
satelite, (c) anel.
DCA-FEEC-UNICAMP
Na area de redes de computadores os padr~oes de jure s~ao estabelecidos por duas entidades:
ITU-TS (International Telecommunications Union - Telecommunication Standardization),
antiga CCITT (Comite Consultatif International de Telegraphique et Telephonique), que
congrega as companhias de telecomunicaco~es nacionais; e a ISO (International Standard
Organization), que congrega as entidades de padronizac~ao nacionais.
A ISO tem aceito padr~oes ja estabelecidos por outras entidades (principalmente ANSI,
IEEE e ITU-TS) como padr~oes internacionais, simplesmente redigindo-os e catalogando-os
de acordo com os seus criterios. Por exemplo, o padr~ao IEEE 802 para redes locais foi
adotado integralmente pela ISO (ISO 8802).
Padr~oes da ITU-TS normalmente se referem a transmiss~ao de dados a longas dist^ancias,
enquanto pad~oes ISO s~ao mais voltados aos servicos que uma rede geralmente prov^e e a
protocolos de conversac~ao inter-hosts. Via de regra, pode-se armar que padr~oes ITU-TS
situam-se mais proximos do hardware que os padr~oes ISO.
Este texto cobrira o modelo proposto pela ISO para a Interconex~ao de Sistemas Abertos (OSI1 ) e conhecido como modelo ISO/OSI ou simplesmente modelo OSI. Este modelo
estipula que uma rede de computadores deve ser estruturada em sete camadas, propondo
um ou mais padr~oes para controlar o funcionamento de cada camada. Os padr~oes OSI n~ao
tiveram a aceitac~ao esperada (isto e, n~ao se tornaram padr~oes de facto). Entretanto, por
ser generico, o modelo OSI serve como refer^encia para o estudo de outras redes tais como
TCP/IP, Novell e SNA.
Criados pelo Departamento de Defesa (DoD) dos EUA para a interconex~ao de seus computadores no nal da decada de 70, os padr~oes TCP/IP2 t^em sido adotado por todos os
fabricantes daquele pas para atender as normas de contrato impostas pelo DoD. Com a
acentuada expans~ao da Internet3 , os padr~oes TCP/IP s~ao hoje padr~oes de facto.
Systems Interconnection
DCA-FEEC-UNICAMP
APLICATIVO
protocolo da camada 5
CAMADA 5
CAMADA 5
protocolo da camada 4
CAMADA 4
CAMADA 4
protocolo da camada 3
CAMADA 3
CAMADA 3
protocolo da camada 2
CAMADA 2
CAMADA 2
protocolo da camada 1
CAMADA 1
CAMADA 1
MEIO FSICO
Host #1
Host #2
DCA-FEEC-UNICAMP
host destinatario.
Ao receber (na camada 1) as unidades transmitidas, o host destinatario propaga-as para
as camadas superiores, ate atingir a camada 5, quando o processo destinatario sera noticado.
No caminho inverso, as unidades s~ao remontadas de acordo com as informac~oes contidas nos
cabecalhos: a mensagem atinge o processo receptor na forma em que foi enviada pelo processo
emissor.
APLICAO
APLICAO
PDU
protocolo de apresentao
6
APRESENT.
APRESENT.
PDU
COMUNICAO
HOSTHOST
protocolo de sesso
5
SESSO
SESSO
PDU
protocolo de transporte
4
TRANSPORTE
TRANSPORTE
PDU
subrede de comunicao
REDE
REDE
ENLACE
ENLACE
FSICA
FSICA
pacote
REDE
REDE
ENLACE
ENLACE
FSICA
FSICA
COMUNICAO
quadro
bit
HOST #1
ROTEADORROTEADOR
HOSTROTEADOR
HOST #2
ROTEADOR #i
ROTEADOR #j
DCA-FEEC-UNICAMP
DCA-FEEC-UNICAMP
1.7 Servicos
O modelo de refer^encia n~ao especica por si so o comportamento de sistemas abertos, ou seja,
servicos e protocolos. Ele basicamente cria o contexto no qual uma detalhada especicac~ao
de servicos e protocolos possa ser suportada pelo sistema aberto. Do ponto de vista da
abstraca~o, a gura 1.6 ilustra os varios nveis envolvidos relacionando modelo de refer^encia,
servicos, protocolos e implementac~ao de um protocolo.
Da gura 1.6 podemos observar que o modelo de refer^encia permite a especicaca~o de
varias classes de servico. Cada classe de servico permite a especicaca~o de varias classes de
protocolo onde o nvel mais baixo e representado pela implementac~ao do protocolo.
O modelo de refer^encia OSI procura fornecer uma vis~ao global de um sistema organizado
atraves de uma rede. Esta vis~ao, por outro lado, divide a rede em camadas horizontais cuja
DCA-FEEC-UNICAMP
10
Modelo de Referncia
Servios
Protocolos
Implementao de um Protocolo
Figura 1.6: Relac~ao entre modelo de refer^encia, especicac~ao de servico e especicaca~o de
protocolo.
nalidade consiste em:
permitir uma discuss~ao da interac~ao entre elementos pares, ou seja, elementos que
situam-se em uma mesma camada; esta discuss~ao deve ocorrer sem levar em conta
componentes das outras camadas;
Os elementos ativos em cada camada s~ao chamados entidades. Uma entidade pode ser
um componente de software (um processo, por exemplo) ou de hardware (um controlador de
estrada/sada, por exemplo). As entidades na camada N implementam servicos usados na
camada N + 1. Neste contexto, a camada N e denominada provedora de servicos enquanto
a camada N + 1 e denominada usuaria de servicos.
Servicos s~ao disponveis nos pontos de acesso de servicos (SAP: Service Access Points),
ou seja, a camada N +1 acessa os servicos oferecidos pela camada N nos SAPs desta camada.
Cada SAP possui um endereco que o identica unica e globalmente.
A gura 1.7 ilustra alguns conceitos associados aos pontos de acesso de servicos. Da
gura podemos observar que:
DCA-FEEC-UNICAMP
11
Entidade(N+1)
Camada(N+1)
SAP(N)
Entidade(N)
Camada(N)
Protocolo(N)
SAP(N1)
Camada(N1)
Entidade(N+1)
DCA-FEEC-UNICAMP
12
O suxo (N ) usado acima indica que os identicadores possuem signicado no nvel da
camada-(N ).
A associac~ao do ttulo de uma entidade-(N + 1) com o endereco do SAP-(N ) ao qual
ela esta conectada encontra-se em um diretorio mantido pela camada-(N + 1), referenciado
como diretorio-(N +1). Desta maneira, caso uma entidade-(N +1) necessite estabelecer uma
conex~ao com uma entidade-(N + 1), ela pode recorrer ao diretorio-(N + 1) para determinar
o endereco do SAP-(N ) ao qual a entidade destino encontra-se conectada.
DCA-FEEC-UNICAMP
13
segmentaca~o: e a func~ao realizada por uma entidade-(N ) atraves da qual uma SDU-(N )
e mapeada em varias PDUs-(N ) (gura 1.9);
DCA-FEEC-UNICAMP
14
IDU(N+i)
ICI(N)
PDU(N+1)
SAP(N)
SDU(N)
CAMADA(N+1)
CAMADA(N)
ICI(N)
PCI(N)
SDU(N)
PDU(N)
bloqueio: func~ao realizada por uma entidade-(N ) que mapeia multiplas SDUs-(N ) em
uma PDU-(N ) (gura 1.10);
desbloqueio: func~ao reversa do bloqueio, ou seja, a entidade-(N ) par mapeia uma PDU(N ) em multiplas SDUs-(N ) correspondentes (gura 1.10);
DCA-FEEC-UNICAMP
15
SDU(N)
CAMADA(N)
PCI(N)
PCI(N)
PDU(N)
PDU(N)
SDU(N)
CAMADA(N)
PCI(N)
PDU(N)
DCA-FEEC-UNICAMP
PDU(N)
16
PDU(N)
CAMADA(N)
SDU(N1)
Primitiva
Requisic~ao
Indicaca~o
Resposta
Conrmac~ao
Signicado
1.8 Protocolos
Um dos problemas fundamentais abordado na especicac~ao de um sistema de comunicaca~o
aberto diz respeito ao protocolo envolvendo entidades pares. O conceito classico de protocolo dene a forma como entidades equivalentes interagem entre si para a realizac~ao de
um objetivo comum: a prestac~ao de servicos a entidades na camada superior. Desta forma,
duas entidades-(N + 1) que desejam se comunicar devem utilizar os servicos de comunicaca~o
suportadas pela camada-(N ), com excec~ao da camada fsica para acesso ao meio fsico diretamente.
Para suportarem os servicos de comunicaca~o requisitados no SAP-(N ) pelas entidades(N + 1), as entidades-(N ) devem se comunicar atraves de servicos da camada-(N 1). Neste
caso, a comunicac~ao entre entidades pares e regida por um conjunto de regras e formatos
que as entidades devem seguir para suportar os servicos. Este conjunto de regras e formatos
representando por aspectos sem^anticos, sintaticos e temporais e denominado de protocolo
da camada-(N ).
DCA-FEEC-UNICAMP
S.request
17
S.request
S.indication
bloqueia
S.indication
processa requisio
processa requisio
S.response
S.confirm
entidade A
entidade B
entidade A
(a)
entidade B
(b)
Figura 1.13: Servicos OSI conrmados (a) e sem conrmaca~o (b).
Denic~ao da PDU
Duas entidades pares de um protocolo comunicam-se atraves da troca de PDUs. Estas s~ao
formadas por uma parte correspondente aos dados do usuario e outra parte contendo as
informac~es de controle relativa ao protocolo (PCI). Como a PDU e uma informaca~o que
sera trocada entre sistemas diferentes, e necessario que a PDU possua uma estrutura cujo
signicado seja comum as entidades de ambos os sistemas. Isto e obtido nos documentos
de padronizac~ao atraves da utilizaca~o de cadeias de bits ou atraves de uma forma baseada
em tipos abstratos de dados. O padr~ao Abstract Syntax Notation Number One, ou ASN.1, e
empregado para descrever PDUs em termos de tipos abstratos de dados.
A representac~ao baseada em cadeia de bits e mais utilizada na especicaca~o dos protocolos
das camadas inferiores. A representaca~o utilizando o ASN.1 e mais comum na especicac~ao
de PDUs dos protocolos de nvel mais alto, isto e, dos protocolos orientados a aplicaca~o.
ASN.1 emprega tipos abstratos de dados como encontrado na maioria das linguagens de
programac~ao. Como ASN.1 e uma sintaxe abstrata, nada e especicado com relaca~o ao
numero e ordem dos bits correspondentes a cada tipo de dado encontrado na especicac~ao.
Neste caso, utiliza-se um conjunto de regras de codicaca~o que ira gerar PDUs formadas de
cadeias de bytes, cadeias estas que ser~ao interpretadas da mesma forma em todos os sistemas.
O padrao Basic Encoding Rules, ou BER, pode ser empregado para a codicac~ao de dados
especicados em ASN.1.
DCA-FEEC-UNICAMP
18
Operac~ao do Protocolo
Uma entidade de protocolo e modelada na forma de uma maquina de estados nitos (aut^omato). Isto signica que uma entidade de protocolo deve encontrar-se em um unico estado
dentre um conjunto nito de estados possveis.
A transic~ao de um estado para outro acontece quando um evento valido ocorre na interface
do aut^omato. Alguns exemplos de eventos s~ao os seguintes:
1.9 Problemas
1. Qual o principal benefcio proporcionado por uma rede de computadores?
2. Em que situac~oes terminais bancarios podem ser considerados hosts de uma rede de
computadores? Justique.
3. O que s~ao roteadores? Por que diferencia-los dos hosts?
4. Quem (usuario, fabricante, vendedor, etc.) lucra mais com a padronizaca~o de redes de
computadores?
5. Quais as vantagens de se estruturar uma rede em camadas?
6. Qual a diferenca entre modelo, protocolo e arquitetura?
7. Descreva sucintamente as 7 camadas do modelo OSI.
8. Suponha que voc^e decida reimplementar a camada de rede utilizando um algoritmo
inteligente de roteamento. Que cuidados voc^e deve tomar para que as camadas de
enlace e de transporte permanecam inalteradas?
9. Considere um programa de chat que abre uma sess~ao de conversaca~o on-line entre
usuarios. Voc^e o implementaria como um servico conectado ou sem conex~ao? Justique.
10. Cite aplicaco~es onde servicos sem conex~ao s~ao vantajosos.
DCA-FEEC-UNICAMP
Estado Atual
S0
S1
S2
Sn
Evento de Entrada
E1
Eventos de entrada
(camada superior
primitivas de servio)
...
Ex
Ex+1
...
Eventos de entrada
(camada inferior
recepo de PDUs)
ou
Ey
Ey+1
Eventos locais
(ex: temporizador)
...
Ez
Ox
Sa
P0: Ox
Sa;
P1: Oy
Sb;
Legenda:
Ox: evento de sada x
Sa: novo estado a
Pk: predicado k
19
Cap
tulo 2
A CAMADA F
ISICA
A camada fsica trata da gerac~ao de sinais e sua propagac~ao atraves do meio fsico. A camada
deve especicar:
a natureza do meio fsico: sua constituica~o (par trancado, bra otica, etc.), suas
dimens~oes (di^ametro, comprimento, etc.), suas constantes fsicas (imped^ancia caracterstica, atenuaca~o, etc.), dentre outros par^ametros;
a forma como 0s e 1s s~ao codicados em sinais compatveis com o meio fsico;
DCA-FEEC-UNICAMP
21
N bits por unidade de tempo. Como a transmiss~ao paralela requer um meio fsico composto
de varios canais, esta tecnica n~ao e empregada nas redes de computadores convencionais.
Uma transmiss~ao de bits pode se dar de forma sncrona ou assncrona. Na transmiss~ao
sncrona um bit e transmitido em intervalos de tempo bem denidos, enquando na transmiss~ao assncrona um bit pode ser transmitido em um instante de tempo arbitrario. A
transmiss~ao sncrona requer que tanto o host transmissor quanto o host receptor disponham
de uma base de tempo comum, o que torna seu emprego muito restrito em redes de computadores. A transmiss~ao assncrona no nvel de bits, por outro lado, e um processo ineciente
pois requer a introduc~ao de um separador entre dois bits (caracter especial ou intervalo de
tempo sem transmiss~ao).
Na pratica, utiliza-se um meio termo entre os modos sncrono e assncrono, onde a transmiss~ao assncrona se da no nvel de bloco de bits (transmiss~ao start-stop). Detectado a
ocorr^encia de um bloco, os bits que o comp~oe s~ao recebidos sincronamente. Cada bloco e
iniciado com um delimitador de incio (combinac~ao de bits) e terminado com um delimitador
de nal de bloco. Ao detectar um delimitador de incio, o receptor sincroniza seu relogio
para receber, sincronamente, os bits que comp~oem o bloco. Mesmo que o host transmissor e receptor apresentem um certo drift em seus relogios, a transmiss~ao start-stop requer
sincronismo apenas entre os delimitadores de incio e nal de bloco.
Codigo Polar NRZ (Non Return to Zero): id^entico ao sinal ON/OFF, exceto que duas
polaridades s~ao empregadas (positiva e negativa). Raramente empregado em redes de
computadores;
DCA-FEEC-UNICAMP
22
Codigo CMI (Code Mark Inversion): o bit 0 e representado por uma transic~ao positiva
(subida) no meio do intervalo do bit, e o bit 1 pela aus^encia de transica~o positiva.
Uma transic~ao no nal do intervalo ocorre quando bits 1s se repetem. Transico~es s~ao
do tipo NRZ.
Sinal Digital
Relgio
ON/OFF
Polar NRZ
Unipolar RZ
Manchester
Manchester Dif.
CMI
DCA-FEEC-UNICAMP
23
2.4 Multiplexac~ao
Multiplexac~ao e o processo pelo qual o meio fsico e compartilhado entre dois ou mais pares
transmissor-receptor. A multiplexac~ao pode se dar pela divis~ao em frequ^encia (FDM: Frequency Division Multiplex) ou pela divis~ao no tempo (TDM: Time Division Multiplex).
Na multiplexac~ao FDM, diferentes bandas de frequ^encias s~ao alocadas a diferentes pares
transmissor-receptor. Esta tecnica e empregada em bras oticas1 onde sinais de diferentes
frequ^encias (cores) s~ao propagados simultaneamente no cabo. A multiplexaca~o TDM e
analoga ao time-sharing onde a CPU de um processador e alocada a cada usuario de forma
alternada. A multiplexaca~o TDM pode ser sncrona ou assncrona. Na multiplexaca~o TDM
sncrona, o meio fsico e alocado alternadamente e por um perodo xo a cada host, independente do host utiliza-lo ou n~ao. Caso tenha quadros para transmitir, o host o faz no perodo
em que o meio ca a ele alocado. Esta tecnica provoca uma sub-utilizaca~o do meio fsico,
mas garante uma taxa mnima de transmiss~ao para cada host. Esta garantia e fundamental
em aplicac~oes de tempo real.
Na tecnica TDM assncrona, quando um host necessitar transmitir quadros o mesmo deve
1 No
Onda,
caso especco das btas oticas, esta multiplexac~ao denomina-se Multiplexac~ao por Comprimento de
ou WDM (Wavelength Division Multiplexing).
DCA-FEEC-UNICAMP
Sinal Digital
24
ON/OFF
ASK
FSK
PSK
DCA-FEEC-UNICAMP
25
Atenuao (dB)
Atenuao (dB)
0 dB
3dB
0 dB
3dB
f(Hz)
f2
f1
(a)
f(Hz)
(b)
S(f)
T
T
2
T
4
T
8
1
2T
1
T
3
2T
(a)
2
T
1
2T
1
T
3
2T
2
T
(b)
DCA-FEEC-UNICAMP
26
SINAL ONOFF
UMA HARMNICA
DUAS HARMNICAS
QUATRO HARMNICAS
OITO HARMNICAS
DCA-FEEC-UNICAMP
27
SINAL NO
TRANSMISSOR
SINAL NO
RECEPTOR
limiar de
deciso
pontos de deteco
Jitter de Fase
Jitter de fase e uma imprecis~ao na fase do sinal digital causada por alterac~ao do ponto de
operac~ao normal dos circuitos eletr^onicos devido a variaco~es de temperatura, oscilaco~es da
tens~ao de alimentac~ao, etc. O jitter de fase causa uma mudanca no instante de passagem pelo
limiar que distingue uma transic~ao (gura 2.7). Como consequ^encia, o perodo de ocorr^encia
dos bits tem um valor n~ao constante, podendo causar erros na recepca~o do sinal.
O jitter de fase e medido pela faixa de tempo em que a transic~ao pode variar (em valor
absoluto ou relativo ao perodo do bit).
Rudo Termico
Rudo termico e uma perturbaca~o de natureza aleatoria que distorce o sinal. Transitorios
termicos e eletromagneticos s~ao as causas mais comuns de rudo termico. Transitorios
mec^anicos e outra fonte de rudo termico, alterando as caractersticas eletricas dos contactos
(resist^encia e capacit^ancia de contacto).
A gura 2.8 ilustra a distorca~o causada pelo rudo termico.
DCA-FEEC-UNICAMP
28
SINAL NO
TRANSMISSOR
jitter
jitter
PERODO
SINAL NO
RECEPTOR
limiar de
deciso
pontos de deteco
2B log2 V
Por exemplo, um canal com largura de banda 3 KHz apresenta uma capacidade maxima
de 6 Kbits/s caso sejam empregadas duas amplitudades (modulaca~o ASK) para codicar os
nveis 0 e 1. Intuitivamente, o limite de Nyquist se deve a ltragem de frequ^encias altas pelo
canal tornando inutil amostragens com taxa maior que 2B.
Devido a presenca das fontes de distorca~o descritas acima, o limite teorico de Nyquist
nunca e atingido na pratica. A interfer^encia entre smbolos causadas pelas indut^ancias e
capacit^ancias ao longo do meio e um fator preponderante na limitac~ao da taxa de transmiss~ao
de um canal eletrico.
DCA-FEEC-UNICAMP
29
SINAL NO
TRANSMISSOR
RUDO
TRMICO
erro de deteco
limiar de
deciso
SINAL NO
RECEPTOR
pontos de deteco
termo par e oriundo da telefonia onde apenas dois os s~ao empregados. Em redes de computadores,
emprega-se 8 os por cabo.
DCA-FEEC-UNICAMP
30
1a. harmnica
sinal resultante
3a. harmnica
1a. harmnica
sinal resultante
3a. harmnica com diferente
velocidade de propagao
Figura 2.9: Distorca~o devido a variaca~o da velocidade de propagac~ao das harm^onicas com a
frequ^encia.
ros) a taxa de transmiss~ao n~ao ultrapassa 20 Kbits/s, podendo atingir 100 Mbits/s em comprimentos de ate 100 metros.
composto de um condutor cilndrico isolado envolto por uma malha de cobre e uma capa
E
plastica de protec~ao (gura 2.11). A blindagem forma uma protec~ao eletrostatica ao condutor central tornando o cabo mais imune a interfer^encias eletromagneticas. Sua forma de
construc~ao minimiza as perdas em altas frequ^encias (efeito pelicular e irradiaca~o). Entretanto, sua estrutura assimetrica contribui para a atenuaca~o imposta a amplitude do sinal. O
cabo coaxial foi suplantado pelo par trancado metalico em curtas dist^ancia e pela bra otica
em longas dist^ancias. Exceto em situaco~es muito particulares3 , este meio de transmiss~ao n~ao
e mais empregado em redes de computadores.
3 Por
DCA-FEEC-UNICAMP
31
fase
fase
nvel do sinal
(a)
(b)
Figura 2.10: Modulac~oes PSK e ASK combinadas para 3 bits/baud (a) e 4 bits/baud (b).
capa externa de proteo
isolante
condutor de cobre
malha de cobre
2.8.3 Fibra Otica
A bra otica e composta de um nucleo de slica envolto por uma casca tambem de slica,
tudo protegido por uma capa plastica. O nucleo e a casca apresentam ndices de refraca~o distintos, apesar de construdos de materiais similares. A tecnologia mais comum e a chamada
bra multimodo onde a luz e mantida no nucleo por re
ex~ao na casca (gura 2.12). Fibras
multimodo possuem di^ametros entre 50 e 200 m. Atenuaco~es de 1 a 5 dB por quiilometro
na pot^encia do sinal otico s~ao tpicas.
capa plstica
casca (ndice de refrao n2)
ngulo limite
DCA-FEEC-UNICAMP
32
O sinal e produzido por diodos LED e captado por fotodetetores, sendo totalmente imune a
interfer^encias eletromagneticas.
As bras oticas s~ao de difcil instalac~ao (curvaturas devem obedecer raio mnimo, cortes
e instalaca~o de conectores exige ferramentas especiais, etc.) A conex~ao de um host em uma
rede de bra otica e um processo complicado. O sinal otico e convertido em um sinal eletrico
correspondente, passado ao computador que, quando for o caso, o retransmite empregando
o processo inverso. Essa regeneraca~o do sinal coopera para o aumento da dist^ancia da rede
(gura 2.13).
fibra
interface
cabo eltrico
computador
luz
fotodiodo
regenerador de sinal
(eltrico)
fibra
LED
luz
fibra
p/ o computador
DCA-FEEC-UNICAMP
33
bra otica, etc.). A conex~ao DTE-DCE pode se dar atraves de cabo, radio, bra otica, etc.,
e deve especicar:
No caso de redes locais, um padr~ao de camada fsica deve especicar a interconex~ao
do host ou equipamento de entrada/sada (impressora, por exemplo) ao equipamento de
chaveamento (repetidor ou chave). Atualmente, o par trancado metalico operando na faixa
de 100 a 1000 Mbits/s e o meio mais utilizado. A especicac~ao deve considerar os mesmos
itens da conex~ao DTE-DCE no caso das redes publicas. A gura 2.14 ilustra o escopo dos
padr~oes da camada fsica para as redes publicas e locais.
DTE
DCE
Host
Host
Dispositivo de
Chaveamento
Host
Figura 2.14: Escopo dos padr~oes da camada fsica para as redes publicas (acima) e locais
(abaixo).
2.10 Problemas
1. Quais os motivos de se empregar esquemas de codicac~ao diferente do ON/OFF?
2. Desenhe a forma de onda nos codigos Manchester e Manchester Diferencial do sinal
composto dos bits 0001110101.
3. Diz-se que o codigo Manchester colabora para a manutenc~ao do sincronismo entre o
emissor e o receptor de um sinal. Comente esta armac~ao.
DCA-FEEC-UNICAMP
34
Cap
tulo 3
A CAMADA DE ENLACE
A camada de enlace e responsavel pela detecca~o e recuperac~ao de erros ocorridos na camada
fsica, oferecendo as camadas superiores um transporte de dados mais conavel. O enlace
e uma conex~ao virtual por onde
uem os quadros. Esta conex~ao implementa protocolos
simples de detecc~ao e recuperac~ao de erros, por exemplo detecca~o atraves de checksum e
recuperac~ao por retransmiss~ao.
Em redes de longa dist^ancia e metropolitanas o enlace se da entre roteadores. A rota
fsica por onde os quadros
uem e exclusiva dos roteadores por ela conectados (o meio
fsico e decomposto em segmentos que conectam dois, e somente dois, roteadores). Ao
decidir transmitir um quadro, um roteador simplesmente seleciona o segmento conectando
ao destinatario e invoca os servicos da camada fsica referente ao segmento.
Em redes locais, o meio fsico e compartilhado por todos os hosts. A transmiss~ao de um
quadro em redes locais requer antes um procedimento de acesso ao meio. Este procedimento e
denominado MAC (Medium Access Control) e varia em complexidade em func~ao da topologia
e demais caractersticas da rede.
Dada a import^ancia do controle de acesso ao meio em redes locais, e comum reservar uma
subcamada no modelo de rede exclusiva para tal. A subcamada de acesso ao meio e parte da
camada de enlace e situa-se na interface desta com a camada fsica. O restante da camada
de enlace denomina-se Controle de Enlace Logico (LLC: Logical Link Control) e podemos
considera-la como uma segunda subcamada, acima da subcamada de acesso ao meio.
DCA-FEEC-UNICAMP
36
os metodos de acesso multiplo com detecca~o de portadora (CSMA: Carrier Sense Multiple
Access).
DCA-FEEC-UNICAMP
37
DCA-FEEC-UNICAMP
38
O metodo CSMA p-Persistente apresenta uma boa taxa de utilizac~ao do meio com baixa
probabilidade da de ocorr^encia de colis~oes caso p seja ajustado as caractersticas do trafego.
Metodo CSMA-CD
O metodo CSMA-CD (Collision Detection) adiciona aos metodos CSMA a detecc~ao de colis~oes sem a necessidade de aguardar reconhecimento por parte do receptor. Detectada uma
colis~ao, o host interrompe imediatamente a transmiss~ao, entrando em seguida em um processo de retransmiss~ao. O processo de detecc~ao de colis~ao e simples: durante uma transmiss~ao
o host escuta o meio, comparando o sinal no meio com aquele sendo transmitido. Ocorrida
uma diferenca, o host conclui que uma segunda transmiss~ao esta se sobrepondo a sua.
Detectada uma colis~ao, o host reforca a colis~ao com a injeca~o de sinais espurios no meio
(jamming) a m de que os demais hosts transmitindo detectem imediatamente a colis~ao e
suspendam igualmente a transmiss~ao. O algoritmo e composto dos seguintes passos:
1. escute o meio ate ser detectada a condic~ao de repouso;
2. inicie a transmiss~ao do quadro, escutando o meio para se certicar que apenas esta
transmiss~ao esta em curso; encerrada a transmiss~ao do quadro sem colis~ao, m;
3. reforce a colis~ao (jamming);
4. caso o numero de colis~oes (c) na transmiss~ao deste quadro exceder um limite, sinalize
um erro a camada superior e termine;
5. gere um numero aleatorio (r) entre 0 e R(c);
6. va para 1 apos r unidades de tempo.
Como o metodo CSMA-CD detecta colis~oes independente do reconhecimento por parte
do receptor, esta tecnica pode suportar servicos de datagrama sem conrmac~ao.
A rede Ethernet foi pioneira na introduc~ao do metodo CSMA-CD, sendo comum empregarse o termo Ethernet para este metodo de acesso ao meio.
DCA-FEEC-UNICAMP
39
PREMBULO
ENDEREO
ENDEREO
DESTINO
FONTE
TIPO
01500
046
DADOS
PAD CHECKSUM
10101010
comeo do delimitador
do quadro (10101011)
DCA-FEEC-UNICAMP
40
O anel pode conter uma estaca~o mestre que tem como funca~o vericar se o token n~ao se
perdeu, reiniciar o anel em caso de falhas, remover quadros corrompidos, etc. Em caso de
falha desta estac~ao, outra e eleita como mestre (automaticamente ou com a intervenca~o do
operador).
Apesar da simplicidade do conceito, metodos de acesso ao meio baseados na passagem de
permiss~ao s~ao bem mais complexos que os metodos de acesso aleatorio. A seguintes situac~oes
devem ser tratadas:
anel lgico
BARRAMENTO
sentido de
rotao do token
estao fora
do anel lgico
4
DCA-FEEC-UNICAMP
41
DI
CA
TIPO
ENDEREO
DESTINO
ENDEREO
FONTE
sem limites
DADOS
CHECKSUM
DF
ST
DCA-FEEC-UNICAMP
42
tambem e composto por transic~oes Manchester Diferencial invalidas. Um campo apos o DF,
ST (status) contem dois bits: A e C. O bit A e ativado pelo host de destino e informa o
host de origem que o destinatario tomou conhecimento do quadro a ele enderecado. O bit
C e ativado se o destinatario aceitou o quadro (pode t^e-lo rejeitado por falta de area para
armazenamento, por exemplo).
Duas observac~oes importantes:
1. um quadro no IEEE 802.5 n~ao dene campo de tamanho do quadro; o campo de dados
comeca 14 bytes apos o campo DI do token e termina 4 bytes antes do campo DF do
quadro;
2. o campo DF deve obrigatoriamente preceder o campo ST; o destinatario esta em
condico~es de aceitar um quadro (bit C do campo ST) somente apos computar o checksum e, como n~ao existe quadro de tamanho de dados, o campo de checksum so e denido
apos o recebimento do campo DF.
Manutenc~ao do Anel
Uma das estaco~es do anel e rotulada como estaca~o mestre (EM). Via de regra, e a primeira
estac~ao a completar o procedimento de boot. Caso esta estaca~o falhe, uma nova EM e
eleita. Periodicamente, a EM circula um token com o campo TIPO contendo a informaca~o
ACTIVE MONITOR PRESENT. Se este token car sem circular por determinado perodo,
inicia-se um procedimento de escolha de uma nova EM.
Assim que uma estac~ao termina o procedimento de boot, ela aguarda a passagem do
token ou um quadro de ACTIVE MONITOR PRESENT. Expirado este tempo de espera,
a estac~ao gera um quadro de controle com a informac~ao CLAIM TOKEN. Se este quadro
circular sem alterac~ao, a estac~ao que o emitiu se torna a estaca~o mestre. Se ja existir uma
EM, a mesma altera o quadro de CLAIM TOKEN, informando ao emissor do quadro a sua
exist^encia.
S~ao atribuic~oes da estac~ao mestre:
vericar se o token n~ao se perdeu (o host detentor do token falha em injetar um novo
token no anel). Neste caso, a estac~ao mestre gera um novo token no anel.
drenar quadros orf~aos do anel (quadros n~ao drenados pelo emissor por falhas de hardware ou software);
O dreno de quadros pela estac~ao mestre e feito caso o bit de monitor do quadro CA
estiver ativado quando o quadro passar pela EM (indicando que se trata de uma segunda
passagem).
Finalmente, quando um host suspeitar da ruptura do anel (tempo longo sem a passagem
de tokens), este injeta um token de controle com a informac~ao BEACON no campo TIPO. Se
o quadro voltar ao emissor, este sup~oe que o problema foi sanado. Caso contrario, a estaca~o
entra em um estado de standby aguardando o reestabelecimento do anel.
DCA-FEEC-UNICAMP
43
partic~ao dos pacotes oriundos da camada de rede em quadros compatveis com a subcamada de acesso ao meio;
Os caracteres DLE, STX e ETX n~ao ocorrem no interior do texto, pois s~ao caracteres de
controle.
Atualmente, os dados que comp~oem o quadro s~ao sequ^encias arbitrarias de bits (numeros,
segmentos de memoria, etc) que n~ao podem ser representados como sequ^encia de caracteres
(texto). Nestes casos, duas tecnicas s~ao bastante empregadas:
DCA-FEEC-UNICAMP
44
stung)
011011111111111111110010
(b)
011011111011111011111010010
bits adicionados
(c)
011011111111111111110010
Figura 3.4: Enchimento de bits: (a) dados originais, (b) dados no quadro, (c) dados decodicados pelo receptor.
INVLIDO
DCA-FEEC-UNICAMP
45
correc~ao do erro. Via de regra, detectado que um quadro chegou com erro, o receptor solicita ao emissor sua retransmiss~ao. Em redes de computadores, a retransmiss~ao e a tecnica
mais usual de correc~ao (recuperac~ao) de erros.
A tecnica CRC e similar aos dgitos de controle presentes no CPF, contas bancarias, etc.
O dgito de controle e computado por uma sequ^encia de operac~oes bem denida na origem e
transmitido ao destino que o recomputa. Em havendo diferenca entre os valores transmitido
e computado, conclui-se sobre a invalidade do numero.
Na tecnica CRC pode-se imaginar que os bits do quadro formam um numero inteiro de
grande maginitude. Se o quadro e composto por k bits (numerados de 0 a k-1), este numero
e dado pelo polin^omio:
P (x) = b(k
1):xk
+ b(k
2):xk
+ :::b(1):x + b(0)
onde b(j) e o valor do bit na posic~ao j (0 ou 1) e x e a base da representaca~o (2). Por exemplo,
a sequ^encia de 10 bits 1101011011 e representada pelo polin^omio x9 + x8 + x6 + x4 + x3 + x +1.
A tecnica CRC reserva um numero arbitrario de bits (n) para detecc~ao de erros (checksum). Assim, s~ao transmitidos n+k bits, sendo k de informaca~o seguidos de n bits de
checksum. Os n bits de checksum s~ao computados de forma que os n+k bits do quadro sejam
representados por um polin^omio F (x):P (x), sendo F (x) de ordem n.
Seja um polin^omio de refer^encia, G(x) de ordem n (denominado polin^omio gerador).
Podemos escrever a seguinte igualdade:
Multiplic. Divis~ao
0x0=0 01=0
0x1=0 11=1
1x0=0
1x1=1
DCA-FEEC-UNICAMP
46
Q(x) = x9 + x8 + x3 + x
R(x) = x3 + x2 + x
A gura 3.6 ilustra as operac~oes, que nas implementac~oes praticas s~ao efetuadas por hardware.
Asssim os bits 1101011011 s~ao transmitidos com quatro bits adicionais: 1101011011-1110
Dados do Quadro
11010 1 10110 0 0 0
Polinmio Gerador
10011
1001 1
10011
0000 1
00000
0001 0
00000
0010 1
00000
0101 1
00000
1011 0
10011
0101 0
00000
1010 0
10011
0111 0
00000
1110
RESTO
invers~oes de 1 ou 2 bits;
DCA-FEEC-UNICAMP
47
Reconhecimento Positivo
Neste metodo, ao transmitir um quadro, o emissor aguarda outro de reconhecimento por
parte do receptor, caso o primeiro tenha sido recebido livre de erros. Recebido um quadro de
reconhecimento, o emissor envia o proximo quadro e assim sucessivamente. Caso o receptor
tenha detectado um erro (por exemplo, diferenca entre o checksum computado e enviado),
este simplesmente suprime o envio do reconhecimento. Expirado o tempo de espera pelo
reconhecimento, o emissor retransmite o quadro.
Reconhecimento Negativo
Neste metodo o receptor sempre transmite um quadro de reconhecimento imediatamente
apos a recepca~o de um quadro: reconhecimento positivo, caso nenhum erro tenha sido detectado, ou negativo, caso contrario. A recepc~ao de um reconhecimento negativo faz o emissor
retransmitir prontamente o quadro, sem a necessidade de espera como no metodo anterior.
Reconhecimento Contnuo
Os metodos de reconhecimento positivo e negativo apresentam dois inconvenientes:
1. duplicac~ao de quadros: 0 receptor recebe quadros duplicados em duas situaco~es: quando
o reconhecimento chegar apos ter-se expirado seu tempo de espera; ou quando o reconhecimento e descartado na sua recepc~ao devido a erros;
2. baixa eci^encia: para cada quadro transmitido, circula outro de controle (reconhecimento) no sentido inverso.
O metodo de reconhecimento contnuo permite o emissor transmitir ate N (largura da
janela) quadros sem a necessidade de espera por reconhecimento. Cada quadro carrega
dois contadores, N(S) e N(R), cujos valores dependem do tipo do quadro (de informac~ao ou
reconhecimento).
A gura 3.7 compara o reconhecimento contnuo com o reconhecimento negativo.
Nos quadros de informac~ao (que
uem no sentido emissor-receptor), N(S) indica o numero
do quadro sendo transmitido e N(R) o numero do proximo quadro esperado pelo emissor.
DCA-FEEC-UNICAMP
HOST #1
PACOTE i
HOST #1
48
HOST #2
PACOTE i
PACOTE j
ACK(i)
ACK(i)
PACOTE k
ACK(j)
PACOTE j
ACK(k)
ACK(j)
PACOTE k
ACK(k)
tempo
tempo
DCA-FEEC-UNICAMP
49
DCA-FEEC-UNICAMP
50
quadros RR (Receiver Ready): informa o emissor que o receptor esta pronto para
iniciar ou continuar a recepc~ao de quadros;
quadros RNR (Receiver Not Ready): informa o emissor que o receptor esta impossibilitado temporariamente de receber quadros.
01111110
ENDEREO
CONTROLE
>= 0
16
DADOS
CHECKSUM
01111110
DCA-FEEC-UNICAMP
51
O campo de dados possui tamanho arbitrario, mas normalmente limitado por restric~oes
impostas pela camada fsica.
O campo de checksum e computado pelo polin^omio gerador x16 + x12 + x5 + 1.
O campo de controle dene tr^es tipos de quadros: de informaca~o (I), de supervis~ao (S) e
n~ao numerados (N), sendo os dois ultimos quadros de controle (gura 3.9).
Bits
1
0
N(S)
P/F
P/F
3
N(R)
INFORMAO
P/F
N(R)
SUPERVISO
3
M
NO NUMERADO
DCA-FEEC-UNICAMP
52
4. DM (Disconnect Mode): Informa que uma conex~ao solicitada n~ao pode ser estabelecida (por exemplo, por falta de espaco para armazenar os par^ametros de controle da
conex~ao).
5. UA (Unnumbered Acknowledgement): reconhece positivamente comandos de estabelecimento, termino e reinicializaca~o de conex~ao.
6. FRMR (Frame Reject): um quadro foi recebido com erro atraves da conex~ao e seu
conteudo n~ao p^ode ser identicado.
O bit P/F (Pool/Final) e ativado por uma estaca~o primaria quando em consulta a uma
secundaria. Caso tenha quadros para transmitir, a estaca~o secundaria o faz com o bit P/F
ativado, ate o ultimo quadro onde o bit P/F e desativado, indicando o nal da transmiss~ao.
ENTIDADE
DESTINO
ENTIDADE
FONTE
1 ou 2
CONTROLE
>=0
INFORMAO
DCA-FEEC-UNICAMP
53
DCA-FEEC-UNICAMP
54
3.4 Problemas
1. Descreva o funcionamento dos principais metodos de acesso ao meio para redes locais.
2. Descreva os campos que comp~oem o quadro dos padr~oes IEEE 802.3 e 802.5.
3. Descreva os campos que comp~oem o token do padr~ao IEEE 802.5.
4. Descreva a manutenca~o do anel no padr~ao IEEE 802.5.
5. Descreva as tecnicas mais usuais para delimitac~ao de quadros e em que situac~oes s~ao
empregadas.
6. Por que protocolos de enlace baseados em caracter est~ao superados ?
7. Compute o checksum utilizando a tecnica CRC para a sequ^encia de 12 bits 111001100010
e polin^omio gerador x4 + x2 + x + 1.
8. Faca um diagrama temporal mostrando a transmiss~ao de quadros com reconhecimento
contnuo e largura de janela 3, utilizando quadros de controle tipo RR e RNR.
9. Descreva os quadros n~ao numerados empregados pelo padr~ao X.25/camada 2.
10. Faca um diagrama temporal mostrando o estabelecimento de enlace, envio de quadros
e termino do enlace utilizando os quadros do protocolo HDLC.
Cap
tulo 4
A CAMADA DE REDE
A camada de rede e a terceira e ultima camada onde o
uxo de informaca~o leva em conta as
peculiariedades da subrede de comunicaca~o, tais como a exist^encia de roteadores, como os
roteadores se interconectam, etc. A partir desta, as camadas acima empregam mecanismos
de comunicac~ao host a host, abstraindo a exist^encia da subrede de comunicaca~o. Para que
a camada de transporte venha se tornar independente da topologia e tecnologia da subrede
de comunicac~ao, a camada de rede deve prover:
DCA-FEEC-UNICAMP
56
valores decimais, n~ao ocupando mais que 40 dgitos (20 bytes). O NSAP e dividido em tr^es
campos:
1. AFI (Authority and Format Indicator): indica o tipo de numerac~ao presente no terceiro
campo (numero de telefone, endereco Internet, etc). Ocupa 1 byte codicando dois
dgitos decimais com valores entre 10 e 99;
2. IDI (Initial Domain Identier): especica o domnio ao qual o terceiro campo pertence.
Por exemplo, se o terceiro campo armazena o numero de um telefone, o IDI pode conter
o codigo do pas. Este campo armazena um numero variavel de bytes, func~ao do campo
AFI;
3. DSP (Domain Specic Part): armazena o endereco do servico propriamente dito.
Contem um numero variavel de bytes, funca~o dos campos AFI e IDI.
PARTE INICIAL DO DOMNIO (IDP)
INDICADOR DE FORMATO
E AUTORIDADE (AFI)
IDENTIFICADOR INICIAL
DE DOMNIO (IDI)
PARTE ESPECFICA
DO DOMNIO (DSP)
DCA-FEEC-UNICAMP
57
4.2 Roteamento
O problema de rotear pacotes inexiste quando a comunicac~ao se da em uma rede local: o
pacote atinge o host destinatario sem a intermediaca~o de roteadores. Em redes de campus,
metropolitanas e de longa dist^ancia, a exist^encia de roteadores obriga, na transmiss~ao de
um pacote, a se proceder a escolha de um circuito virtual entre o emissor e o destinatario do
pacote. No circuito, um ou mais roteadores ir~ao receber o pacote, armazena-lo temporariamente e retransmit-lo ao proximo roteador do circuito.
Roteamento e um problema presente em muitas atividades. Imagine um servico de entrega rapida com varios depositos e uma frota de veculos. Quando um veculo apanha uma
encomenda de um cliente, varios procedimentos podem ser adotados:
1. entregar a encomenda imediatamente ao destinatario com o mesmo veculo;
2. armazenar a encomenda em um deposito para ser entregue com outras encomendas
destinadas a mesma regi~ao;
3. mover a encomenda de deposito em deposito ate atingir o mais proximo do cliente, de
onde sera entregue.
DCA-FEEC-UNICAMP
58
DCA-FEEC-UNICAMP
59
Roteamento Centralizado
No roteamento centralizado, os roteadores enviam periodicamente informaco~es de trafego a
uma central de roteamento (NCC: Network Control Center). A central disp~oe de informac~oes
sobre:
os roteadores que est~ao ativos e os que est~ao inativos (por falha, manutenca~o, etc);
as rotas de comunicac~ao que est~ao ativas e as que est~ao inativas;
o
uxo medio de pacotes nas rotas ativas;
o tempo medio que um pacote ca armazenado em um roteador;
etc.
A partir destas informac~oes o NCC, computa qual seria o roteamento otimo ou sub-otimo
de pacotes para uma dada situac~ao de trafego. Computado o roteamento, o NCC distribui
novas tabelas de roteamento aos roteadores.
O roteamento centralizado e viavel apenas nos domnios da operadora da subrede de
comunicac~ao.
etc
1O
criterio de otimalidade pode ser: mnimo tempo de tr^ansito, caminho mnimo, maxima conabilidade,
DCA-FEEC-UNICAMP
60
Roteamento Distribudo
O roteamento distribudo n~ao utiliza um elemento centralizador como o NCC. A primeira
consequ^encia da distribuic~ao e a indisponibilidade de uma vis~ao global do trafego na subrede.
No roteamento distribudo, cada roteador e responsavel pela atualizac~ao de sua tabela de
roteamento. Em geral, esta atualizaca~o se da de duas maneiras:
1. via troca de informaco~es de topologia e par^ametros de trafego entre roteadores diretamente conectados.
2. via propagac~ao por toda a rede de informaco~es sobre estado dos enlaces (links).
Protocolos operando de acordo com o primeiro esquema s~ao denominados \Protocolos Baseados em Vetor de Dist^ancias", enquanto os que operam de acordo com o segundo esquema s~ao
denominados \Protocolos Baseados em Estado do Enlace" (Link State). Estas denominac~oes
s~ao oriundas ao tipo de informac~ao que estes protocolos propagam.
A tabela de roteamento armazena informaco~es de roteamento para os circuitos iniciando
no roteador detentor da tabela. Cada posica~o na tabela tem como ndice o endereco de
uma subrede de comunicac~ao para qual a rota se destina, e armazena pelo menos duas
informac~oes: o custo para total para se atingir o destino, e a interface (endereco de enlace)
conectada ao proximo hop (roteador) da rota.
Pre-alocac~ao de Buers
Um recurso importante que um roteador disp~oe para o processamento de pacotes s~ao buers
de memoria. Em caso do estabelecimento de uma conex~ao (no nvel de camada de rede),
todos os roteadores envolvidos alocam buers capazes de abrigar tantos pacotes quanto for
o tamanho da janela, garantindo que pacotes que trafegam nos dois sentidos ter~ao espaco
de armazenamento alocado a priori. Caso este espaco n~ao possa ser alocado no momento do
estabelecimento da conex~ao por um roteador, outro circuito pode ser escolhido ou a conex~ao
e recusada.
Esta estrategia, entretanto, pode representar uma sub-utilizac~ao dos recursos, no caso de
uma conex~ao ser estabelecida e poucos pacotes circularem por ela. Pior ainda, novas conex~oes
podem ser recusadas em favor de \conex~oes ociosas" ja estabelecidas. Este problema pode ser
DCA-FEEC-UNICAMP
61
Descarte de Pacotes
Esta estrategia de controle de congestionamento e oposta a apresentada acima. Cada
roteador possui um conjunto de buers de armazenamento (por interface de sada do roteador)
para o armazenamento local de pacotes antes de sua transmiss~ao. Caso um pacote seja recebido e n~ao exista espaco disponvel para armazena-lo, o mesmo e simplesmente descartado.
Em geral, pacotes de controle n~ao s~ao descartados, sendo processados no proprio buer
de recepc~ao. A raz~ao para tal e que pacotes de controle geralmente causam a liberac~ao de
pacotes de dados armazenados. Por exemplo:
pacotes de reconhecimento liberam pacotes de dados ja transmitidos mas ainda armazenados caso sua retransmiss~ao se faca necessaria;
Seja um roteador com k buers disponveis para armazenamento de pacotes (buers
alocados a recepca~o n~ao contam) e s interfaces de sada. Como cada pacote recebido e
roteado para uma dada interface de sada, pode-se dizer que os buers armazenando pacotes
s~ao alocados as interfaces de sada. Obviamente, uma unica interface n~ao pode monopolizar
os k buers do pool. Ent~ao, qual o numero maximo de buers, m, que devemos alocar por
interface?
p Estudos empricos mostram um numero adequado de buers e dado pela relaca~o
m = k= s.
DCA-FEEC-UNICAMP
62
LAN-WAN-LAN: conex~ao entre duas LANs de uma mesma organizac~ao por intermedio
de uma rede publica ou corporativa, formando as chamadas Redes Privadas Virtuais
(VPN: Virtual Private Network).
W A N
802.3
Ethernet
802.3
Ethernet
802.5
Token Ring
802.3
Ethernet
Figura 4.2: Exemplo de interconex~ao de redes. Ret^angulos sombreados representam dispositivos de interconex~ao.
Repetidores
Repetidores regeneram o sinal entre segmentos de uma mesma rede. Por exemplo, uma
rede Ethernet possui um limitante de 500m para o comprimento do cabo coaxial em banda
larga. Entretanto, pode-se estender uma Ethernet ate 2500m utilizando-se 4 repetidores.
Repetidores est~ao relacionados unicamente com a camada fsica do modelo OSI.
Pontes (Bridges)
Pontes interconectam redes cujas diferencas n~ao passam da camada de enlace do modelo
OSI. E o caso, por exemplo, das redes padr~ao IEEE 802.3, 802.4 e 802.5, que possuem o
mesmo protocolo de enlace (802.2-LLC) mas formato de quadros, protocolo de acesso ao
meio e camada fsica diferenciados. Pontes convertem o enlace de dados, o protocolo de
acesso ao meio e os padr~oes da camada fsica de uma rede para outra, atuando nas duas
primeiras camadas do modelo OSI (ou unicamente na camada interface de rede da arquitetura
TCP/IP).
Roteadores Multiprotocolo
Roteadores multiprotocolo interconectam redes cujas diferencas chegam ate a camada de
rede (protocolo de enlace, formato dos pacotes, etc). Por exemplo, a conex~ao de uma rede
DCA-FEEC-UNICAMP
63
local TCP/IP a uma rede publica Frame Relay se da atraves de um roteador multiprotocolo
(formato dos pacotes e quadros, protocolos de enlace e acesso ao meio, e padr~oes da camada
fsica requerem convers~ao). Roteadores multiprotocolo atuam nas tr^es primeiras camadas do
modelo OSI (ou nas duas primeiras da arquitetura TCP/IP).
Conversores de Protocolos
Conversores de protocolos interconectam redes cujas diferencas ultrapassam a camada de
rede. Por exemplo, um sistema de ger^encia de rede TCP/IP troca informaca~o com um
sistema de ger^encia OSI atraves de um conversor de protocolo.
DCA-FEEC-UNICAMP
64
INTERREDES
APRIMORAMENTO
APRIMORAMENTO
ACESSO SUBREDE
ACESSO SUBREDE
CAMADA DE ENLACE
CAMADA DE ENLACE
CAMADA FSICA
CAMADA FSICA
SUBREDE #1
SUBREDE #2
4.4.3 Pontes
Dado que redes locais se limitam a camada 2 do modelo OSI,, pontes s~ao comumente empregadas para interconecta-las. Neste caso e imprescindvel que as subredes interconectadas
operem com o mesmo protocolo nas camadas de 3 a 7 (caso contrario, conversores de protocolos devem ser empregados).
A gura 4.4 ilustra uma ponte interconectando duas subredes da famlia IEEE 802 (802.3
e 802.5). Estas subredes utilizam o mesmo protocolo de enlace, mas formatos de quadros,
disciplina de acesso ao meio e camada fsica distintos. O mesmo conceito de interconex~ao de
redes proposto pelo modelo OSI e empregado, exceto que, neste caso, a convers~ao se da no
nvel de quadros (n~ao de pacotes).
A ponte converte o formato de pacote e o protocolo de enlace (quando for o caso) de uma
rede para outra. A ponte disp~oe de tantas camadas fsicas e subcamadas de acesso ao meio
quantas forem as subredes por ela conectadas. A subcamada de enlace logico e quem perfaz
o elo de ligac~ao entre as subredes.
Infelizmente, muitos problemas decorrem da interligac~ao de subredes. Vamos exemplicar
alguns para o caso da interconex~ao de subredes IEEE 802.3 (CSMA-CD) e 802.5 (Token
Ring).
DCA-FEEC-UNICAMP
65
PONTE
802.2 LLC
802.3 FSICA
ETHERNET
802.5 FSICA
TOKEN RING
Taxa de Transmiss~ao
Suponha a subrede 802.3 operando a 100 Mbits/seg e a subrede 802.5 operando a 16
Mbits/seg. Se um host na 802.3 enviar uma rajada de quadros para outro na subrede 802.5, a
ponte ira receber quadros em uma taxa mais alta que e capaz de escoar. Como consequ^encia,
pode ocorrer uma exaust~ao de buers na ponte acarretando a perda de quadros.
Perda de Funcionalidades
O padr~ao 802.5 suporta priorizac~ao no envio de quadros e reserva do meio. A transmiss~ao
de um quadro de altssima prioridade de uma rede 802.5 para outra 802.3 n~ao garante sua
pronta recepc~ao. Ocorre que a ponte, ao receber e converter o quadro necessita executar o
procedimento CSMA-CD para acessar o meio no lado 802.3. Este procedimento n~ao suporta
prioridade, sendo o tempo de acesso func~ao do nvel de trafego na subrede.
Atraso na Comunicac~ao
Pontes invariavelmente imp~oem um atraso na comunicac~ao entre dois hosts. A ponte adiciona
ao tempo de comunicac~ao normal dois procedimentos de acesso ao meio, um c^omputo do
checksum e a convers~ao do pacote de um formato para outro (desprezando-se o tempo extra
na propagac~ao do sinal). Este atraso na comunicac~ao pode causar a ocorr^encia de timeouts
no lado emissor gerando retransmiss~oes desnecessarias (que contribuem para mais atrasos !).
DCA-FEEC-UNICAMP
66
X.75
H
X.25
X.25
Figura 4.5: Interligac~ao de duas subredes via roteadores operando com conex~ao (R: roteador
multiprotocolo; H: host; I: outos equipamentos de interconex~ao). A linha pontilhada indica
uma conex~ao.
DCA-FEEC-UNICAMP
67
I
I
R
destino
fonte
R
H
I
I
Figura 4.6: Interligac~ao de duas subredes sem conex~ao. As linhas tracejadas indicam duas
possveis rotas de datagramas.
Quando a camadas de rede opera sem conex~ao, pacotes podem se perder (por falta de
buer em um roteador, por exemplo), ou serem recebidos fora de ordem (caso
uam por
diferentes roteadores, por exemplo). Cabe a camada de transporte nos hosts comunicantes
tratar estas situaco~es.
DCA-FEEC-UNICAMP
68
GRUPO
CANAL
CRTL
1
TIPO (00001011)
TAMANHO DO
ENDEREO FONTE
TAMANHO DO
ENDEREO DESTINO
ENDEREO FONTE
ENDEREO DESTINO
DADOS DO USURIO
GRUPO
CANAL
TIPO
CRTL
1
INFORMAO ADICIONAL
DCA-FEEC-UNICAMP
69
INTERRUPT: envio de, no maximo, 32 bytes fora de sequ^encia (com alta prioridade);
Pacotes de dados apresentam o formato da gura 4.9. O bit Q indica dados qualicados
e e utilizado pela camada de transporte para distinguir seus PDUs de dados dos de controle.
O bit D estipula o signicado do campo piggyback. Se D for igual a 1, piggyback indica
um reconhecimento por parte do host (DTE) receptor. Caso contrario (D igual a zero), o
reconhecimento da entrega e oriundo do DCE local. O campo modulo pode assumir o valor
01 para numeraca~o em modulo 8, ou 10 para numeraca~o em modulo 128.
Q
MDULO
GRUPO
CANAL
PIGGYBACK
MAIS
SEQUNCIA
CRTL
0
DADOS
DCA-FEEC-UNICAMP
70
4.6 Problemas
1. Quais os servicos providos pela camada de rede?
2. Como se da o roteamento no nvel da camada de rede?
3. Quais as vantagens e desvantagens das camadas de rede orientadas a conex~ao e sem
conex~ao?
4. Quais as tecnicas mais empregadas para controle de congestinamento em subredes de
comunicac~ao?
5. Quais os dispositivos existentes para a interconex~ao de redes e em que situac~oes s~ao
empregados ?
6. Cite algumas perdas de funcionalidades causadas pela interconex~ao de redes 802.3
(CSMA-CD) e 802.5 (Token Ring).
7. Como o modelo OSI trata a interconex~ao de redes?
8. Como e estabelecida uma conex~ao no nvel da camada de rede no protocolo X.25?
9. Quais os pacotes de controle empregados no X.25/Camada 3? Faca um diagrama
temporal mostrando os pacotes emitidos pelas duas entidades.
10. O que e piggybacking?
Cap
tulo 5
A CAMADA DE TRANSPORTE
A camada de transporte e a primeira camada do modelo OSI a abstrair a topologia e a
tecnologia da subrede de comunicaca~o. Esta camada utiliza o servico de entrega de pacotes
da camada de rede para prover comunicaca~o conavel host a host. Se a camada de rede
for baseada em datagrama, todo o trabalho para uma comunicac~ao conavel ca a cargo da
camada de transporte. Neste caso, a camada de transporte deve gerenciar a perda, duplicaca~o
e invers~ao de ordem de pacotes ocorridas na subrede de comunicac~ao. No caso da camada
de rede prover entrega conavel de pacotes, a camada de transporte tem uma estrutura
mais simplicada, gerenciando principalmente o
uxo de mensagens (TPDUs) entre os hosts
comunicantes e as quebras de conex~oes de rede (N-RESETs).
71
DCA-FEEC-UNICAMP
72
proteca~o: estipula a privacidade dos dados
uindo pela conex~ao de transporte quanto
a sua interceptaca~o por terceiros;
um programa em loop que supostamente deveria ler caracteres ja digitados pelo usuario. O que
aconteceria se o caracter BREAK, teclado pelo usuario para abortar o programa, for entregue em sequ^encia?
DCA-FEEC-UNICAMP
73
DCA-FEEC-UNICAMP
entidade #1
entidade #1
74
entidade #2
TCONNECT.request
TCONNECT.request
TCONNECT.confirm
TCONNECT.indication
TCONNECT.indication
TCONNECT.response
TDISCONNECT.request
TDISCONNECT.indication
TDATA.request
(b)
TDATA.indication
TCONNECT.request
TEXPEDITEDDATA.request
TEXPEDITEDDATA.indication
TCONNECT.indication
TDATA.indication
(c)
TDATA.request
TDISCONNECT.request
TDISCONNECT.indication
TDISCONNECT.indication
TDISCONNECT.indication
(d)
(a)
tempo
Figura 5.1: Algumas sequ^encias de ocorr^encia das primitivas OSI: (a) sequ^encia normal de
transfer^encia de dados; (b) conex~ao recusada pelo host remoto; (c) conex~ao recusada pela
camada de transporte; (d) termino de conex~ao requisitado pela camada de transporte.
Tipo B : Transporte conavel de pacotes, mas com a ocorr^encia de N-RESETs (quebras
de conex~oes). Redes publicas X.25 pertencem a esta classe.
Tipo C : Transporte de pacotes n~ao conavel. Redes com protocolo IP (Internet Protocol)
como a Internet, por exemplo, pertencem a esta classe.
Classe 0 : Operam em subredes tipo A. S~ao os protocolos mas simples pois toda a conabilidade do transprte de dados recai sobre a subrede de comunicaca~o.
Classe 2 : Para redes tipo A, s~ao id^enticos aos de Classe 0, permitindo apenas a multiplexaca~o de varias conex~oes de transporte numa unica conex~ao de rede.
DCA-FEEC-UNICAMP
75
Espera
1
2 ou 3
1
4
2 ou 3
2
3
2 ou 3
Requisio de Conexo
Solicitada Entidade Remota
Requisio de Conexo
5
4
Conexo Estabelecida
710
Figura 5.2: Estados de um TSAP. Os eventos que causam transic~ao de estado s~ao: (1) TCONNECT.request gerado pela camada usuaria; (2) T-DISCONNECT.indication recebido
da camada de transporte; (3) T-DISCONNECT.request gerado pela camada usuaria; (4)
T-CONNECT.indication recebido da camada de transporte; (5) T-CONNECT.conrm recebido da camada de transporte; (6) T-CONNECT.response gerado pela camada usuaria;
(7) T-DATA.request gerado pela camada usuaria; (8) T-DATA.indication recebido da camada de transporte; (9) T-EXPEDITED-DATA.request gerado pela camada usuaria; (10)
T-EXPEDITED-DATA.indication recebida da camada de transporte.
DCA-FEEC-UNICAMP
76
DCA-FEEC-UNICAMP
CR (seq = X)
77
CR (seq = X)
dupl.
CR (seq = X)
CR (seq = X)
CR (seq = X)
CC (seq = Y, ack = X)
CC (seq = Y, ack = X)
CC (seq = Y, ack = X)
CC (seq = Y, ack = X)
CC (seq = Y, ack = X)
CC (seq = Y, ack = X)
CC (seq = X, ack = Y)
CC (seq = X, ack = Y)
REJ (ack = Y)
CC (seq = X, ack = Y)
CC (seq = X, ack = Y)
REJ (ack = Y)
(b)
(a)
tempo
Figura 5.3: Estabelecimento de conex~ao em 3 fases: (a) situaca~o normal; (b) duplicac~ao de
TPDU de requisic~ao.
No caso de pool de buers, pode-se empregar buers de tamanho variado. Isto causa um
overhead adicional na procura de um buer no pool (de tamanho adequado a TPDU que o
buer ira abrigar).
No caso de se empregar buer unico, pode-se negociar um tamanho inicial de buer (ao
inves do tamanho da janela) no estabelecimento da conex~ao. O host que esta recebendo
TPDUs de dados informa nas TPDUs de reconhecimento quantos bytes existem disponveis
no buer. O host emitindo as TPDUs ajusta sua taxa de transmiss~ao em func~ao das TPDUs
que tem para transmitir e da quantidade de espaco que o receptor tem para armazenalos. Note que o tamanho do buer unico no receptor (e no transmissor, caso esteja usando
o mesmo esquema de buerizac~ao) pode permanecer constante, aumentar ou diminuir de
tamanho, em func~ao da memoria disponvel a camada de transporte como um todo.
DCA-FEEC-UNICAMP
78
contador sem a chegada de conrmac~ao, o pedido de encerramento de conex~ao e retransmitido. O processo se repete por determinado numero de vezes quando a conex~ao e encerrada
unilateralmente pelo lado do emissor.
O receber uma TPDU solicitando o encerramento de conex~ao, o receptor tambem dispara
um contador de tempo (com intervalo bem superior ao do emissor), enviando prontamente
a conrmac~ao ao solicitante. Se este tempo se expirar sem o recebimento da "conrmaca~o
da conrmac~ao", o host encerra unilateralmente a conex~ao. A gura 5.4 ilustra este procedimento.
DR
DR
DR
DR
DC
DC
DC
DC
remove conexo
remove conexo
ACK
ACK
perda
ACK
remove conexo
timeout
remove conexo
(b)
(a)
tempo
DR
DR
DR
DR
DC
DC
perda
perda
timeout
timeout
DR
DR
DR
perda
timeout
timeout
DC
remove conexo
DC
remove conexo
ACK
ACK
remove conexo
(c)
timeout
remove conexo
(d)
Figura 5.4: Encerramento de conex~ao em 3 fases: (a) situaca~o Normal; (b) falha na terceira
fase; (c) falha na segunda fase; (d) falhas na segunda e terceira fase.
Este procedimento garante tambem que TPDUs "atrasadas"n~ao ser~ao descartadas. Simplesmente, um host n~ao aceita o encerramento da conex~ao (emitindo um REJECT na terceira
fase) se uma ou mais TPDU de dados ainda n~ao teve seu recebimento conrmado.
Encerramento de conex~ao em tr^es fases n~ao garante que uma conex~ao sera encerrada em
cem por cento dos casos (por exemplo, quando nenhuma das TPDUs solicitando o encerramento da conex~ao atingem o destino). Uma seguranca adicional e encerrar uma conex~ao
DCA-FEEC-UNICAMP
79
caso permaneca inativa por um determinado perodo de tempo. TPDUs de conteudo nulo
podem ser empregados para manter a conex~ao viva, fazendo com que sua recepc~ao zere o
contador de tempo que monitora e inatividade da conex~ao.
5.5 Multiplexac~ao
Multiplexac~ao no nvel de camada de transporte e a capacidade de:
1. operar multiplas conex~oes de transporte atraves de uma unica conex~ao de rede (multiplexac~ao upward); ou
2. uma unica conex~ao de transporte utilizar multiplas conex~oes de rede (multiplexaca~o
downward).
O primeiro caso e comum em redes publicas onde a taxac~ao e func~ao do numero de
conex~oes requisitadas a subrede de comunicac~ao. Obviamente a qualidade do servico e
pobre em conex~oes de transporte multiplexadas numa mesma conex~ao de rede. Protocolos
de transporte classe 2 em diante s~ao dotados de capacidade de multiplexac~ao upward.
O segundo caso (multiplexac~ao downward) ocorre quando uma conex~ao de transporte
necessita determinada vaz~ao n~ao assegurada pela conex~ao de rede. Neste caso, distribui-se
as TPDUs por varias conex~oes de rede, aumentando a vaz~ao da conex~ao de transporte.
DCA-FEEC-UNICAMP
80
CC (Connection Conrm): Prov^e conrmaca~o positiva ou negativa de uma requisica~o de
DC (Disconnect Conrm): conrma o termino da conex~ao. A parte variavel carrega apenas
o checksum, se sua utilizaca~o foi decidida no estabelecimento da conex~ao.
DT (Data): transporta dados. O campo EOT (End of Text) ocupa 1 bit e indica se esta
TPDU e a ultima de uma mensagem ou n~ao (em sendo o ultimo, a mensagem pode
ser entregue a entidade receptora). Completando o byte, o campo TPDU-N, de 7 bits,
prov^e o numero de sequ^encia da TPDU em modulo 7.
ER (Error Report): informa a ocorr^encia de erros tais como par^ametros desconhecidos, tipo
de TPDU invalido, etc. O campo MOTIVO informa o erro detectado. Caso necessario,
maiores informac~oes s~ao supridas na parte variavel.
DCA-FEEC-UNICAMP
Bytes
CR
LI
1110
Cdt
00 . . . . 0
TSAP origem
CLASSE
Parte Varivel
Dados
CC
LI
1101
Cdt
TSAP destino
TSAP origem
CLASSE
Parte Varivel
Dados
DR
LI
1000
0000
TSAP destino
TSAP origem
MOTIVO
Parte Varivel
Dados
DC
LI
1100
0000
TSAP destino
TSAP origem
DT
LI
1111
0000
TSAP destino
TPDUN
81
Parte Varivel
Dados
EOT
ED
LI
0001
0000
TSAP destino
AK
LI
0110
Cdt
TSAP destino
ESPERADO
EA
LI
0010
0000
TSAP destino
ESPERADO
RJ
LI
0101
Cdt
TSAP destino
ESPERADO
ER
LI
0111
0000
TSAP destino
MOTIVO
TPDUN
TPDU
TPDU
Parte Varivel
Dados
Parte Varivel
Parte Varivel
TPDU
Parte Varivel
(a)
LI
01000000
Parte Varivel
Dados
(b)
Figura 5.5: PDUs de transporte denidos pela ISO: (a) transporte orientado a conex~ao; (b)
transporte orientado a datagrama.
5.8 Problemas
1. Quais as func~oes precpuas da camada de transporte?
2. O que e "qualidade de servico"e sob que par^ametros e determinada?
3. Qual a nalidade de se denir classes de protocolos de transporte?
4. Descreva como conex~oes s~ao estabelecidas em protocolos de transporte classe 4.
5. Como se da o controle de
uxo em protocolos de transporte classe 4?
6. Quais as diferencas no procedimento de tr^es fases para se abrir e fechar conex~oes?
DCA-FEEC-UNICAMP
82
Cap
tulo 6
~
A CAMADA DE SESSAO
A camada de sess~ao tem por nalidade organizar a troca de informac~ao (dialogo) entre dois
hosts comunicantes. Esta camada prov^e mecanismos para:
estabelecer e terminar sess~oes de dialogo;
DCA-FEEC-UNICAMP
entidade #1
TDATA.request
entidade #2
entidade #1
SRELEASE.request
SDATA.request
T_DISCONNECT.request
84
descarte
SDATA.indication
SRELEASE.indication
TDISCONNECT.indication
SRELEASE.response
tempo
(a)
SRELEASE.confirm
(b)
Figura 6.1: Encerramento de conex~oes: (a) de transporte; (b) de sess~ao (RELEASE tem o
signicado de DISCONNECT).
DCA-FEEC-UNICAMP
85
entidade #2
tempo
legenda:
SDATA
SEXPEDITEDDATA
STOKENPLEASE
STOKENGIVE
DCA-FEEC-UNICAMP
86
ATIVIDADE #1
ATIVIDADE #2
ATIVIDADE #3
tempo
incio
trmino
interrupo
retomada
descarte
DCA-FEEC-UNICAMP
87
retomada: retoma uma atividade a partir do ponto em que foi interrompida (exemplo:
retoma a transmiss~ao de arquivo).
As consequ^encias de se iniciar, terminar, descartar, suspender e retomar atividades dizem
respeito apenas as aplicaco~es usuarias da camada de sess~ao. A camada de sess~ao apenas prov^e
as primitivas para tal, gerando as respectivas SPDUs de controle que causam as respectivas
indicac~oes na camada de sess~ao oposta. As primitivas para iniciar e retomar atividade
interrompida s~ao servicos sem conrmaca~o; as demais s~ao servicos conrmados.
Finalmente, nada impede ao usuario inserir pontos de sincronismo maior menor no interior de uma atividade.
DCA-FEEC-UNICAMP
primitiva
S-CONNECT
S-RELEASE
88
nalidade
6.9 Problemas
1. Quais as funcionalidades que a camada de sess~ao prov^e?
2. Quais as diferencas entre uma conex~ao de transporte e uma conex~ao de sess~ao?
3. Como a camada de sess~ao implementa comunicac~ao half-duplex?
4. Como a camada de sess~ao classica os dados por ela transmitidos?
DCA-FEEC-UNICAMP
1 byte
1byte
SI
LI
PARMETROS
....
PI
LI
89
DADOS
PV
Figura 6.4: Formato geral de um SPDU (para compatibilidade com o protocolo ITU-T para
teletexto).
5. Como funciona o mecanismo de sincronizac~ao da camada de sess~ao?
6. Quais as vantangens de se organizar o dialogo em atividades?
7. Quais as operac~oes de gerenciamento de atividades?
8. Faca um diagrama temporal mostrando uma re-sincronizaca~o do dialogo. Idem para o
incio, suspens~ao, retomada e termino de uma atividade.
9. Cite as primitivas OSI de sess~ao.
10. Descreva os campos de uma SPDU do protocolo OSI de sess~ao.
Cap
tulo 7
~
A CAMADA DE APRESENTAC
AO
A camada de apresentac~ao e empregada para alterar a representac~ao de dados transmitidos
via rede para ns de:
1. compatibilizar a comunicac~ao;
2. seguranca e privacidade;
3. compactac~ao de dados.
O primeiro item diz respeito a representac~ao can^onica de dados: uma representac~ao
inteligvel por todos os hosts comunicantes independentemente de suas arquiteturas de
maquina. Os dois ultimos itens se relacionam com criptograa e compress~ao de dados.
A camada de apresentac~ao e o local para se implementar tais func~oes. Criptograa e compress~ao de dados s~ao topicos extensos e dependentes do contexto no qual a aplicac~ao esta
inserida. Estes topicos n~ao ser~ao cobertos neste texto.
DCA-FEEC-UNICAMP
91
que
uem pela rede t^em uma representac~ao padronizada. Isto evita que hosts comunicantes
necessitem conhecer mutuamente a forma de representac~ao de dados por eles empregadas 1 .
No modelo OSI, a representac~ao can^onica de dados baseia-se em uma sintaxe denominada
ASN.1 (Abstract Syntax Notation, version 1).
<TIPO, VALORES>
APLICAO
PSAP
APRESENTAO
PSAP
tipo?
DICIONRIO
DE TIPOS
tipo?
BER
BER
ASN.1
ASN.1
DICIONRIO
DE TIPOS
TIPO CODIFICADO
TIPO CODIFICADO
SSAP
SESSO
SSAP
DCA-FEEC-UNICAMP
92
actere deve ser uma letra. Palavras denem tipos de dados, identicadores e palavraschave.
object identier: dene univocamente um objeto, por exemplo, um protocolo de transfer^encia de arquivos;
DCA-FEEC-UNICAMP
93
DCA-FEEC-UNICAMP
94
OCTETSTRING,
OCTETSTRING,
OCTETSTRING,
OCTETSTRING,
OCTETSTRING }
(Tagged)
Ao receber um PDU com o cabecalho dado pela sequ^encia acima, como o receptor reconhece se o campo opcional foi transmitido ? A soluc~ao e marcar explicitamente os componentes
da sequ^encia e transmitir a marca junto com o dado. Exemplo:
PDUHeader ::= SEQUENCE {
Length [0] INTEGER,
Flags [1] BITSTRING OPTIONAL DEFAULT '00000000'B,
DestinationTSAP [2] INTEGER,
DCA-FEEC-UNICAMP
95
Assim sendo, se o campo Flags for omitido, o receptor toma conhecimento pela aus^encia
da marca [1]. Com a transmiss~ao da marca, o tipo ca redundante pois pode ser acessado
pelo receptor na denic~ao do tipo construtor. Esta redund^ancia pode ser mantida como uma
vericac~ao adicional. Para elimina-la deve-se utilizar a palavra-chave IMPLICIT:
PDUHeader ::= SEQUENCE {
Length [0] IMPLICIT INTEGER,
Flags [1] IMPLICIT BITSTRING OPTIONAL DEFAULT '00000000'B,
DestinationTSAP [2] IMPLICIT INTEGER,
SourceTSAP [3] IMPLICIT INTEGER
}
Suponha agora que o protocolo possui varios tipos de PDUs (por exemplo, 9 para o TP4). Ao receber um PDU, como o receptor descobre de que tipo se trata ? Se o cabecalho do
exemplo anterior for, digamos, do terceiro tipo, podemos marcar n~ao apenas seus campos,
mas tambem sua estrutura como um todo:
PDUHeader ::= [APPLICATION 3] SEQUENCE {
Length [0] IMPLICIT INTEGER,
Flags [1] IMPLICIT BITSTRING OPTIONAL DEFAULT '00000000'B,
DestinationTSAP [2] IMPLICIT INTEGER,
SourceTSAP [3] IMPLICIT INTEGER
}
7.2.4 Macros
Macro e um recurso utilizado em muitas linguagens de programac~ao para redenir a sintaxe
da linguagem. ANS.1 permite a denica~o de macros atraves da construc~ao
<<name-of-macro>> MACRO ::=
BEGIN
DCA-FEEC-UNICAMP
96
TYPE NOTATION contem os tipos (atributos) denidos pela macro, enquanto VALUE
NOTATION determina o tipo do objeto que deve ser passado quando a macro e invocada.
Productions (produc~oes) s~ao similares a notaca~o BNF utilizada na descric~ao formal de linguagens de programac~ao e imp~oem regras para a construc~ao de atributos.
Macros ANS.1 s~ao utilizadas para a denica~o de varias construco~es na area de ger^encia
de redes tais como de identicaca~o de modulos e tipos de objetos de ger^encia.
DCA-FEEC-UNICAMP
numero 100:
numero 32768:
string "A":
97
Como exemplo de tipos construtores, tomemos o caso de uma SEQUENCE. Neste caso, o
byte que descreve o tipo indica se tratar de uma sequ^encia, o byte tamanho indica o numero
de elementos da sequ^encia (N) e o byte valor da lugar a N triplas (tipo, tamanho, valor).
Por exemplo, uma sequ^encia composta do numero 100 e do string "A"e codicada como:
Exemplo ::= [UNIVERSAL 7] SEQUENCE {
elem-1 [1] IMPLICIT INTEGER,
elem-2 [2] IMPLICIT OCTETSTRING }
<<<-
[UNIVERSAL 7] 2
[1] 100
[2] "A"
7.5 Problemas
1. Quais as func~oes da camada de apresentac~ao?
2. Especique os NPDUs do X.25/camada 3 em ASN.1.
2 Come
cando
com P- ao inves de S-
Cap
tulo 8
~
A CAMADA DE APLICAC
AO
identicar elementos remotos de aplicaca~o, vericando sua disponibilidades (servidores,
por exemplo);
Alguns exemplos de servicos providos pela camada de aplicac~ao s~ao listados abaixo:
DCA-FEEC-UNICAMP
99
Para o provimento destes servicos a camada de aplicac~ao possui uma estruturac~ao relativamente complexa quando comparada as demais camadas do modelo OSI. Esta estruturac~ao
e sintetizada na sequ^encia.
PROCESSO DE
APLICAO (AP)
PROCESSO DE
APLICAO (AP)
...
USER ELEMENT
(UE)
USER ELEMENT
(UE)
AMBIENTE "REAL"
AMBIENTE OSI
FTAM
MHS
...
DS
CAMADA DE APLICAO
ACSE
ROSE
PSAP
PSAP
...
CCR
PSAP
CAMADA DE APRESENTAO
DCA-FEEC-UNICAMP
100
o meio interaca~o entre duas entidades da camada N+1 via servicos oferecidos pela camada
N. O que ocorre se N = 7, ou, em outas palavras, quem utilizaria as conex~oes da camada de
aplicac~ao?
Este problema foi resolvido atraves das regras abaixo:
1. a camada de aplicac~ao dene associaca~o (n~ao conex~ao) como forma de provimento de
servicos aos APs;
2. cada associaca~o de aplicac~ao utiliza uma unica conex~ao de apresentac~ao (isto e, uma
associaca~o pode ser vista como uma extens~ao de uma conex~ao de apresentac~ao).
Um CASE denominado ACSE (Association Control Service Element) oferece o servico
de estabelecimento de associac~ao para as demais entidades da camada de aplicaca~o.
Atualmente, a tend^encia e evitar a distinc~ao entre CASE e SASE e denominar estas
entidades simplesmente de ASE (Application Service Element). Uma quent~ao crucial e: como
combinar ASEs para implementar um servico complexo? Esta quest~ao esta vinculada com
o conceito de associac~ao. Intuitivamente, um ASE proveria uma associaca~o atraves de uma
conex~ao de apresentaca~o agregando valor a conex~ao oferecida pela camada inferior1. Este
modelo apresenta alguns problemas quando ASEs s~ao combinados. O principal problema
refere-se a complexidade da coordenaca~o de multiplas associac~oes (cada qual utilizando uma
unica conex~ao de apresentaca~o). O que ocorre, por exemplo, se uma das associaco~es e
encerrada pelo provedor?; ou, como gerenciar o dialogo a nvel de aplicac~ao se diferentes
associaco~es utilizam diferentes servicos de sess~ao2 ?
A proposta da ISO para esta quest~ao e a denica~o de um componente agregador denominado ASO (Application Service Object). Um ASO e um objeto provedor de servico que
agrega:
Um ASO estabelece uma unica associac~ao eliminando, portanto, o problema de gerenciamento de multiplas associac~oes (uma por ASE). Obviamente, caso um ASO agregue outros
ASOs multimas associac~oes emanar~ao deste, mas as demais associac~oes s~ao encapsuladas
pelos ASOs agregados.
Entidades de aplicac~ao agora s~ao denidas em termos de ASOs, n~ao mais em termos de
ASEs. Em linhas gerais, neste modelo os ASEs denem mensagems (APDUs), enquanto os
ASOs (via CF) determinam a din^amica da interaca~o atraves destas mensagens.
A gura 8.2 ilustra esta nova concepca~o da camada de aplicac~ao. Infelizmente, esta
concepc~ao foi elaborada apos muitos ASEs ja terem sido padronizados. Esta padronizaca~o
n~ao levou em conta a possibilidade destes ASEs serem agregados em torno de um ASO. A
DCA-FEEC-UNICAMP
101
USURIO
PROCESSO DE
APLICAO (AP)
USER ELEMENT
(UE)
ASO
ASE
ASE
ASE
CF
ASO
ASO
PSAP
ASO
PSAP
CONEXO DE APRESENTAO
1 As
2 Por
DCA-FEEC-UNICAMP
102
um contexto de aplicac~ao: um identicador de objeto em ASN.1 utilizado para identicar as regras de interc^ambio de informac~ao atraves da associaca~o (por exemplo,
protocolo de aplicaca~o);
Os servicos providos pelo ACSE s~ao acessados atraves das primitivas abaixo:
1. A-ASSOCIATE: estabelece uma associaca~o utilizando a primitiva P-CONNECT da
camada de apresentaca~o. Este servico e conrmado.
2. A-RELEASE: termina uma associac~ao utilizando a primitiva P-RELEASE de apresentaca~o. Este servico e conrmado.
3. A-ABORT: termina abruptamente (aborta) uma associac~ao por solicitaca~o da entidade usuaria utilizando a primitiva P-U-ABORT de apresentaca~o. Este servico e sem
conrmac~ao.
4. A-P-ABORT: informa o termino abrupto de uma associaca~o pelo provedor do servico.
Esta primitiva e ativada quando da ocorr^encia de um P-P-ABORT na camada de
apresentaca~o e possui o modo indicaca~o apenas.
5. A-UNITDATA: transfere uma unidade de dados de aplicaca~o sem o estabelecimento
de associac~ao. Este servico e sem conrmaca~o e utiliza a primitiva P-UNITDATA de
apresentaca~o.
Note a inexist^encia da primitiva A-DATA para envio de dados atraves de uma associac~ao.
A primitiva P-DATA e empregada para esta nalidade.
Um ponto importante do ACSE e como entidades de aplicac~ao s~ao identicadas. A
identicaca~o AEs se da atraves de nomes que o ACSE mapeia em enderecos de apresentac~ao
(PSAPs) utilizando o proprio servico de diretorio da camada de aplicaca~o.
DCA-FEEC-UNICAMP
103
O ROSE utiliza associac~oes para a comunicaca~o entre entidades remotas3 . Uma associac~ao aberta para suporte a operacoes remotas dene atraves de sua classe qual entidade
esta autorizada a evocar procedimentos remotos:
classe 1: permite apenas a entidade que solicitou a associaca~o evocar operaco~es remotas;
classe 2: permite apenas a entidade que aceitou a associaca~o evocar operac~oes remotas;
classe 3: permite ambas as entidades evocarem operac~oes remotas.
A-UNITDATA.
DCA-FEEC-UNICAMP
OPERAO B
(ligada A)
104
ROSE #2
OPERAO A
TEMPO
TEMPO
DCA-FEEC-UNICAMP
105
a ocorr^encia de falhas. Isto sem duvida consiste em uma limitac~ao severa posto que as entidades usuarias do RTSE certamente desejariam transferir dados bem mais estruturados.
Para contornar esta limitac~ao, a especicac~ao RTSE dene um servico de compatibilizaca~o
sintatica4 . Este servico permite que as entidades usuarias denam implementac~oes locais
que transformam os tipos de dados peculiares da entidade em string de octetos. Regras para
esta transformaca~o esta fora da especicaca~o do RTSE.
O RTSE disp~oe de sete primitivas:
RT-TURN-GIVE: passa o token a outra entidade, habilitando-a a transferir dados. E
um servico n~ao conrmado.
Matching Service.
DCA-FEEC-UNICAMP
106
Uma transaca~o at^omica opera sobre objetos localizados em um ou mais hosts. No ultimo
caso, um host e eleito como coordenador da transac~ao (geralmente o host da aplicac~ao que
solicitou a transaca~o) sendo os demais participantes. Tanto o coordenador quanto os participantes s~ao responsaveis pela garantia das tr^es propriedades acima. Um instante crtico para
esta garantia e o encerramento da transac~ao. Um protocolo de consenso se faz necessario e
o mais utilizado e o protocolo de compromissamento em duas fases5 .
A implementac~ao de transac~oes at^omicas n~ao e tarefa trivial. Mecanismos de recuperac~ao
(rollback) s~ao necessarios para a garantia da atomicidade; de bloqueio (locking) para garantir
a serializaca~o; e de logging para a garantia da persist^encia.
O CCR n~ao oferece tais mecanismos, posto que s~ao fortemente dependentes da aplicaca~o.
Em resumo, o CCR prov^e primitivas para iniciar, abortar e terminar uma transac~ao segundo
o protocolo de compromissamento em duas fases.
As primitivas CCR s~ao:
C-REFUSE: o participante responde o coordenador que esta impossibilitado de encerrar a transac~ao com sucesso 6 (sem conrmaca~o);
Note a inexist^encia de uma primitiva tipo C-DATA. Tal qual o RTSE, o CCR utiliza os
servicos da camada de apresentaca~o para transfer^encia de dados. O CCR fornece apenas
os mecanismos de controle para o processamento de transac~oes. As operac~oes realizadas no
^ambito de uma transac~ao est~ao fora da especicaca~o CCR. Estas podem se basear no ROSE
ou simplesmente utilizar a primitiva P-DATA de apresentaca~o para o envio de informac~ao.
5 Two-fase commit.
6 Provavelmente porque
permanentes.
DCA-FEEC-UNICAMP
107
Do ponto de vista da implementac~ao, uma transaca~o e delimitada por pontos de sincronismo maior. As primitivas C-REFUSE, C-ROLLBACK e C-RESTART emitem um PRESYNCHRONIZE a m de retroagir (via facilidades de logging) ao ponto de sincronismo
inserido no incio da transaca~o.
Uma especicac~ao correlata denominada TP (Transaction Processing) incorpora todas
as primitivas do CCR, denindo inclusive uma primitiva TP-DATA.
7 Endere
camento,
DCA-FEEC-UNICAMP
USURIO
108
USURIO
MHS
MS
UA
P3
P7
P3
UA
MTA
MTA
P1
P1
P1
MTS
MTA
P1
P3
MTA
UA
UA
P7
P3
P3
UA
MS
USURIO
USURIO
USURIO
Legenda:
MTA: Message Tranfer Agent
MS: Message Store
UA: User Agent
MTS: Message Transfer System
MHS: Message Handling System
Nome ADMD (Administrative Management Domain): especica a organizaca~o provedora do servico ao qual o usuario esta conectado (Ex: Embratel);
Nem todos os atributos acima podem estar presentes no envelope de uma mensagem. Por
exemplo, o endereco do terminal pode suprimir o nome da organizaca~o e usuario.
Quanto a seguranca e privacidade, o protocolo X.400 cobre tr^es areas:
1. condencialidade: garante que apenas o destinatario tera acesso ao conteudo da mensagem;
DCA-FEEC-UNICAMP
109
EMISSOR:
DESTINATARIO:
INFO. SOBRE ROTEAMENTO:
INFO. SOBRE CONTEDO:
....
ENVELOPE
TIPO:
CODIFICAO:
CONTEDO
Um objeto e uma sequ^encia de atributos especicado em ASN.1 onde cada atributo possui
um identicador de objeto que descreve o tipo de atributo e o(s) correspondente(s) valor(es).
Tipos usualmente s~ao PrintableString em ASN.1 o que possibilita uma interpretaca~o livre de
arquitetura de maquina. A gura 8.6 ilustra um objeto generico.
8 Isto
DCA-FEEC-UNICAMP
ATRIBUTO
TIPO
ATRIBUTO
VALOR
110
ATRIBUTO
VALOR
VALOR
c: FR
c: BR
o: USP
o: UNICAMP
ou: FEM
ou: FEEC
ou: DCA
ou: DEB
DCA-FEEC-UNICAMP
111
USURIO
DSA
DSP
DAP
DUA
DSP
DSA
DSP
DAP
DSA
DUA
Legenda:
DSA: Directory Service Agent
DUA: Directory User Agent
USURIO
DCA-FEEC-UNICAMP
112
USURIO
PROCESSO DE
APLICAO (AP)
FTAM
Protocolo FTAM
FTAM
SAV
Legenda:
SAV: Sistema de Arquivo Virtual
SA: Sistema de Arquivo
SA
DCA-FEEC-UNICAMP
113
DU
(A)
DU
DU
DU
(B)
DU
DU
DU
DU
(C)
Legenda:
DU: Data Unit
Figura 8.10: FTAM: Arquivos n~ao estruturado (A); sequencial (B); estruturado em blocos
(C). As linhas pontilhadas do item (C) denem FADUs.
1. F-CREATE: cria um novo arquivo;
2. F-DELETE: remove um arquivo.
3. F-READ-ATTRIB: l^e os atributos do arquivo (permiss~oes, tipo, etc.);
4. F-CHANGE-ATTRIB: altera os atributos do arquivo.
Seis primitivas s~ao utilizadas para gerenciamento de falhas e atomicidade (todas as primitivas s~ao servicos conrmados):
1. F-BEGIN-GROUP: marca o incio de uma operaca~o at^omica;
2. F-END-GROUP: sinaliza o termino de uma operac~ao at^omica;
3. F-RECOVER: restabelece um regime de transfer^encia apos a ocorr^encia de falha;
4. F-CANCEL: termina abruptamente uma transfer^encia de arquivo;
5. F-CHECK: estabelece um checkpoint no regime de transfer^encia10 ;
10 O
DCA-FEEC-UNICAMP
114
IDLE
initialize
terminate
conectado
select/create
deselect/delete
selecionado
open
close
transferindo
dados
read
data/check/restart
read
read attribute
change attribute
transfer end
cancel
locate/erase
write
write
data/check/restart
DCA-FEEC-UNICAMP
115
VT-ACCEPT-NEG/VT-REJECT-NEG: responde armativa ou negativamente a consulta acima (servico sem conrmac~ao);
DCA-FEEC-UNICAMP
116
O gerenciamento do dialogo (modo B) se da atraves das primitivas VT-REQUESTTOKENS e VT-GIVE-TOKENS, ambas sem conrmaca~o.
Finalmente, o protocolo VT oferece uma primitiva para reiniciar a conex~ao (via PRESYNCHRONIZE): VT-BREAK. Este servico e conrmado.
8.11 Problemas
1. Cite a losoa de integrac~ao entre os ambientes local e OSI.
2. Como a camada de aplicac~ao e estruturada?
3. Qual a diferenca entre conex~ao e associac~ao?
4. Qual a vantagem de se denir objetos de servico (ASOs)?
5. Descreva a utilidade do ACSE, ROSE e RTSE.
6. Cite dois empregos tpicos de transac~oes at^omicas.
7. Desenhe um diagrama temporal para uma transaca~o at^omica envolvendo coordenador
e 3 participantes. Considere os casos de termino normal e anormal (rollback).
8. Descreva funcionalmente o MHS.
9. Descreva funcionalmente o DS.
10. Descreva funcionalmente o FTAM.