Bei TCP / IP-Paketgrößen war Ethernet schon immer einflussreich. Ethernet hat eine Standard-MTU von 1500 Bytes, die nach einem typischen IPv4-Header-Overhead von 20 Bytes und einem typischen modernen TCP-Header-Overhead von 32 Bytes (früher 20 Bytes, aber wir fügen heute eine 12-Byte-Zeitstempeloption hinzu) zu einem TCP Maximale Segmentgröße von 1448 Byte .
PPPoE, das bei DSL-basierten ISPs beliebt ist, fügt weitere 8 Byte Overhead hinzu. TCP-Verbindungen, die eine PPPoE-Verbindung durchlaufen, enden mit einem TCP-MSS von 1440 Byte . Andere Technologien können zusätzlichen Aufwand verursachen.
Die meisten modernen TCP / IP-Stacks führen "Path MTU Discovery" (PMTUD) aus, sodass sie sich niemals auf die IP-Fragmentierung verlassen müssen. Leider blockieren einige Sites die ICMP-Meldungen, die für PMTUD erforderlich sind, und erzeugen versehentlich "PMTUD-Schwarze Löcher", bei denen PMTUD nicht funktioniert. Damit sich Personen, die sich hinter schwarzen Löchern von PMTUD befinden, immer noch eine Verbindung zu ihren Diensten herstellen lassen, entscheiden sich Google-Websites für einen sehr konservativen TCP-MSS von 1380 Bytes (das letzte Mal, als ich das überprüft habe).
Ich würde also sagen, man könnte ein ziemlich gutes Argument vorbringen: Wenn Sie die Schreibweise Ihrer Anwendung anpassen möchten, stellen Sie sicher, dass sie meist nur ein einzelnes Paket füllen und Ihre Schreibvorgänge nicht größer als 1448 Bytes und vielleicht auch nicht sind größer als 1380 Bytes.
IPv4-Datagramme können bis zu 64 KibiBytes groß sein, aber zu wenige Pfade im Internet verfügen über eine 64-KB-MTU, so dass diese Anzahl für die meisten Paketgrößenplanungen irrelevant ist. Ihr theoretischer Messaging-Protokoll-Server ist wahrscheinlich an ein Ethernet-ähnliches Netzwerk angeschlossen, das wahrscheinlich standardmäßige 1500-Byte-Frames verwendet, sodass der IP-Stack Ihres eigenen Servers diesen 64-KB-Schreibvorgang in 46 oder so separate Pakete fragmentieren muss, bevor er überhaupt mit der Übertragung beginnen könnte am ersten Sprung. Selbst Ethernet-Netzwerke, die für die Verwendung von nicht standardmäßigen "Jumbo-Frames" eingerichtet sind, werden normalerweise mit 9000 Byte großen MTUs ausgeliefert. Ich kann nicht einmal eine physikalische / Datenverbindung (Layer 1/2) -Netzwerktechnologie nennen, die 64-KB-MTUs zulässt. Vielleicht IP über Thunderbolt.