lwIP का अवलोकन
परिचय
- lwIP एक स्वतंत्र छोटे TCP/IP protocol stack का implementation है
- इसका फोकस RAM उपयोग को कम रखते हुए full-scale TCP को बनाए रखने पर है
- यह embedded systems में उपयोग के लिए उपयुक्त है, और इसे कुछ दसियों kilobytes RAM तथा लगभग 40 kilobytes code ROM की आवश्यकता होती है
- इसे मूल रूप से Adam Dunkels ने विकसित किया था, और अब इसका रखरखाव दुनिया भर के developers के network द्वारा किया जाता है
विशेषताएँ
- IP (Internet Protocol, IPv4 और IPv6): कई network interfaces के बीच packet forwarding सहित
- ICMP (Internet Control Message Protocol): network maintenance और debugging
- IGMP (Internet Group Management Protocol): multicast traffic management
- MLD (Multicast Listener Discovery): IPv6 के लिए, RFC 2710 अनुपालन लक्ष्य
- ND (Neighbor Discovery और Stateless Address Autoconfiguration): RFC 4861 और RFC 4862 अनुपालन लक्ष्य
- DHCP, AutoIP/APIPA (Zeroconf) और (stateless) DHCPv6
- UDP (User Datagram Protocol): experimental UDP-lite extension सहित
- TCP (Transmission Control Protocol): congestion control, RTT estimation, fast recovery/fast retransmit, और SACK transmission
- raw/native API: बेहतर performance के लिए
- वैकल्पिक Berkeley-जैसा socket API
- TLS: लगभग transparent TLS के लिए वैकल्पिक layered TCP ("altcp") (mbedTLS पर port किया गया)
- PPPoS और PPPoE (Point-to-Point Protocol over Serial/Ethernet)
- DNS (domain name resolver, mDNS सहित)
- 6LoWPAN (IEEE 802.15.4, BLE या ZEP के माध्यम से)
अनुप्रयोग
- HTTP server: SSI और CGI सहित (altcp के माध्यम से HTTPS)
- SNMPv2c agent: MIB compiler सहित, v3 को altcp के माध्यम से support किया जाता है
- SNTP (Simple Network Time Protocol)
- NetBIOS name service responder
- MDNS (Multicast DNS) responder
- iPerf server implementation
- MQTT client: TLS support altcp के माध्यम से संभव
लाइसेंस
- lwIP BSD license के तहत मुफ्त उपलब्ध है
विकास
- lwIP embedded devices के लिए एक उत्कृष्ट TCP/IP stack के रूप में विकसित हुआ है
- developers bug fixes, improvements और additional features submit करके stack की उपयोगिता को और बढ़ाते हैं
- development Savannah पर host किया जाता है, और Git तथा mailing list के माध्यम से कोई भी lwIP सुधार में योगदान दे सकता है
- lwIP TCP/IP stack का रखरखाव 'lwip' Git module में किया जाता है, और contributions 'contrib' Git module में हैं
- Git server access के बारे में अधिक जानकारी के लिए doc/savannah.txt देखें
- वर्तमान Git tree वेब पर उपलब्ध है: lwip, lwip-contrib
- patch और bug submission: lwIP project page
- continuous integration build: Travis CI
दस्तावेज़ीकरण
GN⁺ का सार
- lwIP embedded systems में कुशल TCP/IP stack प्रदान करता है और memory usage को न्यूनतम रखता है
- यह विभिन्न network protocols और applications को support करके flexibility और scalability प्रदान करता है
- developer community की सक्रिय भागीदारी से इसमें लगातार सुधार हो रहा है
- समान कार्यक्षमता वाले projects में FreeRTOS+TCP, uIP आदि शामिल हैं
1 टिप्पणियां
Hacker News राय
कुछ साल पहले एक प्रोजेक्ट में LwIP का उपयोग करके सिस्टम टेस्टिंग प्रभावी ढंग से की गई थी
IP stack कहना इसकी क्षमता को कम करके आंकना है
LwIP जैसे विकल्प खोजने वालों को NetXDuo और उसके समकक्ष ThreadX, FileX, LevelX, UsbX पर विचार करने की सलाह दी जाती है
Adam Dunkels ने Protothreads का अधिकांश हिस्सा लिखा है
यह जानने की जिज्ञासा है कि nongnu.org क्या है और इसका gnu.org से क्या संबंध है
संभवतः resource-constrained devices पर सबसे ज़्यादा इस्तेमाल होने वाला TCP/IP stack यही है
LWIP को पसंद करने का एक कारण यह है कि यह Ethernet MAC DMA द्वारा allocate किए गए उसी memory block को packet के पूरे lifetime के दौरान उपयोग करने देता है
जो लोग अपना lightweight TCP/IP stack implement करना चाहते हैं, उनके लिए Jeremy Bentham की किताब <i>TCP/IP Lean</i> एक बेहतरीन resource है
लेख से उद्धरण:
Pico W इसका उपयोग करता है