⼏种开源TCPIP协议概述--LwIP,uIP,TinyTcp和uCIP
1. BSD TCP/IP协议栈
BSD栈历史上是商业栈的起点,⼤多数专业TCP/IP栈(VxWorks内嵌的TCP/IP栈)是BSD栈派⽣的。这是因为BSD栈在BSD许可协议下提供了这些专业栈的雏形,BSD许⽤证允许BSD栈以修改或未修改的形式结合这些专业栈的代码⽽⽆须向创建者付版税。同时,BSD也是许多TCP/IP协议中的创新(如⼴域⽹中饿拥塞控制和避免)的点。
2. uC/IP
3. LwIP
4. uIP
5. TinyTcp
选择⼀个开源协议栈可以从四个⽅⾯来考虑:
⼀个是是否提供易⽤的底层硬件API,即与硬件平台的⽆关性;
⼀个是与操作系统的内核API。协议栈需要调⽤的系统函数接⼝是否容易构造,另⼀个对于应⽤⽀持程度。
最关键的是占⽤的系统资源是否在可接受范围内,有裁减优化的空间否? 其中,BSD 栈可完整实现TCP/IP协议,但代码庞
⼤,70KB-150KB之间,裁减优化有难度,uIP和TinyTcp代码容量⼩巧,实现功能精简,限制了在⼀些较⾼要求场合下的应⽤,如可*性与⼤容量数据传输。
LwIP和uC/IP是同量级别的两个开源协议栈,两者代码容量和实现功能相似,LwIP没有操作系统针对性,它将协议栈与平台相关的代码抽象出来,⽤户如果要移植到⾃⼰的系统,需要完成该部分代码的封装,并为⽹络应⽤⽀持提供了API接⼝的可选性。
uC/IP协议最初是针对uC/OS设计,为⽅便⽤户移植实现,同样也抽象了协议栈与平台相关代码,但是协议栈所需调⽤的系统函数⼤多参照uC/OS内核函数原型设计,并提供了协议栈的函数,⽅便⽤户参考,其不⾜在于该协议栈对⽹络应⽤⽀持不⾜。
tcpip协议pdf根据以上分析,从应⽤和开发的⾓度看,似乎LWIP更得到了⽹上很多朋友使⽤的青睐;uC/IP在⽂档⽀持与软件升级管理上有很多不⾜,但是它最初是针对UC/OS⽽设计,如果选⽤UC/OS作为软件基础
的话,在系统函数构造⽅⾯有优势。当然你选择其他操作系统的话,可参照OS_NULL⽂件夹下的⽂件修改。 以上的这些开源协议栈也并⾮免费,拿来就可以⽤,据我所知,UC/OS的母公司推出UC/OS-TCP/IP 花了6⼈*2年的⼯作量,国内某公司使⽤LWIP作为移植的参照,花了4-5⼈*2年的⼯作量来测试与优化协议,使⽤商⽤TCP/IP栈的⾼费⽤就不⾜为奇了。 作为⼴⼤的爱好者学习⽽⾔,如果只是跑跑原型,实验⼀下效果,以上的⼏种开源协议栈都提供了测试的例⼦,应该是不错的选择。
我的看法:LWIP可优先考虑,⾄少⽹上有很多的⼈⼀块研究,参考的资料较多;UC/IP其次,如果你想深⼊学习TCP/IP的话,移植UC/IP 是⼀种挑战性的⼯作,它尚需完善。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论