Введение в сетевую терминологию, интерфейсы и протоколы

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

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

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

В данном разделе вы найдёте определения основных терминов и понятий, имеющих отношение к созданию и управлению сетями.

  • Соединение в контексте сетевых технологий – это сигналы с информацией, которые передаются через сеть. Обычно соединение создается до передачи данных (в соответствии с процедурами, изложенными в протоколе) и сбрасывается после передачи.
  • Пакет – базовая единица информации, которая передается по сети. По сути, пакеты – это «конверты», которые переносят данные (по частям) из одной точки в другую. В пакете есть заголовок, который содержит информацию о пакете: источник и назначение, временные метки, сетевые переходы и т. д. В основной части пакета находятся передаваемые данные. Эту часть пакета также называют телом или полезной нагрузкой.
  • Сетевой интерфейс – это программный интерфейс для сетевого оборудования. Например, если на вашем компьютере есть две сетевые карты, вы можете управлять и настраивать связанные с ними сетевые интерфейсы по отдельности. Сетевой интерфейс может быть связан с физическим устройством, а также может быть виртуальным. Примером последнего является устройство закольцовывания (loopback) – виртуальный интерфейс локальной машины.
  • LAN (local area network) – локальная сеть; это сеть или часть сети, не доступная в сети Интернет (как, например, домашняя или офисная сеть).
  • WAN (wide area network) – глобальная сеть; широкодоступная сеть. WAN может использоваться для обозначения больших рассредоточенных сетей, но обычно WAN означает Интернет в целом. Если интерфейс подключен к WAN, обычно предполагается, что он доступен через Интернет.
  • Протокол – это набор правил и стандартов, который определяет метод взаимодействия устройств. В сети широко используется множество протоколов, и они часто реализуются на разных уровнях.  Протоколами низкого уровня являются TCP, UDP, IP и ICMP. Протоколы приложений, построенные на протоколах низкого уровня – HTTP, SSH, TLS/SSL и FTP.
  • Порт – это адрес на машине, который может быть привязан к определенному программному обеспечению. Это не физический интерфейс или местоположение. Порты позволяют серверу взаимодействовать с другими серверами с помощью нескольких приложений.
  • Брандмауэр – это программа, которая оценивает трафик и решает, что с ним делать дальше. Обычно брандмауэр работает на основе правил, которые определяют, какой тип трафика может принимать тот или иной порт. Как правило, брандмауэры блокируют порты, которые не используются конкретным приложением на сервере.
  • NAT (network address translation) – трансляция сетевых адресов; метод перевода запросов, поступающих на сервер маршрутизации, на соответствующие устройства или серверы в локальной сети. Обычно NAT реализуется в сетях как способ маршрутизации запросов к одному IP-адресу на серверы бэкэнда.
  • VPN (virtual private network) – виртуальная частная сеть; это метод объединения нескольких отдельных локальных сетей через Интернет, сохраняющий их приватность. Это позволяет использовать удалённую сеть как локальную, при этом не подвергая её опасности.

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

 Сетевые уровни

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

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

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

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

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

Модель OSI

OSI (Open Systems Interconnect) – это базовая модель взаимодействия открытых систем, которая состоит из 7 уровней:

  • 7 – Прикладной: уровень, с которым чаще всего взаимодействуют пользователи и пользовательские приложения. Он отвечает за передачу служебных данных, предоставляет приложениям сведения об ошибках и формирует запросы к следующему уровню.
  • 6 – Представительский уровень (или уровень представления) отвечает за организацию данных при пересылке и преобразование данных в формат приложений.
  • 5 – Сеансовый уровень управляет соединением. Он создаёт, поддерживает и сбрасывает соединения между нодами.
  • 4 – Транспортный уровень отвечает за обработку и соединение между другими уровнями модели, а также за передачу данных от отправителя к получателю.
  • 3 – Сетевой уровень обеспечивает маршрутизацию данных между нодами сети, транслирует логические адреса и имена в физические. Также этот уровень определяет путь передачи данных
  • 2 – Канальный уровень отвечает за установление и поддержку надёжных соединений между нодами или устройствами сети.
  • 1 – Физический уровень – нижний уровень модели; отвечает за обработку физических устройств, которые используются для установления соединения. Этот уровень включает в себя простое программное обеспечение, которое управляет физическими соединениями, а также аппаратное обеспечение (например, Ethernet).

Модель TCP/IP

Модель TCP/IP (набор протоколов Internet) – ещё одна популярная модель, которая состоит из 4 уровней (они совпадают  с некоторыми уровнями OSI):

  • Прикладной уровень отвечает за обмен данными между приложениями. Здесь работает большинство сетевых приложений. Конечный пользователь будет видеть удалённое приложение как локальное.
  • Транспортный уровень поддерживает взаимодействие между процессами. Этот уровень использует порты для обращения к различным сервисам. Он может создавать небезопасные и безопасные соединения в зависимости от типа используемого протокола.
  • Сетевой уровень обеспечивает передачу данных между нодами сети. IP-адреса используются как способ удаленного доступа к системам.
  • Канальный уровень описывает среду, принципы и характеристики передачи данных. Он устанавливает соединения между соседними нодами для отправки данных.

Сетевые интерфейсы

Интерфейсы являются сетевыми точками связи компьютера. Каждый интерфейс связан с физическим или виртуальным сетевым устройством.

Как правило, на вашем сервере будет один настраиваемый сетевой интерфейс для каждой имеющейся Ethernet-карты или беспроводной интернет-карты.

Кроме того, сервер определит виртуальный сетевой интерфейс (loopback, или localhost). Он используется как интерфейс для соединения приложений и процессов на одном компьютере с другими приложениями и процессами. Во многих инструментах он упоминается как интерфейс «lo».

Администраторы часто используют один интерфейс (обычно eth0) для обслуживания трафика в Интернете, а другой интерфейс (eth1) – для локальной или частной сети.

Протоколы

Сетевые технологии подразумевают совмещение нескольких различных протоколов. Таким образом, одна часть данных может быть передана с помощью нескольких протоколов, встроенных друг в друга.

Рассмотрим самые популярные и распространённые протоколы, начиная с протоколов низкого уровня.

Протокол управления доступом к среде

Media access control, или протокол управления доступом к среде используется для различения устройств. Предполагается, что каждое устройство получает уникальный MAC-адрес, который отличает его от любого другого устройства в Интернете.

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

Media access control является одним из базовых протоколов канального уровня.

Протокол IP

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

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

Существует несколько различных реализаций протокола IP. Наиболее распространенной реализацией является IPv4, хотя из-за нехватки доступных адресов IPv4 и улучшения возможностей протоколов все более популярным становится IPv6.

Протокол ICMP

Протокол ICMP (internet control message protocol) – это протокол, который используется для отправки сообщений между устройствами. Эти пакеты используются многими сетевыми инструментами диагностики (например, ping и traceroute).

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

Протокол TCP

Протокол TCP (transmission control protocol) – протокол управления передачей данных. Он реализован на транспортном уровне модели IP/TCP и используется для установления безопасных соединений.

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

Протокол создает соединение до передачи данных при помощи трёхэтапного квитирования. Этот способ позволяет участникам соединения подтвердить  запрос и согласовать способ обеспечения безопасности данных.

После отправки данных соединение сбрасывается с помощью механизма четырёхэтапного квитирования.

Протокол TCP используется в электронной почте, WWW, FTP, SSH. Можно с уверенностью сказать, что без TCP интернет не был бы таким, каким мы его знаем сегодня.

Протокол UDP

UDP (user datagram protocol) – это протокол пользовательских датаграмм, популярный сопутствующий протокол для TCP, который также реализуется на транспортном уровне.

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

Поскольку UDP не проверяет получения данных, он намного быстрее, чем TCP. Он не устанавливает соединение с удаленными нодами, а просто передаёт данные на этот хост.

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

Протокол HTTP

HTTP (hypertext transfer protocol) – это протокол передачи гипертекста. Он реализуется на прикладном уровне, который формирует основу для коммуникации в Интернете.

HTTP определяет ряд функций, которые сообщают удаленной системе о запросе. Например, GET, POST и DELETE взаимодействуют с запрошенными данными по-разному.

Протокол FTP

FTP (file transfer protocol) – это протокол передачи файлов. Он также находится на прикладном уровне и обеспечивает способ передачи полных файлов с одного хоста на другой.

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

Протокол DNS

DNS (domain name system) – это система доменных имен. Этот протокол прикладного уровня предоставляет удобный механизма именования интернет-ресурсов. Он связывает доменное имя с IP-адресом и позволяет вам обращаться к сайтам по имени в вашем браузере.

Протокол SSH

SSH (secure shell) – это протокол шифрования, реализованный на прикладном уровне, который может использоваться для безопасного обмена данными с удаленным сервером. На этом протоколе основано много дополнительных технологий.

Существует много других важных протоколов, которые не охвачены в этой статье. Однако теперь вы знакомы с базовыми сетевыми протоколами и их применением.

Tags: , , , , , , , , ,

Добавить комментарий