Сетевое исчисление

Сетевое исчисление (англ. network calculus) — это совокупность математических результатов, позволяющих анализировать свойства созданных человеком систем, таких как параллельные программы, цифровые схемы и коммуникационные сети[1]. Сетевое исчисление предоставляет теоретический каркас для анализа гарантий производительности в компьютерных сетях. При прохождении потоков данных по сети на них накладываются определённые ограничения, задаваемые компонентами системы, например:

  • пропускная способность канала передачи данных
  • формирователи трафика (leaky bucket)
  • управление перегрузкой
  • фоновой трафик

Эти ограничения могут быть выражены и проанализированы методами сетевого исчисления. Ограничивающие кривые можно объединять с помощью свёртки в рамках мин-плюс алгебраической структуры. Сетевое исчисление также позволяет описывать функции прихода и выбытия трафика, а также сервисные кривые.

В настоящее время выделяют два направления сетевого исчисления: одно рассматривает детерминированные ограничения производительности, другое — стохастические ограничения[2].

Моделирование системы

Моделирование потока и сервера

В сетевом исчислении поток моделируется накопительной функцией A, где A(t) — количество данных (например, число битов), переданных потоком за интервал времени [0,t). Такие функции неотрицательны и неубывающи. Временная область часто представляется неотрицательными вещественными числами.

undefined

Сервер может быть каналом, планировщиком, формирователем трафика или даже целой сетью. Он моделируется как отношение между некоторой накопительной кривой прихода A и накопительной кривой выбытия D. Требуется, чтобы A \geq D, что отражает невозможность ухода данных до их появления.

Моделирование запаса (backlog) и задержки

Для заданных кривых прихода A и выбытия D, запас (backlog) в момент t, обозначается b(A,D,t), определяется как разность между A(t) и D(t). Задержка в момент t, d(A,D,t), — это минимальное время, через которое функция выбытия достигает значения функции прихода. Для всего потока используется супремум этих величин.

Горизонтальное и вертикальное отклонения между накопительными кривыми прихода и выбытия

Обычно реальные потоки точно неизвестны, и известны лишь некоторые ограничения на потоки и серверы (например, максимальное число пакетов за период, максимальный размер пакета, минимальная пропускная способность). Задача сетевого исчисления — вычисление верхних границ задержки и запаса на основе этих ограничений. Для этого используется мин-плюс алгебра.

Мин-плюс полукольцо

Сетевое исчисление широко использует min-плюс полукольцо (иногда называемое мин-плюс алгеброй).

В теории фильтров и линейных систем свёртка двух функций и определяется как

В мин-плюс полукольце операция сложения заменяется минимумом (или инфимумом), а операция умножения — обычным сложением. Мин-плюс свёртка двух функций и задаётся выражением

Например, это определение используется в сервисных кривых. Свёртка и мин-плюс свёртка имеют схожие алгебраические свойства, в частности, коммутативность и ассоциативность.

Операция мин-плюс деконволюции определяется как

Например, такое выражение используется при определении общееограничителей трафика.

Вертикальные и горизонтальные отклонения могут быть выражены через мин-плюс операторы:

Ограничители трафика

Накопительные кривые отражают реальные траектории, неизвестные при проектировании. Заданы лишь некоторые ограничения. Сетевое исчисление оперирует понятием общееограничителя трафика, также называемого кривой прихода.

Накопительная функция A считается удовлетворяющей ограничителю E (также кривой прихода, α), если для любого t выполняется

Возможно два эквивалентных определения:

Таким образом, E накладывает верхнее ограничение на поток A. Такая функция E — это "конверт", задающий верхнюю границу на объём передачи за любой интервал длины d, начиная с произвольного t.

Сервисные кривые

Для обеспечения гарантий производительности потокам трафика требуется задать минимальный уровень обслуживания со стороны сервера (в зависимости от резервирования ресурсов в сети, политики планирования и т.п.). Сервисные кривые позволяют выразить доступность ресурсов. Существует несколько видов сервисных кривых — строго минимальная, с переменной пропускной способностью и др[3].[4]

Простая минимальная сервисная кривая

Пусть A — поток прихода на вход сервера, а D — поток на выходе. Система обеспечивает простую минимальную сервисную кривую S для пары (A,D), если для любого t выполняется:

Строго минимальная сервисная кривая

Пусть A — поток прихода, D — поток выбытия. Период запаса — это интервал I, где для любого момента t \in I, A(t)>D(t).

Система обеспечивает строго минимальную сервисную кривую S для (A,D), если для всех s, t \in \mathbb R^+, где s \leq t, и если (s,t] — период запаса, то D(t)-D(s) \geq S(t-s).

Если сервер предоставляет строго минимальную сервисную кривую S, то он также предоставляет и простую минимальную сервисную кривую S.

Обозначения

В зависимости от авторов и контекста используются различные обозначения или даже названия для одних и тех же понятий.

Основные обозначения в сетевом исчислении
Название понятия Обозначения Комментарии
Накопительная кривая В первых публикациях применялось [1], — для "flow" (поток), — для "arrival" (приход).
Входная/выходная пары кривых , , , Изначально — . — "arrival/departure". — входящий/исходящий потоки.
Ограничитель/кривая прихода При употреблении "ограничитель" используют , при "кривая прихода" — .
Сервисная кривая Обычно используются либо , либо .
Задержка, горизонтальное отклонение "Горизонтальное отклонение" — математическое определение, "задержка" — смысловое.
Запас, вертикальное отклонение "Вертикальное отклонение" — математика, "запас" (backlog) — семантика.
Свёртка
Деконволюция

Основные результаты: границы производительности и распространение ограничителя

Исходя из ограничителей трафика и сервисных кривых можно вычислить оценки на максимальные задержки и запас, а также построить ограничитель для выходного потока.

Пусть A — поток прихода на вход сервера, D — поток на выходе, E — ограничитель (кривая прихода), S — сервисная кривая. Тогда:

Кроме того, кривая выбытия имеет ограничитель .

Эти оценки точны: при заданных E, S можно построить такие кривые прихода и выбытия, что {{{1}}} и {{{1}}}.

Конкатенация / PBOO

Рассмотрим последовательность из двух серверов: выход первого является входом второго. Тогда этот каскад можно рассматривать как новый сервер, полученный конкатенацией двух других.

Если первый (соответственно второй) сервер обеспечивает простую минимальную сервисную кривую (соответственно ), то вся последовательность обеспечивает простую минимальную сервисную кривую .

undefined

Доказательство использует итерацию определений сервисной кривой , и свойства свёртки — изотоничность (), ассоциативность ().

Важность этого результата в том, что сквозная оценка максимальной задержки не превышает суммы локальных задержек:

Этот результат известен как оплатить всплеск только один раз (Pay burst only once, PBOO).

Инструменты

Существует ряд инструментов, основанных на сетевом исчислении. Их сравнение приведено в работе[5].

Мин-плюс вычисления

Существуют инструменты и библиотеки для работы с мин-плюс алгеброй:

  • Network calculus interpreter — онлайн-интерпретатор (min,+).
  • Nancy — C#-библиотека, реализующая мин-плюс и макс-плюс операции.
  • MIN-plus ExpRession VErification (Minerve) — библиотека Coq для проверки корректности мин-плюс операций[6].

Все эти инструменты и библиотеки реализуют алгоритмы из статьи[7].

Инструменты анализа сетей

  • DiscoDNC — научная Java-реализация фреймворка сетевого исчисления[8].
  • RTC Toolbox — академическая реализация Real-Time calculus на Java/MATLAB, теория близка к сетевому исчислению[3].[9]
  • CyNC[10] — MATLAB/Symulink toolbox, базируется на RTC Toolbox; используется в обучении в Ольборгском университете.
  • RTaW-PEGASE — промышленный инструмент анализа временных характеристик коммутируемых сетей Ethernet (AFDX, промышленные и автомобильные Ethernet), базируется на сетевом исчислении[11].
  • DYRECTsn — научный Python-инструмент для анализа динамических потоков в Time-Sensitive Networking (TSN); включает офлайн-оптимизацию и онлайн контроль допуска реального времени[12].
  • WOPANets — академический инструмент, совмещающий анализ на основе сетевого исчисления и оптимизации[13].
  • DelayLyzer — промышленный инструмент для вычисления оценок задержек в сетях Profinet.
  • DEBORAH — инструмент для анализа сетей FIFO.
  • NetCalBounds — инструмент для анализа "слепых" и FIFO-каскадных сетей.
  • NCBounds — инструмент на Python; поддерживает топологии с циклами, учитывает rate-latency серверы и token-bucket ограничители трафика.
  • Siemens Network Planner (SINETPLAN) использует сетевое исчисление для проектирования сетей PROFINET[14].
  • experimental modular TFA (xTFA) — Python-код, поддержка PhD-диссертации L. Thomas[15]
  • Panco — Python-реализация вычисления границ сетевого исчисления с помощью методов линейного программирования.
  • Saihu — Python-интерфейс интеграции инструментов xTFA, DiscoDNC и Panco.
  • CCAC — SMT-основанный инструмент для проверки свойств производительности алгоритмов управления перегрузкой с использованием модели, близкой к сетевому исчислению.
  • AFDX Performance Analysis Tool — набор инструментов для анализа и оптимизации сетей AFDX с поддержкой разных дисциплин обслуживания (FIFO, SPQ, DRR, WRR), созданный в рамках PhD Аакаша Сони[16].

События

Мастер-класс WoNeCaWorkshop on Network Calculus — проводится раз в два года и объединяет исследователей теории сетевого исчисления и практиков. Также служит площадкой для популяризации сетевого исчисления среди специалистов по прикладным моделям очередей.

  • WoNeCa7, прошёл в Тронхейме, Норвегия, в рамках 36-го Международного телетрафик-конгресса (ITC 36).
  • WoNeCa6 состоялся на базе EPFL 8–9 сентября 2022 г. в Лозанне, Швейцария.
  • WoNeCa5 прошёл в онлайн-формате из-за пандемии COVID-19 9 октября 2020 г.
  • WoNeCa4 — 19-я Международная конференция по измерениям, моделированию и оценке вычислительных систем (MMB2018), 28 февраля 2018 г., Эрланген, Германия.
  • WoNeCa3 — в рамках MMB & DFT 2016, 6 апреля 2016, Мюнстер, Германия.
  • WoNeCa2 — в рамках MMB & DFT 2014, 19 марта 2014, Бамберг, Германия.
  • WoNeCa1 — Университет Кайзерслаутерна, в рамках MMB2012, 21 марта 2012, Кайзерслаутерн, Германия.

В 2018 г. Международный мастер-класс по сетевому исчислению и приложениям (NetCal 2018) проходил в Вене, Австрия, как часть 30-го Международного телетрафик-конгресса (ITC 30).

В 2024 году семинар Dagstuhl по сетевому исчислению (24141) проходил с 1 по 4 апреля в Дагстуле, Германия.

Примечания

  1. 1 2 Le Boudec, Жан-Ив. Network Calculus: A Theory of Deterministic Queuing Systems for the Internet / Жан-Ив Le Boudec, Патрик Тиран. — 2001. — Vol. 2050. — ISBN 978-3-540-42184-9. — doi:10.1007/3-540-45318-0.
  2. Fidler, M. (2010). “Survey of deterministic and stochastic service curve models in the network calculus”. IEEE Communications Surveys & Tutorials [англ.]. 12: 59—86. DOI:10.1109/SURV.2010.020110.00019. Дата обращения 2024-06-01. |access-date= требует |url= (справка)
  3. 1 2 Service curves in Network Calculus: dos and don'ts (англ.). INRIA. INRIA (2009). Дата обращения: 1 июня 2024.
  4. Comparison of Different Classes of Service Curves in Network Calculus (англ.). 10th International Workshop on Discrete Event Systems (WODES 2010). Technische Universität Berlin (2010). Дата обращения: 1 июня 2024.
  5. Zhou, Boyang; Howenstine, Isaac; Limprapaipong, Siraphob; Cheng, Liang (14 декабря 2020). “A Survey on Network Calculus Tools for Network Infrastructure in Real-Time Systems”. IEEE Access [англ.]. IEEE. 8: 223588—223605. DOI:10.1109/ACCESS.2020.3043600. Дата обращения 2024-06-01. |access-date= требует |url= (справка)
  6. Rakotomalala, Lucien; Boyer, Marc; Roux, Pierre (2021). “Verifying min-plus computations with Coq”. Lecture Notes in Computer Science. 12671: 300—318. DOI:10.1007/978-3-030-76384-8_17. Дата обращения 2024-06-01. |access-date= требует |url= (справка)
  7. Bouillard, Anne; Thierry, Eric (2008). “An Algorithmic Toolbox for Network Calculus”. Discrete Event Dynamic Systems: Theory and Applications. 18: 3—49. DOI:10.1007/s10626-007-0028-x. Дата обращения 2024-06-01.
  8. The DiscoDNC v2 – A Comprehensive Tool for Deterministic Network Calculus (англ.). 8th International Conference on Performance Evaluation Methodologies and Tools (VALUETOOLS 2014). VALUETOOLS 2014 (2014). Дата обращения: 1 июня 2024.
  9. Real-time calculus for scheduling hard real-time systems (англ.). 2000 IEEE International Symposium on Circuits and Systems. IEEE (2000). Дата обращения: 1 июня 2024.
  10. CyNC: A MATLAB/SimuLink Toolbox for Network Calculus (англ.). 2nd International Conference on Performance Evaluation Methodologies and Tools (ValueTools '07) (2007). Дата обращения: 1 июня 2024.
  11. PEGASE, A Robust and Efficient Tool for Worst Case Network Traversal Time (англ.). SAE 2011 AeroTech Congress & Exhibition (2011). Дата обращения: 1 июня 2024.
  12. Maile, Lisa. Combining Static and Dynamic Traffic with Delay Guarantees in Time-Sensitive Networking // Performance Evaluation Methodologies and Tools : [англ.] / Lisa Maile, Kai-Steffen Hielscher, Reinhard German. — Springer, Cham, 2024. — Vol. 539. — P. 117–132. — ISBN 978-3-031-48884-9. — doi:10.1007/978-3-031-48885-6_8.
  13. Mifdaoui, Ahlem. WOPANets: A tool for WOrst case Performance Analysis of embedded Networks // 2010 15th IEEE International Workshop on Computer Aided Modeling, Analysis and Design of Communication Links and Networks (CAMAD) : [англ.] / Ahlem Mifdaoui, H. Ayed. — 2010. — P. 91–95. — ISBN 978-1-4244-7634-3. — doi:10.1109/CAMAD.2010.5686958.
  14. Kerschbaum, Sven. The need for shaping non-time-critical data in PROFINET networks // 2016 IEEE 14th International Conference on Industrial Informatics (INDIN) : [англ.] / Sven Kerschbaum, Kai-Steffen Hielscher, Reinhard German. — 2016. — P. 160–165. — ISBN 978-1-5090-2870-2. — doi:10.1109/INDIN.2016.7819151.
  15. Thomas, Ludovic (сентябрь 2022). Analysis of the side-effects on latency bounds of combinations of scheduling, redundancy and synchronization mechanisms in time-sensitive networks (PhD Thesis) [англ.]. Université de Toulouse. Дата обращения 2024-06-01. Проверьте дату в |date= (справка на английском); |access-date= требует |url= (справка)
  16. Soni, Aakash (6 мая 2020). Real-time performance analysis of a QoS based industrial embedded network (Thesis) [фр.]. Toulouse, INPT. Дата обращения 2024-06-01. |access-date= требует |url= (справка)