У меня есть две машины Windows 2012 R2 (122 и 115), размещенные на одном хосте VMWare У нас на уровне приложений между этими двумя машинами пульс, время от времени будет происходить повторная передача tcp. Основываясь на журнале wireshark, похоже, что повторная передача происходит за 12-45 миллисекунд, а повторная передача может происходить либо в 122, либо в 115. Например, один из последних журналов (этот журнал записывается на компьютере 122) выглядит так:
- В 10:30: 42.654764 115 отправляет 122: PSH+ACK Seq = 28457 Ack = 26914 Win = 524032 Len = 59
- В 10:30: 42.668642 122 отправляет 115: ACK Seq = 26914 Ack = 28516 Win = 524800 Len = 0
- В 10:30: 42.668764 115 отправляет 122: [Tcp Retransmission] PSH+ACK Seq = 28457 Ack = 26914 Win = 524032 Len = 59
- В 10:30: 42,668787 122 отправляет 115: ACK Seq = 26914 Ack = 28516 Win = 524800 Len = 0 SLE = 28457 SRE = 28516
Таким образом, похоже, что 115 считает, что 122 истекло по истечении 34 миллисекунд (даже если 122 действительно отвечает немного раньше), а затем пытается повторить передачу. Я попытался найти этот тайм-аут повторной передачи в реестре, но безрезультатно. (Я искал что-то вроде InitialRtt) Мои вопросы:
- 34 миллисекунды - это стандартная практика?
- Может ли VMWare иметь какое-либо отношение к этому?
- Любая причина, почему 122 медленно в ACK? (Программное обеспечение на обоих концах написано нами, но мы не думаем, что мы когда-либо пытаемся изменить это значение, я могу ошибаться, поскольку лично я не писал код).