Tcp Tempo limite de retransmissão em um tempo muito curto?

1

Eu tenho duas máquinas Windows 2012 R2 (122 e 115) hospedadas no mesmo host VMWare. Nós temos um batimento cardíaco na camada de aplicação entre essas duas máquinas, de tempos em tempos, haverá re-transmissão TCP. Baseado no log wireshark, parece que a retransmissão ocorre em 12-45 milissegundos e a retransmissão pode acontecer em 122 ou 115. Por exemplo, um dos log mais recentes (esse log é capturado na máquina 122) parece :

  1. Às 10: 30: 42.654764 115 envia para 122: PSH + ACK Seq = 28457 Ack = 26914 Win = 524032 Len = 59
  2. Às 10: 30: 42.668642 122 envia para 115: ACK Seq = 26914 Ack = 28516 Win = 524800 Len = 0
  3. Às 10: 30: 42.668764 115 envia para 122: [Retransmissão TCP] PSH + ACK Seq = 28457 Confirmação = 26914 Win = 524032 Len = 59
  4. Às 10: 30: 42.668787 122 envios para 115: ACK Seq = 26914 Ack = 28516 Win = 524800 Len = 0 SLE = 28457 SRE = 28516

Portanto, parece que 115 pensa que 122 está expirando após 34 milissegundos (mesmo que 122 realmente responda um pouco antes disso) e, em seguida, tente uma retransmissão. Eu tentei encontrar esse tempo limite de re-transmissão no registro sem sucesso. (Eu estava procurando por algo como InitialRtt) Minhas perguntas:

  1. 34 milisegundos são uma prática padrão?
  2. O VMWare poderia ter alguma coisa a ver com isso?
  3. Qualquer motivo pelo qual 122 é lento no ACK? (O software em ambas as extremidades é codificado por nós, mas não pense que tentamos ajustar esse valor, eu posso estar errado nisso, já que não escrevi o código pessoalmente).
por user592517 10.05.2016 / 19:51

1 resposta

0

Para conexões TCP estabelecidas, os tempos limite de retransmissão serão calculados dinamicamente dependendo do RTT da conexão entre o cliente e o servidor. Essencialmente, o TCP tentará descobrir quanto tempo deve esperar para ouvir um ACK por um pacote enviado. Se esse temporizador expirar, ele acionará uma retransmissão.

Portanto, com base no seu exemplo, podemos supor que 122 recebe um pacote de 115. 122 envia um ACK para este pacote, mas na verdade nunca chega a 115. 115 acha que seu pacote original nunca foi recebido por 122, então o retransmite após o temporizador de retransmissão expira. 122 recebe esta retransmissão e envia outro ACK.

Espero que ajude.

    
por 17.05.2016 / 19:40