Протокол масштабируется до сетей датацентров и спроектирован для обеспечения предсказуемой высокой производительности, низких задержек, гибкости и расширяемости. Поддержка Falcon первой будет обеспечена в сетевых ускорителях серии Intel IPU E2000 (Infrastructure Processing Unit), сочетающих Ethernet-адаптер с программируемым процессором, на который можно выносить операции, обычно выполняемые на стороне сетевого стека или системы, такие как управление трафиком, контроль перегрузки и разбор высокоуровневых протоколов.
Для достижения низких задержек в высокоскоростных сетях Ethernet, допускающих потери пакетов, в Falcon используется три принципа: детальное измерение задержек между отправкой запроса и получением ответа (RTT, round-trip time), аппаратно реализованное урезание трафика в привязке к отдельным потокам и быстрая и точная повторная передача пакетов. Указанные свойства дополнены средствами для одновременного обращения по нескольким каналам (Multipath) и поддержкой шифрования соединений.
В реализации Falcon задействованы следующие технологии:
- Carousel — механизм ограничения трафика (Traffic Shaping), позволяющий регулировать пропускную способность и интенсивность потока пакетов в разрезе отдельных хостов.
- Snap — сетевая подсистема на основе микроядра, расширяемая при помощи модулей, через которые можно добавлять расширенную функциональность, например, добавлять функции сетевой виртуализации, ограничения трафика и доставки сообщений.
- Swift — механизм управления перегрузкой (Congestion Control) для сетей уровня датацентров, позволяющий добиться задержек менее 50 микросекунд для коротких RPC-сообщений в условиях поддержания пропускной способности 100Gbps на сервер при нагрузке близкой к 100%.
- RACK-TLP — алгоритм определения потери пакетов для TCP.
- PLB — механизм балансировки нагрузки, использующий сигналы о перегрузке. После внедрения PLB в сетях Google дизбаланс нагрузки на коммутаторы снизился на 60%, потери пакетов уменьшились на 33%, а задержки в доставке коротких RPC-сообщений снизились на 25%.
- CSIG (Congestion Signaling) — протокол обмена телеметрией, используемый для отправки сигналов о перегрузке и при управлении трафиком.
- PSP (PSP Security Protocol) — протокол шифрования трафика.
Falcon использует в качестве протоколов верхнего уровня RDMA и NVM Express, но также позволяет добавлять поддержку дополнительных протоколов верхнего уровня в форме расширений. Функциональность Falcon определена тремя уровнями: уровень для сопоставления с протоколами верхнего уровня (ULP Mapping), уровень транзакций и уровень доставки пакетов. На первом уровне выполняется управление потоком, обработка сообщений и сопоставление с верхними уровнями. На втором уровне осуществляется планирование, управление ресурсами и упорядочивание. На третьем уровне производится управление перегрузкой, ограничение трафика, поддержание надёжности и одновременное использование разных каналов (Multipathing).
Источник: http://www.opennet.ru/opennews/art.shtml?num=59949