Erros de transmissão

Fonte: wirelesspt.net

Em implementações mais antigas de TCP/IP, a perda de pacotes era sempre considerada como resultado de congestionamentos (ao invés de erros de ligação). Quando isto acontece, o TCP realiza manobras para evitar congestionamentos, passando a requerer três ACKs (reconhecimento de recepção) duplicados ou uma reinicialização lenta em caso de um timeout.

Em função do longo RTT, uma vez que esta fase de controle de congestionamento é iniciada, links TCP/IP via satélite irão levar um bastante tempo até que voltem ao nível de taxa de transmissão anterior ao problema. Desta forma, erros num link via satélite têm um efeito muito mais sério na performance do que o TCP em links de latência baixa.


Para contornar esta situação, mecanismos como o SACK (Selective Acknowledgement) foram desenvolvidos. O SACK especifica exactamente aqueles pacotes que foram recebidos, permitindo ao remetente retransmitir apenas os segmentos que foram perdidos por causa de erros de ligação. O artigo sobre os detalhes de implementação do TCP/IP no Microsoft Windows 2000 especifica:


"O Windows 2000 introduz o suporte para uma funcionalidade importante de desempenho, conhecida como SACK (Selective Acknowledgement), especialmente para ligações que usam grandes janelas TCP."


O SACK vem sendo uma funcionalidade padrão no kernel linux e bsd à já bastante tempo. Certifique-se de que o seu router internet e seu ISP tenham suporte ao SACK.

Links externos

Editor

--Cmsv 00h52min de 12 de fevereiro de 2010 (GMT)