Протокол TCP
Якщо два процеси бажають обмінюватись інформацією, відповідні програми протоколу TCP повинні спочатку встановити з’єднання (на кожному боці ініціалізувати інформацію про статус). По закінченню обміну інформацією з’єднання повинно бути розторгнуте чи закрите, щоб звільнити ресурсы для інших користувачів. Оскільки з’єднання повинні встановлюватися між ненадійними хост-комп’ютерами та через ненадійну комунікаційну систему Internet, то, щоб запобігти помилковій ініціалізації з’єднань, використовується механізм підтвердження зв’язку з хронометрованими номерами черги.
Приорітет та безпека
Користувачі протокола TCP можуть вимагати для своєго з’єднання приорітет та безпеку. Передбачені прийняті за замовчанням характеристики з’єднань, коли такі параметри не потрібні.
Склад та призначення полів заголовку
TCP-сегменти відправляються як IP-датаграми. Заголовок TCP, який йде за IP-заголовком, містить інформацію TCP-протоколу.
Source PortDestionation Port
Sequence Number
Acknowlegement Number
Data
OffsetReservedURGACKPSHRSTSYNFINWindow
ChecksumUrgent Pointer
OptionsPadding
Data
Мал. 1 Заголовок TCP-пакета
Source Port (16 біт). Порт відправника.
Destination Port (16 біт). Порт отримувача.
Acknowlegement Number (32 біта). Поле номера кадру підтвердженого отримання. Якщо пакет містить встановлений контрольний біт ACK, то це поле містить номер наступного пакета даних відправника, який очікує отримувач. При встановленому з’єднанні пакет підтвердження відправляється завжди.
Data Offset (4 біта). Поле величини зміщення даних. Воно містить кількість 32-бітних слів заголовку TCP-пакету. Це число визначає зміщення розташування даних у пакеті.
Reserved (6 біт). Резервне поле.
Прапори управління:
URG: Прапор терміновості