gpt4 book ai didi

linux - libpcap 到达间隔时间和调度程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:59 25 4
gpt4 key购买 nike

我正在研究网络流量特征。在处理收集到的数据(由 tcpdump 捕获并保存到数据库中)时,我偶然发现了数据包(或流)到达间隔时间的奇怪现象:

从未观察到 35-170 微秒的到达间隔时间

当然,如果没有 DAG 卡(它会对数据包进行硬件时间戳),我不能依赖低于毫秒的尺寸精度。尽管如此,我正在寻找一个原因,为什么这个差距存在于以下累积分布函数中:CDF for flow inter-arrival times

我还绘制了使用特定 IAT 看到的流量数量:alt text

我的数据基础包含 >13 个 Mio 流,所以这个差距不太可能是偶然存在的——我只是在寻找原因。

有它……与日程安排有关?我知道 linux 内核调度程序(是 debian 机器)使用 250Hz 的频率,因此每个滴答为 4ms,这比我的 35-170µsec 的差距大了 >200。网卡有什么调度吗?看到 许多 0µsec 的 IAT,所以我假设这些数据包是直接在彼此之后处理的。我可以想象我正在搜索的那种调度程序滴答声大约是 40µsec,导致 IATs 为 0 120µsec 的滴答声。

你知道我该如何解释这个差距吗?多谢!史蒂芬

最佳答案

这只是一个假设(又名 WAG),但也许 170us 是 NIC 连续中断之间的最短时间(由于 NIC 硬件、DMA Controller 、中断 Controller 、CPU 或所有这些的某种组合) ).

到达间隔时间 <35us 的数据包对应于在一个中断中接收到的多个数据包(处理时间不同,具体取决于大小和协议(protocol))。 35us 本身对应于一个中断中可以接收的最大数据包数(由于 NIC 缓冲区的大小),最坏情况下的处理时间。

关于linux - libpcap 到达间隔时间和调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3872209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com