Você está na página 1de 58

Camada de Enlace de Dados - LLC

Prof. Mauro Tapajs

Problemas para a Camada de Enlace


Erros nos circuitos de comunicao Atraso de propagao entre emissor e receptor Taxa de transmisso real finita Distores no sinal ao percorrer o meio Reconhecimento do destino desejado (saber o destino da comunicao)

Camada de Enlace
Host A
Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer

Host B
Application Protocol Presentation Protocol Session Protocol Transport Protocol
Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer

Network Layer Data Link Layer Physical Layer

Network Layer Data Link Layer Physical Layer

Router

Router

Escopo da Camada de Enlace de Dados

Comunicao confivel com o vizinho dentro de uma mesma tecnologia de rede

Camada de Enlace de Dados


Comunicao confivel entre dois dispositivos adjacentes numa rede (comunicao ponto-a-ponto) Cria quadros para transporte da informao Estabelece os limites de um quadro (enquadramento) Estabelece a comunicao e gerencia o link de comunicao ponto-a-ponto Detecta erros com quadros perdidos, danificados e duplicados, e age de acordo

Camada de Enlace de Dados


Controle de fluxo de quadros Controle na sequncia dos quadros Controla o acesso ao meio de transmisso compartilhado (MAC Medium Access Control) Alguns destes mecanismos destes tambm podem ser implementados na camada de transporte, mas a nvel fim-a-fim em toda a rede

Enquadramento
A camada fsica somente garante o envio de bits sobre a linha de comunicao Para executar deteco de erros e controle de fluxo, a camada de enlace agrupa os bits enviados em quadros definidos Cabe camada de enlace saber onde comeam e terminam os quadros (frames)

Enquadramento
Como delimitar estes quadros?
Time-gap Contador de caracteres no cabealho Delimitadores explcitos

caracter: sequncias DLE-STX e DLE-ETX com Caracter-stuffing Bits: sequncias 01111110 com Bitstuffing

Violaes de cdigo da camada fsica

Enquadramento: Contador de Caracteres

Campo de controle indicando nmero de caracteres

Um campo no cabealho do quadro indica quantos carateres existem neste quadro

Enquadramento: Delimitadores explcitos

Delimitadores de quadro (caracteres especiais)

Delimitadores explicitamente indicam o incio e fim do quadro atravs de uma sequncia prdefinida

Criao do Quadro (Frame)


Camada de Rede
Mapeamento um para um

Camada de Enlace de Dados

Delimitao dos extremos do Quadro Informao de controle (cabealho) PDU de camada de rede (pacote)

Stuffing
Caracterstuffing

Bit-stuffing

Exemplo: Caracter Stuffing PPP


Dados originais a serem transmitidos I am a DLE jerk trying to DLE ETX crash your network!

Delimitao e Caracter Stuffing

DLE

STX I am a DLE

DLE

jerk trying to DLE

DLE

ETX crash your network! DLE

ETX

Retirada dos delimitadores e Caracter Unstuffing

I am a DLE

jerk trying to DLE

ETX crash your network!

Exemplo: Bit Stuffing HDLC


Sequncia de bits original 00110010111111100010100

Delimitao e Bit Stuffing

0111111000110010111110110001010001111110

Retirada dos delimitadores e Bit Unstuffing

00110010111111100010100

Transmisso com erros e perdas de quadros

Controle de Fluxo
Assegura que uma entidade transmissora no afogue uma entidade receptora com dados (diferentes taxas de transmisso e recepo) Os protocolos estabelecem quando se pode transmitir quadros Estabelecimento de uma disciplina de comunicao

Controle de Erros
Nenhum link fsico perfeito e imune a falhas e erros Bits podem ser corrompidos Podemos detectar erros e tentar corrigi-los ou pedir retransmisso Normalmente cdigos que permitem deteco e correo de erros oneram muito o protocolo de enlace que os implementam Opo comum: pedir retransmisso de quadros danificados ou ausentes

Controle de Erros
Um quadro intil se teve bits alterados:
Checagem de paridade - deteco de erros em apenas 1 bit, alto overhead (1 bit de paridade para cada byte = 12,5%) Cdigos Polinomiais Ex.: CRC (Cyclic Redundancy Check) efetua operaes matemticas para detectar erros em rajadas - mais eficiente!

Ou foi perdido:
Mecanismos de controle (ARQ Automatic Repeat Request):
Confirmao positiva (ack) Retransmisso depois de Timeout Retransmisso depois de confirmao negativa (nack)

Controle de Erros: Paridade


Mensagem 0011 1000 0101 1000 Bit de Paridade 1 (mpar) 0 (mpar) 0 (par) 1 (par)

CRC
Usam um polinmio padro G de ordem r definido para executar uma operao matemtica sobre os dados

CRC-12: x12 + x11 + x3 + x2 + x1 + 1 CRC-16: x16 + x15 + x2 + 1 CRC-CCITT: x16 + x12 + x5 + 1


Clculo: sobre m bits de informao da mensagem M se insere r bits zero ao final gerando xrM Divide-se xrM pelo polinmio G gerando um nmero e um resto (xrM/G = num + resto, n) Transmite-se T=xrM - n ( = mensagem e CRC ao final ) Na recepo, divide-se T por G. Este resultado deve dar um resto igual a zero. Resto [ T/G ]=0

CRC
O clculo na recepo imediato logo que se receba a mensagem Por este motivo, os CRC's so colocados ao final da mensagem Quanto maior o polinmio (ordem) menor probabilidade de erros no serem descobertos pelo teste Polinmios de ordem r detectam erros em rajadas de comprimento at r bits Implicam em baixo overhead Fcil implementao em hardware

CRC

Protocolo Stop-andWait
Ineficiente, principalmente para longas distncias e taxas altas de transmisso

Stop-and-Wait O que acontece se uma mensagem ou ACK no chegar?


Tempo
Dados

ACK

Stop-and-Wait Quadros Duplicados na Recepo


Tempo
Compre 10 Pikachus!

ACK

Onde est o ACK?

Compre 10 Pikachus!
Tempo Expirado

Comprar 20?

Stop-and-Wait Uso de Nmeros de Sequncia


Dados

1
ACK

Onde est o ACK?

Dados
Timed Out

Duplicata!

Exemplo: Stop-and-Wait
Neste exemplo, um quadro confirmado atravs de um ACK com o nmero do prximo esperado (o quadro de nmero 0 confirmado por um ACK de nmero 1 ACK1)

Protocolos de Janela Deslizante


Melhor utilizao da banda Utilizao do recurso de piggyback (poucos bits a mais no cabealho) A idia bsica manter nmeros de sequncia que indicaro quais quadros podero ser enviados e quais ainda no (conceito de janela de transmisso)

Protocolos de Janela Deslizante


Nmero de Sequncia: cada quadro possui um nmero sequencial que incrementado a cada novo quadro criado e enviado Janela de Transmisso: mantm os nmeros de sequncia e quadros j enviados porm ainda no confirmados Janela de Recepo: mantm os nmeros de sequncia para quadros que se permite receber Tamanho da Janela de Transmisso: o nmero mximo de quadros que se pode transmistir sem receber confirmaes do receptor Tamanho da Janela de Recepo: o nmero mximo de quadros que se pode receber antes do envio de uma confirmao ao transmissor

Exemplo: Protocolos de Janela Deslizante

Protocolo de Janela Deslizante de Tamanho 1

(n. sequncia, n. ACK, n. quadro)

Protocolo de Janela Deslizante de Tamanho 1 (Problema com os timeouts)

Janela Deslizante

Janela Deslizante

Protocolos de Janela Deslizante


As janelas de recepo e transmisso no necessariamente possuem os mesmos limites Os nmeros de sequncia que esto dentro da janela de recepo so os quadros que o destino recebeu mas no confirmou ainda Qualquer quadro recebido com numerao fora da janela de recepo descartado Tamanho mximo da janela de transmisso implica no tamanho de memria (buffers) na transmisso Piggybacking - Como os links de comunicaao normalmente esto em configurao full-duplex podemos usar o trfego que est vindo para transportar ACKs do outro lado para confirmar o trfego que est indo

Protocolos de Janela Deslizante


Tamanhos maiores da janela aumentam a eficincia quando o atraso de propagao grande (evita que o canal fique ocioso por muito tempo) Pipelining tcnica de enviar vrios quadros dentro da janela de transmisso (maior que 1 claro!), aproveitando melhor a banda do canal Problema: o que fazer quando uns dos quadros da sequncia perdido?

Erros!!!
Duas estratgias para retransmisso de quadros em protocolos de janelas deslizantes:
Go-back-N : pede-se a retransmisso de todos os quadros desde o de nmero N Selective-repeat : pede somente a retransmisso dos quadros que no chegaram. Aproveita-se quadros que foram recebidos com sucesso mesmo que fora de sua ordem

Go-Back-N com Janela de Rx igual a 1


Se houver falha em algum dos quadros, todos a partir dele devem ser reenviados Se a taxa de erros alta, muita banda disperdiada

Go Back n
Intervalo de timeout Transmissor 0 Tamanho de Janela Mximo = 8

2
A CK 1

3
A CK 2

5
A CK 5

6
ACK 6

Receptor Tamanho de Janela Mximo = 8

Descartado pelo receptor

Quadro com erro!

Tempo

Selective Repeat
Se houver falha em algum dos quadros, somente o quadro falho reenviado Janela de recepo de tamanho maior que 1 Utiliza muita memria para armazenar todos os quadros recebidos corretamente, e processamento adicional para reenviar quadros selecionados e reinseri-los na posio correta

Selective Repeat
Intervalo de timeout Transmissor 0 Tamanho Mximo de janela = 8

2
ACK 1

3
ACK 1

2
A CK 1

5
ACK 4 ACK 5

6
ACK 6

Receptor Tamanho Mximo de janela= 8

Armazenado pelo receptor Quadro com erro! Tempo

Protocolos de Janela Deslizante e Estratgias de Retransmisso

Protocolos de Janela Deslizante - Observaes


A faixa de nmeros de sequncia deve ser bem maior que o tamanho da janela de transmisso para evitar ambiguidades O receptor dever ter um nmero de buffers e timers igual ao tamanho de sua janela Envio de naks confirmaes negativas indicam que determinado quadro NO chegou - controle de erros mais sofisticado

Redes Ponto-a-Ponto
H muito tempo muitas topologias so baseadas em redes ponto-a-ponto (por exemplo interfaces RS232) A maior parte da infra-estrutura de WAN na Internet baseada em enlaces distantes ponto-aponto Milhares de pessoas se conectam em redes (no somente a Internet) usando um modem e uma linha dial-up numa tpica configurao de rede ponto-a-ponto

Camada de Enlace de Dados

Protocolos de Enlace de Dados (Comunicao Ponto-a-Ponto)


HDLC Baseado no SDLC desenvolvido pela IBM para sua arquitetura SNA (Mainframes) e serviu de base para muitos dos protocolos de enlace ponto-a-ponto SLIP Pioneiro e muito simples PPP Desenvolvido pelo IETF em resposta aos problemas apresentados pelo SLIP

SDLC

Configurao bsica de uma rede SDLC (Mainframe IBM)

HDLC - High-level Data Link Control


Padro ISO (3009 e 4335) Verses adaptadas do ITU-T (LAP e LAP-B X.25) e IEEE (802.2) alm de outras verses Orientado a bits Pode ser usado em links half e full-duplex e em redes comutadas por circuitos ou por pacotes Define estaes primrias (envia comandos), secundrias (responde a comandos) e combinadas (dupla funo) Topologias possveis: Ponto a ponto (primria e secundria)e multiponto (1 primria e vrias secundrias)

HDLC

Prembulo - fixos no incio e fim do quadro usando bit stuffing. So transmitidos continuamente, mesmo se no h nada a transmitir Endereo o endereo do secundrio, so usados quando existem linhas com mltiplos terminais Controle controle de fluxo e erros Checksum pode ser acertado um checksum de 32 bits tambm

Operao do HDLC
O protocolo utiliza um algoritmo de janela deslizante de tamanho 3 bits (0 a 7) As confirmaes so feitas por piggybacking indicando o nmero esperado do prximo quadro esperado (campo control) Existem 3 tipo de quadros diferentes (o campo control diferente para cada um):
Information Supervisory Unnumbered

Quadros HDLC Campo Control

Information : dados (piggybacking de controle de fluxo e erros) P/F: resposta imediata exigida pela primria (P) ou ltimo quadro da resposta da secundria (F)

Supervisory (usado quando no houver piggybacking) : vrios tipos: 0ACK, 1-NACK, 2Receive Not Ready, 3Selective Reject

Unnumbered : controle do protocolo (define modos de operao, inicializao do enlace, reset, desconexo, etc)

SLIP - Serial Line IP


Simples Desenvolvido para interconectar estaes SUN Internet Basicamente so enviados pacotes IP delimitados por um caracter especial (flag byte) Suporta somente IP e deve saber previamente os endereos IP de cada lado No um padro Internet (muitas verses distintas)

PPP Point-to-Point Protocol


Existncia de muitos links ponto-a-ponto IP - demanda feita ao IETF, padronizado na RFC 1661 Orientado a caracter Usado tanto em linhas dial-up como em enlaces entre roteadores envio de datagramas sobre links ponto a ponto Oferece:
-

Encapsulamento sncrono e assncrono (mesmo do HDLC) Compresso de cabealhos de camada 3 Suporta mltiplos protocolos de rede e multiplexao deles Negociao de opes a nvel de link fsico e de camada 3

Formato do Quadro PPP

Byte flag character stuffing (01111110) Endereo fixo, no prev endereos de enlace Controle por default, no faz controle de erros e fluxo. Pode fazer se houver acordo, usando este campo Protocolo cdigo que identifica o protocolo sendo transportado na rea de dados Checksum FCS (Frame Check Sequence)

Caracter Stuffing PPP

PPP Point-to-Point Protocol


Dois componentes bsicos LCP Link Control Protocol Possui quadros de formato prprio negociados e explicitamente indicados (tipos: estabelecimento, terminao e manuteno) nico estabelece, configura e testa a conexo de enlace Possui mecanismos para a negociao de parmetros PPP Tem funes de teste de qualidade do link Desfaz conexes desnecessrias NCP Network Control Protocol Vrios para os vrios tipos de protocolos de rede que PPP suporta (IP IPCP - IP Control Protocol, IPX, etc) Especfico do protocolo de rede sendo usado Negociao de parmetros especficos do protocolo de rede

Exemplo: Linhas Dial-up

Outros Protocolos de Enlace


LAPB muito semelhante ao HDLC (mesmo formato de quadro) e usado pelo ITU-T como parte do padro X.25 LAPD usado pelo ITU-T no padro para ISDN (canal D de 16 kbps) LAPF usado no padro Frame Relay (rede de pacotes de alta velocidade) IEEE 802.2 usado com LAN's IEEE 802 ATM rede de alta-velocidade baseada em quadros de tamanho fixo (clulas). Funes de camada de enlace prprias e mescladas com funoes de outras camadas