Chinaunix首页 | 论坛 | 博客
  • 博客访问: 630587
  • 博文数量: 124
  • 博客积分: 3923
  • 博客等级: 中校
  • 技术积分: 1402
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-23 01:22
文章分类

全部博文(124)

文章存档

2013年(1)

2012年(22)

2011年(70)

2009年(31)

分类: 系统运维

2012-07-25 21:57:07

好久没来这里更新啦,这2个月主要是在新的硬件平台上移植lwIP协议栈,主要是编写以太网驱动,串口驱动来跟mg323-b gprs模块对接,还有调试modem ppp,pppoe, 等相关事情,还好2个月也算是做的比较稳定,gprs的短PPP短tcp连接成功率已经达到99.95%了,剩下的不成功因素主要是无线信号不好,然后握手的第三个包ack发出去时没给服务器收到,模块这边已经建立成功就把第一个包发出去,然后服务器那边就一直发syn ack包,最后服务器那边以rst包结束这次连接,这种情况我们叫做“假连接”,感觉很难找到解决方案,还有一种就是模块一直收不到服务器方的syn ack,最后由于模块协议栈中实现了1分钟的keepalive后,最后模块这边以rst结束这次连接。测试了都上6-7万次连接,有1字节,有1024字节,有2048字节,不过测试结果还是比较满意的,也没什么大的问题。基于以太网的协议栈移植过程中倒出现了一种比较麻烦的问题,问题最终解决了,主要是在发送10k的异步通讯中,由于在以太网接收函数中把以太网帧递交到协议栈的时候,函数结束时调用了释放该skbuff的函数,结果造成了tcp中的pcb的incomming的buffer链表中的成员被释放,然后该释放的内存被新来的包给使用,造成incomming链表循环或者引起死机,查找比较麻烦,花了一个星期才把问题定位出来并解决,不过帮助我理解lwip协议理解的更透彻。。。也感觉学到不少东西,就写到这里,休息。。。
阅读(879) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册