Какое у вас отношение к поддержке RouterOS функции очередей с L4S и точной маркировке ECN? Мне это не интересно, меня устраивает текущее предложение (CoDel, CAKE и т.п.) — приятно иметь, но не критично для моей сети. Мне интересно — это обязательно.
0 голосов
Несколько месяцев назад на @IETF вышел набор новых RFC:
RFC9330 Low Latency, Low Loss, and Scalable Throughput (L4S) Internet Service Architecture
RFC9331 The Explicit Congestion Notification (ECN) Protocol for Low Latency, Low Loss, and Scalable Throughput (L4S)
RFC9332 Dual-Queue Coupled Active Queue Management (AQM) for Low Latency, Low Loss, and Scalable Throughput (L4S)
в черновиках: More Accurate Explicit Congestion Notification (ECN) Feedback in TCP
Эти RFC описывают решение, минимизирующее накопление очередей и, следовательно, уменьшающее задержки при перегрузках сети. В основе лежит маркировка ECN и так называемое «двухочередное» связанное активное управление очередями (Dual Coupled AQM), которое позволяет трафику с «низкой задержкой» и масштабируемым контролем перегрузок обходить накопление очередей, характерное для «наследственного» трафика.
Не думайте, что это как DSCP EF или отдельные очереди для низкой задержки — здесь всё про трафик «лучших усилий» по умолчанию. И самая важная особенность этого механизма с двумя ветвями — связь между очередями «наследственного» и L4S трафика: трафик L4S не может захватывать всё соединение и никак не ограничит обычные TCP-потоки. Конкуренция за пропускную способность остается равной (хотя сам TCP не идеален в справедливости распределения).
Очередь для L4S будет очень короткой — всего на несколько миллисекунд пакетов, и если длина очереди достигнет порога, все пакеты будут отмечены, чтобы сигнализировать о перегрузке приёмнику. Приёмник может посчитать, сколько пакетов пришло за определённое время и сколько из них было ECN-маркировано — это не просто сигнал о наличии перегрузки, но и её степень, что позволяет алгоритму управления скоростью реагировать гораздо быстрее и точнее, чем традиционные алгоритмы, основанные на задержках и потерях.
Лучшая реализация доступна бесплатно в виде набора патчей для ядра Linux, так что, вероятно, их можно интегрировать в текущий код.
Почему я считаю это важным? Apple уже поддерживает L4S в iOS17/iPadOS17/macOS14 для TCP и QUIC, и к выпуску этой осенью разработчики смогут включать поддержку L4S в свои приложения просто перекомпилировав их с актуальными инструментами.
Хотя все хвалят низкую задержку L4S, связывая её с AR/VR/ER приложениями, облачными играми или традиционными realtime-протоколами, остальные два «L» (Low Loss и Scalable Throughput) не менее важны.
Мы провели множество экспериментов, сравнивая потоки с L4S и классическими алгоритмами контроля перегрузок, и заметили, что даже нереалтайм трафик выигрывает от L4S: обратная связь ECN — это очень быстрый и точный сигнал, который позволяет отправителю «угадывать» подходящую пропускную способность и скорость, существенно снижая накопление очереди и потери пакетов.
Ключ — масштабируемый контроль перегрузок на стороне отправителя. И самое классное: L4S не нужен по всей цепочке маршрутов, а только там, где вероятна перегрузка, так что поэтапное внедрение вполне реально.
Над воплощением L4S работают и фиксированная, и мобильная индустрия, Cable Labs активно продвигается, а Apple, Google, Meta, Nvidia участвуют в IETF хакатонах.
Считаю, что Mikrotik получил бы огромное преимущество, выпустив RouterOS с поддержкой L4S уже в 2023 году — тогда они оказались бы одними из первых производителей на рынке.
Ссылки на документы:
0 голосов
Несколько месяцев назад на @IETF вышел набор новых RFC:
RFC9330 Low Latency, Low Loss, and Scalable Throughput (L4S) Internet Service Architecture
RFC9331 The Explicit Congestion Notification (ECN) Protocol for Low Latency, Low Loss, and Scalable Throughput (L4S)
RFC9332 Dual-Queue Coupled Active Queue Management (AQM) for Low Latency, Low Loss, and Scalable Throughput (L4S)
в черновиках: More Accurate Explicit Congestion Notification (ECN) Feedback in TCP
Эти RFC описывают решение, минимизирующее накопление очередей и, следовательно, уменьшающее задержки при перегрузках сети. В основе лежит маркировка ECN и так называемое «двухочередное» связанное активное управление очередями (Dual Coupled AQM), которое позволяет трафику с «низкой задержкой» и масштабируемым контролем перегрузок обходить накопление очередей, характерное для «наследственного» трафика.
Не думайте, что это как DSCP EF или отдельные очереди для низкой задержки — здесь всё про трафик «лучших усилий» по умолчанию. И самая важная особенность этого механизма с двумя ветвями — связь между очередями «наследственного» и L4S трафика: трафик L4S не может захватывать всё соединение и никак не ограничит обычные TCP-потоки. Конкуренция за пропускную способность остается равной (хотя сам TCP не идеален в справедливости распределения).
Очередь для L4S будет очень короткой — всего на несколько миллисекунд пакетов, и если длина очереди достигнет порога, все пакеты будут отмечены, чтобы сигнализировать о перегрузке приёмнику. Приёмник может посчитать, сколько пакетов пришло за определённое время и сколько из них было ECN-маркировано — это не просто сигнал о наличии перегрузки, но и её степень, что позволяет алгоритму управления скоростью реагировать гораздо быстрее и точнее, чем традиционные алгоритмы, основанные на задержках и потерях.
Лучшая реализация доступна бесплатно в виде набора патчей для ядра Linux, так что, вероятно, их можно интегрировать в текущий код.
Почему я считаю это важным? Apple уже поддерживает L4S в iOS17/iPadOS17/macOS14 для TCP и QUIC, и к выпуску этой осенью разработчики смогут включать поддержку L4S в свои приложения просто перекомпилировав их с актуальными инструментами.
Хотя все хвалят низкую задержку L4S, связывая её с AR/VR/ER приложениями, облачными играми или традиционными realtime-протоколами, остальные два «L» (Low Loss и Scalable Throughput) не менее важны.
Мы провели множество экспериментов, сравнивая потоки с L4S и классическими алгоритмами контроля перегрузок, и заметили, что даже нереалтайм трафик выигрывает от L4S: обратная связь ECN — это очень быстрый и точный сигнал, который позволяет отправителю «угадывать» подходящую пропускную способность и скорость, существенно снижая накопление очереди и потери пакетов.
Ключ — масштабируемый контроль перегрузок на стороне отправителя. И самое классное: L4S не нужен по всей цепочке маршрутов, а только там, где вероятна перегрузка, так что поэтапное внедрение вполне реально.
Над воплощением L4S работают и фиксированная, и мобильная индустрия, Cable Labs активно продвигается, а Apple, Google, Meta, Nvidia участвуют в IETF хакатонах.
Считаю, что Mikrotik получил бы огромное преимущество, выпустив RouterOS с поддержкой L4S уже в 2023 году — тогда они оказались бы одними из первых производителей на рынке.
Ссылки на документы:
