13
Nível Lógico Redes de Computadores I 2007/2008 05-11-2007 Universidade do Minho 1 Sumário Funções da camada 2 do modelo de referência Controlo de Fluxo Stop and Wait, Sliding Window Detecção de Erros Paridade, Checksum, CRC Controlo de Erros Stop and Wait ARQ, Go-Back-N ARQ, Selective-Reject ARQ Disciplina da linha Técnicas de Acesos ao Meio Físico 05-11-2007 Universidade do Minho 2 Controlo da ligação de dados A existência de ligações físicas e a transmissão de sinais analógicos ou digitais, por si só, não garantem a comunicação de dados entre entidades residentes em diferentes estações A troca de dados entre entidades que pretendem comunicar deve ser regulada a fim de se criar um contexto comum e um sincronismo entre elas. As regras resultantes constituem o que se designa por protocolo de comunicação. Os protocolos de ligação lógica ou ligação de dados constituem o primeiro nível de troca ordenada, controlada e fiável de dados entre sistemas interligados por meio de uma ligação física. 05-11-2007 Universidade do Minho 3 Nível físico envio de um sinal sobre um meio de transmissão sincronismo (nível do bit) codificação de linha modulação do sinal multiplexagem física interface com o meio Nível de ligação lógica estrutura das tramas configuração e acesso à linha endereçamento controlo de fluxo controlo de erros gestão da ligação (controlo da troca de dados) Controlo da ligação de dados introdução: funções distintivas dos níveis físico e lógico 05-11-2007 Universidade do Minho 4 Controlo da ligação de dados principais funções de um protocolo de ligação definição da trama - formato da unidade de dados (PDU) configuração da linha - considera a topologia, define a disciplina de acesso à linha e a sua duplexidade endereçamento - identifica os interfaces das estações que podem enviar e receber tramas controlo de fluxo - regula a cadência de tramas enviadas controlo de erros - detecta erros de transmissão e executa procedimentos de recuperação gestão da ligação - define como se faz o estabelecimento, a manutenção e a terminação da associação lógica. 05-11-2007 Universidade do Minho 5 Controlo da ligação de dados controlo de fluxo Técnica para assegurar que a estação que transmite não sobrecarrega a que recebe, evitando perda de tramas. Em geral, a existência de buffers na estação de recepção, reduz mas não elimina a necessidade de controlar o fluxo. A perda de tramas pode ocorrer, também, na(s) rede(s) de interligação das estações quando estas se encontram congestionadas nalgum ponto do percurso entre a estação que transmite e a que recebe. Técnicas mais comuns de controlo de fluxo : stop-and-wait sliding window (janela deslizante)

RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

Embed Size (px)

Citation preview

Page 1: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

Nível Lógico

Redes de Computadores I

2007/2008

05-11-2007 Universidade do Minho 1

Sumário

� Funções da camada 2 do modelo de referência

� Controlo de Fluxo� Stop and Wait, Sliding Window

� Detecção de Erros� Paridade, Checksum, CRC

� Controlo de Erros� Stop and Wait ARQ, Go-Back-N ARQ, Selective-Reject ARQ

� Disciplina da linha

� Técnicas de Acesos ao Meio Físico

05-11-2007 Universidade do Minho 2

Controlo da ligação de dados

• A existência de ligações físicas e a transmissão de sinais analógicos ou digitais, por si só, não garantem a comunicação de dados entre entidades residentes em diferentes estações

• A troca de dados entre entidades que pretendem comunicar deve ser regulada a fim de se criar um contexto comum e um sincronismo entre elas.

• As regras resultantes constituem o que se designa por protocolo de comunicação.

• Os protocolos de ligação lógica ou ligação de dados constituem o primeiro nível de troca ordenada, controlada e fiável de dados entre sistemas interligados por meio de uma ligação física.

05-11-2007 Universidade do Minho 3

Nível físico

� envio de um sinal sobre um meio de transmissão

� sincronismo (nível do bit)

� codificação de linha

� modulação do sinal

� multiplexagem física

� interface com o meio

Nível de ligação lógica

� estrutura das tramas

� configuração e acesso à linha

� endereçamento

� controlo de fluxo

� controlo de erros

� gestão da ligação (controlo da troca de dados)

Controlo da ligação de dadosintrodução: funções distintivas dos níveis físico e lógico

05-11-2007 Universidade do Minho 4

Controlo da ligação de dadosprincipais funções de um protocolo de ligação

� definição da trama - formato da unidade de dados (PDU)

� configuração da linha - considera a topologia, define a disciplina de acesso à linha e a sua duplexidade

� endereçamento - identifica os interfaces das estações que podem enviar e receber tramas

� controlo de fluxo - regula a cadência de tramas enviadas

� controlo de erros - detecta erros de transmissão e executa procedimentos de recuperação

� gestão da ligação - define como se faz o estabelecimento, a manutenção e a terminação da associação lógica.

05-11-2007 Universidade do Minho 5

Controlo da ligação de dadoscontrolo de fluxo

� Técnica para assegurar que a estação que transmite não sobrecarrega a que recebe, evitando perda de tramas.

� Em geral, a existência de buffers na estação de recepção, reduz mas não elimina a necessidade de controlar o fluxo.

� A perda de tramas pode ocorrer, também, na(s) rede(s) de interligação das estações quando estas se encontram congestionadas nalgum ponto do percurso entre a estação que transmite e a que recebe.

� Técnicas mais comuns de controlo de fluxo:

� stop-and-wait

� sliding window (janela deslizante)

Page 2: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 6

[DCC,Stallings99]

Controlo da ligação de dadosmodelo de transmissão de tramas

05-11-2007 Universidade do Minho 7

Controlo da ligação de dadoscontrolo de fluxo

� Stop-and-Wait

� Após a transmissão de uma trama, a fonte aguarda confirmação da sua recepção (ACK) antes de transmitir a trama seguinte.

� A recepção pode parar o fluxo de dados suspendendo temporariamente as confirmações.

� Esta técnica funciona bem quando uma mensagem é fragmentada em poucas tramas de grande dimensão.

� Contudo, se o tamanho das tramas é grande...

� é maior a probabilidade de erro na trama,

� é maior a ocupação de recursos (buffers, processadores),

� o desempenho da ligação tende a piorar.

05-11-2007 Universidade do Minho 8

[DCC,Stallings99]

Controlo da ligação de dadoscontrolo de fluxo

05-11-2007 Universidade do Minho 9

Controlo da ligação de dadoscontrolo de fluxo

� Stop-and-Wait

� Tempo de transmissão: tempo que o transmissor demora a emitir todos os bits para o meio de transmissão

� Tempo de propagação: tempo necessário à propagação de um bit desde o emissor até atingir o receptor

� a = tempo de propagação / tempo de transmissão

� Quando o tempo de propagação é maior que o tempo de transmissão, o emissor completa a transmissão da trama antes de o receptor ter começado a recebê-la (taxas de transmissão altas ou elevadas distâncias entre o emissor e o receptor). Nestes casos, a técnica de stop-and-wait conduz a uma utilização baixa do meio de transmissão e consequentemente uma transmissão pouco eficiente.

05-11-2007 Universidade do Minho 10

Controlo da ligação de dadoscontrolo de fluxo

� Sliding-Window

� permite que existam múltiplas tramas de dados em trânsito

� o transmissor pode enviar atéW tramas de dados sem que receba qualquer confirmação da sua recepção

� obriga o uso de sequenciação (n bits, numeração módulo 2n)

� cada confirmação positiva indica a próxima trama esperada

� pode haver confirmação simultânea de múltiplas tramas

� existem mecanismos distintos para transmitir e receber

� W é designado abertura da janela (Wmax=2n-1)

05-11-2007 Universidade do Minho 11

Janela deslizante com n=3 e W=7 [DCC,Stallings99]

a) Na perspectiva da estação transmissora

b) Na perspectiva da estação receptora

Controlo da ligação de dadoscontrolo de fluxo: janela deslizante, funcionamento

Page 3: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 12

Janela deslizante com n=3 e W=7 [DCC,Stallings99]

Estação transmissora Estação receptora

Controlo da ligação de dadoscontrolo de fluxo

05-11-2007 Universidade do Minho 13

Controlo da ligação de dadoscontrolo de fluxo - utilização da ligação

� A utilização ou rendimento da ligação depende de W e do parâmetro a

� O parâmetro a é a razão entre o tempo de propagação e o tempo de transmissão

a = tprop / ttrama

a = (d/v) / (L/r)

a = rd / vL

d - distância (m); v - velocidade de propagação (m/s);

L - comprimento trama (bits); r - rítmo de transmissão (bps)

05-11-2007 Universidade do Minho 14

Controlo de ligação de dadoscontrolo de fluxo - parâmetro a

� Ligações satélite

Valores típicos:

tprop = 270 ms

L = 4000 bits; r = 56 Kbps => ttrama = 71 ms

a = 3.8

Para 125µs < ttrama< 6ms os valores de a são a>>1

� Redes locais

Valores típicos:

0.1 < d < 10 Km; V = 2x108 m/s

L = 500 bits; 0.1 < r < 10 Mbps

Neste caso o parâmetro a tem um valor pequeno, a<1

05-11-2007 Universidade do Minho 15

Controlo da ligação de dadoscontrolo de fluxo - utilização da ligação

� Stop-and-Wait

� Supondo que uma mensagem é enviada numa sequência de frames f1,f2,…,fn, então o tempo total para enviar a mensagem pode ser expresso como ttotal = n * tframe onde tframe é o tempo necessário para enviar uma frame e receber um ack.

tframe = ttransFrame + tprop + tproc + ttransAck + tprop + tproc

Assumindo que tproc ≈ 0 e ttransAck ≈ 0

ttotal = n * ( ttransFrame + 2*tprop )

� A Utilização da ligação é a fração do tempo total que é útil, ié, que é utilizado a transferir tramas de dados, U = tutil / ttotal:

U = n * ttransFrame / n * ( ttransFrame + 2*tprop ) = 1 / (1 + 2a)

05-11-2007 Universidade do Minho 16

Controlo da ligação de dadoscontrolo de fluxo - utilização da ligação

� Exemplo: Considere uma rede de longa distância ATM com duas estações distanciadas 1000 km uma da outra. O tamanho standard de uma frame ATM é 424 bits e a taxa de transmissão standard é 155,52

Mbps. O tempo de transmissão é igual a 424/(155,52x106) = 2,7x106

seg. Se assumirmos que o meio de transmissão é uma fibra óptica e a velocidade de propagação igual a 2/3 velocidade da luz (2x108m/seg),

temos que o tempo de propagação é igual a 106 /(2x108) = 0,5x10-2.

� Então a = 0,5x10-2/2,7x106 = 1850, e

U = 1/( 1 + 2a)

U = 1 / (1+2*1850) = 0,00027 = 0,027%

05-11-2007 Universidade do Minho 17

Controlo de ligação de dadoscontrolo de fluxo - utilização da ligação

� Sliding Window (Janela Deslizante)

Exemplo: ligação full-duplex entre duas estações A e B

� Caso 1 - A estação A transmite continuamente. A confirmação de chegada da trama 1 ocorre antes da janela se fechar, então

U = 1 se W > 2a + 1

� Caso 2 - A estação A tem a janela fechada em t0 + W e não pode enviar tramas até t0 + 2a + 1 (chegada do primeiro ACK), então

U = W /(2a + 1) se W < 2a + 1

Page 4: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 18

Utilização = U(a) [DCC,Stallings99]

W=1W=7

W=127

Utilização

a

Controlo de ligação de dadoscontrolo de fluxo - utilização da ligação

05-11-2007 Universidade do Minho 19

Exercício (1)

� Considere uma ligação, em que se utiliza o mecanismo Stop

& Wait, com as seguintes características:

� Taxa de transmissão: 10 Mbps

� Comprimento dos blocos de dados: 1000 bits

� Comprimentos das confirmações positivas: 100 bits

� Distância entre emissor e receptor: 290 m

� Velocidade de propagação dos sinais: 2.9x108 m/s

a) Determine a utilização e a taxa de transmissão efectiva desta

ligação.

05-11-2007 Universidade do Minho 20

Exercício (2)

� Considere uma ligação via satélite, em que se utiliza o

mecanismo Stop & Wait, com as seguintes características:

� Taxa de transmissão: 100 kbps

� Comprimento dos blocos de dados: 1000 bits

� Comprimentos das confirmações positivas: 100 bits

� Distância entre emissor e receptor, via satélite: 72.000 km

� Velocidade de propagação dos sinais: 2.9x108 m/s

a) Determine a utilização e a taxa de transmissão efectiva desta

ligação.

b) Compare a utilização desta ligação com a da ligação descrita

no exercício anterior.

05-11-2007 Universidade do Minho 21

Exercício (3)

� Considere um sistema de transmissão digital, cuja distância entre emissor e receptor é de 400 m, e que utiliza o mecanismo de retransmissão automática Stop & Wait. O comprimento das tramas éde 256 bytes e o das confirmações não é significativo. Determine a taxa de transmissão máxima para que a utilização seja maior ou igual a 95%. É possível? Considere que a velocidade de propagação dos sinais é de 2,7x108 m/s.

05-11-2007 Universidade do Minho 22

Exercício (4)

� Suponha que se pretende transmitir um ficheiro de 2 Kbytes de um computador A para um computador B. Partindo do princípio que não ocorrem erros, calcule o tempo mínimo total de transmissão sabendo que A e B utilizam uma ligação série síncrona full-duplex que utiliza um protocolo de janela deslizante (sliding window) com um tamanho de janela igual a 3. A distância entre eles é de 8000 Km, a taxa de transmissão da linha é de 200 Kbps e o tamanho da trama é de 4000 bits. Considere a velocidade de propagação igual a 2x108m/s e o tamanho dos ACKs não é significativo.

05-11-2007 Universidade do Minho 23

Exercício (5)

� Considere três estações, designadas por A, B e C, interligadas de acordo com a figura abaixo. Todas as ligações são full duplex e têm uma velocidade de propagação de 2x108 m/s. Suponha que o nó A pretende transmitir um conjunto de tramas de 1000 bits para o nó C.

� Determine a utilização da ligação entre as estações A e B sabendo que a distância entre elas é de 4000 km, a taxa de transmissão é de 100 Kbps, e o método de controlo de fluxo usado é o da “janela deslizante” (sliding window) com tamanho de janela igual a 3. Para simplificar considere que não ocorrem erros e ignore o tamanho dos ACKs.

� Determine a taxa de transmissão entre B e C de forma a não congestionar o nó B, considerando que a distância entre B e C é de 1000 km e o método de controlo de fluxo usado entre estas duas estações é o método “pára e espera” (stop and wait).

A B C

Page 5: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 24

Controlo de ligação de dadosdetecção de erros

� A cada trama (D: Datagram), o transmissor adiciona um número de bits (EDC: Error Detection and Correction bits) que será usado pelo receptor para detecção de erros.

05-11-2007 Universidade do Minho 25

Controlo de ligação de dadosdetecção de erros

� A detecção de erros não é 100% fiável: o protocolo pode não detectar erros!!

� Probabilidade de erro residual - probabilidade de existirem erros em número superior aos que é possível detectar pelo mecanismo utilizado para o efeito.

� Quanto maior for o número de bits usados no campo EDC, maior é a probabilidade de sucesso na detecção e correcção de erros

05-11-2007 Universidade do Minho 26

Controlo de ligação de dadosdetecção de erros

� Bit de paridade

� processo simples que reduz a probabilidade de aceitação de tramas erradas

� a taxas de transmissão elevadas podem ocorrer erros em bits consecutivos (erros em rajada)

� duas variantes: um único bit de paridade, bit de paridade em duas dimensões

05-11-2007 Universidade do Minho 27

Controlo de ligação de dadosdetecção de erros – técnicas

� Em caso de erro, o receptor corrige o erro ou notifica o

transmissor

� Técnicas:

� Utilização de bit(s) de paridade (paridade vertical e horizontal)

� Soma de verificação (Checksum )

� Verificação de redundância cíclica (CRC)

05-11-2007 Universidade do Minho 28

Um único bit de paridadeDetecta erros num único bit

Bits de paridade a duas dimensõesDetecta e corrige erros que ocorram num bit

0

Controlo de ligação de dadosdetecção de erros: utilização de bits de paridade

0

05-11-2007 Universidade do Minho 29

Controlo de ligação de dadosdetecção de erros: utilização de bits de paridade

� 1 bit de paridade por caracter

� Usado na transmissão série assíncrona (UART)

� Detecta erros num bit, ou qualquer número impar de erros

� Se os erros ocorrerem em rajada, a probabilidade de erros não detectados pode chegar aos 50%

� Paridade a duas dimensões

� É apenas uma generalização da paridade simples

� Detecta e corrige erros de um bit (mesmo que esse erro ocorra nos bits de paridade); detecta sem corrigir qualquer combinação de dois erros numa trama;

� A capacidade de detectar e corrigir erros designa-se FEC (Forwarding Error Correction), sendo estas técnicas usadas, por exemplo, no armazenamento e reprodução de áudio digital.

Page 6: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 30

Controlo de ligação de dadosdetecção de erros: soma de verificação (checksum)

Transmissor

� Encara cada conjunto de dados a enviar como uma sequência de grupos de k bits

� Determina o checksum: adiciona os grupos de k bits. O complemento para 1 da soma constituí o checksum

� O transmissor insere o checksum no conjunto de dados a enviar

Receptor:

� Encara cada conjunto de dados recebidos como uma sequência de grupos de k bits

� Determina o checksum (com o checksum inserido pelo transmissor incluído)

� O resultado deverá ser igual a zero, senão foi detectado um erro

Checksum: apenas usado no nível de transporte,

por exemplo pelo TCP e pelo UDP (16 bits)

05-11-2007 Universidade do Minho 31

Controlo de ligação de dadosdetecção de erros: soma de verificação (checksum)

1 1 1 00 1 1 00 1 0 1 0 1 1 01 0 1 1

0 1 0 0

Wraparound

checksum

Exemplo: k=4, mensagem = 111001100110

1

1 1 1 0 0 1 1 0 0 1 1 0 1 0 0

1 1 1 00 1 1 00 1 0 1 0 1 1 01 0 1 10 1 0 01 1 1 10 0 0 0

Wraparound 1

Mensagem a enviar:

checksum

05-11-2007 Universidade do Minho 32

Controlo de ligação de dadosdetecção de erros: soma de verificação (checksum)

Exercício

Um receptor recebeu a seguinte mensagem de 20 bits, sabendo que 4 dos quais são uma soma de verificação (checksum). A mensagem recebida tem ou não erros?

1101 0100 1100 1011 0110

05-11-2007 Universidade do Minho 33

Controlo de ligação de dadosdetecção de erros: verificação de redundância cíclica (CRC)

� Cyclic Redundacy Check

Dada uma mensagem inicial M de k bits, o transmissor gera uma sequência R de n-k bits (CRC ou FCS Frame Check Sequence) tal que, os n bits da trama resultante sejam divisíveis por um número pré-determinado G.

Tt = 2n-k M + R

Tt - trama total a ser transmitida (n bits)

M - mensagem de k bits (parte mais significativa de T)

R - FCS (parte menor significativa de T) de n-k bitsG - divisor de n-k+1 bits [2n-k M = Q G + R]

(usando aritmética módulo 2)

05-11-2007 Universidade do Minho 34

Controlo de ligação de dadosdetecção de erros: verificação de redundância cíclica (CRC)

� Processo:

� na transmissão

� dividir 2n-k M por G

� usar o resto R como FCS

� na recepção

� dividir a trama recebida Tr por G

� se R = 0 decidir que não há erro, ié, Tr = Tt

� Pode falhar se o número de erros for superior à capacidade de detecção do código

� Consegue detectar todos os n-k erros consecutivos, e mesmo rajadas com mais de n-k erros embora com probabilidade 1 - 0.5(n-k)

05-11-2007 Universidade do Minho 35

Controlo de ligação de dadosdetecção de erros: verificação de redundância cíclica (CRC)

Verificação

� Pretende-se dividir 2n-k M por G e usar o resto R

� Tt = 2n-k M + R

� Será que Tt é divisível por G ?

� Tt/G = 2n-kM/G + R/G

� como 2n-kM/G = Q + R/G,

� Tt/G = Q + (R+R)/G [sendo R+R=0, na aritmética módulo 2]

� Tt/G = Q

� Tt/G não tem resto, logo Tt é divisível por G

Page 7: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 36

Controlo de ligação de dadosdetecção de erros: verificação de redundância cíclica (CRC)

Exemplo no emissor:

Mensagem a enviar: 101110

Mensagem enviada: 101110011

05-11-2007 Universidade do Minho 37

Controlo de ligação de dadosdetecção de erros: verificação de redundância cíclica (CRC)

� O processo CRC é, em geral, expresso através de polinómios de

uma variável, com coeficientes binários.

Exemplo de um polinómio gerador G(x):

CRC-32: x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

100000100110000010001110110110111 (33bits, para dar resto 32)

normalizado para transmissão síncrona ponto-a-ponto (IEEE 802.x)

Outros:

CRC-12 = x12 + x11 + x3 + x2 + x + 1 (1100000001111)

CRC-16 = x16 + x15 + x2 + 1 (11000000000000101)

CRC-CCITT = x16 + x12 + x5 + 1 (10001000000100001)

05-11-2007 Universidade do Minho 38

Controlo de ligação de dadosdetecção de erros: verificação de redundância cíclica (CRC)

� Circuito genérico para realizar G(x)

� xn-k+gn-k-1xn-k-1+...+g1x+1

� O circuito contém:

� registo para n-k bits (comprimento do FCS)

� n-k ou-exclusivos [dependem dos coeficientes de G(x)]

05-11-2007 Universidade do Minho 39

Controlo de ligação de dadosdetecção de erros: verificação de redundância cíclica (CRC)

� Exercício

Um conjunto de mensagens de 8 bits vai ser transmitido usando o método CRC para a detecção de erros. Nesse método, o polinómio gerador usado é x4+x3+1. Para a mensagem 10111011, exemplifique:

� o processo de geração do Frame Check Sequence (FCS);

� o processo de verificação do FCS;

� repita a alínea (a), usando um circuito lógico baseado em registos de deslocamento;

� repita a alínea (b), usando um circuito lógico baseado em registos de deslocamento, simulando agora uma situação de erro na sequência de bits recebida;

05-11-2007 Universidade do Minho 40

Controlo de ligação de dadoscontrolo de erros

� Na comunicação de dados a técnica mais usada no controlo

de erros é o Automatic Repeat Request (ARQ)

� o receptor não tenta corrigir os erros

� o código de controle de erros é usado no receptor apenas como detector erros

� detectados erros, o receptor descarta a trama e pode pedir a retransmissão da unidade de dados

� probabilidades de erro aceitáveis podem ser obtidas com polinómios de menor grau

� Alternativa: Forward Error Correction (FEC)

05-11-2007 Universidade do Minho 41

Controlo de ligação de dadoscontrolo de erros

� Envolve a detecção de falhas nas tramas trocadas de modo a

tornar a ligação de dados fiável.

� Tipos de falhas: trama perdida ou trama errada

� O ARQ envolve:

� detecção de erros na trama recebida através do CRC

� confirmação positiva: para tramas recebidas sem erros

� confirmação negativa e retransmissão: para tramas onde édetectado erro

� retransmissão por limite de tempo - se não é recebida confirmação de trama, dentro do período de tempo t

Page 8: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 42

Controlo de ligação de dadoscontrolo de erros

� Métodos ARQ:

� Stop-and-wait (Pára-e-espera)

� Go-back-N (volta-atrás-N)

� Selective Reject (rejeição selectiva)

05-11-2007 Universidade do Minho 43

Controlo de ligação de dadoscontrolo de erros

� stop-and-wait (ou idle RQ)

� semelhante à técnica de controlo de fluxo stop-and-wait

� transmissor:

� activa temporizador e mantém cópia da trama até obter ACK

� no máximo espera timeout até transmitir de novo

� receptor:

� envia ACK, NAK (pedido explícito) ou no reply (pedido implícito)

� sequenciação necessária para resolver a situação de erro na trama de confirmação (duplicação da trama)

� vantagem: simples; desvantagem: reduzida eficiência

05-11-2007 Universidade do Minho 44 05-11-2007 Universidade do Minho 45

Controlo de ligação de dadoscontrolo de erros

� volta-atrás-N

� a falta de sequenciação ou erro na recepção implica a retransmissão a partir de uma determinada ordem.

Exemplos:

� trama ti corrompida ou perdida

� B recebeu t(i-1) e detecta erro em ti; B envia NAK i

� ti é perdida, B recebe t(i+1) e envia NAK i

� ti é perdida; A retransmite ti por timeout� confirmações corrompidas

� confirmação por ACK seguintes

� se A expira, A retransmite ti e todas as tramas subsequentes

05-11-2007 Universidade do Minho 46

Controlo de ligação de dadoscontrolo de erros

� rejeição selectiva

� apenas são retransmitidas as tramas que recebem confirmação negativa explícita ou se ocorre timeout.

� obriga a confirmações positivas por ordem

� Wmax mais restritivo para não sobrepor as janelas na transmissão e na recepção (Wmax=2

n-1 e não Wmax=2n-1)

� vantagem: menos retransmissões, melhor utilização da ligação

� desvantagem: requer mais processamento (e controlo) na transmissão e na recepção

05-11-2007 Universidade do Minho 47

Page 9: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 48

Controlo de ligação de dadoscontrolo de erros

� No mecanismo de rejeição selectiva a ordem das tramas na recepção não é mantida daí que:

� se a ordem das tramas for relevante, o tamanho dos buffers pode ser incomportável

� Transmissor complexo: tem de ser capaz de enviar tramas fora de ordem

� Receptor complexo: tem de conseguir ordenar tramas

� em geral, é usado para transmitir tramas “independentes” entre si

� usado em meios onde a probabilidade de erro é maior (radio links)

� O mecanismo volta-atrás-N é mais usado do que o de rejeição selectiva, pois apesar de conduzir a uma pior utilização da ligação, reduz a complexidade do receptor.

05-11-2007 Universidade do Minho 49

Controlo de ligação de dadosExercício

� Considere uma ligação via satélite, em que se utiliza o mecanismo

Stop & Wait, com as seguintes características:

� Taxa de transmissão: 100 kbps

� Comprimento dos blocos de dados: 1000 bits

� Comprimentos das confirmações positivas: 100 bits

� Distância entre emissor e receptor, via satélite: 72.000 km

� Velocidade de propagação dos sinais: 2.9×108 m/sDetermine a utilização e a taxa de transmissão efectiva desta

ligação.

05-11-2007 Universidade do Minho 50

Controlo de ligação de dadosExercício

� Suponha que se pretende transmitir um ficheiro de 2 Kbytes de um computador A para um computador B. Partindo do princípio que não ocorrem erros, calcule o tempo mínimo total de transmissão sabendo que A e B utilizam uma ligação síncrona full-duplex que utiliza um protocolo de janela deslizante (sliding window) com um tamanho de janela igual a 3. A distância entre eles é de 8000 Km, a taxa de transmissão da linha é de 200 Kbps e o tamanho da trama é de 4000 bits. Considere a velocidade de propagação igual a 2x108m/s e o tamanho dos ACKs não é significativo.

05-11-2007 Universidade do Minho 51

Endereçode destino

Endereçode origem

Campo de control

Dados CRC

...

...tipo número

Campo do endereço Campo de informação

Campo deControl deerros

sentido da transmissão

valores docampo doendereço:

0001 = A0010 = B0011 = C0100 = D

...

valores esignificadodo campode tipo:

100 = trama-I001 = trama-ACK (confirma)010 = trama-NAK (rejeita)001 = trama-Poll (cede control)000 = trama-Select (estabelece)011 = trama-Fin (termina)

...

� Cada protocolo define um formato de PDU, bem como os valores, o significado e

o comprimento dos seus campos. Exemplo:

Tramas decontrol

Controlo da ligação de dadosdefinição da trama: exemplo de um formato e semântica

05-11-2007 Universidade do Minho 52

� As tramas de controle não possuem o campo de dados e portanto são tramas curtas.

� Exemplo de uma trama-Select:

Endereçode destino

Endereçode origem

CRCtipo número

0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0

(C) (A) (trama-Sel) (0)

� Nesta definição protocolar está-se a pressupor que, nas tramas de resposta (ACK e NAK), o número refere-se ao de uma trama de comando do sentido oposto (recebida) que elas estão a confirmar

� Nas restantes tramas, o número representa a numeração de sequência da própria trama

trama-Sel C, A, 0

Controlo da ligação de dadosdefinição da trama: exemplo de um formato e semântica

05-11-2007 Universidade do Minho 53

Controlo da ligação de dadosprotocolos (disciplinas) de linha

� Ligações Ponto-a-Ponto (PP)

� Em geral são ligações com um canal (circuito ou banda) para transmissão em cada sentido

� Por usarem canal dedicado (não partilhado), a ligação lógica pode efectuar-se imediatamente porque o canal está naturalmente adquirido.

� Ligações Multiponto (MP)

� Em geral são ligações com um único canal de transmissão que épartilhado por várias estações

� A ligação lógica tem de ser precedida pela aquisição do canal através de um protocolo de acesso ao meio (protocolo MAC).

Page 10: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 54

Controlo da ligação de dadosprotocolos de linha

� Tipo de estações

� Primária: faz gestão da ligação (1:n) (tramas comando)

� Secundária: sob controlo da primária (tramas resposta)

� Mista: partilha o controlo da ligação com outra do mesmo tipo

(pode comportar-se como primária ou como secundária)

� Fases de uma ligação lógica:1) Estabelecimento da ligação: trama-Sel : noReply, trama-ACK, …2) Transferência de dados: tramas-I : tramas-ACK, trama-NAK, …3) Terminação: trama-Fin : trama-ACK, noReply, …

Em geral, estas fases de controlo estão presentes

em todos os protocolos de linha quer PP quer MP.

05-11-2007 Universidade do Minho 55

Controlo da ligação de dadosprotocolos de linha

� Tipos de protocolos de acesso para ligações MP

� Poll/Select: a estação primária passa o controlo para uma estação secundária (poll) ficando esta autorizada a seleccionar outra estação para enviar dados.

� Contencioso: todas as estações são primárias e secundárias (mistas) podendo duas ou mais transmitir simultaneamente dando origem a colisões de tramas que terão de ser posteriormente retransmitidas. Existe contenção para a aquisição do meio.

05-11-2007 Universidade do Minho 56

Controlo da ligação de dadosprotocolos de linha: exemplo poll-select

trama-Sel C, A, 0

trama-ACK C, 1

trama-I C, 1

trama-ACK C, 2

trama-Fin C, 2

trama-ACK C, 3

A C

t t

(distância entre A e C)

� Considere-se que a estação (A) é a primária

e que as restantes são estações

secundárias

� A estação primária (A) selecciona a

estação secundária (C) para lhe enviar

dados

� Diz-se que (A) estabelece uma ligação

lógica com a estação (C)

A B C D E

tprop

ttrama

05-11-2007 Universidade do Minho 57

Controlo da ligação de dadosprotocolos de linha: exemplo poll-select

trama-Poll C, A, 0

trama-ACK C, 1

trama-Fin C, 0

A C

t t

(distância entre A e C) B

t

trama-Sel B,C,0

trama-Ack B,1

trama-I B,1

trama-Ack B,2

trama-Fin B,2

trama-Ack B,3

trama-Ack C, 1

(dist A B)� A estação primária (A) faz Polling à

estação secundária (C) para lhe

dar o control da linha

� A estação secundária (C) passa a

comportar-se como primária e

estabelece uma ligação lógica com

a estação secundária (B) para lhe

enviar dados

� Ao terminar a ligação com (B), a

estação (C) devolve o control da

linha à estação primária (A)

05-11-2007 Universidade do Minho 58

Controlo da ligação de dadosprotocolo de acesso ao meio - MAC (Medium Access Control)

� Um único canal de broadcast partilhado por várias estações

� Duas ou mais transmissões simultâneas podem causar

interferências

� colisão ocorre quando uma estação recebe dois ou mais sinais ao mesmo tempo

Acesso múltiplo partilhado

� Algoritmo distribuído que determina como é que as diferentes

estações acedem ao canal, ou seja, determina quando é que uma

estação pode transmitir

� Utiliza o próprio canal partilhado para fazer essa coordenação

05-11-2007 Universidade do Minho 59

Controlo da ligação de dadosprotocolo de acesso ao meio - MAC (Medium Access Control)

Protocolo Ideal para um canal com uma taxa de transmissão

de R bps:

1. Quando apenas uma estação pretende transmitir pode fazê-lo a uma taxa R

2. Quando M estações pretendem transmitir cada uma dela transmite a uma taxa R/M

3. Completamente distribuída

� Não existe uma única estação responsável por coordenar as transmissões

� Sem necessidade de sincronizações, clocks, etc.

4. Simples

Page 11: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 60

Controlo da ligação de dadosprotocolo de acesso ao meio - MAC (Medium Access Control)

Taxonomia:

� Partição do Canal

O canal é dividido em “peças” mais pequenas (por tempo ou frequências) e cada uma das “peças” é alocada a um nó para uso exclusivo

� Acesso Aleatório

O canal não é dividido, permite colisões e recupera das colisões

� Acesso sequencial

O nós esperam pela sua vez para transmitir, mas os recursos são usados na mediada das necessidades de cada um (com limites).

05-11-2007 Universidade do Minho 61

Protocolos de Acesso ao Meio Partição do canal

TDMA: time division multiple access

� O acesso ao canal é implementado “em voltas”

� Cada estação recebe um slot de tamanho fixo em cada volta (o tamanho do slot deve dar para transmitir um pacote)

� Os slots que não são usados permanecem desocupados exemplo: 6 estações numa LAN, as estações 1, 3 e 4 tem pacotes para transmitir, a 2,5 e 6 estão em ”silêncio”

05-11-2007 Universidade do Minho 62

freq

uenc

y ban

ds

time

Protocolos de Acesso ao Meio Partição do canal

FDMA: frequency division multiple access

� O espectro do canal é dividido em bandas de frequência

� A cada estação é atribuída uma banda de frequência fixa

� O tempo de transmissão que não é utilizado nas bandas de frequência édesperdiçado

� exemplo: 6 estações numa LAN, as estações 1, 3 e 4 tem pacotes para transmitir, a 2,5 e 6 estão em ”silêncio”

05-11-2007 Universidade do Minho 63

Protocolos de Acesso ao Meio Acesso aleatório

� Quando uma estação tem um pacote para enviar

� Envia-o usando toda a capacidade do canal (R)

� Não existe coordenação entre as estações

� Duas ou mais estações a transmitirem simultaneamente dá “colisão”

� Os protocolos MAC de acesso aleatório especificam:

� Como detectar colisões

� Como recuperar de colisões (por exemplo através de retransmissões com atraso aleatório)

� Exemplos de protocolos MAC de Acesso Aleatório:

� slotted ALOHA

� ALOHA

� CSMA, CSMA/CD, CSMA/CA

05-11-2007 Universidade do Minho 64

Slotted ALOHA

Assumindo que:

� Todas as tramas têm o mesmo tamanho

� O tempo é dividido em slots de igual tamanho, em cada slot cabe uma trama

� As estações começam a transmitir apenas no inicio dos slots

� As estações estão sincronizadas� Se duas ou mais estações

começarem a transmitir num slot, todos as estações detectam a colisão

Operação

� Quando uma estação tem uma trama para transmitir espera pelo início do próximo slot e transmiti-a

� Se não ocorrer nenhuma colisão a estação pode enviar a próxima trama no slot seguinte

� Se ocorrer uma colisão a estação retransmite a trama num dos próximos slots com uma probabilidade p

05-11-2007 Universidade do Minho 65

Pros

� Uma estação pode transmitir continuamente utilizando toda a capacidade do canal

� Distribuída: só os slots é que têm que ser sincronizados entre as estações

� Simples

Cons

� As colisões levam a um desperdício slots

� Slots desocupados� Os nós podem conseguir detectar

uma colisão antes de acabar de transmitir a trama.

� Sincronização de clocks

Slotted ALOHA

Page 12: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 66

ALOHA Puro (unslotted)

� Aloha Puro: mais simples e sem necessidade de sincronização

� Quando o transmissor tem um trama pronta

� transmiti-a imediatamente

� A probabilidade de ocorrerem colisões aumenta

� Uma trama enviada em t0 colide com outras tramas enviadas em [t0-1,t0+1]

05-11-2007 Universidade do Minho 67

CSMA (Carrier Sense Multiple Access)

CSMA: ouvir antes de transmitir

Se o canal está desocupado

� transmite a trama

Senão

� retarda a transmissão

05-11-2007 Universidade do Minho 68

Colisões CSMA

As colisões podem acontecer na mesma: o atraso de propagação faz com que a estação não se aperceba que outra estação já começou a transmitir

Colisão: O tempo de transmissão do pacote é desperdiçado

Nota: A distância e o tempo de propagação têm um papel importante na probabilidade de ocorrerem colisões

05-11-2007 Universidade do Minho 69

CSMA/CD (Collision Detection)

CSMA/CD: o transmissor escuta o canal antes de transmitir como no

CSMA, mas depois continua à escuta enquanto transmite

� As colisões são habitualmente detectadas num curto espaço de tempo

� Quando uma colisão é detectada a transmissão é abortada para não desperdiçar a largura de banda do canal

� A detecção das colisões:

� É fácil nas redes LAN com fios: o sinal recebido é comparado com o transmitido.

05-11-2007 Universidade do Minho 70

CSMA/CD collision detection

05-11-2007 Universidade do Minho 71

Protocolos MAC sequenciais

O protocolos MAC baseados na partição dos canais

� Partilham o canal de forma justa e eficiente no caso da carga ser alta

� São ineficientes no caso da carga ser baixa: atraso no acesso ao canal, a largura de banda não excede R/N mesmo que só haja uma estação activa

Protocolos MAC de acesso aleatório

� São eficientes no caso da carga ser baixa, uma estação pode disfrutar de toda a capacidade do canal

� No caso da carga ser alta o excesso de colisões traz uma grande sobrecarga

Protocolos MAC de acesso sequencial

� Tentam “apanhar o melhor dos dois mundos”

Page 13: RCI2007 NivelLogico 6pp - marco.uminho.ptmarco.uminho.pt/disciplinas/LEC-RC-I/RCI2007_NivelLogico_6pp.pdf · Exercício (1) Considere uma ligação, em que se utiliza o mecanismo

05-11-2007 Universidade do Minho 72

Protocolos MAC sequenciais

Polling:

� Estação primária

convida as estações

secundárias para

transmitir à vez

� Contras:

� Sobrecarga do polling

� Latência

� Um único ponto de falha (estação primária)

Passagem de testemunho (token):

� O testemunho é passado de uma

estação para a estação seguinte

de forma sequencial.

� Contras:

� Sobrecarga do token

� Latência

� Um único ponto de falha (token)