ДЛЯ ВУЗОВ |
В. Олифер Н. Олифер
Компьютерные
Принципы, технологии, протоколы
издание
Рекомендовано Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению «Информатика и вычислительная техника» и по специальностям «Вычислительные машины, комплексы, системы и сети», «Автоматизированные машины, комплексы, системы и сети», «Программное обеспечение вычислительной техники и автоматизированных систем».
Москва • Санкт-Петербург • Нижний Новгород • Воронеж Ростов-на-Дону • Екатеринбург • Самара ■ Новосибирск Киев • Харьков Минск 2010 |
Рецензенты:
Кафедра «Вычислительная техника» факультета «Вычислительные машины и системы» Московского государственного института радиотехники, электроники и автоматики (Технического университета);
Ю. А. Григорьев, д. т. н., профессор кафедры «Системы обработки информации и управления» Московского государственного технического университета им. Н. Э. Баумана;
Б. Ф. Прижуков, к. т. н., заместитель начальника ИВЦ ОАО «Московский междугородный
и международный телефон»
Олифер В. Г., Олифер Н. А.
0-54 Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 4-е иэд. — СПб.: Питер, 2010. — 944 с.: ил.
ISBN 978-5-49807-389-7
Новое издание одного из лучших российских учебников по сетевым технологиям можно считать юбилейным. Прошло ровно 10 лет с момента первой публикации книги «Компьютерные сети. Принципы, технологии, протоколы». За это время книга приобрела широкую популярность в России, была издана на английском, испанском, португальском и китайском языках, и с каждым новым изданием она существенно обновлялась. Не стало исключением и это, четвертое издание, в котором появилось много новых разделов, посвященных самым актуальным направлениям сетевых технологий.
Издание предназначено для студентов, аспирантов и технических специалистов, которые хотели бы получить базовые знания о принципах построения компьютерных сетей, понять особенности традиционных и перспективных технологий локальных и глобальных сетей, изучить способы создания крупных составных сетей и управления такими сетями.
Рекомендовано Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению «Информатика и вычислительная техника» и по специальностям «Вычислительные машины, комплексы, системы и сети», «Автоматизированные машины, комплексы, системы и сети», «Программное обеспечение вычислительной техники и автоматизированных систем».
ББК 32.973.202Я7 УДК 004.7(075)
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги.
ISBN 978-5-49807-389-7
ББК 32.973.202я7 УДК 004.7(075) 0-54
О ООО «Лидер», 2010
ЧАСТЬ II. ТЕХНОЛОГИИ ФИЗИЧЕСКОГО УРОВНЯ
228
229
229
230
232
233 233 235 239 242 244
246
247 247
249
250
252
253
254
256
257 257 257 259 261 263
263
264 266 266 267
267
268
Глава 8. Линии связи..................................
Классификация линий связи.................................
Первичные сети, линии и каналы связи....................
Физическая среда передачи данных.......................
Аппаратура передачи данных.............................
Характеристики линий связи................................
Спектральный анализ сигналов на линиях связи............
Затухание и волновое сопротивление.....................
Помехоустойчивость и достоверность.....................
Полоса пропускания и пропускная способность.............
Биты и боды...................................ч........
Соотношение полосы пропускания и пропускной способности
Типы кабелей..............................................
Экранированная и неэкранированная витая пара...........
Коаксиальный кабель....................................
Волоконно-оптический кабель............................
Структурированная кабельная система зданий.............
Выводы...................................................
Вопросы и задания.........................................
Глава 9. Кодирование и мультиплексирование данных
Модуляция..........................................
Модуляция при передаче аналоговых сигналов.......
Модуляция при передаче дискретных сигналов.......
Комбинированные методы модуляции...............
Дискретизация аналоговых сигналов...................
Методы кодирования1'.................................
Выбор способа кодирования.......................
Потенциальный код NRZ...........................
Биполярное кодирование AMI......................
Потенциальный код NRZI...........................
Биполярный импульсный код.......................
Манчестерский код...............................
Потенциальный код 2B1Q..........................
Алфавитный указатель......................................................
Посвящаем нашей дочери Анне
Эта книга является результатом многолетнего опыта преподавания авторами курсов сетевой тематики в аудиториях государственных вузов, коммерческих учебных центров, а также учебных центров предприятий и корпораций.
Основу книги составили материалы курсов «Проблемы построения корпоративных сетей», «Основы сетевых технологий», «Организация удаленного доступа», «Сети TCP/IP», «Стратегическое планирование сетей масштаба предприятия» и ряда других. Эти материалы прошли успешную проверку в бескомпромиссной и сложной аудитории, состоящей из слушателей с существенно разным уровнем подготовки и кругом профессиональных интересов. Среди них были студенты и аспиранты вузов, сетевые администраторы и интеграторы, начальники отделов автоматизации и преподаватели. Учитывая специфику аудитории, курсы лекций строились так, чтобы начинающий получил основу для дальнейшего изучения, а специалист систематизировал и актуализировал свои знания. В соответствии с такими же принципами написана и эта книга — она является фундаментальным курсом по компьютерным сетям, который сочетает широту охвата основных областей, проблем и технологий этой быстро развивающейся области знаний с основательным рассмотрением деталей каждой технологии и особенностей оборудования.
Книга предназначена для студентов, аспирантов и технических специалистов, которые хотят получить базовые знания о принципах построения компьютерных сетей, понять особенности традиционных и перспективных технологий локальных и глобальных сетей, изучить способы создания крупных составных сетей и управления такими сетями.
Книга будет полезна начинающим специалистам в области сетевых технологий, которые имеют только общие представления о работе сетей из опыта общения с персональными компьютерами и Интернетом, но хотели бы получить фундаментальные знания, позволяющие продолжить изучение сетей самостоятельно.
Сложившимся сетевым специалистам книга может помочь в знакомстве с теми технологиями, с которыми им не приходилось сталкиваться в практической работе, систематизировать
имеющиеся знания, стать справочником, позволяющим найти описание конкретного протокола, формата кадра и т. п. Кроме того, книга дает необходимую теоретическую основу для подготовки к сертификационным экзаменам таких компаний, как Cisco CCNA, CCNP, CCDP и CCIP.
Студенты высших учебных заведений, обучающиеся по направлению «220000. Информатика и вычислительная техника» и по специальностям «Вычислительные машины, комплексы, системы и сети», «Автоматизированные машины, комплексы, системы и сети», «Программное обеспечение вычислительной техники и автоматизированных систем», могут использовать книгу в качестве рекомендованного Министерством образования Российской Федерации учебного пособия.
Прошло ровно 10 лет со времени публикации первого издания этой книги. И с каждым новым изданием она существенно обновлялась. Не стало исключением и это, четвертое, издание. Одни разделы претерпели значительные изменения, а другие, которые потеряли свою актуальность и стали интересны лишь узкому кругу специалистов, были вовсе исключены из книги и перенесены на веб-сайт поддержки этой книги.
И, конечно, в книге появилось много нового. Так, в книге появилось три новые главы.
□ Глава 21, «Ethernet операторского класса». Технология, давшая название этой главе, известная также как Carrier Ethernet, появилась совсем недавно, но ее популярность быстро растет. Выход Ethernet за пределы локальных сетей является знаковым событием, обещающим новые возможности как для пользователей, так и для провайдеров. В этой главе рассматриваются две основные ветви данной технологии: на базе MPLS и на базе усовершенствованной версии Ethernet.
□ Глава 23, «Сетевые службы». В ответ на пожелания многих наших читателей мы расширили освещение сетевых средств прикладного уровня, добавив описания таких служб, как электронная почта, WWW и 1Р-телефония.
□ Глава 24, «Сетевая безопасность». Появление этой главы отражает всевозрастающую обеспокоенность интернет-сообщества проблемами информационной защиты. В этой главе приведены описания различных угроз безопасности компьютерных сетей, связанных с внедрением вредоносных программ (вирусов, червей, троянских и шпионских программ), DoS-атаками, ответвлением трафика. Также рассматриваются методы и средства предупреждения и обнаружения атак: шифрование, аутентификация, авторизация, антивирусная защита, сетевые экраны, прокси-серверы, протоколы защищенного канала и виртуальные частные сети на основе шифрования.
Помимо отдельных глав в книге появилось несколько новых разделов.
В главу 7 добавлен раздел «Работа в недогруженном режиме». В нем описывается широко распространенная практика обеспечения временных характеристик передачи пакетов за счет поддержания избыточной пропускной способности.
В главу 11, посвященную первичным сетям, добавлено описание технологии оптических транспортных сетей (OTN), которая обеспечивает мультиплексирование и коммутацию высокоскоростных потоков данных в волновых каналах DWDM. В эту главу включено также описание новых функций технологии SDH, направленных на более эффективную передачу трафика компьютерных сетей, таких как виртуальная конкатенация (VCAT), схема динамического изменения пропускной способности линии (LCAS) и общая процедура инкапсуляции данных (GFP).
Важным дополнением главы 18 стал раздел «Групповое вещание», освещающий очень перспективное направление в развитии технологии TCP/IP. Групповое вещание лежит в основе бурно развивающихся широковещательных сервисов Интернета, таких как IP-телевидение, аудиовещание, видеоконференции.
Переработанный и дополненный материал о технологии MPLS, которая утвердила себя в качестве надежного фундамента для построения разнообразных транспортных сервисов, выделен в отдельную главу (главу 20).
И наконец, были исправлены мелкие ошибки и опечатки в тексте и рисунках, замеченные читателями и самими авторами.
Книга состоит из 24 глав, объединенных в 5 частей.
В первой части, «Основы сетей передачи данных», состоящей из 7 глав, описаны основные принципы и архитектурные решения, которые лежат в основе всех современных сетевых технологий, рассматриваемых в последующих частях книги. В главе 1, рассказывающей об эволюции компьютерных сетей, особый акцент делается на конвергенции разных видов телекоммуникационных сетей. В главе 2 даются фундаментальные понятия коммутации, мультиплексирования, маршрутизации, адресации и архитектуры сетей. В следующей, третьей, главе обсуждаются два основных подхода к коммутации — коммутация каналов и пакетов. Глава 4 фокусируется на иерархической организации сетей и семиуровневой модели OSI. В главе 5 приводится классификация компьютерных сетей, в ней читатель найдет также описание основных типов сетей: сетей операторов связи, корпоративных сетей и глобальной сети Интернет. Завершают первую часть книги главы 7 и 8, относящиеся к анализу работы сети.
Вторая часть, «Технологии физического уровня», состоит из четырех глав, из которых первые две носят вспомогательный характер. В них описываются различные типы линий связи, детально излагаются современные методы передачи дискретной информации в сетях. Наличие этого материала в учебнике дает возможность читателю, не тратя время на просмотр большого количества литературы, получить необходимый минимум знаний в таких областях, как теория информации, спектральный анализ, физическое и логическое кодирование данных, обнаружений и коррекция ошибок. Глава 10 посвящена беспроводной передаче данных, которая приобретает все большую популярность. Высокий уровень помех и сложные пути распространения волн требуют применения в беспроводных каналах особых способов кодирования и передачи сигналов. В главе 11 изучаются технологии PDH, SDH/SONE'J DWDM и OTN, создающие инфраструктуру физических каналов для глобальных телекоммуникационных сетей. На основе каналов, образованных первичными сетями, работают наложенные компьютерные и телефонные сети.
Третья часть, «Локальные вычислительные сети», включает три главы. В главе 12 рассматриваются технологии локальных сетей на разделяемой среде: основное внимание уделено классическим вариантам Ethernet со скоростью 10 Мбит/с на коаксиале и витой паре; также здесь кратко рассмотрены принципы работы основных соперников Ethernet в 80-е и 90-е годы — технологий Token Ring и FDDL Приводится описание двух наиболее популярных беспроводных технологий локальных сетей — IEEE 802Л1 (LAN) и Bluetooth (PAN). Глава 13 посвящена коммутируемым локальным сетям. В ней рассматриваются основные принципы работы таких сетей: алгоритм функционирования коммутатора локальной сети, дуплексные версии протоколов локальных сетей, особенности реализации коммутаторов локальных сетей. В главе 14 изучаются расширенные возможности коммутируемых локальных сетей этого типа: резервные связи на основе алгоритма покрывающего дерева, агрегирование каналов, а также техника виртуальных локальных сетей, позволяющая быстро и эффективно выполнять логическую структуризацию сети.
Следуя логике, диктуемой моделью OSI, вслед за частями, в которых были рассмотрены технологии физического и канального уровней, четвертую часть, «Сети TCP/IP», мы посвящаем средствам сетевого уровня, то есть средствам, которые обеспечивают возможность объединения множества сетей в единую сеть. Учитывая, что бесспорным лидером среди протоколов сетевого уровня является протокол IP, ему в книге уделяется основное внимание. В главе 15 описываются различные аспекты IP-адресации: способы отображения локальных, сетевых и символьных адресов, использование масок и современных методов агрегирования IP-адресов, а также способы автоматического конфигурирования 1Р-узлов. В главе 16 детально рассмотрена работа протокола IP по продвижению и фрагментации пакетов, изучается общий формат таблицы маршрутизации и примеры ее частных реализаций в программных и аппаратных маршрутизаторах различных типов. При обсуждении особенностей новой версии IPv6 подробно обсуждается схема модернизации адресации, а также изменение формата заголовка IP Глава 17 начинается с изучения протоколов TCP и UDP, исполняющих посредническую роль между приложениями и транспортной инфраструктурой сети. Далее подробно описываются протоколы маршрутизации RIP, OSPF и BGP, анализируются области применимости этих протоколов и возможности их комбинирования. Завершает главу рассмотрение протокола ICMP, являющегося средством оповещения отправителя о причинах недоставки его пакетов адресату. В главе 18 содержится описание тех функций маршрутизаторов, которые хотя и фигурируют в названии главы как «дополнительные», но без которых трудно представить существование современных компьютерных сетей. К таким функциям относятся трансляция сетевых адресов, фильтрация трафика, поддержка QoS, IPv6 и группового вещания. В завершении этой главы приводится классификация маршрутизаторов на основе их внутренней организации и областей использования. Всестороннее изучение в этой части протоколов стека TCP/IP придает ей самостоятельное значение введения в 1Р-сети.
Пятая часть, «Технологии глобальных сетей», состоит из шести глав. В главе 19 анализируются три основных типа транспортных услуг, предоставляемых операторами связи: доступ в Интернет, виртуальные частные сети и услуги выделенных каналов. Кроме того, в этой главе рассматривается многоуровневая структура сети оператора связи, включающая уровни первичной сети, канального уровня и уровня IP. Также дается обзор технологий Frame Relay и ATM. Глава 20 посвящена основным принципам и базовым элементам технологии MPLS, тагёим как протокол LDP, многоуровневая организация соединений, механизмы защиты соединений и тестирования их состояния. В главе 21 описаны различные варианты технологий, объединенных под общим названием Ethernet операторского класса (Carrier Ethernet). В главе 22 рассматриваются схемы и технологии удаленного доступа. Наиболее эффективными являются технологии, в которых используется существующая кабельная инфраструктура (например, линии ADSL, работающие на абонентских окончаниях телефонной сети) или кабельные модемы, опирающиеся на системы кабельного телевидения. Альтернативным решением является беспроводной доступ, как мобильный, так и фиксированный. Прикладные службы глобальных сетей рассматриваются в главе 23. Именно информационные службы, такие как электронная почта и WWW, сделали в свое время Интернет столь популярным. И сегодня популярность Интернета растет благодаря появлению новых сервисов, среди которых в первую очередь нужно отметить IP-телефонию и видеоконференции. Часть, а вместе с ней и книга, завершается главой 24, посвященной сетевой безопасности. Уязвимость Интернета является оборотной стороной его открытости, так как в Интернете каждый может не только общаться с каждым, но и атаковать каждого. Вирусы, черви, распределенные атаки и, наконец, спам — все это, к сожалению, ежедневно мешает «жителям» Интернета нормально жить и работать. В главе 24 анализируются основные типы угроз, присущих глобальным сетям, и изучаются базовые механизмы и технологии защиты от этих угроз.
Авторы стремились сделать работу читателя с книгой максимально эффективной. Подробный индексный указатель позволяет быстро найти интересующий материал по одному из многочисленных терминов, используемых в сетевой индустрии. Каждая глава завершается выводами, которые призваны сконцентрировать внимание читателя на основных идеях, темах и терминах главы, помогая ему не упустить из виду главное за обилием, хотя и полезных, но частных фактов и деталей. В конце каждой главы помещены вопросы и упражнения для проверки степени усвоения основных концепций, а в отдельных случаях и для углубления понимания некоторых идей.
Дополнительную информацию по этой и другим книгам авторов читатели могут найти
на сайте www.olifer.co.uk. В данный момент на сайте размещены следующие материалы,
относящиеся к этому изданию книги:
□ Дополнительные разделы, ссылки на которые помещены в тексте книги.
□ Все иллюстрации из книги.
□ Дополнительные вопросы и задания, а также ответы на них.
□ Презентации в форматах Power Point и HTML последовательно по всем главам книги.
□ Путеводитель по книге (road map) призван помочь преподавателю при создании учебных курсов на базе этой книги, таких, например, как «Беспроводные системы», «Введение в 1Р», «Качество обслуживания», «Удаленный доступ» и т. п. В этом путеводителе авторы перечисляют последовательность глав (маршрут), в которых содержится соответствующий материал, и по мере необходимости дают методические советы.
□ Дополнительные примеры (case studies) могут быть использованы как темы для курсовых проектов.
□ Информационные ресурсы Интернета связаны с темами книги.
□ И наконец, мнения, замечания и вопросы читателей, замеченные опечатки и ошибки.
Мы с благодарностью примем ваши отзывы по адресу victor@olifer.co.uk и natalia@olifer.co.uk.
Мы благодарим наших читателей за их многочисленные пожелания, вопросы и замечания.
Мы признательны также всем сотрудникам издательства «Питер», которые принимали участие в создании этой книги. Особая благодарность президенту издательства «Питер» Вадиму Усманову, руководителю проектной группы «Компьютерная литература» Андрею Сандрыкину, ведущему специалисту этой группы Андрею Юрченко и нашему неизменному литературному редактору Алексею Жданову.
Виктор Олифер, к.тм., CCIP Наталья Олифер, к.т.н., доцент
Подробную информацию о наших книгах вы найдете на веб-сайте издательства www. piter. com. Там же вы можете оставить ваши отзывы и пожелания.
Основы сетей передачи данных
Процесс познания всегда развивается по спирали. Мы не можем сразу понять и осознать сложное явление, мы должны рассматривать его с разных точек зрения, в целом и по частям, изолированно и во взаимодействии с другими явлениями, накапливая знания постепенно, время от времени возвращаясь к уже, казалось бы, понятому и с каждым новым витком все больше проникая в суть явления. Хорошим подходом является первоначальное изучение общих принципов некоторой области знаний с последующим детальным рассмотрением реализации этих принципов в конкретных методах, технологиях или конструкциях.
Первая часть книги является таким «первым витком» изучения компьютерных сетей. В этой части, состоящей из семи глав, описаны основные принципы и архитектурные решения, которые лежат в основе всех современных сетевых технологий, рассматриваемых в последующих частях книги. Следуя процессу конвергенции сетей, мы рассматривали принципы коммутации, мультиплексирования, маршрутизации, адресации и архитектуры сетей с наиболее общих позиций, сравнивая принципы организации компьютерных сетей с аналогичными принципами других телекоммуникационных сетей — телефонных, первичных, радио и телевизионных.
Завершает часть глава, посвященная проблемам качества обслуживания в пакетных сетях. Новая роль компьютерных сетей как основы для создания следующего поколения публичных сетей, предоставляющих все виды информационных услуг и переносящих данные, а также аудио- и видеотрафик, привела к проникновению методов обеспечения качества обслуживания практически во все коммуникационные технологии. Таким образом, концепции качества обслуживания, которые достаточно долго рассматривались как нетривиальное направление сетевой отрасли, вошли в число базовых принципов построения компьютерных сетей.
□ Глава 1. Эволюция компьютерных сетей
□ Глава 2. Общие принципы построения сетей
□ Глава 3. Коммутация каналов и пакетов
□ Глава 4. Архитектура и стандартизация сетей
□ Глава 5. Примеры сетей
□ Глава 6. Сетевые характеристики
□ Глава 7. Методы обеспечения качества обслуживания
ГЛАВА 1 Эволюция
История любой отрасли науки и техники позволяет не только удовлетворить естественное любопытство, но и глубже понять сущность основных достижений в этой отрасли, осознать существующие тенденции и правильно оценить перспективность тех или иных направлений развития. Компьютерные сети появились сравнительно недавно, в конце 60-х годов прошлого столетия (правда, уточнение «прошлого столетия» прибавляет им вес и даже делает старше своих «тридцати с чем-то» лет). Естественно, что компьютерные сети унаследовали много полезных свойств от других, более старых и распространенных телекоммуникационных сетей, а именно телефонных. В то же время компьютерные сети привнесли в телекоммуникационный мир нечто совершенно новое — они сделали общедоступными неисчерпаемые объемы информации, созданные цивилизацией за несколько тысячелетий своего существования и продолжающие пополняться с растущей скоростью в наши дни.
Результатом влияния компьютерных сетей на остальные типы телекоммуникационных сетей стал процесс их конвергенции. Этот процесс начался достаточно давно, одним из первых признаков сближения была передача телефонными сетями голоса в цифровой форме. Компьютерные сети также активно идут навстречу телекоммуникационным сетям, разрабатывая новые сервисы, которые ранее были прерогативой телефонных, радио и телевизионных сетей — сервисы IP-телефонии, радио- и видеовещания, ряд других. Процесс конвергенции продолжается, и о том, каким будет его конечный результат, с уверенностью пока говорить рано. Однако понимание истории развития сетей, описываемой в данной главе, делает более понятными основные проблемы, стоящие перед разработчиками компьютерных сетей.
При написании этой главы авторы столкнулись с дилеммой: невозможно рассказывать об истории отрасли, не называя конкретные технологии и концепции. Но в то же время невозможно давать пояснения этих технологий и концепций, так как читатель, перелистывающий первые страницы, еще не готов к восприятию объяснений. Авторы пошли по пути компромисса, отложив на будущее исчерпывающие пояснения многих терминов ради того, чтобы в самом начале изучения компьютерных сетей читатель имел возможность представить картину эволюции компьютерных сетей во всем ее красочном многообразии. И, конечно, было бы очень полезно вернуться к этой главе, после того как будет перевернута последняя страница книги, чтобы, вооружась новыми знаниями, сделать качественно новую попытку оценить прошлое и будущее компьютерных сетей.
Компьютерные сети, которым посвящена данная книга, отнюдь не являются единственным видом сетей, созданным человеческой цивилизацией. Даже водопроводы Древнего Рима можно рассматривать как один из наиболее древних примеров сетей, покрывающих большие территории и обслуживающих многочисленных клиентов. Другой, менее экзотический пример — электрические сети. В них легко можно найти аналоги компонентов любой территориальной компьютерной сети: источникам информационных ресурсов соответствуют электростанции, магистралям — высоковольтные линии электропередачи, сетям доступа — трансформаторные подстанции, клиентским терминалам — осветительные и бытовые электроприборы.
Компьютерные сети, называемые также сетями передачи данных, являются логическим результатом эволюции двух важнейших научно-технических отраслей современной цивилизации — компьютерных и телекоммуникационных технологий.
С одной стороны, сети представляют собой частный случай распределенных вычислительных систем, в которых группа компьютеров согласованно решает набор взаимосвязанных задач, обмениваясь данными в автоматическом режиме. С другой стороны, компьютерные сети могут рассматриваться как средство передачи информации на большие расстояния, для чего в них применяются методы кодирования и мультиплексирования данных, получившие развитие в различных телекоммуникационных системах (рис. 1.1).
компьютерныхсетейРис. 1.1. Эволюция компьютерных сетей на стыке вычислительной техники и телекоммуникационных технологий |
Обратимся сначала к компьютерному корню вычислительных сетей. Первые компьютеры 50-х годов - большие, громоздкие и дорогие — предназначались для очень небольшого числа избранных пользователей. Часто эти монстры занимали целые здания. Такие компьютеры не были предназначены для интерактивной работы пользователя, а применялись в режиме пакетной обработки.
Системы пакетной обработки, как правило, строились на базе мэйнфрейма — мощного и надежного компьютера универсального назначения. Пользователи подготавливали перфокарты, содержащие данные и команды программ, и передавали их в вычислительный центр (рис. 1.2). Операторы вводили эти карты в компьютер, а распечатанные результаты пользователи получали обычно только на следующий день. Таким образом, одна неверно набитая карта означала как минимум суточную задержку. Конечно, для пользователей интерактивный режим работы, при котором можно с терминала оперативно руководить процессом обработки своих данных, был бы удобней. Но интересами пользователей на первых этапах развития вычислительных систем в значительной степени пренебрегали. Во главу угла ставилась эффективность работы самого дорогого устройства вычислительной машины — процессора, даже в ущерб эффективности работы использующих его специалистов.
Пакет заданий |
---|
Устройствоввода |
Рис. 1.2. Централизованная система на базе мэйнфрейма |
По мере удешевления процессоров в начале 60-х годов появились новые способы организации вычислительного процесса, которые позволили учесть интересы пользователей. Начали развиваться интерактивные многотерминальные системы разделения времени (рис. 1.3). В таких системах каждый пользователь получал собственный терминал, с помощью которого он мог вести диалог с компьютером. Количество одновременно работающих с компьютером пользователей определялось его мощностью: время реакции вычислительной системы должно было быть достаточно мало, чтобы пользователю была не слишком заметна параллельная работа с компьютером других пользователей.
Терминалы, выйдя за пределы вычислительного центра, рассредоточились по всему предприятию. И хотя вычислительная мощность оставалась полностью централизованной,
некоторые функции, такие как ввод и вывод данных, стали распределенными. Подобные многотерминальные централизованные системы внешне уже были очень похожи на локальные вычислительные сети. Действительно, рядовой пользователь работу за терминалом мэйнфрейма воспринимал примерно так же, как сейчас он воспринимает работу за подключенным к сети персональным компьютером. Пользователь мог получить доступ к общим файлам и периферийным устройствам, при этом у него поддерживалась полная иллюзия единоличного владения компьютером, так как он мог запустить нужную ему программу в любой момент и почти сразу же получить результат. (Некоторые далекие от вычислительной техники пользователи даже были уверены, что все вычисления выполняются внутри их дисплея.)
2“Д
□
Мэйнфрейм
этаж
Терминал |
---|
Рис. 1.3. Многотерминальная система —- прообраз вычислительной сети
М!юготврми*едьньюсистбмы, работающие в режиме разделения времени, стали первым шагом натфгй создания лекальных вычислительных сетей.
Однако до появления локальных сетей нужно было пройти еще большой путь, так как многотерминальные системы, хотя и имели внешние черты распределенных систем, все еще поддерживали централизованную обработку данных.
К тому же потребность предприятий в создании локальных сетей в это время еще не созрела — в одном здании просто нечего было объединять в сеть, так как из-за высокой стоимости вычислительной техники предприятия не могли себе позволить роскошь приобретения нескольких компьютеров. В этот период был справедлив так называемый закон Гроша, который эмпирически отражал уровень технологии того времени. В соответствии с этим законом производительность компьютера была пропорциональна квадрату его стоимости, отсюда следовало, что за одну и ту же сумму было выгоднее купить одну мощную машину, чем две менее мощных — их суммарная мощность оказывалась намного ниже мощности дорогой машины.
А вот потребность в соединении компьютеров, находящихся на большом расстоянии друг от друга, к этому времени уже вполне назрела. Началось все с решения более простой задачи — доступа к компьютеру с терминалов, удаленных от него на многие сотни, а то и тысячи километров. Терминалы соединялись с компьютерами через телефонные сети с помощью модемов. Такие сети позволяли многочисленным пользователям получать удаленный доступ к разделяемым ресурсам нескольких мощных суперкомпьютеров. Затем появились системы, в которых наряду с удаленными соединениями типа терминал-компьютер были реализованы и удаленные связи типа компьютер-компьютер.
Компьютеры получили возможность обмениваться данными в автоматическом режиме, что, собственно, и является базовым признаком любой вычислительной сети.
На основе подобного механизма в первых сетях были реализованы службы обмена файлами, синхронизации баз данных, электронной почты и другие ставшие теперь традиционными сетевые службы.
Итак, хронологически первыми появились глобальные сети (Wide Area Network, WAN), то есть сети, объединяющие территориально рассредоточенные компьютеры, возможно находящиеся в различных городах и странах.
Именно при построении глобальных сетей были впервые предложены и отработаны многие основные идеи, лежащие в основе современных вычислительных сетей. Такие, например, как многоуровневое построение коммуникационных протоколов, концепции коммутации и маршрутизации пакетов.
Глобальные компьютерные сети очень многое унаследовали от других, гораздо более старых и распространенных глобальных сетей — телефонных. Главное технологическое новшество, которое привнесли с собой первые глобальные компьютерные сети, состояло в отказе от принципа коммутации каналов, на протяжении многих десятков лет успешно использовавшегося в телефонных сетях.
Выделяемый на все время сеанса связи составной телефонный канал, передающий информацию с постоянной скоростью, не мог эффективно использоваться пульсирующим трафиком компьютерных данных, у которого периоды интенсивного обмена чередуются с продолжительными паузами. Натурные эксперименты и математическое моделирование показали, что пульсирующий и в значительной степени не чувствительный к задержкам компьютерный трафик гораздо эффективней передается сетями, работающими по принципу коммутации пакетов, когда данные разделяются на небольшие порции — пакеты, — которые самостоятельно перемещаются по сети благодаря наличию адреса конечного узла в заголовке пакета.
Так как прокладка высококачественных линий связи на большие расстояния обходится очень дорого, то в первых глобальных сетях часто использовались уже существующие каналы связи, изначально предназначенные совсем для других целей. Например, в течение многих лет глобальные сети строились на основе телефонных каналов тональной частоты, способных в каждый момент времени вести передачу только одного разговора в аналоговой форме. Поскольку скорость передачи дискретных компьютерных данных по таким каналам была очень низкой (десятки килобитов в секунду), набор предоставляемых услуг в глобальных сетях такого типа обычно ограничивался передачей файлов (преимущественно в фоновом режиме) и электронной почтой. Помимо низкой скорости такие каналы имеют и другой недостаток — они вносят значительные искажения в передаваемые сигналы. Поэтому протоколы глобальных сетей, построенных с использованием каналов связи низкого качества, отличаются сложными процедурами контроля и восстановления данных. Типичным примером таких сетей являются сети Х.25, разработанные еще в начале 70-х, когда низкоскоростные аналоговые каналы, арендуемые у телефонных компаний, были преобладающим типом каналов, соединяющих компьютеры и коммутаторы глобальной вычислительной сети.
В 1969 году министерство обороны США инициировало работы по объединению в единую сеть суперкомпьютеров оборонных и научно-исследовательских центров. Эта сеть, получившая название ARPANET, стала отправной точкой для создания первой и самой известной ныне глобальной сети — Интернет.
Сеть ARPANET объединяла компьютеры разных типов, работавшие под управлением различных операционных систем (ОС) с дополнительными модулями, реализующими коммуникационные протоколы, общие для всех компьютеров сети. ОС этих компьютеров можно считать первыми сетевыми операционными системами.
Истинно сетевые ОС в отличие от многотерминальных ОС позволяли не только рассредоточить пользователей, но и организовать распределенные хранение и обработку данных между несколькими компьютерами, связанными электрическими связями. Любая сетевая операционная система, с одной стороны, выполняет все функции локальной операционной системы, а с другой стороны, обладает некоторыми дополнительными средствами, позволяющими ей взаимодействовать через сеть с операционными системами других компьютеров. Программные модули, реализующие сетевые функции, появлялись в операционных системах постепенно, по мере развития сетевых технологий, аппаратной базы компьютеров и возникновения новых задач, требующих сетевой обработки.
Прогресс глобальных компьютерных сетей во многом определялся прогрессом телефонных сетей.
С конца 60-х годов в телефонных сетях все чаще стала применяться передача голоса в цифровой форме.
Это привело к появлению высокоскоростных цифровых каналов, соединяющих автоматические телефонные станции (АТС) и позволяющих одновременно передавать десятки и сотни разговоров.
К настоящему времени глобальные сети по разнообразию и качеству предоставляемых услуг догнали локальные сети, которые долгое время лидировали в этом отношении, хотя и появились на свет значительно позже.
Важное событие, повлиявшее на эволюцию компьютерных сетей, произошло в начале 70-х годов. В результате технологического прорыва в области производства компьютерных компонентов появились большие интегральные схемы (БИС). Их сравнительно невысокая стоимость и хорошие функциональные возможности привели к созданию миникомпьютеров, которые стали реальными конкурентами мэйнфреймов. Эмпирический закон Гроша перестал соответствовать действительности, так как десяток мини-компьютеров, имея ту же стоимость, что и мэйнфрейм, решали некоторые задачи (как правило, хорошо распараллеливаемые) быстрее.
Даже небольшие подразделения предприятий получили возможность иметь собственные компьютеры. Мини-компьютеры решали задачи управления технологическим оборудованием, складом и другие задачи уровня отдела предприятия. Таким образом, появилась концепция распределения компьютерных ресурсов по всему предприятию. Однако при этом все компьютеры одной организации по-прежнему продолжали работать автономно (рис. 1.4).
предприятие
Мини-ЭВМ |
---|
ТерминалыОтдел 1 предприятия |
Мини-ЭВМ |
---|
Отдел 2 предприятия
Мини-ЭВМ |
---|
Мини-ЭВМ |
---|
Отдел 4 предприятия |
Рис. 1.4. Автономное использование нескольких мини-компьютеров на одном предприятии
Шло время, и потребности пользователей вычислительной техники росли. Их уже не удовлетворяла изолированная работа на собственном компьютере, им хотелось в автоматическом режиме обмениваться компьютерными данными с пользователями других подразделений. Ответом на эту потребность стало появление первых локальных вычислительных сетей (рис. 1.5).
Мини-компьютер |
Терминалы |
Терминалы
Стандартная сеть Ethernet |
---|
--Персональные компьютеры |
Устройство сопряжения мини-компьютеров с персональными компьютерами |
---|
1 1 | -С * г"' | ] ( | у?*] | |
Персональные компьютеры
Рис. 1.5. Различные типы связей в первых локальных сетях
Локальные сети (Local Area Network, LAN) — это объединения компьютеров, сосредоточенных на небольшой территории, обычно в радиусе не более 1-2 км, хотя в отдельных случаях локальная сеть может иметь и большие размеры, например несколько десятков километров. В общем случае локальная сеть представляет собой коммуникационную систему, принадлежащую одной организации.
На первых порах для соединения компьютеров друг с другом использовались нестандартные сетевые технологии.
Сетевая технологияэто согласованный набор программных и аппаратных средств (например, драйверов, сетевых адаптеров, кабелей и разъемов), а также механизмов передачи данных по линиям связи, достаточный для построения вычислительной сети.
Разнообразные устройства сопряжения, использующие собственные способы представления данных на линиях связи, свои типы кабелей и т. п., могли соединять только те конкретные модели компьютеров, для которых были разработаны, например, миникомпьютеры PDP-11 с мэйнфреймом IBM 360 или мини-компьютеры HP с микрокомпьютерами LSI-11. Такая ситуация создала большой простор для творчества студентов — названия многих курсовых и дипломных проектов начинались тогда со слов «Устройство сопряжения...».
В середине 80-х годов положение дел в локальных сетях кардинально изменилось. Утвердились стандартные сетевые технологии объединения компьютеров в сеть — Ethernet, Arcnet, Token Ring, Token Bus, несколько позже — FDDI.
Мощным стимулом для их появления послужили персональные компьютеры. Эти массовые продукты стали идеальными элементами построения сетей — с одной стороны, они были достаточно мощными, чтобы обеспечивать работу сетевого программного обеспечения, а с другой — явно нуждались в объединении своей вычислительной мощности для решения сложных задач, а также разделения дорогих периферийных устройств и дисковых массивов. Поэтому персональные компьютеры стали преобладать в локальных сетях, причем не только в качестве клиентских компьютеров, но и в качестве центров хранения и обработки данных, то есть сетевых серверов, потеснив с этих привычных ролей ^ини-компьютеры и мэйнфреймы.
Все стандартные технологии локальных сетей опирались на тот же принцип коммутации, который был с успехом опробован и доказал свои преимущества при передаче трафика данных в глобальных компьютерных сетях, — принцип коммутации пакетов.
Стандартные сетевые технологии превратили процесс построения локальной сети из решения нетривиальной технической проблемы в рутинную работу. Для создания сети достаточно было приобрести стандартный кабель, сетевые адаптеры соответствующего стандарта, например Ethernet, вставить адаптеры в компьютеры, присоединить их к кабелю стандартными разъемами и установить на компьютеры одну из популярных сетевых операционных систем, например Novell NetWare.
Разработчики локальных сетей привнесли много нового в организацию работы пользователей. Так, стало намного проще и удобнее, чем в глобальных сетях, получать доступ к общим сетевым ресурсам. Последствием и одновременно движущей силой такого прогресса стало появление огромного числа непрофессиональных пользователей, освобожденных от необходимости изучать специальные (и достаточно сложные) команды для сетевой работы.
Конец 90-х выявил явного лидера среди технологий локальных сетей — семейство Ethernet, в которое вошли классическая технология Ethernet со скоростью передачи 10 Мбит/с, а также Fast Ethernet со скоростью 100 Мбит/с и Gigabit Ethernet со скоростью 1000 Мбит/с.
Простые алгоритмы работы предопределяют низкую стоимость оборудования Ethernet. Широкий диапазон иерархии скоростей позволяет рационально строить локальную сеть, выбирая ту технологию семейства, которая в наибольшей степени отвечает задачам предприятия и потребностям пользователей. Важно также, что все технологии Ethernet очень близки друг к другу по принципам работы, что упрощает обслуживание и интеграцию этих сетей.
Хронологическую последовательность важнейших событий, ставших историческими вехами на пути появления первых компьютерных сетей, иллюстрирует табл. 1.1.
Таблица 1.1. Хронология важнейших событий на пути появления первых компьютерных сетей | |
---|---|
Этап | Время |
Первые глобальные связи компьютеров, первые эксперименты с пакетными сетями | Конец 60-х |
Начало передач по телефонным сетям голоса в цифровой форме | Конец 60-х |
Появление больших интегральных схем, первые мини-компьютеры, первые нестандартные локальные сети | Начало 70-х |
Создание сетевой архитектуры IBM SNA | 1974 |
Стандартизация технологии Х.25 | 1974 |
Появление персональных компьютеров, создание Интернета в современном виде, установка на всех узлах стека TCP/IP | Начало 80-х |
Появление стандартных технологий локальных сетей (Ethernet — 1980 г., Token Ring, FDDI — 1985 г.) | Середина 80-х |
Начало коммерческого использования Интернета | Конец 80-х |
Изобретение Web | 1991 |
В конце 80-х годов отличия между локальными и глобальными сетями проявлялись весьма отчетливо.
Протяженность и качество линий связи. Локальные компьютерные сети по определению отличаются от глобальных сетей небольшими расстояниями между узлами сети. Это в принципе делает возможным использование в локальных сетях более качественных линий связи.
□ Сложность методов передачи данных. В условиях низкой надежности физических каналов в глобальных сетях требуются более сложные, чем в локальных сетях, методы передачи данных и соответствующее оборудование.
□ Скорость обмена данными в локальных сетях (10, 16 и 100 Мбит/с) в то время была существенно выше, чем в глобальных (от 2,4 Кбит/с до 2 Мбит/с).
□ Разнообразие услуг. Высокие скорости обмена данными позволили предоставлять в локальных сетях широкий спектр услуг — это, прежде всего, разнообразные механизмы использования файлов, хранящихся на дисках других компьютеров сети, совместное использование устройств печати, модемов, факсов, доступ к единой базе данных, электронная почта и др. В то же время глобальные сети в основном ограничивались почтовыми и файловыми услугами в их простейшем (не самом удобном для пользователя) виде.
Постепенно различия между локальными и глобальными сетевыми технологиями стали сглаживаться. Изолированные ранее локальные сети начали объединять друг с другом, при этом в качестве связующей среды использовались глобальные сети. Тесная интеграция локальных и глобальных сетей привела к значительному взаимопроникновению соответствующих технологий.
Сближение в методах передачи данных происходит на платформе цифровой передачи данных по волоконно-оптическим линиям связи. Эта среда передачи используется практически во всех технологиях локальных сетей для скоростного обмена информацией на расстояниях свыше 100 метров, на ней же построены современные магистрали первичных сетей SDH и DWDM, предоставляющих свои цифровые каналы для объединения оборудования глобальных компьютерных сетей.
Высокое качество цифровых каналов изменило требования к протоколам глобальных компьютерных сетей. На первый план вместо процедур обеспечения надежности вышли процедуры обеспечения гарантированной средней скорости доставки информации пользователям, а также механизмы приоритетной обработки пакетов особенно чувствительного к задержкам трафика, например голосового. Эти изменения нашли отражение в новых технологиях глобальных сетей, таких как Frame Relay и ATM. В этих сетях предполагается, что искажение битов происходит настолько редко, что ошибочный пакет выгоднее просто уничтожить, а все проблемы, связанные с его потерей, перепоручить программному обеспечению более высокого уровня, которое непосредственно не входит в состав сетей Frame Relay и ATM. Большой вклад в сближение локальных и глобальных сетей внесло доминирование протокола IP. Этот протокол сегодня работает поверх любых технологий локальных и глобальных сетей (Ethernet, Token Ring, ATM, Frame Relay), объединяя различные подсети в единую составную сеть.
Начиная с 90-х годов компьютерные глобальные сети, работающие на основе скоростных цифровых каналов, существенно расширили спектр предоставляемых услуг и догнали в этом отношении локальные сети. Стало возможным создание служб, работа которых связана с доставкой пользователю больших объемов информации в реальном времени — изображений, видеофильмов, голоса, в общем, всего того, что получило название мультимедийной информации. Наиболее яркий пример — гипертекстовая информационная служба World Wide Web, ставшая основным поставщиком информации в Интернете. Ее интерактивные возможности превзошли возможности многих аналогичных служб локальных сетей, так что разработчикам локальных сетей пришлось просто позаимствовать эту службу у глобальных сетей. Процесс переноса технологий из глобальной сети Интернет в локальные приобрел такой массовый характер, что появился даже специальный термин — intranet-технологии (intra — внутренний).
В локальных сетях в последнее время уделяется такое же большое внимание методам обеспечения защиты информации от несанкционированного доступа, как и в глобальных. Это обусловлено тем, что локальные сети перестали быть изолированными, чаще всего они имеют выход в «большой мир» через глобальные связи.
И наконец, появляются новые технологии, изначально предназначенные для обоих видов сетей. Ярким представителем нового поколения технологий является технология ATM, которая может служить основой как глобальных, так и локальных сетей, эффективно объединяя все существующие типы трафика в одной транспортной сети. Другим примером является семейство технологий Ethernet, имеющее явные «локальные» корни. Новый стандарт Ethernet 10G, позволяющий передавать данные со скоростью 10 Гбит/с, предназначен для магистралей как глобальных, так и крупных локальных сетей.
Еще одним признаком сближения локальных и глобальных сетей является появление сетей, занимающих промежуточное положение между локальными и глобальными сетями.
Городские сети, или сети мегаполисов (Metropolitan Area Network, MAN), предназначены для обслуживания территории крупного города.
Эти сети используют цифровые линии связи, часто оптоволоконные, со скоростями на магистрали от 155 Мбит/с и выше. Они обеспечивают экономичное соединение локальных сетей между собой, а также выход в глобальные сети. Сети MAN первоначально были разработаны только для передачи данных, но сейчас перечень предоставляемых ими услуг расширился, в частности они поддерживают видеоконференции и интегральную передачу голоса и текста. Современные сети MAN отличаются разнообразием предоставляемых услуг, позволяя своим клиентам объединять коммуникационное оборудование различного типа, в том числе офисные АТС.
С каждым годом усиливается тенденция сближения компьютерных и телекоммуникационных сетей разных видов. Предпринимаются попытки создания универсальной, так называемой мультисервисной сети, способной предоставлять услуги как компьютерных, так и телекоммуникационных сетей.
К телекоммуникационным сетям относятся телефонные сети, радиосети и телевизионные сети. Главное, что объединяет их с компьютерными сетями, — то, что в качестве ресурса, предоставляемого клиентам, выступает информация. Однако имеется некоторая специфика, касающаяся вида, в котором представляют информацию компьютерные и телекоммуникационные сети. Так, изначально компьютерные сети разрабатывались для передачи алфавитно-цифровой информации, которую часто называют просто данными, поэтому у компьютерных сетей имеется и другое название — сети передачи данных, в то время как телекоммуникационные сети были созданы для передачи только голосовой информации (и изображения в случае телевизионных сетей).
Сегодня мы являемся свидетелями конвергенции телекоммуникационных и компьютерных сетей, которая идет по нескольким направлениям.
Прежде всего, наблюдается сближение видов услуг, предоставляемых клиентам. Первая и не очень успешная попытка создания мультисервисной сети, способной оказывать различные услуги, в том числе услуги телефонии и передачи данных, привела к появлению технологии цифровых сетей с интегрированным обслуживанием (Integrated Services Digital Network, ISDN). Однако на практике ISDN предоставляет сегодня в основном телефонные услуги, а на роль глобальной мультисервисной сети нового поколения, часто называемой в англоязычной литературе Next Generation Network (NGN), или New Public Network (NPN), претендует Интернет. Интернет будущего должен обладать возможностью оказывать все виды телекоммуникационных услуг, в том числе новые виды комбинированных услуг, в которых сочетаются несколько традиционных услуг, например услуга универсальной службы сообщений, объединик^щей электронную почту, телефонию, факсимильную службу и пейджинговую связь. Наибольших успехов на практическом поприще достигла 1Р-телефония, услугами которой прямо или косвенно сегодня пользуются миллионы людей. Однако для того чтобы стать сетью NGN, Интернету еще предстоит пройти большой путь.
Технологическое сближение сетей происходит сегодня на основе цифровой передачи информации различного типа, метода коммутации пакетов и программирования услуг.
Телефония уже давно сделала ряд шагов навстречу компьютерным сетям, прежде всего, за счет представления голоса в цифровой форме, что делает принципиально возможным передачу телефонного и компьютерного трафика по одним и тем же цифровым каналам (телевидение также может сегодня передавать изображение в цифровой форме). Телефонные сети широко используют комбинацию методов коммутации каналов и пакетов. Так, для передачи служебных сообщений (называемых сообщениями сигнализации) применяются протоколы коммутации пакетов, аналогичные протоколам компьютерных сетей, а для передачи собственно голоса между абонентами коммутируется традиционный составной канал.
Дополнительные услуги телефонных сетей, такие как переадресация вызова, конференц-связь, телеголосование и другие, могут создаваться с помощью так называемой интеллектуальной сети (Intelligent Network, IN), по своей сути являющейся компьютерной сетью с серверами, на которых программируется логика услуг.
Сегодня пакетные методы коммутации постепенно теснят традиционные для телефонных сетей методы коммутации каналов даже при передаче голоса. У этой тенденции есть достаточно очевидная причина — на основе метода коммутации пакетов можно более эффективно использовать пропускную способность каналов связи и коммутационного оборудования. Например, паузы в телефонном разговоре могут составлять до 40 % общего времени соединения, однако только пакетная коммутация позволяет «вырезать» паузы и использовать высвободившуюся пропускную способность канала для передачи трафика других абонентов. Другой веской причиной перехода к коммутации пакетов является популярность Интернета — сети, построенной на основе данной технологии.
Обращение к технологии коммутации пакетов для одновременной передачи через пакетные сети разнородного трафика — голоса, видео и текста — сделало актуальным разработку новых методов обеспечения требуемого качества обслуживания (Quality of Service, QoS). Методы QoS призваны минимизировать уровень задержек для чувствительного к ним трафика, например голосового, и одновременно гарантировать среднюю скорость и динамичную передачу пульсаций для трафика данных.
Однако неверно было бы говорить, что методы коммутации каналов морально устарели и у них нет будущего. На новом витке спирали развития они находят свое применение, но уже в новых технологиях.
Компьютерные сети тоже многое позаимствовали у телефонных и телевизионных сетей. В частности, они берут на вооружение методы обеспечения отказоустойчивости телефонных сетей, за счет которых последние демонстрируют высокую степень надежности, так недостающую порой Интернету и корпоративным сетям.
Сегодня становится все более очевидным, что мультисервисная сеть нового поколения не может быть создана в результате «победы» какой-нибудь одной технологии или одного подхода. Ее может породить только процесс конвергенции, когда от каждой технологии будет взято все самое лучшее и соединено в некоторый новый сплав, который и даст требуемое качество для поддержки существующих и создания новых услуг. Появился новый термин — инфокоммуникационная сеть, который прямо говорит о двух составляющих современной сети — информационной (компьютерной) и телекоммуникационной. Учитывая, что новый термин еще не приобрел достаточной популярности, мы будем использовать устоявшийся термин «телекоммуникационная сеть» в расширенном значении, то есть включать в него и компьютерные сети.
Компьютерные сети стали логическим результатом эволюции компьютерных и телекоммуникационных технологий. С одной стороны, они являются частным случаем распределенных компьютерных систем, а с другой — могут рассматриваться как средство передачи информации на большие расстояния, для чего в них применяются методы кодирования и мультиплексирования данных, получившие развитие в различных телекоммуникационных системах.
Классифицируя сети по территориальному признаку, различают глобальные (WAN), локальные (LAN) и городские (MAN) сети. •
Хронологически первыми появились сети WAN. Они объединяют компьютеры, рассредоточенные на расстоянии сотен и тысяч километров. Первые глобальные компьютерные сети очень многое унаследовали от телефонных сетей. В них часто использовались уже существующие и не очень качественные линии связи, что приводило к низким скоростям передачи данных и ограничивало набор предоставляемых услуг передачей файлов в фоновом режиме и электронной почтой.
Сети LAN ограничены расстояниями в несколько километров; они строятся с использованием высококачественных линий связи, которые позволяют, применяя более простые методы передачи данных, чем в глобальных сетях, достигать высоких скоростей обмена данными — до нескольких гигабитов в секунду. Услуги предоставляются в режиме подключения и отличаются разнообразием.
Сети MAN предназначены для обслуживания территории крупного города. При достаточно больших расстояниях между узлами (десятки километров) они обладают качественными линиями связи и поддерживают высокие скорости обмена. Сети MAN обеспечивают экономичное соединение локальных сетей между собой, а также доступ к глобальным сетям.
Важнейший этап в развитии сетей — появление стандартных сетевых технологий: Ethernet, FDDI, Token Ring, позволяющих быстро и эффективно объединять компьютеры различных типов.
В конце 80-х годов локальные и глобальные сети имели существенные отличия по протяженности и качеству линий связи, сложности методов передачи данных, скорости обмена данными, разнообразию предоставляемых услуг и масштабируемости. В дальнейшем в результате тесной интеграции LAN, WAN и MAN произошло взаимопроникновение соответствующих технологий.
1. Что было унаследовано компьютерными сетями от вычислительной техники, а что от телефонных сетей?
2. Какие свойства многотерминальной системы отличают ее от компьютерной сети?
3. Когда впервые были получены значимые практические результаты по объединению компьютеров с помощью глобальных связей?
4. Что такое ARPANET?
5. Какое из следующих событий произошло позже других:
а) изобретение Web;
б) появление стандартных технологий LAN;
в) начало передачи голоса в цифровой форме по телефонным сетям.
6. Какое событие послужило стимулом к активизации работ по созданию LAN?
7. Когда была стандартизована технология Ethernet?
8. По каким направлениям идет сближение компьютерных и телекоммуникационных сетей.
9. Поясните термины «мультисервисная сеть», «инфокоммуникационная сеть», «интеллектуальная сеть».
10. Поясните, почему сети WAN появились раньше, чем сети LAN.
11. Найдите исторические связи между технологией Х.25 и сетью ARPANET, пользуясь источниками информации в Интернете.
12. Считаете ли вы, что история компьютерных сетей может быть сведена к истории Интернета? Обоснуйте свое мнение.
ГЛАВА 2 Общие принципы
Когда вы приступаете к изучению конкретных технологий для сетей LAN, WAN и MAN, таких как Ethernet, IP или ATM, то очень скоро начинаете понимать, что у этих технологий есть много общего. При этом они не являются тождественными, в каждой технологии и протоколе есть свои особенности, так что нельзя механически перенести знания из одной технологии в другую.
Изучение общих принципов построения компьютерных сетей поможет вам в дальнейшем быстрее «разбираться» с любой конкретной сетевой технологией. Однако известное высказывание «Знание нескольких принципов освобождает от запоминания множества фактов» не стоит воспринимать буквально — хороший специалист, конечно же, должен знать множество деталей и фактов. Знание принципов позволяет систематизировать эти частные сведения, связать их друг с другом в стройную систему и тем самым использовать более осознано и эффективно. Конечно, изучение принципов перед изучением конкретных технологий — задача непростая, особенно для читателей с практическим складом ума. Кроме того, всегда есть опасность неверного понимания какого-нибудь общего утверждения без проверки его в практической реализации. Поэтому мы просим читателей поверить нам пока на слово, что игра стоит свеч, а также последовать нашему совету: в ходе изучения материала последующих глав книги время от времени мысленно возвращайтесь к теоретическим вопросам и проверяйте себя, так ли вы понимали те или иные механизмы, когда изучали их впервые.
В этой главе мы рассмотрим такие фундаментальные понятия сетевых технологий, как коммутация и маршрутизация, мультиплексирование и разделение передающей среды. Мы познакомимся также с общими подходами, применяющимися при адресации узлов сети и выборе топологии.
Исторически главной целью объединения компьютеров в сеть было разделение ресурсов: пользователи компьютеров, подключенных к сети, или приложения, выполняемые на этих компьютерах, получают возможность автоматического доступа к разнообразным ресурсам остальных компьютеров сети, к числу которых относятся:
□ периферийные устройства, такие как диски, принтеры, плоттеры, сканеры и др.;
□ данные, хранящиеся в оперативной памяти или на внешних запоминающих устройствах;
□ вычислительная мощность (за счет удаленного запуска «своих» программ на «чужих» компьютерах).
Чтобы обеспечить пользователей разных компьютеров возможностью совместного использования ресурсов сети, компьютеры необходимо оснастить некими дополнительными сетевыми средствами.
Рассмотрим простейшую сеть, состоящую из двух компьютеров, к одному из которых подключен принтер (рис. 2.1). Какие дополнительные средства должны быть предусмотрены в обоих компьютерах, чтобы с принтером мог работать не только пользователь компьютера Б, к которому этот принтер непосредственно подключен, но и пользователь компьютера Л?
Рис. 2.1. Простейшая сеть |
Компьютер А Компьютер В Принтер
компьютера В
Для связи устройств в них, прежде всего, должны быть предусмотрены внешние1 интерфейсы.
Интерфейс — в широком смысле — формально определенная логическая и/или физическая граница между взаимодействующими независимыми объектами. Интерфейс задает параметры, процедуры и характеристики взаимодействия объектов.
Разделяют физический и логический интерфейсы.
□ Физический интерфейс (называемый также портом) — определяется набором электрических связей и характеристиками сигналов. Обычно он представляет собой разъем с набором контактов, каждый из которых имеет определенное назначение, например, это может быть группа контактов для передачи данных, контакт синхронизации данных и т. п. Пара разъемов соединяется кабелем, состоящим из набора проводов, каждый из которых соединяет соответствующие контакты. В таких случаях говорят о создании линии, или канала, связи между двумя устройствами.
□ Логический интерфейс (называемый также протоколом) — это набор информационных сообщений определенного формата, которыми обмениваются два устройства или две программы, а также набор правил, определяющих логику обмена этими сообщениями.
На рис. 2.2 мы видим интерфейсы двух типов: компьютер—компьютер и компьютер—
периферийное устройство.
Компьютер АПротоколКомпьютер В |
---|
Интерфейс компьютер—компьютерИнтерфейс компьютер—принтерРис. 2.2. Совместное использование принтера в компьютерной сети |
□ Интерфейс компьютер—компьютер позволяет двум компьютерам обмениваться информацией. С каждой стороны он реализуется парой:
О аппаратным модулем, называемым сетевым адаптером, или сетевой интерфейсной картой (Network Interface Card, NIC);
О драйвером сетевой интерфейсной карты — специальной программой, управляющей работой сетевой интерфейсной карты.
□ Интерфейс компьютер—периферийное устройство (в данном случае интерфейс компьютер—принтер) позволяет компьютеру управлять работой периферийного устройства (ПУ). Этот интерфейс реализуется:
О со стороны компьютера — интерфейсной картой и драйвером ПУ (принтера), подобным сетевой интерфейсной карте и ее драйверу;
О со стороны ПУ — контроллером ПУ (принтера), обычно представляющий собой аппаратное устройство2, принимающее от компьютера как данные, например байты информации, которую нужно распечатать на бумаге, так и команды, которые он отрабатывает, управляя электромеханическими частями периферийного устройства, например выталкивая лист бумаги из принтера или перемещая магнитную головку диска.
Для того чтобы решить задачу организации доступа приложения, выполняемого на компьютере Л, к ПУ через сеть, давайте, прежде всего, посмотрим, как управляет этим устройством приложение, выполняемое на компьютере В, к которому данное ПУ подключено непосредственно (см. рис. 2.2).
1. Пусть приложению В в какой-то момент потребовалось вывести на печать некоторые данные. Для этого приложение обращается с запросом на выполнение операции ввода-вывода к операционной системе (как правило, драйвер не может быть запущен на выполнение непосредственно приложением). В запросе указываются адрес данных, которые необходимо напечатать (адрес буфера ОП), и информация о том, на каком периферийном устройстве эту операцию требуется выполнить.
2. Получив запрос, операционная система запускает программу — драйвер принтера. С этого момента все дальнейшие действия по выполнению операции ввода-вывода со стороны компьютера реализуются только драйвером принтера и работающим под его управлением аппаратным модулем — интерфейсной картой принтера без участия приложения и операционной системы.
3. Драйвер принтера оперирует командами, понятными контроллеру принтера, такими, например, как «Печать символа», «Перевод строки», «Возврат каретки». Драйвер в определенной последовательности загружает коды этих команд, а также данные, взятые из буфера ОП, в буфер интерфейсной карты принтера, которая побайтно передает их по сети контроллеру принтера.
4. Интерфейсная карта выполняет низкоуровневую работу, не вдаваясь в детали, касающиеся логики управления устройством, смысла данных и команд, передаваемых ей драйвером, считая их однородным потоком байтов. После получения от драйвера очередного байта интерфейсная карта просто последовательно передает биты в линию связи, представляя каждый бит электрическим сигналом. Чтобы контроллеру принтера стало понятно, что начинается передача байта, пере&передачей первого бита информационная карта формирует стартовый сигнал специфической формк, а после передачи последнего информационного бита — столовый сигнал. Эти сигналы синхронизируют передачу байта. Контроллер, опознав стартовый бит, начинает принимать информационные биты, формируя из них байт в своем приемном буфере. Помимо информационных битов карта может передавать бит контроля четности для повышения достоверности обмена. Прикорректно выполненной передаче в буфере принтера устанавливается соответствующий признак.
5. Получив очередной байт, контроллер интерпретирует его и запускает заданную операцию принтера. Закончив работу по печати всех символов документа, драйвер принтера сообщает операционной системе о выполнении запроса, а та, в свою очередь, сигнализирует об этом событии приложению.
Механизмы взаимодействия компьютеров в сети многое позаимствовали у схемы взаимодействия компьютера с периферийными устройствами. В самом простом случае связь компьютеров может быть реализована с помощью тех же самых средств, которые используются для связи компьютера с периферией, с той разницей, что в этом случае активную роль играют обе взаимодействующие стороны.
Приложения Ли В (см. рис. 2.2) управляют процессом передачи данных путем обмена сообщениями. Чтобы приложения могли «понимать» получаемую друг от друга информацию, программисты, разрабатывавшие эти приложения, должны строго оговорить форматы и последовательность сообщений, которыми приложения будут обмениваться во время выполнения этой операции. Например, они могут договориться о том, что любая операция обмена данными начинается с передачи сообщения, запрашивающего информацию о готовности приложения В\ что в следующем сообщении идут идентификаторы компьютера и пользователя, сделавшего запрос; что признаком срочного завершения операции обмена данными является определенная кодовая комбинация и т. п. Тем самым определяется протокол взаимодействия приложений для выполнения операции данного типа.
Аналогично тому, как при выводе данных на печать необходимо передавать принтеру дополнительно некоторый объем служебной информации — в виде команд управления принтером, так и здесь: для передачи данных из одного компьютера в другой необходимо сопровождать эти данные дополнительной информацией в виде протокольных сообщений, которыми обмениваются приложения.
Заметим, что для реализации протокола нужно, чтобы к моменту возникновения потребности в обмене данными были активны оба приложения: как приложение А, которое посылает инициирующее сообщение, так и приложение В, которое должно быть готово принять это сообщение и выработать реакцию на него.
Передача любых данных (как сообщений протокола приложений, так и собственно данных, составляющих цель операции обмена) происходит в соответствие с одной и той же процедурой. На стороне компьютера А приложение, следуя логике протокола, размещает в буфере ОП либо собственное очередное сообщение, либо данные, и обращается к ОС с запросом на выполнение операции межкомпьютерного обмена данными. ОС запускает соответствующий драйвер сетевой карты, который загружает байт из буфера ОП в буфер ИК, после чего инициирует работу ИК. Сетевая интерфейсная карта последовательно передает биты в линию связи, дополняя каждый новый байт стартовым и стоповым битами.
На стороне компьютера В сетевая И К принимает биты, поступающие со стороны внешнего интерфейса, и помещает их в собственный буфер. После того как получен столовый бит, интерфейсная карта устанавливает признак завершения приема байта и выполняет проверку корректности приема, например, путем контроля бита четности. Факт корректного приема байта фиксируется драйвером сетевой ИК компьютера В. Драйвер переписывает принятый байт из буфера ИК в заранее зарезервированный буфер ОП компьютера В.
Приложение В извлекает данные из буфера и интерпретирует их в соответствии со своим протоколом либо как сообщение, либо как данные. Если согласно протоколу приложение В должно передать ответ приложению Л, то выполняется симметричная процедура.
Таким образом, связав электрически и информационно два автономно работающих компьютера, мы получили простейшую компьютерную сеть.
Итак, мы имеем в своем распоряжении механизм, который позволяет приложениям, выполняющимся на разных компьютерах, обмениваться данными. И хотя приложение Л (см. рис. 2.2) по-прежнему не может управлять принтером, подключенным к компьютеру В, оно может теперь воспользоваться средствами межкомпьютерцого обмена данными, чтобы передать приложению В «просьбу» выполнить для него требуемую операцию. Приложение Л должно «объяснить» приложению В, какую операцию необходимо выполнить, с какими данными, на каком из имеющихся в его распоряжении устройств, в каком виде должен быть распечатан текст и т. п. В ходе печати могут возникнуть ситуации, о которых приложение В должно оповестить приложение Л, например об отсутствии бумаги в принтере. То есть для решения поставленной задачи — доступа к принтеру по сети — должен быть разработан специальный протокол взаимодействия приложений Ли В.
А теперь посмотрим, как работают вместе все элементы этой простейшей компьютерной сети при решении задачи совместного использования принтера.
1. В соответствии с принятым протоколом приложение Л формирует сообщение-запрос к приложению В, помещает его в буфер ОП компьютера Л и обращается к ОС, снабжая ее необходимой информацией.
2. ОС запускает драйвер сетевой ИК, сообщая ему адрес буфера ОП, где хранится сообщение.
3. Драйвер и сетевая интерфейсная карта компьютера Л, взаимодействуя с драйвером и интерфейсной картой компьютера В, передают сообщение байт за байтом в буфер ОП компьютера В.
4. Приложение В извлекает сообщение из буфера, интерпретирует его в соответствии с протоколом и выполняет необходимые действия. В число таких действий входит, в том числе, обращение к ОС с запросом на выполнение тех или иных операций с локальным принтером.
5. ОС запускает драйвер принтера, который в кооперации с интерфейсной картой и контроллером принтера выполняет требуемую операцию печати.
Уже на этом начальном этапе, рассматривая связь компьютера с периферийным устройством, мы столкнулись с важнейшими «сетевыми» понятиями: интерфейсом и протоколом, драйвером и интерфейсной картой, а также с проблемами, характерными для компьютерных сетей: согласованием интерфейсов, синхронизацией асинхронных процессов, обеспечением достоверности передачи данных.
Мы только что рассмотрели случай совместного использования принтера в простейшей сети, состоящей только из двух компьютеров. Однако даже на этом начальном этапе мы уже можем сделать некоторые выводы относительно строения сетевого программного обеспечения: сетевых служб, сетевой операционной системы и сетевых приложений.
Потребность в доступе к удаленному принтеру может возникать у пользователей самых разных приложений: текстового редактора, графического редактора, системы управления базой данных (СУБД). Очевидно, что дублирование в каждом из приложений общих для всех них функций по организации удаленной печати является избыточным.
Более эффективным представляется подход, при котором эти функции исключаются из приложений и оформляются в виде пары специализированных программных модулей — клиента и сервера печати (рис. 2.3), функции которых ранее выполнялись соответственно приложениями А и В. Теперь эта пара клиент—сервер может быть использована любым приложением, выполняемым на компьютере А.
Компьютер АКомпьютер В |
---|
Интерфейскомпьютер—компьютерИнтерфейс компьютер—принтер -Рис. 2.3. Совместное использование принтера в компьютерной сети с помощью сетевой службы печати |
Обобщая такой подход применительно к другим типам разделяемых ресурсов, дадим следующие определения3:
Клиент — это модуль, предназначенный для формирования и передачи сообщений-запросов к ресурсам удаленного компьютера от разных приложений с последующим приемом результатов из сети и передачей fix соответствующим приложениям.
Сервер—это модуль, который побтолнно, бжидаат и$ сети эоорйсов от клиентов* й при*
няв запрос, пытается его QCi одйй сервер j
обслуживать запросы сразу йвскслбких *зл#*ше одновременно).
Пара ?слиент—сервер, дрсэд £ кон)ф|тно^.тиг1у ресурса компьютере нарез
сеть, образует сетевую службу, V"' Т У ,,
Каждая служба связана с определенным типом сетевых ресурсов. Так, на рис. 2.3 модули клиента и сервера, реализующие удаленный доступ к принтеру, образуют сетевую службу печати.
Файловая служба позволяет получать доступ к файлам, хранящимся на диске других компьютеров. Серверный компонент файловой службы называют файл-сервером.
Для поиска и просмотра информации в Интернете используется веб-служба, состоящая из веб-сервера и клиентской программы, называемой веб-браузером (web browser). Разделяемым ресурсом в данном случае является веб-сайт — определенным образом организованный набор файлов, содержащих связанную в смысловом отношении информацию и хранящихся на внешнем накопителе веб-сервера.
Компьютер А (клиент)
Компьютер В (сервер)
Приложение
Веб-служба
■штп
mkh | |
Операционнаясистема |
Операционнаясистема | ||
---|---|---|
Трвмщргнщ.л‘ ииШшгва * < | Драйвер дискового накопителяж.Интерфейсная карта | |
СетевоесоединениеСетевоесоединение |
X
□□□□ 'I
Внешний дисковый накопитель
Рис. 2.4. Веб-служба
На схеме веб-службы, показанной на рис. 2.4, два компьютера связаны не непосредственно, как это было во всех предыдущих примерах, а через множество промежуточных компьютеров и других сетевых устройств, входящих в состав Интернета. Для того чтобы отразить этот факт графически, мы поместили между двумя компьютерами так называемое коммуникационное облако, которое позволяет нам абстрагироваться от всех деталей среды передачи сообщений. Обмен сообщениями между клиентской и серверной частями веб-службы выполняется по стандартному протоколу HTTP и никак не зависит от того, передаются ли эти сообщения «из рук в руки» (от интерфейса одного компьютера к интерфейсу другого) или через большое число посредников — транзитных коммуникационных устройств. Вместе с тем, усложнение среды передачи сообщений приводит к возникновению новых дополнительных задач, на решение Которых не был рассчитан упоминавшийся ранее простейший драйвер сетевой интерфейсной карты. Вместо него на взаимодействующих компьютерах должны быть установлены более развитые программные транспортные средства.
Операционную систему компьютера часто определяют как взаимосвязанный набор системных программ, который обеспечивает эффективное управление ресурсами компьютера (памятью, процессором, внешними устройствами, файлами и др.), а также предоставляет пользователю удобный интерфейс для работы с аппаратурой компьютера и разработки приложений.
Говоря о сетевой ОС, мы, очевидно, должны расширить границы управляемых ресурсов за пределы одного компьютера.
Сетевой операционной системой называют операционную систему компьютера, которая
• 'о помимоуправленияяокальным ресурсами предоставляет пользователям и приложениям воь-
ъфШи удобного доступа ^информационным и аппаратным ресурсам других
* V
Сегодня практически все операционные системы являются сетевыми.
Из примеров, рассмотренных в предыдущих разделах (см. рис 2.3 и 2.4), мы видим, что удаленный доступ к сетевым ресурсам обеспечивается:
□ сетевыми службами;
□ средствами транспортировки сообщений по сети (в простейшем случае — сетевыми интерфейсными картами и их драйверами).
Следовательно, именно эти функциональные модули должны быть добавлены к ОС, чтобы она могла называться сетевой (рис. 2.5).
Среди сетевых служб можно выделить такие, которые ориентированы не на простого пользователя, как, например, файловая служба или служба печати, а на администратора. Такие службы направлены на организацию работы сети. Например, централизованная справочная служба, или служба каталогов, предназначена для ведения базы данных о пользователях сети, обо всех ее программных и аппаратных компонентах4. В качестве других примеров можно назвать службу мониторинга сети, позволяющую захватывать и анализировать сетевой трафик, службу безопасности, в функции которой может входить, в частности, выполнение процедуры логического входа с проверкой пароля, службу резервного копирования и архивирования.
Сетевая операционная система
Средства управления локальными ресурсами
Сетевые средства
Сетевые службы |
---|
Транспортные средства
Рис. 2.5. Функциональные компоненты сетевой ОС
От того, насколько богатый набор сетевых служб и услуг предлагает операционная система конечным пользователям, приложениям и администраторам сети, зависит ее позиция в общем ряду сетевых ОС.
Помимо сетевых служб сетевая ОС должна включать программные коммуникационные (транспортные) средства, обеспечивающие совместно с аппаратными коммуникационными средствами передачу сообщений, которыми обмениваются клиентские и серверные части сетевых служб. Задачу коммуникации между компьютерами сети решают драйверы и протокольные модули. Они выполняют такие функции, как формирование сообщений, разбиение сообщения на части (пакеты, кадры), преобразование имен компьютеров в числовые адреса, дублирование сообщений в случае их потери, определение маршрута в сложной сети и т. д.
И сетевые службы, и транспортные средства могут являться неотъемлемыми (встроенными) компонентами ОС или существовать в виде отдельных программных продуктов. Например, сетевая файловая служба обычно встраивается в ОС, а вот веб-браузер чаще всего приобретаемся отдельно. Типичная сетевая ОС имеет в своем составе широкий набор драйверов и протокольных модулей, однако у пользователя, как правило, есть возможность дополнить этот стандартный набор необходимыми ему программами. Решение о способе реализации клиентов и серверов сетевой службы, а также драйверов и протокольных модулей принимается разработчиками с учетом самых разных соображений: технических, ком-
мерческих и даже юридических. Так, например, именно на основании антимонопольного закона США компании Microsoft было запрещено включать ее браузер Internet Explorer в состав ОС этой компании.
Сетевая служба может быть представлена в ОС либо обеими (клиентской и серверной) частями, либо только одной из них.
В первом случае операционная система, называемая одноранговой, не только позволяет обращаться к ресурсам других компьютеров, но и предоставляет собственные ресурсы в распоряжение пользователей других компьютеров. Например, если на всех компьютерах сети установлены и клиенты, и серверы файловой службы, то все пользователи сети могут совместно применять файлы друг друга. Компьютеры, совмещающие функции клиента и сервера, называют одноранговыми узлами.
Операционная система, которая преимущественно содержит клиентские части сетевых служб, называется клиентской. Клиентские ОС устанавливаются на компьютеры, обращающиеся с запросами к ресурсам других компьютеров сети. За такими компьютерами, также называемыми клиентскими, работают рядовые пользователи. Обычно клиентские компьютеры относятся к классу относительно простых устройств.
К другому типу операционных систем относится серверная ОС — она ориентирована на обработку запросов из сети к ресурсам своего компьютера и включает в себя в основном серверные части сетевых служб. Компьютер с установленной на нем серверной ОС, занимающийся исключительно обслуживанием запросов других компьютеров, называют выделенным сервером сети. За выделенным сервером, как правило, обычные пользователи не работают.
ПРИМЕЧАНИЕ-
Подробнее о сетевых операционных системах и встроенных в них сетевых службах вы можете прочитать в специальной литературе, а также в учебнике авторов «Сетевые операционные системы». Наиболее популярные сетевые службы Интернета, такие как электронная почта, веб-служба, 1Р-телефония и др., рассматриваются в главе 23.
Компьютер, подключенный к сети, может выполнять следующие типы приложений:
□ Локальное приложение целиком выполняется на данном компьютере и использует только локальные ресурсы (рис. 2.6, а). Для такого приложения не требуется никаких сетевых средств, оно может быть выполнено на автономно работающем компьютере.
□ Централизованное сетевое приложение целиком выполняется на данном компьютере, но обращается в процессе своего выполнения к ресурсам других компьютеров сети. В примере на рисунке 2.6, б приложение, которое выполняется на клиентском компьютере, обрабатывает данные из файла, хранящегося на файл-сервере, а затем распечатывает результаты на принтере, подключенном к серверу печати. Очевидно, что работа такого типа приложений невозможна без участия сетевых служб и средств транспортировки сообщений.
□ Распределенное (сетевое) приложение состоит из нескольких взаимодействующих частей, каждая из которых выполняет какую-то определенную законченную работу
Локальное
приложение
Обращение ч к локальным 1 ресурсам
/ |
---|
Рис. 2.6. Типы приложений, выполняющихся в сети |
по решению прикладной задачи, причем каждая часть может выполняться и, как правило, выполняется на отдельном компьютере сети (рис. 2.6, в). Части распределенного приложения взаимодействуют друг с другом, используя сетевые службы и транспортные средства ОС. Распределенное приложение в общем случае имеет доступ ко всем ресурсам компьютерной сети.
Очевидным преимуществом распределенных приложений является возможность распараллеливания вычислений, а также специализация компьютеров. Так, в приложении, предназначенном, скажем, для анализа климатических изменений, можно выделить три достаточно самостоятельные части (см. рис. 2.6, в), допускающие распараллеливание. Первая часть приложения, выполняющаяся на сравнительно маломощном персональном компьютере, могла бы поддерживать специализированный графический пользовательский интерфейс, вторая — заниматься статистической обработкой данных на высокопроизводительном мэйнфрейме, а третья — генерировать отчеты на сервере с установленной стандартной СУБД. В общем случае каждая из частей распределенного приложения может быть представлена несколькими копиями, работающими на разных компьютерах. Скажем, в данном примере часть 1, ответственную за поддержку специализированного пользовательского интерфейса, можно было бы запустить на нескольких персональных компьютерах, что позволило бы работать с этим приложением нескольким пользователям одновременно.
Однако чтобы добиться всех тех преимуществ, которые сулят распределенные приложения, разработчикам этих приложений приходится решать множество проблем, например: на сколько частей следует разбить приложение, какие функции возложить на каждую часть, как организовать взаимодействие этих частей, чтобы в случае сбоев и отказов оставшиеся части корректно завершали работу и т. д., и т. п.
Заметим, что все сетевые службы, включая файловую службу, службу печати, службу электронной почты, службу удаленного доступа, интернет-телефонию и т. д., по определению относятся к классу распределенных приложений. Действительно, любая сетевая служба включает в себя клиентскую и серверную части, которые могут и обычно выполняются на разных компьютерах.
На рис. 2.7, иллюстрирующем распределенный характер веб-службы, мы видим различные виды клиентских устройств — персональные компьютеры, ноутбуки и мобильные телефоны — с установленными на них веб-браузерами, которые взаимодействуют по сети с веб-сервером. Таким образом, с одним и тем же веб-сайтом может одновременно работать множество — сотни и тысячи — сетевых пользователей.
Многочисленные примеры распределенных приложений можно встретить и в такой области, как обработка данных научных экспериментов. Это не удивительно, так как многие эксперименты порождают такие большие объемы данных, генерируемых в реальном масштабе времени, которые просто невозможно обработать на одном, даже очень мощном, суперкомпьютере. Кроме того, алгоритмы обработки экспериментальных данных часто легко распараллеливаются, что также важно для успешного применения взаимосвязанных компьютеров с целью решения какой-либо общей задачи. Одним из последних и очень известных примеров распределенного научного приложения является программное обеспечение обработки данных большого адронного коллайдера (Large Hadron Collider, LHC), запущенного 10 сентября 2008 года в CERN — это приложение работает более чём на 30 тысячах компьютеров, объединенных в сеть.