В чём сложности создания компьютерных сетей — основные понятия

Очень просто построить сеть, которая соединяет два персональных компьютера (ПК), расположенных на вашем столе. Но представьте, что ваша задача построить крупную сеть, которая объединяет все ПК в мире. 

Сложность создания сетей

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

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

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

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

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

В целом построение сети является сложной задачей с которой справиться практически невозможно. Для решения таких задач, обычно применяется методика декомпозиции. Одна сложная задача делится на несколько более простых задач. Эти простые задачи, человек вполне способен решить. В компьютерных сетях был применен метод с использованием шаблона “Уровни”. 

Декомпозиция: шаблон “Уровни”

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

Декомпозиция Уровни

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

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

Что хорошего даёт подход в организации сети на основе уровней? о-первых уровень решает, в основном одну, конкретную задачу с которой вполне можно справиться. Или это может быть набор связанных между собой задач. Во-вторых выполняется изоляция решении друг от друга. Если в сети происходят какие-то изменения, вам не нужно менять все, оборудование, ПО, а только то, что относится к уровню в котором произошли изменения. Например, если вы решили поменять проводную сеть на беспроводную, то вам нужно поменять оборудование, которое обеспечивает беспроводную передачу данных, возможно поменять адаптеры в компьютерах, а всё остальное останется без изменений. 

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

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

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

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

Интерфейс в компьютерных сетях

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

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

Почему важно разделять эти понятия? Этот традиционный подход в проектировании связан с необходимостью разделения интерфейса и реализации. Пользователи или вышестоящие уровни взаимодействуют с интерфейсом уровня. Они понимают, что должен делать этот уровень в описании его сервиса и вызывают некоторые функции интерфейса. Протокол же является реализацией этого взаимодействия и он скрыт от вышестоящих уровней и от пользователей. Это означает, что можно заменить один протокол другим и в работе вышестоящих уровней ничего менять не придется. С другой стороны можно вносить некоторые изменения в интерфейсы внутри одного компьютера, но он все равно может взаимодействовать с другими компьютерами, если использует один и тот же протокол. Благодаря этому, по сети между собой, успешно взаимодействуют компьютеры работающие на разных платформах, например windows или linux, которые содержат внутри себя совершенно разные наборы интерфейсов. 

Протокол и интерфейс

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

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

Архитектура сети

Для решения сложной задачи, построения большой, крупной составной сети используется декомпозиция. Но здесь есть ряд вопросов, а именно, сколько уровней должно быть в сети? 

Какие уровни должны быть? 

Какие функции должны выполняться и на какому ровне? 

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

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

Эталонные модели организации сетей

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

Сейчас популярны две эталонные модели это модель взаимодействия открытых систем (ISO OSI). Это юридический стандарт международной организации стандартизации. Она включает 7 уровней, но не включает протоколы. Модель отличается хорошей теоретической проработкой. Именно в этой модели впервые были разделены понятия сервиса, интерфейса и протокола. На практике эта модель не используется. 

Другая эталонная модель TCP/IP это De facto стандарт на основе одноименного, популярного стека протоколов. В этой модели всего 4 уровня. Основную ценность модели tcp ip составляют протоколы. Так как они широко используются на практике и составляют основу интернет. 

Инкапсуляция

Включение сообщения вышестоящего уровня в сообщение нижестоящего уровня. Сообщение, при передаче по сети, состоит из 3-х частей: заголовок, данные и концевик (не обязателен). 

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

Первый уровень инкапскуляции

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

Второй уровень инкапсуляции

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

Третий уровень инкапсуляции

Таким образом, сообщение, которое передается по сети состоит из следующих частей: заголовок первого уровня, внутри расположены данные 1-го уровня и концевик. Но внутри того, что первый уровень считает данными, на самом деле, сначала находится в заголовке второго уровня, потом сообщение 3-го уровня. 

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

Уровень первый инкапскуляция

Второй уровень удаляет заголовки, объединяет два сообщения в одно большое и передаёт на третий уровень. 

Второй уровень удаляет заголовки

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

Заключение

Создание компьютерных сетей это тяжелая задача, целиком решить которую, практически невозможно. Поэтому выполняется декомпозиция сложной задачи на отдельные, более простые части с помощью шаблона “Уровень”. 

Ссылка на основную публикацию
Adblock
detector