中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 软件应用 > 工具软件 > 文件格式
两天调通tcp协议栈
作者:aatu 时间:2002-12-11 10:53 出处:互联网 责编:chinaitpower
              摘要:两天调通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进制码列出来,然后一层层的剥皮抽丝,分析具体含义,这样绝对
   比市面上的书效果好一百倍。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有