在一台典型的 linux 机器上,数据包从应用层复制到一路到网卡的过程中有多少次。我假设这里使用的协议是 TCP/IP,具有 linux 内核网络堆栈的标准实现,并且没有自定义修改。
我知道 TCP 为拥塞和流量控制维护一个缓冲区(或一个窗口),这个窗口的大小决定了在等待 ACK 之前可以一次发送多少个数据包。因此,至少必须从应用程序的内存复制到操作系统的传输层处理程序内存。从那里开始,将完成更多处理,例如在以太网层放置 IP 标头和标头。
我期待详细的描述。
在一台典型的 linux 机器上,数据包从应用层复制到一路到网卡的过程中有多少次。我假设这里使用的协议是 TCP/IP,具有 linux 内核网络堆栈的标准实现,并且没有自定义修改。
我知道 TCP 为拥塞和流量控制维护一个缓冲区(或一个窗口),这个窗口的大小决定了在等待 ACK 之前可以一次发送多少个数据包。因此,至少必须从应用程序的内存复制到操作系统的传输层处理程序内存。从那里开始,将完成更多处理,例如在以太网层放置 IP 标头和标头。
我期待详细的描述。