860 likes | 1.13k Vues
TCP sobre redes sem fio. Crhistian Noriega cnoriega@ime.usp.br. Computação Móvel MAC5743/MAC330 . Roteiro. Introdução O TCP Os problemas do TCP nas redes sem fio Protocolos por Divisão da Conexão Protocolos na Camada de Enlace Protocolos Cross-Layer Modificações do TCP Conclusões.
E N D
TCP sobre redes sem fio Crhistian Noriega cnoriega@ime.usp.br Computação Móvel MAC5743/MAC330
Roteiro • Introdução • O TCP • Os problemas do TCP nas redes sem fio • Protocolos por Divisão da Conexão • Protocolos na Camada de Enlace • Protocolos Cross-Layer • Modificações do TCP • Conclusões
Introdução • TCP é o protocolo de transporte mais empregado na Internet e redes fixas • As redes sem fio vêm sendo mais polulares, e precisam de accesso a serviços nas redes fixas (confiabilidade, etc) • A redes sem fio afrontam diferentes problemas que as redes fixas • O emprego direito do TCP sobre redes sem fio tem problemas pelo fato que elas são diferentes à redes fixas
Introdução • Mobilidade do Terminal • Altos ERB • Lantência no medio elevada • Interferencia/Desconexões • Meio físico não confiável • Manter a compatibilidade apesar da diferença entre meios de comunicação
Introdução • Protocolo IP (IPv4, IPv6) • Os pacotes podem ser entregados fora de ordem • Os pacotes podem ficar perdidos • Os pacotes podem ser duplicados • Arquitetura TCP/IP nas redes sem fio • TCP confiabilidade
Roteiro • Introdução • O TCP • Os problemas do TCP nas redes sem fio • Protocolos por Divisão da Conexão • Protocolos na Camada de Enlace • Protocolos Cross-Layer • Modificações doTCP • Conclusões
TCP (Transmission Control Protocol) • Orientado à conexão • Ponto a ponto (end-to-end) • Confiabilidade • Full duplex • Handshake • Finalização controlada
TCP (Transmission Control Protocol) • Implementa mecanismos de controle da Congestão • O protocolo supõe que a maior pérdida de pacotes se deve à congestão da rede • Confibilidade mediante retransmissões • Semântica end-to-end • Confirmações (ACK) enviadas pelo receptor da correta recepção dos pacotes do transmissor • ACK somente são enviadas depois de ser recebido o pacote
Janela deslizante • O mecanismo da janela deslizante • receiver’s advertised window (rwnd) – determinado pela capacidade do receptor • congestion window (cwnd) – determinado pelo transmissor baseado no estado da rede • Janela de congestão • Definida por cwnd medida em bytes
Confirmações ACK • Dados armazenados no buffer do Transmissor e Receptor • Metodo da janela deslizante • A cada pacote transmitido é incorporado um número de seqüência, paramanter o ordem dos pacotes • O ACK transmitido pelo receptor do pacote X é o número do próximo segmento que o receptor espera receber (X+1) • ACK contem o número mais alto do pacote recebido em seqüência • ACK contem o tamanho do buffer do receptor
ACKs acumulativos • Um novo ACK é gerado somente ao receber um pacote em seqüência 33 34 35 36 34 35 36 37 i
ACKs duplicados • Um AC duplicado (DUPACK) é gerado quando: • Um pacote chegar fora de ordem • Um pacote fica perdido 34 36 36 36
RTT - Round Trip Time • Tempo gasto entre a transmissão de um segmento e o recebimento do respectivo ACK • Sua medida deve ser adaptativa • Determina o ciclo da Janela de Congestionamento do TCP (cwnd) • Serve de base para o cálculo do RTO - Retransmission Timeout
RTO - Retransmission Timeout • Tempo máximo de espera de confirmação de um segmento, antes da sua retransmissão • Calculado em função da média e variação de RTT • Se o ACK não chegar antes que RTO expire, o segmento é retransmitido, o valor de RTO é dobrado e o contador reiniciado (“Timer Backoff”) • Baixo RTO: Retransmissões desnecessárias • Alto RTO: Baixo aproveitamento da rede • SRTT(i+1) = (1-α) * SRTT(i) + α * RTT(i+1) RTO = β * SRTTRTO=RTT + 4*desvio
Slow-Start • No inicio de uma transmissão é preciso que o TCP teste as condições da rede em lugar de transmitir normalmente • No inicio da transferência • Reparar perdas de pacotes (timeouts) • A taxa de pacotes inseridos dever ser a mesma que ACK recebidos • Inicialmente a janela de congestão cwnd = 1 MSS (Maximun segment size) • Incrementa o tamanho da janela por 1 MSS por cada ACK recebido cwnd = cwnd + 1 MSS • O algoritmo termina quando o tamanho da janela for igual a slow-start threshold (ssthresh) cwnd<= ssthresh
Slow-Start • A janela de congestão cresce exponencialmente durante o slow-start por RTT
Congestion avoidance • Em cada ACK cwnd é incrementado em MSS2/cwnd pacotes • Assim cwnd é incrementada linearmente • Se cwnd> ssthresh
Controle da congestão • Ao detectar um pacote perdido o transmissor supõe que foi devido à congestão na rede • Ao detectar perda de pacotes cwndé reduzida drasticamente • É reduzido o fluxo de dados na rede por RTT • A perda de pacotes por: • Timeouts • ACK consecutivos • Mensagens ICMC
Controle da congestão – Timeout • O tamanho da janela de congestão é reduzida a 1MSS (cwnd=1 MSS) • O slow-start threshold é reduzido a metade da janela de congestão antes da congestão (ssthresh=cwnd/2) ssthresh = max( min(cwnd,rwnd)/2 , 2 MSS) • Algoritmo de Karn, ambiguedade dos time-out, cresce exponencialmente, back-off (suficiente tempo aos ACK) • Slow-Start é iniciado
Controle da congestão – Fast Retransmit • Acontece com múltiplos DUPACK (>=3) • Acontece quando um pacote é perdido, mas os seguintes alcançaram ao Receptor • Não existe a necessidade de slow-start • Fast Recovery é iniciado
Controle da congestão – Fast Recovery • O valor de ssthresh é: ssthresh = max( min(cwnd,rwnd)/2 , 2 MSS) • Retransmite o pacote perdido • cwnd = ssthresh + MSS * número de DUPACKs • Quando chegar novos ACK cwnd=ssthresh • Inicia congestion avoidance
Roteiro • Introdução • O TCP • Os problemas do TCP nas redes sem fio • Protocolos por Divisão da Conexão • Protocolos na Camada de Enlace • Protocolos Cross-Layer • Modificações do TCP • Conclusões
TCP sobre redes sem fio • Erros de pacotes podem causar Fast restransmit, frente a perda de ACK ou pacotes • Fast restransmit resulta em: • Retransmissão de pacotes perdidos • Redução da janela de congestão • Redução da janela de congestão é desnecessária devido a erros na entrega de pacotes • Seria necessário transmitir a mesma taxa de transferência
TCP sobre redes sem fio • Se fossem produzidas desconexões por longos períodos de tempo, podem acontecer perdas de pacotes da janela de congestão • Timeouts executam slow-start • Slow-start reduz a janela de congestão a 1 MSS, e por tanto a taxa de transferência • Tempos de latência longos podem produzir erros no calculo do RTO, e timeout
TCP sobre redes sem fio • O TCP não pode distinguir entre perda de pacotes devido a problemas de congestionamento e problemas de transmissão • Desnecessária redução da janela de congestão e por enquanto baixa taxa de transferência
Considerações • Evitar a execução errada do mecanismo de controle da congestão • Evitar o problema de time-outs consecutivos • Deve ser confiável altos BER • Poder manipular os hand-offs eficientemente • Poder manipular desconexões longas e freqüentes • Considerar a largura de banda limitada e escassa energia do host móvel • Usar tamanhos de pacotes dinâmicos dependendo da largura de banda disponível para o MH • Manter a semântica end-to-end do TCP • No possível manter a compatibilidade
Abordagens do TCP nas redes sem fio • Soluções por divisão da conexão • Soluções na camada de enlace • Soluções Cross-Layer • Soluções por modificação do TCP
Roteiro • Introdução • O TCP • Os problemas do TCP nas redes sem fio • Protocolos por Divisão da Conexão • Protocolos na Camada de Enlace • Protocolos Cross-Layer • Modificações do TCP • Conclusões
Divisão da Conexão • A conexão ponto a ponto (end-to-end) do TCP é dividida em um enlace fixo e outro sem fio, isto permite ter maior grau de liberdade na otimização do TCP • Podem ser necessárias mais divisões • A conexão entre o FH e MH vai através da BS FH-MH = FH-BS + BS-MH
Divisão da Conexão • Controle de fluxo, erro, tamanho dos pacotes, timeouts podem ser independentes nas duas partes da conexão MH BS FH • Exemplos: • I-TCP, M-TCP
M-TCP • A arquitetura • MH Mobile host • MSS Mobile Support Station • SH Supervisor host • SH-TCP cliente • M-TCP cliente • Custo de hand-off baixo O(√n) • Complexidade do SH
M-TCP • Mantém a semântica TCP end-to-end • Manipular os problemas apresentados por longas desconexões o freqüentes desconexões • Adapta dinamicamente a largura de banda largura de banda fixa baseado nas mudanças de necessidades de outros MH (QoS) • SH executa: • Administração da largura de banda • Recuperação de erros locais (FEC) • Fornece seguimento do MH
O cliente SH-TCP • Quando um pacote chegar ao SH-TCP do transmissor TCP, este passa o pacote ao M-TCP, mas a diferença do I-TCP não envia ACK • Envia o ACK quando o MH faz • O protocolo “afoga” ao transmissor • O objetivo do SH-TCP é manter a janela de congestão no transmissor fechada frente a desconexões do MH
O cliente SH-TCP • Envia ACK para os k‘-1 bytes da maneira normal mas o ultimo byte não é confirmado • Ao MH desconectar depois de reconhecer os k' bytes, o SH-TCP envia um ACK para o k' byte ao transmissor, este ACK ajusta a janela a zero • FH modo persistente • SH-TCP que a sua vez envia um ACK ao transmissor re-abrindo a janela do transmissor, a partir do byte k'+1 k’+1 k’-1 k’ …
O cliente M-TCP • Na rede sem fio o objetivo é fazer uma recuperação rápida de perdas devidas a desconexões • Desconexão: congela todos os tempos do M-TCP • Conexão restabelecida: o M-TCP do MH envia um ACK especial ao M-TCP do SH que contem o numero da seqüência do mais alto byte recebido • Não fluxo de ACK: SH-TCP modo persistente transmissor
O cliente M-TCP • Time-out: em lugar de retransmitir o pacote, o M-TCP é posto no modo persistente • Soluções na camada de enlace (FEC) • No modo persistente, o M-TCP pode enviar pacotes persistentes ao MH cada período de tempo • Pelo fato que o MH tem largura de banda fixa • Back-off são evitados
M-TCP hand-off • No hand-off pode ser controlando mantendo a janela do transmissor em zero pelo SH-TCP no antigo SH, • Quando terminar o hand-off o SH-TCP no novo SH pode incrementar o tamanho da janela retransmitindo a máxima velocidade • Nenhum pacote é perdido pelo mecanismo de confirmação do ultimo byte
M-TCP • A semântica ponto a ponto do TCP é mantida • A eficiência da conexão TCP não é diminuída devido a desconexões • Time-outs consecutivos são evitados • Complexidade dos SH • Dificuldade com a confirmação do ultimo byte • Supõe que cada tem MH tem uma largura de banda fixa (mudanças drásticas?)
Roteiro • Introdução • O TCP • Os problemas do TCP nas redes sem fio • Protocolos por Divisão da Conexão • Protocolos na Camada de Enlace • Protocolos Cross-Layer • Modificações do TCP • Conclusões
Protocolos na Camada de Enlace • Pretendem fazer a camada de enlace sem fio semelhante à camada das redes fixas, para protocolos superiores
Protocolos na Camada de Enlace • Empregam mecanismo Forward Error Correction (FEC) • Correção local • FEC produz sobre cargo inclusive se não acontecer erros • Retransmissão de pacotes na camada de enlace, só em erros • Confiabilidade na camada de enlace • Ocultar características das redes sem fio à camada de transporte • Exemplos: Snoop, AIRMAIL, WTCP
Snoop • Arquitetura FH-BS-MH • Modulo Snoop • Não é executado nenhum protocolo de transporte
O protocolo Snoop • O agente snoop contem um cache que mantém os pacotes do FH não confirmados pelo MH • Retransmissão baseada em DUPACKs do MH • DUPACKs não são propagados ao FH, evitando os mecanismos do controle da congestão e slow-start • Armazena em cache os pacotes recebidos e enviados ao processamento normal • Matem um track de ACK enviados pelo MH • Se o pacote for perdido retransmite o pacote, a retransmissão tem prioridade sobre a transmissão
Pacotes do FH • Um novo pacote TCP normal chega na seqüência correta: enviado ao MH e inserido no cache • Um pacote fora de ordem que já foi inserido no cache previamente, é mantido o número de pacote em seqüência mais alto confirmado: • Se o número de seqüência do pacote é maior • O pacote é enviado ao MH • Se o número de seqüência do pacote é menor • O pacote já foi recebido pelo MH, • Descartar ou • Perda do ACK original
Pacotes do FH • Um pacote fora de seqüência que não foi inserido no cache previamente: marcado para retransmissão do FH, esto reflete congestão da rede fixa • Mantém um contador do número de retransmissões do pacote, o qual é reiniciado quando chegar o pacote novamente do FH
Processamento dos ACKs • ACK novo: limpeza do cache • ACK duplicados (DUPACK), • O pacote que não esta no cache snoop ou foi marcado para ser retransmitido: retransmissão pelo FH • O pacote fica em cache neste caso o pacote perdido é retransmitido imediatamente a maior prioridade • Mantém um track do número de retransmissões • Calcula o número de DUPACKs que o receptor espera receber, o número de pacotes enviados desde o ultimo erro