Странные наблюдения IPERF: размер MSS уменьшается по сравнению с указанным - PullRequest
2 голосов
/ 08 июля 2011

Я использую IPERF для отправки некоторых пакетов с одного компьютера на другой. При тестировании MSS (максимальный размер сегмента) с IPERF наблюдались следующие вещи.

Отправка пакетов с MSS = 20 байтов:

iperf -c 192.168.1.98 -P 1 -i 5 -p 5001 -M 20 -m

Мы ожидали, что вышеприведенная команда отправит пакеты с MSS = 20 байтов и
MTU = MSS + 40 байт = 60 байт, но IPERF показывает, что MSS = 36 байт (MTU = 76 байт).

Мы видели, что IPERF всегда отправляет MSS размера, на 12 байт меньше, чем мы указываем.

Здесь я должен указать, что ПК, с которого я отправляю пакеты, является машиной Linux, а компьютер, на котором эти пакеты принимаются, - машиной Windows. Мы генерируем пакеты в Linux с помощью команды IPERF, пока на Windows выполняется обработка JPERF, где мы видим информацию о входящих пакетах.

Еще одна важная вещь: JPERF на компьютере с Windows после получения отправленных нами пакетов говорит следующее: Размер MSS и MTU неизвестен (TCP_MAXSEG не поддерживается ОС?)

Есть идеи, как / почему MSS уменьшается?

1 Ответ

1 голос
/ 03 ноября 2011

Я не совсем понимаю, что такое MSS и MTU, но, пытаясь это сделать, я обнаружил следующее из Path MTU Discovery на сайте MSDN Microsoft:

"В прошлом MSS для хоста был MTU на канальном уровне минус 40 байт для интернет-протокола (IP) и TCP-заголовков, где параметры IP или TCP не используются. [...]

Однако, поддержка в Windows 2000, Windows XP и Windows Server 2003 для дополнительных опций TCP, таких как метки времени, увеличилось типичный заголовок TCP / IP до 52 или более октетов. "

Это говорит о том, что наблюдаемое различие в 12 байт может быть связано с параметрами, используемыми на стороне соединения Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...