Серверные сети

TCP Segmentation Offload (TSO)

Определение

TCP Segmentation Offload (TSO) — механизм, при котором сетевая карта делит крупный TCP-буфер Linux на несколько кадров перед отправкой. Размер сегментов задаётся в метаданных буфера.

Также ищут: TSO · TCP Segmentation Offload · аппаратная сегментация TCP

Зачем это знать

TSO переносит сегментацию TCP на устройство, но не работает изолированно от остальных функций передачи. В Linux он зависит от partial checksum offload и обычно отключается вместе с TX checksum offload.

Связи из словаря

Карта понятия

TCP Segmentation Offload (TSO)
Доказательная часть

Что подтверждено

  1. При TSO устройство получает один сетевой буфер и делит его на несколько кадров; размер полезной нагрузки сегментов задаётся значением gso_size.

    Граница применимости: Linux 6.12 segmentation offloads documentation; утверждение описывает TCP segmentation path.

  2. Для запроса TCP-сегментации Linux помечает буфер типом SKB_GSO_TCPV4 или SKB_GSO_TCPV6 и задаёт ненулевой gso_size.

    Граница применимости: Linux 6.12; это внутренние метаданные сетевого буфера, а не пользовательская настройка NIC.

  3. TSO зависит от partial checksum offload; поэтому в Linux TSO обычно отключается, если для устройства отключён TX checksum offload.

    Граница применимости: Linux 6.12; документ говорит normally disabled, поэтому это не сформулировано как безусловный запрет для любой реализации.

  4. Для TSO драйверу нужны корректные смещения сетевого и транспортного заголовков, а режим CHECKSUM_PARTIAL должен указывать на контрольную сумму TCP.

    Граница применимости: Linux 6.12 TSO; детали относятся к взаимодействию сетевого стека и драйвера.

Перед спецификацией

Что проверить

  1. Проверьте отдельно состояние TSO и TX checksum offload: эти функции связаны.
  2. Не путайте TSO с GSO: TSO выполняет сегментацию на устройстве, GSO — программно в Linux.
  3. После изменения offload-настроек измерьте загрузку CPU, задержку и пропускную способность под целевой нагрузкой.
Открытые основания

Первоисточники

  • Документация1
  • Официальная документация
    Segmentation Offloads Linux Kernel · Linux 6.12 documentation · проверено

    TSO, GSO и GRO: кто выполняет сегментацию, зависимость TSO от partial checksum offload и взаимосвязь GSO/GRO.

Следующий шаг

Сформулируйте задачу и уточните требования к своей системе.

Подготовить подбор с Делектусом

Откроется черновик вопроса. Отправьте его, когда будете готовы.

Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие