我正在尝试使用tcpreplay和tcpdump将数据包从一台机器发送到另一台机器。
如果我编写一个直接从NIC捕获数据包的驱动程序,将遵循哪条路径?
1)N / W包---->网卡----> app(没有内核角色)
2)N / W包----->内核----->网卡--->应用
由于
答案 0 :(得分:6)
通常按此顺序排列:
然后存在与此模型的偏差,但这些是特定硬件/操作系统的特殊情况。一个供应用户直接到硬件的供应商是Solarflare,还有其他供应商。
答案 1 :(得分:3)
驱动程序是直接与硬件交互的代码段。所以这是第一段看到数据包的代码。
然而,驱动程序在内核空间中运行;它本身就是内核的一部分。它肯定会依靠内核工具(例如内存管理)来完成它的工作。所以“没有内核的作用”不会成真。