【发布时间】:2014-12-12 21:44:07
【问题描述】:
我在Linux中开发网卡驱动时遇到了一些问题。众所周知,MTU 是指没有分片的 IP 数据包的 MAX 大小。发送到xmit函数的skb会增加14bytes,包括dst mac addr、src mac addr和lengh。但是很奇怪,当我对 MTU 使用不同的值时,添加的大小是不同的,有时是 10 字节,有时是 14 字节。这取决于 MTU 的大小。例如,我使用 7828 作为 UDP payload 的大小,当 MTU 为 7700 时,xmit 函数中 skb 的大小为 7714,而当 MTU 为 7800 时,skb 的大小为 7810。有人能解释一下吗?我想IP数据包可能有一些对齐限制,但我没有发现。
【问题讨论】:
-
MTU 通常更像 1260 而不是 7800。您从哪里得到这些值?
-
嗨 EJP,据我所知,IP 协议,最大 MTU 值可以最大为 9000 作为巨型帧。所以我不明白为什么你认为MTU更像1260。这里是使用wiGig协议的高速网卡,所以MTU没有这个限制。