Протокол TCP
-розподілення каналів
-работа зі з’єднаннями
-приорітет та безпека
Основні дії протокола TCP у кожній з цих областей описані у наступних параграфах.
Базова передача даних
Протокол TCP здатний передавати неперервні потоки октетів між своїми клієнтами в обох напрямках, пакуючи деяку кількість октетів у сегменти для передачі крізь системи Internet. У загальному випадку протоколи TCP вирішують за власним розсудом, коли проводити блокування та передачу даних. Іноді користувачам буває необхідно впевнитись в тому, що всі дані, передані їми протоколу TCP, вже відправлені. Для цього визначена функція проштовхування (push). Щоб впевнитись в тому, що дані, відправлені протоколу TCP, дійсно передані, відправник вказувє, що їх слід проштовхнути користувачеві. Проштовхування призводить до того, що програми протокола TCP одразу здійснюють відправку та, відповідно, отримання даних, що залишилися. Правильно здійснене проштовхування може бути невидиме для отримувача, а сама функция проштовхування може не мати маркера межі запису.
ДостовірністьПротокол TCP повинен мати захист від руйнування даних, втрати, дубляції та порушення порядку отримання, викликаних комунікаційною системою Internet. Це досягається присвоєнням порядкового номеру кожному октету, що передається, а також вимогою підтвердження (ACK) віт програми TCP, яка приймає дані. Якщо підтвердження не отримане протягом контрольного інтервалу часу, то дані посилаються знову. З боку отримувача номери черги використовуються для відтворення порядку сегментів, які можуть бути отримані у неправильному порядку, а також для обмеження можливості появи дублікатів.
Пошкодження фіксуються шляхом додавання до кожного сегменту, що передається, контрольної суми, перевірки її приотриманні та подальшій ліквідації дефектних сегментів.
Управління потоком
Протокол TCP надає отримувачу засоби, щоб керувати кількістю даних, які посилає йому відправник. Це досягається викликом так званого "вікна" (window) разом с кожним підтвердженням, яке вказує діапазон прийнятних номерів, що йдуть за номером останнього успішно прийнятого сегменту. Вікно визначає кількість октетів, яку відправник може послати до отримання подальших вказівок.
Розподілення каналів
Щоб дозволити багатьом процесам на окремо взятому комп’ютері одночасно використовувати комунікаційні можливості рівня TCP, протокол TCP надає на кожному хост-комп’юторі набір адрес чи портів. Разом з адресами мереж та хост-компьютерів на комунікаційному рівні Internet вони утворюють сокет (socket – роз’єм).
Кожне з’єднання унікальним чином ідентифікується парою соктів. Таким чином, будь-який сокет може одночасно використовуватись у багатоьх з’єднаннях.
Співвіднесення портів та процесів здійснюється кожним хост-комп’ютером самостійно. Проте виявляється корисним зв’язувати часто використовувані процеси (такі як "logger" чи сервіс з розподіленням часу) з фіксованими документованими сокетами.
Робота зі з’єднаннями
Механізми управління потоком та забезпечення достовірності, описані вище, вимагають, щоб програми протокола TCP ініціалізували та підтримували певну інформацію про стан кожного потоку даних. Набір такої інформації, до складу якого входять сокети, номери черги, разміри вікон, має назву з’єднання. Кожне з’єднання унікальним чином ідентифікуєтся парою сокетів на двох кінцях.