将 tcpdump 输出写入 ramdisk 上的文件是否会影响丢弃的数据包数量?

将 tcpdump 输出写入 ramdisk 上的文件是否会影响丢弃的数据包数量?

运行时tcpdump,我发现有时内核丢弃的数据包数量大于零 (0)。我被告知要写入虚拟磁盘上的文件而不是硬盘上的文件。我不是 Linux 内核或网络堆栈方面的专家,我无法得到任何像样的解释为什么

根据 tcpdump 的手册页,似乎是由于缺少缓冲区空间而发生的,这意味着我需要更改-B,而不是输出文件的路径,这不是正确的吗?假设我创建了一个 ramdisk;

# SIZE is big enough to capture all output
> mount -t tmpfs tmpfs /var/myramdisk -o <SIZE>

并跑了tcpdump两条不同的路;

# Option I
> tcpdump -U -C <FILE_SIZE> -w /var/myramdisk/option_one.pcap host 1.2.3.4 and port X

# Option II
> tcpdump -U -C <FILE_SIZE> -w /home/myhome/option_two.pcap host 1.2.3.4 and port X

这两个命令之间真的有什么区别吗?

相关内容