lwIP
Оригинальный автор(ы) | Адам Данкелс |
---|---|
Разработчик(и) | группа разработчиков lwIP |
Стабильная версия | 2.2.0 [1] / 25 сентября 2023 г |
Репозиторий | |
Написано в | С |
Операционная система | несколько |
Платформа | встроенные системы |
Тип | IP-стек |
Лицензия | Модифицированная лицензия BSD. |
Веб-сайт | www |
lwIP ( облегченный IP ) — это широко используемый с открытым исходным кодом, стек TCP/IP предназначенный для встраиваемых систем . lwIP был первоначально разработан Адамом Данкелсом в Шведском институте компьютерных наук , а в настоящее время разрабатывается и поддерживается всемирной сетью разработчиков.
lwIP используется многими производителями встраиваемых систем, включая Intel/Altera , Analog Devices , [2] Ксилинкс , [3] TI , ST и Freescale .
сетевой стек lwIP [ править ]
Целью реализации сетевого стека lwIP является сокращение использования ресурсов при сохранении полномасштабного стека TCP. [4] Это делает lwIP пригодным для использования во встраиваемых системах с десятками килобайт свободной оперативной памяти и местом для около 40 килобайт ПЗУ кода.
реализации протокола lwIP [ править ]
Помимо стека TCP/IP , lwIP имеет несколько других важных частей, таких как сетевой интерфейс , уровень эмуляции операционной системы, буферы и раздел управления памятью. Уровень эмуляции операционной системы и сетевой интерфейс позволяют трансплантировать сетевой стек в операционную систему, поскольку он обеспечивает общий интерфейс между кодом lwIP и ядром операционной системы . [4]
Сетевой стек lwIP включает реализацию IP (Интернет-протокола) на уровне Интернета , которая может обрабатывать пересылку пакетов через несколько сетевых интерфейсов. [4] И IPv4 , и IPv6 поддерживают двойной стек, начиная с lwIP v2.0.0. [5] Для обслуживания и отладки сети lwIP реализует ICMP (протокол управляющих сообщений Интернета). [4] IGMP (протокол управления группами Интернета) поддерживается для управления многоадресным трафиком. Хотя ICMPv6 (включая MLD ) реализован для поддержки использования IPv6. [ нужна ссылка ]
lwIP включает реализацию IPv4 ARP (протокол разрешения адресов) и протокол обнаружения соседей IPv6 для поддержки Ethernet на уровне канала передачи данных . lwIP также может работать поверх реализации PPP (протокола «точка-точка») на канальном уровне. [ нужна ссылка ]
На транспортном уровне lwIP реализует TCP (протокол управления передачей) с контролем перегрузки, оценкой RTT и быстрым восстановлением/быстрой повторной передачей. [4] UDP (протокол пользовательских дейтаграмм) реализован с помощью экспериментальных расширений UDP-Lite . [ нужна ссылка ]
API и сокеты [ править ]
без копирования lwIP предоставляет специализированный интерфейс прикладного программирования (API) для повышения производительности сетевого стека. API сокетов Беркли не является обязательным. [4] Необработанные сокеты или необработанные печатные платы (блоки управления протоколом) предоставляются в зависимости от используемого API. [6]
Поддержка прикладного уровня [ править ]
На уровне приложений сетевой стек lwIP может поддерживаться посредством реализации следующих протоколов. DNS MIB (система доменных имен), агент SNMP (простой протокол сетевого управления) версий v1, v2 или v3 с . поддержкой частной MIB (базы управляющей информации) и компилятором
Операционные системы, реализующие стек TCP/IP lwIP, могут предоставлять ряд поддерживающих клиентов и серверов на уровне приложений. Например, клиент IPv4 DHCP (протокол динамической конфигурации хоста) или локальные адреса каналов IPv4 (AutoIP). Специализированные приложения необработанного API включают в себя: HTTP- сервер, клиент SNTP , клиент SMTP , сервер имен NetBIOS , ответчик mDNS , клиент MQTT и сервер TFTP . [ нужна ссылка ]
Реализации ОС [ править ]
lwIP используется в качестве сетевого стека в ReactOS и Genode. [7] и может использоваться в Minix и GNU Hurd для реализации сетевых серверов.
См. также [ править ]
Ссылки [ править ]
- ^ «Выпущен lwIP 2.2.0» . Проверено 11 октября 2023 г.
- ^ « Создание сложных приложений VDK/LwIP с использованием процессоров Blackfin», Каушал Сангхай, Analog Devices Inc., сентябрь 2008 г.
- ^ Шива Велусами, Примеры приложений LightWeight IP (lwIP), Xilinx Inc., июнь 2009 г.
- ↑ Перейти обратно: Перейти обратно: а б с д и ж Ву, Янвэнь, изд. (2010). Программная инженерия и инженерия знаний: теория и практика . Берлин: Шпрингер. п. 639. ИСБН 978-3-642-03717-7 .
- ^ «LwIP: Обновление» .
- ^ документация по функциям lwIP
- ^ «Примечания к выпуску Genode OS Framework 9.11» .