在 Linux 2.6 中发送/接收 TCP/UDP 数据包过程中的延迟来源是什么?
我想知道“乒乓”延迟测试中的延迟源。
有一些关于以太网延迟的相当好的论文,但它们只涵盖了线路和交换机中的延迟源(相当粗略,仅针对特定交换机)。
数据包之后有哪些处理步骤?
对普通 ping (icmp) 进行深度延迟分析的论文也会很有用。
我依赖社区:)
通用接收卸载(GRO)是Linux中的一种软件技术,用于聚合属于同一流的多个传入数据包。链接的文章声称降低了CPU利用率,因为单个聚合的数据包会遍历网络堆栈,而不是每个数据包单独遍历网络堆栈。
但是,如果您查看GRO的源代码,那感觉就像是一个网络堆栈。例如,传入的TCP / IPv4数据包需要经过:
每个功能都执行解封装,并查看相应的帧/网络/传输头,如“常规”网络堆栈所期望的那样。
假设计算机不执行防火墙/ NAT或其他明显昂贵的每数据包处理,那么“常规”网络堆栈中的速度如此慢,以至于“ GRO网络堆栈”可以加速呢?