Large segment offload

У комп'ютерних мережах large segment offload (LSO) це спосіб збільшення вихідної пропускної спроможності мережевого інтерфейсу і зниження навантаження центрального процесора. У віртуальному середовищі це особливо актуально, так як дозволяє витрачати істотно менше ресурсів процесора на обробку TCP / IP -Операція.

Такий спосіб носить назву TCP segmentation offload (TSO) в застосуванні до TCP або generic segmentation offload (GSO) (на рівні мережного інтерфейсу)

LSO є частиною технології, інша частина називається large receive offload (LRO) і відповідає за дефрагментацію прийнятих пакетів.

Коли операційній системі необхідно відіслати великий обсяг даних по мережі, то спочатку відбувається поділ усього обсягу на невеликі сегменти, які можуть бути передані через всі вузли мережі (маршрутизатори, комутатори та ін.), Що розділяють два хоста, які здійснюють обмін даними. Зазвичай сегментація здійснюється на рівні TCP і мережевого інтерфейсу передаються вже сегментовані дані, цей процес називається TCP segmentation offload (TSO).

Наприклад, необхідно передати пакет в 64 Кб, який за замовчуванням буде розділений на 46 сегментів по тисячі чотиреста сорок вісім байтів, які будуть безпосередньо передані через мережевий інтерфейс по мережі до вузла призначення. Сучасні мережеві інтерфейси можуть самостійно фрагментировать пакети без участі CPU за допомогою технології generic segmentation offload (GSO). Іншими словами, якщо необхідно передати 64 Кб даних, то ці дані одним запитом передаються на мережевий інтерфейс, де здійснюється фрагментація і подальша відправка даних. Таким чином відбувається зменшення використання ресурсів CPU для сегментації пакетів.

Деякі мережеві інтерфейси підтримують більш сучасний механізм TCO, який можна використовувати для протоколів, які не підтримують фрагментацію, наприклад для UDP.