
Indieser Technet-Artikel über die MSS-Einschränkungen von Windows Server 2008heißt es darin:
Nach der Analyse der Netzwerkverfolgung, die auf dem Windows 2008-Quellserver gesammelt wurde, stellten wir fest, dass das Remote-System eine TCP-MSS-Größe von 512 Byte anbot und der Windows 2008-Server weiterhin Datenpakete mit einer MSS-Größe von 536 Byte sendete.
Wie gehen Sie dabei vor, d. h., Sie führen eine Netzwerkverfolgung durch und ermitteln dann den MSS-Wert, den Windows verwenden sollte und derzeit verwendet?
Antwort1
Wenn Sie eine Paketerfassung mit den SYN- und SYN/ACK-Paketen haben, die die TCP-Verbindung initiieren, finden Sie die von den einzelnen Parteien angekündigte maximale Segmentgröße in der Optionsliste. Sie können eine solche Erfassung erstellen mitWireshark, der interessante Teil kann so aussehen:
(schamlos gestohlen vonhttp://caedesnotes.wordpress.com/2010/06/30/bug-hunting-browsers-fail-to-load-research-microsoft-com/)
Wenn - wie in diesem Beispiel - die von 131.107.65.14 angekündigte MSS 1452 Byte beträgt, sollten Sie während dieser Verbindung nur TCP-Segmentlängen sehen, die gleich oder kleiner als dieser Wert sind. Beachten Sie, dass beide Hosts die MSS unabhängig voneinander in den SYN- und SYN/ACK-Paketen ankündigen und der kleinere der beiden Werte für alle während der gesamten Dauer der Verbindung ausgetauschten Segmente gewählt wird.
Sie können in Wireshark einen Anzeigefilter einrichten, um eine schnelle Überprüfung durchzuführen. tcp.len>1452 and ip.dst==131.107.65.14
würde alle Pakete anzeigen, die die MSS-Beschränkung von 1452 Bytes auf 131.107.65.14 verletzen. Wenn Ihr TCP-Stack es richtig macht, sollten Sie offensichtlich keine Pakete angezeigt bekommen, nachdem der Filter angewendet wurde.