Ein bisschen Hintergrund.
Ich schreibe eine Anwendung, die UDP verwendet. Die Anwendung wird in einem LAN (nicht im Internet) ausgeführt. Ich habe davon ausgegangen, dass, wenn meine MTU 1500 ist, das ist, wie groß eine UDP-Nutzlast sein kann, aber ich bin nicht sicher, ob der UDP-Header auch dazu passen soll.
Ich vermute, dass, wenn ich ein UDP-Paket mit einer Nutzlast von 1500 Byte sende und die MTU der Maschine 1500 Byte ist, wird es am Ende zwei Pakete senden?
Im Internet nach einer klaren Antwort zu suchen scheint hier schwieriger als es sein sollte, ich habe widersprüchliche Informationen gesehen.
Wenn Ihre MTU 1500 ist, haben Sie 1500-20-8 = 1472 Bytes für Ihre Daten.
Ja, Ihr Beispiel würde nicht in einen Rahmen passen.
Die Datenlast der Ethernet-Daten beträgt 1500 Byte. IPv4 benötigt für seinen Header mindestens 20 Byte. Alternativ benötigt IPv6 mindestens 40 Bytes. UDP benötigt 8 Bytes für seinen Header. Das hinterlässt 1472 Bytes (ipv4) oder 1452 (ipv6) für Ihre Daten.
Weitere Informationen:
So, hier ist, wie es funktioniert. Ethernet beschränkt den Datenfluss auf 1500 Byte pro Frame, obwohl Sie eine 100-Megafat-Pipe haben. Um die Leitungsrate wirklich zu nutzen, müssen Sie über Ihre UDP-Anwendung Ethernet-Jumbo-Frames verwenden / verschieben, die bis zu 9000 Bytes pro Frame unterstützen können. Wenn Sie sich Netflix / Youtube und andere Streaming-Protokolle ansehen, testen sie Ihre Verbindung, bevor sie mit dem Streaming beginnen. Was sie im Wesentlichen tun, ist, dass sie einige Daten an Sie senden und die Verbindungsgeschwindigkeit berechnen / mitteln, bevor sie den Stream ausgeben. Sie verwenden im Wesentlichen auch UDP, aber mit einer sehr großen Paketgröße. Ich schätze sicher größer als 1500 Bytes.
Tags und Links udp