2009-12-04 229 views
26

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

我只能找到有关MTU的信息,但我想知道这些信息的“基本”大小是什么,以便估计它们之上的协议的带宽消耗。

在此先感谢您的信息。

+6

维基百科告诉你在这种情况下你需要知道的一切... – Artelius 2009-12-04 10:24:00

+1

哪个服务器层?在IP上的UDP可以搭载**许多**服务器层,其中一个是以太网,但也有MPLS,PBT,帧中继,ATM,POS等。 – jldupont 2009-12-05 21:24:49

回答

64

尺寸的大小 - 24字节
IPv4报文头尺寸(不含任何选项) - 20个字节
尺寸TCP报头(没有任何选项) - 24 + 20 + 20 = 64字节

UDP报头的尺寸 - - 8个字节
空UDP数据报因此总大小为20个字节
空TCP数据报所以总大小 - 24 + 20 + 8 = 52字节

+2

这个(模可能出现的错误:)的确是我正在寻找的整体结果! – puccio 2009-12-04 10:39:14

+5

我认为最小的以太网帧是64字节(有效负载必须填充到至少46字节)。 – Useless 2009-12-04 10:46:37

+1

然而,并不是所有的TCP和UDP都在以太网之上,事实上,同一个分组在不同的网络上传输时可能会在几个不同的物理层上传输。 – caf 2009-12-04 11:12:51

8

参见User Datagram Protocol。 UDP头是8字节(64位)长。

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

最良好的祝愿, 费边

1

Artelius和哈夫丹是正确的,但你失去了一些东西:UDP和TCP上的一些物理传输的顶部都运行。 例如,如果你使用UDP通过以太网,你应该还包括以太网帧的ethernet frame

+0

呃..当然是IP帧,如果你想要的话被路由。 – halfdan 2009-12-04 16:27:59

+0

没有“IP框架”这样的东西:您可能想要指的是“IP数据包”。 – jldupont 2009-12-05 21:25:38

13

Himanshus回答完全正确。如果没有有效载荷,以太网帧的最小尺寸应为18个字节:Dst Mac(6)+ Src Mac(6)其中, +长度(2)+ Fcs(4),添加IPv4(20)和TCP(20)的最小大小总共为58个字节。

尚未提及的是,以太网帧的最小有效载荷是46字节,因此来自IPv4和TCP的20 + 20字节没有足够的有效载荷!这意味着6个字节必须被填充,即总共64个字节来自哪里。

18(分钟以太网 “报头” 字段)+ 6(填充)+ 20(IPv4)的+ 20(TCP)= 64个字节

希望这将清除的事情了一点。

进一步阅读

+2

这是否也意味着以下? 18(最小以太网“标题”字段)+18(填充)+20(IPv4)+8(UDP)= 64字节?对于IP + UDP有效负载,共有18 + 20 + 8 = 46个字节。 – Ali 2014-12-08 05:19:15

+3

是的!这里20 + 8(= 28)对于最小以太网有效载荷来说还不够,所以需要18个字节的填充(20 + 8 + 18 = 46)。 – Felix 2014-12-09 09:55:22

+0

如果您想知道如何区分一个空的TCP数据包和一个以太网上有1-6个字节的有效负载的TCP数据包,则使用IP标头中的“总长度”字段完成。 – 2017-10-24 14:43:19

0

如果要计算带宽消耗和它们与你的网络的最大速率(如1Gb/s的或10Gb/s),如Useless所指出的,必须将Ethernet framing overhead at layer 1添加到由Felix等人计算的数字中,即

  • 7个字节前同步码
  • 1字节启动的帧定界符
  • 12个字节间间隙

即总共每个分组所消耗20多个字节。