Sources:

Пост является вольным конспектом этих ресурсов. Направлен на самообучение путем структурирования информации.

Архитектура сетевых устройств

Screenshot 2023-06-25 at 22 23 20

  1. электрический или световой сигнал попадает через физический интерфес на устройство
  2. Обрабатывается в поток битов
  3. Вычленяются заголвки (парсинг - ethernet, mpls, ip и тд)
  4. Traffic manager - происходит обработка, решение куда послать, полисинг, буферезация, фильтры, qos и т д
  5. Происходит обратное превращение этого всего в биты
  6. Отправка на физические интерфей

    3,4,5 существует благодоря control plane, на котором работают протоколы маршрутизауии

    блок задач - чип преобразование в биты, работа с физикой - PHY - обычно это ASIC CONTROL PLANE - CPU + RAM Parser, Traffic management, Deparser (обработка заголовков, перенаправление трафика - Packet Forwarding Manager) - может быть Network Processor, FPGA, cпециализированный ASIC) Parser - TCAM, RAM,

Архитектрура модульных устройств

  • Back Plane
  • управляющий модуль
  • линейная карта/интерфейсный модуль
  • фабрика коммутации

### Фабрика Коммутации маршрутизатор операторского класса -> от 2х до десятков линейный/интерфейсхных карт -> минимум 1 FE на каждую Как соединить? - через транзитный элемент Screenshot 2023-06-26 at 19 08 04 По сути сборка тупых ASIC перенаправляющая ячейки. Часто фабрика коммутации подключены прямо в управляющий модуль.

Далее разбитие на ячейки, чтобы не было проблем по сбору. Ячейка маленькая, расстояние одинаковое, доходит за одно время, еще и пронумерована.

Типы чипов

Чипы

На сегодняшний день нет идеального варианта, поэтому для каждой цели ищется компромисс.

Чипы коммутации:

  • CPU - Central Process Unit
  • FPGA - Field Programmable Gate Array
  • ASIC - Application Specific Integrated Cirfcuit
  • NP - network processor
  • Programmable ASIC

Чипы памяти:

  • RAM - Random Access Memory
  • CAM - Content Access Memory
  • TCAM - Ternary Content Access Memory
  • Алгоритмический поиск

CPU - Central Process Unit

(+) неограниченная функциональность (+) неограниченная гибкость (+ -) цена (-) производительность

идея: все реализуется программно, инструкции в оперативной памяти, для каждого пакета поход в оперативку для изменения функционала: достаточно изменить программу область применения: домашние роутеры, firewall, control plane в маршрутизаторах

в современных процессорах реализуется программная маршрутизация и это уже заходит в область np - network processor но пока цены этого cpu большая и он еще будет кушать электричество

ASIC - Application Specific Integrated Circuit

(-) ограниченная функциональность (-) гибкость (+) производительность (+) цена идея: закодировано аппаратно в транзисторах изменения: нужно выпускать новый чип прогонка пакета - прогонка по транзистрорам обсласть применения: все коммутаторы, маршрутизаторы

FPGA - Field Programmable Gate Array (плис)

(+-) функциональность (+-) гибкость (-) цена (+) производительность идея: аппаратно сделаны блоки с готовой функциональностью, можно написать программу из блоков изменения: залитие новой прошивки (лучше чем делать новый чип, но хуже чем залитие программы область применения: энтерпрайз

NP - Network Processor

(+) гибкость (+) функциональность (+-) производительность достотачно высокая (-) цена достаточно высокая

как cpu только для сетевых задач несколько ядер - каждое для своего сегмента изменения: переписать код может в :

  • циклы
  • инкапсуляции
  • NAT
  • своп меток
  • код на С

производительность хуже чем у ASIC и FPGA используется в маршрутизаторах сети и аггрегации

Programmable ASIC

(+) достаточная гибкость (-) ограниченная функциональность (+) маленькая цена (+) очень высокая производительность

Чипы для датацентров

  • Broadcom (Jericho, Qumran etc)
  • Mellanox ( Spectrum/NVIDIA)
  • Intel

в датацентрах в основном все делится на edge, spine, leaf edge: MPLS, RSVP-TE, BGP, VPN и тд spine: молотилка трафика, может быть vxlan leaf: Qos, ACL, Vxlan

новые чипы выпускаются регулярно, соревнуясь в производительности так же популярным запросом стала телеметрия

Чипы памяти

RAM Random Access Memory

принцип - адрес ячейки значение

  1. хранятся все Soft table, синхронизируются с Hard Tables, передача данных происходит через Hard Tables, так как в RAM обращение CPU долго
  2. очереди, перед обработкой чипом пакет хранится в очереди есть несколько видов RAM, выбирают в зависимости от задач
    • SDRAM
    • DDR
    • HBM
    • GDDR5, GDDR6
    • HMC

CAM - Contetnt Address Memory

принцип: значение -> хэш -> ячейка памяти в RAM (Hard Tables -> выходной интерфейс) Сигнал идет на сравнивающие элементы одновременно, выдача значения за фиксированное время, дороже чем RAM из-за этих элементов хэш функция:

  • фиксированная длина и уменьшение значения 48 бит мак адресов в 16 бит
  • для одинакового значения один результат
  • все значения равновероятны
  • любая длина аргумента - фиксированное значение

    пример с адресом: Пришёл самый первый Ethernet-кадр на порт коммутатора. Коммутатор извлёк SMAC, вычислил его хэш. Данный хэш он записал в сравнивающие элементы CAM, номер интерфейса откуда пришёл кадр в RAM, а в саму ячейку CAM адрес ячейки в RAM. Выполнил рассылку изначального кадра во все порты. Повторил пп. 1-5 …. Заполнена вся таблица MAC-адресов. Приходит Ethernet-кадр. Коммутатор сначала проверяет, известен ли ему данный SMAC (сравнивает хэш адреса с записанными хэшами в CAM) и, если нет, сохраняет. Извлекает DMAC, считает его хэш. Данный хэш он прогоняет через все сравнивающие элементы CAM и находит единственное совпадение. Узнаёт номер порта, отправляет туда изначальный кадр.

TCAM Ternary Content Access Memmory

значения:

  • 0
  • 1
  • не важно хэш функция не используется (-) тепловыделение (ячейки - транзисторы - греются) (+) производительность (-) цена, раньше объем определял стоимость маршрутизаторв (-+) объем

Алгоритмический поиск

отдельный ASIC, реализующий поиск IP, с ним же рядом ставится RAM дешевле и лучше по тепловыделению

Архитектура сетевых ASIC

Cоставные компоненты

Screenshot 2023-06-30 at 12 57 26

отдельные компоненты (Ip-core) - разными производителями
например SerDes - Inphi
могут быть частью одного кристалла, напечатанного на плате
могут быть вынесены отдельно каждая
пример HBM
Juniper - 3 Asic

SerDes

частоты сетевых чипов - единицы ГГц сетевых интерфейсов - десятки ГГц надо понизить частоту путем распараллеливания сигнала - десереализация 2 пина делятся на несколько обратно так же - сериализация Скорость SerDes: обычно 10Гб/с 28, движемся в сторону 56, 112

методы модуляции

для SerDes 10 и 28 ГГц - NRZ - Non Return to Zero: положительное напряжение 1 , отрицательно 0
для 56ГГЦ и 112 ГГц - PAM-4 - Pulse Amplitude modulation: 4 уровня амплитуды - 2бита: 00, 01, 10, 11

Gearbox

для работы с разными модуляциями
“Использование гирбоксов также упростит вендорам и переход на 400G - не придётся менять ASIC - достаточно заменить/убрать гирбокс.”

PHY

восстановление битов из сигнала коррекция ошибок синхронизация и т д

расположение:

  • для RJ-45 - чип PHY - ASIC установленный на плате оптика - DSP PHY (на трансивере модуль)

Packaging, Advanced Packaging

Packaging - процесс запаковки кристалла в корпус WLP - Wafer Level packging - установка нескольких микросхем на одну вафлю чиплет интерпозер - электрическое соединение между чиплетами

HBM - high bandwith memory - широкие шины взаимодействия между чиплетам TSV - Through Silicon Via - микроскопические отверстия в кристале заполненные металлом HMC (Hybrid Memory Cube) - та же технология TSV, стек из DRAM пример Jericho 2 - HBM cоединена TSV и связана интерпозером Screenshot 2023-06-30 at 12 57 26

Архитектура сетевых ASIC логика

Screenshot 2023-06-30 at 17 29 05

MMU Memory Management Unit доступ к физической памяти
как память разделяется между интерфейсами
Занятость в каждый момент времени
Можно ли поместить пакет в буфер, в какой

TM - Traffic Manager
Qos Multicast
Пакет мултикаст - дублировние на количество чипов - запись информации в VOQ - дублирование на интерфейсы

pipeline - процесс доставки пакета от парсера до депарсера
возможен программируемый pipeline

Память и буферы

заголовки - в pipeline тело в буфере

Есть память на чипах - малого размедра (обычно до 100Mb) - On Chip Buffer остальная - внешняя - Deep Buffer

для управления внешней памятью используется MMU Management Memory Unit программа по указателю обращается к MMU -> MMU находит физические адрес ячейки и возвращает данные Функции

  • размещении
  • извлечении
  • отбрасывании
  • разделение и загрузка (dedicated, shared, headroom, voq)

2 подхода к размещению в буферах

  • store and forward
  • cut through

К слову на сегодняшний день для коммутаторов 2-го уровня время обработки в пределах устройства порядка 200нс, 3-го - 250нс. Для коммутаторов 1-го уровня (фактически патч-панель) это время - около 5 нс.

Перегрузки причины и места

разделение заголовков и тела пакета нужно также чтобы избежать перегрузок

Причины

  • вход > выхода (10g > 1g)
  • Incast (один узел отправляет запрос многим узлам и получает много ответов)
  • Burst
  • Backpressure (трафик с нескольких входных портов в один выходной)

    Места перегрузки:

    • входной чип (приходит больше чем может)
    • фабрика коммутации (если устройство модульное, несколько линейных карт)
    • выходная линейная карта (фабрика передает больше чем можно)
    • выходной интерфейс (чип передает больше чем интерфейс способен десериализовать

    Решения

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

Архитектура буфероф

Crossbar

Screenshot 2023-06-30 at 23 38 00

Shared

Screenshot 2023-06-30 at 23 38 50

  • используется в немодульных устройствах с одним чипом (OCB - On Chip Buffer)

Dedicated + Shared

Dedicated - выделена под каждый порт, другой порт не может использовать
Shared - общая (-) при перегрузе может не хватить памяти тому порту которому надо было совсем чуть-чуть (соревнование между портами)

Dedicated + Shared + HeadRoom

Пример: два вида трафика RoCe и репликация бд Roce - lossless трафик При заполнении shared boofer коммутатор отправляет pause отправителю пришедший roce трафик помещается в headroom buffer а репликационный отбрасывается

Segregated Buffer

Пример: Broadcom Trident и Tomahawk группировка портов по 4-8 каждой группе - кусок общего буфера группа не может лезть в чужие куски порт берет память только из своего куска

Admission control

функция - можно ли записывать пакет в буфер виды

  • Ingress - какую комнату выделить для 1 порта и можно ли на него выделить еще чтобы не обделить других (справедливое использование памяти)
  • Egress - регуляция вспелсков - чтобы несколько портов не заполнили весь буфер объем памяти выделяемой на порт определяется порогом (статическим или динамическим alpha)

    Alpha

    • сколько общей памяти свободно
    • сколько отдать под порт регион (терминология Melanox) - входящий порт, priority входящего порта, выходной порт, traffic class для каждого региона alpha
      threshold = alpha * Free buffer
      

      пример 32 порта alpha = 1/64, при максимальной загрузке только половина памяти 1/32 - вся 1/16 - порт может получить большую часть

Output Queuing

расположение буфероф перед выходными интрефейсами приходят на Egress PFE чтобы умирать (-) бесполезная загрузка фабрики коммутации

Screenshot 2023-07-01 at 18 28 46

Input Queuing

буферы после лукапа, после того как становится понятно куда посылать пакет (-) а если выходной порт занят, придется подождать

Screenshot 2023-07-01 at 18 42 11

арбитр
коммуникация между входной и выходной линейной платой
входная регулярно отправляет запрос можно ли отправлять данные, выходная отвечает grant
оптимизация (RTT внутри коробки) - отправка запросов с данными

Combined Input & Output Queuing (CIOQ)

арбитр проверяет загруженность выходного буфера а не интерфеса минусы

  • два буфера -> увеличивается цена
  • увеличивается задержка
  • QoS в двух местах

Screenshot 2023-07-01 at 18 56 47

проблема для CIOQ и IQ:
Head of Line Blocking машина поворачивающая налево блокирует движущиеся прямо выходной интерфейс один и затор на нем блокирует продвижение

VOQ - Virtual Output Queue

1 интерфейс на выход - 8 очередей 10 интерфейсов на коммутаторе - 80 очередей n линейных карт n108 очередей на одну виртуальную очередь FIFO приходится n очередей - поэтому работа арбитра все равно необходима

Screenshot 2023-07-01 at 22 02 03

Combined Input Output Queiung (CIOQ) with VOQ

(-) недостаток размещения памяти в двух местах - цена и потребление энергии больше (+-) Head of Line Block - ecли трафик идет на два порта находящиеся за одним NLP

Screenshot 2023-07-01 at 22 13 31

Сравнение

Screenshot 2023-07-01 at 22 20 02

Shallow Buffers and Deep Buffers

Shallow Buffers обычно до 100 мб расположены на чипе on chip buffers deep buffers - внешняя память Arista 7280QR - 32 Гб Juniper PTX, QFX10000 - чип Q5 - HMC - Hybrid Memory Cube - 4 Гб Broadcom Jericho+ - GDDR5 4 гб Broadcom Jericho2 - HBM2 - 8 Гб шина от ASIC до памяти - узкое место - определяет производительность чипа c развитием WLP Deep Bufer может быть рядом с чипом но интерпозер все равно узкое место

Hybrid Buffers

нормальные условия - память на чипе перегрузка - внешняя память спрос на большие буфера - не хочется потерь TCP Congeastions Control - ориентируется на потери как на метрику перегрузок
может возникнуть BloatBuffer

современные реализации TCP BBR2 Timely - ориентируются на RTT так же как на метрику

Но большие буферы все-таки оправданы в ситуациях:

  • граница датацентра - ситуация где трафика приходит больше чем интерфейс может обработать ожидаема
  • кластеры с Master узлом - ситуция Incast - 1 хост получает много ответов
  • Storage - гоняются большие массивы данных, лучше не терять

Low Latency Lossless сети

принцип: не отбрасывать пакет, а сообщить отправителю о перегрузке

ECN based (Explicit Congestion Notification)

в IP пакете - 8 бит под QOS 6 бит под DSCP, 2 бита под ECN принцип: транзитное устройство перед перегрузкой отправляет ECN отправителю


<
Previous Post
BGP
>
Next Post
Books