Код
#статьи

Модель TCP/IP: что это такое и как она работает

Рассказываем о главной «курьерской службе» интернета: как данные летают по Сети, зачем их фасуют по пакетам и кто за всем этим следит.

Фото: Britta Pedersen / Getty Images

Вы когда-нибудь задумывались, как мемы, сериалы и гифки с котиками перелетают континенты, чтобы оказаться у вас на компьютере? Отвечаем: для этого в интернете есть протоколы TCP и IP — они помогают устройствам безошибочно передавать данные на большие расстояния. Как у них это получается — рассказываем в статье.

Ранее мы уже писали о нюансах внутренней кухни интернета — разбирали, как устроены протокол HTTP, служба DNS и сетевая модель OSI. Сегодня смотрим на ситуацию немного под другим углом.

Что такое TCP/IP

Модель TCP/IP — это стек протоколов, которые задают правила передачи данных по Сети. Так как бал здесь правят протоколы TCP и IP, в честь них и назвали всю модель.

TCP (Transmission Control Protocol) отвечает за обмен данными. Он управляет их отправкой и следит за тем, чтобы они дошли до получателя в целости. У TCP есть свои гарантии, что всё пройдёт успешно, — о них чуть позже.

IP (Internet Protocol) отвечает за адресацию. Его задача — связывать друг с другом устройства и нарезать данные на пакеты для удобной отправки. Чтобы протокол мог быстро найти дорогу от одного компьютера к другому, придумали IP-адреса — уникальные идентификаторы, которые есть у каждого устройства в Сети.

Эти два протокола работают в связке: IP строит маршрут, а TCP контролирует, чтобы всё передавалось правильно. Условно их можно сравнить с тандемом Шерлока и Ватсона в бессмертной классике Дойля: первый решает проблему, а второй следит, чтобы тот не наделал глупостей и случайно не упал в Рейхенбахский водопад.

Минутка истории. Оба протокола, и TCP, и IP, на самом деле стары как мир. Их придумала ещё в семидесятых группа разработчиков под началом «отца интернета» Винта Сёрфа. То есть все наши смартфоны и умные часы общаются по правилам, которые заложили ещё во времена расцвета диско и космической миссии «Союз — Аполлон».

Но протоколами TCP и IP модель не ограничивается — например, есть ещё HTTP, FTP, UDP и сотни других. Все они заточены под определённые задачи. Так, HTTP помогает браузеру формировать запросы к серверу, FTP — скачивать файлы, а UDP — быстро передавать видео, музыку и игры, но с возможными потерями по пути.

Как работает TCP/IP

Настало время посмотреть, как модель TCP/IP работает в жизни. Допустим, вы заходите в интернет, чтобы почитать статью о том, как нейросети рисуют котиков. Запускаете браузер, открываете сайт Skillbox Media, нажимаете на заголовок статьи. А дальше начинается магия.

Как только вы кликнули на ссылку, браузер отправляет запрос на сервер, где лежит страница. Для этого он создаёт HTTP-запрос, в котором описывает всё, что сервер должен ему передать: «Я слышал, у тебя есть статья про генеративные нейронки. Дай, пожалуйста». Сервер отвечает: «Нет проблем» — и отправляет браузеру HTTP-ответ с нужными данными. И так они будут общаться до тех пор, пока вы не закроете сайт.

Браузер отправляет запрос, сервер возвращает ответ
Иллюстрация: Оля Ежак для Skillbox Media

Но сами по себе HTTP-запросы — это просто текстовые сообщения: они не знают, как найти сервер с нужной информацией, а тем более — как её оттуда достать. Для этих задач нам как раз и понадобятся протоколы TCP и IP.

Сначала IP определяет расположение сервера — или, точнее сказать, его IP-адрес. Чтобы найти нужный «айпишник», протокол использует систему DNS. Это такая глобальная база данных, где доменные имена сайтов лежат напротив их IP-адресов — например, сайту skillbox.ru соответствует IP-адрес 178.248.237.96.

Когда IP найдёт сервер и получит от него нужную страницу, он начнёт разбивать её на пакеты. Каждый пакет — это часть файла размером от 1 до 64 КБ. Внутри находятся сами данные и служебная информация: номер пакета, адреса отправителя и получателя и другое.

Зачем нужны пакеты. Представьте, что вам нужно перенести сразу много блюд из кухни в гостиную. Конечно, можно загрузить тарелки в обе руки, а часть поставить на голову, как делают женщины кенийского племени Луо, но, если вдруг в коридоре на вас нападёт кошка или младший брат с игрушечным пистолетом, есть риск всё выронить и испортить ужин. Гораздо безопаснее переносить блюда по одному, а ещё лучше — раздать по тарелке каждому члену семьи.

С данными точно так же: лучше передавать их маленькими порциями, так как никогда не знаешь, где по пути случится проблема. Если что-то пойдёт не так, вы потеряете всего один пакет, а не весь файл целиком.

Протокол IP ищет нужный путь, советуясь с системой DNS
Иллюстрация: Оля Ежак для Skillbox Media

Чтобы пакеты без потерь долетали от сервера к пользователю, подключается протокол TCP. Для этого в него зашили механизм подтверждения: когда сервер отправляет пакет, TCP спрашивает у устройства пользователя, нормально ли он добрался. Если ответ «да», протокол отправляет следующую порцию, если «нет» — пробует ещё раз.

После того как все пакеты получены, браузер собирает из них цельную страницу и выводит на экран.

Повторим ещё раз весь процесс:

  • Вы нажимаете на ссылку или вводите адрес сайта в строке браузера.
  • Браузер создаёт HTTP-запрос к серверу, чтобы тот отправил вам нужную страницу.
  • Протокол IP с помощью системы DNS находит сервер, где лежит страница, и разбивает её на пакеты.
  • Далее в игру вступает TCP — он устанавливает надёжное соединение между компьютером и сервером и следит, чтобы пакеты не потерялись по дороге.
  • Браузер склеивает пакеты воедино и рендерит страницу.

Этот алгоритм справедлив для статичных файлов — то есть таких, которые вы загружаете один раз и пользуетесь. Но если вы, например, хотите посмотреть видео, понадобится другой протокол — UDP. Он не гарантирует целостности данных и может потерять пакеты по пути, но это компенсируется скоростью передачи. Именно поэтому, например, вы видите пиксельные изображения, когда смотрите видео при плохом интернет-соединении.

Из каких уровней состоит TCP/IP

Пора окунуться в детали и узнать, как модель TCP/IP устроена изнутри. Глобально она делится на четыре уровня:

  • канальный уровень — отвечает за взаимодействие по сетевому оборудованию, например по Ethernet-кабелю или Wi-Fi;
  • межсетевой уровень — помогает отдельным сетям общаться друг с другом;
  • транспортный уровень — отвечает за передачу данных между устройствами, например, по протоколам TCP и UDP;
  • прикладной уровень — помогает приложениям общаться друг с другом с помощью интерфейсов или API.
Структура модели TCP/IP
Иллюстрация: Оля Ежак для Skillbox Media

На каждом уровне есть свои протоколы, которые обеспечивают надёжность передачи данных между компьютерами в Сети. Всего модель TCP/IP поддерживает сотни разных протоколов.

Канальный уровень

Для чего нужен: устанавливать физическое соединение между устройствами в локальной сети с помощью радиоволн и проводов.

Примеры протоколов: Ethernet, Wi-Fi, Bluetooth.

Как работает: данные делятся на небольшие кусочки (фреймы) и передаются между устройствами. Каждый фрейм содержит часть передаваемой информации и служебные данные.

Чтобы понять, куда отправлять фреймы, используют адресацию канального уровня — MAC-адреса. Это уникальные физические адреса устройств — по ним протоколы канального уровня определяют отправителей и получателей.

Из чего состоит фрейм
Изображение: Skillbox Media

Ещё одна важная задача канального уровня — проверять, что данные передаются безошибочно. Для этого протоколы используют свои средства проверки:

  • Если возникла ошибка, устройство отправляет фрейм обратно, а второе устройство передаёт его ещё раз.
  • Если всё прошло удачно, то фрейм передаётся на следующий уровень для обработки.

Межсетевой уровень

Для чего нужен: строить маршруты между устройствами по всему интернету — этот процесс называется маршрутизацией.

Примеры протоколов: IP, ICMP, ARP.

Как работает: IP-протокол вычисляет местонахождение устройств по их IP-адресам, а также строит до них кратчайшие пути и делит данные на пакеты (или, как говорят на юге России, — кульки :)).

Чтобы определить, где находится получатель и как построить путь к нему, IP обращается к системе DNS — она знает IP-адреса всех устройств в интернете.

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

Из чего состоит пакет
Изображение: Skillbox Media

После этого начинается передача пакетов по маршрутизаторам и коммутаторам. Но процессом отправки занимается уже следующий уровень — транспортный.

Транспортный уровень

Для чего нужен: передавать данные по маршруту, построенному на предыдущем уровне.

Примеры протоколов: TCP, UDP.

Как работает: устанавливает надёжное соединение между устройствами, а затем следит за передачей данных по нему и исправляет ошибки.

Главных протокола здесь два:

  • TCP (Transmission Control Protocol) — гарантирует передачу всех данных без потерь. Полезен при отправке текстовых файлов.
  • UDP (User Datagram Protocol) — не гарантирует передачу данных без потерь, но обеспечивает хорошую скорость. Полезен при просмотре видео или прослушивании музыки в интернете.
TCP решает всё медленно, но надёжно. UDP — быстро, но не факт, что качественно
Иллюстрация: Оля Ежак для Skillbox Media

И у нас остаётся последний уровень — прикладной.

Прикладной уровень

Для чего нужен: настраивать связи между приложениями — например, между браузером и серверным софтом.

Примеры протоколов: HTTP, FTP, SMTP.

Как работает: использует различные протоколы и сервисы, которые помогают приложениям обмениваться данными по интернету.

На прикладном уровне хранятся протоколы для всего, что нужно человеку: отправки имейлов, веб-браузинга, передачи файлов и удалённого доступа. Вот некоторые из них:

  • HTTP (Hypertext Transfer Protocol) — самый популярный протокол для передачи данных по интернету.
  • FTP (File Transfer Protocol) — ещё один известный протокол, заточенный под передачу файлов.
  • SMTP (Simple Mail Transfer Protocol) — протокол для отправки электронных писем.

Этот уровень нужен, чтобы упростить пользователям передачу данных по интернету. Именно с его помощью программисты и обычные пользователи взаимодействуют с моделью TCP/IP.

Что запомнить

Модель TCP/IP — это набор правил, по которым данные перемещаются по интернету. Главными здесь являются два протокола: TCP и IP. Они нужны, чтобы устанавливать надёжный канал связи между устройствами и передавать по нему данные.

Кроме TCP и IP в модели есть и другие протоколы — например, HTTP, Ethernet, FTP и UDP. Все они решают определённые задачи, связанные с доставкой данных от одного устройства к другому.

Модель TCP/IP очень похожа на сетевую модель OSI — подробнее о ней можно почитать в другой нашей статье.

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована