pcap++实战(一)
pcap++实战
安装:
下载releaseprebuilt-ubuntu文件压缩包
解压,其目录为
├── bin
├── example-app
├── include
├── lib
├── LICENSE
└── README.release.md
并软链接,我的path是~/program/pcapplusplus-23.09-ubuntu-20.04-gcc-9.4.0-x86_64
1 | sudo ln -s bin/ /usr/local/bin |
跑demo
https://pcapplusplus.github.io/docs/quickstart
1 | sudo apt-get install libpcap-dev |
出现错误:
错误:1
http://cn.archive.ubuntu.com/ubuntu
focal InRelease
暂时不能解析域名“cn.archive.ubuntu.com” 错误:2
http://security.ubuntu.com/ubuntu
解决方法:更换代理
…
1 | cmake -S . -B build |
CMake Error at
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146
(message): Could NOT find PCAP (missing: PCAP_LIBRARY
PCAP_INCLUDE_DIR) Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393
(_FPHSA_FAILURE_MESSAGE)
/home/njust/program/pcapplusplus-23.09-ubuntu-20.04-gcc-9.4.0-x86_64/lib/cmake/pcapplusplus/FindPCAP.cmake:53
(find_package_handle_standard_args)
解决:这个问题是sudo apt-get install libpcap-dev,见前面
1 | cmake --build build |
理解helloworld
1 | #include <iostream> |
读取文件、读取原始包、parse包、验证协议并读取IP。
CMAKE_PREFIX_PATH:
是一个环境变量或Makefile变量,CMake查找外部依赖的路径,当CMake寻找包、库、头文件、可执行文件或配置文件时,会依次搜索CMAKE_PREFIX_PATH列出的目录。
影响所有CMakefile函数,包括find_package()、find_program()、find_library()、find_file()、find_path()、find_header()。
逗号分割字符串,eg.
1
set(CMAKE_PREFIX_PATH "/opt/myCustomLibDir;/usr/local/myLibs")
数据平面开发工具包 DPDK
DPDK提供了优化的API和库,允许开发者在用户空间(User Space)高效地处理网络数据包,绕过Linux内核协议栈,从而减少延迟并提高报文处理速度。它适用于需要高性能网络功能虚拟化(NFVNFV)场景和高性能网络应用,如软件定义网络设备、负载均衡器、防火墙、路由器、数据包分析等。
我一直错认为DPDK只有windows有。直到
About DPDK | Ubuntu和Getting Started Guide for Linux — Data Plane Development Kit 24.03.0 documentation (dpdk.org)
DPDK的核心特性包括:
环境抽象层(EAL): 提供硬件抽象,使得库跨平台兼容,简化跨硬件平台开发。
轮询池和内存管理::高效内存管理,减少内存拷贝复制和零拷贝开销。
驱动支持: 支持** 高速网卡,如Intel Ethernet、虚拟化设备。
多核并行处理 利用,利用多核CPU资源。
测试和示例程 序:方便开发者快速上手。
DPDK是现代高性能网络应用开发的关键技术之一,特别在云基础设施和电信行业,它帮助实现低延迟、高吞吐量数据处理需求。
Git LFS artiface version control
ref:
api