0%

    今天遇到一个很有趣的问题,dpdk网卡绑定了两个core,同一个会话(TCP连接)的数据包,不同方向的两边报文被分配到了两个不同的core上处理,导致绑定在core上下文中的信息直接是获取不到,查找了相关的资料,才找到了相关的原因和解决方法。

阅读全文 »

    GDB是GUN(GUN is not unix)开源组织发布的,Unix/Linux操作系统下的一款基于命令行方式交互的调试工具。GDB支持调试多种语言,比如C/C++、Go、Objective-C、Pascal等等,但是最强大的、用的最多的是调试C/C++程序,作为一个C/C++程序员,要是你不会使用GDB,那可能都没脸出门了。

说明:参数 <program> 不包括符号“<>”。

阅读全文 »

Git是什么

Git是目前世界上最先进的一款分布式版本控制系统,可以对我们的代码进行很好的版本管理。全球最大同性交流网站(Github)是程序员必逛的网站,学会使用Git是一个合格成熟的程序员必须掌握的技能之一,本篇文章主要介绍了Git的一个基本原理和常用的使用技巧。

如果使用Window,有一个Git版本控制客户端TortoiseGit非常好用,特别是像我以前使用惯了TortoiseSvn的人来说。

工具推荐:下载地址

Mac下还没找到特别好用的,暂时就先不推荐了^_^

阅读全文 »

程序要的能力

一个优秀的工程师应该具备哪些东西?

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的原理与虚拟化技术。