Você está na página 1de 12

Redes e Comunicaes

AULA 6: Nvel de Ligao de Dados


6.1 Objectivo
Consiste no controlo do acesso ao meio sendo, portanto, especfico de cada
tecnologia fsica de transmisso. Por outras palavras, fazem parte deste
nvel tanto protocolos adequados tecnologia de transmisso por difuso,
como por exemplo os da implementao Ethernet, como protocolos
adequados tecnologia de transmisso ponto a ponto, como por exemplo o
Point to Point Protocol (PPP).

A camada Fsica fornece camada de Ligao de Dados um canal de


comunicao para transferncia de bits entre emissor e receptor. O que
define o canal exactamente o facto de os bits introduzidos pelo emissor
chegarem por essa ordem ao receptor (disciplina FIFO). Porm, e
infelizmente, os canais de comunicao oferecidos pelo nvel Fsico no
so isentos de erros e a transmisso no efectuada num intervalo de
tempo nulo, ainda que reduzido.

A conjugao destas duas limitaes vai implicar a existncia de


protocolos, no nvel de Ligao de Dados, para transformar o canal de
comunicao imperfeito num meio perfeito de transmisso. Assim, este
nvel oferece camada de Rede um interface bem definido de acesso ao
canal de transmisso, caracterizado por:

Agrupamento dos bits em tramas;


Controlo dos erros de transmisso;
Controlo do fluxo da transmisso.

Concluimos que a estrutura de dados usada neste nvel resulta de um


agrupamento no mbiguo de bits, denominada trama (frame). Como j
sabemos, a estrutura de dados usada pelo nvel Fsico o bit.

6.2 Servios oferecidos


Os protocolos que integram a camada de Ligao de Dados so mais ou
menos complexos consoante fornecem servios de maior ou menor
qualidade camada de Rede. Estes servios de comunicao (entrega de
tramas) podem variar mas so, normalmente, de dois tipos:

Servio no orientado conexo;


Servio orientado conexo.

1
Redes e Comunicaes

A complexidade de implementao do segundo muito superior do


primeiro. Em sntese:
No confirmado

No orientado conexo

Servio de entrega de tramas Confirmado

Orientado conexo

6.2.1 Servio no orientado conexo


Consiste no envio, pelo emissor, de tramas independentes umas das outras
ao receptor. No previamente estabelecida nem ulteriormente finalizada
qualquer conexo. Pode apresentar duas variantes: com ou sem
confirmao. No caso de servio no confirmado, se uma trama sofrer
corrupo durante a transmisso, por exemplo devido a ruido na linha, o
nvel de Ligao de Dados no efectua qualquer tentativa de recuperao
da trama perdida. Esta variante adequada s seguintes situaes:

Quando a taxa de erros na linha baixa (o que acontece, por


exemplo, com a utilizao de fibra ptica), de tal modo que a
recuperao de erros deixada ao cuidado das camadas
superiores da arquitectura;
Quando se trata de comunicao em tempo real (servios
iscronos, isto , dependentes do tempo, como por exemplo
transmisso de vz), em que prefervel receber tramas
corrompidas do que tramas com atraso significativo.

No caso de servio confirmado, cada trama recebida individualmente


confirmada pelo receptor ao emissor. Deste modo, o emissor tem sempre
conhecimento se uma dada trama foi ou no corrompida na linha. E, no
ltimo caso, pode promover a sua retransmisso. Esta variante til
quando a taxa de erros na linha elevada (por exemplo, em redes sem fios).
Em termos de modelo OSI, e no caso de servio no confirmado, as
primitivas so:

Emissor Receptor
DLSAP DLSAP

DL_UNIT_DATA.Req

DL_UNIT_DATA.Ind

No caso de servio confirmado teremos:

2
Redes e Comunicaes

Emissor Receptor
DLSAP DLSAP

DL_UNIT_DATA.Req
DL_UNIT_DATA.Ind
DL_UNIT_DATA.Rsp
DL_UNIT_DATA.Cnf

6.2.2 Servio orientado conexo


Neste caso, os equipamentos origem e destino estabelecem a conexo antes
de qualquer transferncia de tramas de informao ser efectuada. Cada
trama numerada e o nvel de Ligao de Dados garante a sua recepo no
destino pela ordem correcta e uma s vez. Como sabemos, verificam-se trs
fases distintas na conexo:

1. A conexo estabelecida antre as duas entidades de protocolo,


que inicializam as variveis e tampes de memria (buffers)
necessrios numerao e ordenamento das tramas;
2. As tramas so transferidas entre as entidades comunicantes;
3. As entidades de protocolo efectuam a desconexo, libertando os
recursos afectados (variveis, buffers, etc).

Em termos de modelo OSI, as primitivas so:

Emissor Receptor
DLSAP DLSAP

DL_CONNECT.req
DL_CONNECT.Ind
DL_CONNECT.Rsp
DL_CONNECT.Cnf

DL_DATA.req
DL_DATA.Ind
DL_DATA.Rsp
DL_DATA.Cnf

DL_DISCONNECT.req
DL_DISCONNECT.Ind
DL_DISCONNECT.Rsp
DL_DISCONNECT.Cnf

6.3 Constituio das tramas


Por forma ao nvel de Ligao de Dados poder desempenhar as suas
funes no que respeita a controlo de erros e fluxo, torna-se imprescindvel
agrupar a sequncia de bits em tramas. Existem vrios mtodos para o
conseguir, nomeadamente:

3
Redes e Comunicaes

Contagem de caracteres;
Caracteres delimitadores de trama;
Padres de bits (flags) delimitadores de trama;
Violaes codificao de bits no nvel Fsico.

Os dois primeiros so usados em protocolos orientados por caracteres e os


dois ltimos em protocolos orientados por bits.

6.3.1 Contagem de caracteres


Neste mtodo, o cabealho (da trama) contm um campo que indica o
nmero de caracteres constituintes da trama. Com este arranjo, a entidade
destino encontra-se habilitada a determinar o fim de uma trama e incio da
seguinte:

4 6 5 3 6

trama 1 trama 2 trama 3 trama 4 trama 5

O maior problema deste algoritmo consiste no facto de o nmero de


caracteres da trama ser adulterado por um erro de transmisso. Por
exemplo, se o nmero 6 da segunda trama for alterado para 9, a entidade
destino perde a sincronizao e no consegue detectar o incio da terceira
trama. Como no existe forma de recuperar deste tipo de erro, o mtodo de
contagem de caracteres no , actualmente, utilizado.

6.3.2 Caracteres delimitadores de trama


Neste mtodo, cada trama delimitada com as seguintes sequncias de
caracteres:

DLE STX
... DLE ETX

Em que
DLE = Data Link Escape
STX = Start of Text
ETX = End of Text

Assim, sempre que o destino perde a sincronizao, apenas tem de procurar


aquelas sequncias no fluxo de caracteres, para detectar o incio ou fim das
tramas. O maior problema com este mtodo reside no facto de poderem
ocorrer sequncias de incio ou fim de trama na zona dos dados. A soluo
passa pela utilizao da tcnica character stuffing (mascarar o carcter).

4
Redes e Comunicaes

Consideremos o seguinte caso, em que um caracter DLE aparece na zona


dos dados:

DLE STX DLE DLE ETX

A trama efectivamente transmitida ao destino a seguinte:

DLE STX DLE DLE DLE ETX

Portanto, a entidade destino quando detecta dois caracteres DLE


consecutivos, sabe que tem de retirar o primeiro, reconstituindo a trama
original. Por outras palavras, a ocorrncia de caracteres DLE na zona dos
dados ocorre sempre aos pares.

6.3.3 Padres de bits delimitadores de trama


Neste mtodo, cada trama comea com um padro especial de bits, como
01111110. Esta a marca de delimitao de tramas do protocolo High-
Level Data Link Control (HDLC), pertencente ao nvel de Ligao de
Dados de muitos tipos de redes. Nestas condies, uma trama HDLC
apresenta o seguinte aspecto:

Flag Address Control Data Checksum Flag

Header Trailer

Para evitar o aparecimento de marcas no interior da trama usada a tcnica


de bit stuffing (mascarar o bit): sempre que a entidade origem detecta 5
bits a 1 seguidos, na zona dos dados, insere um bit a 0. No destino, a
entidade de protocolo executa a operao inversa, reconstituindo a
sequncia de bits original.

6.3.4 Violaes codificao de bits


Neste mtodo, usada a codificao de bits do nvel Fsico para delimitar
as tramas, com violaes a essa regra de codificao. Por exemplo, se a
codificao for do tipo Manchester, o bit 1 representado por uma variao
-/+ de tenso e o bit 0 representado por uma variao +/-. As
combinaes +/+ e -/- no so usadas, pelo que nunca podero ocorrer nos
dados. Assim, podem constituir delimitadores de trama.

5
Redes e Comunicaes

6.4 Controlo de erros


O objectivo consiste na entrega de todas as tramas no destino e pela ordem
correcta, o que essencial no caso de servio orientado conexo. A
melhor forma de o conseguir consiste em o destino dispor de um meio de
informar a origem do modo como as tramas esto a chegar. Normalmente,
tal efectuado atravs do envio, pelo destino origem, de tramas de
controlo contendo confirmao positiva (acknowledged, ACK) ou
confirmao negativa (not acknowledged, NAK) da chegada de tramas.
Assim, uma confirmao positiva de trama significa que esta chegou
correctamente ao destino e uma confirmao negativa significa que a trama
em questo sofreu algum erro de transmisso e, portanto, tem de ser
retransmitida.

Um problema adicional consiste no facto de uma trama pura e


simplesmente no chegar ao destino. Neste caso, a origem nunca vai
receber qualquer confirmao, quer positiva quer negativa. Este problema
resolvido com a introduo de temporizadores (timers). Nestas condies,
quando a origem envia uma trama, dispara um temporizador. Se as tramas
de informao ou de confirmao se perderem, o temporizador expira e a
origem toma conhecimento de que ocorreu um erro. A soluo consiste em
retransmitir a trama de informao. Assim, s tramas so associados
nmeros de sequncia, por forma a que o destino possa distinguir entre
tramas originais e retransmitidas. Evita-se que uma trama seja entregue ao
nvel de Rede mais que uma vez (duplicao de tramas).

DTE DTE

In
t
ACKn

In+1
t
X ACKn+1
In+1
t
ACK
n+1

In+2
t ACKn+2

In+3 X
t

In+3

Recordando a estrutura da trama do protocolo HDLC:

6
Redes e Comunicaes

Flag Address Control Data Checksum Flag

Verifica-se que o campo Control usado para indicar os nmeros de


sequncia das tramas de tipo I. Alm disso, tambm usado para indicar o
tipo de qualquer trama:

Information (I)
Trama de informao, em que o primeiro bit do campo Control
um 0;
Supervisory (S)
Trama de superviso, em que os dois primeiros bits do campo
Control so 10;
Unnumbered (U)
Trama no numerada, em que os dois primeiros bits do campo
Control so 11.

6.4.1 Tcnicas de retransmisso


Quando um erro detectado, o DTE receptor solicita a retransmisso da
trama. Esta tcnica conhecida por Automatic Repeat Request (ARQ), da
qual existem trs verses:

Stop and Wait


O DTE emissor transmite uma trama e aguarda a respectiva
confirmao. O DTE receptor envia uma confirmao positiva
(ACK) ou negativa (NAK). O emissor possui um temporizador.
A mesma trama reenviada se, aps expirar o temporizador, no
se tiver ainda recebido uma confirmao. As tramas so
numeradas para evitar duplicao;

Go Back N
O DTE emissor envia um conjunto de tramas, sem esperar pelas
confirmaes individuais. Se o DTE receptor detectar um erro
numa trama, envia um NAK relativo a essa trama. O receptor
descarta todas as tramas recebidas a partir da trama errada. O
emissor retransmite a trama correspondente ao NAK e todas as
seguintes;

Selective Repeat
As nicas tramas retransmitidas pelo DTE emissor so as que
recebem um NAK. O receptor possui uma memria tampo para
armazenar temporariamente as tramas recebidas aps a trama

7
Redes e Comunicaes

errada, at que esta seja retransmitida. Possui tambm lgica


adicional para inserir a trama retransmitida na sequncia correcta.
O emissor tambm carece de lgica mais complexa para poder
enviar tramas fora de sequncia.

A principal vantagem do mtodo Stop and Wait ARQ consiste na


simplicidade e a principal desvantagem reside na ineficincia de utilizao
da linha de comunicao. O mtodo Selective Repeat ARQ exige recursos
de memria e lgica adicionais, tanto no emissor como no receptor.
Embora se encontre para alm do mbito desta cadeira a obteno das
expresses matemticas que caracterizam a eficincia de cada um dos trs
mtodos, pode referir-se que pelas razes anteriormente apontadas que o
algoritmo Go Back N ARQ o mais utilizado.

6.4.2 Deteco e correco de erros


Existem duas estratgias bsicas para lidar com os erros de transmisso:

Cdigos correctores
Na trama includa informao redundante suficiente para no s
detectar como tambm corrigir os erros;

Cdigos detectores
Na trama includa informao redundante apenas suficiente para
detectar os erros.

Verifica-se que os cdigos de correco, pela maior quantidade de


informao redundante que implicam, so menos eficientes do que a
conjugao de cdigos de deteco com algoritmos de retransmisso das
tramas erradas. Os cdigos correctores s so usados em situaes
especiais como, por exemplo, no caso de comunicao unidireccional
(simplex). Os factores que caracterizam os erros que podem ocorrer numa
linha de transmisso so:

Bit Error Rate (BER)


Probabilidade P de ocorrncia de um erro de bit durante um
intervalo de tempo bem definido. Assim, um BER de 10-3
significa que, em mdia, 1 bit em 1000 ser corrompido durante
um perodo de tempo definido;

Tipo dos erros


Ou seja, se os erros ocorrem aleatoriamente de forma isolada
(erros aleatrios de 1 bit) ou em sequncia de bits, conhecidos
como erros em rajada (burst errors).

8
Redes e Comunicaes

O valor do BER indica se necessrio efectuar controlo de erros ou no.


Em caso afirmativo importante conhecer o seu padro de ocorrncia. Este
ser o critrio de escolha do mtodo de deteco mais apropriado, uma vez
que alguns algoritmos so adequados deteco de erros isolados e outros
a erros em rajada.

Consideremos que uma trama constituida por m bits de dados e r bits


redundantes, necessrios execuo dos algoritmos de deteco e
correco. O nmero total de bits na trama n = m + r. A este valor
chama-se tamanho da palavra. Ao conjunto de todas as palavras vlidas de
um dado protocolo chama-se cdigo. Dadas duas palavras de n bits de um
cdigo, pode determinar-se o nmero de bits em que diferem, efectuando a
disjuno exclusiva das duas palavras e contando os bits a 1 obtidos. A
tabela de definio da operao de disjuno exclusiva (XOR) a seguinte:

XOR 0 1
0 0 1
1 1 0

Por exemplo, consideremos as duas palavras 10001001 e 10110001:

10001001
XOR 10110001

00111000

Ou seja, diferem em trs bits, a que se chama distncia de Hamming. O


seu significado o seguinte: se duas palavras apresentam uma distncia de
Hamming d, ento so necessrios d erros para transformar uma palavra na
outra. Para detectar um nmero i de erros numa palavra necessrio que a
distncia de Hamming do cdigo seja d = i + 1. De facto, s desta forma se
pode garantir que i erros no transformam uma palavra do cdigo em outra.
Para corrigir um nmero j de erros numa palavra necessrio que a
distncia de Hamming do cdigo seja d = 2j + 1. De facto, s assim se
garante que as palavras do cdigo se encontram to distantes entre s que,
mesmo com j erros, a palavra original ainda a mais prxima da palavra
errada. A distncia de Hamming de um dado cdigo a menor que se
obtm entre duas quaisquer suas palavras.

Exemplo de cdigo corrector


Consideremos um cdigo com apenas quatro palavras vlidas,
com tamanho de 10 bits:

9
Redes e Comunicaes

00000 00000
00000 11111
11111 00000
11111 11111

A distncia de Hamming deste cdigo cinco. Logo, podero ser


detectados quatro e corrigidos dois erros de bit:

d = i + 1 i = d 1 => i = 5 1 i = 4
d = 2j + 1 2j = d 1 j = (d 1) / 2 => j = 4 / 2 j = 2

Se chegar ao receptor a palavra 00000 00111, este considera que a


palavra original era 00000 11111. Porm, se um triplo erro de bit
transformar 00000 00000 em 00000 00111, os erros no sero
devidamente corrigidos pelo receptor;

Exemplo de cdigo detector de 1 bit


Consideremos um cdigo com palavras de nove bits, em que o
nono bit 0 se o nmero de bits a 1 na palavra for par e 1 se o
nmero de bits a 1 na palavra for impar. Para a contagem entram
os oito bits iniciais. Neste cdigo, as palavras apresentam sempre
um nmero par de bits a 1. A distncia de Hamming deste cdigo
dois, uma vez que so necessrios dois erros de bit para
transformar uma palavra noutra. Assim, pode detectar-se apenas
um erro de bit:

d = i + 1 => 2 = i + 1 i = 1

A este mtodo chama-se bit de paridade, sendo muito usado em


alguns tipos de RAM.

Quando se torna necessrio detectar no erros de bit isolados mas rajadas


de erros, tm de se usar mtodos mais precisos e, por isso, tambm mais
complicados. Na prtica, o mtodo mais usado denomina-se Cyclic
Redundancy Check (CRC). Baseia-se em cdigos polinomiais, que
consistem no tratamento das sequncias de bits das tramas como
representaes de polinmios apenas com coeficientes 0 e 1. Por exemplo,
a trama 110001 possui seis bits e pode considerar-se a representao do
polinmio de sexto grau x5 + x4 + 1:

1 * x5 + 1 * x 4 + 0 * x 3 + 0 * x 2 + 0 * x 1 + 1 * x0

10
Redes e Comunicaes

A teoria matemtica dos cdigos polinomiais ultrapassa o mbito desta


cadeira. O mtodo CRC explora as propriedades da diviso de polinmios.
Em termos muito gerais, pode descrever-se o seu funcionamento atravs do
seguinte exemplo, em que os polinmios so substituidos por nmeros
inteiros:

O protocolo estabelece que o dividendo 12;

Antes de enviar uma trama, por exemplo correspondendo ao


nmero 526, efectuada a sua diviso por 12 e guardado o resto,
que 10;

A trama enviada inclui os dados (o nmero 526) e o CRC (o


nmero 10);

O receptor, quando recebe a trama, divide 526 por 12 e confirma


se o resto ou no igual ao enviado pelo emissor.

6.5 Controlo de fluxo


Torna-se necessrio efectuar controlo de fluxo quando o DTE emissor
pretende, sistematicamente, transmitir tramas a um ritmo superior ao que o
DTE receptor as pode aceitar. Tal pode ocorrer quando o emissor uma
mquina rpida e o receptor uma mquina lenta ou muito carregada de
processos. Nestas condies, o receptor acaba por comear a perder tramas.
A forma usual de evitar esta situao consiste em usar esquemas de
controlo de fluxo, por forma a sincronizar as velocidades de emisso e
recepo de tramas. Esta sincronizao requer um mecanismo de
informao de retorno, que permita ao emissor saber se o receptor se
encontra a receber as tramas a um ritmo adequado s suas possibilidades. O
mtodo geral passa pelo estabelecimento de regras bem definidas, por
exemplo em que o receptor informa o emissor de que pode transmitir a
trama seguinte ou um determinado nmero de tramas seguintes.

6.5.1 X-ON / X-OFF


Trata-se de um mtodo de controlo de fluxo dentro do canal de
transmisso (in-band flow control) usado em protocolos orientados por
caracteres. Se o controlo de fluxo for efectuado atravs de um canal de
sinalizao separado, trata-se de um mtodo de controlo de fluxo fora do
canal de transmisso (out-of-band flow control). Neste mtodo, quando o
receptor se encontra muito sobrecarregado, envia um caracter X-OFF ao
emissor, instruindo-o a cessar a transmisso de caracteres.

11
Redes e Comunicaes

Quando o receptor se encontra em condies de receber mais caracteres,


envia um caracter X-ON ao emissor, informando-o de que pode retomar o
envio de caracteres. Este tipo de protocolo ocorre, por exemplo, entre um
computador e uma impressora.

6.5.2 Janela deslizante


Este mecanismo (sliding window) baseia-se no acordo prvio entre emissor
e receptor quanto ao limite mximo de tramas que podem aguardar
confirmao no DTE emissor. A este limite chama-se janela de envio
(send window) de valor k:

LWE UWE
k=4

... N N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10
...
tramas transmitidas
tramas transmitidas tramas a aguardar
a aguardar
e confirmadas transmisso
confirmao

medida que cada trama transmitida, o limite superior da janela ou


Upper Window Edge (UWE) incrementado de uma unidade. De forma
semelhante, medida que cada trama confirmada, o limite inferior da
janela ou Lower Window Edge (LWE) incrementado de uma unidade. O
fluxo de envio de tramas do emissor para o receptor interrompido se:

UWE LWE = k

Assumindo uma transmisso livre de erros, k uma janela de tamanho fixo


que se move ao longo do conjunto total de tramas a transmitir. A
capacidade dos tampes de memria para armazenamento temporrio de
tramas no receptor denomina-se janela de recepo (receive window).

12

Você também pode gostar