前言 参考自:VPN 原理以及实现 TUN/TAP 是操作系统内核中的虚拟网络设备,由软件进行实现,向操作系统和应用程序提供与硬件网络设备完全相同的功能。其中 TAP 是以太网设备(二层设备),操作和封装以太网数据帧,TUN 则是网络层设备(三层设备),操作和封装网络层数据包。 工作中不写vpn,但是得了解tun/tap的使用,要不然有的代码看不明…
前言 在 [trex篇] trex的hello world 使用 – da1234cao 中,我们了解的trex的基本启动流程。 trex 启动依赖两个配置文件。 第一个配置文件是 Traffic YAML,它被用来描述我们的流量模型是什么样的: [trex篇] trex 的流量模板配置 – da1234cao 第二个配置文件是 Platform …
背景介绍 我日常在windows上,通过 vscode 的 remote ssh 到服务器上编程。为了在服务器上进行代码的拉取和推动,我将私钥上传一份到服务器上。 可是服务器有多个,特别是开启多个虚拟机的时候,逐个上传私钥是个不安全的事情。 为了安全起见,不同组的服务器,我使用了不用的私钥。 私钥的命名没做好,就会忘记哪个私钥对应哪组服务器。 我又…
前言 我办公桌上有一个 mini主机。mini 主机里面刷的是 debian 系统。平时,通过网络连接使用这个 mini 主机。 最近一周,我每天早上去的时候,笔记本都无法连接 mini主机。 通过笔记本也无法ping通mini主机。重启下 mini 主机的系统后,mini 主机的网络就又正常了。 连续几天,每个早上花十多分钟,重启机器,重启环境,…
前言 上一节,我们跟 trex 混了一个脸熟:[trex篇] trex的hello world 使用 – da1234cao 当时我们使用下面命令生成流量。 ./t-rex-64 -f cap2/dns.yaml -c 1 -m 1 -d 10000000 其中: -f <yaml file>:指定要使用的流量 YAML 配置文件。这是有状态…
前言 编程过程中,应该一遍敲代码,一遍验证代码的正确性。如果仅仅在代码敲完的时候进行验证,代码中可能会潜藏未知的问题。vpp相关的网络编程中,最好让代码编写环境一直有流量,边写代码边测试。 trex 是一个低成本的流量生成工具,值得学习以掌握它的使用方法。 本文将使用testpmd运行一个二层转发程序,使用trex给testpmd打流量。 本文的测…
perf 是什么 perf 是linux上的性能分析工具,挺好的工具。但是这个工具的命令还是有些复杂。通常情况下,特定的场景中,知道几个常用的操作即可。本文介绍如何使用perf查找热点代码。 准备工作 使用是 perf 的安装。 dnf install perf 我们通常使用perf对一个程序进行性能分析。我们得知道如何查看这个进程得PID,以及这…
如下图所示,详细内容见源码,可以留意这几个函数 VLIB_BUFFER_SET_EXT_HDR_SIZE : vlib_buffer_pool_create 函数 给 vlib_buffer_t 前面添加额外的空间。 dpdk_process_rx_burst :将 rte_mbuf 转换成 vlib_buffer_t 。由于数据存储在相同的内存位…
前言 有时,在写测试代码的时候,需要生成随机数。 但是软件层面,无法实现正在的随机数。计算机密码学中,随机数是一个基础,可见: Dan Boneh的密码学。 本文简单归总下,日常如何在C/C++中生成伪随机数。 在C中生成伪随机数 相关链接:Generating Random Numbers in a Range in C - Geeks…
前言 UUID(Universally Unique Identifier) 是一个128位标识符。 前段时间,隔壁组要求我这边上传的数据包含uuid,并且是 uuidv7 版本。在 C 语言中,生成 uuid 比较常见的库是 libuuid(3) ,这个库支持uuidv1 和 uuidv4,不支持生成 uuidv7。网上找了下,也没看见比较知名的…