45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:调通tcp协议栈的方法

调通tcp协议栈的方法

2016-09-04 08:52:00 来源:www.45fan.com 【

调通tcp协议栈的方法

写了一个协议栈。

上个星期四开始,看了看代码,上了上网。周六周日研究了一下AVR的板子,研究了一下AT指令。
最后发现AVR的板子有问题。
对代码还是一头雾水。

这周星期一换了块ARM开发板,花了一天时间调试ARM的两个串口。
顺便在电脑上写了一个误码率测试的程序。
然后写了一个解析ppp的程序,辅助分析串口收到的数据。

星期一晚上正式开始调试协议。
通宵,基本把ppp协议弄明白了,能够拨上网,睡觉。

星期二下午调通用户名密码验证,请求DNS和本机IP成功。ppp连接完毕。

星期三上午tcp第一次握手成功,后来发现ARM编译器处理高低字节有问题,大幅度修改程序。
对固定ip,服务端有返回第二次握手,而笔记本gprs上网,则不返回。怀疑是校验码算得不对。
找了一堆标准的tcp包,折腾了很久才把校验码凑对,似乎和标准上说的有出入。

然后发送第三次握手,理论上应该连接完毕,但是收发数据没响应。
原因:确认码没填对,服务端认为没收到确认包。

终于晚饭前搞定,能正常收发数据。至此,tcp连接算基本通过。
实际工作才两天而已。主要是ppp调试比较痛苦。网上的资料说得都含糊其辞,到关键地方就略过不谈了。
很多数据项都不知道具体含义。tcp相对就比较简单了,就是确认码和标志位费点代码。
udp还没调,应该比tcp更简单,毕竟没有状态。

总结:
1. 外围的准备工作总是花掉80%的时间。
2. 不懂的时候看书看代码怎么看都不明白。懂了以后怎么看都明白。
比如那本经典的《TCP/IP详解》,个人认为讲述的思路是值得商榷的。
很多类似的协议、标准的数据都喜欢用大段的描述性的文字,而相对很少用表格,尤其是国外的书。
举例的程序段也是调用库函数的程序,看完以后还是一头雾水。其实用到的那个函数才是关键性的东西。
如果我写书的话,会直接把收发的16进制码列出来,然后一层层的剥皮抽丝,分析具体含义,这样绝对
比市面上的书效果好一百倍。
 

本文地址:http://www.45fan.com/a/question/72078.html
Tags: TCP 两天 调通
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部