Ikhtisar lwIP
Pengenalan
- lwIP adalah implementasi stack protokol TCP/IP kecil yang berdiri sendiri
- Berfokus pada pengurangan penggunaan RAM sambil tetap mempertahankan TCP berfitur lengkap
- Cocok digunakan pada sistem embedded, dan membutuhkan RAM puluhan kilobyte serta code ROM sekitar 40 kilobyte
- Awalnya dikembangkan oleh Adam Dunkels, dan saat ini dipelihara oleh jaringan pengembang di seluruh dunia
Fitur
- IP (Internet Protocol, IPv4 dan IPv6): termasuk penerusan paket antar berbagai antarmuka jaringan
- ICMP (Internet Control Message Protocol): untuk pemeliharaan dan debugging jaringan
- IGMP (Internet Group Management Protocol): pengelolaan trafik multicast
- MLD (Multicast Listener Discovery): untuk IPv6, menargetkan kepatuhan terhadap RFC 2710
- ND (Neighbor Discovery dan stateless address autoconfiguration): menargetkan kepatuhan terhadap RFC 4861 dan RFC 4862
- DHCP, AutoIP/APIPA (Zeroconf), dan DHCPv6 (stateless)
- UDP (User Datagram Protocol): termasuk ekstensi UDP-lite yang eksperimental
- TCP (Transmission Control Protocol): kontrol kemacetan, estimasi RTT, fast recovery/fast retransmit, dan transmisi SACK
- API raw/native: untuk peningkatan performa
- API socket opsional yang mirip Berkeley
- TLS: layer TCP opsional ("altcp") untuk TLS yang hampir transparan (di-port ke mbedTLS)
- PPPoS dan PPPoE (Point-to-Point Protocol melalui serial/Ethernet)
- DNS (resolver nama domain, termasuk mDNS)
- 6LoWPAN (melalui IEEE 802.15.4, BLE, atau ZEP)
Aplikasi
- Server HTTP: termasuk SSI dan CGI (HTTPS melalui altcp)
- Agen SNMPv2c: termasuk kompiler MIB, v3 didukung melalui altcp
- SNTP (Simple Network Time Protocol)
- Responder layanan nama NetBIOS
- Responder MDNS (Multicast DNS)
- Implementasi server iPerf
- Klien MQTT: dukungan TLS tersedia melalui altcp
Lisensi
- lwIP tersedia gratis di bawah lisensi BSD
Pengembangan
- lwIP telah berkembang menjadi stack TCP/IP yang sangat baik untuk perangkat embedded
- Para pengembang mengirimkan perbaikan bug, peningkatan, dan fitur tambahan untuk semakin meningkatkan kegunaan stack ini
- Pengembangan di-host di Savannah, dan siapa pun dapat berkontribusi pada peningkatan lwIP melalui Git dan mailing list
- Stack TCP/IP lwIP dikelola dalam modul Git 'lwip', dan kontribusi berada dalam modul Git 'contrib'
- Untuk detail akses ke server Git, lihat doc/savannah.txt
- Pohon Git saat ini dapat ditelusuri di web: lwip, lwip-contrib
- Pengiriman patch dan bug: halaman proyek lwIP
- Build continuous integration: Travis CI
Dokumentasi
Ringkasan GN⁺
- lwIP menyediakan stack TCP/IP yang efisien untuk sistem embedded dengan meminimalkan penggunaan memori
- Mendukung beragam protokol jaringan dan aplikasi, sehingga menawarkan fleksibilitas dan skalabilitas
- Terus ditingkatkan melalui partisipasi aktif komunitas pengembang
- Proyek dengan fungsi serupa antara lain FreeRTOS+TCP dan uIP
1 komentar
Opini Hacker News
Beberapa tahun lalu, dalam sebuah proyek, LwIP digunakan untuk melakukan pengujian sistem secara efektif
Istilah stack IP terasa meremehkan
Bagi orang yang mencari opsi seperti LwIP, disarankan mempertimbangkan NetXDuo dan padanannya yaitu ThreadX, FileX, LevelX, UsbX
Adam Dunkels menulis sebagian besar Protothreads
Ada yang penasaran apa itu nongnu.org dan bagaimana hubungannya dengan gnu.org
Sepertinya ini adalah stack TCP/IP yang paling banyak digunakan pada perangkat dengan sumber daya terbatas
Alasan menyukai LWIP adalah karena ia memungkinkan blok memori yang sama, yang dialokasikan oleh Ethernet MAC DMA, digunakan sepanjang umur paket
memcpyBagi yang ingin mengimplementasikan stack TCP/IP ringan sendiri, buku <i>TCP/IP Lean</i> karya Jeremy Bentham adalah sumber yang sangat bagus
Kutipan dari artikel:
Pico W menggunakan ini