Я отлаживаю приложение с помощью Wireshark и наблюдаю, как значение размера окна TCP уменьшается на одной стороне связи.
Если в разделе TCP пакета отображается «Значение размера окна: 1», означает ли это, что размер окна источника равен 1 или размер окна назначения равен 1? Я знаю, что одна сторона общается быстрее, чем другая, я просто хочу убедиться, что знаю, какая именно.
1 192.168.0.1 -> 192.168.0.100, Modbus / TCP, длина: 66, значение размера окна: 1
2 192.168.0.100 -> 192.168.0.1, TCP, длина: 60, значение размера окна: 92
3 192.168.0.100 -> 192.168.0.1 TCP, длина: 310, значение размера окна: 92
4 192.168.0.1 -> 192.168.0.100 TCP, длина: 54, значение размера окна: 0
Итак, размер окна 192.168.0.1 равен 0 или он сообщает, что окно 192.168.0.100 равно 0? Спасибо.
Размер окна пакетов от A до B указывает, сколько места в буфере доступно на A для приема пакетов. Таким образом, когда B получает пакет с размером окна 1, он сообщает B, сколько байтов ему разрешено отправить в A.
Несколько деталей, которые стоит знать о размере окна:
ACK number + window size * scaling factor
остается (примерно) постоянным.Поле размера окна в заголовке TCP указывает количество байтов, которое отправитель (в данном случае 192.168.0.1) желает получить.