Топология «шина»
Согласно топологии «шина», или, как ее еще часто называют, «общая шина», или «магистраль», все участники сети подключаются к центральному кабелю (рис. 2.1).
Рис. 2.1. Пример топологии «шина»
Для предотвращения дальнейшего распространения и возможного отражения сигнала на концах кабеля устанавливаются специальные заглушки – терминаторы, один из которых обязательно заземляется.
Данные в такой сети направляются сразу всем компьютерам, поэтому задача каждого компьютера – проверить, кому адресовано сообщение. Только компьютер, которому адресовано сообщение, может обработать его. При этом, пока данные не будут обработаны, никакие сообщения больше не отправляются. Как только данные обработаны, сигнал об этом поступает в сеть, и работа возобновляется.
Главное преимущество такой сети – простота и дешевизна создания. При ее построении используется минимальное количество кабеля и не требуется никакого управляющего оборудования: в обмене данными участвуют только сетевые адаптеры компьютеров. Если количество компьютеров уже достаточно велико, сеть часто разбивается на сегменты, для соединения которых используются повторители – концентраторы, коммутаторы, мосты и т. п.
Главный минус сети – сильная зависимость скорости передачи данных от количества подключенных компьютеров: чем больше компьютеров и других устройств, тем ниже скорость передачи данных. Кроме того, обрыв центрального кабеля парализует работу всей сети.
Топология «кольцо»
Согласно топологии «кольцо» все компьютеры сети подключены последовательно и образуют своего рода замкнутую кольцевую систему (рис. 2.2).
Для передачи данных в сети используется маркерная система, то есть данные в конкретный момент может передавать только один компьютер. Причем данные передаются только следующему по кругу компьютеру (справа налево). Это позволяет избежать коллизий и увеличивает надежность сети в целом.
Когда компьютеру, обладающему маркером, необходимо передать данные, к маркеру добавляется адрес компьютера, которому эти данные предназначены, и маркерный блок отправляется в сеть по кругу. Таким образом, каждый компьютер, который лежит на пути следования маркерного блока, считывает из него адрес получателя и сравнивает его со своим адресом: если адреса не совпадают, они отправляются далее по кругу. Если адреса совпали, то есть отправитель найден, формируется подтверждающий блок и передается далее по кругу к отправителю. В дальнейшем данные уже передаются по найденному пути до тех пор, пока в этом есть необходимость. Как только передача данных заканчивается, маркер освобождается и идет далее по кругу до первого компьютера, которому необходимо передавать данные.
Рис. 2.2. Пример топологии «кольцо»
Использование топологии «кольцо» обладает некоторыми преимуществами. Например, каждый компьютер сети одновременно выступает повторителем, поэтому затухание сигнала возможно только между соседними компьютерами, что напрямую зависит от расстояния между ними. Кроме того, сеть способна справляться с очень большими объемами трафика за счет отсутствия коллизий и центрального управляющего узла.
У данного типа сети есть также и недостатки. Так, подключение нового компьютера требует остановки работы всей сети. Аналогичная ситуация происходит, если один из компьютеров выходит из строя: сеть становится неработоспособной. Кроме того, поиск неисправности в такой сети сопряжен со множеством сложностей.
Топология «звезда»
Топология «звезда» на сегодня является наиболее распространенной. Согласно ей каждый компьютер или устройство сети подключается к центральному узлу, образуя подобным образом один сегмент сети (рис. 2.3).
Сегменты сети могут соединяться между собой одним из доступных способов, например посредством центрального либо промежуточного узла, образуя более сложную сеть или входя в состав комбинированной сети.
Рис. 2.3. Пример топологии «звезда»
В качестве центрального узла используется любое активное сетевое устройство с достаточным количеством портов. В самом простом случае в роли центрального узла выступает концентратор, который в силу своих ограничений позволяет передавать данные в конкретный момент только одному компьютеру. При этом поступившие на концентратор данные он сразу пересылает всем подключенным к нему устройствам. Если на концентратор в один момент поступают данные от двух разных отправителей, то оба пакета игнорируются.
В случае с более интеллектуальным узлом, например коммутатором, данные одновременно могут передаваться сразу несколькими компьютерами, что значительно увеличивает скорость обмена данными.
Несмотря на то что «звезда» наиболее дорогостоящая в использовании по сравнению с другими топологиями, благодаря своей надежности и высокой скорости передачи данных она уже практически стала стандартом. Большую роль играет также тот факт, что принятый уже достаточно давно стандарт ATX подразумевает наличие на материнской плате персонального компьютера интегрированного сетевого адаптера, который изначально предназначен для работы с этой топологией.
Глава 3
Модель ISO/OSI
Функционирование сети подчиняется определенным теоретическим правилам. В качестве такой теоретической основы выступает свод правил и стандартов, которые описывают так называемую модель взаимодействия открытых систем (Open System Interconnection, OSI). Основным разработчиком модели является Международная организация по стандартизации (International Standards Organization, ISO), поэтому очень часто используется более короткое название – модель ISO/OSI.
Согласно модели ISO/OSI существует семь уровней, пройдя через которые, данные от одного компьютера могут быть переданы другому компьютеру, и абсолютно не важно, какая операционная система при этом используется и каким образом данные попадают от источника к адресату.
Уровни имеют названия и расположены в следующем порядке: физический канальный, сетевой, транспортный, сеансовый, уровень представления данных и прикладной уровень. Данные могут передаваться как в указанном, так и в обратном порядке. Так, при передаче данные начинают свое движение с прикладного уровня и доходят до физического уровня, который представляет собой среду передачи данных. Если же данные принимаются, то они проходят путь от физического до прикладного уровня (рис. 3.1).
Рис. 3.1. Схематическое отображение модели ISO/OSI
Описанная модель является стандартом для любой среды передачи данных, которых на сегодня используется три: кабель, радиоволны и инфракрасное излучение. Однако, в зависимости от среды передачи данных, имеются определенные различия в работе физического и канального уровней модели ISO/OSI, в чем вы сможете убедиться далее.
Каждый уровень отвечает только за свою часть подготовки данных к приему или передаче, что в результате позволяет сделать процесс передачи/приема максимально эффективным и, самое главное, независимым от среды передачи данных, а также обойти вопрос совместимости оборудования, которое используется для этого.
Как уже было упомянуто выше, модель ISO/OSI состоит из семи уровней, а именно:
□ физический – передача и прием электрических сигналов;
□ канальный – управление каналом связи и доступом к среде передачи данных;
□ сетевой – определение оптимальных маршрутов передачи данных;
□ транспортный – контроль целостности и правильности данных в процессе передачи и приема данных;
□ сеансовый – создание, сопровождение и поддержание сеанса связи;
□ уровень представления – кодирование и шифрование данных с помощью требуемых алгоритмов;
□ прикладной – взаимодействие с клиентскими программами.
Данные между разными уровнями модели передаются посредством стандартных интерфейсов и протоколов передачи данных, главная задача которых – обработка полученных данных и приведение их к тому виду, который необходим для работы следующего уровня. Более подробно о разных протоколах передачи данных вы сможете узнать далее.
Физический уровень
Физический уровень (Physical Layer) является самым нижним в модели ISO/OSI. Он работает непосредственно с имеющимся каналом связи. Его главная задача – преобразование поступивших от вышестоящего уровня данных и передача соответствующих им электрических сигналов по существующему каналу связи получателю, а также прием данных от отправителя и их конвертация согласно существующим таблицам кодирования сигналов.
Прежде чем начать передачу электрических сигналов, алгоритмы физического уровня определяют тип канала связи и его свойства: электротехнические и механические характеристики, величину напряжений, расстояние между отправителем и получателем, скорость передачи данных и т. д., то есть все, что является критичным для передачи данных. Именно на этом этапе определяется, сеть какого типа используется (проводная или беспроводная), а также выясняется топология сети.
Функции физического уровня выполняют сетевые адаптеры на отправителе и получателе, а также повторители сигнала, например концентратор.
Стандартизация на уровне модели ISO/OSI позволяет использовать в сети оборудование разных производителей, не заботясь при этом об их совместимости, что позволяет сосредоточиться только на процессе передачи и приема данных.
Канальный уровень
Задача канального уровня (Data Link Layer) – обеспечение гарантированной передачи данных через физический канал, параметры и особенности которого уже установлены и «приняты во внимание» на физическом уровне. При этом решаются вопросы физической адресации, корректности отправленной и полученной информации, контроля возникающих ошибок, управления потоком информации и т. д.
Данные передаются блоками, которые называются кадрами. К каждому кадру добавляется несколько бит информации о типе кадра, а также контрольная сумма, которая сверяется при его получении адресатом. При несовпадении контрольных сумм запрашивается повторная передача кадра и данные синхронизируются.
Что касается локальных сетей, то за работу канального уровня отвечают два подуровня:
□ MAC (Medium Access Control) – уровень доступа к разделяемой среде;
□ LLC (Logical Link Control) – уровень управления логическим каналом.
Уровень MAC отвечает за получение доступа к общей среде передачи данных, в связи с чем каждый протокол передачи данных имеет соответствующую процедуру доступа. Кроме того, MAC отвечает за согласование режимов работы канального и физического уровней (дуплексный и полудуплексный режим соответственно), буферизацию фреймов и т. д.
Уровень LLC имеет три разные процедуры, отвечающие за качество доставки данных.
□ LLC1 – без установления соединения и без подтверждения доставки. Данная процедура управления каналом позволяет передавать данные с максимальной скоростью, для чего используются датаграммы.
□ LLC2 – с установлением соединения и подтверждением доставки. Этот вид управления каналом наиболее надежный. Он позволяет гарантированно доставлять данные и получать подтверждения о доставке. На этом уровне работает система контроля ошибок, которая дает возможность восстанавливать поврежденные блоки данных и упорядочивать их последовательность. Подобная система функционирует благодаря нумерации кадров, что позволяет запрашивать ошибочные кадры и упорядочивать их.
□ LLC3 – без установления соединения, но с подтверждением доставки. Данный тип управления каналом достаточно специфичен и часто используется в процессах, которые требуют быстрой передачи данных, но с подтверждением доставки. Как правило, это необходимо для разного рода процессов, происходящих в режиме реального времени, когда временные затраты очень критичны. В этом случае передача следующего кадра осуществляется только после подтверждения доставки предыдущего.
Таким образом, LLC-уровень умеет передавать данные либо с помощью датаграмм, либо с использованием процедур с обеспечением качества передачи.
Канальный уровень может реализовываться как на аппаратном уровне (например, с помощью коммутаторов), так и с применением программного обеспечения (допустим, драйвера сетевого адаптера).
Сетевой уровень
Сетевой (Network Layer) – один из важнейших уровней модели взаимодействия открытых систем. Поскольку для построения сети могут использоваться различные технологии и, а сеть может состоять из нескольких сегментов с абсолютно разными сетевыми топологиями, чтобы «подружить» эти сегменты, требуется соответствующий механизм. В качестве такого механизма и выступает сетевой уровень.
Кроме определения физических адресов всех участников сети, данный уровень отвечает за нахождение кратчайших путей доставки данных, то есть выполняет маршрутизацию пакетов. При этом постоянно отслеживается состояние сети и определяются новые маршруты, если возникают «заторы» на пути следования данных. Благодаря маршрутизации данные всегда доставляются с максимальной скоростью.
Сетевой уровень для доставки данных между разными сетевыми сегментами использует особую адресацию. Так, вместо MAC-адресов применяется пара чисел – номер сети и номер компьютера в этой сети. Использование нумерации позволяет составить точную карту сети независимо от топологии сегментов и определять альтернативные пути передачи данных.
На практике функции сетевого уровня выполняет маршрутизатор.
Транспортный уровень
Транспортный уровень (Transport Layer) служит для организации гарантированной доставки данных, для чего используется подготовленный канал связи. При этом отслеживается правильная последовательность передачи и приема пакетов, восстанавливаются потерянные или отсеиваются дублирующие. При необходимости данные фрагментируются (разбиваются на более мелкие пакеты) или дефрагментируются (объединяются в большой пакет), что повышает надежность доставки данных и их целостность.
На транспортном уровне предусмотрено пять классов сервиса с различными уровнями надежности. Они различаются скоростью, возможностями восстановления данных и т. д. Например, некоторые классы работают без предварительной установки связи и не гарантируют доставку пакетов в правильной последовательности. В этом случае за выбор маршрута отвечают промежуточные устройства, которые попадают на пути следования данных. Классы с установкой связи начинают свою работу с установки маршрута и только после того, как маршрут будет определен, начинают последовательную передачу данных.
Благодаря такому подходу всегда можно найти компромисс между скоростью и качеством доставки данных.
Сеансовый уровень
Сеансовый уровень (Session Layer) используется для создания и управления сеансом связи на время, необходимое для передачи данных. Время сеанса зависит лишь от объема информации, которая должна быть передана. Поскольку этот объем может быть существенным, используются разные механизмы, контролирующие данный процесс.