Download
tcp sobre redes sem fio n.
Skip this Video
Loading SlideShow in 5 Seconds..
TCP sobre redes sem fio PowerPoint Presentation
Download Presentation
TCP sobre redes sem fio

TCP sobre redes sem fio

177 Views Download Presentation
Download Presentation

TCP sobre redes sem fio

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. TCP sobre redes sem fio Crhistian Noriega cnoriega@ime.usp.br Computação Móvel MAC5743/MAC330

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. TCP (Transmission Control Protocol) • Orientado à conexão • Ponto a ponto (end-to-end) • Confiabilidade • Full duplex • Handshake • Finalização controlada

  8. 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

  9. 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

  10. 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

  11. ACKs acumulativos • Um novo ACK é gerado somente ao receber um pacote em seqüência 33 34 35 36 34 35 36 37 i

  12. ACKs duplicados • Um AC duplicado (DUPACK) é gerado quando: • Um pacote chegar fora de ordem • Um pacote fica perdido 34 36 36 36

  13. Cabeçalho TCP

  14. 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

  15. 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

  16. 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

  17. Slow-Start • A janela de congestão cresce exponencialmente durante o slow-start por RTT

  18. Congestion avoidance • Em cada ACK cwnd é incrementado em MSS2/cwnd pacotes • Assim cwnd é incrementada linearmente • Se cwnd> ssthresh

  19. 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

  20. 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

  21. 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

  22. 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

  23. Controle da congestão – Fast Recovery

  24. Estados do TCP

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. M-TCP

  36. 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

  37. 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

  38. 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’ …

  39. 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

  40. 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

  41. 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

  42. 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?)

  43. 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

  44. Protocolos na Camada de Enlace • Pretendem fazer a camada de enlace sem fio semelhante à camada das redes fixas, para protocolos superiores

  45. 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

  46. Snoop • Arquitetura FH-BS-MH • Modulo Snoop • Não é executado nenhum protocolo de transporte

  47. 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

  48. 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

  49. 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

  50. 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