TCP - протокол управління передачею.
TCP один з основних мережевих протоколів Інтернет, призначений для управління передачею даних в мережах і підмережах TCP / IP. Він виконує функції протоколу транспортного рівня моделі OSI.
TCP - це транспортний механізм, що надає потік даних, з попередньою установкою з'єднання, за рахунок цього дає впевненість в достовірності одержуваних даних, здійснює повторний запит даних в разі втрати даних і усуває дублювання при отриманні двох копій одного пакета. На відміну від UDP, гарантує, що додаток отримає дані точно в такій же послідовності, в якій вони були відправлені, і без втрат.
Реалізація TCP, як правило, вбудована в ядро системи, хоча є і реалізації TCP в контексті програми. Коли здійснюється передача від комп'ютера до комп'ютера через Інтернет, TCP працює на верхньому рівні між двома кінцевими системами, наприклад, Інтернет-браузер і Інтернет-сервер. Також TCP здійснює надійну передачу потоку байт від однієї програми на деякому комп'ютері в іншу програму на іншому комп'ютері. Програми для електронної пошти та обміну файлами використовують TCP. TCP контролює довжину повідомлення, швидкість обміну повідомленнями, мережевий трафік.
TCP протокол базується на IP для доставки пакетів, але додає дві важливі речі:
- встановлення з'єднання - це дозволяє йому, на відміну від IP, гарантувати доставку пакетів; - порти - для обміну пакетами між додатками, а не просто вузлами.
Протокол TCP призначений для обміну даними - це «надійний» протокол, тому що:
1.Обеспечівает надійну доставку даних, так як передбачає встановлення логічного з'єднання;
2.Нумерует пакети і підтверджує їх прийом квитанцією, а в разі втрати організовує повторну передачу;
3.Деліт переданий потік байтів на частини - сегменти - і передає їх нижнього рівня, на приймальній стороні знову збирає їх у безперервний потік байтів.
З'єднання починається з handshake (рукостискання):
1.Узел A посилає вузла B спеціальний пакет SYN - запрошення до з'єднання
2.B відповідає пакетом SYN-ACK - згодою про встановлення з'єднання
3.A посилає пакет ACK - підтвердження, що згода отримана
Після цього TCP з'єднання вважається встановленим, і додатки, що працюють в цих вузлах, можуть посилати один одному пакети з даними.
«З'єднання» означає, що вузли пам'ятають один про одного, нумерують всі пакети, що йдуть в обидва боки, посилають підтвердження про отримання кожного пакета і перепосилают загубилися по дорозі пакети.
Для вузла A це з'єднання називається що виходить, а для вузла B - входять.
Відзначимо, що ці терміни не мають ніякого відношення до вхідного або вихідного трафіку. Вони показують тільки ініціатора з'єднання, тобто напрямок самого першого пакету (SYN). Будь-яке встановлене TCP з'єднання симетрично, і пакети з даними по ньому завжди йдуть в обидва боки.