Открыть сервис

Priority Flow Control

Priority Flow Control (PFC, управление приоритетным потоком) — это механизм управления перегрузками в сетях Ethernet, определённый стандартом IEEE 802.1Qbb, который позволяет предотвращать потери кадров (frame loss) за счёт приостановки передачи данных на отдельных виртуальных каналах (priority classes) в зависимости от их приоритета. PFC является ключевым компонентом технологий центров обработки данных (ЦОД), таких как Fibre Channel over Ethernet (FCoE) и iSCSI, где требуется гарантированная доставка данных без потерь.

История и стандартизация

Разработка PFC началась в середине 2000-х годов как часть более широкой инициативы по конвергенции сетей хранения данных (SAN) и локальных сетей (LAN) в единую инфраструктуру Ethernet. К этому времени стандартный Ethernet (IEEE 802.3) не обеспечивал гарантированной доставки кадров — при перегрузке буфера коммутатора кадры отбрасывались, что было неприемлемо для протоколов хранения данных, таких как Fibre Channel. В 2009 году был принят стандарт IEEE 802.1Qbb, который ввёл PFC как часть набора технологий Data Center Bridging (DCB). В 2011 году он был включён в обновлённый стандарт IEEE 802.1Q-2011.

Принцип работы

PFC расширяет механизм управления потоком IEEE 802.3x (PAUSE-кадры), который приостанавливает передачу по всему линку. В отличие от него, PFC позволяет приостанавливать передачу только для определённого класса трафика (priority), не затрагивая остальные. Каждый кадр Ethernet содержит поле Priority Code Point (PCP) из 3 бит, которое определяет приоритет (0–7). PFC использует эти приоритеты для создания до 8 независимых виртуальных каналов на одном физическом соединении.

Алгоритм работы

  1. Мониторинг буфера. Коммутатор или конечное устройство отслеживает заполнение буфера для каждого приоритета.
  2. Генерация PAUSE-кадра. При превышении порога (обычно 75–80 % ёмкости буфера) устройство отправляет PFC-кадр (PAUSE-кадр с указанием приоритета) на соседнее устройство.
  3. Приостановка передачи. Получив PFC-кадр, отправитель прекращает передачу кадров данного приоритета на указанное время (в единицах quanta, где 1 quantum = 512 битовых интервалов).
  4. Возобновление передачи. После освобождения буфера (или по истечении таймера) отправляется PFC-кадр с нулевым временем паузы, разрешающий возобновление передачи.

Отличия от IEEE 802.3x PAUSE

  • Гранулярность: PFC работает на уровне приоритетов, а не всего линка.
  • Совместимость: PFC требует поддержки на обоих концах соединения и на всех промежуточных коммутаторах.
  • Сложность: PFC требует более сложной логики управления буферами и синхронизации.

Классы трафика и приоритеты

Стандарт IEEE 802.1Qbb определяет до 8 приоритетов (0–7), которые могут быть сопоставлены различным типам трафика. Типичное распределение в ЦОД:

ПриоритетТип трафикаПример использования
0ФоновыйРезервное копирование, низкоприоритетные данные
1Best-effortОбычный IP-трафик
2–3Видео/аудиоВидеоконференции, VoIP
4–5УправлениеПротоколы управления (SNMP, OSPF)
6–7ХранениеFCoE, iSCSI, NVMe-oF

На практике часто используются только 3–4 класса, чтобы упростить конфигурацию и снизить накладные расходы.

Применение

Центры обработки данных (ЦОД)

PFC является основой для построения сетей без потерь (lossless networks) в ЦОД. Он используется в сочетании с протоколами:

  • FCoE (Fibre Channel over Ethernet) — передача трафика Fibre Channel поверх Ethernet с гарантией доставки.
  • iSCSI (Internet Small Computer System Interface) — передача команд SCSI по IP-сетям.
  • NVMe-oF (NVMe over Fabrics) — передача команд NVMe по Ethernet с минимальными задержками.

Конвергентные сети

PFC позволяет объединить трафик хранения данных, управления и пользовательский трафик на одной физической инфраструктуре, снижая затраты на оборудование и кабельное хозяйство. Это особенно актуально в гиперконвергентных системах (HCI) и облачных платформах.

Высокопроизводительные вычисления (HPC)

В HPC-кластерах PFC используется для обеспечения низких задержек и отсутствия потерь при передаче данных между узлами, особенно при работе с протоколами RDMA (Remote Direct Memory Access), такими как RoCE (RDMA over Converged Ethernet).

Преимущества и недостатки

Преимущества

  • Отсутствие потерь кадров: Гарантирует доставку данных для критичных приложений.
  • Изоляция трафика: Перегрузка в одном классе не влияет на другие.
  • Совместимость: Работает на стандартном Ethernet-оборудовании с поддержкой DCB.
  • Эффективность: Снижает необходимость в повторной передаче данных (retransmission).

Недостатки

  • Сложность конфигурации: Требует точной настройки порогов буферов и таймеров на всех устройствах.
  • Риск голодания (starvation): При неправильной настройке высокоприоритетный трафик может полностью заблокировать низкоприоритетный.
  • Зависимость от оборудования: Не все коммутаторы поддерживают PFC, особенно старые модели.
  • Проблемы с масштабированием: В больших сетях PFC может вызывать каскадные блокировки (head-of-line blocking) при перегрузке.

Критика и альтернативы

PFC критикуется за сложность внедрения и потенциальные проблемы с производительностью. В частности, при перегрузке на одном приоритете PFC может привести к блокировке всего линка, если буферы не настроены правильно. Альтернативными подходами являются:

  • Explicit Congestion Notification (ECN) — маркировка пакетов при перегрузке без приостановки передачи.
  • Quantized Congestion Notification (QCN)обратная связь от коммутатора к источнику для снижения скорости.
  • TCP-управление потоком — использование встроенных механизмов TCP (например, TCP BBR) для контроля перегрузки.

Тем не менее, PFC остаётся стандартом для сетей хранения данных и конвергентных инфраструктур в ЦОД.

Интересные факты

  • PFC был разработан для замены технологии Fibre Channel в сетях хранения данных, но не смог полностью вытеснить её из-за сложности внедрения.
  • В некоторых реализациях PFC используется совместно с ECN для более точного управления перегрузкой (технология DCQCN).
  • Стандарт IEEE 802.1Qbb является частью набора Data Center Bridging, который также включает Enhanced Transmission Selection (ETS) и Congestion Notification (CN).

Источники

  • IEEE 802.1Qbb-2011 — Standard for Local and Metropolitan Area Networks — Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks — Amendment 17: Priority-based Flow Control.
  • IEEE 802.1Q-2011 — Standard for Local and Metropolitan Area Networks — Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks.
  • Cisco Systems, Inc. — «Data Center Bridging: Priority Flow Control, Enhanced Transmission Selection, and Congestion Notification» (White Paper, 2010).
  • Mellanox Technologies — «RoCE vs. iWARP: RDMA over Ethernet» (Technical Report, 2015).
  • RFC 8257 — Data Center TCP (DCTCP): TCP Congestion Control for Data Centers (2017).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →