Warum ist das Flag "Nicht fragmentieren" in den Protokollen https und ssh gesetzt?

12

Ich habe viele Informationen gefunden, die darauf hinweisen, dass dies der Fall ist, aber ich suche wirklich nach dem Grund dafür. Warum ist es notwendig? Ist es nötig?

Aiden Thompson
quelle

Antworten:

13

Das DF-Flag weist Router an, die das Paket normalerweise fragmentieren, weil es für die MTU einer Verbindung zu groß ist (und es möglicherweise aufgrund dieser Fragmentierung nicht in der richtigen Reihenfolge zugestellt werden kann), stattdessen das Paket zu verwerfen und ein ICMP-Fragmentierungspaket zurückzugeben, um das Senden zu ermöglichen host, um die niedrigere MTU auf dem Pfad zum Zielhost zu berücksichtigen. Dieser Vorgang wird als " Path MTU Discovery " bezeichnet.

Es ist im Allgemeinen besser, PMTUD in Ruhe zu lassen und es seine Arbeit machen zu lassen, als wenn Ihr TCP-Stack sich mit nicht ordnungsgemäßen Fragmenten befasst. In einigen Fällen (hauptsächlich wenn das erforderliche ICMP blockiert ist) funktioniert PMTUD jedoch nicht und die Verbindung wird unterbrochen.

In diesem Fall möchten Sie, dass das DF-Flag deaktiviert wird - wenn PMTUD nicht ordnungsgemäß funktioniert und Verbindungsprobleme auftreten.

Shane Madden
quelle
1
Gibt es einen Grund, warum verschlüsselter Verkehr, d. H. SSH- und HTTPS-Verkehr sollten nicht fragmentiert werden?
Aiden Thompson,
1
@AidenThompson Im Allgemeinen ist es für die Leistung aller TCP-Verbindungen, einschließlich SSH und HTTPS, besser, PMTUD seine Sache tun zu lassen, anstatt Fragmentierung zuzulassen.
Shane Madden
2
(Dh, es hat nichts mit Verschlüsselung zu tun und alles, was mit TCP zu tun hat.)
Dies ist eines der Dinge, auf die sich Server- und Netzwerkwelten niemals einigen werden.
Smithers