空UDP和TCP数据包的大小?

时间:2009-12-04 10:21:02

标签: tcp udp size

空UDP数据报的大小是多少?那是一个空的TCP数据包?

我只能找到有关MTU的信息,但我想知道这些信息的“基本”大小是多少,以便估算协议的带宽消耗。

5 个答案:

答案 0 :(得分:74)

<强> TCP:

以太网帧的大小 - 24字节
IPv4标头的大小(没有任何选项) - 20个字节
TCP标头的大小(没有任何选项) - 20字节

携带具有空TCP段的IP数据包的以太网帧的总大小 - 24 + 20 + 20 = 64字节

<强> UDP:

以太网帧的大小 - 24字节
IPv4标头的大小(没有任何选项) - 20个字节
UDP标头的大小 - 8个字节

携带具有空UDP数据报的IP数据包的以太网帧的总大小 - 24 + 20 + 8 = 52字节

答案 1 :(得分:17)

Himanshus的回答是完全正确的。

在查看以太网帧的结构时可能会产生误导[请参阅进一步阅读],如果没有有效负载,以太网帧的最小大小将为18个字节:Dst Mac(6)+ Src Mac(6)+长度(2)+ Fcs(4),添加IPv4(20)和TCP(20)的最小大小总共为58个字节。

还没有提到的是,以太网帧的最小有效载荷是46字节,因此IPv4和TCP的20 + 20字节的有效载荷不够!这意味着必须填充6个字节,即总共64个字节的来源。

18(最小以太网&#34;标题&#34;字段)+ 6(填充)+ 20(IPv4)+ 20(TCP)= 64字节

希望这可以解决一些问题。

进一步阅读

答案 2 :(得分:8)

User Datagram Protocol。 UDP标头长度为8字节(64位)。

裸TCP标头的最小大小为5个字(32位字),而TCP标头的最大大小为15个字。

祝福, 费边

答案 3 :(得分:1)

Artelius和halfdan是正确的,但你遗漏了一些东西:UDP和TCP都运行在一些物理传输之上。 例如,如果您使用UDP over ethernet,则还应包括ethernet frame

的大小

答案 4 :(得分:0)

如果您打算计算带宽消耗并将其与网络的最大速率相关联(例如1Gb / s或10Gb / s),则必须按照Useless的说明添加Ethernet framing overhead at layer 1到费利克斯和其他人计算的数字,即

  • 7字节序言
  • 1字节帧起始分隔符
  • 12个字节的interpacket gap

即。每个数据包总共消耗20个字节。