Introdução Redes de Computadores Controle de fluxo ula. Carissimi -4-mars-8 Comunicação em um enlace envolve a coordenação entre dois dispositivos, o emissor e o receptor Serviço de entrega confiável ou não Serviço confiável Controle de fluxo: Define quantos dados um emissor pode enviar antes de esperar uma confirmação (ack) do receptor Está relacionado com capacidade de buffer do receptor Controle de erros: O que fazer quando apenas se detecta erros? Descarte do quadro seguido de retransmissão, porém, o QUE retransmitir, COMO e QUNDO? Redes de Computadores Controle de fluxo Questões importantes Mecanismo de retroalimentação que informa a fonte (emissor) a capacidade de recepção do destino (receptor) Objetivo é evitar perda de dados por estouro em buffers de recepção Mecanismos básicos: stop-and-wait e janela deslizante Característica do enlace: half-duplex versus full-duplex Duração da transmissão de um quadro depende: Tempo de propagação do sinal no meio nálise considera transmissão sem erros Função da distância a ser percorrida e da velocidade de propagação. Carissimi -4-mars-8 Todos os quadros são transmitidos com sucesso Nenhum quadro é perdido Nenhum quadro possui erros Ordem de chegada é igual a ordem de emissão Próxima aula será analisado o que ocorre se houver erros. Carissimi -4-mars-8 Tempo de duração do quadro Função do tamanho do quadro e do tempo de propagação Quantidade de dados (quadros) que o emissor pode enviar antes de ser obrigado a parar de transmitir Redes de Computadores 3 Redes de Computadores 4
Duração da transmissão Exemplo: IEEE 8.3 (padrão original). Carissimi -4-mars-8 Soma do tempo de propagação (t p ) com a duração do quadro (t q ) Tempo total da transmissão Tempo de propagação = t t = d / v distância d v t t V.. m/s para meios guiados Tempo de propagação (t p ) Tempo de duração do quadro (t q ) Onde, L: tamanho do quadro em bits R: taxa de transmissão (bits/sec). Carissimi -4-mars-8 Padrão define: Taxa de transmissão de Mbps,μs por bit Diâmetro da rede: m, composto por segmentos de até m, interligados por quatro repetidores Maior distância entre dois dispositivos Cabo coaxial (tempo de propagação =, μs, incluindo os 4 repetidores ) Quadro mínimo igual a 4 bytes ( bits) m e, μs t tx = t q + t p =, μs +, μs =,8 μs Redes de Computadores Redes de Computadores Quantidade de dados Protocolo de controle de fluxo stop-and-wait. Carissimi -4-mars-8 Objetivo é evitar estouro de buffer no receptor Controle de fluxo Protocolos de controle de fluxo Controla a quantidade de dados que pode ser enviada antes do transmissor ser obrigado a parar de transmitir Duas estratégias Stop and wait Janela deslizante. Carissimi -4-mars-8 Emissor só pode enviar um quadro i depois de ter recebido a confirmação da recepção do quadro i - Definição de dois tipos de quadros: quadro de dados e quadros de controle (CK) CK CK Tempo de propagação CK CK s setas representam quadros e não bits, portanto, os gráficos acima não mostram a duração dos quadros. segura a transmissão Redes de Computadores Redes de Computadores 8
nálise de desempenho: stop-and-wait nálise do método stop-and-wait. Carissimi -4-mars-8 O tempo total para enviar um quadro e receber um ack é dado por: Pode ser aproximado por: Tempo de propagação Eficiência da utilização do meio é: fazendo Tempo de propagação Tempo de transmissão Do quadro em si. Carissimi -4-mars-8 Exemplo: Canal de Mbps, tempo de propagação =, e quadro de bits t q = bits * s = ; t p = ms; t total = ms Considerando o t q do ack desprezível, se tem uma transmissão a cada 3 ms (.t p + t q ) Então, o canal de Mbps apresenta um desempenho de 333,33.. Kbps!!! Inconvenientes do Stop-and-wait Subutiliza o meio de transmissão Comunicação é sempre half-duplex mesmo quando o meio permite full-duplex Problema do stop-and-wait é ter apenas um quadro em trânsito, por vez. Redes de Computadores 9 Redes de Computadores Envio de n quadros Envio de n quadros continuamente. Carissimi -4-mars-8 Exemplo: Mbps, quadro bits, t prop = ms 3 ms Questão: bits em 3 ms (taxa 333,333 Kbps) Porque simplesmente não aumentar o tamanho do quadro? ms 3 bits em ms (taxa Kbps). Carissimi -4-mars-8 Exemplo: Mbps, quadro bits, t prop = ms 3 ms 3 ms 3 bits em 3 ms (taxa Mbps) o receber o CK é possível Possível quando: reaproveitar o buffer e enviar um quadro novo houver dados suficientes para enviar se obtém um efeito pipeline Transmite quadro de dados i+ antes de receber ack do i Enlace for full duplex Redes de Computadores Redes de Computadores
Protocolo de controle de fluxo por janela deslizante Implementação da janela deslizante Permite a origem enviar q quadros sem esperar pela confirmação (ack) do destino Dois tipos de quadros Quadro de dados: informação e número de seqüência. Carissimi -4-mars-8 Necessário que o destino informe sua capacidade de absorção de quadros Número de quadros enviados não deve ultrapassar capacidade de buffer do destino Princípio básico: Numerar sequencialmente (módulo N) os quadros a serem transmitidos capacidade inicial da janela (buffer) é N, depois vai sendo ajustado conforme quadros são enviados e confirmados pelo receptor Informar continuamente a capacidade de absorção de quadros do destino Controlar os quadros enviados e recebidos. Carissimi -4-mars-8 Quadros de controle: Receive Ready (RR n) e Receive Not Ready (RNR n) Numeração sequencial usando k bits ( a k - ) Limitação em k bits fornece o efeito módulo (e.g. k=;,,, 3,,,, 3) Semântica dos quadros de controle: RR n: recebi até o quadro n-; pode enviar o quadro n RNR n: recebi até o quadro n-; mas não estou pronto para receber o quadro n RR e RNR tem efeito acumulativo Redes de Computadores 3 Redes de Computadores 4 Exemplo funcionamento janela deslizante (sem erros) Janela deslizante no youtube Emissor janela Receptor janela Simulação da janela deslizante http://www.youtube.com/watch?v=ehasqorydi Q Q. Carissimi -4-mars-8 Q Q3 Q RR. Carissimi -4-mars-8 Redes de Computadores Redes de Computadores
Implementação janela deslizante nálise de desempenho: janela deslizante. Carissimi -4-mars-8 Quadros enviados e confirmados S F 3 S i Quadros enviados e não confirmados OU que podem ser enviados Quadros recebidos e confirmados R F 4 S L Quadros a serem recebidos OU recebidos e ainda não confirmados 3 R i 4 R L S F : primeiro quadro não confirmado S i : quadro recentemente enviado (F i L) S L : último quadro possível de ser enviado R F : primeiro quadro possível de ser recebido R i : janela de recepção (F i L), i. é, quantidade de quadros disponíveis (buffer) R L : último quadro possível de ser recebido. Carissimi -4-mars-8 O uso do canal depende do tamanho da janela e do parâmetro a Relação entre o tempo de propagação e o tempo de duração do quadro Também pode ser visto como a capacidade em bits para preencher todo o meio em relação ao tamanho do quadro (L), dado por: Produto largura de banda-atraso Desempenho se traduz pela quantidade de bits no meio Tempo de transmissão é W = n * t quadro Se preencher meio obtém eficiência de % Redes de Computadores Redes de Computadores 8 nálise de desempenho: janela deslizante (cont.) Outra forma de ver (eficiência = ) Supondo t quadro =, tem-se a = t propagação pois a = t propagação /t quadro.. Carissimi -4-mars-8 Se: Normalizando tempo de duração t quadro = então a = tempo de propagação Caso : W a + O ack de um quadro i é recebido antes da capacidade da janela ter se esgotado, ou seja, é possível enviar continuamente Caso : W < a + O emissor esgota sua capacidade de transmissão em t = W, ou seja, não pode transmitir mais quadros até receber um ack eficiência para para Redes de Computadores 9. Carissimi -4-mars-8 t = t = t = t = a t = a+ t = a+ Quadro Quadro Quadro Quadro a a unidades de tempo Quadro (a-) Quadro Quadro Quadro (a+) Quadro a Quadro 3 Quadro Quadro (a+) Quadro a Quadro a+3 Quadro a+ ck Redes de Computadores ck ck ck a+ W a+
Outra forma de ver (eficiência < ) Supondo t quadro =, tem-se a = t propagação pois a = t propagação /t quadro. Piggybacking. Carissimi -4-mars-8 t = t = t = t = a t = a+ t = a+ Quadro Quadro Quadro Quadro a a unidades de tempo Quadro (a-) Quadro Quadro Quadro (a+) Quadro a Quadro 3 Quadro Meio vazio ck ck Quadro W Quadro a+3 Quadro a+ W< a+ Redes de Computadores ck ck a+. Carissimi -4-mars-8 Otimização quando há dados sendo transmitidos nos dois sentidos Envio da confirmação (RR n ou RNR n) junto com dados Se não existe dados a serem enviados, se envia quadro RR n (RNR n) Se existe dados a serem enviados, mas não existe ainda uma confirmação a ser enviada, reenvia (repete) o último RR n ou RNR n. <Q; RR> <Q; RR> <Q; RR> <Q; RR> Redes de Computadores <Q; RR> <Q; RR> <Q; RR> <Q; RR> Leituras complementares. Carissimi -4-mars-8 Stallings, W. Data and Computer Communications ( th edition), Prentice Hall 999. Capítulo, seção. e.3 Tanenbaum,. Redes de Computadores (4 a edição), Editora Campus, 3. Capítulo 3, seções 3.3 e 3.4 Redes de Computadores 3