lwIP

LwIP
Oryginalni autorzy Adama Dunkelsa
Deweloperzy grupa programistów lwIP
Wersja stabilna
2.1.3 / 10 listopada 2021 ; 15 miesięcy temu ( 10.11.2021 )
Magazyn
Napisane w C
System operacyjny wiele
Platforma systemy wbudowane
Typ stos IP
Licencja Zmodyfikowana licencja BSD
Strona internetowa www .nongnu .org /lwip /

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ż

Linki zewnętrzne