UIP (micro IP)
uIP (micro IP) — это открытый TCP/IP-стек/модуль, разработан для микроконтроллеров с 8- и 16-битной архитектурой .
Проект «uIP» основан Адамом Дункелсом из группы сетевых встроенных систем Шведского института компьютерных наук (SICS) под лицензией BSD и в дальнейшем развивался группой разработчиков. Стек портирован на несколько платформ[3][4][5] , включая DSP[6].
В отличие от lwIP, uIP оптимизирован с точки зрения ресурсов памяти. lwIP использует динамически выделяемую память (кучу) для работы с сетевыми данными и информацией о соединениях. В uIP дескрипторы соединений создаются на этапе компиляции, а обмен сетевыми данными ведётся через специальный статический буфер. Вследствие такой оптимизации uIP не поддерживает некоторые возможности TCP/IP стека, например сборку фрагментированных IP пакетов, алгоритм Нейгла, восстановление правильной последовательности пакетов, несколько пакетов на один ACK и т. п. Проблема резервного хранения неподтверждённых приёмной стороной данных вынесена из uIP и возложена на пользователя стека.
На сегодня uIP не является самостоятельным проектом и поддерживается в рамках проекта открытой ОС Contiki.
В октябре 2008 Cisco, Atmel и SICS анонсировали полностью совместимое IPv6 расширение uIP под названием uIPv6[7].
Общие сведения
| UIP | |
|---|---|
| Лицензия | модифицированная лицензия BSD[d][1] |
| Репозиторий исходного кода | github.com/adamdunkels/u… |
| Версия | |
| Правовой статус | защищено авторским правом[d] |