Arquitetura de Redes
• Aula 9
1
Nível de Enlace
LLC MAC
FÍSICO Camada 1
Camada 2
REDE Camada 3
Meio Físico
Modelo de referência OSI
• Logical Link Control (LLC) – SDLC (redes SNA da IBM) – HDLC (ISO, WAN)
– LAP, LAPB (ITU-T, WAN)
– 802.2 (IEEE, LANs e MANs)
http://grouper.ieee.org/grou
ps/802/2/
LLC – Principais Funções
• Delimitação de quadros (framing)
• Endereçamento (LCC + MAC)
• Controle de Erros (detecção e retransmissão / correção)
• Controle de Fluxo (evitar que um TX mais
rápido “afogue” um RX lento)
Controle de Erros
• Esquema básico: detecção e retransmissão dos quadros (erros).
• Estratégia padrão para controle de erros:
– Protocolos ARQ (Automatic Repeat reQuest) – Também faz controle de fluxo
– Reconhecimentos + temporizadores
• reconhecimentos positivos
–a cada pacote recebido, o receptor envia um reconhecimento (ACK)
• reconhecimentos negativos.
–Receptor envia um reconhecimento negativo (NAK)
apenas quando a perda de um quadro é detectada.
Controle de Fluxo
• Evitar que o TX “afogue” o RX com dados
• RX tipicamente aloca um buffer para armazenar dados recebidos enquanto está ocupado realizando outras
tarefas (processamento)
• A ausência de controle de fluxo pode causar overflow nesse buffer.
• Como implementar?
Controle de Fluxo
• Como implementar?
– 1. RX atrasa o envio de ACKs, desta forma após enviar N quadros sem reconhecimento o TX para (timeout).
– 2. Uso de quadros especiais: RNR (Receiver not Ready). Por exemplo, RNR-5 “recebi todos os quadros até o 5, mas no
momento não posso aceitar mais”. Depois o RX envia um ACK normal para reabrir a janela do transmissor.
– 3. Controle sobre o tamanho da janela do TX por meio de informação do status do buffer do receptor (usado no TCP)
• Geralmente funciona em conjunto com o controle de erros
(ARQ)
Proposta Inicial: usar confirmação, ACK
ACK ACK
TX
RX
tempoACK ACK
Erro ou perda do quadro?
TX
RX
tempoProposta Inicial: usar confirmação, ACK
Timeout
X
ACKtimeout
Timeout
ACK
Erro ou perda do ACK?
X
timeout
Erro ou Perda do ACK
ACK
Duplicata passada para o Nível 3
X
timeout
Solução?
Identificação dos Quadros
ACK
Descartado!
X
timeout
Solução final?
1 1 2
1 1
Quadro 1 já foi recebido,
estou esperando o Quadro 2
Timeout Prematuro
ACK
duplicata
X
timeout 1
1
2 2 3 4
ACK
2 2
ACK
4
Perdeu o Quadro 3!
Solução?
Solução: Identificação dos ACKs
ACK1
duplicata
X
timeout 1
1
2 2 3 3
ACK2
2 2
ACK2
3
OK!
Solução: Identificação dos ACKs
ACK1
duplicata
X
timeout
1
1
2 2 3 3
ACK2
2 2
ACK2
3
Adicionalmente: dimensionar corretamente o timeout. OK!
Pergunta: até quando deve ir a sequência de identificação
dos quadros?
Sequência de Identificação de Quadros
• Sequência: 1,2,3,4,...
– Números grandes ocupam muito espaço (bits) no quadro (header). Necessidade de saber o número mínimo necessário de bits
• Até quando deve ir a sequência?
– Imaginar o TX com um “buffer” com capacidade para apenas 1 quadro. O Nível de Enlace só irá buscar um novo pacote (n+1) da camada 3, sobrescrevendo o atual (n), se receber uma confirmação de recebimento do quadro atual (ACK n).
– 1 bit: 0 ou 1 (novo ou atual)
• Retransmissão de quadros atende ao controle de erros e de fluxo
• Estratégias de Retransmissão – Stop e Wait
– Go-Back-N
– Selective Repeat – Sliding Windows
Controle de erro e fluxo
Stop-and-Wait ARQ
ACK0
X
timeout
0
0
1 0 0 0
ACK1
1
ACK0
0
X
timeout
Stop-and-Wait ARQ (cont)
• Um novo quadro é enviado somente se for recebida confirmação do anterior;
• Há timeout para controlar o tempo de espera;
• Só é necessário 1 bit para numerar os quadros;
• Fluxo unidirecional;
• Para bidirecional: usar 2 Stop-and-Wait, um para cada sentido.
• No caso bidirecional: técnica de piggybacking pode ser usada – Melhor aproveitamento de banda.
– Timeout2 no caso de não haver informação para ser TX em
um dos sentidos.
Problema do Stop-and-Wait ARQ
• Canais que apresentam grandes retardos
– Desperdício de banda é grande – Baixa utilitização do canal
• Utilização: percentual de tempo dedicado a transmissão de informação útil.
• Como estimar a utilização do canal usando o protocolo Stop-and-Wait ARQ?
– Incluir todos os retardos – Análise do melhor caso
– Considerar perdas, erros na transmissão
Melhor Caso: sem erros ou ReTX
0
0
1
tp ACK0
tp tproc tI
tp tACK tproc
t
proc: tempo de processamento (supondo igual nos 2 sentidos) t
p: tempo de propagação (supondo igual nos 2 sentidos)
t
T= t
I+ 2t
p+ 2t
proc+
t
ACKUtilização Máxima
I
p t
t U p
/ 1
. 1 2 1
+
= −
Utilização diminui com p e com a relação t
p/ t
IUtilização máxima: 50%
p = 0 (sem erros)
t
p= 0 (sem retardo de propagação)
Outros esquemas?
Go-Back-n ARQ (sliding window)
• Vários quadros são enviados sem espera de confirmação
• O número máximo de quadros que podem ser TX define o tamanho da janela de transmissão (n)
• Neste protocolo a janela de recepção é igual a 1 (igual a do Stop-and-Wait)
• A ReTX é realizada a partir do quadro que não foi reconhecido. Os quadros seguintes, mesmo sendo
recebidos sem erros são descartados (não armazenados
pelo receptor)
Go-back-n ARQ (sliding window)
ACK0 0
0 1
ACK1
1 2
2 3 4 5 6 7 8
[0,6] [1,7] [2,8] [3,9]
W = 7
Go-back-n ARQ (sliding window)
ACK0 0
0 1
ACK0
1
2 3 4 1 2 3 4
[0,3] [1,4] [1,4] [2,5]
W = 4
X
2
2 3 4
ACK0 ACK0 ACK1
Não tem buffer p/ armazenar
Janela recepção = 1
Go-back-n ARQ
• Mesma questão: até quando deve ir a sequência de identificação de quadros?
• Dentro da janela NÃO posso ter dois quadros de mesmo número
• Tentativa: sequência do tamanho da janela
– Janela com capacidade para W quadros – Sequência: 0,1,2,...,W-1
– Ex: W = 5, seq. = 0,1,2,3,4
– OK?
Go-back-n ARQ
ACK0-4 0
0
1 2 3 4 0 1 2 3
W = 5
X
4
RX espera novo quadro 0 timeout
1 2 3 4 0
Aceito por como novo quadro
FUROU!
Go-back-n módulo m > n
ACK0-4 0
0
1 2 3 4 0 1 2 3
W = 5
X
4
RX espera quadro 5 timeout
1 2 3 4
Descartado já recebeu o quadro 0
0
Seq.: 0,1,2,3,4,5
Selective Repeat ARQ (sliding window)
• Funcionamento semelhante ao Go-back-n, porém o
tamanho da janela do receptor é igual a do transmissor.
• O RX armazena os pacotes recebidos sem erros mesmo fora de ordem, desde que os números de sequência
estejam dentro da janela.
• Quantidade de buffers necessária no receptor é igual ao tamanho da janela.
• Implementa a retransmissão seletiva
• Existe ainda um número “Go-back” caso a janela se esgote
• Objetivo: maximizar a utilização do canal
Sliding-window (janela deslizante)
• envio de vários quadros sem reconhecimento
Quadro 0 Quadro 0
Quadro 1
ACK 3
ACK 3 Quadro 1
Transmissor Receptor
Quadro 4 Quadro 4
T
Quadro 5 Quadro 5
Quadro 2 Quadro 2
Quadro 3 Quadro 3
ACK 2
ACK 2
Quadro 2 Quadro 2
Quadro 0 Quadro 0
Quadro 1 Quadro 1
pacotes são numerados em sequência (NrSeq)
0 .. NrSeqMax
o número máximo de pacotes transmitidos e
ainda não reconhecidos é determinado pelo tamanho da janela
qdo o tamanho da janela é
igual a 1 => stop-and-wait
Sliding-window (janela deslizante)
Receptor Transmissor
0 1 2 3
0 1 2 3
0 1 2 3
0 1 2 3 4 0 1 2
Recebe um quadro
Recebe dois quadros
Recebe um quadro
Envia Ack de quatro quadros
Recebe três quadros Recebe um quadro
Envia Ack de quatro quadros Envia um quadro
Envia dois quadros
Envia um quadro Recebe Ack de quatro quadros
Envia três quadros Envia um quadro
Recebe Ack de quatro quadros
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
0 1 2 3
4 0 1 2 3 4 0 1 2 3 4
0 1 2 3 4 0 1 2
3 4 0 1 2 3 4
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0
0 1 2
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
0 1 2 3
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
0 1 2 3 4
4 0 1 2 3 4 0 1 2 3 4
0 1 2 3 4 0 1 2
4 0 1 2 3 4 0 1 2 3 4
Sliding-window (janela deslizante)
URR UPE
PPE UPA
no receptor no emissor
TJE
TJR
TJE = tamanho da janela no emissor TJR = tamanho da janela no receptor URR = último reconhecimento recebido PPE = próximo pacote esperado UPE = último pacote enviado UPA= último pacote aceitável
Sliding-window no emissor
• quando chega um reconhecimento
– o emissor move URR para a direita, permitindo o envio de um novo pacote
• TJE => nr. máx. de pacotes em trânsito
– deve ser igual à memória para manter o “canal cheio”
URR UPE
no emissor
TJE
TJE = tamanho da janela no emissor
URR = último reconhecimento recebido
UPE = último pacote enviado
Sliding-window no receptor
• quando chega um pacote
– se UPA < nrSeq < PPE => pacote descartado – se PPE <= nrSeq <= UPA => pacote aceito
• TJR => tamanho do buffer no receptor
PPE UPA
no receptor
TJR
TJR = tamanho da janela no receptor PPE = próximo pacote esperado
UPA= último pacote aceitável
Selective Repeat ARQ (sliding window)
ACK0 0
0 1
ACK0
1
2 3 4 1 2 3 4
[0,3] [1,4] [5,8]
W = 4
X
5
ACK0 ACK0 ACK4
Armazena os quadros recebidos que não apresentaram erros.
2 3 4
[1,4] [5,8]
Selective-Repeat ARQ
• Relação entre a sequência de numeração dos quadros e o tamanho da janela
– Considerando a solução idêntica ao Go-back-n – Ex: 3 bits → 0,1,2,3,4,5,6,7 → m = 8
– m > n → n = 7 (maior janela possível)
• OK?
Selective-Repeat ARQ
ACK0-6 0
0
W = 7
X
RX espera quadro 7 WR= [7,0,1...,5]
timeout
Aceito por estar dentro da janela ERRO! 0...5 passados p/ Nível 3 como novos quadros
1 2 3 4 5 6
1 2 3 4 5 6
0 1 2 3 4 5 7
WT= [0,6] WT = [7,5]
0 1 2 3 4 5 7 ACK6
Ronaldo M Salles
Selective-Repeat ARQ
• O problema: o receptor avançou a sua janela e os números de quadros permitidos estão se
sobrepondo aos números da janela anterior
– [0,6] → [7,5], superposição 0,1,2,3,4,5 – O receptor não pode distinguí-los
• Solução: as duas janelas NÃO podem se sobrepor (no overlap)
– Seq: 0,1,2,...,7 → W
max= 4 – m >= 2n
0 1 2 3 4 5 6 7
. . .
Selective-Repeat ARQ
ACK0-3 0
0
W = 4
X
WR = [4,5,6,7]
timeout
Descartados por não estarem na janela do receptor.
1 2 3
1 2 3
0 1 2 3
WT= [0,3]
0 1 2 3
Padrões IEEE 802
• A camada de enlace é dividida em 2 sub-camadas – Camada LLC: Logical Link Control
– Camada MAC: Medium Access Control
Aplicação Apresentação
Sessão Transporte
Rede Enlace de
Dados
Física Physical (PHY)
Media Access (MAC) Logical Link Control
(LLC)
IEEE 802.3
IEEE 802.2
IEEE 802.2 – LLC
Preamble Start Frame Delimiter
Destination MAC Address
7B 1B Até 1500B
Source
MAC AddressLengh PAD Checksum
6B 6B 2B
Data
2B Até 47B
Control Vendor SSAP
DSAP Protocol
Type Data IP Packet
IP
LLC MAC
2B 3B
2B 1B
1B Enlace
SAPSAPSAP Sourc IP Dest IP
...
• A camada LLC introduz um nível adicional de endereçamento, permitindo a multiplexagem de vários protocolos sobre a camada MAC.
• O cabeçalho LLC pode ser seguido do cabeçalho SNAP (Subnetwork
Access Protocol) que inclui um campo com a mesma função que o
Ethertype do formado DIX.
802.2 LLC
Ethernet Token Ring FDDI
LLC IP
camada 3
camada 2 - LLC
camada 2- MAC
&Camada 1
Tipos de Quadros Ethernet
• Dois tipos de quadros Ethernet são utilizados.
– Formato DIX: Utiliza o campo Type
– Formato IEEE 802.x LLC: Utiliza o campo Length
DA SA DADOS FCS
FECHO CABEÇALHO
ENDEREÇO (FÍSICO) DE DESTINO (6 bytes)
ENDEREÇO (FÍSICO) DE ORIGEM (6 bytes)
Length/
Type
46 – 1500 bytes TIPO ou TAMANHO (2 bytes)
FRAME CHECK SEQUENCE (4 bytes)
Endereçamento MAC e LLC:
Não faz parte do modelo OSI-ISO;
LLC: DSSAP (Destination Service Access Point) e SSAP (Source ...)
Combinação única de endereçamento para cada DLLSAP (Data Link Layer Service Access Point) na LAN
IEEE 802.2 – LLC
IEEE Organizationally Unique Identifier
45
802.2/802.3 Formato de Quadro
DSAPAA Dest
MAC Sourc MACe
802.3
6 6 2
SSAPAA Cntl Org code00
03 type CR
data C
1 1
1 3 2 38-1492 4
802.2 LLC
802.2 SNAP
Dest
MAC Source MAC
6 6 2
CRC
data
46-1500 4
length
type
Ethernet Encapsulation (RFC 894)
IP Datagram (46-1500)
Type0800
ARP Request/Reply (28)
Type0806 Pad(18)
IP Datagram (46-1500) Type0800
ARP Request/Reply (28)
Type0806 Pad(18)
Arquitetura de Redes
• Aula 9 - Atividade
46