План
1. Введение
2. Задачи программного обеспечения
2.1. Системное и прикладное ПО
- Функциональность и интерфейс
- Прикладное ПО, операционные системы и драйверы
2.2. Задачи абонентского ПО для сети Internet
- Интернет дома, на работе и в дороге
- Параметры, которые важны для сетевых программ
3. Технические составляющие абонентского ПО
3.1. Протоколы, пакеты и адреса
- Стек TCP/IP
- Маршрутизация пакетов
3.2. Типы прикладного абонентского ПО в Internet
- World Wide Web и браузеры. Мультимедиа и
интерактивность.
- FTP и электронная почта
- Шифрование, антивирусы
4. Заключение
21. Введение
Основную сложность в теме абонентского программного
обеспечения (ПО, software) сети Internet представляет собой
большое количество специальной терминологии. Часто эти термины
представляют собой транслитерацию соответствующих английских
слов, иногда приживается и удачный перевод. Как и в любой науке,
термины нужны здесь для ОДНОЗНАЧНОГО определения того, что они
обозначают.
Сеть Internet объединяет компьютеры и компьютерные сети по
всему миру. Но сегодня Internet это больше, чем чисто техническая
среда; растет влияние Сети на экономику и культуру. Разнообразие
ПО, связанного с Internet'ом отражает этот процесс. Сеть
- 2 -
представляет собой уникальное "виртуальное пространство" для
самовыражения, общения, досуга, работы и многого еще. Для лучшего
понимания возможностей и перспектив использования Internet, имеет
смысл знать принципы устройства Сети и программного обеспечения
для работы с ней.
Понятно, что Internet - это сложная система. Ее структура и
процессы внутри Сети уже являются темой для научных исследований.
Кроме того, уже сегодня, никто не смог бы знать ВСЕ, что есть в
Сети. Однако понятно и то, что принципы, на которых основана Сеть
- относительно просты и логичны, иначе было бы слишком сложно
организовать подобную систему, если вообще возможно. То же самое
касается особенностей программного обеспечения Интернет -
принципы этого достаточно просты.
Ниже мы постараемся указать на задачи абонентского ПО для
сети Internet, на конкретные существующие типы ПО (как
системного, так прикладного) и на влияние этого ПО на нашу жизнь.
22. Задачи программного обеспечения
22.1. Системное и прикладное ПО
Программное обеспечение принято разделять на СИСТЕМНОЕ и
ПРИКЛАДНОЕ ПО. Имеет также смысл выделить среди системного ПО
ОПЕРАЦИОННЫЕ СИСТЕМЫ и ДРАЙВЕРЫ устройств. Почему именно такая
классификация? Потому, что сначала мы хотим выделить наиболее
общие цели ПО, в частности абонентского ПО для сети Internet;
возможно, для других задач эта классификация не будет удобной.
Начнем с прикладного ПО. Это - те программы (программные
комплексы, системы взаимодействующих программ) с которыми
непосредственно работает пользователь. Прикладное ПО представляет
пользователю некоторую ФУНКЦИОНАЛЬНОСТЬ (то, что делает данная
программа) и ИНТЕРФЕЙС (грубо говоря - способ взаимодействия
- 3 -
человека с программой). Ниже мы рассмотрим конкретные виды
прикладного ПО, а пока - рассмотрим задачи драйвера:
Любой абонентский компьютер (или другое устройство,
например - мобильный телефон) подключается к сети Internet с
помощью специального оборудования (hardware). Так, при доступе к
Сети, по телефонной линии, используется модем (от слов
"модулятор" и "демодулятор"; устройство, которое преобразует
цифровые сигналы ЭВМ в аналоговые сигналы в телефонной линии, и -
обратно). Драйвер это программа, которая управляет устройством.
Прикладное ПО обменивается информацией с драйверами.
Организацию такого взаимодействия берет на себя
операционная система, например ОС Windows или Unix). Современные
ОС, кроме того, предоставляют программам функции, реализующие
пользовательский интерфейс, обычно, это - так называемый
графический интерфейс. Программы, например в среде Windows, имеют
схожие элементы управления - кнопки, переключатели, меню и т.п.
ОС занимается рутинной работой по "обслуживанию" этих элементов.
ОС отслеживает действия пользователя, такие как нажатие на
кнопку и другие СОБЫТИЯ, такие как изменение показаний таймера
(часов); СООБЩЕНИЯ о событиях опрерационная система передает
программам, чтобы они могли обработать их и отреагировать
необходимым способом. Таким образом, функциональность ОС
составляет ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ между программами, а также
между программами и пользователем.
22.2. Задачи абонентского ПО для сети Internet
Компьютером называется устройство для хранения, обработки и
передачи информации. Когда компьютеры объединены в сеть, то
важным моментом становиться именно передача информации, связь
отдельных узлов в сети. Прикладная программа может быть запущена
на удаленном компьютере, тогда как абоненту нужны результаты ее
работы (по возможности, в виде удобном для работы с ними). Больше
- 4 -
того: в последнее время "модной" стала тема распределенных
вычислений, когда конкретная задача разбивается на части, каждая
из которых работает на разных машинах. Пример: проект SETI@Home,
в рамках которого на компьютерах обычных пользователей
обрабатываются данные от радиотелескопов с целью поиска внеземных
цивилизаций. Такая организация вычислений дает выигрыш в
вычислительной мощности распределенной системы и преимущество в
цене реализации проекта.
Вот другие, кроме ЦЕНЫ и ВЫЧИСЛИТЕЛЬНОЙ МОЩНОСТИ,
параметры, важные с точки зрения оценки абонентского ПО:
БЕЗОПАСНОСТЬ вычислений и связи, НАДЕЖНОСТЬ, СКОРОСТЬ, КОМФОРТ и
ДОСТУПНОСТЬ. Для разных групп пользователей эти параметры имеют
разные приоритеты:
Пользователи Internet работают в Сети дома или на работе.
Есть, хотя и не получили еще достаточного распостранения и другие
"формы Internet", скажем - мобильный Inernet, хотя интеграция
устройств мобильной связи с Сетью кажется производителям
оборудования и ПО очень перспективной темой и энергично
развивается, а параметр "доступности" становиться все более
важным для пользователей.
Домашние пользователи используют Internet для досуга,
образования и работы на дому. Игры и мультимедийная информация
(музыка, видео), чаты и прочее - то, что составляет "сетевой
досуг", а также то, что дома пользователь сам платит за
соединение с Сетью, ставят на первое место СКОРОСТЬ (с которой
компьютер пользователя обменивается данными с Сетью), ЦЕНУ и
КОМФОРТНОСТЬ работы.
Для коммерческих задач важнее другие параметры:
БЕЗОПАСНОСТЬ работы, НАДЕЖНОСТЬ, и, опять же, СКОРОСТЬ (в смысле
оперативность доступа к информации). Пример: взаимодействие
нескольких сотрудников компании, которые находятся дома, в
- 5 -
командировке или в офисе, с БАЗОЙ ДАННЫХ, которая находится на
сервере фирмы. ПО, реализующее такое взаимодействие должно быть и
безопасным и надежным, если речь идет о важной инфромации,
которую нельзя терять или разглашать; и это - действительно
сложная задача. Она включает организацию ИДЕНТЕФИКАЦИИ
пользователя, который запрашивает некоторую информацию,
поддержание надежного соединения между сервером и компьютером
сотрудника, контроль ЦЕЛОСТНОСТИ ДАННЫХ в базе (чтобы несколько
сотрудников, например, не могли одновременно править одну и ту же
запись в базе данных) и многое другое. Многие задачи такого рода
настолько нетривиальны, что компьютер сам по себе с ними не
справиться, поэтому за сервером и за внутренней сетью компании
обычно "присматривает" специалист - системный администратор.
Проблема улучшения указанных параметров стоит перед
производителями как аппаратного, так программного обеспечения.
Тем более, что в вычислительной технике трудно провести грань
между ответственностью ПО и "железа" (hardware) потому что
основная задача "железа" - обеспечение среды для работы ПО.
23. Технические составляющие абонентского ПО
23.1. Протоколы, пакеты и адреса
Internet - объединяет компьютеры и компьютерные сети в
глобальную Сеть. Это значит, что компьютеры (программы,
установленные на этих компьютерах, которые мы называем
абонентским программным обеспечением) могут взаимодействовать с
другими компьютерами в Сети, для совместного использования
данных. Типичным взаимодействием является взаимодействие
клиент/сервер, когда абонент (клиент) пользуется данным
какого-нибудь сервера и, возможно, изменяет их. Понятно, что
организация этого взаимодействия - весьма сложная задача,
учитывая, что Сетью пользуются миллионы людей и компьютеров. Эту
задачу решает семейство ПРОТОКОЛОВ TCP/IP (Transmission Control
- 6 -
Protocol/Internet Protocol - протокол управления
передачей/Internet-протокол). TCP/IP это техническая основа
Internet.
Логическую структуру абонентского (системного) программного
обеспечения, реализующего протоколы семейства TCP/IP в каждом
узле сети Internet, можно представить как иерархию модулей
реализующих различные аспекты TCP/IP. С одной стороны в эту
структуру входит драйвер устройства, с помощью которого
происходит подключение к сети, например драйвер модема или
сетевой карты Ethernet; драйвер находится внизу иерархической
структуры. С другой стороны находится различное прикладное ПО,
которое различается в зависимости от выполняемых функций;
модули прикладных программ это вершина иерархии.
Между ними находятся (на одном уровне в иерархии) модули
TCP и UDP (UDP - User Datagram Protocol, протокол
пользовательских дэйтаграмм - это протокол пересылающий данные по
принципу "fire-and-forget", "послал и забыл", то есть без
проверки того, что данные дошли до получателя). Ниже, после этих
модулей, находится модуль IP, который, в частности, хранит
IP-адрес - адрес данной машины в Сети. Эта иерархическая
структура называется СТЕК ПРОТОКОЛОВ.
Драйвер отвечает за "уровень сетевого интерфейса", уровень
взаимодействия с конкретной физической средой передачи данных.
Один компьютер может иметь несколько IP-адресов (каждый по четыре
байта, адреса в Internet - уникальны, то есть одинаковых быть не
должно). Если адресов несколько, значит есть несколько драйверов,
то есть есть несколько устройств доступа к сети; например,
несколько модемов. Такой компьютер может быть ШЛЮЗОМ, то есть
пересылать данные из одной сети в другую; вместе такие сети
образуют Internet, а TCP/IP предназначен именно для межсетевых
взаимодействий. Модули TCP и UDP отвечают "транспортный уровень"
стека протоколов, модуль IP находится на "межсетевом уровне".
- 7 -
Потоки данных в Сети передаются отдельными блоками, которые
называются ПАКЕТЫ. Пакеты содержат собственно данные (фрагменты
текста, фото, программ...) и служебную информацию - IP-адрес
отправителя, адрес получателя, номер ПОРТА (определяет конкретную
прикладную программу) и т.п. Пакеты от одной машины к другой,
например, от сервера "Всемирной Паутины" (World Wide Web) к
компьютеру в Интернет-кафе, идут различными путями, проходя
различные шлюзы; такая организация потоков данных обеспечивает
надежность Сети - даже если один из шлюзов выйдет из строя,
пакеты дойдут до получателя через другие шлюзы. Когда пакет
попадает в шлюз (компьютер, подключенный к нескольким сетям, к
нескольким линиям связи), модуль IP из стека протоколов проверяет
адрес назначения пакета. Если это не адрес данной машины, то
модуль IP РЕТРАНСЛИРУЕТ пакет дальше, в другую сеть; более точное
определение шлюза (gateway) - машина, которая ретранслирует
пакеты в другую сеть. Иногда шлюз называют IP-маршрутизатором
(IP-router), потому что модуль IP (на основании так называемой
таблицы маршрутизации) принимает решение куда ретранслировать
пакет, то есть осуществляет МАРШРУТИЗАЦИЮ, а не просто передает
пакеты куда угодно дальше. За содержанием таблицы маршрутизации
следит системный администратор; ошибки при составлении маршрутов
могут заблокировать передачи.
Когда, модуль IP получил пакет, предназначенный для данной
машины, он передает его выше, в модуль TCP или UDP, в зависимости
от значений специальных полей в ЗАГОЛОВКЕ пакета (в служебной
информации). Дальше, модуль транспортного уровня решает, какой
прикладной программе предназначен пакет, в зависимости от
значения поля "порт" в заголовке пакета.
Существует два транспортных протокола - TCP и UDP, потому
что они решают разные задачи. В случае UDP связь не надежна, но
ее проще организовать и она может пригодиться, если надежность
доставки пакетов - не обязательна. Протокол TCP сложнее,
- 8 -
его реализация требует больше затрат ресурсов процессора, но он,
зато, обеспечивает надежное соединение: два модуля TCP на разных
машинах устанавливают соединение, "виртуальный канал", и следят
за состоянием этого соединения. Они могут одновременно посылать
друг другу данные, причем протокол требует обязательного
подтверждения о приеме каждого пакета.
23.2. Типы прикладного абонентского ПО в Internet
На вершине стека протоколов находится прикладное ПО, ради
функциональности которого и создана Сеть. В последнее время все
больше внимания привлекает один "сегмент" Сети - система World
Wide Web. Считается, что уже сегодня большинство серьезных
программ являются сайтами WWW или, хотя бы "ориентированы на
взаимодействие" с WWW.
При адресации во "Всемирной Паутине" (WWW) используются не
просто IP-адреса, а URL (Uniform Resouce Locators, обобщенные
указатели ресурсов). Они состоят из четырех элементов, например,
адрес "http://www.something.ru:80/index.html" означает следующее:
"http" - название протокола, который используется прикладной
программой, "80" - номер порта, "index.html" - имя конкретного
файла, а "www.something.ru" преобразуется в Сети в четырехбайтный
IP-адрес, причем "ru" в конце адреса соответствует ДОМЕНУ -
большой группе сайтов WWW; конкретно "ru" - имя домена для России
(RUssia). САЙТОМ в системе WWW принято называть группу
гипертекстовых документов, организованных в единую систему,
принадлежащую одному владельцу.
Для работы со Всемирной Паутиной основной прикладной
программой является БРАУЗЕР (browser, "бродилка"). Браузер
работает с протоколом HTTP (HyperText Transfer Protocol, протокол
передачи гипертекста) и предназначен для просмотра Web-страниц
(гипертекстовых документов). На транспортном уровне стека
протоколов используется модуль TCP; таким образом модули в стеке
- 9 -
протоколов взаимодействуют следующим образом:
HTTP / TCP / IP / драйвер
(соответственно прикладной /траспортный / межсетевой и / сетевой
уровни стека протоколов). Устройство, которым управляет драйвер,
работает с физической средой передачи данных. Если это устройство
- модем, подключенный к телефону, то используется еще и SLIP
(протокол подключения к сети через телефонную линию).
Эволюция World Wide Web демонстрирует тенденции развития
абонентского ПО: Основной формат документов в Сети это - HTML
(HyperText Markup Language, язык разметки гипертекста), то есть
Web-страницы состоят из текста, размеченного специальным образом.
Разметка позволяет создавать связи между документами с помощью
ссылок, что и делает из простого текста - гипертекст - мощное
изобретение, делающее представление информации нелинейным, то
есть текст читается не подряд, как в книге, а читателю
предоставляется возможность самому выбирать порядок изучения
материала. Это элемент ИНТЕРАКТИВНОСТИ, "обратной связи"
читающего с текстом. Это также заметное явление, которое уже
значительно повлияло на общество и современную психологию
восприятия источников информации.
Другая важная вещь, касающаяся HTML, это то, что он
позволяет создавать различное стилевое оформление документов,
задавать структуру документов и делать составные документы из
разнородных составляющих. Другими словами на Web-странице можно
писать разными шрифтами и цветами, вставлять в нее таблицы,
списки, фотографии, видео- и звуковые фрагменты. Тенденция таким
образом состоит в том, чтобы придавать документам МУЛЬТИМЕДИЙНЫЙ
характер.
Стремление к мультимедийности и интерактивности приводит к
бурному развитию HTML, а то, что есть на сегодня - уже очень
привлекательно для огромного количества пользователей. Интерфейс
Web удобен не только для предоставления статической информации,
- 10 -
но и в качестве универсального интерфейса для взаимодействия
программ и машин с людьми. Для внесения интерактивности в состав
Web-документа могут быть встроены целые программы - АППЛЕТЫ и
СКРИПТЫ (которые можно рассмотреть, как специальный вид
абонентского ПО в Internet).
Браузер - сложная программа, он должен уметь правильно
отображать все элементы оформления, поддерживать соединение с
сетью и т.д. Кроме того, в браузер бывает встроен интерпретатор
скриптов, которые, например, могут обрабатывать данные введенные
пользователем в специальных ФОРМАХ на Web-странице, генерировать
код HTML (динамически создавать новые HTML-документы) и проч.
В браузере бывает и среда, в которой выполняются заранее
ОТКОМПИЛИРОВАННЫЕ апплеты. То есть апплеты это программы, которые
уже переведены со специального языка программирования в вид,
готовый для выполнения на компьютере. Важно, также, что
Web-страница бывает устроена еще сложнее - уже после того, как
пользователь скачал ее, она может продолжать взаимодействовать с
сервером, с которого ее скачали. Например, пользователь может
оставить запись в "гостевой книге" на каком-нибудь сайте; для
этого он пишет свою запись в специальной форме на страничке
сайта, представляющей гостевую книгу и отправляет данные на
сервер. При этом перед отправкой, как правило бывает, что
встроенный в страницу скрипт проверяет корректность заполенния
всех полей формы, а скрипт на сервере, которому отправляются
данные - вносит их в базу данных гостевой книги.
"Война браузеров" несколько лет назад, когда развернулась
жесткая конкуренция между продуктами фирм Microsoft и Netscape,
показала, что рынок ПО для Internet и, вообще, Internet -
экономически привлекательны. Ажиотаж вокруг Internet'а говорит о
том же; примеры - скандал с системой обмена музыкальными файлами
Napster и успех ОС Linux, разработка которой была бы невозможна
без Internet. Сегодня мы уже видим рекламу интернетовских сайтов
по телевидению... И еще кое-что об Internet-экономике: там
- 11 -
уже появляются новые бизнес-модели, тот же Linux, например и его
модель разработки и продажи ПО с "открытыми исходниками"
(открытыми для копирования и развития текстами программ). Суд над
организаторами системы Napster, в свою очередь, продемонстрировал
несовершенство законодательства. Другой пример на ту же тему -
отмена в США закона запрещавшего экспорт ПО, обеспечивающего
надежное шифрование данных... Журналисты прогнозируют скорое
появление надежных и доступных систем для платежей и
микроплатежей через Internet, что тоже должно положительно
сказаться на экономике.
Интересно, что в "традиционное" программное обеспечение
проникает мода на оформление программ в стиле Web. Имеются в виду
так называемые "СКИНЫ", когда пользователь может менять интерфейс
программы на свой вкус...
Следующий протокол прикладного уровня, который мы упомянем,
это - FTP - File Transfer Protocol, протокол передачи файлов.
FTP-клиенты это программы, поддерживающие передачу информации
(файлов) по этому протоколу. Такие программы используют для
работы с FTP-серверами, на которых храняться различные файлы,
часто это - коллекции ПО. Другая сфера применения FTP - создание
Web-страниц; так создатель сайта может "выложить" ("закачать")
файл со свежей версией какого-нибудь документа на свой сайт. Для
защиты информации на сайте, он устанавливает FTP-соединение,
используя пароль. Кстати, необходимость "поддержки" сайта - еще
одна интересная черта WWW; сайт, как правило, все время
развивается и обновляется, что делает его похожим больше на
газету, чем на книгу.
Третий протокол, точнее даже два протокола прикладного
уровня TCP/IP, нужны для электронной почты (e-mail). Протокол POP
предназначен для чтения писем, а протокол SMTP - для их отправки.
Пользователи e-mail имеют на каком-либо сервере (на сервере
провайдера, на общедоступном типа mail.ru, на работе или в
- 12 -
институте) "почтовый ящик", из которого, зная пароль и используя
специальное ПО, они могут скачать пришедшие письма.
Этот сервис Internet чрезвычайно популярен. В мире больше
50 миллионов пользователей e-mail. Интересно, что одна из лучших
почтовых программ - the Bat! - почти отечественный программный
продукт, ее авторы живут на территории бывшего СССР. Переписка с
помощью электронной почты самый быстрый и дешевый способ общения,
если корреспонденты живут, например, в разных странах. Проблема
электронной почты - отсутствие анонимности - злоумышленники или
спецслужбы довольно легко могут перехватить сообщения. Поэтому
для передачи важной конфиденциальной информации, например в
случае диссидентов в тоталитарных государствах, можно
зашифровывать свои сообщения. Для этого существует специальное
программное обеспечение, причем наиболее надежными, в смысле
стойкости от взлома, считаются программы, алгоритм работы которых
известен и проанализирован большим количеством экспертов по
КРИПТОГАРФИИ (шифрованию).
Понятие о безопасности, включает в себя не только способы
помогающие сохранить анонимность работы в Сети, но и защиту от
активных атак на абонента Сети, в частности - защиту от
компьютерных вирусов. Антивирусные пакеты, таким образом тоже
представляют из себя вид абонентского ПО Internet. Пример
антивируса - отечественный пакет AVP, а авторитетным
криптографическим приложением является американский пакет PGP.
24. Заключение
Мы упомянули далеко не все протоколы Internet'а и не все
типы абонентского ПО, это малореально и не нужно, потому что
стареют и выходят из употребления протоколы TCP/IP. Другие,
наоборот, появляются. То же самое происходит с прикладным
программным обеспечением. Так, например, мы не упомянули сетевого
ПО связанного с образованием (просто программы такого рода
- 13 -
пока очень мало распостранены и несовершенны).
Бурное развитие Сети предвещает еще много нового
интересного и полезного ПО. Хотя, конечно, будут и проблемы,
например, уже существует проблема дефицита доменных имен второго
уровня в World Wide Web (в следующем, 2001 году, в связи с этим,
должны начать функционировать несколько новых доменов первого
уровня).
Общая тенденция состоит в том, чтобы "привязывать" любую
программу к Internet. Как минимум - упомянуть в заставке e-mail
автора программы; иногда программы умеют сами скачивать
обновления к самим себе из Сети... Эта тенденция вполне
объяснима: программисты предчувствуют грядущую повсеместность
Интернета; и в этом нет ничего плохого. Интернет - действительно
потрясающее явление, во всех смыслах "глобальная" сеть.
2Список литературы
1. "Семейство протоколов TCP/IP", Т.Соколофски, К.Кэйл,
пер. с англ. - А.Ф.Брежнева и Р.Л.Смелянского.
2. Журнал "Компьютерра" и сайт www.computerra.ru
3. Журнал "Подводная лодка", сайт - www.submarine.ru
4. "HTML в примерах", А.Гончаров, СПб, 1997
5. "Модемы: тонкости, хитрости и секреты", А.Высоткин,
М., 1999