前段时间利用业余时间把lwip协议栈移到机顶盒上跑了,性能还算可以,开源还是有很多好东西的!做这个事主要是公司跟一个网络芯片厂商买芯片,提供了个不开放源码的协议栈,发现里面有些函数跟lwip名字相同,估计他们就是用这个。都跟他们买芯片了,这点破东西都还要捂着,很气人,就自己折腾了一下。最近利用winpcap的开发包又把它在windows上跑起来。winpcap真是个好东西,以后很多嵌入式网络协议栈等方面的东西都可以现在windows上调试得差不多了再移植,挺省事的。
把PPPOE也在上面跑通了。下了个软件在winxp上做了个PPPOE接入服务器,设置好用户和密码,机顶盒程序跑起来都能跟服务器建立连接,性能也没怎么下降。这个东西虽然是移植的,但总算过了一趟流程,学了不少东西。有个头痛的事就是要把pppoe部分移到我们公司买的协议栈上面去,又是一个繁琐的事,数据结构,定义等,很多都得改。
测试了一下tcp和udp的性能,协议栈在盒子上面跑PPPOE跟直接是以太网跑差不多,100M网卡tcp有差不多10M,udp有大概13M。但是协议栈在windows上跑都上46M左右。原先以为是协议栈性能问题,现在看来估计是盒子平台或者网卡驱动的限制了。有空的花点心思再琢磨琢磨。因为以后如果在盒子添加个TS码流采集功能,通过网络传到PC上录制,这样的网速比较难胜任!