Você está na página 1de 42

Camada de Enlace de Dados

Redes de Computadores
3. Camada de Enlace de Dados Elvio Leonardo
DIN/CTC/UEM

2008

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Fun c oes Principais


Lidar com erros de transmiss ao Regular o uxo de dados Enquadramento:

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Fun c oes Principais


Divide informa c ao em quadros:
Verica se quadros chegaram corretamente Caso contr ario:
Descarta quadro e Solicita retransmiss ao somente do quadro e n ao de toda a informa c ao

Servi cos oferecidos ` a Camada de Rede:


Servi co sem conex ao e sem conrma c ao Servi co sem conex ao com conrma c ao Servi co orientado a conex oes com conrma c ao

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Enquadramento com Contador

(a) recep c ao sem erros (b) recep c ao com erros

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Enquadramento com Byte Stung

(a) quadro delimitado por ag bytes (b) exemplos de seq u encias de bytes antes e depois do stung

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Enquadramento com Bit Stung


Permite caracteres com qualquer n umero de bits Cada quadro come ca e termina com uma seq u encia padr ao
Exemplo: 01111110

Caso o padr ao aconte ca no campo de dados, bits s ao inclu dos para quebrar a seq u encia

(a) seq u encia original (b) seq u encia ap os bit stung (c) seq u encia ap os de-stung

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Detec c ao e Corre c ao de Erros


Existem c odigos detectores de erros e c odigos detectores e corretores de erros C odigo adicionam redund ancia
Seja k o n umero de bits de informa c ao Seja r o n umero de bits adicionados para prote c ao Seja n = k + r o n umero total de bits Portanto, das 2n palavras poss veis utilizam-se apenas 2k

Hamming Distance (Dist ancia Hamming) = DH (w1 , w2 )


N umero de bits diferentes entre as palavras w1 e w2

A Dist ancia Hamming de um c odigo e a menor dist ancia d entre quaisquer duas palavras do c odigo Detec c ao de n bits errados
Dist ancia Hamming do c odigo = n + 1

Corre c ao de n bits errados


Dist ancia Hamming do c odigo = 2n + 1
Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Paridade
Acrescenta 1 bit ` a palavra de informa c ao de maneira que o n umero de bits com valor 1 na palavra transmitida que par (ou impar)
Exemplo: 10101 + 1 = 101011 (para paridade par) Exemplo: 10101 + 0 = 101010 (para paridade mpar)

No receptor, a informa c ao recebida est a errada quando o n umero de bits com valor 1 na palavra recebida n ao corresponde ao esperado A Dist ancia Hamming deste c odigo e d = 2 e portanto capaz de detectar erro em 1 bit, mas incapaz de corrigir qualquer erro
Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Repeti c ao
Repete cada bit n vezes
Exemplo (com n = 3): 1 + 11 = 111

No receptor, se os bits n ao aparecem em trincas signica erro A Dist ancia Hamming do c odigo e d = 3 e portanto ele e capaz de detectar erros em at e 2 bits e corrigir erro em 1 bit
Exemplos para transmiss ao de 111:
Erro em 1 bit: Recep c ao de 110 e corrigido para 111 e e corretamente decodicado como bit de informa c ao 1 Erro em 2 bits: Recep c ao de 100 e corrigido para 000 e e incorretamente decodicado como bit de informa c ao 0

C odigo ineciente (neste caso, reduzindo a vaz ao em 3 vezes ou redund ancia de 67% para apenas d = 3)
Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

C odigos de Hamming
C odigos de bloco criados por Richard Hamming, com dist ancia d = 3 (portanto corrige erros em 1 bit e detecta erros em at e 2 bits)
Bits de redund ancia = r (r 2) Bits de informa c ao = k = 2r r 1 Comprimento total = n = k + r = 2r 1

Exemplos:
r = 2, n = 3 e k = 1 (redund ancia de 2/3 67%) r = 3, n = 7 e k = 4 (redund ancia de 3/7 43%) r = 4, n = 15 e k = 11 (redund ancia de 4/15 27%) r = 10, n = 1023 e k = 1013 (redund ancia de 10/1023 1%) Eci encia do c odigo aumenta com o comprimento

Posi c ao dos bits:


Bits de redund ancia = m ultiplos de 2 = 1, 2, 4, 8, . . . Bits de informa c ao = demais posi c oes
Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

C odigos de Hamming
Exemplo:
C odigo de Hamming com n = 15, k = 11 e r = 4
posi c ao bits informa c ao di paridade p1 paridade p2 paridade p3 paridade p4 transmitido recebido paridade p1 paridade p2 paridade p3 paridade p4 corrigido 1 2 3 4 p1 p2 d1 p3 1 X X X X X 1 1 E 0 0 E 1 1 X X 1 1 5 6 d2 d3 0 0 X X X X 0 0 X X 0 0 0 X X 0 7 8 d4 p4 1 X X X X 1 0 1 0 X X X E 1 0 9 10 d5 d6 0 0 X X X 0 0 X X 0 0 X X 0 X 0 11 d7 0 X X X 0 1 X X X 0 12 d8 1 13 d9 1 X X X 1 1 X X X 1 14 15 d10 d11 0 0 X X X X X X X 0 0 0 0 X X X X X X X 0 0

X X 1 1

X 1 0 1 1

X X 1

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Cyclic Redundancy Check (CRC)


O que e melhor: corrigir ou apenas detectar? Exemplo:
Enlace com taxa de erro de bit de 106 (1 bit errado a cada 106 = 1.000.000) Comunica c ao em blocos de 1000 bits Corre c ao de erros simples:
Utilizando C odigo de Hamming, r = 10, n = 1023 e k = 1013 Custo da corre c ao de aproximadamente 1%

Detec c ao de erros simples:


Utilizando 1 bit de paridade por bloco, custo de 0,1% Retransmiss ao de blocos errados (1 a cada 1000 blocos), custo de 0,1% Custo total de 0,2%
Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

CRC
C odigos c clicos utilizados na detec c ao de erros Produz um checksum que e enviado com a informa c ao Consegue detectar:
qualquer polin omio de erro E (x ) que n ao e divis vel por G (x ) qualquer erro simples desde que o polin omio gerador G (x ) tenha 2 ou mais termos qualquer erro duplo cuja dist ancia seja menor que a ordem de G (x ) qualquer erro de um n umero mpar de bits desde que G (x ) seja m ultiplo de (x + 1) erros em rajadas com comprimento at e a ordem de G (x ) desde que G (x ) tenha o termo x0

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

CRC
Representa c ao
C odigo descrito pelo polin omio gerador G (x ) de ordem r Informa c ao descrita pelo polin omio M (x ) Opera c oes em m odulo 2, sem empr estimo na subtra c ao ou carregamento na adi c ao

Opera c ao
Acrescentar r bits 0 ao polin omio M (x ), isto e, x r M (x ) r Realizar a divis ao x M (x )/G (x ) e transmitir o resto desta opera c ao junto com a informa c ao

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

CRC

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

CRC

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Specication and Description Language (SDL)


Recomenda c ao ITU Z.100 Linguagem de especica c ao para sistemas reativos distribu dos, inicialmente para sistemas de telecomunica c oes, mas que hoje tem aplica c ao mais ampla Possui representa c ao gr aca e textual Possui linguagem formal para especica c ao clara, precisa e sem ambig uidades Pode ser utilizada em ferramentas de gera c ao autom atica de c odigo Pode ser utilizada em ferramentas de simula c ao de sistemas Dene padr ao p ublico (n ao propriet ario)
Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

SDL: Sistema
Sistema e composto de blocos conectados por canais Canais carregam sinais entre blocos e com o exterior

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

SDL: Bloco
Bloco e composto de processos conectados por canais Canais carregam sinais entre processos e com o exterior

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

SDL: Processo
Processo cont em a m aquina de estados
Processo consome e produz sinais (consome est mulos e produz respostas)

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

SDL: Processo
Processo cont em tarefas, decis oes e procedimentos

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

SDL: Procedimento
Procedimento e equivalente a subrotinas

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Message Sequence Chart (MSC)


Utilizado para mostrar o comportamento din amico do sistema atrav es de seq u encias de mensagens

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Protocolo Simplex Sem Erros e Sem Restri co es

nico

nico

pacote

quadro

quadro

pacote

Transmissor

Receptor

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Protocolo Simplex Stop-and-Go Sem Erros

vazio

espera

vazio

pacote

ack

pacote

ack

quadro

quadro

trata erro

confirma

ack

espera

espera

vazio

pacote

Transmissor

Receptor

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Protocolo Simplex Stop-and-Go Com Ru do


seq = -1

vazio

espera

pacote

pacote

ack

timeout

incr(seq)

trata erro

cancela tempor.

cancela transm.

cnt_tx < max?

quadro (seq) inicia tempor. cnt_tx = cnt_tx + 1

quadro (seq) inicia tempor.

espera

confirma falha vazio vazio

cnt_tx = 1

Transmissor
espera

Receptor n ao mostrado; receptor deve detectar recep c ao duplicada do mesmo quadro Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Melhorias

Transmiss ao bi-direcional Piggybacking: espera um pacote de dados para embutir e enviar o ACK
Quanto tempo esperar por esse pacote de dados?

Fazer pacote de ACK curto (sem campo de dados)

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Janelas Deslizantes
Janela de comprimento n Transmissor precisa de buer com n posi c oes para quadros pendentes (sem recebimento de ACK) Transmissor envia at e que, no m aximo, n pacotes quem pendentes Envia at e pacote n umero (acked + n) Numera c ao dos pacotes em formato circular
Numera c ao de 0 at en

Recebimento de ACK para pacote m implica em acknowledgement de todos os pacotes anteriores Veja exemplo de c odigo no livro texto
Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Janelas Deslizantes
Exemplo para n = 7

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Janelas Deslizantes

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Go-Back-N e Retransmiss ao Seletiva

(a) Go-back-n (b) Retransmiss ao seletiva Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

High-level Data Link Control (HDLC)


Desenvolvido pela ISO, base para o LAPB (Link Access Protocol, Balanced) da ITU Desbalanceado: congura c ao onde existe uma esta c ao principal que controla o enlace Balanceado: inexist encia da rela c ao mestre-escravo, isto e, qualquer esta c ao pode iniciar a comunica c ao Orientado a bit, com utiliza c ao de bit stung Modos
Normal Response Mode (NRM): modo desbalanceado onde esta c oes secund arias somente transmitem se autorizadas pela esta c ao principal; pode ser ponto-a-ponto ou multiponto Asynchronous Response Mode (ARM): modo desbalanceado que permite ` a esta c ao secund aria iniciar a comunica c ao Asynchronous Balanced Mode (ABM): enlaces full-duplex ponto-a-ponto; utilizado no X.25
Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

High-level Data Link Control (HDLC)

Estrutura do quadro
Flag: delimita o quadro Address (Endere co): desnecess ario em linhas ponto-a-ponto (utilizado para distin c ao entre comandos e respostas) Control (Controle): identica tipo de quadro, inclui n umero de seq u encia e outros controles Data (Dado): quando presente, cont em informa c ao de usu ario Checksum: cont em redund ancia do tipo CRC

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

High-level Data Link Control (HDLC)

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

High-level Data Link Control (HDLC)


Quadros de supervis ao
Receive Ready (RR): usado para o conrma c ao positiva Reject (REJ): conrma c ao negativa Receive Not Ready (RNR): controle de uxo Selective Reject (SREJ): solicita retransmiss ao do quadro especicado

Quadros n ao numerados
Disconnect (DISC): desconectar o enlace Set Asynchronous Balanced Mode (SABM): solicita c ao para estabelecimento de enlace balanceado Set Normal Response Mode (SNRM): estabelecer enlace desbalanceado Unnumbered Acknowledgement (UA): conrma c ao gen erica de recebimento Unnumbered Information (UI): informa c ao gen erica de camada 2
Elvio Leonardo Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

High-level Data Link Control (HDLC)

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

High-level Data Link Control (HDLC)

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

High-level Data Link Control (HDLC)

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Point-to-Point Protocol (PPP)


Descrito pela RFC 1661 Utilizado na transmiss ao de pacotes sobre cabo serial, linha telef onica, telefone celular, enlace de r adio ou bra otica Composto por 3 partes:
Encapsulamento de datagramas Link Control Protocol (LCP) Network Control Protocol (NCP)

Encapsulamento:
Baseado no HLDC (exceto que orientado a bytes) Protocolo: especica o protocolo (LCP, NCP, IP, etc.) Checksum: para detectar quadros com erros (similar ao CRC, com 16 ou 32 bits)

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Link Control Protocol (LCP)


Estabelecer, congurar, manter, terminar e testar o enlace de dados Usado para:
Iniciar e terminar a conex ao Formato de encapsulamento Limites de tamanho dos pacotes Detectar erros de congura c ao Detectar loops innitos

Opcionalmente:
Autentica c ao de identica c ao
Password Authentication Protocol (PAP) Challenge Handshake Authentication Protocol (CHAP)

Verica c ao da qualidade do enlace

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Network Control Protocol (NCP)


Composto por uma fam lia de protocolos que se ajustam ao protocolo de rede utilizado Exemplos:
Internet Protocol Control Protocol (IPCP): utilizado para IP Internetworking Packet Exchange Control Protocol (IPXCP): utilizado para IPX NetBIOS Frames Control Protocol (NBFCP): utilizado para NBF IP Version 6 Control Protocol (IPv6CP): utilizado para IP vers ao 6

Elvio Leonardo

Redes de Computadores

Camada de Enlace de Dados

Introdu c ao Enquadramento Controle de Erros Estudos de Caso

Estados do PPP

Elvio Leonardo

Redes de Computadores