Jump to content

uIP (программное обеспечение)

(Перенаправлено с UIP (микро IP) )
Стабильная версия
1.0 [1] / 27 марта 2013 г .; 11 лет назад ( 27 марта 2013 )
Репозиторий
Платформа встроенные системы
Тип TCP/IP стек
Лицензия БСД

uIP это с открытым исходным кодом, реализация стека сетевых протоколов TCP/IP предназначенная для использования с крошечными 8- и 16-битными микроконтроллерами . Первоначально он был разработан Адамом Данкелсом из группы Networked Embedded Systems в Шведском институте компьютерных наук , лицензировался по лицензии BSD и в дальнейшем развивался широкой группой разработчиков.

uIP может быть очень полезен во встроенных системах , поскольку требует очень небольшого количества кода и оперативной памяти. Он был портирован на несколько платформ. [2] [3] [4] включая DSP . платформы [5]

В октябре 2008 года Cisco , Atmel и SICS анонсировали полностью совместимое с IPv6 расширение uIP, получившее название uIPv6. [6]

Выполнение

[ редактировать ]

uIP принимает множество необычных решений в дизайне, чтобы сократить требуемые ресурсы. Собственный программный интерфейс uIP предназначен для небольших компьютерных систем без операционной системы. Его можно вызывать в цикле по времени, и этот вызов управляет всеми повторными попытками и другим поведением сети. Драйвер оборудования вызывается после вызова uIP. uIP формирует пакет, а затем драйвер отправляет его и, при необходимости, получает ответ.

Программное обеспечение стека IP-протоколов обычно хранит множество копий различных IP-пакетов для передачи, приема и сохраняет копии на случай, если их потребуется отправить повторно. uIP экономно использует память, поскольку использует только один буфер пакетов. Во-первых, он использует буфер пакетов в полудуплексном режиме, поочередно используя его для передачи и приема. Кроме того, когда uIP необходимо повторно передать пакет, он вызывает код приложения таким образом, чтобы запросить воспроизведение предыдущих данных.

Еще одна странность заключается в том, как uIP управляет соединениями. В большинстве реализаций IP имеется одна задача на каждое соединение, и эта задача взаимодействует с задачей на удаленном компьютере на другом конце соединения. В uIP не предполагается многозадачность операционной системы. Соединения хранятся в массиве. При каждом вызове uIP пытается установить соединение, вызывая подпрограмму кода приложения, которое отвечает или отправляет данные. Размер массива подключений — это число, которое можно изменить при перекомпиляции uIP.

uIP полностью совместим с RFC , определяющими TCP , UDP и IP . Он также реализует протокол обязательного обслуживания ICMP .

уИП 0.9 [7] это версия с наименьшей зависимостью от операционных систем, наименьшим использованием ресурсов и единственной версией, которая представляет чистый API цикла событий , но в исходной форме не поддерживает IP версии 6, а только более старый и более распространенный IPv4. Его можно использовать во встроенных системах с очень небольшим количеством ресурсов.

Он поставлялся с набором примеров протоколов более высокого уровня, которые также работают в системе цикла событий, включая HTTP (простой веб-сервер), SMTP (простой протокол передачи почты), FTP (протокол передачи файлов), telnet (эмуляция терминала) . ) и другие. Несмотря на примеры и небольшой размер, uIP 0.9 может быть сложно применить, поскольку он не использует какую-либо форму API сокетов . [8]

uIP — широко используемый код с хорошо известными недостатками. Конструкция сводит к минимуму и разделяет 32-битную арифметику, чтобы ее можно было настроить или оптимизировать для 8- и 16-битных процессоров. Кроме того, 16-битные программные таймеры (распространенные в небольших микроконтроллерах) могут переполняться и вызывать сбои в работе. Это можно исправить с помощью системы таймеров, которая не переполняется (например, таймеры ведут обратный отсчет или используют модульную арифметику ).

Другая проблема заключается в том, что его одиночный буфер пакетов может иметь существенные проблемы с пропускной способностью, поскольку хост ПК обычно задерживает пакет «ACK», ожидая новых пакетов. В медленных реализациях последовательного порта пропускную способность подтверждения можно исправить, изменив uIP так, чтобы каждый пакет отправлялся как два фрагмента половинного пакета. Системы uIP с быстрым Ethernet или Wi-Fi могут модифицировать драйвер оборудования для двойной отправки каждого пакета. [5]

Некоторые компьютеры неправильно реагируют на быструю систему uIP в локальной сети Ethernet, поскольку система uIP может запустить ответный пакет до того, как компьютер будет готов его принять. [ сомнительно обсудить ] Решение состоит в том, чтобы реже вызывать систему uIP в основном цикле (компьютеры Windows рассчитаны на время отклика около 1 миллисекунды). Типичные реализации uIP имеют фиксированный IP-адрес, что может сделать их непрактичными в реальных сетях, хотя некоторые из них реализовали DHCP . [9] [10]

Более поздние версии uIP, включая эталонную версию uIPv6, интегрированы с Contiki — операционной системой, использующей сопрограммы для совместной многозадачности. Contiki обеспечивает многозадачность, необходимую благодаря упрощенному API сокетов , упрощая использование uIP. Однако эти версии могут быть менее популярными, чем 0.9. Многие примеры встроенного кода их не используют. [11] [12] [13]

См. также

[ редактировать ]
  1. ^ «Релиз 1.0» . 27 марта 2013 года . Проверено 18 марта 2019 г.
  2. ^ Метцингер, Зак (25 марта 2008 г.). «УКАЗАНИЕ ПО ПРИМЕНЕНИЮ 4205 — Использование стека uIP для подключения к сети микроконтроллера MAXQ» . Максим Интегрированные Продукты, Inc. Проверено 2 февраля 2015 г.
  3. ^ «AN057 - Стек TCP/IP uIP V1.0 для eCOG1k и eCOG1X, версия 1.0» (PDF) . ООО "Циан Технолоджи" . 28 января 2008 г. Архивировано из оригинала (PDF) 18 февраля 2012 г. . Проверено 18 февраля 2012 г.
  4. ^ Кертис, Пол. «UIP Адама Данкеля на Olimex EasyWeb2 и LPC-E2124» . Роули Ассошиэйтс Лимитед . Проверено 2 февраля 2015 г.
  5. ^ Перейти обратно: а б Барнетт, Дрю; Масса, Энтони Дж. (1 февраля 2005 г.). «Внутри стека uIP» . Журнал доктора Доббса . Проверено 2 февраля 2015 г.
  6. ^ «Cisco, Atmel и Шведский институт компьютерных наук (SICS) сотрудничают, чтобы поддержать будущее, в котором любое устройство может быть подключено к Интернету» . Циско . 14 октября 2008 года . Проверено 2 февраля 2015 г.
  7. ^ Данкелс, Адам. «Тегированные релизы» . Релизы с тегами uIP на GitHub . Проверено 2 февраля 2015 г.
  8. См. оригинальный веб-сайт Данкеля выше, о машине обратного пути.
  9. ^ См. пример кода Code-Red для печатной платы RDB4078, 2012 г. .
  10. ^ Данкель предоставил пример кода для DHCP.
  11. ^ Метцингер, выше
  12. ^ Примеры веб-сайтов FreeRTOS, 2013 г.
  13. ^ Примеры Code-Red выше.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e5fb1b3226dc1c395d3591efb8bbc589__1688997900
URL1:https://arc.ask3.ru/arc/aa/e5/89/e5fb1b3226dc1c395d3591efb8bbc589.html
Заголовок, (Title) документа по адресу, URL1:
uIP (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)