Компания Google объявила об открытии технологии передачи данных Falcon (hardware transport, аппаратно ускоренный транспортный уровень) и перевода её дальнейшей разработки в проект Open Compute, нацеленный на совместное развитие открытых спецификаций оборудования для оснащения датацентров. Falcon преподносится как Ethernet следующего поколения, способный повысить пропускную способность и увеличить эффективность передачи данных в существующих стандартных сетях на базе Ethernet и TCP/IP, критичных к пропускной способности и задержкам, таких как сети для систем высокопроизводительных вычислений и искусственного интеллекта.
Протокол масштабируется до сетей датацентров и спроектирован для обеспечения предсказуемой высокой производительности, низких задержек, гибкости и расширяемости. Поддержка 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).