Задачи, возникающие при построении сетей – ЧАСТЬ 1

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

Достаточно ли этого, чтобы говорить о наличии работающей сети? Понятно, что нет, вед, компьютеры, кабели, адаптеры и прочее оборудование – это всего лишь железо, которое не обеспечит функционирования сети без операционной системы, установленной на данных компьютерах. Следовательно, операционная система также является одной из компонент сети. Все ли это компоненты? Давайте вспомним, если у нас есть компьютер, на котором установлена только операционная система, комфортно ли мы себя чувствуем, например, в сети Интернет? Сразу становится понятным, что одной операционной системы мало, и что вам нужны ваши любимые сетевые приложения – кому браузер, кому клиент электронной почты или ICQ, а кому и установленная сетевая игра.

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

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

Давайте представим, что перед нами стоит задача создания технологии, позволяющей создавать  компьютерные  сети.  Понятно,  что  постановка  задачи  в  виде:  «построить  сеть!»  не

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

Итак, первая задача: соединить компьютеры между собой какими-то линиями связи для передачи данных. Какими способами это можно сделать и сколько их. Первая мысль, которая приходит в голову, – соединить каждый компьютер с каждым индивидуальной линией связи. Единственный ли это способ? Конечно, нет, – можно, например, соединить все компьютеры с одним, центральным, и передавать данные через него. Еще идея – соединить каждый компьютер с двумя соседями и передавать данные по кольцу, и так далее. Как мы видим, существует много вариантов объединения компьютеров в сеть, все они разные, а значит, у каждого есть свои достоинства и недостатки. Значит, нужно выяснить, какие это недостатки, можно ли от них избавиться, существует ли самое лучшее решение вообще или для какой-то конкретной ситуации.

Задача выбора способа соединения компьютеров в сеть называется задачей выбора топологии связей. (CCNA 7.2.2.1 – 7.2.7.1)

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

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

Нарисуем условно такую топологию.

Как мы видим, каждая вершина соединена с каждой  другой  вершиной  своим  ребром,  то  есть, каждая  пара  компьютеров  соединена  отдельной линией связи. Такая топология называется полносвязной (англ. – mesh). Есть ли достоинства у такой топологии? Несомненно, есть: эта топология будет максимально надежной. Выход из строя одной линии  связи  приведет  к  нарушению  связи  только между двумя компьютерами. А если технология позволяет осуществление транзитных связей, то есть, передачи данных через промежуточный компьютер, то в этом случае для нарушения связи с одним компьютером нужно вообще изолировать его от сети!

Значит ли это, что именно данную топологию следует использовать для построения сетей? Прежде чем это утверждать, давайте подумаем о ее недостатках.  Какой  из  них  сразу  бросается  в  глаза?  Конечно  же,  необходимость  огромного количества соединений. Так на нашем рисунке, на котором изображено шесть узлов, мы можем насчитать 15 связей! В общем случае количество связей в этой топологии можно рассчитать по формуле Nx(N-1)/2, где N – количество компьютеров. Это значит, что в сети из ста компьютеров будет существовать 4950 связей, и при этом, чтобы добавить еще один компьютер, необходимо будет  протянуть  еще  100  линий!  Можем  ли  мы

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

Следовательно,      для       построения      сетей

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

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

Такая топология называется ячеистой (англ. – partial mesh). Что можно сказать о ней? Очевидно, что избавиться от недостатков полносвязной топологии не удалось, зато надежность такой топологии снижается тем больше, чем больше связей мы удалим. Но, возможно, мы просто слишком рано остановились, когда убирали лишние связи?

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

Получившаяся    топология    носит    название

кольцо (англ. – ring).

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

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

Следующая    топология   представляет    собой    еще    большее    упрощение   полносвязной топологии.

Как  видите,  мы  удалили  еще  одну  из  связей между узлами. Получившаяся топология носит название общая шина (англ. – bus, иногда называют   multi- access).

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

Автора: © Виталий Бочаров, Владимир Недеркин, Александр Трофимов

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100