1 / 84

TCP sobre redes sem fio

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.

donny
Download Presentation

TCP sobre redes sem fio

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related