LwIP

lwIP
Тип стек TCP/IP
Автор Adam Dunkels
Разработчик lwIP developers group
Написана на C
Операционная система Кроссплатформенное программное обеспечение
Аппаратная платформа Встраиваемые системы
Последняя версия 2.1.3 (2021-11-10[1])
Репозиторий git.savannah.nongnu.org/…
Лицензия Модифицированная лицензия BSD
Сайт savannah.nongnu.org/proj…

lwIP (англ. lightweight IP) широко используемый TCP/IP-стек с открытым исходным кодом, предназначенный для встраиваемых систем. LwIP был первоначально разработан Адамом Дункельсом[англ.] в Шведском институте компьютерных наук и в настоящее время разрабатывается и поддерживается командой разработчиков.

Центром внимания реализации LwIP TCP/IP является сокращение использования ресурсов и при этом сохранение полномасштабной TCP. Это делает LwIP возможным для использования во встраиваемых системах с десятками килобайт свободной оперативной памяти и с местом для около 40 килобайт кода ROM.

LwIP используется многими производителями встраиваемых систем, например, Alteraоперационных системах для архитектуры Nios II)[2], Analog Devices (процессоры Blackfin)[3][4], Xilinx[5] и Honeywell (системы авионики). Также на основе lwIP создан TCP/IP драйвер операционной системы ReactOS[6].

Вместе с 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

См. также

Примечания

  1. lwIP 2.1.3 released. Дата обращения: 17 декабря 2021. Архивировано 17 декабря 2021 года.
  2. Using Lightweight IP with the Nios II Processor Tutorial. Дата обращения: 9 февраля 2012. Архивировано 16 ноября 2011 года.
  3. «Building Complex VDK/LwIP Applications Using Blackfin Processors», Kaushal Sanghai, Analog Devices Inc. September 2008. Дата обращения: 9 февраля 2012. Архивировано 20 марта 2012 года.
  4. Создание сложных VDK/LwIP приложений на процессорах Blackfin. Дата обращения: 9 февраля 2012. Архивировано 3 мая 2012 года.
  5. «LightWeight IP (lwIP) Application Examples», Siva Velusamy, Xilinx Inc. June 2009. Дата обращения: 9 февраля 2012. Архивировано 1 марта 2012 года.
  6. ReactOS 0.3.14 Changelog. Дата обращения: 9 февраля 2012. Архивировано 9 февраля 2012 года.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.