lwIP () широко используемый TCP/IP-стек с открытым исходным кодом, предназначенный для встраиваемых систем. LwIP был первоначально разработан в Шведском институте компьютерных наук и в настоящее время разрабатывается и поддерживается командой разработчиков.
Центром внимания реализации LwIP TCP/IP является сокращение использования ресурсов и при этом сохранение полномасштабной TCP. Это делает LwIP возможным для использования во встраиваемых системах с десятками килобайт свободной оперативной памяти и с местом для около 40 килобайт кода ROM.
LwIP используется многими производителями встраиваемых систем, например, Altera (в операционных системах для архитектуры Nios II), Analog Devices (процессоры Blackfin), Xilinx и Honeywell (системы авионики). Также на основе lwIP создан TCP/IP драйвер операционной системы ReactOS.
Вместе с lwIP Адам Дункелс создал ещё один TCP/IP стек — uIP. Этот стек оптимизировали для минимизации используемой памяти, в нём не используется динамическое выделение памяти (куча).
LwIP предлагает три различных API-интерфейса, предназначенных для различных целей:
Raw API является основной API LwIP. Этот API направлен на обеспечение наилучших характеристик при использовании минимального размера кода. Один из недостатков этого API является то, что он обрабатывает асинхронные события с использованием обратных вызовов, которые усложняют разработку приложений. Netconn API представляет собой последовательный API интерфейс построенный на базе Raw API. Это позволяет выполнять многопоточную обработку данных, следовательно, требуется наличие операционной системы. Это проще в использовании, чем Raw API за счет более низкой реализации исполнения и увеличения объема памяти. BSD API сокеты, сокеты Беркли, как сокет реализации (Posix / BSD), построенный на базе API Netconn. Данный факт повышает переносимость кода. Он имеет те же недостатки, что и API Netconn.
Возможности LwIP IP, включая пересылку пакетов через несколько сетевых интерфейсов ICMP IGMP UDP, включая экспериментальные расширения UDP Lite TCP с поддержкой управления перегрузкой, оценкой RTT и быстрым восстановлением / быстрым повтором Специализированные API для повышения производительности Поддержка API сокетов Беркли DNS SNMP DHCP AutoIP / Link-local address (для IPv4, RFC 3927) PPP ARP
См. также TCP/IP Сетевая модель OSI uIP (micro IP) Введение в LwIP
Примечания
Категория:TCP/IP Категория:Микроконтроллеры