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

时间:2013-01-25 16:32:37

标签: c++ tcp ip packet

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上使用wikipedia上的例子,我只是假设

TCP标头是20Bytes 以及上面的计算(我使用粉红色的所有TCP Pseudo Header)。

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

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

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

由于

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

快速Google搜索会产生diagram of the TCP header

您似乎缺少以下字段。

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

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

相关问题