October 8,2007
lightweight TCP/IP stack
如果你覺得linux或freebsd的TCP/IP Stack佔用太多資源, 或是你的OS基本沒有TCP/IP Stack. 那麼lightweight TCP/IP (LWIP) Stack一定是你的最佳選擇.
Lightweight TCP/IP 是一個輕量級的TCP/IP系統, 它只需要40KB ROM 和10KB左右的RAM. 但功能不差,以下是它所支援的功能.
- IP (including forward, fragmentation),
- UDP, UDP Lite
- TCP
- ICMP
- RAW
- Loopback, Ethernet, PPP interface
- DHCP
- ARP
- RAW, netconn and Socket API
- IPv6
- ICMPv6
它是open source 並以BSD-style license授權, 容易於整合到商用程式裡. 最著名的就是Blackfin DSP使用lwip為其內定的TCP/IP Stack. 同時lwip也可以應用於其他平台上, 如linux,win32,eCOS, Nucleus等. 它還有一個姊妹作品uIP,專門設計給8bit的MCU用的TCP/IP Stack. 其最新的codebase已移到http://savannah.nongnu.org/projects/lwip/ 當中最新的CVS版本更支援以下功能.
- IGMP
- SNMP
- AutoIP
- PPPoE
值得一提是他的Raw API, 你可以透過他直接傳取TCP/IP Stack資料,減少很多的memcpy的overhead. 你也可以透過他直接內建獨立的TCP/IP stack到你的程式中.
如果你想要有基本的Router功能, 你可以參考另一個計劃 NAT for lwIP. 這樣一個基本的PPPoE + NAT的路由器就產生了. 當然你還需要一個DNS Client,那麼你就可以整合c-ares到lwip中.
Lightweight TCP/IP Stack套餐完成, 還需要點什麼菜呢? :P
引用URL
http://cgi.blog.roodo.com/trackback/4268101