Transmission Control Protocol, TCP (укр. Протокол управління передачею) — разом із протоколом IP є стрижневим протоколом Інтернету, який дав назву моделі (TCP/IP). Протокол призначений для керування передаванням даних у комп'ютерних мережах, працює на транспортному рівні моделі OSI.
На відміну від іншого поширеного протоколу транспортного рівня UDP, TCP забезпечує надійне доправляння даних від хоста-відправника до хоста-отримувача, для цього встановлюється логічний зв'язок між хостами. Таким чином TCP належить до класу протоколів [en].
TCP отримує потоки даних від протоколів верхніх рівнів OSI-моделі, початковим джерелом яких є протоколи прикладного рівня, такі як HTTP, FTP та інші. Кожний протокол верхнього рівня має свій визначений TCP-порт.
TCP розбиває конкретний потік даних на порції, та додає до кожної з них заголовок з номером послідовності. Отримані таким чином порції даних традиційно називаються TCP-сегментами. Далі кожний сегмент інкапсулюється в IP-пакет і передається через IP-протокол до хоста-отримувача.
Після надходження IP-пакету до хоста-отримувача перевіряється коректність отриманих даних у TCP-сегменті, методом перерахування контрольної суми, та переконується, що попередні сегменти даних також були успішно отримані. Після чого хост-отримувач надсилає запит до хоста-відправника про нову, або повторне передавання порції даних, що одночасно є підтвердженням того, що всі сегменти з номерами послідовності, меншими ніж номер нового запиту, були успішно отримані.
У свою чергу TCP-сегменти деінкапсулюються з IP-пакетів, розміщуються в правильному порядку та з них вилучаються TCP-заголовки. Отриманий таким чином потік даних передається до того протоколу верхнього рівня, з якого первісно надійшли дані на стороні хоста-відправника.
Історія створення
Піонером у розробці сучасних комп'ютерних мереж вважається Агентство передових оборонних дослідницьких проектів США, (DARPA, Defense Advanced Research Projects Agency) зі своєю розробкою - мережею ARPANET запущеною у 1969 році.
Появою протоколу вважають 1974 рік, коли інститут інженерів з електротехніки та електроніки опублікував роботу «Протокол для пакетної мережевої комунікації (A Protocol for Packet Network Intercommunication)», авторами якої були Вінтон Серф та Роберт Елліот Кан. У цій праці TCP було абревіатурою від Transmission Control Program (програма керування передаванням).
TCP-сегмент
Блок даних ([en], Protocol data unit) TCP називається сегментом, хоча часто також використовують слово пакет, але таке вживання може вносити плутанину з IP-пакетом.
TCP-сегмент складається із TCP-заголовка і поля Дані (Data), яке називають сегментом даних або пейлодом або [en].
Стандартний розмір TCP-заголовка — 20 байт, але з використанням опцій розмір може зростати до 60 байт. Як правило, опціями хости обмінюються на етапі встановлення з'єднання.
Розмір сегменту даних (поля даних) визначається опцією MSS (Максимальний розмір сегменту, Maximum segment size) на етапі встановлення з'єднання. Якщо обміну опціями не відбулося, то розмір сегменту даних встановлюється за замовчуванням 536 байт. Розмір сегменту даних тісно пов'язаний з MTU (Максимальний розмір блоку пересилання). Фактично MSS дорівнює MTU з відніманням розміру IP- і TCP-заголовків. Наприклад у сучасній мережі Ethernet MTU дорівнює 1500 байт; тоді оптимальний розмір MSS буде 1460 байтів (1500 мінус 20 байт заголовка IP і 20 байт заголовка TCP).
Октет (Байт) | 0 | 1 | 2 | 3 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Біт | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | |
0 | 0 | Порт джерела (Source port) | Порт призначення (Destination port) | ||||||||||||||||||||||||||||||
4 | 32 | Номер послідовності (Sequence number) | |||||||||||||||||||||||||||||||
8 | 64 | Номер підтвердження (Acknowledgment number) | |||||||||||||||||||||||||||||||
12 | 96 | Зміщення даних (Data offset) | Зарезервовано (Reserved) 0 0 0 | N S | C W R | E C E | U R G | A C K | P S H | R S T | S Y N | F I N | Розмір вікна (Window Size) | ||||||||||||||||||||
16 | 128 | Контрольна сума (Checksum) | Показник важливості (Urgent pointer) | ||||||||||||||||||||||||||||||
20 … 56 | 160 ... 448 | Опції (Options) необов'язкове, розмір залежно від значення поля «Зміщення даних» | |||||||||||||||||||||||||||||||
20+ … | 160+ … | Дані (Data) |
Поля заголовка
Порт джерела
- 0 — 15 біти. Порт джерела (Source port) ідентифікує номер TCP-порту, з якого відправляється сегмент.
Порт призначення
- 16 — 31 біти. Порт призначення (Destination port) ідентифікує номер TCP-порту, на який відправляється сегмент.
Див. також список номерів TCP- та UDP-портів.
Номер послідовності
- 32 — 63 біти. Номер послідовності (Sequence number) є числом, що відображає номер першого байту в сегменті надісланих даних від хоста-відправника до хоста-отримувача. Це число є акумулювальним, тобто поточний номер послідовності є сумою номера послідовності попереднього сегменту і кількості даних (в байтах) відправлених у ньому. Використовується для відстежування кількості та правильної послідовності отриманих сегментів даних.
Номер підтвердження
- 64 — 95 біти. Номер підтвердження (Acknowledgment number) фактично є запитом від хоста отримувача на надіслання нового сегменту даних починаючи зі вказаного номера. З іншого боку, коли хост відправник отримує це повідомлення, він переконується, що всі сегменти даних з номерами послідовності меншими за номер підтвердження були успішно прийняті отримувачем.
Зміщення даних
- 96 — 99 біти. Зміщення даних (Data offset) 4-бітний номер, який визначає розмір TCP-заголовка в 32-бітових словах. Мінімальний розмір становить 5 (0101) слів, а максимальний — 15 (1111), що є відповідно 20 і 60 байт. Фактично визначає розмір поля Опції (Options) від 0 до 40 байт.
Зарезервовано
- 100—102 біти, зарезервовані для майбутнього використання і повинні містити нулі (000).
Прапорці (керуючі біти)
Це поле містить бітові прапорці, з яких шість основних описані в RFC 793 з 106 по 111 біт, два прапорці додані до заголовка в RFC 3168, розміщуються в 104 і 105 бітах заголовка, в 103 біті знаходиться експериментальний прапорець згідно з RFC 3540. Прапорці вважається встановленими, якщо їх бітове значення є 1.
- 103 NS — Одноразова сума (Nonce Sum), використовується з метою покращення роботи механізму явного повідомлення про перевантаження (Explicit Congestion Notification, ECN).
- 104 CWR — Вікно перевантаження зменшено (Congestion Window Reduced), прапорець встановлюється, щоб показати що TCP-сегмент був отриманий зі встановленим полем ECE, іншими словами це є підтвердженням отримання сегменту даних з прапорцем ECE від хоста партнера.
- 105 ECE — ECN-Ехо (ECN-Echo), поле показує, що відправник підтримує ECN.
Основні:
- 106 URG — Важливість (Urgent), вказує, що TCP-сегмент містить важливі дані. Коли до хоста-отримувача надходить сегмент зі встановленим прапорцем URG, TCP відправляє важливі дані з цього сегменту, які знаходяться завдяки полю покажчик важливості до відповідного протоколу верхнього рівня минаючи чергу і без перевірки успішності надходження попередніх сегментів.
- 107 ACK — Підтвердження (Acknowledge) успішності отримання TCP-сегменту
- 108 PSH — Просування (Push), також як і прапорець URG, вказує, на пріоритетність TCP-сегменту. Хост-відправник позачергово надсилає цей сегмент даних через IP-мережу. За аналогією з прапорцем URG, PSH інструктує хост-отримувач, що сегмент даних має бути негайно переданий до прикладного рівня (кінцевого споживача даних).
- 109 RST — Обривання (Reset) вказує, хосту-отримувачу негайно скинути з'єднання без подальшої взаємодії. Така ситуація наступає у разі, якщо сервер (хост-відправник) не надає послуги визначеного сервісу. Наприклад клієнт (хост-отримувач) запросив у вебсерверa послуги у форматі протоколу HTTPS (TCP-порт 443), але вебсервер надає послуги лише у форматі HTTP (TCP-порт 80). Ця властивість TCP часто використовується хакерами для сканування портів мережі жертви.
- 110 SYN — Синхронізація (Synchronize) використовується для встановлення з'єднання між хостами при так званому триходовому [en]
- 111 FIN — Фініш (Finish) вказує на завершення з'єднання.
Розмір вікна
- 112—127 біти. Розмір вікна (англ. Window Size) визначає кількість байтів даних, які відправник може надіслати до того, як отримає підтвердження (запит на новий сегмент) від хоста-отримувача На практиці це означає, що хост-відправник може надсилати певну кількість сегментів даних без отримання підтвердження від хоста-отримувача. Розмір вікна TCP вираховує на основі максимальної пропускної здатності (англ. bandwidth) лінії зв'язку між хостами (фактично це є пропускна здатність відрізка шляху з її найгіршим значенням) та загальній [en] (англ. latency) (часу потрібному на доставку сегмента) на всьому шляху.
Контрольна сума
- 128—143 біти. Контрольна сума (Checksum) розраховується на основі усього TCP-сегменту включно із заголовком та важливих полів IP-пакета: IP-адрес хостів відправника та отримувача, [en] (TCP має номер 6) та загального розміру IP-пакету. Контрольна сума забезпечує можливість перевірки цілісності надісланих даних.
Показник важливості
- 144—159 біти. Покажчик важливості (Urgent pointer). Поле береться до уваги тільки в разі встановленого прапорця URG, та містить значення зміщення відносно номера послідовності сегменту. Фактично це число вказує на позицію в TCP-сегменті де закінчуються важливі дані. Тобто важливі дані знаходяться одразу після TCP-заголовка і закінчуються перед місцем на яке вказує покажчик важливості.
Опції
- 160—479 біти. Опції (Options) необов'язкове поле, розмір якого визначається в залежності від значення поля зміщення даних та є кратним 8 (одному байту). Кожна опція в свою чергу складається з 3-х полів: Номер (kind) — 1 байт, Довжина (length, вказує на загальний розмір опції в байтах) — 1 байт, Дані (data) в залежності від поля довжина. Опції використовується для обміну додаткових параметрів між хостами з метою покращення функціонування протоколу TCP. Частіше за все це поле включає наступні опції:
- MSS (Максимальний розмір сегменту, Maximum segment size), RFC 793, номер — 2, довжина — 4. Опція максимальний розмір сегменту визначає максимальний розмір поля Дані в TCP-сегменті тобто кількість даних які можуть бути поміщені в один сегмент при їх передаванні між хостами.
- Масштабування вікна (Window scale), RFC 7323, номер — 3, довжина — 3, слугує для збільшення значення TCP-вікна, максимальне значення цієї опції є 14. Новий розмір TCP-вікна вираховується по формулі: розмір вікна * 2n, де n є значення опції масштабування вікна. Стандартний максимальний розмір вікна відображається 16-ти бітовим числом, тобто може мати максимальне значення — 65535 (64 Кб), використовуючи опцію масштабування вікна з максимально допустимим значенням 14, отримуємо 65535 * 214 = 65535 * 16384 = 1073725440 (1 Гб). Великі значення TCP-вікна використовуються коли на шляху пакетів із TCP-сегментами зустрічаються WAN-лінки зі значними максимальними пропускними здатностями (bandwidth) та великими [en] (latency).
- Вибіркові підтвердження (Selective Acknowledgments, SACK), RFC 2018, номер — 2, довжина — від 4 байт — верхня межа варіюється, як правило містить у собі два 2-х байтних поля даних. Мета її введення є покращення ефективності роботи TCP, як відомо TCP для передавання сегментів даних використовує протокол IP, який є протоколом [en], тобто доправлення пакетів з TCP-сегментами не є гарантованим, допускається, що частина IP-пакетів може бути втрачена. В свою чергу TCP забезпечує надійне доправляння даних, що базується на механізмі надсилання номерів підтвердження (acknowledgment number). Якщо якийсь сегмент від відправника до отримувача не надійшов у встановлений час то ініціюється повторне передавання починаючи зі втраченого сегменту, навіть якщо TCP-сегменти з номерами послідовності більшими за номер втраченого сегменту були успішно отримані. Механізм вибіркового підтвердження дозволяє ретранслювати лише втрачені сегменти даних, чим суттєво покращує ефективність роботи TCP.
- Мітки часу (Timestamps), RFC 7323, номер — 8, довжина — 10, містить у собі два 4-х байтних поля Значення мітки часу (Timestamp Value) та Ехо-відповідь мітки часу (Timestamp Echo Reply). Як правило хости обмінюються значеннями міток часу на етапі встановлення з'єднання. За допомогою міток часу TCP визначає скільки потрібно часу на доправлення сегментів між хостами. На основі цих значень встановлюються TCP-таймери відповідальні на стороні хоста-відправника за повторне передавання даних, якщо підтвердження отримання не надійшло у встановлений час, а у разі використання опції вибіркового підтвердження хост-отримувач самостійно ініціює запит на повторне пересилання конкретного сегменту даних.
Якщо деякий простір поля Опції лишається незаповненим то він заповнюється спеціальною опцією NOP (No-Operation, нічого не робити), RFC 793, номер — 1, довжина — відсутня.
TCP-порти
Поняття порт (port) є ключовим у протоколі TCP. Порт з точки зору операційних систем називається сокетом (socket) процесу. Іншими словами це програмний інтерфейс для забезпечення обміну даними між процесами.
Для розуміння поняття порту з точки зору комп'ютерних мереж легко провести аналогію з роботою звичайної пошти. Коли ви відправляєте листа, то заповнюєте поля Куди: адреса будинку і Кому: людина, яка проживає у цьому будинку. У мережі Інтернет на питання Куди: відповідає IP-протокол, тобто це є IP-адреса хоста, а на питання Кому: відповідає TCP-протокол (або інший протокол транспортного рівня), тобто це номер протоколу прикладного рівня (процес, що відповідає за цей протокол з точки зору операційної системи), який «мешкає» за вказаною IP-адресою хоста. За аналогією зі звичайною поштою ви можете направити 2-а листа 2-м різним людям, які живуть в одному будинку, в Інтернеті ви можете направити TCP-сегменти 2-м різним протоколам прикладного рівня за однією і тією ж самою IP-адресою. Звичайно треба заповнити і зворотню адресу.
В Інтернеті широко вживається форма запису : ip-адреса: порт.
Команда netstat -n може показати наступне:
192.168.1.31:54132 198.35.26.96:443 192.168.1.31:54138 198.35.26.96:22
Тобто якийсь хост з локальної мережі (використовує приватну IP-адресу) має одночасно з'єднання з сервером в глобальній мережі Інтернет з ip-адресою 198.35.26.96 [ 18 вересня 2016 у Wayback Machine.] по портам 443 (протокол HTTPS) та 22 (протокол SSH).
За надання і використання портів відповідальна IANA, хоча на практиці на відміну від використання IP-адрес це правило не завжди дотримується. Наприклад нічого не заважає адміністраторам 2-х хостів домовитися передавати, якийсь тип IP-трафіку по порту 80, який є закріплений за протоколом http і є відкритим на більшості файрволів.
TCP-заголовок має 16-бітові поля порт джерела та порт призначення, які можуть приймати значення від 0 до 65535.
Порти поділяються на категорії:
- Загальновідомі (well-known), діапазон номерів 0 — 1023. Як правило це порти, які використовують протоколи прикладного рівня (TCP/IP) стеку затверджені IETF, згідно з принципами відкритого стандарту. Наприклад: HTTP порт −80, HTTPS — 443, SMTP — 25, Telnet — 23, SSH — 22.
- Зареєстровані (registered), діапазон номерів 1024 — 49151. За задумом, ці порти призначаються для протоколів різних виробників програмного забезпечення, які мають їх зареєструвати в IANA. Наприклад ігровий сервіс Xbox Live використовує зареєстрований порт 3074. На практиці багато портів у цьому діапазоні використовуються без офіційної реєстрації.
- Динамічні (приватні, ефемерні, dynamic, private, ephemeral), діапазон номерів 49152-65535. IANA не реєструє ці порти. Використовуються, як правило хостами-клієнтами, для встановлення TCP-з'єднань з хостами-серверами. Як у прикладі вище, коли клієнт з IP-адресою 192.168.1.31 встановив 2 з'єднання зі сервером 198.35.26.96, на стороні клієнта використовуються динамічні порти 54132 та 54138, а на стороні сервера загальновідомі порти 443 (протокол HTTPS) та 22 (протокол SSH).
TCP-сесія
Завданням протоколу, як випливає з його назви («протокол керування пересиланням»), є контроль надійного передавання даних між хостами, для забезпечення цього між хостами [en], яке зветься TCP-сесією. Протокол TCP працює у форматі архітектури клієнт-сервер. Хост який надсилає запит на отримання сервісу є клієнтом, той хто відповідає на запит зветься сервером. Хости зв'язуються один з одним за TCP-портами, на стороні клієнта це, як правило, динамічний порт, а на стороні сервера це загальновідомий або зареєстрований порт, номер якого відповідає протоколу прикладного рівня. Номери портів та значення інших параметрів заносяться до заголовка TCP-сегменту.
Тут під терміном сервер (server) розуміють комп'ютер під управлінням операційної системи, який має доступ до IP-мережі та надає послуги одного чи декількох сервісів прикладного рівня. В свою чергу на сервері-комп'ютері встановлені спеціальні сервер-програми, які забезпечують роботу протоколів прикладного рівня. Таким чином, якщо це вебсервер, то на ньому мусить бути встановлена одна із таких програм, як наприклад: Apache HTTP Server. На практиці сервер-комп'ютер надає послуги відзразу декількох сервісів, тобто на ньому може бути встановлено більше однієї сервер-програми, що забезпечують роботу декількох протоколів прикладного рівня. Наприклад сервер-комп'ютер може бути одночасно вебсервером і FTP-сервером та забезпечувати роботу протоколів HTTP, HTTPS та FTP.
Важливо розуміти, що протягом TCP-сесії дані надсилаються в обох напрямках, як від сервера до клієнта так і від клієнта до сервера, тобто створюються два потоки даних. Причому не завжди більший потік даних прямує від сервера до клієнта.
Кожна окрема сесія роботи протоколу ТСР може бути поділена на три фази:
- Встановлення з'єднання
- Передавання даних
- Закінчення з'єднання
Встановлення з'єднання
Необхідною умовою для встановлення ТСР-сесії є відкритий доступ до програмного сокету процесу на сервері, що відповідає за роботу протоколу прикладного рівня, який мовою ТСР зветься портом. За такої умови стан ТСР-сесії на стороні сервера є LISTEN (слухати). Тобто сервер слухає, якийсь конкретний TCP-порт і очікує отримати запит від клієнта на надання послуг, що відповідають номеру цього порту. Початковий стан ТСР-сесії на стороні клієнта є CLOSED.
Для встановлення з'єднання протокол TCP використовує триходове ([en]), назване так за кількістю повідомлень між хостами:
- Клієнт формує TCP-заголовок: у поле порт джерела заносить свій номер TCP-порта, як правило динамічний, у поле порт призначення номер порту протоколу прикладного рівня, послуги якого хоче отримати, в поле номер послідовності сегменту довільне значення та встановлює прапорець SYN. Сформований таким чином TCP-сегмент відправляється серверу. ТСР-сесія на стороні клієнта переходить у стан SYN-SENT.
- Сервер отримує ТСР-сегмент від клієнта зі встановленим прапорцем SYN та у відповідь формує TCP-заголовок: у поле порт джерела заносить свій номер TCP-порта, у поле порт призначення номер порту клієнта. Додає до отриманого від клієнта номера послідовності сегменту 1 і поміщає отримане число до номеру підтвердження, вносить свій власний початковий номер послідовності сегменту та відправляє сегмент до клієнта з прапорцями SYN та ACK. ТСР-сесія на стороні сервера переходить у стан SYN-RECEIVED.
- Після отримання ТСР-сегмента зі встановленими прапорцями ACK та SYN клієнт переходить у стан ESTABLISHED та відповідає на запит сервера про синхронізацію шляхом додавання 1 до номера отриманої послідовності сегменту та поміщає це число до номера підтвердження. Далі клієнт надсилає таким чином сформований сегмент до сервера з прапорцем ACK
Після отримання сервером ТСР-сегмента з прапорцем ACK стан ТСР-сесії на його стороні стає також ESTABLISHED, разом з чим розпочинається передавання даних.
Також на етапі встановлення з'єднання між хостами, як правило відбувається обмін опціями, тобто TCP-параметрами, які впливають на ефективність передавання даних.
Закінчення з'єднання
Ініціатором закінчення з'єднання може бути, як клієнт так і сервер. Для закінчення TCP-сесії використовується так зване чотириходове рукостискання (four-way handshake).
- Ініціатор розірвання з'єднання направляє своєму партнеру TCP-сегмент зі встановленим прапорцем FIN. TCP-сесія ініціатора переходить зі стану ESTABLISHED у стан FIN-WAIT-1
- Хост-отримувач приймає FIN від ініціатора та посилає у відповідь TCP-сегмент зі встановленим прапорцем АСК. TCP-сесія отримувача переходить зі стану ESTABLISHED у стан CLOSE-WAIT. З набуттям хостом цього стану TCP припиняє отримувати нові запити, на передавання даних, від відповідного протоколу верхнього рівня та встановлює таймер на завершення попередніх запитів. Ініціатор отримує АСК та переходить у стан FIN-WAIT-2.
- Після закінчення оброблення всіх запитів протоколів верхнього рівня хост-отримувач переходить у стан LAST-ACK та відправляє ініціатору TCP-сегмент зі встановленим прапорцем FIN.
- Ініціатор приймає FIN від отримувача та посилає у відповідь TCP-сегмент зі встановленим прапорцем АСК. Отримувач приймає АСК та переходить у стан CLOSED.
Ініціатор розірвання з'єднання чекає протягом подвійного часу від [en] (максимального життя сегмента, maximum segment lifetime), щоб переконатися, що посланий ACK був отриманий та також переходить у стан CLOSED.
Посилання
- RFC 793 — Transmission Control Protocol
- Специфікація протоколу TCP [ 22 жовтня 2007 у Wayback Machine.](рос.)
Література
- Douglas E. Comer. Internetworking with TCP/IP, Vol. 1: Principles, Protocols and Architecture
- Дуглас Камер. Сети TCP/IP, том 1. Принципы, протоколы и структура. М. «Вильямс» 2003, ,
Примітки
- . Архів оригіналу за 23 жовтня 2015. Процитовано 30 жовтня 2015.
- . Архів оригіналу за 11 вересня 2016. Процитовано 30 жовтня 2015.
- . Архів оригіналу за 29 жовтня 2015. Процитовано 23 жовтня 2015.
- . Архів оригіналу за 27 жовтня 2018. Процитовано 26 лютого 2016.
- (PDF). Архів оригіналу (PDF) за 23 липня 2015. Процитовано 23 липня 2015.
- . Архів оригіналу за 23 листопада 2015. Процитовано 22 листопада 2015.
- . Архів оригіналу за 22 грудня 2015. Процитовано 18 грудня 2015.
- . Архів оригіналу за 22 грудня 2015. Процитовано 18 грудня 2015.
- . Архів оригіналу за 20 жовтня 2020. Процитовано 17 грудня 2015.
- . Архів оригіналу за 26 жовтня 2015. Процитовано 19 жовтня 2015.
- . Архів оригіналу за 16 жовтня 2015. Процитовано 21 жовтня 2015.
- . Архів оригіналу за 8 листопада 2015. Процитовано 7 листопада 2015.
- . Архів оригіналу за 14 листопада 2015. Процитовано 5 листопада 2015.
- . Архів оригіналу за 10 листопада 2015. Процитовано 7 листопада 2015.
- . Архів оригіналу за 9 листопада 2015. Процитовано 17 листопада 2015.
- . Архів оригіналу за 17 листопада 2015. Процитовано 12 листопада 2015.
- . Архів оригіналу за 24 березня 2016. Процитовано 17 листопада 2015.
- . Архів оригіналу за 27 листопада 2015. Процитовано 17 листопада 2015.
- . Архів оригіналу за 4 березня 2016. Процитовано 17 листопада 2015.
- . Архів оригіналу за 9 листопада 2015. Процитовано 16 листопада 2015.
- . Архів оригіналу за 9 листопада 2015. Процитовано 16 листопада 2015.
- . Архів оригіналу за 4 березня 2016. Процитовано 18 листопада 2015.
- . The Internet Assigned Numbers Authority (IANA). Архів оригіналу за 28 грудня 2017. Процитовано 9 листопада 2015.
- . Архів оригіналу за 7 квітня 2019. Процитовано 10 листопада 2015.
- . Архів оригіналу за 12 листопада 2015. Процитовано 10 листопада 2015.
- . Архів оригіналу за 29 жовтня 2015. Процитовано 23 жовтня 2015.
- . Архів оригіналу за 20 листопада 2015. Процитовано 19 листопада 2015.
- . Архів оригіналу за 6 грудня 2015. Процитовано 22 грудня 2015.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Transmission Control Protocol TCP ukr Protokol upravlinnya peredacheyu razom iz protokolom IP ye strizhnevim protokolom Internetu yakij dav nazvu modeli TCP IP Protokol priznachenij dlya keruvannya peredavannyam danih u komp yuternih merezhah pracyuye na transportnomu rivni modeli OSI Na vidminu vid inshogo poshirenogo protokolu transportnogo rivnya UDP TCP zabezpechuye nadijne dopravlyannya danih vid hosta vidpravnika do hosta otrimuvacha dlya cogo vstanovlyuyetsya logichnij zv yazok mizh hostami Takim chinom TCP nalezhit do klasu protokoliv en Inkapsulyaciya TCP v merezhevij modeli OSI TCP otrimuye potoki danih vid protokoliv verhnih rivniv OSI modeli pochatkovim dzherelom yakih ye protokoli prikladnogo rivnya taki yak HTTP FTP ta inshi Kozhnij protokol verhnogo rivnya maye svij viznachenij TCP port TCP rozbivaye konkretnij potik danih na porciyi ta dodaye do kozhnoyi z nih zagolovok z nomerom poslidovnosti Otrimani takim chinom porciyi danih tradicijno nazivayutsya TCP segmentami Dali kozhnij segment inkapsulyuyetsya v IP paket i peredayetsya cherez IP protokol do hosta otrimuvacha Pislya nadhodzhennya IP paketu do hosta otrimuvacha pereviryayetsya korektnist otrimanih danih u TCP segmenti metodom pererahuvannya kontrolnoyi sumi ta perekonuyetsya sho poperedni segmenti danih takozh buli uspishno otrimani Pislya chogo host otrimuvach nadsilaye zapit do hosta vidpravnika pro novu abo povtorne peredavannya porciyi danih sho odnochasno ye pidtverdzhennyam togo sho vsi segmenti z nomerami poslidovnosti menshimi nizh nomer novogo zapitu buli uspishno otrimani U svoyu chergu TCP segmenti deinkapsulyuyutsya z IP paketiv rozmishuyutsya v pravilnomu poryadku ta z nih viluchayutsya TCP zagolovki Otrimanij takim chinom potik danih peredayetsya do togo protokolu verhnogo rivnya z yakogo pervisno nadijshli dani na storoni hosta vidpravnika Istoriya stvorennyaPionerom u rozrobci suchasnih komp yuternih merezh vvazhayetsya Agentstvo peredovih oboronnih doslidnickih proektiv SShA DARPA Defense Advanced Research Projects Agency zi svoyeyu rozrobkoyu merezheyu ARPANET zapushenoyu u 1969 roci Poyavoyu protokolu vvazhayut 1974 rik koli institut inzheneriv z elektrotehniki ta elektroniki opublikuvav robotu Protokol dlya paketnoyi merezhevoyi komunikaciyi A Protocol for Packet Network Intercommunication avtorami yakoyi buli Vinton Serf ta Robert Elliot Kan U cij praci TCP bulo abreviaturoyu vid Transmission Control Program programa keruvannya peredavannyam TCP segmentBlok danih en Protocol data unit TCP nazivayetsya segmentom hocha chasto takozh vikoristovuyut slovo paket ale take vzhivannya mozhe vnositi plutaninu z IP paketom TCP segment skladayetsya iz TCP zagolovka i polya Dani Data yake nazivayut segmentom danih abo pejlodom abo en Standartnij rozmir TCP zagolovka 20 bajt ale z vikoristannyam opcij rozmir mozhe zrostati do 60 bajt Yak pravilo opciyami hosti obminyuyutsya na etapi vstanovlennya z yednannya Rozmir segmentu danih polya danih viznachayetsya opciyeyu MSS Maksimalnij rozmir segmentu Maximum segment size na etapi vstanovlennya z yednannya Yaksho obminu opciyami ne vidbulosya to rozmir segmentu danih vstanovlyuyetsya za zamovchuvannyam 536 bajt Rozmir segmentu danih tisno pov yazanij z MTU Maksimalnij rozmir bloku peresilannya Faktichno MSS dorivnyuye MTU z vidnimannyam rozmiru IP i TCP zagolovkiv Napriklad u suchasnij merezhi Ethernet MTU dorivnyuye 1500 bajt todi optimalnij rozmir MSS bude 1460 bajtiv 1500 minus 20 bajt zagolovka IP i 20 bajt zagolovka TCP Format TCP segmentu Oktet Bajt 0 1 2 3 Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 Port dzherela Source port Port priznachennya Destination port 4 32 Nomer poslidovnosti Sequence number 8 64 Nomer pidtverdzhennya Acknowledgment number 12 96 Zmishennya danih Data offset Zarezervovano Reserved 0 0 0 N S C W R E C E U R G A C K P S H R S T S Y N F I N Rozmir vikna Window Size 16 128 Kontrolna suma Checksum Pokaznik vazhlivosti Urgent pointer 20 56 160 448 Opciyi Options neobov yazkove rozmir zalezhno vid znachennya polya Zmishennya danih 20 160 Dani Data Polya zagolovkaPort dzherela 0 15 biti Port dzherela Source port identifikuye nomer TCP portu z yakogo vidpravlyayetsya segment Port priznachennya 16 31 biti Port priznachennya Destination port identifikuye nomer TCP portu na yakij vidpravlyayetsya segment Div takozh spisok nomeriv TCP ta UDP portiv Nomer poslidovnosti 32 63 biti Nomer poslidovnosti Sequence number ye chislom sho vidobrazhaye nomer pershogo bajtu v segmenti nadislanih danih vid hosta vidpravnika do hosta otrimuvacha Ce chislo ye akumulyuvalnim tobto potochnij nomer poslidovnosti ye sumoyu nomera poslidovnosti poperednogo segmentu i kilkosti danih v bajtah vidpravlenih u nomu Vikoristovuyetsya dlya vidstezhuvannya kilkosti ta pravilnoyi poslidovnosti otrimanih segmentiv danih Nomer pidtverdzhennya 64 95 biti Nomer pidtverdzhennya Acknowledgment number faktichno ye zapitom vid hosta otrimuvacha na nadislannya novogo segmentu danih pochinayuchi zi vkazanogo nomera Z inshogo boku koli host vidpravnik otrimuye ce povidomlennya vin perekonuyetsya sho vsi segmenti danih z nomerami poslidovnosti menshimi za nomer pidtverdzhennya buli uspishno prijnyati otrimuvachem Zmishennya danih 96 99 biti Zmishennya danih Data offset 4 bitnij nomer yakij viznachaye rozmir TCP zagolovka v 32 bitovih slovah Minimalnij rozmir stanovit 5 0101 sliv a maksimalnij 15 1111 sho ye vidpovidno 20 i 60 bajt Faktichno viznachaye rozmir polya Opciyi Options vid 0 do 40 bajt Zarezervovano 100 102 biti zarezervovani dlya majbutnogo vikoristannya i povinni mistiti nuli 000 Praporci keruyuchi biti Ce pole mistit bitovi praporci z yakih shist osnovnih opisani v RFC 793 z 106 po 111 bit dva praporci dodani do zagolovka v RFC 3168 rozmishuyutsya v 104 i 105 bitah zagolovka v 103 biti znahoditsya eksperimentalnij praporec zgidno z RFC 3540 Praporci vvazhayetsya vstanovlenimi yaksho yih bitove znachennya ye 1 103 NS Odnorazova suma Nonce Sum vikoristovuyetsya z metoyu pokrashennya roboti mehanizmu yavnogo povidomlennya pro perevantazhennya Explicit Congestion Notification ECN 104 CWR Vikno perevantazhennya zmensheno Congestion Window Reduced praporec vstanovlyuyetsya shob pokazati sho TCP segment buv otrimanij zi vstanovlenim polem ECE inshimi slovami ce ye pidtverdzhennyam otrimannya segmentu danih z praporcem ECE vid hosta partnera 105 ECE ECN Eho ECN Echo pole pokazuye sho vidpravnik pidtrimuye ECN Osnovni 106 URG Vazhlivist Urgent vkazuye sho TCP segment mistit vazhlivi dani Koli do hosta otrimuvacha nadhodit segment zi vstanovlenim praporcem URG TCP vidpravlyaye vazhlivi dani z cogo segmentu yaki znahodyatsya zavdyaki polyu pokazhchik vazhlivosti do vidpovidnogo protokolu verhnogo rivnya minayuchi chergu i bez perevirki uspishnosti nadhodzhennya poperednih segmentiv 107 ACK Pidtverdzhennya Acknowledge uspishnosti otrimannya TCP segmentu 108 PSH Prosuvannya Push takozh yak i praporec URG vkazuye na prioritetnist TCP segmentu Host vidpravnik pozachergovo nadsilaye cej segment danih cherez IP merezhu Za analogiyeyu z praporcem URG PSH instruktuye host otrimuvach sho segment danih maye buti negajno peredanij do prikladnogo rivnya kincevogo spozhivacha danih 109 RST Obrivannya Reset vkazuye hostu otrimuvachu negajno skinuti z yednannya bez podalshoyi vzayemodiyi Taka situaciya nastupaye u razi yaksho server host vidpravnik ne nadaye poslugi viznachenogo servisu Napriklad kliyent host otrimuvach zaprosiv u vebservera poslugi u formati protokolu HTTPS TCP port 443 ale vebserver nadaye poslugi lishe u formati HTTP TCP port 80 Cya vlastivist TCP chasto vikoristovuyetsya hakerami dlya skanuvannya portiv merezhi zhertvi 110 SYN Sinhronizaciya Synchronize vikoristovuyetsya dlya vstanovlennya z yednannya mizh hostami pri tak zvanomu trihodovomu en 111 FIN Finish Finish vkazuye na zavershennya z yednannya Rozmir vikna 112 127 biti Rozmir vikna angl Window Size viznachaye kilkist bajtiv danih yaki vidpravnik mozhe nadislati do togo yak otrimaye pidtverdzhennya zapit na novij segment vid hosta otrimuvacha Na praktici ce oznachaye sho host vidpravnik mozhe nadsilati pevnu kilkist segmentiv danih bez otrimannya pidtverdzhennya vid hosta otrimuvacha Rozmir vikna TCP virahovuye na osnovi maksimalnoyi propusknoyi zdatnosti angl bandwidth liniyi zv yazku mizh hostami faktichno ce ye propuskna zdatnist vidrizka shlyahu z yiyi najgirshim znachennyam ta zagalnij en angl latency chasu potribnomu na dostavku segmenta na vsomu shlyahu Kontrolna suma 128 143 biti Kontrolna suma Checksum rozrahovuyetsya na osnovi usogo TCP segmentu vklyuchno iz zagolovkom ta vazhlivih poliv IP paketa IP adres hostiv vidpravnika ta otrimuvacha en TCP maye nomer 6 ta zagalnogo rozmiru IP paketu Kontrolna suma zabezpechuye mozhlivist perevirki cilisnosti nadislanih danih Pokaznik vazhlivosti 144 159 biti Pokazhchik vazhlivosti Urgent pointer Pole beretsya do uvagi tilki v razi vstanovlenogo praporcya URG ta mistit znachennya zmishennya vidnosno nomera poslidovnosti segmentu Faktichno ce chislo vkazuye na poziciyu v TCP segmenti de zakinchuyutsya vazhlivi dani Tobto vazhlivi dani znahodyatsya odrazu pislya TCP zagolovka i zakinchuyutsya pered miscem na yake vkazuye pokazhchik vazhlivosti Opciyi 160 479 biti Opciyi Options neobov yazkove pole rozmir yakogo viznachayetsya v zalezhnosti vid znachennya polya zmishennya danih ta ye kratnim 8 odnomu bajtu Kozhna opciya v svoyu chergu skladayetsya z 3 h poliv Nomer kind 1 bajt Dovzhina length vkazuye na zagalnij rozmir opciyi v bajtah 1 bajt Dani data v zalezhnosti vid polya dovzhina Opciyi vikoristovuyetsya dlya obminu dodatkovih parametriv mizh hostami z metoyu pokrashennya funkcionuvannya protokolu TCP Chastishe za vse ce pole vklyuchaye nastupni opciyi MSS Maksimalnij rozmir segmentu Maximum segment size RFC 793 nomer 2 dovzhina 4 Opciya maksimalnij rozmir segmentu viznachaye maksimalnij rozmir polya Dani v TCP segmenti tobto kilkist danih yaki mozhut buti pomisheni v odin segment pri yih peredavanni mizh hostami Masshtabuvannya vikna Window scale RFC 7323 nomer 3 dovzhina 3 sluguye dlya zbilshennya znachennya TCP vikna maksimalne znachennya ciyeyi opciyi ye 14 Novij rozmir TCP vikna virahovuyetsya po formuli rozmir vikna 2n de n ye znachennya opciyi masshtabuvannya vikna Standartnij maksimalnij rozmir vikna vidobrazhayetsya 16 ti bitovim chislom tobto mozhe mati maksimalne znachennya 65535 64 Kb vikoristovuyuchi opciyu masshtabuvannya vikna z maksimalno dopustimim znachennyam 14 otrimuyemo 65535 214 65535 16384 1073725440 1 Gb Veliki znachennya TCP vikna vikoristovuyutsya koli na shlyahu paketiv iz TCP segmentami zustrichayutsya WAN linki zi znachnimi maksimalnimi propusknimi zdatnostyami bandwidth ta velikimi en latency Vibirkovi pidtverdzhennya Selective Acknowledgments SACK RFC 2018 nomer 2 dovzhina vid 4 bajt verhnya mezha variyuyetsya yak pravilo mistit u sobi dva 2 h bajtnih polya danih Meta yiyi vvedennya ye pokrashennya efektivnosti roboti TCP yak vidomo TCP dlya peredavannya segmentiv danih vikoristovuye protokol IP yakij ye protokolom en tobto dopravlennya paketiv z TCP segmentami ne ye garantovanim dopuskayetsya sho chastina IP paketiv mozhe buti vtrachena V svoyu chergu TCP zabezpechuye nadijne dopravlyannya danih sho bazuyetsya na mehanizmi nadsilannya nomeriv pidtverdzhennya acknowledgment number Yaksho yakijs segment vid vidpravnika do otrimuvacha ne nadijshov u vstanovlenij chas to iniciyuyetsya povtorne peredavannya pochinayuchi zi vtrachenogo segmentu navit yaksho TCP segmenti z nomerami poslidovnosti bilshimi za nomer vtrachenogo segmentu buli uspishno otrimani Mehanizm vibirkovogo pidtverdzhennya dozvolyaye retranslyuvati lishe vtracheni segmenti danih chim suttyevo pokrashuye efektivnist roboti TCP Mitki chasu Timestamps RFC 7323 nomer 8 dovzhina 10 mistit u sobi dva 4 h bajtnih polya Znachennya mitki chasu Timestamp Value ta Eho vidpovid mitki chasu Timestamp Echo Reply Yak pravilo hosti obminyuyutsya znachennyami mitok chasu na etapi vstanovlennya z yednannya Za dopomogoyu mitok chasu TCP viznachaye skilki potribno chasu na dopravlennya segmentiv mizh hostami Na osnovi cih znachen vstanovlyuyutsya TCP tajmeri vidpovidalni na storoni hosta vidpravnika za povtorne peredavannya danih yaksho pidtverdzhennya otrimannya ne nadijshlo u vstanovlenij chas a u razi vikoristannya opciyi vibirkovogo pidtverdzhennya host otrimuvach samostijno iniciyuye zapit na povtorne peresilannya konkretnogo segmentu danih Yaksho deyakij prostir polya Opciyi lishayetsya nezapovnenim to vin zapovnyuyetsya specialnoyu opciyeyu NOP No Operation nichogo ne robiti RFC 793 nomer 1 dovzhina vidsutnya TCP portiDiv takozh Spisok portiv TCP i UDP Ponyattya port port ye klyuchovim u protokoli TCP Port z tochki zoru operacijnih sistem nazivayetsya soketom socket procesu Inshimi slovami ce programnij interfejs dlya zabezpechennya obminu danimi mizh procesami Dlya rozuminnya ponyattya portu z tochki zoru komp yuternih merezh legko provesti analogiyu z robotoyu zvichajnoyi poshti Koli vi vidpravlyayete lista to zapovnyuyete polya Kudi adresa budinku i Komu lyudina yaka prozhivaye u comu budinku U merezhi Internet na pitannya Kudi vidpovidaye IP protokol tobto ce ye IP adresa hosta a na pitannya Komu vidpovidaye TCP protokol abo inshij protokol transportnogo rivnya tobto ce nomer protokolu prikladnogo rivnya proces sho vidpovidaye za cej protokol z tochki zoru operacijnoyi sistemi yakij meshkaye za vkazanoyu IP adresoyu hosta Za analogiyeyu zi zvichajnoyu poshtoyu vi mozhete napraviti 2 a lista 2 m riznim lyudyam yaki zhivut v odnomu budinku v Interneti vi mozhete napraviti TCP segmenti 2 m riznim protokolam prikladnogo rivnya za odniyeyu i tiyeyu zh samoyu IP adresoyu Zvichajno treba zapovniti i zvorotnyu adresu V Interneti shiroko vzhivayetsya forma zapisu ip adresa port Komanda netstat n mozhe pokazati nastupne 192 168 1 31 54132 198 35 26 96 443 192 168 1 31 54138 198 35 26 96 22 Tobto yakijs host z lokalnoyi merezhi vikoristovuye privatnu IP adresu maye odnochasno z yednannya z serverom v globalnij merezhi Internet z ip adresoyu 198 35 26 96 18 veresnya 2016 u Wayback Machine po portam 443 protokol HTTPS ta 22 protokol SSH Za nadannya i vikoristannya portiv vidpovidalna IANA hocha na praktici na vidminu vid vikoristannya IP adres ce pravilo ne zavzhdi dotrimuyetsya Napriklad nichogo ne zavazhaye administratoram 2 h hostiv domovitisya peredavati yakijs tip IP trafiku po portu 80 yakij ye zakriplenij za protokolom http i ye vidkritim na bilshosti fajrvoliv TCP zagolovok maye 16 bitovi polya port dzherela ta port priznachennya yaki mozhut prijmati znachennya vid 0 do 65535 Porti podilyayutsya na kategoriyi Zagalnovidomi well known diapazon nomeriv 0 1023 Yak pravilo ce porti yaki vikoristovuyut protokoli prikladnogo rivnya TCP IP steku zatverdzheni IETF zgidno z principami vidkritogo standartu Napriklad HTTP port 80 HTTPS 443 SMTP 25 Telnet 23 SSH 22 Zareyestrovani registered diapazon nomeriv 1024 49151 Za zadumom ci porti priznachayutsya dlya protokoliv riznih virobnikiv programnogo zabezpechennya yaki mayut yih zareyestruvati v IANA Napriklad igrovij servis Xbox Live vikoristovuye zareyestrovanij port 3074 Na praktici bagato portiv u comu diapazoni vikoristovuyutsya bez oficijnoyi reyestraciyi Dinamichni privatni efemerni dynamic private ephemeral diapazon nomeriv 49152 65535 IANA ne reyestruye ci porti Vikoristovuyutsya yak pravilo hostami kliyentami dlya vstanovlennya TCP z yednan z hostami serverami Yak u prikladi vishe koli kliyent z IP adresoyu 192 168 1 31 vstanoviv 2 z yednannya zi serverom 198 35 26 96 na storoni kliyenta vikoristovuyutsya dinamichni porti 54132 ta 54138 a na storoni servera zagalnovidomi porti 443 protokol HTTPS ta 22 protokol SSH TCP sesiyaDiagrama staniv TCP sesiyi Zavdannyam protokolu yak viplivaye z jogo nazvi protokol keruvannya peresilannyam ye kontrol nadijnogo peredavannya danih mizh hostami dlya zabezpechennya cogo mizh hostami en yake zvetsya TCP sesiyeyu Protokol TCP pracyuye u formati arhitekturi kliyent server Host yakij nadsilaye zapit na otrimannya servisu ye kliyentom toj hto vidpovidaye na zapit zvetsya serverom Hosti zv yazuyutsya odin z odnim za TCP portami na storoni kliyenta ce yak pravilo dinamichnij port a na storoni servera ce zagalnovidomij abo zareyestrovanij port nomer yakogo vidpovidaye protokolu prikladnogo rivnya Nomeri portiv ta znachennya inshih parametriv zanosyatsya do zagolovka TCP segmentu Tut pid terminom server server rozumiyut komp yuter pid upravlinnyam operacijnoyi sistemi yakij maye dostup do IP merezhi ta nadaye poslugi odnogo chi dekilkoh servisiv prikladnogo rivnya V svoyu chergu na serveri komp yuteri vstanovleni specialni server programi yaki zabezpechuyut robotu protokoliv prikladnogo rivnya Takim chinom yaksho ce vebserver to na nomu musit buti vstanovlena odna iz takih program yak napriklad Apache HTTP Server Na praktici server komp yuter nadaye poslugi vidzrazu dekilkoh servisiv tobto na nomu mozhe buti vstanovleno bilshe odniyeyi server programi sho zabezpechuyut robotu dekilkoh protokoliv prikladnogo rivnya Napriklad server komp yuter mozhe buti odnochasno vebserverom i FTP serverom ta zabezpechuvati robotu protokoliv HTTP HTTPS ta FTP Vazhlivo rozumiti sho protyagom TCP sesiyi dani nadsilayutsya v oboh napryamkah yak vid servera do kliyenta tak i vid kliyenta do servera tobto stvoryuyutsya dva potoki danih Prichomu ne zavzhdi bilshij potik danih pryamuye vid servera do kliyenta Kozhna okrema sesiya roboti protokolu TSR mozhe buti podilena na tri fazi Vstanovlennya z yednannya Peredavannya danih Zakinchennya z yednannya Vstanovlennya z yednannya Trihodove rukostiskannya Neobhidnoyu umovoyu dlya vstanovlennya TSR sesiyi ye vidkritij dostup do programnogo soketu procesu na serveri sho vidpovidaye za robotu protokolu prikladnogo rivnya yakij movoyu TSR zvetsya portom Za takoyi umovi stan TSR sesiyi na storoni servera ye LISTEN sluhati Tobto server sluhaye yakijs konkretnij TCP port i ochikuye otrimati zapit vid kliyenta na nadannya poslug sho vidpovidayut nomeru cogo portu Pochatkovij stan TSR sesiyi na storoni kliyenta ye CLOSED Dlya vstanovlennya z yednannya protokol TCP vikoristovuye trihodove en nazvane tak za kilkistyu povidomlen mizh hostami Kliyent formuye TCP zagolovok u pole port dzherela zanosit svij nomer TCP porta yak pravilo dinamichnij u pole port priznachennya nomer portu protokolu prikladnogo rivnya poslugi yakogo hoche otrimati v pole nomer poslidovnosti segmentu dovilne znachennya ta vstanovlyuye praporec SYN Sformovanij takim chinom TCP segment vidpravlyayetsya serveru TSR sesiya na storoni kliyenta perehodit u stan SYN SENT Server otrimuye TSR segment vid kliyenta zi vstanovlenim praporcem SYN ta u vidpovid formuye TCP zagolovok u pole port dzherela zanosit svij nomer TCP porta u pole port priznachennya nomer portu kliyenta Dodaye do otrimanogo vid kliyenta nomera poslidovnosti segmentu 1 i pomishaye otrimane chislo do nomeru pidtverdzhennya vnosit svij vlasnij pochatkovij nomer poslidovnosti segmentu ta vidpravlyaye segment do kliyenta z praporcyami SYN ta ACK TSR sesiya na storoni servera perehodit u stan SYN RECEIVED Pislya otrimannya TSR segmenta zi vstanovlenimi praporcyami ACK ta SYN kliyent perehodit u stan ESTABLISHED ta vidpovidaye na zapit servera pro sinhronizaciyu shlyahom dodavannya 1 do nomera otrimanoyi poslidovnosti segmentu ta pomishaye ce chislo do nomera pidtverdzhennya Dali kliyent nadsilaye takim chinom sformovanij segment do servera z praporcem ACK Pislya otrimannya serverom TSR segmenta z praporcem ACK stan TSR sesiyi na jogo storoni staye takozh ESTABLISHED razom z chim rozpochinayetsya peredavannya danih Takozh na etapi vstanovlennya z yednannya mizh hostami yak pravilo vidbuvayetsya obmin opciyami tobto TCP parametrami yaki vplivayut na efektivnist peredavannya danih Zakinchennya z yednannya Zakinchennya TCP sesiyi Iniciatorom zakinchennya z yednannya mozhe buti yak kliyent tak i server Dlya zakinchennya TCP sesiyi vikoristovuyetsya tak zvane chotirihodove rukostiskannya four way handshake Iniciator rozirvannya z yednannya napravlyaye svoyemu partneru TCP segment zi vstanovlenim praporcem FIN TCP sesiya iniciatora perehodit zi stanu ESTABLISHED u stan FIN WAIT 1 Host otrimuvach prijmaye FIN vid iniciatora ta posilaye u vidpovid TCP segment zi vstanovlenim praporcem ASK TCP sesiya otrimuvacha perehodit zi stanu ESTABLISHED u stan CLOSE WAIT Z nabuttyam hostom cogo stanu TCP pripinyaye otrimuvati novi zapiti na peredavannya danih vid vidpovidnogo protokolu verhnogo rivnya ta vstanovlyuye tajmer na zavershennya poperednih zapitiv Iniciator otrimuye ASK ta perehodit u stan FIN WAIT 2 Pislya zakinchennya obroblennya vsih zapitiv protokoliv verhnogo rivnya host otrimuvach perehodit u stan LAST ACK ta vidpravlyaye iniciatoru TCP segment zi vstanovlenim praporcem FIN Iniciator prijmaye FIN vid otrimuvacha ta posilaye u vidpovid TCP segment zi vstanovlenim praporcem ASK Otrimuvach prijmaye ASK ta perehodit u stan CLOSED Iniciator rozirvannya z yednannya chekaye protyagom podvijnogo chasu vid en maksimalnogo zhittya segmenta maximum segment lifetime shob perekonatisya sho poslanij ACK buv otrimanij ta takozh perehodit u stan CLOSED PosilannyaRFC 793 Transmission Control Protocol Specifikaciya protokolu TCP 22 zhovtnya 2007 u Wayback Machine ros LiteraturaDouglas E Comer Internetworking with TCP IP Vol 1 Principles Protocols and Architecture Duglas Kamer Seti TCP IP tom 1 Principy protokoly i struktura M Vilyams 2003 ISBN 0 13 018380 6 Primitki Arhiv originalu za 23 zhovtnya 2015 Procitovano 30 zhovtnya 2015 Arhiv originalu za 11 veresnya 2016 Procitovano 30 zhovtnya 2015 Arhiv originalu za 29 zhovtnya 2015 Procitovano 23 zhovtnya 2015 Arhiv originalu za 27 zhovtnya 2018 Procitovano 26 lyutogo 2016 PDF Arhiv originalu PDF za 23 lipnya 2015 Procitovano 23 lipnya 2015 Arhiv originalu za 23 listopada 2015 Procitovano 22 listopada 2015 Arhiv originalu za 22 grudnya 2015 Procitovano 18 grudnya 2015 Arhiv originalu za 22 grudnya 2015 Procitovano 18 grudnya 2015 Arhiv originalu za 20 zhovtnya 2020 Procitovano 17 grudnya 2015 Arhiv originalu za 26 zhovtnya 2015 Procitovano 19 zhovtnya 2015 Arhiv originalu za 16 zhovtnya 2015 Procitovano 21 zhovtnya 2015 Arhiv originalu za 8 listopada 2015 Procitovano 7 listopada 2015 Arhiv originalu za 14 listopada 2015 Procitovano 5 listopada 2015 Arhiv originalu za 10 listopada 2015 Procitovano 7 listopada 2015 Arhiv originalu za 9 listopada 2015 Procitovano 17 listopada 2015 Arhiv originalu za 17 listopada 2015 Procitovano 12 listopada 2015 Arhiv originalu za 24 bereznya 2016 Procitovano 17 listopada 2015 Arhiv originalu za 27 listopada 2015 Procitovano 17 listopada 2015 Arhiv originalu za 4 bereznya 2016 Procitovano 17 listopada 2015 Arhiv originalu za 9 listopada 2015 Procitovano 16 listopada 2015 Arhiv originalu za 9 listopada 2015 Procitovano 16 listopada 2015 Arhiv originalu za 4 bereznya 2016 Procitovano 18 listopada 2015 The Internet Assigned Numbers Authority IANA Arhiv originalu za 28 grudnya 2017 Procitovano 9 listopada 2015 Arhiv originalu za 7 kvitnya 2019 Procitovano 10 listopada 2015 Arhiv originalu za 12 listopada 2015 Procitovano 10 listopada 2015 Arhiv originalu za 29 zhovtnya 2015 Procitovano 23 zhovtnya 2015 Arhiv originalu za 20 listopada 2015 Procitovano 19 listopada 2015 Arhiv originalu za 6 grudnya 2015 Procitovano 22 grudnya 2015