Як працює TCP/IP: Універсальна мова Інтернету

1

Уявіть два комп’ютери. Вони знаходяться на відстані багатьох миль один від одного. Вони мають різні операційні системи. Один – ПК на Windows, інший – сервер на Linux. Вони ніколи не зустрічалися. Тим не менш, вони спілкуються один з одним бездоганно. Як? Тому що вони розмовляють однією мовою. Ця мова – TCP/IP.

Це – універсальний стандарт. Він дозволяє цим переміщатися між будь-якими двома машинами в Інтернеті. Подайте його як правила дорожнього руху. Без нього веб перетворився б на хаотичну суміш несумісних сигналів.

TCP/IP розшифровується як Протокол керування передачею/Інтернет-протокол (Transmission Control Protocol/Internet Protocol). Це не лише один протокол. Це набір правил. Сукупність угод. Він регулює те, як дані передаються від відправника до отримувача.

Коротка історія мережі

Цей стек протоколів не з’явився звідки. Він був розроблений на початку 1970-х років. Ключові постаті? Боб Кан, Луї Пузен та Гвинт Серф. Вони шукали спосіб змусити різні комп’ютери обмінюватися даними через мережу, що зароджується.

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

До 1983 попередник сучасного Інтернету, мережа ARPANET, перейшла на TCP/IP. І закріпився. Переміг. Став основою глобальної мережі, якою ми користуємось сьогодні.

Ієрархічний підхід

Щоб зрозуміти, як це працює, необхідно звернутися до моделі OSI. Модель взаємозв’язку відкритих систем (Open Systems Interconnection) визначає сім рівнів комунікації. TCP/IP полегшує цю структуру. В основному він використовує п’ять із цих рівнів.

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

1. Фізичний рівень

Це апаратне забезпечення. Кабель. Оптоволокно. Радіохвилі. Цей рівень займається фізичними характеристиками передачі. Цікаво, що цей рівень часто виключається із суворої моделі TCP/IP. Але на практиці даним потрібне фізичне середовище для передачі. Звичайним прикладом є кабелі Ethernet.

2. Канальний рівень

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

3. Мережевий рівень

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

Зіркою цього рівня є Інтернет-протокол (IP). IP надає адреси кожному пристрою. Кожен комп’ютер має унікальну IP-адресу. Це цифровий поштовий індекс. Поточний стандарт – IPv6. Більш старі системи все ще використовують IPv4, але перехід на IPv6 необхідний через зростання кількості підключених пристроїв.

4. Транспортний рівень

Цей рівень керує комунікацією між програмами. Він гарантує, що дані дійдуть із точки А до точки Б без спотворень. Тут є два основні гравці: UDP та TCP.

UDP простий. Він швидкий. Він не перевіряє, чи доставлені дані. Він просто відправляє їх.

TCP – інша справа. Протокол управління передачею (Transmission Control Protocol) надійний. Він перевіряє наявність помилок. Він повторно передає втрачені пакети. Він правильно упорядковує дані. Це більше часу. Але він набагато надійніший. Для більшості повсякденних завдань надійність коштує невеликої затримки.

5. Прикладний рівень

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

Протоколи, такі як HTTP, HTTPS та SMTP, живуть тут. Коли ви відкриваєте браузер, ви використовуєте прикладний рівень. Ваш браузер використовує певні порти TCP або UDP, щоб визначити, яка програма має отримати дані.

Чому нам потрібні і TCP, і IP?

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

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

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

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

Інші протоколи в стеку

TCP та IP – це основа. Але вони не єдині. У набір входять багато інших протоколів. Кожен із них виконує свою конкретну роль.

  • HTTP/HTTPS : Вони обробляють веб-сторінки. Вони надсилають та отримують HTML та медіадані.
  • FTP : Протокол передачі файлів (File Transfer Protocol). Він переміщує файли між комп’ютерами.
  • SMTP та POP3 : Вони керують електронною поштою. SMTP надсилає її; POP3 витягує.
  • DNS : Система доменних імен (Domain Name System). Браузери використовують DNS для пошуку IP-адреси комп’ютера, коли ви вводите ім’я веб-сайту. Він переводить зрозумілі людині імена в числові IP-адреси.

Чому це важливо для вас

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

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

Це складна система. Але вона невидима. У цьому й суть. Вона працює так добре, що ми забуваємо про її існування. Поки що вона не перестає.

Наступного разу, коли ваша сторінка завантажується повільно, згадайте рівні. Згадайте про рукостискання. Згадайте про пакети, що подорожують через оптоволокно та повітря. Це диво інженерії. Універсальна мова. І він продовжує розвиватись.

IPv6 розширює адресний простір. З’являються нові протоколи для Інтернет-пристроїв (IoT). Правила постійно змінюються. Але мета залишається незмінною. Підключати машини. Обмінюватися даними. Підтримувати роботу Інтернету.

Це не є ідеальним. Воно ламається. Воно затримується. Воно втрачає пакети. Але вона працює. Здебільшого. І цього достатньо.