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

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

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

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

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

#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 розшифровується як Hypertext Transfer Protocol Secure.

Це розширення протоколу 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, зашифровані, що ускладнює перехоплення комунікації підслуховуванням даних, якими обмінюються.

Джерело зображення: Переповнення стека

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). Він надає розширені функції, як-от синхронізацію папок, і дозволяє декільком пристроям ефективніше керувати однією поштовою скринькою.

BGP

BGP означає Border Gateway Protocol.

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

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

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

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

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

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

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

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

DHCP

DHCP означає протокол динамічної конфігурації хоста.

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

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

DHCP Discover

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

Пропозиція DHCP

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

Запит DHCP

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

Підтвердження DHCP

Сервер 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 також використовується для виявлення максимальної одиниці передачі (PMTU). PMTU — це максимальний розмір IP-пакета, який можна передати без фрагментації по шляху.

Повідомлення ICMP, такі як «Потрібна фрагментація» та «Завеликий пакет», використовуються для визначення відповідного MTU для певного шляху, що допомагає уникнути фрагментації та оптимізувати передачу даних.

Крім того, ці повідомлення можна використовувати для відстеження часу, який потрібен пакетам для подорожі від джерела до пункту призначення та назад. Для цього використовується повідомлення «Time Exceeded».

SNMP

SNMP означає простий протокол керування мережею.

Це протокол прикладного рівня для керування та моніторингу мережевих пристроїв/систем.

SNMP працює за моделлю менеджер-агент. Є дві основні складові.

Менеджер SNMP

Менеджер відповідає за надсилання запитів і збір інформації від агентів SNMP. Він також може встановлювати параметри конфігурації для агентів.

Агент SNMP

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

MIB (Management Information Base) — це ієрархічна база даних, яка визначає структуру та організацію керованих об’єктів на мережевому пристрої. Він служить довідником як для менеджерів, так і для агентів SNMP, що гарантує, що вони розуміють дані один одного.

Існує три версії SNMP, які широко використовуються.

SNMPv1: оригінальна версія SNMP, яка використовує рядки спільноти для автентифікації. Він не має функцій безпеки і вважається менш безпечним.

SNMPv2c: покращення порівняно з SNMPv1 із підтримкою додаткових типів даних і покращеною обробкою помилок.

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

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

Висновок✍️

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