lwIP
Oryginalni autorzy | Adama Dunkelsa |
---|---|
Deweloperzy | grupa programistów lwIP |
Wersja stabilna | 2.1.3 / 10 listopada 2021
|
Magazyn | |
Napisane w | C |
System operacyjny | wiele |
Platforma | systemy wbudowane |
Typ | stos IP |
Licencja | Zmodyfikowana licencja BSD |
Strona internetowa |
lwIP ( lekki IP ) to szeroko stosowany stos TCP/IP typu open source przeznaczony dla systemów wbudowanych . lwIP został pierwotnie opracowany przez Adama Dunkelsa ze Szwedzkiego Instytutu Informatyki , a obecnie jest rozwijany i utrzymywany przez ogólnoświatową sieć programistów.
lwIP jest używany przez wielu producentów systemów wbudowanych, w tym Intel/Altera , Analog Devices , Xilinx , TI , ST i Freescale .
stos sieciowy lwIP
Implementacja stosu sieciowego lwIP skupia się na zmniejszeniu wykorzystania zasobów przy jednoczesnym zachowaniu pełnowymiarowego stosu TCP. To sprawia, że lwIP nadaje się do użytku w systemach wbudowanych z dziesiątkami kilobajtów wolnej pamięci RAM i miejscem na około 40 kilobajtów kodu ROM.
Implementacje protokołów lwIP
Oprócz stosu TCP/IP lwIP ma kilka innych ważnych części, takich jak interfejs sieciowy , warstwa emulacji systemu operacyjnego, bufory i sekcja zarządzania pamięcią. Warstwa emulacji systemu operacyjnego i interfejs sieciowy umożliwiają przeniesienie stosu sieciowego do systemu operacyjnego, ponieważ zapewnia wspólny interfejs między kodem lwIP a jądrem systemu operacyjnego .
Stos sieciowy lwIP obejmuje implementację protokołu IP (Internet Protocol) w warstwie internetowej , która może obsługiwać przekazywanie pakietów przez wiele interfejsów sieciowych. Zarówno IPv4, jak i IPv6 są obsługiwane w dwóch stosach od lwIP v2.0.0. Do konserwacji i debugowania sieci lwIP implementuje ICMP (Internet Control Message Protocol). Obsługiwany jest protokół IGMP (Internet Group Management Protocol) do zarządzania ruchem multiemisji. Podczas gdy ICMPv6 (w tym MLD ) jest zaimplementowany w celu obsługi korzystania z IPv6. [ potrzebne źródło ]
lwIP zawiera implementację IPv4 ARP (Address Resolution Protocol) i IPv6 Neighbor Discovery Protocol do obsługi Ethernetu w warstwie łącza danych . lwIP może być również obsługiwany w oparciu o protokołu PPP (Point-to-Point Protocol) w warstwie łącza danych. [ potrzebne źródło ]
W warstwie transportowej lwIP implementuje protokół TCP (Transmission Control Protocol) z kontrolą przeciążenia, szacowaniem RTT i szybkim odtwarzaniem/szybką retransmisją. UDP (User Datagram Protocol) jest zaimplementowany z eksperymentalnymi rozszerzeniami UDP-Lite . [ potrzebne źródło ]
API i gniazda
interfejs programowania aplikacji bez kopiowania (API) w celu zwiększenia wydajności stosu sieciowego. Interfejs API gniazda Berkeley jest opcjonalny. Surowe gniazda lub surowe płytki drukowane (bloki sterujące protokołami) są dostarczane w zależności od używanego interfejsu API.
Obsługa warstwy aplikacji
W warstwie aplikacji stos sieciowy lwIP może być obsługiwany poprzez implementację następujących protokołów. DNS (Domain Name System), agent SNMP (Simple Network Management Protocol), w wersji v1, v2 lub v3, z obsługą prywatnego MIB ( bazy informacji o zarządzaniu ) i kompilatorem MIB.
Systemy operacyjne, które implementują stos lwIP TCP/IP, mogą udostępniać szereg wspierających klientów i serwerów w warstwie aplikacji. Takich jak klient IPv4 DHCP (Dynamic Host Configuration Protocol) lub adresy lokalne łącza IPv4 (AutoIP). Wyspecjalizowane aplikacje surowego API obejmują: HTTP , klienta SNTP , klienta SMTP , serwer nazw NetBIOS , obiekt odpowiadający mDNS , klienta MQTT i serwer TFTP . [ potrzebne źródło ]
Implementacje systemów operacyjnych
lwIP jest używany jako stos sieciowy w ReactOS i Genode i może być używany w Minix i GNU Hurd do implementacji serwerów sieciowych.
Zobacz też
- mikroIP ( uIP )
Linki zewnętrzne
- Początkowy artykuł Adama Dunkelsa Lwip
- rozwój lwIP
- Dokumentacja lwIP wiki
- Dokumentacja funkcji lwIP
- poprzednia strona główna lwIP (przestarzała)
- Podręcznik użytkowania LwIP firmy Microchip (pdf)