幾種開放源碼的TCP/IP協議棧比較

http://blog.chinaunix.net/uid-28785506-id-3828286.htmlhtml

原文地址:幾種開放源碼的TCP/IP協議棧比較 做者:三點水獸服務器

 

一、BSD TCP/IP協議棧網絡

     BSD棧歷史上是其餘商業棧的起點,大多數專業TCP/IP棧(VxWorks內嵌的TCP/IP棧)是BSD棧派生的。這是由於BSD棧在BSD許可協 議下提供了這些專業棧的雛形,BSD許用證容許BSD棧以修改或未修改的形式結合這些專業棧的代碼而無須向建立者付版稅。同時,BSD也是許多 TCP/IP協議中的創新(如廣域網中餓擁塞控制和避免)的開始點。tcp

二、uC/IP函數

    uC/IP是由Guy Lancaster編寫的一套基於uC/OS且開放源碼的TCP/IP協議棧,亦可移植到其它操做系統,是一套徹底免費的、可供研究的TCP/IP協議 棧,uC/IP大部分源碼是從公開源碼BSD發佈站點和KA9Q(一個基於DOS單任務環境運行的TCP/IP協議棧)移植過來。uC/IP具備以下一些 特色:帶身份驗證和報頭壓縮支持的PPP協議,優化的單一請求/回覆交互過程,支持IP/TCP/UDP協議,可實現的網絡功能較爲強大,並可裁減。 UCIP協議棧被設計爲一個帶最小化用戶接口及可應用串行鏈路網絡模塊。根據採用CPU、編譯器和系統所需實現協議的多少,協議棧須要的代碼容量空間在 30-60KB之間。
http://ucip.sourceforge.net性能

三、LwIP學習

     LwIP是瑞士計算機科學院(Swedish Institute of Computer Science)的Adam Dunkels等開發的一套用於嵌入式系統的開放源代碼TCP/IP協議棧。LwIP的含義是Light Weight(輕型)IP協議,相對於uip。LwIP能夠移植到操做系統上,也能夠在無操做系統的狀況下獨立運行。LwIP TCP/IP實現的重點是在保持TCP協議主要功能的基礎上減小對RAM的佔用,通常它只須要幾十K的RAM和40K左右的ROM就能夠運行,這使 LwIP協議棧適合在低端嵌入式系統中使用。LwIP的特性以下:支持多網絡接口下的IP轉發,支持ICMP協議 ,包括實驗性擴展的的UDP(用戶數據報協議),包括阻塞控制,RTT估算和快速恢復和快速轉發的TCP(傳輸控制協議),提供專門的內部回調接口 (Raw API)用於提升應用程序性能,並提供了可選擇的Berkeley接口API。http://www.sics.se/~adam/lwip/http://savannah.nongnu.org/projects/lwip/測試

四、uIP優化

    uIP是專門爲8位和16位控制器設計的一個很是小的TCP/IP棧。徹底用C編寫,所以可移植到各類不一樣的結構和操做系統上,一個編譯過的棧能夠在幾KB ROM或幾百字節RAM中運行。uIP中還包括一個HTTP服務器做爲服務內容。許可:BSD許用證
http://www.sics.se/~adam/uip/ui

五、TinyTcp

    TinyTcp 棧是TCP/IP的一個很是小和簡單的實現,它包括一個FTP客戶。TinyTcp是爲了燒入ROM設計的而且如今開始對大端結構彷佛是有用的(初始目標是68000芯片)。TinyTcp也包括一個簡單的以太網驅動器用於3COM多總線卡 
http://ftp.ecs.soton.ac.uk/pub/elks/utils/tiny-tcp.txt

選擇一個開源協議棧能夠從四個方面來考慮:       一個是是否提供易用的底層硬件API,即與硬件平臺的無關性;       一個是與操做系統的內核API。協議棧須要調用的系統函數接口是否容易構造,       另外一個對於應用支持程度。       最關鍵的是佔用的系統資源是否在可接受範圍內,有裁減優化的空間否? 其中,BSD 棧可完整實現TCP/IP協議,但代碼龐大,70KB-150KB之間,裁減優化有難度,uIP和TinyTcp代碼容量小巧,實現功能精簡,限制了在一些較高要求場合下的應用,如可靠性與大容量數據傳輸。LwIP 和uC/IP是同量級別的兩個開源協議棧,二者代碼容量和實現功能類似,LwIP沒有操做系統針對性,它將協議棧與平臺相關的代碼抽象出來,用戶若是要移 植到本身的系統,須要完成該部分代碼的封裝,併爲網絡應用支持提供了API接口的可選性。uC/IP協議最初是針對uC/OS設計,爲方便用戶移植實現, 一樣也抽象了協議棧與平臺相關代碼,可是協議棧所需調用的系統函數大多參照uC/OS內核函數原型設計,並提供了協議棧的測試函數,方便用戶參考,其不足 在於該協議棧對網絡應用支持不足。 根據以上分析,從應用和開發的角度看,彷佛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是一種挑戰性的工做,它尚需完善。

相關文章
相關標籤/搜索