Atraso entre o envio TCP e a gravação real na NIC

0

Enquanto procurava solução para um problema na programação de soquetes com python descrito aqui (Resumindo, o problema é: eu quero que minha mensagem ( ~ 25 Bytes ) enviada por um cliente através de um socket TCP seja despachada (liberada ) imediatamente, me deparei com este artigo.

No sexto parágrafo da seção "Como funcionam as conexões estabelecidas", o artigo diz o seguinte:

The actual transmission of the data to the NIC could be somewhat delayed from when the user actually calls write(2) if the network is busy, if the TCP send window is full, if there are traffic shaping policies in effect, etc.

Minhas perguntas são:

  • Com uma rede muito rápida e privada (posso garantir disponibilidade) e a janela de envio TCP não está cheia. As minhas pequenas mensagens de tamanho ~ 25 bytes serão enviadas imediatamente?
  • Quais poderiam ser essas políticas de modelagem de tráfego no caso padrão do Ubuntu recente, como 14, 16 e 18?
por PHcoDer 27.11.2018 / 22:57

1 resposta

2

As políticas de modelagem de tráfego são definidas na espinha dorsal de seu ISP, não pelo Ubuntu, então isso não é problema se você tiver uma rede muito rápida e privada gerenciada por você (EG: não corporativo: se corporativo, converse com engenheiros de rede que portas para usar).

A janela TCP é 64K nos sistemas operacionais modernos, portanto, a menos que você esteja executando isso no DOS (8K) ou no kernel 2.16, se a memória me atender corretamente (16K), isso não é um problema:

Sim, acredito que os 25 bytes serão enviados imediatamente no Ubuntu, usando uma rede privada.

    
por 27.11.2018 / 23:44

Tags