Разберем основные понятия в компьютерных сетях, протокол, сервис и интерфейс

Рассмотрим понятия протоколы, интерфейсы и сервисы на примере транспортного уровня, стека протоколов TCP/IP. 

Базовые понятия компьютерных сетей

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

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

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

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

Рассмотрим пример для транспортного уровня (ТУ) стека протоколов tcp ip. В стеке протоколов, есть два протокола транспортного уровня, tcp и udp. Они используются, чтобы транспортные уровни различных хостов взаимодействовали друг с другом. 

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

Зачем разделять понятия протокол и интерфейс

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

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

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

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

Разделение интерфейса и протокола необходимо, чтобы отделять описание от реализации. 

Зачем разделять интерфейс и сервис

Эти понятия важно различать, чтобы правильно проектировать сети, протоколы и сетевые технологии. 

Сервис этот абстрактное описание того, что делает уровень. Оно позволяет сформулировать, чтобы мы хотели, чтобы уровень делал, не привязываясь ни к каким конкретным деталям реализации. Например, стек протоколов tcp ip предоставляет на транспортном уровне, два типа сервисов:

  • Это надежная передача потока байт, которая реализуется протоколом tcp;
  • Ненадёжная передача коротких сообщений, для реализации которой, используется протокол UDP. 

Интерфейс ТУ в стеке протоколов TCP IP использует один сервис сокеты. Через интерфейс мы можем получить доступ к сервисам двух уровней, для этого при создании сокетов нам нужно указать разные константы и вызывать некоторые разные операции. Например, при ненадежной доставки дейтаграмм (блок информации) нам не нужно устанавливать соединение.  

Сервисы абстрактное описание функций

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

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

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

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

На самом деле это типовая ситуация, которая используется часто и кажется нерациональным перекладывать эту работу на приложения, если есть возможность предоставить такой тип сервиса прямо в стеке протоколов tcp/ip. Было разработано несколько протоколов ТУ, которые реализуют такой сервис, но к сожалению они не пользуются большой популярностью.  

Оцените статью
Все о технологиях, мобильных приложениях и тарифах на связь