基于 IPv4 的 TCP 的最小数据包大小是多少?
大家好,我对这个问题很困惑。
假设我想传输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
但是我尝试用我的 friend 检查结果,我们得到了不同的结果..
我使用维基百科上关于 TCP 的示例,我只是假设
TCP header 为 20 字节 和上面的计算(我使用所有粉红色的 TCP 伪 header )。
我的计算做错了什么?因为我的 2 个 friend 的答案比我多 6 个字节
我的 TCP header 是 20 字节 IPV4是14字节 数据为 12 字节
我们之间唯一的区别是我的 friend IPv4 是 20 字节。我的 ipv4 计算中哪个字段做错了?
谢谢
最佳答案
最小 TCP header 大小为 20 字节,最小 IPv4 header 大小为 20 字节。因此,假设您实际上可以通过 TCP 发送 0 字节,那么包含 0 字节数据的 TCP/IPv4 数据包将至少为 40 字节,但实际上您不能。因此,最小值为 41 字节。
关于c++ - TCP over IPv4 的最小数据包大小是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526139/