Введение в Internet и Intranet
1.1. Логическая архитектура компьютерных сетей
1.1.1. Понятие логической архитектуры сети
Стремительный рост неоднородности и масштабности современных компьютерных сетей приводит к чрезмерному усложнению технологии их функционирования, без понимания которой невозможна организация эффективной защиты информационно-компьютерных ресурсов. Технология же функционирования любой системы определяется ее архитектурой, отражающей входящие в систему компоненты, их назначение и взаимосвязи друг с другом.
Полная и детальная архитектура сложной системы тяжела для понимания. Для снижения трудоемкости анализа такую архитектуру следует рассматривать по разным уровням детализации [5]. При рассмотрении каждого такого уровня необходимо абстрагирование от деталей реализации его компонентов, которые раскрываются на нижестоящих уровнях.
По отношению к компьютерным сетям целесообразно различать их физическую и логическую архитектуру.
Физическая архитектура описывает структуру, назначение и взаимосвязи протоколов нижнего и среднего уровней эталонной модели сетевого взаимодействия — протоколов физического, канального, сетевого, транспортного и сеансового уровней (рис. 1.1). Соответственно физическая архитектура определяется структурой, назначением и взаимосвязями аппаратных ,средств компьютерной сети, а также программных реализаций протоколов ,нижнего и среднего уровней эталонной модели. Для полного анализа физической архитектуры необходимо ее рассмотрение по уровням детализации, соответствующим физическому, канальному, сетевому, транспортному и сеансовому уровням эталонной модели сетевого взаимодействия. , архитектура описывает структуру, назначение и взаимосвязи программных средств компьютерной сети, реализующих протоколы верхних уровней эталонной модели — протоколы уровня представления и прикладного уровня (рис. 1.1). Логическая архитектура отражает целостную технологию функционирования компьютерной сети и может быть детализирована посредством различных уровней физической архитектуры.
В настоящее время различают следующие разновидности логической архитектуры компьютерных сетей:
• одноранговая архитектура;
• классическая архитектура "клиент-сервер";
• архитектура "клиент-сервер", основанная на Web-технологии.
Появление каждой из перечисленных разновидностей сетевых архитектур связывают с отдельными этапами эволюции вычислительных систем. Правильно выбранная архитектура компьютерной сети позволяет достигнуть выдвинутых требований по общей производительности, надежности защиты сетевых ресурсов, гибкости настройки сети, а также минимизации денежных затрат на ее построение и администрирование.
1.1.2. Первые вычислительные системы и одноранговая архитектура
Первый этап эволюции вычислительных систем, соответствующий пятидесятым, шестидесятым и семидесятым годам двадцатого века, относится к началу использования компьютеров после изобретения первой электронно-вычислительной машины (ЭВМ).
Каждая вычислительная система того времени была основана, как правило, на использовании одного многополыовательского компьютера, так как персональные компьютеры еще не появились. Архитектура таких вычислительных систем, функционирующих в автономном режиме, была централизованной, когда к одному центральному компьютеру подсоединялись алфавитно- цифровые терминалы (рис. 1.2).
Если компьютеры объединялись линиями связи в сеть, то такая сеть имела одноранговую архитектуру, при которой отсутствовали компьютеры, полностью предоставляющие свои ресурсы в общее пользование для других компьютеров сети.
Таким образом, централизованная архитектура относится к автономной вычислительной системе, основанной на использовании одного многопользовательского компьютера, а одноранговая архитектура — к компьютерной сети, состоящей из ЭВМ одного ранга, когда отсутствуют компьютеры, полностью предоставляющие свои ресурсы в общее пользование.
Все ресурсы вычислительной системы при централизованной архитектуре, включая информацию, были сконцентрированы в центральной ЭВМ, называемой еще мэйнфреймом (main frame — центральный блок ЭВМ). В качестве основных средств доступа к информационно-компьютерным ресурсам использовались алфавитно-цифровые терминалы, которые соединялись с центральной ЭВМ кабелем. Поскольку терминал — устройство простое, не требовалось никаких специальных действий со стороны конечного пользователя по настройке и конфигурированию программного обеспечения в виду его отсутствия на терминале. Управление терминалами осуществлялось централизованно с компьютера. Все терминалы были однотипными.
Следовательно гарантировалось, что программа, запущенная на компьютере, будет работать со всеми терминалами одинаково.
Основным достоинством централизованной архитектуры с точки зрения обеспечения безопасности хранения и обработки данных является относительная простота построения и администрирования системы защиты информации. Эта относительная простота определяется концентрацией компьютерных ресурсов в одном месте. Ведь защита любых объектов, находящихся в одной точке, реализуется намного проще, чем в случае их территориального распределения.
Наряду с достоинствами первые вычислительные системы обладали рядом недостатков, связанных с отсутствием гибкости этих систем, неудобством их использования конечными пользователями, а также дороговизной обслуживания.
В то время как вычислительные системы с описанной централизованной архитектурой выходят из употребления, одноранговые сети из-за своей дешевизны используются широко. Однако в настоящее время они, как правило, объединяют не многопользовательские ЭВМ, а персональные компьютеры. При этом главным признаком одноранговой сети по-прежнему является отсутствие компьютеров, полностью предоставляющих свои ресурсы в общее пользование.
К существенным недостаткам одноранговых сетей можно отнести их низкую безопасность, невысокую производительность и сложность администрирования. Кроме того, при увеличении количества узлов сети эти показатели постепенно ухудшаются. Поэтому одноранговую сетевую архитектуру целесообразно использовать при небольшом количестве объединяемых компьютеров и невысоких требованиях по безопасности и производительности обработки данных.
1.1.3. Классическая архитектура "клиент-сервер"
Недостатки, свойственные первым вычислительным системам с централизованной архитектурой, а также одноранговым компьютерным сетям, устраняются при построении вычислительных систем по архитектуре "клиент- сервер". Эта архитектура появилась на втором этапе эволюции компьютерных технологий, наступившем в восьмидесятых годах двадцатого века. Особенности данного этапа состоят в децентрализации архитектуры автономных вычислительных систем и их объединении в глобальные компьютерные сети.
Децентрализация архитектуры первых вычислительных систем стала возможной в связи с появлением персональных компьютеров, к которым мигрировала часть функций центральных ЭВМ. В результате появилась возможность создавать распределенные локальные и глобальные вычислительные системы, объединяющие персональные компьютеры и компьютеры, полностью предоставляющие свои ресурсы в общее пользование для других компьютеров сети.
Компьютеры, предоставляющие те или иные общие ресурсы, были названы серверами, а компьютеры, использующие общие ресурсы, — клиентами. Соответственно архитектуру таких распределенных вычислительных систем стали называть архитектурой "клиент- сервер" (рис. 1.3). Персональные компьютеры, исполняющие роль клиентов, называют еще рабочими станциями сети.
Конкретный сервер характеризуется видом ресурса, которым он владеет. Так, если ресурсом является только база данных, то речь идет о сервере базы данных, назначение которого — обслуживать запросы клиентов, связанные с обработкой данных; если ресурс — это файловая система, то говорят о файловом сервере или файл-сервере. В настоящее время серверы, как правило, выделяют в общее пользование комплекс ресурсов — базы данных, файловые системы, различные сервисы, предоставляемые выполняемыми на сервере программами, а также внешние устройства, например, принтеры. Различают несколько моделей архитектуры "клиент-сервер", каждая из которых отражает соответствующее распределение компонентов программного обеспечения между компьютерами сети. Распределяемые программные компоненты выделяют по функциональному признаку.
Функции любого программного приложения могут быть разделены на три группы:
• функции ввода и отображения данных;
• прикладные функции, характерные для предметной области приложения;
• функции накопления информации и управления данными (базами данных, файлами).
Соответственно любое программное приложение можно представить как структуру из трех компонентов:
• компонент представления, реализующий интерфейс с пользователем;
• прикладной компонент, обеспечивающий выполнение прикладных функций;
• компонент доступа к информационным ресурсам или менеджер ресурсов, выполняющий накопление информации и управление данными.
Различают следующие модели архитектуры "клиент-сервер", соответствующие нижеприведенным типам распределения перечисленных компонентов между рабочей станцией и сервером сети:
• на сервере расположены только данные (рис. 1.4);
• кроме данных на сервере расположен менеджер информационных ресурсов, например, система управления базой данных (СУБД) (рис. 1.5);
• на сервере сконцентрированы как данные и менеджер ресурсов, так и
прикладной компонент (рис. 1.6);
• на одном сервере расположен прикладной компонент, а на другом— данные и менеджер ресурсов (рис. 1.7).
Модель архитектуры "клиент-сервер", при которой на сервере расположены данные (рис. 1.4), не обеспечивает высокую производительность, так как вся информация обрабатывается на рабочих станциях, а файлы, содержащие эту информацию, для обработки должны быть переданы по сети с сервера. Передача же по сети больших объемов данных, возможно, избыточных, приводит к существенному снижению общей скорости информационного обмена. Это, в свою очередь, может привести к перегрузкам сети. По этим причинам модель доступа к удаленным данным может использоваться только для маленьких сетей.
При использовании модели сервера управления данными на сервере, кроме самой информации, расположен менеджер информационных ресурсов, например, система управления базой данных (СУБД) (рис. 1.5). Компонент представления и прикладной компонент совмещены и выполняются на компьютере-клиенте, который поддерживает как функции ввода и отображения данных, так и чисто прикладные функции. Доступ к информационным ресурсам обеспечивается, как правило, операторами специального языка (например, языка SQL, если речь идет о базах данных) или вызовами функций специализированных программных библиотек. Запросы к информационным ресурсам направляются по сети менеджеру ресурсов, например, серверу базы данных. Последний обрабатывает запросы и возвращает клиенту блоки данных.
Главным преимуществом модели сервера управления данными перед моделью доступа к удаленным данным является снижение объема информации, передаваемой по сети, так как выборка требуемых информационных элементов из файлов выполняется не на рабочих станциях, а на сервере. Кроме того, в настоящее время существует множество инструментальных средств, обеспечивающих быстрое создание приложений с развитым интерфейсом, работающих с SQL-ориентированными СУБД. Это обеспечивает унификацию и широкий выбор средств разработки приложений. С использованием подавляющего большинства этих средств как раз и создаются программы, в которых смешаны прикладные функции и функции представления.
Основным недостатком модели сервера управления данными является отсутствие четкого разграничения между компонентом представления и прикладным компонентом, что затрудняет дальнейшее совершенствование вычислительной системы, архитектура которой построена на основе данной модели.
Учитывая перечисленные достоинства и недостатки модели сервера управления данными, можно сделать вывод, что эту модель целесообразно использовать при построении вычислительных систем, ориентированных на обработку умеренных, не увеличивающихся со временем объемов информации. При этом сложность прикладного компонента приложения не должна быть высокой.
Модель комплексного сервера в сравнении с моделью сервера управления данными является более технологичной. Она строится в предположении, что процесс, выполняемый на компьютере-клиенте, ограничивается функциями представления, в то время, как собственно прикладные функции и функции доступа к данным выполняются сервером (рис. 1.6). Прикладные функции могут быть реализованы в отдельных программах или в хранимых процедурах, которые называют также процедурами базы данных. Эти процедуры хранятся в самой базе данных и выполняются на компьютере- сервере, где функционирует и компонент, управляющий доступом к данным, т. е. ядро СУБД.
Преимущества модели комплексного сервера перед моделью сервера управления данными очевидны: это и более высокая производительность, и более совершенное централизованное администрирование, и, соответственно, экономия ресурсов сети. Учитывая указанные достоинства, можно сделать вывод, что модель комплексного сервера является оптимальной для крупных сетей, ориентированных на обработку больших и увеличивающихся со временем объемов информации.
При существенном усложнении и увеличении ресурсоемкости прикладного компонента для него может быть выделен отдельный сервер, называемый сервером приложений. В этом случае говорят о трехзвенной архитектуре "клиент-сервер" (рис. 1.7), предполагающей наличие трех звеньев: первое звено — компьютер-клиент, второе — сервер приложений, а третье — сервер управления данными. Архитектуру "клиент-сервер", при которой прикладной компонент расположен на рабочей станции вместе с компонентом представления (см. рис. 1.4 и 1.5) или на сервере вместе с менеджером ресурсов и данными (рис. 1.6), называют двухзвенной архитектурой.
В рамках сервера приложений могут быть реализованы несколько прикладных функций, каждая из которых оформляется как отдельная служба, предоставляющая некоторые услуги всем программам, которые желают и могут ими воспользоваться. Серверов приложения может быть несколько, каждый из которых ориентирован на представление некоторого набора услуг. Любая программа, которая пользуется ими, рассматривается как клиент приложения. Детали реализации прикладных функций в сервере приложения полностью скрыты от клиента приложения. Запросы, поступающие от клиентов приложения, выстраиваются в очередь к процессу-серверу приложения, который извлекает, а затем передает их для обработки службе в соответствии с приоритетами.
клиент приложения трактуется более широко, чем компонент представления. Он может поддерживать интерфейс с конечным пользователем (тогда он является компонентом представления), может обеспечивать поступление от некоторых устройств (например, датчиков), может, наконец, сам по себе быть сервером приложения. Последнее позволяет реализовать прикладную систему, содержащую серверы приложений нескольких уровнем. Архитектура такой системы может выглядеть как ядро, окруженное концентрическими кольцами. Ядро состоит из серверов приложения, в которых реализованы базовые прикладные функции. Кольца символизируют наборы серверов приложения, являющихся клиентами по отношению к серверам внутреннего уровня. Число уровней серверов приложений не ограничено.
Четкое разграничение в архитектуре "клиент-сервер" компонентов программных приложений и рациональное распределение этих компонентов между компьютерами сети позволяют достигнуть такого уровня гибкости, второй недостижим в одноранговой архитектуре. Благодаря этому обеспечивается высокая эффективность использования компьютерных ресурсов, возможности расширения и дальнейшего совершенствования вычислительной системы.
Сетевую архитектуру "клиент-сервер", появившуюся на втором этапе эволюции компьютерных технологий, называют классической архитектурой "клиент". Ей присущи следующие особенности:
на сервере порождается не конечная информация, а данные, подлежащие интерпретации компьютерами-клиентами;
• фрагменты прикладной системы распределены между компьютерами сети;
• для обмена данными между клиентами и сервером могут использоваться
закрытые протоколы, несовместимые с открытым стандартом ТСР/IP, применяемом в сети Internet;
• каждый из компьютеров сети ориентирован на выполнение только своих локальных программ.
Последняя особенность способствует повышению информационно-компьютерной безопасности. В случае выполнения на каждом компьютере только своих локальных программ исключается миграция программ по сети при обработке серверами запросов со стороны клиентов. Соответственно снижается вероятность запуска на выполнение вредоносных программ и заражения компьютерными вирусами.
С точки зрения безопасности обработки и хранения данных архитектура "клиент-сервер" обладает и рядом недостатков:
• территориальная распределенность компонентов программных приложений и неоднородность элементов вычислительной системы приводят к существенному усложнению построения и администрирования системы информационно-компьютерной безопасности;
• часть защищаемых информационных ресурсов может располагаться
на персональных компьютерах, которые характеризуются повышенной уязвимостью;
• использование для обмена данными между компьютерами сети закрытых протоколов требует разработки уникальных средств защиты, а соответственно — повышенных затрат;
• при потере параметров настройки программного обеспечения какого-либо компьютера-клиента необходимо выполнение сложных процедур связывания и согласования этого компьютера с остальной частью вычислительной системы, что приводит к увеличению времени восстановления работоспособности компьютерной сети при возникновении отказов.
1.1.4. Архитектура "клиент-сервер", основанная на Web-технологии
Многие недостатки, свойственные компьютерным сетям с классической архитектурой "клиент-сервер", снимаются в вычислительных системах новой архитектуры, которые сконцентрировали и объединили в себе лучшие качества централизованных систем и классических систем "клиент-сервер". Новая архитектура компьютерных сетей была названа как intranet-архитектура. Ее часто называют также Web-архитектурой или архитектурой "клиент- сервер", основанной на Web-технологии. Эта архитектура стала итогом многолетних исследований и разработок в области приложения глобальных сетевых технологий Internet к локальным сетям. Появление в 1993 году архитектуры intranet относят к началу третьего этапа эволюции вычислительных систем.
Основной особенностью архитектуры intranet является возвращение к серверам ряда функций, которые были вынесены за пределы центральной ЭВМ на втором этапе эволюции вычислительных систем. Базисом новой архитектуры является Web-технология, пришедшая из Internet.
В соответствии с Web-технологией на сервере размещаются так называемые Web-документы, которые визуализируются и интерпретируются программой навигации, функционирующей на рабочей станции (рис. 1.8). Программу навигации называют еще Web-навигатором или Web-браузером Web.
Логически Web-документ представляет собой гипермедийный документ, объединяющий ссылками различные Web-страницы, каждая из которых может содержать ссылки и на другие объекты. Физически Web-документ представляет собой текстовый файл специального формата, содержащий ссылки на другие объекты и Web-документы, расположенные в любом узле сети. Web-документ реально включает только одну Web-страницу, но логически может объединять любое количество таких страниц, принадлежащих различным Web-документам.
Web-страница, являясь информационным аналогом страницы бумажного документа, может включать как текст, так и рисунки. Но, в отличие от бумажной страницы, Web-страница может быть связана с компьютерными программами и содержать ссылки на другие объекты. Программа, связанная с Web-страницей, начинает автоматически выполняться при переходе по соответствующей ссылке или открытии Web-страницы. Любые ссылки, включенные в Web-страницу, выделяются другим цветом и/или подчеркиванием. Для перехода по ссылке достаточно щелкнуть по ней мышью. Получаемая таким образом система гиперссылок основана на том, что некоторые выделенные участки одного документа, которыми могут быть части текста и рисунки, выступают в качестве ссылок на другие логически связанные с ними объекты. При этом объекты, на которые делаются ссылки, могут находиться на любом компьютере сети. В Web-страницу могут быть включены ссылки на следующие объекты:
● другую часть Web-документа;
● другой Web-документ или документ другого формата (например, документ Word или Excel), который может размещаться на любом компьютере сети;
● мультимедийный объект — рисунок, звук, видео;
● программу, которая при переходе на нее по ссылке будет выполняться на сервере;
● программу, которая при переходе на нее по ссылке будет передана с сервера на рабочую станцию для интерпретации или запуска на выполнение навигатором;
● любой другой сервис — электронную почту, копирование файлов с другого компьютера сети, поиск информации и т. д.
Из раскрытого понятия Web-документа становится ясно, что программа навигации, выполняемая на рабочей станции, может не только визуализировать Web-страницы и выполнять переходы к другим объектам, но и активизировать программы на сервере, а также интерпретировать и запускать на выполнение программы, относящиеся к Web-документу, для исполнения на рабочей станции.
Передачу с сервера на рабочую станцию документов и других объектов по запросам, поступающим от навигатора, обеспечивает функционирующая на сервере программа, называемая Web-сервером. Когда Web-навигатору необходимо получить документы или другие объекты от Web-сервера, он отправляет серверу соответствующий запрос. При достаточных правах доступа между сервером и навигатором устанавливается логическое соединение„. Далее сервер обрабатывает запрос, передает Web-навигатору результаты обработки, например требуемый Web-документ, и разрывает установленное соединение.
Web-сервер выступает в качестве информационного концентратора, который доставляет информацию из разных источников, а потом однородным образом предоставляет ее пользователю. Навигатор, снабженный универсальным и естественным интерфейсом с человеком, позволяет последнему легко просматривать информацию вне зависимости от ее формата.
Таким образом, в рамках Web-документа может быть выполнена интеграция данных и программных объектов различных типов, расположенных в совершенно разных узлах компьютерной сети. Это позволяет рассредоточивать информацию в соответствии с естественным порядком ее создания и потребления, а также осуществлять к ней единообразный доступ. Приставка Web здесь, а также в названии самой технологии, переводимая как паутина, как раз и отражает тот факт, что работа пользователя осуществляется на основе перехода по ссылкам, которые как нити паутины связывают разнотипные объекты, распределенные по узлам компьютерной сети.
Web-документы, помимо связывания распределенных и разнотипных данных, позволяют рассматривать информацию с нужной степенью детализации, что существенно упрощает анализ больших объемов информации. Можно сконцентрировать внимание на главном, а затем изучить выбранный материал во всех подробностях. Можно эффективно реализовать много модельный подход представления материала, создавая различные "взгляды" на требуемую предметную область, отражающие точки зрения той или иной группы сотрудников организации. Компьютер-клиент, на котором должна выполняться программа навигации, может быть полностью стандартизован. В такой компьютер, помимо процессора, основной памяти и монитора, достаточно включить небольшой участок внешней памяти, необходимый для хранения и работы программы навигации, а также устройство сопряжения с линией связи. Кроме того, программу навигации можно вообще реализовать аппаратно в специализированном процессоре.
Изложенное позволяет выделить следующие отличительные черты intranet- архитектуры:
● на сервере порождается конечная информация, предназначенная для представления пользователю программой навигации, а не полуфабрикат, как в системах с классической архитектурой "клиент-сервер";
● все информационные ресурсы, а также прикладная система сконцентрированы на сервере;
● для обмена данными между клиентами и сервером используются протоколы открытого стандарта ТСР/IP, применяемые в Internet;
● облегчено централизованное управление не только сервером, но и компьютерами-клиентами, так как они стандартизованы с точки зрения программного обеспечения (на каждой рабочей станции достаточно наличия только стандартной программы навигации);
● на рабочих станциях помимо своих программ могут выполняться программы с других компьютеров сети.
Все перечисленные особенности, за исключением последней, способствуют решению проблемы информационно-компьютерной безопасности.
Концентрация на сервере всех информационных ресурсов и прикладной системы существенно упрощает построение и администрирование системы безопасности, так как защита любых объектов, находящихся в одном месте, реализуется намного проще, чем в случае их территориального распределения.
Использование для обмена данными между компьютерами сети протоколов открытого стандарта (ТСР/IP) приводит к унификации всех способов взаимодействия между рабочими станциями и сервером. Не нужно решать задачу обеспечения безопасного информационного взаимодействия для множества приложений каждого компьютера. Решение по безопасности взаимодействия для одного компьютера и будет стандартным для всех. Кроме того, по отношению к протоколам открытого стандарта намного интенсивнее и шире публичное обсуждение вопросов информационной безопасности и богаче выбор защитных средств.
Облегченное централизованное управление сервером и компьютерами- клиентами снижает вероятность допущения непреднамеренных ошибок пользователями, операторами и администраторами. Такие ошибки являются одной из основных угроз информационно-компьютерной безопасности и приводят к прямому ущербу. В качестве примера могут выступать неправильно введенные данные или ошибки в программе, вызвавшие остановку либо разрушение системы. Эти ошибки также создают слабые места, которыми могут воспользоваться злоумышленники.
В архитектуре intranet распределенная обработка информации предполагает возможность выполнения на рабочих станциях программ, полученных с сервера. Такой вид распределенной обработки позволил сконцентрировать всю прикладную систему на сервере. Однако возможность выполнения на рабочих станциях программ с сервера порождает новые угрозы информационно-компьютерной безопасности, например, появляется угроза подмены передаваемой с сервера программы [2, 29]. Соответственно возможность миграции программ предъявляет дополнительные требования по поддержанию безопасности сетевого взаимодействия.
1.2. Основы современных сетевых технологий
1.2.1. Схема взаимодействия с Web-сервером
Обобщенное описание
В настоящее время наиболее перспективной является архитектура "клиент- сервер", основанная на Web-технологии.
Обмен информацией по Web-технологии не отличается от информационного обмена, реализуемого по принципу "клиент-сервер", когда программа-сервер осуществляет обработку запросов, поступающих от программы-клиента.
В качестве программ-клиентов выступают программы Web-навигации, располагаемые на рабочих станциях сети, или служебные Web-приложения. Web-навигаторы используются для непосредственной визуализации и интерпретации Web-документов, хранящихся на сервере, а также для доступа к другим отдельным сервисам (рис. 1.9):
● сервису копирования файлов с сервера (FTP-сервису);
● сервису управления сервером (Telnet-сервису);
● сервису многоуровневых меню по доступу к компьютерным ресурсам
(Gopher-сервису).
Доступ к другим отдельным сервисам возможен в связи с тем, что с самого начала программы навигации разрабатывались как мультипротокольные программы, обеспечивающие интерфейс доступа ко многим ресурсам сети.
К Web-навигаторам относятся такие известные продукты, как Netscape Navigator компании Netscape или Internet Explorer от Microsoft.
Служебные Web-приложения используются чаще всего для получения некоторых статистических данных о Web-сервере или индексирования содержащейся там информации с целью пополнения базы данных поисковых систем.
При использовании Web-технологии в качестве основной программы- сервера выступает Web-сервер, который запускается на компьютере-сервере и осуществляет обработку запросов, приходящих от Web-клиентов. Взаимодействие между Web-клиентом и Web-сервером осуществляется в соответствии с протоколом HTTP (HyperText Transfer Protocol — протокол передачи гипертекста). Будучи запущенным, Web-сервер контролирует логический порт, по умолчанию номер которого равен 80, и полагает, что любые сообщения, присланные к этому порту, предназначены для Web-сервера.
При получении запроса от Web-клиента Web-сервер устанавливает связь по протоколу ТСР/IP и обменивается информацией в соответствии с протоколом HTTP. В случае запроса защищенной информации Web-сервер может потребовать от пользователя введения идентификатора и пароля. Защищенные Web-документы предоставляются только при наличии у пользователей соответствующих прав доступа.
Web-документы, получаемые навигатором от Web-сервера, представляют собой текстовые файлы, написанные на специальном языке, называемом языком HTML (HyperText Markup Language — гипертекстовый язык меток). Этот язык состоит из набора соглашений, в соответствии с которыми в текстовый файл помимо требуемого текста на любом языке мира вставляются метки, определяющие форматирование этого текста и его внешний вид в окне Web-навигатора, а также ссылки на любые объекты и отображаемые графические файлы. Кроме меток в Web-документ могут быть вставлены программы на языках JavaScript (Java Scripting) и VBScript (Visual Basic Scripting), интерпретируемые Web-навигатором при загрузке и просмотре Web-документа.
Для доступа к той информации, которая не может обрабатываться Web- сервером непосредственно, например для доступа к базам данных, используется система программных шлюзов. Программный шлюз, получив запрос от Web-сервера, обрабатывает его сам или выступает в качестве посредника между сервером Web и каким-либо другим сервером, например, сервером СУБД (рис. 1.9).
Программные шлюзы разрабатываются в соответствии с определенными стандартами, определяющими способы вызова Web-сервером прикладных программ или функций динамических библиотек, а также способы обмена информацией с этими программными объектами. Одним из наиболее распространенных стандартов данного типа является интерфейс CGI (Common Gateway Interface — общий интерфейс шлюзов).
Обработка запроса от Web-клиента
Рассмотрим полную последовательность шагов, реализуемую Web-сервером при обработке запроса, поступившего от Web-клиента.
1. Web-навигатор или другой Web-клиент посылает Web-серверу запрос на получение от него какого-либо информационного ресурса. Запрос передается в формате НТТР, а адрес ресурса указывается в формате URL.
2. После получения запроса Web-сервер определяет наличие запрашиваемого ресурса среди локальных ресурсов, т. е. среди ресурсов, которыми данный сервер управляет.
3. Если запрашиваемый ресурс имеется в наличии, то Web-сервер проверяет права доступа к этому ресурсу и, если права не нарушены, то возвращает содержимое ресурса Web-клиенту.
4. Если запрос Web-клиента нарушает права доступа к ресурсу, то Web- сервер отклоняет запрос и возвращает соответствующее предупреждение клиенту.
5. В случае, если запрашиваемый ресурс не относится к локальным ресурсам Web-сервера, сервер определяет наличие в его файлах настройки информации о перемещении ресурса в сети. Если ресурс был размещен на сервере, но в данный момент перемещен в другое место, то сервер сообщает об этом клиенту (рис. 1.10).
6. Если Web-сервер поддерживает виртуальное дерево другого Web-сервера, то запрос будет перенаправлен на нужный ресурс по аналогии с предыдущим шагом (рис. 1.10).
7. Если Web-сервер используется в качестве сервера-посредника (proxy- сервера), то он выступает, с одной стороны, в качестве Web-сервера для клиента, пославшего запрос, а с другой стороны — в качестве Web- клиента, который посылает запрос к другому Web-серверу (рис. 1.11).
8. После возвращения информации клиенту сервер разрывает соединение с ним.
Web-сервер может использоваться для решения широкого круга задач. Наиболее типичными для современных серверов являются следующие функции:
● ведение иерархической базы данных документов, обработка запросов и
контроль за доступом к информации со стороны программ-клиентов;
● предварительная обработка данных перед ответом на запрос;
● взаимодействие с внешними программами и другими серверами, например, с информационно-поисковыми системами. Большинство современных Web-серверов, таких как Enterprise Server от корпорации Netscape и Internet Information Server от Microsoft, реализуют криптографический протокол SSL (Secure Sockets Layer), обеспечивающий поддержание конфиденциальности, целостности и подлинности передаваемых по сети данных. Этот протокол реализован и в современных Web- навигаторах — Netscape Navigator и Internet Explorer. Данная особенность позволяет безопасно использовать Web-технологию в компьютерных сетях.
1.2.2. Распределенная обработка информации на основе мигрирующих программ
Одной из главных особенностей intranet-архитектуры является распределенная обработка информации на основе мигрирующих программ. Программа навигации, выполняемая на рабочей станции, может не только визуализировать Web-старницы и выполнять переходы к другим ресурсам, но и активизировать программы на сервере, а также интерпретировать и запускать на выполнение программы, относящиеся к Web-документу, которые передаются вместе с этим документом с сервера. Такой вид распределенной обработки информации позволяет сконцентрировать всю прикладную систему непосредственно на сервере.
Существует три основных вида программ, которые могут быть связаны с Web-документом и передаваться на рабочую станцию для выполнения:
● Java- аплеты, подготовленные и используемые по технологии Java;
● программы, написанные на языке сценариев JavaScript, VBScript (Visual Basic Scripting) или VRML;
● программные компоненты ActiveX Controls, соответствующие технологии ActiveX.
Наличие нескольких разновидностей мигрирующих программ объясняется их различными возможностями, а также конкуренцией между ведущими корпорациями в области программных и сетевых технологий — корпорациями Sun Microsystems, Netscape, Microsoft и другими.
Технология Java была разработана компанией Sun Microsystems в начале 90- х годов в связи с возникновением острой необходимости в компьютерных программах, ориентированных на использование в сетевой среде и интеграцию с Web-сервисом. К таким программам изначально были предъявлены требования по мобильности, предполагающие независимость от аппаратными и операционных платформ, а также безопасность и надежность обработки информации.
В результате были разработаны язык программирования Java, а также целостная технология создания и использования мобильных программ, получившая название Java-технологии, Язык Java является простым объектно-ориентированным языком программирования, построенным на основе языка С++, из которого убрали все лишнее и добавили новые возможности для обеспечения безопасности и надежности распределенных вычислений. Много полезных идей было заимствовано из языков Objective С и SmallTalk.
Для снижения сложности программирования и количества допускаемых ошибок в язык Java были внесены жесткая объектная ориентация описаний и строгая типизация данных. В этом языке нет данных, не входящих в объекты, и нет функций, не являющихся методами какого-либо объекта. Строгая типизация информационных элементов позволяет н
а стадии компиляции выявлять ошибки, связанные с несовместимостью типов данных.
Реализованный в языке модульный принцип построения программ и простота языка дают возможность не только быстро разрабатывать новые программы, но и применять элементы уже написанных и проверенных программ, а также эффективно модернизировать старые. Кроме того, в стандарт языка входит множество полезных библиотек, на основе которых можно строить вычислительные системы любой сложности. Этот стандартный набор постоянно пополняется новыми важными функциями.
Независимость от аппаратно-операционных платформ, а также безопасность и надежность обработки информации были достигнуты разработкой виртуального Java-процессора, предназначенного для выполнения Java- программ путем их интерпретации. Определены его архитектура, представление элементов данных и система команд.
Виртуальный Java-процессор обеспечивает среду для исполнения Java-
программ. При этом любая Java-программа должна соответствовать спецификации этого абстрактного процессора, которая полностью определяет его машинно-независимую систему команд, типы обрабатываемых данных, а также регистры. Поэтому для возможности исполнения Java-программы виртуальным Java-процессором ее исходные тексты должны быть оттранслированы в высокоуровневые машинно-независимые коды этого абстрактного процессора, называемые байт-кодами.
Оттранслированные Java-программы, предназначенные для выполнения на рабочей станции в среде Web-навигатора, называют Java-аплетами или просто аплетами. По своей структуре каждый аплет представляет собой небольшую программку, в которой должно быть определено несколько обязательных функций. Аплет загружается по сети с сервера и выполняется в среде Web-навигатора (рис. 1.12). Ссылки на аплеты располагаются в Web- документах, но непосредственно в состав Web-документов аплеты не входят. Они хранятся в отдельных файлах на сервере.
Независимость байт-кодов Java от аппаратно-операционных платформ достигается программной реализацией для каждой из этих платформ только виртуального Java-процессора, который и предназначен для интерпретации аплетов.
Байт-коды Java-программ обладают следующими особенностями:
● они могут не только легко интерпретироваться, но и эффективно компилироваться "на лету" непосредственно в машинные коды для любой современной аппаратной платформы;
● средняя длина команды в байт-кодах сокращена до минимума, что снизило сложность и объем Java- аплетов по сравнению с обычными исполняемыми программами;
● байт-коды каждой программы содержат избыточную информацию, которая позволяет проверить их на безопасность выполнения.
Под компиляцией "на лету" или, как ее еще называют, динамической компиляцией понимается компиляция аплетов в машинные коды рабочей станции, выполняемая сразу же после получения аплетов на этой рабочей станции с целью их выполнения как обычных исполняемых программ. Вместо виртуального процессора при динамической компиляции предполагается использование специализированного компилятора. Динамическая компиляция байт-кодов и их дальнейшее выполнение повышает быстродействие Java- аплетов, которое при их интерпретации ниже скорости выполнения обычных исполняемых программ. Однако без принятия дополнительных мер при использовании динамической компиляции может быть снижена безопасность обработки информации. Поэтому динамическая компиляция Java-аплетов в Web-навигаторах пока не используется.
Байт-коды разрабатывались так, чтобы максимально сократить среднюю длину команды. Java-процессор имеет минимум регистров, стековую архитектуру и часто использует косвенную адресацию. Поэтому большинство из команд занимает всего один байт, к которому добавляется при необходимости номер операнда. Кроме того, для обработки каждого типа данных Java- процессор имеет свой набор команд. В результате средняя длина Java- команды составляет всего 1,8 байта. Средняя длина команды для классических RISC-процессоров равна примерно 4 байтам. Для высокой надежности и безопасности выполнения Java- аплетов предусмотрены две важные функции:
● проверка байт-кодов перед их выполнением на целостность и правильность инструкций;
● контроль и блокирование опасных действий в процессе интерпретации байт-кодов.
Первую функцию реализует загрузчик и верификатор байт-кодов, а вторую — диспетчер безопасности виртуального Java-процессора. Диспетчер безопасности запрещает аплетам осуществлять доступ к файлам и периферийным устройствам, а также выполнять системные функции, такие как распределение памяти.
Виртуальный Java-процессор обеспечивает выполнение и других функций, влияющих на надежность обработки информации, например, "сбор мусора", т. е. освобождение неиспользуемой оперативной памяти. Кроме того, язык Java содержит необходимые средства для корректной работы со всеми объектами и ресурсами в случае возникновения исключительных ситуаций.
Технологический цикл подготовки Java- аплетов тот же, что и для программ на других языках программирования. Отличием является лишь то, что при редактировании внешних связей требуемые компоненты могут доставляться по сети. Процесс выполнения аплетов существенно отличается от аналогичного процесса для обычных программ (рис. 1.13).
Поскольку аплеты и другие части прикладной системы хранятся на сервере, то за счет централизации облегчается сопровождение и администрирование системы. Это в свою очередь гарантирует, что пользователь всегда будет использовать самые последние версии программ.
Следует отметить, что на языке Java могут создаваться не только аплеты, являющиеся мигрирующими программами, но и стационарные программные приложения. Однако для высокого быстродействия исходные текст таких программ следует компилировать не в байт-коды, а в машинно-зависимые коды, обеспечивающие высокую скорость исполнения.
В настоящее время существует достаточное количество инструментальных средств для разработки как Java-аплетов, так и Java-приложений. Среди них — Microsoft Visual J++, Symantec Cafe, Borland Jbuilder, Sun Microsystems Java WorkShop и ряд других.
Технологии, основанные на использовании языков сценариев
Параллельно с мощной Java-технологией появились технологии создания и применения мигрирующих программ, основанные на использовании языков сценариев. Наиболее важным отличием таких технологий от Java-технологии является покомандная интерпретация исходных текстов программ, исключающая необходимость их компиляции перед выполнением. Вспомним, что в Java- технологии мобильная Java-программа для возможности выполнения должна быть откомпилирована в байт-коды. Функция интерпретации мобильных программ, написанных на языке сценариев, возложена на Web-навигатор.
Языки сценариев часто называют еще языками скриптов (script — сценарий) или макроязыками. Их интерпретируемая природа упрощает отладку и создание составленных на них программ. К основным представителям языков сценариев, предназначенных для написания мигрирующих программ, относятся:
● язык JavaScript, разработанный совместно компаниями Netscape и Sun Microsystems, а также подобный ему язык VB Script (Visual Basic Scripting) от Microsoft;
● язык VRML (Virtual Reality Modeling Language — язык моделирования виртуальной реальности), разработанный компанией Silicon Graphics.
Язык сценариев JavaScript впервые появился в Web-навигаторе Netscape Navigator 2.0 под названием LiveScript. Впоследствии Netscape отказалась от такого названия, начав работать вместе с Sun Microsystems и попав под влияние Java. JavaScript вовсе не представляет собой производную от Java.
Хотя эти языки имеют некоторые общие атрибуты, но их можно назвать не более чем дальними родственниками (табл. 1.1).
JavaScript является упрощенным интерпретируемым языком с базовыми объектно-ориентированными функциями. Свойство простоты объясняется отсутствием жесткой архитектуры типов и семантики. Объектно-ориентированная ориентация проявляется в возможностях работы с окнами, строкой состояния и другими элементами интерфейса Web-навигатора и сетевого окружения как с объектами в иерархии, к которым можно обращаться по имени.
JavaScript беднее языка Java, но гораздо удобнее и эффективнее для ряда задач, связанных с обработкой Web-документов и взаимодействием с пользователем при его просмотре. Он имеет большое число встроенных функций и команд. Программы, написанные с помощью JavaScript, могут выводить на экран диалоговые окна, производить математические вычисления, проигрывать различные аудио- и видеофайлы, получать новые документы, обрабатывать нажатие на кнопки в формах и многое другое. С помощью JavaScript можно также устанавливать атрибуты и свойства бинарных библиотек Java, а также программных модулей (plug-ins), подключенных к Web-навигатору.
Команды JavaScript встраиваются непосредственно в Web-страницу и выполняются Web-навигатором во время загрузки этой страницы или во время определенных действий, производимых пользователем при работе с ней, например, при щелчке мышью на одном из объектов страницы, при позиционировании указателя в место расположения ссылки или при вводе информации в поля HTML-формы.
Как и для любой другой технологии или языка, используемых в компьютерной сети, обеспечение безопасности обработки информации является первоочередной задачей. JavaScript, хотя его и нельзя назвать языком с самым высоким уровнем защиты, тем не менее, адекватен большинству требований. В нем не реализованы некоторые возможности, поскольку они косвенно делают защиту более уязвимой. Программе на JavaScript, как и программе на языке Java, запрещено выполнять операции с локальными файлами. Поэтому программа не в состоянии изменять или получать доступ к пользовательским данным. Кроме того, язык JavaScript не поддерживает сетевые функции. Он не может, например, напрямую открыть порт ТСР/1Р, а способен только обеспечить загрузку объекта по заданному адресу и формирование данных, передаваемых Web-серверам. Современные Web- навигаторы позволяют устанавливать уровни безопасности и управлять ими так, что программа на JavaScript может обратиться только к ограниченному кругу информации.
Быстрота создания программ, небольшие размеры программных модулей, удобный доступ ко всем внутренним функциям Web-навигатора, а также безопасность JavaScript-технологии привели к высокой популярности языка JavaScript, не уступающей популярности языка Java.
К недостаткам технологии JavaScript следует отнести невысокое быстродействие JavaScript-программ, являющееся неотъемлемым атрибутом всех интерпретируемых языков программирования.
Нужно отметить, что реализации языка JavaScript компаний Netscape и Microsoft различаются. Эти несоответствия могут привести к несовместимости при использовании Web-навигаторов Netscape Navigator и Internet Explorer. Поэтому при создании приложений на JavaScript необходима проверка их работоспособности в среде различных программ навигации.
Язык сценариев VBScript (Visual Basic Scripting) от Microsoft во многом подобен JavaScript. Он является подмножеством языка Visual Basic и также предназначен для программирования страниц Web. С его помощью можно заставить взаимодействовать разные объекты на Web-странице, включая программные компоненты другого типа, например, аплеты Java и программные компоненты ActiveX Controls.
В отличие от макроязыков JavaScript и VBScript язык VRML разработан корпорацией Silicon Graphics специально для создания интерпретируемых пpoграмм, моделирующих трехмерные виртуальные миры. Интерпретаторы VRML подключаются к Web-навигаторам чаще всего в виде отдельных программных модулей (plug-ins). Исходные тексты программ на языке VRML оформляются в виде отдельного VRML-файла и вызываются по ссылке с Web-документа при его просмотре Web-навигатором. Щелчок мышью по такой ссылке приводит к открытию отдельного окна, позволяющего пройтись по расположенному в нем фрагменту трехмерной реальности.
Под ActiveX понимается набор технологий от Microsoft, направленных на дополнение, интеграцию и унификацию существующих методов представления и обработки информации в компьютерных сетях, построенных по Web-архитектуре. Основная идея ActiveX-технологий заключается в использовании одинакового способа доступа ко всем информационным ресурсам сети (рис. 1.14). В качестве основы такого унифицированного способа доступа выбрана Web-технология.
В соответствии с ActiveX Web-навигатор должен стать частью операционной системы. Более того, методы доступа к любой информации на собственном компьютере, на сервере локальной сети или в Internet должны быть совершенно одинаковы и прозрачны для пользователя. Данная концепция частично уже реализована в Web-навигаторе Microsoft Internet Explorer 4.0.
С точки зрения разработки мобильных программ набор технологий ActiveX с одной стороны выступает как альтернатива, а с другой — как существенное дополнение технологий Java и JavaScript. ActiveX обеспечивает не только разработку и выполнение мобильных программ, но и реализацию ряда дополнительных возможностей, например, вызов из среды Web-навигатора функций по просмотру и редактированию документов Word, Excel и Power- Point. В распоряжение программистов и авторов Web-документов ActiveX предоставляет набор функций API (Application Program Interface), реализованный как для клиента, так и для сервера.
ActiveX поддерживает следующие типы мобильных программ, которые могут быть связаны с Web-документом и передаваться на рабочую станцию для выполнения (рис. 1.15):
● программные компоненты ActiveX Controls; О аплеты Java;
● программы, написанные на языках сценариев JavaScript, VBScript (Visual
Basic Scripting) и VRML.
Технологии по созданию и использованию программных компонентов ActiveX Controls, а также программ, написанных на макроязыке VBScript, являются собственными разработками Microsoft.
На сервере для действенности технологий ActiveX должны функционировать общесистемные программные средства от Microsoft: операционная система Windows NT Server и Web-сервер IIS (Internet Information Server). Взаимодействие Web-сервера IIS с другими приложениями, например с системой управления базами данных (СУБД), обеспечивается за счет реализованных в нем интерфейсов ISAPI (Internet Server API) и CGI (Common Gateway Interface).
Программные компоненты ActiveX Controls представляют собой обычные исполняемые программы, которые могут загружаться с сервера для исполнения на рабочей станции. Как и при использовании Java-аплетов ссылки на эти программы располагаются в Web-документах. Непосредственно в состав Web-документов программные компоненты ActiveX Controls не входят. Они хранятся в отдельных файлах на сервере. Компоненты ActiveX Controls отличаются от Java-аплетов следующими особенностями:
● программы ActiveX Controls включают исполняемый код, зависящий от аппаратно-операционной платформы; байт-коды же Java-аплетов являются машинно-независимыми;
● загруженные элементы ActiveX Controls остаются в клиентской системе, тогда как аплеты Java необходимо каждый раз загружать заново;
● поскольку программы ActiveX Controls не работают подобно Java- аплетам под контролем диспетчера безопасности, они могут получать доступ к дискам и выполнять другие функции, характерные для традиционных приложений.
Учитывая, что программы ActiveX Controls по сути являются обычными программными приложениями, то их разработка может осуществляться с помощью любого языка программирования. Могут быть использованы такие инструментальные системы, как Visual C++, Visual Basic, Delphi, Visual J++ и ряд других. Разработан и комплексный инструментальный пакет Microsoft ActiveX Development Kit (MADK).
Программные компоненты ActiveX Controls, а также программы, написанные на макроязыках JavaScript и VBScript, могут включать вызовы функций API ActiveX по предоставлению ряда сервисов, таких как:
● создание высококачественных мультимедийных эффектов;
● открытие и редактирование электронных документов путем обращения к приложениям, поддерживающим стандарт OLE (Object Linking and Embedding — связывание и встраивание объектов), например, к приложениям Microsoft Office;
● обращения к операционной системе для оптимальной настройки параметров выполнения полученных с сервера программ.
Программы, написанные на макроязыках JavaScript и VBScript, могут автоматизировать взаимодействие между множеством объектов, включая аплеты Java, программные компоненты ActiveX Controls и другие программы на клиентском компьютере, позволяя им работать вместе как часть интегрированного активного пространства Web. Можно написать свой макроязык и добавить его интерпретатор в Web-навигатор Internet Explorer с помощью динамически загружаемой библиотеки DLL.
В сравнении с технологией Java технология ActiveX Controls имеет как недостатки, так и преимущества.
Недостатки связаны прежде всего с более низким уровнем безопасности
распределенной обработки информации. Программные компоненты ActiveX Controls, загруженные на клиентскую систему, могут обращаться к любой ее части подобно обычному приложению. Microsoft реализовала в рамках ActiveX доверительную защиту на основе цифровых сертификатов, которые обеспечивают подтверждение подлинности загруженных с сети программных компонентов. Однако подтверждение подлинности еще не означает подтверждение безопасности. Кроме того, схема доверительной защиты ActiveX может оказаться недейственной, когда пользователи загружают программные компоненты ActiveX Controls из Internet, особенно из неизвестных или сомнительных источников.
Вместе с тем программные компоненты ActiveX Controls, в отличие от Java- аплетов, позволяют реализовать функции, свойственные полномасштабным программным приложениям. Эта особенность для корпоративной сети является существенным преимуществом при условии принятия соответствующих мер безопасности, например, при разрешении загрузки программ ActiveX Controls только с серверов корпорации.
Что же касается производительности, то поскольку Java является интерпретируемым языком, аплеты Java выполняются на виртуальной машине клиентской системы с меньшей скоростью, чем скомпилированные элементы ActiveX Controls. Но с другой стороны, аплеты Java очень компактны, поэтому загружаются быстро. Для загрузки же программ ActiveX Controls требуется большее время. Следует также учесть, что загруженные программы ActiveX Controls остаются в клиентской системе, тогда как все аплеты Java необходимо каждый раз загружать заново. Эта особенность с точки зрения безопасности является недостатком, так как нарушается централизация прикладной системы. Но с точки зрения производительности достигается пре- имущество перед Java- аплетами.
По независимости от аппаратных и операционных платформ ActiveX уступает Java-технологии. Несмотря на заявление компании Microsoft, что ActiveX обеспечивает открытую много платформенную поддержку операционных систем Macintosh, Windows и UNIX, технологии ActiveX лучше работают на платформах Microsoft Windows, поскольку разработаны преимущественно для использования функций, встроенных в эти операционные системы. Соответственно в полной мере ActiveX может использоваться в сетях, работающих под управлением операционных систем Microsoft Windows.
1.2.3. Доступ к реляционным базам данных
В архитектуре "клиент-сервер", основанной на Web-технологии, Web-сервер выступает в качестве информационного концентратора, который доставляет
информацию из разных источников, а потом однородным образом с помощью Web-навигатора предоставляет ее пользователю. Непосредственная интеграция разнородной информации выполняется при визуализации и интерпретации Web-документов, которую реализует Web-навигатор при взаимодействии с Web-сервером, а также другими серверами по предоставлению информационных ресурсов. Взаимодействие Web-навигатора с сервером системы управления базами данных (сервером СУБД) может осуществляться двумя основными способами:
● доступ к серверу СУБД через Web-сервер;
● доступ к серверу СУБД напрямую.
Доступ к серверу СУБД через Web-сервер
Для доступа Web-навигатора к серверу СУБД через Web-сервер используется система программных шлюзов (см. рис. 1.9). Программный шлюз, получив запрос от Web-сервера, выступает в качестве посредника между сервером Web и сервером СУБ
Программные шлюзы разрабатываются в соответствии с определенными стандартами, определяющими способы вызова Web-сервером прикладных программ или функций динамических библиотек, а также способы обмена информацией с этими программными объектами. Одними из наиболее распространенных стандартов данного типа являются интерфейс CGI (Common Gateway Interface — общий интерфейс шлюзов), а также его усовершенствованная спецификация, названная как FastCGI (ускоренный CGI).
Для доступа Web-навигатора к серверу СУБД через Web-сервер по стандарту CGI необходима соответствующая CGI-программа, выполняющая роль программного шлюза между Web-сервером и сервером СУБД (рис. 1.1б).
CGI-приложения работают независимо от Web-сервера, а их запуск осуществляется по вызову с Web-документа при его обработке Web-навигатором. CGI-программа взаимодействует с Web-сервером посредством двустороннего обмена переменными среды через стандартные каналы ввода/вывода данного приложения.
Поскольку CGI-программы работают независимо от Web-сервера и имеют простой общий интерфейс, разработчики Web-документов имеют возможность создавать свои CGI-программы на любом языке, поддерживающем стандартные файловые операции ввода/вывода. Кроме того, при независимой разработке можно создавать такие приложения, которые легко переносятся с одного на другой Web-сервер. Существуют и стандартные CGI- программы, специально разработанные для взаимодействия Web-серверов с различными СУБД, например, программа WebDBC.
В качестве интерфейса между Web-навигатором и сервером СУБД в составе Web-документов применяют НТМL-формы, которые позволяют формулировать запросы к базе данных. CGI-программа получает информацию от Web-сервера либо через переменные окружения, либо через стандартный ввод. Все зависит от метода доступа, который используется при обмене данными между Web-навигатором и Web-сервером. Далее CGI-программа через драйвер ODBC (Open DataBase Connectivity) обращается к серверу СУБД и возвращает Web-серверу ответ на запрос через стандартный вывод. Драйвер ODBC обеспечивает унифицированный способ доступа к различным СУБД посредством стандартного языка запросов SQL. Благодаря стандарту ODBC прикладные программы могут использовать единственный диалект SQL и взаимодействовать с разными СУБД. Можно обойтись и без драйвера ODBC, но в этом случае CGI-программа должна быть написана с ориентацией на конкретную СУБД, функционирующую на сервере. Таким образом, разработчику CGI-приложения не надо ничего знать о том, как устроен Web-сервер. Более того, ему вовсе не обязательно использовать сложные языки типа С++. CGI-программа может быть написана и на командном языке, например Perl. Главное выдержать все соглашения, накладываемые стандартом CGI. Такой подход существенно облегчает разработку прикладного программного обеспечения для Web вообще и для сопряжения баз данных с Web-сервером в частности. Стандарт CGI обладает и недостатком — снижение скорости обработки запросов при увеличении интенсивности их поступления.
При каждом вызове CGI-программы ее приходится загружать с диска (т. е. запускать новый процесс). По завершении работы программы требуется освободить использовавшиеся ею ресурсы. Такие операции создают заметную дополнительную : нагрузку на сервер, что сказывается на его производительности. К тому же запуск нового процесса при каждом запросе снижает эффективность постоянных процессов и доступность данных. Информацию, которая сгенерирована в ходе обработки одного запроса, невозможно использовать при обработке другого.
Для того чтобы обойти проблемы, связанные с быстродействием CGI, многие поставщики Web-серверов, включая Microsoft и Netscape, разработали
соответствующие интерфейсы прикладного программирования (API). Корпорацией Microsoft был разработан интерфейс ISAPI (Internet Server API), а корпорацией Netscape — интерфейс NSAPI (Netscape Server API).
Эти интерфейсы тесно интегрированы с Web-сервером, позволяя сохранять
доступность постоянно используемых процессов и данных. Программы с интерфейсом ISAPI компилируются в файлы динамически подключаемых библиотек DLL. Они загружаются в память во время первого обращения к ним и поэтому для повторного вызова этих программ не нужно порождать новый процесс. Функции интерфейса NSAPI загружаются в серверное пространство процессов. Соответственно при вызове этих функций также не порождаются дополнительные процессы. Благодаря API-интерфейсу использующая его программа может оставлять соединение с СУБД открытым, так что следующему запросу к базе данных не придется тратить время на открытие и закрытие соединения.
Однако API-интерфейсы Web-серверов — хоть и неплохое, но нестандартное решение. Большинство приложений нельзя переносить с одного API на другой, и очень редко удается переносить приложения на другие платформы. Кроме того, большинство приложений для Web-серверов все еще создаются для интерфейса CGI, поэтому переход к приложениям на базе API не представляется экономически оправданным.
Поэтому стали появляться способы построения некоторого промежуточного варианта, который, с одной стороны, удовлетворял бы требованиям мобильности, независимости и простоты программирования, а с другой стороны — был бы достаточно эффективным. Одним из таких решений является спецификация FastCGI. Идея этой спецификации в том, что прикладная программа использует способ передачи параметров и данных, который применяется в CGI, но при этом не удаляется из памяти, а остается резидентной, обрабатывая поступающие запросы.
Таким образом, приложения на базе FastCGI, подобно CGI-программам, работают независимо от Web-сервера и запускаются через стандартные ссылки в Web-документах. Но, как и программы на базе API, программы для FastCGI являются постоянно действующими. Когда программа заканчивает обработку очередного запроса, ее процесс остается открытым в ожидании нового запроса.
При доступе Web-навигатора к реляционной базе данных через интерфейс FastCGI получается схема, в которой фактически используются три сервера: Web-сервер, FastCGI-программа и сервер базы данных. Web-сервер принимает запрос Web-навигатора и передает его FastCGI-программе, которая в свою очередь обращается к серверу баз данных. Результат возвращается по обратной цепочке.
Доступ к серверу СУБД напрямую
Для доступа Web-навигатора к серверу СУБД напрямую могут использоваться как Java-аплеты (рис. 1.17) и программные компоненты ActiveX Controls (рис. 1.18), так и подключаемые к навигатору специализированные программные модули (plug-ins).
Для использования Java-аплетов по доступу к различным серверам СУБД разработан стандартный интерфейс JDBC (Java DataBase Connectivity) (рис. 1.17).
Данный интерфейс ориентирован на обеспечение взаимодействия с сервером СУБД не только Java-аплетов, выполняющихся на клиентских станциях, но и Java-программ, запускаемых на сервере.
Доступ Web-навигатора к серверу СУБД с помощью программных компонентов ActiveX Controls (рис. 1.18) предполагает, как и в случае Java-аплетов, запрос и передачу соответствующей программы на рабочую станцию, а также ее дальнейшее выполнение на рабочей станции. В этом случае взаимодействие с сервером СУБД должно выполняться через интерфейс ODBC. Если учесть, что Java исполняется Web-навигатором в режиме интерпретации мобильного кода, то требования к аппаратуре рабочей станции по производительности и объему оперативной памяти существенно возрастают.
Использование для доступа Web-навигатора к серверу СУБД подключаемых к навигатору специализированных программных модулей (plug-ins) требует предварительной установки соответствующего программного дополнения на рабочей станции. После этого взаимодействие с сервером СУБД будет осуществлять установленное программное средство, получающее управление от Web-навигатора при обработке соответствующего вызова в Web-документе.
Для избегания несовместимости взаимодействие подключенных программных модулей с сервером СУБД, как и в случае программных компонентов ActiveX Controls, должно выполняться через интерфейс ODBC.
1.2.4. Управление информацией о ресурсах и пользователях сети
Масштабность и неоднородность современных компьютерных сетей не только усложняют администрирование и защиту компьютерных ресурсов, но и снижают удобство использования распределенных сетевых сервисов конечными пользователями. В этих условиях требуемый уровень управляемости, безопасности и удобства использования компьютерной сети может быть обеспечен только при наличии эффективного управления информацией о ее ресурсах и пользователях. В противном случае администратор не сможет осуществлять должный контроль компьютерных ресурсов, а пользователи не будут иметь возможности прозрачного доступа к любому сервису сети вне зависимости от его местонахождения.
Эффективное управление информацией о ресурсах и пользователях сети предполагает динамическое накопление и обновление этой информации, а также выдачу необходимых сведений по запросам пользователей и программ в соответствии с их полномочиями. Различают два вида управляемой информации о ресурсах и пользователях сети:
● административная информация, включающая сведения о пользователях и сетевых ресурсах, которые не детализируют описания информационных ресурсов на уровне отдельных файлов, например, файлов документов (Web-документов, обычных текстовых документов, документов Word, Excel и др.);
● детальные сведения об информационных ресурсах сети на уровне отдельных файлов, отражающие их содержимое и адреса.
Способы управления административной информацией о сети и детальными сведениями об информационных сетевых ресурсах были разработаны до появления Web-технологии. Однако при переходе на Web-архитектуру, благодаря которой повысились доступность и популярность, а соответственно и масштабность компьютерных сетей, эти способы получили новое развитие.
Управление административной информацией
Для управления административной информацией о сети в состав современных сетевых операционных систем входит подсистема, названная службой каталогов (directory service). Данная служба поддерживает имена, описания и адреса ресурсов и пользователей сети, что существенно упрощает установление связей и управление работой сети. Благодаря службе каталогов создается единое унифицированное сетевое пространство для всех пользователей и сетевых сервисов за счет выделения единых точек доступа и единообразного управления ресурсами и пользователями сети.
Служба каталогов обеспечивает решение следующих важных задач:
● автоматический поиск сетевых ресурсов и зарегистрированных пользователей, а также прозрачный доступ к ресурсам сети;
● административный контроль и учет компьютерных ресурсов и пользователей;
● поддержка удобной системы именования сетевых ресурсов и пользователей;
● однократная регистрация пользователей и ресурсов сети. Поиск сетевых ресурсов и зарегистрированных пользователей реализуется с помощью службы каталогов прозрачным образом. Здесь уместна аналогия с "желтыми страницами", позволяющими определять местоположение нужной службы по имени в известном окружении, например, в каком-либо городе, или производить поиск по определенным категориям, например, по музеям. Служба каталогов выполняет функции поиска аналогичным образом, но в качестве окружения использует компьютерную сеть и в отличие от "желтых страниц" процесс поиска выполняется автоматически. Это обеспечивает возможность прямого доступа к любому сервису в сети вне зависимости от его местонахождения. Служба каталогов позволяет охватить централизованным административном контролем все ресурсы и всех пользователей компьютерной сети любого масштаба, покончив с допотопным способом управления каждым сервером в отдельности. Эта служба помогает администраторам собирать и просматривать информацию о ресурсах, распределенных по узлам сети, и обеспечивает единообразное представление этой информации.
Одной из важнейших функций службы каталогов является установление соответствия между сетевыми именами пользователей и ресурсов и сетевыми адресами или, иными словами, перевод одних в другие. Данная функция, называемая службой имен, позволяет работать с удобопонятными псевдонимами, а также переводить эти имена в машинные адреса и выполнять обратный перевод. Современные службы каталогов поддерживают все стандартные системы именований, что дает возможность единым образом управлять различными пространствами имен в неоднородных компьютерных сетях.
Благодаря службе каталогов пользователи и ресурсы регистрируются в сети лишь один раз, и все серверы могут параллельно осуществлять доступ в одни и те же каталоги. Когда общесетевая служба каталогов отсутствовала, каждым сервером сети приходилось управлять в индивидуальном порядке. Пользователь, нуждавшийся в каких-либо ресурсах сервера, должен был иметь на нем свою учетную запись. Это приводило к тому, что многие конечные пользователи регистрировались на нескольких серверах сети масштаба предприятия, и им все время приходилось помнить, где и какие ресурсы размещены.
Множество учетных записей сказывалось весьма болезненно как на пользователях, так и на администраторах. Но, что более важно, подвергало риску систему безопасности. Из-за необходимости помнить множество имен и паролей пользователи либо записывали их на бумагу, либо хранили в незащищенных местах, либо использовали несколько легко идентифицируемых паролей или, что еще хуже, задавали один и тот же пароль для всех учетных записей.
При использовании службы каталогов наличие одного идентификатора и пароля для доступа в сеть позволяет свести к минимуму риск для системы безопасности и, кроме того, администраторы получают больший контроль над доступом пользователей к конкретным сетевым ресурсам. В случае однократной регистрации аутентификация конкретного пользователя осуществляется на основе одного пароля или аппаратного ключа. При этом пользователь получает доступ к любому сетевому ресурсу, на который администратор дал ему права.
Принципы построения службы каталогов
Служба каталогов обеспечивает единое согласованное представление сети й унифицированный доступ к административной информации о сетевых ресурсах и пользователях. В услугах данной службы нуждаются все пользователи и сервисы сети. Доступ любого пользователя или сервиса к службе каталогов реализуется в соответствии с его полномочиями.
Схема использования и организационная структура службы каталогов представлена на рис. 1.19. Доступ к любым административным сведениям о сети выполняется специализированной СУБД через интерфейсную подсистему, которая обеспечивает единый способ представления этих сведений. СУБД службы каталогов в процессе обработки запросов взаимодействует с подсистемой идентификации, предназначенной для установления соответствия между сетевыми именами пользователей и ресурсов и их реальными адресами в сети.
База данных службы каталогов организована в виде иерархий каталогов аналогично структуре каталогов файловой системы. Иерархии каталогов обеспечивают систематизацию хранящихся в них объектов путем их распределения по каталогам в соответствии с какими-либо признаками
В базе данных службы каталогов объектами являются порции информации, характеризующие ресурсы и пользователей сети. Объекты объединяются в поименованные каталоги по определенному признаку, например, по принадлежности к подразделениям организации. Каждый каталог может содержать другие каталоги и объекты (рис. 1.20). Каталог, который не входит ни в какие другие каталоги, является корневым.
Таким образом, в древовидной структуре любого корневого каталога нелистовыми вершинами (имеющими выходные дуги) являются каталоги, а листовыми (не имеющими выходных дуг) — объекты. Для отдельных операционных систем, например, для Windows NT, база данных службы каталогов может включать несколько корневых каталогов, объединенных определенными типами отношений. В этом случае полное дерево корневого каталога называют доменом.
Объект в каталоге базы данных представляет собой ее запись, соответствующую реальному объекту или субъекту сети, например, принтеру или пользователю. Каждый объект каталога содержит информацию в виде набора свойств (атрибутов) и их значений. Например, сетевой принтер характеризуется в базе данных объектом Printer, для которого определены такие свойства, как имя, описание, местоположение и сетевой адрес. Одни и те же типы объектов обладают одинаковыми свойствами, в то время как у разных типов объектов свойства могут отличаться. Для каждого типа объектов определяются обязательные свойства, без указания значений которых объект данного типа не сможет быть создан. Например, обязательным свойством объектов всех типов является имя.
Различают следующие типы объектов базы данных службы каталогов:
● объект рабочая станция, содержащий описание рабочей станции сети;
● объект сервер, описывающий сервер сети;
● объект тома, характеризующий логический том на дисковом носителе'' информации;
● объект принтер, содержащий описание принтера;
● объект очередь, описывающий очередь заданий на печать;
● объект пользователь, содержащий учетную запись пользователя (идентификатор, фамилия и имя, пароль, полномочия, адрес электронной почты, сценарий регистрации и др.);
● объект гpynna, описывающий группу пользователей;
● объект профиль, описывающий задаваемые для пользователей параметры конфигурации;
● объект схема каталога, характеризующий каталог;
● другие объекты, зависящие от конкретной службы каталогов.
Объединение с помощью иерархий каталогов описаний реальных сетевых" объектов и субъектов существенно упрощает администрирование сети, а также поиск ее ресурсов и пользователей.
Заполнение базы данных службы каталогов выполняют как соответствующие компоненты сетевой операционной системы и сетевые сервисы, так и администраторы сети.
Для высокой надежности функционирования компьютерной сети современные службы каталогов поддерживают функции тиражирования и синхронизации своих баз данных. Тиражирование предполагает формирование нескольких копий базы данных, распределенных по различным серверам. Синхронизация обеспечивает своевременное обновление распределенных копий базы данных для их поддержания в актуальном состоянии. Современные службы каталогов соответствуют стандартам Х.500 и LDAP (Lightweight Directory Access Protocol — облегченный протокол доступа к каталогам). Наиболее распространенным является стандарт LDAP, который представляет собой подмножество протокола Directory Access Protocol (DAP),. используемого для построения каталогов Х.500. Однако DAP работает только в стеках протоколов модели OSI (Open System Interconnection) и требует серьезных вычислительных мощностей. Протокол LDAP, как и DAP, предназначен для извлечения информации из иерархических каталогов, но в отличие от него, имеет ограничение по числу ответов на запрос к каталогу Х.500, что снижает загрузку сети. Преимуществом LDAP является также его программный интерфейс, более дружественный и легкий для использования, чем интерфейс Х.500 или DAP. Кроме того, LDAP проще реализуется, чем выше упомянутые протоколы, поскольку в нем используются для кодирования обычные текстовые строки без дополнительного форматирования.
В сетевых операционных системах Novell NetWare используется служба каталогов Novell Directory Services (NDS). Microsoft Windows NT Server 4.0 включает службу каталогов Windows NT Directory Service (NTDS). Для пятой версии данной операционной системы разработана новая служба каталогов Active Directory (AD). Службы каталогов NDS и AD соответствуют протоколу LDAP.
Управление детальными сведениями об информационных ресурсах
Общие сведения
Для управления детальными сведениями об информационных ресурсах сети, на уровне отдельных файлов используются специализированные информационно-поисковые системы. Эти системы ориентированы на выполнение следующих функций:
● периодического сканирования файлов, хранящихся в узлах компьютерной сети с целью определения их содержимого;
● систематизации полученной при сканировании информации и занесение ее в базу данных об информационных ресурсах сети;
● поиска и выдачи необходимых сведений по запросам пользователей и программ в соответствии с их полномочиями.
Функцию поиска и выдачи необходимых сведений по запросам пользователей и программ реализует специализированная СУБД на основе сведений об информационных ресурсах сети, хранящихся в базе данных информационно- поисковой системы (рис. 1.21 и 1.22). Результатом поиска является список указателей на удовлетворяющие запросу файлы вместе с их описаниями.
В зависимости от автоматизации способа накопления сведений в базе данных об информационных ресурсах, а также ее структуры различают два типа информационно-поисковых систем:
● системы, основанные на построении каталогов, которые обеспечивают как поиск путем навигации по тематическим каталогам, так и поиск по ключевым словам;
● системы, основанные на построении индексов, которые обеспечивают только поиск по ключевым словам.
Существуют также комбинированные информационно-поисковые системы.
Общей особенностью перечисленных типов поисковых систем является используемый способ сканирования файлов, хранящихся в узлах компьютерной сети с целью определения их содержимого.
Сканирование файлов в сети для построения тематических каталогов и индексов выполняется автоматически. Основная задача сканирования файлов — формирование их описаний. Описание файла называют его поисковым образом, так как оно заменяет собой этот файл, и используется при поиске вместо реального файла.
Наиболее популярной моделью поискового образа файла является векторная модель, в которой каждому файлу приписывается список терминов, адекватно отражающих его описание. Если быть более точным, то файлу приписывается вектор размерности, равный числу терминов, которыми можно воспользоваться при поиске. При булевой векторной модели элемент вектора равен 1 или О, в зависимости от наличия или отсутствия термина в поисковом образе. В более сложных моделях термины взвешиваются— элемент вектора равен не 1 или О, а некоторому числу (весу), отражающему соответствие данного термина документу. Именно последняя модель стала наиболее популярной.
Процесс формирования поисковых образов файлов осуществляется включением в поисковый образ каждого файла относящихся к нему ключевых
слов. Эту процедуру часто называют индексированием, что не совсем правильно, так как под индексированием понимается составление инвертированного списка, в котором каждому термину ставится в соответствие указатель (индекс) на список поисковых образов файлов, к которым этот термин имеет отношение.
Для сканирования файлов в сети и формирования их поисковых образов используются специальные сканирующие программы, которые часто называют роботами. Программа-робот запускается на компьютере, подключенном к сети, и автоматически скачивает для анализа файлы с сетевых узлов.
Разработка таких сканирующих программ является довольно нетривиальной задачей. Ведь файловое содержимое компьютеров сети представлено в виде различных, никак не согласованных друг с другом форматов данных: различные типы электронных документов, текст в разных кодировках (ASCII, ANSI, UNICODE), графика, аудио, видеоинформация, программы. Робот вожен уметь извлекать информацию об этих файлах и формировать их поисковые образы приписыванием соответствующих ключевых слов.
Источниками информации об анализируемых документах являются заголовки, аннотации, списки ключевых слов, гипертекстовые ссылки и полные тексты документов. Для формирования поисковых образов файлов с нетекстовой информацией используются главным образом ссылки на эту информацию (URL), а также сообщения пользователей и администраторов, располагаемые в специализированных файлах. Описание новостей Usenet и почтовых списков реализуется на основе полей Subject и Keywords.
Следует иметь в виду, что при сканировании файлов не все термины из анализируемых источников информации попадают в поисковые образы. Приписывание поискового образа файлу или документу выполняется на основе словаря, из которого выбираются помещаемые в поисковый образ ключевые слова. Различают системы с контролируемым словарем и системы со свободным словарем.
Контролируемый словарь предполагает ведение некоторой лексической базы данных, добавление терминов в которую производится администратором системы. В этом случае поисковые образы могут быть составлены только из терминов лексической базы данных.
Свободный же словарь пополняется автоматически по мере появления новых терминов. Соответственно поисковые образы могут быть составлены из новых терминов, которые автоматически заносятся в лексическую базу данных. В этом случае применяются списки запрещенных слов, которые не могут быть употреблены для формирования новых терминов и построения поисковых образов, например, предлоги, союзы и т. п. Для того чтобы не раздувать используемые словари, применяется и такое понятие, как вес термина. Словарь пополняется только в том случае, если дополняемое слово встречается не менее заданного количества раз, например, 30.
Поисковые системы, основанные на построении тематических каталогов
В данных информационно-поисковых системах база данных организована в виде структуры каталогов. Помимо интерфейсной подсистемы, обеспечивающей единый способ представления иерархий каталогов, самой базы данных и СУБД в эту поисковую систему входит подсистема сканирования файлов в сети, а также подсистема классификации информации (см. рис. 1.21).
Подсистема классификации ориентирована на систематизацию полученных в результате сканирования сведений. Процесс классификации информации и формирования каталогов выполняется чаще всего вручную подразделением поддержки тематических каталогов.
Результатом ручной классификации сведений об информационных ресурсах сети являются постоянно обновляющиеся иерархические каталоги, на верхнем уровне которых собраны самые общие информационные категории, например, категории, соответствующие направлениям деятельности отдельных подразделений организации. Объект
ы каталогов, являющиеся нелистовыми вершинами иерархического дерева, представляют собой ссылки на файлы, например, файлы электронных документов (Web, Word, Excel и др.), вместе с кратким описанием их содержимого.
Преимущество тематических каталогов в осмысленности отбора информации, что пока не под силу никакому компьютеру. Но в связи с тем, что тематические каталоги заполняются вручную, нет гарантий относительно их полноты. Кроме того, ручные процессы классификации информации требуют существенных затрат человеческого труда, что может себе позволить не каждая организация.
В Internet большой популярностью пользуются такие международные тематические каталоги, как Yahoo (http:/ www.yahoo.com) и Infoseek (http:/ www.infoseek.com). Наиболее популярными в Internet русскоязычными поисковыми системами, включающими тематические каталоги, являются системы Ау (http:/ www.au.ru) и Rambler (http:/ www.rambler.ru).
Поисковые системы, основанные на построении индексов
Недостатки, присущие службам тематических каталогов, устраняются в информационно-поисковых системах, основанных на построении индексов. В этих поисковых системах вместо подсистемы классификации применяется подсистема индексирования (см. рис. 1.22), а база данных организована в виде списков, ставящих в соответствие ключевым словам указатели на относящиеся к ним описания файлов. Данные указатели, обеспечивающие быстрый поиск сведений по запросам пользователей и программ, называют индексами.
После сканирования файлов в сети и формирования их поисковых образов систематизация полученных сведений выполняется автоматически путем их
„индексирования. При индексировании составляется список, в котором каждому ключевому слову ставится в соответствие указатель (индекс) на список поисковых образов файлов, к которым это ключевое слово имеет отношение. Отсутствие индексирования привело бы к слишком длительному поиску образов (описаний) документов по заданным ключевым словам.
Структура и состав индексированных списков различных систем могут отличаться друг от друга и зависят от многих факторов: размера массива поисковых образов, информационно-поискового языка, размещения различных компонентов системы и т. п. Рассмотрим структуру индексированного списка на примере системы, для которой можно реализовывать не только примитивный булевой, но и контекстный, а также взвешенный поиск Web- страниц, и ряд других возможностей.
Индексированный список такой системы должен включать таблицу идентификаторов Web-страниц (page-ID), таблицу ключевых слов (Keyword-ID), таблицу модификации Web-страниц, таблицу заголовков, таблицу гипертекстовых связей, инвертированного (IL) и прямого списков (FL). Page-ID отображает идентификаторы Web-страниц в их адрес (URL), Keyword-ID — каждое ключевое слово в уникальный идентификатор этого слова, таблица заголовков — идентификатор Web-страницы в ее заголовок, таблица гипертекстовых ссылок — идентификатор Web-страницы в гипертекстовую ссылку на эту страницу. Инвертированный список ставит в соответствие каждому ключевому слову документа список пар — идентификатор
Web-страницы, позиция слова в странице. Прямой список — это массив поисковых образов Web-страниц.
Все эти файлы, так или иначе, используются при поиске, но главным среди них является файл инвертированного списка. Результат поиска в данном файле — это объединение и/или пересечение списков идентификаторов Web-страниц. Результирующий список, который преобразовывается в список заголовков, снабженных гипертекстовыми ссылками, возвращается пользователю в его программу просмотра Web. Для того чтобы быстро искать записи инвертированного списка, над ним надстраивается еще несколько файлов, например, файл буквенных пар с указанием записей инвертированного списка, начинающихся с этих пар. Кроме этого, применяется механизм прямого доступа к данным — хэширование.
Для обновления индекса используется комбинация двух подходов. Первый можно назвать коррекцией индекса "на ходу" с помощью таблицы модификации страниц. Суть подобного решения довольно проста: старая запись индекса ссылается на новую, которая и используется при поиске. Когда число таких ссылок становится достаточным для того, чтобы ощутить это при поиске, то происходит полное обновление индекса — его перезагрузка. Эффективность поиска в каждой конкретной поисковой системе определяется исключительно архитектурой индекса. Как правило, способ организации этих массивов является "секретом фирмы" и ее гордостью.
Так как сканирование файлов в сети и индексирование полученной при сканировании информации выполняются автоматически, то информационно-поисковые системы, основанные на построении индексов, функционируют в полностью автоматическом режиме, что делает их доступными для компьютерных сетей любых организаций.
Основным способом поиска информации для пользователя поисковой системы, базируемой на построении индексов, является поиск по ключевым словам, который намного мощнее аналогичного способа поиска по отношению к системам, основанным на построении каталогов. Информационно- поисковый язык позволяет сформулировать запрос в простой и наглядной форме. При обработке запроса его содержимое разбивается на лексемы, из которых удаляются запрещенные и общие слова. Иногда производится нормализация лексики, а затем все слова связываются указанными пользователем либо действующими по умолчанию логическими операциями.
Кроме обычного набора логических операций AND, OR, NOT наиболее развитые поисковые системы позволяет использовать еще и операцию NEAR, обеспечивающую контекстный поиск. В запросе можно указать также части документа для поиска: ссылка, заглавие, аннотация и т. п. Можно также задавать поле ранжирования выдачи и критерий близости документов запросу.
В ряде поисковых систем используется коррекция запросов по релевантности. Релевантность — это мера соответствия найденного системой документа потребности пользователя. Различают формальную релевантность и реальную. Первую вычисляет система, и на основании чего ранжируется выборка найденных документов. Вторая — это оценка самим пользователем найденных документов. Некоторые системы имеют для этого специальное поле, где пользователь может отметить документ как релевантный. При следующей поисковой итерации запрос расширяется терминами этого документа, а результат снова ранжируется. Так происходит до тех пор, пока не наступит стабилизация, означающая, что ничего лучше, чем полученная выборка, от данной системы не добьешься.
В Internet большой популярностью пользуются такие международные поисковые системы, основанные на построении индексов, как AltaVista (http://altavista.digital.com) и Lycos (http:/ www.lycos.com). Популярными русскоязычными поисковыми системами данного типа являются:
● Rambler (http:/ www.rambler.ru);
● Ау (http://www.au.ru);
● Русская машина поиска (http://sеarchintеrrussiа.com);
● Russian Internet Search (http:/ www.search.ru).
Поисковые системы Lycos, Ау и Rambler являются комбинированными, объединяющими индексированные списки и тематические каталоги.
В настоящее время появился ряд информационно-поисковых систем для
корпоративных компьютерных сетей. В рамках Web-сервера Enterprise Server компании Netscape реализована поисковая система, основанная на построении индексов. Корпорация Netscape выпустила и отдельный поисковый сервер Catalog Server, объединяющий функции построения индексированных списков и каталогов. В состав операционной системы Microsoft Windows NT Server, начиная с четвертой версии, включена поисковая система Index Server, основанная на построении индексов.
1.2.5. Электронная почта и системы новостей
Помимо Web-сервиса одними из наиболее популярных сетевых сервисов являются электронная почта (Е-mail) и система новостей (Network News), часто называемая еще системой телеконференций. Эти службы сети функционируют на прикладном уровне модели OSI и предназначены для обработки и доставки электронных сообщений в распределенной сетевой среде. Однако если при отправке сообщения электронной почты конкретизируется адрес получателя, то при отправке сообщения системы новостей адрес получателя не указывается, а задается лишь тема сообщения.
Сообщение электронной почты доставляется получателю, адрес которого указан в заголовке сообщения. Сообщение же системы новостей, называемое еще статьей, могут получить все, кто подписался по теме, также указанной в заголовке сообщения. Соответственно аналогом сообщений электронной почты являются обычные письма, а аналогом статей системы новостей — газеты и журналы, доставляемые по подписке.
Современные программы электронной почты и систем новостей позволяют не только создавать сообщения в формате HTML, используемом в Web- документах, но и добавлять к отправляемым сообщениям любые файлы, например, файлы с аудио- или видеоинформацией.
Обмен электронными сообщениями
Рекомендации стандарта Х.400
Использование электронной почты для оперативного обмена информацией между людьми как внутри отдельно взятой организации, так и за ее пределами существенно повышает эффективность совместного труда.
Структура и принципы функционирования любой современной почтовой системы в общем случае соответствуют рекомендациям стандарта Х.400, являющимся результатом деятельности международного комитета по средствам телекоммуникаций (СТТ во французской транскрипции или ITU в английской). Рекомендации Х.400 охватывают все аспекты построения среды управления сообщениями: компоненты и схемы их взаимодействия, протоколы управления и передачи, форматы сообщений и правила их преобразования.
Система обмена электронными сообщениями в рамках большой компьютерной сети представляет собой совокупность почтовых отделений, объединенных между собой сетевой средой (рис. 1.23). Локальная сеть может содержать лишь одно почтовое отделение, обслуживающее всех пользователей.
Схема функционирования каждого почтового отделения реализуется в соответствии с технологией "клиент-сервер", когда почтовый сервер осуществляет обработку запросов, поступающих от почтовых клиентов. В качестве почтовых клиентов выступают программы электронной почты, установленные на компьютерах пользователей. Программы, исполняющие роль почтовых серверов, чаще всего устанавливаются на серверах сети. Основными компонентами почтового сервера являются:
● подсистема передачи сообщений, выполняющая их пересылку;
● хранилище сообщений, предназначенное для промежуточного хранения сообщений перед их пересылкой получателю или передачей почтовым клиентам.
В зависимости от масштабности сети пересылка сообщений подсистемой передачи может выполняться либо напрямую почтовому серверу получателя, либо через промежуточные почтовые серверы в соответствии с правилами маршрутизации, определяемыми используемым протоколом обмена электронными сообщениями.
Хранилище сообщений каждого почтового сервера состоит из почтовых ящиков пользователей этого сервера, а также перевалочных почтовых ящиков, используемых для промежуточного хранения транзитных сообщений. Хранилище позволяет осуществлять отправку сообщений в наиболее удобное для почтового сервера время. Кроме того, хранилище не требует постоянного подключения к почтовому серверу компьютеров пользователей, что актуально для Internet. В этом случае почтовые клиенты могут извлекать предназначенные для пользователей сообщения при подключении к серверу.
Таким образом, основными способами отправки почтовых сообщений являются следующие:
● отправка сообщения почтовым клиентом через хранилище, когда пользователь, используя свою программу электронной почты, помещает отправляемое сообщение непосредственно в хранилище сообщений; оттуда оно выбирается и отправляется подсистемой передачи;
● отправка сообщения почтовым клиентом через подсистему передачи, когда сообщение передается напрямую данной подсистеме и далее доставляется ее средствами.
К основным способам получения сообщений относятся:
● получение сообщения почтовым клиентом из хранилища; в этом случае подсистема передачи осуществляет доставку сообщения в почтовый ящик получателя для его дальнейшей обработки программой электронной почты пользователя;
● получение сообщения почтовым клиентом от подсистемы передачи, когда данная подсистема непосредственно отправляет сообщение программе электронной почты получателя.
Первые из перечисленных способов отправки и получения электронных сообщений используют в случае отсутствия постоянного подключения компьютеров пользователей к почтовому серверу, вторые — при постоянном подключении пользовательских компьютеров к сети.
В качестве дополнительного, но очень важного компонента почтового сервера выступает служба каталогов, поддерживающая имена, описания и адреса пользователей сети. В состав почтового клиента должна входить адресная книга, также предназначенная для хранения имен, описаний и адресов пользователей сети. Но в отличие от службы каталогов, хранящей всю справочную информацию, адресная книга заполняется пользователем. Адресная книга, по сути, является службой каталогов, поддерживаемой пользователем, и должна обеспечивать взаимодействие с общей службой каталогов сети.
Адресная книга и служба каталогов сети должны иметь возможность создания, сохранения и выборки списков рассылки. Список рассылки представляет собой группу электронных адресов, по которым можно одновременно отправить одно сообщение. Будучи отправлено на адрес списка рассылки, сообщение будет доставлено по всем входящим в него адресам.
Для описания формата сообщения электронной почты в рекомендациях Х.400 была принята привычная парадигма конверта и его содержимого, используемая в традиционных почтовых системах (рис. 1.24).
Как и положено, конверт содержит исчерпывающую информацию о том, куда и кому должно быть доставлено письмо, обратный адрес отправителя и пометку о срочности доставки. При этом системе нет необходимости знать, что бы то ни было о содержимом письма. На основе информации, указанной на конверте, среда доставки выполняет необходимую маршрутизацию и передачу с возможным промежуточным хранением. Роль перевалочных пунктов и средств транспортировки выполняют транзитные почтовые серверы.
Конверт может иметь специальную пометку о необходимости установки на нем электронного "штампа" каждым почтовым сервером, через который проходит сообщение на пути к адресату. Это, в частности, позволяет системе автоматически отслеживать возникновение маршрутных петель.
Содержимое конверта состоит из заголовка и тела. Заголовок обычно включает в себя копию информации, указанной на конверте, и дополнительные поля, определяющие расширенные свойства сообщения. Тело в свою очередь может быть составным и включать различные типы информации, такие как текст, графика, документы различных форматов, вложенные файлы и т. д.
Рекомендации Х.400 предусматривают также возможность автоматического уведомления отправителя о факте доставки и/или прочтения посланного им сообщения.
Протокол SMTP
Несмотря на мощную теоретическую базу и практически безупречный архитектурный дизайн, стандарт Х.400 не получил широкого распространения за пределами государственных и банковских учреждений. Недостатками этого стандарта явились чрезмерная сложность реализации и значительная стоимость внедрения и эксплуатации систем на его основе. Однако вытекающие из этого стандарта общие принципы управления сообщениями стали основой современных почтовых служб.
Наиболее распространенным протоколом электронной почты является протокол SMTP (Simple Mail Transfer Protocol — простой протокол передачи почты), ставший стандартом обмена сообщениями в Internet и intranet. популярность этого протокола объясняется сравнительной простотой реализации и широкими возможностями расширяемости без ущерба для обратной совместимости с существующими версиями почтовых систем. Немаловажным фактором является также широкая доступность спецификаций и отсутствие необходимости отчислять средства за их использование. Протокол SMTP в качестве транспортного протокола использует ТСР и применяется для реализации двух функций (рис. 1.25):
● пересылки отправляемых сообщений от почтовых клиентов к почтовым серверам этих клиентов;
● передачи сообщений между почтовыми серверами. Начальная версия протокола SMTP поддерживала ограниченный набор команд и сервисов для приема и передачи сообщений. В последнее время был разработан его расширенный вариант (Extended SMTP или ESMTP), обеспечивающий стандартную возможность дальнейшего расширения и поддержку таких функций, как подтверждение доставки (Delivery Notification Request или DNR), согласование максимального допустимого размера сообщений, передаваемых между серверами, и принудительная инициация передачи накопленной почты.
Однако протокол SMTP при автономном применении все еще обладает рядом недостатков:
● отсутствие возможности аутентификации входящих соединений;
● ориентация на передачу только текстовой информации;
● отсутствие возможности шифрования передаваемых сообщений. Для устранения этих недостатков SMTP используется совместно с дополняющими его протоколами и стандартами.
Отсутствие средств аутентификации входящих соединений не позволило использовать SMTP для обслуживания клиентского доступа. Классическая почтовая SMTP-система требует наличия файлового доступа клиента к своему почтовому ящику для получения и работы с сообщениями. Для реализации работы в режиме клиент-сервер был создан протокол обслуживания почтового офиса (Post Office Protocol или POP). Наиболее удачной оказалась версия POPИ, широко используемая в современных SMTP-системах. Протокол POPИ позволяет пользователю с помощью программы электронной почты, выполняющей роль клиента, забрать из своего почтового ящика, расположенного на почтовом сервере, поступившие сообщения.
Наиболее продвинутые реализации POPИ поддерживают аутентификацию с шифрованием имени и пароля, а также шифрование трафика по протоколу Secure Socket Layer (БЯ.). Однако при использовании протокола POPИ отсутствует возможность просмотра характеристик сообщения без предварительной загрузки его на станцию клиента. Для решения проблемы просмотра и манипуляции свойствами почтового сообщения непосредственно на сервере, а также преодоления ряда других функциональных ограничений был разработан протокол IMAP4. В отличие от POPИ протокол IMAP4 предоставляет следующие возможности:
● просмотр заголовков сообщений, чтобы определить, какие из них следует читать (загружать с почтового сервера на рабочую станцию);
● избирательную загрузку с сервера частей сообщений в формате MIME;
● поиск сообщений на сервере;
● создание как стандартных, так и определенных пользователем атрибутов
сообщений, например, для идентификации рабочих групп, проектов и т. д.;
● организацию на сервере иерархии папок вне входного почтового ящика;
● распределение по созданным на сервере папкам почтовых сообщений,
их обновление и долговременное централизованное хранение;
● централизованное резервирование и восстановление почтовых сообщений, хранящихся на сервере.
Современные программы электронной почты, например Microsoft Outlook Express, поддерживают в качестве клиентского почтового протокола как POPИ, так и IMAP4.
Следует заметить, что если для получения сообщений почтовым клиентом с сервера используется протокол POPИ или IMAP4, то отправка сообщений от почтового клиента на сервер все равно реализуется в соответствии с протоколом SMTP (рис. 1.25).
Изначально SMTP-системы рассчитывались на передачу информации исключительно в текстовом виде и не были ориентированы на передачу символов национальных алфавитов, т. е. использовали 7-битный набор символов.
Для решения проблемы передачи двоичных файлов был разработан стандарт UUENCODE, позволяющий внедрять предварительно преобразованные из бинарного в текстовый вид произвольные данные непосредственно в текст сообщения. Однако универсальным данный подход назвать было трудно, так как в общем случае никакой информации о типе передаваемых данных и породившем их приложении принимающая сторона не имела. По мере расширения сети Internet, усложнения программного обеспечения и активного внедрения мультимедиа назрела необходимость создания универсального формата типизации и представления двоичных данных и текста, содержащего национальные символы. Таким универсальным форматом стали многофункциональные расширения почты Internet (Multipurpose Internet Mail - Extensions или MIME). Формат MIME оказался чрезвычайно удачным, поскольку в него были заложены возможности неограниченного расширения как поддерживаемых типов данных, так и национальных кодировок.
Использование MIME позволяет включить в электронное письмо аудиоинформацию, двоичные данные или оцифрованный видеосигнал, а также подсоединять к передаваемому сообщению любые файлы. С помощью MIME можно создавать и читать электронные письма, содержащие информацию в RTF- и НТМL-формате, в частности различные текстовые шрифты, сканированные изображения и электронные таблицы.
Немаловажной проблемой при передаче данных через SMTP-системы является обеспечение конфиденциальности. Для решения проблем с защитой информации был создан стандарт на шифрование тела сообщения, называемый засекреченные многофункциональные расширения почты (Secure MIME или S/MIME). Однако этот протокол не в состоянии защитить от перехвата заголовков сообщений.
Сообщение SMTP в соответствии с рекомендациями стандарта Х.400 состоит из конверта и содержимого. Содержимое в свою очередь имеет заголовок и тело. Функциональное назначение их полностью идентично. Состав полей в заголовке определяется форматом тела сообщения (UUENCODE или MIME), Ни одно поле не является обязательным, но, как правило, указываются такие поля, как кому (То:), от кого (From:) и тема (Subject:). В случае использования формата MIME в заголовке обязательно должно присутствовать поле MIME-Version:, в котором указывается номер версии стандарта MIME.
Для отсутствия противоречий в процессе обмена сообщениями каждый пользователь почтовой системы должен иметь в ней уникальный почтовый адрес. Этот адрес должен идентифицировать именно пользователя, а не используемый этим пользователем компьютер. Схему назначения уникальных адресов пользователям в той или иной почтовой системе называют адресацией.
При наличии в сети избыточных связей доставка сообщения получателю должна осуществляться по оптимальному маршруту от почтового сервера отправителя к почтовому серверу получателя. Процесс выбора очередного пункта на пути следования сообщения к почтовому серверу-получателю, называемый маршрутизацией, осуществляется на основе специальных таблиц, Маршрутизация почтовых сообщений реализуется поверх маршрутизации пакетов сетевого уровня. После выбора очередного транзитного почтового сервера в соответствии с правилами маршрутизации почтовых сообщений осуществляется маршрутизация на сетевом уровне модели OSI для оптимальной доставки выбранному транзитному серверу.
Схемы адресации и маршрутизации в конкретной системе электронной почты определяются применяемым протоколом обмена почтовыми сообщениями. Администратору, в чьи задачи входит обеспечение взаимодействия между несколькими разнородными системами передачи сообщений, необходимо знать методы адресации и маршрутизации, используемые в каждой из них. Рассмотрим схемы адресации и маршрутизации на примере протокола SMTP.
В системах на базе SMTP используется интуитивно понятная, простая и одновременно очень мощная иерархическая схема адресации, аналогичная той, что принята в службе имен Internet (Domain Name Services или DNS). Данная схема может обеспечить уникальность адреса практически неограниченному числу пользователей. Почтовый адрес SMTP записывается в следующем виде: mailbox8domain где mailbox — символическое имя почтового ящика пользователя (длиной до 63 символов), а domain — уникальное имя почтового домена, в котором зарегистрирован упомянутый пользователь (длиной до 255 символов). Сочетание имен почтового ящика и почтового домена образует уникальный идентификатор пользователя.
Почтовый домен хранит полную информацию о положении системы в иерархии почтового пространства организации (рис. 1.26). В имени домена имя каждого следующего уровня иерархии отделяется от предыдущего точкой. Разбор имени домена выполняется справа налево. Самый верхний уровень, называемый корневым доменом, соответствует либо типу организации (например, com— коммерческая, gov — государственная, org — общественная), либо географическому региону (например, ru — Россия, а fr— Франция). Следующими в иерархии идут домены первого уровня, как правило, представляющие имя организации.
Регистрацией имен доменов первого уровня занимается международный центр Internet (Internet Network Information Center или InterNIC). За назначение имен доменов более низкого уровня чаще всего отвечают сами компании. Поскольку организациям не запрещается регистрировать для собственных нужд несколько параллельных доменов (например, spektr. ru и spektr. com), пользователь может иметь более одного SMTP-адреса. Кроме того, современные SMTP-системы зачастую позволяют назначать псевдонимы для самого почтового ящика.
В приведенном примере spektr. spb. ru является субдоменом spb. ru, который в свою очередь является субдоменом ru. Компания SPEKTR имеет два зарегистрированных имени, и каждый пользователь может иметь два почтовых адреса.
Для того чтобы SMPT-сервер доставил почту на имя адресата ivanovQspektr. com, ему предварительно нужно узнать IP-адрес почтового сервера, обслуживающего домен spektr.com, обратившись с соответствующим запросом к серверу DNS. В службе имен DNS предусмотрен специальный тип ресурсной записи для обслуживания такого рода запросов— МХ или Mail Exchanger. Данная запись имеет следующий формат: domain MX [cost] hostname где domain — это имя почтового домена, к которому принадлежит адресат; hostname — символическое имя почтового сервера, располагающего знаниями о том, как осуществлять дальнейшую доставку сообщения; cost— относительная стоимость доставки через этот компьютер. Для получения IP-адреса компьютера с именем hostname выполняется поиск адресной ресурсной записи в DNS. При наличии нескольких МХ-записей для одного и того же домена сначала будет выполнена попытка установить соединение с тем почтовым сервером, у которого стоимость доставки ниже. Если такой компьютер окажется недоступным или перегруженным, будут использоваться компьютеры с большими значениями стоимости.
Таким образом, чтобы доставить сообщение на имя адресата
ivanov9spektr.com сначала будет выполнен запрос к серверу DNS получение списка ресурсных записей с типом МХ. Если список не пуст, по имени компьютера с наименьшим значением стоимости доставки будет получен его адрес (опять же через DNS), после чего будет установлено соединение и отправлена почта. Если для домена spektr.com нет МХ- записи, домен будет трактоваться как имя компьютера. Будет выполнена получить его IP-адрес и доставить сообщение напрямую.
В связи с тем, что служба имен DNS полагается источником статической информации, схема маршрутизации сообщений SMTP является статической. В соответствии с протоколом SMTP в сетях, не имеющих прямого выхода в Internet и не использующих возможности МХ-записей DNS, могут использоваться отдельные статические таблицы маршрутизации почтовых сообщений.
В зависимости от возможностей маршрутизации SMTP-сервер может выступать в одной или нескольких из следующих ролей:
● mail exchanger — компьютер, непосредственно подключенный к Internet и выполняющий доставку сообщений напрямую адресатам внутри организации, к которой он принадлежит; в организации может быть несколько таких компьютеров с различными или одинаковыми значениями показателя стоимости доставки;
● relay — компьютер, выполняющий прием почтового трафика от лица других доменов, не имеющих непосредственного и/или постоянного подключения к Internet и, как правило, не принадлежащий к организациям, чьи домены он обслуживает; для каждого отдельного домена может быть определено не более одного relay-сервера;
● smart host — компьютер, который способен осуществлять пересылку сообщений на основе собственной статической таблицы маршрутизации; одной из функций smart host является переписывание на конверте адреса получателя и/или отправителя перед осуществлением дальнейшей передачи сообщения.
Большинство современных реализаций SMTP-серверов позволяют сочетать все перечисленные функции на одном компьютере.
В компьютерных сетях актуальной является не только задача оперативного обмена данными, но и тиражирования электронных сообщений для совместного использования информации различной тематики. Системы новостей, предназначенные для решения этой задачи, обеспечивают распространение посланных по каждой теме электронных статей всем подписавшимся на эту, тему пользователям сети.
В системах новостей используются два основных метода тиражирования:
● отправка статей по спискам рассылки;
● использование распределенной базы новостей, статьи из которой пользователи получают сами.
В первом случае серверы тиражирования хранят у себя списки адресов подписчиков на статьи по различным темам. При необходимости тиражирования какой-либо статьи по определенной тематике пользователь отправляет данную статью в виде сообщения электронной почты по адресу соответствующего сервера. Тот, в свою очередь, рассылает копии данной статьи непосредственно по электронным адресам пользователей, подписавшихся на указанную в статье тему. Тиражирование статей на основе списков рассылки становится неэффективным при росте количества подписчиков. Это связано, прежде всего, со сложностью поддержания списков рассылки в актуальном состоянии, а также дополнительными требованиями по надежности функционирования серверов, осуществляющих рассылку.
Указанный недостаток устраняется при тиражировании путем использования распределенной базы новостей, статьи из которой пользователи получают сами. Данный способ тиражирования положен в основу службы USENET, являющейся наиболее популярной в сети Internet и ставшей общепризнанным стандартом для систем новостей.
Служба USENET изначально ориентирована на работу в архитектуре "клиент-сервер" и позволяет поддерживать базы новостей, распределенные между несколькими серверами с возможностью автоматической репликации вновь поступающих сообщений. Для взаимодействия серверов новостей друг с другом, а также клиентов с серверами был разработан протоков NNTP (Network News Transport Protocol — протокол передачи сетевых новостей).
В USENET используется формат и способ адресации сообщений, совпадающий с принятыми в SMTP-системах. Информация, специфическая для службы новостей, указывается в расширенных полях заголовка сообщения, Это позволяет разрабатывать клиентские программы для чтения почты и новостей на основе единого кода, а также использовать существующие сети SMTP для получения новостей в тех местах, где непосредственный доступ к серверу новостей по каким-либо причинам невозможен. Кроме того, применяются служебные сообщения, предназначенные для обмена управляющей информацией между серверами новостей. Благодаря служебным сообщениям упрощается процесс автоматического создания и удаления тематических групп новостей, а также ликвидации устаревших статей.
Вся информация, хранимая в USENET, представляется единым иерархическим деревом, организованным по тематическому признаку. В этом смысл USENET выступает в роли тематического каталога, содержащего мнения людей на ту или иную тему. Стать
и, объединенные общей тематикой, помещаются в тематические группы, называемые группами новостей. Группы, новостей, в свою очередь, могут содержаться внутри других групп, образовывая тематические иерархии. Каждый уровень иерархии называется категорией. В рамках категории группа имеет уникальное имя. Полное характерное имя группы получается последовательным добавлением слева направо имен категорий при движении вниз от корня по дереву иерархии. Имена категорий разделяются точкой. Например, имя relcom.сom.sесttrу соответствует группе новостей по компьютерной безопасности (comp. security) русскоязычной сети Relcom.
Иерархии или их отдельные ветви реплицируются между серверами новостей, образующими пространство USENET. В качестве единицы репликации выступает отдельная статья. При репликации используется схема издатель-подписчик. Каждый сервер USENET может быть подписан на некоторое подмножество групп, предоставляемых другими серверами. Одновременно он может публиковать некоторое подмножество групп, расположенных непосредственно на нем, в том числе группы, получаемые по подписке.
В терминах USENET репликация именуется заполнением (feed). В зависимости от того, какой сервер выступает инициатором этого процесса, различают два типа заполнения:
● вытягивание (pull feed), когда сервер, ожидающий поступления новых статей, сам обращается к своему издателю;
● проталкивание (push feed), когда сервер, имеющий у себя новые статьи, производит попытку передать их подписчику.
Еще одним немаловажным моментом службы USENET является возможность создания моделированных групп новостей. В моделируемой группе каждое новое сообщение автоматически перенаправляется лицу, выполняющему роль цензора или модератора. Если сообщение не противоречит уставу конференции и одобрено модератором, оно становится публично доступным для прочтения. В противном случае — просто удаляется
Поскольку служба новостей изначально создавалась как средство ведения хранилища публично доступной информации, в ней не были предусмотрены функции назначения и проверки прав доступа на отдельные ветви каталога. Большинство существующих служб новостей способны выполнить лишь однократную проверку имени и пароля пользователя при установлении соединения с сервером, после удачного завершения которой все статьи становятся доступны клиенту. Кроме того, не предусмотрена возможность авторизации серверов и служебных сообщений. Как следствие этого, массовое применение USENET оправдано только для организации публичных групп сетей с анонимным режимом доступа.
Возможностями надежной проверки подлинности пользователей и разграничения их доступа к статьям по темам обладают системы электронной почты и новостей, специально разработанные для корпоративных сетей, например, система Microsoft Exchange, которая совместима со службой новостей USENET.
1.3. Безопасное масштабирование компьютерных сетей
Одним из основных требований к современной компьютерной сети является требование по масштабируемости, предполагающее способность сети быть достаточно большой и сложной без снижения требуемого уровня ее производительности, безопасности и управляемости.
Масштабируемость компьютерных сетей обеспечивается возможностью их наращивания и объединения при наличии эффективных средств поддержки информационно-компьютерной безопасности и сетевого управления.
В зависимости от масштаба, территориального расположения и принадлежности компьютерные сети разделяют на локальные, корпоративные, региональные и глобальные.
Локальная сеть представляет собой группу компьютеров, сопряженных друг с другом каналами передачи информации и размещенных в пределах нескольких компактно расположенных зданий.
Локальная сеть может быть разделена на отдельные сегменты. Под каждый сетевым сегментом понимается часть локальной сети, за пределы которой распространяются только те пакеты сообщений, которые адресованы на входящим в этот сегмент компьютерам. В пределах сегмента локальной сети реализуется метод множественного доступа, когда отправляемый компьютером сегмента пакет сообщения доставляется всем остальным компьютерам в этом сегменте, а принимается только тем компьютером, которому он адресован. Остальные компьютеры этот пакет сообщения игнорируют.
Разделение локальной сети на сегменты улучшает ее производительность, сокращая трафик. Это связано с тем, что пакеты отдельных компьютеров сегмента, адресат которых находится в этом же сегменте, не распространяются по всей сети. Однако следует учитывать, что улучшение производительности локальной сети путем ее разбиения на сегменты будет обеспечено только в том случае, если выделенные сегменты соответствуют рабочим группам, в пределах которых осуществляется интенсивный обмен информацией. При отсутствии разделения локальной сети на сегменты считается, что данная сеть состоит из одного сетевого сегмента.
Корпоративная, региональная, а также глобальная сеть объединяет с помощью каналов связи территориально распределенные локальные сети. В качестве основного признака корпоративной сети выступает принадлежность одной организации, региональной — охват какого-либо региона, например, одного города, а глобальной — охват глобальных территориальных областей, например, стран и континентов. Большая региональная сеть может объединять более мелкие региональные и корпоративные сети, а глобальная— любые виды компьютерных сетей. Региональные и глобальные сети, в отличие от корпоративной, как правило, не принадлежат какой-либо одной организации. Ярким примером глобальной сети является сеть Internet, которая не имеет владельца, хотя входящие в ее состав компьютерные сети принадлежат различным организациям.
Для наращивания, а также интеграции вычислительных сетей используются различные типы аппаратно-программных устройств:
● повторители, обеспечивающие усиление и при необходимости разветвление электрического сигнала для увеличения размера сегмента локальной сети;
● мосты и коммутаторы, предназначенные для разбиения локальной сети на сегменты, а также объединения полученных сегментов и небольших локальных сетей;
● маршрутизаторы, служащие для подключения к глобальным сетям, а также объединения локальных сетей и их больших частей;
● шлюзы, выполняющие функции маршрутизации и предназначенные для объединения компьютерных сетей, функционирующих по несовместимым протоколам информационного взаимодействия.
Перечисленные устройства функционируют на различных уровнях эталонной модели сетевого взаимодействия (модели OSI — Open System Interconnection).
Повторители, позволяющие увеличить размер сетевого сегмента за счет усиления и разветвления электрического сигнала, функционируют на физическом уровне модели OSI (рис. 1.27). Следует отметить, что в настоящее время начинают использоваться повторители, расширяющие сферу своего влияния и на канальный уровень с целью обеспечения безопасного использования сетевых адресов физического уровня, о чем будет идти речь ниже.
Мосты и коммутаторы, используемые для объединения сегментов локальной сети, а также небольших локальных сетей, работают на канальном уровне модели OSI (рис. 1.27). Объединяемые сегменты и локальные сети должны функционировать по одинаковым протоколам среднего и высокого уровней эталонной модели (начиная с сетевого по прикладной уровень). Протоколы канального и физического уровней могут отличаться. Соответственно мосты и коммутаторы обеспечивают объединение сегментов и локальных сетей с разной топологией, например, Ethernet и Token Ring.
Отдельные мосты и коммутаторы, например, маршрутизирующий мост (routing bridge), помимо своих функций поддерживают некоторые функции сетевого уровня эталонной модели для оптимизации передачи данных. Современные коммутаторы позволяют объединять сегменты и локальные сети с различными протоколами не только физического и канального уровней, но и сетевого уровня, например, с протоколами IP и IPX.
Маршрутизаторы, служащие для объединения локальных сетей и их больших частей, а также подключения локальных сетей к глобальным, функционируют на сетевом уровне модели OSI (рис. 1.28). Хотя отдельные интеллектуальные маршрутизаторы, поддерживающие усовершенствованный функции фильтрации пакетов сообщений, могут обрабатывать пакеты транспортного уровня модели OSI.
В отличие от мостов и коммутаторов маршрутизаторы обеспечивают поиск оптимального маршрута при передаче пакетов сообщений между сегментами сети или локальными сетями. Мосты и коммутаторы не реализуют функцию выбор оптимального маршрута, а лишь пересылают пакеты сообщений из одного сегмента локальной сети в другой или из одной локальной сети в другую.
Для объединения сегментов и локальных сетей с различными протоколами сетевого уровня, например с протоколами IP и IPX, необходимо использовать многопротокольные маршрутизаторы, обеспечивающие правильный анализ IP- и IPX-пакетов сообщений и их передачу соответствующим сегментам или локальным сетям.
Существуют также комбинированные сетевые устройства типа моста/маршрутизатора (brouter или bridge/router), которые в нормальном режиме работают как многопротокольные маршрутизаторы, а при получении пакета с неизвестным сетевым протоколом обрабатывают его как мост.
Если локальные сети построены по протоколам, отличающимся не только на физическом, канальном и сетевом уровнях модели OSI, но и на более высоких уровнях, то для объединения таких сетей или сегментов сети должны использоваться специализированные компьютеры, называемые шлюзами. Шлюзы обычно работают на прикладном уровне модели OSI (рис. 1.28), обеспечивая маршрутизацию передаваемой информации и протокольное преобразование для всех уровней эталонной модели сетевого взаимодействия. Например, шлюзы необходимы для подсоединения к современным локальным сетям устаревших больших ЭВМ (мэйнфреймов), имеющих централизованную архитектуру. Обычно шлюзы позволяют пользователям объединенных систем воспользоваться такими сервисами, как электронная почта, пересылка файлов и доступ к базе данных.
1.3.2. Использование повторителей
Назначение и виды повторителей
Повторители являются аппаратными или аппаратно-программными устройствами физического уровня эталонной модели, обеспечивающими усиление и при необходимости разветвление электрического сигнала для увеличения размера сегмента локальной сети. В современных сетевых топологиях, таких как Fast Ethernet и Token Ring, сегменты локальной сети соединяются с мостом, коммутатором или маршрутизатором только через повторители (рис. 1.29).
При кольцеобразной и звездообразной топологии, например, в сетях Token Ring и Fast Ethernet, роль повторителей выполняют активные концентраторы или, как их еще называют, хабы, объединяющие группы компьютеров в сетевом сегменте. Функции повторителей выполняют также и современные коммутаторы.
Вспомним, что активные концентраторы реализуют как функции коммутации, так и функции усиления сигнала. Пассивные концентраторы реализуют только функции разветвления. Соответственно к активным концентраторам может быть подсоединено большее количество компьютеров, например, 16 или 32, а кабельные соединения могут иметь большую длину, например, от 45 до 200 метров в зависимости от типа кабеля. Пассивный концентратор используется в дополнение к активному и обеспечивает подключение только нескольких компьютеров, например, трех. При этом максимально возможная длина кабеля, соединяющего компьютер с пассивным концентратором, не должна превышать несколько десятков метров.
При топологии "общая шина", например, в сетях Ethernet типа 10-Base5, повторители применяют для подключения отдельных участков с общей шиной, а также увеличения длины одного участка. В последнем случае участки общей шины с максимально возможной длиной соединяются друг с другом через повторители.
Повторители для топологии "общая шина" называют линейными повторителями, так как содержат один входной и один выходной порт. В активных концентраторах все имеющиеся порты являются и входными и выходными.
Повторители относятся к прозрачным и неадресуемым сетевым устройствам, работающим с той же скоростью, что и связываемые ими участки сети. Помимо усиления и разветвления электрического сигнала повторители обеспечивают выполнение функций восстановления сигналов и обработки ошибок. Если сигналы являются искаженными и/или зашумленными, но еще различимыми для повторителя, то перед ретрансляцией другим портам повторитель эти сигналы восстанавливает. В случае же, когда на какой-либо порт повторителя поступают ошибочные сигналы, то повторитель блокирует их дальнейшее распространение.
В настоящее время начинают использоваться повторители, работающие не только на физическом, но и на канальном уровне модели OSI с целью обеспечения безопасного использования сетевых адресов физического уровня, называемых МАС-адресами (МАС — Media Access Control). МАС-адрес, состоящий обычно из 48 битов, уникален для каждого узла локальной сети и присваивается сетевому адаптеру во время его изготовления. Все сетевые адаптеры имеют различные МАС-адреса. Исключением является только локальная сеть ArcNet, адаптеры которой имеют 8-битовые адреса, присваиваемые сетевым администратором.
С целью обеспечения безопасного использования МАС-адресов повторители могут выполнять функции избирательного шифрования пакетов канального уровня, а также фильтрации МАС-адресов.
Избирательное шифрование пакетов канального уровня
Функция шифрования пакетов канального уровня способствует защите от наблюдения за сетевым трафиком (потоком сообщений).
В обычном режиме узел локальной сети игнорирует пакеты сообщений, которые ему не адресованы. Наблюдение за сетевым трафиком становится возможным при переключении сетевого адаптера в мониторный режим работы, при котором адаптер принимает все поступающие пакеты сообщений. Переключение сетевого адаптера в мониторный режим и анализ сетевого трафика реализуются с помощью специальной программы, называемой сетевым анализатором. Такие программы широко распространены и используются для поиска ошибок и анализа производительности сети. Для наблюдения за сетевым трафиком в каком-либо сегменте сети достаточно на любом компьютере этого сегмента запустить сетевой анализатор.
Чтобы предотвратить наблюдение за сетевым трафиком путем шифрования пакетов канального уровня, повторителю должны быть известны МАС- адреса подключенных к нему компьютеров. Эти МАС-адреса могут быть заданы администратором с помощью специального программного обеспечения, а могут быть определены и самим повторителем по аналогии с алгоритмом работы моста.
Если известны МАС-адреса узлов, подключенных к повторителю, то повторитель поступает следующим образом. При ретрансляции пакетов сообщений в выходные порты он выполняет зашифровывание тех однопунктовых пакетов, у которых МАС-адрес получателя не совпадает с МАС-адресом подключенного к порту компьютера. Под однопунктовыми пакетами сообщений понимаются пакеты, адресованные одному узлу. Если пакеты адресованы всем узлам или группе узлов сегмента сети, то они являются, соответственно, широковещательными или групповыми. Пакет, ретранслируемый портом, к которому подключен получатель этого пакета, не зашифровывается. Соответственно компьютер, подключенный к шифрующему повторителю, получает все пакеты, но незашифрованными будут только широковещательные и групповые пакеты, а также пакеты, предназначенные для этого компьютера.
Пример шифрования передаваемого пакета сообщения представлен на рис. 1.30. Компьютеры от А до F подключены к соответствующим портам повторителя. Пакет, переданный компьютером А для компьютера Е, будет отправлен повторителем всем компьютерам, за исключением Е, в зашифрованном виде.
Широковещательные пакеты не подлежат зашифровыванию, так как предназначены для всех узлов сегмента сети. Не зашифровываются и групповые
пакеты, поскольку повторитель не может узнать, каким узлам они предназначены. Такая информация доступна только на сетевом уровне компьютерам получателям. Но это не является проблемой, так как групповые пакеты редко содержат секретные данные.
Фильтрация повторителями МАС-адресов ориентирована на обеспечение подлинности пакетов сообщений и защиту от подстановки МАС-адресов.
Для получения доступа к ресурсам локальной сети злоумышленник может подключить к ней собственный компьютер. Это может понадобиться в случае отсутствия у злоумышленника возможности физического доступа к сетевым компьютерам. Кроме того, большинство сетевых адаптеров позволяют программировать и/или изменять свой МАС-адрес динамически. Соответственно несложно написать программу, посылающую пакеты с различными МАС-адресами отправителя, выполняя подстановку МАС-адресов. Цель такой атаки — обмануть сетевую операционную систему и другое связанное с канальным уровнем программное обеспечение, чтобы заставить их делать то, что они обычно не делают. Примером может служить программа НАСК.ЕХЕ, выполняющая подстановку МАС-адресов, чтобы получить привилегии супервизора на любом сервере NetWare 3.11. Подстановка адресов может быть использована и для реализации угрозы типа отказа в обслуживании. Фильтрация МАС-адресов позволяет защититься от подобных атак.
Для возможности фильтрации МАС-адресов повторителю задаются МАС- адреса всех компьютеров сети, от которых могут поступать пакеты сообщений. При известных МАС- адресах разрешенных отправителей повторитель, получая пакеты сообщений, отфильтровывает те пакеты, которые имеют незарегистрированные МАС-адреса отправителей. Соответственно пакеты сообщений, имеющие неизвестные МАС-адреса отправителей, для дальнейшей передачи игнорируются и на выходные порты повторителя не поступают. При обнаружении узла с незарегистрированным МАС-адресом повторитель полностью отключает порт, с которым этот узел соединен.
Для повышения степени безопасности повторители с функциями защиты следует устанавливать в закрытом на замок распределительном шкафу.
1.3.3. Сегментация сети с помощью мостов Общие сведения
Мосты, функционирующие на канальном уровне модели OSI, применяются для разбиения локальной сети на сегменты, а также объединения полученных сегментов и небольших локальных сетей.
В пределах сегмента локальной сети реализуется метод множественного доступа, когда отправляемый компьютером сегмента пакет сообщения доставляется всем остальным компьютерам в этом сегменте, а принимается только тем компьютером, которому он адресован. Остальные компьютеры этот пакет сообщения игнорируют. Соответственно, если большая локальная сеть состоит только из одного сегмента, то из-за увеличения трафика производительность этой сети снижается. При разделении локальной сети на сегменты с помощью мостов, коммутаторов или маршрутизаторов за пределы каждого сегмента распространяются только те пакеты сообщений, которые адресованы не входящему в него компьютеру. В результате за счет сокращения трафика улучшается общая производительность сети.
Считается, что оптимальным соотношением интенсивности внутрисегментного трафика к межсегментному является 80 к 20. Для соблюдения этого правила необходимо, чтобы выполнялись два условия:
● выделенные сегменты сети соответствуют рабочим группам, в пределах которых осуществляется интенсивный обмен информацией;
● каждый сервер размещен в том же сегменте, где находится его пользователь.
Мосты и коммутаторы являются более простыми устройствами, чем маршрутизаторы, не реализующими функцию выбора оптимального маршрута, а лишь пересылающими пакеты сообщений из одного сегмента локальной сети в другой или из одной локальной сети в другую. Кроме того, в отличие от маршрутизаторов, мосты и коммутаторы относятся к прозрачным сетевым устройствам, не требующим специальной настройки других узлов сети.
Учитывая сложность администрирования и дороговизну маршрутизаторов, а также то, что при передаче пакетов сообщений между немногочисленными сегментами локальной сети нет необходимости в поиске оптимального маршрута, становится понятна более высокая эффективность использования мостов и коммутаторов для объединения сегментов локальной сети.
Мосты и коммутаторы, разрабатываемые для разбиения локальной сети сегменты, а также объединения полученных сегментов, подобны по своему назначению, но отличаются принципами функционирования. В общем случае по сравнению с коммутаторами мосты обладают меньшими функциональными возможностями и проще по внутреннему устройству.
Технология функционирования моста
Объединяемые сегменты локальной сети подсоединяются к портам Моста (рис. 1.31), в качестве которых выступают сетевые адаптеры. Каждый связываемый сетевой сегмент подсоединяется к сетевому адаптеру, тип которого совпадает с типом этого сегмента. Мост чаще всего имеет от двух до четырех портов.
Любой пакет, отправленный компьютером какого-либо сегмента сети, приходит в порт моста, к которому этот сегмент подключен. Если получатель данного пакета находится в другом сегменте сети, то мост направляет этот пакет в порт, к которому подсоединен сегмент с получателем. Этот процесс называется ретрансляцией (forwarding). Говорят, что пакет ретранслирован, если он получен одним портом моста и передан через другой.
В случае, когда принятый портом моста пакет имеет адрес получателя, находящегося в пределах подсоединенного к этому порту сегмента, то данный пакет не ретранслируется. Этот процесс называется фильтрацией (filtering). Говорят, что кадр отфильтрован, если он получен одним портом моста и не ретранслирован другим.
Принятие мостом решения о том, ретранслировать полученный пакет или отфильтровать, основано на запоминании МАС-адресов компьютеров, входящих в подсоединенные к портам моста сегменты. Данные адреса хранятся в памяти моста в виде таблицы, ставящей в соответствие МАС- адресу каждого компьютера номер порта, к которому подсоединен сегмент с этим компьютером.
Заполнение таблицы адресов мост осуществляет сам. После первого подключения к сети мост в течение короткого промежутка времени, как правило, нескольких секунд, запоминает адреса всех активных узлов, входящих в подсоединенные к мосту сегменты. В случае поступления на какой-либо порт пакета с неизвестным мосту МАС-адресом получателя мост ретранслирует этот пакет всем другим портам.
Для каждого МАС-адреса таблица адресов имеет три поля: сам адрес, номер порта, на котором адрес наблюдался в последний раз, а также возраст МАС-адреса.
При получении каждого пакета с неизвестным МАС-адресом отправителя мост регистрирует сам адрес, номер принявшего пакет порта, а также устанавливает значение возраста зарегистрированного адреса в О. Возраст адресов в таблице увеличивается на 1 каждую секунду. При достижении определенного значения, называемого границей возраста (age limit), информация об этом МАС-адресе стирается из таблицы. Этот процесс называется старением. Поле возраста каждого МАС-адреса обнуляется, когда мост получает пакет с таким же МАС-адресом отправителя. При этом выполняется также обновление соответствующего этому МАС-адресу порта.
Данная технология заполнения и обновления таблицы адресов гарантирует поддержание хранящейся в ней информации в актуальном состоянии. При добавлении компьютеров к сегментам сети, а также при перемещении компьютеров из одного сегмента в другой информация в таблице адресов будет обновлена своевременно. Кроме того, в случае отсоединения компьютеров от сегментов сети ненужная информация из таблицы адресов будет удалена.
При получении каждого пакета мост вначале обновляет по описанной технологии свою таблицу адресов и лишь затем принимает решение о том, ретранслировать полученный пакет или отфильтровать.
Широковещательные и групповые пакеты ретранслируются во все порты моста, за исключением порта, принявшего этот пакет. Такая ретрансляция групповых пакетов выполняется по той причине, что мост не может узнать, каким узлам они предназначены. Эта информация доступна только на сетевом уровне компьютерам получателям. В связи с тем, что мосты и коммутаторы прозрачно пропускают широковещательные пакеты на все направления, локальная сеть или ее часть, образованная объединением сегментов мостами и коммутаторами, называется широковещательной областью.
Если на мост поступает однопунктовый пакет, то осуществляется поиск и анализ соответствующей строки в таблице адресов по МАС-адресу получателя этого пакета. Принимаемое решение, зависящее от результатов поиска и анализа, представлено в табл. 1.2.
Адрес в таблице имеется и соответствующий ему номер порта совпадает с номером порта, принявшего пакет Решение Пакет ретранслируется во все порты, за исключением порта, на который он поступил Пакет ретранслируется только в порт, номер которого указан в таблице адресов Пакет отфильтровывается. Он не ретранслируется ни в один из портов
По описанной технологии работают все мосты. Однако некоторые из них могут принимать решение о ретрансляции на основе более сложных правил. Многие мосты допускают ручную настройку отдельных элементов таблицы адресов, так называемых статических элементов, которые никогда не удаляются из таблицы. Подобная настройка требуется для пассивных устройств, например, для сетевого принтера, который может "молчать" в течение более продолжительного времени, чем допустимый максимальный возраст его МАС-адреса.
При возникновении необходимости что-либо напечатать принтеру будет послан пакет, и в случае удаления из таблицы адресов информации о МАС-адресе принтера мост должен будет ретранслировать этот пакет на все порты.
Мосты имеют достаточно простую архитектуру и представляют собой специализированный компьютер с двумя или более сетевыми адаптерами, выступающими в качестве портов моста (рис. 1.32). Каждый порт принимает все поступающие к нему пакеты сообщений. Специализированное программное обеспечение проверяет каждый принятый пакет, заполняет и обновляет таблицу адресов и принимает решение о ретрансляции.
Мосты, включающие один процессор, могут одновременно обрабатывать только один пакет. Соответственно такие мосты, чтобы поддерживать высокую скорость обработки поступающих пакетов, имеют, как правило, не более четырех портов. Многопроцессорные мосты имеют большее количество портов, но стоят существенно дороже.
Функции моста может выполнять и обычный подсоединенный к сети компьютер со специальным программным обеспечением и несколькими сетевыми адаптерами, каждый из которых предназначен для одного из связываемых сегментов сети. Если в качестве моста используется сервер, то такой мост называют внутренним, а если рабочая станция — внешним. При использовании в качестве моста рабочей станции эту станцию не следует применять для других функций, так как любой отказ запущенной на ней пользовательской программы может привести к нарушению информационного обмена в сети.
Сегментация сложных локальных сетей
Если локальная сеть достаточно велика, то чаще всего для ее разбиения на сегменты и объединения этих сегментов между собой одного моста будет недостаточно. Прозрачность мостов позволяет создавать весьма сложные сети, в которых можно предусмотреть резервные маршруты между сетевыми сегментами в случае выхода из строя промежуточных сегментов сети. Например, на рис. 1.33 показана схема сети с несколькими мостами и резервным маршрутом между сегментами А и D. При выходе сегмента С из строя связь между группами сегментов (А, В) и (D, Е, F) не будет нарушена, так как сработает альтернативный путь, образованный мостом с номером 3.
Однако в локальной сети между любыми двумя узлами должен существовать единственный путь. В противном случае при множестве путей между двумя узлами, которое называется петлей, могут возникнуть следующие нежелательные последствия:
● широковещательные штормы;
● размножение однопунктовых пакетов;
● проблемы с запоминанием.
Без принятия соответствующих мер широковещательные штормы приводят к полному выводу сети из строя. Данный эффект возникает при наличии петель в структуре сети, когда мост ретранслирует широковещательный пакет. В результате этот же пакет, размноженный мостами по альтернативным путям, возвращается по петле к исходному мосту, который опять ретранслирует полученные одинаковые широковещательные пакеты.
Сетевые протоколы компьютеров разработаны таким образом, чтобы получать каждый пакет один раз. Получение размноженного пакета воспринимается как ошибка, после которой отсылается запрос отправителю размноженного пакета на повторную передачу. В конечном итоге повторно передаваемые и многократно размноженные пакеты займут полосы пропускания всех сегментов. Однопунктовые пакеты также будут размножаться, но с меньшей интенсивностью.
В процессе движения широковещательного пакета по сети каждый мост петли будет наблюдать один и тот же адрес отправителя на нескольких принимающих портах. Это приведет к запоминанию в таблице адресов ложной информации о номере порта, к которому подсоединен отправитель широковещательного пакета. В результате возникнет путаница, так как однопунктовые пакеты будут направляться не в те порты.
Для недопущения описанных эффектов, приводящих к нарушениям работоспособности локальных сетей, современные мосты позволяют своевременно обнаруживать и блокировать эти эффекты, а также автоматически преобразовывать сеть с петлями в сеть с правильной структурой, предполагающей наличие между любыми двумя узлами единственного пути. Такое автоматическое преобразование выполняется на основе множества специальных управляющих сообщений, посредством которых мосты взаимодействуют друг с другом и изучают топологию сети. При обнаружении петель мосты начинают совместно отключать некоторые из своих портов. В результате петли уничтожаются, и достигается топология дерева, соединяющая любые два узла единственным путем. Когда любая связь, имеющая резервную, выходит из строя, мосты автоматически изменяют топологию сети, активизируя резервный путь. Например, при работоспособности всех сегментов сети, представленной на рис. 1.33, порты моста с номером 3 будут отключены. В случае же выхода сегмента С из строя мост с номером 3 автоматически включит свои порты и связь между группами сегментов (А, В) и (D, Е, F) будет восстановлена. Если имеющиеся мосты не поддерживают функцию автоматического преобразования сети с петлями в сеть с правильной структурой, то изначально необходимо сконфигурировать сеть в виде дерева, соединяющего любые два узла сети единственным путем.
1.3.4. Применение коммутаторов
Особенности сетевой коммутации
Коммутаторы, называемые еще переключателями, как и мосты, функционируют на канальном уровне модели OSI и применяются для разбиения локальной сети на сегменты, а также объединения полученных сегментов и небольших локальных сетей. В отличие от мостов коммутаторы содержат большее количество портов, имеют более высокую производительность и могут не только разделять сеть на сегменты, но и разграничивать потоки сообщений между различными узлами сети друг от друга.
Первые коммутаторы имели лишь 6 или 8 портов. С развитием технологии - появились коммутаторы с 16, 24 и более портами. Большое количество портов позволяет сегментировать локальную сеть на меньшие части, что существенно повышает ее пропускную способность. Кроме того, большое число портов обеспечивает возможность подключения к портам не только сетевых сегментов, но и отдельных компьютеров локальной сети. Коммутаторы позволяют организовать подключенные компьютеры в сегменты сети и легко перегруппировывать их, когда это необходимо.
Конструктивно коммутатор выполнен в виде сетевого концентратора. Несмотря на то, что коммутаторы и подобны высокоскоростным много портовым мостам, их внутренняя архитектура существенно отличается от архитектуры мостов. Коммутатор может обрабатывать много пакетов одновременно.
Он проверяет пакеты, управляет таблицей адресов и принимает решение об одновременной или параллельной ретрансляции для всех своих портов.
Каждый порт коммутатора, подобно порту сетевого адаптера, имеет принимающую и передающую части. Каждая часть порта логически связана с перекрестной матрицей, реализованной аппаратным способом на основе микросхем ASIC (Application-Specific Integrated Circuit — специализированная интегральная схема). Принимающая часть каждого порта соединена с горизонтальной линейкой перекрестной матрицы, а передающая — с вертикальной (рис. 1.34). Когда горизонтальная линейка соединяется с вертикальной, создается путь от принимающей части одного порта к передающей части другого. Таким способом можно соединить любую пару портов. Например, если соединены пары портов 2 и 4, а также 3 и 5, то два пакета могут быть одновременно получены на портах 2 и 3 и переданы в порты 4 и 5.
Когда порт получает пакет, коммутатор считывает адрес получателя и на основе таблицы адресов принимает решение о ретрансляции. Если пакет нуждается в ретрансляции, то создается связь с нужным портом. Поскольку между портами коммутатора может быть много логических путей, то одновременно можно ретранслировать много кадров. Однопунктовые пакеты с неизвестным адресом, а также многопунктовые и широковещательные пакеты коммутаторы, как и мосты, ретранслируют на все порты, за исключением тех портов, на которые эти пакеты поступили.
Описанная технология называется коммутацией пакетов или коммутацией кадров и используется в локальных сетях Ethernet и Token Ring. Каждый пакет обрабатывается ближайшим коммутатором и передается далее по сети непосредственно получателю. В результате сеть превращается как бы в совокупность параллельно работающих высокоскоростных прямых каналов. По аналогии выполняется коммутация ячеек и в сетях АТМ. Особенностью ячеек, в отличие от обычных кадров, является их фиксированный размер. Использование небольших ячеек фиксированной длины облегчает создание недорогих высокоскоростных коммутирующих структур на аппаратном уровне.
Коммутаторы, имея большое количество портов, позволяют подключить к своим портам отдельные компьютеры, а также распределить подключенные компьютеры по сетевым сегментам (рис. 1.35) и легко перегруппировать их, когда это необходимо. В результате появляется возможность территориального перемещения компьютеров сети при сохранении ими своих мест в логической сетевой структуре. Логическая структура сети отражает разбиение сети на рабочие группы, образуемые сетевыми сегментами. В пределах сегмента сети реализуется метод множественного доступа, когда отправляемый компьютером сегмента пакет
сообщения доставляется всем остальным компьютерам в этом сегменте, а принимается только тем компьютером, которому он адресован. Сегменты локальной сети, аппаратно-программное обеспечение которой позволяет отделить ее логическую структуру от физической, называют виртуальными сетями (VLAN — Virtual Local Area Network).
Современные коммутаторы поддерживают несколько видов виртуальных сетей (сетевых сегментов), конфигурируемых программным способом:
● виртуальные сети, принадлежность к которым определяется физическими портами коммутаторов;
● виртуальные сети, принадлежность к которым определяется не физическими портами коммутаторов, а МАС-адресами подключенных к коммутаторам устройств;
● виртуальные сети, принадлежность к которым определяется не только МАС-адресами, но и адресами сетевого уровня подключенных к коммутаторам устройств, например, адресами протокола IP или IPX.
В первом случае сегменты локальной сети, образующие виртуальные сети, создаются посредством логического соединения портов внутри физической инфраструктуры коммутатора. Например, одни порты коммутатора приписываются к первому сегменту сети, а другие — ко второму. Недостаток такого метода организации виртуальных сетей состоит в том, что все станции, подключенные к одному и тому же порту, должны принадлежать к одному и тому же сегменту сети.
Другой метод создания виртуальных сетей базируется на МАС-адресах подсоединенных устройств. При таком способе организации виртуальной сети любой сотрудник сможет подключать свой компьютер, например, Notebook, к любому порту коммутатора и коммутатор автоматически определит принадлежность этого компьютера к тому или иному сетевому сегменту на основе его МАС-адреса. Такой метод разрешает также компьютерам, подключенным к одному порту коммутатора, принадлежать к разным сегментам сети. Это оказывается целесообразным, когда один и тот же сервер или сетевой принтер обслуживает несколько виртуальных сетей. Однако за принадлежность одного устройства к двум или более сетевым сегментам придется расплачиваться дополнительной нагрузкой на коммутатор, к которому оно будет подключено.
С целью поддержания безопасности сети каждый порт коммутатора может быть сконфигурирован таким образом, что он будет разрешать соединения только с конкретными МАС-адресами. Самая сложная форма контроля за назначением портов предполагает использование одного или нескольких конфигурационных серверов, разрешающих соединения с данным портом. Такая мобильность является одной из основных целей развития виртуальных сетей.
Принадлежность к той или иной виртуальной сети может определяться только на основе МАС-адресов, но и адресов сетевого уровня. Например, одна виртуальная сеть может быть ориентирована на протокол IP, а другая на протокол IPX. Система управления виртуальными сетями дает пользователям обеих виртуальных сетей возможность организовывать доступ к серверам, поддерживающим соответствующие протоколы (IP или IPX).
В этом случае система разграничит серверы по отдельным сетевым сегментам. Согласно данному способу каждое подсоединенное к коммутатору устройство, например сервер или сетевой принтер, также может входить в несколько виртуальных сетей.
Организация виртуальных сетей на основе адресов сетевого уровня возмож- на лишь в случае использования маршрутизируемых протоколов, например, IP или IPX. В противном случае, например, при использовании протокола NetBIOS, виртуальные сети придется организовывать только на основе портов и МАС-адресов.
Иерархическая коммутация и перспективы
Описанные способы построения виртуальных сетей особенно эффективны при использовании иерархии территориально распределенных коммутаторов, управляемых централизованным образом (рис. 1.36). Коммутаторы иерархии могут быть распределены, например, между отдельными этажами здания. Для обеспечения устойчивости к сбоям и отказам сети вводятся дополнительные связи между коммутаторами на этажах, которые при нормальной работе сети запрещены, но в случае обрыва любой рабочей линии связи будут задействованы автоматически. В случае необходимости использования одного сервера на всю локальную сеть его необходимо подключить к корневому коммутатору.
При всех своих достоинствах коммутаторы, как и мосты, имеют один существенный недостаток: они не в силах защитить сеть от лавин широковещательных пакетов, а это ведет к непроизводительной загрузке сети. Маршрутизаторы могут контролировать и фильтровать ненужный широковещательный трафик, но они работают медленнее. Типичная производительность маршрутизатора составляет около 10 000 пакетов в секунду, а это не идет ни в какое сравнение с аналогичным показателем коммутатора — около 600 000 пакетов в секунду. Поэтому многие производители стали встраивать в коммутаторы функции маршрутизации, которые в дополнение позволяют организовать виртуальные сети на основе анализа адресов сетевого уровня.
В настоящее время технологии сетевой коммутации интенсивно развиваются, Параллельно с завершением создания универсального стандарта виртуальных сетей производители коммутаторов активно работают над повышением их возможностей автоматической переконфигурации. Ближайшая цель — полностью динамичные виртуальные сети, в которых подключение компьютера к порту коммутатора автоматически отслеживается центральным приложением управления, передающим коммутатору всю необходимую для конфигурации сети информацию без малейшего вмешательства администратора.
Конечной целью в стратегических планах производителей является создание виртуальных сетей с внутренней политикой. Поскольку уровень автоматизации управления виртуальными сетями будет очень высоким, администраторы должны будут иметь возможность задавать внутреннюю политику работы сети. Здесь под политикой понимается набор специфических параметров, определяющих правила доступа к сетевым ресурсам, а также правила их использования. По заявлениям производителей, такие виртуальные сети возьмут на себя многие функции сетевых операционных систем, оставив на их долю только предоставление пользователям требуемых сервисов.
Создание виртуальных сетей с внутренней политикой позволит снять с сервера ряд управляющих функций, а также существенно повысит степень информационно-компьютерной безопасности. Ведь злоумышленнику, прежде чем добраться до сетевых ресурсов, придется преодолевать уровни защиты, реализуемые коммутаторами. При достижении этой цели сетевые операционные системы могут лишиться многих своих функций по управлению, сетью и защите ее ресурсов.
1.3.5. Построение маршрутизированных сетей Общие сведения о маршрутизаторах
Мосты и коммутаторы, предназначенные для разбиения локальной сети на сегменты, а также объединения полученных сегментов и небольших локальных сетей, не реализуют функцию выбора оптимального маршрута, а лишь пересылают пакеты сообщений из одного сегмента локальной сети в другой или из одной локальной сети в другую. Кроме того, данные устройства не в силах защитить сеть от лавин широковещательных пакетов, которые приводят к непроизводительной загрузке сети. По этим причинам мосты и коммутаторы не могут эффективно использоваться для подключения к глобальным сетям, а также объединения локальных сетей и их больших частей.
Данные функции возложены на маршрутизаторы, функционирующие на сетевом уровне эталонной модели OSI.
Маршрутизаторы имеют особо важное значение для объединенных и глобальных сетей, в которых используются удаленные коммуникации. Маршрутизаторы обеспечивают оптимальный трафик по сложным маршрутам в разветвленных объединенных сетях, имеющих избыточные связи. В дополнение они отфильтровывают ненужный здесь поток широковещательных сообщений, повышая таким образом пропускную способность каналов связи. Последняя функция наиболее важна при соединении локальных сетей каналами с низкой пропускной способностью.
Маршрутизатор, как и мост, представляет собой специализированный компьютер с двумя или более сетевыми адаптерами, выступающими в качестве ' портов маршрутизатора. Порты принимают поступающие к маршрутизатору пакеты сообщений. Специализированное программное обеспечение проверяет каждый принятый пакет. Для каждого ретранслируемого пакета опревселяется наилучший маршрут его дальнейшей передачи, и затем этот пакет, ретранслируется в соответствующий порт маршрутизатора. Функции маршрутизатора может выполнять и обычный компьютер со специальным программным обеспечением и несколькими сетевыми адаптерами, к каждому из которых подсоединяются соответствующие каналы передачи данных.
В отличие от мостов и коммутаторов маршрутизаторы обладают следующими особенностями функционирования:
● для принятия решения о ретрансляции маршрутизаторы анализируют не МАС-адрес получателя пакета, а адрес получателя, соответствующий сетевому уровню модели OSI, например, IP- или IPX-адрес; этот адресов отличие от МАС-адреса, включает номер сети, к которой подсоединен компьютер, а также номер самого компьютера в пределах данной сети;
● маршрутизаторы имеют свой сетевой адрес и не являются прозрачными устройствами; при необходимости отправки сообщения через Маршрутизатор требуется обратиться именно к маршрутизатору;
● при использовании маршрутизаторов должны применяться маршрутизируемые протоколы, такие как IP или IPX; в случае использования немаршрутизируемого протокола, например, NetBIOS, пакеты которого не включают информацию об адресе сети, передаваемые через маршрутизатор пакеты должны инкапсулироваться в пакеты маршрутизируемого протокола, например, IP или IPX. Рассмотрим первые две особенности более подробно. Повторители работают с пакетами физического уровня модели OSI (рис. 1.37) , и не анализируют поле данных этих пакетов. Исключением являются повторители, ориентированные на выполнение функций избирательного шифрования пакетов канального уровня, а также фильтрации МАС-адресов. В этом случае обрабатываются служебные данные, соответствующие пакетам канального уровня.
Мосты и коммутаторы работают с пакетами канального уровня эталонной модели (рис.. 1.37), анализируя для принятия решений о ретрансляции МАС-адреса их отправителя и получателя. Отдельные мосты и коммутаторы с целью оптимизации передачи данных позволяют обрабатывать и пакеты, сетевого уровня. Например, многие производители стали встраивать в коммутаторы функции маршрутизации, которые в дополнение позволяют opгaнизовать виртуальные сети на основе анализа адресов сетевого уровня.
Маршрутизаторы работают с пакетами сетевого уровня модели OSI (рис. 1.37), анализируя не МАС-адреса, а сетевые адреса получателей, каждый из которых, в отличие от МАС-адреса, включает номер сети, к которой подсоединен компьютер, а также номер самого компьютера в пределах данной сети. Маршрутизаторы могут поддерживать и усовершенствованные функции фильтрации, обрабатывая также пакеты транспортного уровня эталонной модели. Например, возможна фильтрация не только по адресам отправителя и получателя из заголовков пакетов сетевого уровня, но и по видам приложений источника и получателя из заголовков пакетов транспортного уровня (рис. 1.37).
При отправке сообщения узел сети помещает в заголовки пакетов сетевого уровня адреса отправителя и получателя, каждый из которых состоит из соответствующих номеров сети и компьютера. В случае использования в сети маршрутизатора перед формированием пакетов канального уровня узел должен установить, может ли он отправить эти пакеты непосредственно получателю или же их нужно переслать маршрутизатору.
Пакеты могут быть отправлены непосредственно получателю, если номер сети отправителя совпадает с номером сети получателя. Это означает, что отправитель и получатель находятся в одной широковещательной области.
Напомним, что под широковещательной областью понимается локальная сеть или ее часть, образованная сетевыми сегментами, объединенными мостами и коммутаторами. Широковещательные пакеты в пределах такой области доставляется всем сетевым узлам.
Для отправления пакетов непосредственно получателю необходимо на канальном уровне в качестве МАС-адреса получателя этих пакетов указать действительный МАС-адрес компьютера-получателя.
Если же номер сети отправителя не совпадает с номером сети получателя, то передающий узел должен направить эти пакеты маршрутизатору. Для этого на канальном уровне в качестве МАС-адреса получателя этих пакетов следует указать МАС-адрес маршрутизатора. После получения пакетов маршрутизатор возьмет на себя заботу об их доставке получателю. Получатель для маршрутизатора будет идентифицироваться адресом сетевого уровня, включающим номер сети, к которой подсоединен компьютер-получатель, а также номер самого компьютера-получателя в пределах данной сети.
Роль маршрутизаторов в масштабировании сетей
Мосты и коммутаторы, являясь более простыми устройствами, чем маршрутизаторы, обеспечивают большую производительность, имея меньшую цену.
Но эти устройства ограниченно решают вопросы масштабирования компьютерных сетей. Существует практический предел, до которого может увеличиваться сеть, построенная на основе мостов и коммутаторов. Основными причинами этого являются увеличивающиеся потоки широковещательных - пакетов, невозможность обеспечить активные запасные пути, а также возникновение перегрузок. Маршрутизаторы и протоколы маршрутизации специально разработаны для решения задач масштабирования.
Любые автономные и объединенные сети, построенные на основе маршрутизаторов, называют маршрутизированными сетями. Такие сети хорошо масштабируются и могут стать действительно огромными. Хорошим примером полностью маршрутизированной сети может служить глобальная сеть Internet, соединяющая тысячи сетей и миллионы компьютеров со всего мира.
● точки зрения масштабирования сетей маршрутизаторы обладают следующими важными особенностями:
● обеспечивают усовершенствованную фильтрацию пакетов;
● при этом широковещательные пакеты отфильтровываются и не ретранслируются ни в один из их портов; маршрутизаторы могут осуществлять фильтрации пакетов в соответствии с информацией, содержащейся в заголовках пакетов сетевого и транспортного уровня: адресами отправителя и получателя, информацией о протоколе, видами приложений источника и получателя;
● маршрутизаторы поддерживают сети с избыточными активными связями, посредством которых обеспечивается множество активных путей передачи данных между любой парой узлов; в сетях с мостами и коммун торами, напротив, должен существовать единственный активный передачи, т. е. такая сеть должна быть сконфигурирована в виде дерева;
● для ретранслируемых пакетов маршрутизаторы определяют наилучше маршрут их передачи; обычно избирается путь, обеспечивающий минимальное время доставки при максимальной надежности; в качестве такого пути может выступать путь с минимальным числом транзитных узлов предусматривающий возможность обхода загруженных участков сети.
Мосты и коммутаторы хорошо подходят для разбиения локальной сети н; сегменты, ограничивающие области множественного доступа друг от друга Здесь под областью множественного доступа понимается сегмент сети, за пределы которого распространяются только те пакеты сообщений, который адресованы не входящим в этот сегмент компьютерам. В пределах области множественного доступа пакеты сообщений доставляются всем компьютерам, а принимаются только теми, которым они адресованы. Области множественного доступа не ограничивают распространение широковещательных пакетов, которые в пределах широковещательной области доставляется всем сетевым узлам.
Подобно тому, как мосты и коммутаторы разбивают сети на области множественного доступа, маршрутизаторы выполняют разделение сетей на широковещательные области и поддерживают между ними множественные активные связи (рис. 1.38). При этом широковещательная область ограничивает также область множественного доступа, что характерно для случая, когда широковещательная область состоит из одного сегмента. Любой узел маршрутизированной сети может взаимодействовать с любым другим. Однако широковещательные пакеты никогда не покидают своей широковещательной области и не используют полосы пропускания каналов связи, расположенных вне ее.
Множественные активные связи между широковещательными областями
повышают безопасность и производительность компьютерных
сетей за счет:
● наличия запасных путей на случай перегрузки или выхода из строя основного пути;
● возможности расширения полосы пропускания между широко вещательными областями путем распределения трафика между имеющимися путями.
Например, между широковещательными областями В, С и Е на рис. 1.38 существует несколько альтернативных путей. Это обеспечивает наличие резервных связей и возможность равномерного распределения трафика между альтернативными путями с учетом текущей загрузки используемых каналов связи.
Пересылка пакетов осуществляется маршрутизаторами всегда по наилучше путям из всех возможных. Определение наилучших путей выполняется на основе таблиц маршрутизации в соответствии с используемыми протоколами. Изначальное заполнение таблиц маршрутизации может выполняться как вручную, так и автоматически. Для поддержки этих таблиц в актуальном состоянии маршрутизаторы взаимодействуют друг с другом путем передачи раз- личных сообщений и осуществляют контроль состояния подключенных к ним каналов связи. На основе полученной информации каждый маршрутизатор обновляет детальные сведения о топологии сети, хранящиеся в его таблице.
Наличие в маршрутизированной сети множественных активных связей порождает такую особенность, как возможность передачи получателю пакетов по различным путям. Если первый пакет передается по медленному или перегруженному пути, то следующий может быть направлен по более быстрому пути и достичь получателя раньше первого. Несоответствие порядка принятых пакетов порядку их отправления устраняется на транспортном уровне модели OSI.
Схемы целевого применения маршрутизаторов
Объединение частей локальных сетей и защита медленных устройств от перегрузок
Использование маршрутизаторов вместо мостов и коммутаторов для объединения больших частей и сегментов локальной сети целесообразно в том случае, когда широковещательная область локальной сети становится слишком большой или существенно увеличивается количество сетевых сегментов и сложность сети. В этом случае части локальной сети, разграниченные и объединенные маршрутизатором, легче обслуживаются, так как на сетевом уровне модели OSI каждая из этих логических подсетей имеет свой отдельный номер, входящий и в адрес сетевых узлов.
Объединяемые части локальной сети подключаются непосредственно к портам маршрутизатора (рис. 1.39). Каждая из объединяемых частей может представлять собой отдельный большой сегмент сети или множество сетевых сегментов, объединенных мостами и/или коммутаторами.
В очень большой локальной сети для объединения ее частей разумно использовать несколько маршрутизаторов с образованием избыточных активных связей между широковещательными областями, например, как показано на рис. 1.38.
Для объединения больших частей и сегментов локальной сети могут использоваться также комбинированные устройства, получившие название мостов-маршрутизаторов (brouter или bridge/router), которые подобно многопротокольным маршрутизаторам поддерживают работу с несколькими протоколами. Данные устройства обрабатывают пакеты сообщений одного вида как маршрутизаторы, а другого — как мосты. Для определения, какую, функцию необходимо выполнить, используются фильтрующие маски, настраиваемые администратором. Например, в нормальном режиме эти устройства работают как многопротокольные маршрутизаторы, а при получении пакета с неизвестным сетевым протоколом обрабатывают его как мост.
Следует учитывать, что маршрутизаторы для объединения частей локальной сети в отличие от маршрутизаторов, используемых для объединения сетей и подключения к опорным сетям, должны быть производительнее. Это связано с более высокой пропускной способностью каналов связи в пределах локальной сети.
В высокоскоростной локальной сети, например, в сети Fast Ethernet, маршрутизаторы могут использоваться также для защиты медленных устройств от перегрузок. В этом случае все медленные устройства (принтеры, старые рабочие станции и серверы, а также маршрутизаторы глобальных сетей) изолируются от высокоскоростной части локальной сети маршрутизатором и специальным повторителем (рис. 1.40). Порт повторителя, к которому подключен маршрутизатор, должен быть ориентирован на скорость информационного обмена в локальной сети, например, 100 Мбит/с, а порты, к которым подсоединены медленные устройства — на доступную для них скорость, например, 10 Мбит/с.
Маршрутизатор, изолирующий медленные устройства от высокоскоростной части сети, создает для них отдельную широковещательную область, являющуюся и отдельной областью множественного доступа. Соответственно медленные устройства не будут зря обрабатывать поток широковещательно и не адресованных им пакетов, что позволит этим устройствам функционировать в нормальном режиме.
Объединение локальных сетей и подключение к глобальным сетям
Локальные сети всегда целесообразно объединять с помощью маршрутизаторов, так как применение для этой цели мостов и коммутаторов не обеспечит должный уровень производительности, масштабируемости и безопасности объединенной сети. Причинами здесь будут интенсивные потоки широковещательных пакетов, приводящих к возникновению перегрузок, отсутствие оптимальной маршрутизации, невозможность обеспечить избыточные активные связи для резервных путей и расширения полосы пропускания, а также отсутствие усовершенствованной фильтрации пакетов, играющей важную роль в обеспечении безопасности сетевого взаимодействия.
Объединение локальных сетей выполняют путем их подключения через маршрутизаторы к опорным сетям (рис. 1.41, а), в качестве которых выступает корпоративная, региональная или глобальная сеть.
Опорные сети, в отличие от сегментов локальных сетей, реализуют не множественный, а избирательный доступ к устройствам, непосредственно подключенным к этим сетям. В качестве таких устройств используются маршрутизаторы. При обмене информацией между двумя компьютерами через опорную сеть маршрутизаторы устанавливают друг с другом двухточечные соединения. В результате пакеты сообщений в пределах опорной сети курсируют по строгим маршрутам, которые определяют маршрутизаторы. Кого же пакеты сообщений поступают в сегмент локальной сети получателя, то в рамках этого сегмента реализуется множественный доступ, при котором полученные пакеты доставляются всем узлам сегмента, но принимаются только теми узлами, которым они адресованы.
Многие мосты и коммутаторы также поддерживают каналы опорных сетей, но в этом случае широковещательные пакеты сообщений, которые не отфильтровываются этими устройствами, снижают пропускную способность опорной сети. При объединении локальных сетей следует учитывать правило 80/20, согласно которому интенсивность трафика внутри локальной сети по отношению к . интенсивности межсетевого трафика не должна быть ниже соотношения 80 к 20. В противном случае локальные сети с интенсивным межсетевым трафиком необходимо объединить каналами связи с высокой пропускной способностью напрямую через высокопроизводительный маршрутизатор, мост или коммутатор, оставив соединение через опорную сеть в качестве резервного (рис. 1.41, б). Такой способ объединения позволит снизить нагрузку на опорную сеть и повысить скорость информационного обмена между связанными напрямую локальными сетями. В качестве корпоративной опорной сети часто используется кольцо FDDI (Fiber Distributed Data Interface — распределенный интерфейс передачи данных по волоконно-оптическим каналам), называемое маршрутизируемым кольцом (рис. 1.42). Маршрутизаторы, используемые подобным образом, называют краевыми маршрутизаторами.
Региональные и глобальные опорные сети чаще всего имеют другую структуру (рис. 1.43), называемую маршрутизируемым облаком. Краевые маршрутизаторы объединяют локальные сети в маршрутизированную сеть, а внутренние маршрутизаторы обеспечивают связь уровня опорной сети. Для связи маршрутизаторов друг с другом могут использоваться любые каналы передачи данных, начиная от медленных аналоговых и цифровых телефонных линий и заканчивая скоростными каналами оптоволоконной и спутниковой связи.
При использовании различных каналов принцип маршрутизации не меняется, а изменяются лишь типы сетевых адаптеров. Типы сетевых адаптеров каждого маршрутизатора должны соответствовать типам подсоединяемых к этим адаптерам каналов передачи данных. Например, если маршрутизатор связывает локальную сеть Ethernet с цифровой телефонной линией ISDN опорной сети, то один порт этого маршрутизатора должен представлять собой сетевой адаптер Ethernet, а другой — адаптер ISDN. Поставщик услуг. Internet может иметь маршрутизаторы, поддерживающие сотни модемов для; передачи данных по аналоговым телефонным линиям.
Маршрутизаторы согласовывают подключенные к ним медленные и быстрые каналы связи друг с другом, например, аналоговые телефонные линии с каналами ISDN. При передаче информации из быстрых каналов в медленные маршрутизаторы выполняют буферизацию данных, что предотвращает возможную перегрузку медленных линий связи. Маршрутизаторы позволяют объединять локальные сети и сетевые сегменты, отличающиеся друг от друга по используемым протоколам физического и канального уровней модели OSI, например сети Ethernet, Token Ring, FDDI и ArcNet. Известно, что максимальный размер кадра в сети Token Ring составляет 4 Кбайта, а в FDDI — 64 Кбайта. В сети же Ethernet длина кадра не превышает 1500 байтов. В случае использования протокола IP 1 маршрутизатор может фрагментировать большие IP-пакеты, полученные из I локальной сети Token Ring или FDDI, на несколько пакетов сети Ethernet. Такой прием называется IP-фрагментацией. Многопротокольные маршрутизаторы обеспечивают объединение сегментов и сетей, функционирующих и по разным протоколам сетевого уровня, например, по протоколам IP и IPX. Они выполняют независимую обработку IP- и IPX-пакетов, передавая их затем соответствующим сегментам или локальным сетям. При подключении локальной сети к Internet, а также другим общественным опорным сетям появляются угрозы несанкционированного вторжения в локальную сеть из глобальной, а также угрозы несанкционированного доступа из локальной сети к ресурсам глобальной. Защита от реализации данных угроз основана на использовании программно-аппаратных комплексов, поддерживающих функции маршрутизации и называемых межсетевыми экранами или брандмауэрами. Межсетевой экран, как и маршрутизатор, устанавливается стыке между локальной и опорной сетью. Он поддерживает безопасность локальной сети на основе фильтрации двустороннего потока сообщений и аутентификации участников обмена информацией. Брандмауэр может заменять функции маршрутизатора, а может использоваться совместно с маршрутизатором, обеспечивая более надежную защиту (рис. 1.44).
Роль простейшего межсетевого экрана может выполнять и современный маршрутизатор, обеспечивающий фильтрацию пакетов сетевого и транспортного уровней модели OSI. Более совершенные межсетевые экраны подобно шлюзу работают на прикладном уровне модели OSI. Они обеспечивают фильтрацию информации не только на сетевом и транспортном, но и на более высоких уровнях эталонной модели.
1.3.6. Алгоритмы и протоколы маршрутизации
Общее описание
Основными функциями каждого маршрутизатора, реализуемыми в соответствии с протоколами маршрутизации, являются:
● определение наилучших маршрутов до возможных пунктов назначения и сохранение полученной информации в таблице маршрутизации;
● передача пакетов по оптимальным путям, выбираемым из таблицы маршрутизации на основе адресов получателей.
Современные протоколы маршрутизации предусматривают автоматическое формирование таблиц маршрутизации и поддержание их в актуальном состоянии на основе взаимодействия маршрутизаторов друг с другом. На каждом маршрутизаторе функционируют программы опроса и прослушивания, с помощью которых он обменивается информацией с другими маршрутизаторами. Полученная информация используется для построения и обновления таблицы маршрутизации.
Таблица маршрутизации, иногда называемая базой данных маршрутизации, включает набор оптимальных путей, используемых маршрутизатором при передаче пакетов в данный момент времени. Каждая строка этой таблицы содержит, по крайней мере, следующую информацию:
● сетевой адрес получателя;
● адрес следующего маршрутизатора, пересылка к которому соответствует оптимальному пути до пункта назначения;
● характеристику пути, например, пропускную способность канала связи и отметку времени, когда эта характеристика была определена;
● информацию о способе пересылки, например, номер выходного порта. В одной строке таблицы могут храниться данные о нескольких возможных следующих транзитных маршрутизаторах, задающих различные критерии оптимальности пути. Способ выбора транзитного маршрутизатора зависит от используемой схемы протокола маршрутизации.
Определение оптимальности путей при формировании и обновлении таблицы маршрутизации может производиться в соответствии с такими критериями или их комбинациями, как:
● длина маршрута, измеряемая количеством маршрутизаторов, через которые необходим
пройти до пункта назначения;
● пропускная способностью канала связи;
● прогнозируемое суммарное время пересылки;
● стоимость канала связи.
При наличии таблицы маршрутизации функцию передачи пакетов по оптимальным путям маршрутизатор реализует достаточно просто. Для отправки пакета через маршрутизатор узел локальной сети помещает в заголовок пакета на сетевом уровне модели OSI адрес действительного получателя, а на канальном уровне — МАС-адрес маршрутизатора. После получения очередного пакета маршрутизатор выполняет следующие действия:
● считывает из заголовка пакета, соответствующего сетевому уровню модели OSI, адрес назначения, т. е. сетевой адрес получателя;
● по таблице маршрутизации определяет адрес следующего транзитного маршрутизатора, пересылка к которому соответствует оптимальному пути до пункта назначения;
● заменяет в заголовке пакета, соответствующему канальному уровню модели OSI, свой МАС-адрес на МАС-адрес выбранного транзитного маршрутизатора;
● отсылает пакет выбранному транзитному маршрутизатору.
По мере того, как пакет продвигается через сеть, физический адрес (МАС- адрес) его получателя меняется, но логический адрес пункта назначения, соответствующий сетевому уровню модели OSI, остается без изменений.
Требования к алгоритмам маршрутизации
Алгоритмы, положенные в основу формирования и обновления таблицы маршрутизации, называют алгоритмами маршрутизации. В соответствии с данным алгоритмами и определяются наилучшие маршруты до возможных пунктов назначения. Алгоритмы передачи пакетов по оптимальным путям, выбираемым из таблицы маршрутизации, называют алгоритмами коммутации. Из приведенного выше описания становится понятно, что алгоритмы коммутации, задающие порядок транспортировки пакетов через сеть при известных оптимальных маршрутах, являются достаточно простыми. Сложными и наиболее важными являются алгоритмы маршрутизации, которые и составляют основу протоколов маршрутизации. К данным алгоритмам предъявляют следующие функциональные требования:
● по оптимальности определяемых маршрутов — способности определять наилучший маршрут в зависимости от заданных показателей и их весовых коэффициентов;
● по гибкости — способности быстро и точно адаптироваться к изменениям структуры и условий функционирования сети; 0 по сходимости — способности достигать быстрого соглашения между в семи маршрутизаторами сети по оптимальным маршрутам.
В протоколах маршрутизации показатель оптимальности маршрута часто называют метрикой (metric — мера). Оптимальным считается кратчайший путь. При этом метрика, т. е. мера длины пути задается определенной формулой, в качестве переменных которой могут выступать любые характеристики маршрута, например, общее число транзитных маршрутизаторов и суммарное время пересылки.
Требования к алгоритмам маршрутизации по гибкости и сходимости взаимосвязаны друг с другом. Когда в сети происходят какие-либо изменения, влияющие на выбор оптимальных маршрутов, например, перегрузка какого- либо участка сети или появление нового канала связи, узнавшие первыми об этих изменениях маршрутизаторы должны переопределить свои оптимальные маршруты, адаптируясь к возникшим изменениям. Кроме того, они должны разослать сообщения об изменениях другим маршрутизаторам. Данные сообщения пронизывают сети, стимулируя пересчет маршрутов. В конечном итоге все маршрутизаторы должны прийти к общему соглашению по оптимальным маршрутам.
Алгоритмы маршрутизации, не обладающие высокой гибкостью и быстрой сходимостью, приводят к образованию петель маршрутизации и даже выходам сети из строя.
Классификация алгоритмов и протоколов маршрутизации
Признаки классификации алгоритмов и протоколов маршрутизации в большинстве случаев совпадают друг с другом. Наиболее важными признаками классификации являются:
●степень динамичности, отражающая наличие или отсутствие гибкости и сходи мости;
● количество одновременно поддерживаемых маршрутов к одному пункта назначения;
● способ организации маршрутизаторов;
● область влияния;
● способ получения маршрутной информации.
По степени гибкости и сходимости различают статические и динамические алгоритмы маршрутизации.
Статические алгоритмы представляют собой свод правил по заполнению и использованию статических таблиц маршрутизации, которые не изменяются в автоматическом режиме. Данные таблицы формируются и обновляются администратором, который сам должен отслеживать все изменения в сети. Статические алгоритмы не обеспечивают гибкость и сходимость. Их целесообразно использовать только в простых и небольших сетях, где трави является предсказуемым.
Динамические алгоритмы маршрутизации обеспечивают автоматическое формирование и обновление таблиц маршрутизации в масштабе реального времени. В соответствии с данными алгоритмами между маршрутизаторами осуществляется обмен сообщениями. При отсутствии маршрутной информации маршрутизаторы запрашивают ее друг у друга. В случае возникновения изменений в сети маршрутизаторы уведомляют друг друга. Полученные друг от друга сообщения стимулируют пересчет оптимальных маршрутов и обновление таблиц маршрутизации в масштабе реального времени. Без динамических алгоритмов маршрутизации администрирование больших и сложных сетей существенно затрудняется. Все перечисляемые ниже протоколы маршрутизации основаны на динамических алгоритмах.
По количеству одновременно поддерживаемых маршрутов к одному пункту назначения алгоритмы маршрутизации могут быть одномаршрутными или многомаршрутными. Многомаршрутные алгоритмы позволяют осуществлять мультиплексную передачу трафика сразу по нескольким путям. Такая возможность ускоряет передачу и увеличивает пропускную способность каналов связи. Протоколами маршрутизации, основанными на многомаршрутных алгоритмах, являются протоколы OSPF (Open Shortest Path First) и IS- IS (lntermediate System to Intermediate System).
Пo способу организации маршрутизаторов различают алгоритмы и иерархической организации.
Алгоритмы одноуровневой организации предполагают равенство всех маршрутизаторов по отношению друг к другу. Примером протокола, использующего алгоритм одноуровневой организации, является протокол RIP (Routing Information Protocol).
При использовании алгоритмов иерархической организации маршрутизаторы разделяются по уровням. Как правило, вводятся два уровня маршрутизации — верхний и нижний. К нижнему уровню относятся маршрутизаторы отдельных областей сети, а к верхнему — маршрутизаторы межобластной вязи. Передачу пакетов в пределах одной сетевой области обеспечивают маршрутизаторы нижнего уровня, принадлежащие этой области. При передаче пакетов в другую область сети эти пакеты передаются от маршрутизаторов нижнего уровня к маршрутизаторам верхнего, которые доставляют шкеты в требуемую область. Для доставки непосредственному получателю и пакеты передаются с верхнего уровня маршрутизаторам нижнего уровне, принадлежащим этой области преимуществом иерархической организации маршрутизаторов отражение внутренней структуры больших корпоративных сет
Ей иерархической организации лежат в основе таких протоколов маршрутизации, как OSPF, IS-IS, NLSP (NetWare Link Services Protocol) о области влияния алгоритмы маршрутизации могут быть и междоменными.
Под доменом понимается автономная система, представляющая собой объединенных сетей, управляемую одним уполномоченным, например, одной организацией. Объединение доменов с свою очередь образует более масштабную сеть.
Алгоритмы маршрутизации, используемые в рамках автономных систем, называются внутридоменными алгоритмами. Эти алгоритмы могут отличаться друг от друга, и в качестве каждого из них может выступать алгоритм как одноуровневой, так и иерархической маршрутизации. Однако для возможности взаимодействия между автономными системами должен использоваться один междоменный алгоритм. Этот алгоритм обеспечивает связь между специально выделенными в каждом домене маршрутизаторами. При этом внутридоменные алгоритмы маршрутизации должны быть согласованы с междоменным алгоритмом.
Внутридоменные алгоритмы используются в большинстве современных протоколов маршрутизации, например, в протоколах RIP, OSPF, IS-IS.
Междометные алгоритмы маршрутизации лежат в основе таких протоколов, как EGP (Exterior Gateway Protocol) и BGP (Border Gateway Protocol).
По способу получения маршрутной информации различают алгоритмы векторов расстояния и алгоритмы состояния канала.
В соответствии с алгоритмами вектора расстояния каждый маршрутизатор периодически рассылает соседним маршрутизаторам копию своей таблицы маршрутизации. Соседние маршрутизаторы сверяют полученные данные со своими собственными таблицами маршрутизации и вносят необходимые изменения. Данные алгоритмы просты в реализации, не требовательны К компьютерным ресурсам, но плохо работают в больших сетях. Основной причиной этому является медленное распространение информации об изменении в сети, например, информации о недоступности той или иной линии или выходе того или иного маршрутизатора из строя. Кроме того, рассылаемые сообщения являются избыточными, что снижает пропускную способность каналов связи.
Алгоритмы вектора расстояния используется в таких протоколах, как RIP, IGRP (Interior Gateway Routing Protocol) и др.
В случае алгоритмов состояния канала маршрутизатор собирает информацию о своих непосредственных соседях, определяя текущие состояния соединяющих его с ними каналов связи, например, пропускные способности. Вместо рассылки соседям полного содержимого своих таблиц маршрутизации каждый маршрутизатор осуществляет широковещательную рассылки списка непосредственно подключенных к нему маршрутизаторов и локальных сетей, а также сведений о состоянии его каналов связи. Эта информация, за исключением периодического широковещания о своем присутствии в сети, рассылается маршрутизатором только в случае обнаружения каких- либо изменений в своих каналах связи, по запросам других маршрутизаторов и по истечении заданного периода времени.
Отличаясь более быстрой сходимостью, алгоритмы состояния канала меньше склонны к образованию петель маршрутизации и поэтому оптимальны для больших сетей. Кроме того, накладные расходы на пересылку данных об изменении топологии в этих алгоритмах меньше: рассылке подлежит не таблица маршрутизации в целом, а только информация об изменениях. алгоритмов состояния канала являются сложность реализации и высокие требования к производительности процессора и объему оперативной памяти.
Алгоритмы состояния канала лежат в основе таких протоколов маршрутизации,
как OSPF, IS-IS, NLSP, EIGRP (Enhanced Interior Gateway Routing Protocol).