一、前言
在部署了fstack以及熟悉了fstack的接口,同时也把fstack中跑起来之后,我发现fstack中只提供了一个demo,是作为tcp服务端的示例,让fstack占用的网卡提供对外的ip地址,让外部发起tcp连接,但这与我的使用场景不同。
我的使用场景:linux下3张网卡,1张对外,2张分别作为client-server收发包使用,此时demo便无法运行处我期望的现象,于是现在有2个方案。
1.改写demo
写一个应用程序demo,fstack启动时初始化2张网卡,启动2个业务线程分别充当客户
端和服务端,客户端发起连接时使用网卡0,服务端建立服务时使用网卡1。但经过大致的
评估后我觉得这个方案涉及到的开发和调试工作会耗费一些时间,所以暂时挂起这个方案
2.多进程
启用fstack多进程,一个进程初始化时使用网卡0作为client,另一个进程初始化时使用网卡1
作为server。此方案代码修改量较少,经过测试以及查阅相关资料后发现,fstack多进程即
相当于dpdk多进程,而dpdk多进程需要适配的参数较多,后面dpdk专题会专门去研究,此时
这个方案看起来也比较棘手,于是我走到了第一个小小的死胡同。
3.简单思考后我决定先把我的预期用linux协议栈实现出来然后再从中寻找灵感
二、linux协议栈client-server程序
1.环境
linux系