Функціонування протоколу ТСР

Функціонування протоколу ТСР

У цьому розділі будуть розглянуті структура сегмента ТСР, механізми встановлення з'єднання, передачі даних і ліквідації з'єднання. Формат ТСР сегмента представлений на слайді. Його заголовок містить 20-байтную фіксовану частину і опциональную частина змінної довжини.

«Порт джерела» і «Порт призначення» - визначають передавальне і приймальне додатки, відповідно.

«Порядковий номер сегмента» - визначає позицію першого байта даних сегмента в байтовому потоці джерела при значенні прапора SYN = 0 (в режимі передачі даних). Нагадаємо, що ТСР нумерує байти, а не сегменти і якщо порядковий номер поточного сегмента дорівнює 567, а поле даних містить 12 байт, то наступний сегмент матиме порядковий номер 579. У режимі встановлення з'єднання, коли прапор SYN встановлений в 1, в цьому полі міститься початковий номер послідовності номерів байтів даного потоку (ISN - initial sequence number); значення номера першого байта даних цього потоку буде ISN + 1. Відзначимо також, що з'єднання ТСР є дуплексними і в кожному з напрямків передачі встановлюється своя нумерація.

«Порядковий номер підтвердження» - це поле в режимі з встановленим прапором ACK (режим передачі даних) містить порядковий номер байта даних, який передавальний модуль очікує отримати від приймального вузла; тим самим підтверджується правильність прийому всіх попередніх байтів. В режимі встановлення з'єднання (ACK = 0) значення цього поля не враховується.

«Зсув даних» - поле визначає довжину заголовка сегмента в 32-бітових словах; ця інформація дозволяє приймального модулю визначити початок поля даних, тому що заголовок може містити опціональне поле змінної довжини.

«Резерв» - поле в даний час не використовується і заповнюється нулями.

«Контрольні біти» - поле довжиною 6 біт, кожен з яких є прапором; їх послідовність і зміст наступні:

URG - прапор терміновості передачі сегмента

ACK - прапор вказує на достовірність значень в поле «Порядковий номер підтвердження»

PSH - включена функція «проштовхування» сегмента, тобто модуль ТСР повинен передати сегмент з додатком негайно

RST - вказівка ​​приймального модулю розірвати з'єднання через якихось аномалій; використовується для перезавантаження з'єднання

SYN - прапор встановлення з'єднання, синхронізації порядкових номерів сегментів

FIN - прапор, індиціюється, що у передавального модуля немає даних для передачі; передавальний додаток залишається в з'єднанні з прийомним і приймає дані останнього.

«Розмір вікна» - поле опрделяет кількість байтів, яке модуль TCP може прийняти (Wa).

«Покажчик терміновості» - значення цього поля при встановленому прапорі URG, будучи доданим до значення поля «Порядковий номер сегмента», определяетпоследній байт термінових даних. Покольку приймальний модуль ТСР передає додатком байти строго по порядку, то все байти, що містяться в приймальному буфері, аж до байта з певним, як зазначено вище номером, будуть розглядатися як термінові.

«Опції» - поле використовується для визначення інших, не передбачених заголовком, функцій. Так наприклад, це поле часто використовується для визначення максимального розміру сегмента (maximum segment size - MSS). При використанні протоколу в високошвидкісних мережах це поле використовується для завдання таких параметрів як «Коефіцієнт масштабування вікна» (до 2 14) і «Тимчасова мітка». Останні важливі в ситуації коли повний цикл нумерації байт може бути пройдений за час існування з'єднання. Наявність тимчасових міток в кожному сегменті дозволяє також обчислити час повного обороту (RTT).

Тепер розглянемо роботу протоколу в різних фазах життя з'єднання.

Схожі статті