Networking 数据包大小

Networking 数据包大小,networking,network-protocols,Networking,Network Protocols,我有一个25字节的数据,希望通过网络发送。我想知道如果在ipv4上使用TCP,如何计算最小数据包大小。所有的网都在迅速地把它揭穿。我不需要包含其他协议或层头 因此,我想知道会是什么大小 根据我的研究,它是20 TCP头+20 ipv4头+25字节=65字节,对吗?TCP和IP都不使用填充,所以 TCP头的长度为20字节(+选项)。TCP不添加任何填充。如果数据为25字节,则TCP段为45字节或更大 IPv4标头的长度为20字节(+选项)。IPv4不添加任何填充。如果TCP帧为45字节,则

我有一个25字节的数据,希望通过网络发送。我想知道如果在ipv4上使用TCP,如何计算最小数据包大小。所有的网都在迅速地把它揭穿。我不需要包含其他协议或层头

因此,我想知道会是什么大小


根据我的研究,它是20 TCP头+20 ipv4头+25字节=65字节,对吗?

TCP和IP都不使用填充,所以


  • TCP头的长度为20字节(+选项)。TCP不添加任何填充。如果数据为25字节,则TCP段为45字节或更大



  • IPv4标头的长度为20字节(+选项)。IPv4不添加任何填充。如果TCP帧为45字节,则IPv4数据包为65字节或更大

你的结果是正确的

而且


  • 以太网报头是14字节(假设Ethernet2,不包括8字节的前导),以太网帧以4字节的CRC结束。以太网不添加任何填充,除非确保总共至少64个字节。如果IPv4数据包为65字节,则以太网帧为83字节

不要忘记包括任何必要的padding@JanDvorak为什么需要垫料,在哪一层上每个协议都可以有自己的填充。哪一层你需要检查所有这些。以太网定义了最小数据报大小,TCP要求将报头填充到四个字节的倍数,并且可能需要相同的数据。TCP中没有数据填充。