1. ОБЩИЕ ПРЕДСТАВЛЕНИЯ О ВЫЧИСЛИТЕЛЬНОЙ
СЕТИ
1.1. Вычислительные сети – частный
случай распределенных систем
Компьютерные сети относятся к распределенным (или
децентрализованным) вычислительным системам, поскольку основным признаком
распределенной вычислительной системы является наличие нескольких центров обработки
данных.
В вычислительных сетях программные и аппаратные связи
являются слабыми, а автономность обрабатывающих блоков проявляется в наибольшей
степени — основными элементами сети являются стандартные компьютеры, не имеющие
ни общих блоков памяти, ни общих периферийных устройств. Связь между компьютерами
осуществляется с помощью специальных периферийных устройств — сетевых
адаптеров, соединенных относительно протяженными каналами связи. Каждый
компьютер работает под управлением собственной операционной системы, а
какая-либо «общая» операционная система, распределяющая работу между
компьютерами сети, отсутствует. Взаимодействие между компьютерами сети происходит
за счет передачи сообщений через сетевые адаптеры и каналы связи. С помощью
этих сообщений один компьютер обычно запрашивает доступ к локальным ресурсам
другого компьютера. Такими ресурсами могут быть как данные, хранящиеся на
диске, так и разнообразные периферийные устройства — принтеры, модемы,
факс-аппараты и т. д. Разделение локальных ресурсов каждого компьютера между
всеми пользователями сети — основная цель создания вычислительной сети.
Но для построения сети недостаточно снабдить
компьютеры сетевыми адаптерами и соединить их кабельной системой. Необходимы
еще некоторые добавления к операционным системам этих компьютеров. На тех
компьютерах, ресурсы которых должны быть доступны всем пользователям сети,
необходимо добавить модули, которые постоянно будут находиться в режиме
ожидания запросов, поступающих по сети от других компьютеров. Такие модули
называются программными серверами (server).
На компьютерах, пользователи которых хотят получать доступ к ресурсам других
компьютеров, добавляются программные модули, которые вырабатывают запросы на
доступ к удаленным ресурсам и передают их по сети на нужный компьютер. Такие
модули называют программными клиентами (client).
Собственно же сетевые адаптеры и каналы связи решают в сети достаточно простую
задачу — они передают сообщения с запросами и ответами от одного компьютера к
другому, а основную работу по организации совместного использования ресурсов
выполняют клиентские и серверные части операционных систем.
Пара модулей «клиент - сервер» обеспечивает совместный
доступ пользователей к определенному типу ресурсов, например к файлам. В этом
случае говорят, что пользователь имеет дело с файловой службой (service). Обычно сетевая операционная система
поддерживает несколько видов сетевых служб для своих пользователей — файловую,
службу печати, электронной почты, службу удаленного доступа и т. п.
Термины «клиент» и «сервер» используются не только для
обозначения программных модулей, но и компьютеров, подключенных к сети. Если
компьютер предоставляет свои ресурсы другим компьютерам сети, то он называется
сервером, а если он их потребляет — клиентом. Иногда один и тот же компьютер может
одновременно играть роли и сервера, и клиента. Это наиболее ярко проявляется в одноранговых сетях, где каждый компьютер сети равнозначен.
Вычислительная сеть — это сложный комплекс
взаимосвязанных и согласованно функционирующих программных и аппаратных
компонентов. Изучение сети в целом предполагает знание принципов работы ее
отдельных элементов:
· компьютеров;
· коммуникационного оборудования;
· операционных систем;
· сетевых приложений.
Весь комплекс программно-аппаратных средств сети может
быть описан многослойной моделью. В основе любой сети лежит аппаратный слой
стандартизованных компьютерных платформ. В настоящее время в сетях широко и успешно
применяются компьютеры различных классов — от персональных компьютеров до мэйнфреймов и суперЭВМ. Набор компьютеров в сети должен соответствовать
набору разнообразных задач, решаемых сетью.
Второй слой — это коммуникационное оборудование. Хотя
компьютеры и являются центральными элементами обработки данных в сетях, в
последнее время не менее важную роль стали играть коммуникационные устройства.
Кабельные системы, повторители, мосты, коммутаторы, маршрутизаторы
и модульные концентраторы из вспомогательных компонентов сети превратились в основные. Сегодня коммуникационное устройство может представлять
собой сложный специализированный мультипроцессор, который нужно конфигурировать,
оптимизировать и администрировать. Изучение принципов работы коммуникационного
оборудования требует знакомства с большим количеством протоколов, используемых
как в локальных, так и глобальных сетях.
Третьим слоем, образующим программную платформу сети,
являются операционные системы (ОС). От того, какие концепции управления
локальными и распределенными ресурсами положены в основу сетевой ОС, зависит
эффективность работы всей сети. При проектировании сети важно учитывать, насколько
просто данная операционная система может взаимодействовать с другими ОС сети,
насколько она обеспечивает безопасность и защищенность данных, до какой степени
она позволяет наращивать число пользователей, можно ли перенести ее на компьютер
другого типа и многие другие соображения.
Самым верхним слоем сетевых средств являются различные
сетевые приложения, такие как сетевые базы данных, почтовые системы, средства
архивирования данных, системы автоматизации коллективной работы и др. Очень
важно представлять диапазон возможностей, предоставляемых приложениями для различных
областей применения, а также знать, насколько они совместимы с другими сетевыми
приложениями и операционными системами.
Основным преимуществом распределенных систем (а
значит, и сетей) перед централизованными системами является их способность
выполнять параллельные вычисления. За счет этого в системе с несколькими
обрабатывающими узлами может быть достигнута производительность, превышающая
максимально возможную на данный момент производительность любого отдельного,
сколь угодно мощного процессора. Распределенные системы потенциально имеют
лучшее соотношение производительность-стоимость, чем централизованные системы.
Еще одно очевидное и важное достоинство распределенных
систем — это их более высокая отказоустойчивость. Под отказоустойчивостью
понимается способность системы выполнять свои функции при отказах отдельных
элементов аппаратуры и неполной доступности данных. Основой повышенной отказоустойчивости
распределенных систем является избыточность. Избыточность обрабатывающих узлов
позволяет при отказе одного узла переназначать приписанные ему задачи на другие
узлы. С этой целью в распределенной системе могут быть предусмотрены процедуры
динамической или статической реконфигурации.
Для пользователя, кроме выше названных, распределенные
системы дают еще и такие преимущества, как возможность совместного
использования данных и внешних устройств, а также возможность гибкого
распределения работ по всей системе. Разделение дорогостоящих периферийных устройств
— таких как дисковые массивы большой емкости, цветные принтеры, графопостроители,
модемы, оптические диски — во многих случаях является основной причиной
развертывания сети на предприятии.
Однако в последнее время причиной развертывания сетей
стало стремление обеспечить сотрудникам оперативный доступ к обширной
корпоративной информации.
Конечно, вычислительные сети имеют и свои проблемы. Они
связаны с организацией эффективного взаимодействия отдельных частей
распределенной системы.
Во-первых, это сложности, связанные с программным
обеспечением — операционными системами и приложениями. Программирование для
распределенных систем принципиально отличается от программирования для централизованных
систем. Так, сетевая операционная система, выполняя в общем случае все функции
по управлению локальными ресурсами компьютера, сверх того решает многочисленные
задачи по предоставлению сетевых служб. Разработка сетевых приложений
осложняется из-за необходимости организовать совместную работу их частей,
выполняющихся на разных машинах. Много забот доставляет обеспечение совместимости
программного обеспечения.
Во-вторых, много проблем связано с транспортировкой
сообщений по каналам связи между компьютерами. Основные задачи здесь —
обеспечение надежности (чтобы передаваемые данные не терялись и не искажались)
и производительности (чтобы обмен данными происходил с приемлемыми задержками).
В структуре общих затрат на вычислительную сеть расходы на решение транспортных
вопросов составляют существенную часть, в то время как в централизованных
системах эти проблемы полностью отсутствуют.
В-третьих, это вопросы, связанные с обеспечением
безопасности, которые гораздо сложнее решаются в вычислительной сети, чем в
централизованной системе. В некоторых случаях, когда безопасность особенно
важна, от использования сети лучше вообще отказаться.