Sunteți pe pagina 1din 30

possui dois gateways: Gl interligando as redes 200.1.2, 200.1.5 e 200.1.

3; e
G2 interligando as redes 200.1.3 e 200.1.4.

Uma desvantagem do esquema de roteamento apresentado o tamanho


das tabelas de roteamento, quando a inter-rede interliga um nmero muito
grande de redes individuais (que o caso da Internet). Pra enfrentar esse
problema, so utilizadas estratgias que diminuem o tamanho das tabelas 'de
roteamento.
Uma delas a utilizao de roteaclor.es default. Por exemplo, em redes
que so ligadas inter-rede por. um nico roteador (um exemplo bastante
comum a rede de um departamento ser ligada ao backbone da empresa por
um nico roteador), no necessrio ter uma entrada separada na tabela de
rotas para cada uma das redes distintas da inter-rede. Simplesmente definese o roteador como caminho default.

Figura 10.S: Exemplo de uma inter-rede.

O roteamento no IP baseia-se exclusivamente no identificador de rede


do endereo de destino. Cada computador possui uma tabela cujas entradas
so pares: endereo de rede/endereo de roteador. Essa tabela denominada
tabela de roteamento IP. Quando um mdulo IP, por exemplo, executando
em um roteador, tem que encaminhar um datagrama, ele inicialmente
verifica se o destino do datagrama um host conectado mesma rede que
seu hospedeiro. Se este for o caso, o datagrama entregue interface da
rede que se encarrega de mapear o endereo IP no endereo fsico do host,
encapsular o datagrama JP em um quadro da rede, e finalmente transmiti-lo
ao destinatrio.
Por outro lado, se a rede identificada no endereo de destino do datagrama for diferente da rede onde est o mdulo IP, ele procura em sua tabela
de roteamento uma entrada com o endereo de rede igual ao do endereo de
destino do datagrama, recuperando assim o endereo do roteador que deve
ser usado para alcanar a rede onde est conectado o destinatrio do datagrama. O roteador recuperado da tabela pode no estar conectado diretamente rede de destino, porm, se este for o caso, ele deve fazer parte do
caminho a ser percorrido para alcan-la. Por exemplo, na inter-rede ilustrada na Figura 10.5, para que o mdulo IP do host 200.1.4.20 possa encaminhar datagramas rede 200.1.2, ele deve ter uma entrada em sua tabela de
roteamento associando o endereo de rede 200.1.2 ao endereo do gateway
200.1.4.30.
322

O conceito de roteador default tambm se aplica a redes que possuem


mais de um roteador. Nesse caso, quando no for encontrada uma rota especfica para um datagrama, ele enviado ao roteador default. Atravs de
um protocolo especfico ICMP (internet Control Message Protocol) [Postei
81c] o roteador informar ao mdulo IP se ele no. a melhor escolha para
alcanar uma determinada rede. Essa mensagem, chamada redirect no
ICMP, carrega como parmetro o endereo do roteador que a escolha correta. O mdulo IP, ao receber uma mensagem redirect, adiciona uma entrada
em sua tabela de roteamento associando a rede de destino ao endereo do
roteador recebido na mensagem. A partir de ento, todas as referncias
rede em questo sero corretamente encaminhadas ao novo roteador a ela
associado.
A construo, atualizao e consulta da tabela de rotas dos roteadores,
so realizadas atravs de estratgias semelhantes quelas discutidas na Seo 10.2.2. Os leitores interessados podem consultar [Comer 91] que, alm
de apresentar uma boa discusso sobre o assunto, fornece uma lista de referncias para um estudo aprofundado.

10.4.5 - Consideraes Finais


Devido crescente popularidade da rede Internet TCP/IP, vrios problemas de crescimento se apresentam ao protocolo IP. O primeiro deles diz
respeito a seu espao de endereos. O segundo ao roteamento.
Os endereos esto se esgotando, embora vrias redes operem com endereos ociosos. A razo disso a falta de uma identificao de rede para
redes de tamanho mdio e redes de pequeno tamanho. Para muitas organizaes, uma identificao de rede de classe C pode ser impossvel pelo pequeno nmero de estaes que ela oferece (at 254 estaes). Por outro lado
uma rede de classe'B, com 65.534 estaes possveis, ter uma utilizao
bem pobre. O mesmo raciocnio, em escala menor, pode reproduzir a m
323

utilizao do espao de endereo em uma rede de ciasse C. O mesmo raciocnio, em escala maior, pode reproduzir a m utilizao do espao de endereo em uma rede de classe A.
O crescimento do nmero de redes vem trazendo problemas para a manuteno das tabelas de roteamento nos roteadores, devido ao nmero elevado de entradas nessas tabelas. Obviamente esse crescimento no poder
continuar por mais tempo, se nenhuma providncia for tomada.
Esforos de curto e longo prazo vm sendo realizados para a resoluo
desses problemas. A longo prazo, um trabalho para definio de um novo
protocolo para a camada de rede foi iniciado. A curto prazo, propostas para
redefinio do procedimento de atribuio de endereos tm sido apresentadas.
Uma proposta de redefinio do procedimento de atribuio de endereos aponta para uma atribuio baseada na topologia da inter-rede, ao contrrio do que vem sendo realizado. O procedimento se baseia em estender o
campo de endereo de rede, diminuindo de forma correspondente o campo
de endereo de estao (host). A extenso carregaria o endereo de sub-rede.
As sub-redes seriam agrupadas em redes baseadas na topologia da interrede. Essa soluo no s permitiria melhor utilizao do espao de endereos, como tambm permitiria a realizao de roteamento hierrquico a nvelde inter-redes, de redes e de sub-redes, diminuindo o nmero de entradas nas
tabelas de roteamento.

Captulo 1
Ligao Inter-redes

Como vimos no captulo anterior, quando estaes de origem e des>


encontram-se em redes diferentes, o projeto da inter-rede deve levar
conta o conflito de interesses e a independncia das redes a serem cone
das.
A filosofia por trs das inter-redes consiste em considerar cada r
como um meio de comunicao por onde devero transitar as mensagens
as estaes intermedirias especiais ou a estao final na rede de destino,
estaes intermedirias so vias especiais que tm como funo a interl.
o fsica e lgica entre duas ou mais redes; so os chamados gatew
(passarelas). A Figura ll.l repete a Figura IO.3, ilustrando o conceito
inter-rede.
Quando mensagens so deslocadas de uma rede para outra, convers
de protocolo se fazem necessrias. Os gateways so classificados confoi
o maior nvel de protocolo convertido. Quando a converso se d no n:
fsico, o gateway chamado de repetidor. Quando a converso feita no
vel de enlace, o gateway recebe o nome de ponte (bridge). Do nvel de r
em diante o gateway adjtivado com o nome da camada de maior nvel
converso. Assim temos o gateway de rede, gateway de transporte, gate\
de sesso, gateway de apresentao e gateway de aplicao.

324

a) Redes ligadas por repetidor

Figura 11.1; Conceito cie inter-rede.

1-1.1 - Repetidores
Os repetidores so utilizados, geralmente, para a interligao de duas
ou mais redes idnticas. Atuando no nvel fsico, os repetidores simplesmente recebem todos os pacotes de cada uma das redes que interligam e os
repetem nas demais redes sem realizar qualquer tipo de tratamento sobre os
mesmos. A Figura 11.2-a mostra duas redes ligadas atravs de repetidores. A
Figura 11,2-b mostra o nvel do RM-OSI onde se d a ligao.
Vrios pontos so dignos de nota na utilizao de repetidores para interconexo de redes locais. Primeiramente, em redes em anel onde a estao
a responsvel pela retirada dos prprios quadros, caber ao repetidor a retirada dos quadros nas redes em que atua como retrarrsmissor. Em anis
onde cabe estao de destino a retirada dos quadros, a situao se complica. Como pode haver mais de um repetidor em uma rede, o repetidor no
pode agir como urna estao de destino intermediria e retirar o quadro do
anel. A soluo deixar tal tarefa para a estao monitora, o que diminui o
desempenho da rede.
Um segundo ponto vem da utilizao de repetidores em redes que utilizam protocolos baseados em conteno. Nesse caso caber ao repetidor
tambm a funo de deteco de coliso em um segmento, e a sinalizao,
no(s) outro(s) segmento(s), da ocorrncia da coliso. Digno de nota o fato
de que em redes que utilizam protocolos CSMA/CD, ao se calcular o tamanho mnimo do pacote, como vimos no Captulo 8, deve-se levar em conta o
retardo introduzido pelo repetidor. Isto vai limitar o nmero de repetidores
em srie em tais redes.

326

Figura 11.2: Repetidor.


Um terceiro ponto vem da observao de que nada impede que tenhamos vrios repetidores em uma mesma rede ou vrios repetidores no cami-'
nho de um quadro desde a estao de origem at a estao de destino. Cuidados no entanto devem ser tomados. No pode haver um caminho fechado
entre dois repetidores quaisquer da rede, pois isso implicaria em duplicaes
infinitas de quadros (um quadro repetido retornaria, devido a repeties- em
outros repetidores, voltaria a ser repetido, tornaria a retornar e assim
indefinidamente), alm de provocai' outros efeitos colaterais, como por
exemplo, a coliso, dos quadros em redes baseadas em conteno, o que
causa uma consequente diminuio do desempenho.
Outro ponto que deve ser observado que em protocolos onde o reconhecimento do quadro realizado automaticamente nos prprios quadros
transmitidos (como por exemplo na maioria das redes em anel, veja o protocolo IEEE 802.5), essa caracterstica perdida, pois existem dois motivos
pelos quais no pode ser realizada pelos repetidores. Primeiro pela possibilidade de existirem vrios repetidores na rede. Nesse caso, a qual deles caber
a tarefa? Segundo, mesmo que se pudesse decidir qual repetidor teria a tarefa, como ele poderia saber da situao do quadro na estao de destino uma
vez que ainda nem o retransmitiu? Essa caracterstica de alguns protocolos
irremediavelmente perdida.
327

Ainda outro ponto a respeito dos repetidores deve ser mencionado, este
ligado diretamente ao desempenho. Ao repetir todas as mensagens que recebe, um trfego extra intil gerado pelo repetidor quando os pacotes repetidas no se destinam s redes que interligam. Uma soluo para tal problema
vem com a utilizao de estaes especiais denominadas pontes (bridges),
nosso prximo assunto.

11.2- Pontes
A ponte atua nos protocolos em nvel de enlace. Ao contrrio dos repetidores, as pontes s repetem os pacotes destinados s redes que interligam ou que devem passar pelas redes que interligam at chegarem ao seu
destino final. A Figura 11.3-a mostra um exemplo onde duas redes so interligadas por uma ponte. A Figura 11.3-b mostra o nvel do RM-OSI onde
as pontes atuam.
a) Redes ligadas por pontes

As pontes sofrem dos mesmos problemas que mencionamos par;


repetidores, no que diz respeito: retirada de quadros em redes em an;
sua utilizao em redes baseadas em conteno e a seu uso em protoci
com reconhecimento automtico.
Com relao ao problema de existir um caminho fechado entre c
pontes, este menos grave. Persiste aqui ainda o problema de colisc
quadros e a consequente diminuio de desempenho em redes com aa
baseado em conteno. No entanto, o nmero de duplicaes de quadn
finito e igual ao nmero de caminhos fechados existentes entre.as estai,
de origem e de destino, e por serem finitas, tais duplicaes podem ser tr
das.
Um outro problema relacionado com as pontes so os valores dos t
porizadores das camadas mais elevadas. Por exemplo, suponha que um t
porizador seja disparado espera de uma confirmao. Esse temporiz;
deve levar em conta que o quadro poder viajar por vrias redes, inclu
passando por redes de baixa velocidade. Se o valor do temporizador for
escolhido, por exemplo um valor baixo, pode-se ter a falsa impresso de
a rede est em falha, uma vez que o temporizador se esgota a cada transi
so de um quadro.
O fato das redes interligadas possurem um comprimento de tarna
mximo de mensagem diferente um outro problema a ser enfrentado p
pontes. No caso de ligao entre LANs IEEE 802, dividir o quadro em
tes est fora de questo. Nesses protocolos no h nenhuma facilidade
permita a remontagem. No h soluo; quadros grandes demais para se
encaminhados devem ser descartados.

Um outro problema encontrado na ligao de redes que suportai!


ferentes esquemas de prioridade. Pode ser impossvel para as pontes con
ter os esquemas. Nesse caso o esquema de prioridade perdido. Supc
como exemplo a ligao de uma rede IEEE 802.5 com uma rede IEEE 80
b) Nvel do RM-OSI onde as pontes atuam

Para desempenhar seu papel, as pontes realizam pelo menos trs


es: a de filtro de entrada, no sentido de receber apenas os pacotes end
ados s redes por elas ligadas direta ou indiretamente (atravs de mai:
uma ponte em srie); a funo de armazenamento, no transporte de um c
dro de uma rede para outra e, finalmente, a funo de transmisso como
um repetidor comum.

A ponte possu como vantagem o fato da falha em uma rede no a


uma outra rede. Disso podemos tirar proveito em determinadas aplicai,
que exigem grande confiabilidade, dividindo a rede em pequenas sub-re
interligadas por pontes.
Figura 11.3: Pontes.

328

A grande vantagem da ponte vem da observao de que o desempenho


uma rede pode ser grandemente aumentado se a mesma for dividida em
quenas sub-redes interligadas por pontes. Devemos notar, entretanto, que
sa vantagem apenas persistir se o trfego inter-redes no for significativo.

ciando-o porta atravs da qual ele entrou, que obviamente identifica a rede
que deve ser usada para acessar a estao que o enviou. Para permitir adaptaes a mudanas na topologia da rede, toda vez que uma entrada criada
ou ento acessada por este procedimento, o instante de chegada do quadro
tambm anotado. Periodicamente, um processo varre a tabela e remove todas as entradas que no foram acessadas recentemente.

.2.1 - Pontes entre Redes IEEE 802

O algoritmo usado pelas pontes o de Baran, descrito na Seo


10.2.2.2. Esse esquema de aprendizado de endereos funciona bem quando
no existem rotas alternativas na iiter-rede. A existncia de rotas alternativas implica na formao de ciclos (caminhos fechados) na topologia da rede,
o que provoca falhas no funcionamento da estratgia anteriormente descrita
[Stallings 93].

O comit IEEE 802 desenvolveu dois projetos (documento [ISO 93]),


lizmente incompatveis, descrevendo e definindo os mecanismos por
do dos quais redes locais IEEE 802 (ISO 8802) podem ser interligadas
aves de pontes na subcamada MAC: a ponte.transparente (Transparent
idge) e a ponte com roteamento na fonte (Source Routing Bridge). Apesar
parecer uma tarefa simples, a interligao de redes IEEE 802 atravs de
ites apresenta alguns inconvenientes, alguns deles vistos anteriormente.
Nas duas sees seguintes sero apresentadas de forma resumida as
is proposies definidas pelo IEEE.
2.1.1 - O Padro IEEE 802.1 D Pontes Transparentes

As pontes transparentes operam abaixo da interface definida pelo sero MAC. A denominao transparente deve-se ao fato das LANs no sorem nenhuma modificao ao serem interconectadas por esse tipo de
ite.
As ligaes da ponte s LANs so denominadas portas. Uma ponte
n X portas possui X entidades MAC, e consequentemente, possui X endeos MAC, um para cada porta. As pontes transparentes operam com base
uma tabela de rotas com pares: endereo de destino/porta de sada.
As pontes transparentes operam em modo promscuo, isto , escutam
os os quadros que so transmitidos nas redes s quais esto conectadas,
receber um quadro, a ponte verifica na tabela de rotas se o endereo de
tino est associado a uma porta diferente da porta de entrada. Se o endeD no for encontrado na tabela, o quadro retransmitido atravs de todas
)ortas exceto aquela atravs da qual e!e entrou. Se, por outro lado, for entrada na tabela de rotas uma associao do endereo de destino com uma
ta diferente da de entrada, o quadro retransmitido por essa porta.
O esquema de roteamento descrito no pargrafo anterior baseia-se rio
da tabela de rotas, que indica a direo a ser seguida pelos quadros para
eles cheguem s estaes de destino. No incio da operao de uma
te, sua tabela est vazia. Quando um quadro chega atravs de uma porta,
endereo de origem usado para atualizar a tabela de rotas. Se no exisenhuma entrada na tabela com esse endereo, criada uma entrada assoi

Um exemplo de cenrio onde o mecanismo de aprendizado de rotas das


pontes transparentes no funciona corretamente o seguinte: suponhamos
que duas redes A e B sejam interligadas por duas pontes P/ e P2 (a duplicao das pontes aumenta a confiabilidade da inter-rede); suponhamos ainda
que a estao x esteja ligada rede A e a estao y rede B. Inicialmente a
tabela de rotas das pontes est vazia. Nesse momento a estao x envia um
quadro para y. As pontes Pj e P2 capturam o quadro atravs da rede A com
endereo de origem x, e adicionam uma entrada em suas tabelas de rotas associando o endereo x rede A. Uma vez que as pontes no sabem em que
rede fica a estao de destino do quadro, no caso y, ambas retransmitem o
quadro para a rede B. Assim, y recebe duas cpias do mesmo quadro. Essa
no , entretanto, a pior falha do mtodo, pois o fato da ponte P, receber o
quadro retransmitido por P2, e vice-versa, faz com que elas atualizem incorretamente suas tabelas de rotas. E mais, enquanto durar esse estado inconsistente, as pontes permanecem retransmitindo quadros duplicados, como
veremos a seguir.
Vejamos o que acontece quando a ponte P2 recebe o quadro retransmitido por Pi.1 O endereo de origem deste quadro x, e desta vez eie recebido por P2 na rede B. Logo, a ponte P2 conclui equivocadamente que a estao x est ligada rede B, e atualiza a entrada de sua tabela de rotas relativa estao x associando-a rede B. Enquanto essa informao for mantida
na tabela de rotas, os quadros endereados a x no sero roteados corretamente. Uma vez que P2 continua no sabendo onde fica a estao y, que o
destino do quadro,2 ela retransmite o quadro na rede A. A ponte Ph ao receber novamente o quadro pela rede A, retransmite o mesmo para a rede B,
O mesmo problema acontece quando / J ; recebe o quadro retransmitido por P2, porm
comportamento semelhante nos dois casos, s iremos descrever um deles.
- At este momento y no transmitiu nenhum quadro, logo as pontes no tiverar
oportunidade de descobrir a rede onde ela est conectada.

331

Ainda outro ponto a respeito dos repetidores deve ser mencionado, este
ligado diretamente ao desempenho. Ao repetir todas as mensagens que recebe, um trfego extra intil gerado pelo repetidor quando os pacotes repetidos no se destinam s redes que interligam. Uma soluo para tal problema
vem com a utilizao de estaes especiais denominadas pontes (bridges),
nosso prximo assunto.

11.2- Pontes
A ponte atua nos protocolos em nvel de enlace. Ao contrrio dos repetidores, as pontes s repetem os pacotes destinados s redes que interligam ou que devem passar pelas redes que interligam at chegarem ao seu
destino final. A Figura 11.3-a mostra um exemplo onde duas redes so interligadas por uma ponte. A Figura 11,.3-b mostra o nvel do RM-OSI onde
as pontes atuam.
a) Redes ligadas por pontes

As pontes sofrem dos mesmos problemas que mencionamos pan


repetidores, no que diz respeito: retirada de quadros em redes em ani
sua utilizao em redes baseadas em conteno e a seu uso em protoci
com reconhecimento automtico.
Com relao ao problema de existir um caminho fechado entre c
pontes, este menos grave. Persiste aqui ainda o problema de colisc
quadros e a consequente diminuio de desempenho em redes com acs
baseado em conteno. No entanto, o nmero de duplicaes de quadn
finito e igual ao nmero de caminhos fechados existentes entre, as estai;
de origem e de destino, e por serem finitas, tais duplicaes podem ser tr
das.
Um outro problema relacionado com as pontes so os valores dos t
porizadores das camadas mais elevadas. Por exemplo, suponha que um t
porizador seja disparado espera de uma confirmao. Esse temporize
deve levar em conta que o quadro poder viajar por vrias redes, inclu
passando por redes de baixa velocidade. Se o valor do temporizador for
escolhido, por exemplo um valor baixo, pode-se ter a falsa impresso de
a rede est em falha, uma vez que o temporizador se esgota a cada transi
so de um quadro.
O fato das redes interligadas possurem um comprimento de tama
mximo de mensagem diferente um outro problema a ser enfrentado p
pontes. No caso de ligao entre LANs IEEE 802, dividir o quadro em
tes est fora de questo. Nesses protocolos no h nenhuma facilidade
permita a remontagem. No h soluo; quadros grandes demais para se
encaminhados devem ser descartados.
Um outro problema encontrado na ligao de redes que suportarr
ferentes esquemas de prioridade. Pode ser impossvel para as pontes con
ter os esquemas. Nesse caso o esquema de prioridade perdido. Supc
como exemplo a ligao de uma rede IEEE 802.5 com uma rede IEEE 80

b) Nvel do RM-OSI onde as pontes atuam

Para desempenhar seu papel, as pontes realizam pelo menos trs


es: a de filtro de entrada, no sentido de receber apenas os pacotes end
ados s redes por elas ligadas direta ou indiretamente (atravs de mai:
uma ponte em srie); a funo de armazenamento, no transporte de um c
dro de uma rede para outra e, finalmente, a funo de transmisso como
um repetidor comum.

A ponte possui como vantagem o fato da falha em uma rede no af


uma outra rede. Disso podemos tirar proveito em determinadas aplicai,
que exigem grande confiabilidade, dividindo a rede em pequenas sub-rt
interligadas por pontes.
Figura 11.3: Pontes.

328

pois tambm no sabe ainda em que rede est ligada a estao y. Esse procedimento fica ento se repetindo enquanto y no transmitir um quadro.
O problema exemplificado nos pargrafos anteriores contornado pelo
padro IEEE 802.1D com a utilizao do seguinte resultado da teoria dos
grafos: "para todo grafo conectado, consistindo em ns e arcos conectando
pares de ns (as redes so os ns, e as pontes, os arcos do grafo), existe uma
rvore de arcos que estende-se sobre o grafo (spanning tree) que mantm a
conectividade do grafo porm no contm caminhos fechados".

V ..
(

>

O padro IEEE 802.1D define um algoritmo que deriva automtica e


dinamicamente a spanning tree de uma inter-rede. Para construir a spanning
tree, periodicamente, cada ponte transmite uma mensagem por difuso em
todas as redes s quais est conectada, com sua identificao. Um algoritmo
distribudo seleciona a ponte que vai ser a raiz da rvore (por exemplo, a que
possui o menor nmero de identificao). Uma vez determinada a raiz, a rvore construda com cada ponte determinando o menor caminho para a
raiz. Em caso de empate, escolhido o caminho cuja ponte tiver o menor
identificador.

Esse esquema pressupe que cada uma das estaes conectada interrede conhece o caminho para todas as outras estaes. A forma como este
caminho descoberto uma questo chave nessa abordagem e segue o algoritmo que discutimos na Seo 10.2.2.3.

11.3- Roteadores e Gateways


Os gateways so usualmente classificados em dois tipos: gateways
conversores de meio (media-conversion gateway) e gateways tradutores de
protocolos {protocol-translation gateway) [Postei 80a]. A Figura 11.4 mostra um exemplo onde vrias redes distintas so interligadas por um gateway.

(
11.2.1.2 - Pontes com Roteamento na Origem

As pontes transparentes tm a vantagem de serem de fcil instalao.


Por outro lado, no fazem o melhor uso da banda passante, uma vez que utilizam apenas um subconjunto da topologia, a rvore geradora. Estes e outros
fatores levaram a uma diviso nos comits 802, dando origem escolha de
um outro esquema, que passamos a descrever.
A ponte com roteamento na origem foi desenvolvida pelo comit IEEE
802.5 [IEEE 9I]. Nesse esquema, a estao de origem escolhe o caminho
que o quadro deve seguir e inclui a informao de roteamento no cabealho
do quadro. A informao de roteamento construda da seguinte forma:
cada LAN possui um identificador nico, e cada ponte possui um identificador nico no contexto das redes s quais est conectada. Uma rota uma sequncia de pares (identificador de rede, identificador de ponte). O primeiro
bit do endereo de origem dos quadros cujo destino no est na mesma rede
da estao de origem igual a l.
Ao escutar um quadro cujo primeiro bit do endereo de origem igual
a I, a ponte analisa a informao de roteamento do quadro. Se o identificador da LAN atravs da qual ele chegou seguido pelo identificador da ponte
em cjuesto, ela retransmite o quadro na rede cujo endereo vem depois do
seu identificador na informao de roteamento do quadro. Quando o nmero
da LAN de onde veio o quadro no seguido pelo seu identificador, a ponte
no retransmite o quadro.

;.
(
..<
(

332

Figura 11.4: Interligao de redes atravs de gateways.

Os gateways conversores de meio so os mais simples. Bastante utilizados em inter-redes que oferecem o servio de datagrama, suas funes resumem-se em receber um pacote do nvel inferior, tratar o cabealho interredes do pacote, descobrindo o roteamento necessrio, construir novo pacote
com novo cabealho inter-redes, se necessrio, e enviar esse novo pacote ao
prximo destino, segundo o protocolo da rede local em que este se encontra.
Esse tipo de gateway da camada de rede tambm chamado de roteador, a
Figura 11.5 mostra o nvel do RM-OSI onde atuam os roteadores.
Os gateways tradutores de protocolos so mais utilizados em inter-redes que utilizam circuitos virtuais passo a passo. Eles atuam traduzindo
mensagens de uma rede, em mensagens da outra rede, com a mesma semntica de protocolo. Por exemplo, o open em uma rede poderia ser traduzido
por um call request em outra ao passar pelo gateway.
333

em cada uma das redes completamente independente, para facilitar a implementao e a operao, comum separar essas entidades tambm fisicamente. A cada uma dessas interfaces denominamos half-gateway, conforme
apresentamos na Figura 11.7.
Sistema de Comunicao

Figura 11.5: Nvel do RM-OSI onde atuamos roteadores.

Resta observarmos que nem todos os protocolos podem ser mapeados.


entre si, e que o subconjunto formado pela interseco dos servios comuns
o servio que dever ser oferecido como base para a interligao. As
dificuldades na traduo dos protocolos tornam bastante complexos e de
difcil realizao os gatevvays tradutores de protocolos, o que pode aumentar
em muito o custo da interligao. Este tipo de gateway pode atuar em
qualquer nvel acima do nvel de enlace RM-OSI. A Figura 11.6 mostra,
como exemplo, um gateway atuando no nvel de aplicao OSI.
Gateway converte o
protocolo de Aplicao 1 no
protocolo de Aplicao 2 e

vice-versa

Figura 11.7: Half-Gateway.

Cada uma das metades lembra muito a estrutura requerida por uma estao qualquer da irter-rede. As metades se comunicam atravs de um sistema de comunicao mais adequado velocidade de comunicao e distncia entre as redes. Nesse caso cabe a cada half-gateway a realizao do
protocolo de comunicao entre eles. Notemos que ao dividirmos o gateway
em metades estamos tornando seu projeto bem mais simples e estruturado,
alm de contarmos com maior flexibilidade quanto distncia fsica das redes.
Pode-se observar tambm que a utilizao de gateways.para a conexo
de redes locais idnticas no sofre nenhuma das restries que apresentamos
para as pontes e repetidores. A desvantagem est na sua maior complexidade, na exigncia de um protocolo inter-redes, enfim, no custo da interligao.

Figura 11.6: Os gateways no modelo RM-OSI.

Quando os gateways interligam duas redes cuja administrao pertence


a duas organizaes diferentes, possivelmente em pases diferentes, a operao do gateway pode causar srios problemas. Como a estrutura de ligao
334

335

Captulo

11

Nvel de
Transporte
A camada de transporte responsvel pela movimentao de dados,
maneira eficiente e confivel, entre processos (usurios) em execuo 1
equipamentos conectados a uma rede de computadores, independenteme:
da(s) rede(s) fsica(s). A camada de transporte deve garantir que essa mo
mentao se d segundo nveis de qualidade previamente negociados. P;
tal, essa camada deve poder regular o fluxo dos dados e garantir confiab
dade, assegurando que os dados transportados cheguem a seu destino si
erros e em sequncia.
O objetivo principal da camada de transporte tornar transparen
para seus usurios possveis variaes da confiabilidade do servio fon
eido pela camada de rede. O servio de rede responsvel pela transferrii
de dados da origem para o destino, ao passo que o servio de transportf
responsvel por garantir que isso acontea com segurana. Muitas das ar.
caes em redes necessitam apenas de um mtodo para transmitir de fon
confivel um fluxo de bits de uma estao para outra. Na verdade existe i
grande nmero de aplicaes que no necessitam de qualquer servio
camada de sesso e apresentao.

Na camada de transporte a comunicao verdadeiramente fim a fi


isto , a entidade da camada de transporte, da mquina de origem se comu:
ca apenas com a entidade de transporte da mquina de destino. Isto pode n
acontecer nos nveis fsico, de enlace e de rede onde a comunicao tambs
se d entre mquinas adjacentes (intermedirios na comunicao) na rede.
3

camada de transporte identifica univocamente seus usurios, em geral entidades da camada de sesso, atravs de seus endereos de transporte (SAPs
de transporte).
A partir da camada de transporte a influncia de modelos e protocolos
anteriores ao RM-OSI bastante reduzida. Apenas o protocolo de transporte
da Internet TCP/IP encontra-se bem estabelecido. Desse nvel de protocolo
em diante, no encontramos mais a profuso de implementaes encontradas
nos outros nveis. Tanto o protocolo de transporte padro ISO quando o TCP
da rede Internet sero abordados neste captulo.

se do servio seiecionada durante o estabelecimento da conexo. As funes


so:
Transporte de unidades de dados do servio de transporte (SDUs ou
mensagens).
Segmentao e blocagem.
Deteco e correo de erros fim a fim.
Sequenciao.
Controle do fluxo de dados nas conexes de transporte.

12.1 - Consideraes sobre o Nvel de Transporte

Multiplexaao ou spltting.
Transporte de dados expresso.2 '

Os protocolos de transporte lembram, sob vrios aspectos, os protocolos do nvel de enlace.

As prximas sees examinaro com cuidado as diversas funes executadas pelo nvel de transporte.

A camada de transporte oferece ao nvel de sesso, servios orientados


e no-orientados conexo. Quando opera no modo no-orientado conexo, a camada de transporte mapeia o pedido de transmisso de uma SDU de
transporte em um pedido de transmisso feito ao servio no-orientado conexo fornecido pela camada de rede.

12.1.1 -Endereamento

No modo de operao orientado conexo, o servio de transporte fornece meios para estabelecer, manter e liberar conexes de transporte entre
um par de usurios, possivelmente entidades da camada de sesso, atravs
de pontos de acesso ao servio de transporte (SAPs). Para estabelecer uma
conexo de transporte, em urna rede com servio de rede orientado a conexo, a camada de transporte, segundo o documento [ISO 92], obtm uma
conexo de rede que atenda da melhor forma possvel aos requisitos definidos por seu usurio, levando em considerao o custo e a qualidade do servio da conexo de rede; decide quando necessrio multiplexar o uso da
conexo de rede, ou dividir (spltting) o trfego da conexo de transporte
entre vrias conexes de rede; calcula o tamanho ideal para a unidade de dados do protocolo de transporte (PDU); seleciona as funes que sero usadas durante a fase de transferncia de dados; e se j existir alguma conexo
aberta entre o par de SAPs de transporte que est solicitando uma nova conexo, providencia uma identificao para a conexo, utilizando o conceito
de extremidade de conexo1 (Connection End-Point CEP). Uma vez
estabelecida a conexo, comea a fase de transferncia de dados. Nessa fase
so executadas algumas das funes listadas a seguir, de acordo com a clas-

' Quando um par de SAPs associado a mais de ma conexo, usado o conceito de ponto final
de conexo (CEP) para distingui-las. Um CEP um ponto terminal de uma extremidade de uma conexo
em um SAP.

338

Os pontos de acesso a servios de transporte (SAPs de transporte ou TSAPs) so completamente anlogos aos SAPs de enlace e de rede. A forma
de associao de um processo a um T-SAP est fora do modelo OSI e depende exclusivamente do sistema operacional local.
A associao de T-SAPs a SAPs de rede uma questo importante a
ser resolvida dentro da camada de transporte. A resoluo de endereos depende da estrutura utilizada nos endereos dos T-SAPs. Na forma mais
simples, uma estrutura de endereos hierrquicos identifica o SAP de rede
dentro de um campo do endereo do T-SAP.
Se o endereamento no hierrquico, faz-se necessria a realizao
de algum mapeamento para localizar o SAP de rede. Deve haver um servidor
de nomes que use os T-SAPs como entrada e retorne SAPs de rede como
sada. Uma outra alternativa o envio de endereos por difuso pedindo que
a prpria mquina de destino se identifique, em um esquema semelhante aos
protocolos ARP e RARP descritos no Captulo 10.

Uma unidade de dados expressa transferida/processada com prioridade maior que as unidades
de dados normais, o servio de transferncia de dados expresso normalmente usado para sinalizao e
transmisso de interrupes.

339

12.1.2 - Multiplexao e Splitting

12.1.4 - Estabelecimento e Encerramento de Conexes

A multiplexao encontrada nos vrios nveis do RM-OS. A multiplexao de um SAP de rede em vrios T-SAPs pode surgir por vrios motivos. Um deles o custo. Vrias concessionrias de servios de rede fazem a
sua tarifao baseada no tempo em que uma conexo de rede est aberta. Em
uma aplicao com trfego em rajada essa conexo pode. ficar muito tempo
ociosa, tendo o usurio de pagar por esse tempo. Uma soluo a multiplexao de vrias conexes de transporte na conexo de rede. A multiplexao
tambm se justifica por outros motivos alm da tarifao. Por exemplo,
quando a conexo de rede oferece uma banda passante muito maior que a
utilizada pelas conexes de transporte.

O estabelecimento de uma conexo de transporte seria simples, se a


rede no perdesse, armazenasse ou duplicasse pacotes. Para entendermos o
problema tomemos um exemplo. Suponha que em uma transferncia eletrnica de fundos seja pedida uma.abertura de conexo entre o cliente e o
banco, seja estabelecida a conexo, seja feita a transferncia para a conta de
outro cliente e seja fechada a conexo. Suponha tambm que no momento
do estabelecimento, a rede estava muito congestionada tendo sido necessrio
o envio de dois pedidos de conexo. Tendo recebido a confirmao, o cliente enviou o pedido de transferncia, mas tambm devido ao congestionamento, teve de enviar o pedido duas vezes antes de receber a confirmao da
transferncia. Ao receber a confirmao o cliente fechou a conexo, mas,
mais uma vez, para ter sucesso foi necessrio o envio de dois pedidos de
desconexo. Suponha agora que depois de fechar a conexo, o segundo pedido de conexo chega ao banco que, no tendo como discernir que uma
duplicata, o aceita. Suponha que em seguida chegue c segundo pedido de
transferncia e em seguida o segundo pedido de desconexo. A transferncia
de fundos vai ser realizada duas vezes sem que o cliente perceba.

Por outro lado, pode acontecer o contrrio, a conexo de rede pode


oferecer uma banda passante muito mais baixa do que a necessria pela conexo de transporte. Uma soluo nesse caso realizar a diviso {splitting)
da conexo de transporte em vrias conexes de redes. No caso de uma estao possuir vrios canais de sada no nvel fsico, o splitting pode ser usado
para aumentar ainda mais o desempenho.

12.1.3 - Servios Oferecidos


Como j mencionamos, a camada de transporte deve oferecer ao nvel
de sesso tanto o servio com conexo (circuito virtual) quanto o servio
sem conexo (datagrama). Ambos so bastante semelhantes aos servios
correspondentes da camada de rede, levando-nos a perguntar o porqu de
sua existncia.
Na realidade, a camada de rede, mesmo no servio com conexo, no
oferece um servio totalmente confivel. Como vimos no Captulo 10, falhas
podem levar gerao de primitivas de RESET para reiniciao da conexo,
tendo como consequncia a perda de pacotes. O que acontecer se as primitivas de RESET forem frequentes?
Por no termos, geralmente, qualquer controle sobre a rede (interrede), usualmente pertecente a uma ou mais concessionrias, a nica soluo
colocar acima da camada de rede uma outra camada (a camada de transporte) para melhorar a qualidade dos servios. Em uma conexo de transporte, pacotes perdidos, dados adulterados, RESETs e RESTARTs da camada de rede podem ser detectados e compensados.

Uma soluo para esse problema pode ser conseguida estabelecendo


um tempo de vida mximo na rede para um pacote, isto , passado esse
tempo ele destrudo. O tempo de vida de um pacote pode ser limitado
usando-se um contador de saltos em cada pacote, incrementado cada vez que
passa por um n intermedirio da rede; um tempo de nascimento
(timestamp) com a hora de sua criao etc. Com essas precaues podemos
calcular um tempo T a partir do qual podemos ter certeza de que o pacote e
suas confirmaes no nos causaro problemas.
A ideia do mtodo proposto por Tomlinson [Tomlinson 75] que duas
unidades de dados do protocolo de transporte (T-PDU) com numerao
idntica nunca estejam pendentes ao mesmo tempo. Para tanto, as numeraes das T-PDUs no se repetem dentro do perodo T definido no pargrafo
anterior. Toda vez que feito um pedido de conexo por uma entidade de
transporte El, enviado um nmero inicial de sequncia, a partir do qual
suas T-PDUs sero numeradas. O destino (entidade de transporte E2) ao receber essa T-PDU deve responder confirmando o nmero e estabelecendo o
nmero inicial de sequncia a partir do qual suas T-PDUs sero numeradas.
A entidade El deve confirmar esse nmero atravs de um reconhecimento,
que pode ser transportado em seu primeiro pacote de dados. A Figura 12.1-a
ilustra o procedimento.

(
(

340

341

do a E2 que se trata de uma duplicata. E bom novamente frisarmos que esse


algoritmo s funciona porque exigimos que duas T-PDUs com numerao
idntica nunca estejam pendentes ao mesmo tempo.
Existem outras solues para o problema alm do three-way handshake. Fletcher [Fletcher 78] e Watson [Watson 81] propuseram uma soluo baseada em temporizadores. Os leitores interessados podem obter mais
conhecimento do assunto com a leitura dessas referncias.

12.1.5 - Encerramento de Conexes


Encerrar uma conexo muito mais fcil que estabelec-la, mas possui
tambm suas idiossincrasias. Um problema presente evitar que dados sejam perdidos depois que um dos lados encerrou a conexo. Uma forma de
resolver o problema terminar uma conexo apenas depois de decorrido um
certo tempo sem que chegue nenhuma T-PDU. Dessa forma, se um lado se
desconectar, o outro vai notar a falta de atividade e tambm se desconectar.
Obviamente, para evitar que uma conexo seja desfeita, os participantes devem assegurar o envio de T-PDUs peridicas informando que esto vivos,
quando no tm dados a transmitir. Uma entidade de transporte ao pedir
uma desconexo aguarda por um tempo antes de fechar a conexo, podendo
receber dados durante esse perodo.
Figura 12.1: Three-way handshake.
A tcnica apresentada, conhecida como three-way handshake [Dala
78], resolve o problema da duplicao da seguinte forma. Conforme ilustrado na Figura 12.1-b, suponha que a entidade El faa um pedido de conexo escolhendo a como nmero inicial da sequncia de seus T-PDUs. Coma
a resposta ao pedido atrasou, El envia novo pedido de conexo, agora propondo o nmero inicial de sequncia b. Note que tanto a quanto b no podem ser repetidos dentro de um perodo T. Ao recebei" o pedido de conexo,
E2 o aceita, confirmando o nmero de sequncia b e estabelecendo o nmero de sequncia c para suas T-PDUs. Ao receber a confirmao da conexo,
El envia sua primeira T-PDU, confirmando o nmero de sequncia c. Suponha que a resposta a essa T-PDU demore tanto que El a retransmite. Quando E2 recebe essa T-PDU a conexo estabelecida e os dados so trocados
at que a conexo seja desfeita. Suponha que aps a conexo ser desfeita
chegue o primeiro pedido de conexo atrasado enviado-por El. A entidade
E2 o aceita, confirmando o nmero de sequncia a e estabelecendo o nmero de sequncia k para suas T-PDUs. Em seguida, a entidade E2 recebe o
pacote de dados atrasado enviado por El, carregando a confirmao de sua
sequncia c. O fato de c ter sido confirmado ao invs de k faz com que E2
descarte a T-PDU recebida. Por sua vez, ao receber uma confirmao de
conexo de E2 confirmando o nmero de sequncia a, este a rejeita, avisan342

O mtodo descrito no pargrafo anterior tem o inconveniente de que


caso muitas T-PDUs se percam durante uma conexo, um dos lados pode fechar a conexo indevidamente. Uma combinao de temporizadores com
confirmao de desconexo pode ser tentada, sempre minimizando o problema. Note, porm, que a liberao de urna conexo no nem de longe um
problema trivial.

12.1.6 - Qualidade de Servio


A camada de transporte tem como uma das principais funes a ampliao da qualidade de servio (Quality of Service QoS) fornecida pela
camada de rede.
A qualidade de servio pode ser caracterizada por uma srie de parmetros especficos (parmetros QoS). Entre estes podemos citar:
O retardo no estabelecimento da conexo.
O retardo no encerramento da Gonexo.

343

A probabilidade de falha no estabelecimento da conexo. Isto , a


probabilidade que urna conexo no seja estabelecida dentro do retardo mximo de estabelecimento.
A probabilidade de falha na liberao da conexo. Isto , a frao
das tentativas de liberao de conexes que no se completaram
dentro do retardo mximo de encerramento.
A vazo em cada sentido da conexo, isto , a taxa de bits transferidos por segundo.
O retardo de transferncia mdio, tambm em cada sentido.

ser feita por conexo ou para todas as conexes correntes entre as duas estaes.
Em contraste com os protocolos de janela deslizantes que vimos no
Captulo 7, razovel na camada de transporte desvincularmos a gerncia de
buffers das confirmaes. Assim, o receptor deve enviar em separado as
confirmaes e alocaes de buffers para o trfego inverso.
Quando o espao em buffers no mais limita o fluxo mximo, outro
gargalo pode ser a capacidade de transporte da sub-rede. Novamente, um esquema de controle de fluxo, por exemplo baseado em janela deslizante, separado do esquema de confirmao, s vezes se faz necessrio.

O retardo de transferncia mximo, tambm em cada sentido.


A variao estatstica do retardo, expressa, por exemplo, em termos
da varincia do retardo de transferncia.
A taxa de erro, expressa em porcentagem dos bits transmitidos.
A prioridade, isto , na eventualidade de congestionamento, a garantia de que servios de maior prioridade tenham preferncia sobre
os de mais baixa prioridade.
Probabilidade de queda de uma conexo, isto , a probabilidade de
que a camada de transporte se veja obrigada a fechar uma conexo
devido a falhas ou problemas de congestionamento.
Alguns parmetros QoS so estabelecidos pelo usurio, outros so informados a ele pela camada de transporte. O servio de transporte permite
ao usurio especificar valores preferenciais, valores aceitveis e inaceitveis, quando do estabelecimento de uma conexo. Alguns dos parmetros se
aplicam tanto ao servio com conexo quanto ao servio sem conexo.
funo da camada de transporte examinar os parmetros requeridos e determinar se pode ou no fornecer o servio.
A definio da camada de transporte RM-OSI no determina a codificao ou-os valores permitidos para os parmetros QoS.

12.1.7 - Controle de Fluxo e de Erros


O controle de fluxo que acontece na camada de transporte bem semelhante ao que vimos para a camada de enlace. No entanto, em geral, a camada de transporte tem de gerenciar um nmero de conexes muito maior que
a camada de enlace, o que toma crtica a estratgia de gerncia de buffers.
Em consequncia do exposto no pargrafo anterior, o protocolo de
transporte deve permitir que uma estao transmissora solicite (negocie) espao de armazenamento na estao receptora. A alocao dos buffers poder
344

12.2 - Protocolos de Transporte da ISO


A camada de transporte est intimamente ligada camada de rede, seu
objetivo bsico complementar o servio de transmisso de dados fim a fim
fornecido pelo nvel de rede, acoplando mecanismos que visam garantir a
confiabilidade da transmisso fim a fim. As funes que devem ser executadas pelo protocolo de transporte dependem do servio de rede sobre o qual
ele opera.
Com base nos servios de rede disponveis, a ISO definiu cinco tipos
de protocolos de transporte [ISO 86] denominados protocolos de transporte
classe 0, 1, 2, 3 e 4. Ou de forma abreviada: TPO, TP1, TP2, TP3 e TP4. Os
quatro primeiros operam com base em servios de rede orientados conexo, j o TP4 opera tanto com servios de rede orientados conexo quanto
em servios no-orientados conexo. Ao estabelecer uma conexo, as entidades de transporte, no protocolo da ISO, negociam a classe do protocolo de
transporte que ser utilizada.
Para diferenciar os cinco protocolos de transporte necessrio classificarmos os servios das redes existentes em trs tipos:
Tipo A: redes que consideram erro qualquer perda de dados. Nesse
tipo de rede a quantidade de pacotes duplicados, perdidos, fora de
sequncia ou danificados desprezvel. O servio fornecido por esse
tipo de rede orientado conexo. As redes locais que fornecem o
servio orientado conexo IEEE 802.2 se aproximam bastante desse perfil.
Tipo B: como as redes tipo A, as redes tipo B consideram erro qualquer perda de dados. Entretanto, nesse tipo de rede os erros so mais
frequentes, sendo ento menos confiveis que as do tipo A. A distino entre os dois tipos flexvel e depende dos requisitos da aplicao que utiliza o servio da rede [Knightson 83], Enquadram-se
345

nesse tipo, as redes pblicas que fornecera servio de circuito virtual. O servio fornecido pelas redes tipo B tambm orientado
conexo.

de fluxo, segmentao/remontagem e restabelecimento de conexes no caso


de reiniciao de conexes de redes. Esse protocolo pode ser usado em redes
tipo A ou B.

Tipo C: redes que no detectam erros quando pacotes so perdidos,


duplicados, entregues fora de ordem ou danificados. Essas redes
fornecem o servio datagrama no-confivel (servio sem conexo e
sem confirmao).

O TP4 foi projetado para redes tipo C (embora possa obviamente ser
utilizado em redes de tipo A e B), que fornecem servio sem conexo e sem
confirmao. Como nesse tipo de rede muitos dos problemas que ocorrem
durante a transmisso dos dados no so sequer detectados, cabe ao TP4
detectar e recuperar pacotes perdidos, duplicados, danificados e entregues
fora de sequncia. O item seguinte traz uma descrio das principais caractersticas desse protocolo.

Com base nesses tipos de rede, podemos agora entender as caractersticas dos cinco protocolos de transporte da ISO.
O mais simples dos protocolos de transporte o TP. Ele fornece mecanismos para estabelecer e encerrar conexes de transporte, utilizando uma
conexo de rede para cada conexo de transporte aberta. As funes executadas por esse protocolo na fase de transferncia de dados resumem-se a:
transferncia de PDUs e, segmentao e remontagem de SDUs quando seu
tamanho excede o comprimento mximo imposto pela camada de rede. Esse
protocolo pressupe a utilizao de redes tipo A.
O 777 semelhante ao TPO, porm foi projetado para recuperar erros
causados pela reiniciao (reset) de conexes de rede. O TP1 deve ser utilizado em redes onde ocorrem reiniciaes com uma certa frequncia. No TP1
as PDUs so numeradas e armazenadas enquanto a entidade de transporte de
origem no receber um reconhecimento enviado pela entidade de transporte
de destino. Quando a conexo de rede usada por uma conexo de transporte
reiniciada, o fornecedor do servio de transporte TP1 sabe ressincronizar e
continuar do ponto em que tinha parado. Nenhum controle de erro ou fluxo
realizado, alm daquele fornecido pela prpria camada de rede. O TP1 foi
projetado para ser usado em redes tipo B, porm pode ser usado tambm em
redes tipo A.
Como j mencionamos na Seo 12.1.2, boa parte das redes que fornecem servios orientados conexo so redes pblicas, que baseiam sua tarifao na cobrana de uma taxa para cada conexo estabelecida, e de outra
taxa para cada pacote transmitido. Assim, quando duas ou mais conexes de
transporte so abertas entre os mesmos sistemas finais, sai mais barato, do
ponto de vista do desempenho, concentrar o trfego das conexes de
transporte em uma nica conexo de rede, se isso for possvel. Isso feito
atravs da multiplexao do acesso. O TP2 implementa essas funes, Adicionalmente, o TP2 pode executar as funes de controle de fluxo e segmentao/remontagem de SDUs, no realizando qualquer controle de erro ou recuperao em caso de reiniciao de uma conexo. Esse protocolo , portanto, apropriado para redes tipo'A.
. O TP3 combina as funes dos protocolos TP1 e TP2, implementando
as funes:..multiplexao/demultiplexao de conexes de redes, controle
346"

12.2.1 - O Protocolo de Transporte Classe 4 TP4


O TP4 opera em redes no-confiveis, logo, precisa utilizar um mecanismo de controle de erros, que no caso, baseia-se na retransmisso de mensagens no reconhecidas durante um intervalo de temporizao, semelhante
aos utilizados pelo nvel de enlace que foram descritos no Captulo 7. Um
efeito colateral do mecanismo de controle de erros baseado em retransmisses a duplicao de mensagens, que pode acontecer devido perda da
mensagem com o reconhecimento, ou a um atraso muito grande na transmisso da mensagem original ou do reconhecimento. Devido a essa possibilidade de duplicao de mensagens o TP4 utiliza o mecanismo three-way
handshake para estabelecer conexes de transporte.
O protocolo fornece o servio de multiplexao de conexes de transporte em uma conexo de rede, e permite tambm que a carga de uma conexo de transporte seja distribuda (splitting) em vrias conexes de rede.
As funes segmentao e blocagem tambm fazem parte do TP4.
Quando o tamanho da SDU entregue pelo usurio da entidade de transporte
excede o tamanho mximo negociado para as PDUs, a SDU segmentada e
transferida em PDUs'consecutivas. O receptor, ao receber as PDUs, monta a
SDU original antes de entreg-la ao usurio da camada de transporte. A funo inversa, isto , a blocagem de vrias SDUs em uma nica PDU tambm
pode ser utilizada. Nesse caso, o objetivo minimizar o nmero de pedidos
de transmisso feitos ao servio de rede que, caso seja fornecido por uma
rede pblica, pode cobrar uma taxa pelas unidade de dados transmitidas.
No TP4 as PDUs enviadas so numeradas sequencialmente, Esse controle de sequncia utilizado para deteco da perda, duplicao ou recebimento fora de ordem de PDUs, e tambm utilizado pelo mecanismo de
controle de fluxo. O TP4 utiliza o mecanismo de checksum para detectar o
recebimento de PDUs corrompidas.

347

O controle de fluxo no TP4 implementado atravs da tcnica de janela deslizante (sliding window) com alocao dinmica de crdito. Quando a
conexo estabelecida as entidades negociam um crdito inicial que define
o tamanho das janelas de transmisso recepo, por exemplo w. O transmissor est ento autorizado a enviar w PDUs antes de receber o reconhecimento da primeira delas. Toda vez que envia o reconhecimento das mensagens que recebeu (no necessrio enviar um reconhecimento para cada
PDU), o receptor envia tambm o valor do crdito corrente (o valor do crdito indica o nmero de buffers que o receptor tem disponveis em um dado
momento). Por exemplo, um ACK (x, w') indica que foram recebidas corretamente as mensagens at x-1, e informa adicionalmente que as PDUs numeradas de x at x + w' podem ser transmitidas. O sistema default utiliza 7 bits
para numerao das PDUs. O TP4 permite que seja usado um sistema de
numerao estendido que faz uso de 31 bits.
O receptor utiliza o nmero de sequncia para ordenar as PDUs recebidas. Quando uma PDU recebida fora de ordem, ela armazenada at que
cheguem as PDUs atrasadas. Quando a sequncia correta restabelecida, as
PDUs so entregues ao usurio da camada de transporte.
Quando transmite uma PDU, a entidade de transporte que est executando o TP4 dispara um temporizador e retransmite a PDU se, aps decorrido um intervalo de tempo suficiente, seu reconhecimento no chegar.
Quando a demora devida ao atraso na transmisso da PDU original, ou
perda do reconhecimento, o receptor recebe PDUs duplicadas. Como as
PDUs carregam uma identificao da conexo qual esto associadas, alm
de seu nmero de sequncia, essa anomalia facilmente detectada pelo receptor que descarta as cpias invlidas.
O TP4 o/erece, alm do servio de transmisso de dados normal, um
servio expresso. As PDUs transportando dados expressos tm prioridade
em relao s PDUs com dados comuns. Assim, quando solicitada a
transmisso de uma PDU expressa, ela enviada antes das PDUs normais
que j estavam nos buffers da entidade de transporte aguardando transmisso.

12.3 - Protocolos de Transporte da Arquitetura


Internet TCP/IP
A arquitetura Internet permite que sejam utilizados dois tipos de protocolo em sua camada de transporte. O principal deles o TCP (Transmission
Control Protoco), que opera no modo orientado conexo fornecendo um
servio de transferncia de dados confivel.

348

A outra opo o UDP (User Datagram Protoco). O UDP opera


modo sem conexo e fornece um servio datagrama no-confivel, sei
uma simples extenso do protocolo IP (Internet Protoco). Relembrandc
IP, como vimos no Captulo 10, o protocolo responsvel pelo servio
camada de inter-rede na arquitetura Internet TCP/IP.
O UDP recebe os pedidos de transmisso de mensagens entregues
los processos de aplicao da estao de origem, e os encaminha ao IP qr
o responsvel pela transmisso. Na estao de destino, o processo inve
ocorre. O IP entrega as mensagens (datagramas) recebidas ao UDP que
entrega aos processos de aplicao. A principal funo do UDP multij
xar, na origem, e demultiplexar, no destino, o acesso ao nvel inter-rede.

12.3.1 - O Protocolo TCP (Transmission Control Protoco;


O TCP [Postei 81b] um protocolo orientado conexo que fom
um servio confivel de transferncia de dados fim a fim. O TCP foi prc
tado para funcionar com base em um servio de rede sem conexo e s
confirmao. A Figura 12.2 mostra o posicionamento do TCP na arquitet
Internet TCP/IP.

Figura 12.2: Camadas de protocolos da arquitetura Internet TCP/IP.

O TCP interage de um lado com processos das aplicaes e do ou


com o protocolo da camada inter-rede da arquitetura Internet. A interf;
entre os processos de aplicao e o TCP consiste em um conjunto de c
madas semelhantes s que os sistemas operacionais fornecem aos proces:
de aplicao para manipulao de arquivos. Por exemplo, existem chamac
para abrir e fechar conexes e para enviar e receber dados em conexc
previamente estabelecidas. A interface entre o TCP e a camada inferior c
fine um mecanismo atravs do qual as duas camadas trocam informac
assincronamente.

O TCP capaz de transferir uma cadeia (stream) contnua de octetos,


s duas direes, entre seus usurios. Normalmente o TCP decide o momto de -parar de agrupar os octetos e de, consequentemente, transmitir o
gmento formado por esse agrupamento. Porm, caso deseje, o usurio do
]P pode fazer uso da funo push que faz com que o TCP transmita imeitamente os octetos que esto nos seus buffers aguardando transmisso.
Como j mencionado, o TCP no exige um servio de rede confivel
ra operar, logo, responsabiliza-se pela recuperao de. dados corrompidos,
-didos, duplicados, ou entregues fora de ordem pelo protocolo inter-rede.
nceirualmente, cada octeto transmitido associado a um nmero de semeia. O nmero de sequncia do primeiro octeto dos dados contidos em
i segmento transmitido junto com o segmento e denominado nmero
sequncia do segmento. Os segmentos carregam "de carona"
ggybacking) um reconhecimento. O reconhecimento constitui-se do'miro de sequncia do prximo octeto que a entidade TCP transmissora esa receber do TCP receptor na direo oposta da conexo. Por exemplo, se
mero de sequncia X for transmitido no ACK, ele indica que a entidade
P transmissora recebeu corretamente os octetos com nmero de sequnmenores que X, e que ele espera receber o octeto X na prxima mensan.
Quando uma entidade TCP transmite um segmento contendo dados, ela
oca uma cpia do segmento em uma fila de retransmisso e dispara um
porizador. Quando o reconhecimento da recepo dos dados recebido,
egmento retirado da fila. Se, por outro lado, o reconhecimento no for
ebido antes do temporizador expirar, o segmento retransmitido.
O TCP prov meios para que o receptor possa determinar o volume de
los que o transmissor pode lhe enviar, ou seja, para controlar o fluxo dos
tos. O mecanismo de controle de fluxo baseia-se no envio, junto com o
onhcimento, do nmero de octetos que o receptor tem condies de reer (tamanho da janela de recepo), contados a partir do ltimo octeto da
eia de dados recebido com sucesso. Com base nessa informao o
ismissor atualiza sua janela de transmisso, ou seja, calcula o nmero de
3tos que pode enviar antes de receber outra liberao.
No TCP receptor, os nmeros de sequncia so usados para ordenar os
mentos que porventura tenham sido recebidos fora de ordem, e para elilar segmentos duplicados. Para tratar os segmentos corrompidos adilado um checksum a cada segmento transmitido. No receptor feita uma
ificao e os segmentos danificados so descartados.
Para permitir que vrios processos em um nico host possam simultamente transmitir cadeias de dados, ou seja, possam simultaneamente usar
s servios, o TCP utiliza o conceito de porta. Cada um dos usurios

(processos de aplicao) que o TCP est atendendo era um dado momento


identificado por uma porta diferente. Como os identificadores de portas so
selecionados isoladamente por cada entidade TCP, eles podem no ser nicos na inter-rede. Para obter um endereo que identifique univocamente um
usurio TCP, o identificador da porta concatenado ao endereo IP onde a
entidade TCP est sendo executada, definindo um socket. Um socket, que
equivalente a um T-SAP, identifica univocamente um usurio TCP em toda
a inter-rede.
(
A associao de portas a processos tratada independentemente por
cada entidade TCP. Entretanto, processos servidores que so muito usados
(FTP, Telnet etc.) so associados a portas fixas, que so ento divulgadas
para os usurios.
Uma conexo identificada pelo par de sockets de suas extremidades.
Um socket local pode participar de vrias conexes diferentes com sockets
remotos. Uma conexo pode ser usada para .transportar dados em ambas as
direes simultaneamente, ou seja, as conexes TCP so full-duplex.
Os mecanismos utilizados nas funes de controle de erros e de fluxo
exigem que o TCP inicie e mantenha informaes de estado para cada conexo estabelecida. O conjunto dessas informaes - os sockets, os nmeros
de sequncia, o tamanho das janelas etc. define a conexo.
Quando dois processos desejam comunicar-se, as instncias do TCP s
quais eles esto associados devem estabelecer uma conexo. Quando a comunicao termina, a conexo encerrada liberando os recursos por ela utilizados. O algoritmo de three-way handshake utilizado na abertura de conexes. Todas as mensagens trocadas identificam a conexo com nmeros
de sequncia baseados em relgios, que so utilizados para evitar que a
duplicao de mensagens om pedido de abertura de conexo provoque o
estabelecimento de conexes invlidas.
Os processos de aplicao transmitem seus dados fazendo chamadas ao
TCP, passando como parmetros os buffers onde esto os dados. O TCP
empacota os dados armazenados nos buffers em segmentos e chama o mdulo IP para transmitir os segmentos para o TCP destino. O TCP receptor coloca os dados recebidos em segmentos nos buffers do usurio destinatrio e
notifica-o da entrega.
O TCP assume que opera como um mdulo do sistema operacional. O
TCP assume tambm que a interface com a rede controlada por um device
driver. O TCP no acessa o device driver da rede diretamente, ele interage
com o mdulo .IP que o responsvel pelo acesso rede feito atravs desse
device driver. A interface oferecida aos usurios de seus servios baseia-se
em chamadas para abrir (open) ou fechar (dose) uma conexo, para enviar
(send) ou receber (receive) dados, ou para obter informaes sobre o estado
351

(status) de uma conexo. Essas chamadas so semelhantes s que os processos de aplicao fazem ao sistema operacional, por exemplo, para abrir
(open), ler (read) e fechar (dose) um arquivo.

12.4 - Interfaces para Programas de Aplicaes


Uma interface para programa de aplicao (Application Program Interface API) uma interface disponvel para programadores. A disponibilidade de uma API depende tanto do sistema operacional usado, quanto da
linguagem de programao. Esta seo descreve APIs construdas tendo
como base a camada de transporte. s duas primeiras so descritas de uma
forma genrica, na Seo 12.4.1. A terceira, para sistemas UNIX, foi desenvolvida para a linguagem C, sendo descrita resumidamente na Seo 12.4.2.
Teremos a oportunidade de discutir ainda uma outra interface, denominada
NetBios, no Captulo 16.

Nesse modelo existe um processo especial chamado servidor de


mes. Na realidade o servidor de nomes pode ser implementado de fo
distribuda, com um processo em cada estao, gerenciando todos os se
os locais. Por simplicidade vamos nos ater descrio de um servido;
nomes centralizado, ou seja, existncia de um nico processo na rec
executar tal tarefa.

Para encontrar o T-SAP correspondente a um determinado servio,


usurio cliente estabelece uma conexo com o servidor de nomes, que
vinculado a um T-SAP conhecido. Estabelecida a conexo, o cliente ei
uma mensagem solicitando o endereo do servio, recebendo como resp<
o T-SAP requisitado. Ao receber a resposta, o cliente encerra a conexo <
o servidor de nomes e abre uma conexo com o T-SAP do servio desejai
O modelo servidor de nomes exige que cada servio na rede se cai
tre no servidor de nomes, indicando seu T-SAP.

12.4.2 - Berkeiey Sockets


12.4.1 - Servidor de Processos e Servidor de Nomes
Existem vrias formas de um processo descobrir o T-SAP do processo
de destino com quem deseja se comunicar. O servidor de processos e o servidor de nomes so duas dessas fornias.
A ideia do servidor de processos surgiu pela primeira vez na Arpanet.
Nesse esquema, uma estao que deseje oferecer servios a usurios remotos tem um servidor de processos (ou logger) especial, conectado a um TSAP bem conhecido, atravs do qual todos os servios devem ser solicitados.
Quando um processo cliente deseja algum servio, ele deve comear
pelo estabelecimento da conexo com o servidor de processos (com o TSAP do servidor de processos). Uma vez que a conexo tenha sido estabelecida, o cliente manda ao servidor de processos o nome do servio que deseja. Ao receber o pedido, o servidor de processo escolhe um T-SAP livre na
estao e gera o processo do servio requisitado dizendo a esse processo
para escutar o T-SAP escolhido. Finalmente, o servidor de processos manda
uma mensagem ao cliente remoto contendo T-SAP escolhido e encerra a
conexo.
Em muitas situaes um servio deve existir de forma independente de
um servidor de processos, no podendo ser criado no momento de sua solicitao. Para lidar com tal situao um esquema alternativo a utilizao de
um servidor de nomes (riame server).

352

As duas APIs de comunicao mais conhecidas para sistemas Unix


os Berkeiey Sockets e a TLI (System V Transport Luyer Interface). As d
interfaces foram desenvolvidas para linguagem C. Vamos descrever resu
damente nesta seo a interface de sockets, cuja implementao foi realz
como um conjunto de chamadas do sistema (system cails). A interface
descreveremos aqui, atravs da apresentao de algumas das chamadas
sistema, corresponde verso original 4.3BSD para VAX, cuja descri
mais detalhada pode ser encontrada em [Stevens 90]. Nos limitaremos t,
bm a descrever a interface apenas para comunicao no ambiente TCP/I;

O conceito de socket fundamental para a interface. Uma associa


(association) definida como uma quntupla {protocolo, endereo lo
processo local, endereo remoto, processo remoto). A socket System C
especifica apenas o protocolo. A chamada tem como argumentos de entr
uma famlia (no nosso caso especfico definindo o uso dos protocc
TCP/IP) e um tipo (no nosso caso especfico indicando se um socket p
TCP, ou UDP, ou IP). A chamada tem como retorno um valor inteiro, ref
do como descritor do socket: sockfd.

Uma vez criado um socket, podemos associar um endereo (TCP, U


ou IP) a ele, atravs da chamada binei, que tem como argumentos o sockj
um ponteiro para o endereo, que como vimos, no ambiente TCP/IP
constitui de: <endereo de porta, endereo de rede, endereo de esta
Quando na chamada bind o endereo de porta especificado corno ze
cabe ao sistema escolher um T-SAP ocioso, isto , um endereo ocisc

associ-lo ao socket. A chamada bind completa o processo local e o endereo local de uma associao.
chamada getsockname retorna o endereo local e o processo local
associado ao sockfd, passado como argumento de entrada. Dessa forma podemos saber qual foi a associao criada atravs de uma chamada bind com
porta zero.
A chamada lisen usada para alocao de um espao para o armazenamento de pedidos de conexo. A chamada tem como argumentos de entrada o sockfd e o nmero de pedidos de conexo que devem ser aceitos.
A chamada connect serve para estabelecer uma conexo entre dois
sockets. A chamada tem como argumentos de entrada o sockfd, o processo
remoto e o endereo remoto. A interface no exige que tenha sido realizada
antes a chamada bind. Se no foi, a prpria chamada connect atribuir um
endereo local e porta local ao sockfd, caso tenha-se escolhido na chamada
socket um servio com conexo. Nesse caso, aps a chamada connect toda a
quntupla da associao, {protocolo, endereo local, processo local, endereo remoto, processo remoto}, estar formada. Aps formar a associao,
mensagens so trocadas entre os dois sistemas especificados pelos endereos, que devem concordar com a conexo. A chamada connect s retorna
depois que a conexo foi estabelecida ou que um erro tenha sido reportado
no processo.

A chamada getpeername semelhante chamada getsockname. A diferena que ela retorna o <endereo remoto, processo r e m o t o associado
ao sockfd, passado como argumento de entrada.
As chamadas send, sendto, recv e recvfrom so usadas para envio e recebimento de dados. Todas passam como argumento o sockfd. A chamada
sendto tem tambm como argumento o endereo e processo de destino dos
dados. A chamada recvfrom tem tambm como argumento o endereo e processo de origem dos dados. Todas essas chamadas podem ser usadas nos
protocolos com e sem conexo.
A chamada dose usada para eliminar um socket. Se existir uma conexo associada ao socket ela encerrada.
No sistema 4.3BSD, sockets so implementados dentro do kernel do
Unix. Todas as chamadas do sistema que discutimos so pontos de entrada
no kernel. Terminando esta seo, a Figura 12.3 apresenta as trs camadas
do sistema de redes como implementadas no 4.3BSD.

Um servio sem conexo tambm pode utilizar a chamada connect.


Nesse caso, a nica tarefa realizada pela chamada o armazenamento da associao formada, para que o sistema possa saber no futuro a quem encaminhar os dados escritos no sockfd, e de quem receber os datagrarnas futuros
enviados ao sockfd. A chamada retorna sem qualquer comunicao entre os
processos local e remeto. A vantagem de usarmos a chamada connect no
servio sem conexo que no precisaremos mais identificar o processo remoto para cada datagrama enviado. Poderemos usar tanto as chamadas recv
e send como as chamadas recvfrom e sendto, que descreveremos mais adiante.
A chamada accept deve ser realizada sempre depois de uma chamada
listen, que capaz apenas de armazenar pedidos de conexo vindos de outros processos. Accept toma a primeira requisio de conexo da lista e cria
um novo socket, com as mesmas propriedades do sockfd. Dessa forma, uma
nica porta pode ser usada para o estabelecimento de mltiplas conexes.
Aps a realizao da conexo, a chamada retorna o novo sockfd criado, o
endereo remoto e o processo remoto. Caso a conexo no tenha sucesso,
retornada uma indicao de erro, junto com o endereo remoto e o processo
remoto.
;

Figura 12.3: Implementao de redes no 4.3BSD.

355
354

(
(

(
(
(

Captulo

13

l
(
( '
( '
(

Nvel de Sesso

(
(;

c:
(

\
\

i'
\"
('
\
\
\'.
(

c
(
(

O objetivo do nvel de sesso fornecer os meios necessrios para que


seus usurios (normalmente entidades do nvel de apresentao) possam organizar e sincronizar seus dilogos e gerenciar suas trocas de dados [ISO
92],
Para dar suporte ao dilogo, o nvel de sesso cria uma conexo lgica,
chamada conexo de sesso, responsvel por fornecer vrios servios que
permitem estruturar o dilogo entre aplicaes. Operando no modo orientado conexo, o nvel de sesso prov os servios necessrios para que
seus usurios possam estabelecer conexes, transmitir e receber dados, e encerrar conexes de forma ordenada.
Uma conexo de sesso mapeada em uma nica conexo de transporte em um dado instante. Entretanto, a durao das conexes de sesso e
transporte podem ser diferentes. Nesse caso, uma conexo de transporte
pode suportar vrias conexes de sesso consecutivas, ou uma conexo de
sesso pode estender-se sobre vrias conexes de transporte. A possibilidade
de uma conexo de sesso estender-se sobre maus de uma conexo de transporte permite que o servio de sesso recupere erros na rede que provoquem
o encerramento de conexes de transporte.
No existe controle de fluxo no nvel de-sesso. Para prevenir sobrecargas, as entidades de sesso utilizam o servio de controle de fluxo fornecido pelo nvel de transporte.

(
(
(

357

No modo no-orientado conexo o nvel de sesso mapeia endereos


de transporte em endereos de sesso, repassando os dados que recebe dos
seus usurios para o nvel de transporte (tambm operando no modo noorientado conexo), e vice-versa. O servio no-orientado conexo no
nvel de sesso s foi definido por imposio da estrutura hierrquica do
modelo OSI, haja vista que sua funcionalidade nesse caso praticamente
nula, servindo ele apenas de intermedirio entre seus usurios e o nvel de
transporte.
As consideraes que teceremos no restante deste captulo dizem respeito ao servio orientado conexo do nvel de sesso, por ser este o seu
principal modo de operao no modelo OSI.

Durante o estabelecimento de uma conexo de sesso os usurios negociam os tokens a serem utilizados e quem os possuir inicialmente.

13.1.2 - Pontos de Sincronizao


So definidos dois tipos de pontos de sincronizao no nvel de sesso:
ponto de sincronizao principal (major) e ponto de sincronizao secundrio (minor). A Figura 13.1 mostra a relao entre os pontos de sincronizao
principal, secundrio e uma unidade de dilogo. Como pode ser observado
nessa figura, um dilogo comea quando um usurio do nvel de sesso
emite um ponto de sincronizao principal e termina quando emitido o
ponto de sincronizao principal seguinte.

13,1 - Conceitos Bsicos


Nesta seo so apresentados trs conceitos bsicos, que so utilizados
pelo nvel de sesso para prestar seu servio de estruturao e sincronizao
do intercmbio de dados entre seus usurios. So eles: token, ponto de sincronizao e atividade.

13.1.1 -Token
Para controlar o acesso a alguns de seus servios, com o intuito de organizar o intercmbio de dados entre seus usurios, o nvel de sesso utiliza
o conceito de token. Um token um recurso de uma conexo de sesso que
dinamicamente atribudo a um usurio em um dado instante do tempo, concedendo a esse usurio o direito exclusivo de executar determinados servios. Quatro tokens so definidos:
1. Dados: usado para controlar o direito de transmitir ciados. Quando o
token de dados utilizado em uma conexo de sesso, ela se torna
half-duplex. S o usurio que possui o token pode transmitir, consequentemente, s ocorrem transmisses em um nico sentido da conexo por vez (o sentido invertido quando um usurio passa o
token para seu parceiro).
2. Sincronizao secundria: define o usurio que tem direito de emitir
pontos de sincronizao secundrios.
3. Sincronizao principal/'Atividade: usado para gerenciar a emisso
de pontos de sincronizao principal e a estrutura das atividades.
4. Encerramento de conexo: define quem tem o direito de encerrar a
conexo de sesso.
358

Figura 13.1: Relao entre pontos de sincronizao e unidade de dilogo.

13.1.2.1 - Ponto de Sincronizao Principal e Unidade de Dilogo

O ponto de sincronizao principal usado para estruturar a troca de


dados em unidades de dilogo. Dois pontos de sincronizao principais adjacentes definem uma unidade de dilogo.
Ao definir um ponto de sincronizao principal, o usurio suspende a
transmisso de dados at que o ponto de sincronizao seja reconhecido
pelo seu parceiro no dilogo. O ponto de sincronizao principal marca o
limite para recuperao de dados, no sendo possvel recuperar dados enviados antes do ultimo ponto de sincronizao principal transmitido e reconhecido.
Uma vez que os pontos de sincronizao principais so necessariamente reconhecidos, um dilogo pode ser mapeado em uma funo especfica de
uma aplicao. Por exemplo, um servidor de correio eletrnico que tem a incumbncia de transmitir vrias mensagens para seus respectivos destinat359

rios, pode associar a transferncia de cada mensagem a uma unidade de dilogo. Nesse exemplo, o servidor de correio eletrnico tem a certeza de que
uma dada mensagem foi transferida com sucesso antes de comear a transferir a prxima.
De forma anloga ao exemplo anterior, o servio de sesso permite que
em aplicaes onde o processamento orientado a transaes,1 cada transao possa ser modelada como uma unidade de dilogo. Por exemplo, em um
sistema de transferncia de fundos, cada transferncia executada na forma
de uma transao que envolve um dbito de um certo valor em uma conta e
um crdito do mesmo valor em outra. Suponha que, na aplicao em questo, utilizado o servio de sesso e que cada transao foi definida como
sendo uma unidade de dilogo. Suponha tambm que a entidade de aplicao responsvel pelo processamento da transao s reconhece o ponto de
sincronizao principal, que delimita o fim da transao, aps certificar-se
de que ela foi executada a contento. Nesse caso, os dados necessrios para
recuperar o estado anterior ao incio do processamento da transao, caso
ela no possa ser executada corretamente (saldo das contas envolvidas na
transferncia de fundos antes do incio do processamento da transao), s
precisam ser armazenados enquanto o dilogo a ela associado no for encerrado.
13.1.2.2 - Ponto de Sincronizao Secundrio

Os pontos de sincronizao secundrios so usados para estruturar a


troca de dados dentro de uma unidade de dilogo. Eles aumentam a flexibilidade em termos de recuperao de falhas. Um usurio do nvel de sesso
pode definir um ou mais pontos de sincronizao secundrios ao longo de
um dilogo. Aps transmitir um ponto de sincronizao secundrio, o
transmissor no precisa suspender a transmisso de novos dados para esperar pelo reconhecimento do ponto de sincronizao secundrio. A qualquer
momento, possvel ressincronizar o dilogo em qualquer um dos pontos de
sincronizao secundrios dentro da unidade de dilogo corrente, obviamente tambm possvel retomar o dilogo a partir do seu incio, que definido por um ponto de sincronizao principal. Assim, fica a cargo da aplicao decidir entre a sobrecarga envolvida na emisso e confirmao de
pontos de sincronizao e a diminuio do tempo de recuperao caso seja
necessria uma ressincronizaco do dilogo.

Uma transao um conjunto de operaes que devem ser executadas de forma atmica e
indivisvel, isto , ou todas as operaes da transao so executadas correramente ou nenhuma delas
deve ser executada.

360

13.1.3 - Atividade
O conceito de atividade permite que usurios do servio de sesso j
sam distinguir unidades lgicas de um trabalho que so denominadas ai
dades. Cada atividade consiste em uma ou mais unidades de dilogo, cc
mostra a Figura 13.2.

Figura 13.2: Relacionamento entre atividades e unidades de dilogo.

Atividades podem ser interrompidas e posteriormente retomadas


mesma conexo ou em conexes de sesso subsequentes. Uma ativid
pode ser usada, por exemplo, para suspender uma transferncia em curso
um arquivo muito longo (atividade A), para que seja transferido um arqu
de maior prioridade (atividade B). Nesse caso, aps o trmino da ativid
B, a atividade A retomada. Esse conceito tambm pode ser usado quanc
necessrio suspender uma atividade muito longa, por exemplo, no final
expediente de trabalho, para retom-la no incio do prximo expedie.
Cabe salientar que o servio de sesso simplesmente guarda o ltimo pc
de sincronizao (principal ou secundrio) confirmado, permitindo qu
atividade seja retomada a partir desse ponto. Cabe ao usurio do servic
sesso armazenar qualquer outro tipo de informao necessria ao reini
da atividade suspensa.

13.2 - Consideraes sobre o Nvel de Sesso

O nvel de sesso estrutura a conexo de transporte, organizando a


deia de octetos nela transmitida em unidades de dilogo e atividades. U
vez estando a conexo estruturada, esse nvel permite que o dilogo (ou
tercmbio de dados) entre dois usurios seja sincronizado. Os servios
nvel de sesso so definidos no padro ISO'8326 e na recomendao X.'.
do CCITT. O servio de sesso orientado conexo fornecido em trs
ses. Inicialmente estabelecida uma conexo de sesso, em seguida ocon

fase de transferncia de dados e por fim a conexo encerrada, de forma


anloga aos servios com conexo das camadas anteriormente apresentadas.

13.2.1 - Estabelecimento de Conexo de Sesso


O servio de estabelecimento de conexo de sesso permite que dois
usurios do nvel de sesso estabeleam uma conexo entre si. Os usurios
so identificados pelos endereos de sesso (SAPs) usados para requerer o
estabelecimento da conexo. No momento do estabelecimento da conexo,
os dois usurios e o fornecedor do servio de sesso negociam cooperativamente os valores dos parmetros que definem os servios que sero usados
na conexo de sesso. Um desses parmetros, o identificador da conexo,
utilizado pelos usurios para identificar a conexo nos servios doravante
nela solicitados. Outros parmetros que tambm so negociados durante o
estabelecimento de uma conexo so a qualidade do servio
(disponibilidade, taxa de erro, vazo, retardo de transferncia etc), as unidades funcionais (tema da seo 13.3), e a distribuio inicial dos tokens
que estaro disponveis na conexo.

dos est bloqueado, por exemplo, pelo mecanismo de controle de fluxo do


nvel de transporte.
O servio de transferncia de dados tipado permite que um usurio do
nvel de sesso envie uma SDU para outro, mesmo que ele no possua o
token que controla o acesso ao servio de transferncia de dados. Esse servio normalmente utilizado pelos usurios do nvel de sesso para intercmbio de informaes de controle de seus procotolos, fora do fluxo normal
de dados. Por exemplo, esse. servio (quando disponvel) pode ser usado
pelo servio de apresentao, descrito no Captulo 14, no gerenciamento de
contextos.

13.2.2.1 - Gerenciamento de Token

13.2.2 - Transferncia de Dados

O gerenciamento dos tokens feito com base nas primitivas de servio


give-token, please-token e give-control. A primitiva give-token utilizada
por um usurio para passar o controle de um token ao seu parceiro na conexo de sesso. A primitiva please-token utilizada pelo usurio que no
possui ura token para solicitar que seu parceiro lhe entregue o token. A
primitiva give-control usada para passar todos os tokens de um usurio
para outro.

O nvel de sesso fornece trs tipos de servio de transferncia de dados: o servio de transferncia normal, o servio de transferncia expresso, e
o servio de transferncia de dados tipados.

Os quatro tipos de token so opcionais no servio de sesso, sua utilizao, ou no, negociada quando a conexo de sesso aberta. No estabelecimento da conexo tambm definido qual usurio receber inicialmente
cada token.

O servio de transferncia de dados normal permite que um usurio do


nvel de sesso (possivelmente uma entidade do -nvel de apresentao)
transfira unidades de dados do servio de sesso (SSDUs) para outro usurio,
Ao transferir suas SSDUs, os usurios do nvel de sesso devem observar a disciplina imposta pelos tokens. Por exemplo, se durante o estabelecimento da conexo os usurios decidirem utilizar um token de dados, a conexo ser half-duplex, isto , nessa conexo s o usurio que tiver a posse do
token de dados poder transmitir SSDUs. Da mesma forma, se for negociada
a utilizao dos tokens de sincronizao e de atividades, apenas o usurio
que os possuir poder utilizar os servios de sincronizao e gerenciamento
de atividades.
O servio de transferncia de dados expresso torna possvel o envio
mais rpido de SSDUs expressas. Esse servio utiliza o servio de transferncia de dados expresso fornecido pelo nvel de transporte, que impe restries ao tamanho das SSDUs transferidas. Esse servio normalmente
utilizado para envio de informaes de controle quando o transporte de da362

Se os tokens de dados e de encerramento de conexo no forem utilizados, os servios de transferncia de dados normal e encerramento de conexo estaro disponveis para ambos os usurios da conexo de sesso em
qualquer instante ao longo de sua durao. Se os tokens de sincronizao secundria e de sincronizao principal/atividade no forem utilizados, os
servios de sincronizao e gerenciamento de atividades no podero ser
utilizados pelos usurios da conexo de sesso. Se, por outro lado, qualquer
um dos tokens estiver disponvel durante um conexo, s o usurio que detiver sua posse poder executar os servios a ele associados.

13.2.2.2 - Sincronizao de Conexo de Sesso


O servio de sincronizao de conexo de sesso permite que usurios
do nvel de sesso possam definir e identificar pontos- de sincronizao ao
longo de seu dilogo. Ele permite tambm que a conexo de sesso possa ser
ressincronizada para um estado definido por um ponto de sincronizao, o
que implica no descarte dos dados transmitidos aps o referido ponto.
363

fase de transferncia de dados e por fim a conexo encerrada, de forma


anloga aos servios com conexo das camadas anteriormente apresentadas.

13.2.1 - Estabelecimento de Conexo de Sesso


O servio de estabelecimento de conexo de sesso permite que dois
usurios do nvel de sesso estabeleam uma conexo entre si. Os usurios
so identificados pelos endereos de sesso (SAPs) usados para requerer o
estabelecimento da conexo. No momento do estabelecimento da conexo,
os dois usurios e o fornecedor do servio de sesso negociam cooperativamente os valores dos parmetros que definem os servios que sero usados
na conexo de sesso. Um desses parmetros, o identificador da conexo,
utilizado pelos usurios para identificar a conexo nos servios doravante
nela solicitados. Outros parmetros que tambm so negociados durante o
estabelecimento de uma conexo so a qualidade do servio
(disponibilidade, taxa de erro, vazo, retardo de transferncia, etc), as unidades funcionais (tema da seo 13.3), e a distribuio inicial dos tokens
que estaro disponveis na conexo.

13.2.2 - Transferncia de Dados


O nvel de sesso fornece trs tipos de servio de transferncia de dados: o servio de transferncia normal, o servio de transferncia expresso, e
o servio de transferncia de dados tipados.
O servio de transferncia de dados normal permite que um usurio do
nvel de sesso (possivelmente uma entidade do -nvel de apresentao)
transfira unidades de dados do servio de sesso (SSDUs) para outro usurio.
Ao transferir suas SSDUs, os usurios do nvel de sesso devem observar a disciplina imposta pelos tokens. Por exemplo, se durante o estabelecimento da conexo os usurios decidirem utilizar um token de dados, a conexo ser half-duplex, isto , nessa conexo s o usurio que tiver a posse do
token de dados poder transmitir SSDUs. Da mesma forma, se for negociada
a utilizao dos tokens de sincronizao e de atividades, apenas o usurio
que os possuir poder utilizar os servios de sincronizao e gerenciamento
de atividades.
O servio de transferncia de dados expresso torna possvel o envio
mais rpido de SSDUs expressas. Esse servio utiliza o servio de transferncia de dados expresso fornecido pelo nvel de transporte, que impe restries ao tamanho das SSDUs transferidas. Esse servio normalmente
utilizado para envio de informaes de controle quando o transporte de da362

dos est bloqueado, por exemplo, pelo mecanismo de controle de fluxo do


nvel de transporte.
O servio de transferncia de dados pado permite que um usurio do
nvel de sesso envie uma SDU para outro, mesmo que ele no possua o
token que controla o acesso ao servio de transferncia de dados. Esse servio normalmente utilizado pelos usurios do nvel de sesso para intercmbio de informaes de controle de seus procotolos, fora do fluxo normal
de dados. Por exemplo, esse. servio (quando disponvel) pode ser usado
pelo servio de apresentao, descrito no Captulo 14, no gerenciamento de
contextos.

13.2.2.1 - Gerenciamento de Token


O gerenciamento dos tokens feito com base nas primitivas de servio
give-token, please-token e give-control. A primitiva give-token utilizada
por um usurio para passar o controle de um token ao seu parceiro na conexo de sesso. A primitiva please-token utilizada pelo usurio que no
possui um token para solicitar que seu parceiro lhe entregue o token. A
primitiva give-control usada para passar todos os tokens de ura usurio
para outro.
Os quatro tipos de token. so opcionais no servio de sesso, sua utilizao, ou no, negociada quando a conexo de sesso aberta. No estabelecimento da conexo tambm definido qual usurio receber inicialmente
cada token.
Se os tokens de dados e de encerramento de conexo no forem utilizados, os servios de transferncia de dados normal e encerramento de conexo estaro disponveis para ambos os usurios da conexo de sesso em
qualquer instante ao longo de sua durao. Se os tokens de sincronizao secundria e de sincronizao principal/atividade no forem utilizados, os
servios de sincronizao e gerenciamento de atividades no podero ser
utilizados pelos usurios da conexo de sesso. Se, por outro lado, qualquer
um dos tokens estiver disponvel durante uma conexo, s o usurio que detiver sua posse poder executar os servios a ele associados.

13.2.2.2 - Sincronizao de Conexo de Sesso


O servio de sincronizao de conexo de sesso permite que usurios
do nvel de sesso possam definir e identificar pontos- de sincronizao ao
longo de seu dilogo. Ele permite tambm que a conexo de sesso possa ser
ressincronizada para um estado definido por um ponto de sincronizao, o
que implica no descarte dos dados transmitidos aps o referido ponto.
363

O nvel de sesso no se responsabiliza pela iniciativa da execuo das


funes de verificao ou confirmao associadas sincronizao, ficando
essas funes a cargo dos usurios do servio de sesso.

a) Uma atividade em uma conexo de sesso

A cada ponto de sincronizao associado um nmero no intervalo


que vai de 0 a 999.998 (representao decimal). O servio de sincronizao
de conexes de sesso pode ser simtrico. Quando isto ocorre, os pontos de
sincronizao so numerados sequencialmente e de forma independente nas
duas direes do fluxo de informaes do dilogo. Nesse caso, o dilogo
pode ser ressincronizado em pontos diferentes nas duas direes do fluxo de
dados.
O servio de sesso, como definido no padro ISO 8326, no se responsabiliza pelo armazenamento de dados que j tenham sido transmitidos.
O servio de sesso simplesmente marca, atendendo a solicitaes de seus
usurios, a cadeia de dados transmitida com nmeros atribudos sequencialmente, pontos de sincronizao. Para que os dados previamente enviados
sejam retransmitidos pelo nvel de sesso, o usurio do nvel de sesso deve
ter ele prprio armazenado os dados, devendo ento entreg-los novamente
ao nvel de sesso para retransmisso.
13.2.2.3 - Gerenciamento de Atividade

b) Vrias atividades em uma conexo de sesso

c) Uma atividade em vrias conexes de sesso

S permitida uma atividade em uma conexo de sesso em um determinado instante do tempo, porm, podem existir vrias atividades consecutivas durante uma conexo de sesso. Uma atividade pode adicionalmente
estender-se sobre vrias conexes de sesso. A relao entre atividades e
conexes de sesso ilustrada na Figura 13.3.
A Figura 13.3-a mostra uma relao de um para um. Nesse caso uma
conexo de sesso usada por uma nica atividade, sendo aberta pouco antes do incio e encerrada logo aps o final da atividade. A Figura 13.3-b
ilustra o caso onde so executadas mais de uma atividade em sequncia em
uma nica conexo de sesso. Essa facilidade interessante quando o tempo
e o custo do estabelecimento/encerramento de conexes relevante, pois
permite que uma mesma conexo de sesso seja utilizada por vrias atividades diferentes. A Figura 13.3-c ilustra o caso onde uma atividade atravessa
vrias conexes de sesso. Este ltimo caso usado, por exemplo, em situaes onde os usurios do nvel de sesso interrompem uma atividade que s
ser reiniciada aps decorrido um intervalo de tempo. O tempo da interrupo deve ser suficiente para compensar o custo e o retardo envolvidos no
encerramento e no estabelecimento de uma nova conexo, quando, ento,
razovel encerrar a conexo corrente e, posteriormente, quando a atividade
for reiniciada, abrir uma nova conexo de sesso.

364

Figura 13.3: Relacionamento entre atividades e conexes de sesso.

O leitor deve ter notado nas conexes de sesso ilustradas na Fi,


13.3 que o usurio do nvel de sesso pode transmitir dados fora das ativ
des, atravs do mecanismo denominado capability data. Como, usualmt
cada atividade normalmente associada a uma tarefa especfica de
aplicao, o mecanismo capability data pode ser usado para transmiti]
formaes de controle que no esto relacionadas a nenhuma tarefa pari
lar da aplicao.

13.2.2.4 - Notificao de Excees

O servio de notificao de excees torna possvel a divulgao de


situaes excepcionais que ocorrem ao longo de urna conexo de sesso. A
notificao pode ser enviada por um usurio ou pela entidade fornecedora
do servio de sesso. Aps o envio, o usurio ou a entidade do nvel de sesso que emitiu a notificao fica aguardando que sejam tomadas providncias para contornar o problema reportado. Quando for possvel recuperar o
erro que deu origem notificao, a conexo ressincronizada a partir de
um ponto de sincronizao reconhecido. Em caso contrrio, a conexo
abortada.

13.2.3 - Encerramento de Conexo de Sesso


O servio de encerramento cie conexo de sesso permite que usurios
do nvel de sesso negociem o encerramento de uma conexo de forma ordenada. Nesse tipo de desconexo, os dados que estiverem em trnsito na
conexo sero entregues antes de seu encerramento, no sendo assim extraviados.
Se no estabelecimento da conexo os usurios tiverem decidido utilizar
o token de encerramento, s o usurio que detm a posse desse token pode
solicitar o encerramento da conexo.
Esse servio permite adicionalmente que os usurios requeiram a qualquer momento que a conexo de sesso seja abortada. Nesse caso, pode
acontecer perda de dados. Uma conexo de sesso tambm pode ser abortada por uma das entidades de sesso que lhe do suporte.

13.3 - Unidades Funcionais do Servio de Sesso


O nvel de transporte ISO fornece quatro servios que consistem em
dez primitivas, ao passo que o nvel de sesso fornece vinte e dois servios
que so especificados por cerca de cinquenta primitivas. O protocolo de
transporte da ISO utiliza 10 tipos de PDUs, enquanto o protocolo de sesso
utiliza cerca de 35 PDUs. Esses dados so suficientes para dar uma ideia da
complexidade envolvida em uma implementao completa do nvel de sesso ISO.
A prpria ISO, prevendo que a maioria das aplicaes no iria utilizar
todas as funcionalidades do seu servio de sesso, introduziu o conceito de
unidades funcionais. Uma unidade funcional um agrupamento lgico de
servios. As unidades funcionais ativas em uma conexo de sesso determi366

nam os servios e os tokens que estaro disponveis na conexo. A Tabela


13.1 mostra as unidades funcionais definidas para o servio de sesso ISO.

Tabela 13.1: Unidades funcionais do servio de sesso

Unidade Funcional

Servio

estabelecimento da conexo
transferncia de dados normal
encerramento ordenado
aborto iniciado pelo usurio
aborto iniciado pelo fornecedor
encerramento ordenado
Encerramento negociado
give-token
please-token
transferncia de dados normal
Transferncia half-duplex
give-token
please-token
transferncia de dados normal
Transferncia duplex
transferncia de dados expressa
Dados expressos
transferncia de dados tipados
Dados ti pados
transferncia de capability data
Capability data
definio de ponto de sina secundrio
Sincronizao secundria
give-token
please-token
sincronizao simtrica
Sincronizao simtrica
definio de ponto de sina principal
Sincronizao principal
give-token
please-token
ressincronizao
Ressincronizao
comunicao de exceo do usurio
Exceo
comunicao de exceo do fornecedor
Gerenciamento de atividade iniciar atividade
interromper atividade
retomar atividade
descartar atividade
encerrar atividade
give-control
give-token
please-token

Token

Kernel

encerramento
encerramento
dados
dados

sina secundrio
sina secundrio

sina principal
sina principal

atividade
atividade
atividade
atividade
atividade
atividade
atividade

As unidades funcionais utilizadas em uma conexo so negociadas durante seu estabelecimento- Tanto o usurio solicitante quanto o usurio
acolhedor indicam as unidades funcionais que desejam utilizar. A interseo
367

entre as duas selees determina que unidades funcionais estaro ativas durante a conexo.
O leitor interessado em mais informaes sobre o servio e o protocolo
do nvel de sesso do RM-OSI deve consultar os padres ISO 8326 e ISO
8327 ou as recomendaes do CCITT X.224 e X.225, onde encontrar descries detalhadas dos mesmos.

Captulo M
Nvel de
Apresentao
A principal funo do nvel de apresentao compatibilizar a fo
como so representadas as informaes intercambiadas pelos usurios [
92], Para tanto, o nvel de apresentao prov um formato comum para i
presentao dos dados transferidos, liberando a entidade de aplicao
gem de qualquer considerao sobre como representar suas informaes
forma que entidades de aplicao destino possam process-las. Pode-se
sim dizer que o nvel de apresentao oferece a seus usurios independe;
sinttica. Antes "de discutirmos as funes realizadas pelo nvel de a
sentao importante introduzirmos alguns conceitos nelas utilizados, o
faremos na prxima seo.

14.1 - Conceitos Bsicos


Na realizao de suas tarefas, muitas aplicaes fazem uso do ir
cmbio de estruturas complexas [Colcher 93]. Numa aplicao bancria
exemplo, um registro usado para a transferncia de fundos pode conter
mes, endereos, nmeros de contas e agncias bancrias para crdito e d
to de fundos, valores desses crditos e dbitos, taxas envolvidas na tran
rncia, data e hora da transferncia e vrias outras informaes. Note \
exemplo que, alm da estrutura de dados- ser complexa, cada um de ;
atributos pode ser arbitrariamente complexo: o endereo do correntis
composto de vrios outros atributos, como rua, nmero etc.

Face complexidade das estruturas intercambiveis por diversas apliaes, surgem duas questes. Primeira, como podem ser definidas as estruuras de dados a serem intercambiadas? Segunda, como pode uma instncia
(e uma estrutura (uma transferncia bancria especfica) ser intercambiada e
empreendida por diferentes sistemas, independentemente da plataforma de
ardware ou software utilizadas? A resposta a essas duas questes exige a
efino de mecanismos que permitam:

RegFunc := [APPLICATION 0] IMPLICIT SET {


Nome,
Idade
. [1] IMPLICIT INTEGER,
Profisso [2] VisibleString . }
Nome "'= [APPLICATION l ] . IMPLICIT SEQDENCE { .
OltimoNbnle [I] VisibleString,
Complemento [2] VisibleString OPTIONAL,
PrirneiroNome [3] VisibleString- ' )

A descrio das estruturas de dados dos objetos a serem intercambiados.


Uma codificao no ambgua para instncias dessas estruturas.
uscando tais mecanismos, a ISO introduziu, aliada definio da camada
e apresentao do RM-OSI, as noes de sintaxe abstrata, sintaxe concreta
sintaxe de transferncia.

4.1.1 - Sintaxe Abstrata


Os atributos das estruturas de dados intercambiveis por aplicaes, e
; prprias estruturas de dados, esto relacionados a tipos de dados especfi . Em geral, esses tipos podem ser compostos ou primitivos. Um endereo
um correntista, no exemplo da transferncia bancria, um atributo de
n tipo de dados composto por outros atributos, como sequncias de caracres e nmeros inteiros que, por sua vez, so atributos de tipos de dados
imitivos. A sintaxe abstrata para uma estrutura de dados uma especifto da organizao dessa estrutura de forma independente da codificao
terna utilizada por mquinas para represent-la. Uma sintaxe abstrata torna
)ssvel a definio de tipos de dados e permite tambm que sejam atribu>s valores aos tipos de dados.
Um exemplo de sintaxe abstrata pode ser encontrada na linguagem C
xrnighan 88], onde a definio de tipos de dados como inteiros, caracteres
struets, por exemplo, especifica estruturas de dados de forma independente
qualquer mquina utilizada.
Ao invs de se utilizar de uma linguagem de programao, a ISO defiLi uma linguagem prpria para a especificao de estruturas de dados de
rma abstrata, linguagem esta padronizada e denominada Abstract Syntax
natioh One (ASN.l) [ISO 90c]. A ASN. I define um conjunto de tipos
imitivos e mecanismos para a construo de estruturas complexas como
njuntos, sequncias, etc. A Figura I4.l mostra, como exemplo, uma reprentao ASN.l do registro de um funcionrio em uma empresa.

Figura 14.1: Exemplo de especificao ASN.L

14.1.2 - Sintaxe Concreta


Definida uma representao abstrata para uma estrutura de dados, vrias representaes concretas so possveis. Um nmero inteiro, por exemplo, pode ser codificado em sinal magnitude ou em complemento a dois. Um
caracter alfanumrico pode ser representado pelo seu cdigo ASCII ou por
seu cdigo EBCDIC. Uma possvel representao concreta para uma instncia de um tipo definido por uma struet na linguagem C poderia ser a sequncia de bits que a instncia ocupa na memria, em um determinado momento da execuo de um programa, em uma mquina especfica. A Tabela
14.1 d uma ideia de como variam as representaes concretas de um nmero inteiro em diferentes ambientes mostrando algumas das possveis representaes do nmero 534.
Tabela 14.1: Representaes concretas do nmero inteiro 534
Esquema de Codificao
Representao binria usada pelo
processador Motorola 68.000
Representao binria usada pelo
processador Intel 8086
Representao binria codificada em
decimal (BCD) usada no IBM 370
Representao ASCII usada em
microcomputadores
Representao EBCDIC usada em
computadores de grande porte

Endereo Menor => Endereo Maior


0000 0010 0001 0110
0001 0110 0000 0010
0000 0101 0011 0100
0011 0101 0011 0011 0011 0100
111 0101 1111 0011 1111 0100

Denomina-se sintaxe concreta a especificao de um formato para a


codificao de instncias de estruturas de dados a partir de uma sintaxe abstrata.

371

Para a definio de uma sintaxe concreta para o padro ASN.l, a ISO


definiu o padro ASN.l BER (ASN.l Basic Encoding Rules) [ISO 90d].
Esse padro contm-o conjunto de regras que permitem a construo de uma
sequncia de octetos representando-instncias de estruturas em ASN.l.
O padro BER utiliza a abordagem "TLV" para realizar o mapeamento
entre as sintaxes abstrata e concreta. Nessa abordagem cada tipo de dado
codificado em trs campos: tag, length e value. No campo tag colocado
um rtulo, definido pela sintaxe abstrata, do tipo de dado. O campo length
indica quantos octetos foram usados para codificar o valor atribudo instncia particular do tipo de dado em questo. Esse campo pode opcionalmente receber o valor comprimento indefinido. Nesse caso, o final do campo
value delimitado por uma sequncia especial denominada/w de contedo.
O ltimo campo, value, carrega uma codificao de um valor especfico do
tipo de dado. A BER codifica o valor dos dados de forma concreta, porm,
independente de qualquer ambiente. Cada valor codificado com o menor
nmero de octetos necessrio para preservar a preciso de seu contedo. A
Figura 14.2 mostra a sequncia de octetos (nmeros em hexadecimal na
coluna direita da figura) correspondente representao ASN.l BER de
uma instncia do registro de funcionrio, conforme anteriormente especificado na Figura 14.1.

14.1.3 - Sintaxe de Transferncia


Aplicaes executando em uma determinada mquina se utilizam de
uma representao interna prpria para as estruturas de dados que manipulam (sintaxe concreta local). Essa representao pode variar de acordo com
a arquitetura da mquina em questo, com a linguagem de programao utilizada e muitas vezes at com o compilador utilizado.
A principal funo do nvel de apresentao realizar o mapeamento e
a converso entre uma representao utilizada para intercmbio e a representao interna de aplicaes. A sintaxe concreta utilizada para o intercmbio
denominada sintaxe de transferncia.
Uma possvel sintaxe de transferncia a obtida atravs das regras estabelecidas pelo padro ASN. 1 BER. Outras sintaxes de transferncia tambm podem ser definidas. Uma aplicao pode definir, por exemplo, uma
sintaxe de transferncia idntica sintaxe concreta utilizada para a representao interna das suas estruturas de dados. Nesse caso, o trabalho da camada
de apresentao fica bastante simplificado, j que o mapeamento pelo qual
responsvel uma funo identidade.

14.1.4 - Contexto de Apresentao


.60
APPLICATION 0, RegFunc tag (IMPUGIT SET constructed)'.
36
Length of RegFunc fiels (54 decimal)
. 61
APPLICATION 1, Nome tag (IMPUCIT SEQENCE constructed)
26
Length of Nome fields 0 8 decimal)
Al
UltimoNorne tag, (constucted)
08
Length
IA
VisibleSlring
06
Length'
Xavier
UltimoNorne Value
A2
Complemento tag, (constructed)
OF
Length
IA
VisibleString
0D
Length
ose da Silva.
Complemento Value
:
: ' A3
PrmelroNome tag, (constucted)
09
Length
IA
VisibleString
07
Length
Joaquim
PrimeiroNome Vaine
' SI
idadet g (IMPLICITINTEGER)
Length
" -1F
Value (decimal 31)A2
Profisso
0A
Length
IA
VisibleString
: 07
Length
Alferes
Value

Em geral, podem ser utilizadas mais de uma combinao de sintaxes


abstratas e sintaxes de transferncia. Pode ser possvel representar uma sintaxe abstrata especfica atravs de uma ou mais sintaxes de transferncia;
adicionalmente possvel utilizar uma sintaxe de transferncia para representar mais de uma sintaxe abstrata. Cada combinao de sintaxe abstrata e
sintaxe de transferncia denominada contexto de apresentao. Do ponto
de vista de uma entidade de aplicao, um contexto de apresentao representa um uso distinto e especfico de uma sintaxe abstrata. A Figura 14.3
ilustra a relao entre os conceitos de sintaxe abstrata, sintaxe de transferncia e contexto de apresentao.
Na Figura 14.3, dois usurios do nvel de apresentao utilizam trs
sintaxes abstratas (A, B e C) e uma sintaxe de transferncia (T) em sua comunicao. Dessa forma, trs contextos so usados para definir que tipo de
converso as entidades de apresentao precisam realizar nos dados; so
eles: o contexto 1- que associa a sintaxe abstrata A com a sintaxe de transferncia T, o contexto 2 que associa B a T, e o contexto 3 associando C a T.

Figura 14.2: Exemplo de codificao ASN. i BER.


372

373

cambiados, em uma sintaxe concreta (a sintaxe de transferncia), e apresentar a sequncia de octetos resultante da transformao na forma de SSDUs
(Session Service Data Units) ao servio de sesso. No receptor as operaes
inversas so executadas quando o servio de sesso entrega entidade do
nvel de apresentao os octetos transferidos.
Para ampliar os servios do nvel de sesso, o nvel de apresentao
executa as funes descritas a seguir.

Entidade de Apresentao

14.2.1 - Negociao da Sintaxe de Transferncia


Gerenciamento de Contextos em uma Conexo de
Apresentao

igura 14.3: Conceitos bsicos no nvel de apresentao.

4.2 - Consideraes sobre o Nvel de Apresentao


No RM-OSI, do nvel fsico ao nvel de sesso, os dados do usurio so
stos como sendo uma sequncia de octetos. Por outro lado, o nvel de apliio preocupa-se com a forma como os usurios enxergam os dados. De
tn modo geral, os usurios vem os dados como um conjunto estruturado
3 informaes: um documento com texto e figuras, um arquivo com regisos de funcionrios etc. Portanto, o nvel de apresentao deve ser capaz de
inverter a representao abstrata dos dados utilizada pelas aplicaes (que
;t mais prxima da viso do usurio) em uma sequncia de octetos manijlados pelos nveis inferiores do RM-OSI.
O nvel de apresentao amplia o servio do nvel de sesso, acrescenndo basicamente a negociao das sintaxes de transferncia utilizadas na
Hnunicao e a transformao das sintaxes usadas pelas aplicaes na sinxes de transferncia negociadas.
Os servios do nvel de sesso (por exemplo, estabelecimento de coneLo, transferncias de dados, gerenciamento de token, encerramento de co;xo etc.) so fornecidos s entidades de aplicao na forma de servios de
>resentao. Quando for esse o caso, a camada de apresentao atua simesmente repassando as primitivas que dizem respeito aos servios de seso entre as entidades de aplicao, e de sesso. Como no existe multipleio ou splitting no nvel de apresentao, uma conexo de apresentao
apeada em urna nica conexo de sesso. Na prtica, o que o nvel de
>resentao faz transformar os tipos de dados da aplicao a serem interr

Conforme j observado, vrias sintaxes de transferncia distintas podem ser definidas para uma mesma sintaxe abstrata. responsabilidade da
funo de gerenciamento de contextos manter um registro sobre a combinao de sintaxes abstraas e de transferncia utilizadas em uma conexo de
apresentao.
Quando estabelecida uma conexo de apresentao, so definidos
identificadores de contexto de apresentao (Presentation Context Identifier
PCI). Cada PCI relaciona uma sintaxe abstrata especfica a uma sintaxe
de transferncia. Essa relao definida atravs de um processo de negociao onde uma entidade de aplicao prope um mapeamento, especificando
o nome de uma sintaxe abstrata e uma ou mais sintaxes de transferncia. A
entidade par na conexo ento decide se ela deseja utilizar aquela sintaxe
abstrata, e qual das sintaxes de transferncia dever ser utilizada. A coleo
dos contextos negociados em uma conexo define o conjunto dos contextos
da conexo (Defined Context Set DCS).
Depois do estabelecimento da conexo e, portanto, da definio de um
DCS inicial, possvel opcionalmente adicionar-se ou remover-se contextos.
Por exemplo, essa facilidade pode ser utilizada em uma aplicao de transferncia de arquivos. Suponha que a aplicao usa um contexto diferente para
cada tipo de arquivo transferido. Antes de iniciar a transferncia de um arquivo, a aplicao adiciona ao DCS um contexto relacionando a sintaxe
abstrata que define o formato do arquivo a uma sintaxe de transferncia
apropriada para a transmisso do seu contedo. Quando a transmisso terminado contexto pode, se desejado, ser removido do DCS.

375

(
14.2.2 - Transformao de Representaes

Como vimos, as entidades de aplicao negociam e determinam as


sintaxes abstratas e de transferncia que iro utilizar em uma comunicao.
Para que essa comunicao possa ser realizada, necessrio que as instncias de tipos de dados especificadas em sintaxes abstratas sejam mapeadas
para sintaxes de transferncia apropriadas. O nvel de apresentao utiliza a
funo de transformao de representaes para realizar essa tarefa.

(
(

S
(

(
(

"'.
/

Em um sistema real, os dados definidos em termos de uma sintaxe


abstrata so representados no ambiente local do sistema por uma sintaxe
concreta. Uma transformao entre essa sintaxe concreta e a sintaxe de
transferncia necessria para que os dados sejam transferidos. Conceitualmente, essa converso se d em duas fases: inicialmente a representao
concreta local mapeada na representao abstrata, e depois, a representao abstrata transformada na representao concreta de transferncia.
Quando uma representao abstrata local transformada na representao concreta de transferncia, a entidade de apresentao pode aplicar
tcnicas de compresso ou compactao, para diminuir o volume dos dados
transferidos. A entidade de apresentao pode tambm utilizar algoritmos de
criptografia para evitar que os dados transferidos sejam interpretados por
usurios no autorizados. Criptografia um dos assuntos discutidos no
Captulo 17 sobre segurana em redes.
Em uma comunicao so utilizadas trs verses de sintaxes concretas
dos dados: a sintaxe concreta usada pela entidade de aplicao origem, a
sintaxe concreta usada pela entidade de aplicao destino, e a sintaxe concreta usada entre as entidades de apresentao (a sintaxe de transferncia).
possvel que nenhuma ou todas essas sintaxes sejam idnticas. Se as sintaxes
forem todas idnticas, a funo de converso de representaes uma funo identidade. Por outro lado, se elas forem diferentes, a funo de converso de representaes do nvel de apresentao aplicada duas vezes em
cada transferncia de dados: uma na origem, convertendo a sintaxe local na
de transferncia, e outra no destino, convertendo a sintaxe de transferncia
na sintaxe local.
A funo de transformao funciona da seguinte forma. Cada unidade
de dados entregue por um usurio ao nvel de apresentao, PSDU
(Presentation Service Data Unit), contm um ou mais valores representados
segundo a sintaxe concreta local do usurio do servio de apresentao que
a gerou. Note, mais uma vez, que o servio de sesso considera que sua
SSDU carrega uma coleo de um ou mais octetos, enquanto o nvel de
apresentao considera que sua PSDU carrega valores de dados estruturados. Cada valor contido em uma PSDU marcado de forma a indicar o
contexto de apresentao (PCI) ao qual est associado. O PCI identifica,

(
(

376

para a entidade de apresentao local, as sintaxes abstrata e de transferr


associadas a um valor especfico no campo de dados das PSDUs. A entid
de apresentao local pode assim transformar cada valor dos dados em i>
sequncia de bits, usando a sintaxe de transferncia apropriada, para em
guida entregar a sequncia de bits organizada em octetos ao nvel de sess
na forma de uma SSDU. Antes da entrega da sequncia de bits ao nvel
sesso, algoritmos de compresso ou compactao e algoritmos de crij
grafia podem ser empregados na sequncia de bits geradas, conforme op
do servio de apresentao. No destino, a funo inversa aplicada hr
formando a sequncia de octetos entregue pelo nvel de sesso em valorei
dados, que so ento entregues aplicao.

14.3 - Unidades Funcionais


Como no nvel de sesso, os servios do nvel de apresentao tamb
so agrupados em unidades funcionais, cuja utilizao negociada quai
uma conexo de apresentao estabelecida.
O nvel de apresentao acrescenta trs unidades funcionais que
definidas no nvel de sesso, conforme apresentado na Tabela 14.2.
Tabela 14.2: Unidades funcionais acrescentadas pelo nvel de apresentao s do
uivei de sesso
Unidade Funcional
Kernel

Gerenciamento de contexto
Restaurao de contextos

A unidade funcional

Servios
estabelecimento de conexo
transferncia de dados normal
encerramento de conexo ordenado
aborto de conexo iniciado pelo usurio
aborto de conexo iniciado pelo fornecedor
adio e remoo de contextos
restaurao de contextos

presentation-kernel

est sempre disponvel,

duas aplicaes utilizam uma nica representao para os dados que troe;
apenas a unidade funcional presentation-kernel necessria. Nesse case
camada de apresentao atua essencialmente como um servio nulo, s:
plesmente repassando solicitaes e respostas (primitivas request e
sponse) para o servio de sesso, e indicaes e confirmaes (prmiti
indication e confirm) para seus usurios. Caso os dois usurios de uma
nexo de apresentao no utilizem a mesma sintaxe para representar si
dados, ento a camada de apresentao executa as transformaes neces

S-ar putea să vă placă și