Вы находитесь на странице: 1из 65

FACULDADE ANHANGUERA DE INDAIATUBA

Curso: CINCIA DA COMPUTAO


Disciplina: REDES DE COMPUTADORES Professor: RODRIGO DE ALMEIDA MOREIRA ramoreira@gmail.com

Aulas:
CAMADA ENLACE DE DADOS - PARTE II
1

Referncias
Autor: TANENBAUM, Andrew S.

Ttulo: Redes de Computadores


Edio: 4 Editora: Campus Autor: KUROSE, James F.

Ttulo: Redes de Computadores e a Internet


Edio: 3 Editora: Addison Wesley
2

Objetivo

Tpicos
Camada de Enlace de Dados
Questes de Projeto da Camada de Enlace Deteco e Correo de Erros Protocolos Elementares Protocolo de Janela Deslizante Verificao de Protocolos Exemplo de Protocolos A Subcamada de Controle de Acesso ao Meio
4

Camada de Enlace de Dados


Trataremos
Algoritmos que permitem uma comunicao eficiente e confivel entre dois computadores adjacentes no nvel da camada de enlace de dados
user A user B

Questes de Projeto da Camada de Enlace de Dados


Funes da camada de enlace
Fornecer uma interface de servio bem definida camada de rede Lidar com erros de transmisso Regular o fluxo de dados
de tal forma que receptores lentos no sejam atropelados por transmissores rpidos

Servios Oferecidos Camada de Rede (2)


Trs possibilidades de servios oferecidos pela camada de enlace so:
Servio sem conexo e sem confirmao Servio sem conexo com confirmao Servio orientado a conexes com confirmao

Servios Oferecidos Camada de Rede (3)


Servio sem conexo e sem confirmao:
A mquina de origem envia quadros independentes mquina de destino, sem confirmao do recebimento Nenhuma conexo estabelecida antes ou liberada depois do processo Se um quadro for perdido devido a rudos na linha, no haver nenhuma tentativa de detectar a perda ou de recuper-lo na camada de enlace de dados

Apropriado quando a taxa de erros muito baixa


Apropriado para o trfego em tempo real, tal como a fala humana, os dados atrasados so piores que dados recebidos com falhas

A maior parte das LANs utiliza servios sem conexo e sem confirmao na camada de enlace de dados
8

Servios Oferecidos Camada de Rede (4)


Servio sem conexo com confirmao:
Cada quadro enviado individualmente confirmado

Dessa forma, o transmissor sabe se um quadro chegou corretamente ou no


Caso no tenha chegado dentro de um intervalo de tempo especfico, o quadro poder ser enviado outra vez

Servios Oferecidos Camada de Rede (4.1)


Servio sem conexo com confirmao:
Vale a pena destacar: que oferecer recursos de confirmao na camada de enlace de dados uma questo de otimizao, e no uma exigncia A camada de rede sempre pode enviar um pacote e esperar que ele seja confirmado O problema dessa estratgia que se o pacote mdio for subdividido em, digamos, 10 quadros, e 20% de todos os quadros forem perdidos, o tempo necessrio para efetivar a transmisso do pacote com sucesso poder ser muito longo. Se cada quadro individual for confirmado e retransmitido, os pacotes completos chegaro a seu destino muito mais rapidamente Esse servio til em canais no confiveis, como os sistemas sem fio. Mas so muito sofisticados quando utiliza-se fibra ptica
10

Servios Oferecidos Camada de Rede (5)


Servio orientado a conexo com confirmao:
As mquinas de origem e destino estabelecem uma conexo antes de os dados serem transferidos

Cada quadro enviado pela conexo numerado A camada de enlace garante que cada quadro enviado ser de fato recebido
Alm disso, garante que todos os quadros sero recebidos uma nica vez e na ordem correta

Os servios orientados a conexes fornecem camada de rede o equivalente a um fluxo de bits confivel
11

Enquadramento (Framing) (3)


A diviso do fluxo de bits em quadros mais difcil do que parece primeira vista 4 mtodos:
Contagem de caracteres Bytes de flags, com insero de bytes Flags iniciais e finais, com insero de bits Violaes de codificao da camada fsica

12

Enquadramento (Framing) (3.1)


Contagem de caracteres

Without error
O 5 virou 7 no meio fsico

With one error

Quase no usado !!!

13

Enquadramento (Framing) (3.1)


Contagem de caracteres
Mesmo que o checksum esteja incorreto, de modo que o destino saiba que o quadro est defeituoso Ele ainda no ter informaes suficientes para saber onde comea o quadro seguinte Enviar um quadro de volta origem solicitando retransmisso tambm no ajuda, pois o destino no sabe quantos caracteres devero ser ignorados para chegar ao incio da retransmisso

Por essa razo, o mtodo de contagem de caracteres quase no mais usado


14

Enquadramento (Framing) (3.2)


Bytes de flags, com insero de bytes

PPP usa algo parecido!!!

15

Enquadramento (Framing) (3.2)


Bytes de flags, com insero de bytes
Desvantagem da utilizao desse mtodo de enquadramento que ele depende da utilizao de caracteres de 8 bits Nem todos os cdigos de caracteres utilizam caracteres de 8 bits Por exemplo, o UNICODE emprega caracteres de 16 bits

Ns precisamos de uma tcnica que permita um nmero arbitrrio do tamanho dos caracteres
16

Enquadramento (Framing) (4)


Flags iniciais e finais, com insero de bits
Flags (01111110) at the beginning and end

Bit-oriented framing with bit stuffing


17

Enquadramento (Framing) (5)


Violaes de codificao da camada fsica
S se aplica a redes nas quais a decodificao no meio fsico contm algum tipo de redundncia Ex: algumas LANs codificam 1 bit de dados utilizando 2 bits fsicos
um bit 1 um par alto-baixo, e um bit 0 um par baixo-alto

O esquema significa que todo bit de dados tem um a transio intermediria, facilitando a localizao dos limites de bits pelo receptor. As combinaes alto-alto e baixo-baixo no so usadas para dados, mas so empregadas na delimitao de quadros em alguns protocolos
18

Controle de Erros (Error Control)


A forma mais comum de garantir uma entrega confivel dar ao transmissor algum tipo de feedback sobre o que est acontecendo no outro extremo da linha Data Frame
Sender

Acknowledgement (ACK)
Or negative Acknowledgement (NAK)

Receiver

19

Controle de Erros (Error Control) (2)


Uma complicao adicional decorre da possibilidade de problemas de hardware fazerem com que um quadro desaparea completamente Nesse caso, o receptor no reagir de forma alguma, pois no h motivo para isso Essa possibilidade tratada com a introduo de timers na camada de enlace de dados

20

Controle de Erros (Error Control) (3)


network layer network layer

correct and ordered error code packet ack error code

Sender
retransmit if time-out ACK if correct

Receiver

physical layer

physical layer

21

Controle de Erros (Error Control) (4)


Se o quadro se perder, o timer ser desativado, alertando o transmissor para um problema potencial
A soluo bvia simplesmente transmitir o quadro outra vez

Entretanto, quando os quadros so transmitidos vrias vezes, existe o perigo de o receptor aceitar o mesmo quadro duas ou mais vezes e de repass-lo camada de rede mais de uma vez Para impedir que isso acontea, geralmente necessrio atribuir nmeros de seqncia aos quadros enviados, para que o receptor possa distinguir as retransmisses dos quadros originais
22

Controle de Erros (Error Control) (5)


A questo do gerenciamento dos timers e dos nmeros de seqncia para garantir que cada quadro seja realmente passado para a camada de rede do destino exatamente uma vez, nem mais nem menos
uma parte importante das atribuies da camada de enlace de dados

Mais adiante, estudaremos em detalhes como esse gerenciamento feito

23

Controle de Fluxo (Flow Control)


Outra questo de projeto importante aquela em que um transmissor quer enviar quadros mais rapidamente do que o receptor capaz de aceitar Uma soluo usual introduzir controle de fluxo para regular o transmissor a enviar os dados de uma maneira que o receptor possa lidar com o trfego
Este mtodo geralmente requer algum tipo de mecanismo de feedback, o receptor envia de volta ao transmissor informaes que permitem ao transmissor enviar mais dados, ou que pelo menos mostrem ao transmissor qual a situao real do receptor
24

Controle de Fluxo (Flow Control) (2)


Vrios esquemas de controle de fluxo so conhecidos
A maioria deles utiliza o mesmo princpio bsico O protocolo contm regras bem definidas sobre quando um transmissor pode enviar o quadro seguinte

Com freqncia, essas regras impedem que os quadros sejam enviados at que o receptor tenha concedido permisso para transmisso, implcita ou explicitamente

Examinaremos estes detalhes em breve!!!


25

Deteco e Correo de Erros


Os erros de transmisso ainda estaro presentes por muitos anos. Teremos de aprender a lidar com eles.
Nos loop locais, comunicaes wireless, etc

Como resultado dos processos fsicos que os geram, os erros em alguns meios (ex: o rdio) tendem a ocorrer com mais freqncia em grandes volumes (rajadas) do que isoladamente Desvantagem dos erros em rajada: Eles so muito mais difceis de corrigir que os erros isolados
26

Deteco e Correo de Erros (2)


Vantagem
error model: bursty errors every packet would be in error

bursty error, only one packet is incorrect

27

Deteco e Correo de Erros (3) Cdigos de Correo de Erros


Os projetistas de redes desenvolveram duas estratgias bsicas para tratar os erros
(1) Incluir informaes redundantes suficientes em cada bloco de dados enviado. Com isso, o receptor capaz de deduzir quais devem ter sido os dados transmitidos
Utiliza cdigos de correo de erros

(2) Incluir uma redundncia suficiente apenas para permitir que o receptor deduza que houve um erro, mas sem identificar qual, e solicite uma retransmisso
Utiliza cdigos de deteco de erros freqentemente denominado correo antecipada de erros
28

Deteco e Correo de Erros (4) Cdigos de Correo de Erros (2)


Em canais altamente confiveis (Ex: fibra)
mais econmico utilizar um cdigo de deteco de erros e simplesmente retransmitir o bloco defeituoso ocasional

Em canais que geram muitos erros (Ex:enlaces sem fio)


melhor adicionar a cada bloco redundncia suficiente para que o receptor seja capaz de descobrir qual era o bloco original, em vez de confiar em uma retransmisso, que pode ela prpria conter erros

Vamos analisar o qu realmente um erro!!!


29

Deteco e Correo de Erros (5) Cdigos de Correo de Erros (3) Palavra de cdigo (codeword)
m data bits n=m+r
Existem 2n possibilidades de palavras cdigo e 2m possveis mensagens de dados. A distncia de Hamming entre palavras cdigo: min d(C1,C2)=nmero de posies de bits em que duas palavras de cdigo diferem entre si

r check bits

d(10010010,00010001)=3
Se duas palavras de cdigo estiverem a uma distncia de Hamming igual a d uma a outra, ser necessrio corrigir d erros de bits isolados para converter uma palavra na outra

30

Deteco e Correo de Erros (6) Cdigos de Correo de Erros (4)


Para detectar d erros
Necessrio um cdigo de distncia d + 1 Ao detectar uma palavra de cdigo invlida, o receptor poder perceber que houve um erro de transmisso

Para corrigir d erros


Necessrio um cdigo de distncia 2d + 1

31

Deteco e Correo de Erros (7) Cdigos de Correo de Erros (5)


Exemplo
Considere um cdigo contendo apenas quatro palavras de cdigo vlidas:

0000000000, 0000011111, 1111100000 e 1111111111 Esse cdigo tem uma distncia igual a 5, o que significa que ele pode corrigir erros duplos

Rudo Transmissor Receptor

0000011111

0000000111

0000000111

verificao
0000011111

Erro duplo
0000000000 0000000111 0000000111

verificao XXXXXX
32

Erro triplo

Deteco e Correo de Erros (8) Cdigos de Correo de Erros (6)


Aplicao do Cdigo de Hamming (Correo de 1 bit)
Os bits em uma codeword so numerados em seqncia Comea no bit 1 (leftmost mais a esquerda) Os bits de verificao (check bits) so potncias de 2 ( 1, 2, 4, 8, 16, . . . ) Os bits de dados so outros ( 3, 5, 6, 7, 9, . . . ) Posio 11 tem a ver com check bits 1, 2 e 8 ( 1 + 2 + 8 = 11) Posio 29 com 1, 4, 8, e 16 ( 1 + 4 + 8 + 16 = 29 ) Cada check bit fora a paridade de uma dada coleo de bits em par ou impar Codeword chega no destino e os contadores so zerados Destino verifica cada check bit k ( k = 1, 2, 4, 8 , . . . ) para a paridade correta (par ou impar) Se der erro adiciona k ao contador Se contador igual zero, codeword aceita Se contador no zero o valor corresponde ao bit incorreto
Verifica que os check bits 1, 2 e 8 esto errados posio errada a 11
33

Deteco e Correo de Erros (9) Cdigos de Correo de Erros (7)


A 1-bit error correcting code (Hamming code)

34

Deteco e Correo de Erros (10) Cdigos de Deteco de Erros (1)


Cdigos de correo de erros
So utilizados em enlaces sem fios, pois so ruidosos e propensos a erros

Cdigos de deteco de erros


So utilizados em fio de cobre ou fibra, pois a taxa de erros muito mais baixa Estes cdigos so mais eficientes, pois as retransmisses so ocasionais

35

Deteco e Correo de Erros (11) Cdigos de Deteco de Erros (2)


Controle de erros: Deteco de erros ou Correo de erros? Assuma um taxa de erro=1/106 dados=1000 bits error detecting check bits: 1 bit error correcting check bits: 10 bits In 103 packets: error detecting overhead=103+1000=2000 bits error correcting overhead=10*103 bits=10000 bits Portanto, cdigo de correo de erros usado em algumas situaes crticas.
36

retransmission

Protocolos Elementares da Camada de Enlace


Suposies iniciais:
Camada 1, 2 e 3 possuem processos independentes que se comunicam pelo envio de mensagens Processos da camada 1 e 2 esto na placa de rede e processos da camada 3 na CPU principal
Mquina A deseja enviar um fluxo de dados mquina B utilizando um servio confivel, orientado conexes

As mquinas no vo ter crash (panes)

37

Protocolos Elementares da Camada de Enlace (2)


Suposies iniciais (continuao...):
Camada de enlace trata o pacote recebido da camada de rede como apenas dados A camada de enlace encapsula o pacote Quadro
Header (informaes de controle) + trailer (checksum)

Existem primitivas para:


to_physical_layer (enviar quadros para camada fsica) from_physical_layer (receber quadros da camada fsica)

O hardware de transmisso calcula e acrescenta o checksum

38

Protocolos Elementares da Camada de Enlace (3)


Operaes Simples:
A camada de enlace recebe uma Interrupo
Significa: pare as atividades e veja o evento [wait_for_event(event)]

Hw calcula o checksum (CS)


CS incorreto (event = cksum_err) CS correto (event = frame_arrival)

Recebe o frame para inspeo [from_physical_layer(frame)] Verifica as informaes de controle contidas no header Se correto, remove a poro relativa ao pacote e envia para a camada de rede [to_network_layer(packet)]
39

Protocolos Elementares da Camada de Enlace (4)


Operaes Simples (continuao...):
A camada de rede monta um pacote retirando uma mensagem da camada de transporte e adiciona o cabealho da camada de rede ele
Este pacote passado camada de enlace para incluso no campo de info do quadro (frame) a ser enviado

No destino, a camada de enlace remove o pacote do frame e envia-o para a camada de rede

40

Protocolos Elementares da Camada de Enlace (5)

Continua ->

41

Protocolos Elementares da Camada de Enlace (6)

42

Protocolos Elementares da Camada de Enlace (7)

Examinaremos
Protocolo simplex sem restries Protocolo simplex Stop-and-Wait Protocolo simplex para canal ruidoso

43

Protocolos Elementares da Camada de Enlace (8) Protocolo Simplex sem Restries (1) Os dados so transmitidos em apenas um sentido Camadas de rede do tx e rx sempre prontas para receber dados Tempo de processamento pode ser ignorado O espao disponvel em buffer infinito O canal de comunicao nunca danificado e nunca perde quadros

UTOPIA !!!
44

Protocolos Elementares da Camada de Enlace (9) Protocolo Simplex sem Restries (2)

Transmissor

45

Protocolos Elementares da Camada de Enlace (10) Protocolo Simplex sem Restries (3)

Receptor

46

Protocolos Elementares da Camada de Enlace (11) Protocolo Simplex Stop-and-Wait (1)


Lida com a limitao de processamento da camada de rede (temos um buffer finito)

Continuamos supondo que o canal de comunicao no apresenta erros O trfego ainda do tipo simplex (nico sentido)
Principal problema: Como evitar que a origem entupa o destino com os dados?!?!

O receptor precisa de um tempo t para executar from_physical_layer() e to_network_layer() Taxa de transmisso mdia deve ser menor que 1 quadro por t
Nada pode ser transmitido at o quadro recebido pela origem tenha sido capturado pela rotina from_physical_layer()

Continua ->

47

Protocolos Elementares da Camada de Enlace (12) Protocolo Simplex Stop-and-Wait (2)


Nada pode ser transmitido at o quadro recebido pela origem tenha sido capturado pela rotina from_physical_layer() Solues
Introduzir um delay no protocolo (no confivel) Calcular o pior cenrio e programar um delay OK (no eficiente) GOOD: prover feedback para a origem
Passa o frame para a camada de rede Envia um frame (dummy) para a origem (permisso de envio) Origem deve esperar pelo frame dummy

Stop-and-Wait
Os protocolos nos quais o transmissor envia um quadro e em seguida espera por uma confirmao antes de continuar sua operao so chamados stop-and-wait
48

Protocolos Elementares da Camada de Enlace (13) Protocolo Simplex Stop-and-Wait (3)

Transmissor

Esperando dummy

49

Protocolos Elementares da Camada de Enlace (14) Protocolo Simplex Stop-and-Wait (4)

Receptor

50

Protocolos Elementares da Camada de Enlace (7) Protocolo Simplex para Canais Ruidosos (1)

Suponha que o canal de comunicao apresenta erros Lida com a limitao de processamento da camada de rede (temos um buffer finito) O trfego ainda do tipo simplex (nico sentido)

51

Protocolos Elementares da Camada de Enlace (8) Protocolo Simplex para Canais Ruidosos (2)

Vai passar para a camada de rede (ERRO!!!)

52

Protocolos Elementares da Camada de Enlace (9) Protocolo Simplex para Canais Ruidosos (3)

53

Protocolos Elementares da Camada de Enlace (10) Protocolo Simplex para Canais Ruidosos (4)

PAR (Positive Acknowledgement with Retransmission - Confirmao positiva com retransmisso)


Os protocolos nos quais o transmissor espera por uma confirmao positiva antes de passar para o prximo item de dados

54

Protocolos Elementares da Camada de Enlace (11) Protocolo Simplex para Canais Ruidosos (5)

55

Protocolos Elementares da Camada de Enlace (12) Protocolo Simplex para Canais Ruidosos (6)

56

Protocolos Elementares da Camada de Enlace (13) Protocolo Simplex para Canais Ruidosos (7)

57

Exemplos de Protocolos de Camada de Enlace


HDLC High level link contol

PPP Point to point protocol

58

Exemplos de Protocolos de Camada de Enlace (1) HDLC High level link control (1)

Protocolo clssico orientado a bits (bit stuffing) Usado em computadores e terminais burros

59

Exemplos de Protocolos de Camada de Enlace (2) HDLC High level link control (2)

Descrio dos campos:


Address importante para linhas com muitos terminais (ID do terminal) Control Usado para nmeros seqenciais, acks, Data contm qualquer informao Checksum usado pelo CRC [ 01 11 11 10 ] frame flags Frame mnimo: 32 bits menos as flags
60

Exemplos de Protocolos de Camada de Enlace (3) PPP Point to point protocol (1)
Camada de enlace na Internet
Internet = mquinas individuais (hosts, roteadores) e infra de conexo Comunicao ponto--ponto usada em duas situaes:
1) Em organizaes com uma ou mais LANs (com pcs, estaes de trabalho, servidores, ) Os roteadores esto conectados por um backbone. Conexo com o mundo externo feito via um ou dois roteadores que tem linhas de conexo ponto--ponto com roteadores distantes. 2) Conexo de consumidores domsticos Internet onde o PC domstico chama o roteador do ISP que se comporta como um servidor de acesso internet.

Protocolo mais comum: PPP


61

Exemplos de Protocolos de Camada de Enlace (4) PPP Point to point protocol (2)

62

Exemplos de Protocolos de Camada de Enlace (5) PPP Point to point protocol (3)

Lida com deteo de erros, suporta negociao de endereos de IP, autenticao, . . . Funcionalidades:
Enquadramento no ambguo ( end, star e deteco de erros ) Controle para ativar, testar, negociar e desativar conexes (LCP - Link Control Protocol) Negociao independente da camada de rede (NCP - Network Control Protocol)

Como funciona ? (Conexo domstica)


PC chama o roteador do provedor via modem Conexo fsica estabelecida PC envia ao roteador uma srie de pacotes LCP no payload de um ou mais quadros PPP (estes pacotes tem parmetros de definio) PC envia conjunto de pacotes NCP para definir a camada de rede (receber IP) Iniciada a comunicao IP (transferncia de pacotes) Terminada a conversa o NCP quebra a conexo da camada de rede e libera o IP LCP desfaz a conexo das camadas de enlace e manda o modem liberar a linha telefnica
63

Exemplos de Protocolos de Camada de Enlace (6) PPP Point to point protocol (4)

64

Dvidas ou Comentrios?
ramoreira@gmail.com
65

Вам также может понравиться