webentwicklung-frage-antwort-db.com.de

Größe des leeren UDP und TCP Paket?

Wie groß ist ein leeres UDP-Datagramm? Und das eines leeren TCP Pakets?

Ich kann nur Informationen über die MTU finden, aber ich möchte wissen, welche "Basisgröße" diese haben, um den Bandbreitenverbrauch für Protokolle darüber zu schätzen.

29
puccio

TCP:

Größe des Ethernet-Frames - 24 Byte
Größe des IPv4-Headers (ohne Optionen) - 20 Byte
Größe des TCP - Headers (ohne Optionen) - 20 Byte 

Gesamtgröße eines Ethernet-Frames, der ein IP-Paket mit leerem TCP - Segment trägt - 24 + 20 + 20 = 64 Byte

UDP:

Größe des Ethernet-Frames - 24 Byte
Größe des IPv4-Headers (ohne Optionen) - 20 Byte
Größe des UDP-Headers - 8 Byte 

Gesamtgröße eines Ethernet-Frames, der ein IP-Paket mit einem leeren UDP-Datagramm trägt - 24 + 20 + 8 = 52 Byte

72
Himanshu

Himanshus Antwort ist völlig richtig.

Was bei der Betrachtung der Struktur eines Ethernet-Frames irreführend sein könnte, ist, dass die Mindestgröße eines Ethernet-Frames ohne Nutzlast 18 Byte betragen würde: Dst Mac (6) + Src = Mac (6) + Länge (2) + Fcs (4), durch Hinzufügen der Mindestgröße von IPv4 (20) und TCP (20) erhalten wir insgesamt 58 Bytes.

Was noch nicht erwähnt wurde, ist, dass die minimale Nutzlast eines Ethernet-Frames 46 Byte beträgt, so dass die 20 + 20 Byte von IPv4 und TCP sind nicht genug Nutzlast! Dies bedeutet, dass 6 Byte haben gepolstert werden, das ist, wo die Summe von 64 Bytes herkommt.

18 (min. Ethernet- "Header" -Felder) + 6(padding) + 20 (IPv4) + 20 (TCP) = 64 Byte

Hoffe, das klärt ein bisschen auf.

Weiterführende Literatur :

18
Felix

Siehe User Datagram Protocol . Der UDP-Header ist 8 Byte (64 Bit) lang.

Die minimale Größe des bloßen TCP Headers beträgt 5 Wörter (32 Bit Word), während die maximale Größe eines TCP Headers 15 Wörter beträgt.

Beste Wünsche, Fabian

8
halfdan

Artelius und Halfdan sind korrekt, aber Sie vermissen etwas: UDP und TCP werden beide auf einem physischen Transport ausgeführt. Wenn Sie beispielsweise UDP über Ethernet verwenden, sollten Sie auch die Größe angeben des Ethernet-Frames

1
Useless

Wenn Sie den Bandbreitenverbrauch berechnen und mit der maximalen Rate Ihres Netzwerks (wie 1 GBit/s oder 10 GBit/s) in Beziehung setzen möchten, müssen Sie, wie von Useless angegeben, den Ethernet-Framing-Overhead unter hinzufügen Schicht 1 zu den von Felix und anderen berechneten Zahlen, nämlich

  • 7 Byte Präambel
  • 1 Byte Begrenzer für Frame-Beginn
  • 12 Bytes interpacket gap

d. h. insgesamt 20 mehr Byte, die pro Paket verbraucht werden.

0