У з’єднанні TCP прапорці використовуються для вказівки певного стану з’єднання або для надання додаткової корисної інформації, як-от для усунення несправностей або керування певним з’єднанням. Найчастіше використовуються прапори SYN, ACK і FIN . Кожен прапор відповідає 1 біту інформації.
Типи прапорів:
- Синхронізація (SYN) – використовується на першому етапі встановлення з’єднання або в процесі тристороннього рукостискання між двома хостами. Лише перший пакет як від відправника, так і від одержувача повинен мати цей прапорець. Це використовується для синхронізації порядкового номера, тобто для того, щоб повідомити інший кінець, який порядковий номер він має прийняти. Підтвердження (ACK) – використовується для підтвердження пакетів, успішно отриманих хостом. Позначка встановлюється, якщо поле номера підтвердження містить дійсний номер підтвердження.
На наведеній нижче схемі одержувач надсилає ACK = 1, а також SYN = 1 на другому кроці встановлення з’єднання, щоб повідомити відправника, що він отримав свій початковий пакет.
Завершити (FIN) – використовується для запиту на припинення з’єднання, тобто коли більше немає даних від відправника, він запитує розірвання з’єднання. Це останній пакет, надісланий відправником. Це звільняє зарезервовані ресурси та акуратно завершує з’єднання.
Скидання (RST) – використовується для припинення з’єднання, якщо відправник RST вважає, що щось не так із з’єднанням TCP або що розмова не повинна існувати. Він може отримати надсилання з боку одержувача, коли пакет надсилається на певний хост, який його не очікував. Терміново (URG) – використовується для вказівки того, що дані, які містяться в пакеті, мають бути пріоритетними та терміново обробленими отримувачем. Цей прапорець використовується в поєднанні з полем Urgent Pointer для ідентифікації розташування термінових даних у пакеті. Push (PSH) – використовується для запиту негайної доставки даних на приймаючий хост, не чекаючи, поки додаткові дані будуть буферизовані на стороні відправника. Цей прапорець зазвичай використовується в таких програмах, як потокове аудіо або відео в реальному часі. Вікно (WND) – використовується для повідомлення відправнику розміру вікна отримання. Розмір вікна — це кількість даних, яку приймаючий хост здатний прийняти в будь-який момент часу. Відправник повинен обмежити кількість даних, які він надсилає, залежно від розміру вікна, яке повідомляє одержувач. Контрольна сума (CHK) – використовується для перевірки цілісності сегмента TCP під час передачі. Контрольна сума обчислюється для всього сегмента, включаючи заголовок і поля даних, і перераховується на кожному стрибку вздовж мережевого шляху. Порядковий номер (SEQ) – це унікальний номер, який відправник призначає кожному сегменту, щоб визначити порядок, у якому пакети повинні бути отримані одержувачем. Порядковий номер використовується в поєднанні з номером підтвердження для забезпечення надійної передачі даних і запобігання повторюваним пакетам. Номер підтвердження (ACK) – використовується для підтвердження отримання сегмента TCP і для передачі відправнику наступного очікуваного порядкового номера. Поле номера підтвердження містить порядковий номер наступного очікуваного сегмента, а не номер останнього отриманого сегмента.
Завершення (FIN) v/s Скидання (RST) –

- Push (PSH) – транспортний рівень за замовчуванням чекає деякий час, поки прикладний рівень надішле достатньо даних, що дорівнює максимальному розміру сегмента, щоб мінімізувати кількість пакетів, що передаються в мережі, що небажано для деяких програм, наприклад інтерактивних програм (чат). Подібним чином транспортний рівень на кінці приймача буферизує пакети та передає на прикладний рівень, якщо він відповідає певним критеріям.
Ця проблема вирішується за допомогою PSH. Транспортний рівень встановлює PSH = 1 і негайно надсилає сегмент на мережевий рівень, як тільки він отримує сигнал від прикладного рівня. Транспортний рівень одержувача, побачивши PSH = 1, негайно пересилає дані на прикладний рівень.
Загалом, він повідомляє одержувачу обробляти ці пакети в міру їх отримання, а не буферизувати їх.
Терміново (URG) – дані всередині сегмента з прапорцем URG = 1 негайно пересилаються на прикладний рівень, навіть якщо на прикладний рівень потрібно надати більше даних. Він використовується для сповіщення одержувача про необхідність обробки термінових пакетів перед обробкою всіх інших пакетів. Одержувач отримає сповіщення, коли всі відомі термінові дані будуть отримані.
Push (PSH) v/s Urgent (URG) –
