
- •Оглавление
- •От авторов
- •1. Основы сетей передачи данных
- •1. Эволюция компьютерных сетей
- •Два корня компьютерных сетей
- •Первые компьютерные сети
- •Конвергенция сетей
- •2. Общие принципы построения сетей
- •Простейшая сеть из двух компьютеров
- •Сетевое программное обеспечение
- •Физическая передача данных по линиям связи
- •Проблемы связи нескольких компьютеров
- •Обобщенная задача коммутации
- •Выводы
- •Вопросы и задания
- •3. Коммутация каналов и пакетов
- •Коммутация каналов
- •Коммутация пакетов
- •Выводы
- •Вопросы и задания
- •4. Архитектура и стандартизация сетей
- •Декомпозиция задачи сетевого взаимодействия
- •Модель OSI
- •Стандартизация сетей
- •Информационные и транспортные услуги
- •Выводы
- •Вопросы и задания
- •5. Примеры сетей
- •Обобщенная структура телекоммуникационной сети
- •Корпоративные сети
- •Интернет
- •Выводы
- •Вопросы и задания
- •6. Сетевые характеристики
- •Типы характеристик
- •Производительность
- •Надежность
- •Характеристики сети поставщика услуг
- •Выводы
- •Вопросы и задания
- •7. Методы обеспечения качества обслуживания
- •Обзор методов обеспечения качества обслуживания
- •Анализ очередей
- •Техника управления очередями
- •Механизмы кондиционирования трафика
- •Обратная связь
- •Резервирование ресурсов
- •Инжиниринг трафика
- •Работа в недогруженном режиме
- •Выводы
- •Вопросы и задания
- •2. Технологии физического уровня
- •8. Линии связи
- •Классификация линий связи
- •Типы кабелей
- •Выводы
- •Вопросы и задания
- •9. Кодирование и мультиплексирование данных
- •Модуляция
- •Дискретизация аналоговых сигналов
- •Методы кодирования
- •Мультиплексирование и коммутация
- •Выводы
- •Вопросы и задания
- •10. Беспроводная передача данных
- •Беспроводная среда передачи
- •Беспроводные системы
- •Технология широкополосного сигнала
- •Выводы
- •Вопросы и задания
- •11. Первичные сети
- •Сети PDH
- •Сети SONET/SDH
- •Сети DWDM
- •Сети OTN
- •Выводы
- •Вопросы и задания
- •3. Локальные вычислительные сети
- •Общая характеристика протоколов локальных сетей на разделяемой среде
- •Ethernet со скоростью 10 Мбит/с на разделяемой среде
- •Технологии Token Ring и FDDI
- •Беспроводные локальные сети IEEE 802.11
- •Выводы
- •Вопросы и задания
- •13. Коммутируемые сети Ethernet
- •Мост как предшественник и функциональный аналог коммутатора
- •Коммутаторы
- •Скоростные версии Ethernet
- •Архитектура коммутаторов
- •Выводы
- •Вопросы и задания
- •14. Интеллектуальные функции коммутаторов
- •Алгоритм покрывающего дерева
- •Агрегирование линий связи в локальных сетях
- •Фильтрация трафика
- •Виртуальные локальные сети
- •Ограничения коммутаторов
- •Выводы
- •Вопросы и задания
- •4. Сети TCP/IP
- •15. Адресация в стеке протоколов TCP/IP
- •Стек протоколов TCP/IP
- •Формат IP-адреса
- •Система DNS
- •Протокол DHCP
- •Выводы
- •Вопросы и задания
- •16. Протокол межсетевого взаимодействия
- •Схема IP-маршрутизации
- •Маршрутизация с использованием масок
- •Фрагментация IP-пакетов
- •Выводы
- •Вопросы и задания
- •17. Базовые протоколы TCP/IP
- •Протоколы транспортного уровня TCP и UDP
- •Общие свойства и классификация протоколов маршрутизации
- •Протокол RIP
- •Протокол OSPF
- •Маршрутизация в неоднородных сетях
- •Протокол BGP
- •Протокол ICMP
- •Выводы
- •Вопросы и задания
- •Фильтрация
- •Стандарты QoS в IP-сетях
- •Трансляция сетевых адресов
- •Групповое вещание
- •IPv6 как развитие стека TCP/IP
- •Маршрутизаторы
- •Выводы
- •Вопросы и задания
- •5. Технологии глобальных сетей
- •19. Транспортные услуги и технологии глобальных сетей
- •Базовые понятия
- •Технология Frame Relay
- •Технология ATM
- •Виртуальные частные сети
- •IP в глобальных сетях
- •Выводы
- •Вопросы и задания
- •20. Технология MPLS
- •Базовые принципы и механизмы MPLS
- •Протокол LDP
- •Мониторинг состояния путей LSP
- •Инжиниринг трафика в MPLS
- •Отказоустойчивость путей MPLS
- •Выводы
- •Вопросы и задания
- •21. Ethernet операторского класса
- •Обзор версий Ethernet операторского класса
- •Технология EoMPLS
- •Ethernet поверх Ethernet
- •Выводы
- •Вопросы и задания
- •22. Удаленный доступ
- •Схемы удаленного доступа
- •Коммутируемый аналоговый доступ
- •Коммутируемый доступ через сеть ISDN
- •Технология ADSL
- •Беспроводной доступ
- •Выводы
- •Вопросы и задания
- •23. Сетевые службы
- •Электронная почта
- •Веб-служба
- •IP-телефония
- •Протокол передачи файлов
- •Выводы
- •Вопросы и задания
- •24. Сетевая безопасность
- •Типы и примеры атак
- •Шифрование
- •Антивирусная защита
- •Сетевые экраны
- •Прокси-серверы
- •Протоколы защищенного канала. IPsec
- •Сети VPN на основе шифрования
- •Выводы
- •Вопросы и задания
- •Ответы на вопросы
- •Алфавитный указатель
44 |
Глава 2. Общие принципы построения сетей |
Приложение В извлекает данные из буфера и интерпретирует их в соответствии со своим протоколом либо как сообщение, либо как данные. Если согласно протоколу приложение В должно передать ответ приложению Л, то выполняется симметричная процедура.
Таким образом, связав электрически и информационно два автономно работающих ком пьютера, мы получили простейшую компьютерную сеть.
Доступ к ПУ через сеть
Итак, мы имеем в своем распоряжении механизм, который позволяет приложениям, вы полняющимся на разных компьютерах, обмениваться данными. И хотя приложение А (см. рис. 2.2) по-прежнему не может управлять принтером, подключенным к компьюте ру В, оно может теперь воспользоваться средствами межкомпьютерцого обмена данными, чтобы передать приложению В «просьбу» выполнить для него требуемую операцию. При ложение А должно «объяснить» приложению В, какую операцию необходимо выполнить, с какими данными, на каком из имеющихся в его распоряжении устройств, в каком виде должен быть распечатан текст и т. п. В ходе печати могут возникнуть ситуации, о которых приложение В должно оповестить приложение Л, например об отсутствии бумаги в прин тере. То есть для решения поставленной задачи —доступа к принтеру по сети —должен быть разработан специальный протокол взаимодействия приложений А и В.
А теперь посмотрим, как работают вместе все элементы этой простейшей компьютерной сети при решении задачи совместного использования принтера.
1.В соответствии с принятым протоколом приложение А формирует сообщение-запрос
кприложению J5, помещает его в буфер ОП компьютера А и обращается к ОС, снабжая ее необходимой информацией.
2.ОС запускает драйвер сетевой ИК, сообщая ему адрес буфера ОП, где хранится сообщение.
3.Драйвер и сетевая интерфейсная карта компьютера А, взаимодействуя с драйвером
иинтерфейсной картой компьютера J5, передают сообщение байт за байтом в буфер ОП компьютера В.
4.Приложение В извлекает сообщение из буфера, интерпретирует его в соответствии с протоколом и выполняет необходимые действия. В число таких действий входит, в том числе, обращение к ОС с запросом на выполнение тех или иных операций с локальным принтером.
5.ОС запускает драйвер принтера, который в кооперации с интерфейсной картой и кон троллером принтера выполняет требуемую операцию печати.
Уже на этом начальном этапе, рассматривая связь компьютера с периферийным устрой ством, мы столкнулись с важнейшими «сетевыми» понятиями: интерфейсом и протоколом, драйвером и интерфейсной картой, а также с проблемами, характерными для компьютер ных сетей: согласованием интерфейсов, синхронизацией асинхронных процессов, обеспе чением достоверности передачи данных.
Сетевое программное обеспечение
Мы только что рассмотрели случай совместного использования принтера в простейшей сети, состоящей только из двух компьютеров. Однако даже на этом начальном этапе мы
Сетевое программное обеспечение |
45 |
уже можем сделать некоторые выводы относительно строения сетевого программного обе спечения: сетевых служб, сетевой операционной системы и сетевых приложений.
Сетевые службы и сервисы
Потребность в доступе к удаленному принтеру может возникать у пользователей самых разных приложений: текстового редактора, графического редактора, системы управления базой данных (СУБД). Очевидно, что дублирование в каждом из приложений общих для всех них функций по организации удаленной печати является избыточным.
Более эффективным представляется подход, при котором эти функции исключаются из приложений и оформляются в виде пары специализированных программных модулей — клиента и сервера печати (рис. 2.3), функции которых ранее выполнялись соответственно приложениями А и В. Теперь эта пара клиент—сервер может быть использована любым приложением, выполняемым на компьютере А.
Компьютер А |
Компьютер В |
Интерфейс |
Интерфейс |
компьютер—компьютер |
компьютер—принтер- |
Рис. 2.3. Совместное использование принтера в компьютерной сети с помощью сетевой службы печати
Обобщая такой подход применительно к другим типам разделяемых ресурсов, дадим следующие определения1:
Клиент — это модуль, предназначенный для формирования и передачи сообщений-запросов кресурсамудаленногокомпьютераот разныхприложенийс последующимприемом результатов изсети и передачейfix соответствующим приложениям.
1Термины «клиент» и «сервер» являются чрезвычайно многозначными. Данная пара терминов, уже используемая нами для обозначения функциональной роли взаимодействующих компьютеров и приложений, применима также к программным модулям.
46 Глава 2. Общие принципы построения сетей
Cepfeep—это модуль, который по^озннобжидаетяриадіа и$сети запросов отклиентов*йпри»
няв запрос, пытается е^о дбс&фЬ^г-Уфк |
лЬкаіігьноЙ ОСІ одйй сервер |
обслуживать запросы сразу не&колбкмх |
{Ьо<^%М} ШІйодновременно). |
Пара клиент-сервер, |
Jtygciyil Кцои}ф|Иш^,?мггу ресурса компьютеру*щщ3 |
сеть, образует остевую службу, |
Т У ,, |
Каждая служба связана с определенным типом сетевых ресурсов. Так, на рис. 2.3 модули клиента и сервера, реализующие удаленный доступ к принтеру, образуют сетевую службу
печати.
Файловая служба позволяет получать доступ к файлам, хранящимся на диске других компьютеров. Серверный компонент файловой службы называют файл-сервером.
Для поиска и просмотра информации в Интернете используется веб-служба, состоящая из веб-сервера и клиентской программы, называемой веб-браузером (web browser). Раз деляемым ресурсом в данном случае является веб-сайт —определенным образом органи зованный набор файлов, содержащих связанную в смысловом отношении информацию и хранящихся на внешнем накопителе веб-сервера.
Компьютер А (клиент) |
Компьютер В (сервер) |
Внешний дисковый накопитель
Рис. 2.4. Веб-служба
На схеме веб-службы, показанной на рис. 2.4, два компьютера связаны не непосредственно, как это было во всех предыдущих примерах, а через множество промежуточных компью теров и других сетевых устройств, входящих в состав Интернета. Для того чтобы отразить
Сетевое программное обеспечение |
47 |
этот факт графически, мы поместили между двумя компьютерами так называемое комму никационное облако, которое позволяет нам абстрагироваться от всех деталей среды пере дачи сообщений. Обмен сообщениями между клиентской и серверной частями веб-службы выполняется по стандартному протоколу HTTP и никак не зависит от того, передаются ли эти сообщения «из рук в руки» (от интерфейса одного компьютера к интерфейсу другого) или через большое число посредников —транзитных коммуникационных устройств. Вме сте с тем, усложнение среды передачи сообщений приводит к возникновению новых допол нительных задач, на решение Которых не был рассчитан упоминавшийся ранее простейший драйвер сетевой интерфейсной карты. Вместо него на взаимодействующих компьютерах должны быть установлены более развитые программные транспортные средства.
Сетевая операционная система
Операционную систему компьютера часто определяют как взаимосвязанный набор систем ных программ, который обеспечивает эффективное управление ресурсами компьютера (памятью, процессором, внешними устройствами, файлами и др.), а также предоставляет пользователю удобный интерфейс для работы с аппаратурой компьютера и разработки приложений.
Говоря о сетевой ОС, мы, очевидно, должны расширить границы управляемых ресурсов за пределы одного компьютера.
Сетевой операционной системой называют операционную систему компьютера, которая •'опомимоуправленияяокальнымиресурсамипредоставляетпользователями приложениям возиудобногодоступа^информационными аппаратнымресурсамдругих
г. |
' V |
Сегодня практически все операционные системы являются сетевыми.
Из примеров, рассмотренных в предыдущих разделах (см. рис 2.3 и 2.4), мы видим, что удаленный доступ к сетевым ресурсам обеспечивается:
□сетевыми службами;
□средствами транспортировки сообщений по сети (в простейшем случае —сетевыми интерфейсными картами и их драйверами).
Следовательно, именно эти функциональные модули должны быть добавлены к ОС, чтобы она могла называться сетевой (рис. 2.5).
Среди сетевых служб можно выделить такие, которые ориентированы не на простого пользователя, как, например, файловая служба или служба печати, а на администратора. Такие службы направлены на организацию работы сети. Например, централизованная справочная служба, или служба каталогов, предназначена для ведения базы данных о пользователях сети, обо всех ее программных и аппаратных компонентах1. В качестве других примеров можно назвать службу мониторинга сети, позволяющую захватывать и анализировать сетевой трафик, службу безопасности, в функции которой может вхо дить, в частности, выполнение процедуры логического входа с проверкой пароля, службу
резервного копирования и архивирования.
1Например, служба каталогов Active Directory компании Microsoft.
48 |
Глава 2. Общие принципы построения сетей |
Сетевая операционная система
Средства управления локальными ресурсами
Сетевыесредства
Сетевые службы
Транспортные средства
Рис. 2.5. Функциональные компоненты сетевой ОС
От того, насколько богатый набор сетевых служб и услуг предлагает операционная систе ма конечным пользователям, приложениям и администраторам сети, зависит ее позиция в общем ряду сетевых ОС.
Помимо сетевых служб сетевая ОС должна включать программные коммуникационные (транспортные) средства, обеспечивающие совместно с аппаратными коммуникацион ными средствами передачу сообщений, которыми обмениваются клиентские и серверные части сетевых служб. Задачу коммуникации между компьютерами сети решают драйверы и протокольные модули. Они выполняют такие функции, как формирование сообще ний, разбиение сообщения на части (пакеты, кадры), преобразование имен компьютеров
вчисловые адреса, дублирование сообщений в случае их потери, определение маршрута
всложной сети и т. д.
И сетевые службы, и транспортные средства могут являться неотъемлемыми (встроен ными) компонентами ОС или существовать в виде отдельных программных продуктов. Например, сетевая файловая служба обычно встраивается в ОС, а вот веб-браузер чаще всего приобретаемся отдельно. Типичная сетевая ОС имеет в своем составе широкий набор драйверов и протокольных модулей, однако у пользователя, как правило, есть возможность дополнить этот стандартный набор необходимыми ему программами. Решение о способе реализации клиентов и серверов сетевой службы, а также драйверов и протокольных моду лей принимается разработчиками с учетом самых разных соображений: технических, ком
Сетевое программное обеспечение |
49 |
мерческих и даже юридических. Так, например, именно на основании антимонопольного закона США компании Microsoft было запрещено включать ее браузер Internet Explorer в состав ОС этой компании.
Сетевая служба может быть представлена в ОС либо обеими (клиентской и серверной) частями, либо только одной из них.
В первом случае операционная система, называемая одноранговой, не только позволяет обращаться к ресурсам других компьютеров, но и предоставляет собственные ресурсы в распоряжение пользователей других компьютеров. Например, если на всех компьютерах сети установлены и клиенты, и серверы файловой службы, то все пользователи сети могут совместно применять файлы друг друга. Компьютеры, совмещающие функции клиента и сервера, называют одноранговыми узлами.
Операционная система, которая преимущественно содержит клиентские части сетевых служб, называется клиентской. Клиентские ОС устанавливаются на компьютеры, обра щающиеся с запросами к ресурсам других компьютеров сети. За такими компьютерами, также называемыми клиентскими, работают рядовые пользователи. Обычно клиентские компьютеры относятся к классу относительно простых устройств.
Кдругому типу операционных систем относится серверная ОС —она ориентирована на обработку запросов из сети к ресурсам своего компьютера и включает в себя в основном серверные части сетевых служб. Компьютер с установленной на нем серверной ОС, за нимающийся исключительно обслуживанием запросов других компьютеров, называют выделенным сервером сети. За выделенным сервером, как правило, обычные пользователи не работают.
ПРИМЕЧАНИЕ---------------------------------------------------------------------------------------------------------------
Подробнее о сетевых операционных системах и встроенных в них сетевых службах вы можете прочи татьвспециальной литературе, а также вучебнике авторов «Сетевые операционные системы». Наибо лее популярные сетевые службы Интернета, такие как электронная почта, веб-служба, ІР-телефония и др., рассматриваются в главе 23.
Сетевые приложения
Компьютер, подключенный к сети, может выполнять следующие типы приложений:
□Локальное приложение целиком выполняется на данном компьютере и использует только локальные ресурсы (рис. 2.6, а). Для такого приложения не требуется никаких сетевых средств, оно может быть выполнено на автономно работающем компьютере.
□Централизованное сетевое приложение целиком выполняется на данном компью тере, но обращается в процессе своего выполнения к ресурсам других компьютеров сети. В примере на рисунке 2.6, б приложение, которое выполняется на клиентском компьютере, обрабатывает данные из файла, хранящегося на файл-сервере, а затем распечатывает результаты на принтере, подключенном к серверу печати. Очевидно, что работа такого типа приложений невозможна без участия сетевых служб и средств транспортировки сообщений.
□Распределенное (сетевое) приложение состоит из нескольких взаимодействующих частей, каждая из которых выполняет какую-то определенную законченную работу
50 |
Глава 2. Общие принципы построения сетей |
Локальное Обращение приложение к локальным
ресурсам
Централизованное сетевоепрйлоШн#
т
|
|
Часть 1 |
|
Поддержка |
|
|
|
распределенного специализированного |
|||
|
|
приложения |
интерфейса |
||
|
|
т |
|
|
|
Взаимодействие с СУБД |
л |
|
А |
статистическихМатематическая обработка |
|
|
|
|
данных |
||
и генерация отчетов |
Г |
/ |
N |
|
|
|
|
Честь2 - |
|||
|
\^Компьютерная% ) |
||||
в Я Г |
[ |
сеть |
^ |
|
ржжрадвпвндого |
|
|
|
|
гунпоа^ииН'. |
|
|
|
|
|
|
Рис. 2.6. Типы приложений, выполняющихся в сети
Сетевое программное обеспечение |
51 |
по решению прикладной задачи, причем каждая часть может выполняться и, как пра вило, выполняется на отдельном компьютере сети (рис. 2.6, в). Части распределенного приложения взаимодействуют друг с другом, используя сетевые службы и транспорт ные средства ОС. Распределенное приложение в общем случае имеет доступ ко всем ресурсам компьютерной сети.
Очевидным преимуществом распределенных приложений является возможность рас параллеливания вычислений, а также специализация компьютеров. Так, в приложении, предназначенном, скажем, для анализа климатических изменений, можно выделить три достаточно самостоятельные части (см. рис. 2.6, в), допускающие распараллеливание. Первая часть приложения, выполняющаяся на сравнительно маломощном персональном компьютере, могла бы поддерживать специализированный графический пользовательский интерфейс, вторая —заниматься статистической обработкой данных на высокопроиз водительном мэйнфрейме, а третья —генерировать отчеты на сервере с установленной стандартной СУБД. В общем случае каждая из частей распределенного приложения может быть представлена несколькими копиями, работающими на разных компьютерах. Скажем, в данном примере часть 1, ответственную за поддержку специализированного пользовательского интерфейса, можно было бы запустить на нескольких персональных компьютерах, что позволило бы работать с этим приложением нескольким пользователям одновременно.
Однако чтобы добиться всех тех преимуществ, которые сулят распределенные приложения, разработчикам этих приложений приходится решать множество проблем, например: на сколько частей следует разбить приложение, какие функции возложить на каждую часть, как организовать взаимодействие этих частей, чтобы в случае сбоев и отказов оставшиеся части корректно завершали работу и т. д., и т. п.
Заметим, что все сетевые службы, включая файловую службу, службу печати, службу элек тронной почты, службу удаленного доступа, интернет-телефонию и т. д., по определению относятся к классу распределенных приложений. Действительно, любая сетевая служба включает в себя клиентскую и серверную части, которые могут и обычно выполняются на разных компьютерах.
На рис. 2.7, иллюстрирующем распределенный характер веб-службы, мы видим различ ные виды клиентских устройств —персональные компьютеры, ноутбуки и мобильные телефоны —с установленными на них веб-браузерами, которые взаимодействуют по сети с веб-сервером. Таким образом, с одним и тем же веб-сайтом может одновременно работать множество —сотни и тысячи —сетевых пользователей.
Многочисленные примеры распределенных приложений можно встретить и в такой об ласти, как обработка данных научных экспериментов. Это не удивительно, так как мно гие эксперименты порождают такие большие объемы данных, генерируемых в реальном масштабе времени, которые просто невозможно обработать на одном, даже очень мощном, суперкомпьютере. Кроме того, алгоритмы обработки экспериментальных данных часто легко распараллеливаются, что также важно для успешного применения взаимосвязанных компьютеров с целью решения какой-либо общей задачи. Одним из последних и очень известных примеров распределенного научного приложения является программное обеспечение обработки данных большого адронного коллайдера (Large Hadron Collider, LHC), запущенного 10 сентября 2008 года в CERN —это приложение работает более чём на 30 тысячах компьютеров, объединенных в сеть.