Поколения ЭВМ и их особенности 4 страница

Если переменные присутствуют в программе, на протяжении всего времени ее работы – их называют статическими. Переменные, создающиеся и уничтожающиеся на разных этапах выполнения программы, называют динамическими.

Все остальные данные в программе, значения которых не изменяются на протяжении ее работы, называют константами или постоянными. Константы, как и переменные, имеют тип. Их можно указывать явно или для удобства обозначать идентификаторами.

Для повышения производительности и качества работы необходимо иметь данные, максимально приближенные к реальным аналогам. Тип данных, позволяющий хранить вместе под одним именем несколько переменных, называется структурированным. Каждый язык программирования имеет свои структурированные типы.

Рассмотрим структуру, объединяющую элементы одного типа данных, – массив.

Массивом называется упорядоченная совокупность однотипных величин, имеющих общее имя, элементы которой адресуются (различаются) порядковыми номерами (индексами). Элементы массива в памяти компьютера хранятся по соседству, одиночные элементы простого типа такого расположения данных в памяти не предполагают. Массивы различаются количеством индексов, определяющих их элементы.

Одномерный массив предполагает наличие у каждого элемента только одного индекса. Количество элементов массива называют размерностью. При определении одномерного массива его размерность записывается в круглых скобках, рядом с его именем. Ввод элементов одномерного массива осуществляется поэлементно, в порядке, необходимом для решения конкретной задачи. Обычно, когда требуется ввести весь массив, порядок ввода элементов не важен, и элементы вводятся в порядке возрастания их индексов.

Рассмотрим двумерный массив. В математике двумерный массив (таблица чисел) называется матрицей. Каждый ее элемент имеет два индекса аij первый индекс i определяет номер строки, в которой находится элемент (координата по горизонтали), а второй j – номер столбца (координата по вертикали). Двумерный массив характеризуется двумя размерностями N и М, определяющими число строк и столбцов соответственно/ Ввод элементов двумерного массива осуществляется построчно, в свою очередь, ввод каждой строки производится поэлементно, тем самым определяется циклическая конструкция, реализующая вложение циклов. Внешний цикл определяет номер вводимой строки (i), внутренний – номер элемента по столбцу j).

Сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически перевести такую программу в машинный код пока невозможно.

Языки программирования – это формальные искусственные языки. Как и естественные языки, они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику.

Алфавит – разрешенный к использованию набор символов, с помощью которого могут быть образованы слова и величины данного языка.

Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.

Семантика – система правил однозначного толкования каждой языковой конструкции, позволяющих производить процесс обработки данных.

Взаимодействие синтаксических и семантических правил определяет основные понятия языка, такие как операторы, идентификаторы, константы, переменные, функции, процедуры и т.д. В отличие от естественных, язык программирования имеет ограниченный запас слов (операторов) и строгие правила их написания, а правила грамматики и семантики, как и для любого формального языка, явно однозначно и четко сформулированы.

Языки программирования, ориентированные на команды процессора и учитывающие его особенности, называют языками низкого уровня. «Низкий уровень» не означает неразвитый, имеется в виду, что операторы этого языка близки к машинному коду и ориентированы на конкретные команды процессора. Языком самого низкого уровня является ассемблер. Программа, написанная на нем, представляет последовательность команд машинных кодов, но записанных с помощью символьных мнемоник. С помощью языков низкого уровня создаются компактные оптимальные программы, так как программист получает доступ ко всем возможностям процессора. С другой стороны, при этом требуется хорошо понимать устройство компьютера, а использование такой программы на компьютере с процессором другого типа невозможно. Такие языки программирования используются для написания небольших системных приложений, драйверов устройств, модулей стыковки с нестандартным оборудованием, когда важнее компактность, быстродействие, прямой доступ к аппаратным ресурсам.

Языки программирования, имитирующие естественные, обладающие укрупненными командами, ориентированные «на человека», называют языками высокого уровня. Чем выше уровень языка, тем ближе структуры данных и конструкции, использующиеся в программе, к понятиям исходной задачи. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому исходные тексты программ легко переносимы на другие платформы, имеющие трансляторы этого языка. Разрабатывать программы на языках высокого уровня с помощью понятных и мощных команд значительно проще, число ошибок, допускаемых в процессе программирования, намного меньше. В настоящее время насчитывается несколько сотен таких языков (без учета их диалектов). Таким образом, языки программирования высокого уровня, ориентированные на решение больших содержательных прикладных задач, являются аппаратно-независимыми и требуют использования соответствующих программ-переводчиков для преобразования текста программы в машинный код, который в итоге и обрабатывается процессором.

С помощью языка программирования создается текст программы, описывающий разработанный алгоритм. Чтобы программа была выполнена, надо либо весь ее текст перевести в машинный код (это действие и выполняет программа – компилятор) и затем передать на исполнение процессору, либо сразу выполнять команды языка, переводя на машинный язык и исполняя каждую команду поочередно (этим занимаются программы – интерпретаторы).

Интерпретатор функционирует следующим образом: берет очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет. После успешного выполнения текущей команды интерпретатор переходит к анализу и исполнению следующей. Если один и тот же оператор в программе выполняется несколько раз, интерпретатор всякий раз воспринимает его так, будто встретил впервые. Поэтому программы, в которых требуется произвести большой объем повторяющихся вычислений, будут работать медленно. Для выполнения программы на другом компьютере также необходимо установить интерпретатор, так как без него программа представляет собой набор слов и работать не может.

Компиляторы полностью обрабатывают весь текст программы (его называют исходным кодом или source code). Они осуществляют поиск синтаксических ошибок, выполняют семантический анализ и только затем, если текст программы в точности соответствует правилам языка, его автоматически переводят (транслируют) на машинный язык (говорят: генерируют объектный код или object code). Нередко при этом выполняется оптимизация с помощью набора методов, позволяющих повысить быстродействие программы. Сгенерированный объектный код обрабатывается специальной программой – сборщиком или редактором связей, который производит связывание объектного и машинного кодов. Текст программы преобразуется в готовый к исполнению ЕХЕ-файл (исполнимый код), его можно сохранить в памяти компьютера или на диске. Этот файл имеет самостоятельное значение и может работать под управлением операционной системы. Его можно перенести на другие компьютеры с процессором, поддерживающим соответствующий машинный код. Основной недостаток компиляторов – трудоемкость трансляции языков программирования, ориентированных на обработку данных сложной структуры, заранее неизвестной или динамически меняющейся во время работы программы. Для таких программ в машинный код вводятся дополнительные проверки и анализ наличия ресурсов операционной системы, средства динамического захвата и освобождения памяти компьютера, что на уровне статически заданных машинных инструкций осуществить достаточно сложно, а для некоторых задач практически невозможно.

С помощью интерпретатора, наоборот, для исследования содержимого памяти допустимо в любой момент прервать работу программы, организовать диалог с пользователем, выполнить любые сложные преобразования данных и при этом постоянно контролировать программно-аппаратную среду, что и обеспечивает высокую надежность работы программы. Интерпретатор при выполнении каждой команды подвергает проверке и анализу необходимые ресурсы операционной системы, при возникающих проблемах выдает сообщения об ошибках.

В реальных системах программирования смешаны технологии компиляции и интерпретации. В процессе отладки программу можно выполнять по шагам (трассировать), а результирующий код не обязательно будет машинным, он может быть, например, аппаратно-независимым промежуточным кодом абстрактного процессора, который в дальнейшем будет транслироваться в различных компьютерных архитектурах с помощью интерпретатора или компилятора в соответствующий машинный код.

Процесс создания программы включает:

· составление исходного кода программы на языке программирования;

· этап трансляции, необходимый для создания объектного кода программы;

· построение загрузочного модуля, готового к исполнению.

Все перечисленные выше действия требуют наличия специальных программных средств. Совокупность этих программных средств входит в состав системы программирования:

· текстовый редактор (необходимый для создания и редактирования исходного кода программы на языке программирования);

· компилятор;

· редактор связей;

· отладчик.

Современное состояние языков программирования можно представить в виде следующей классификации (рис. 24).

Рис. 24 Классификация языков программирования

Процедурное или императивное (от лат. imperativus – повелительный) программирование есть отражение фон Неймановской архитектуры компьютера. Программа, написанная на этом языке, представляет собой последовательность команд, определяющих алгоритм решения задачи. Основной командой является команда присвоения, предназначенная для определения и изменения содержимого памяти компьютера. Фундаментальная идея процедурного программирования – использование памяти компьютера для хранения данных. Функционирование программы сводится к последовательному выполнению команд с целью преобразования исходного состояния памяти, т.е. программа производит пошаговое преобразование содержимого памяти, изменяя его от исходного состояния к результирующему.

Суть функционального (аппликативного) программирования определена А.П. Ершовым как «способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени функции, а единственным правилом композиции – оператор суперпозиции функций. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления». Ключевым понятием в функциональных языках является выражение. К ним относятся константы, структурированные объекты, функции, их тела и вызовы функций. Функциональный язык программирования состоит из совокупности базовых функций; классов констант, действия над которыми могут производить функции; предписаний, устанавливающих правила построения выражений и новых функций на основе базовых или рекурсивно через себя. Программа, написанная на функциональном языке, напоминает определение и перечень специфических особенностей задачи и представляет собой последовательность описаний функций и выражений. Выражение вычисляется редукционным способом, т.е. сведением сложного к простому. Обращения к базовым функциям приводят к их замене соответствующими значениями. Вызовы функций, не являющихся базовыми, заменяются их телами, а их параметры – фактическими аргументами. Функциональное программирование не рассматривает память как место для хранения данных, в нем используется математическое понятие переменной и функции. Переменные временно обозначают объекты программы. Как и в математике, функции функциональных языков отображают одни объекты в другие, аргументы – в значения. Нет принципиальных различий между константами и функциями, т.е. между операциями и данными. Функция может быть результатом обращения к другой функции и может быть элементом структурированного объекта. При обращении к функции число ее аргументов не обязательно должно совпадать с числом параметров, определенных при ее описании.

Концепция логического программирования базируется на понятии отношение. Логическая программа – это совокупность аксиом и правил, определяющих отношения между объектами и целью. Выполнение программы представляет собой попытку доказательства логического утверждения, построенного из программы по правилам, определенным семантикой используемого языка. Результатом вычислений является вывод следствий из аксиом. Алгоритм логической программы предполагает определение и перечень специфических свойств объектов и отношений между ними, а не определение порядка выполнения отдельных шагов. Это подтверждает декларативный характер логического языка программирования. Логические программы не отличаются высоким быстродействием, так как процесс их выполнения сводится к построению прямых и обратных цепочек рассуждений разнообразными методами поиска.

Основой объектно-ориентированного программирования (ООП) является понятие объект. Его суть состоит в том, что объект объединяет в себе структуры данных и характерные только для него процедуры (методы) их обработки. Такой подход полностью меняет стиль программирования, он заключается в отображении физических объектов реального мира на программную среду. Работать с объектами удобнее и естественнее, чем с традиционными конструкциями процедур преобразования данных. Объединение данных и свойственных им процедур обработки в одном объекте, детальная реализация которых остается скрытой для пользователей, называется инкапсуляцией и является одним из важнейших принципов ООП.

Другим фундаментальным понятием ООП является класс. Класс есть шаблон, на основе которого может быть создан конкретный программный объект, он описывает свойства и методы, определяющие поведение объектов этого класса. В ООП класс представляет собой абстрактный тип данных и является механизмом для создания объектов. Объявление класса есть логическая абстракция, определяющая новый тип объекта, а определение объекта как экземпляра класса создает этот объект физически, т.е. размещает объект в памяти. ООП является более естественным, так как предоставляет возможность выбрать имеющиеся или создать новые объекты и организовать взаимодействия между ними. Следовательно, объектно-ориентированные языки по сравнению с процедурными являются языками более высокого уровня.

Следующими важнейшими принципами ООП являются наследование и полиморфизм. Наследование предусматривает создание новых классов на базе существующих и позволяет классу-потомку иметь (наследовать) все свойства класса-родителя. При работе с объектами иерархии «родители – дети – и т.д.» разрешается задавать одинаковые имена различным по реализации методам, для обработки объектов разных ступеней иерархии. Это явление называется полиморфизм. Благодаря полиморфизму в ООП обработка объектов упрощается, так как одинаковым действиям объектов соответствуют одноименные методы. Полиморфизм (от греч. «многоликость») означает, что рожденные объекты обладают информацией о том, какие методы они должны использовать в зависимости от того, в каком месте цепочки наследования они находятся. Другим основополагающим принципом ООП является модульность, – объекты заключают в себе полное определение их характеристик, никакие определения методов и свойств объекта не должны располагаться вне его, это делает возможным свободное копирование и внедрение одного объекта в другие.


 

Раздел 5. Компьютерные сети. Защита информации в сетях

Компьютерная сеть(Computer Network) – это множество компьютеров, соединенных линиями связи и работающих под управлением специального программного обеспечения.

Под линией связи обычно понимают совокупность технических устройств, и физической среды, обеспечивающих передачу сигналов от передатчика к приемнику. В реальной жизни примерами линий связи могут служить участки кабеля и усилители, обеспечивающие передачу сигналов между коммутаторами телефонной сети. На основе линий связи строятся каналы связи.

Каналом связи обычно называют систему технических устройств и линий связи, обеспечивающую передачу информации между абонентами. Соотношение между понятиями «канал» и «линия» описывается следующим образом: канал связи может включать в себя несколько разнородных линий связи, а одна линия связи может использоваться несколькими каналами (рис. 25).

Рис. 25 Линии и каналы связи

Назначение компьютерных сетей:

· предоставление пользователям возможности доступа к различным информационным ресурсам (например, документам, программам, базам данных и т.д.), распределенным по этим компьютерам и их совместное использование;

· обеспечение высокой надежности при помощи альтернативных источников информации;

· ускорение передачи информации.

Имеется два важнейших параметра классификации сетей: технология передачи и размеры.

Существуют два типа технологии передачи:

· широковещательные сети;

· сети с передачей от узла к узлу.

Широковещательные сети обладают единым каналом связи, совместно используемым всеми машинами сети. Короткие сообщения, называемые пакетами, посылаемые одной машиной, принимаются всеми машинами. Поле адреса в пакете указывает, кому направляется сообщение. При получении пакета машина проверяет его адресное поле. Если пакет адресован этой машине, она обрабатывает пакет. Пакеты, адресованные другим машинам, игнорируются.

Сети с передачей от узла к узлу состоят из большого количества соединенных пар машин. В такой сети пакету необходимо пройти через ряд промежуточных машин, чтобы добраться до пункта назначения. Часто при этом существует несколько возможных путей от источника к получателю.

Обычно небольшие сети используют широковещательную передачу, тогда как в крупных сетях применяется передача от узла к узлу.

Другим критерием классификации сетей является их размер. Размеры сетей являются важным классификационным фактором, поскольку в сетях различного размера применяется различная техника. Сети по этому признаку можно разделить на локальные, муниципальные и глобальные.

Локальными сетями (ЛВС – локальные вычислительные сети или LAN – Local Area Network) называют сети, размещающиеся, как правило, в одном здании или на территории какой-либо организации размерами до нескольких километров. Их часто используют для предоставления совместного доступа компьютеров к ресурсам (например, принтерам) и обмена информацией. Локальные сети отличаются от других сетей тремя характеристиками: размерами, технологией передачи данных и топологией. Обычные ЛВС имеют пропускную способность канала связи от 10 до 100 Мбит/с, небольшую задержку – десятые доли мкс и очень мало ошибок.

Муниципальные или региональные сети (MAN – Metropolitan AN) являются увеличенными версиями локальных сетей и обычно используют схожие технологии. Такая сеть может объединять несколько предприятий корпорации или город. Муниципальная сеть может поддерживать передачу цифровых данных, звука и включать в себя кабельное телевидение. Обычно муниципальная сеть не содержит переключающих элементов для переадресации пакетов во внешние линии, что упрощает структуру сети.

Глобальные сети (Wide AN или ГВС) охватывают значительную территорию, часто целую страну или даже континент. Они объединяют множество машин, предназначенных для выполнения приложений. Эти машины называются хостами. Хосты соединяются коммуникационными подсетями или просто подсетями. Задачей подсети является передача сообщений от хоста хосту, подобно тому, как телефонная система переносит слова говорящего слушающему. То есть коммуникативный аспект сети – подсеть отделен от прикладного аспекта – хостов, что значительно упрощает структуру сети.

Сети также подразделяются на два типа: одноранговые и на основе сервера. Между этими двумя типами сетей существуют принципиальные различия, которые определяют их разные возможности. Выбор типа сети зависит от многих факторов: размера предприятия и вида его деятельности, необходимого уровня безопасности, доступности административной поддержки, объема сетевого трафика, потребностей сетевых пользователей, финансовых возможностей.

В одноранговой сети все компьютеры равноправны. Каждый компьютер функционирует и как клиент, и как сервер. Нет отдельного компьютера, ответственного за администрирование всей сети. Пользователи сами решают, какие ресурсы на своем компьютере сделать доступными в сети. Одноранговые сети, как правило, объединяют не более 10 компьютеров. Отсюда их другое название – рабочие группы. Одноранговые сети относительно просты, дешевле сетей на основе сервера, но требуют более мощных компьютеров. Требования к производительности и уровню защиты сетевого программного обеспечения (ПО) ниже, чем в сетях с выделенным сервером. Поддержка одноранговых сетей встроена во многие операционные системы (ОС), поэтому для организации одноранговой сети дополнительного ПО не требуется.

Если в сети более 10 компьютеров, то одноранговая сеть становится недостаточно производительной. Поэтому большинство сетей имеют другую конфигурацию – они работают на основе выделенного сервера. Выделенным сервером называется такой компьютер, который функционирует только как сервер и не используется в качестве клиента или рабочей станции. Он специально оптимизирован для быстрой обработки запросов от сетевых клиентов и обеспечивает защиту файлов и каталогов. Сети на основе сервера стали промышленным стандартом. Основным аргументом при выборе сети на основе сервера является защита данных. Проблемами безопасности занимается один администратор: он формирует единую политику безопасности и применяет ее в отношении каждого пользователя сети. Сети на основе сервера, в отличие от одноранговых сетей, способны поддерживать тысячи пользователей. При этом к характеристикам компьютеров и квалификации пользователей предъявляются более мягкие требования, чем в одноранговых сетях.

Термин топология сети характеризует способ организации физических связей компьютеров и других сетевых компонентов. Выбор той или иной топологии влияет на состав необходимого сетевого оборудования, возможности расширения сети и способ управления сетью. Топология – это стандартный термин. Все сети строятся на основе базовых топологий: шина, звезда, кольцо, ячеистая. Сами по себе базовые топологии не сложны, однако на практике часто встречаются довольно сложные их комбинации.

Топология шина наиболее простая из всех топологий и весьма распространенная. В ней используется один кабель, называемый магистралью или сегментом, вдоль которого подключены все компьютеры. В сети с топологией шина данные в виде электрических сигналов передаются всем компьютерам сети, но принимает их тот, адрес которого совпадает с адресом получателя, зашифрованном в этих сигналах. Причем в каждый момент времени передачу может вести только один компьютер. Поэтому производительность такой сети зависит от количества компьютеров, подключенных к шине. Чем больше компьютеров, ожидающих передачи данных, тем медленнее сеть. На быстродействие сети также влияют:

· тип аппаратного обеспечения сетевых компьютеров;

· частота, с которой компьютеры передают данные;

· тип работающих сетевых приложений;

· тип сетевого кабеля;

· расстояние между компьютерами в сети.

Шина – пассивная топология: компьютеры только слушают передаваемые по сети данные, но не перемещают их от отправителя к получателю. Поэтому выход одного или нескольких компьютеров из строя никак не сказывается на работе сети. Электрические сигналы распространяются по всему кабелю – от одного конца к другому. Сигналы, достигшие концов кабеля, отражаются от них. Возникает наложение сигналов, находящихся в разных фазах, и, как следствие, их искажение и ослабление. Поэтому сигналы, достигшие конца кабеля, следует погасить. Для гашения сигналов на концах кабеля устанавливают терминаторы. При разрыве кабеля или отсутствии терминаторов функционирование сети прекращается. Сеть падает.

При топологии звезда все компьютеры с помощью сегментов кабеля подключаются к центральному устройству, называемому концентратором (hub). Сигналы от передающего компьютера поступают через концентратор ко всем остальным.

Недостатки этой топологии: дополнительный расход кабеля, установка концентратора. Главное преимущество этой топологии перед шиной – более высокая надежность. Выход из строя одного или нескольких компьютеров на работу сети не влияет. Любые неприятности с кабелем касаются лишь того компьютера, к которому этот кабель присоединен, и только неисправность концентратора приводит к падению сети. Кроме того, концентратор может играть роль интеллектуального фильтра информации, поступающей от узлов в сеть, и при необходимости блокировать запрещенные администратором передачи.

В топологии кольцо компьютеры подключаются к кабелю, замкнутому в кольцо. Сигналы передаются по кольцу в одном направлении и проходят через каждый компьютер. В отличие от пассивной топологии шина, здесь каждый компьютер выступает в роли репитера (повторителя), усиливая сигналы и передавая их следующему компьютеру. Поэтому выход из строя хотя бы одного компьютера приводит к падению сети. Способ передачи данных по кольцу называется передачей маркера. Маркер (token) – это специальная последовательность бит, передающаяся по сети. В каждой сети существует только один маркер. Маркер передается по кольцу последовательно от одного компьютера к другому до тех пор, пока его не захватит тот компьютер, который хочет передать данные. Передающий компьютер добавляет к маркеру данные и адрес получателя, и отправляет его дальше по кольцу. Данные проходят через каждый компьютер, пока не окажутся у того, чей адрес совпадает с адресом получателя. Затем принимающий компьютер посылает передающему сообщение, в котором подтверждает факт приема. Получив подтверждение, передающий компьютер восстанавливает маркер и возвращает его в сеть. Скорость движения маркера сопоставима со скоростью света.

На сегодня подавляющая часть компьютерных сетей использует для соединения кабели. Это среда передачи сигналов между компьютерами. В большинстве сетей применяются три основные группы кабелей:

· коаксиальный кабель (тонкий, толстый);

· витая пара (twisted pair) (неэкранированная – unshielded, экранированная – shielded);

· оптоволоконный кабель.

Коаксиальный кабель до недавнего времени был самым распространенным. Недорогой, легкий, гибкий, удобный, безопасный и простой в установке. Существует два типа коаксиальных кабелей: тонкий (спецификация 10Base2) и толстый (спецификация 10Base5). Тонкий – гибкий, диаметр 0,64 см (0,25"). Прост в применении и подходит практически для любого типа сети. Подключается непосредственно к плате сетевого адаптера. Передает сигнал на 185 м практически без затухания. Волновое сопротивление – 50 ом. Толстый – жесткий, диаметр 1,27 см (0,5"). Его иногда называют стандартный Ethernet (первый кабель в популярной сетевой архитектуре). Жила толще, затухание меньше. Передает сигнал без затухания на 500 м. Используют в качестве магистрали, соединяющей несколько небольших сетей. Волновое сопротивление – 75 ом. Для подключения к толстому коаксиальному кабелю применяется специальное устройство – трансивер (transceiver – приемопередатчик). Он снабжен коннектором, который называется вампир или пронзающий ответвитель. К сетевой плате трансивер подключается с помощью кабеля с разъемом. Для подключения тонкого коаксиального кабеля используются BNC-коннекторы (British Naval Connector). Применяются BNC–Т-коннекторы для соединения сетевого кабеля с сетевой платой компьютера, BNC–баррел-коннекторы для сращивания двух отрезков кабеля, BNC-терминаторы для поглощения сигналов на обоих концах кабеля в сетях с топологией шина.

Витая пара – это два перевитых изолированных медных провода. Несколько витых пар проводов часто помещают в одну защитную оболочку. Переплетение проводов позволяет избавиться от электрических помех, наводимых соседними проводами и другими внешними источниками, например двигателями, трансформаторами, мощными реле. Неэкранированная витая пара (UTP) широко используется в ЛВС, максимальная длина 100 м. UTP определена особым стандартом, в котором указаны нормативные характеристики кабелей для различных применений, что гарантирует единообразие продукции. Экранированная витая пара (STP) помещена в медную оплетку. Кроме того, пары проводов обмотаны фольгой. Поэтому STP меньше подвержены влиянию электрических помех и может передавать сигналы с более высокой скоростью и на большие расстояния. Преимущества витой пары – дешевизна, простота при подключении. Недостатки – нельзя использовать при передаче данных на большие расстояния с высокой скоростью.