Що таке TCP
Стек протоколів, або у просторіччі TCP/IP називають мережеву архітектуру сучасних пристроїв, розроблених для користування мережею. Stack - це стінка, в якій кожна складова цегла лежить поверх іншого, залежить від нього. Називати стек протоколів "стіком TCP/IP" почали завдяки двом основним протоколам, які були реалізовані - безпосередньо IP, та TCP на його основі. Проте, вони лише основні та найпоширеніші. Якщо не сотні, то десятки інших використовуються досі в різних цілях.
Звичний нам веб (world wide web) заснований на протоколі HTTP (hyper-text transfer protocol), який працює на основі TCP. Це класичний приклад використання стеку протоколів. Є ще протоколи електронної пошти IMAP/POP та SMTP, протоколи віддаленої оболонки SSH, віддаленого робочого столу RDP, баз даних MySQL, SSL/TLS, та тисячі інших програм зі своїми протоколами (..)
Чим відрізняються всі ці протоколи? Все досить просто. Крім різних завдань, поставлених під час розробки (наприклад, швидкість, безпека, стійкість та інші критерії), протоколи створено з метою розмежування. Наприклад, існують протоколи прикладного рівня, різні у різних програм: IRC, Skype, ICQ, Telegram і Jabber - несумісні друг з одним. Вони розроблені для виконання конкретної задачі, і в даному випадку можливість дзвонити по WhatsApp в ICQ просто не визначена технічно, оскільки програми використовують різний протокол. Але їхні протоколи ґрунтуються на тому самому протоколі IP.
Протоколом можна називати заплановану, штатну послідовність дій у процесі, в якому існує кілька суб'єктів, в мережі вони називаються бенкетами (напарниками), рідше - клієнт та сервер,підкреслюючи особливості конкретного протоколу. Найпростіший приклад протоколу для того, хто досі не розуміє, - рукостискання при зустрічі. Обидва знають, як і коли, але питання навіщо - це вже питання розробників, а не користувачів протоколу. До речі, рукостискання є майже по всіх протоколах, наприклад, для забезпечення розмежування протоколів і захисту від "польотів не на тому літаку".
Ось що таке TCP/IP на прикладі найпопулярніших протоколів. Тут показано ієрархію залежності. Треба сказати, що додатки лише користуються зазначеними протоколами, які можуть бути а можуть і не бути реалізовані всередині ОС.
Якщо вже зовсім простою мовою, це поштова служба.
TCP/IP - це набір протоколів.
Протокол – це правило. Наприклад, коли з вами вітаються - ви вітаєтесь у відповідь (а не прощаєтесь чи не бажає щастя). Програмісти скажуть, що ми використовуємо протокол привітання, наприклад.
Що за TCP/IP (зараз буде дуже просто, нехай колег не бомбить):
Інформація до вашого комп'ютера йде по проводах (радіо або що ще - не має значення). Якщо по дротах пустили струм - значить 1. Вимкнули - значить 0. Виходить 10101010110000 і так далі. 8 нуликів та одиниць (бітів) це байт. Наприклад 00001111. Це можна уявити як число в двійковому вигляді. У десятковому вигляді байт - це число від 0 до 255. Ці цифри зіставляє з літерами. Наприклад, 0 це А, 1 це Б. (Це називається кодування).
Ну так ось. Щоб два комп'ютери могли ефективно передавати інформацію з проводів - вони повинні подавати струм за якимись правилами - протоколами. Наприклад, вони повинні умовитись як часто можна змінювати струм, щоб можна було відрізнити 0 від другого 0.
Це перший протокол.
Комп'ютерам якось розуміти, що один із них перестав віддаватиінформацію (типу "я все сказав"). Для цього на початку послідовності даних 010100101 комп'ютери можуть надіслати кілька біт, довжину повідомлення, яке вони хочуть передати. Наприклад, перші 8 бітів можуть означати довжину повідомлення. Тобто спочатку у перших 8 бітах передають закодоване число 100 і потім 100 байт. Після цього комп'ютер буде очікувати наступні 8 біт і наступне повідомлення.
Ось у нас ще один протокол, за його допомогою можна передавати повідомлення (комп'ютерні).
Зв'язок не завжди надійний. Для надійної доставки повідомлень (комп'ютерних) використовують TCP. При виконанні протоколу TCP комп'ютери будуть перепитувати один одного - чи правильне повідомлення вони отримали. Є ще UDP - це коли комп'ютери не перепитують чи вони отримали. Навіщо треба? Ось ви слухаєте інтернет радіо. Якщо пару байт прийде з помилками - ви почуєте наприклад "пш" і далі знову музику. Не смертельно, та й не особливо важливо – для цього використовують UDP. А от якщо пару байт зіпсуються при завантаженні сайту - ви отримаєте хрень на моніторі і нічого не зрозумієте. Для сайту використовують TCP.