Академический Документы
Профессиональный Документы
Культура Документы
e
Redes de Computadores
ndice
ndice .............................................................................................................. 2
1 Histrico e Evoluo dos Sistemas e das Redes de Computadores........ 3
2 Transmisso de Dados................................................................................ 8
3 Sistemas de Comunicao........................................................................ 19
4 Erros .......................................................................................................... 31
5 Interface de Comunicao de Dados ...................................................... 36
6 Protocolos .................................................................................................. 45
7 Modelo Hierrquico de Protocolos e Padronizao .............................. 59
8 Projeto e Desenvolvimento de Protocolos .............................................. 72
9 Redes Locais, Ethernet e Internet........................................................... 96
10 Camada de Rede ..................................................................................... 135
11 Camada de Rede na Internet................................................................. 164
12 Camada de Transporte .......................................................................... 168
13 Camada de Transporte na Internet ...................................................... 172
14 Camada de Sesso................................................................................... 179
15 Implementao da Camada de Sesso.................................................. 203
16 Camada de Apresentao ...................................................................... 211
17 Camada de Aplicao............................................................................. 226
18 ATM......................................................................................................... 241
19 Redes Sem Fio e QoS.............................................................................. 269
Captulo
1
Histrico e Evoluo dos Sistemas e das Redes
de Computadores
1.1 Histrico da Computao
O baco, que surgiu por volta de 3000 a.C., o
mais antigo instrumento de computao conhecido. O
modelo da figura ao lado o baco chins, ainda
usado no oriente. Por ser eficiente e simples o baco
foi o principal instrumento de clculo at o sculo
XVII quando Blaise Pascal, em 1642, inventou a
primeira calculadora mecnica capaz de realizar
adies que ficou conhecida como Pascalina.
Em 1670 Gottfried von Leibniz inventou uma calculadora que efetuava as quatro
operaes fundamentais e extraa a raiz quadrada.
Joseph Marie Jacquard introduziu, em 1801, nos teares de sua fbrica um sistema
de cartes perfurados que representavam justamente os desenhos pretendidos,
inventando assim, o primeiro tear programvel.
A inveno da Mquina Analtica (tambm mecnica) por Charles Babbage,
professor de matemtica, por volta de 1833, abriu caminho para a construo do que
hoje seria descrito como um computador digital mecnico automtico totalmente
controlado por um programa.
Alguns anos depois George Boole iniciava um processo que implicaria em
importantes aplicaes tecnolgicas, publicando em 1847 e em 1854 os livros A
Anlise Matemtica da Lgica e Uma Investigao das Leis do Pensamento
respectivamente, dando a ele o ttulo de inventor da lgica matemtica. Sua proposta
era de que qualquer coisa podia ser representada por smbolos e regras. O
desenvolvimento de suas idias deu origem chamada lgebra de Boole.
Em 1890, Hermann Hollerith desenvolveu um equipamento que visava minimizar
o imenso trabalho dispensado no censo dos Estados Unidos. Seu invento baseava-se
nos cartes perfurados idealizados por Jacquard e o sucesso foi to grande que ele
fundou, em 1896, a Tabulation Machine Company. A TMC veio a fundir-se com mais
duas empresas formando a Computing Tabulation Recording Company. A mesma
CTRC, anos depois da morte de Hollerith, mudava de nome e nascia a IBM Internacional Business Machine.
J no sculo XX, nos anos 30, Alan Turing inventou um dispositivo de uso geral,
capaz de receber instrues para trabalhar com qualquer tipo de informao, chamado
de Mquina de Turing. A mquina funcionaria usando mecanismos relacionados com
conceitos de clculo de entrada, sada e com um programa.
Na mesma poca, Konrad Zuse criou o primeiro computador eletromecnico
chamado Versuchmodell 1 ou Z-1. Foi a primeira calculadora universal binria
controlada por um programa. Zuse ainda produziu mais trs mquinas (Z2, Z3 e Z4),
que aperfeioaram a Z1.
Anos mais tarde, o matemtico hngaro John von Neumann, por volta de 1945,
formalizou o projeto lgico de um computador. Ele sugeriu que as instrues fossem
armazenadas na memria do computador. At ento elas eram lidas de cartes
perfurados e executadas, uma a uma. Participou do projeto de construo do ENIAC
Eletronic Numerical Integrator and Calculator (University of Pensylvania), construdo
durante a Segunda Guerra Mundial, dentro de um programa do exrcito americano
que procurava automatizar o clculo de tabelas balsticas. Foi inaugurado em
fevereiro de 1946, era uma calculadora universal programvel e eletrnica, pesava
cerca de 30 toneladas, com 1500 rels, 17 mil vlvulas, e 150 kW de potncia. Tanto
as operaes aritmticas quanto as de armazenamento de dados eram conduzidas
eletronicamente.
No final da dcada de 40, Claude Shannon, um estudante do MIT, em sua tese de
mestrado criou as operaes lgicas usando cdigo binrio.
J no incio da dcada de 50, vrias mquinas foram construdas. Elas eram todas
diferentes, mas todas seguiam a chamada arquitetura de Von Neumann, delineada nos
primeiros trabalhos sobre a construo de computadores digitais. Nesta dcada
tambm surgem as quatro primeiras mquinas a transistores SEAC, TRANSAC S100,
Atlas Guidance Model I e CDC 1604, todas de construo americana.
Os circuitos integrados foram desenvolvidos e aperfeioados nos anos 60 sob
influncia do programa espacial americano, possibilitando o surgimento de
minicomputadores que eram mais poderosos e bem menores.
Em 1971, a Intel lana o primeiro microprocessador. Durante esta dcada tambm
foram desenvolvidos grandes computadores chamados de mainframes e surgiu o
primeiro computador pessoal, o Apple II, feito em 1976 pelos americanos Steven Jobs
e Stephan Wozniak.
A IBM lanou o PC/XT com um disco rgido de 110Mbits em 1983.
1.2 Histrico da Comunicao de Dados
A comunicao de dados comeou com a inveno do telgrafo por Samuel F.
Morse em 1838. As mensagens eram codificadas em cadeias de smbolos binrios e
ento transmitidas manualmente por um operador atravs de um dispositivo gerador
de pulsos eltricos. Foram implantadas cerca de 40 milhas de linha para telgrafo em
1844.
Usando as linhas de telgrafo, em 1860, realizou-se a transmisso de 15bits/s.
Dados de radar, codificados em binrio, foram transmitidos via facilidades de
telgrafo para computadores na dcada de 1940. Usavam a Bell System (linhas e
troncos) Common carries.
Teletypewriter As common carries tornaram disponveis dispositivos de
entrada/sada que poderiam ser usados para enviar informao escrita ou codificada
sobre linhas telefnicas.
No final da dcada de 50 ocorreu a exploso de desenvolvimentos para facilitar o
uso de computadores remotamente.
Unidos. Quatro Universidades americanas foram interligadas por esta rede que
utilizava a tecnologia de comutao de pacotes. A primeira demonstrao pblica do
sistema ocorreu em 1972 e a primeira conexo internacional da ARPANET ocorreu
em 1973 com a University College of London na Inglaterra.
A idia do projeto ARPANET era a construo de um sistema de comunicaes
que no pudesse ser interrompido por avarias locais. Essa preocupao era devido
guerra fria que estava no seu auge. Os militares americanos queriam uma rede de
telecomunicaes que no possusse uma central e que no pudesse ser destruda por
nenhum ataque localizado.
Anos mais tarde, o DCA (Defense Communication Agency) dividiu a ARPANET,
formando duas redes, sendo que a parte maior ficou conhecida como MILNET e a
outra parte ficou reservada para futuras pesquisas.
1.3 Histrico e Escopo da Internet
Em meados de 1979, a ARPA criou o ICCB (Internet Control and Configuration
Board) que reunia pesquisadores envolvidos no desenvolvimento do TCP/IP
(Transmission Control Protocol)/(Internet Protocol). No incio dos anos 80, surgia a
Internet, a partir do momento em que a ARPA passou a adotar os novos protocolos
TCP/IP nas mquinas de sua rede de pesquisa. A partir disso a ARPANET se tornou o
backbone da Internet.
Para incentivar pesquisadores das universidades a adotar e usar os novos
protocolos, o DARPA tornou disponvel uma implementao de baixo custo. Nesta
poca, muitas universidades usavam o sistema operacional UNIX disponvel na
University of California: Berkeley Software Distribution, tambm chamado Berkeley
UNIX ou BSD UNIX. A ARPA conseguiu atingir cerca de 90% dos departamentos de
cincia da computao das universidades com a integrao do TCP/IP ao BSD UNIX.
Um usurio experiente de UNIX pode facilmente aprender a fazer uma cpia
remota de arquivo (rpc), idntico a cpia do UNIX.
O BSD UNIX forneceu uma nova abstrao do sistema operacional conhecida
como socket, que permitem aos programas de aplicao acessar os protocolos de
comunicao.
Em 1986, o NSF (National Science Foundation) financiou vrias redes regionais
para se conectarem com as principais instituies voltadas para pesquisa cientfica e
integrarem a Internet.
Inicialmente os nomes e endereos de todos os computadores ligados a Internet
eram mantidos em um arquivo e editados mensalmente. J em 1985 um banco de
dados central j no seria o suficiente.
Um novo mecanismo foi desenvolvido, o Domain Name System (com mquinas
chamadas name servers servidores de nomes).
1986 20.000 computadores ligados a Internet;
1987 - taxa de crescimento de 15% ao ms;
1990 200.000 computadores;
1994 3.000.000 de computadores conectados Internet em 61 pases.
No Brasil, as redes comearam a surgir em 1988, ligando universidades e centros
de pesquisa do Rio de Janeiro, So Paulo e Porto Alegre a instituies nos Estados
Unidos. No mesmo ano, o Ibase (Instituto Brasileiro de Anlises Econmicas e
Sociais), comeou a testar o AlterNex, o primeiro servio brasileiro de Internet noacadmica e no-governamental que, em 1992, seria aberto ao acesso pblico.
A RNP (Rede Nacional de Pesquisas) surgiu em 1989 para unir as redes que
ligavam as universidades e centros de pesquisas e formar um backbone de alcance
nacional.
As diretrizes tcnicas, a coordenao das pesquisas e desenvolvimento dos
protocolos TCP/IP foi realizado pelo IAB (Internet Architecture Board) que surgiu em
1983 quando a ARPA reorganizou o ICCB.
A partir de 1989 a IAB passou a se encarregar dos aspectos polticos e comerciais
do binmio TCP/IP - Internet. Os dois principais grupos do IAB so:
IRTF - Internet Research Task Force (grupos de pesquisa), coordena as
atividades de pesquisa do TCP/IP;
IETF - Internet Engineering Task Force (grupos de trabalho), concentra
problemas de engenharia;
Os relatrios tcnicos da documentao de trabalhos na Internet, proposio de
protocolos novos ou revisados e padres dos protocolos TCP/IP so chamados de
RFCs (Requests for Comments). Anteriormente foram publicados os IENs (Internet
Engineering Notes).
INTERNIC (Internet Network Information Center) trata de muitos detalhes
administrativos para a Internet e distribui RFCs e IENs.
Captulo
2
Transmisso de Dados
2.1 Transmisso de Dados
Na transmisso analgica os sinais eltricos variam continuamente entre todos
os valores possveis, permitidos pelo meio de transmisso.
Ex.: Microfone de telefone
Na transmisso digital uma srie de sinais que tem apenas dois valores
eltricos (ou gama discreta de valores) transmitida.
Ex.: Telegrafia (Morse)
Este ltimo tipo de sinal obtido pela rpida inverso do estado corrente.
0
Por emisso
ausncia
presena
Por interrupo
presena
ausncia
-1
+1
2.1.2 Modulao
As limitaes que meios de transmisso impem aos sinais transmitidos
podem ser contornadas atravs do processo de modulao, que consiste em se
imprimir uma informao em uma onda portadora pela variao de um ou mais dos
seus parmetros:
Amplitude
Varia a amplitude da portadora conforme a amplitude do sinal modulante. A
principal vantagem dessa tcnica a facilidade para realizar a modulao e
demodulao, entretanto tem duas grandes desvantagens: a velocidade da troca
de amplitude limitada pela largura de banda da linha e a outra que
pequenas mudanas da amplitude sofrem deteco no confivel. As
desvantagens da modulao em amplitude fizeram com que esta tcnica no
fosse mais utilizada pelos modems, a no ser em conjuno com outras
tcnicas.
Freqncia
A freqncia da onda portadora alterada de acordo com o sinal
modulante. Essa tcnica tambm conhecida como FSK (Frequency Shift
Keying). As suas desvantagens so a limitao da variao da freqncia pela
largura de banda da linha e a distoro causada pelas linhas torna a deteco
mais difcil do que na modulao de amplitude.
Fase
A fase da onda portadora varia de acordo com o sinal modulante. Essa tcnica,
para detectar a fase de cada smbolo, requer sincronizao de fase entre
receptor e transmissor, complicando o projeto do receptor.
2.1.3 Demodulao
o processo de recuperao da informao (extrao do sinal modulante) de
uma onda portadora, sendo necessrio que o processo de modulao seja reversvel.
2.1.4 MODEM
O MODEM (MOdulador-DEModulador) o dispositivo que realiza a
adequao dos sinais binrios ao canal de transmisso, servindo de interface entre este
canal e o terminal de dados e permitindo a transmisso de sinais a longa distncia.
10
11
12
0 = a 1000 Hz
1 = a 3000 Hz
retorno relativo 1 ms
14
15
16
17
18
Captulo
3
Sistemas de Comunicao
Arte do transporte de informao de um ponto a outro.
Fonte e Destinatrio
Fonte
Destinatrio
1001
0010 .....1101
smbolo
mensagem
Destinatrio a quem a informao dirigida.
Alfabeto de elementos: a = {0, 1} b = {A, B, C...}
Smbolo: conjunto ordenado de elementos.
O conjunto completo de smbolos forma o alfabeto de smbolos.
Do alfabeto b pode-se compor os smbolos AA, AB, ... ou AAA, BBA
A sada da fonte ser sempre de smbolos.
A mensagem o que a fonte produz, consistindo em um conjunto ordenado de
smbolos que a mesma seleciona de seu alfabeto, conforme critrios prprios.
19
fonte
emissor
meio
receptor
destinatrio
rudo
canal
Codificador e Decodificador
Freqentemente a natureza dos smbolos gerados pela fonte no adequada
para acionar o canal de transmisso. Devemos ento alterar a natureza dos elementos
que feita pela codificao.
Fonte
A
B
...
Z
Codificador
11000
01110
...
10001
mensagem
mensagem codificada
AVE
Alfabeto de Smbolos
20
fonte
codificador
emissor
meio
receptor
decodificador
rudo
canal
Sistemas de Telecomunicaes
Sinal
escrita
falada
Imagem esttica
dinmica
Dados
Tecnologia
Telegrafia
Telefonia
Facsmile
Televiso
Comunicao
de Dados
Palavra
21
destinatrio
V = log2 N = mlog2 n
Base dois expressa a variedade na unidade bit.
Codificao Bit
V = log2 2 = 1 bit
O dibit um pulso que apresenta 4 nveis distintos, portanto a cada pulso
podem ser transmitidos dois bits.
Codificao Dibit
V = log2 4 = 2 bits
O tribit um pulso que apresenta 8 nveis distintos.
V = log2 8 = 3 bits
22
Baud
O nmero de amostras por segundo medido em baud. Durante cada baud
modulado um smbolo. Desse modo, uma linha de n bauds transmite n smbolos/s.
A faixa de passagem mnima B que o sistema deve possuir para permitir o
reconhecimento de uma seqncia de pulsos entrantes de durao T, deve deixar
passar a fundamental do padro.
B=
Vm=
1
T
1
2T
baud
bit 2 nveis
1
T bit/s
bit / s
Vs
=1
Vm
baud
Vs=
dibit 4 nveis
2
T bit/s
bit / s
Vs
=2
Vm
baud
Vs=
tribit 8 nveis
3
T bit/s
bit / s
Vs
=3
Vm
baud
Vs=
23
Como B relaciona com Vm, podemos concluir que usando a mesma largura de
faixa B, ao se transmitir o sinal dibit se consegue o dobro de Vs e com o tribit o triplo
de Vs.
O canal telefnico tem uma faixa de passagem de 3.100Hz e na prtica usado
para transmisso de sinais de dados at 2.400 baud.
Por isso quando se quer transmitir velocidade de sinalizao de 4.800 bit/s
neste canal, se usa um sinal dibit ao qual corresponde a velocidade de modulao de
2.400 baud. De modo similar, para se transmitir em sinal com Vs = 7.200 bit/s se
emprega o sinal tribit com a Vm de 2.400 baud.
necessrio ento, codificar o sinal de modo a casar as necessidades de
transmisso de informao com as necessidades de transmisso de sinal no meio.
Exerccio:
Um modem converte um sinal de 9.600 bit/s num sinal quadribit. Quantos
bauds tem a sada do modem? Qual a freqncia da fundamental desta sada? Este
sinal apropriado para transmisso em canal telefnico?
Vs = 9.600 bit/s 16 nveis
Vs = 4Vm
Vm= 2. 400 bauds
Vm= 2B
2.400 = 2B B = 1.200 Hz
Sim.
Informao Conjunto
Encontrar uma funo f adequada
Propriedades da funo:
24
p=
n deeventos
favorvei s
n deeventos
nf
np
possvei s
Exerccio
Seja o experimento lanar um dado para tirar a face 6. So eventos possveis
as faces 1, 2, 3, 4, 5 e 6. O nico evento favorvel a face 6. A probabilidade de sair 6
:
1
p( 6 ) = = 0,16666...
6
Para a lngua inglesa foi feito um estudo de probabilidade de ocorrncia das
letras, a mais freqente sendo a letra e com a probabilidade de 0,131 e a menos
freqente, a letra z com a probabilidade de ocorrncia de 0,00077.
Quando num texto aparece a letra e, ela carrega uma informao prpria
(e) = log 0,131
= 2,95 shannen
2
Por ser mais rara, isto , menos provvel, a letra z traz mais informao
prpria.
Teleprocessamento
o processamento eletrnico de dados executado remotamente.
implementado por hardware e software voltados para a comunicao e por todo um
conjunto de regras que disciplinam esta relao.
25
COD
MOD
DEC
DEM
CODEC
MODEM
PONTO B
EMISSOR
RECEPTOR
RECEPTOR
MEIO
EMISSOR
DEM
DEC
MOD
COD
Transceptor
RUDO
Canal
26
Caractersticas do Canal
Simplex
Half-Duplex
Full-Duplex
Figura 3.13
O sinal modulador pode ser de natureza analgica ou digital.
Portadora Senoidal
Moduladora Analgica
Moduladora Digital
Portadora Trem-de-pulso
Moduladora Analgica
Moduladora Digital
Modulao
Figura 3.14
Modulao em Portadora Senoidal
A senide um sinal contnuo e peridico, com os parmetros de fase,
freqncia e amplitude.
Ep(t) = portadora
Ep(t) = E0 cos(0t + 0)
E0 = amplitude da portadora.
0 = freqncia angular da portadora.
0 = fase inicial da portadora.
27
Figura 3.15
Quando a moduladora digital (a caracterstica variada da portadora senoidal
assume alguns valores descritos possveis).
a) ASK (amplitude shift keying) ou modulao por salto de amplitudes.
b) FSK (frequency shift keying) ou modulao por salto de freqncia.
c) PSK (phase shift keying) ou modulao por saltos de fases.
28
Figura 3.16
Figura 3.17
Moduladora Analgica
a) PAM (pulse amplitude modulation): modulao de pulso em amplitude
[informao impressa na caracterstica de amplitude]
b) PWM (pulse width modulation): modulao de pulsos em largura
[informao impressa na caracterstica de durao de pulsos]
c) PPM (pulse position modulation): modulao em posio de pulso
[informao representada pelos deslocamentos relativos dos pulsos em relao a
referncias de tempo igualmente espaadas]
29
AM
FM
PM
Moduladora
Digital
ASK
FSK
PSK
Portadora senoidal
Moduladora
Analgica
PAM
PNM
PPM
PFM
Moduladora
Digital
PCM
DPCM
DM
Portadora trem-de-pulsos
Figura 3.18
30
Captulo
4
Erros
Um circuito ser considerado satisfatrio para transmisso de dados se, em
cada 105 bits transmitidos apenas 1 bit errado ocorrer, segundo as recomendaes do
CCITT.
31
Ou exclusivo (xor).
32
Figura 4.1
Entrelaamento
Tcnica que permite detectar erros mltiplos, mediar um esquema de simples
VRC, que consiste em enviar em blocos de 7 caracteres todos os bits de posio 1,
seguidos de todos os bits de posio 2, e assim at os bits de posio 7, finalizando
33
com os de paridade. Esse sistema resiste at mesmo a rajadas de erros que alterem 7
bits consecutivos.
Sua eficincia de 87,5%, a mesma do VRC.
CRC (Cyclic Redundancy Checking)
Elaborada para operar sobre dados a serem transferidos independentemente da
sua configurao de caractere. Consiste em aplicar um polinmio sobre grupos de bits
(12 ou 16) de um bloco de dados, cujo resultado cumulativo transmitido ao final do
bloco. Na recepo so efetuadas as mesmas operaes sobre o bloco, e o resultado
obtido pode ser comparado com o resultado recebido.
Considerando um bloco de 80 caracteres de 8 bits, mais 16 de teste, a
eficincia ser de 97,5% ((640/656) * 100%)
As tcnicas de deteco de erros descritas tm por objetivo sinalizar apenas a
existncia do erro. Uma vez detectado, o emissor dos dados deve ser de algum modo,
avisado de que deve retransmitir o conjunto de dados sinalizado. Isso implica que os
dados sejam mantidos na fonte, em um buffer do tamanho do bloco, at que seu
correto recebimento tenha sido assinalado pelo receptor. Essa sinalizao
geralmente efetuada por dois caracteres denominados ACK e NAK, que significam
respectivamente, recepo correta e recepo incorreta (erro no bloco).
34
= 1110(2)
5(10) = 0101(2)
= 1011(2) = 11(10) -> posio do bit errado
Se o resultado como no exemplo no for zero, isso indicar que houve erro na
transmisso. O valor decimal desse resultado a posio de bit que deve ser alterada
para corrigir o erro.
Se dois erros ocorrerem, isso ser detectado, mas o resultado do OREXCLUSIVO ser sem sentido. Trs erros podem ocorrer e escapar ao esquema de
deteco.
35
Captulo
5
Interface de Comunicao de Dados
Introduo
Pode-se dividir os equipamentos utilizados em um Link de Comunicao de
Dados em dois grupos:
36
37
Funo;
Caractersticas eltricas.
Caractersticas eltricas
Para circuitos de transferncias de dados, o sinal considerado em condio de marca
quando a tenso no circuito de transferncia, medida no ponto de interface, mais
negativa que -3V com relao ao circuito AB (signal ground). O sinal considerado
38
na condio de espao quando a teno for maior que +3V com relao ao circuito
AB. A regio compreendida entre -3V e +3V definida como a regio de transio. O
estado do sinal no necessariamente ser identificado de forma nica quando a tenso
est na regio de transio. Durante a transmisso de dados, a condio de marca
usada para discriminar o estado 1 binrio, enquanto a condio de espao usada para
discriminar o estado 0 binrio.
Figura 6.4.
Caractersticas mecnicas
Nas interfaces entre o equipamento terminal de dados e o equipamento de
comunicao de dados esto localizados conectores de sinais de interface.
recomendada a utilizao de cabos curtos, aproximadamente 15 metros, mas
possvel o uso de cabos maiores desde que a carga de capacitncia no exceda a
2500pF (medida no ponto de interface e incluindo a terminao do gerador do sinal).
importante observar que a recomendao no normaliza todos os circuitos possveis
da interface.
39
interessante que na utilizao seja dada preferncia aos sinais e pinos normalizados,
e que na necessidade do uso de pinos/circuito adicionais sejam tomados cuidados
extremos especiais.
Figura 6.5.
Observa-se que:
a)
b)
c)
d)
40
Cdigos Alfabetos
Transmisso Paralela:
Dados bits caracteres
O sistema deve transmitir os bits do caracter de uma s vez.
Exemplo: 6 trajetrias separadas
+1 para fins de controle
Desvantagens:
Vantagem:
41
Transmisso Serial:
Os bits que compem o caracter so transmitidos um de cada vez. Neste caso o
receptor deve saber qual bit o primeiro do caracter, para decodificar a informao
(sincronismo).
Cod : ASCII
Exemplo: Teletipo
- no tem armazenadores temporrios
- envia caracteres em
42
terem buffers).
Sincronismo de Bits
Na recepo feita a recuperao do clock, em funo do trem de pulsos recebidos.
Este clock recuperado possibilita a leitura dos bits recebidos.
Observao: haver necessidade de transies no trem de dados ( no existindo
seqncias longas de 0s e 1s. Uso de SCRAMBLER para misturar os bits).
Sincronismo de Caracter
Aps a sincronizao de bit, h necessidade de saber onde comea e termina um
caracter. A sincronizao de caracter feita por caracteres especiais do tipo SYN.
Observao: dois ou mais caracteres especiais para sincronizao.
Figura - Sincronismo de Caracteres
Sincronismo de Texto
Aps a sincronizao de caractere, precisamos saber onde comea e termina um
texto. Isto e feito pela insero de novos caracteres de controle, como, por exemplo:
43
BCC
44
Captulo
6
Protocolos
6.1. Definies
1. Conjunto de regras estabelecido para a transmisso ordenada e automtica
de dados
2. Regras seqenciais de requisies e respostas pelas quais unidades de uma
rede coordenam e controlam operaes de transferncia de dados
3. Conjunto de regras que governam a troca de informaes entre dois ou
mais processos.
Exemplos de protocolos: BSC (Binary Synchronous Communication), SDLC
(Synchronous Data Link Control), HDLC (High Data Link Control) e X25.
45
46
Figura 7.1
6.3.2. Fases de conversao do protocolo BSC
1. A informao do bloco acrescida de caracteres de sincronismo (SYN),
seguidos de caractere que indica incio de texto (STX). Em seguida ao
bloco B1 aparece o caractere ETB, indicando o fim desse bloco, mas o
texto continuar, depois de inserido o caractere de controle de erro BCC.
2. Como no exemplo o terminal recebeu sem erros o bloco B1, envia para A o
caractere bloco bem recebido (ACK), precedido dos caracteres de
sincronismo (SYN).
3. O terminal A envia ento o bloco B2, de modo similar ao envio de B1,
com a introduo do caractere ETX no lugar do ETB, por se tratar do
ltimo bloco. Como a transmisso ser terminada, introduzido o
caractere EOT.
4. O terminal B no recebe bem o bloco B2 e informa ao terminal A, pelo
caractere NACK, precedido dos caracteres de sincronismo (SYN). Isto
tambm significa pedido de retransmisso do bloco B2.
5. O terminal A retransmite todo o bloco B2.
6. O terminal B recebe bem e confirma.
47
Figura 7.2
Figura 7.3
48
Figura 7.4
49
Figura 7.5
6.4.1 - HDLC
51
52
1. Campo Flag: delimita o frame nas duas extremidades com um nico padro
01111110. Um simples flag pode ser usado como flag de fechamento por um
frame e como flag de abertura pelo prximo.
2. Campo de Endereo: identifica a estao secundria transmitida ou recebida
do frame. Este campo no necessitado por acessos ponto-a-ponto, mas
sempre includo a fim de uniformizar. usado apenas para distinguir
comandos e respostas.
3. Campo de dados: pode conter informaes arbitrrias. Ele pode ser
arbitrriamente longo, embora a eficincia do checksum diminua com o
aumento do comprimento do quadro devido maior probablilidade de vrios
erros em rajada. Este campo est presente somente nos I-frames e U-frames.
4. Campo sequncia de checagem (FCS): um cdigo de deteco de erro
calculado com o resto dos bits do frame, exclusivo dos flags. O checksum
uma variao menos importante do cdigo de redundncia cclica, que utiliza
CRC-CCITT como polinmio gerador.
5. Campo de controle: usado para nmeros de sequncia, confirmaes e
outras finalidades. HDLC define trs tipos de frames, com formato diferente
do campo de controle.
Frame de Informao (I-frames): leva os dados a ser transferidos pelo
usurio. Adicionalmente, fluxo de dados e controle de erro, usando o
mecanismo ARQ, pegam carona (piggypaked) em um frame de
informao.
Frame Superviso (S-frame): prove o meconismo ARQ quando
piggybacking no usado.
Frame No-numerado(U-frame): prove funes suplementares de controle
de acesso.
53
transmitidos em uma rede. A captura pode ser feita a nvel de trfego global,
mostrando tudo o que passa pela rede, ou de modo especfico, capturando pacotes de
acordo com parmetros escolhidos (tais como endereo origem, destino, trechos de
contedo). Esta capacidade do analisador permite verificar a ocorrncia de pacotes
no sincronizados, corrompidos, com erros de checksum, ou com falta de prembulo,
possibilitando ainda a monitorao das atividades dos usurios, detectando atos
ilegais, anti-ticos ou contra a poltica de uma rede.
Um analisador de protocolo pode ser utilizado para uma grande variedade de
propsitos, tais como a deteco de falhas de software e hardware, otimizao da
rede, isolamento de cabos com problemas. Muitos dos analisadores incluem funes
dos testadores de nvel fsico, mas fornecem vises muito mais detalhadas e
prolongadas das redes, podendo ficar executando as vinte e quatro horas de um dia,
detectando desta forma problemas que, mesmo sendo suspeitos, so difceis de serem
localizados sem uma superviso constante da rede. Alm disso, quando os
analisadores decodificam desde protocolos das camadas inferiores at protocolos das
camadas superiores, facilitam a localizao de problemas em camadas especficas.
Os analisadores de protocolos so muito teis para o gerenciamento de redes,
fornecendo informaes para resolver seus problemas. Graas coleta de dados de
trfego da rede, apresentam o estado de muitas variveis diferentes e as estatsticas
obtidas destas variveis. Alguns analisadores possuem um pacote de estatsticas
sofisticado, que geram grficos para anlise visual. Com estes grficos, possvel
observar diversos parmetros da rede, tais como colises, erros, quantidade de
quadros de broadcast, utilizao da rede. Em posse destes dados, facilitada ao
gerente a tarefa de identificar tendncias, levantar hipteses e efetuar modificaes
antes da ocorrncia de problemas, contribuindo em muito para a gerncia da rede.
Alguns dos problemas que podem ser percebidos com a monitorao de
software de uma rede so as sobrecargas da rede, erros de protocolos de transmisso e
erros com transmisses broadcast. A utilizao de alarmes, mensagens de erro,
estatsticas e outras informaes fornecidas pelos analisadores podem ajudar a
identificar tais problemas. As condies de alarme podem ser definidas pelo usurio,
onde alertas sero enviados em respostas a estas condies, como, por exemplo,
quando a taxa de utilizao de uma rede aumenta em dez por cento acima dos nveis
normais.
Caractersticas principais
Monitorao de Protocolos;
55
Facilidades de operao
Menu de programao e teclado funcional para passagem de parmetros de um
ambiente de teste. 32 KB de RAM no voltil armazenam informaes de
programao, dados ou resultados de ensaios realizados, permitindo assim a
realizao de testes em campo para anlise posterior.
56
Caractersticas Especiais
1. Trigger - permite programar o inicio ou o fim de um teste ou monitorao
caso seja identificado o evento de trigger programado. Permite tambm a
contagem de trigger durante a monitorao.
2. Sigilo - possibilidade de excluir da tela o campo de informaes, garantindo a
privacidade dos dados transmitidos. feita atravs de uma chave no painel
frontal.
Funes
9 Find - Realiza a procura de uma seqncia de dados programados de at 8
caracteres, permitindo que se identifique uma certa seqncia desejvel.
9 Freeze - Congela a tela durante a monitorao, permitindo a anlise detalhada
dos dados expostos na tela. No interrompe a monitorao.
9 Verify - Apresenta na tela a programao completa dos parmetros de
monitorao.
9 Print - Imprime a tela em uma impressora serial conectada ao analisador.
9 Status(modo) - Apresentao dos sinais da interface sob forma grfica em
relao aos dados capturados.
9 Stat(modo) - Apresentao estatstica e grfica dos protocolos HDLC/SDLC.
9 Al/Hex - Realiza a converso dos dados de alfanumrico para hexadecimal e
vice-versa.
57
Especificaes Tcnicas
Dimenses
Largura
Altura
Comprimento
360mm
158mm
509mm
Peso
10kgf
Temperatura
de Operao
0 a 40C
Umidade
Relativa
0 a 95%
no condensado
Alimentao
Tenso
Freqncia
Monitorao de Protocolos
Teste de Bit/Bloc Error Rate
Medidas de Tempo
Capacidade
de Teste
BERT/BLERT
110/220Vca +5%
60Hz + 5%
Protocolos
Velocidade
Padro
Contadores
Teste simultneo
Tamanho do teste
Tamanho do bloco
Medidas de
Tempo
Sinais Disponveis
Interface para
Impressora Serial
Protocolo
Velocidade
Cdigo
Paridade
Stop Bits
Controle de Fluxo
Colunas
Flay Back Buffering
Teclado
Supresso
de Dados
Pesquisa de
Dados Memria
Assncrono
50 a 19200 Bps
ASCII
Impar, Par, Marca, Espao, Nenhuma
2
XON/XOFF e por DTR
40, 80, 120
1 a 65535ms
Quert, 64 teclas
Por Programao
Por Chave Manual
Modo Status
1 a 3 caracteres programveis
campo de informao dos protocolos sncronos
Para frente e para trs, pgina por pgina, linha por
linha.
Linha por linha, caractere por caractere
40KB
32KB no voltil
7KB, em at 2 telas em reas reservadas:
Funo STO0 e STO1.
Capacidade de Memria
EPROM
RAM
Armazenamento de Dados
24 Leds
Leds Vermelhos
Leds Verdes
Condio ON ou +V
Condio OFF ou V
Display
Tipo
Elementos
TD/RD
Apresentao
Apresentao de Erros
Paridade
Frame
CRC/LRC
58
Captulo
7
Modelo
Hierrquico
Padronizao
de
Protocolos
7.1 Introduo
As Redes de Computadores - locais ou a longa distncia - surgiram para viabilizar o
compartilhamento eficiente de recursos computacionais (hardware, software e dados)
dos usurios. Em geral, esses recursos so sistemas heterogneos: equipamentos de
fabricantes diferentes tm caractersticas diferentes, utilizam e rodam softwares com
caractersticas especficas distintas para as aplicaes desejadas pelos usurios, e
manipulam e produzem dados com formatos incompatveis. Tal heterogeneidade
dificulta consideravelmente a interconexo de equipamentos de fabricantes diferentes.
A interconexo de redes, por sua vez, contribui para dificultar o problema ainda mais.
A incompatibilidade entre equipamentos e/ou redes foi inicialmente resolvida atravs
do uso de Conversores.
CONVERSOR
SISTEMA A
SISTEMA B
59
Vantagens:
60
BRASIL
MENSAGENS
QUEBEC
CAMADA 3
(ZOOTCNICO)
CAMADA 3
(ZOOTCNICO)
(PORTUGUS/FRANCS)
MENSAGENS
CAMADA2
(TRADUTOR)
CAMADA2
(TRADUTOR)
CAMDA1
(ENGENHARIA DE
COMUNICAO)
CAMADA1
(ENGENHARIA DE
COMUNICAO)
(INGLS)
MENSAGENS
(TELEGRAMA/FONE/...)
Figura 7.3: Arquitetura hierrquica com trs camadas para a comunicao entre
os zootcnicos.
61
ltima mensagem a seu engenheiro que a transmite via telegrama, telefone, rede de
computador ou por outro meio, dependendo do que os dois engenheiros acertaram de
antemo. Quando chega a mensagem em Qubec, ela traduzida para "J'aime les
lapins" e entregue ao zootcnico qubcois. O processo descrito pode ser
esquematizado como mostra a figura acima. A camada (3) corresponde aplicao
propriamente dita (no caso a conversao entre os dois zootcnicos); a camada (2)
oferece o servio de traduo de mensagens e a camada (1) oferece o servio de
transmisso de mensagens. Observe que o protocolo em cada uma das camadas
totalmente independente dos outros, desde que as "interfaces" entre as camadas no
sejam alteradas.
A arquitetura do RM-OSI foi desenvolvida a partir de trs elementos bsicos:
Os sistemas.
62
ENTIDADES (N+1)
CAMADA(N+1)
SERVIO(N)
CONEXO (N)
CEP (N)
PROTOCOLO (N)
CAMADA(N)
N)
ENTIDADE(N)
SAP(N-1)
64
Transporte
Transporte
Rede
Rede
Enlace de dados
Meios Fsicos
Enlace de dados
Meios Fsicos
65
66
TTULO (N+1)
CAMADA (N+1)
ENTIDADE (N+1)
SERVIOS (N)
ENDEREO (N)
CONEXO (N)
IDENTIFICADOR
DE
CEP (N)
CAMADA (N)
TTULO (N)
ENTIDADE (N)
Figura 7.6: Ilustrao dos termos (RM-OSI da ISO): Ttulo (N), Endereo(N) e
Identificador de CEP(N) (CEP Connection end Point).
67
A1
A2
F
ENDEREO (N)
CAMADA (N)
M2
M1
B C
ENDEREO (N+1)
A
C
M1: MAPEAMENTO HIERRQUICO
M2: MAPEAMENTO POR TABELA
7.5.2. CONEXES
Um dos servios que a camada (N) oferece camada (N+1) a transferncia
de informao entre entidades (N + 1) cooperantes. Essa transferncia se d numa
conexo (N). Como vimos, uma conexo (N) uma associao estabelecida para
comunicao entre entidades (N + 1). Cada uma das entidades (N+ 1) identificada
pelo seu endereo (N). Uma dada entidade (N) pode ter uma ou mais conexes
estabelecidas com outras entidades (N), com uma s outra entidade(N), ou ento com
ela prpria. Uma entidade (N + 1) tem acesso a uma conexo (N) atravs de um SAP
(N) (Ponto de Acesso de Servio). Uma conexo (N) poder ter dois ou mais pontos
terminais. Uma entidade (N + 1) faz referncia conexo (N) usando o identificador
CEP (N) apropriado.
Estabelecimento de uma conexo
Para que a conexo (N) seja estabelecida preciso que haja uma conexo (N1) disponvel. Se a conexo(N-1) no estiver disponvel, ser necessrio estabelec-la.
O estabelecimento de uma conexo(N implica consequentemente que estejam
estabelecidas conexes em todas as camadas inferiores.
68
Multiplexao
As conexes(N) so suportadas por conexes(N-1); uma das funes da
camada(N) faz a correspondncia das conexes (N) com as conexes (N-1). A
correspondncia pode ser de trs tipos:
1. correspondncia uma a uma na qual cada conexo(N) construda em cima de
apenas uma conexo(N-1):
2. multiplexao para cima, na qual vrias conexes (N) so multiplexadas em
apenas uma conexo (N-1);
3. multiplexao para baixo, na qual uma conexo (N) construda em cima de
vrias conexes (N-1).
O tipo(1), multiplexao para cima, a nica maneira de estabelecer vrias
conexes (N) num ambiente onde apenas existe uma conexo (N-1). O tipo (2) toma
mais econmico o uso do servio (N-1).
O tipo (3), multiplexao para baixo, indicado nos casos em que se deseje
uma melhor vazo da camada (N-1)- obtida atravs da utilizao de conexes (N-1)
mltiplas.
Transferncia de Dados
69
7.6
GERNCIA
70
71
Captulo
8
Projeto e Desenvolvimento de Protocolos
8.1. Introduo
No captulo anterior, dizamos que um protocolo um conjunto de regras que
viabilizam e ordenam a comunicao entre entidades cooperantes em sistemas
abertos, possivelmente heterogneos. Em captulos subseqentes, discutiremos
protocolos para as camadas de transporte, sesso, apresentao e aplicao do RMOSI. Em nossa discusso, freqentemente lanaremos mo da lngua portuguesa linguagem natural para os brasileiros - para apresentarmos tais protocolos. O uso
apenas da linguagem natural pode, porm, resultar em descries informais as quais
geralmente tm os atributos de serem incompletas e longas, no-consistentes, de
compreenso dbia ou de interpretaes variadas. bvio que um protocolo no pode
ser descrito informalmente sob o risco de no cobrir todas as possveis situaes. O
resultado, de qualquer forma, um protocolo que, quanto mais complexo, menos
chance ter de viabilizar coisa alguma, e muito menos a comunicao entre sistemas
heterogneos.
imprescindvel que a especificao ou descrio de um protocolo seja
concisa e precisa, totalmente ausente de ambigidades crena geral, que isto s se
verifica atravs de uma especificao formal do protocolo. No que a descrio
informal (at mesmo causal) do protocolo deixe de ter seus mritos. Como j
dissemos, talvez seja esta a maneira mais indicada para os humanos entenderem
alguns protocolos - principalmente os mais complexos, que no so incomuns no
ambiente de processamento distribudo de uma rede local. Em adio, o
desenvolvimento inicial de protocolos utilizou a descrio informal, provavelmente
como resultado da inexistncia de tcnicas formais para a especificao de protocolos
conciliadas. Entretanto, assim que os protocolos comearam a se tornar mais
sofisticados e complicados, formou-se um consenso sobre a necessidade de
especificaes atravs de tcnicas formais. Na segunda seo deste captulo,
revisaremos os principais tipos de tcnicas para especificao de protocolos.
Mesmo quando a descrio informal de um protocolo fornecida para
benefcio de compreenso de sua operao, de boa prtica fornecer tambm a sua
especificao formal, isto porque esta serve de base para a validao, verificao,
testes e implementao do protocolo.
A validao e verificao de um protocolo so atividades importantes durante
o seu projeto. Essa importncia reforada quando o protocolo est para se tornar um
produto comercial e, mais ainda, quando o protocolo sendo especificado est para ser
sugerido como um padro. Por validao de um protocolo entende-se: as atividades
para mostrar ou assegurar que a especificao e implementao do protocolo
satisfaro as necessidades da comunicao para a qual ele est sendo projetado (ex:
Os tempos de atraso na entrega das mensagens esto
72
VALIDAO
ESPECIFICAO
FORMAL
VERIFICAO
IMPLEMENTAO
AUTOMTICA
GERAO
AUTOMTICA
DE TESTES
IMPLEMENTAO
TESTES
73
74
75
76
77
78
Aguardando quadro 0.
Aguardando quadro 1.
{(EU,
79
80
a receptoras que, por sua vez, manda apenas reconhecimentos de volta para a
emissora, para sinalizar quadros de dados recebidos corretamente. O meio de
transmisso no livre de rudo e pode perder quadros ou entreg-los com erro. Um
quadro recebido com erro desprezado e equivale, portanto, a um quadro perdido. O
controle de fluxo do tipo envia-espera, isto , aps enviar um quadro de dados, a
emissora aguarda a chegada de seu reconhecimento. Se decorrido um certo intervalo
de tempo (chamado de intervalo de temporizao), o reconhecimento ainda no tiver
chegado, a emissora retransmite o quadro de dados. Aps receber o reconhecimento, a
emissora pode receber um outro quadro do nvel superior e transmiti-lo. Para manter
seqenciamento de quadros de dados e de seus respectivos reconhecimentos, os
valores 0 e 1 so utilizados. Assim, o quadro nmero 1 s enviado aps recebimento
do reconhecimento para o quadro 0, e vice-versa. Os quadros recebidos corretamente
do meio de transmisso pelas interfaces so passados para o nvel superior (chamado
usurio", no que segue). Acabamos de especificar (parcialmente) o protocolo
informalmente. A seguir apresentamos a especificao com o formalismo do modelo
MEF.
Uma Mef, quando usada para modelar um protocolo, denominada Mquina
de Protocolo.Geralmente, um protocolo divide-se logicamente em duas partes, uma
para cada entidade implementando o protocolo.Assim, existem duas mquinas que
modelam o protocolo do exemplo.Como neste exemplo, as duas entidades so
simtricas (cada uma tem comportamento idntico outra), basta especificarmos uma
nica mquina de protocolo e lembrarmos que existe uma tal mquina para cada lado.
A mquina de protocolo est sempre num determinado estado, em qualquer
instante de tempo. O estado consiste de todas as variveis da parte receptora e do
estado principal da mquina.Para a emissora, temos dois estados principais:
aguardando um quadro do usurio e aguardando um reconhecimento.Alm disso,
temos na parte emissora uma varivel binria indicando o prximo quadro a transmitir
ou aguardando reconhecimento. Temos, ento, para a parte emissora, quatro estado:
1.
2.
3.
4.
82
=
=
=
=
=
=
=
=
o quadro 0
o quadro 1
numerao 0
numerao 1
Onde a entrada E causa uma transio do estado X para o estado Y gerando uma
sada S. O diagrama de estados para o protocolo considerado fornecido na figura a
seguir:
Tomemos como exemplo o estado (EU, 0, 0): a emissora est esperando um
quadro do usurio que, quando chegar, ser enviado com numerao 0, e a parte
receptora esta aguardando um quadro de dados com numerao 0. H duas transies
partir deste estado. Associada parte emissora, a recepo de um quadro do usurio
(QU) far com que o quadro seja enviado e o temporizador ser ligado; a mquina
passa ento ao estado (ER,0,0) para esperar o reconhecimento do quadro. No estado
(EU,0,0) , a parte emissora/receptora da entidade est aguardando o quadro de dados
com numerao 0 e, quando este chegar um reconhecimento ser enviado, o quadro
recebido ser passado para o usurio e a mquina passa para o estado (EU,0,1), onde a
parte emissora no mudou, mas a parte receptora esta aguardando o quadro de dados
1.
Lembre-se agora que existe uma mquina de protocolo tal como mostrada para
cada entidade comunicante (os dois lados da conexo). Num determinado instante,
cada mquina pode estar num estado distinto, e h naturalmente uma dependncia
natural entre as duas mquinas.Por exemplo, a entrada DADO0IN numa mquina,
depende da sada DADO0OUT na outra. Porm o fato do canal perder quadros
implica que DADO0IN e DADO0OUT no tem dependncia direta. A comunicao
entre as duas mquinas se faz entre as duas MEFS adicionais, representando as duas
direes do canal. Uma direo do canal pode estar em um de dois estados vazio ou
transferindo. A MEF modelando cada direo do canal e mostrada na figura a
seguir:
84
Linguagens de Programao
medida que um protocolo se torna mais complexo, a dificuldade de
especific-lo a travs dos modelos de transio aumenta. Alguns mtodos existem
para amenizar esta dificuldade, mas a partir de um certo grau de complexidade do
protocolo, a exploso de estados torna-se to severa que a especificao atravs dos
modelos de transio torna-se invivel. A especificao formal do protocolo tem
ento que ser feita atravs de outras tcnicas; uma delas por meio do uso de
linguagens de programao.
85
SEQMAX 1
MENSMAX ...
PARA_SEMPRE for (;;)
TEMPOMAX ...
VERDADEIRO 1
FALSO 0
86
ok = VERDADEIRO;
}
break;
receptor (){
Quadro quadro;
Num_seq pqar;
pqar = 0;
PARA_SEMPRE {
if (espera_evento() == Quadro_rede) {
quadro = rec_quadro();
if (quadro.tipo = dado && quadro.seq ==pqar) {
env_usuario(quadro);
quadro.tipo = ack;
env_quadro(quadro);
pqar++;
}
}
}
Mensagem rec_usuario(){
/*bloqueia at retornar uma mensagem do usurio */
}
env_usuario(m){
/*entrega a mensagem ao usurio*/
}
Quadro rec_usuario(){
/*retorna um quadro recebido na rede*/
}
env_quadro(q){
/*transmite o quadro q*/
}
Tipo_evento espera_evento(){
/*bloqueia at ocorrer um evento e retorna seu tipo*/
}
liga_temporizador(t){
/*escalona o evento temporizador em t unidades de tempo*/
}
desliga_temporizador(){
/*cancela o pedido de temporizao*/
}
A notao diz que se P verdadeira antes que C seja executado, ento quando
C terminar, Q ser verdadeira. Dependendo da linguagem de programao escolhida,
regras especficas definem a semntica de C,P e Q, e como derivar as asseres P e Q
para cada comando C no programa-especificao do protocolo sendo verificado.
As asseres P e Q podem tambm ser usadas para verificar as propriedades de
rotinas, procedimentos e funes do programa-especificao, no somente de seus
comandos. Novamente, deve-se demonstrar que a assero de pr-condio P junto
com o cdigo da rotina, procedimento ou funo bastam para provar a ps-condio Q
da rotina, procedimento ou funo.
Para que o esforo de verificao seja eficiente, deve-se procurar decompor a
especificao do protocolo em partes, cujas verificaes sejam independentes da
87
verificao completa ou total da especificao. Isto deve ser feito tanto para
programas seqenciais grandes, como principalmente para programas paralelos, pois
nestes a complexidade aumentada pela comunicao entre procedimentos
concorrentes. O nmero de verificaes pode ser reduzido se a explorao de estados
for feita por classes de estados, em vez de ser feita para cada estado em separado.
Desta forma, a complexidade da prova pode ser consideravelmente limitada mesmo
para os protocolos mais complexos.
A prova por asseres uma tcnica que pode ser aplicada para verificar a
totalidade das propriedades de um protocolo, no apenas das propriedades gerais.
Neste sentido, ela mais abrangente que a anlise de alcanabilidade.
Lgica Temporal
A verificao das propriedades gerais de atividades e progresso de um
protocolo, por ser provada quando possvel com a prova por asseres, no fcil,
haja vista que esta tcnica se concentra na explorao do estado presente do
protocolo. A verificao de tais propriedades envolve asseres referentes
ocorrncia futura de um certo evento. Para facilitar a verificao das propriedades de
atividade e progresso, a prova por asseres foi estendida com a introduo de
operadores temporais, emprestados da lgica temporal. Dois operadores bsicos da
lgica temporal, suficientes para definir as asseres relativas s propriedades de
atividades e progressos, so os operadores (de agora em diante) e
(eventualmente). Sua definio feita em termos de seqncia de estados no
programa.
Tcnicas mistas
As tcnicas mistas so utilizadas para verificar especificaes de protocolos
feitas por mtodos mistos. Essas tcnicas surgiram com o propsito de agregar as
vantagens da anlise de alcanabilidade e da prova de asseres.
A verificao com uma tcnica mista, emprega a anlise de alcanabilidade
para determinar as propriedades gerais do protocolo, a partir da especificao feita por
uma mquina de estados. A verificao das propriedades especficas feita pela prova
de asseres dos programas que contm as variveis, rotinas e funes que
complementam a mquina de estados. Assim, o uso de uma tcnica mista propicia a
separao da verificao de um protocolo em duas partes distintas e complementares.
Essa separao faz com que as propriedades da mquina de estados sejam verificadas
independentemente e de maneira muito simples, fornecendo resultados parciais mas,
bastante teis, pois erros graves no protocolo podem ser rapidamente detectados e
corrigidos. A verificao do contexto do protocolo pode vir em seguida, com a prova
por asseres, que agora simplificada, j que a parte de controle j foi devidamente
investigada.
Implementao de protocolos
Concluda a verificao da especificao de um protocolo, a vez de
implement-lo nos vrios sistemas da rede que iro utiliz-lo em suas comunicaes.
88
Opes de implementao
As opes disponveis ao implementador so limitadas basicamente por dois
aspectos: as facilidades do sistema em que a implementao rodar e o desempenho
almejado do protocolo. Conseqentemente, uma discusso rigorosa e minuciosa do
assunto requer a capacidade de avaliar o desempenho do protocolo em funo de
opes contempladas. Do ponto de vista apenas do desempenho, a opo selecionada
seria a que oferece um melhor nvel de desempenho.
Dentre os pontos no totalmente definidos na especificao de um protocolo,
escolhemos os seguintes: valores de temporizao, estratgias de retransmisso, de
reconhecimento e de controle de fluxos, localizao de usurios e alocao de
recursos. A lista no completa nem se aplica na sua totalidade a qualquer protocolo.
Ela serve, entretanto, para introduzir o assunto e ilustrar seus aspectos principais.
Discutimos agora algumas possveis opes para definio de cada um desses pontos.
Valores de temporizao
89
90
91
IMPLEMENTAO AUTOMTICA
A partir do modelo da especificao do protocolo, a sua implementao pode
ser feita, escrevendo-se o cdigo para cada mdulo do programa-implementao. A
atividade nesta fase consiste simplesmente do esforo de programao. Idealmente, a
especificao formal do protocolo principalmente, se feita por uma linguagem de
programao deve facilitar razoavelmente a sua traduo para uma
implementao executvel. Melhor seria se pudssemos ter a produo automtica da
implementao, ou pelo menos de alguns de sus mdulos. Isto possvel.
Naturalmente que a totalidade da implementao no pode ser gerada
automaticamente. Os mdulos que dependem das escolhas do implementador para os
pontos em aberto na especificao no podem ter sua codificao automatizada. A
forma destes mdulos definida em funo das inclinaes do implementador, das
caractersticas da mquina hospedeira e de seu sistema operacional. Isto fora o
implementador a escrever manualmente o cdigo para esses mdulos. De nossas
discusses anteriores, podemos identificar os mdulos com codificao manual como
sendo o processador de interface, as rotinas de eventos de interface e os mdulos de
primitivas de servio. Em geral, tudo que depende das interfaces com a camada deve
ser implementado manualmente.
Os mdulos de processamento de transies, procedimentos, escalonador de
funes de transio e a lista de transies podem ser gerados automaticamente a
partir dos segmentos da especificao formal referentes a estes mdulos. Convm
observar que para tanto, deve-se separar cuidadosamente as escolhas a serem feitas
93
95
Captulo
9
Redes Locais, Ethernet e Internet
Definio:
Conjunto de sistemas de computao independentes, autnomos,
interconectados, para permitir a cada sistema utilizar todos os recursos dos outros
sistemas, chamando suas prprias sub-rotinas.
Como foi dada grande ateno no decorrer das aulas a interface de
comunicao serial
RS232C. Vamos iniciar nosso estudo de redes de
computadores partindo do uso desta interface em redes locais de computadores
pessoais.
Todo computador pessoal tem a disposio uma placa de comunicao serial
RS-232C que tem o objetivo de possibilitar ligao ponto a ponto e que atravs de
um circuito adaptador pode possibilitar uma rede.
O circuito adaptador para possibilitar uma rede pode ser simples como o
mostrado na figura A. Onde apresentado um diodo por porta, dois resistores de
terminao e uma fonte de 12V.
Aqui usa-se o fato de que um terminal RS-232 mantm sua linha de transmisso
em voltagem negativa quando no transmite, e ento pulsa a linha de transmisso para
voltagem positiva no incio de um caracter (bit de start).
O padro RS-232 define o nvel positivo como um 0 transmitido e o nvel
negativo como um binrio 1. Em outras palavras, o caracter comea com um 0,
seguido pelo byte do cdigo transmitido. Pelo menos um binrio 1 inserido depois
de cada byte, e ele chamado de stop bit.
O resistor de terminao fornece o nvel negativo e cada porta RS232 pode levar
a linha para o nvel positivo pelo pulso de incio de um caracter. Em termos de
bits, o resistor fornece os 1s e a porta fornece os 0s.
Os limites de velocidade e distncia surgem da combinao das limitaes do
driver de corrente e da carga da sada receptora da rede.
Limites: Distncia, velocidade e nmero de receptores.
Por exemplo: Com a figura A pode-se usar a rede em 19.200 BPS para seis
dispositivos separados de 20 ps, ou pode-se conectar trs dispositivos com duas
milhas de fio e fluir 300 BPS.
97
Valor do R1 (k Ohms)
330
160
82
39
22
10
5.1
2.2
98
TCP/IP
99
100
101
9.1.4
O que faz com que a tecnologia TCP/IP seja to notvel deve-se, em parte,
sua utilizao quase universal, e tambm dimenso e taxa de crescimento da
internet. A ARPA iniciou suas atividades voltando-se para uma tecnologia de
interligao em redes em meados da dcada de 1970, e a arquitetura e os protocolos
adquiriram sua forma atual por volta de 1977-79. Nessa ocasio, a ARPA era
conhecida como a primeira agncia a financiar a pesquisa de redes de comutao de
pacotes e como a pioneira de muitas idias sobre comutao de pacotes por meio de
sua famosa ARPANET. A ARPANET utilizava a interconexo convencional de linha
ponto a ponto pelo sistema de leasing, mas a ARPA tambm financiou a explorao
de comutadores de pacotes em redes de rdio e canais de comunicao via satlite. Na
realidade, a crescente diversidade de tecnologias de hardware de rede contribuiu para
forar a ARPA a estudar a interligao em redes e impulsionar a efetivao de uma
interligao em redes.
A disponibilidade de recursos financeiros para pesquisa, pela ARPA,
despertou a ateno e aguou a imaginao de vrios grupos de pesquisa,
especialmente daqueles cujos membros tiveram experincia anterior com a comutao
de pacotes na ARPANET. A ARPA programou reunies informais com pesquisadores
a fim de trocar idias e discutir os resultados das experincias. Por volta de 1979,
tantos eram os pesquisadores envolvidos no desenvolvimento do TCP/IP que a ARPA
constituiu um comit informal para coordenar e orientar o projeto dos protocolos e da
arquitetura da emergente internet. Denominado Internet Control and Configuration
Board (ICCB), o grupo reuniu-se regularmente at 1983 quando passou por uma
reorganizao.
A internet global teve seu incio mais ou menos em 1980, quando a ARPA
passou a adotar os novos protocolos TCP-IP nas mquinas ligadas s suas redes de
pesquisa. A ARPANET, j instalada, rapidamente tornou-se o backbone da nova
internet, e foi utilizada para muitas das primeiras experincias com TCP/IP. A
transio para a tecnologia da internet foi completada em janeiro de 1983, quando o
Office of the Secretary of Defense ordenou que todos os computadores conectados a
redes de longa distncia utilizassem o TCP/IP. Ao mesmo tempo, a Defense
Communication Agency (DCA) dividiu a ARPANET em duas redes distintas, uma
para futuras pesquisas e outra para comunicao de carter militar. A parte
relacionada pesquisa conservou o nome ARPANET; a parte militar, maior, tornouse conhecida como rede militar, MILNET.
Para incentivar os pesquisadores das universidades a adotarem e utilizarem os
novos protocolos, a RPA possibilitou uma implementao disponvel a baixo custo.
Nessa ocasio, a maioria dos departamentos de cincia da computao das
universidades executava uma verso do sistema operacional UNIX; esse sistema
disponvel na Berkley Software Distribution, da Universidade da Califrnia, era
conhecido como Berkeley UNIX ou BSD UNIX. Ao financiar a Bolt Beranek and
Newman, Inc. (BBN), para implementar seus protocolos TCP/IP para uso com o
104
105
106
A reorganizao do IAB
107
A Organizao do IAB
O Conselho
IETF
IRTF
IESG
IRSG
...
rea 1
Grupos de pesquisa
...
...
rea n
...
Grupos de trabalho
108
A Internet Society
109
110
Nmero de computadores
Nmero de administradores
100
1980
10
10
1990
103
105
101
1997
106
108
102
Figura 1.2
9.1.11.1 Resumo
Uma interligao em redes consiste em um conjunto de redes conectadas que
agem como um todo coordenado. A principal vantagem que ela proporciona uma
interconexo universal, ao mesmo tempo em que permite que grupos de indivduos
utilizem qualquer hardware de rede que melhor atenda s suas necessidades.
Examinaremos os princpios que orientam a comunicao de interligao em redes em
geral e os detalhes de uma pilha de protocolos dessa interconexo, em particular.
Tambm discutiremos como esses protocolos so utilizados em uma interconexo
desse tipo. A tecnologia que utilizaremos em nosso exemplo, denominada TCP/IP em
virtude de seus dois protocolos principais, foi desenvolvida pela ARPA Advanced
Research Projects Agency. Ela fornece a base para a internet global, uma interligao
em redes ampla e operacional que conecta universidades, organizaes e
departamentos do governo em muitos pases em todo o mundo. A internet global est
passando por uma rpida expanso.
112
114
115
116
Com a carga nas extremidades o sinal distribudo pelo barramento, sendo que
apenas o micro de destino receber a informao.
117
119
120
121
122
123
125
127
fsica, sem interferncia. Uma pessoa pode ter um programa de aplicao, por
exemplo, utilizando os protocolos da Internet, ao passo que outra utilizou um
protocolo local experimental. O sistema operacional utiliza o campo de tipo de um
quadro que chega a fim de decidir como processar o contedo. Veremos mais adiante
que os protocolos TCP/IP utilizam quadros de Ethernet auto-identificveis para fazer
a distino entre os vrios protocolos.
9.2.4.9 Como aumentar o comprimento da Ethernet com repetidores
Apesar de um cabo da Ethernet possui um comprimento mximo, a rede pode
ser aumentada de duas maneiras: com o auxlio de repetidores e de pontes. Um
dispositivo de hardware chamado repetidor pode ser utilizado para transmitir sinais
eltricos de um cabo a outro. Entretanto, no mximo dois repetidores podem ser
colocados entre duas mquinas, de modo que o comprimento total de uma nica
Ethernet continua muito pequeno (trs segmentos de 500 metros cada). A Figura 2.9
ilustra um uso tpico de repetidores no edifcio de uma empresa. Um nico cabo
percorre verticalmente o edifcio, e um repetidor une o backbone a um cabo adicional
em cada um dos andares. Os computadores conectam-se aos cabos em cada andar.
128
O importante que:
As pontes concentram os detalhes da interconexo: um conjunto de segmentos
em ponte age como uma simples Ethernet.
Um computador utiliza exatamente o mesmo hardware para se comunicar com
outro computador atravs da ponte e no segmento local.
A maioria das pontes faz muito mais do que duplicar quadros de um fio a
outro: tomam decises importantes, como a escolha de quais quadros passar adiante.
Tais pontes so chamadas de adaptadoras ou de aprendizagem. Uma ponte adaptadora
possui um computador com duas interfaces de Ethernet. O software em uma ponte
adaptadora possui duas listas de endereos, uma para cada interface. Quando um
quadro chega de uma Ethernet E1, a ponte adaptadora inclui o endereo de origem da
Ethernet de 48 bits lista associada com E1 . Do mesmo modo, quando um quadro
chega de uma Ethernet E2 a ponte inclui o endereo de origem lista associada com
E2. Assim, com o passar do tempo, a ponte adaptadora saber que equipamentos
encontram-se na E1 e na E2.
Aps gravar o endereo de origem de um quadro, a ponte adaptadora utiliza o
endereo de destino para decidir se passa adiante, ou no, o prximo quadro. Caso a
lista de endereos indique que o destino encontra-se na Ethernet da qual o quadro se
originou, a ponte no dar continuidade ao quadro. Se o destino no se encontrar na
lista de endereos (ou seja, o destino um endereo de difuso, ou um endereo de
multicast, ou a ponte ainda no encontrou a instalao do destinatrio), a ponte
passar o quadro adiante, a outra Ethernet.
As vantagens das pontes adaptadoras devem estar bvias. J que a ponte utiliza
os endereos encontrados no trfego normal, ela completamente automtica no
necessrio configurar a ponte com endereos especficos. J que no passa adiante o
trfego desnecessrio, uma ponte ajuda a aumentar a eficincia de uma rede
congestionada, isolando o trfego em segmentos especficos. As pontes operam
excepcionalmente bem se uma rede puder ser dividida fisicamente em dois segmentos
que contenham um conjunto de computadores com comunicaes freqentes (p. ex.,
cada segmento contm um conjunto de estaes de trabalho juntamente com um
servidor). Ou seja:
Uma ponte Ethernet adaptadora conecta dois segmentos de Ethernet,
passando quadros de uma para outro. Atravs dos endereos de origem,
identifica os equipamentos que se encontram nos segmentos da Ethernet e
agrupa informaes adquiridas pelos endereos de destino para no realizar
uma transmisso desnecessria.
De acordo com a viso do TCP/IP, as Ethernets ligadas por pontes so
simplesmente uma outra forma de conexo fsica de rede. O importante que:
Em virtude de a conexo entre cabos fsicos, fornecida pelas pontes e pelos
repetidores, ser transparente para os equipamentos conectados Ethernet,
129
130
131
132
133
134
Captulo
10
Camada de Rede
A camada de rede se ocupa de levar pacotes desde a origem por todo o caminho
at o destino. Chegar ao destino pode exigir muitos saltos em ns intermedirios ao
longo do percurso. Essa funo contrasta nitidamente com a da camada de enlace de
dados, que tem o objetivo mais modesto de simplesmente mover quadros de uma
extremidade para outra de um fio. Portanto, a camada de rede a camada mais baixa
que lida com transmisso fim a fim.
Para alcanar seus objetivos, a camada de rede deve conhecer a topologia da subrede de comunicaes e escolher caminhos apropriados atravs dela. Tambm deve
cuidar de escolher rotas que evitem a sobrecarga de algumas linhas de comunicao
enquanto outras ficam ociosas. Finalmente, quando a origem e o destino esto em
redes diferentes, tarefa da camada de rede lidar com essas diferenas e solucionar os
problemas que resultam do fato.
136
Tema
Endereo de destino
Seqncia de pacotes
Controle de erros
Controle de fluxo
Baseados em conexo
Necessrio apenas durante
a configurao
Garantido
Feito pela camada de rede
(p. ex, sub-rede).
Fornecido pela camada de
rede
Sem conexo
Necessrio em cada pacote
No garantido
Feito pela camada de
transporte (p. ex, hosts).
No fornecido pela camada
de rede
137
No
No
Figura 10-1 Resumo das principais diferenas entre o servio baseado em conexes e o
servio sem conexes
138
Figura 10-2 Misturas de servios baseados em conexes e servios sem conexes no modelo
OSI
139
Figura 10-3 (A) Antes de estabelecer uma conexo (B) Depois de estabelecer uma conexo
(C) Depois que dois pacotes so enviados, mas ainda no recebidos.
140
conexo falha. Os valores que podem ser especificados incluem throughput, retardo,
taxa de erros, sigilo e custo, entre outros.
N-CONNECT.pedido
(chamado,
chamador,
confs_procuradas,
gds,
dados_do_usurio).
N-CONNECT.indicao
(chamado,
chamador,
confs_procuradas,
gds,
dados_do_usurio).
N-CONNECT.resposta (respondedor, confs_procuradas, gds, dados_do_usurio).
N-CONNECT.confirmao (respondedor, confs_procuradas, gds, dados_do_usurio).
N-DISCONNECT.pedido
(originador,
motivo,
dados_do_usurio,
endereo_de_resposta).
N-DISCONNECT.indicao
(originador,
motivo,
dados_do_usurio,
endereo_de_resposta).
N-DATA.pedido (dados_do_usurio)
N-DATA.indicao (dados_do_usurio)
N-DATA.ACKNOWLEDGE.pedido ()
N-DATA.ACKNOWLEDGE.indicao ()
N-EXPEDITED-DATA.pedido (dados_do_usurio)
N-EXPEDITED-DATA.indicao (dados_do_usurio)
N-RESET.pedido (originador, motivo).
N-RESET.indicao (originador, motivo).
N-RESET.resposta ()
N-RESET.confirmao ()
(a)
N-UNITDATA.pedido
(endereo_de_origem,
endereo_de_destino,
dados_do_usurio).
N-UNITDATA.indicao
(endereo_de_origem,
endereo_de_destino,
dados_do_usurio).
N-FACILITY.pedido (qds)
N-FACILITY.indicao (endereo_de_destino, qds, motivo).
N-REPORT.indicao (endereo_de_destino, qds, motivo).
qds,
qds,
(b)
Figura 10-4 (a) Primitivas de servio da rede baseada em conexes OSI (b) Primitivas de
servio da rede sem conexes OSI
141
142
143
144
Todos os IMPs devem manter uma tabela com uma entrada para cada circuito virtual
aberto. Evidentemente, os circuitos virtuais que no passam atravs do IMP X no tm
entradas na tabela de X. Cada pacote que viaja atravs da sub-rede deve conter em seu
cabealho um campo de nmero de circuito virtual, alm dos nmeros de seqncia, somas
de verificao e outros. Quando um pacote chega a um IMP, o IMP sabe sobre qual linha
ele chegou e qual o nmero do circuito virtual. Baseado apenas nessas informaes, o
pacote tem de ser direcionado para o IMP correto.
Quando uma conexo de rede definida, um nmero de circuito virtual que ainda
no esteja em uso nessa mquina escolhido como identificador da conexo. Como cada
mquina escolhe independentemente os nmeros de circuitos virtuais, o mesmo nmero de
circuito virtual tem probabilidade de estar em uso em dois diferentes caminhos atravs de
algum IMP intermedirio levando a ambigidades.
Considere a sub-rede da Figura 5-6(a). Suponha que um processo no host de A
deseja se comunicar com um processo no host de D. A escolhe o circuito virtual 0.
Vamos imaginar que seja escolhida a rota ABCD. Simultaneamente, um processo em
B decide que deseja se comunicar com um processo em D (no o mesmo que o
processo de A escolheu). Se no houver nenhum circuito virtual aberto comeando em
B nesse ponto, o host B tambm escolher o circuito virtual 0. Suponha ainda que a
rota BCD seja selecionada como a melhor. Depois que ambos os circuitos virtuais
foram definidos, o processo em A envia sua primeira mensagem para D, no circuito
virtual 0. Quando o pacote chega a D, o host no sabe qual processo do usurio lhe
deu o pacote.
145
Figura 10-6 (a) Sub-rede de exemplo (b) Oito circuitos virtuais atravs da sub-rede
(c) Tabelas do IMP para os circuitos virtuais em (b) (d) As mudanas no circuito
virtual como uma progresso de pacote
Para solucionar esse problema, sempre que deseja criar um novo circuito virtual de
sada, o host escolhe o nmero de circuito mais baixo que no esteja em uso no momento.
O IMP (digamos X) no dirige esse pacote definido para o IMP seguinte (digamos Y) ao
longo da rota em que est. Em vez disso, X verifica em sua tabela todos os nmeros de
circuitos que esto sendo usados atualmente para o trfego que chega a Y. Depois, escolhe
o numero livre mais baixo e substitui o nmero que est no pacote por esse nmero,
sobrescrevendo o nmero escolhido pelo host. De modo semelhante, o IMP Y escolhe o
nmero de circuito mais baixo que esteja livre entre ele e o IMP seguinte.
Quando esse pacote de configurao chega finalmente ao destino, o IMP de l
escolhe o nmero de circuito de entrada mais baixo disponvel, sobrescreve o nmero de
circuito encontrado no pacote e passa o pacote para o host. Dessa forma, o host de destino
sempre v o mesmo nmero de circuito em todo o trfego que chega por um determinado
circuito virtual, no importando se o host de origem est usando coerentemente um nmero
diferente.
146
147
Sub-rede de datagrama
No possvel
Cada pacote contm os
endereos completos de
origem e destino
Obrigatrio
Cada pacote contm um
nmero certo do circuito
virtual
148
Informaes sobre o
estado
Roteamento
A sub-rede no contm
informaes sobre o
estado
Cada pacote roteado de
forma independente
Efeito de falhas em ns
Controle de
congestionamento
Difcil
Na cadama de transporte
Servios baseados em
conexes e servio sem
conexes
Figura 10-7 Comparao entre as sub-redes de datagramas e de circuito virtual. Note
a semelhana com os servios sem conexes da Figura 5-1.
Complexidade
Adequado a
10.1.3 Roteamento
A funo real da camada de rede rotear pacotes desde a mquina de origem
at a mquina de destino. Na maioria das sub-redes, os pacotes iro exigir muitos
saltos para realizar a viagem. A nica exceo notvel o caso das redes de difuso,
mas mesmo aqui o roteamento tem importncia, se a origem e o destino no esto na
mesma rede. Os algoritmos que selecionam as rotas e as estruturas de dados que
utilizam so uma rea importante do projeto da camada de rede. Nesta seo iremos
descrever exatamente o problema. Mais adiante neste captulo, examinaremos em
detalhes muitos dos algoritmos que forem propostos.
O algoritmo de roteamento parte do software da camada de rede responsvel
por decidir sobre que linha de sada um pacote que chega deve ser transmitido. Se a
sub-rede usa internamente datagramas, essa deciso deve ser tomada novamente para
cada pacote de dados que chega. Entretanto, se a sub-rede utiliza internamente
circuitos virtuais, as decises sobre o roteamento so feitas somente quando um
novo circuito virtual est sendo definido. Depois disso, os pacotes de dados seguem
exatamente a rota que foi estabelecida previamente. O ltimo caso chamado s
vezes de roteamento de sesso, porque uma rota permanece em vigor para uma
sesso inteira (por exemplo, uma sesso de registro em um terminal ou uma
transferncia de arquivo).
Independente do fato de as rotas serem escolhidas separadamente para cada
pacote ou apenas quando novas conexes so estabelecidas, h certas propriedades
que so desejveis em um algoritmo de roteamento: correo, simplicidade,
resistncia, estabilidade, equanimidade e favorabilidade. A correo e a
simplicidade dificilmente precisam de comentrios, mas a necessidade de resistncia
pode ser menos bvia a princpio. Uma vez que uma rede importante entra no ar, ela
pode ter a perspectiva de funcionar continuamente durante anos sem falhas totais do
149
150
10.1.4 Congestionamento
Quando esto presentes pacotes em excesso em uma (parte de) sub-rede, o
desempenho se degrada. Essa situao chamada de congestionamento. A Figura 5-9
retrata o sintoma. Quando o nmero de pacotes descarregados na sub-rede pelos hosts
est dentro da sua capacidade de transporte, todos so entregues (com exceo de uns
poucos que so afetados por erros de transmisso), e o nmero entregue
proporcional ao nmero enviado. Entretanto, conforme o trfego aumenta muito, os
IMPs no so mais capazes de cuidar dele, e comeam a perder pacotes. Isso tende a
tornar as coisas piores. No caso de trfego muito intenso, o desempenho entra em
colapso total e praticamente nenhum pacote entregue.
151
liberado. Dessa maneira, o congestionamento se propaga, como carros aproximandose de um posto de pedgio.
Definitivamente, vale a pena destacar explicitamente a diferena entre o
controle do congestionamento e o controle de fluxo, o que os autores de muitos livros
e trabalhos sobre o assunto no parecem compreender.
O controle do congestionamento tem relao com garantir que a sub-rede seja
capaz de transportar o trfego oferecido. um tema global, envolvendo o
comportamento de todos os hosts, todos os IMPS, o processamento de
armazenamento e expedio dentro dos IMPS, e todos os outros fatores que tendem a
diminuir a capacidade de transporte da sub-rede.
Em contraste, o controle de fluxo se relaciona com o trfego ponto a ponto
entre um determinado transmissor e um determinado receptor. Seu servio garantir
que um transmissor rpido no possa transmitir continuamente dados mais
rapidamente do que o receptor possa absorv-los. O controle de fluxo quase sempre
envolve algum feedback do receptor para o transmissor, a fim de informar ao
transmissor como as coisas esto indo outra extremidade.
Para ver a diferena entre esses dois concertos, considere uma rede de fibra tica com
uma capacidade de 1000 Gbps, sobre a qual um supercomputador estava tentando
transferir um arquivo para um microcomputador a 100 Mbps. Embora no existisse na
verdade qualquer congestionamento (a rede propriamente dita no est com
problemas), o controle de fluxo seria necessrio, a fim de forar o supercomputador a
parar freqentemente, para dar ao microcomputador uma chance de se recuperar do
atraso.
No outro extremo, considere uma rede "armazena e transmite" com linhas de 1
Mbps e 1000 grandes minicomputadores, metade deles tentando transferir arquivos
taxa de 100 Kbps para a outra metade. Aqui o problema no seria o de transmissores
rpidos sobrecarregando recipientes lentos, mas simplesmente que o trfego total
oferecido poderia exceder facilmente aquele que a cede poderia manipular.
Mais adiante neste captulo, examinaremos em detalhes o controle do
congestionamento e discutiremos diversos algoritmos para lidar com ele. Deve ficar
claro que o controle de congestionamento e o roteamento esto intimamente
relacionados, com decises pobres sobre roteamento, sendo uma causa importante de
congestionamento.
153
155
156
157
158
Linhas de
sada
Linhas de
entrada
(a)
Buffers
livres
(b)
159
estiver bem ajustado, o sistema-ainda ser retransmitido antes que a fila se esvazie, e
assim a sua rejeio inicial nem mesmo ser notada.
Irland estudou diversos algoritmos diferentes para determinar o comprimento
Mximo da 61a, m, para um IMP com k buffers (os buffers dedicados de modo
permanente a entrada no contam). O caso sem controle m = k. Se existirem s linhas
de sada, o caso m = k/ s significa efetivamente que cad& buffer est dedicado a uma
determinada linha de sada. Nenhuma linha pode tomar emprestado nem mesmo um
buffer de uma linha ociosa. Intuitivamente isso no eficiente, e o estudo admite essa
sada.
O valor timo de m vem a ser uma funo complicada do trfego mdio.
Embora o IMP pudesse tentar medir seu trfego e ajustar continuamente m, se o
trfego viesse em rajadas, essa probabilidade no funcionaria bem. Entretanto, Irland
descobriu um mtodo experimental simples que geralmente d um desempenho bom,
embora no timo: m=k/s. Por exemplo, para sete buffers em pool e trs linhas,
m=7/3, e assim 4 buffers seriam alocados.
Uma idia afim, devida a Kamoun (1976), evita diretamente que qualquer
linha ou linhas fiquem com fome: um nmero mnimo de buffers dedicado a cada
linha. Se no existir nenhum trfego, os buffers vazios so reservados. O mtodo de
Irland pode ser combinado com o de Kamoun para se ter um nmero mnimo e um
mximo de buffers para cada linha. A ARPANET utiliza esse mtodo.
Embora seja fcil, o descarte de pacotes tem algumas desvantagens. A
principal, a banda passante extra necessria para as duplicatas. Se, a probabilidade
de um pacote ser descartado p, o nmero esperado de transmisses antes que ele seja
aceito 1 /(1- p). Um tempo relacionado com esse a durao que poderia ter o
intervalo de temporizao. Se for muito curto, as duplicatas sero geradas quando no
forem necessrias, tornando pior o congestionamento. Se for longo demais, o tempo
de retardo ir aumentar.
Uma forma de minimizar a quantidade de banda passante desperdiada na
retransmisso de pacotes descartados descartar sistematicamente pacotes que ainda
no tenham viajado para longe e, portanto no representem um grande investimento
em recursos. O caso limite dessa estratgia o descarte de pacotes recm-chegados de
hosts em detrimento do descarte do trfego em trnsito. Por exemplo, os IMPs
poderiam recusar ou descartar novos pacotes de hosts associados sempre que o
nmero de buffers ocupados por novos pacotes (ou pelo total de pacotes) exceder
algum limite.
160
161
u _ novo = u _ velho + (1 a ) f
onde a constante a determina a velocidade com que o IMP esquece seu histrico
recente.
Sempre que u se desloca acima do limiar, a linha de sada entra em estado de
"ateno". Cada pacote recm-chegado verificado para se saber se a sua Iinha de
sada est em estado de ateno. Se estiver, o IMP envia um pacote limitador de volta
ao host de origem, dando-lhe o destino encontrado no pacote. O prprio pacote
marcado (um bit de cabealho ativado) de forma que no venha a gerar mais tarde
qualquer outro pacote limitador, e encaminhado da forma usual.
Quando recebe o pacote limitador, o host de origem obrigado a reduzir o
trfego enviado ao destino especificado em X%. Como outros pacotes visando o
mesmo destino j esto provavelmente a caminho e iro gerar ainda mais pacoteslimitadores, o host deve ignorar os pacotes limitadores que foram referentes a esse
destino por um intervalo de tempo fixado. Depois que esse perodo tiver expirado, o
host fica escuta de mais pacotes limitadores durante um outro intervalo. Se chegar
algum, a linha ainda est congestionada, e assim o host reduz ainda mais o fluxo e
comea novamente a ignorar os pacotes limitadores. Se nenhum pacote limitador
chegar durante o perodo de escuta, o host pode aumentar de novo o fluxo. O feedback
implcito nesse protocolo deve evitar o congestionamento, ainda que no controle
qualquer fluxo, a menos que ocorram problemas.
Foram propostas algumas variaes sobre esse algoritmo de controle de
congestionamento. Para uma deles, os IMPs poderiam manter dois nveis crticos.
Acima do primeiro nvel, os pacotes limitadores so enviados de volta. Acima do
segundo, o trfego que chega simplesmente descartado, seguindo a teoria de que o
host provvelmente j foi avisado. Sem tabelas extensivas, difcil para o IMP saber
quais hosts foram avisados recentemente sobre quais destinos, e deles no o foram.
162
163
Captulo
11
Camada de Rede na Internet
ARP Refinamentos (otimizaes)
Utilizao de um cache local com timeout, para o caso de precisar
contactar a mesma mquina. Da prxima vez, ela encontrar o
mapeamento em seu prprio cache, eliminando a necessidade de uma
segunda transmisso;
Ao receber o pacote ARP o receptor atualiza sua cache local com o
endereo IP do transmissor, caso o receptor no possua uma entrada
em sua tabela local, ser ento includa uma;
Quando uma nova mquina aparece na rede, podemos atualizar seu
mapeamento a todas as mquinas executando um ARP via Broadcast;
Quando as mquinas receberem um ARP via broadcast, atualizaro suas
tabelas ARP locais.
164
Problemas:
Quando h perda ou corrompimento de uma requisio:
O software RARP deve prover solues.
Quando o servidor RARP est desligado ou com problemas:
A estao confia no servidor RARP, desta forma, novas tentativas
sero enviadas. (Servidor Secundrio).
Os roteadores no encaminham broadcast fsico:
Colocar um servidor ARP em cada rede ou utilizar o protocolo
BOOTP.
11.2.1 Roteadores
Um roteador pode determinar a melhor rota entre duas ou mais redes. Trabalha
na camada de REDE do modelo OSI, portanto, em se tratando do protocolo TCP/IP,
utiliza o IP para fazer o roteamento entre redes. Quando um roteador encontra um
datagrama com um protocolo que no aceita, o datagrama abandonado.
Roteadores conectam redes com topologias diferentes e possuem capacidade
de filtragem. Um campo dentro do protocolo IP define que tipo de protocolo esta
sendo carregado no datagrama.
165
11.2.2 Gateway
Um gateway um dispositivo que efetua a traduo entre dois protocolos
diferentes, e s vezes duas topologias diferentes. Pro exemplo, preciso um gateway
para traduzir do TCP/IP para SNA (IBM).
166
Figura 13.1
167
Captulo
12
Camada de Transporte
Os programas da camada de transporte rodam somente nos hosts e no nos
IMPs, em contraste com as trs camadas inferiores que esto presentes em ambos.
PRIMITIVAS DE SERVIO
Sero ilustrados os servios tpicos da camada de transporte examinando as
primitivas de servio da proposta de padronizao do protocolo de
transporte feita pela ISO em Janeiro de 1984.
As interaes entre entidades implementadas nas vrias Ets so realizadas
atravs da troca de Unidades de Dados do Protocolo de Transporte
(TPDUs) As vrias TPDUs utilizadas recebem nomes relacionados aos
que prestam, exemplos:
168
CR-TPDU
CC-TPDU
DR-TPDU
DC-TPDU
DT-TPDU
ED-TPDU
AK-TPDU
EA-TPDU
RJ-TPDU
ER-TPDU
LI
Crdito
CDT
Identificador de TSAP
TSAP-ID
Referncia de Destino
DST-REF
SRC-REF
Nmero de DT TPDU
TPDU-NR
Nmero de ED TPDU
ED-TPDU-NR
YR-TU-NR
YR-EDTU-NR
169
170
171
Captulo
13
Camada de Transporte na Internet
Camada de Transporte
O objetivo da camada de transporte propiciar o transporte de dados entre os
processos de usurios que rodam em sistemas interconectados.
Os programas da camada de transporte rodam somente nos hosts e no nos
equipamentos utilizados para interconexo de redes, como hubs, pontes e roteadores,
pois a camada de transporte encontra-se acima das trs camadas de interconexo de
redes, especificamente acima da camada de rede.
O transporte de dados deve ser confivel e eficiente. A camada responsvel
pela qualidade dos servios de rede, a fim de atender s necessidades e requisitos da
camada acima, sesso (OSI) ou aplicao (INTERNET), dependendo da arquitetura
usada. Para tal a camada de transporte deve apresentar as seguintes funes:
Estabelecimento de conexo
Endereamento
Sequencializao
Recuperao de erros e falhas
Multiplexao
Controle de fluxo
Gerncia de buffer
Sincronizao
172
173
174
Tipos de TPDUs
175
Figura 13.3
O campo indicador de tamanho LI est contido no primeiro octeto (8 bits) de
todas as TPDU. Ele um nmero binrio e seu valor mximo 254 (11111110). LI
corresponde ao tamanho do cabealho, excluindo a ele mesmo.
A parte fixa do cabealho contm parmetros de uso freqente. O primeiro
parmetro da parte fixa o cdigo da TPDU, e a partir dele que so definidos o
tamanho e a estrutura da TPDU. Em certos casos, a classe do protocolo e o formato
(normal ou estendido) tambm influenciam no tamanho e na estrutura da TPDU.
Em contradio parte fixa, a parte varivel do cabealho contm os
parmetros menos freqentemente usados. A parte varivel, se existir, deve conter um
ou mais parmetros. Seu tamanho definido pelo LI menos o tamanho da parte fixa.
O campo indicao do tamanho do parmetro contm, em octetos, o tamanho
do campo valor do parmetro. Por fim o campo de dados, contendo os dados do
usurio - que so tratados de forma transparente pelo protocolo de transporte. Pode-se
representar a estrutura de cada TPDU da seguinte forma:
Campos da TPDU:
Tabela 13.1
LI
TDU
CDT
TSAP-ID
YR-TU-NR
AKTIME
DST-REF
SRC-REF
indicador de tamanho
unidade de dados do protocolo de transporte
crdito
ponto de acesso do servio de transporte
nmero da seqncia
tempo de acknowledgement
destino
fonte
176
177
178
Captulo
14
Camada de Sesso
As camadas de sesso, apresentao e aplicaes formam o conjunto das
camadas superiores do Modelo de Referncia OSI. Em contraste com as quatro
camadas inferiores, que visam suprir a comunicao confivel fim a fim, as camadas
superiores esto relacionadas com o fornecimento de servios voltadas ao usurio.
Elas usam canais principais, livres de erros, proporcionados pela camada de
transporte, e acrescentam recursos adicionais teis para uma ampla variedade de
aplicaes, de forma que as pessoas que escrevem essas aplicaes no tenham de
reimplementar repetidamente esses recursos, inmeras vezes, como parte de cada
programa diferente.
A camada de sesso basicamente uma inveno da ISO. Antes do Modelo
OSI, nenhuma rede existente possua uma camada de sesso (embora alguns servios
de sesso da OSI estejam presentes na SNA, ainda que espalhados por diversas
camadas). Durante o desenvolvimento do OSI, houve considervel polemica sobre a
necessidade de uma camada de sesso. Por exemplo, a proposta britnica ISO tinha
apenas cinco camadas e no inclua a camada de sesso.
Muito embora a grande maioria do comit da ISO decidisse posteriormente
incluir uma camada de sesso, fica evidente que a partir da brevidade deste capitulo
que a camada de sesso uma camada magra, com relativamente poucos recursos,
em relao s camadas mais baixas. Alm disso, quando se estabelece uma conexo
com a camada de sesso podem ser selecionadas opes que desativam maior parte
dos recursos disponveis.Ela no to importante quanto, digamos, a camada de
transporte, e muitas aplicaes nem se quer necessitam dos poucos recursos que ela
possa ter. Apesar de tudo, ela parte do Modelo de Referncia do OSI; assim,
passamos ao estudo dos servios que a camada de sesso oferece e do modo como
eles funcionam.
179
180
181
182
14.1.4 SINCRONIZAO
183
184
185
depois que cada transferencia de arquivo se completa, pode ser utilizada a primitiva S
ATIVIDADE FIM para denotar o final do arquivo.
importante enfatizar aqui do que constitui uma atividade feita pelos
usurios, e no pela camada de sesso. Tudo que a camada de sesso faz assegurar
que, quando umas solicitaes da S ATIVIDADE [e feita por um usurio, o outro
usurio receba indicao correspondente. No de interesse da camada de sesso
quando tais solicitaes so feitas e como o receptor reage s indicaes. A camada de
sesso se interessa apenas pela execuo das primitivas, e no pelo seu significado
(semntica) ou sua utilizao. Vale a pena notar que uma atividade abrange todo o
trafego enviado em ambos os sentidos].
Como um segundo exemplo da maneira pela qual o gerenciamento da
atividade pode ser utilizado, considere um sistema de banco em casa no qual as
pessoas podem fazer pagamentos de contas usando seus computadores pessoais para
transferir dinheiro de suas contas para as das companhias que emitem as contas. O
programa em execuo no computador pessoal poderia comear pedindo o nmero da
conta a ser
debitada e enviando essa informao como primeira mensagem. Depois, ele
poderia pedir sucessivamente o nmero da conta a receber o credito enviar esses itens
como as mensagens dois e trs.
Quando a primeira mensagem chega ao computador do banco, o registro em
disco que contm a conta a ser debitada localizado e bloqueado a enviar qualquer
acesso concorrente. Quando chega a segunda mensagem, o registro da conta a ser
creditada tambm bloqueado. Ao chegar a terceira mensagem, o dinheiro
transferido e as duas contas so desbloqueadas.
Imagine o que aconteceria se acontecesse uma falha de energia eltrica que
deixasse a casa do usurio no escuro exatamente depois que a primeira mensagem foi
enviada, recebida no banco e processada.a transao nuca se completaria e a conta
ficaria para sempre bloqueada. Para evitar situaes como essa, a transao bancaria
poderia ser estruturada como uma atividade da camada de sesso.depois de receber a
S-ATIVIDADE-INCIO.indicao,o computador do banco poderia simplesmente
acumular
as
mensagens
que
chegassem
ate
a
S-ATIVIDADEFIM.indicao.assinalasse que no haveria mais nenhuma. S ento, comearia o
processamento e o bloqueio. Dessa forma, nenhuma falha externa poderia fazer o
computador do banco se perder no meio de uma transao.
A tcnica de juntar mensagens em um buffer de entrada ate que todas elas
tenham chegado antes de iniciar o processamento de qualquer uma delas
denominado isolamento. Nos primeiros esboos da camada de sesso. Mais tarde,
contudo, o comit da ISO concluiu que o isolamento poderia ser realizado igualmente
bem pelo uso do gerenciamento de atividade, e assim o servio de isolamento no foi
includo no padro publicado.
No terceiro e ltimo exemplo de gerenciamento de atividade faz uso de uma
propriedade que ainda no mencionamos: as atividades podem ser interrompidas (ou
seja, suspensas) e mais tarde reiniciadas sem perdas de informaes. Considere o caso
de algum que comeou a transferir um arquivo muito longo de seu computador do
trabalho para o computador pessoal de sua casa. Em meio a transferncia, ele precisa
fazer uma chamada telefnica urgente e precisa examinar o numero de telefone no
catalogo telefnico on-line do escritrio, de preferncia sem arruinar a transferncia
do arquivo.
Existe uma soluo para esse problema. A transferncia do arquivo iniciada
como uma atividade. Em certo momento do processo, possvel emitir um S-
186
187
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
(a)
S-UNIDADES DE DADOS
188
Estabelecimento de conexes.
Liberao de conexes.
Transferncia de dados.
Gerenciamento de fichas.
Sincronizao.
Gerenciamento de atividades.
Relatrio de excees.
1. Estabelecimento de Conexes.
Contm seis primitivas da forma S-CONEXO.xxx: S-CONEXO.pedido
especifica um identificador de sesso, os endereos de PASS (chamador e chamado),
a qualidade de servio, o nmero do ponto de sincronizao inicial, atribuio inicial
das fichas, alguns dados do usurio (opcionais) e possivelmente opes diversas.
As opes so fornecidas porque nem todas as sesses exigem todos os
servios que esto potencialmente disponveis a sincronizao, o gerenciamento de
atividades, o relatrio de excees e certos tipos de transferncias de dados, a serem
discutidos em seguida, podem ser ativados ou desativados individualmente para cada
sesso, dependendo das necessidades dos usurios.
2. Liberao de conexes.
Existem cinco primitivas relacionadas com a liberao de sesses. SLIBERAO.pedido usada para solicitar o trmino disciplinado de uma sesso.
Uma alternativa a essa liberao comum uma liberao negociada, que utiliza uma
ficha de liberao. Quando essa opo tiver sido selecionada no momento do
estabelecimento da sesso, somente o usurio de posse dessa ficha pode iniciar uma
liberao. Esse recurso algumas vezes til quando as duas extremidades de uma
sesso so iguais, exibindo um relacionamento mestre-escravo.
Tambm so fornecidas duas formas de liberao abrupta, uma iniciada pelo
usurio e outra pelo fornecedor. A ultima somente ocorre se for detectado um erro
fatal pela entidade de sesso.
3. Transferncia de dados.
Conforme mencionamos rapidamente antes, existem quatro fluxos de dados
independentes. So eles:
1.Dados regulares
2.Dados expedidos
3.Dados tipificados
189
4.Dados de capacidade
Os dois primeiros tipos j foram bastante discutidos, e assim vamos examinar
os outros dois. Os dados tipificados so como dados regulares, exceto pelo fato de que
sempre podem ser enviados, no importa quem seja o proprietrio das fichas. Em
contraste com a chegada de dados comuns, assinalada por uma primitiva SDADOS.indicao, de modo que receptor pode inform-las em deparado. Os dados
tipificados podem ser utilizados pelo usurio do servio de sesso para mensagens de
controle ou qualquer outra finalidade.
Os padres da camada de sesso no especificam como os dados tipificados
devem ser usados. Entretanto, a inteno do comit da ISO foi proporcionar um fluxo
de dados fora de faixa para informaes de controle das camadas mais altas, a
manuteno de dados e o gerenciamento do sistema. Por esse motivo, os dados
tipificados podem ser enviados a qualquer tempo, sem se importar com fichas. J
examinamos antes este conceito de canal especial para informaes de controle. No
protocolo X.25, existe um bit Q no cabealho para indicar dados qualificados
tipificados pudessem ser enviados usando o bit Q. infelizmente, o servio da camada
de transporte no tem nenhum conceito de dados tipificados. Assim, no existe meio
para a entidade de sesso informar camada de transporte que uma mensagem contm
dados tipificados.
O quarto fluxo de dados, que chamado de dados de capacidade, tambm foi
elaborado para fins de controle, mas para controle da prpria camada de sesso. Sua
funo real permitir que as opes e parmetros da sesso sejam modificados
enquanto ela esteja em andamento (embora em teoria possam ser usados para
qualquer finalidade com a qual concordem os usurios da sesso). Ao contrrio dos
dados tipificados, os dados de capacidade so completamente reconhecidos. Alm
disso, para evitar confuso, os dados de capacidade s podem ser transmitidos fora
das atividades(i.e., entre elas), e somente quando h posse das fichas de dados, de
sincronizao e de atividade.
4 .Gerenciamento de fichas
A camada de sesso tm quatro fichas, como mostra a figura 7-11. A primitiva
S-ENTREGAR-FICHA.pedido pode ser usada para passar uma ou mais fichas
entidade parceira. Os parmetros especificam quais fichas devem ser entregues. A
primitiva S-PEDIR-FICHA.pedido pode ser usada para anunciar que o usurio que
emite a primitiva quer a fichas especificadas. Finalmente, usa-se a primitiva SENTREGAR-CONTROLE.pedido para resgatar todas as fichas de uma s vez. Essa
primitiva s pode ser usada fora das atividades; logicamente, no necessria, mas foi
includa a pedido do CCITT para compatibilidade com seu protocolo de teletexto, que
funciona em termos de controle e no em termos de fichas.
Tipo de ficha
Ficha de dados
Ficha de liberao
Ficha de sincronizao secundaria
Controle
Transferncia de dados no modo halfduplex
Inicio da liberao disciplinada
Insero de pontos de sincronizao
190
secundaria
Ficha principal/atividade
Atividade ou pontos de sincronizao
principais
Figura 7-11 As fichas da camada de sesso
5. Sincronizao.
So fornecidas primitivas tanto para a sincronizao principal quanto para a
secundaria, bem como a resincronizacao. Todas as primitivas so confirmadas. Cada
primitiva especifica o nmero se sries do ponto de sincronizao que ela deseja
estabelecer ou ao qual deseja retornar. Esses nmeros de srie esto na faixa de 0 a
999.999. Todas as primitivas de sincronizao exigem a posse das fichas
correspondentes.
6. Gerenciamento de atividades.
As atividades podem ser iniciadas, interrompidas, retomadas e descartadas
(abandonadas). Como a sincronizao, o gerenciamento de atividades controlado
por fichas.
7 .Relatrio de excees.
Observe que S-F-EXCEO, como S-F-ABORTAR, no pode ser solicitada.
O fornecedor do servio decide se e quando emiti-la.
As primitivas do OSI so implementadas pela entidade de sesso atravs do
uso do protocolo de sesso. Discutiremos esse protocolo mais adiante, neste capitulo.
191
193
194
remoto, o mecanismo dito ser transparente. Contudo, uma inspeo mais atenta
revela algumas dificuldades para se conseguir transparncia total.
O principal problema ocorre com passagem de parmetros. fcil passar por
valores inteiros, nmeros em ponto flutuante e strings de caracteres. O stub do cliente
simplesmente os insere na mensagem. Na pior hiptese poderia ser necessria uma
conveno para algum formato padro da rede (tais converses so parte da camada
de apresentao e sero discutidas em detalhes no prximo capitulo). A passagem de
estruturas, registros ou vetores desses tipos igualmente direto.
O problema surge quando a linguagem permite que os parmetros sejam
passados por referncia, em vez de por valor. Para uma chamada local, um ponteiro
(o endereo do parmetro) passado normalmente ao procedimento chamado. Este
procedimento sabe que esta lidando com um parmetro de referencia e assim pode
seguir o ponteiro a fim de acessar o parmetro.
Esta estratgia falha completamente para uma chamada remota. Quando o
compilador produz o cdigo para o servidor, ele no sabe nada sobre a RPC, e gera as
instrues usuais para seguir o ponteiro. evidente que o objeto que esta sendo
apontado no se encontra nem mesmo na maquina do servidor e, ainda que estivesse
l, no teria o mesmo endereo que tinha na maquina do cliente. Como resultado
quando um cliente tenta utilizar um parmetro de referencia, recebe o valor errado e a
computao falha.
Uma soluo possvel substituir o mecanismo de parmetros chamados por
referencia pela chamada por copia/restaurao. Com a copia/restaurao o stub do
cliente localiza o item que esta sendo indicado e o transmite ao stub do servidor. Este
ltimo o insere em algum lugar da memria e passa ao procedimento do servidor um
ponteiro para ele. O servidor capaz ento de acessar o item da forma usual. Quando
o procedimento do servidor devolve o controle ao stub, este transmite o item de dados
(possivelmente modificado) de volta ao stub do cliente, que por sua vez utiliza para
sobrescrever o parmetro de transferncia original.
Embora o mecanismo de copia/restaurao freqentemente funcione, ele pode
falhar em certas situaes patolgicas. P exemplo, considere o programa da figura 714. quando esse programa roda localmente, ambos os parmetros na chamada a
duploincr so ponteiros para a, que incrementado duas vezes e o numero 2
impresso.
program teste(output);
var a : integer;
procedure duploincr(var x, y : integer);
begin
x := x + 1;
y := y + 1;
end;
begin
{programa principal}
a := 0;
duploincr(a, a);
writeln(a);
end.
195
196
197
o controle ao chamador, mas surgiria uma exceo a ser manipulada por um tratador
de excees. O projeto de mecanismo de tratamento de excees dependente da
linguagem, mas claramente necessrio um mtodo para distinguir chamadas mal
sucedidas daquelas que obtiveram sucesso.
198
199
outros processos. Finalmente, se um cliente comea outra vez uma RPC, os resultados
devolvidos pelos rfos podem provocar confuses.
Nelson descreve quatro maneira de se lidar com rfos. Na primeira forma,
chamada extermnio, quando um equipamento se recupera de um desastre, ele verifica
se havia qualquer RPC em curso no momento da queda. Se havia, ele pede (s)
mquina(s) do servidor para eliminar os processos em execuo sob seu nome.
Para usar o algortmo de extermnio, necessrio que os stubs do cliente
registrem RPCs antes de execut-las. Quando as RPCs se completam, suas entradas
so eliminadas do registro de RPCs pendentes. O registro deve ser mantidos de forma
persistente, que sobreviva quedas do processador .
Os rfo podem eles prprios fazer chamadas e procedimentos remotos,
gerando outros rfos. Portanto, o algoritmo de extermnio deve ser recursivo. A
tcnica de extermnio pode falhar nas eliminaes de todos os rfos (como uma rede
particionada com alguns nodos inalcanveis por exemplo).
A segunda forma de eliminar rfos a expirao. Essa tcnica no exige
qualquer registro. Quando uma RPC iniciada, o servidor recebe um certo prazo para
completar a chamada. Se a chamada no completar-se dentro do intervalo original, o
stub do servidor deve pedir ao stub do cliente um novo prazo.
Se a mquina do cliente tiver sofrido uma queda ou ter sido reiniciada, esse
evento ser detectado, o timer no ser renovado e o servidor ter permisso para se
desativar. Quando utilizada a expirao, tudo que um cliente tem a fazer se
certificar de que decorreu um certo prazo desde a ultima queda antes de emitir a
primeira RPC.
A terceira tcnica para se livrar dos rfos chamada reencarnao. Nesse
mtodo, o tempo dividido em pocas numeradas seqencialmente. Quando um
cliente em recuperao falha na tarefa de exterminar seus rfos, ele transmite a todas
as mquinas o incio de uma nova poca. Elas reagem eliminando todos os seus
processos servidores. Como todos os pedidos e respostas sempre contm o nmero da
poca em que foram iniciados, quaisquer respostas que eventualmente chegarem de
rfos carregaro um numero de poca obsoleto e portanto sero detectveis.
A quarta abordagem para deteco de rfos semelhante terceira. Ela
tambm utiliza pocas porm , em lugar de cada mquina eliminar toda atividade
remota quando uma nova poca declarada, ela tenta localizar o cliente que deu
partida ao servidor. Somente se esse cliente no puder ser encontrado, o servidor
eliminado. Esse algoritmo denominado reencarnao suave.
At agora assumiu-se que, to logo um rfo possa ser encontrado, ele pode
ser eliminado. Porm um rfo pode estar rodando no interior de uma regio critica,
ou pode ter bloqueado alguns arquivos. Sob essas circunstncias, eliminar o rfo
pode criar impasses ou inconsistncias em bancos de dados.
Alem disso, um rfo j pode ter preparado seu trabalho futuro. Por exemplo,
um rfo pode ter feito uma entrada em uma fila para um arquivo a ser impresso mais
tarde ou para alguma outra ao futura a ser executada. Mesmo se o prprio rfo for
eliminado, o trabalho enfileirado pode ser eventualmente executado. O problema da
eliminao de rfos discutido em maiores detalhes por Shrivastava e Panziere
(1982).
200
DISCUSSO DA RPC
Existem alguns aspectos com que se defronta o projetista de qualquer sistema
de RPC. Eles dividem-se em quatro categorias:
Projeto para interface;
Projeto do cliente;
Projeto do servidor;
Projeto do protocolo.
No projeto para interface, o ncleo do assunto at que ponto a transparncia
dever ser perseguida. Dados os problemas com parmetros e ponteiros, e a remota
possibilidade de conseguir a semntica de exatamente uma vez em face de falhas,
Hamilton(1984) argumentou que a transparncia no deveria nem mesmo ser tentada.
Ele defende o acrscimo de uma palavra chave, remoto, a frente da declarao de
qualquer procedimento que possa ser chamado remotamente, para alertar o
compilador e evitar confuses para o programador.
Por outro lado, embora no papel paream imensons, os problemas do RPC so
reduzidos. Quedas so raras e a maior parte dos outros problemas pode ser
manipulada pelo projeto cuidadoso de stubs e compiladores.
Uma questo importante como os stubs so produzidos. Uma possibilidade
que sejam escritos a mo. Outra que o compilador os produza como resultado do
processo de compilao. A ltima possibilidade muito conveniente mas bastante
complicada, a menos que a linguagem seja muito fortemente tipada.
Outro tema o tratamento de excees. Se no existir nenhum mecanismo de
exceo adequado o procedimento do cliente ter de testar todos os retornos de erros
possveis e estar preparado para manipul-los, uma situao no-transparente.
Por ltimo, vem a questo da vinculao. A forma precisa pela qual os
servidores exportam seus nomes, o modo como os clientes podem selecionar uma
instncia especfica de um servidor quando existem muitas instncias idnticas e o
momento em que a revinculao funciona so temas importantes.
O projeto do cliente envolve temporizaes e rfos. Os stubs do cliente
devem se temporizar depois de algum tempo sem receber nenhuma resposta ou eles
devem simplesmente esperar para sempre? Se interrompem-se, que aes devem
executar, que semntica lhes deve ser fornecida e como os rfos so tratados?
A principal questo referente ao projeto do servidor o paralelismo. Em um
extremo, sempre que chega um pedido para execuo de um procedimento do
servidor, um novo processo criado e o procedimento roda como parte desse
processo. Se chegarem outros pedidos de outros clientes antes que o primeiro tenha
terminado, mais processos so criados e todos eles se executam em paralelo,
independentes uns dos outros. No outro extremo, existe um processo nico associado
antes que o primeiro se tenha encerrado, ele deve esperar sua vez.
A primeira abordagem implica o nus da criao de processos a cada RPC,
mas permite a execuo em paralelo das chamadas. A segunda mais simples e rpida
se houver apenas uma chamada por vez, mais no permite qualquer paralelismo se
existirem chamadas mltiplas.
No projeto do protocolo o essencial conseguir um alto desempenho. Houve
grande controvrsia sobre esse ponto. Muitos pesquisadores acreditam que a nica
forma de tornar a RPC mais rpida execut-la na parte superior da interface de
pacotes bruta, com camadas de transporte e de rede nulas.
201
Por outro lado, algumas pessoas com mentalidade mais ligada a conexes
imaginam que a RPC pode rodar de forma adequada na camada de aplicaes, mesmo
se houver muitas camadas de protocolos abaixo dela. Essa a direo que vem
tomando a ISO.
Nesse modelo, existem as primitivas VINCULAR, DESVINCULAR,
INVOCAR e RESULTADO, cada uma com pedido, indicao, resposta e
confirmao.
202
Captulo
15
Implementeo da Camada de Sesso
PEQUENA INTRODUO:
A tarefa bsica do nvel de sesso utilizar o servio provido pelo nvel de
transporte, que simplesmente move bits de uma mquina para outra e adicionar alguns
servios orientados ao usurio.
Genericamente falando, o nvel de sesso deveria assegurar que eventuais
falhas ao nvel de transporte fossem transparentes aos nveis superiores.
SERVIOS PROVIDOS PELO NVEL DE SESSO
Segundo o padro ECMA-75, os servios definidos para o nvel de sesso
proveriam facilidades de cinco tipos. Cada tipo de servio de acesso definido por
meio de primitivas. As primitivas associadas a cada tipo de servio so as seguintes:
FACILIDADES
Estabelecimento da conexo
Termino da conexo
Transferncia de dados de sesso
Quarentena
Sincronizao
NOME DA PRIMITIVA
S-CONNECT
S-RELEASE
S-DISCONNECT
S-ABORT
S-DATA
S-EXPEDITED
S-QUARENTINE-DELIVER
S-QUARENTINE-CANCEL
S-SYNC
S-END-DU
S-RESYNC
S-TOKEN-GIVE
S-PLEASE
Cada uma destas primitivas tem seus parmetros e existe um protocolo para
gerenciar as trocas entre os nveis de sesso.
203
UNIDADES FUNCIONAIS
Unidades funcionais so grupamentos de servios relacionados definidos no
padro ISSO, para fins de negociao na fase de estabelecimento da conexo de
sesso e para fins der referencia para outros padres internacionais. Aqui ser
implementada apenas a unidade funcional denominada KERNEL, que suporta os
servios bsicos de sesso, exigidos para estabelecer uma conexo de sesso,
transferir dados normais e liberar a conexo de sesso.
Abaixo relacionado unidade funcional Kernel e os servios a ela
associados.
Unidade Funcional
Kernel
Servios
Session Connection
Normal Data Transfer
Ordery Release
U-Abort
P-Abort
Cd.
CN
AC
RF
FN
DN
AB
AA
DT
SPDU
CONNECT
ACCEPT
REFUSE
FINISH
DISCONNECT
ABORT
ABORT ACCEPT
DATA TRANSFER
PROTOCOLO DE SESSO
O protocolo de sesso proposto pela ISSO especifica:
- Os procedimentos para transferir dados e informao de controle entre duas
entidades de sesso pares;
- Os meios para selecionar as unidades funcionais a serem usadas pelas
entidades de sesso;
- A estrutura e codificao das unidades de dados do protocolo de sesso
usados para transferncia de dados e informaes de controle.
De acordo com este trabalho a entidade de sesso comporta-se como uma
mquina de estado finita. Atravs de um ASAP (Aplication Service Access Point), so
recebidos os dados de um usurio do servio de sesso, os quais so estruturados de
acordo com o protocolo de sesso definido pela ISO, e enviados na forma de SPDUs a
entidade de sesso par, usando os servios providos pelo nvel de transporte ao qual
so entregues os TSDUs (Transport Service Data Units).
As entidades de sesso intercambiam UDPS (Unidades de Dados de
Protocolos de Sesso), referidas tambm como SPDU (Session Protocol Data units)
que contm dados e/ou informao de controle.
204
L1
Campo de Parmetros
Campo de Parmetros
Campo de Parmetros
PI Identifica o parmetro
L1 Comprimento do campo dos parmetros
Campos de parmetros = valor do parmetro
205
206
Entidade A
STA1
SCONreq
CN
STA2A
AC
SCONcnf+
STA713
SDTreq
DT
STA713
DT
SDTind
STA713
SRELreq
FN-nr
STA3
DN
SRELcnf+
STA1
Conexo
Transferncia
De Dados
Desconexo
Entidade B
STA1
CN
SCONind
STA8
SCONrsp+
AC
STA713
DT
SDTind
STA713
SDTreq
DT
STA713
FN-nr
SRELind
STA9
SRELrsp+
DN
STA1
Cd. Do SPDU
CN
AC
RF
FN
DN
AB
AA
DT
Cdigo
13
14
12
09
10
25
26
01
207
Cdigo
01
02
03
04
05
06
07
08
09
20
Abreviatura
SCON req
SCON rspt
SCON rsp SDT req
SREL req
SREL rsp+
SREL rspSUAB req
SUER req
TIM
Descrio
S-CONNECT request primitive
S-CONNECT (accept) response primitive
S-CONNECT (reject) response primitive
S-DATA request primitive
S-RELEASE request primitive
S-RELEASE (accept) response primitive
S-RELEASE (reject) response primitive
S-U-ABORT request primitive
S-U-EXCEPTION-REPORT request primitive
Time Out
Abreviatura
SCON ind
SCON cnf +
SCON cnf SDT ind
SPAB ind
SREL ind
SREL cnf +
SREL cnf STD ind
SUA Bind
Descrio
S-CONNECT indication primitive
S-CONNECT (accept) confirm primitive
S-CONNECT (reject) confirm primitive
S-DATA indication primitive
S-P-ABORT indication primitive
S-RELEASE indication primitive
S-RELEASE (accept) confirm primitive
S-RELEASE (reject) confirm primitive
S-TYPED-DATA indication primitive
S-U-ABORT indication primitive
208
25
CONDIES
Incio de SPDU
Fim de SPDU
Incio e fim de SPDU
SPDU intermedirio
DOCUMENTAO DO PROGRAMA
O programa que implementa SPM dividido em cinco partes que programa
principal e quatro procedimentos. Cada uma destas partes descrita a seguir.
PROGRAMA PRINCIPAL
No programa principal so declaradas as duas TASKs T e TF; as filas
SSAP-TS, SSAP-ST, ASAP-SA, ASAP-AS e FILA. Os arquivos de entrada e sada
respectivamente; REM e REN e algumas variveis globais. Depois inicializada a
SPM colocando STA = 1 e STB = 1 e disparados os processos SESSO e
FANTASMA No final do programa as TASKs so encerradas.
O programa principal dispara os processos referentes aos procedimentos
SESSO e FANTASMA.
O procedimento SESSO juntamente com os procedimentos PRIMIT e
SPDUS satisfaz os requisitos de implementao do subconjunto da SPM Kernel. O
procedimento FANTASMA tem a funo de testar os demais procedimentos
colocando e retirando mensagens de suas filas; imprimindo resultados de acordo com
os dados de entrada. Quando o procedimento FANTASMA causa o evento NUNCA,
so encerradas as duas TASKs causando o fim do programa.
PROCEDIMENTO SESSO
Para melhor entendimento do procedimento SESSO bom observar a figura
que mostra os diversos nveis da ligao micro-mainframe mostradas a seguir.
209
SSAP-TS
SSAP-ST
ASAP-SA
ASAP-AS
O procedimento SESSO aguarda que chegue uma mensagem na fila SSAPTS oriunda do nvel de usurio dos servios se SESSO, ou seja, do nvel de
Apresentao para cima. Quando uma destas mensagens chegar, ela ser removida da
fila e de acordo com o seu contedo sero tomadas as decises conforme o protocolo
de sesso da proposta da ISO. Isto implementado utilizando um trecho de programa
similar ao mostrado a seguir.
1: % WAIT (SSAP-TS. QINSERT, ASAP-ASQINSERT)
CASE 1 OF
BEGIN
1: % CHEGOU UMA MENSAGEM NA FILA SSAP-TS
T: = REMOVE (TSDUIN, SSAP-TS);
% TRATA A MENSAGEM, DESENCAPSULA E REAGE DE
% ACORDO COM O PROTOCOLO DE SESSO KERNEL SPDUS;
% SE OCORREU UM SPDU DE TRANSFERNCIA DE DADOS,
% ENTO CONCATENAR OS DADOS JUNTO COM A PRIMITIVA %
CORRESPONDENTE,
% SENO PASSAR APENAS A PRIMITIVA PARA O NVEL
% SUPERIOR
ALLOCATE (SSDUDUT, TAM);
INSERT (SSDUOUT, ASAP-SA);
2: % CHEGOU UMA MENSAGEM NA FILA ASAP-AS
T: = REMOVE (SSDUIN, ASAP-AS);
% TRATA A MENSAGEM, REAGE DE ACORDO COM O
% PROTOCOLO SSESO KERNEL E ENCAPSULA PRIMIT;
% CORFORME A PRIMITIVA MONTA O SPDU E INSERE NA FILA %
PARA O TRANSPORTE
% SE A PRIMITIVA FOR DE DADOS E OS DADOS TIVEREM
%
MAIS DE 128 BYTES; DIVIDE A MENSAGEM EM
% PARTES
128.
ALLOCATE (TSDUOUT, TAM);
INSERT (TSDUOUT, SSAP-ST);
END;
210
Estados
STA 1
STA 1A
STA 1B
STA 1C
STA 2A
STA 3
STA 8
STA 9
STA 16
STA 713
Nome
Idle no Tc
await AA
await TCONonf
Idle TC con
await Ac
await Dn
await SCONrsp
await SREL rsp
await TDISind
data transfer
Nmero
01
02
03
04
05
06
07
08
09
10
211
Captulo
16
Camada de Apresentao
A Camada de Apresentao relaciona-se com a sintaxe e a semntica das
mensagens, converso de cdigos entre mquinas e outros servios de converso.
A principal tarefa desta camada codificar dados estruturados de acordo com
o formato interno do transmissor um formato adequado para transmisso dos
mesmos e depois decodific-los de acordo com o exigido no equipamento destino.
So funes da Camada de Apresentao:
i)Sintaxe e semntica de mensagens;
j)Codificao de dados (Ex: ASCII, EBCDIC);
k)Compatibilizao das estruturas de representao de dados;
l)Compresso de dados, e
m)Autenticao.
Como exemplo de incompatibilidade de representao de dados, podemos
citar os microprocessadores Intel e Motorola: os processadores da Intel (famlia 8086)
representam binariamente os valores direita para esquerda, de forma invertida,
enquanto que os microprocessadores Motorola (famlia 68000) os representam da
esquerda para direita. Alm desta diferena existem outras incompatibilidades entre
processadores menos difundidos.
A converso da forma de representao dos dados pode ser feita de duas
maneiras: cada receptor decodifica os dados recebidos ou o transmissor e o receptor
codificam os dados para um formato de transmisso e os decodificariam para sua
representao particular.
A primeira soluo inconveniente pois o receptor deve ser capaz de
identificar as diferenas entre ele e os demais transmissores com os quais comunica-se
para ser capaz de adaptar os dados recebidos. J para a segunda soluo tm-se um
algoritmo mais simples: o codificador e o decodificador poderiam se basear em uma
estrutura padro para transmisso e o formato de representao interna dos dados seria
irrelevante. esse o objetivo da notao ASN.1, discutida mais adiante.
A compactao dos dados faz-se necessria dado o custo de transmisso dos
dados.
tambm na camada de apresentao que os dados podem ser criptografados.
Com isso documentos de real importncia poderiam ser enviados de forma sigilosa.
Quando feita uma criptografia dos dados, uma unidade de criptografia
inserida entre os sistemas comunicantes, sendo que inicialmente os dados so
codificados de forma a serem entendidos por ambos os sistemas e depois
criptografados de forma que s as entidades comunicantes possam interpretar os
dados.
212
tipo booleano
tipo inteiro
tipo string de bits
tipo string de octetos
tipo nulo
tipo identificador de objeto
tipo descritor de objeto
tipo externo
reservados para adendos ao padro
tipo SEQUENCE e SEQUENCE-OF
tipo SET e SET-OF
tipos string de conjuntos de caracteres
tipo hora
Reservados para adendos ao padro
213
ASN.1 ou Abstract Syntax Notation One e uma notao que permite definir
tipos complexos e especificar valores destes tipos. As regras de codificao
constituem outro padro que aplicadas ao valor de um certo tipo definido pela ASN.1
resultam na especificao completa dos valores daquele tipo durante a transferncia.
As regras de codificao sempre foram a transmisso do rtulo de um tipo, implcita
ou explicitamente, juntamente com a representao do seu valor.
Supondo que a definio de um registro de funcionrio tenha sido definido e
recebido a denominao de DADOS-PESSOAL. Os campos pertinentes a tal tipo de
registro poderiam ser como os seguintes:
Nome: Joao P. Silva
Cargo: Diretor
Numero: 51
Data de admisso: 17 de setembro de 1971
Nome da esposa: Maria Silva
Numero de filhos: 2
Informaes sobre filhos
Nome: Rafael Silva
Data de nascimento: 11 de novembro de 1957
Informaes sobre filho
Nome: Suzana Silva
Data de nascimento: 17 de julho de 1959
A descrio formal deste registro, usando a notao ASN.1 seria:
Registro pessoal::- [APPLICATION 0] IMPLICIT SET
{ Nome,
Cargo [0] ISO646 String,
NumeroEmpregado,
DataIngresso [1] Date,
NomeEsposa
[2] Name,
Filhos
[3] IMPLICIT SEQUENCE OF
InformaoFilho DEFAULT {
}}
Informaofilho::- SET
{ Nome,
DataNascimento [0] Date}
Nome ::- [APPLICATION 1] IMPLICIT SEQUENCE
{ Nome ISO646 String,
Inicial ISO646 String,
Sobrenome ISO646 String,
NumeroEmpregado::- [APPLICATION 2] IMPLICIT
INTEGER
Date ::- [APPLICATION 3] IMPLICIT ISO 646
String -- AAAAMMDD
215
SequenceOfType|
SetTypeType|
SetOfType|
ChoiceType|
TaggedType|
AnyType|
CharacterSetType|
UsefulType|
O DefinedType especifica sequncias externas usadas para referir definies
de tipos e valores.
Os mais significativos tipos de primitivos sero definidos a seguir:
O tipo BOOLEAN e usado para representar valores de variveis lgicas (isto
que somente podem assumir dois estados). Quando escolher um nome
representar uma varivel boolena deve ser escolhido um que descreva o estado
verdadeiro, por exemplo:
Casado ::= BOOLEAN
O tipo INTEGER e usado para modelar os valores designativos de ordem
(cardinal) ou inteiros. Exemplo:
SaldoDaConta ::= INTEGER -- em centavos; negativo significa debito
Pode ser definido o valor mnimo e mximo, por exemplo:
DiaDoMes ::= INTEGER {primeiro(1),ultimo(31)}
Tambm pode-se usar inteiros como smbolos:
DiaDaSemana ::= INTEGER {Domingo(1), Segunda(2), Tera(3),
Quarta(4), Quinta(5), Sexta(6), Sbado(7)}
EstadoMarital ::= INTEGER {solteiro(0),casado(1),vivo(2)}
Usa-se o tipo BITSTRING para modelar dados binrios de formato e
comprimento qualquer (inclusive no multiplo do 8). Poe-se usar este tipo para
representar um mapa em que se indica pela posio dos bits ligados a
ocorrncia de algum fato, por exemplo:
DiasComSolNoMes::= BITSTRING{primeiro(1),ultimo(31)} -- Um dia foi
ensolarado se o bit correspondente a ele no mapa tem valor 1
O tipo OCTET STRING usado para modelar dados de qualquer formato e
comprimento mltiplo de 8 bits. Exemplo:
CorpoDoPacote ::= OCTET STRING
OU
Sobrenome ::= PrintableString
A segunda forma prefervel, quando possvel.
O tipo NULL usado para indicar ausncia de algum elemento numa
sequncia, tal como no exemplo seguinte:
IdentificaoPaciente ::= SEQUENCE
{ nome
OCTET STRING,
numeroQuarto CHOICE
{INTEGER,
NULL --se o paciente j saiu do
hospital-- }}
O tipo SEQUENCE usado para modelar uma coleo de variveis cujo tipo
e o mesmo, cujo nmero e conhecido e modesto e cuja ordem e significante,
desde que a composio do conjunto dificilmente varie de uma verso do
protocolo para outra. Exemplo:
NomeDosFuncionarios ::= SEQUENCE
{presidente
ISO646String,
vicePresidente ISO646String,
secretaria
ISU646String }
Tambm pode ser usado o tipo SEQUENCE quando o tipo dos integrantes
difere, mas o nmero e conhecido e modesto e cuja ordem e significante,
desde que a composio do conjunto dificilmente mude de uma verso do
protocolo para outra. Exemplo:
Credenciais ::= SEQUENCE
{nomeUsuario ISO646String,
password
ISO646String,
numeroConta INTEGER }
Se os elementos de uma sequncia so em nmero fixo mas de vrios tipos,
um nome de referncia deve ser atribudo a cada elemento cujo objetivo no
seja completamente evidente de seu tipo. Exemplo:
Arquivo ::= SEQUENCE
{ TipoConteudo,
outros
AtributosArquivo,
conteudo
ANY
}
O tipo SET usado para representar uma coleo de variveis cujo nmero e
conhecido e modesto e cuja ordem no e significante. Neste caso, cada
varivel deve ser rotulada neste contexto. Exemplo:
NomeUsuario ::= SET
{ nomePessoal
[0] IMPLICIT ISO646String,
nomeOrganizao [1] IMPLICIT ISO646String,
nomePais
[2] IMPLICIT ISO646String }
A palavra OPTIONAL pode ser colocada aps uma varivel do conjunto cujo
aparecimento e opcional. Se os membros de um tipo SET so em nmero fixo,
tambm deve ser atribudo um nome a cada membro cujo fim no e evidente
de seu tipo. Exemplo:
AtributosArquivo ::= SET
{proprietario
[0] IMPLICIT
NomeUsuario,
tamanhoDoConteudoEmOctetos [1] IMPLICIT
INTEGER,
[2] IMPLICIT
ControleAcesso }
O tipo SET OF pode ser usado para representar uma coleo de variveis
cujos tipos so os mesmos e cuja ordem no e significante.Ex:
PalavrasChave ::= SET OF ISO646String --em qualquer ordem
218
219
O tipo ANY usado para modelar uma varivel cujo tipo no e especificado
ou e especificado em outro ponto usando ASN.1.Exemplo:
ConteudoMensagem ::= ANY
-- um elemento de dados cujo tipo e especificado na norma XXX
O tipo EXTERNAL usado para referenciar uma varivel cujo tipo no
especificado ou que especificado em outro local usando ASN.1.
220
222
Bits
Classe
Nmero do Rtulo
Universal
00
Codificao primitiva
Application
01
Codificao complexa
Especfica de Contexto
10
Privada
11
Quando o nmero do rtulo no puder ser expresso com apenas 5 bits, usa-se a
seguinte forma :
1
Classe
Nmero do Rtulo
Nmero do Rtulo
Codificao
0
Nmero do Rtulo
ltimo
No ltimo
0
Comprimento
223
1
Nmero de octetos
subsequentes
Comprimento
Isto indica que o final do contedo ser sinalizado por um octeto de fim-decontedo.
16.3.1.3. Octetos de contedo
Zero ou mais octetos codificando os valores sendo transmitidos.
Primrio
224
Nmero de bits no
utilizados no ltimo octeto
ou
Composto
225
Contedo
Comprimento
60
8185
61
10
16
16
4
1
John
T
A0
42
A1
16
0A
16
01
0A
43
Smith
08
33
Diretor
08
19710917
226
Captulo
17
Camada de Aplicao
17.1 Temas de Projeto da Camada de Aplicaes
Faremos nesta seo uma breve introduo e uma abordagem geral das
aplicaes que sero estudadas neste captulo, apenas para ter uma idia de que tipos
de questes devem ser tratadas no estudo da camada de aplicaes. Esses temas
incluem a transferncia de arquivos, o correio eletrnico e os terminais virtuais, entre
outros. Mais adiante, retornaremos a cada tpico para examin-los em detalhes.
Alm disso, tambm examinaremos brevemente dois blocos de construo que
so oferecidos com freqncia por essas e outras aplicaes. Um deles lida com
gerenciamento de conexes e o outro se relaciona com a concorrncia.
17.1.1 Transferncia, Acesso e Gerenciamento de Arquivos
A transferncia de arquivos e o acesso a arquivos remotos so duas aplicaes
das mais comuns em qualquer rede de computadores. Pessoas que trabalham juntas
em um projeto precisam em geral compartilhar arquivos. Uma sada ter um
equipamento onde o original de cada arquivo esteja contido e fazer com que suas
cpias sejam transferidas para outras mquinas conforme necessrio. Outra
abordagem ter cada arquivo ativo na mquina em que foi criado (ou em que
mantido), e fazer com que os usurios em outras mquinas peam cpias quando
precisarem deles.
Outra situao em que utilizada a transferncia de arquivos em uma
universidade que tenha vrias estaes de trabalho sem unidades de disco espalhadas
pelo campus juntamente com um ou mais computadores com discos de grande
capacidade. Os estudantes podem se registrar em qualquer estao de trabalho e
acessar seus arquivos por meio da rede. Em um projeto alternativo, as estaes de
trabalho podem ser equipadas com pequenas unidades de disco, permitindo aos
estudantes transferirem seus arquivos para suas estaes de trabalho no incio de cada
sesso no terminal e transferi-los de volta para a mquina principal quando tiverem
terminado. Essa disposio significa que um estudante pode trabalhar em qualquer
estao do campus (ou talvez at mesmo no dormitrio), no apenas na estao de
trabalho especfica em que esto seus arquivos.
O acesso a arquivos remotos (como no caso das estaes de trabalho sem
unidades de disco) semelhante transferncia de arquivos, exceto pelo fato de que
somente partes de arquivos so lidas ou escritas, em vez de arquivos inteiros. As
tcnicas usadas para a transferncia de arquivos e acesso a arquivos remotos so
similares, de modo que no faremos grande distino entre elas at chegarmos
discusso sobre a duplicao de arquivos. Alm disso, o acesso a um arquivo
localizado em um computador remoto que tem seus prprios usurios bastante
227
228
229
modo que tudo funcione em conjunto. Entretanto, medida que mais e mais pessoas
tm acesso aos sistemas de reservas a partir de seus terminais e computadores
pessoais atravs de redes, o problema da incompatibilidade no pode mais ser
desprezado.
A abordagem do OSI para solucion-lo definir um terminal virtual, na
realidade uma estrutura de dados abstrata que representa o estado abstrato do terminal
real. Essa estrutura de dados pode ser manipulada pelo teclado e pelo computador,
sendo seu estado atual refletido no monitor. O computador pode consultar a estrutura
de dados abstrata para descobrir algo sobre a entrada pelo teclado e pode modificar a
estrutura de dados abstrata para fazer com que a sada aparea na tela. Na seo sobre
terminais virtuais, descrevemos com alguns detalhes como funciona essa idia.
230
Escravo
Iniciar ao atmica;
Enviar Pedido 1;
.
.
.
Enviar Pedido n;
Enviar mensagem "Preparar para cumprir";
if (ao pode ser realizada) then
begin
Bloquear dados;
Armazenar estado inicial em disco;
Armazenar pedidos em disco;
Enviar mensagem "OK";
end
else
Enviar "Falha";
if (todos os escravos disseram OK) then
enviar mensagem "cumprir"
else
enviar mensagem "retornar";
Esperar pelas confirmaes;
232
Descrio
Inicia uma ao atmica
Fim da fase 1; prepara para registrar
O escravo est apto a fazer seu trabalho
O escravo no capaz de fazer seu trabalho
Cumpre a ao
Aborta a ao
Anuncia que ocorreu uma falha
Processos de aplicao
Sistema
Operacional
Mtodo de
acesso
Aplicao
local
O
S
I
Outros
233
sua prpria aplicao e para garantir que todos usem os mesmos protocolos.
234
235
AE (Aplication Entity)
ASE (Application Service Element) + + ASE
( ACSE, ROSE, RTSE, CCR, SMASE, CMISE)
236
Aplicao de
gerenciamento
Aplicao de
gerenciamento
A
SMASE
C
CMISE
S
E
ROSE
outras camadas
A
C
CMISE S
ROSE E
outras camadas
SMASE
CMIP - PDU
ROSE
RO-INVOKE
RO-RESULT
RO-ERROR
RO-REJECT
SMASE (OMF)
PT-GET
PT -SET
PT -CANCEL-GET
PT -ACTION
PT -CREATE
PT -DELETE
PT -EVENTREPORT
CMISE
M-GET
M-SET
M-CANCEL-GET
M-ACTION
M-CREATE
M-DELETE
M-EVENTREPORT
Significado
Invoca uma operao
Resultado de operao bem sucedida
Resultado de operao sem sucesso
Rejeio iniciada pelo usurio
Rejeio iniciada pelo provedor
Tipo de servio
no confirmada
no confirmada
no confirmada
no confirmada
s indicao
Protocolo ROSE
Para cada servio iniciado pelo usurio do ROSE criada uma APDU ROSE,
que mapeada para a primitiva RT-TRANSFER do RTSE ou para o servio P-DATA
de apresentao.
238
MIS-User
local
A-Assoc.req
ACSE local
outras
camadas
P-Connect.req
...PConnect.ind
A-Assoc.ind
A-Assoc.resp
PConnect.resp
PConnect.conf
A-Assoc.conf
239
MIS-User SMASE
local
CMISE
ROSE
local
outras
ROSE CMISE SMASE MIS-User
remoto
camadas remoto
PT-Get.
request
M-GET.
request
RO-INVOKE.
request
P-Data.
request
P-Data.
indic
RO-INVOKE.
indic
M-Get.
indic
PT-Get.
indic
PT-Get.
response
M-Get.
response
RO-RESULT.
request
P-Data.
request
P-Data.
indication
RO-RESULT.
indication
M-Get.
confirm
PT-Get.
confirm
240
1. A-ASSOCIATE.request
2. P-DATA.request
3. P-DATA.indication
4. A-ASSOCIATE.indication
5. A-ASSOCIATE.response
6. P-DATA.request
7. P-DATA.indication
8. A-ASSOCIATE.confirm
9. PT-SET.request
10. M-SET.request
11. RO-INVOQUE.request
12. P-DATA.request
13. P-DATA.indication
14. RO-INVOKE.indication
1. M-SET.indication
2. PT-SET.indication
3. PT-SET.response
4. M-SET.response
5. RO-RESULT.request
6. P-DATA.request
7. P-DATA.indication
8. RO-RESULT.indication
9. M-SET.confirm
10. PT-SET.confirm
11. A-RELEASE.request
12. P-DATA.request
13. P-DATA.indication
14. A-RELEASE.indication
241
Captulo
18
ATM
LISTA DE ABREVIATURAS
AAL
ACR
ABR
ABT
ACR
ART
ATM
ATC
ATS
ATM-PDU
AS
B-ISDN
B-NT
B-TA
B-TE
BER
BT
CAC
CBR
CBS
CDV
CDVT
CER
CI
CLP
CLR
CMR
CPCS
CPE
CS
CTD
CTP
DBR
DCE
DSU
DTE
EBCI
EBCN
ECN
EFCI
EFCN
ER
ERN
ES
FC
FDDI
FEC
GCRA
GFC
HEC
IETF
ILMI
ISDN
ITU
ITU-T
LAN
LCT
LT
MBS
MCR
MMPP
MMBP
MPEG
NCTP
NNI
NRT-VBR
OAM
OC
OSI
P-NNI
PCI
PCR
PDH
PDU
PLCP
PMD
PRM
PT
PTI
PVC
QoS
QoS-UP
QoS-NP
RM
RT-VBR
SAP
SBR
SCR
243
SDH
SDU
SECBR
SES
SONET
STP
SVC
STM
TAT
TC
TD
TP
TRT
TS
UBR
UNI
UPC
UTP
VBR
VC
VCC
VCI
VP
VPC
VPI
WAN
244
INTRODUO
Atualmente a comunicao despreza distncias e fronteiras, e no depende
mais da movimentao fsica de pessoas ou de mensagens escritas. A base para a
comunicao so as redes especficas, voltadas para tipos determinados de servios,
dando lugar a sistemas baseados em redes digitais de alta velocidade, capazes de
suportar a integrao de mltiplos servios.
Eliminando ou atenuando as limitaes impostas pelo distanciamento fsico e
abolindo fronteiras geogrficas, as redes de computadores vm trazendo alteraes
profundas s relaes de trabalho e s formas de relacionamento interpessoal. As
RDSI-FL, Redes Digitais de Servios Integrados de Faixa Larga (ou B-ISDN,
Broadband Services Digital Network), que suportam trfegos de naturezas diversas,
como voz, imagem, vdeo e dados integrados em um mesmo meio, so uma tendncia
mundial. Em qualquer uma dessas anlises, a tecnologia ATM (Asynchronouns
Transfer Mode) associada intimamente RDSI-FL.
No h dvidas de que a ATM ser a personagem mais importante no mundo
das redes de comunicao num futuro prximo e que desempenhar um papel central
e unificador na evoluo das diversas categorias de redes de computadores atualmente
existentes.
ATM hoje a mais importante tecnologia capaz de aproximar, em torno de
grandes interesses comuns, as industrias de computadores e de comunicaes. Ao seu
redor esto empresas representativas de segmentos industriais que englobam desde
fornecedores de componentes eletrnicos at fabricantes de computadores, incluindo
fornecedores de equipamentos de redes e de telecomunicaes e provedores de
servios de longa distncia. Nesses ambientes, ATM atualmente a tecnologia mais
ativamente pesquisada. Nunca antes tantos fabricantes de computadores estiveram
envolvidos com atividades da ITU-T, International Telecommunication Union Telecommunication
Standardization
Sector
(Unio
Internacional
de
Telecomunicaes Setor de Padronizao em Telecomunicaes), associada s
empresas do setor de telecomunicaes.
Como regra, um salto evolutivo na rea das redes de telecomunicaes resulta
sempre na convergncia entre foras do mercado e progressos tecnolgicos. ATM no
exceo. Pelo lado dos interesses de mercado, o que se pode observar uma
expectativa de demanda crescente imposta por novas classes de aplicaes, sejam elas
de uso residencial ou profissional, existentes ou apenas vislumbradas como TV de alta
definio, videotelefonia, vdeo sob demanda, videoconferncia, transmisso de
imagens mdicas ou para fins educacionais, interligao e redes locais de alta
velocidade, entre muitas outras.
Ao mesmo tempo em que muitos esperam, para um futuro no distante, um
mundo homogneo no qual a infra-estrutura ATM impere absoluta, existe a clara
compreenso de que por um longo perodo, ser ainda necessria e crucial a
coexistncia pacfica com outras tecnologias de comunicao. esse reconhecimento
que tem hoje norteado grande parte das iniciativas de padronizao da tecnologia
ATM.
Este captulo tem por objetivo abranger os principais aspectos que envolvem a
tecnologia ATM, desde os conceitos fundamentais para seu entendimento, at a
interoperabilidade de redes ATM com redes herdadas.
245
Enlace Privado
de microondas ou
satlite
PC
Videoconferncia
Rede de dados
comutada por pacotes
Mainframe
Rede Telex
Telex
246
decodificado para analgico para ser entregue ao usurio remoto onde , demodulado
para digital (pelo modem) para que o computador destino possa processar a
informao recebida. Veja Figura 18.2 abaixo.
Figura 19.2 - Uma chamada entre dois computadores.
Hoje, em quase todos os locais, somente o loop local analgico, sendo todos
os demais troncos digitais, conforme mostrado na Fig. 1.3.
1.1 SONET/SDH
247
Nos primrdios da fibra tica, cada companhia telefnica tinha seu prprio
sistema tico TDM. Assim em 1989 a CCITT divulgou um conjunto de
recomendaes chamado SDH (Synchronous Digital Hierarchy - Hierarquia Digital
Sncrona) juntamente com o padro SONET (Synchronous Optical NETwork- Rede
ptica Sncrona). SDH e SONET se diferem em poucos aspectos.
Hoje todo o trfego intercontinental realizado utilizando-se troncos de
altssima velocidade atravs de SONET/SDH. Segue abaixo, tabela com as taxas de
multiplexao da SDH e da SONET.
248
249
250
Diferentes servios convergem para conexes virtuais distintas em um mesmo meio fsico
Taxa
Taxa
Taxa
Tempo
CBR
Canal virtual
com taxa de bit
constante
(baixa)
Taxa
Tempo
CBR
Canal virtual
com taxa de bit
constante
(alta)
Tempo
VBR
Canal Virtual
com taxa de bit
varvel
Tempo
ABR
Canal virtual com
taxa de bit em
rajada
(Avaiable Bit Rate)
Nvel AAL
segmentao e
remontagem
Nvel ATM
multiplexao e
rede de
transporte
MUX
Clula ATM
Nvel Fsico
STM
Sinchronous Transfer Mode
(SDH/SONET)
251
Plano de Controle
e Sinalizao
Nveis
Superiores
Nvel de
Adaptao
ou AAL
Nvel de Rede
ATM
Nvel Fsico
PM
Plano de Usurio
Nveis OSI
Equivalentes
Nveis
ATM
Subnveis
ATM
Funes
Enquanto o ITU-T prefere a palavra camada (layer) na descrio do PRM, a ISO prefere a palavra
nvel (level) no MR OSI. Conceitualmente as duas palavras so utilizadas de forma equivalente neste
texto.
252
CS
3e4
AAL
SAR
2e3
ATM
TC
1e2
FSICO
PMD
Nveis OSI
Equivalentes
Nveis
ATM
Subnveis
ATM
CS
3e4
AAL
SAR
2e3
ATM
Funes
- Recuperao relgio fonte (controle CDV)
- Montagem e decomposio das PDU SAR
- Deteco de perda e insero de clulas
- Segmentao e remontagem
- Controle de fluxo
- Gerao/Extrao do cabealho de clula
- Gerenciamento de Canais/Rotas virtuais
- Multiplexao/demultiplexao de clula
253
Hierarquia
De
Aplicao
Nveis Superiores
(Aplicaes)
Nvel AAL
Nvel ATM
Hierarquia
de
Transporte
254
Nveis
Superiores
AAL
REDE ATM
Protocolo de Adaptao ATM fim a fim
Nveis
Superiores
AAL
ATM
ATM
ATM
ATM
FISICO
FISICO
FISICO
FISICO
N 2
Equipamento
Terminal (TE)
Equipamento
Terminal (TE)
Interface UNI
N 1
Interface NNI
Interface UNI
Figura X.3. Modelagem de uma rede ATM segundo o modelo PRM da I.321.
255
256
O gateway propicia a integrao entre uma rede no-ATM e uma rede ATM. Esse
objetivo principal de um gateway no impede que outros objetivos, semelhantes aos
que se busca atingir com as switches, possam ser simultaneamente buscados. Isto de
fato ocorre e, muito freqentemente, gateways incorporam funes tpicas de switches
(comutao espacial e temporal, manipulao de cabealhos e armazenamento
temporrio), ao lado da converso de protocolos de comunicao.
2.3.4.4 INTERLIGAO ENTRE DISPOSITIVOS EM UMA REDE ATM
Figura X.5. Interfaces da tecnologia ATM.
257
258
259
260
2.5.2.3 Embaralhamento
A subcamada de convergncia de transmisso pode efetuar o embaralhamento da
seqncia de bits da parte de informao da clula a ser transmitida, de forma a evitar
longas seqncias de uns ou zeros. Esse procedimento tambm diminui as chances de
que uma seqncia de informao seja confundida com o cabealho, quando o
receptor est no estado de caa como no caso exposto anteriormente.
261
262
263
O ATM Frum definiu uma opo para UNI privativa baseada no FDDI. A idia
utilizar a camada PMD do FDDI como suporte para a transmisso. O protocolo utiliza
o cdigo blocado quatro entre cinco. Um dos smbolos, que no pertence ao conjunto
de cinco bits vlidos para dados, utilizado toda vez que no existem clulas para
transmitir, evitando que o TC tenha que gerar clulas ociosas. Essa codificao
permite que smbolos especiais sejam utilizados para o delineamento de clulas.
Assim, como na estrutura baseada em clulas, no necessria a gerao ou
recuperao de quadros.
264
4 bits ou 0 bits
VPI:
8 ou 12 bits
VCI:
16 bits
PT:
Payload Type
3 bits
1 bit
8 bits
GFC
VPI
VPI
VCI
VCI
3
4
VCI
VPI
HEC
CLP
4
5
VCI
VCI
3
PTI
VPI
VCI
PTI
HEC
Informao
til
Informao
til
48 bytes
48 bytes
( Pay Load)
( Pay Load)
51
51
52
52
53
53
CLP
LEGENDA
GFC: Generic Flow Control
4 bits na clula UNI, ou 0 bits na clula NNI
VPI: Virtual Path Identifier
8 bits na clula UNI, ou 12 bits na clula NNI
VCI: Virtual Channel Identifier 16 bits
PTI: Payload Type Identifier 3 bits
CLP: Cell Loss Priority
1 bit
HEC: Header Error Correction 8 bits
TOTAL: 40 bits (5 bytes)
265
O campo do Generic Flow Control (GFC) formado pelos quatro primeiros bits do
primeiro octeto do cabealho, e usado em funes de controle de trfego entre
estao terminal e rede, com significado, portanto, apenas na interface UNI. O campo
GFC define um mecanismo que pode ser usado pela rede no sentido de controlar o
fluxo de trfego do usurio segundo diferente perfis de qualidades de servio (QoS).
No interior da rede o campo de GFC suprimido e os quatro bits so
utilizados para expandir o campo do VPI de oito para 12 bits o que permite um
suporte para um nmero maior de conexes VP (VPC), tanto de usurio como para
gerenciamento. Mesmo assim, em vista do tamanho reduzido dos campos VPI e VCI,
h necessidade de reutilizao geogrfica dos mesmos. Esta funo realizada pelos
comutadores ATM.
2.6.2 Identificadores VPI e VCI
As clulas de uma determinada fonte de informao so enviadas para a rede com um
cabealho que contm a informao da conexo virtual a ser seguida atravs da rede e
o canal virtual at chegar no usurio final. O cabealho possui dois campos principais
associados ao conceito de VC e VP: o identificador de rota virtual VPI e o
identificador de canal virtual VCI. O encaminhamento das clulas atravs da rede se
d a partir da informao contida nos campos de VPI e VCI.
2.6.3 O campo Payload Type Identifier - PTI
Este campo identifica o tipo de informao contido no campo de informao da
clula. O primeiro bit em zero indica informao de usurio (clula de usurio),
enquanto o bit em um indica clula com informao de gerenciamento de recursos
(clula RM - Resource Management), ou clula de operao e manuteno (clula
OAM - Operation Administration Maintenace).
O segundo bit do campo PTI das clulas de usurio utilizado em mecanismos
de notificao explcita de congestionamento para a estao final. As clulas, ao
passarem por um n congestionado (ocupao de buffers atingiu um limite superior),
so marcadas atravs deste bit, de modo que a estao final ao receber esta
informao, pode mandar uma mensagem de volta, pedindo para que o terminal da
outra ponta reduza a taxa de emisso de clulas.
O terceiro bit do PTI de clulas de usurio, quando for zero, indica que a
clula continuao de uma seqncia de clulas que compem um determinado
quadro SAR-SDU (Segmentation and Reassembling - Service Data Unit), e se for um,
indica que a ltima clula deste quadro. O quadro SAR-SDU integra o subnvel
SAR do nvel AAL.
267
Switch ATM
- Ponto-a-ponto
- Unidirecional/bidirecional
Switch ATM
268
canal virtual (VCC Virtual Channel Connection). Uma VCC uma concatenao de
um ou mais canais virtuais (VC Virtual Channel). Um canal virtual simplesmente
descreve o transporte unidirecional de clulas ATM com um identificador comum,
VCI, em cada clula. Um enlace de canal virtual (VCL - Virtual Channel Link) um
canal virtual entre dois pontos (ex. estao e chaveador) em uma VCC onde o VCI
atribudo, trocado ou removido.
O VCI no cabealho da clula tem significado apenas para as clulas fluindo
sobre um enlace de canal virtual (VCL). Em outras palavras, o VCI para as clulas
fluindo em um VCC pode mudar conforme elas passam atravs de diferentes
chaveadores ( Fig. 2.8 e Fig. 2.9 ).
269
Captulo
19
Redes Sem Fio e QoS
1.1 Redes sem fio
Com o extraordinrio crescimento ocorrido nos ltimos anos nas reas de
comunicao celular, redes locais sem fio e servios via satlite, a tendncia que em
um futuro prximo, informaes e recursos possam ser acessados e utilizados em
qualquer lugar e a qualquer momento. Dado o atual crescimento do segmento de
computadores pessoais portteis e PDA's (Personal Digital Assistants), estima-se que
em poucos anos, dezenas de milhes de pessoas tero um laptop, palmtop ou algum
tipo de PDA. Independente do tipo de dispositivo porttil, a maior parte desses
equipamentos dever ter capacidade de se comunicar com a parte fixa da rede e,
possivelmente, com outros computadores mveis. A comunicao sem fio elimina a
necessidade do usurio manter-se conectado a uma infra-estrutura fixa e em geral,
esttica. A esse ambiente de computao d-se o nome de computao mvel. A
necessidade de tomada de deciso em tempo real, tem levado usurios dos mais
diversos setores e profisses a buscarem tecnologias que possibilitem o acesso,
tratamento e uso de informaes em tempo reduzido, conforme a necessidade de
quem o utiliza.
O telefone celular um timo exemplo, estimulou nos usurio a busca por
maior comodidade, agilidade e capacidade de mobilidade exigindo cada vez mais o
aumento de qualidade nos mais diversos tipos de tecnologia mvel.
A Internet um exemplo de tecnologia fixa, que tambm teve que evoluir para
se adequar s necessidades latentes e mutantes dos usurios atuais e potenciais. O
quadro a seguir ressalta o acima exposto:
Como se pode perceber atravs da anlise do quadro, existe uma forte
tendncia de crescimento de assinantes na utilizao de novas formas de tecnologia,
tanto fixa quanto mvel [33].
A seguir so relacionados os conceitos bsicos de redes ad hoc, qualidade de
servio, largura de banda e padro IEEE 802.11.
270
1000
Assinantes (milhes)
900
800
Fixos
700
600
500
Mveis
Internet
(Mveis e Fixos)
400
300
200
100
0
1996
1997
1998
1999
2000
2001
2002
2003
2004
271
A
B
272
X
X
X
X
X
X
X
DSSS
Fcil e simples
Baixa potncia
Curto perodo de latncia
Conexo de entrada rpida
Curto alcance interno
Baixas taxa de transferncia
273
FHSS
DSSS
Banda
2.4 GHz
2.4 GHz
Padro
IEEE 802.11
IEEE 802.11b
Modulao de Freqncia
(FM)
Envia dados sobre canais 1
MHz
Modulao de Amplitude
(AM)
Fixado em canal de
17MHz
Servios Suportados
Dado
Mximo
de
Independentes
15
HomeRF, Bluetooth
802.11b
Tcnica de Modulao
Canal da Portadora
Canais
Tecnologia da Indstria
prioridade e ento tentar fornecer estes servios diferenciados para fluxos de dados ou
hosts especficos [13]. No so todas as aplicaes que realmente necessitam de
garantias fortes e rgidas de qualidade de servio (QoS) para que seu desempenho seja
satisfatrio.
A QoS oferecida em redes um importante aspecto de implantao e operao
para as redes de pacote como um todo, tornando-se fundamental para o desempenho
das aplicaes. A QoS se refere habilidade da rede em prover o melhor servio para
cada tipo de trfego, sobre as diferentes tecnologias de rede. Entretanto, para extrair o
mximo de recursos e a garantia de um nvel adequado de servio para os diversos
tipos de aplicaes, necessrio implementar mecanismos que garantam a qualidade
de servios.
A QoS em redes independe do seu tamanho, sendo formada pelo
encadeamento da qualidade em cada um dos hops dentro de uma rota de
comunicao. As redes IP tradicionais utilizam o roteamento Best Effort, o qual tem
seu cerne baseado no princpio das filas FIFO (First In First Out). O emprego de tais
filas tem como objetivo produzir latncia e minimizar a perda de pacotes quando as
redes encontram-se congestionadas a fim de minimizar a ocorrncia de jitter
ocasionado pelo atraso entre os pacotes.
Desta forma, possvel destacar um primeiro requisito tcnico que a QoS
por hop. Por se tratar do menor elemento controlvel dentro de uma rede, o qual pode
integrar dois ou mais canais de comunicao, imprescindvel que cada um tenha
uma forma caracterstica para tratar QoS nas comunicaes.
Outro elemento de destaque a possibilidade de viabilizao de diversas rotas,
dentro do conceito das redes Ad Hoc, existe a possibilidade de existncia de vrios
caminhos paralelos entre dois pontos, dependendo do grau de mobilidade dos ns que
fazem parte dessas rotas, os mesmo podem existir ou deixar de existir com uma
relativa freqncia. O uso de vrias rotas traz como vantagem a sensvel reduo da
carga no caminho entre dois pontos, o que implica obviamente na reduo da
possibilidade de perdas de pacotes e do jitter.
Os mecanismos que possibilitam o tratamento do trfego da rede so
determinantes do nvel de qualidade de servio. Tais mecanismos tm a funo de
implementar e exercer controles considerando as polticas vigentes da rede, que so
duas: por usurios e por aplicaes.
Por analogia, pode-se usar o exemplo da Internet e das Intranets, no qual a
largura de banda de suma importncia. H um uso crescente dos benefcios gerados
pela Internet e imposto pelas turbulncias e urgncia de uso eficaz e racional do
tempo aliados rpida obsolescncia das informaes.
A gigantesca quantidade de dados que precisam ser transmitidos diariamente
atravs da Internet vem crescendo exponencialmente. Novos aplicativos, como
RealAudio, RealVdeo, Internet phone e sistemas de videoconferncia necessitam
cada vez mais largura de banda em comparao aos aplicativos usados nos primeiros
anos de Internet.
Ao passo que aplicativos tradicionais da Internet como WWW, FTP ou Telnet
no toleram perda de pacotes, mas so menos sensveis aos retardos variveis. A
maioria dos aplicativos em tempo real apresenta exatamente o comportamento oposto,
pois podem compensar uma quantidade razovel de perda de pacotes, mas so,
normalmente, muito crticos com relao aos altos retardos variveis.
Isso significa que sem algum tipo de controle de largura de banda, a qualidade
dos fluxos de dados em tempo real depende da largura de banda disponvel no
momento.
275
276
278
de erro pelo protocolo RSVP para o processo de aplicao que originalmente solicitou
a requisio.
IPv4
Version
IHL
TOS
Identification
Time to Live
Protocol
Total Length
Flag
Fragment Offset
Header Checksum
Source Address
Destination Address
Figura 7: Modelo Cabealho do Ipv4 [44]
279
IPv6
Traffic Class
Payload Length
Version
Flow Label
Next
Hop Limit
Header
Source Address
Destination Address
Figura 8: Modelo Cabealho do Ipv6 [44]
A identificao da agregao de fluxos no interior de um domnio DiffServ
efetuada atravs da marcao de um novo campo chamado DS (Differentiated
Services). O campo DS obtido pela renomeao do campo TOS, no caso do Ipv4, ou
no campo do Traffic Class, no caso do Ipv6.
Formato do byte DS:
DSCP (Differenciated Services Code Point)
CU (Currently Undefined)
DSCP
CU
280
2.5.2.1 Classes
Um aspecto diffserv a capacidade de trabalhar com classes de servios tecnicamente conhecido como CBQ (Class Based Queue). Usando classes poderamos
dizer que todo download (ftp) feito por usurios no pode ultrapassar uma velocidade
pr-determinada. Dizer tambm que o e-mail no prioritrio, ou seja, seus pacotes
podem esperar pacotes de navegao web passarem para serem transmitidos.
Como se tudo isto no bastasse, ainda pode-se configurar as classes de forma a
uma emprestar seus recursos a outra em momentos de ociosidade, mas tom-las de
volta se preciso. Outro exemplo seria um provedor de acesso a Internet com um link
de 10Mbit.
Poderiam ser criadas duas classes principais, uma de 8Mbit no mximo para os
clientes, e 2Mbit de velocidade mxima para o escritrio do provedor. Entretanto,
durante a noite no h ningum trabalhando no escritrio, e os 2Mbit destinados a ele
seriam desperdiados.
281
Para resolver este problema, pode-se configurar as classes para que a classe do
escritrio possa emprestar sua banda disponvel para os usurios do provedor depois
do horrio de expediente.[47]
num dado intervalo de tempo, pode ser expressa em bits por segundo (bps), bytes por
segundo (Bps) ou ciclos por segundo (Hz) [22].
As consideraes a respeito da largura de banda so importantes para a
Qualidade de Servio, pois determinam a qualidade do trfego das informaes.
Quanto maior a largura da banda, menor sero os problemas relativos ao trfego.
Logo, esta deve ser trabalhada no intuito de otimizar as aplicaes e requisitos para
atender as necessidades de gerenciamento da rede. No entanto, perde-se em eficincia
quando h compartilhamentos. Em contra partida, os procedimentos relativos
largura da banda devem ser tratados de forma especfica, respeitando as exigncias de
funcionalidade da rede. Permitem ganho de eficincia nas redes ad hoc, como por
exemplo, agilidade no trfego de informaes.
284
285
est pronta para receber o quadro de dados, sendo que nesta ltima
funcionalidade a estao destino pode estar operando no modo de
economia de energia (modo power save). O sinal RTS inclui ainda o
destinatrio e o
o tempo reservado para o envio do quadro de dados. Esta informao utilizada por
outros nodos que podem escutar tanto o transmissor como o receptor para atualizar
seus Net Allocation Vectors (NAV) um temporizador que est sempre
decrementando se no for zero. A um nodo no se permite que inicie transmisso se o
seu NAV for diferente de zero. Refere-se a utilizao de NAV a fim de determinar se
o canal est livre ou ocupado como o mecanismo de Deteco Virtual de Portadora.
Como nodos que podem ouvir ou o transmissor ou o receptor evitam enviar
informao durante a transmisso do quadro de dados, a probabilidade de sucesso
grande.
Entretanto, o aumento de probabilidade obtido s custas de um overhead
considervel
envolvendo as trocas dos quadros CTS e RTS, que pode ser significativo para quadros
de
dados pequenos.
Os servios sem conteno, providos por PCF, so gerenciados pelo Point
Coordinator (PC), que deve operar junto aos pontos de acesso da clula da rede sem
fio e que define qual estao tem o direito de transmitir. Essencialmente, o PC
pergunta a cada estao se esta deseja transmitir um mecanismo tpico de polling.
O PCF controla quadros durante o perodo livre de conteno Contention
Free
Period (CFP) , que seguido por um perodo de conteno, controlado pelo
mecanismo DCF, anteriormente descrito. O PC ganha o controle de CFP e tenta
manter o controle pelo perodo inteiro porque espera um tempo menor para transmitir
do que estaes utilizando procedimento de acesso DCF. Este intervalo de tempo,
pouco menor que DIFS, mas maior que SIFS, denominado de PIFS (PCF
InterFrame Space).
No incio de cada CFP, aps esperar um tempo PIFS, o PC informa, atravs de
um
quadro beacon, qual o tempo total de CFP e quando ocorrer novamente. Todas as
estaes devem colocar como valor de NAV a durao total de CFP a fim de evitar
com que alguma estao tome o controle do meio durante este perodo. Aps um
intervalo de tempo SIFS, o PC pode enviar dados, requisitar que estaes enviem
dados, confirmar dados que recebeu, (empregando apenas um quadro MAC quando
possuir mais de uma tarefa a ser realizada) ou acabar com o CFP. Durante CFP,
somente estaes que estiverem na lista de polling do PC podem transmitir, mas todas
as estaes podem receber dados. O PC pode terminar CFP a qualquer momento,
mesmo que o tempo de durao informado no quadro beacon no tenha se esgotado,
baseado no trfego disponvel e no tamanho de sua lista de polling.
Todos as estaes que esto na lista de polling e, portanto, que respondem a
pedido de transmisso do PC, ignoram o mecanismo de deteco virtual de portadora
(temporizador NAV), verificando apenas se o meio est livre aps um intervalo SIFS.
Estaes fora da lista que recebem quadros de dados devem confirm-los segundo as
regras do procedimento DCF. O mecanismo bsico da camada MAC conhecido
como Distribution Coordination Function (DCF), que prov acesso mltiplo
assncrono e com conteno, com deteco de portadora e preveno de coliso
286
287
Concluso
O padro 802.11 constitui-se em um dos mais complexos da famlia IEEE 802
[RYP96], por necessitar atender as peculiaridades inerentes ao meio de transmisso. O
Grupo de Trabalho 802.11, ao oferecer duas tcnicas de transmisso de rdiofreqncia para a banda de 2,4 GHz e uma de infravermelha difusa, com vazo de 1 a
2 Mbit/s, acredita que est fechando o leque de aplicaes tpicas de uma rede local
sem fio [HAY96], quer sejam ambientes internos, como escritrios, lojas, quer sejam
ambientes externos, como campi de uma Universidade ou em complexos prediais.
A transmisso infravermelha difusa deve permanecer restrita a nichos de
mercado. A favor desta tcnica de transmisso, pode-se apontar que sua propagao
nunca passa alm dos limites impostos por paredes e tetos do local onde est
funcionando, fato que pode se consolidar como uma importante caracterstica de
segurana.
Em uma anlise mais detalhada das especificaes propostas para as tcnicas
de
rdio-freqncia, a tolerncia a interferncias em suas mais diversas formas tem um
peso
considervel. A transmisso FHSS apresenta, desde sua definio, preocupao em
lidar com interferncias, prevendo, inclusive, a operao de diversas redes
simultneas em uma mesma rea geogrfica. J a tecnologia DSSS, mesmo sendo a
mais difundida no momento, no apresenta caractersticas de desempenho
comparveis a FHSS. A maioria dos fornecedores de redes locais sem fio, atualmente,
288
289