我在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数据包可能有一些对齐限制,但我没有发现。
问问题
436 次