
- •Общие принципы построения вычислительных сетей
- •1.1. От централизованных систем - к вычислительным сетям
- •1.1.1. Эволюция вычислительных систем
- •Системы пакетной обработки
- •Многотерминальные системы - прообраз сети
- •Появление глобальных сетей
- •Первые локальные сети
- •Создание стандартных технологий локальных сетей
- •Современные тенденции
- •1.1.2. Вычислительные сети - частный случай распределенных систем
- •Мультипроцессорные компьютеры
- •Многомашинные системы
- •Вычислительные сети
- •Распределенные программы
- •1.1.3. Основные программные и аппаратные компоненты сети
- •1.1.4. Что дает предприятию использование сетей
- •1.2. Основные проблемы построения сетей
- •1.2.1. Связь компьютера с периферийными устройствами
- •1.2.2. Простейший случай взаимодействия двух компьютеров
- •1.2.3. Проблемы физической передачи данных по линиям связи
- •1.2.4. Проблемы объединения нескольких компьютеров
- •Топология физических связей
- •Организация совместного использования линий связи
- •Адресация компьютеров
- •1.2.5. Ethernet - пример стандартного решения сетевых проблем
- •1.2.6. Структуризация как средство построения больших сетей
- •Физическая структуризация сети
- •Логическая структуризация сети
- •1.2.7. Сетевые службы
- •1.3. Понятие «открытая система» и проблемы стандартизации
- •1.3.1. Многоуровневый подход. Протокол. Интерфейс. Стек протоколов
- •1.3.2. Модель osi
- •1.3.3. Уровни модели osi Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Транспортный уровень
- •Сеансовый уровень
- •Представительный уровень
- •Прикладной уровень
- •Сетезависимые и сетенезависимые уровни
- •1.3.4. Понятие «открытая система»
- •1.3.5. Модульность и стандартизация
- •1.3.6. Источники стандартов
- •1.3.7. Стандартные стеки коммуникационных протоколов
- •Стек osi
- •Стек tcp/ip
- •Стек ipx/spx
- •Стек NetBios/smb
- •1.4. Локальные и глобальные сети
- •1.4.1. Особенности локальных, глобальных и городских сетей
- •1.4.2. Отличия локальных сетей от глобальных
- •1.4.3. Тенденция к сближению локальных и глобальных сетей
- •1.5. Сети отделов, кампусов и корпораций
- •1.5.1. Сети отделов
- •1.5.2. Сети кампусов
- •1.5.3. Корпоративные сети
- •1.6. Требования, предъявляемые к современным вычислительным сетям
- •1.6.1. Производительность
- •1.6.2. Надежность и безопасность
- •1.6.3. Расширяемость и масштабируемость
- •1.6.4. Прозрачность
- •1.6.5. Поддержка разных видов трафика
- •1.6.6. Управляемость
- •1.6.7. Совместимость
- •Вопросы и упражнения
Распределенные программы
Сетевые службы всегда представляют собой распределенные программы. Распределенная программа- это программа, которая состоит из нескольких взаимодействующих частей (в приведенном на рис. 1.5 примере - из двух), причем каждая часть, как правило, выполняется на отдельном компьютере сети.
Рис. 1.5. Взаимодействие частей распределенного приложения
До сих пор речь шла о системных распределенных программах. Однако в сети могут выполняться и распределенные пользовательские программы - приложения. Распределенное приложение также состоит из нескольких частей, каждая и которых выполняет какую-то определенную законченную работу по решению прикладной задачи. Например, одна часть приложения, выполняющаяся на компьютере пользователя, может поддерживать специализированный графический интерфейс вторая - работать на мощном выделенном компьютере и заниматься статистической обработкой введенных пользователем данных, а третья - заносить полученные результаты в базу данных на компьютере с установленной стандартной СУБД. Распределенные приложения в полной мере используют потенциальные возможности распределенной обработки, предоставляемые вычислительной сетью, и поэтому часто называются сетевыми приложениями.
Следует подчеркнуть, что не всякое приложение, выполняемое в сети, является сетевым. Существует большое количество популярных приложений, которые не являются распределенными и целиком выполняются на одном компьютере сети. Тем не менее и такие приложения могут использовать преимущества сети за счет встроенных в операционную систему сетевых служб. Значительная часть истории локальных сетей связана как раз с использованием таких нераспределенных приложений. Рассмотрим, например, как происходила работа пользователя с известной в свое время СУБД dBase. Обычно файлы базы данных, с которыми работали все пользователи сети, располагались на файловом сервере. Сама же СУБД хранилась на каждом клиентском компьютере в виде единого программного модуля.
Программа dBase была рассчитана на обработку только локальных данных, то есть данных, расположенных на том же компьютере, что и сама программа. Пользователь запускал dBase на своем компьютере, и она искала данные на локальном диске, совершенно не принимая во внимание существование сети. Чтобы обрабатывать с помощью dBase данные на удаленном компьютере, пользователь обращался к услугам файловой службы, которая доставляла данные с сервера на клиентский компьютер и создавала для СУБД эффект их локального хранения.
Большинство приложений, используемых в локальных сетях в середине 80-х годов, являлись обычными, нераспределенными приложениями. И это понятно - они были написаны для автономных компьютеров, а потом просто были перенесены в сетевую среду. Создание же распределенных приложений, хотя и сулило много преимуществ (уменьшение сетевого трафика, специализация компьютеров), оказалось делом совсем не простым. Нужно было решать множество дополнительных проблем - на сколько частей разбить приложение, какие функции возложить на каждую часть, как организовать взаимодействие этих частей, чтобы в случае сбоев и отказов оставшиеся части корректно завершали работу, и т. д., и т. п. Поэтому до сих пор только небольшая часть приложений является распределенными, хотя очевидно, что именно за этим классом приложений будущее, так как они в полной мере могут использовать потенциальные возможности сетей по распараллеливанию вычислений.