Linux發包工具pktgen

1.pktgen簡介:

    pktgen是Linux內核裏包含的一個高性能發包工具,主要用來測試網絡性能。一般情況下,使用pktgen就可以滿足千兆網卡的測試需要,不必花錢購買昂貴的硬件發包設備。
pktgen運行在“內核態”,並不佔用太多的系統資源,就可以達到非常高的發包速率。
    pktgen只支持UDP發包(端口9)。因爲pktgen是一個非常底層測試工具,而且一般是測試網絡設備的性能,並不涉及到應用層面。
如果要測試高級的網絡應用的性能,請使用其它的測試工具。

sudo modprobe pktgen //加載內核模塊後,我們可以通過命令modinfo pktgen看到pktgen已經在/proc文件系統裏和內核線程中出現了。

 ls /proc/net/pktgen/ //可以看到其中的每一個線程對應到一個CPU

參考網址:
http://www.cnblogs.com/kekukele/p/3709781.html
https://wenku.baidu.com/view/0a90276d011ca300a6c390a2.html


linux上的應用pktgen發包(與pktgen-dpdk發包不同)

modprobe pktgen
cd /proc/net/pktgen/

echo rem_device_all>kpktgend_0  //刪除綁定在某個線程(kpktgend_0)的所有端口
echo add_device enp61s0f0>kpktgend_0  //添加某個端口(enp61s0f0)到某個線程(kpktgend_0)

echo count 1000>enp61s0f0 //發送數據包的個數,0 表示一直髮送
echo clone_skb 1000>enp61s0f0 //表示複製多少數據包,clone_skb=1000,說明發送完第一個數據包後,接着還發送1000個這種克隆的包;clone_skb=0表示只發送master包,即重複發送這種相同的數據包。
echo pkt_size 1000>enp61s0f0
echo dst 10.11.11.11>enp61s0f0
echo dst_mac 48:bd:3d:2e:91:66>enp61s0f0
echo start>pgctrl //所有的線程開始發送

echo stop>pgctrl //所有的線程發送停止

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章