
- •Лекция 9 основы алгоритмизации
- •Понятие алгоритма
- •Основные свойства алгоритма
- •Способы описания алгоритмов
- •Основные принципы построения алгоритмов
- •Виды алгоритмов.
- •Лекция 10 основы моделирования
- •Понятие моделирования. Цели и задачи моделирования.
- •Уровни моделирования.
- •Виды моделирования.
- •Моделирование в экономических системах.
- •По цели использования:
- •По способу оценки моделей:
- •Лекция 11 основы программирования
- •Основные понятия программирования
- •Языки программирования высокого уровня
- •Обзор языков программирования высокого уровня.
- •Среды быстрого проектирования
- •Алгоритмическое программирование
- •Структурное программирование
- •Эффективность программирования
- •Объектно-ориентированное программирование
- •Основные языки объектно-ориентированного программирования
- •Лекция 12 основы защиты информации
- •Виды угроз информационной безопасности
- •Методы и средства защиты информации
- •Обеспечение информационной безопасности на уровне государства
- •Теоретические основы сжатия данных
- •2. Программные средства сжатия данных
- •Лекция 14 локальные вычислительные сети
- •Программные и аппаратные компоненты вычислительной сети.
- •Основные требования, предъявляемые к современным вычислительным сетям
Обеспечить возможность перейти после выполнения любой операции к блоку «Останов» (к выходу схемы).
Виды алгоритмов.
Основные виды алгоритмов:
алгоритм линейной структуры
алгоритм разветвляющейся структуры
алгоритм циклической структуры
Линейные алгоритмы.
Л
инейным
называется алгоритм, в котором все этапы
решения задачи выполняются строго
последовательно.
Часто используются не отдельные величины, а массивы- множество связанных однородных величин (например: дата- совокупность 3- х чисел).
Массивом называется упорядоченная совокупность однородных величин, обозначенных каждая одним и тем же именем с различными целочисленными индексами, изменяющимися по порядку (индекс определяет положение элемента в массиве).
Каждый массив определяется именем и числом элементов, например:
T ( 1 : n ), где Т – имя массива, n – число элементов массива.
В зависимости от внутреннего строения и взаимного распложения элементов различают разные виды массивов, например, одномерные, двухмерные.
Каждый двухмерный массив определяется именем, числом строк и столбцов.
T( 1 : m, 1 : n ), где Т – имя массива, m ( n ) – число строк ( столбцов).
Пример:
Ведомость- это массив. В ( 1 : 4, 1 : 3 )
№ школы |
Число выпускников |
Число медалистов |
5 |
48 |
4 |
10 |
27 |
1 |
8 |
41 |
3 |
31 |
85 |
5 |
Каждый элемент двухмерного массива определяется номером строки и номером столбца, на пересечении которых он находится.
b11 = 5; b12 = 48
Разветвляющиеся алгоритмы.
Разветвляющимся алгоритмом- называется алгоритм, в котором выбирается один из нескольких возможных путей вычислительного процесса.
Признак разветвляющегося алгоритма- наличие проверки условия. Различают 2 вида условий:
Простые
Составные
Для составных условий используются логические операции (или логические выражения).
И
Или
Не
Циклические алгоритмы.
Циклическим называется алгоритм, в котором получение результата обеспечивается многократным выполнением одних и тех же операций.
В
ыполнение
циклического алгоритма распределяется
на этапы (циклы). На каждом цикле
вычисляется новое значение алгоритма
(в блоке 4) и соответствующее им новое
значение результатов рабочих операций
(в блоке 2).
Лекция 10 основы моделирования
План лекции:
Понятие моделирования. Цели и задачи моделирования.
Уровни моделирования.
Виды моделирования.
Моделирование в экономических системах.
Литература:
Понятие моделирования. Цели и задачи моделирования.
Понятие “модель” возникло в процессе опытного изучения мира, а само слово “модель” произошло от латинских слов modus, modulus, означающих меру, образ, способ. Первоначальное развитие модели получили в строительном искусстве. Различные вещи, сделанные на основе каких-либо измерений, воспроизводящих что-либо или являющиеся прообразом чего-то, какими-то образцами для других вещей, стали называть моделями.
Можно много привести примеров моделей, при помощи которых описываются и изучаются те или иные явления. Так например, на моделях стали изучать течение водяных потоков, различные гидродинамические явления, происходящие при мощных взрывах, при землетрясениях. Модель дает возможность наблюдать такие явления как, извержение вулкана, возникновение и исчезновение горных систем.
Модели широко применяются в кораблестроении, самолетостроении, ядерной физике, а также строительстве.
Модель – любой аналог (образ) какого-либо объекта, процесса или явления, который используется в качестве "представителя" или "заместителя" этого объекта.
Моделирование – метод научного исследования процессов, объектов, устройств, систем, основанный на построении и изучении моделей с целью исследования характеристик объекта изучения.
Моделирование применяется в качестве:
средства обучения и тренировки;
средства постановки эксперимента;
как инструмент прогнозирования;
как средство общения.
Цель моделирования – описание и оптимизация некоторого процесса или явления.
Моделирование по сути является методологией эксперимента. Оно указывает как ставить эксперимент и как обрабатывать его данные, чтобы получить результат, не только достоверный в данном частном случае, но и распространяющийся на группу подобных явлений. Эксперимент имеет два направления:
- планирование эксперимента - методика проведения наблюдений за явлениями (пассивный эксперимент) и одновременно такую стимуляцию изучаемых явлений (активный эксперимент), которая позволила бы наиболее быстро, с меньшим числом опытов найти наиболее характерные зависимости или точки (активный - экстремальный эксперимент). Кроме того, центральное место занимают вопросы организации опытов при учете не одного, а многих влияющих факторов. Такой многофакторный эксперимент должен проводиться согласно четкой схеме, предусматривающей экстремальный и вероятностный подходы к исследованиям;
- обработка данных - методика расчета и построения достоверных характеристик на основе опытных данных, что неизбежно имеет погрешности, отражающиеся, в частности, в “разбросе” опытных точек.
Адекватность модели – степень соответствия модели реальному объекту, процессу или явлению.
Формализация – процесс представления информации в виде некоторой формульной системы или системы счисления.
Исторически первыми моделями, как заместителями некоторых объектов, были символические условные модели. Ими являлись языковые знаки, естественно возникшие в ходе развития человечества и постепенно составившие разговорный язык.
Следующим этапом развития моделирования можно считать возникновение знаковых числовых обозначений. Сведения о результатах счета первоначально сохранился в виде зарубок. Постепенное совершенствование этого метода привело к изображению чисел в виде цифр как системы знаков. Можно предположить, что именно зарубки были прототипом римских цифр I, II, III, V, X.
Дальнейшее развитие знаковых моделей связано с возникновением письменности и математической символики. Наиболее древние письменные тексты, известные в настоящее время, относят примерно к 2000 г. до н. э.(Египет и Вавилон). Есть основания полагать, что вавилоняне уже пользовались понятием подобия прямоугольных треугольников.
Значительное развитие моделирование получает в древней Греции в V-III вв. до н. э. Была создана геометрическая модель Солнечной системы, врач Гиппократ для изучения человеческого глаза воспользовался его физической аналогичной моделью - глазом быка, математик Евклид создал учение о геометрическом подобии.
По мере развития и укрупнения механического производства, металлургии, кораблестроения, градостроения и т. д., все чаще обнаруживается недостаточность геометрического подобия физически однородных объектов для прогнозирования свойств объектов больших размеров на основании свойств объектов меньших размеров.
Первый шаг в развитии учения о подобии при физическом моделировании был сделан И. Ньютоном (1643-1727), который сформулировал условия подобия механических явлений. Далее развитие длительное время шло путем определения частных условий подобия для явлений только определенной физической природы - работы И. П. Кулибина (1735-1818) и Л. Эйлера (1707-1783) в области строительной механики, В. Л. Кирпичева (1845-1913) в области упругости и др.
И наконец, в 1909-1914 гг. Н. Е. Жуковским, Д. Релеем, Ф. Букингемом была сформулирована теорема, позволяющая установить условия подобия явлений любой физической природы.
Параллельно шло развитие логического моделирования в знаковой форме, это прежде всего развитие математики. В конце XVI в. Д. Непер (1550-1617) изобрел логарифмы. В конце XVII в. И. Ньютон и Г. Лейбниц (1646-1716) создали дифференциальное исчисление. Получают развитие численные методы решения различных задач.
К первым вычислительным устройствам можно отнести счеты (XV-XVI в.), логарифмическую линейку (начало XVII в.). Длительное время вычислительные устройства были исключительно механическими - арифмометр, счетно - решающие механизмы и т. п. И только в 30-х гг. нашего столетия начинается развитие электрических аналоговых и цифровых вычислительных устройств.
И первые обобщения двух направлений материального моделирования - а) физического и б) формального с помощью вычислительных устройств были сделаны В. А. Вениковым (1949 г.) и Л. И. Гутенмахером (1949 г.), а затем получили дальнейшее развитие у И. М. Тетельбаума (1959 г.), А. М. Сучилина (1964 г.), П. М. Алабужева (1968 г.). Философские концепции основных общих вопросов моделирования отражены В. А. Штоффом, И. Б. Новиковым, Н. А. Уемовым и др.
Уровни моделирования.
Выделяют три уровня моделирования:
Метауровень – уровень сложности в описании объектов исследования, который характеризуется укрупненным рассмотрением протекающих в объекте процессов (проектирование локальных и глобальных сетей, системы движения транспорта);
Макроуровень – уровень сложности в описании объектов, который характеризуется рассмотрением физических процессов, протекающих непрерывно во времени, но в дискретном пространстве (моделирование электрических схем, электроэлементов, радиосхем);
Микроуровень – уровень сложности в описании объектов, который характеризуется рассмотрением физических процессов в сплошных средах непрерывно во времени (исследование поведения конструкции, электромагнитного поля, температуры поля).
Виды моделирования.
Ф
изическая
модель
представляет собой модель, элементы
которой подобны натуральным объектам
исследования, но имеют, как правило,
другой масштаб.
Математическое моделирование – изучение объекта путем создания его математической модели. При этом аналитическое математическое моделирование для достижения результата использует раздумья, умозаключения, размышления.
Машинное математическое моделирование подразумевает использование аналоговой или цифровой вычислительной техники.
Имитационное моделирование – процесс конструирования модели реальной системы, постановка эксперимента на этой модели с целью понять поведение системы либо оценить в рамках имеющихся ограничений стратегию поведения этой системы.
Имитационные модели должны обладать следующими свойствами:
целенаправленность;
простота и понятность пользователю:
полнота с точки зрения принятия возможных решений;
адекватность;
надежность;
адаптивность.
Имитационное моделирование выполняется по следующим шагам:
определение модели, установка ограничений и определение параметров эффективности;
формулирование модели, т.е. переход от реальной системы к некоторой логической схеме;
подготовка данных, отбор данных;
оценка адекватности модели;
трансляция модели, т.е. представление модели на языке, используемом в ЭВМ;
стратегическое планирование эксперимента с использованием модели;
тактическое планирование, т.е. определение способа проведения серии испытаний;
экспериментирование;
анализ результата;
практическое использование результатов моделирования.
Технология имитационного моделирования сводится к конструированию мысленной модели, имитирующей объекты или процессы по нужным, но не полным показателям. Именно неполнота описания объекта, процесса делает имитационную модель принципиально отличной от математической в традиционном понимании. Это приобретает особую значимость при моделировании социальных процессов, характеризующихся чрезвычайной сложностью как из-за большого числа различных факторов и их взаимосвязей, так и из-за присутствия среди них особых, субъективных факторов.
При помощи имитационного моделирования получены плодотворные результаты в различных областях социального познания (коммерческой деятельности, маркетинге, политике, системе образования, криминалистике и т. д.).
Огромный объем информации, характеризующий объекты социального познания, трудности учета большого числа факторов, логических взаимосвязей и количественных соотношений между ними делают непосильным для человека-исследователя оперирование мысленными моделями социальных процессов. Отсюда возникает необходимость привлечения для моделирования социальных процессов информационных возможностей современной электронно - вычислительной техники.
Так возникло важное направление в научном познании, основанное, с одной стороны, на использовании принципиально новых математических моделей, а с другой - на применении ЭВМ для экспериментирования с этими моделями.
Моделирование в экономических системах.
Использование моделей в экономических информационных системах обеспечивает выполнение таких функций как поддержка и принятие решений, оптимизация, прогнозирование.
Модели, используемые в экономических информационных системах классифицируют:
По цели использования:
оптимизационные;
описательные.
По способу оценки моделей:
Детерминистские – используют переменные с одним конкретным значением;
Стохастические – описывают переменные с несколькими параметрами.
В системах поддержки и принятия решений в зависимости от уровня управления используют следующие модели:
Стратегические – (характерны для высшего уровня управления) позволяют устанавливать цели организации, оценивать объём ресурсов, необходимых для этой цели. Характеризуются множеством переменных, данные представлены в сжатой агрегированной форме. Стратегические модели являются детерминистскими, описательными и специализированными.
Тактические – (характерны для среднего звена) используются для распределения, контроля имеющихся ресурсов. Являются детерминистскими, оптимизационными, универсальными.
Оперативные – используются на низших уровнях управления для поддержки и принятия оперативных решений. Являются детерминистскими, оптимизационными, универсальными.
Математические модели – состоят из отдельных модулей, бланков, процедур, реализующих математические методы (линейное программирование, статистический анализ, регрессионный анализ).
Лекция 11 основы программирования
Основные понятия программирования.
Обзор языков программирования высокого уровня.
Основные понятия программирования
Программирование (programming) — это процесс создания последовательности действий (операций), проводимый в целях достижения требуемого результата.
Программирование непосредственно связано с языком и инструментальным программным обеспечением, поддерживающим разработку. В состав данного программного обеспечения входят: транслятор и база данных с набором стандартных программ.
Процесс программирования состоит из стадий: формулирования, разработки программы, включая кодирование и тестирование, и, далее, создания новых версий.
Программа - логически упорядоченная последовательность команд для управления компьютером. Процессор компьютера обрабатывает программы, представляющие собой набор чисел( 0 и 1), называемых машинным кодом.
Управление компьютером происходит по определенному алгоритму. Для представления алгоритма в виде, понятном компьютеру служат языки программирования. Полное описание алгоритма на языке программирования представляет собой текст программы. Текст программы специальными служебными приложениями (трансляторами) либо переводится в машинный код, либо исполняются.
По принципу действия различают два вида трансляторов: компиляторы и интерпретаторы. Соответственно с этим можно выделить два класса языков программирования компилируемые и интерпретируемые.
С помощью языка программирования создается не сама программа, а только ее текст, который описывает разработанный ранее алгоритм. Чтобы получить работающую программу нужно или перевести автоматически этот текст в машинный код (для этого служат программы- компиляторы), либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы - интерпретаторы).
Компиляторы полностью обрабатывают весь текст программы (он иногда называется исходный код) и затем транслирует (переводит на машинный язык) - генерирует машинный код.
Интерпретатор берет очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет.
Существуют сотни реально использующихся языков программирования, каждый для своей области применения. Уровень языка программирования определяется в зависимости от степени детализации алгоритма. Причем, чем меньше детализация, тем выше уровень языка. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. Языком самого низкого уровня является ассемблер.
Языки программирования высокого уровня значительно ближе и понятнее человеку.
Различают три уровня языков программирования:
машинные,
машинно-ориентированные (ассемблеры),
машинно-независимые (языки высокого уровня).
Таким образом, машинные языки и машинно-ориентированные языки — это языки низкого уровня, которые требуют указания мелких деталей процесса обработки данных. Проблемно-ориентированные языки относятся к группе искусственных языков.
Средством разработки и развития программного обеспечения является инструментальное программное обеспечение (software tools). Инструментальное Программное обеспечение, называемое также инструментарием, характеризуется набором программ по созданию и модернизации новых программ. Среди них: текстовой редактор, графический редактор, транслятор, загрузчик, а также средства отладки программ.
Инструментальное программное обеспечение обеспечивает выполнение последовательных этапов, включающих: выработку требований к создаваемому программному обеспечению, общее проектирование, детальная разработка, создание отдельных модулей, тестирование полученных модулей, объединение модулей в единое целое, выпуск проекта, эксплуатацию и сопровождение созданных программ. В процессе руководства процессом разработки инструментарий опирается на специальную целевую базу данных. Инструментальное программное обеспечение не уничтожается в течении жизненного цикла разрабатываемой программы.
После написания программа подвергается тестированию. Цель тестирования состоит в определении ее работоспособности и степени готовности. После тестирования проводят анализ поведения программы.
Языки программирования высокого уровня
Среди языков высокого уровня различают следующие группы:
алгоритмические, предназначенные для однозначного описания алгоритмов {такие, как Basic, Г Pascal, С),
логические — ориентированные не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи (например, Prolog, Lisp),
объектно-ориентированные, основанные на понятии объекта и действиях над ним (к примеру, Object Pascal, C++, Java).
В мире осуществляется стандартизация языков программирования высокого уровня. Ею занимается специализированная организация «Конференция по языкам информационных систем» (Conference On DAta SYstem Language — CODASYL). Эта организация основана министерством обороны США, она создана в 1959 г., в нее входят специалисты индустрии информатики, представляющие промышленные предприятия, фирмы, занимающиеся разработкой программного обеспечения и средств обработки данных. CODASYL разрабатывает стандарты управления данными, языки программирования. Для эффективного использования высокоуровневых языков создаются специальные интегральные схемы.
Обзор языков программирования высокого уровня.
FORTRAN (ФОРТРАН).
ФОРТРАН (от слов ФОРмула+ТРАНсляция) - исторически первый компилируемый язык программирования, разработанный в 1954-1958 годах Джимом Бэкусом. Широко используется в инженерных и научных расчетах. Базовые принципы ФОРТРАНА легли в основу многих языков программирования высокого уровня. К основным понятиям языка относятся:
операторы языка программирования;
переменные;
типы данных и переменных;
массивы данных;
подпрограммы и функции;
локальные и глобальные переменные;
форматированный ввод и вывод данных
COBOL (КОБОЛ)
КОБОЛ - компилируемый язык программирования для делового применения, был создан в 1959 - 1961 гг. В отличие от ФОРТАНА имел средства для работы со специально организованными структурами данных (сейчас они называются базами данных). Долгое время был основным языком, использующимся в бизнесе, экономике и банковском деле, однако сейчас уступил позиции новым, более удобным языкам и системам программирования баз данных (dBase II, Clipper, FoxPro, Paradox, Clarion, Oracle, SQL и др.) появившимся в 80-90 гг. XX века.
ALGOL (АЛГОЛ)
Компилируемый язык программирования, впервые появившийся в 1960 году (ALGOritmic Language (алгоритмический язык). Широко использовался в научных кругах, в прикладной математике, в теоретической и экспериментальной физике.
PASCAL (ПАСКАЛЬ)
Компилируемый язык программирования, созданный в 1967-1971 гг. Никласом Виртом. Особенно широко стал распространяться с 1984 года, когда был представлен Turbo-Pascal - удобный компилятор. Считается базовым во многих неспециализированных ВУЗах и университетах.
BASIC (БЕЙСИК)
БЕЙСИК является интерпретирующим языком, хотя для многих версий существуют компиляторы. Создавался в 60-егоды как учебный язык. Хорошо подходит для алгоритмического программирования.
С (СИ)
Создан в 1972 году. Первоначально задумывался как промежуточный язык между языками высокого и низкого уровня. Является языком структурного программирования (как ПАСКАЛЬ), но позволяет генерировать более производительный и компактный рабочий код. Недостаток - сложность изучения по сравнению с ПАСКАЛЬ и БЕЙСИК.
С++ (СИ++)
СИ++ - объектно-ориентированная версия языка программирования СИ, разработанная в 1980 году. Сегодня считается наиболее универсальным (с его помощью была создана операционная система WINDOWS 95/98).
Java (Джава, Ява)
Создан в начале 90-х годов на основе СИ++. Главная особенность - платформо-независимость.
Языки программирования баз данных.
От алгоритмических языков эта группа отличается прежде всего кругом решаемых задач. База данных - это файл (или группа файлов), представляющих собой набор записей, имеющих однообразную структуру, организованных , как правило, в виде таблицы. База данных может состоять из нескольких таблиц.
При работе с базами данных как правило требуется выполнить следующие операции:
создание/удаление таблиц, модификация свойств таблиц;
поиск, сортировка, отбор, информации по запросам;
изменение существующих записей;
удаление записей.
Для обработки больших массивов информации был создан структурированный язык запросов SQL, который позволяет обрабатывать сразу группу записей.
Для управления большими базами данных были разработаны СУБД (Системы Управления Базами Данных).
Среды быстрого проектирования
В последние годы в программировании (особенно в программировании для операционной системы Windows) наметился так называемый визуальный подход.
Среды быстрого проектирования (RAD — среды) позволяют автоматизировать процесс программирования. Все необходимые элементы оформления и управления для программы не программируются, а собираются из готовых компонентов. Прямо на экране их «перетаскивают» с помощью мыши с палитры компонентов в окно будущей программы, а потом настраивают их свойства. Так программирование на 90% заменяется проектированием. Такой подход еще называют визуальным программированием.
Среды быстрого проектирования существуют для основных современных языков программирования.
Основные системы программированиия:
Из универсальных языков программирования сегодня наиболее популярны следующие три:
БЕЙСИК (BASIC) — начальная подготовка (общеобразовательная школа);
ПАСКАЛЬ (PASCAL) — специальная подготовка (школы с углубленным изучением предмета и общетехнические ВУЗы);
СИ ++ (C++) — профессиональная подготовки (специализированные средние и высшие учебные заведения). .
Для каждого их этих языков программирования сегодня существует немалое число систем программирования, выпущенных различными фирмами и ориентированных на различные модели персональных компьютеров. Для компьютеров системы- IBM PC сегодня эти языки имеют и современные визуальные среды быстрого проектирования:
BASIC Microsoft Visual Basic;
PASCAL Borland Delphi;
C++ Borland C++Builder.
Алгоритмическое программирование
Алгоритм — это формальное описание способа решения задачи путем разбиения ее на последовательность элементарных операций. Под словом «формальное» надо понимать, что описание должно быть абсолютно полным и учитывать все возможные ситуации, которые могут возникать по ходу решений.
Использование алгоритмических языков программирования позволяет сделать алгоритм простым и ясным.
Переменные и постоянные. Переменная — это некоторая величина (числовая, текстовая или иная), имеющая собственное имя — идентификатор.
Переменным можно давать любое имя, важно только, •что оно не должно содержать знаков препинания (кроме символа подчеркивания) и должно начинаться с буквы, а не с цифры. Таковы требования абсолютного большинства языков программирования.
В некоторых языках программирования наряду с переменными, существует понятие постоянных. К постоянным относят величины, которые по ходу работы программы не могут меняться.
Оператор присваивания. С помощью этого оператора переменные получают текущие значения. В большинстве языков программирования этот оператор записывается знаком "=".
Арифметические операторы. С помощью арифметических операторов записывают арифметические выражения. К основным арифметическим операторам относятся следующие:
+ (сложение); - (вычитание); * (умножение); /(деление).
Форма записи этих операторов используется в большинстве алгоритмических языков
Логические выражения. Кроме арифметических выражений в программировании широко используют так называемые логические выражения. Они отличаются тем, что могут иметь только одно из двух возможных фиксированных значений: TRUE или FALSE (истина или ложь). Эти значения можно интерпретировать и как «ДА» и «НЕТ» или даже как пару целых чисел (хотя заранее неизвестно какими именно целыми числами могут выражаться логические значения — это зависит от конкретного транслятора).
При записи логических выражений используют операторы сравнения и логические функции. Из логических функций наиболее часто используются следующие четыре: NOT (HE), AND (И), OR (ИЛИ) и XOR (Исключающее ИЛИ). Функция NOT применяется к одному операнду и просто меняет его значение на противоположное. Остальные логические функции требуют наличия двух операндов и возвращают результат в соответствии со следующими правилами:
Условные вычисления (условный оператор).Обычно в программах операторы выполняются в том порядке, в каком они записаны, но бывают случаи, когда надо порядок выполнения операторов изменить.
Обычно порядок выполнения операторов в программе изменяют при наступлении определенного условия, например когда какая-то переменная достигнет заранее заданного значения или, наоборот станет меньше заданного значения. В качестве условия всегда используется логическое выражение; основанное на операторах сравнения или на мнении логических функций.
Повторяющиеся вычисления (операторы цикла).Простейшим средством языков программирования ля создания повторных вычислений являются, соответственно, операторы циклов. В Бейсике, например, мы имеем один оператор цикла, который начинается там, где стоит ключевое слово FOR и заканчивается ключевым словом NEXT. В цикле определены три параметра цикла и одна переменная цикла. Переменная цикла в нашем случае — k. Параметры цикла определяют ее начальное значение k, конечное значение k (стоит после ключевого слова ТО) и шаг, с которым эта переменная наращивается при каждом повторе: 2 (стоит после ключевого слова STEP).
Обычно в большинстве практических алгоритмов приращение параметра цикла происходит на единицу. В этом случае параметр STEP ... допускается не указывать.
Границей цикла является ключевое слово NEXT. Когда вычисления доходят до него, происходит проверка переменной цикла k. Если ее значение еще не достигло верхней границе цикла, то оно увеличивается на величину шага и цикл вновь повторяется. По достижении переменной цикла конечного значения цикл прекращается и начинается выполнение операторов, стоящих после ключевого слова NEXT.
Комментирование программ. Сделать программу ясной и понятной можно с помощью специальных строк комментария. Комментарий вставляются там, где надо пояснить, что обозначают те или иные переменные, что делают использованные операторы. Все, что стоит в строке следом за ним, считается комментарием и, соответственно, не исполняется интерпретатором.
Текст комментария не анализируется компилятором и не компилируется. От того, что в программе используется много комментариев, ее рабочий код не становится больше по размеру и исполнение его не замедляется.
Структурное программирование
Программа, выполненная средствами обычного алгоритмического программирования, представляет собой линейную последовательность операторов, которые выполняются в том порядке, в котором записаны. Обычно программы такого класса используют при проведении несложных математических или инженерных расчетов.
Однако, если программа имеет размер в несколько тысяч строк, в ней происходит глубокое вложение условных операторов и операторов цикла друг в друга. В этом случае проследить логику работы программы чрезвычайно трудно.
В основе процедурного программирования лежит простая идея — разбить текст программы на множество малых независимых программных блоков — подпрограмм. Если каждая подпрограмма состоит из 5-10 операторов (в крайнем случае из 30-50), то ее работу понять несложно. А главная программа в этом случае представляет собой последовательность вызовов необходимых подпрограмм.
Подпрограммы, процедуры, функции
Когда главная программа передает управление подпрограмме, это называется вызовом подпрограммы. Исторически различают два вида подпрограмм — процедуры и функции. В современных языках программирования различия между процедурами и функциями постепенно стираются.
Типовая структура программы
В простейшем алгоритмическом программировании программа обычно представляет линейную последовательность операторов, которая местами нарушается условными операторами и операторами цикла. В процедурном программировании программа выглядит иначе. Обычно это система вложенных друг в друга циклов.
Количество вложений циклов друг в друга может быть очень большим, но в любой момент времени программа «крутится» внутри какого-то цикла и ожидает действий пользователя. Так возникает диалоговый режим работы с программой, к которому все мы давно привыкли. Перед нами открываются меню, затем вложенные в них меню и т. д. Всякий раз, когда перед нами что-то открывается, это означает, что программа вошла в цикл более глубокого уровня. Приняв наши команды, она изменяет значения переменных, а когда мы закрываем меню (окно и т. п.), это означает, что программа вышла из внутреннего цикла и вернулась, во внешний цикл. Работа программы завершится, когда мы тем или иным способом дадим команду EXIT (ВЫХОД) — в этот момент она прервет свой внешний цикл и завершит работу.
Нисходящее программирование
Процедурное программирование удобно не только тем, что позволяет разнести все алгоритмы по отдельным небольшим процедурам и функциям и тем самым упростить понимание программы и ее отладку, но и тем, что позволяет с самих первых минут работы получить предварительный результат, который дальше можно развивать и наращивать.
Прием подобного программирования называется нисходящим программированием. Он позволяет создавать программы размером в тысячи строк и допускает распараллеливание работы между несколькими программистами. Каждый пишет свои процедуры низкого уровня, после чего они вставляются в общий проект и тут же проверяются на наличие ошибок.
Локальные и глобальные переменные
Если в программе использовано множество отдельных процедур, созданных разными программистами, то нет никакой гарантии, что имена использованных переменных не будут повторяться.
Для решения подобных вопросов существует понятие локальных и глобальных переменных. Локальные переменные — это переменные, которые существуют только внутри процедуры. По завершении работы процедуры, когда происходит передача управления в вызывающую процедуру, все локальные переменные теряются.
Где бы глобальная переменная ни подучила изменение, это изменение будет действовать во всех процедурах и функциях, входящих в программу.
Эффективность программирования
Экономические аспекты программирования. Развитие языков программирования всегда было неразрывно связано с развитием аппаратных средств вычислительной техники и, главное, с экономикой этой отрасли. На рубеже 60—70 годов, когда персональных компьютеров еще не было, машинное время большой ЭВМ стоило десятки долларов в минуту. Эта величина намного превышала стоимость услуг, программистов, поэтому основным направлением в развитии языков программирования была борьба за эффективное использование машинного времени.
Наиболее ресурсоемким процессом подготовки программ всегда считался процесс отладки. С появлением языков структурного программирования ПАСКАЛЬ и СИ в 70-е годы эта проблема была во многом снята. Программы стали представлять собой множество небольших и относительно самостоятельных процедур. Появилась возможность отлаживать процедуры по отдельности, используя для этого- сравнительно недорогое оборудование мини- или микро-ЭВМ.
Экономические аспекты вычислительной техники изменились в 80-е годы с появлением персона компьютеров. Их относительная дешевизна позволила резко (в десятки тысяч раз) уменьшить цену машинного времени по сравнению с большими ЭВМ и эта величина вообще перестала учитываться при разработке и отладке программ. В этот период самым расходом при подготовке программ стала оплата труда программистов, и потребовались новые средства программирования, позволяющие уменьшить ее величину.
Основным направлением в снижении удельных затрат на программирование стал принцип повторного использования кода. Его суть состоит в том, что если некий программный код каких-то процедур был один раз разработан и тщательно отлажен в составе программы, то его в неизменном виде можно применять и в других программах.
Библиотеки процедур и функций
Для языков структурного программирования принцип повторного использования кода реализовывается с помощью библиотек процедур и функций. Существуют стандартные библиотеки, в которых хранятся готовые блоки объектного кода для таких стандартных операций как ввод и вывод данных, операций с графикой, операции с файлами, обслуживание файловой структуры, математические и статистические операции и многих других. Стандартные библиотеки обычно поставляются в составе системы программирования вместе с компилятором, редактором программ и редактором связей.
Объектно-ориентированное программирование
Одной из мер, позволивших поднять коэффициент повторного использования кода выше 90% и автоматизировать создание крупных программ, стала концепция объектного программирования. Для ее реализации появились языки объектно-ориентированного программирования (ООП).
Объектно-ориентированный подход
Объекты — это особые образования, сочетающие в себе и данные, и программный код. Объекты группируются в классы. И объекты, и классы представляют собой абстрактные понятия. Их строгое определение мало что дает начинающему, и потому это понятия, которые лучше вводить на примерах.
Рассмотрим компьютерную игру, имитатор автогонок «Формулы-1». С точки зрения пользователя процесс игры представляет собой непрерывное взаимодействие между следующими объектами:
• автомобиль — дорога; • автомобиль — автомобиль; • автомобиль — пользователь.
Пользователь, играющий за компьютером, на самом деле управляет не автомобилем, а некоторыми элементами управления. Это могут быть экранные, кнопки, пункты меню, списки, кнопки мыши, клавиши клавиатуры» рукоятка джойстика и т.п. Поэтому в нашем списке объектов мы можем заменить пользователя неким абстрактным элементом управления.
Таким образом, для того чтобы создать такую программу, необходимо создать следующие объекты: автомобиль, дорога, элементы управлений.
Создать объект — это значит определить его свойства и его методы. Свойства - это данные, характеризующие объект. Например для автомобиля это его внешний вид на экране, его масса, параметры настройки подвески, динамика разгона и даже алгоритм поведения пилота (если данным автомобилем управляет компьютер), который может быть более агрессивным или более осторожным.
Методы — это функции, то есть это программный код. Методы описывают, как данный объект взаимодействует с другими объектами. Если наш автомобиль едет по дороге, значит в программе должен быть метод взаимодействия автомобиля с дорогой. Если программой предусмотрена возможность аварии при столкновении, значит для объекта Автомобиль должен быть определен метод взаимодействия с другим автомобилем и т. д.
Таким образом, в объектно-ориентированном программировании объекты — это особые структуры, сочетающие в себе и данные, и программный код.
Классы объектов. А сейчас мы рассмотрим, как в объектно-ориентированном программировании возникает высокий коэффициент повторного использования кода.
В одной автогонке может участвовать более двух десятков автомобилей (объектов). У каждого из них свой собственный набор свойств и методов. Автомобили разных команд имеют разную окраску, по-разному заправлены, могут использовать различную резину, то есть обладают массой различных свойств. За рулем у них сидят разные гонщики, по-разному ведущие гонку, то есть имеющие разные методы взаимодействия с трассой и другими автомобилями. Прописывать все это отдельно для каждого автомобиля очень неэффективно. Поэтому создается общий класс — Автомобиль, для которого записываются все общие свойства и методы, а все конкретные автомобили рассматриваются как отдельные объекты, принадлежащие данному классу.
Принцип наследования свойств и методов. Если для класса определены свойства и методы, то классы, созданные на основе данного класса, автоматически наследуют его свойства и методы, а классы, созданные на их основе, продолжают наследование дальше.
Если нам удалось создать игру, имитирующую автогонку на трассе в Барселоне, а потом захотелось создать новую трассу, например в Монако, то переделать надо только свойства одного объекта — Трасса. Если за рулем автомобиля №1 вместо Р. Шумахера сядет Д. Хилл, то переделать Надо только алгоритм, описывающий метод взаимодействия этого автомобиля с другими автомобилями и с трассой. Если завтра заказчик попросит выпустить игру, посвященную гонке не спортивных, а грузовых автомобилей, то переделке будет подлежать вполне ограниченное количество свойств и методов. Теоретически даже возможно заменить гонку автомобилей по шоссе маневрами танков на пересеченной местности. Заказчик увидит совершенно новую программу и даже не задумается о том, что 90% ее кода осталось в неизменном виде.
Что такое класс? С точки зрения программиста классы — это особые типы данных. До появления объектно-ориентированного подхода программисты имели дело всего лишь с некоторыми типами данных — целыми действительными числами и со строковыми переменными. Объектно-ориентированный подход ввел бесконечное разнообразие типов данных.
Рассмотрим, к примеру, хорошо знакомое окно любой программы Windows. В объектном программировании окно — это особый тип данных, то есть это класс, В отличие от чисел окна нельзя делить и умножать. Зато их можно закрывать и раскрывать. Их можно перемещать, наполнять и опустошать. Мы можем открыть одновременно несколько разных окон. Все они явятся разными объектами одного класса и наследуют его методы, например возможность прокрутки содержимого с помощью полос прокрутки.
Объекты различаются свойствами. Разные окна имеют разные размеры, разное расположение на экране; разное наполнение значками других объектов -папок и файлов.
Событийное программирование
Для объектно-ориентированного программирования характерен стиль событийногог программирования.
После создания классов роль программиста сводится к тому, чтобы описать реакции объектов на события происходящие во время работы программы.
Основные языки объектно-ориентированного программирования
Основные универсальные языки программирования — ПАСКАЛЬ и СИ имеют объектно-ориентированные версии — Object Pascal и C++. В последнее время к этому ряду добавился язык программирования Java, широко используемый в Интернете.
Язык Java применяют для написания аплетов — микропрограмм, которые встраиваются на Web-страницу наряду с графикой и текстом и в виде данных передаются на компьютер клиента, просматривающего Web-страницу. Запускаются и работают аплеты уже на компьютере клиента, принявшего их из сети Средство выполнения байтового кода Jawa может находиться в той программе, помощью которой выполняется просмотр Web-страниц, то есть в обозревателе, например в Netscape Navigator или в Microsoft Internet Explorer, хотя не все обозреватели поддерживают воспроизведение Java-аплетов. Если эта функция пользователю важна, он выбирает соответствующий обозреватель. Если она ему мешает, он может ее отключить или использовать обозреватель, который ее не поддерживает.
Лекция 12 основы защиты информации
План лекции:
Виды угроз информационной безопасности.
Методы и средства защиты информации.
Обеспечение информационной безопасности на уровне государства.
Литература:
Виды угроз информационной безопасности
Наряду с интенсивным развитием вычислительных средств и систем передачи информации все более актуальной становится проблема обеспечения ее безопасности. Меры безопасности направлены на предотвращение несанкционированного получения информации, физического уничтожения или модификации защищаемой информации.
Зарубежные публикации последних лет показывают, что злоупотребления информацией, передаваемой по каналам связи, совершенствовались не менее интенсивно, чем средства их предупреждения. В этом случае для защиты информации требуется не просто разработка частных механизмов защиты, а организация целого комплекса мер, т.е. использование специальных средств, методов и мероприятий с целью предотвращения потери информации. Сегодня рождается новая современная технология — технология защиты информации в компьютерных информационных системах и в сетях передачи данных.
Несмотря на предпринимаемые дорогостоящие методы, функционирование компьютерных информационных систем обнаружило слабые места в защите информации. Неизбежным следствием стали постоянно увеличивающиеся расходы и усилия на защиту информации. Однако для того, чтобы принятые меры оказались эффективными, необходимо определить, что такое угроза безопасности информации, выявить возможные каналы утечки информации и пути несанкционированного доступа к защищаемым данным.
Под угрозой безопасности информации понимается действие или событие, которое может привести к разрушению, искажению или несанкционированному использованию информационных ресурсов, включая хранимую, передаваемую и обрабатываемую информацию, а также программные и аппаратные средства..
Угрозы принято делить на случайные, или непреднамеренные, и умышленные. Источником первых могут быть ошибки в программном обеспечении, выходы из строя аппаратных средств, неправильные действия пользователей или администрации и т.п. Умышленные угрозы, в отличие от случайных, преследуют цель нанесения ущерба пользователям АИТ и, в свою очередь, подразделяются на активные и пассивные.
Пассивные угрозы, как правило, направлены на несанкционированное использование информационных ресурсов, не оказывая при этом влияния на ее функционирование. Пассивной угрозой является, например, попытка получения информации, циркулирующей в каналах, посредством их прослушивания.
Активные угрозы имеют целью нарушение нормального процесса функционирования посредством целенаправленного воздействия на аппаратные, программные и информационные ресурсы. К активным угрозам относятся, например, разрушение или радиоэлектронное подавление линий связи, вывод из строя ПЭВМ или ее операционной системы, искажение сведений в базах данных или в системной информации в компьютерных технологиях и т.д. Источниками активных угроз могут быть непосредственные действия злоумышленников, программные вирусы и т.п.
К основным угрозам безопасности информации относят:
раскрытие конфиденциальной информации; компрометация информации;
несанкционированное использование информационных ресурсов;
ошибочное использование информационных ресурсов;
несанкционированный обмен информацией;
отказ от информации;
отказ в обслуживании.
Средствами реализации угрозы раскрытия конфиденциальной информации могут быть несанкционированный доступ к базам данных, прослушивание каналов и т.п. В любом случае получение информации, являющейся достоянием некоторого лица (группы лиц) другими лицами, наносит ее владельцам существенный ущерб.
Компрометация информации, как правило, реализуется посредством внесения несанкционированных изменений в базы данных, в результате чего ее потребитель вынужден либо отказаться от нее, либо предпринимать дополнительные усилия для выявления изменений и восстановления истинных сведений. В случае использования скомпрометированной информации потребитель подвергается опасности принятия неверных решений со всеми вытекающими отсюда последствиями.
Несанкционированное использование информационных ресурсов, с одной стороны, является средством раскрытия или компрометации информации, а с другой — имеет самостоятельное значение, поскольку, даже не касаясь пользовательской или системной информации, может нанести определенный ущерб абонентам и администрации. Этот ущерб может варьироваться в весьма широких пределах — от сокращения поступления финансовых средств до полного выхода АИТ из строя.
Ошибочное использование информационных ресурсов будучи санкционированным тем не менее может привести к разрушению, раскрытию или компрометации указанных ресурсов. Данная угроза чаще всего является следствием ошибок, имеющихся в программном обеспечении АИТ.
Несанкционированный обмен информацией между абонентами может привести к получению одним из них сведений, доступ к которым ему запрещен, что по своим последствиям равносильно раскрытию содержания банковской информации.
Отказ от информации состоит в непризнании получателем или отправителем этой информации фактов ее получения или отправки. В условиях банковской деятельности это, в частности, позволяет одной из сторон расторгать заключенные финансовые соглашения «техническим» путем, формально не отказываясь от них и нанося тем самым второй стороне значительный ущерб.
Отказ в обслуживании представляет собой весьма существенную и распространенную угрозу, источником которой является сама АИТ. Подобный отказ особенно опасен в ситуациях, когда задержка с предоставлением ресурсов абоненту может привести к тяжелым для него последствиям. Так, отсутствие у пользователя данных, необходимых для принятия решения, в течение периода времени, когда это решение еще возможно эффективно реализовать, может стать причиной его нерациональных Или даже антимонопольных действий.
Наиболее распространенными путями несанкционированного доступа к информации, сформулированными на основе анализа зарубежной печати, являются:
перехват электронных излучений;
принудительное электромагнитное облучение (подсветка) линий связи с целью получения паразитной модуляции несущей;
применение подслушивающих устройств (закладок);
дистанционное фотографирование;
перехват акустических излучений и восстановление текста принтера;
хищение носителей информации и документальных отходов;
чтение остаточной информации в памяти системы после выполнения санкционированных запросов;
копирование носителей информации с преодолением мер защиты;
маскировка под зарегистрированного пользователя;
мистификация (маскировка под запросы системы);
использование программных ловушек;
использование недостатков языков программирования и операционных систем;
включение в библиотеки программ специальных блоков типа «Троянский конь»;
незаконное подключение к аппаратуре и линиям связи;
злоумышленный вывод из строя механизмов защиты;
• внедрение и использование компьютерных вирусов.
Особую опасность в настоящее время представляет проблема компьютерных вирусов, так как с учетом большого числа разновидностей вирусов надежной защиты против них разработать не удается. Все остальные пути несанкционированного доступа поддаются надежной блокировке при правильно разработанной и реализуемой на практике системе обеспечения безопасности.
Методы и средства защиты информации
При разработке АИТ возникает проблема по решению вопроса безопасности информации, составляющей коммерческую тайну, а также безопасности самих компьютерных информационных систем.
Современные АИТ обладают следующими основными признаками:
наличием информации различной степени конфиденциальности;
необходимостью криптографической защиты информации различной степени конфиденциальности при передаче данных;
иерархичностью полномочий субъектов доступа и программ к АРМ, файл-серверам, каналам связи и информации системы, необходимостью оперативного изменения этих полномочий;
организацией обработки информации в диалоговом режиме, в режиме разделения времени между пользователями и в режиме реального времени;
обязательным управлением потоками информации как в локальных сетях, так и при передаче по каналам связи на далекие расстояния;
необходимостью регистрации и учета попыток несанкционированного доступа, событий в системе и документов, выводимых на печать;
обязательным обеспечением целостности программного обеспечения и информации в АИТ;
наличием средств восстановления системы защиты информации;
обязательным учетом магнитных носителей;
наличием физической охраны средств вычислительной техники и магнитных носителей.
Организационные мероприятия и процедуры, используемые для решения проблемы безопасности информации, решаются на всех этапах проектирования и в процессе эксплуатации АИТ.
Существенное значение при проектировании придается предпроектному обследованию объекта. На этой стадии:
устанавливается наличие секретной (конфиденциальной) информации в разрабатываемой АИТ, оценивается уровень конфиденциальности и объемы;
определяются режимы обработки информации (диалоговый, телеобработки и режим реального времени), состав комплекса технических средств, общесистемные программные средства и т.д.;
анализируется возможность использования имеющихся на рынке сертифицированных средств защиты информации;
определяется степень участия персонала, функциональных служб, специалистов и вспомогательных работников объекта автоматизации в обработке информации, характер взаимодействия между собой и со службой безопасности;
определяются мероприятия по обеспечению режима секретности на стадии разработки.
Среди организационных мероприятий по обеспечению безопасности информации важное место занимает охрана объекта, на котором расположена защищаемая АИТ (территория здания, помещения, хранилища информационных носителей). При этом устанавливаются соответствующие посты охраны, технические средства, предотвращающие или существенно затрудняющие хищение средств вычислительной техники, информационных носителей, а также исключающие несанкционированный доступ к АИТ и линиям связи.
Функционирование системы защиты информации от несанкционированного доступа, как комплекса программно-технических средств и организационных (процедурных) решений, предусматривает:
учет, хранение и выдачу пользователям информационных носителей, паролей, ключей;
ведение служебной информации (генерация паролей, ключей, сопровождение правил разграничения доступа);
оперативный контроль за функционированием систем защиты секретной информации;
контроль соответствия общесистемной программной среды эталону;
приемку включаемых в АИТ новых программных средств;
контроль за ходом технологического процесса обработки финансово-кредитной информации путем регистрации анализа действий пользователей;
сигнализацию опасных событий и т.д.
Следует отметить, что без надлежащей организационной поддержки программно-технических средств защиты информации от несанкционированного доступа и точного выполнения предусмотренных проектной документацией процедур в должной мере не решить проблему обеспечения безопасности информации, какими бы совершенными эти программно-технические средства не были.
Создание базовой системы защиты информации в АИТ основывается на следующих принципах:
-Комплексный подход к построению системы защиты при ведущей роли организационных мероприятий, означающий оптимальное сочетание программных аппаратных средств и организационных мер защиты и подтвержденный практикой создания отечественных и зарубежных систем защиты.
-Разделение и минимизация полномочий по доступу к обрабатываемой информации и процедурам обработки, т. е. предоставление пользователям минимума строго определенных полномочий, достаточных для успешного выполнения ими своих служебных обязанностей, с точки зрения автоматизированной обработки доступной им конфиденциальной информации.
-Полнота контроля и регистрации попыток несанкционированного доступа, т. е. необходимость точного установления идентичности каждого пользователя и протоколирования его действий для проведения возможного расследования, а также невозможность совершения любой операции обработки информации в АИТ без ее предварительной регистрации.
-Обеспечение надежности системы защиты, т. е. невозможность снижения уровня надежности при возникновении в системе сбоев, отказов, преднамеренных действий нарушителя или непреднамеренных ошибок пользователей и обслуживающего персонала.
-Обеспечение контроля за функционированием системы защиты, т. е. создание средств и методов контроля работоспособности механизмов защиты.
-«Прозрачность» системы защиты информации для общего, прикладного программного обеспечения и пользователей АИТ.
-Экономическая целесообразность использования системы защиты, выражающаяся в том, что стоимость разработки и эксплуатации систем защиты информации должна быть меньше стоимости возможного ущерба, наносимого объекту в случае разработки и эксплуатации АИТ без системы зашиты информации.
Проблема создания системы защиты информации включает в себя две взаимно дополняющие задачи.
Разработка системы защиты информации (ее синтез).
Оценка разработанной системы защиты информации.
Вторая задача решается путем анализа ее технических характеристик с целью установления, удовлетворяет ли система защиты информации комплексу требований к таким системам.
Такая задача в настоящее время решается почти исключительно экспертным путем с помощью сертификации средств защиты информации и аттестации системы защиты информации в процессе ее внедрения.
Методы и средства обеспечения безопасности информации показаны на рис. 1.[1,242].
Рис.1. Методы и средства обеспечения безопасности информации (на примере банковской системы).
Рассмотрим основное содержание представленных средств и методов защиты информации, которые составляют основу механизмов защиты.
Препятствие — метод физического преграждения пути злоумышленнику к защищаемой информации (к аппаратуре, носителям информации и т.д.).
Управление доступом — метод защиты информации регулированием использования всех ресурсов компьютерной информационной системы банковской деятельности (элементов баз данных, программных и технических средств). Управление доступом включает следующие функции защиты:
идентификацию пользователей, персонала и ресурсов системы (присвоение каждому объекту персонального идентификатора);
опознание (установление подлинности) объекта или субъекта по предъявленному им идентификатору;
проверку полномочий (проверка соответствия дня недели, времени суток, запрашиваемых ресурсов и процедур установленному регламенту);
разрешение и создание условий работы в пределах установленного регламента;
регистрацию (протоколирование) обращений к защищаемым ресурсам;
реагирование (сигнализация, отключение, задержка работ, отказ в запросе) при попытках несанкционированных действий.
Маскировка — метод защиты информации путем ее криптографического закрытия. Этот метод защиты широко применяется за рубежом как при обработке, так и при хранении информации, в том числе на дискетах. При передаче информации по каналам связи большой протяженности этот метод является единственно надежным.
Регламентация — метод защиты информации, создающий такие условия автоматизированной обработки, хранения и передачи защищаемой информации, при которых возможности несанкционированного доступа к ней сводились бы к минимуму.
Принуждение — такой метод защиты, при котором пользователи и персонал системы вынуждены соблюдать правила обработки, передачи и использования защищаемой информации под угрозой материальной, административной или уголовной ответственности.
Побуждение — такой метод защиты, который побуждает пользователя и персонал системы не разрушать установленные порядки за счет соблюдения сложившихся моральных и этических норм (как регламентированных, так и неписаных).
Рассмотренные методы обеспечения безопасности реализуются на практике за счет применения различных средств защиты, таких, как технические, программные, организационные, законодательные и морально-этические.
К основным средствам зашиты, используемым для создания механизма защиты, относятся следующие:
-Технические средства реализуются в виде электрических, электромеханических и электронных устройств. Вся совокупность технических средств делится на аппаратные и физические. Под аппаратными техническими средствами принято понимать устройства, встраиваемые непосредственно в вычислительную технику или устройства, которые сопрягаются с подобной аппаратурой по стандартному интерфейсу.
-Физические средства реализуются в виде автономных устройств и систем. Например, замки на дверях, где размещена аппаратура, решетки на окнах, электронно-механическое оборудование охранной сигнализации.
-Программные средства представляют из себя программное обеспечение, специально предназначенное для выполнения функций зашиты информации.
-Организационные средства защиты представляют собой организационно-технические и организационно-правовые мероприятия, осуществляемые в процессе создания и эксплуатации вычислительной техники, аппаратуры телекоммуникаций для обеспечения защиты информации. Организационные мероприятия охватывают все структурные элементы аппаратуры на всех этапах их жизненного цикла (строительство помещений, проектирование компьютерной информационной системы банковской деятельности, монтаж и наладка оборудования, испытания, эксплуатация).
-Морально-этические средства защиты реализуются в виде всевозможных норм, которые сложились традиционно или складываются по мере распространения вычислительной техники и средств связи в обществе. Эти нормы большей частью не являются обязательными как законодательные меры, однако, несоблюдение их ведет обычно к потере авторитета и престижа человека. Наиболее показательным примером таких норм является Кодекс профессионального поведения членов Ассоциаций пользователей ЭВМ США.
-Законодательные средства защиты определяются законодательными актами страны, которыми регламентируются правила пользования, обработки и передачи информации ограниченного доступа и устанавливаются меры ответственности за нарушение этих правил.
Все рассмотренные средства защиты разделены на формальные (выполняющие защитные функции строго по заранее предусмотренной процедуре без непосредственного участия человека) и неформальные (определяются целенаправленной деятельностью человека либо регламентируют эту деятельность).
Для реализации мер безопасности используются различные механизмы шифрования (криптографии). Криптография — это наука об обеспечении секретности и/или аутентичности (подлинности) передаваемых сообщений.
Сущность криптографических методов заключается в следующем.
Готовое к передаче сообщение, будь то данные, речь или графическое изображение того или иного документа, обычно называется открытым, или незащищенным, текстом или сообщением. В процессе передачи такого сообщения по незащищенным каналам связи оно может быть легко перехвачено или отслежено подслушивающим лицом посредством его умышленных или неумышленных действий. Для предотвращения несанкционированного доступа к этому сообщению оно зашифровывается и тем самым преобразуется в шифрограмму или закрытый текст. Когда же санкционированный пользователь получает сообщение, он дешифрует или раскрывает его посредством обратного преобразования криптограммы, вследствие чего получается исходный открытый текст.
Методу преобразования в криптографической системе соответствует использование специального алгоритма. Действие такого алгоритма запускается уникальным числом, или битовой последовательностью, обычно называемым шифрующим ключом.
Каждый используемый ключ может производить различные шифрованные сообщения, определяемые только этим ключом. Для большинства систем закрытия схема генератора ключа может представлять собой либо набор инструкций команд, либо часть, узел аппаратуры (hardware), либо компьютерную программу (software), либо все это вместе, но в любом случае процесс шифрования/дешифрования единственным образом определяется выбранным специальным ключом. Поэтому, чтобы обмен зашифрованными сообщениями проходил успешно, как отправителю, так и получателю необходимо знать правильную ключевую установку и хранить ее в тайне.
Следовательно, стойкость любой системы закрытой связи определяется степенью секретности используемого в ней ключа. Тем не менее этот ключ должен быть известен другим пользователям сети, так чтобы они могли свободно обмениваться зашифрованными сообщениями. В этом смысле криптографические системы также помогают решить проблему аутентификации (установления подлинности) принятой информации, поскольку подслушивающее лицо, пассивным образом перехватывающее сообщение, будет иметь дело только с зашифрованным текстом. В то же время истинный получатель, приняв эти сообщения, закрытые известным ему и отправителю ключом, будет надежно защищен от возможной дезинформации.
Шифрование может быть симметричным и асимметричным. Симметричное основывается на использовании одного и того же секретного ключа для шифрования и дешифрования. Асимметричное характеризуется тем, что для шифрования используется один ключ, являющийся общедоступным, а для дешифрования — другой, являющийся секретным, при этом знание общедоступного ключа не позволяет определить секретный ключ.
Наряду с шифрованием используются и другие механизмы безопасности:
цифровая (электронная) подпись;
контроль доступа;
обеспечение целостности данных;
обеспечение аутентификации;
постановка графика;
управление маршрутизацией;
арбитраж или освидетельствование.
Механизмы цифровой подписи основываются на алгоритмах ассиметричного шифрования и включают две процедуры: формирование подписи отправителем и ее опознавание (верификацию) получателем. Первая процедура обеспечивает шифрование блока данных либо его дополнение криптографической контрольной суммой, причем в обоих случаях используется секретный ключ отправителя. Вторая процедура основывается на использовании общедоступного ключа, знания которого достаточно для опознавания отправителя.
Механизмы контроля доступа осуществляют проверку полномочий объектов АЙТ (программ и пользователей) на доступ к ресурсам сети. При доступе к ресурсу через соединение контроль выполняется как в точке инициации, так и в промежуточных точках, а также в конечной точке.
Механизмы обеспечения целостности данных применяются как к отдельному блоку, так и к потоку данных. Целостность блока является необходимым, но недостаточным условием целостности потока. Целостность блока обеспечивается выполнением взаимосвязанных процедур шифрования и дешифрования отправителем и получателем. Отправитель дополняет передаваемый блок криптографической суммой, а получатель сравнивает ее с криптографическим значением, соответствующим принятому блоку. Несовпадение свидетельствует об искажении информации в блоке. Однако описанный механизм не позволяет вскрыть подмену блока в целом. Поэтому необходим контроль целостности потока, который реализуется посредством шифрования с использованием ключей, изменяемых в зависимости от предшествующих блоков.
Различают одностороннюю и взаимную аутентификацию. В первом случае один из взаимодействующих объектов проверяет подлинность другого, тогда как во втором случае проверка является взаимной.
Механизмы постановки графика, называемые также механизмами заполнения текста, используются для реализации засекречивания потока данных. Они основываются на генерации объектами АИТ фиктивных блоков, их шифровании и организации передачи по каналам сети. Этим нейтрализуется возможность получения информации посредством наблюдения за внешними характеристиками потоков, циркулирующих по каналам связи.
Механизмы управления маршрутизацией обеспечивают выбор маршрутов движения информации по коммуникационной сети таким образом, чтобы исключить передачу секретных сведений по скомпрометированным (небезопасным) физически ненадежным каналам Механизмы арбитража обеспечивают подтверждение характеристик данных, передаваемых между объектами АИТ, третьей стороной (арбитром). Для этого вся информация, отправляемая или получаемая объектами, проходит и через арбитра, что позволяет ему впоследствии подтверждать упомянутые характеристики.
В АИТ при организации безопасности данных используется комбинация нескольких механизмов.
Обеспечение информационной безопасности на уровне государства
Лекция 13 СЖАТИЕ ДАННЫХ
Теоретические основы сжатия данных
Хранение и передача информации обходятся участникам информационного процесса недешево. Зная :
стоимость носителя
его емкость (Мбайт, Гбайт),
нетрудно подсчитать, во что обходится хранение единицы информации,
а зная
пропускную способность канала связи (Мбит/с) и
стоимость его аренды
можно определить затраты на передачу единицы информации.
Полученные результаты значимы как для корпоративных пользователей, так и для индивидуальных. Поэтому регулярно необходимо сжимать данные перед тем, как размещать их в архивах или передавать по каналам связи. Соответственно, существует и обратная необходимость восстановления данных из предварительно уплотненных архивов.
Характерной особенностью большинства «классических» типов данных является определенная избыточность. Степень избыточности зависит
от типа данных.(Например, у видеоданных степень избыточности обычно в несколько раз больше, чем у графических данных, а степень избыточности графических данных в несколько раз больше, чем текстовых.
степень избыточности данных зависит от принятой системы кодирования. Так, например, можно сказать, что кодирование текстовой информации средствами русского языка (с использованием русской азбуки) дает в среднем избыточность на 20-30% больше, чем кодирование адекватной информации средствами английского языка.
Для человека избыточность информации нередко связана с представлением о ее качестве, поскольку избыточность, как правило, улучшает восприятие, Однако, когда речь заходит не об обработке, а о хранении готовых документов или их передаче, то избыточность можно уменьшить, что дает эффект сжатия данных.
Если методы сжатия информации применяют к готовым документам, то термин сжатие данных обычно подменяют термином архивация данных, а программные средства, выполняющие эти операции, называют архиваторами.
Объекты сжатия
В зависимости от того, в каком объекте размещены данные, подвергаемые сжатию, различают:
• уплотнение (архивацию) файлов;
• уплотнение (архивацию) папок;
• уплотнение дисков.
Уплотнение файлов применяют для уменьшения их размеров при подготовке к передаче по каналам электронных сетей или к транспортировке на внешнем носителе малой емкости, например на гибком диске.
Уплотнение папок используют как средство архивации данных перед длительным хранением, в частности, при резервном копировании.
Уплотнение дисков служит целям повышения эффективности использования их рабочего пространства и, как правило, применяется к дискам, имеющим недостаточную емкость.
Обратимость сжатия
Существует много алгоритмов сжатия данных и теоретически есть только три способа уменьшения их избыточности. Это:
изменение содержания данных
изменение их структуры
либо и то и другое вместе.
Если при сжатии данных происходит изменение их содержания, метод сжатий необратим и при восстановлении данных из сжатого файла не происходит полного восстановления исходной последовательности. Такие методы называют также методами сжатия с регулируемой потерей информации.
Они применимы только для тех типов данных, в которых формальная утрата части содержания не приводит к значительному снижению потребительских свойств (это относится к мультимедийным данным: видеорядам, музыкальным записям, звукозаписям и рисункам. )
Методы сжатия с потерей информации обычно обеспечивают гораздо более высокую степень сжатия, чем обратимые методы, но их нельзя применять к текстовым документам, базам данных и, тем более, к программному коду.
Характерными форматами сжатия с потерей информации являются:
• JPG для графических данных;
• .MPG для видеоданных;
• .МРЗ для звуковых данных.
Если при сжатии данных происходит только изменение их структуры, то метод сжатия обратим. Из результирующего кода можно восстановить исходный массив путем применения обратного метода. Обратимые методы применяют для сжатия любых типов данных.
Характерными форматами сжатия без потери информации являются:
• .GIF, .TIF, .PCX и многие другие для графических данных;
• .AVI для видеоданных;
• .ZIP, .ARJ, .RAR, .LZH, .LK, .CAB и многие другие для любых типов данных.
2. Программные средства сжатия данных
«Классическими» форматами сжатия данных, широко используемыми в повседневной работе с компьютером, являются форматы .ZIP и .ARJ. В последнее время к ним добавился популярный формат. RAR. Программные средства, предназначенные для создания и обслуживания архивов, выполненных в данных форматах, приведены в табл. 2. Программные средства сжатия данных.
Таблица 2 Средства архивации файлов
Операционная система |
Формат сжатия |
Средство архивации |
Средство разархивирования |
MS-DOS |
•ZIP |
PKZIP.EXE |
PKUNZIREXE |
.RAR |
RAR.EXE |
UNRAR.EXE |
|
.ARJ |
ARJ.EXE |
||
Windows |
ZIP |
WinZIp |
|
.RAR |
WnRAR |
||
.ARJ |
WInArj |
Средства архивации, предназначенные для операционной системы MS-DOS, не рекомендуется использовать в Windows 9x (в окне Сеанс MS-DOS).
Базовые требования к диспетчерам архивов
Современные программные средства для создания и обслуживания архивов отличаются большим объемом функциональных возможностей, многие из которых - выходят далеко за рамки простого сжатия данных и эффективно дополняют стандартные средства операционной системы. В этом смысле современные средства архивации данных называют диспетчерами архивов.
К базовым функциям, которые выполняют большинство современных диспетчеров архивов, относятся:
• извлечение файлов из архивов;
• создание новых архивов;
• добавление файлов в имеющийся архив;
• создание самораспаковывающихся архивов;
• создание распределенных архивов на носителях малой емкости;
• тестирование целостности структуры архивов;
• полное или частичное восстановление поврежденных архивов;
• защита архивов от просмотра и несанкционированной модификации.
Самораспаковывающиеся архивы. если архивация производится для передачи документа потребителю, следует предусмотреть наличие у него программного средства, для извлечения исходных данных из архива. Если таких средств у потребителя нет - создают самораспаковывающиеся архивы. Самораспаковывающийся архив готовится на базе обычного архива путем присоединения к нему небольшого программного модуля. Сам архив получает расширение имени .ЕХЕ, характерное для исполнимых файлов. Потребитель сможет выполнить его запуск как программы, после чего распаковка архива: произойдет на его компьютере автоматически.
Распределенные архивы. Если предполагается передача большого архива на носителях малой емкости, например на гибких дисках, возможно распределение одного архива в виде малых фрагментов на нескольких носителях:
WInZip выполняют разбиение сразу на гибкие диски,
WInRAR и WinArj позволяют выполнить предварительное разбиение архива на фрагменты заданного размера на жестком диске. Впоследствии их можно перенести на внешние носители путем копирования.
При создании распределенных архивов диспетчер WinZip обладает неприятной особенностью: каждый том несет файлы с одинаковыми именами. В результате этого нет возможности установить номера томов, хранящихся на каждом из гибких дисков, по названию файла. Поэтому каждый диск следует маркировать пометками на наклейке, а при создании распределенного архива следует аккуратно перекладывать дискеты из начальной стопки в конечную, чтобы не перепутать последовательность немаркированных томов.
В случае необходимости узнать номер тома можно не по названию файла, а по метке на диске, хотя эта операция не слишком удобна. Для этого следует открыть окно Мой компьютер, выбрать значок дисковода 3,5 (А:), щелкнуть на нем правой кнопкой мыши и выбрать в контекстном меню пункт Свойства. В диалоговом окне Свойства: Диск 3,5 (А:) на вкладке Общие можно узнать номер тома распределенного архива в поле Метка тома. (рис. 14.2).
Диспетчеры архивов WinArj и WInRAR маркируют все файлы распределенного архива разными именами и потому не создают подобных проблем.
Гибкие диски являются крайне ненадежными носителями, поэтому считается правилом «хорошего тона» создание двух копий при передаче материалов на гибких дисках.
Защита архивов. В большинстве случаев защиту архивов выполняют с помощью пароля, который запрашивается при попытке просмотреть, распаковать или изменить архив. Теоретически, защита с помощью пароля считается неудовлетворительной и не рекомендуется для особо важной информации. В то же время необходимо отметить, что основные программные средства, используемые для восстановления утраченного пароля (или взлома закрытой информации, что, по сути, то же самое), используют методы прямого перебора. Работу этих средств можно существенно затруднить и замедлить, если расширить область перебора. Пароли на базе символов английского алфавита и цифр действительно снимаются очень быстро. Однако даже незначительное увеличение числа используемых символов за счет знаков препинания многократно увеличивает криптостойкость защиты, а использование также и символов русского алфавита может полностью опровергнуть попытки снять пароль путем перебора, сделав сроки работы неприемлемыми.
Дополнительные требования к диспетчерам архивов
К дополнительным функциям диспетчеров архивов относятся сервисные функции, делающие работу более удобной. Они часто реализуются внешним подключением дополнительных служебных программ и обеспечивают;
• просмотр файлов различных форматов без извлечения их из архива;
• поиск файлов и данных внутри архивов;
• установку программ из архивов без предварительной распаковки;
• проверку отсутствия компьютерных вирусов в архиве до его распаковки;
• криптографическую защиту архивной информации;
• декодирование сообщений электронной почты;
• «прозрачное» уплотнение исполнимых файлов .ЕХЕ и .DLL;
• создание самораспаковывающихся многотомных архивов;
• выбор или настройку коэффициента сжатия информации.
Лекция 14 локальные вычислительные сети
Вопросы:
Программные и аппаратные компоненты вычислительной сети.
Основные требования, предъявляемые к современным вычислительным сетям
Базовые технологии локальных сетей
Программные и аппаратные компоненты вычислительной сети.
Вычислительная сеть (далее сеть) — сложная система программных и аппаратных компонентов, взаимосвязанных друг с другом. Среди аппаратных средств можно выделить компьютеры и коммуникационное оборудование. Программные компоненты состоят из операционных систем и сетевых приложений.
Основа любой вычислительной сети - компьютеры, характеристики которых определяют возможности вычислительной сети. Но в последнее время и коммуникационное оборудование (кабельные системы, повторители, мосты, маршрутизаторы и др.) стало играть не менее важную роль..
Для эффективной работы сетей используются специальные операционные системы (ОС), которые, в отличие от персональных операционных систем, предназначены для решения специальных задач по управлению работой сети компьютеров. Это сетевые операционные системы. Сетевые ОС устанавливаются на специально выделенные компьютеры.
Сетевые приложения — это прикладные программные комплексы, которые расширяют возможности сетевых ОС (среди них почтовые программы, системы коллективной работы, сетевые базы данных и др.)
Все устройства, подключаемые к сети, можно разделить на три функциональные группы:
рабочие станции;
серверы сети;
коммуникационные узлы.,
Рабочая станция (workstation) — это персональный компьютер, подключенный к сети, на котором пользователь сети выполняет свою работу. Каждая рабочая станция обрабатывает свои локальные файлы и использует свою операционную систему, но при этом пользователю доступны ресурсы сети. Можно выделить три типа рабочих станций: рабочая станция с локальным диском, бездисковая рабочая станция, удаленная рабочая станция.
На рабочей станции с диском (жестким или гибким) операционная система загружается с этого локального диска. Для бездисковой станции операционная система загружается с диска файлового сервера. Удаленная рабочая станция — это станция, которая подключается к локальной сети через телекоммуникационные каналы связи (например, с помощью телефонной сети).
Сервер сети (server) — это компьютер, подключенный к сети и предоставляющий пользователям сети определённые услуги, например хранение данных общего пользования, печать заданий, обработку запроса к СУБД, удаленную обработку заданий и т. д. По выполняемым функциям можно выделить следующие группы серверов.
Файловый сервер (file server) — компьютер, хранящий данные пользователей сети и обеспечивающий доступ пользователей к этим данным. Файловый сервер обеспечивает одновременный доступ пользователей к общим данным. Файловый сервер выполняет следующие функции:
хранение данных;
архивирование данных;
согласование изменений данных, выполняемых разными пользователями;
передачу данных.
Сервер баз данных — компьютер, выполняющий функции хранения, обработки и управления файлами баз данных (БД). Сервер баз данных выполняет следующие функции:
хранение баз данных, поддержку их целостности, полноты, актуальности;
прием и обработку запросов к базам данных, а также пересылку результатов обработки на рабочую станцию;
обеспечение авторизированного доступа к базам данных, поддержку системы ведения и учета пользователей, разграничение доступа пользователей;
согласование изменений данных, выполняемых разными пользователями;
поддержку распределенных баз данных, взаимодействие с другими серверами баз данных, расположенными в другом месте.
Сервер прикладных программ (application server) — компьютер, который используется для выполнения прикладных программ пользователей.
Коммуникационный сервер (communications server) — устройство или компьютер, который предоставляет пользователям локальной сети прозрачный доступ к своим последовательным портам ввода/вывода.
Сервер доступа (access server) — это выделенный компьютер, позволяющий выполнять удаленную обработку заданий. От удаленной рабочей станции принимаются команды, введенные пользователем с клавиатуры, а возвращаются результаты выполнения задания.
Факс-сервер (fax server) — устройство или компьютер, который выполняет рассылку и прием факсимильных сообщений для пользователей локальной сети.
Сервер резервного копирования данных (back up server) — устройство или компьютер, который решает задачи создания, хранения и восстановления копий данных, расположенных на файловых серверах и рабочих станциях. В качестве такого сервера может использоваться один из файловых серверов сети. Следует отметить, что все перечисленные типы серверов могут функционировать на одном выделенном для этих целей компьютере. К коммуникационным узлам сети относятся следующие устройства:
повторители;
коммутаторы (мосты);
маршрутизаторы;
шлюзы.
При передаче данных в любой среде происходит затухание сигнала, что и приводит к ограничению расстояния. Чтобы преодолеть это ограничение и расширить сеть, устанавливают специальные устройства — повторители, мосты и коммутаторы. Часть сети, в которую не входит устройство расширения, принято называть сегментом сети.
Повторитель (repeater) — устройство, усиливающее или регенерирующее пришедший на него сигнал. Повторитель, приняв пакет из одного сегмента, передает его; во все остальные. Коммутатор (switch), или мост (bridge) — это устройство, которое, как и повторитель, позволяет объединять несколько сегментов. В отличие от повторителя, мост выполняет развязку присоединенных к нему сегментов, то есть одновременно поддерживает несколько процессов обмена данными для каждой пары станций разных сегментов.
Маршрутизатор (router) — устройство, соединяющее сети одного или разных типов по одному протоколу обмена данными. Маршрутизатор анализирует адрес назначения и направляет данные по оптимально выбранному маршруту.
Шлюз (gateway) — это устройство, позволяющее организовать обмен данными между разными сетевыми объектами, использующими разные протоколы обмена данными.
Основные требования, предъявляемые к современным вычислительным сетям
Вычислительная сеть создается для обеспечения потенциального доступа к любому ресурсу сети для любого пользователя сети. Качество доступа к ресурсу может быть описано многими показателями, среди которых можно выделить следующие: производительность, надежность, управляемость, расширяемость, прозрачность.
Производительность
С точки зрения пользователя, важным числовым показателем производительности сети является время реакции системы. Время реакции — это время между моментом возникновения запроса и моментом получения ответа.. Время реакции зависит от многих факторов, таких как используемая служба сети, степень загруженности сети или отдельных сегментов и др. Поэтому при оценке производительности работы сети определяется среднее время реакции.
Пропускная способность сети определяется количеством информации, переданной через сеть или ее сегмент в единицу времени. Пропускная способность сети характеризует, насколько быстро сеть может выполнить свою основную задачу передачи информации. Пропускная способность определяется в битах в секунду.
Надежность
Надежность работы вычислительной сети определяется надежностью работы всех ее компонентов. Для повышения надежности работы аппаратных компонентов обычно используют дублирование, когда при отказе одного из элементов функционирование сети обеспечат другие.
При работе вычислительной сети должна обеспечиваться сохранность информации и защита ее от искажений. Как правило, информация в сети хранится в нескольких экземплярах (для повышения надежности).
Одной из функций вычислительной сети является передача информации (передача осуществляется порциями, которые называются пакетами), во время которой возможны ее потери и искажения. Для оценки надежности исполнения этой функции используются показатели вероятности потери пакета при его передаче, либо вероятности доставки пакета.
В современных вычислительных сетях важное значение имеет другая сторона надежности — безопасность. Это способность сети обеспечить защиту информации от несанкционированного доступа. Задачи обеспечения безопасности решаются применением как специального программного обеспечения, так и соответствующих аппаратных средств.
Управляемость
При работе вычислительной сети, которая в идеале объединяет отдельные компьютеры в единое целое, необходимы средства не только для наблюдения за работой сети, сбора разнообразной информации о функционировании сети, но и средства управления сетью. Управлением сетью занимается администратор сети или пользователь, которому поручены эти функции.
Другими характеристиками управляемости являются возможность определения проблем в работе вычислительной сети или отдельных ее сегментов, выработка управленческих действий для решения выявленных проблем и возможность автоматизации этих процессов при решении похожих проблем в будущем.
Расширяемость
Любая вычислительная сеть является развивающимся объектом, и не только в плане модернизации ее элементов, но и в плане ее физического расширения, добавления новых элементов сети (пользователей, компьютеров, служб). Существование таких возможностей, трудоемкость их осуществления входят в понятие расширяемости. Другой похожей характеристикой является масштабируемость сети, которая определяет возможность расширения сети без существенного снижения ее производительности. Обычно одноранговые сети обладают хорошей расширяемостью, но плохой масштабируемостью. В таких сетях легко добавить новый компьютер, используя дополнительный кабель и сетевой адаптер, но существуют ограничения на количество подключаемых компьютеров в связи с существенным падением производительности сети. В многосегментных сетях используются специальные коммуникационные устройства, которые позволяют подключать к сети значительное количество дополнительных компьютеров без снижения общей производительности сети.
Прозрачность
Прозрачность вычислительной сети является ее характеристикой с точки зрения пользователя. Прозрачность сети предполагает скрытие (невидимость) особенностей сети от конечного пользователя. Пользователь обращается к ресурсам сети как к обычным локальным ресурсам компьютера, на котором он работает.
Интегрируемость
Интегрируемость означает возможность подключения к вычислительной сети разнообразного и разнотипного оборудования, программного обеспечения от разных производителей. Если такая неоднородная вычислительная сеть успешно выполняет свои функции, то можно говорить о том, что она обладает хорошей интегрируемостью.
Основным направлением развитая интегрируемости вычислительных сетей является стандартизации сетей, их элементов и компонентов. Всё стандарты разделить на следующие виды: '
стандарты отдельных фирм;.
стандарты специальных комитетов и объединений, создаваемых несколькими фирмами;
стандарты национальных организаций по стандартизации;
международные стандарты.
Международная организация по стандартизации (International Organization for Standardization — ISO). Эта организация известна разработкой модели взаимодействия открытых систем, которая в настоящее время является основной, своего рода “эталонной” моделью вычислительной сети. Эта модель является основой стандартизации в области вычислительных сетей.
Локальная сеть, Local Area Network (LAN), объединяет компьютеры, как правило, одной организации, которые располагаются компактно в одном или нескольких зданиях. Размер локальной сети не превышает нескольких километров. Небольшие расстояния между компьютерами экономически оправдывают прокладку новых высококачественных линий связи, которые позволяют использовать простые алгоритмы и процедуры передачи данных и относительно дешевые коммуникационные устройства. Пропускная способность современных локальных сетей достигает 1000 Мбит/с. Время обращения к сетевым ресурсам соизмеримо со временем обращения к локальным ресурсам рабочей станции.
Высокое качество передачи данных дает возможность сети предоставлять пользователю широкий спектр услуг: файловую службу, печать, факс, электронную почту, сканер, базы данных и другие услуги, реализация которых отдельно на локальном компьютере непозволительно дорога. Каналы связи могут использоваться совместно сразу многими компьютерами сети. При этом возможно использование современных методов передачи данных, позволяющих сгладить неравномерность нагрузки на линии связи при передаче компьютерных данных (метод коммутации пакетов описывается далее).
Локальные сети обладают плохой масштабируемостью, так как используемые в них технологии накладывают жесткие ограничения на длину линий связи и количество подключаемых компьютеров.
Локальные сети рабочих групп объединяют небольшое количество компьютеров, работающих, как правило, Под управлением одной операционной среды. В сети выделен один компьютер, который выполняет сетевые службы, например файловый сервер, сервер печати, сервер факса.
Локальные сети отделов могут объединять компьютеры целого отдела. Количество компьютеров может быть в несколько раз больше, чем в сетях рабочих групп. Сетевые службы могут быть распределены между отдельными выделенными компьютерами-серверами.
Оба типа локальных сетей используют одну из базовых технологий. Эти сети можно назвать классическими локальными сетями. Территориально они могут занимать небольшую площадь, одно-два здания.
Методы передачи данных на физическом и канальном уровнях
На физическом уровне единицей информации является бит. Устройства физического уровня должны поддерживать битовую синхронизацию данных между передатчиком и приемником. Для работы на ненадежных линиях связи используется синхронизация на уровне байт. Каждый байт данных при передаче сопровождается специальными сигналами “старт” и “стоп”. Эти сигналы позволяют синхронизировать передачу/прием байта данных. Такой режим называется асинхронным. Отдельный байт данных может быть смещен по времени от тактов других байтов данных.
На достаточно хороших линиях связи используется синхронный режим передачи данных, когда данные передаются в виде кадров, состоящих из последовательности байт. Перед каждым кадром передается специальный синхробайт.
При синхронном режиме скорость передачи данных выше, при асинхронном — меньше, но асинхронный режим можно применять на ненадежных линиях связи.
Методы коммутации
Для передачи данных между двумя компьютерами необходимо организовать физическую связь. Различают коммутируемые и некоммутируемые линии связи. Некоммутируемая линия связи соединяет два компьютера, которые владеют этой линией длительное время. Обеспечить такой линией связи любую пару компьютеров практически невозможно. На практике используются коммутируемые линии, когда линия связи между парой компьютеров образуется только на время сеанса обмена данными между ними. В этом случае линия связи может быть использована многими компьютерами. Различают три способа коммутации: коммутация каналов, коммутация пакетов, коммутация сообщений. Различают коммутацию динамическую и постоянную. При динамической коммутации соединение образуется на время обмена данными по инициативе одного из абонентов. Постоянная коммутация выполняется обслуживающим персоналом сети.