Buscar

aula03

Prévia do material em texto

3ºAula
A CAMADA DE ENLACE
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
determinar a função dentro do modelo da camada de enlace;
definir as principais funções da camada de enlace.
Caros alunos e alunas!
Dando continuidade ao estudo do modelo OSI, nesta aula serão 
apresentadas as funções da camada de enlace.
Lembrem-se de que esta Aula foi preparada para que vocês não 
encontrem grandes dificuldades. Contudo, podem surgir dúvidas no 
decorrer dos estudos! Quando isso acontecer, anotem, acessem a plataforma 
e utilizem as ferramentas “quadro de avisos” ou “fórum” para interagir com 
seus colegas de curso ou com seu tutor. Sua participação é muito importante! 
E estamos preparados para ensinar e aprender com seus avanços.
Bons estudos!
95
Introdução a Redes I 26
Seções de estudo
1. Apresentação da camada de enlace
2. A função de delimitação de quadros
3. A função de detecção e correção de erros
4. A função de controle de fluxo
5. A função de controle de acesso ao meio
1
1. Introdução
A camada física não proporciona um canal de transmissão 
confiável, pois durante o transporte de bits do transmissor 
para o receptor podem ocorrer alterações devido a ruídos 
eletromagnéticos, perda de sincronismo, defeitos nos circuitos 
de transmissão, etc.
Uma das funções da camada de enlace é detectar, e se 
necessário, corrigir esses erros.
1.1 Principais funções da camada de enlace
As principais funções da camada de enlace são: agrupar 
os bits provenientes da camada física em quadros, detecção 
e correção de erros que eventualmente possam ter ocorrido 
na camada física, controle de fluxo da transmissão (evitar 
que um transmissor envie mais bits que um receptor possa 
processar). Outra função presente na camada de enlace é 
controlar o acesso ao meio de transmissão. Quando o meio 
de comunicação for compartilhado (redes por difusão), várias 
estações podem transmitir ao mesmo tempo, e com isso gerar 
o que em redes de computadores é chamado de colisões. 
Colisões alteram os dados transmitidos e os dados transmitidos 
são perdidos. Compete a camada de enlace controlar o acesso 
a esse meio compartilhado a fim de evitar colisões e no caso 
de sua ocorrência proporcionar a recuperação
1.2 Serviços oferecidos pela camada de enlace
A camada de enlace oferece três tipos de serviços: 
sem conexão e sem reconhecimento, sem conexão com 
reconhecimento e orientado à conexão.
O serviço sem conexão e sem reconhecimento é 
adequado às redes que possuem baixa taxa de erros no 
nível físico. O transmissor envia quadros ao receptor, não 
é necessário que o receptor confirme o recebimento desses 
quadros. Se um quadro for perdido, a camada de enlace 
não tentará recuperá-lo, essa tarefa será de responsabilidade 
das camadas superiores. Esse serviço é utilizado quando os 
atrasos nos dados causam mais danos do que os recebidos 
com falhas como, por exemplo, a fala humana.
O serviço sem conexão e com reconhecimento é 
utilizado quando se quer transmitir pequenas quantidades de 
dados de maneira rápida e confiável sendo responsabilidade 
da camada a correção de erros.
O serviço orientado à conexão garante que os quadros 
transmitidos serão entregues sem erros, na ordem que foram 
enviados e sem duplicação. O serviço orientado à conexão é 
realizado em três fases distintas: estabelecimento da conexão, 
transmissão dos dados e encerramento da conexão. Na 
primeira fase o transmissor e receptor negociam parâmetros e 
recursos para a transmissão. Na segunda fase, são transmitidos 
um ou mais quadros. Na terceira a conexão é desfeita e os 
recursos alocados são liberados.
Até aqui aprendemos que a camada de enlace existe para 
colocar uma ordem na transmissão, visto que a camada física 
apenas realiza a transmissão bruta dos bits, não se atentando 
à ocorrência de erros e controle de fluxo. A camada de enlace 
possui as seguintes funções:
enquadramento: agrupar os bits provenientes da 
camada física em quadros;
detecção e correção de erros: erros que 
eventualmente possam ter ocorrido na camada física 
são detectado e se possível serão corrigidos pela 
camada de enlace.
: evitar que um transmissor 
inunde o receptor com mensagens.
controle de acesso ao meio: compete a camada 
de enlace gerenciar os meios de transmissões 
compartilhados (redes por difusão) para que não 
ocorra colisões ou proporcione mecanismos que 
faça a recuperação da colisões.
Também aprendemos que a camada de enlace oferece 
três tipos de serviços:
utilizado 
em redes de alta confiabilidade e com baixas taxas 
de erros. O receptor não sinaliza se o quadro chegou 
com erro ou não. Compete às camadas superiores 
realizar essa verificação.
: nesse serviço 
o receptor sinaliza se o quadro chegou com sucesso 
ou não. Sendo competência da camada de enlace a 
detecção e recuperação dos erros.
: nesse serviço é estabelecida 
uma conexão entre o transmissor e o receptor onde 
são negociados parâmetros de transferência, os 
quadros são entregues na sequência correta e sem 
duplicação. Compete a camada de enlace realizar a 
verificação e a recuperação de erros.
2
A camada física transmite um fluxo contínuo de bits, 
durante essa transmissão um ou mais bits pode ter seu(s) 
valor(es) alterado(s). A quantidade de bits enviada pode não 
corresponder à quantidade de bits recebida. A camada de 
enlace agrupa os bits provenientes da camada física em 
quadros, adiciona a ele um cabeçalho que conterá alguma 
informação que venha a poder identificar se algum bit do 
quadro sofreu alguma alteração, ou se está faltando. Quatro 
métodos são utilizados para delimitar os quadros:
96
27
flags;
1. Contagem de caracteres
Essa técnica utiliza um campo no cabeçalho para 
especificar a quantidade de caracteres que o quadro contém 
(figura 2.1-a). A camada de enlace de destino saberá onde é o 
final do quadro através desse campo.
O problema nessa técnica é caso ocorra uma adulteração 
no valor do campo
de contagem de caracteres, o receptor perderá o 
sincronismo (figura 2.1-b).
Figura 2.1. Contagem de caracteres. (a) correto (b) incorreto. Fonte: Acervo Pessoal.
1.2 Caracteres delimitadores
Nesse método é utilizada uma sequência de caracteres 
especiais para delimitar o início e o final do quadro. Como, 
por exemplo, os códigos especiais ASCII: DLE (Data Link 
Escape), STX (Start of Text) e o ETX (End of Text). Uma 
sequência DLE-STX indica o início do quadro, enquanto 
uma sequência DLE- ETX indica o final. Caso uma dessas 
sequências fizer parte dos dados a serem transmitidos à 
camada de enlace transmissora insere um caractere DLE antes 
do DLE da sequência. Assim, quando a camada de enlace 
receptora receber e detectar a ocorrência de dois caracteres 
DLE, ela retirará o primeiro e incorporará os códigos especiais 
aos dados do quadro. A esse método chamados de inserção 
de caracter (char stuffing).
Atualmente, os quadros não são compostos por 
caracteres e sim bits, então a utilização dos dois métodos 
citados acima quase não é adotada.
Para delimitar o quadro escolhe-se uma sequência de 
bits (por exemplo, 6 bits 1 seguidos, 111111) para serem os 
delimitadores (flags). Para evitar a ocorrência dessas sequências 
de controle nos dados do quadro, é utilizada a seguinte técnica: 
após a ocorrência de cinco bits uns consecutivos, é adicionado 
um bit zero. A essa técnica damos o nome de inserção de 
bit (bit stuffing). Assim, dentro do pacote nunca ocorrerá uma 
sequencia de seis bits um.
Caso tenha que se transmitir a sequência de bits 
100111111101 (figura
2.2-a), a camada de enlace montaria o quadro conforme 
a figura 2.2-b. O receptor,
ao receber o quadro, saberá que após a ocorrência de 
cinco bits 1 ele deverá remover o bit 0 (destuff) seguinte (figura 
2.2-c).
Esse método é utilizado somente em redes em que 
há redundância na codificação de bits no meio físico como, 
por exemplo, na codificação manchester um bit de dados é 
codificado utilizando dois bits físicos. Somente as seguintes 
transiçõessão válidas: alto-baixo e baixo-alto. As transições 
baixo-baixo e alto- alto gerariam um símbolo inválido. Esse 
método é nomeado de violação, pois utiliza essas transições 
inválidas para marcar o início e o fim de um quadro como, por 
exemplo, HHLLHHLL, de acordo com a figura 2.3.
Figura 2.3. Delimitação de Quadro utilizando violação da camada física 
Camada física realiza somente a transmissão bruta dos 
bits. Compete a camada de enlace realizar a detecção e a 
recuperação desses erros. Para facilitar essa detecção de erros 
ela agrupa os bits a serem transmitidos em uma estrutura de 
dados chamada de quadros. Um quadro é constituído por um 
ou vários campos contendo informações de controle e outro 
campo contendo o dado a ser transmitido.
São utilizadas quatro técnicas de delimitação de quadros:
contagem de caracteres: nessa técnica o quadro é 
precedido por um campo que informa por quantos 
caracteres aquele quadro é formado. Assim se esse 
campo contiver o valor cinco logo os próximos cinco 
caracteres fazem parte desse quadro. o problema 
com essa técnica é no caso de haver uma alteração 
no valor do campo que informa a quantidade de 
caracteres.
caracteres delimitadores: essa técnica utiliza 
caracteres especiais para marcar o início e o final 
de um quadro. Como exemplo utilizamos dois 
caracteres especiais para marcar o início do quadro 
97
Introdução a Redes I 28
(dle e stx) e dois para marcar o final (dle e etx). 
Caso esses dois caracteres façam parte dos dados a 
serem transmitidos ela utiliza a técnica de inserção 
de caracteres, que consiste em colocar um caractere 
dle extra antes dos dois caracteres de controles que 
fazem parte dos dados. Por exemplo, se os caracteres 
dle etx fazem parte dos dados a serem transmitidos 
os seguintes caracteres serão transmitidos dle-dle-
etx. Ao receber esses caracteres a camada receptora 
perceberá os dois dle indicando que não se trata dos 
caracteres de controle indicando o final do quadro 
e sim de dois caracteres de dados. Ela retira um dos 
dle e armazena os outros dois caracteres.
flags: essa técnica utiliza basicamente a mesma lógica 
da anterior, só que ao invés de se utilizar caracteres 
que marcam o início e o final do quadro é escolhida 
uma sequência de bits que indicarão o início e o 
final do quadro. o mesmo problema acontece: o que 
fazer quando a sequência delimitadora fizer parte 
dos dados a ser transmitido? É utilizada uma técnica 
semelhante a adotada na técnica anterior, ao invés 
de ser inserção de caracteres se utiliza a inserção 
de bit. Após transmitir a sequência de controle é 
transmitido um bit 0.
: essa técnica 
é utilizada somente quando se utiliza a codificação 
manchester. O que indica o início e o final do quadro 
são códigos inválidos dessa codificação. Assim, ao 
receber uma sequência inválida da codificação 
manchester ela sabe que está iniciando o quadro e 
ao receber outra sinalização inválida ela saberá que o 
quadro terminou.
3
recuperação de erros
O mecanismo utilizado pela camada de enlace para 
verificar se ocorreu erro na transmissão de um quadro é 
adicionar uma sequência de bits a esses quadros. Esses bits 
adicionais são chamados de FCS (frame check sequence). O FCS 
é calculado através de um algoritmo que tem como entrada os 
bits do quadro. O receptor, ao receber o quadro, faz o mesmo 
cálculo e compara o FCS obtido com o que recebeu. Caso não 
sejam iguais, o quadro é descartado e, opcionalmente é 
enviado um aviso ao transmissor sobre o erro. O receptor 
pode também informar ao transmissor se o quadro chegou 
sem erros.
O nível de enlace pode também utilizar de bits de 
redundância que permitem não somente detectar que houve 
erro, mas também corrigi-los, não havendo necessidade de 
retransmissão dos quadros defeituosos. Esse mecanismo 
é útil quando o custo de utilização do enlace e o retardo de 
transferência são elevados como, por exemplo, em enlace de 
satélites.
1. Código de correção de erros
Esse mecanismo adiciona ao quadro a ser transmitido 
bits de redundância, com o propósito de não apenas detectar 
erros, mas também descobrir qual o bit que foi alterado.
Para entender como isso é possível vamos estudar 
o conceito de bit de paridade. O bit de paridade é um bit 
que é adicionado ao final de uma sequência binária, a fim de 
torná-la com uma quantidade par ou ímpar de bits de valor 
um. Por exemplo: suponhamos que desejamos calcular o bit 
de paridade de 10010. Se utilizarmos a paridade par, um bit 
de valor zero deverá ser acrescido (agora a sequência ficaria 
100100), caso fosse utilizado a paridade impar teríamos 
que acrescentar um bit de valor um (o resultado final da 
sequência tem que ter um número impar de bits com valor 
um), ficando a sequência 100101. O conceito de paridade é 
simples, mas não mostra onde está o erro. Ao transmitir a 
informação acima, suponhamos que ela chegou com o valor 
000100 (estamos utilizando a paridade par), calculado o bit 
de paridade, detectamos um erro (o bit de paridade é zero e 
deveria ser um), mas não informa qual o bit que foi alterado 
(por exemplo, 10000 e 01000, a paridade indica um erro, mas 
não indica em qual bit ocorreu).
Um método que ajuda a detectar em qual posição ocorreu 
um erro é o código de Hamming. Ele utiliza o cálculo de 
vários bits paridade que são inseridos em posições específicas 
na informação que vai ser transmitida. Segue o algoritmo:
os bits de paridade ocuparão as posições de potência 
de 2 (posições 1, 2, 4, 8, 16, 32, etc.)
as outras posições serão preenchidas com os dados 
a serem codificados (posições 3, 5, 6, 7, 9, 10, 11, 12, 
13, 14, 15, 17, etc.)
o cálculo dos bits de paridades par é efetuado da 
seguinte maneira: o bit de paridade da posição 1 
considerará os bits 1, 3, 5, 7, 9, 11, 13, etc. no cálculo 
do bit de paridade, ou seja, verifica um e pula um; o 
de posição 2, irá verificar 2 bits e pulará 2 bits (2 e 3, 
6 e 7, 10 e 11, 14 e 15, etc.). o de posição 4, verificará 
4 bits e saltará 4. e assim sucessivamente.
A figura 2.4 ilustra a codificação do dado a ser transmitido 
10011010.
Figura 2.4. Código de Hamming. Fonte: Arquivo Pessoal.
De acordo com a figura 2.3, o dado a ser transmitido 
será: 011100101010. Suponhamos que essa sequência ao ser 
98
29
transmitida o bit na posição 10 sofreu uma alteração de valor 0 
para 1. O receptor irá fazer o cálculo e perceberá que o bit de 
paridade na posição 2 e 8 estão errados. Se adicionarmos 2 a 
8 obteremos 10, que é a posição do bit que sofreu a alteração.
2. Correção de erros por retransmissão
Uma técnica que a camada de enlace utiliza para recuperar 
um quadro quando é detectado um erro é a retransmissão 
de quadros. O receptor ao receber um quadro enviará ao 
transmissor um quadro de reconhecimento informando se 
foi detectado ou não erro de transmissão naquele quadro. 
Caso o reconhecimento seja negativo (foi detectado o erro) o 
transmissor enviará novamente o mesmo quadro e o receptor 
descarta o quadro com erro.
Imaginemos a seguinte situação, o transmissor 
envia um quadro, o receptor detecta um erro e envia um 
reconhecimento negativo, mas esse quadro é destruído pelo 
meio físico, o transmissor ficará esperando para sempre por 
um reconhecimento que nunca chegará. Para contornar esse 
problema é utilizado um mecanismo chamado de timeout, que 
é um tempo de espera por uma resposta. Esse tempo deve 
ser suficiente para que um quadro seja transmitido, recebido 
e processado pelo receptor, o reconhecimento seja gerado, 
enviado e recebido pelo transmissor. Ou seja, o transmissor 
depois de enviado um quadro, esperará um intervalo de 
tempo pela chegada do reconhecimento, caso estoure esse 
tempo, ele enviará novamente o mesmo quadro. Suponha 
que o reconhecimento positivo de um quadro não chegue 
ao transmissor devido a um erro de transmissão. Depois de 
expirado o timeout o transmissor enviará o mesmo quadro 
novamente, o receptor ficará com duas cópias do mesmo 
quadro (duplicação). Algum mecanismo deveráser utilizado 
para que o receptor possa distinguir entre os quadros originais 
e as cópias reenviadas. Para isso os quadros são numerados.
Os dois mecanismos mais utilizados para recuperação de 
erros por retransmissão são: o algoritmo de bit alternado e 
reconhecimento contínuo.
a)Algoritmo de bit alternado
No algoritmo de bit alternado o transmissor envia um 
quadro e espera pelo reconhecimento do mesmo. Como 
podem ocorrer retransmissões de um mesmo quadro, eles 
devem ser numerados para que o receptor possa distinguir os 
originais das cópias, evitando assim duplicações de quadros. 
Como o transmissor só envia um quadro após receber o 
reconhecimento do anterior, é necessário somente um bit 
para numerar os quadros (quadro zero e quadro um). O 
transmissor envia o quadro com numeração zero, espera pelo 
seu reconhecimento, depois envia o quadro com numeração 
um, espera pelo seu reconhecimento, envia outro quadro com 
a numeração zero, e assim sucessivamente. Note que o que se 
repete são as numerações dos quadros e não os quadros, os 
números que identificam os quadros que se repetem (uns e 
zeros). Se tivermos mil quadros para transmitir, quinhentos 
serão identificados com o número zero e quinhentos com 
número um.
No exemplo da figura 2.5, temos o seguinte exemplo: o 
transmissor envia o quadro com numeração zero. Ao recebê-
lo, o receptor calcula o FCS e compara com o FCS recebido, 
como são iguais envia um reconhecimento (ACK) do quadro 
número zero; o transmissor ao receber o reconhecimento, 
envia outro quadro, numerado como um; o receptor 
detecta um erro e envia o reconhecimento do quadro anterior, 
número zero (note que um reconhecimento do quadro zero 
implica na transmissão pelo transmissor do próximo quadro, 
no caso o um); ao receber é verificado que não houve erros 
na transmissão, é enviado o reconhecimento do quadro, mas 
este é destruído durante a transmissão; decorrido o timeout 
o transmissor reenvia o quadro 1 novamente, que chega ao 
destinatário sem problemas e o reconhecimento é enviado, 
agora sem problemas, ao transmissor, que passa a enviar o 
próximo quadro, e assim, sucessivamente.
Figura 2.5. Algoritmo do bit alternado. Fonte: Arquivo Pessoal.
O método do bit alternado é uma solução simples, 
porém ineficiente na utilização do meio de comunicação, pois 
o canal de comunicação fica ocioso enquanto se espera pelo 
reconhecimento.
No método de reconhecimento contínuo o 
transmissor envia diversos quadros mesmo sem ter recebido 
reconhecimentos dos quadros anteriormente enviados. 
A quantidade máxima de quadros que pode ser enviada 
sem que tenha chegado um reconhecimento é chamada de 
largura da janela. O transmissor sabe que ocorreu um erro 
na transmissão de um quadro, através da não chegada do 
reconhecimento desse quadro (utilizando o timeout). Na 
retransmissão do quadro defeituoso, dois procedimentos 
podem ser implementados:
retransmissão integral (go back-n): são 
retransmitidos todos os quadros a partir do que não 
foi reconhecido.
retransmissão seletiva (selective repeat): são 
retransmitidos somente os quadros que não foram 
reconhecidos.
99
Introdução a Redes I 30
O receptor não precisa enviar o reconhecimento para 
todos os quadros que receber. Em vez disso, ele pode enviar 
um reconhecimento a cada x quadros que receber com sucesso. 
Ao reconhecer o quadro com numeração n indica que todos 
os anteriores foram recebidos com sucesso. Com isso, temos 
uma eficiência de utilização do canal de comunicação.
Na figura 2.5, temos um exemplo do funcionamento 
desses dois métodos. No exemplo (A), notamos que a largura 
da janela é igual a três. Se depois de enviados três quadros 
não chegar o reconhecimento ele enviará novamente esses 
quadros. O exemplo começa enviando o primeiro quadro 
identificado com a numeração zero, depois o quadro um e 
o dois. Nesse momento ocorre um erro com esse quadro, 
o receptor começa então a descartar os próximos quadros 
recebidos (três, quatro e cinco). Depois de decorrido o 
timeout (transmitiu três quadros e não obteve resposta) ela 
enviará novamente a partir do último quadro reconhecido, 
nesse caso o quadro um. Note que o receptor enviou um 
reconhecimento do quadro de número um, indicando que 
os quadros zero e um foram recebidos sem erros. Então 
são transmitidos os quadros dois, três, quatro e cinco. Note 
que a janela do transmissor avança a cada reconhecimento 
recebido. Ao transmitir novamente o quadro de número dois o 
transmissor esperaria até a transmissão do quadro de número 
cinco por algum reconhecimento. Note que ao transmitir 
o quadro de número três ele recebeu o reconhecimento do 
quadro de número dois. Agora ele irá esperar até o quadro de 
número seis por um reconhecimento. Ao transmitir o quadro 
de número cinco ele recebeu o reconhecimento do quadro de 
número quatro. Agora ele espera que até o quadro de número 
oito chegue algum reconhecimento.
No exemplo (B), o funcionamento por parte do 
transmissor é o mesmo, o que é alterado é a maneira como 
o receptor lida com os quadros recebidos após que há uma 
detecção de erro. Ao invés de descartar os próximos quadros 
ele os armazena e após recebido o quadro defeituoso ele 
reconhece o último armazenado. Com isso otimiza-se a 
transmissão. Note que no mesmo espaço de tempo no 
exemplo (A) foram transmitidos corretamente sete quadros 
e no (B) nove quadros.
Figura 2.5. (a) Retransmissão Integral (b) Retransmissão Seletiva - Fonte: Arquivo 
Pessoal.
Nesta seção aprendemos com é realizado a detecção 
e a correção dos erros que por ventura venham acontecer 
durante uma transmissão.
Isso é possível adicionando ao quadro que será enviado 
bits adicionais. Esses bits são chamados de FCS e são 
calculados através de algoritmos que utilizam como entrada os 
bits do quadro a serem transmitidos e geram como resultado 
o FCS que será armazenado no cabeçalho do quadro. Nesse 
ponto já notamos que o quadro já possui dois campos, um 
chamado cabeçalho que conterá informações de controle, 
nesse caso o FCS e outro contendo o dado a ser transmitido. 
Ao chegar ao receptor o mesmo processo é realizado, aplica-se 
o mesmo algoritmo aos bits do quadro que chegou (excluindo 
o cabeçalho) e é obtido o FCS, que é comparado o FCS do 
quadro que chegou. Se forem iguais, a transmissão aconteceu 
sem erros. Se não forem iguais, medidas de correção de erros 
deverão ser tomadas.
Os métodos vistos de detecção de erros foram:
bit de Paridade: trata-se de um algoritmo simples para 
detecção de erros. Consiste em contar a quantidade 
de bits com valor um do campo de dados. O campo 
FCS contém apenas um bit e deverá ser um ou zero 
de maneira que todo o quadro (incluindo o FCS) 
tenha uma quantidade par ou ímpar de bits com 
valor um. Notamos que existe a paridade par e a 
ímpar. A mesma paridade deve ser adotada tanto 
pelo transmissor quanto pelo receptor. O problema 
com esse método é caso ocorra erro na transmissão 
do FCS, ficando;
código de Hamming: utiliza o bit de paridade, ou melhor, 
vários bits de paridade para o mesmo quadro. Além 
de detectar o erro ele sinaliza em qual posição 
ocorreu o erro, permitindo que o erro seja corrigido;
métodos de correção por retransmissão: foram dois os 
métodos por retransmissão estudados: o do bit 
alternado e o de reconhecimento contínuo. Nesses 
dois métodos os quadros são numerados para 
que haja distinção entre os já enviados dos que 
ainda não foram. No método do bit alternado 
somente são utilizados as numerações zero e 
um para distinguir os quadros. Isso se deve ao 
funcionamento do algoritmo, pois o transmissor 
só enviará um novo quadro somente quando o 
anterior for reconhecido pelo receptor. Assim ele 
envia o quadro identificado com o número zero e 
espera pelo seu reconhecimento, caso ele receba o 
reconhecimento positivo pelo receptor desse quadro 
ele enviará o próximo quadro que é identificado com 
o número um. Caso o receptor tenha que sinalizar 
um erro ele envia o reconhecimento doquadro 
anterior, em nosso exemplo se houve um erro ele 
enviaria o reconhecimento do quadro identificado 
com o número 1. Caso ocorra o timeout será 
enviado novamente o quadro que está esperando o 
reconhecimento. Note que esse algoritmo também 
prove um mecanismo de controle de fluxo (que é 
o próximo item a ser estudado). O receptor nunca 
irá receber uma quantidade de quadros que não 
possa processar. Pois ao reconhecer um quadro ele 
100
31
automaticamente está sinalizando que está pronto 
para processar mais quadros. No método do bit 
alternado o meio de transmissão fica ocioso durante 
a espera do reconhecimento. Para solucionar essa 
ociosidade foram desenvolvidos outros métodos, os 
de reconhecimento contínuo. São dois os métodos: 
retransmissão integral e seletiva. Nesses métodos 
existe uma quantidade de quadro que é enviada sem 
que espere por um reconhecimento, a esse tamanho 
damos o nome de janela. Se após decorrido essa 
janela não ter chego o reconhecimento desses 
quadros ele irá transmitir novamente essa janela. O 
que diferencia os métodos de retransmissão integral 
e seletiva é a maneira como o receptor lida com os 
quadros recebidos após a detecção de um erro. Na 
integral ele descarta os quadros enquanto que na 
seletiva ele os armazena.
4
Outra função da camada de enlace de dados é a de 
compatibilizar as velocidades de transmissão entre o 
transmissor e o receptor, a fim de evitar que o transmissor 
envie quadros mais depressa que o receptor possa processar.
No protocolo de bit alternado esse controle é feito pelo 
próprio algoritmo, pois um novo quadro só é enviado após o 
recebimento de um reconhecimento (positivo ou negativo). 
Nos algoritmos de reconhecimento contínuo o controle de 
fluxo é feito utilizando-se o protocolo de janelas deslizantes.
No protocolo de janela deslizante o transmissor e o 
receptor têm uma janela de largura N. O transmissor a cada 
quadro que envia diminui o tamanho de sua janela, e a cada 
reconhecimento recebido aumenta o tamanho da janela. O 
receptor ao receber um quadro diminui a sua janela e ao 
enviar o reconhecimento, aumenta a janela.
 Figura 2.6. Protocolo de janela deslizante (n=4). Fonte: Arquivo Pessoal.
Veja o exemplo da figura 2.6, no momento inicial temos 
o receptor e o transmissor com suas janelas de tamanho 
iguais a quatro. Ao transmitir dois quadros o transmissor 
diminui sua janela em dois quadros e o receptor ao receber 
também diminui o tamanho de sua janela em duas posições. 
Ao realizar o reconhecimento dos dois quadros que recebeu 
ela irá aumentar sua janela em dois quadros e o receptor ao 
receber esse reconhecimento irá aumentar a sua janela de 
transmissão em dois quadros. Caso ele não tivesse recebido 
esse reconhecimento ele iria transmitir mais dois quadros (o 
tamanho atual de sua janela). Note que o receptor possui mais 
dois quadros reservados para esses novos quadros. Enquanto 
o receptor não reconhece os quadros a janela do transmissor 
não irá aumentar. Assim o receptor sinaliza se possui ou não 
recursos para processar novos quadros.
5
ao meio
Gerenciar o acesso ao meio de transmissão é outra 
função da camada de enlace. Em redes de longa distância o 
controle é mais simples, pois o enlace é ponto a ponto 
envolvendo dois roteadores.
Em redes locais temos várias máquinas compartilhando 
o mesmo meio de comunicação. Isso gera uma concorrência 
para a utilização do meio de transmissão. Caso duas máquinas 
transmitam ao mesmo tempo ocorre uma colisão e os dados 
transmitidos por ambas serão perdidos. Necessitamos utilizar 
de algum mecanismo para disciplinar o acesso ao meio de 
comunicação.
Devido à grande importância de gerenciar o acesso ao 
meio em redes locais, a camada de enlace foi divida em duas 
subcamadas, a LLC (cujas funções nós vimos anteriormente) 
e a subcamada de controle de acesso ao meio MAC (Médium 
Access Control).
As duas técnicas mais utilizadas para o controle de acesso 
ao meio são baseadas em acesso por contenção (aleatório) e 
passagens de permissão
A técnica de acesso por contenção é utilizada basicamente 
em redes com topologia em barramento. Dois métodos são 
utilizados ALOHA e a sua evolução o CSMA (Carrier Sense 
Multiple Access - Método de acesso múltiplo com detecção de 
portadora).
1.1 ALOHA puro
Foi desenvolvido na Universidade do Havaí, para 
conectar via satélite às unidades distribuídas por quatro ilhas.
A técnica utilizada por esse método é simples, um host 
quando necessita transmitir um quadro, ele transmite. Caso 
ocorra colisão (mais de um host transmitindo ao mesmo 
tempo), o quadro irá sofrer modificações e será descartado 
pelo receptor. O host transmissor irá detectar o erro pelo 
estouro de timeout de reconhecimento do quadro enviado. 
Ele esperará por um tempo aleatório e tentará novamente a 
transmissão. Note que o uso de um tempo aleatório e não 
prefixado evita que dois ou mais hosts tentem enviar ao 
mesmo tempo.
Essa técnica tem como desvantagem que uma 
comunicação em curso pode ser prejudicada por um host 
que tenta iniciar uma transmissão. A capacidade máxima de 
utilização do canal é de somente 18%. Isso significa que 82% 
da capacidade total do canal é desperdiçada devido às colisões.
1.2 ALOHA particionado
Nessa técnica uma estação mestre emite sinalizações em 
intervalos de tempo (o suficiente para transmitir um quadro). 
101
Introdução a Redes I 32
Todas as outras estações podem transmitir somente no início 
de cada intervalo. Caso ocorra uma colisão, a estação esperará 
um tempo aleatório e após decorrido esse tempo, terá que 
esperar pelo início do próximo intervalo para poder transmitir. 
Essa técnica é igual a anterior, ela minimiza a colisão entre uma 
estação que já está transmitindo com outra que quer iniciar a 
transmissão. Essa técnica faz com que as colisões ocorram de 
maneira ordenada.
A utilização do canal sobe para 36%, o dobro da anterior. 
Mas, mesmo assim é ineficiente quando se tem muitas estações 
querendo transmitir. A vantagem está na simplicidade dos dois 
métodos, com consequente baixo custo de implementação.
1.3 CSMA
Os métodos que utilizam essa técnica “escutam” o 
meio de comunicação para saber se alguma transmissão está 
ocorrendo antes de tentar o envio de algum quadro. Esses 
métodos são Np-CSMA, p-CSMA e CSMA/CD. A diferença 
entre os dois primeiros e o último é a forma de detecção 
da colisão, os dois primeiros através da não chegada do 
reconhecimento, enquanto o último fica escutando o meio 
durante toda a sua transmissão.
A diferença entre os dois primeiros métodos está no 
algoritmo que cada um utiliza ao encontrar o meio ocupado.
O Np-CSMA, ao “perceber” que o meio está sendo 
utilizado ele esperará por um intervalo de tempo aleatório 
para depois tentar um novo acesso.
O p-CSMA fica “escutando” o meio até que fique 
desocupado. Quando isso acontecer, ele transmitirá com 
probabilidade p (ou seja, dado um valor p entre 0 e 1, ele 
sorteará um valor x entre 0 e 1, caso x p, ele transmite), caso 
não consiga transmitir, espera por um intervalo de tempo 
aleatório e tenta transmitir novamente com probabilidade p, 
e assim fica até conseguir transmitir ou até que uma outra 
estação ganhe o acesso ao meio, voltando ao início do 
processo. A escolha do valor de p leva em conta vários fatores 
como: retardo de propagação, tamanho do quadro, tráfego na 
rede, taxa de transmissão, etc.
Uma derivação desse método é o CSMA 1-persistente, 
que ao detectar que o meio está livre, transmitirá de fato. Pode 
ocorrer colisão quando dois hosts estão escutando o meio 
enquanto um terceiro o está utilizando.
Esses dois métodos proporcionam uma taxa de utilização 
de 86% do meio, em baixo tráfego.
A ineficiência dos dois métodos acima citados diz 
respeito à ineficiência de utilização do meio quando ocorre 
uma colisão, tendo-se que esperar o reconhecimento negativo 
da colisão. No CSMA-CD o transmissor continua escutando 
o meio enquanto transmite, e ao detectar que está ocorrendocolisão, cessa a transmissão e injeta no meio sinais espúrios a 
fim de reforçar para as outras estações a ocorrência da colisão. 
Caso seja detectada uma colisão é utilizada a técnica de espera 
aleatória exponencial truncada na retransmissão.
A espera aleatória exponencial truncada é a mais utilizada 
e consiste em esperar por um tempo aleatório entre 0 e um 
limite t. Caso ocorram colisões sucessivas o limite é dobrado. 
E se após algumas retransmissões ainda acontecerem colisões, 
a transmissão é abortada.
Os métodos baseados em passagem de permissão são 
utilizados em redes com topologia em anel.
Essa técnica é baseada em um pequeno quadro (chamado 
de token) que fica circulando pelo anel. Uma estação poderá 
transmitir somente se possuir o token. De posse do token a 
estação transmite um quadro, que irá circular no anel até chegar 
ao destino. O destinatário checa se o quadro foi recebido com 
sucesso, coloca em um campo do quadro o reconhecimento 
(negativo ou positivo) de recebimento e transmite o quadro 
novamente pelo anel, que será recebido pelo transmissor, que 
após verificar que o emissor recebeu o quadro corretamente, 
o retirará do anel e passa o token para a próxima estação. Se 
a próxima estação não tem quadros a transmitir, passará o 
token para a próxima, e assim sucessivamente.
O anel pode ter uma estação mestre que tem as seguintes 
tarefas: verificar se o token não se perdeu, tratar falhas no anel, 
remover quadros corrompidos, etc.
O método de passagem de permissão pode também ser 
utilizado em redes com topologia em barramento. Nesse caso, 
o anel é formado de maneira lógica, ordenando os hosts por 
algum critério como, por exemplo, os endereços. Essas redes 
são chamadas de token bus.
O token é composto por 3 bytes: o primeiro(DI) indica 
o início do token, através de transições inválidas do código 
Manchester diferencial. O segundo(CA) é utilizado para 
controlar o acesso ao meio, sendo composto de agrupamento 
de bits em 4 categorias:
status (1 bit): indica se o token está livre ou não;
monitor (1 bit): indica se o token passou pela estação 
mestre. A estação mestre sempre ativa esse bit 
quando o token passar por ela;
prioridade (3 bits): indica a prioridade mínima dos 
quadros que podem ser transmitidos com a captura 
do token. O host com posse do token pode transmitir 
quadros com prioridade maior ou igual a desse 
campo.
reserva (3 bits): indica a prioridade do próximo token. 
Se uma estação deseja reservar o token ele deve 
atribuir esse campo à prioridade dos quadros que 
têm a transmitir, caso essa prioridade seja maior 
que a prioridade de reserva corrente. Todo host 
que aumentar a prioridade da reserva e capturar o 
token deverá liberá-lo com prioridade menor. Isso 
deve acontecer para que a prioridade de reserva não 
cresça indefinidamente.
O byte de tipo indica qual o tipo de informação o 
quadro carrega, se de dados ou de controle (utilizado para a 
manutenção do anel).
a) Manutenção do token
A primeira estação do anel a completar o ciclo de boot 
torna-se a estação mestre. Depois de completar o ciclo de 
boot a estação aguardará por um tempo de espera a passagem 
do token. Expirado esse tempo ela enviará pelo anel um 
quadro chamado CLAIM_TOKEN (requisitando a posse 
102
33
do token), caso ela receba esse quadro sem alteração, ela se 
tornará a estação mestre (significando que não existe no anel 
outra estação além dela mesma). Caso esse quadro passe por 
uma estação mestre, esta alterará o quadro para ACTIVE_
MONITOR_PRESENT, indicando que já existe uma estação 
mestre no anel.
As atribuições da estação mestre são: retirar do anel 
quadros corrompidos e órfãos (que não foram retirados pelo 
transmissor por falha de hardware ou software) e verificar se o 
token não se perdeu (a estação que o possui falhou em enviá-lo 
novamente no anel).
A estação mestre retira quadros do anel, monitorando o 
bit monitor do campo CA (se ele estiver ativo, significa que é a 
segunda vez que o quadro está passando pela estação mestre, 
já deu uma volta completa no anel, e deve ser retirado).
Caso uma estação demore muito tempo sem receber 
um token ela transmite um token de controle com o campo de 
informação tipo BEACON. Caso ela não receba esse token 
de volta, significa que o anel sofreu ruptura e fica em modo 
de espera, até restabelecer o anel novamente (indicado pela 
passagem de um token por ela).
Quando o meio físico é compartilhado como em 
comunicações half- duplex onde não existe um canal exclusivo 
para transmissão e outro exclusivo para recepção deve ser 
adotado mecanismo que venham a prevenir ou que venha 
a prover mecanismos de recuperação de transmissões 
simultâneas. Sabemos que as transmissões são sinais elétricos 
e se duas estações transmitem ao mesmo tempo esses sinais se 
somarão produzindo um terceiro sinal que será desconhecido 
por ambas as estações.
Existem dois tipos de métodos para controlar o acesso 
ao meio, os por contenção e os por passagem de permissão.
Os métodos por contenção são utilizados em topologia 
de barramento. Temos os métodos ALOHA e a sua evolução 
o CSMA.
No método ALOHA a estação quando possui dados a 
transmitir ela transmite, caso outra estação também transmita 
ao mesmo tempo ocorrerá uma colisão. O receptor não irá 
receber o quadro transmitido consequentemente não irá 
gerar um reconhecimento. O transmissor ao não receber o 
reconhecimento dentro de certo período de tempo (timeout) 
irá esperar por um período aleatório e transmitirá novamente. 
O segredo está nesse período aleatório que não será igual 
a todas as estações, ou seja, umas esperarão mais e outras 
menos para transmitir novamente. Com isso as chances de 
ocorrer uma nova colisão diminuem, mas se houver muitas 
estações no barramento a probabilidade aumenta. Existem 
duas variações do método ALOHA, o puro e o particionado. 
O que difere ambos é que no particionado existe uma estação 
central que emite pulsos periódicos. As estações só podem 
transmitir quando recebem esse pulso. Assim quando ocorrer 
uma colisão o disparo do tempo aleatório só poderá ser feito 
ao receber o pulso. Com isso previne-se a ocorrência de 
colisões no início de uma transmissão.
Os métodos CSMA são derivados do ALOHA. O que 
os diferem é que o CSMA não transmite de imediato. Ele 
primeiro verifica se alguma transmissão está em curso. Somente 
no caso do meio de transmissão estar livre (não foi percebida 
uma transmissão) é que ele irá transmitir. As diferenças entre 
os diversos métodos CSMA está nessa maneira como cada 
um reage ao detectar o meio livre. O método np-CSMA ao 
perceber o meio livre sorteia um valor e espera decorrer esse 
tempo para poder transmitir. O p-CSMA possui um valor 
previamente escolhido que está entre zero e um, ao detectar 
o meio livre ele irá sortear um outro valor entre 0 e 1, se esse 
novo valor for maior que o que ele possuía ele irá transmitir. 
Com isso aumenta-se a aleatoriedade. Diminuindo a chance 
de duas estações tentarem transmitir ao mesmo tempo. Já o 
método CSMA/CD é semelhante ao np-CSMA diferindo na 
maneira como é sorteado o valor e que ele fica escutando o 
meio para verificar se ocorreu uma colisão. Com isso ele não 
espera pelo timeout, aumentando o desempenho. Ao detectar 
uma colisão ele sorteará um valor entre 0 e t. Caso ocorra 
uma nova colisão ele dobrará o valor de t, ou seja, ele poderá 
esperar por mais tempo. Caso ocorra várias colisões sucessivas 
ele abortará o processo de transmissão.
Outro método de controle de acesso ao meio é o por 
passagem de permissão. O fundamento desse método está 
em permitir que somente uma estação transmita enquanto as 
outras somente escutam o meio. Isso é conseguido através de 
um quadro especial chamado de token. A estação que possui 
esse quadro está autorizada a transmitir. Após realizar a sua 
transmissão ela passará esse quadro a próxima estação. Essa 
técnica é utilizada em redes de topologia em anel. Existe uma 
estação, geralmente é a primeira estaçãodo anel que a ser 
ligada, que tem a função de monitorar o anel. Suas funções 
incluem: verificar se o token não foi destruído e retirar do anel 
pacotes danificados ou sem donos.
Retomando a 
1 Apresentação da camada de enlace
Na primeira seção foram apresentadas as funções da 
camada de enlace, que são:
Também aprendemos que a camada de enlace oferece 
três tipos de serviços:
2 A função de delimitação de quadros
103
Introdução a Redes I 34
Na seção 2, aprendemos sobre a função de delimitação 
de quadros. Vimos as quatro técnicas de delimitação de 
quadros:
flags;
3 A função de detecção e correção de erros
Nesta seção aprendemos com é realizado a detecção 
e a correção dos erros que por ventura venham acontecer 
durante uma transmissão.
Os métodos vistos de detecção de erros foram:
bit de paridade;
hamming;
os métodos por retransmissão estudados: o do bit alternado e 
o de reconhecimento contínuo.
4 
Nesta seção nos foi apresentado a função de controle 
de fluxo. Essa função existe para evitar que um transmissor 
rápido envie mais dados que o receptor possa processar.
Vimos que o algoritmo de bit alternado (que faz parte da 
função de correção de dados) também realiza o controle 
de fluxo. Pois o transmissor só irá transmitir outro quadro 
somente quando o receptor reconhecer positivamente o 
quadro anterior recebido.
O método de controle de fluxo apresentado foi o 
de janelas deslizantes. Nesse método existe o conceito de 
janela, que é uma certa quantidade de quadros. Do lado do 
transmissor essa quantidade de quadros diminui a cada quadro 
transmitido, ou seja, a janela diminui de tamanho. E só irá 
voltar a aumentar de tamanho ao receber o reconhecimento 
do receptor. Do lado do receptor a janela diminui a cada 
quadro recebido e aumenta somente quando reconhece os 
quadros já recebidos. Se o tamanho da janela for igual a zero 
o transmissor não irá transmitir, isso significa que o receptor 
ainda não processou os quadros já enviados.
5 A função de controle de acesso ao meio
Aprendemos que quando o meio físico é compartilhado 
como em comunicações half-duplex onde não existe um canal 
exclusivo para transmissão e outro exclusivo para recepção 
deve ser adotado mecanismo que venham a prevenir ou que 
venha a prover mecanismos de recuperação de transmissões 
simultâneas. Sabemos que as transmissões são sinais elétricos 
e se duas estações transmitem ao mesmo tempo esses sinais se 
somarão produzindo um terceiro sinal que será desconhecido 
por ambas as estações.
Existem dois tipos de métodos para controlar o acesso 
ao meio, os por contenção e os por passagem de permissão.
Os métodos por contenção são utilizados em topologia 
de barramento e são:
aloha puro;
aloha compartilhado;
p-csma;
np-csma;
csma/cd.
O método por passagem de permissão é utilizado 
em redes em topologia em anel. Nesse método o controle 
de acesso ao meio é realizado por um quadro chamado de 
token. Uma estação só transmite quando tem em sua posse 
tal quadro. A estação após transmitir seu quadro passa o token 
para a próxima estação do anel.
Existe no anel uma estação mestre que possui a função 
de monitorar o token (verificar se o mesmo não foi destruído, 
e em caso de destruição criar um novo token) e também 
retirar do anel quadros danificados e órfãos (quadros que não 
possuem donos). Geralmente a primeira estação do anel a 
completar a sequencia de boot é a estação mestre.
Vale a pena
Disponível em: <http://pt.wikipedia.org/wiki/Fre-
qu%C3%AAncia>.
Disponível em: <http://pt.wikipedia.org/wiki/Modu-
la%C3%A7%C3%A3o>.
Disponível em: <http://www.projetoderedes.com.br/
artigos/artigo_redes_digitais_plesiocronas. php>.
Disponível em: <http://pt.wikipedia.org/wiki/Comu-
nica%C3%A7%C3%A3o_s%C3%ADncrona>.
Disponível em: <http://pt.wikipedia.org/wiki/RS-
232>.
Disponível em: <http://www.projetoderedes.com.br/
artigos/artigo_modelo_osi.php>.
Disponível em: <http://forum.clubedohardware.com.
br/camadas-modelo-osi/104771>.
Disponível em: <http://pt.wikibooks.org/wiki/
Introdu%C3%A7%C3%A3o_%C3%A0_ c om uni c a 
%C3%A7%C3%A3o_e nt re _c om put a dore s_e _t e c 
nol ogi a s_de _ rede/O_modelo_OSI>.
Disponível em: <http://www2.dem.inpe.br/ulisses/
estudos/adm-redes/arquitetura-osi.htm>.
pena acessar
Minhas anotações
104

Continue navegando