Пояснення всіх поширених мережевих протоколів

Мережевий протокол – це, по суті, набір інструкцій, за якими пристрої обмінюються інформацією в мережі.

Це можна порівняти з правилами спілкування між людьми, де кожен учасник дотримується певних норм та процедур.

Протоколи визначають, як саме мають бути структуровані дані, яким чином пристрої ідентифікують себе, а також як слід реагувати на помилки або конфлікти, що можуть виникнути.

Мережеві протоколи поділяються на три основні категорії: протоколи зв’язку, безпеки та управління.

#1. Протоколи зв’язку

Ці протоколи відповідають за забезпечення обміну даними між різними пристроями в мережі. Вони регламентують методи форматування, передачі та отримання інформації, забезпечуючи ефективну комунікацію. Приклади таких протоколів включають HTTP/HTTPS, FTP, TCP та UDP.

#2. Протоколи безпеки

Протоколи безпеки створені для забезпечення конфіденційності та достовірності даних під час їх передачі в мережі. Вони створюють захищені канали зв’язку, гарантуючи, що важлива інформація не стане жертвою перехоплення або фальсифікації.

Серед прикладів можна назвати SSL/TLS, що використовуються для шифрування, SSH для захищеного віддаленого доступу, а також безпечні варіанти протоколів електронної пошти, такі як SMTPS і POP3S.

#3. Протоколи управління

Протоколи управління використовуються для адміністрування, моніторингу та контролю мережевих пристроїв і ресурсів. Вони допомагають адміністраторам мереж ефективно налаштовувати та діагностувати проблеми в роботі мережевих компонентів.

До таких протоколів належать DHCP для автоматичного розподілу IP-адрес, SNMP для управління мережевими пристроями, ICMP для діагностики, і BGP для маршрутизації та інформування про доступність.

Розглянемо детальніше деякі з найбільш поширених протоколів в кожній із цих категорій.

Протоколи зв’язку

HTTP

HTTP, або протокол передачі гіпертексту, є основою для взаємодії між веб-браузером і сервером.

Це протокол прикладного рівня, що функціонує поверх моделі OSI.

Коли ви вводите URL-адресу в браузері та натискаєте Enter, браузер надсилає HTTP-запит до веб-сервера. Сервер обробляє цей запит і відправляє HTTP-відповідь, що містить потрібну інформацію.

Це може бути веб-сторінка, зображення, відео або будь-який інший ресурс, який зберігається на сервері.

HTTP є протоколом без збереження стану. Це означає, що кожен запит від клієнта до сервера розглядається як окрема, незалежна операція.

Сервер не зберігає інформацію про попередні запити від того самого клієнта. Ця простота робить HTTP надзвичайно популярним.

HTTP визначає декілька методів запиту, таких як GET (отримання даних), POST (відправка даних на обробку), PUT (оновлення ресурсу), DELETE (видалення ресурсу) та інші. Ці методи вказують тип операції, яку клієнт хоче виконати на сервері.

HTTP-відповіді, як правило, містять код стану, що вказує на результат запиту.

Наприклад, код 200 свідчить про успішний запит, а 404 – про те, що ресурс не знайдено.

З часом було розроблено декілька версій HTTP, де HTTP/1.1 довгий час був найпоширенішим стандартом.

HTTP/2 та HTTP/3 (також відомий як QUIC) були розроблені для підвищення продуктивності.

HTTPS

HTTPS, або протокол передачі гіпертексту через захищений канал, є розширенням HTTP, що забезпечує безпечний обмін даними в комп’ютерних мережах.

Він додає шар захисту до звичайного HTTP, шифруючи дані, якими обмінюються браузер і веб-сервер, використовуючи криптографічні протоколи, такі як SSL/TLS. Це означає, що навіть якщо хтось перехопить дані, їх буде важко прочитати або розшифрувати.

HTTPS також включає в себе аутентифікацію сервера.

Коли браузер підключається до веб-сайту через HTTPS, сайт надає цифровий сертифікат, виданий надійним центром сертифікації (CA).

Цей сертифікат підтверджує ідентичність сайту, гарантуючи, що клієнт підключається до потрібного сервера, а не до зловмисного ресурсу.

Веб-сайти, що використовують HTTPS, мають “https://” на початку URL-адрес, що означає безпечне з’єднання.

HTTPS зазвичай використовує порт 443 для зв’язку, в той час як HTTP – порт 80. Завдяки цьому веб-сервери можуть легко відрізняти захищені з’єднання від незахищених.

Пошукові системи, такі як Google, надають перевагу веб-сайтам, що використовують HTTPS, у рейтингу пошукової видачі.

Браузери також можуть попереджати користувачів, коли захищена веб-сторінка HTTPS містить елементи (наприклад, зображення або скрипти), що завантажуються через незахищене з’єднання HTTP. Це явище відоме як “змішаний вміст”, і може становити загрозу безпеці.

Ось детальна стаття про те, як отримати SSL-сертифікат для веб-сайту. Не соромтеся переглянути її.

FTP

Протокол передачі файлів (FTP) є стандартним мережевим протоколом, призначеним для передачі файлів між клієнтом і сервером в комп’ютерній мережі.

FTP працює за моделлю клієнт-сервер. Це означає, що клієнт ініціює з’єднання з сервером для запиту та передачі файлів.

FTP використовує два порти для зв’язку і може працювати у двох режимах: активному та пасивному.

Порт 21 призначений для контрольного з’єднання, через яке передаються команди та відповіді між клієнтом і сервером.

Активний режим, традиційний режим, працює за принципом клієнт-серверної моделі. Для передачі даних тут відкривається додатковий порт (зазвичай у діапазоні 1024-65535).

Пасивний режим, навпаки, часто використовується, коли клієнт знаходиться за брандмауером або пристроєм NAT. У цьому випадку сервер відкриває випадковий порт з високим номером для передачі даних.

FTP зазвичай вимагає аутентифікації для доступу до файлів на сервері. Користувачі повинні вказати ім’я користувача та пароль для входу.

Деякі FTP-сервери також підтримують анонімний доступ. Користувачі можуть увійти за допомогою загального імені користувача, наприклад “анонімний” або “FTP”, використовуючи свою електронну адресу як пароль.

FTP підтримує два режими передачі даних: режим ASCII та двійковий режим.

Режим ASCII призначений для текстових файлів, а двійковий режим використовується для нетекстових файлів, таких як зображення та виконувані файли. Режим встановлюється залежно від типу файлу, що передається.

Традиційний FTP не є безпечним протоколом, оскільки він передає дані, включаючи імена користувачів і паролі, у вигляді звичайного тексту.

Захищений FTP (SFTP) та FTP через SSL/TLS (FTPS) є безпечнішими альтернативами, які шифрують передачу даних для захисту конфіденційної інформації.

Ось детальна стаття про SFTP проти FTPS і про те, який протокол використовувати.

TCP

Протокол керування передачею (TCP) є одним із основних протоколів транспортного рівня в наборі протоколів IP.

Він відіграє важливу роль у забезпеченні надійної та впорядкованої передачі даних між пристроями через IP-мережі.

TCP встановлює з’єднання між відправником і одержувачем перед початком будь-якої передачі даних. Це встановлення з’єднання включає тристороннє рукостискання (SYN, SYN-ACK, ACK) та процедуру закриття з’єднання після завершення обміну даними.

Він також підтримує повнодуплексний зв’язок, який дозволяє надсилати та отримувати дані одночасно в обох напрямках в межах встановленого з’єднання.

TCP зазвичай відстежує умови мережі та регулює швидкість передачі, щоб уникнути перевантаження мережі.

Цей протокол має механізми перевірки помилок для виявлення та виправлення пошкодження даних під час передачі. Якщо виявлено, що сегмент даних пошкоджено, приймач надсилає запит на повторну передачу.

TCP використовує номери портів для ідентифікації конкретних служб або програм на пристрої. Номери портів допомагають спрямовувати вхідні дані до правильної програми.

Приймач у TCP-з’єднанні надсилає підтвердження (ACK) для підтвердження отримання сегментів даних. Якщо відправник не отримує ACK протягом певного часу, він повторно передає сегмент даних.

TCP зберігає інформацію про стан з’єднання як на стороні відправника, так і на стороні одержувача. Ця інформація допомагає відстежувати послідовність сегментів даних і керувати з’єднанням.

IP

IP, або Інтернет-протокол, є основою для зв’язку та обміну даними в комп’ютерних мережах, включаючи глобальну мережу, відому як Інтернет.

IP використовує систему числових адрес для ідентифікації пристроїв в мережі. Ці числові адреси, відомі як IP-адреси, можуть бути як IPv4, так і IPv6.

Адреси IPv4 зазвичай мають формат чотирьох наборів десяткових чисел (наприклад, 192.168.1.1), в той час як адреси IPv6 є довшими і використовують шістнадцяткове позначення.

IP забезпечує маршрутизацію пакетів даних між пристроями в різних мережах.

Маршрутизатори та комутатори відіграють ключову роль у спрямуванні цих пакетів до призначених пунктів призначення на основі їх IP-адрес.

IP зазвичай використовує методологію комутації пакетів. Це означає, що дані розбиваються на менші пакети для передачі через мережу. Кожен пакет містить IP-адресу джерела та призначення, що дозволяє маршрутизаторам приймати рішення щодо переадресації.

IP є протоколом без встановлення з’єднання. Він не встановлює виділене з’єднання між відправником і одержувачем перед передачею даних.

Кожен пакет обробляється окремо і може рухатися різними маршрутами для досягнення пункту призначення.

UDP

UDP, або протокол дейтаграм користувача, є легким протоколом без встановлення з’єднання, який надає спосіб надсилання даних через мережу без формального з’єднання.

На відміну від TCP, UDP не встановлює з’єднання перед надсиланням даних. Він просто пакує дані в дейтаграми та відправляє їх до пункту призначення.

Він не гарантує доставку даних і не використовує механізми для виявлення та виправлення помилок. Якщо пакет втрачено або надійшов не в порядку, це залежить від прикладного рівня.

UDP має менше накладних витрат, ніж TCP, оскільки він не включає такі функції, як керування потоком, виправлення помилок або підтвердження. Це робить його швидшим, але менш надійним.

Він також не має вбудованих механізмів контролю перевантажень, тому можна перевантажити мережу UDP-трафіком, що потенційно може спричинити збій.

UDP зазвичай використовується в ситуаціях, коли низька затримка та висока швидкість передачі даних є важливішими, ніж гарантована доставка. Приклади включають потокове передавання аудіо та відео в реальному часі, онлайн-ігри, DNS та деякі програми IoT.

Однією з переваг UDP є функція мультиплексування, що дозволяє кільком програмам на одному пристрої використовувати той самий UDP-порт. Потоки даних розрізняються за номерами портів.

Розберемо UDP на простому прикладі.

Уявіть, що ви хочете надіслати повідомлення своєму другові на шумному майданчику, використовуючи м’яч, що стрибає. Ви вирішуєте використовувати UDP, що схоже на кидання м’яча без офіційного спілкування. Ось як це працює:

  • Ви пишете своє повідомлення на аркуші паперу та обмотуєте його навколо м’яча.
  • Ви кидаєте м’яч у бік свого друга. Ви не чекаєте, поки друг підтвердить, що отримав його, а просто кидаєте, сподіваючись, що він його зловить.
  • М’яч стрибає і досягає вашого друга, який намагається його зловити. Іноді через шум м’яч може відскочити від рук або прилетіти не за порядком.
  • Ваш друг читає повідомлення, і якщо йому вдалося зловити м’яч, він отримує повідомлення. Якщо ні, то він може пропустити його, і ви про це не дізнаєтеся, оскільки немає способу перевірки.

Отже, у цьому прикладі:

М’яч представляє протокол UDP, який надсилає дані без встановлення з’єднання.

Ви відправляєте м’яч без чекання на відповідь, що нагадує UDP, де немає з’єднання і не гарантується доставка.

Можливість відскоку або втрати м’яча символізує ненадійність UDP.

Ваш друг, читаючи повідомлення, схожий на прикладний рівень, що обробляє дані, отримані через UDP, і, можливо, займається будь-якими відсутніми даними.

Протоколи безпеки

SSH

SSH, або Secure Shell, є мережевим протоколом, призначеним для безпечного зв’язку між клієнтом і сервером у незахищеній мережі. Він надає можливість віддаленого доступу та управління пристроями через інтерфейс командного рядка з високим рівнем безпеки.

SSH використовує криптографічні методи для аутентифікації як клієнта, так і сервера. Це гарантує, що ви підключаєтеся до потрібного сервера і що сервер може підтвердити вашу особу перед тим, як надати доступ.

Всі дані, що передаються через SSH-з’єднання, зашифровані, що ускладнює перехоплення комунікації та викрадення даних.

Джерело зображення: Stack Overflow

SSH використовує пару ключів для аутентифікації. Пара ключів складається з відкритого ключа (який надається серверу) та закритого ключа (який зберігається в таємниці).

Ось стаття про те, як це працює – Вхід SSH без пароля

Коли ви підключаєтеся до SSH-сервера, ваш клієнт використовує закритий ключ для підтвердження вашої особистості.

Крім цього, він також підтримує традиційну аутентифікацію за ім’ям користувача та паролем. Однак це менш безпечно і часто не рекомендується, особливо для серверів, підключених до Інтернету.

SSH використовує порт 22 для зв’язку за замовчуванням, але це можна змінити з міркувань безпеки. Зміна номера порту може допомогти зменшити кількість автоматизованих атак.

SSH зазвичай використовується для віддаленого адміністрування сервера, передачі файлів (з використанням таких інструментів, як SCP та SFTP) і безпечного доступу до віддаленого інтерфейсу командного рядка.

Він широко використовується в адмініструванні Unix-подібних операційних систем і доступний у Windows через різні програмні рішення.

SMTP

SMTP, або простий протокол передачі пошти, є стандартом для надсилання вихідних повідомлень електронної пошти від клієнта або сервера електронної пошти до сервера електронної пошти одержувача.

SMTP є фундаментальною частиною комунікації електронною поштою, і він працює в поєднанні з іншими протоколами, такими як IMAP/POP3, для забезпечення повного циклу електронної пошти, включаючи надсилання, отримання та зберігання повідомлень.

Коли ви створюєте електронний лист і натискаєте “Надіслати” в поштовому клієнті, він використовує SMTP для передачі повідомлення на сервер вашого постачальника електронної пошти.

Він використовує порт 25 для незашифрованого зв’язку та порт 587 для зашифрованого зв’язку (з використанням STARTTLS). Порт 465 також використовувався для зашифрованого зв’язку SMTP, але він менш поширений.

Багато серверів SMTP вимагають автентифікації для надсилання електронних листів, щоб запобігти несанкціонованому використанню. Використовуються такі методи аутентифікації, як ім’я користувача та пароль, або більш безпечні методи, наприклад, OAuth.

Ці сервери SMTP часто діють як ретранслятори, тобто приймають вихідні електронні листи від клієнтів (наприклад, вашої поштової програми) і пересилають їх на сервер електронної пошти одержувача. Це допомагає маршрутизувати електронні листи через Інтернет.

З’єднання можна захистити за допомогою шифрування через TLS або SSL, особливо під час надсилання конфіденційної інформації електронною поштою.

Протоколи управління

POP3

POP3, або протокол поштового відділення версії 3, є одним із найпоширеніших протоколів отримання електронної пошти. Він використовується для отримання повідомлень з поштового сервера до клієнтської програми електронної пошти.

POP3 розроблено для роботи в режимі “зберігання та пересилання”. Він отримує електронні листи з сервера і зазвичай видаляє їх з сервера після збереження копії на пристрої клієнта.

Деякі клієнти електронної пошти надають можливість залишати копію електронного листа на сервері, але це не є стандартною поведінкою.

Він використовує порт 110 для незашифрованого зв’язку. Порт 995 зазвичай використовується для захищеного зв’язку POP3 через TLS/SSL.

POP3 є протоколом без збереження стану. Це означає, що він не відстежує електронні листи, які ви вже завантажили. Щоразу, коли ви підключаєтеся до сервера, він отримує всі непрочитані повідомлення. Це може призвести до проблем із синхронізацією, якщо ви отримуєте доступ до електронної пошти з кількох пристроїв.

POP3 призначений в основному для отримання електронних листів з папки “Вхідні”. Він може не підтримувати отримання електронних листів з інших папок на сервері, таких як “Надіслані” чи “Чернетки”.

Оскільки POP3 не синхронізує папки електронної пошти між сервером і клієнтом, дії, виконані на одному пристрої (наприклад, видалення електронного листа), не відображатимуться на інших пристроях.

Рекомендується використовувати захищену версію POP3 (POP3S або POP3 через SSL/TLS), яка шифрує зв’язок між поштовим клієнтом і сервером для підвищення безпеки.

POP3 сьогодні використовується рідше, ніж IMAP (Internet Message Access Protocol). IMAP надає розширені можливості, такі як синхронізація папок, і дозволяє кільком пристроям ефективніше керувати однією поштовою скринькою.

BGP

BGP, або протокол граничного шлюзу, є стандартизованим протоколом зовнішнього шлюзу, що використовується в мережах для обміну інформацією про маршрутизацію та доступність між автономними системами (AS).

Автономна система – це сукупність IP-мереж і маршрутизаторів під управлінням однієї організації, що представляє спільну політику маршрутизації в Інтернеті.

BGP є векторним протоколом шляху. Це означає, що він відстежує шлях (список автономних систем), який проходять пакети даних до пункту призначення. Ця інформація допомагає маршрутизаторам BGP приймати рішення щодо маршрутизації на основі політик і атрибутів шляху.

Він в основному використовується для визначення найкращого шляху для проходження даних при перетині кількох мереж, що керуються різними організаціями або постачальниками послуг.

BGP підтримує агрегування маршрутів, що допомагає зменшити розмір глобальної таблиці маршрутизації шляхом зведення кількох префіксів IP в одному оголошенні маршруту.

Протокол BGP використовує різні механізми для запобігання циклам маршрутизації, включаючи використання атрибута шляху AS і правило поділеного горизонту.

Він використовується як у публічному Інтернеті, так і в приватних мережах.

У публічному Інтернеті він використовується для обміну інформацією про маршрути між провайдерами та великими мережами. У приватних мережах він використовується для внутрішньої маршрутизації та з’єднання з Інтернетом через граничний маршрутизатор.

DHCP

DHCP, або протокол динамічної конфігурації хоста, використовується для автоматичного призначення IP-адрес та інших параметрів мережевої конфігурації пристроям у мережі TCP/IP.

Процес DHCP зазвичай складається з чотирьох основних етапів:

DHCP Discover

Коли пристрій приєднується до мережі, він відправляє широкомовне повідомлення DHCP Discover, щоб знайти доступні сервери DHCP.

DHCP Offer

Сервери DHCP у мережі відповідають на повідомлення DHCP Discover, відправляючи пропозицію DHCP. Кожен сервер надає IP-адресу та відповідні параметри конфігурації.

DHCP Request

Пристрій вибирає одну з пропозицій DHCP та відправляє повідомлення DHCP Request на вибраний сервер, запитуючи запропоновану IP-адресу.

DHCP Ack

Сервер DHCP підтверджує запит, відправляючи повідомлення про підтвердження DHCP, що підтверджує призначення IP-адреси.

Розберемо принцип роботи DHCP на простому прикладі.

Уявіть, що у вас є домашня мережа Wi-Fi, і ви хочете, щоб ваші пристрої (наприклад, телефони та ноутбуки) підключалися до неї без ручного налаштування параметрів мережі кожного пристрою. Саме тут на допомогу приходить DHCP:

  • Припустимо, ваш смартфон щойно підключився до домашньої мережі Wi-Fi.
  • Смартфон надсилає повідомлення: “Привіт, я тут новачок. Хтось може дати мені IP-адресу та інші відомості про мережу?”
  • Ваш Wi-Fi маршрутизатор, який діє як сервер DHCP, чує запит. Він відповідає: “Звичайно, у мене є доступна IP-адреса, і ось інші параметри мережі, які вам потрібні, як-от маска підмережі, шлюз за замовчуванням і DNS-сервер.”
  • Смартфон отримує цю інформацію та автоматично налаштовується з використанням наданої IP-адреси та параметрів мережі.

Тепер ваш смартфон готовий використовувати Інтернет та взаємодіяти з іншими пристроями в вашій домашній мережі.

ICMP

Протокол керуючих повідомлень Інтернету (ICMP) є протоколом мережевого рівня, що використовується в наборі протоколів IP для надання зворотного зв’язку щодо стану мережевих операцій.

ICMP в основному використовується для повідомлення про помилки та надання діагностичної інформації, пов’язаної з обробкою IP-пакетів.

Наприклад, якщо маршрутизатор стикається з проблемою під час пересилання IP-пакету, він генерує повідомлення про помилку ICMP і відправляє його назад до джерела пакета.

Серед поширених повідомлень про помилки ICMP: “Пункт призначення недоступний”, “Час очікування вичерпано” і “Проблема з параметрами”.

Одним із найвідоміших застосувань ICMP є команда “ping”, що використовується для перевірки доступності хоста.

Команда ping надсилає повідомлення ICMP Echo Request на цільовий хост, і якщо хост доступний, він повинен відповісти повідомленням ICMP Echo Reply. Це є простим способом перевірки підключення до мережі.

ICMP також використовується для ви