Dimensionamento de Janelas TCP para Conexões de Satélite

7

Uma conexão via satélite geralmente tem um RTT em torno de 500ms. Conexões geralmente sofrem velocidades sub-ótimas de transferência, apesar de grandes quantidades de largura de banda, porque os reconhecimentos TCP demoram muito para chegar.

Meu entendimento é que uma boa maneira de resolver esse problema com conexões TCP é definir o tamanho da janela TCP para a velocidade de conexão (em bits) multiplicada por RTT (em segundos). Portanto, uma conexão de 1mbps por satélite deve ter um tamanho de janela de 512kb.

Quais são as armadilhas envolvidas nisso? Existem outros ajustes semelhantes que devem ser feitos para otimizar as conexões via satélite? Eu entendo que muitos sistemas operacionais modernos irão modificar o tamanho da janela automaticamente, mas eles serão agressivos o suficiente para tornar os tamanhos das janelas grandes o suficiente para trabalharem na comunicação via satélite?

Como um aparte, assumirei que um tamanho de janela grande não é desejável em redes que freqüentemente descartam pacotes, já que a retransmissão estará no tamanho da janela e você poderá dedicar grande parte de sua largura de banda à sobrecarga de retransmissão.

Obrigado, ainda estou aprendendo muito sobre redes e aprecio sua opinião.

    
por directedition 15.10.2012 / 19:01

3 respostas

4

Você geralmente deve usar uma pilha TCP que implemente o dimensionamento correto da janela. Mas é claro que você está certo de que o tamanho da sua janela precisa ser macheado com esse produto (BDP). Caso você tenha um BDP variável, você pode definir o tamanho da janela como algo que você esperaria como um "pior" caso comum. Curiosamente, a maioria das conexões não sofre muito se o tamanho da janela for grande do que o BDP (obviamente não deve ser caminho muito grande), mas mostrará um desempenho degradado se o tamanho da janela for muito grande menor que o BDP.

Para verificar se a sua pilha TCP / IP está aumentando corretamente o tamanho da janela, você deve empregar o Wireshark ou qualquer outro sniffer de tráfego. Você pode olhar diretamente para o sinalizador de tamanho da janela no cabeçalho (com os fatores de dimensionamento em mente!). O Wireshark também pode mostrar o tamanho efetivo da janela levando em conta o fator de escala.

Verifique este tutorial sobre como plotar seu tamanho de janela TCP como uma função do tempo aqui .

    
por 15.10.2012 / 19:23
2

Isso é totalmente acadêmico porque ninguém executa o TCP por conexões de satélite. Eu não conheço um único provedor de satélite que faz isso. Todos executam protocolos específicos de satélite através do satélite e colocam o ponto final do TCP na estação terrestre.

Quando uma máquina na rede envia um pacote TCP SYN para o terminal satélite, o terminal satélite envia uma solicitação de proxy TCP para o satélite. Isso instrui a estação terrestre a abrir uma conexão TCP com algum servidor na Internet. A estação terrestre fala TCP ao servidor da Internet. O terminal de satélite não fala TCP sobre o satélite, mas fala um protocolo otimizado para uso de satélite. A estação terrestre atua como um proxy entre o terminal de satélite e o servidor de Internet.

    
por 15.10.2012 / 20:48
1

Por conveniência, existem calculadoras de produtos com atraso de largura de banda disponíveis - uma dessas calculadoras é aqui . Quanto a grandes janelas causando problemas no caso de perda de pacotes - é exatamente por isso que o uso de janelas TCP é variável. Com a perda de pacotes, o tamanho da janela diminuirá, permitindo menos dados em vôo e uma conseqüente redução na velocidade de transmissão. Após um período de tempo, o tamanho da janela será renegociado.

Sua latência na verdade não é tão ruim para o satélite - um RTT de 1s @ 1M é apenas uma janela de 125K. Um bom número de sistemas operacionais modernos suportaria facilmente esse recurso, portanto, modificações adicionais podem não ser necessárias.

Como um aparte - alguns tiveram muito boa sorte com os vários otimizadores de WAN disponíveis no mercado. Isso tende a otimizar os tamanhos das janelas TCP, bem como utilizar o armazenamento em cache e a compactação para pressionar mais o link e melhorar a capacidade de resposta aparente.

    
por 15.10.2012 / 19:45