• Nenhum resultado encontrado

Redes de Enlaces Diretos

N/A
N/A
Protected

Academic year: 2021

Share "Redes de Enlaces Diretos"

Copied!
13
0
0

Texto

(1)

Redes de Computadores 1

Redes de Enlaces Diretos

Sumário

Codificação

Estruturação em quadros

Detecção de Erros

Algoritmos de Janelas Deslizantes

Redes de Computadores 2

Encoding

• Signals propagate over a physical medium

– Modulate electromagnetic waves

– E.g., vary voltage

– Encode, transmit signal, decode

– Network adaptor: contains signaling componentes that:

– Encode the bits into signals at sending node – Decode the signals into bits at the receiving node

Redes de Computadores 3

Codificação

• Sinais viajam entre componentes de

sinalização

• Bits fluem entre adaptadores

Bits Signal

Adaptor Adaptor Node B

Node A

Redes de Computadores 4

Encoding: NRZ

• Encode binary data onto signals

– e.g., 0 as low signal and 1 as high signal – known as Non-Return to Zero (NRZ)

Bits NRZ

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

Problem: Consecutive 1s or 0s

• NRZ: receivers keep averages of the signals

received to distinguish 0s and 1s

• After a long sequence of 0s or 1s the average

moves up or down:

– It becomes difficult to detect a significant change in the signal

Problem: Consecutive 1s or 0s

• NRZ: Clock recovering

• Frequent transitions from low to high and

vice-versa are necessary to enable clock

recovery

• Both the encoding and decoding processes

are driven by a clock:

– Every clock cycle the sender transmits a bit and the receiver recovers a bit

(2)

Redes de Computadores 7

Encoding: NRZI

• Non-return to Zero Inverted (NRZI)

• make a transition from current signal to

encode a one;

• stay at current signal to encode a zero.

• solves the problem of consecutive ones

Redes de Computadores 8

Encoding: Manchester

• Manchester

– transmit XOR of the NRZ encoded data and the clock

– The frequency of the signal is twice the binary code – Alternatively:

• O: transition from low to high • 1: transiton from high to low

– Rate at which the signals change: baud rate – Rate at wich the bits change: bit rate – Manchester is only 50% efficient.

Redes de Computadores 9

Encodings (cont)

Bits NRZ Clock Manchester NRZI 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 Redes de Computadores 10

Encoding: 4B/5B

• 4B/5B

– every 4 bits of data encoded in a 5-bit code – 5-bit codes selected to have no more than one

leading 0 and no more than two trailing 0s – thus, never get more than three consecutive 0s – resulting 5-bit codes are transmitted using NRZI

• solves the problem of consective ones

– achieves 80% efficiency

Encoding: 4B/5B

4 bits 5bits 0000 11110 0001 01001 0010 10100 0011 10101 0100 01010 0101 01011 0110 01110 0111 01111 4 bits 5 bits 1000 10010 1001 10011 1010 10110 1011 10111 1100 11010 1101 11011 1110 11100 1111 11101

Framing

• Problema a ser resolvido:

– Como agrupar seqüências de bits em quadros para que possam ser processados como unidades de informação?

ou, de outra forma,

– Como fazer delimitação de quadros?

(3)

Redes de Computadores 13

Framing: Soluções

• Inserir intervalos de tempo entre

transmissões de quadro

– Em comunicação assíncrona não é viável

• Fazer contagem de caracteres

Redes de Computadores 14

Framing

• Break sequence of bits into a frame

• Typically implemented by network adaptor

Frames Bits

Adaptor Adaptor Node B

Node A

Redes de Computadores 15

Approaches

• Sentinel-based

– delineate frame with special pattern: 01111110 – e.g., HDLC, SDLC, PPP

– problem: special pattern appears in the payload – solution: bit stuffing

• sender: insert 0 after five consecutive 1s • receiver: delete 0 that follows five consecutive 1s

Header Body

8 16 16 8

CRC Beginning

sequence Endingsequence

Redes de Computadores 16

Flags de

início e fim de quadro

• Bits são transmitidos de forma transparente:

– TX ao encontrar cinco bits 1 consecutivos insere

um bit 0

– RX ao receber cinco bits 1 seguido de um bit 0 remove o bit 0

• Processo conhecido como bit stuffing

Approaches (cont)

• Counter-based

– include payload length in header – e.g., DDCMP

– problem: count field corrupted – solution: catch when CRC fails

SYN Header Body

8 8 8 14 42 16 SYN Clas s CRC Count

Contagem de caracteres

• Princípio:

– Usa um campo no cabeçalho para especificar o número de caracteres no quadro

• Problema: erro nesse campo faz com que o

receptor perca a sincronização

• Não é usado na prática para protocolos da

camada de enlace

(4)

Redes de Computadores 19

Contagem de caracteres

Redes de Computadores 20

Caracteres de

início e fim de quadro

• Quadro é delimitado por caracteres

especiais: DLE STX e DLE ETX

• Um DLE no meio de um quadro é prefixado

por outro DLE (character stuffing) para

distinguir do fim de quadro

• Método usado em protocolos orientados a

caracteres

Redes de Computadores 21

Caracteres de

início e fim de quadro

Redes de Computadores 22

Approaches (cont)

• Clock-based

– each frame is 125us long

– e.g., SONET: Synchronous Optical Network – STS-n (STS-1 = 51.84 Mbps) Overhead Payload 90 columns 9 rows STS-1 Hd r STS-1 Hd r STS-1 Hd r STS-3c Hdr

Detecção de Erros de Transmissão

• A natureza dos erros

• Eficiência dos canais de transmissão

• Códigos detectores de erros

– Paridade horizontal e vertical – Soma de verificação – checksum – Verificação de redundância cíclica - CRC

• Códigos corretores de erros

Cyclic Redundancy Check

• Add k bits of redundant data to an n-bit

message

– want k << n

– e.g., k = 32 and n = 12,000 (1500 bytes)

• Represent n-bit message as n-1 degree

polynomial

– e.g., MSG=10011010 as M(x) = x7 + x4 + x3 + x1

• Let k be the degree of some divisor polynomial

(5)

Redes de Computadores 25

CRC (cont)

• Transmit polynomial P(x) that is evenly divisible by C(x)

– shift left k bits, i.e., M(x)xk

– subtract remainder of M(x)xk / C(x) from M(x)xk

• Receiver polynomial P(x) + E(x)

– E(x) = 0 implies no errors

• Divide (P(x) + E(x)) by C(x); remainder zero if:

– E(x) was zero (no error), or – E(x) is exactly divisible by C(x)

Redes de Computadores 26

Selecting C(x)

• All single-bit errors, as long as the xk and x0 terms have

non-zero coefficients.

• All double-bit errors, as long as C(x) contains a factor with at least three terms

• Any odd number of errors, as long as C(x) contains the factor (x + 1)

• Any ‘burst’ error (i.e., sequence of consecutive error bits) for which the length of the burst is less than k bits.

• Most burst errors of larger than k bits can also be detected • See Table 2.6 on page 102 for common C(x)

Redes de Computadores 27

Internet Checksum Algorithm

• View message as a sequence of 16-bit integers; sum using 16-bit complement arithmetic; take ones-complement of the result.

u_short

cksum(u_short *buf, int count) {

register u_long sum = 0; while (count--) {

sum += *buf++; if (sum & 0xFFFF0000) {

/* carry occurred, so wrap around */ sum &= 0xFFFF;

sum++; } }

return ~(sum & 0xFFFF); }

Redes de Computadores 28

Violações de código da camada

física

• Método é baseado numa característica da

camada inferior

• Existem códigos de transmissão que

possuem uma transição no meio do período

de transmissão de um bit

• O início e fim de quadro são determinados

por um código de transmissão inválido

Violações de código da camada

física

• O início e fim de quadro são determinados

por um código de transmissão inválido

• Ex.: Codificação Manchester

1: alto à baixo 0: baixo à alto alto – alto:não usado baixo – baixo: não usado alto-alto-baixo-baixo à delimitador – Usado no padrão IEEE 802

Transmissão confiável

• O objetivo

de um serviço de transmissão confiável é:

Entregar

em ordem

e sem repetições

Os dados recebidos da camada física

(6)

Redes de Computadores 31

Transmissão confiável: controle de

erros

• Mecanismos para oferecer serviço confiável

quanto a erros (regras de procedimento):

– Confirmação positiva e negativa de quadros pelo destinatário

– Temporização de quadros enviados pela origem – Número de seqüência de quadros

– Retransmissão de quadros um número finito de vezes

Redes de Computadores 32

Transmissão confiável: controle de

fluxo

• Objetivo:

– Evitar que TX envie mais quadros que a capacidade de processamento de RX

• Idéia geral:

– Usar algum mecanismo de realimentação para que o TX saiba sobre o estado do RX – Normalmente existem regras que usam um

mecanismo explícito ou implícito para fazer o controle de fluxo

Redes de Computadores 33

Comentários sobre as questões

de projeto

• Várias dessas questões se repetem em

outras camadas

• A solução a ser adotada para cada questão

depende da camada, protocolo e aplicação

• Essas questões são consideradas

fundamentais no projeto de qualquer

protocolo

Redes de Computadores 34

Confirmação na carona:

Piggybacking

• Seja o seguinte protocolo ponto-a-ponto

entre entidades A e B:

– Usa confirmação

– A transmissão de dados é full-duplex

– É possível embutir numa PDU de dados enviada de B para A a confirmação de uma PDU de dados enviada de A para B já recebida (o mesmo para o caso contrário)

– Isto é conhecido como confirmação na carona ou Piggybacking

Confirmação na carona:

Piggybacking

• Melhor utilização do canal

• Utiliza apenas alguns bits ao contrário de

uma PDU de controle

• Menos PDUs a processar

• Possivelmente menos buffers no RX

• Se não há uma PDU para ser enviada de B

Ù A, quanto tempo deve-se esperar para

confirmar uma PDU já enviada e recebida de

A Ù B?

Transmissão confiável:

ARQ – automatic repeat request

• Estratégias que usam confirmações e

temporizações para implementar transmissão

confiável

– Algoritmo pára-e-espera – Algoritmos de janela deslizante – Canais lógicos concorrentes

(7)

Redes de Computadores 37

Acknowledgements & Timeouts

Sender Receiver Frame ACK T im eout Tim e Sender Receiver Frame ACK Ti m eout Frame ACK Ti m eout Sender Receiver Frame ACK T im eout Frame ACK Ti m eout Sender Receiver Frame Ti m eout Frame ACK Ti m eout (a) (c) (b) (d) Redes de Computadores 38

Stop-and-Wait

Sender Receiver Frame 1 Frame 0 Frame 0 ACK 0 ACK 1 ACK 0 Redes de Computadores 39

Stop-and-Wait

• Problem: keeping the pipe full

• Example

1.5Mbps link x 45ms RTT = 67.5Kb (8KB) BitsPerFrame / TimePerFrame

= 1024 x 8 / 0,045 = 182 Kbps

1KB frames implies 1/8th link utilization

Redes de Computadores 40

Protocolos de janela deslizante

• Princípio:

– Cada quadro tem um campo de número de seqüência de n bits

– O transmissor mantém um conjunto de números de seqüência que pode enviar

• Janela de transmissão (sending window)

– O receptor mantém um conjunto de números de seqüência que pode receber

• Janela de recepção (receiving window)

Sliding Window

• Allow multiple outstanding (un-ACKed)

frames

• Upper bound on un-ACKed frames, called

window

Sender Receiver

T

im

e

Protocolos de janela deslizante

• Os tamanhos das janelas de transmissão e

recepção não precisam ser os mesmos

• Números dentro da janela de transmissão

representam quadros

– Enviadas mas não confirmadas, ou – Não transmitidas ainda

(8)

Redes de Computadores 43

Protocolos de janela deslizante

• PDUs transmitidas e não confirmadas devem

ser mantidas em buffers

• Deve haver um temporizador associado a

PDU transmitida a mais tempo

• Números dentro da janela de recepção

representam PDUs que podem ser aceitas

Redes de Computadores 44

Protocolos de janela deslizante

• Confirmação:

– Quadros aceitos são confirmados na carona de um quadro de dados (piggybacking) ou por um quadro de controle

Redes de Computadores 45

Janela deslizante de tamanho 1

Redes de Computadores 46

Comentários sobre o

serviço oferecido

• A camada n+1 na máquina destino deve

receber os dados na mesma ordem em que

foram passados para a camada n na

máquina origem

– Isso pode ser obtido através do número de seqüência

– Neste caso, a camada n é a camada de enlace

Comentários sobre o

serviço oferecido

• A camada física implementa um canal de

comunicação FIFO (first-in-first-out), ou seja,

preserva a ordem dos quadros transmitidos

– Isto poderia ser outra forma de oferecer o serviço acima

Colisão em protocolos

• Duas entidades enviam dados

“simultaneamente”, cada uma para a outra

• Não é um erro do protocolo mas afeta o seu

(9)

Redes de Computadores 49

Colisão em protocolos

Redes de Computadores 50

O ambiente no

projeto de protocolos

• O ambiente onde o protocolo é executado

tem um papel importante no projeto de

protocolos

• Seja o seguinte cenário:

se Tempo para transmissão de uma PDU + Tempo de retorno da confirmação é grande

então pode haver uma baixa eficiência do canal de comunicação Redes de Computadores 51

O ambiente no

projeto de protocolos

• Exemplo:

– Canal de satélite de 50 kbps

– Tempo de propagação de ida e volta (round trip) = 500 ms

– Tamanho do quadro = 1000 bits

Redes de Computadores 52

O ambiente no

projeto de protocolos

• Cenário

– t=0: início da transmissão – t=20: fim da TX do quadro

– t=270: receptor recebe todo o quadro – t=520: transmissor recebe confirmação

• Análise:

– Tempo de bloqueio do transmissor = 500 ms ou 500/520 = 96%

O ambiente no

projeto de protocolos

• Solução:

– Permitir que mais quadros sejam transmitidos antes de parar e esperar por confirmação – No exemplo acima, pelo menos 26 quadros Ù 520

ms

– Técnica conhecida como pipelining

Pipelining

• Questão a ser resolvida:

– Um quadro com erro no meio de uma seqüência deve ser ignorado ao chegar no RX

– O que o RX deve fazer com os quadros corretos restantes?

(10)

Redes de Computadores 55

Pipelining

• Duas soluções básicas:

– Retransmitir a partir do quadro errado

• Go back n

– Repetir seletivamente

• Selective repeat

• A eficiência de cada solução depende do

tamanho da janela, taxa de erros, etc

Redes de Computadores 56

Go back n: Recepção

• Ignora todos os quadros recebidos após o

quadro errado

• Confirma somente os quadros recebidos

corretamente na seqüência

Redes de Computadores 57

Go back n: Transmissão

• Temporiza o primeiro quadro não confirmado

• Retransmite esse quadro

• Repete o processo até que todos os quadros

sejam confirmados, ou

• Até que um quadro seja enviado um número

máximo de vezes e não haja confirmação

Redes de Computadores 58

Selective repeat

• Similar ao go back n, exceto que RX

armazena todos os quadros recebidos

corretamente

• Pode necessitar muitos buffers no caso do

tamanho da janela ser grande

Comentários sobre as soluções

• As duas soluções definem um compromisso

entre largura de banda (BW) e buffers

disponíveis

• A solução a ser adotada pode depender de

qual recurso é mais valioso

(11)

Redes de Computadores 61

Determinando o

tamanho da janela

• Suponha uma janela de TX e RX de tamanho

8, duas entidades A e B, e o seguinte

cenário:

– A envia para B os quadros de 0 a 7

– B confirma para A (por exemplo, na carona) o quadro 7

– A envia para B mais um conjunto de quadros numerados de 0 a 7

– B confirma novamente para A o quadro 7

Redes de Computadores 62

Determinando o

tamanho da janela

• B recebeu corretamente todos os dois

conjuntos de oito quadros?

– Não necessariamente!

• Um Ack 7 pode confirmar um dos seguintes

quadros:

... 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 …

• Com espaço de numeração de n bits podem

ser transmitidos no máximo 2

n

- 1 quadros

Redes de Computadores 63

Determinando o tamanho da janela

Redes de Computadores 64

Determinando o

tamanho da janela

• Quando o tamanho da janela de transmissão

é igual ao espaço de numeração à

– Problemas de duplicação e ordenação

• Solução

à

– Sempre fazer a janela <= (MaxSeq + 1) /2

Simulação de temporizadores em

software

• Suponha que:

– Às 10:00:00.0 existam três timeouts pendentes:

• 10:00:00.5, • 10:00:01.3 e • 10:00:01.9

– O relógio real é incrementado a cada 100 ms

Simulação de temporizadores em

software

(12)

Redes de Computadores 67

Comentário sobre projeto de

protocolos

• Princípio da separação de funções

– É preciso ter cuidado para distinguir funções às

vezes desempenhadas juntas num mesmo mecanismo:

• Entrega confiável • Entrega ordenada • Controle de fluxo

– Às vezes combinadas num mesmo protocolo de janela deslizante

Redes de Computadores 68

Implementation aspects: sender

• Assign sequence number to each frame

SeqNum

• Maintain three state variables:

– send window size (SWS) – last acknowledgment received (LAR) – last frame sent (LFS)

Redes de Computadores 69

Implementation: Sender

• Maintain invariant: LFS - LAR <= SWS

• Advance LAR when ACK arrives • Buffer up to SWS frames £ SWS LAR LFS

Redes de Computadores 70

Implementation: Receiver

• Maintain three state variables

– receive window size - (RWS) – largest frame acceptable - (LFA) – next frame expexted - (NFE)

• Maintain invariant:

LFA - NFE <= RWS

£ RWS

NFE LFA

Implementation: Receiver

• Frame SeqNum arrives:

– if NFE <= SeqNum < = LFA à accept – if SeqNum < NFE or SeqNum > LFA à discard

• Send cumulative ACKs

Strategy: Concurrent Logical Channels

• Used in Arpanet

• Alternative to SWP

• Keeps the pipe full

• Multiplex 8 logical channels over a single link

• Run stop-and-wait on each logical channel

• Maintain three state bits per channel

– channel busy

– current sequence number out – next sequence number in

(13)

Redes de Computadores 73

Concurrent Logical Channels

• Header:

– 3 bits channel number – 1 bit sequence number – 4 bits total

– same as sliding window protocol

• Separates reliability from order

Referências

Documentos relacionados

Os temas estruturadores usados no ensino disciplinar e seu aprendizado não mais se restringem, de fato, ao que tradicionalmente se atribui como responsabilidade de uma única

Figura 1- Produção de feijão grão e feijão-verde em Portugal de 1961 a 2012………7 .Figura 2- medição do teor de humidade no solo através da sonda Diviner………15 Figura

A exploração documental realizada na primeira parte deste trabalho permite-nos afirmar que o combate ou minimização deste problema social do isolamento, só será

Esse trabalho tem como objetivo entender em que medida o enfoque CTS pode contribuir para a apropriação dos conteúdos escolares de química, a partir das

O constructo de controle envolve, praticamente, todas as atividades do administrador. Existem diversos sistemas de controles diretamente relacionados à estrutura de decisão

Esta é uma pesquisa qualitativa sobre a argumentação e alfabetização científica de estudantes de Iniciação Científica Júnior integrantes do Programa Social de Educação,

A presente pesquisa teve como objetivo principal propor um modelo para implantação da gestão de processos pela Universidade Federal da Grande Dourados (UFGD), sendo um dos seus

Para isso, em todos os escalões, o Cmt deve tomar a iniciativa para obter, dos seus comandos superiores e subordinados, os dados mais atualizados sobre o inimigo, assim