我正在研究如何分析和评估Linux的TCP / IP协议栈。我的目标是研究整个tcp / ip协议栈的性能,研究每层的时间成本以及tcp / p协议层和ip层的queuinf层之间的交互。
要做到这一点:我使用基于探测节点的模式来研究linux的TCP / IP协议的内部行为。探测节点是添加到内核中的一段代码,用于记录时间戳,队列长度和数据包大小等信息。
我的问题:如何将探测节点添加到内核中?
答案 0 :(得分:0)
你可以使用(例如)SystemTap,这个工具背后的主要思想是将探测节点放在某处:内核或用户空间程序。
如果您没有时间学习SystemTap,您可以在内核中放入一些printk
并从dmesg
读取它们。
在这两种情况下,由于打印,您在网络堆栈中引入了很大的延迟。为了减少探测引起的延迟,我建议您使用SystemTap,将所有时间样本存储在某处,并仅在采集结束时打印。