![]() |
1
3
首先,这个
因为要么它是一个mbuf链,但该链的第一个mbuf应该有一个paket头,这个paket头包含整个mbuf链的大小(没有这样的头的链根据定义是断开的),要么它只是一个单一的mbuf,但只需询问这一个mbuf的大小就足够了。在整个内核代码中,mbuf链的大小是由我上面的代码检索的。
那么请理解什么
因此,校验和计算是否转移到硬件并不重要,一旦调用该函数,数据包就应该具有正确的校验和。如果您随后修改数据包,则由您再次修复校验和。您可以通过从头开始重新计算校验和来做到这一点,一旦您完成了修改,或者通过“修复”现有的校验和(例如,如果您知道哪些旧数据变成了哪些新数据,则可以“修复”旧校验和以匹配新数据,而不必从头开始计算所有内容,这有点复杂,但会使计算更快)。
|
![]() |
2
0
|
![]() |
NullVoxPopuli · 重命名文件夹的最快方法是什么?[关闭] 4 月前 |
![]() |
J P · Mac GPGSuite的密码过期 5 月前 |
|
Pali775 · Django不会在MacOS上更新 5 月前 |
![]() |
PkDrew · AND运算符“&”在“&tee”中的作用是什么? 5 月前 |
![]() |
analog_kid · 较旧的R版本dmg文件[已关闭] 11 月前 |