如果只是移植,那么只要了解移植的接口部分即可,可能1天时间就够了。 不过,如果你要了解全部细节,光看书就需要几年,而且实践也需要很长时间。产品化就是难在细节,稳定性、可靠性、适应性、高性能、低功耗等全都满足需要经验,研发预算也要几十万以上,这可不是从网上down几个开源代码的程序就能搞定的,如果因为不稳定或性能不达标而遭到退货,那是要“赔了夫人又折兵”的(差旅费、维护费、人工)。而且,一般的产品设计很有可能不止一个协议栈那么简单,它还需要文件系统、USB、GUI什么的,光有一个协议栈远远不能满足需要,就好象你去买CPU,不能光买一个芯片,还要买电阻电容,复位、串口、接插件等一系列配套的部件。这就需要一个系统平台的支持,工程量就很大了,需要长期积累。 自己做这些工作不划算,玩玩可以,做产品最好买现成的方案。那些开源协议栈可能是某个学生完成大作业,写了一个扔到网上,请大家帮助查错,不断修修改改,既没有详细文档也没有统一版本,当然不收费也不能要求人家什么,就这样形成了现在的模样,不论从程序写作规范还是从性能上看都不能算是真正产品。Linux上的协议栈是以假设网络介质是铜双绞线为前提的,在局域网里表现还可以,如果你用在无线、卫星、光纤上传输,必须经过特殊优化才能达到高性能。例如有些用户直接使用Linux协议栈在室内测试良好,一旦上了高速路,无线信道变化太快,以致H.264图像根本无法实时传输,换用经过针对无线信道专门优化过的协议栈,帧率可以达到15。 |