Локальные и глобальные сети компьютеров
Не вдаваясь подробно в терминологические тонкости (чтобы не утомлять читателя), мы будем называть сетью группу компьютеров, соединенных между собой при помощи специальной аппаратуры, обеспечивающей обмен данными между любыми компьютерами данной группы. Компьютеры могут соединяться друг с другом непосредственно (двухточечное соединение) либо через промежуточные узлы связи.
Компьютер, подключенный к сети, мы будем называть рабочей станцией. Обычно на рабочей станции работает человек. Однако в сети могут быть компьютеры, на которых никто не работает. Более того, к ним даже не подключены видеомонитор и клавиатура!
Такие компьютеры используются как управляющие центры в сети и как концентраторы данных, обычно их называют серверами.
Если компьютеры расположены недалеко друг от друга и соединяются в сеть при помощи высокоскоростных адаптеров (со скоростью передачи данных порядка 1-10 Мбит в секунду), то такие сети мы будем называть локальными. При этом компьютеры обычно располагаются в пределах одной комнаты, одного здания или в нескольких близко расположенных зданиях. В локальных сетях применяются высокоскоростные цифровые линии связи.
Если вам требуется объединить компьютеры или локальные сети, расположенные на значительном удалении друг от друга (в разных районах города, в разных городах или на разных континентах), для связи компьютеров используются модемы и дальние линии связи. Соответственно, применяются относительно низкоскоростные аналоговые линии связи.
В этом случае говорят о глобальных сетях компьютеров. В настоящее время создано много глобальных сетей на базе телефонных линий и линий спутниковой связи. Если у вас есть модем, вы можете легко подключиться к такой сети, о чем мы говорили в книге серии "Библиотека системного программиста", посвященной модемам.
Для классификации сетей можно считать, что если организация владеет линией связи (использует для сети выделенный высокоскоростной канал связи), то это локальная сеть. Если организация арендует низкоскоростные каналы связи (например, арендует телефонные линии), то это глобальная сеть, использующая арендуемые каналы связи.
В этой книге мы не будем заниматься глобальными сетями, так как глобальные сети - материал для отдельного разговора.
Метод доступа Arcnet
Этот метод доступа разработан фирмой Datapoint Corp. Он тоже получил широкое распространение, в основном благодаря тому, что оборудование Arcnet дешевле, чем оборудование Ethernet или Token-Ring.
Arcnet используется в локальных сетях с топологией "звезда". Один из компьютеров создает специальный маркер (сообщение специального вида), который последовательно передается от одного компьютера к другому.
Если станция желает передать сообщение другой станции, она должна дождаться маркера и добавить к нему сообщение, дополненное адресами отправителя и назначения. Когда пакет дойдет до станции назначения, сообщение будет "отцеплено" от маркера и передано станции.
Метод доступа Ethernet
Этот метод доступа, разработанный фирмой Xerox в 1975 году, пользуется наибольшей популярностью. Он обеспечивает высокую скорость передачи данных и надежность.
Для данного метода доступа используется топология "общая шина". Поэтому сообщение, отправляемое одной рабочей станцией, принимается одновременно всеми остальными станциями, подключенными к общей шине. Но сообщение предназначено только для одной станции (оно включает в себя адрес станции назначения и адрес отправителя). Та станция, которой предназначено сообщение, принимает его, остальные игнорируют.
Метод доступа Ethernet является методом множественного доступа с прослушиванием несущей и разрешением коллизий (конфликтов) (CSMA/CD - Carier Sense Multiple Access with Collision Detection).
Перед началом передачи рабочая станция определяет, свободен канал или занят. Если канал свободен, станция начинает передачу.
Ethernet не исключает возможности одновременной передачи сообщений двумя или несколькими станциями. Аппаратура автоматически распознает такие конфликты, называемые коллизиями. После обнаружения конфликта станции задерживают передачу на некоторое время. Это время небольшое и для каждой станции свое. После задержки передача возобновляется.
Реально конфликты приводят к уменьшению быстродействия сети только в том случае, если работает порядка 80 - 100 станций.
Метод доступа Token-Ring
Метод доступа Token-Ring был разработан фирмой IBM и рассчитан на кольцевую топологию сети.
Этот метод напоминает Arcnet, так как тоже использует маркер, передаваемый от одной станции к другой. В отличие от Arcnet при методе доступа Token-Ring имеется возможность назначать разные приоритеты разным рабочим станциям.
Методы доступа и протоколы передачи данных
В различных сетях существуют различные процедуры обмена данными между рабочими станциями. Эти процедуры называют протоколами передачи данных.
Международный институт инженеров по электротехнике и радиоэлектронике (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.1. Локальные и глобальные сети компьютеров
1.2. Топологии локальных сетей компьютеров
1.3. Семиуровневая сетевая архитектура
1.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 для создания собственных сетевых программ.
Семиуровневая сетевая архитектура
Для стандартизации сетей Международная организация стандартов (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 показаны компьютеры, соединенные звездой. В этом случае каждый компьютер через специальный сетевой адаптер подключается отдельным кабелем к объединяющему устройству.
Рис. 1. Топология "звезда"
При необходимости можно объединять вместе несколько сетей с топологией "звезда", при этом получаются разветвленные конфигурации сети.
С точки зрения надежности эта топология не является наилучшим решением, так как выход из строя центрального узла приведет к остановке всей сети. Однако при использовании топологии "звезда" легче найти неисправность в кабельной сети.
Топология "общая шина" предполагает использование одного кабеля, к которому подключаются все компьютеры сети (рис. 2). В случае топологии "общая шина" кабель используется совместно всеми станциями по очереди. Принимаются специальные меры для того, чтобы при работе с общим кабелем компьютеры не мешали друг другу передавать и принимать данные.
Рис. 2. Топология "общая шина"
В топологии "общая шина" все сообщения, посылаемые отдельными компьютерами, принимаются всеми остальными компьютерами, подключенными к сети. Надежность здесь выше, так как выход из строя отдельных компьютеров не нарушит работоспособность сети в целом. Поиск неисправностей в кабеле затруднен. Кроме того, так как используется только один кабель, в случае обрыва нарушается работа всей сети.
Используется также топология "кольцо" (рис. 3). В этом случае данные передаются от одного компьютера к другому как бы по эстафете. Если компьютер получает данные, предназначенные для другого компьютера, он передает их дальше по кольцу. Если данные предназначены для получившего их компьютера, они дальше не передаются.
Рис. 3. Топология "кольцо"
Ваша локальная сеть может использовать одну из перечисленных выше топологий. Это зависит от количества объединяемых компьютеров, их взаимного расположения и других условий. Можно также объединить несколько локальных сетей, выполненных с использованием разных топологий, в единую локальную сеть. Может, например, получится древовидная топология.
На выбор топологии сети влияет множество факторов. Подробнее о том, как выбрать топологию сети, мы расскажем в следующей главе.
Библиотека системного программиста" посвящена локальным
Наша новая книга серии " Библиотека системного программиста" посвящена локальным сетям персональных компьютеров. Книга была задумана как практическое пособие, содержащее основные сведения, необходимые для создания как самой сети, так и сетевого программного обеспечения.
Локальные сети персональных компьютеров появились в нашей стране относительно недавно и быстро завоевали популярность. Оказалось, что объединение компьютеров в единую сеть дает большие возможности, несравнимые с простой передачей файлов из одного компьютера в другой.
Кроме передачи файлов локальные сети позволяют организовать совместное использование дорогостоящей аппаратуры, а также распределенную обработку данных на нескольких компьютерах. Это дает значительную экономию денежных средств. Например, если в комнате работают десять человек на десяти персональных компьютерах, вовсе не обязательно покупать десять лазерных принтеров для каждого компьютера. Можно купить один. Средства локальной сети предоставят доступ к нему со стороны любого компьютера.
Другой дорогостоящий ресурс вычислительных систем - дисковая память. В локальной сети вы сможете организовать коллективный доступ к дискам одного или нескольких компьютеров. На диске практически каждого компьютера установлены утилиты MS-DOS или операционная система Windows, какой-нибудь текстовый процессор, утилиты Нортона, справочные базы данных и т. п. Вам незачем хранить все эти программы на всех дисках всех компьютеров, подключенных к сети. Вместо этого можно организовать совместное использование одной копии этих программных средств, расположенной только на одном компьютере. Диски остальных компьютеров при этом можно освободить для решения задач, специфических для пользователей этих компьютеров.
При этом может оказаться, что некоторые компьютеры могут вообще не иметь дисков, ни жестких, ни гибких! Операционная система может загружаться из сети с другого компьютера, данные для обработки могут вводиться с клавиатуры или дисков другого компьютера и после обработки эти данные будут записываться опять-таки на диск другого компьютера!
Еще один пример коллективного использования устройства в сети - совместная работа нескольких пользователей с одним модемом. Хороший модем стоит больших денег, поэтому в нашем случае едва ли стоит покупать десять модемов, когда можно воспользоваться одним.
Можно организовать распределенную обработку данных. Например, если имеется большая база данных, она может располагаться на одном мощном компьютере. Можно организовать доступ к этой базе данных из других компьютеров, подключенных к сети. При этом выборка и предварительная обработка данных будет выполняться мощной машиной, а окончательная обработка и представление данных - менее мощными и менее дорогостоящими персональными компьютерами.
Централизованное хранение базы данных имеет еще и то преимущество, что облегчается процесс сопровождения, обеспечения целостности базы данных и организация архивирования и резервного копирования информации. Совмещение централизованного хранения и распределенной обработки информации может значительно повысить эффективность системы в целом и уменьшить ее стоимость.
Если вы примете решение внедрить в своей организации локальную сеть персональных компьютеров, вам предстоит решить большой комплекс проблем, связанных с выбором топологии сети, оборудования и программного обеспечения. Кроме того, необходимо будет правильно смонтировать оборудование сети и установить системное и прикладное программное обеспечение. Мы поможем вам в решении этих проблем. Конечно, мы не претендуем на полноту описания всех сетевых программных средств. Для этого предназначена соответствующая документация. Однако мы приведем все самые необходимые сведения, которые позволят вам быстро создать работоспособную сеть.
Так как системному программисту приходится не только устанавливать готовое программное обеспечение, но и разрабатывать новое, а также консультировать прикладных программистов по вопросам работы сетевого программного обеспечения, мы уделим большое внимание программированию для локальных сетей персональных компьютеров.
Если вы занимаетесь разработкой программного обеспечения, но у вас нет ни локальной сети, ни намерения приобретать ее, все равно надо быть готовым к тому, что вашу программу попытаются использовать в сети. Ваша программа в этом случае должна вести себя предсказуемым образом.
Хотя это и не всегда так, но обычно именно системному программисту приходится заниматься вопросами организации безопасности данных и управления доступом. Так как локальная сеть - это система коллективного доступа, безопасность данных и разграничение доступа приобретают особое значение. Одна из глав нашей книги поможет вам решить проблемы административного управления сетью.
Как пользоваться книгой?
Мы рекомендуем вам вначале изучить первые пять глав (до главы "Установка Novell NetWare 3.11"), в которых приведены основные теоретические сведения и рекомендации по выбору аппаратных и программных сетевых средств. На этом этапе вам необходимо выбрать для своей сети аппаратное и программное обеспечение.
После выбора сетевой операционной системы можно переходить непосредственно к изучению выбранной операционной системы. В нашей книге мы уделили много внимания операционной системе Novell NetWare версии 3.11, поэтому, даже если вы выбрали для себя Novell NetWare версии 2.2, ознакомьтесь с возможностями версии 3.11.
Операционные системы Novell NеtWare Lite и Microsoft Windows for Workgroups можно изучать вне всякой связи с Novell NetWare версий 3.11 и 2.2.
В процессе изучения сетевых операционных систем мы рекомендуем вам сразу приступить к установке этих систем на реальной сети. Материал в книге представлен в предположении, что вы уже собрали сеть и параллельно с чтением книги работаете в сети.
Советуем вам также запастись документацией по устанавливаемому сетевому программному обеспечению. Так как объем книги ограничен, мы лишены возможности описать все сообщения об ошибках и рекомендации по выходу из затруднительных ситуаций. Основная цель, которую преследует наша книга, - дать вам минимальный объем знаний, необходимых для создания сети.
После того как вы прочитаете нашу книгу, вам будет легче ориентироваться в документации, объем которой достигает многих сотен страниц.
Если вы испытываете трудности с английским языком, приобретайте локализованный вариант Novell NetWare версии 3.11R или локализованный вариант Novell NetWare Lite версии 1.1. К сожалению, на момент создания книги фирма Microsoft не выпустила локализованной версии своей сетевой операционной системы Windows for Workgroups.
Вы можете также отправить нам письмо по адресу:115409 Москва, ул. Москворечье, 31, корп. 2, АО "Диалог-МИФИ", издательский отдел.
Авторы выражают благодарность за помощь в создании книги и ценные советы Вашковскому Алексею, Дмитриевой Наталье, Кузьминовой Оксане, Ноженко Сергею, Синеву Максиму, Виноградовой Елене, а также всем сотрудникам АО "Диалог-МИФИ", которые сделали возможным появление как этой книги, так и всей серии "Библиотеки системного программиста".
Особо благодарим корректора В. С. Кустова, который провел колоссальную работу по исправлению ошибок во многих сотнях страниц "Библиотеки системного программиста".