2

TCP over IPv4 的最小数据包大小是多少?

嗨,伙计们,我非常坚持这个问题。

假设我要传输 12KB 的数据

并通过 IPv4 TCP

我做了以下计算

 20 Bytes for TCP Headers
 4 Bytes for Source Address
 4 Bytes for Destination Address
 4 Bytes on Zeros, Protocol and TCP Length
 2 Bytes on Checksum
 12 Bytes on Data

但我试着用我的朋友检查我的结果,我们得到了不同的结果..

我在 TCP 上使用维基百科上的示例,我只是假设

TCP 标头是 20Bytes 和上面的计算(我使用所有粉红色的 TCP 伪标头)。

我在计算中做错了什么。因为我的两个朋友的回答比我多 6 个字节

我的 TCP 标头是 20 字节 IPV4 是 14 字节 数据是 12 字节

我们之间唯一的区别是我的普通 IPv4 是 20 字节。我在 ipv4 计算中做错了哪个字段?

谢谢

4

2 回答 2

2

一个快速的谷歌搜索产生了这个 TCP 标头图

您似乎缺少以下字段。

  • 2 字节拥塞窗口
  • 4字节序列
  • 2 字节紧急指针

不确定您将哪个归类为“协议”等,但主要的缺失看起来像序列号。TCP 标头的最小值应为 20 个字节。

于 2013-01-25T17:02:50.420 回答
2

最小 TCP 标头大小为 20 字节,最小 IPv4 标头大小为 20 字节。因此,假设您实际上可以通过 TCP 发送 0 字节,那么包含 0 字节数据的 TCP/IPv4 数据包将至少为 40 字节,而您不能。因此,最小值为 41 个字节。

于 2013-01-25T16:40:21.373 回答