090103 Лекции Вычислительная техника и программирование 2011. Конспект лекций по курсу вычислительная техника и автоматика разделы основы вычислительной техники
Скачать 0.57 Mb.
|
Глава 2. Операционные системы 2.1. Определение, назначение и характеристики операционной системы Операционная система (ОС) — это пакет системных программ, выполняющих управление прикладными программами и управляющих работой устройств вычислительной системы. Назначение ОС: 1) запуск и управление работой прикладных программ и предоставление им виртуальной машины — услуг, организующих и упрощающих взаимодействие с оборудованием; 2) управление устройствами ввода-вывода и другим оборудованием. Операционная система выполняет следующие основные системные функции по управлению локальными ресурсами компьютера: o запуск системных и прикладных процессов и управление ими; o управление оборудованием с помощью ввода-вывода; o управление размещением данных в оперативной памяти; o управление файловой системой — набором файлов и каталогов. Для выполнения данных функций ОС имеет соответствующие подсистемы, которые описаны ниже. По количеству одновременно выполняющихся процессов ОС подразделяются на две основные группы: однозадачные и многозадачные. Большинство современных ОС являются многозадачными. По количеству одновременно работающих пользователей ОС подразделяются на однопользовательские и многопользовательские. 2.2. Управление процессами Ниже рассматривается упрощенная схема работы персонального компьютера (рис. 7). Объяснение данной схемы является важным обобщением материала, изученного в предыдущей главе, и послужит полезным руководством для дальнейшего освоения материала. Опишем принцип схему работы компьютерных программ. Напомним, что процессом называется компьютерная программа, запущенная на выполнение. Операционная система — это первый процесс, появляющийся в компьютере после его включения. ОС загружается (поз. 5) центральным процессором (поз. 1) автоматически с накопителя (поз. 4) в оперативную память (поз. 2). ОС загружается при запуске или перезапуске компьютера и работает непрерывно в автоматическом режиме. Работа компьютера без ОС невозможна. При работе компьютера вся информация проходит через связующее устройство — системную шину (поз. 3). При работе компьютера центральный процессор, выполняя команды операционной системы, загружает и запускает другие программы (поз. 6), образуя многозадачную среду. По окончании работы процесса он выгружается из памяти операционной системой, освобождая место. Рис. 7 Упрощенная схема работы ПК. В многозадачных системах остро стоит вопрос исключения конфликтов при совместном использовании общих аппаратных ресурсов и областей оперативной памяти. Поэтому в многозадачных ОС существуют сложные механизмы взаимных исключений и критических секций. При запуске каждого процесса операционной системой ему отводится отдельная область оперативной памяти — адресное пространство. Другие процессы не имеют доступа к нему, чтобы не нарушить стабильность работы процесса и всей системы. В ОС многонитевой обработки процессы могут разбиваться программистом- разработчиком на несколько нитей — отдельных частей одного процесса, выполняющихся одновременно. Это делается для повышения производительности программы. Нити процесса имеют одновременный доступ к адресному пространству этого процесса. 2.3. Организация ввода-вывода Для понимания принципов организации ввода-вывода необходимо ознакомиться с перечнем и назначением устройств ввода-вывода, описанных в предыдущей главе. При организации взаимодействия с устройствами используют разбиение программных средств на уровни, как показано на рис. 8. При этом выделяются пользовательский, прикладной, системный и аппаратный уровни. Рис. 8 Организация ввода-вывода. Рис. 8 — не что иное, как рисунок 1, б) в развернутом виде. Команды пользователя преобразуются прикладной программой в системные вызовы библиотек ОС. Библиотека — программа или подпрограмма, содержащая набор часто используемых функций, собранных в один файл для дальнейшего использования другими программами. Библиотеки (или ядро операционной системы) выполняют вызовы функций драйверов. Драйвер — это системная программа, управляющая работой контроллера устройства ввода-вывода. Контрoллер — электронное устройство, управляющее исполнительными устройствами (механикой, оптикой, электроникой), которые непосредственно взаимодействуют с носителями информации. Порт — буферное устройство в составе любого контроллера, через которое осуществляется ввод и вывод информации с помощью драйвера. 2.4. Управление памятью Чем выше скорость работы носителя информации, тем выше его стоимость в расчете на 1 Мб емкости. Каждый мегабайт емкости накопителей обходится гораздо дешевле, чем ОЗУ, поэтому жесткие диски имеют значительно больший объем. Поэтому в современных ОС широко используются технологии виртуальной памяти и кэширования. Опишем их. Поскольку дорогостоящей физической оперативной памяти часто не хватает для размещения всех процессов и их данных, в современных ОС широко используется принцип виртуальной памяти. Виртуальный — значит обладающий некоторыми несуществующими на самом деле свойствами. В данном случае виртуальная память — это несуществующая оперативная память, образованная за счет жесткого диска. Принцип заключается в следующем. Данные, к которым достаточно долго не было обращения, выгружаются системой на жесткий диск, освобождая области оперативной памяти. Таким образом, виртуальная память системы — это специальная область на диске, размер которой может быть в 2-3 раза больше размера физического ОЗУ. При необходимости ОС автоматически осуществляет перемещение данных между виртуальной и физической памятью. Полная память в системе равна сумме физической и виртуальной памяти. Разновидностью виртуальной памяти является подкачка (свопинг) — полная выгрузка простаивающего процесса на диск вместе с его данными до момента «пробуждения» этого процесса. Рис. 9 Принципы виртуальной памяти и кэширования. При управлении памятью для ускорения передачи данных широко используется механизм, называемый кэшированием. Суть его состоит в том, что при передаче информации наиболее часто используемые данные помещаются в промежуточную, более быструю память. Например, при многократном обращении процессора к одним и тем же данным на диске они запоминаются в специальной области оперативной памяти. При повторном обращении уже не нужно использовать медленное механическое устройство диска для считывания данных, а достаточно считать их из оперативной памяти — более быстрого электронного устройства, не имеющего механических движущихся частей. 2.5. Файловая система Файл — это упорядоченный набор данных на накопителе. Файл является основной единицей хранения данных на накопителях. Файлы условно подразделяются на документы, программы и различные служебные файлы. Документы, в свою очередь, подразделяются по видам информации на текстовые, графические и т. д. Как правило, файлы имеют имя, дату и время создания, размер в байтах и некоторые другие свойства. С помощью данных свойств легко идентифицировать файлы и искать их на накопителях. Для упорядоченного хранения файлов накопители часто разбиваются на разделы. Более мелкой структурой, в которой хранятся файлы, являются каталоги (папки). Файловой системой называется порядок хранения данных на накопителе. Файловая система описывает формат представления файлов, каталогов и различной служебной информации на накопителях. Практически каждая ОС работает с собственной файловой системой, часто несовместимой с файловыми системами других ОС. Программное обеспечение в составе ОС для управления файлами также называется файловой системой. 2.6. Современные операционные системы и их краткие характеристики Наиболее распространенными семействами современных ОС являются UNIX/Linux, Windows и Windows NT. UNIX — одна из наиболее старых, тем не менее, очень производительная и надежная ОС. Еѐ клоны (варианты) для персональных компьютеров — Linux, FreeBSD и OpenBSD — становятся все более популярным благодаря традиционной для UNIX скорости и отказоустойчивости, а также дешевизне и открытости исходных текстов программ, составляющих систему. Клоны UNIX применяются чаще всего для больших машин, серверов, и популярны среди системных администраторов и разработчиков программного обеспечения. Семейство Windows представляет собой распространенные пользовательские ОС. Они сочетают в себе удобство, простоту и скорость работы. Основные представители данного семейства — Windows 95, Windows 98. Из-за невысокой надежности эти ОС постепенно сменяются системами следующего семейства. ОС Windows NT сочетают в себе удобство и простоту использования Windows и стабильность серверных операционных систем. Представителями данного семейства являются Windows NT 4.0, Windows 2000, Windows XP, Windows .NET Server. Рассмотрим вопросы совместимости. Как и любая другая программа, ОС, написанная для одной аппаратной платформы, не может быть непосредственно запущена на компьютере аппаратно несовместимой платформы. Программа, разработанная для ОС одного семейства, довольно часто не может быть непосредственно запущена на ОС другого семейства. Поэтому ОС программно совместимы полностью или только частично. На этом кратком обзоре заканчивается рассмотрение локальных характеристик вычислительных систем и начинается освещение вопросов, связанных с передачей информации между компьютерами. Вопросы и задания 1) Определение и назначение операционной системы 2) Опишите схему работы компьютера с точки зрения выполнения процессов. 3) Осветите назначение основных уровней схемы организации ввода-вывода. Какую роль играет ОС в процессе ввода-вывода? 4) Зачем, по-вашему, в компьютере одновременно используются противоположные по принципу работы механизмы виртуальной памяти и кэширования? 5) Перечислите основные семейства современных операционных систем и их характеристики. Глава 3. Общие сведения о компьютерных сетях 3.1. Определение, терминология и назначение компьютерных сетей В общем случае сетью связи является распределенная система коммуникаций, служащая для передачи информации на расстоянии. К ним относятся теле- и радиовещательные сети, сети телефонной и сотовой связи, сети кабельного телевидения и т. д. Синоним связи — передача данных. Понятие телекоммуникационная сеть подразумевает территориально распределенную сеть передачи данных. Отдельный компьютер — пример централизованной вычислительной системы. В отличие от централизованной, вычислительная сеть — распределенная вычислительная система. Это совокупность компьютерной и коммуникационной техники, каналов связи и специального программного обеспечения, управляющего процессом распределенных вычислений между членами данной сети. Поскольку в последнее время повысилась роль передачи нечисловой информации через вычислительные сети, теперь для них часто используется термин сеть передачи данных. Чтобы избежать путаницы с сетью связи, в которых также передаются данные, для вычислительной сети применяется термин компьютерная сеть. Компьютерные сети служат для выполнения следующих задач: o проведения распределенных вычислений; o организации доступа при централизованной (серверной) обработке информации; o общего использования аппаратных ресурсов; o оперативного поиска и получения данных в корпоративных ресурсах; o оперативного поиска и получения различной информации в глобальных сетях; o обмена сообщениями, переписки, передачи информации различных видов и т. д 3.2. Общие понятия. Сетевые топологии Любая сеть состоит из узлов и соединяющих их линий связи. Узлы бывают конечными и промежуточными. Конечный узел имеет 1 соединение с линией связи, промежуточный — более одного. Узлы сети могут быть станциями (хостами, компьютерами-членами сети), либо специальным коммуникационным оборудованием (на рис. 10 узлы, обозначенные символом « »). Простейшая сеть содержит 2 узла-станции (рис. 10, а). Сетевая топология — это граф связей компьютерной сети, то есть тип соединения узлов и линий связи. Различают следующие основные сетевые топологии (рис. 10): o типовые: а) точка-точка — содержит 2 узла; б) шина (линейная сеть) — содержит только два оконечных узла, любое число промежуточных узлов и имеет только один путь между любыми двумя узлами; в) звезда — сеть, в которой имеется только один промежуточный узел; г) дерево (иерархическая звезда) — сеть, которая содержит более двух оконечных узлов и по крайней мере два промежуточных узла, и в которой между двумя узлами имеется только один путь; д) кольцо — сеть, в которой к каждому узлу присоединены только две ветви; o производные: е) смешанная (комбинированная) — образована соединением типовых; ж) полносвязная — каждый узел соединен со всеми остальными; з) ячеистая — сеть, которая содержит по крайней мере два узла, имеющих два или более пути между ними (вид смешанной, в которой разделение на типовые топологии не просматривается явно); Рис. 10 Основные сетевые топологии. Линии, связывающие узлы сети передачи данных, называются каналами передачи данных или каналами (линиями) связи. Физические среды, используемые для каналов связи, будут рассмотрены в этой главе ниже. Некоторые важные понятия. Трафиком называется поток данных по каналу связи или через сетевое устройство, а также объем этого потока в байтах. Протоколом называются правила передачи информации по сети. Адресом узла сети (сетевым адресом) называется его уникальный идентификатор, описывающий местона-хождение узла сети и позволяющий пересылать информацию именно этому узлу. Уточненное определение протокола и более подробно об адресации в компьютерных сетях будет рассказано в этой главе при изучении модели OSI. 3.3. Классификация и характеристики компьютерных сетей Диаметром сети называется расстояние между двумя наиболее удаленными друг от друга станциями данной сети. Компьютерные сети подразделяются в зависимости от диаметра сети и типа используемого оборудования на следующие виды (в скобках указан приблизительный диапазон диаметров): o локальные (1-3000 м) — объединяют компьютеры в пределах нескольких зданий; o кампусные (100-10000 м) — локальные сети масштаба «кампуса» — небольшого городка; o городские (5-20 км) — высокоскоростные каналы связи в пределах большого города; o региональные (территориальные) (100-1000 км) — объединяют компьютеры географической области; o глобальные (10000-20000 км) — объединение компьютеров в различных частях света (Интернет). Важнейшая характеристика компьютерной сети — ее пропускная способность. Пропускная способность (битовая скорость передачи информации) — это количество информации, которое можно передать по данной сети за единицу времени. Пропускная способность измеряется в бит/с. 1 бит/с равен 1 биту информации, переданному за 1 с. Используются кратные единицы: кбит/с, Мбит/с, Гбит/с. 3.4. Среды передачи данных В качестве носителей информации в современной коммуникационной технике используются электромагнитные сигналы в виде колебаний различных частот. Под средой передачи данных (связи) понимается физическая среда, по которой распространяется сигнал при его прохождении по линии связи. В линиях связи используются 2 основные технологии: проводниковая и беспроводная. 3.5. Коммуникационное оборудование К коммуникационному оборудованию (сетевым устройствам) относятся специальные устройства для соединения линий связи, усиления сигнала, образования нужной сетевой топологии, адресной пересылки данных, защиты информации и т. д. Пассивное коммуникационное оборудование — всевозможные соединители, разъемы, терминаторы (заглушки) и т. д. К активным оконечным сетевым устройствам относится сетевая карта (сетевой адаптер) и модем — устройства, соединяющие компьютер с линией связи. Ранее маршрутизаторы часто называли шлюзами, теперь под шлюзом понимается специальный компьютер или аппаратное устройство на стыке двух сетей. Одной из функций шлюзов является перевод данных между сетями с отличающимися протоколами. Маршрутизация в шлюзах сводится только к соединению двух подсетей. Межсетевой экран (брандмауэр) — это шлюз, фильтрующий трафик, поступающий в сеть, для борьбы с несанкционированным доступом из внешних по отношению к ней сетей. 3.6. Модель межсетевого взаимодействия ISO/OSI Изложенный в данном пункте материал предназначен для более глубокого понимания процессов сетевого взаимодействия и является первой темой, изучаемой будущими разработчиками сетевого программного обеспечения, сетевым инженерами и системными администраторами. Поскольку задача передачи информации на большие расстояния и между большим количеством станций сложнее проблемы ввода-вывода в отдельно стоящем компьютере, эта задача разбивается на отдельные подзадачи различного уровня. Процесс разбиения задачи на подзадачи называется еѐ декомпозицией. Международная Организация по Стандартам (International Standards Organization, ISO) разработала модель, которая определяет различные уровни взаимодействия систем, дает им стандартные имена и указывает, какую работу должен делать каждый уровень. Эта модель называется моделью взаимодействия открытых систем (Open System Interconnection, OSI) или моделью ISO/OSI. Рис. 11 Модель взаимодействия открытых систем ISO/OSI. Опишем кратко процесс передачи информации в компьютерных сетях, опираясь на модель OSI (рис. 11). Уровни 1-2 — это, в основном, коммуникационное оборудование и их драйверы. Уровень 3 представлен маршрутизаторами и сетевым программным обеспечением. Уровни 4-7 — различные сетевые программы. При появлении в Вычислительной системе 1 (ВС1) необходимости передачи информации по сети для Вычислительной системы 2 (ВС2) сетевая программа в ВС1 автоматически передает ее вниз по уровням, начиная с прикладного. Формат данных, правила их преобразования при переходе между двумя соседними уровнями называются интерфейсом. При переходе на представительский уровень сообщение преобразуется другой служебной программой. К нему добавляется различная служебная информация в виде заголовков и иногда концевиков, содержащих, в числе прочего, информацию для контроля правильности доставки. Сообщение также может различным образом кодироваться. Затем сообщение передается программе сеансового уровня, на котором также происходит вложение сообщения в «конверт» из заголовка и концевика. Такой процесс вложения называется инкапсуляцией сетевых блоков данных. То же происходит на транспортном и сетевом уровнях. Здесь для эффективной передачи по сети сообщение может быть разбито на более мелкие блоки — пакеты. В заголовки пакетов, в числе прочего, включается такая важнейшая для доставки информация, как адрес узла назначения — какой станции нужно доставить пакет. На канальном уровне блоки данных имеют название кадры. На физическом уровне информация кодируется в электромагнитные сигналы, которые передаются по линиям связи. При приеме сигнала в ВС2 происходит обратное прохождение информации по уровням от 1 до 7. Программы и аппаратура ВС2 преобразуют информацию согласно установленным правилам. После прикладного уровня сообщение приобретает вид, пригодный для использования программами или пользователем. Таким образом, сетевым программам и драйверам каждого из уровней 2-7 не нужно вникать в подробности проблем доставки нижних уровней. Программы ВС1 работают с такими же программами в ВС2, используя виртуальную связь, каждая на своем уровне. Формат данных, правила их передачи между двумя узлами на одном уровне называются сетевым протоколом. Компьютеры с различными протоколами несовместимы для передачи данных. Виды сетевых протоколов будут описаны ниже в этой главе. Стеком (семейством) протоколов называется стандартизованный набор протоколов, охватывающий нескольких уровней. Раньше фирмы выпускали компьютеры и сетевое оборудование, поддерживающие только свои стеки протоколов, из-за чего возникали проблемы несовместимости. Сейчас все популярные стеки протоколов стали включаться в состав сетевых операционных систем различных производителей. Наиболее распространенные стеки коммуникационных протоколов — TCP/IP, NetBIOS/SMB, IPX/SPX. Рассмотрим назначение и функции каждого уровня модели OSI более детально. Рекомендуется также доступное объяснение, приведенное в работе [4]. 1) Физический уровень 1)определяет электротехнические, механические, процедурные и функциональные характеристики активации, поддержания и дезактивации физического канала связи между конечными системами. Спецификации физического уровня определяют такие характеристики, как уровни напряжений, синхронизацию изменения напряжений, физическую (битовую) скорость передачи информации, максимальные расстояния передачи информации, физические соединители и другие аналогичные характеристики. Этот уровень имеет дело с передачей сигналов по физическим каналам, таким, например, как коаксиальный кабель, витая пара или оптоволоконный кабель. К этому уровню имеют отношение характеристики физических сред передачи данных, такие, как полоса пропускания, помехозащищенность, волновое сопротивление и другие. На этом же уровне определяются характеристики электрических сигналов, такие как требования к фронтам импульсов, уровням напряжения или тока передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме этого, здесь стандартизуются типы разъемов и назначение каждого контакта. Функции физического уровня реализуются во всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются оконечными активными сетевыми устройствами — сетевой картой и модемом. Повторители являются единственным типом оборудования, которое работает только на физическом уровне. Примером протокола физического уровня может служить спецификация 10Base-T технологии Ethernet, которая определяет в качестве используемого кабеля неэкранированную витую пару категории 3 с волновым сопротивлением 100 Ом, разъем RJ-45, максимальную длину физического сегмента 100 метров, манчестерский код для представления данных на кабеле, и другие характеристики среды и электрических сигналов. 2) Канальный уровень (формально называемый информационно-канальным уровнем) обеспечивает надежный транзит данных через физический канал. Выполняя эту задачу, канальный уровень решает вопросы физической адресации (в противоположность сетевой, логической адресации), топологии сети, линейной дисциплины (каким образом конечной системе использовать сетевой канал), уведомления о неисправностях, упорядоченной доставки блоков данных и управления потоком информации. Так как на физическом уровне пересылаются просто сигналы, при этом не учитывается, что в некоторых сетях, в которых линии связи используются (разделяются) попеременно несколькими парами взаимодействующих компьютеров, физическая среда передачи может быть занята. Поэтому одной из задач канального уровня является проверка доступности среды передачи. Другой его задачей является реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами (frame). Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность битов в начало и конец каждого кадра, чтобы отметить его, а также вычисляет контрольную сумму, суммируя все байты кадра определенным способом и добавляя контрольную сумму к кадру. Когда кадр приходит, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. В локальных сетях протоколы канального уровня используются компьютерами, мостами, коммутаторами и маршрутизаторами. В компьютерах функции канального уровня реализуются совместными усилиями сетевых адаптеров и их драйверов. 3) Сетевой уровень — это комплексный уровень, который обеспечивает возможность соединения и выбор маршрута между двумя конечными узлами, подключенными к разным «подсетям», которые могут находиться в разных географических пунктах. Так как две конечные системы, желающие организовать связь, может разделять значительное географическое расстояние и множество подсетей, важнейшая задача сетевого уровня — маршрутизация. Протоколы маршрутизации выбирают оптимальные маршруты через последовательность соединенных между собой подсетей. Протокол канального уровня обеспечивает доставку данных между любыми узлами только в сети с соответствующей типовой топологией (звезда, кольцо, дерево). Это очень жесткое ограничение, которое не позволяет строить сети с развитой структурой (ячеистые, смешанные), например, сети, объединяющие несколько сетей предприятия в единую сеть, или высоконадежные сети, в которых существуют избыточные связи между узлами. Для того чтобы с одной стороны сохранить простоту процедур передачи данных для типовых топологий, а с другой стороны допустить использование произвольных топологий, вводится дополнительный сетевой уровень. На этом уровне вводится более узкое понятие «сеть». В данном случае термин сеть (или подсеть) означает совокупность компьютеров, соединенных между собой в соответствии с одной из типовых топологий и использующих для передачи данных один из протоколов канального уровня, определенный для этой топологии. Таким образом, внутри сети доставка данных регулируется канальным уровнем, а вот доставкой данных между сетями занимается сетевой уровень. Блоки данных сетевого уровня принято называть «пакетами» (packet). При организации доставки пакетов на сетевом уровне используется понятие «номер сети». В этом случае адрес получателя состоит из номера сети и номера компьютера в этой сети. Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизатор — это устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Для того чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач («хопов» – hops) между сетями, каждый раз выбирая подходящий маршрут. Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет. Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является главной задачей сетевого уровня. Эта проблема осложняется тем, что самый короткий путь не всегда самый лучший. Часто критерием при выборе маршрута является время передачи данных по этому маршруту; оно зависит от пропускной способности каналов связи и интенсивности трафика, которая может изменяться с течением времени. Некоторые алгоритмы маршрутизации пытаются приспособиться к изменению нагрузки, в то время как другие принимают решения на основе средних показателей за длительное время. Выбор маршрута может осуществляться и по другим критериям, например, надежности передачи. На сетевом уровне определяется два вида протоколов. Первый вид определяет правила передачи пакетов конечных узлов. Другой вид протоколов — служебные протоколы обмена маршрутной информацией, с помощью которых маршрутизаторы собирают информацию о топологии межсетевых соединений. Протоколы сетевого уровня реализуются программными модулями операционной системы, а также программными и аппаратными средствами маршрутизаторов. Начиная с транспортного уровня, все вышележащие протоколы реализуются программными средствами, обычно включаемыми в состав сетевой операционной системы. Примерами протоколов сетевого уровня являются протокол межсетевого взаимодействия IP стека TCP/IP и протокол межсетевого обмена пакетами IPX стека Novell. 4) Транспортный уровень. Граница между транспортным и сеансовым уровнями может быть представлена как граница между протоколами прикладного уровня и протоколами низших уровней. В то время как прикладной, представительский и сеансовый уровни заняты прикладными вопросами, четыре низших уровня решают проблемы транспортировки данных. Канальный уровень занимается доставкой данных, сетевой — маршрутизацией, общая задача 2 и 3 уровня — доставка пакета к станции назначения. Одной из важнейших задач 4-го, транспортного уровня является доставка пакета нужному процессу, запущенному на данной станции, так как таких процессов может быть несколько. Транспортный уровень пытается обеспечить услуги по транспортировке данных, которые избавляют высшие слои от необходимости вникать в ее детали. В частности, заботой транспортного уровня является решение таких вопросов, как выполнение надежной транспортировки данных через объединенную сеть. Предоставляя надежные услуги, транспортный уровень обеспечивает механизмы для установки, поддержания и упорядоченного завершения действия виртуальных каналов, систем обнаружения и устранения неисправностей транспортировки и управления информационным потоком (с целью предотвращения переполнения системы данными из другой системы). На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Работа транспортного уровня заключается в том, чтобы обеспечить приложениям или верхним уровням стека — прикладному и сеансовому — передачу данных с той степенью надежности, которая им требуется. В качестве примера транспортных протоколов можно привести протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell. 5) Сеансовый уровень устанавливает, управляет и завершает сеансы взаимодействия между прикладными задачами. Сеансы состоят из диалога между двумя или более объектами представления (сеансовый уровень обеспечивает своими услугами представительский уровень). Сеансовый уровень синхронизирует диалог между объектами представительского уровня и управляет обменом информации между ними. В дополнение к основной регуляции диалогов (сеансов) сеансовый уровень предоставляет средства для отправки информации, класса услуг и уведомления в исключительных ситуациях о проблемах сеансового, представительского и прикладного уровней. Сеансовый уровень обеспечивает управление диалогом для того, чтобы фиксировать, какая из сторон является активной в настоящий момент, а также предоставляет средства синхронизации. Последние позволяют вставлять контрольные точки в длинные передачи, чтобы в случае отказа можно было вернуться назад к последней контрольной точке, вместо того, чтобы начинать все с начала. На практике немногие приложения используют сеансовый уровень, и он редко реализуется 6) Представительский уровень отвечает за то, чтобы информация, посылаемая из прикладного уровня одной системы, была читаемой для прикладного уровня другой системы. В случаях необходимости уровень представления выполняет преобразование форматов данных в некоторый общий формат представления, а на приеме, соответственно, выполняет обратное преобразование. Таким образом, прикладные уровни могут преодолеть, например, синтаксические различия в представлении данных. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которому секретность обмена данными обеспечивается сразу для всех прикладных сервисов. Примером такого протокола является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сообщениями для протоколов прикладного уровня стека TCP/IP. 7) Прикладной уровень — это самый близкий к пользователю уровень OSI. Прикладной уровень идентифицирует и устанавливает наличие предполагаемых партнеров для связи, синхронизирует совместно работающие прикладные программы, а также устанавливает соглашение по процедурам устранения ошибок и управления целостностью информации. Прикладной уровень также определяет, имеется ли в наличии достаточно ресурсов для предполагаемой связи. Прикладной уровень — это в действительности просто набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют свою совместную работу, например с помощью протокола электронной почты. Единица данных, которой оперирует прикладной уровень, обычно называется сообщением (message). Существует очень большое разнообразие сервисов прикладного уровня. Приведем в качестве примеров протоколов прикладного уровня хотя бы несколько наиболее распространенных реализаций файловых сервисов: NCP в операционной системе Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP. Функции всех уровней модели OSI могут быть отнесены к одной из двух групп: либо к функциям, зависящим от конкретной технической реализации сети, либо к функциям, ориентированным на работу с приложениями. Три нижних уровня — физический, канальный и иногда сетевой — являются сетезависимыми, то есть протоколы этих уровней тесно связаны с технической реализацией сети, с используемым коммуникационным оборудованием. Например, переход на оборудование FDDI означает полную смену протоколов физического и канального уровня во всех узлах сети. Три верхних уровня — сеансовый, уровень представления и прикладной — ориентированы на приложения и мало зависят от технических особенностей построения сети и являются сетезависимыми. На протоколы этих уровней не влияют никакие изменения в топологии сети, замена оборудования или переход на другую сетевую технологию. Так, переход от Ethernet на высокоскоростную технологию АТМ не потребует никаких изменений в программных средствах, реализующих функции прикладного, представительного и сеансового уровней. Транспортный и сетевой уровни являются промежуточными, они скрывают все детали функционирования нижних уровней от верхних уровней. Это позволяет разрабатывать приложения, независящие от технических средств, непосредственно занимающихся транспортировкой сообщений. Рис. 11 показывает уровни модели OSI, на которых работают различные элементы сети. Компьютер с установленной на нем сетевой ОС, взаимодействует с другим компьютером с помощью протоколов всех семи уровней. Это взаимодействие компьютеры осуществляют через различные коммуникационные устройства: концентраторы, модемы, мосты, коммутаторы, маршрутизаторы, мультиплексоры. В зависимости от типа, коммуникационное устройство может работать либо только на физическом уровне (повторитель), либо на физическом и канальном (мост и коммутатор), либо на физическом, канальном и сетевом, иногда захватывая и транспортный уровень (маршрутизатор). Проблемы совместимости. Модель OSI представляет наиболее общую модель коммуникаций. Существуют другие модели и связанные с ними конкретные стеки протоколов, которые отличаются количеством уровней, их функциями, форматами сообщений, сервисами, предоставляемыми на верхних уровнях и прочими параметрами. Эталонная модель OSI не является реализацией конкретной сети. Она только определяет функции каждого уровня. В этом отношении она напоминает план для постройки корабля. Точно так же, как для выполнения фактической работы по плану могут быть заключены контракты с любым количеством кораблестроительных компаний, любое число поставщиков сети могут построить протокол реализации по спецификации протокола. И если этот план не будет предельно понятным, корабли, построенные различными компаниями, пользующимися одним и тем же планом, пусть незначительно, но будут отличаться друг от друга. Примером самого незначительного отличия могут быть гвозди, забитые в разных местах. Чем объясняется разница в реализациях одного и того же плана корабля (или спецификации протокола)? Частично эта разница вызвана невозможностью учесть в спецификации все возможные детали реализации. Кроме того, разные люди, реализующие один и тот же проект, всегда интерпретируют его немного по-разному. И, наконец, неизбежные ошибки реализации приводят к тому, что изделия разных реализаций отличаются исполнением. Этим объясняется то, что реализация протокола одной компании не всегда взаимодействует с реализацией этого же протокола, осуществленной другой компанией. 3.7. Виды сетевых протоколов Понятие протокола является ключевым при рассмотрении сетевых технологий. Остановимся на нем подробнее. В модели OSI различается два основных типа протоколов. В протоколах с установлением соединения (connection-oriented network service, CONS) перед обменом данными отправитель и получатель должны сначала установить соединение и, возможно, выбрать протокол, который они будут использовать. После завершения диалога они должны разорвать это соединение. Вторая группа протоколов — протоколы без предварительного установления соединения (connectionless network service, CLNS). Такие протоколы называются также дейтаграммными протоколами. Отправитель просто передает сообщение, когда оно готово. При взаимодействии компьютеров используются как те, так и другие протоколы. Особенности протоколов, используемых в локальных и глобальных сетях. В настоящее время наблюдается тенденция к сближению протоколов локальных и глобальных сетей. Ярким примером являются протоколы технологии АТМ, работающие без изменений как в тех, так и в других сетях. Тем не менее, большинство протоколов, используемых сегодня, относятся либо к локальным, либо к глобальным сетям и не могут применяться не по прямому назначению. Различия между протоколами локальных и глобальных сетей происходят в основном из-за различий между свойствами каналов, использующихся в этих сетях. Каналы локальных сетей имеют небольшую длину и высокое качество, а каналы глобальных сетей — наоборот, большую длину и низкое качество. Небольшая длина каналов локальных сетей создала возможность совместного использования их узлами сети в режиме разделения времени. Практически все протоколы локальных сетей имеют версию работы на разделяемых средах передачи данных, хотя более поздние протоколы (Fast Ethernet, Gigabit Ethernet) имеют также и версию работы на индивидуальных каналах в полнодуплексном режиме. Большая протяженность каналов глобальных сетей делает нерациональными любые процедуры разделения канала во времени, так как длительность этих процедур становится слишком большой. Поэтому каналы глобальных сетей используются всегда на индивидуальной основе как связи типа «точка-точка». Высокое качество кабелей локальных сетей послужило причиной отказа от использования в протоколах локальных сетей процедур восстановления искаженных и потерянных кадров. Этих процедур нет ни в протоколах семейства Ethernet, ни у протокола Token Ring, ни у протокола FDDI. В то же время в протоколах глобальных сетей, ориентирующихся на каналы плохого качества, процедурам восстановления кадров всегда уделялось большое внимание. Например, в сетях Х.25 восстановлением кадров занимаются сразу два смежных протокола — LAP-B на канальном уровне и протокол Х.25/3 — на сетевом. Начало массового использования цифровых оптоволоконных каналов в глобальных сетях, обеспечивающих высокое качество передачи данных, послужило причиной разработки протоколов глобальных сетей нового поколения, в которых отсутствуют процедуры восстановления кадров. Такой особенностью обладают, например, сети frame relay и ATM. 3.8. Адресация Существенным компонентом любой системы сети является определение местонахождения компьютерных систем. Существуют различные схемы адресации, используемые для этой цели, которые зависят от используемого семейства протоколов. Другими словами, адресация AppleTalk отличается от адресации TCP/IP, которая в свою очередь отличается от адресации IPX/SPX, и т. д. Двумя важными типами адресов являются адреса канального уровня и адреса сетевого уровня. Адреса канального уровня (называемые также физическими, аппаратными или MAC- адресами), как правило, уникальны для каждого сетевого соединения. У большинства локальных сетей (LAN) адреса канального уровня размещены в схеме интерфейса, т.е. в сетевой карте. Так как большинство компьютерных систем имеют одно физическое сетевое соединение, они имеют только один адрес канального уровня. Маршрутизаторы и шлюзы, соединенные с множеством физических сетей, могут иметь несколько адресов канального уровня — по числу данных сетей. В соответствии с названием, адреса канального уровня являются адресами уровня 2 эталонной модели OSI. Для MAC-адресов используется 6-байтовое число. Нетрудно прикинуть, что общее количество MAC-адресов около 2 в 14 степени. Это число намного больше количества сетевых карт и портов маршрутизаторов на планете. Поэтому адреса канального уровня уникальны. Первая часть адреса — код фирмы-производителя, вторая часть — индивидуальный номер сетевого устройства, присваиваемый данной фирмой. Адреса сетевого уровня (называемые также виртуальными или логическими адресами) существуют на уровне 3 эталонной модели OSI. В отличие от адресов канального уровня, которые обычно существуют в пределах одноуровневого адресного пространства, адреса сетевого уровня обычно иерархические. То есть, одна часть сетевого адреса может указывать номер сети, вторая часть — номер узла в этой сети. Адреса сетевого уровня различаются в зависимости от используемого семейства протоколов. Аналогией одноуровневой адресации могут служить уникальные идентификационные коды граждан. Аналог многоуровневой — номер телефона, состоящий из кода города (номер сети) и номера абонента (номер узла). 3.9. Стек протоколов TCP/IP Стек TCP/IP, называемый также стеком DoD и стеком Internet, является одним из наиболее популярных и перспективных стеков коммуникационных протоколов. Изначально он разрабатывался для операционной системы UNIX, но настоящее время все современные сетевые операционных системы включают в себя его реализацию. Стек был разработан по инициативе Министерства обороны США (Department of Defence, DoD) в 1969 году для связи экспериментальной сети ARPAnet с другими сетями как набор общих протоколов для разнородных вычислительных систем. Сеть ARPA поддерживала разработчиков и исследователей в военных областях. В сети ARPA связь между двумя компьютерами осуществлялась с использованием протокола Internet Protocol (IP), который и по сей день является одним из основных в стеке TCP/IP и фигурирует в названии стека. Большой вклад в развитие стека TCP/IP внес университет Беркли, реализовав протоколы стека в своей версии ОС UNIX. Широкое распространение ОС UNIX привело и к широкому распространению протокола IP и других протоколов стека. На этом же стеке работает всемирная информационная сеть Internet, чье подразделение Internet Engineering Task Force (IETF) вносит основной вклад в совершенствование стандартов стека, публикуемых в форме спецификаций RFC. Так как стек TCP/IP был разработан до появления модели взаимодействия открытых систем ISO/OSI, то, хотя он также имеет многоуровневую структуру, соответствие уровней стека TCP/IP уровням модели OSI достаточно условно. Структура протоколов TCP/IP приведена на рис. 12. Протоколы TCP/IP делятся на 4 уровня. Рис. 12 Стек протоколов TCP/IP. Самый нижний (уровень IV) — уровень межсетевых интерфейсов — соответствует физическому и канальному уровням модели OSI. Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: для локальных каналов это Ethernet, Token Ring, FDDI, для глобальных каналов — собственные протоколы работы на аналоговых коммутируемых и выделенных линиях SLIP/PPP, которые устанавливают соединения типа «точка-точка» через последовательные каналы глобальных сетей, и протоколы территориальных сетей X.25 и ISDN. Разработана также специальная спецификация, определяющая использование технологии ATM в качестве транспорта канального уровня. Уровень III — это уровень межсетевого взаимодействия, он соответствует 3 уровню модели OSI, который занимается передачей дейтаграмм с использованием различных локальных сетей, территориальных сетей X.25, линий специальной связи и т.п. В качестве основного протокола сетевого уровня (в терминах модели OSI) в стеке используется протокол IP, который изначально проектировался как протокол передачи пакетов в составных сетях, состоящих из большого количества локальных сетей, объединенных как локальными, так и глобальными связями. Поэтому протокол IP хорошо работает в сетях со сложной топологией, рационально используя наличие в них подсистем и экономно расходуя пропускную способность низкоскоростных линий связи. Протокол IP является маршрутизируемым дейтаграммным протоколом. К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). Последний протокол предназначен для обмена информацией об ошибках между маршрутизатором и шлюзом, системой-источником и системой-приемником, то есть для организации обратной связи. С помощью специальных пакетов ICMP сообщается о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т.п. Следующий уровень (уровень II) называется основным. На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает устойчивое виртуальное соединение между удаленными прикладными процессами. Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным методом, то есть без установления виртуального соединения, и поэтому требует меньших накладных расходов, чем TCP. Верхний уровень (уровень I) называется прикладным. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и сервисов прикладного уровня. К ним относятся такие широко используемые протоколы, как протокол копирования файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы доступа к удаленной информации, такие как WWW и многие другие. Остановимся несколько подробнее на некоторых из них, наиболее тесно связанных с тематикой курса. Протокол SNMP (Simple Network Management Protocol) используется для организации сетевого управления. Протокол пересылки файлов FTP (File Transfer Protocol) реализует удаленный доступ к файлам. Для того чтобы обеспечить надежную передачу, FTP использует в качестве транспорта протокол с установлением соединений — TCP. В стеке TCP/IP протокол FTP предлагает наиболее широкий набор услуг для работы с файлами, однако он является и самым сложным для программирования. Приложения, которым не требуются все возможности FTP, могут использовать другой, более экономичный протокол — простейший протокол пересылки файлов TFTP (Trivial File Transfer Protocol). Этот протокол реализует только передачу файлов, причем в качестве транспорта используется более простой, чем TCP, протокол без установления соединения — UDP. Протокол telnet обеспечивает передачу потока байтов между процессами, а также между процессом и терминалом. Наиболее часто этот протокол используется для эмуляции терминала удаленной ЭВМ. Более детально стек TCP/IP и принципы межсетевого обмена данными описаны в [4]. 3.10. Современные сетевые технологии В качестве промежуточного итога выполним краткий обзор современных сетевых технологий. Их можно условно разделить на технологии локальных сетей, технологии глобальных сетей и технологии удаленного доступа. Вопросы и задания 1) Осветите понятия «узел», «линия связи», «топология сети. 2) Перечислите типовые и производные сетевые топологии. 3) Классификация компьютерных сетей по диаметру сети. 4) Являются ли понятия трафика и пропускной способности идентичными? Ответ обоснуйте. 5) Опишите основные среды передачи данных в современных компьютерных сетях. 6) Модель ISO/OSI. Назначение уровней. 7) Сетевые блоки данных на различных уровнях OSI. Понятие инкапсуляции. 8) Сходства и различия понятий протокола и интерфейса. 9) Сходства и отличия повторителя и моста, моста и маршрутизатора, маршрутизатора и шлюза. Уровни OSI, на которых работают эти устройства. 10) Назначение и типы адресации в компьютерных сетях. 11) Основные протоколы стека TCP/IP и их назначение. 12) Основные характеристики современных сетевых технологий: топологии, пропускная способность, протоколы. |