協議棧與協議:
協議棧是指網路中各層協議的總和,其形象的反映了乙個網路中檔案傳輸的過程:由上層協議到底層協議,再由底層協議到上層協議。使用最廣泛的是英特網協議棧,由上到下的協議分別是:應用層(http,telnet,dns,email等),運輸層(tcp,udp),網路層(ip),鏈路層(wi-fi,乙太網,令牌環,fddi等),物理層。
1、bsd tcp/ip協議棧,bsd棧歷史上是其他商業棧的起點,大多數專業tcp/ip棧(vxworks內嵌的tcp/ip棧)是bsd棧派生的。這是因為bsd棧在bsd許可協議下提供了這些專業棧的雛形,bsd許用證允許bsd棧以修改或未修改的形式結合這些專業棧的**而無須向建立者付版稅。同時,bsd也是許多tcp/ip協議中的創新(如廣域網中餓擁塞控制和避免)的開始點。
2、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之間。
3、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。
4、uip是專門為8位和16位控制器設計的乙個非常小的tcp/ip棧。完全用c編寫,因此可移植到各種不同的結構和作業系統上,乙個編譯過的棧可以在幾kb rom或幾百位元組ram中執行。uip中還包括乙個http伺服器作為服務內容。許可:bsd許用證
5、tinytcp 棧是tcp/ip的乙個非常小和簡單的實現,它包括乙個ftp客戶。tinytcp是為了燒入rom設計的並且現在開始對大端結構似乎是有用的(初始目標是68000晶元)。tinytcp也包括乙個簡單的乙太網驅動器用於3com多匯流排卡
個人認為選擇乙個開源協議棧可以從四個方面來考慮:乙個是是否提供易用的底層硬體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是一種挑戰性的工作,它尚需完善。
幾種開源SIP協議棧對比
隨著voip和ngn技術的發展,h.323時代即將過渡到sip時代,在h.323的開源協議棧中,openh323佔統治地位,它把乙個複雜而又先進的h.323協議棧展現在普通程式設計師的眼前,為h.323普及立下了汗馬功勞。而然當在sip時代,則出現了群雄割據的狀況,sip相對於h.323簡單,靈活,...
開源協議介紹
mozilla public license bsd開源協議 bsd開源協議是乙個給於使用者很大自由的協議。可以自由的使用,修改源 也可以將修改後的 作為開源或者專有軟體再發布。當你發布使用了bsd協議的 或則以bsd協議 為基礎做二次開發自己的產品時,需要滿足三個條件 1 如果再發布的產品中包含源...
開源協議介紹
不管產品是免費向公眾分發,還是 制定乙份許可協議非常有用,否則,對於前者,你相當於放棄了自己所有的權利,任何人都沒有義務表明你的原始作 者身份,對於後者,你將不得不花費比開發更多的精力用來逐個處理使用者的授權問題。而開源許可協議使這些事情變得簡單,開發者很容易向乙個專案貢獻自己的 它還可以保護你原始...