Зміст
Сьогодні ми розберемося в тому, що таке TCP/IP, як функціонує цей стек протоколів, розглянемо його переваги та недоліки.
Почнемо з найпростішого. Вся сучасна інфраструктура оплутана нескінченним числом мереж, що об’єднують сервери, лептопи, маршрутизатори, смартфони, десктопи, камери стеження та інше обладнання. Всі ці пристрої обмінюються між собою даними через мережі. Щоб один пристрій міг передати інформацію іншому пристрою, вони повинні діяти спільно. Два пристрої зобов’язані якимось чином розуміти, як встановлювати між собою сесію, які параметри передачі даних використовувати, як визначати і що робити у разі помилок, як завершувати передачу і т.д. Іншими словами, потрібен певний алгоритм, певний набір правил. Цей набір правил і називається протокол.
У далекому 1969 році в США підрозділ Міністерства оборони, який називався DARPA, розробила прототип сучасного інтернету – мережу під назвою Arpanet. Спочатку це були об’єднані чотири обчислювальні модулі, потім ще 11. Мережа поступово росла і розвивалася, включаючи вже термінали у Великій Британії, а також Норвегії.
Оскільки варіантів комп’ютерних мереж може бути нескінченне число, щоб уникнути плутанини були розроблені мережеві моделі, основною з яких стала OSI (The Open Systems Interconnection model).
Група протоколів за певними рівнями називається стеком протоколів. Сучасний Інтернет побудований на стеку протоколів TCP/IP. Як очевидно з назви стека TCP/IP – він складається із двох частин, протоколу TCP і протоколу IP. Забігаючи наперед — IP-протокол вирішує питання з адресацією, тоді як TCP – реалізує трансфер даних і стежить, щоб клієнт точно отримав свої байти. Цей стек використовує чотири рівні з перерахованих вище:
Прикладний рівень відповідає за працездатність усіляких мережевих додатків. Такі програми можуть використовувати свої персональні протоколи обміну даними. Це можуть бути браузери, що функціонують через HTTP, клієнти для завантаження по ftp, програми для роботи з електронною поштою, SMTP, SSH (надійна комунікація з хостом), DNS (співвідношення IP-адрес і символьних імен) та ін.
Трансфер пакетів від одного мережного вузла іншому забезпечує протокол IP – протокол мережного рівня. Щоб дані перейшли від хоста-відправника до хоста-отримувача, необхідно повідомити IP-адресу одержувача та відправника, а також вказати номер порту. Поєднання IP-адреси та номера порту за яким здійснюється передача даних називають сокетом. Для спрощення стандартів прийнято використовувати певні порти в залежності від функціонального призначення програми. Приміром, поштовий SMTP-сервер слухає 25 порт, POP3-сервер налаштований на 110 порт тощо. Більшість додатків на ПК є клієнтами та номери портів для них виділяються динамічно операційною системою. Серверні порти мають номер до 1024, клієнтські порти йдуть із більш великим значенням. Скажімо, сокет при зверненні до сервера порт HTTP може бути представлений як: 194.106.118.30:80. Відповідь у цьому випадку надходитиме на сокет виду aaa.bbb.ccc.ddd:xxxxx.
Щоб мати можливість звертатися до того чи іншого мережного інтерфейсу, протоколом застосовуються IP-адреси, що відповідають одній із двох версій протоколу: IPv4 та IPv6. Для версії IPv4 використовуються 32-бітові адреси по 4 октети (вісім позицій під нуль або одиницю). Завдяки IP-адресам, що закріплені за пакетами даних, мережа визначає, з якого вузла той чи інший пакет надійшов і до якого хосту його слід відправити. Застосовувати довгі адресні записи з тридцяти двох нулів та одиниць не дуже зручно, тому IP-адресу вирішили вказувати у десятковій системі. Оскільки адресний простір протоколу IPv4 обмежено 4 294 967 296 (дві ступеня 32) адресами, було розроблено оновлений варіант протоколу – IPv6, у якому використовується довжина адреси 128 біт.
Для зручності адресації замість числових значень використовується символьно-цифрове ім’я хоста. Щоб перетворити IP-адресу на доменне ім’я застосовується сервіс доменних імен DNS (Domain Name Server). DNS моніторить 53-й порт UDP (рідше – TCP).
Глобальна мережа складається з багатьох з’єднаних локальних мереж. Ця особливість вплинула на запис IP-адреси: вона включає як дані про адресу мережі, так і інформацію про адресу хоста в цій мережі. Щоб можна було визначити, де закінчується адреса мережі та починається адреса комп’ютера в цій мережі, вигадали маску підмережі. Це свого роду інструкція, яка говорить про те, як слід читати IP-адресу, де межа між адресою мережі та адресою хоста.
Центральним протоколом транспортного рівня TCP/IP є TCP (Transmission Control Protocol), крім нього ще використовуються два допоміжні протоколи – UDP (User Datagram Protocol ) і SCTP. На відміну від UDP, в якому передача датаграм відбувається без встановлення з’єднання, механізм передачі даних через TCP гарантує точне пересилання даних. З цієї причини, на практиці частіше використовується TCP – він перевіряє передані пакети з даними та при виявленні помилок, перезапитує пакети по новій. Крім того, протокол TCP стежить за правильною послідовністю переданих пакетів. Передача даних за допомогою TCP починається з так званого “рукостискання” – процедури встановлення з’єднання, яке виконується за три кроки.
Клієнт надсилає одержувачу фрагмент даних з номером послідовності та прапором SYN. Сервер виділяє пам’ять для обробки завдання та повертає відправнику фрагмент з номером послідовності та прапорами SYN та ACK, після чого перемикається в режим SYN-RECEIVED. У разі збою в роботі сервер сигналізує клієнту про проблему, посилаючи сегмент із прапором RST (отримавши відмову, хост-відправник припиняє спроби встановити з’єднання).
Отримавши прапор SYN, клієнт передає сегмент із прапором ACK, і якщо цей прапор вузол вже отримав, включається режим ESTABLISHED. Якщо за десять секунд сервер не відповідає, клієнт повторює свій запит. Коли сервер із режимом SYN-RECEIVED отримує пакет із прапором ACK, він включає режим ESTABLISHED. Не дочекавшись відповіді, після деякого часу він вимикає сокет, включаючи режим CLOSED.
Завершується сесія між двома хостами за три кроки:
Сфера застосування UDP обмежується програмами з потоковими даними – IPTV, Voice over IP, онлайн-іграх і т.д.
У цих додатках цифрова достовірність передачі даних не критична, тому нею жертвують (при необхідності функція перевірки достовірності даних може бути перекладена сама програма).
Для контролю мережевих з’єднань можна використовувати набір команд, введених у терміналі. Наприклад, за допомогою команди iptrace (UNIX) виконується трасування (аналіз, відстеження) пакетів на рівні мережного інтерфейсу. Виклик даних про трасування даних у шістнадцятковому та текстовому форматах здійснюється за допомогою команди ipreport, а команда trpt виконає трасування пакетів TCP на транспортному рівні, показавши їх порядок прямування, час і стан з’єднання TCP.
Щоб переглянути на комп’ютері під керуванням Windows всі встановлені з’єднання, необхідно відкрити термінал (cmd) та ввести команду netstat -an. У вікні командного рядка буде виведено список TCP та UDP коннектів, із зазначенням адреса та поточного стану між хостами.
Чому саме цей стек став таким популярним? По-перше, завдяки цілком загальнодоступній специфікації. Цей стек протоколів дозволяє реалізувати широкий спектр сервісних функцій від спільного використання принтерів і файлів до функцій віддаленого доступу до ОС. TCP/IP – це добре масштабований стек надійних протоколів, на базі якого можна легко налаштовувати роботу додатків і керувати маршрутизацією в глобальній або локальній мережі.
Однак, у стека є і мінуси. Із недоліків TCP/IP можна виділити високе навантаження на операційну систему за великої кількості з’єднань. Крім того, стек протоколів передбачає великий час на встановлення коннекта, що дуже помітно при підключенні декількох TCP-з’єднань. Також для TCP/IP характерна тривала реакція на втрату пакета.
Тепер ви знаєте основні принципи роботи TCP/IP, а також маєте уявлення про переваги та недоліки даної моделі. Якщо у вас залишилися питання, ви також можете почитати нашу статтю про маски підмережі, де ми докладніше розглянули це питання. Також ми рекомендуємо вам переглянути відео, в якому детально розібрано, як працюють мережі TCP/IP та веб-додатки.
Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…
У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…
Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…
Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…
Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…
Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…