1. Основные определения
и терминология

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

1.1. Локальные и глобальные сети компьютеров

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

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

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

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

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

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

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

В этой книге мы не будем заниматься глобальными сетями, так как глобальные сети - материал для отдельного разговора.

1.2. Топологии локальных сетей компьютеров

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

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

Рис. 1. Топология "звезда"

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

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

Топология "общая шина" предполагает использование одного кабеля, к которому подключаются все компьютеры сети (рис. 2). В случае топологии "общая шина" кабель используется совместно всеми станциями по очереди. Принимаются специальные меры для того, чтобы при работе с общим кабелем компьютеры не мешали друг другу передавать и принимать данные.

Рис. 2. Топология "общая шина"

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

Используется также топология "кольцо" (рис. 3). В этом случае данные передаются от одного компьютера к другому как бы по эстафете. Если компьютер получает данные, предназначенные для другого компьютера, он передает их дальше по кольцу. Если данные предназначены для получившего их компьютера, они дальше не передаются.

Рис. 3. Топология "кольцо"

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

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

1.3. Семиуровневая сетевая архитектура

Для стандартизации сетей Международная организация стандартов (OSI) предложила семиуровневую сетевую архитектуру (табл. 1). К сожалению, конкретные реализации сетей не используют все уровни международного стандарта.

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

Таблица 1. Семиуровневая сетевая архитектура

Уровень приложений (Application Layer)
Уровень представления (Presentation Layer)
Сеансовый уровень (Session Layer)
Транспортный уровень (Transport Layer)
Сетевой уровень (Network Layer)
Уровень управления линией передачи данных (Data Link)
Физический уровень (Physical Layer)

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

В глобальных сетях на этом уровне могут использоваться модемы и интерфейс RS-232-C. Характерные скорости передачи здесь определяются линиями связи и для телефонных линий (особенно отечественных) обычно не превышают 2400 бод.

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

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

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

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

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

Сеансовый уровень (Session Layer) обеспечивает интерфейс с транспортным уровнем. На этом уровне выполняется управление взаимодействием между рабочими станциями, которые участвуют в сеансе связи. В частности, на этом уровне выполняется управление доступом на основе прав доступа.

Уровень представления (Presentation Layer) описывает шифрование данных, их сжатие и кодовое преобразование. Например, если в состав сети входят рабочие станции с разным внутренним представлением данных (ASCII для IBM PC и EBCDIC для IBM-370), необходимо выполнить преобразование.

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

1.4. Методы доступа и протоколы передачи данных

В различных сетях существуют различные процедуры обмена данными между рабочими станциями. Эти процедуры называют протоколами передачи данных.

Международный институт инженеров по электротехнике и радиоэлектронике (Institute of Electrical and Electronics Engineers - IEEE) разработал стандарты для протоколов передачи данных в локальных сетях. Это стандарты IEEE802. Для нас представляют практический интерес стандарты IEEE802.3, IEEE802.4 и IEEE802.5, которые описывают методы доступа к сетевым каналам данных.

Наибольшее распространение получили конкретные реализации методов доступа: Ethernet, Arcnet и Token Ring. Эти реализации основаны соответственно на стандартах IEEE802.3, IEEE802.4 и IEEE802.5. Для простоты мы будем использовать названия реализаций методов доступа, а не названия самих стандартов, хотя между стандартами и конкретными реализациями имеются некоторые различия.

1.4.1. Метод доступа Ethernet

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

Для данного метода доступа используется топология "общая шина". Поэтому сообщение, отправляемое одной рабочей станцией, принимается одновременно всеми остальными станциями, подключенными к общей шине. Но сообщение предназначено только для одной станции (оно включает в себя адрес станции назначения и адрес отправителя). Та станция, которой предназначено сообщение, принимает его, остальные игнорируют.

Метод доступа Ethernet является методом множественного доступа с прослушиванием несущей и разрешением коллизий (конфликтов) (CSMA/CD - Carier Sense Multiple Access with Collision Detection).

Перед началом передачи рабочая станция определяет, свободен канал или занят. Если канал свободен, станция начинает передачу.

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

Реально конфликты приводят к уменьшению быстродействия сети только в том случае, если работает порядка 80 - 100 станций.

1.4.2. Метод доступа Arcnet

Этот метод доступа разработан фирмой Datapoint Corp. Он тоже получил широкое распространение, в основном благодаря тому, что оборудование Arcnet дешевле, чем оборудование Ethernet или Token-Ring.

Arcnet используется в локальных сетях с топологией "звезда". Один из компьютеров создает специальный маркер (сообщение специального вида), который последовательно передается от одного компьютера к другому.

Если станция желает передать сообщение другой станции, она должна дождаться маркера и добавить к нему сообщение, дополненное адресами отправителя и назначения. Когда пакет дойдет до станции назначения, сообщение будет "отцеплено" от маркера и передано станции.

1.4.3. Метод доступа Token-Ring

Метод доступа Token-Ring был разработан фирмой IBM и рассчитан на кольцевую топологию сети.

Этот метод напоминает Arcnet, так как тоже использует маркер, передаваемый от одной станции к другой. В отличие от Arcnet при методе доступа Token-Ring имеется возможность назначать разные приоритеты разным рабочим станциям.

1.4.4. Протоколы передачи данных IPX/SPX и NETBIOS

На самом низком уровне, который только может использовать программа, работающая в сети, в операционной системе Novell NetWare используются протоколы передачи данных, называемые IPX/SPX и NETBIOS.

Протокол IPX (Internetwork Packet Exchange - протокол межсетевой передачи пакетов) является базовым в Novell NetWare. Он определяет формат передаваемых по сети пакетов и интерфейс с сетевым программным обеспечением (соответствует транспортному уровню OSI). На уровне протокола IPX рабочие станции могут обмениваться блоками данных, причем такой обмен выполняется без подтверждения.

Протокол SPX (Sequenced Packet Exchange - протокол последовательного обмена пакетами) предполагает, что перед началом обмена данными рабочие станции устанавливают между собой связь. На уровне протокола SPX гарантируется доставка передаваемых по сети пакетов. При необходимости выполняются повторные передачи пакетов. Протокол SPX в Novell NetWare выполнен на основе протокола IPX и является протоколом более высокого уровня (соответствует сетевому уровню OSI).

Протокол NETBIOS (Network Basic Input/Output System - сетевая базовая система ввода/вывода) разработан фирмой IBM и предназначен для передачи данных между рабочими станциями. Этот протокол является протоколом более высокого уровня по сравнению с IPX и SPX (выполняет функции сетевого уровня, транспортного уровня и сеансового уровня OSI). Для обеспечения совместимости в составе операционной системы Novell NetWare поставляется резидентная программа netbios.exe, эмулирующая протокол NETBIOS с использованием протоколов IPX/SPX. Обычно вам не требуется запускать эмулятор NETBIOS, за исключением тех случаев, когда это необходимо для работы прикладных сетевых программ.

Вы также можете встретить протокол с названием TCP/IP. Этот протокол используется в сетях, выполненных на базе операционной системы UNIX. Его назначение аналогично назначению протоколов IPX/SPX.

Детальное знакомство с перечисленными выше протоколами необходимо для создания программ, ориентированных на работу в сети. В следующем томе "Библиотеки системного программиста" мы научим вас использовать протоколы IPX/SPX и NETBIOS для создания собственных сетевых программ.