Реалізація режиму гарантованої доставки

Для забезпечення гарантованої доставки протокол TCP використовує механізм відправки підтвердження. З метою зниження завантаження мережі протокол TCP допускає посилку одного підтвердження відразу для декількох одержаних сегментів. Об'єм даних, які можуть бути передані в мережу відправником до отримання підтвердження, визначається спеціальним параметром протоколу TCP — розміром вікна.

Розмір вікна узгоджується при встановленні з'єднання між відправником і одержувачем і може автоматично змінюватися програмними модулями протоколу TCP залежно від стану каналу зв'язку. Якщо в процесі передачі даних втрати відбуваються достатньо часто, то розмір вікна зменшується, і навпаки — вікно може мати великий розмір, якщо висока надійність каналу даних.

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

Встановлення з'єднання

Перед початком передачі потоку даних абоненти повинні погоджувати параметри передачі: розмір вікна і початкові номери послідовностей, щодо яких відлічуватиметься положення передаваних в сегментах даних всередині загального потоку. Очевидно, що таке узгодження припускає обмін спеціальними сегментами і виділення ресурсів, зокрема, блоків пам'яті, необхідних для прийому і обробки даних і підтверджень. Відповідна послідовність дій називається встановленням віртуального з'єднання.