Ameba - lwIP for TCP/IP Stack

收錄在 Ameba 的 100 篇

--

在 2005 年時, 有稍微提到 lwIP - Ameba : Arduino + mbed
和一些實驗 : lwIP - DNS
                       mbed - http socket

最近剛好和朋友討論到 Ameba 所用的 TCP/IP Stack
藉這機會紀錄一下:

lwIP:

1. 緣由:

  mbed OS 中的 TCP/IP Stack 就是選用 lwIP (light weight IP) : mbed github lwip

  這是瑞典計算機科學院 Adam Dunkels 所開發的 open source TCP/IP stack
  針對嵌入式系統 , 為了減少內存使用和 code 大小而產生,
  只需要 幾十K 的 RAM, 和 40K的 ROM code 就可以執行.

  mbed 上的簡介, 其實也就是lwIP 官網上的介紹:
  http://www.nongnu.org/lwip/2_1_x/index.html


2. 特性

(1) 支持多網絡接口下的IP forwarding, 和 IP fragment
(2) 支持ICMP協議;
(3) 支持 IGMP 協議
(4) 支持 MLD (Multicast listener discovery for IPv6) 協議, 目標和 RFC 2710 相容.
     但不支持 MLDv2
(5) 支持 ND (Neighbor discovery and stateless address autoconfiguration for IPv6).
      目標和 RFC 4861 (Neighbor discovery) / RFC 4862 (Address autoconfiguration) 相容
(6) 支持DHCP協議,動態分配ip地址.
(7) 包括實驗性擴展的UDP(用戶數據報協議);
(8) 包括阻塞控制、RTT 估算、快速恢復和快速轉發的TCP(傳輸控制協議);
(9) 提供專門的內部回調接口(Raw API),用於提高應用程式性能;
(10) 可選擇的Berkeley接口API (在多執行緒情況下使用) 。
(11) 支持 TLS - mbed tls
(12) 支持ppp
(13) 支持 DNS
(14) 支持 6LoWPAN
(15) 支持 ARP 協議
(16) 支持 SNMP 協議

雖然完整性和安全性仍不如 Linux TCP/IP stack, 但比起 uC-TCP/IP, FreeRTOS-TCP , 
LwIP 的發展歷史要更悠久些, 目前也更為廣泛的被物聯網所使用. 
目前還有再持續開發:
http://git.savannah.gnu.org/cgit/lwip.git/log/

問題反應也能及時修正: bug tracker

是個蠻值得支持的 open source TCP/IP stack for embedded system.


留言

熱門文章