今天遇到一个很有趣的问题,dpdk网卡绑定了两个core,同一个会话(TCP连接)的数据包,不同方向的两边报文被分配到了两个不同的core上处理,导致绑定在core上下文中的信息直接是获取不到,查找了相关的资料,才找到了相关的原因和解决方法。
问题记录
记录一些问题。
GDB调试
GDB是GUN(GUN is not unix)开源组织发布的,Unix/Linux操作系统下的一款基于命令行方式交互的调试工具。GDB支持调试多种语言,比如C/C++、Go、Objective-C、Pascal等等,但是最强大的、用的最多的是调试C/C++程序,作为一个C/C++程序员,要是你不会使用GDB,那可能都没脸出门了。
说明:参数 <program> 不包括符号“<>”。
Git使用指南
笔记
程序要的能力
一个优秀的工程师应该具备哪些东西?
1、技术能力(不依靠Google能独自解决的能力)
2、产品能力–>产品–>项目
3、管理能力–>
dpdk
Kni(kernel network interface)的定义是指内核网络接口,网卡过来的数据都被映射到内存中,我们可以直接对这些个数据进行处理,但是对于一些的数据我们不需要对其进行处理。
比如对于这个协议的数据我们只需要对udp进行处理,但是对于TCP 的数据包我们还是需要借助内核,这个时候我们就分为了两条通道,一个是我们自己用户空间的协议栈进行护理,另一个我们把数据重新丢回去给内核进行处理,kni就是内核提供的接口。
dpdk应该学习那些东西
1、dpdk的接口的熟悉
a.dpdk接收网卡数据
b.dpdk发送数据
c.dpdk基础上实现arp协议,tcp的测试,实现tcp协议栈,虚拟路由器,虚拟的交换机。
2、在这些基础接口上的应用,openswitch,vpp,snabb,pktgen,自己实现协议栈。
3、dpdk的原理与虚拟化技术。