Como você mede os pacotes TCP que estão esperando na fila de transmissão?

0

Eu entendo que há atrasos de enfileiramento e atrasos de processamento antes do envio de um pacote. No entanto, você mede esses atrasos no linux ou especificamente no Ubuntu?

    
por momododo 09.10.2014 / 14:42

1 resposta

0

É difícil responder qualquer coisa com precisão. Primeiro de tudo porque os pacotes TCP não fazem sentido. O TCP implementa um fluxo de dados contínuo sobre IP, portanto, um programa usando uma conexão TCP terá que:

  1. Elabore os dados e grave-os no soquete TCP. Talvez seja isso que você entende por "atraso no processo".
  2. Opcionalmente, algo como SSL pode processar os dados (criptografia, VPN)
  3. Os dados são passados para o protocolo IP que corta o fluxo, criando pacotes.
  4. Os pacotes são encaminhados / mascarados quando necessário.
  5. Os pacotes são encapsulados em pacotes Ethernet (a maior parte do tempo).
  6. Os pacotes Ethernet são enviados e talvez com algum atraso aleatório (congestionamento de rede).

Em cada camada da pilha TCP / IP, atrasos podem ocorrer (e eu não disse nada sobre recuperação de erros). Isto implica que você deve ser mais preciso sobre qual atraso você quer medir. Talvez algumas ferramentas como wireshark ou tcpdump ajudem você, talvez não.

Ao ler seu último comentário, fica mais claro se você está investigando no nível do aplicativo. Uma ferramenta de criação de perfil deve ajudá-lo. A maioria dos IDE tem um, mas ... o perfil em si introduz alguma sobrecarga! : -)

    
por Pyrophorus 11.10.2014 / 12:15