数据包被复制了多少次才最终到达网卡?

数据包被复制了多少次才最终到达网卡?

在典型的 Linux 机器上,数据包从应用层一直复制到网卡的过程中有多少次?我假设这里使用的协议是 TCP/IP,具有 Linux 内核网络堆栈的标准实现,并且没有自定义修改。

我知道 TCP 维护一个用于拥塞和流量控制的缓冲区(或窗口),该窗口的大小决定了在等待 ACK 之前可以一次发送多少个数据包。我的理解是,至少需要从应用程序的内存到操作系统的传输层处理程序内存执行一份副本,因为Linux网络堆栈是内核实现,而应用程序是在用户地址空间中运行的进程。

我想知道详细的描述。

相关内容