Назад | Перейти на главную страницу

Определить значение MSS на Windows Server

В эта статья Technet об ограничениях MSS в Windows Server 2008, в нем упоминается:

После анализа сетевой трассировки, собранной на исходном сервере Windows 2008 Server, мы обнаружили, что удаленная система предлагала размер TCP MSS 512 байт, а сервер Windows 2008 продолжал отправлять пакеты данных с размером MSS 536 байт.

Как вы это делаете, то есть выполняете трассировку сети, а затем определяете значение MSS, которое Windows должна использовать и использует в настоящее время?

Если у вас есть захват пакета с пакетами SYN и SYN / ACK, инициирующими TCP-соединение, вы найдете максимальный размер сегмента, объявленный каждой из сторон, в списке параметров. Вы можете создать такой захват, используя Wireshark, интересная часть может выглядеть так:

(бессовестно украдено из http://caedesnotes.wordpress.com/2010/06/30/bug-hunting-browsers-fail-to-load-research-microsoft-com/)

Если - как вы видите в этом примере - MSS, объявленный 131.107.65.14, составляет 1452 байта, вы должны видеть только длины сегментов TCP, равные или меньшие этого значения во время этого соединения. Обратите внимание, что оба хоста независимо объявляют MSS в пакетах SYN и SYN / ACK, и меньший из двух выбирается для всех сегментов, которыми обмениваются в течение всего периода соединения.

Вы можете настроить фильтр отображения в Wireshark, чтобы выполнить быструю проверку. tcp.len>1452 and ip.dst==131.107.65.14 отобразит любые пакеты, нарушающие ограничение MSS в 1452 байта до 131.107.65.14. Если ваш TCP-стек делает это правильно, вы, очевидно, не должны видеть никаких пакетов, отображаемых после применения фильтра.