空UDP和TCP数据包的大小?

puc*_*cio 30 size udp tcp

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

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

小智 76

TCP:

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

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

UDP:

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

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

  • 我认为最小的以太网帧是64字节(有效载荷必须填充到至少46个字节). (6认同)
  • 这个(模数可能的错误:)确实是我一直在寻找的整体结果! (2认同)
  • 然而,并非所有 TCP 和 UDP 都在以太网之上承载 - 事实上,同一个数据包在跨不同网络传输期间很可能在多个不同的物理层上承载。 (2认同)
  • 您假设IP服务器层位于以太网之上 - 这是LANS的公平假设,在涉及WAN时概率较低. (2认同)
  • 以太网帧怎么有24个字节?如果我同时考虑 mac 和协议,总和是 14 个字节,那么这个假设有什么问题? (2认同)
  • @JohnnyWiller 前导码(8 个八位字节)和帧检查序列(2 个八位字节)。 (2认同)

Fel*_*lix 18

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字节

希望这能把事情搞清楚一点.

进一步阅读:

  • 是! 这里再次20 + 8(= 28)对于最小以太网有效载荷是不够的,因此需要18字节的填充(20 + 8 + 18 = 46). (4认同)
  • 这是否也意味着以下?18(最小以太网"标题"字段)+ 18(填充)+ 20(IPv4)+ 8(UDP)= 64字节?对于IP + UDP有效载荷,总共18 + 20 + 8 = 46个字节. (3认同)

hal*_*dan 9

请参阅用户数据报协议.UDP标头长度为8字节(64位).

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

祝愿,费边