Redes de Enlaces Diretos

Documentos relacionados
Redes de Computadores Camada de Enlace. Camada de Enlace. Camada de enlace. Camada de enlace. Antonio Alfredo Ferreira Loureiro

Redes de Computadores. Camada de Enlace. Camada de enlace. Antonio Alfredo Ferreira Loureiro.

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

Nível de Enlace. Laboratório MídiaCom - UFF Profa. Débora Christina Muchaluat Saade

Redes de Computadores. Redes de Computadores. Redes de Computadores. ü Contador de caracteres. ü Stuffing de caracteres.

Camada de Enlace de Dados

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Camada de Enlace de Dados

Capítulo 3. A camada de enlace de dados

Delimitação de Quadros. Exemplos de Protocolos de Nível de Enlace. Nível de Enlace. Nível de de Enlace. Disciplina: Comunicação de Dados IV

Chapter 3. The Data Link Layer. Data Link Layer Design Issues. Services Provided to the Network Layer Framing Error Control Flow Control

Redes de Computadores Aula 14

Redes de Computadores. Camada de Enlace

Redes de Computadores

Redes de Computadores

Camada de Enlace. OSI x IEEE. Arquitetura IEEE 802. Redes. Nível de Enlace: Controle de Erros e Fluxo Multiplexação

Planejamento. Revisão. Desempenho em Protocolos de Transporte

TP308 Introdução às Redes de Telecomunicações

Redes de Computadores

Redes de Computadores. Prof. André Y. Kusumoto

Funções dos protocolos. Tipos de Protocolos. Tipos de Protocolos

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Protocolo de Enlace de Dados

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Redes de Computadores

de erros Exercícios E S T i G

Fragmentos das máquinas de estados finitos do RDT 2.2 (fonte: Kurose)

Redes de Computadores

A camada de enlace de dados executa diversas funções específicas. Dentre elas

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

LD 1 Controlo da Ligação de Dados

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

3. Transmissão de Sinais Digitais Transmissão de bits; Sincronismo. Redes de Comunicações/Computadores I. Secção de Redes de Comunicação de Dados

Lista de Exercícios. Camada de Enlace de Dados

Redes de Computadores. Profa. Kalinka Regina Lucas Jaquie Castelo Branco. Abril de Universidade de São Paulo. Camada de Enlace de Dados

Erros e Protocolos de Recuperação Códigos detectores e correctores de erros.

Comunicação de Dados. Comunicação de Dados

Redes de Computadores

Redes de Computadores

Redes de Computadores e Aplicações. Aula 43 - Camada de Transporte TCP (Transmission Control Protocol)

Redes de Computadores Aula 5

Redes de Computadores

Redes de Computadores. Prof. André Y. Kusumoto

PTC Aula Princípios da transferência de dados confiável 3.5 Transporte orientado para conexão: TCP

Protocolos ponto-a-ponto e a camada de enlace

O NÍVEL DE LIGAÇÃO DE DADOS. Nível de ligação de dados Controle de Fuxo Detecção de erros Controle de Erros

Controle de acesso ao meio

Universidade Federal de Minas Gerais Departamento de Ciência da Computação

Camada de Transporte. Protocolos TCP e UDP

TCP - formato do segmento. Formato do segmento TCP (fonte: Kurose)

Alan Menk Santos. Redes de Computadores e Telecomunicações. Camada de Enlace de Dados 15/05/2013.

Nível de Transporte Portas, Protocolos UDP e TCP

PROTOCOLOS DE COMUNICAÇÃO

Controller Area Network CAN bus. Introdução

TP 318 Introdução às Redes Multimídia

ecos - Gestores de dispositivos

Tecnologias de rede. Diversas tecnologias com características diferentes Exemplos. Ethernet FDDI ATM

Figura 12 Formato Genérico de uma MAC PDU

Redes de Computadores. Camada de Transporte4. A necessidade por um serviço o de transporte confiável

Sistemas de Telecomunicações 1

Redes de Computadores

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Camada de Enlace de Dados. Prof. Leonardo Barreto Campos 1

Redes de Computadores e a Internet

Fornece interface bem definida para a camada de rede;

Camada de Transporte Parte II Gerson Porciúncula 5 semestre

Challenges for the MAC. RF Link Quality incorporates positive ACK. The Hidden Node Problem

Protocolos com paralelismo (pipelining) Pipelining: aumento da utilização

Protocolos de Ligação. Redes de Computadores I 2007/2008

Sistemas de Entrada e Saídas II

Capítulo 3 Camada de transporte

TCP 1 TCP. Manuel P. Ricardo

Licenciatura Plena em Computação

Jéfer Benedett Dörr

Modelo de Referência OSI

Redes de Computadores e a Internet

Claudivan C. Lopes

Camada de Enlace. BCC361 Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação

Faculdade de Engenharia da Computação

Controlo da Ligação de Dados

Capítulo 3 Camada de transporte

Direto ou Indireto Monolítico ou Estruturado Simétrico ou Assimétrico Padronizado ou Não-Padronizado

Redes de Computadores

PTC Aula Princípios da transferência de dados confiável. (Kurose, Seções 3.4 e 3.5) 28/04/2017

Arquitetura de Redes de Computadores

Redes de Computadores RES 12502

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol

Nível de Transporte Portas, Protocolos UDP e TCP

Redes de computadores. Protocolo TCP

Rede de computadores Protocolos TCP. Professor Carlos Muniz

TCP. Bibliografia FEUP/MRSC/AMSR MPR. » Aula preparada com base nos seguintes documentos

Visão geral sobre sistemas digitais

Sistemas Automotivos Embarcados

Nível Lógico. Sumário. Controlo da ligação de dados. stop-and-wait sliding window (janela deslizante)

Camada de Transporte Protocolos TCP e UDP

Redes de Computadores Laboratório 2. Estabelecimento de enlaces ponto-a-ponto

Camada de transporte. Serviços

Sistemas Automáticos ticos de Medida

Transcrição:

Redes de Enlaces Diretos Sumário Codificação Estruturação em quadros Detecção de Erros Algoritmos de Janelas Deslizantes 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 1 Redes de Computadores 2 Codificação Sinais viajam entre componentes de sinalização Bits fluem entre adaptadores 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) Node A Signal Adaptor Adaptor Node B Bits 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 Bits NRZ Redes de Computadores 3 Redes de Computadores 4 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 Redes de Computadores 5 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 Necessity of precise syncronization Redes de Computadores 6

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 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 7 Redes de Computadores 8 Encodings (cont) Encoding: 4B/5B Bits NRZ Clock Manchester NRZI 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 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 Redes de Computadores 9 Redes de Computadores 10 Encoding: 4B/5B Framing 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 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? Redes de Computadores 11 Redes de Computadores 12

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 Framing Break sequence of bits into a frame Typically implemented by network adaptor Node A Bits Adaptor Adaptor Node B Frames Redes de Computadores 13 Redes de Computadores 14 Approaches Sentinel-based delineate frame with special pattern: 01111110 e.g., HDLC, SDLC, PPP 8 16 16 8 Header Body CRC Beginning sequence Ending sequence 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 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 Redes de Computadores 15 Redes de Computadores 16 Approaches (cont) Contagem de caracteres Counter-based include payload length in header e.g., DDCMP 8 8 8 14 42 16 Count Header Body CRC SYN SYN Class problem: count field corrupted solution: catch when CRC fails 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 Redes de Computadores 17 Redes de Computadores 18

Contagem de caracteres 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 19 Redes de Computadores 20 Caracteres de início e fim de quadro Approaches (cont) Clock-based each frame is 125us long e.g., SONET: Synchronous Optical Network STS-n (STS-1 = 51.84 Mbps) Overhead Payload Hdr STS-1 Hdr STS-1 Hdr STS-1 9 rows Hdr STS-3c 90 columns Redes de Computadores 21 Redes de Computadores 22 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) = x 7 + x 4 + x 3 + x 1 Let k be the degree of some divisor polynomial e.g., C(x) = x 3 + x 2 + 1 Redes de Computadores 23 Redes de Computadores 24

CRC (cont) Transmit polynomial P(x) that is evenly divisible by C(x) shift left k bits, i.e., M(x)x k subtract remainder of M(x)x k / C(x) from M(x)x k 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) Selecting C(x) All single-bit errors, as long as the x k and x 0 terms have nonzero 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 25 Redes de Computadores 26 Internet Checksum Algorithm View message as a sequence of 16-bit integers; sum using 16-bit ones-complement arithmetic; take onescomplement 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 27 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 Redes de Computadores 28 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 Redes de Computadores 29 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 para a camada de rede Redes de Computadores 30

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 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 31 Redes de Computadores 32 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 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 Redes de Computadores 33 Redes de Computadores 34 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 Redes de Computadores 35 Redes de Computadores 36

Frame Acknowledgements & s Time Sender Receiver Sender Receiver Frame ACK Frame ACK Stop-and-Wait Sender Receiver Frame 0 Frame ACK ACK 0 Frame 1 (a) (c) ACK 1 Sender Receiver Sender Receiver Frame 0 Frame Frame ACK ACK 0 Frame ACK ACK (b) (d) Redes de Computadores 37 Redes de Computadores 38 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 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) Redes de Computadores 39 Redes de Computadores 40 Sliding Window Allow multiple outstanding (un-acked) frames Upper bound on un-acked frames, called Sender Receiver window Time 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 Redes de Computadores 41 Redes de Computadores 42

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 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 43 Redes de Computadores 44 Janela deslizante de tamanho 1 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 Redes de Computadores 45 Redes de Computadores 46 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 desempenho Redes de Computadores 47 Redes de Computadores 48

Colisão em protocolos 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 49 Redes de Computadores 50 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 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% Redes de Computadores 51 Redes de Computadores 52 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? Redes de Computadores 53 Redes de Computadores 54

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 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 55 Redes de Computadores 56 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 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 Redes de Computadores 57 Redes de Computadores 58 Comentários sobre as soluções Go back n e Selective repeat 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 Redes de Computadores 59 Redes de Computadores 60

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 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 61 Redes de Computadores 62 Determinando o tamanho da janela 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 Redes de Computadores 63 Redes de Computadores 64 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 Implementação em software Redes de Computadores 65 Redes de Computadores 66

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 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 67 Redes de Computadores 68 Implementation: Sender Maintain invariant: LFS - LAR <= SWS Implementation: Receiver Maintain three state variables LAR SWS LFS receive window size - (RWS) largest frame acceptable - (LFA) next frame expexted - (NFE) Advance LAR when ACK arrives Maintain invariant: LFA - NFE <= RWS Buffer up to SWS frames NFE RWS LFA Redes de Computadores 69 Redes de Computadores 70 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 Redes de Computadores 71 Redes de Computadores 72

Concurrent Logical Channels Header: 3 bits channel number 1 bit sequence number 4 bits total same as sliding window protocol Separates reliability from order Redes de Computadores 73