bpf echo
1.0.0
bpf-echo 是一款速度極快的 TCP 和 UDP 回顯伺服器,支援 IPv4 和 IPv6 流量。它的實作利用擴展的 Berkeley 封包過濾器和 BPF 編譯器集合,以便將傳出封包直接重定向回發送套接字的接收佇列。它非常適合對代理伺服器或網路庫進行基準測試,您希望在其中確保上游伺服器不是瓶頸。
運行bpf-echo
的要求是:
pip3 install pyroute2
python3-bpfcc
。查看 bcc 的 INSTALL.md 以了解更多詳細信息4.1
$ sudo ./bpf-echo --ipv4 127.0.0.1 --port 1122 # run in different terminal
$ echo "hello" | nc -W1 127.0.0.1 1122
hello
usage: bpf-echo.py [-h] [--ipv4 IPV4] [--ipv6 IPV6] [--port PORT]
[--ifname IFNAME]
optional arguments:
-h, --help show this help message and exit
--ipv4 IPV4 IPv4 address that will reflect packets. Disabled if empty
string. (default: 127.0.0.1)
--ipv6 IPV6 IPv6 address that will reflect packets. Disabled if empty
string. (default: )
--port PORT TCP/UDP destination port that will reflect packets.
(default: 12345)
--ifname IFNAME Interface the eBPF classifier will be loaded on. (default:
lo)
BPF 的實作相當簡單,因此做出了一些妥協: