通過raw socket 測試網絡卡效能

2021-08-03 01:26:54 字數 1731 閱讀 9682

硬體環境:

processors number: 8

vendor_id : genuineintel

model name : intel(r) xeon(r) cpu l5420 @ 2.50ghz

cpu mhz : 2490.000

cache size : 6144 kb

memory : 20g

nic: intel corporation i350 gigabit network connection × 4

作業系統:

linux ubuntu88 3.11.0-15-generic #25~precise1-ubuntu smp thu jan 30 17:39:31 utc 2014 x86_64 x86_64 x86_64 gnu/linux

測試工具:

[email protected]:antony1776/packetsender.git

pktsender,基於pf_packet,c語言實現的資料報傳送工具;

pktrcver,基於pf_ring,資料報接收工具;

1 測試千兆網絡卡最大吞吐率,最大包接收速度,以及丟包率;

2 測試網絡卡滿負荷時的cpu佔用率;

1 開啟資料接收程式:

#> pktrcver -i eth5 -e 1 -g 4
將網口 eth5 用於資料接收,並將該應用程序繫結到 cpu 4上,以觀察該程序的 cpu 占用情況;

通過控制台輸出,可以觀察資料的實時接收情況。

2 開啟資料傳送程式 :

#> pktsender eth4 7 1000000
將網口 eth4 用於資料傳送,並將該應用程序繫結到 cpu7 上,設定最大發包速率為 100w packet/s ;

1 當設定資料報 payload 為 512 bytes 時,千兆網絡卡達到最大吞吐率,此時的實時速率為 1000mbit/s,如下圖所示:

但是此時的包速率只有 211834 (約等於21w)。

同時,pktrcver 程序的 cpu 佔用率為 1.4%,pktsender 程序的 cpu 佔用率為 26.8%;由此可見,資料接收對 cpu 的消耗並不大。

2 設定資料報 payload 為 1 byte,千兆網絡卡可以達到最大發包速率,此時的發包速率為 870240 packets/s (約等於 87 萬),但是此時

的吞吐率並不大,只能達到 561.96 mbit/s。同時,千兆網絡卡出現了一定程度的丟包,丟包率約等於 十萬分之二。

相應的,pktsender 程序的 cpu 佔用率達到了 100%,而 pktrcver 程序的 cpu 佔用率只有 3.1%。可見,基於 pf_ring 的接收包工具

對 cpu 的需求並不是很大。

通過網絡卡裝系統

當客戶端啟動時,發現客戶端沒有預裝系統,會通過網絡卡來配置系統 網 常會預置netboot服務 客戶端通過dhcp協議,向伺服器傳送請求,獲取ip等資訊。並且伺服器會回乙個叫next server的包 客戶端解析next server後,通過pxe 是udp協議 傳送給tftp伺服器,獲取linux...

Kali 網絡卡測試

這裡我使用虛擬機器安裝了kali,使用的網絡卡是awus036nh rlt8187 我們啟動虛擬機器,現在應該可以通過其usb直通功能使用我們的無線介面卡。引導vm中的kali linux之後,我們以root使用者身份登入系統並開啟終端 器。我們輸入iwconfig命令以列出系統上所有可用的無線介面...

測試網絡卡流量指令碼

下面是乙個測試網絡卡流量的指令碼,指令碼內容如下 bin bash function usage if lt 2 o gt 2 then usage fieth 1 time 2 old inbw cat proc net dev grep eth awk f old outbw cat proc ...