Чипы коммутации¶
CPU — Central Processing Unit¶
- Неограниченная гибкость
- Неограниченная функциональность
- Приемлемая цена
- Полный провал по производительности
Note
Впрочем, не без исключений: бывают, что и большие штуки коммутируют в CPU.
Программная маршрутизация на CPU¶
Но как бы производители программных решений ни продвигали идею, что “все можно сделать в софте”, однако скорости выше 500 Гбит/с пока что можно достигать только с помощью специализированных асиков.
И давайте ещё прикинем. Выдержка с сайта про VPP:
Tip
Recent testing of FD.io release 17.04 shows impressive gains in performance on Intel’s newest platform when switching and routing layer 2⁄3 traffic. With the prior generation Intel® Xeon® Processor E7-8890v3, FD.io testing showed aggregate forwarding rate of 480 Gbps (200 Mpps) for 4-Socket machine (using 4 of E7-8890v3 CPU configuration); however, the same FD.io tests run on two 2-Socket blades (e.g. a modern 2RU server) with the new Intel® Xeon® Platinum 8168 CPUs (using four of 8168 CPUs in two by two-socket configuration), within the same power budget, show increase of forwarding rate to 948 Gbps (400 Mpps) benefiting from the PCIe bandwidth increase of the new CPUs, and the overall decrease in cycles-per-packet due to CPU micro-architecture improvements.
Без обвязки. А ещё кушать электричества он будет как голодный шакал. Не самый дешёвый получится рутер. Зато гибкий.
ASIC — Application Specific Integrated Circuit¶
- Околонулевая гибкость
- Ограниченная функциональность
- Низкая цена
- Ультравысокая производительность
Область применения: почти любые коммутаторы и многие маршрутизаторы.
Note
Впрочем, не без исключений: Juniper в своей линейке маршрутизаторов MX многие годы использует ASIC Trio.Который, кстати, согласно книге об MX является на самом деле набором ASIC’ов:PFEs are made of several ASICs, which may be grouped into four categories:
- Routing ASICs: LU or XL Chips. LU stands for Lookup Unit and XL is a more powerful (X) version.
- Forwarding ASICs: MQ or XM Chips. MQ stands for Memory and Queuing, and XM is a more powerful (X) version.
- Enhanced Class of Service (CoS) ASICs: QX or XQ Chips. Again, XQ is a more powerful version.
- Interface Adaptation ASICs: IX (only on certain low-speed GE MICs) and XF (only on MPC3E)
FPGA — Field Programmable Gate Array¶
Русский термин - ПЛИС - Программируемая Логическая Интегральная Схема.
- Вполне удовлетворительная гибкость
- Вполне удовлетворительная функциональность
- Цена успешного полёта Апполона до Луны и обратно
- Отличная производительность
Однако за такую программируемость приходится дорого платить.
Область применения: POC или низкоскоростные решения для энтерпрайз-сегмента.
Note
Впрочем, не без исключений: собеседовался я как-то раз в контору, в которой модульную коробку для операторов собирали полностью на FPGA, включая фабрику.
У этого даже есть основания: задолго до появления Programmable ASIC’ов на FPGA можно было делать любую обработку пакетов. И даже через несколько лет после производства плисину легко перепрошить и получить поддержку новой функции.
Автору неизвестны вендоры, которые бы на ПЛИС сделали PFE на скорости более 100 Гбит/с, по всей видимости, потому что частная компания не обладает для этого достаточным капиталом.Однако, я слышал, что в процессе разработки ASIC возможен такой подход, когда сначала разрабатывается FPGA, программируется нужным образом, тестируется, а потом с неё делают слепок для производства ASIC. Но пруфов нет.
NP - Network Processor¶
- Отличная гибкость
- Отличная функциональность
- Цена весьма высокая
- Производительность весьма высокая
NP или NPU - Network Processor Unit.
Большим преимуществом является то, что писать программы для NP можно на С. Это значительно ускоряет процесс, кроме того, где-то можно переиспользовать код.
Область применения: маршрутизаторы агрегации и ядра.
Note
Впрочем, не без исключений: например Smart-NIC Netronome в начале своего пути использовал Intel IXP.
Programmable ASIC¶
- Приемлемая гибкость
- Ограниченная функциональность
- Низкая цена
- Ультравысокая производительность.