1

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

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

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

我还绘制了使用特定 IAT 看到的流数:替代文字

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

有没有。与调度有关? 我知道 linux 内核调度程序(是一个 debian 机器)使用 250Hz 的频率,因此每个滴答声是 4ms,这比我的 35-170µsec 的间隔要大 > 200。网卡是否有任何调度?有很多0µsec 的 IAT,所以我假设这些数据包是在彼此之后直接处理的。我可以想象我正在搜索的调度程序滴答时间约为 40 微秒,导致 IAT 为 0<x<40 微秒,然后完成捕获以外的其他事情(对于 120 微秒 = 3 滴答声),我只得到 > 120 微秒的滴答声。

你有一个线索,我怎么能解释这个差距?非常感谢!史蒂芬

4

2 回答 2

1

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

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

于 2010-10-06T14:41:19.240 回答
0

不确定,但我可以想象这张卡以一定的滴答率做某种记账。此外,35-170 µs 范围与数据包长度有何关系?

于 2010-10-06T12:21:36.867 回答