lwIP

Стек TCP/IP с открытым исходным кодом
Оригинальный автор(ы)Адам Данкельс
Разработчик(и)группа разработчиков lwIP
Стабильный релиз
2.2.0 [1] / 25 сентября 2023 г. ; 15 месяцев назад ( 2023-09-25 )
Репозиторий
  • git.savannah.nongnu.org/cgit/lwip.git
Написано вС
Операционная системанесколько
Платформавстроенные системы
ТипIP-стек
ЛицензияИзмененная лицензия BSD
Веб-сайтwww.nongnu.org/lwip/

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

lwIP используется многими производителями встраиваемых систем, включая Intel/Altera , Analog Devices , [2] Xilinx , [3] TI , ST и Freescale .

сетевой стек lwIP

Целью реализации сетевого стека lwIP является сокращение использования ресурсов при сохранении полномасштабного стека TCP. [4] Это делает lwIP пригодным для использования во встраиваемых системах с десятками килобайт свободной оперативной памяти и местом для примерно 40 килобайт кода ROM.

Реализации протокола lwIP

Помимо стека TCP/IP , lwIP имеет несколько других важных частей, таких как сетевой интерфейс , уровень эмуляции операционной системы, буферы и раздел управления памятью. Уровень эмуляции операционной системы и сетевой интерфейс позволяют перенести сетевой стек в операционную систему, поскольку он обеспечивает общий интерфейс между кодом lwIP и ядром операционной системы . [4]

Сетевой стек lwIP включает реализацию IP (Internet Protocol) на уровне Интернета , которая может обрабатывать пересылку пакетов через несколько сетевых интерфейсов. [4] IPv4 и IPv6 поддерживаются в двухстековом режиме, начиная с lwIP v2.0.0. [5] Для обслуживания и отладки сети lwIP реализует ICMP (Internet Control Message Protocol). [4] IGMP (Internet Group Management Protocol) поддерживается для управления многоадресным трафиком. В то время как ICMPv6 (включая MLD ) реализован для поддержки использования IPv6. [ требуется ссылка ]

lwIP включает реализацию IPv4 ARP (протокол разрешения адресов) и IPv6 Neighbor Discovery Protocol для поддержки Ethernet на канальном уровне . LwIP также может работать поверх реализации PPP (протокола точка-точка) на канальном уровне. [ необходима ссылка ]

На транспортном уровне lwIP реализует TCP (протокол управления передачей) с контролем перегрузки, оценкой RTT и быстрым восстановлением/быстрой повторной передачей. [4] UDP (протокол пользовательских датаграмм) реализован с экспериментальными расширениями UDP-Lite . [ требуется ссылка ]

API и сокеты

lwIP предоставляет специализированный интерфейс прикладного программирования (API) без копирования для повышения производительности сетевого стека. API сокетов Berkeley является необязательным. [4] Сырые сокеты или сырые pcbs (блоки управления протоколом) предоставляются в зависимости от используемого API. [6]

Поддержка уровня приложений

На прикладном уровне сетевой стек lwIP может поддерживаться посредством реализации следующих протоколов. DNS (система доменных имен), агент SNMP (простой протокол сетевого управления) в v1, v2 или v3 с поддержкой частной MIB ( база данных управления ) и компилятор MIB.

Операционные системы, реализующие стек lwIP TCP/IP, могут предоставлять ряд поддерживающих клиентов и серверов на уровне приложений. Например, клиент IPv4 DHCP (Dynamic Host Configuration Protocol) или локальные адреса IPv4 (AutoIP). Специализированные приложения raw API включают: HTTP- сервер, SNTP- клиент, SMTP- клиент, сервер имен NetBIOS , ответчик mDNS , клиент MQTT и сервер TFTP . [ необходима цитата ]

Реализации ОС

lwIP используется в качестве сетевого стека в ReactOS и Genode [7] и может использоваться в Minix и GNU Hurd для реализации сетевых серверов.

Смотрите также

Ссылки

  1. ^ "lwIP 2.2.0 released". Архивировано из оригинала 2023-11-27 . Получено 2023-10-11 .
  2. ^ "Создание сложных приложений VDK/LwIP с использованием процессоров Blackfin", Каушал Сангхай, Analog Devices Inc. Сентябрь 2008 г. Архивировано 20 марта 2012 г. на Wayback Machine
  3. ^ "Siva Velusamy, LightWeight IP (lwIP) Application Examples, Xilinx Inc. Июнь 2009" (PDF) . Архивировано (PDF) из оригинала 2012-03-01 . Получено 2010-11-11 .
  4. ^ abcdef Wu, Yanwen, ред. (2010). Программная инженерия и инженерия знаний: теория и практика. Берлин: Springer. С. 639. ISBN 978-3-642-03717-7.
  5. ^ "LwIP: Обновление". Архивировано из оригинала 2019-03-31 . Получено 2019-04-03 .
  6. ^ "lwIP functions documentation". Архивировано из оригинала 2020-10-30 . Получено 2007-11-25 .
  7. ^ «Заметки о выпуске Genode OS Framework 9.11».
  • Первоначальная статья Адама Данкелса в Lwip
  • разработка lwIP
  • lwIP документация wiki
  • Документация по функциям lwIP
  • lwIP бывшая домашняя страница (устарела)
  • Руководство по использованию LwIP от Microchip (pdf)
Взято с "https://en.wikipedia.org/w/index.php?title=LwIP&oldid=1265004498"