Отримання сегментів і підтвердження tcp

Рубрика: Мережеві протоколи

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

Порядковий номер послідовності в заголовку сегмента і номер підтвердження використовуються разом, щоб підтвердити отримання байтів даних, що містяться в сегментах. Порядковий номер послідовності є відносним числом байтів, які були передані в цьому сеансі плюс 1 (що дорівнює номеру першого байта даних в поточному сегменті). TCP використовує номер підтвердження в сегментах, відісланих тому до джерела, щоб вказати на наступний байт в цьому сеансі, який одержувач очікує отримати. Це називають підтвердженням з очікуваним значенням.

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

Пам'ятайте, що кожне з'єднання є фактично двома односторонніми сеансами. Порядковими номерами і числами підтвердження обмінюються в обох напрямках.

У прикладі на малюнку вузол зліва відправляє дані вузлу справа. Він відправляє сегмент, що містить 10 байтів даних для цього сеансу і порядковий номер в заголовку, що дорівнює 1.

Одержує хост справа отримує сегмент на Рівні 4 і визначає, що порядковий номер 1 і що у є 10 байтів даних. Вузол тоді відсилає сегмент назад до хосту зліва, щоб підтвердити отримання цих даних. У цьому сегменті вузол встановлює номер підтвердження 11, щоб вказати, що наступний байт даних, який він очікує отримати в цьому сеансі, є байтом номер 11. Відзначте, значення Ack. на вузлі джерела залишається 1, щоб вказати, що сегмент є частиною триваючого діалогу, і що поле Номери Підтвердження задіяно.

Коли передавальний вузол зліва отримує це підтвердження, він може тепер відправити наступний сегмент, що містить дані для цього сеансу, які починаються з байта номер 11.

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

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

Схожі статті