Redes de Computadores
Camada de enlace
Tecnicas de correção de erros e serviços
Aula de Hoje
•
•
•
•
•
Camada de enlace
Técnicas de correção e detecção de erros
Protocolos da camada de enlace
serviços da camada de enlace.
Protocolos de acesso múltiplo
Camada de enlace
O Problema da Camada Física
A camada física possui muitos problemas,
pois os circuitos de comunicação produzem erros
ocasionais, além das taxas de dados finitas e do
retardo de propagação maior do que zero, do
momento que o bit é enviado ao momento que é
entregue. Estas limitações influenciam na
eficiência na transmissão de dados, então os
protocolos acima da camada física devem levar
esses fatores em consideração.
Camada de enlace
Camada de Enlace de Dados
A Camada de enlace é a camada 2 do modelo OSI, sendo
comprimida juntamente com a camada física no modelo TCP/IP na
camada Host/Redes. Ela é responsável por receber os pacotes da
camada de rede e os encapsula em quadros para transmissão. Cada
quadro contém um cabeçalho, um campo de carga útil, onde fica o
pacote IP) e um final de quadro.
Camada de enlace
• Ela
é
implementada
no
"adaptador" (ou Placa de interface
de rede, NIC), podendo ser uma
placa Ethernet, uma placa wi-fi
padrão IEEE 802.11a, etc.
• Esta conecta aos barramentos do
sistema hospedeiro transmitindo e
recebendo as requisições do
usuário.
• A camada é uma combinação de
hardware, software e firmware
(da placa).
Camada de enlace
Algumas das funções da camada de enlace são:
• Gerar uma Cadeia de bits deve ser organizada em conjuntos de bits
denominados quadros (frame);
• Detectar e, opcionalmente, corrigir os erros que por ventura ocorram no nível
físico. Esta detecção de erros é feita acrescentando-se uma sequência de bits
adicionais (FCS - Frame Check Sequence). A correção de erros é feita a través
do uso de bits de redundância, útil em enlaces onde o retardo de
transferência são elevados.
A camada de enlace tem como principais funções:
• Delimitar os quadros, definindo e reconhecendo os limites dos quadros;
• Efetuar o controle de erros e, opcionalmente, corrigir os erros;
• Controle de fluxo, compatibilizando a velocidade do transmissor e do receptor.
• Controle de acesso, gerenciando o acesso ao meio de transmissão.
• Fornecer serviços a Camada de Rede (conexão sem e com confirmação e
serviço orientado a conexão).
Camada de enlace
Delimitação de Quadros
Os quadros são definidos por vários métodos de enquadramento, como:
• Contagem de caracteres - os limites são dados em relação a um intervalo de
bits pré-definidos);
• Bytes de Flags - Usa caracteres especiais (flags) que indicam o início e o fim do
quadro (atualmente usa-se o mesmo flag);
Técnicas de detecção de erros
Técnicas de correção e detecção de erros
Como dito anteriormente, os meios de transmissão estão
susceptíveis a erros ocasionais, uma das funções da camada de enlace é
justamente a prevenção, detecção e correção de erros.
A detecção de erros é baseada na inserção de bits adicionais (bits
de redundância) na informação transmitida.
Bits de redundância
O Transmissor - Calcula os bits adicionais através de um algorítmo que
tem como entrada os bits originais. Então envia os bits originais e os bits
adicionais.
O Receptor - Recalcula os bits adicionais e os bits originais recebidos
utilizando o mesmo algoritmo, comparando-os.
Se os bits forem diferentes, detectou-se a presença de erro.
Técnicas de detecção de erros
FCS - Frame Check Sequence - Frequência de checagem de quadro.
O transmissor calcula e inclui um FCS no quadro que será
enviado, podendo ser um bit de paridade ou um código de
redundância cíclica (Cyclic Redundancy Check CRC). Ao receber o
quadro, o receptor calcula o FCS e o compara com o FCS enviado
pelo transmissor. Se iguais, a transmissão foi feita com sucesso,
senão, houve um erro e o quadro recebido com erro é descartado.
Técnicas de detecção de erros
Bit de Paridade
Consiste na inserção de um bit que informa se a quantidade
de bits 1 é par ou impar (0 para par e 1 para impar) chamado de bit
de paridade ao final de cada caractere de um quadro.
Ex:
11100001 - 4 bits 1, 4 é par, então ficará 111000010;
11110010 - 5 bits 1, 5 é impar, então ficará 111100101;
O problema é que se acontecer erro em mais de um bit o sistema
fica falho.
Técnicas de detecção de erros
CRC (código de Redundância Cíclica)
Consiste em um quadro de b bits representado por um
polinômio P em X de ordem b-1.
Ex: Quadro com 8 bits, polinômio de ordem 7.
11100010
polinômio gerado
1x^7 + 1X^6 + 1x^5 + 0x^4 + 0x^3 + 0x^2 + 1x^1 + 0x^0
polinômio final
x^7 + x^6 + x^5 + x^1
Técnicas de detecção de erros
Transmissor - Divide o polinômio P de ordem b-1 por um outro polinômio
G (gerador) de ordem n. O resultado é um terceiro polinômio R1 (resto da
divisão). O transmissor envia os bits originais(quadro) e o polinômio R1
(FCS - Frame Check Sequence);
Receptor – Gera o polinômio a partir dos bits da mensagem recebida e
divide pelo mesmo polinômio gerador utilizado pelo transmissor, o que
resulta em um polinômio resto R2, que é comparado com o R1 recebido.
O erro é detectado quando R2 difere de R1.
Os polinômios geradores padronizados são:
CRC-12: X^12 + X^11 + X^3 + X^2 + X + 1 - FCS de 12 bits;
CRC-16: X^16 + X^15 + X^2 + 1 - FCS 16 bits, usado na Europa.
CRC-CCITT: X^16 + X^12 + X^5 + 1 - FCS 16 bits, usado nos EUA.
CRC-32: X^32 + X^26 + X^23 + X^22 + X^16 + X^12 + X^11 + X^10 + X^8 +
X^7 + X^5 + X^4 + X^2 + X + 1 - FCS de 32 bits - Escolhido pelo IEEE 802
para ser utilizado em redes locais padrão ethernet.
Técnicas de correção de erros
Correção de Erros
Basicamente, a correção de erros é efetuada com a retransmissão dos quadros
defeituosos. Tem como Objetivo garantir transmissões confiáveis. Possui mensagens
de reconhecimento e quadros que podem ser:
Positivo: Indica que o quadro chegou corretamente.
Negativo: Indica que o quadro chegou com erro e deve ser reenviado.
Temporizadores de retransmissão
O transmissor utiliza um intervalo de tempo para que o reconhecimento do quadro
chegue de volta ao transmissor, evitando que este fique parado indefinidamente.
Numeração dos quadros
Os quadros podem ser transmitidos mais de uma vez, esta numeração distingue os
quadros originais das cópias retransmitidas.
O reconhecimento enviado ao transmissor pode ser um quadro de controle ou ir de
carona em um campo de controle de um quadro de dados enviado pelo receptor.
Técnicas de correção de erros
Algorítmos de correção de erros
Algoritmo de Bit Alternado
Transmissor só envia um novo quadro após receber
reconhecimento positivo do quadro anterior. O quadro é
retransmitido após um limite de tempo. Como o transmissor só
envia um novo quadro depois do reconhecimento do ultimo, basta 1
bit para diferencia quadros sucessivos: 1º bit 0, 2º bit 1, 3º bit 0, 4º
bit 1, etc.
Esta é uma solução simples, porém ineficiente, pois esta
espera por reconhecimento mantém o canal de comunicação
ocupado e sem uso.
Técnicas de correção de erros
Algoritmo de Janela Deslizante
Permite o transmissor enviar diversos quadros sem receber
o reconhecimento dos quadros anteriores, uma janela de
transmissão é um número máximo de quadros, devidamente
numerados, que podem ser enviados sem receber reconhecimento.
Caso haja o estouro de um limite de tempo há um erro na
transmissão. Através deste algoritmo o receptor envia um
reconhecimento cumulativo do quadro N que indica que os quadros
anteriores foram corretamente recebidos. Aumenta a eficiência de
utilização dos canais de transmissão.
Técnicas de correção de erros
Essa retransmissão pode ser:
Integral: Retransmite todos os quadros da janela ,caso algum apresente erro, a
partir do quadro que apresentou um erro. O problema é que vários quadros
enviados corretamente deverão ser retransmitidos.
Seletiva: Apenas os quadros os quais não houve resposta serão retransmitidos, o
problema é que há uma complexidade maior para manter os quadros na ordem
sendo retransmitidos fora de ordem.
Serviços da camada de Enlace
Serviços Oferecidos pela camada de Enlace
Serviço sem conexão e sem confirmação
Neste serviço a máquina envia quadros independentes ao
destino, sem que o destino confirme o recebimento dos quadros.
Nenhuma conexão lógica é estabelecida e não haverá tentativa de
recuperação do quadro caso este tenha sido perdido (correção de
erros).
Este serviço é apropriado onde a taxa de erros é muito baixa
e a recuperação fica a cargo das camadas superiores. Também é
utilizado para tráfego em tempo real. É bastante utilizado nas LANs.
Serviços da camada de Enlace
Serviço sem conexão com Confirmação
Não utiliza conexões lógicas e os quadros deverão ser
individualmente confirmados. É utilizado quando um pequeno volume de
dados deve ser transmitido de forma confiável. Este serviço economiza o
tempo de estabelecimento e encerramento de uma conexão.
Este serviço é útil em canais não-confiáveis, como sistemas sem fio. Utiliza
o Algoritmo de Bit Alternado para correção e detecção de erros.
Serviço orientado a conexão
Realiza o estabelecimento de conexão antes dos dados serem
transferidos. Cada quadro enviado pela conexão é numerado, garantido a
entrega sem erros, sem replicação e em sequência. Fornece aos processos
da camada de rede o equivalente a um fluxo de bits confiável. Utiliza o
Algoritmo de janela deslizante para transmissão dos quadros
Protocolos de Acesso Múltiplo
Protocolos de acesso múltiplo
São algoritmos que determinam como os nós na rede compartilham os
canais e como são distribuídas as mensagens por difusão (broadcast), ou seja,
define quando um host ou equipamento pode utilizar o meio para efetuar a
transmissão.
Estes algoritmos definem as regras para que haja a comunicação,
determinando quando e quais hosts podem ser acessados em um enlace com
múltiplos acessos ao meio (Topologia barramento). Neste ambiente existe o
problema da colisão, no qual o canal ou meio é utilizado ao mesmo tempo para a
transmissão de dois sinais distintos, o que ocorrerá na perda de ambos os sinais.
Os protocolos de acessos múltiplos tem como finalidade minimizar este tipo de
problema, coordenando o acesso ao meio para que as colisões não ocorram com
tanta frequência. Estes são divididos em três classes:
• Divisão do canal;
• Acesso aleatório;
• Revezamento.
Protocolos de Acesso Múltiplo
Divisão no canal
O canal é dividido em partes menores (partes de tempo, banda passante ou
codificação do sinal), onde um canal é dedicado a um host para uso exclusivo deste. O
problema é que há a perda de velocidade pois o canal ficaria ocupado.
Este protocolo pode utilizar:
Multiplexação por Divisão de Tempo - TDM: Compartilham o
tempo de transmissão, dedicando uma quantidade N de partes
de tempo, onde N é o número de computadores. Cada
intervalo de tempo é utilizado por um host para a transmissão
dos dados como um canal de comunicação por
compartilhamento de tempo.
Protocolos de Acesso Múltiplo
Acesso múltiplo por Divisão de Código - CDMA: Codifica
os dados com um código diferente associado a cada canal
e usa as propriedades físicas do meio para executar a
multiplexação. Como cada mensagem está codificada
diferentemente, apenas os hosts destinos entenderão a
mensagem origem.
Uma breve analogia com a fala humana
• TDM - Cada uma pessoa fala na sua vez, esperando o outro acabar de falar.
• FDM - Grupos separados usam meios de comunicação diferentes (fala, texto,
libras, etc.) de forma que uma conversa não interfira na outra.
• CDMA - Todo mundo fala junto, porém cada um utiliza um idioma distinto,
onde apenas aqueles que entendem o idioma poderão receber a mensagem.
Protocolos da camada de enlace
Acesso Aleatório
Quando o canal não é dividido, os hosts recuperam-se
das colisões através de algoritmos que implementam a
detecção de colisões, uma das vantagens de se utilizar este
processo é o ganho de velocidade.
Protocolos da camada de enlace
Estes algoritmos podem ser:
ALOHA: Permite que os usuários transmitam sempre que
precisarem. Naturalmente, haverá colisões, para contornar isto, o
transmissor escuta o feedback (ACK) de uma mensagem na saída do
canal para saber se o quadro foi destruído ou não. Caso haja colisão,
o transmissor reenvia o quadro perdido.
CSMA (Carrier Sense Multiple Access): Utiliza o princípio de
operação de escuta do canal (detecção da onda portadora) antes de
transmitir os quadros no meio. Caso haja uma transmissão sendo
executada, o host irá esperar um tempo e escutar denovo para
verificar se o canal está livre ou não. Estando livre, a transmissão é
realizada. Uma característica importante é que se um transmissor
enviar um quadro ao mesmo tempo que outro transmissor, o CSMA
irá parar a transmissão até que algum protocolo determine quem
deve transmitir primeiro.
Protocolos da camada de enlace
O CSMA pode ser:
Persistente: Escuta o canal e, assim que estiver livre, transmite a
informação. Caso ocorra colisão, o host espera um período de tempo
aleatório e volta a escutar o meio para tentar efetuar novamente a
transmissão.
Não Persistente: Não escuta o canal, só tenta efetuar a transmissão. Caso
haja colisão, o host irá esperar um período de tempo aleatório para tentar
novamente.
Carrier Sense Multiple Access with Collision Detection - CSMA/CD:
Adotado pelo padrão Ethernet IEEE 802.3. É amplamente utilizado nas
subcamadas MAC de LANs. Efetua a detecção de colisões gerenciando as
disputas pelo acesso ao meio. Quando um transmissor emite um quadro
por um meio, ele continua escutando a rede para ser certificar que
nenhum outro nó irá utilizar o meio ("ouvir enquanto fala"). Caso ocorra
uma colisão, todas a transmissão é interrompida e retornada em um
intervalo de tempo aleatório, com o intuito de evitar colisões sucessivas.
Protocolos da camada de enlace
Revezamento
Neste método os hosts se alternam em revezamento, onde o meio é
utilizado por um período de tempo diferente para cada transmissor relativo ao
tamanho do quadro a ser transmitido.
Pode ser do tipo:
Pooling: Consiste em uma central que inspeciona os nós de maneira circular por a
necessidade de transmissão, pois possui um nó central (mestre), que elimina as
colisões e os intervalos vazios, e permite trabalhar com uma quantidade máxima
de quadros. Possui um atraso na escolha, pois perde-se tempo para analisar
quem vai utilizar o meio para transmitir.
Slots: Neste método um slot passa por cada nó, verificando o meio. Utilizada na
topologia anel, é simplesmente a divisão do espaço em pequenos
segmentos(slots) onde se insere um bit de referência para saber se o meio está
ocupado ou não (bit 1 para ocupado, bit 0 para desocupado). Caso exista um nó
com um slot marcando ocupado, outro transmissor não utilizará o meio.
Bibliografia
• TANENBAUM, Andrew S. Redes de Computadores. 4ª Ed. Rio de
Janeiro: Campus, 2003.
• Soares, Luiz Fernando; COLCHER, Sérgio e SOUZA, Guido Lemos.
Redes de Computadores: Das LANs, MANs e WANs às redes ATM.
Campus, 5ª Ed.
• COMER, Douglas. Interligação de redes com TCP/IP, Vol 1. 5ª Ed.
Rio de Janeiro: Elsevier 2006.
Fim
Download

Protocolos de acesso múltiplo