Введение

Протоколы и сетевые взаимодействия, скрытые от глаз большинства, — это та основа, которая превращает глобальную сеть в инструмент для решения сложнейших задач. В этой статье предлагаю углубиться в фундаментальную архитектуру интернета через призму модели протоколов TCP/IP. Также рассмотрим процесс передачи данных и покажем, как TCP/IP гарантирует их точную доставку. Эта статья поможет нам не только укрепить теоретические знания, но и избежать типичных ошибок, в том числе на собеседовании.

Основы интернета

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

Посмотрим на то, как это выглядит схематично.

Как работает заказ услуг через интернет схематично.
Как работает заказ услуг через интернет схематично.

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

Ключевые элементы в работе интернета:

  1. Устройства. Самый главный элемент, который знаком каждому из нас и без которой использовать интернет не представлялось бы возможным.

    • Какие бывают устройства: компьютеры, смартфоны, планшеты и онлайн TV.

  2. Подключения. Это то, что соединяет наше устройство с другим устройством для обмена данными. Например, наш смартфон и сервер web-студии это 2 устройства.

    • Какие бывают подключения: Wi-Fi, Кабель Ethernet, сотовые сети.

  3. Протоколы. Это то, что определяет набор правил, по которому будут передаваться данные между устройствами.

    • IP (internet protocol/интернет протокол) - самый популярный из протоколов.

  4. Серверы. Серверы получают информацию, хранят информацию, предоставляют доступ к информации через интернет.

    • Сервер также является устройством, но его выделяют в отдельную сущность, так как его задача заключается в том, чтобы обрабатывать запросы, обеспечивать доступ к ресурсам для других устройств сети (компьютеров, смартфонов, планшетов и т.д.).

  5. Запросы и ответы. Проще говоря это обмен данными между нашим устройством и сервером.

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

Посмотрим на работу всех этих элементов интернета одновременно на схеме.

Процесс обмена данными с помощью интернета
Процесс обмена данными с помощью интернета

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

Итого об основах интернета:

  1. Узнали, как работает заказ услуг через интернет.

  2. Рассмотрели, какие существуют ключевые элементы (сущности) в работе интернета.

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

Модель протоколов TCP/IP

В интернете есть несколько понятий и определений того, что такое TCP/IP, вот несколько из них.

  • Определение 1: TCP/IP - Transmission Control Protocol/Internet Protocol (Протокол передачи данных/Интернет протокол).

  • Определение 2: TCP/IP это модель протокола передачи данных.

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

Для начала нужно понять, что такое протокол передачи данных. Протокол это описание различных правил, и соглашений, которые определяют способ обмена данными между устройствами и программами в сети. По другому говоря, есть набор правил, по которым передаются данные в интернете между разными источниками, обычно между компьютерами и серверами. Также можно представить модель протоколов как шаблонный набор инструкций, который "говорит" устройствам в интернете как они должны обмениваться данными между собой. Но проще говоря, TCP/IP это все равно модель протокола передачи данных.

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

Если с курьером и спортивными питанием всё так или иначе понятно, то давайте проведём аналогию с моделью протоколов TCP/IP. Также как курьер следит за тем, что заказ доставлен, так и протокол следит за тем, чтобы отправленная вами информация была правильно отправлена и правильно получена на другом конце, чтобы все части информации были расположены в правильном порядке, чтобы ничего не пропало. Таким образом, когда мы используем устройство, подключенное к сети интернет для совершения покупок, тогда информация отправляется на сервер (разбивая данные на пакеты), используя модель протокола TCP/IP, а затем информация собирается на сервере.

Уровни протоколов TCP/IP

Модель протокола передачи данных (TCP/IP) состоит из 4-х уровней, рассмотрим каждый из них.

  1. Канальный (1-й уровень). На канальном уровне определяется каким именно образом устройство подключено к интернету. Важность данного этапа заключается в физической возможности подключения к интернету. Без физического подключения нет доступа в интернет и протокол далее не будет работать.

    1. Варианты подключения устройства к сети интернет: Wi-Fi, Кабель Ethernet, сотовая сеть.

  2. Сетевой (2-й уровень). На сетевом уровне подключается протокол IP, он отвечает за маршрутизацию пакетов данных через интернет от одного устройства к другому.

    1. Важно иметь в виду, что каждое устройство в интернете имеет свой уникальный IP-адрес, что позволяет идентифицировать устройства сети.

  3. Транспортный (3-й уровень). На транспортном уровне происходит передача данных между приложениями. Могут использоваться 2 протокола: TCP или UDP. Данные протоколы по разному доставляют данные.

    1. TCP (Transmission Control Protocol) - протокол управления передачей.

      1. Устанавливает соединение между получателем и отправителем данных.

      2. После отправки каждого из пакетов отправитель получает подтверждение от получателя о том, что пакет доставлен.

      3. Обеспечивает надежную и упорядоченную доставку данных.

      4. Если пакет не был доставлен или был поврежден и отправитель не получил подтверждение, то TCP повторно отправит этот пакет.

      5. Разбивает информацию на пакеты.

      6. Работает медленнее UDP.

    2. UDP (User Datagram Protocol) - протокол пользовательских датаграмм.

      1. Не устанавливает соединение между получателем и отправителем, а просто формирует отправляет датаграмму (пакет).

      2. Получать не отправляет подтверждение отправителю после получения пакета (датаграммы).

      3. Протокол не гарантирует надёжность данных. Пакеты могут теряться, дублироваться или приходить в неправильном порядке.

      4. UDP не отправит пакет повторно если он не был доставлен или поврежден.

      5. Разбивает информацию на пакеты (также как и TCP).

      6. Работает быстрее TCP.

  4. Прикладной (4-й уровень). Прикладной уровень является верхним уровнем модели TCP/IP обеспечивая связь между приложениями пользователей через интерфейс и базовыми сетевыми протоколами.

    1. Примеры базовых протоколов:

      1. HTTP (HyperText Transfer Protocol) - протокол передачи гипертекста. Применяется для передачи данных в сети интернет: веб-сайты, изображения, видео, аудио, стили CSS, скрипты JavaScript и т.д.

      2. FTP (File Transfer Protocol) - протокол передачи файлов. Применяется для передачи файлов между устройствами через интернет. Данный протокол преимущественно используется файл-менеджерами.

      3. SMTP (Simple Mail Transfer Protocol) - простой протокол передачи почты. Применяется для отправки или получения электронной почты. Пример приложения, которое использует этот протокол: Outlook.

      4. DNS (domain name system) - система доменных имён. Применяется для преобразования доменного имени в IP-адрес. Например, сайт habr.ru имеет IP-адрес 178.248.237.68

      5. Telnet (Teletype Network) - применяется для удалённого входа в систему и доступа к устройствам сети.

      6. SSH (Secure Shell) - безопасная оболочка. Применяется для безопасного удалённого доступа к сетевым устройствам.

    2. Итого мы можем сказать, что прикладной уровень отвечает за возможность пользователям через различные программы (почтовый клиент, веб-браузер, средства онлайн-связи) использовать сеть интернет.

Итого о модели протоколов TCP/IP: это набор правил, по которым предаются данные через интернет, и выступает в роли "курьера-логиста", который следит за тем, чтобы информация была разделена на пакеты, отправлена и доставлена получателем. У модели протоколов TCP/IP есть 4 уровня: канальный (определяет как физически устройство подключено к сети), сетевой (отвечает за маршрутизацию данных), транспортный (обеспечивает передачу данных между приложениями используя один из протоколов TCP или UDP), прикладной (верхний уровень, который обеспечивает связь между приложениями через интерфейс).

TCP применяется в тех случаях, когда важны высокая надёжность и последовательность данных. Примеры приложений:

  • Веб-браузеры (HTTP/HTTPS)

  • Передача файлов (FTP)

  • Электронная почта (SMTP, POP3, IMAP)

  • Защищённые сетевые соединения (SSH)

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

  • Видео и аудио звонки

  • Игры с многими игроками

  • DNS (Domain Name System) - этот протокол, который мы ещё рассмотрим позже, также работает на основе UDP

Процесс передачи данных через интернет

Предлагаю плавно перейти к рассмотрению вопроса о том, как именно происходит передача данных через интернет, для этого введём новое понятие «Хост». Хост – любое устройство, подключённое к сети интернет. Этими устройствами могут быть: компьютеры, смартфоны, планшеты и даже сервера.

Теперь мы взглянем на модель протоколов TCP/IP с точки зрения взаимодействия устройств друг с другом.

  1. Канальный уровень. Устройство хочет передать данные через интернет.

  2. Сетевой уровень. Устройство использует IP для маршрутизации данный к устройству назначения.

  3. Транспортный уровень. Протокол (TCP) разбивает данные на небольшие пакеты, к каждому из пакетов добавляет заголовки, это делается для указания места пакета для последовательной передачи информации (таким образом TCP следит за порядком передачи данных). После того как пакеты отправлены они снова собираются устройством назначения, а для этого используют информацию, которая содержится в заголовках.

  4. Прикладной уровень. Происходит обработка информации нужным образом, (например, если это почтовый клиент Outlook, то преобразовав информацию вы получаете письмо).

Теперь рассмотрим цепочку работы визуально на примере когда Хост 1 хочет передать данные в Хост 2 (Хост это любое устройство, которое подключено к сети).

Как работает передача данных между устройствами в интернете схематично
Как работает передача данных между устройствами в интернете схематично

Таким образом процесс передачи данных через интернет включает в себя разбивку информации на пакеты, их маршрутизацию и сборку на целевом устройстве, что обеспечивает надежную и упорядоченную передачу данных. Схема в конце главы иллюстрирует, как модель TCP/IP управляет этим процессом, гарантируя корректность и целостность данных на каждом этапе.

Вывод

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

Комментарии (5)


  1. Shaman_RSHU
    02.09.2024 11:07
    +1

    На кого рассчитана данная статья? Техническим специалистам лучше с такого описания не начинать.


    1. semens95 Автор
      02.09.2024 11:07

      Данная статья рассчитана на тех, кто хочет более подробнее погрузиться в работу сети интернет и клиент-серверной архитектуры.

      Возможно у вас есть конкретные рекомендации или замечания?)


      1. Akina
        02.09.2024 11:07
        +3

        Возможно у вас есть конкретные рекомендации или замечания?

        Вы уж очень сильно не обижайтесь... но единственная рекомендация, которую хочется дать - снять ЭТО с публикации.


        1. semens95 Автор
          02.09.2024 11:07

          Это уже более конструктивнее...


      1. Oangai
        02.09.2024 11:07

        текст воспринимается как маркетинговый флаер 80х годов, пытающийся убедить потенциальных покупателей что им обязательно нужен этот ваш TCP/IP. Технической информации ровный ноль, даже для начинающих.