Компьютерная транспортировка информации
2.4.1. Основные понятия
Второй вид транспортировки достаточно специфичен по сравнению с первым, связан с появлением компьютеров и потому относительно молод.
Вычислительная сеть (ВС) – система компьютеров, объединенная каналами передачи данных.
В вычислительной сети источниками и приемниками информации являются компьютеры. Она характеризуется следующими показателями (параметрами).
1. Полнота выполнения функций.
2. Производительность (пропускная способность) передачи данных
3. Надежность.
4. Прозрачность (невидимость особенностей внутренней структуры).
5. Безопасность (защита от неумышленных и умышленных воздействий) данных.
6. Достоверность переданных данных.
7. Масштабируемость данных (возможность расширения сети без снижения производительности.).
ВС – понятие многогранное и потому имеют множество классификационных признаков. Потому требуется классификация ВС.
По территории, охватываемой ВС, выделяют локальные ВС (ЛВС, Local Area Network - LAN), региональные (РВС, Metropoliten Area Network - MAN), региональные (ГВС, Wide Area Network - WAN), Области ЛВС определяются размерами предприятий, РВС – размерами города, района. области, ГВС связывают компьютеры, удаленные на значительное расстояние, в том числе – в разных странах и континентах.
По принципу организации процедуры выделяют последовательные (от узла к узлу) и широковещательные (передает один узел, принимают остальные).
По геометрии (топологии) могут быть сети:
шинные (линейные) рис. 2.5;
кольцевые – рис. 2.6;
радиальные – рис. 2.7;
иерархическая;
полносвязная (каждый узел с каждым).
Радиальную структуру называют архитектурой клиент-сервер. Полносвязная топология или сетка содержит коммуникационную (одноранговую сеть) и абонентскую подсети.
В абонентской подсети выделяются сервер (устройство коммутации) и клиенты (абонентские пункты).
Структура одного канала передачи данных показана на рис. 2.8 и состоит из ЭВМ, аппаратуры передачи данных (АПД) и устройств согласования компьютеров с АПД.
Канал может работать в пакетном, и диалоговом режиме, наиболее часто применяемом.
В ее состав в качестве согласующих устройств при уплотнении данных могут входить адаптеры, коммутаторы, концентраторы, мультиплексоры передачи данных, периферийные связные процессоры.
Адаптер – одноканальные устройства согласования канала ввода-вывода компьютера с одним каналом передачи данных.
Коммутатор осуществляет поочередное подключение нескольких каналов к одному скоростному без преобразования данных.
Концентратор переключает данные из одного канала в другой с преобразованием данных.
Связные процессоры – это микропроцессоры, служащие для управления сетью.
Мультиплексор передачи данных преобразует параллельный код компьютера в последовательный код, передаваемый в канал.
В АПД выделяют устройства преобразования сигналов (модемы, связные карты) и устройства защиты от ошибок.
2.4.2. Модель взаимодействия открытых систем
Рассмотрим организацию работы вычислительной сети. Многогранность вычислительных сетей требует проведения стандартизации для упрощения и унификации процедуры транспортировки информации.
Международной организацией по стандартизации International Organization for Standardization (ISO) разработана система стандартных протоколов, получивших название модели взаимодействия открытых систем - Open System Interconnection (OSI). Иначе ее называют эталонной семиуровневой логической моделью открытых систем (рис. 2.9).
В основе лежит понятие протокол – набор правил и методов взаимодействия объектов вычислительной сети, охватывающий основные процедуры, алгоритмы и форматы взаимодействия, обеспечивающие согласования, преобразования и передачи данных (табл. 2.4).
Управление взаимодействием осуществляется специальными программами, реже – аппаратными средствами.
Открытая система, базирующаяся на протоколах, доступна для взаимодействия с другими системами. Модель регламентирует общие функции, а не специальные решения. Характеристики уровней модели приведены в табл. 3.4.
Таблица 3.4
Уровни модели OSI
Уровень OSI | Назначение | Примеры протоколов |
7 - прикладной | Управление прикладными процессами. Интерфейс между программами пользователя и сетью | X400, NCP, NTTP, SMTP, FTP, FTAM, SAP, DNS, Telnet |
6 – представления | Управление представлением данных. Интерфейс с прикладными программами | X.226 |
5 – сеансовый | Управление сеансами, организация, синхронизация и управление обменом данных между сетевыми объектами | X.225, RPC, NetBEUI |
4 – транспортный | Управление трафиком, обеспечение передачи данных между объектами сеансового уровня | X.224, TCP, UDP, NSP, SPX, SPP, RH |
3 – сетевой | Управление сетью, маршрутизация, логический канал для реализации протоколов транспортного уровня | X.25, X.75, IP, IPX, IDP, TH, DMA-4 |
2 – канальный | Управление информационным каналом, связь объектов сетевого уровня | LAP-D, SNAP, SDLC, IEEE 802.2? HDLC |
1 - физический | Управление физическим каналом, создание физической среды передачи данных | Ethernet, IEEE 802.3.5, ARCNet, Token Ring |
Непосредственная связь объектов осуществляется на первом уровне, а взаимодействие с пользователем – на седьмом уровне.
Многие функции уровня представления задействованы на прикладном уровне, а функции сеансового уровня – на транспортном уровне, протоколы которого развиты хорошо и интенсивно используются. Каждый пользователь обязательно использует протоколы сетевого уровня (разбивка сообщения на пакеты, присвоение пакетам сетевых адресов).
Протоколы канального уровня весьма многочисленны, управление ведется на уровне кадров. На физическом уровне управление осуществляется с помощью цифровых и аналоговых сигналов.
Блоки передаваемой информации имеют стандартный формат: заголовок, служебная информация, данные, концевик.
Рис. 2.9 позволяет иллюстрировать понятия повторитель, мост, маршрутизатор, шлюз, модем.
Повторитель – устройство, усиливающие сигналы при сохранении их формы и амплитуды в процессе передачи на большие расстояния.
Мост– регулирует трафик между сетями, использующими одинаковые протоколы на сетевом и более высоких уровнях, фильтруя пакеты в соответствии с их адресами. Топологии сетей могут быть разными при одинаковых сетевых операционных системах.
Маршрутизаторы работают на транспортном уровне и обеспечивают соединение логически не связанных сетей с одинаковыми протоколами на сеансовом и более высоких уровнях.
Шлюзы – устройства, позволяющие объединить сети, использующие различные протоколы на всех уровнях.
Модем – устройство преобразования сигналов к виду, удобному для использования в каналах связи и последующее преобразование в форму, в которой работает компьютер или человек. Часто вместо модема используется микросхема, получившая название сетевая карта.
Уровни 1, 2 и частично 3 реализуются преимущественно за счет аппаратных средств, уровни 4 – 7 и частично 3 – за счет программных средств.
Уровни 1 и 2 обслуживают абонентскую сеть, уровни 3 и 4 – коммуникационную подсеть, уровни 5 – 7 – прикладные процессы.
Уровни 1 и 2 отвечают за физическое соединение, уровни 3 – 6 – за организацию передачи и преобразования информации, понятную для абонентской аппаратуры, уровень 7 – за выполнение прикладных программ пользователя.
Передача сообщения происходит с верхнего уровня источника к его нижнему уровню через физический канал и далее от нижнего уровня приемника к его верхнему уровню. Из рис. 3.6 видно, как на стороне источника растет размер пакета управления, сопровождающего реальное сообщение.
Набор протоколов, достаточный для сетевого взаимодействия, называется стеком коммуникационных протоколов. Они могут в разной мере отражать те или иные уровни стандарта.
Стеки протоколов разных сетей представлены на рис. 2.10 и рис. 2.11.
Большинство современных компьютеров подключены к локальной сети или глобальной сети - Интернету. В результате технологического прогресса в области сетевого оборудования передача данных в сетях сегодня происходит очень быстро и программно обрабатывать все входящие и исходящие данные становится все сложнее. В связи с этим разрабатываются специальные сетевые процессоры (сопроцессоры), предназначенные для обработки трафика.
К сети подключаются самые разные устройства. Для конечных пользователей это, прежде всего, персональные компьютеры (настольные и ноутбуки), но растет также число игровых консолей, персональных электронных секретарей (карманных компьютеров), сотовых телефонов.
В сетях функционирует бесчисленное количество разнообразных промежуточных устройств, в их число входят маршрутизаторы, коммутаторы, брандмауэры, системы балансировки нагрузки. К этим промежуточным системам и серверам предъявляются самые серьезные требования.
Поступающий в сеть пакет перед отправкой по исходящей линии или передачей прикладной программе может требовать той или иной обработки.
Обработка может включать принятие решения об адресации, разбиении пакета на части или сборке его из частей, управлении качеством обслуживания (особенно в отношении аудио- и видеопотоков), защиту данных (кодирование и декодирование), компрессию и декомпрессию.
Когда скорость передачи данных в локальной сети приближается к 40 Гбит/с, а размер пакета — к 1 Кбайт, сетевой компьютер должен обрабатывать почти 5 млн. пакетов в секунду.
Для пакетов размером 64 байт это значение возрастает примерно до 80 млн. пакетов в секунду. Выполнение всех упомянутых функций за время порядка 12-200 нс, в дополнение к необходимому копированию пакетов, просто невозможно реализовать программно. Аппаратная поддержка здесь принципиально необходима.
Одним из путей аппаратного решения проблемы быстрой обработки пакетов является использование специализированных интегральных схем (Application-Specific Integrated Circuit, ASIC). Основой многих современных маршрутизаторов являются схемы ASIC.
Специализированные интегральные схемы долго проектировать и не менее долго производить. Схемы - жестко запрограммированные устройства и чтобы внести новые функции, приходится разрабатывать и изготавливать новую микросхему.
Настоящим кошмаром являются ошибки, поскольку единственным способом их исправления является разработка, изготовление и установка новой (исправленной) микросхемы. К тому же этот подход является весьма затратным.
Второй подход основан на использовании программируемых вентильных матриц (Field Programmable Gate Array, FPGA). Такая матрица представляет собой набор вентилей, из которых путем перекоммутации строится требуемая схема. Сроки выхода программируемых вентильных матриц на рынок гораздо короче, чем у специализированных интегральных схем, и к тому же их можно перепрограммировать в при помощи специального программатора.
В то же время они очень сложны, дороги и работают медленные, чем схемы ASIC. В силу этого программируемые вентильные матрицы не получили широкого распространения.
Третий подход - сетевые процессоры — устройства, способные обрабатывать входящие и исходящие пакеты со скоростью их передачи (в реальном времени). Обычно они реализуются в виде съемной платы, содержащей, помимо кристалла сетевого процессора, память и вспомогательную логику.
К плате подключается одна или несколько сетевых линий. Процессор получает из линии пакеты, обрабатывает их, после чего передает на другую линии, если это маршрутизатор, или отправляет в главную системную шину PCI, если это оконечное устройство.
На плате имеется обычно как статическая (SRAM), так и синхронная динамическая оперативная память (SDRAM). SRAM работает быстрее SDRAM, но из-за дороговизны памяти этого типа обычно немного. Она используется для хранения таблиц маршрутизации и прочих ключевых структур данных, в то время как в SDRAM записываются сами обрабатываемые пакеты. Память обоих этих типов располагается вне кристалла сетевого процессора и можно осуществить выборе объема памяти.
Сетевые процессоры предназначены для быстрой оптимальной обработки большого количества входящих и исходящих пакетов.
Столь серьезных показателей можно достичь только на процессорах с высокой степенью внутреннего параллелизма.
В процессор обязательно входят несколько РРЕ-кошроллеров (Protocol/Programable/Packet Processing Engine — программируемая система обработки пакетов и протоколов), каждый из которых состоит из RISC-ядра и внутренней памяти небольшого объема для хранения программы и нескольких переменных.
Существует два подхода к организации РРЕ-контроллеров.
В простейшем случае все РРЕ-контроллеры делаются идентичными. Когда в сетевой процессор приходит новый пакет, он передается для обработки тому РРЕ-контроллеру, который в данный момент не работает. Если свободных РРЕ-контроллеров нет, пакет ставится в очередь в расположенной на плате памяти SDRAM.
Другой подход к организации РРЕ-контроллеров — конвейер, где каждый из РРЕ-контроллеров выполняет один этап обработки, после чего передает полученный пакет следующему РРЕ-контроллеру в конвейере. Такой конвейер работает во многом аналогично конвейерам центрального процессора.
В обоих вариантах организации РРЕ-контроллеры являются полностью программируемыми.
В более совершенных сетевых процессорах РРЕ-контроллеры поддерживают многопоточность. Это дает возможность одновременно выполнять несколько программных потоков. Когда один из программных потоков вынужден ждать (например, при обращении к SDRAM, на которое требуется несколько циклов), РРЕ-контроллер может быть мгновенно переключен на поток, способный продолжать работу, что позволяет добиваться высокой загрузки РРЕ-контроллеров, несмотря на необходимость часто ожидать завершения обмена данными с SDRAM или медленных внешних операций.
У всех сетевых процессоров имеется управляющий процессор для выполнения действий, не относящихся напрямую к обработке пакетов (например, обновление таблиц маршрутизации). Он обычно представляет собой RISC-процессор общего назначения, память для данных и команд которого находится на одном кристалле с процессором.
В сетевом процессоре может быть несколько специализированных процессоров, предназначенных для выполнения критически важных операций. Они представляют собой очень маленькие специализированные интегральные схемы (ASIC), способные выполнять только одно несложное действие, такое как поиск целевого адреса в таблице маршрутизации.
Все компоненты сетевого процессора взаимодействуют друг с другом на гигабитных скоростях по одной или нескольким параллельным шинам, расположенным на кристалле.
2.4.3. Повышение производительности
Производительность — самая главная характеристика сетевых процессоров. Одной из метрик производительности является количество пакетов, передаваемых в секунду, другой — количество байтов, предаваемых в секунду. Эти метрики предполагают разные подходы, и схема, хорошо работающая с маленькими пакетами, может плохо справляться с большими. В частности, при передаче маленьких пакетов заметно повысить производительность можно путем ускорения процесса поиска целевого адреса в таблице. В то же время при передаче больших пакетов заметного повышения производительности это не даст.
Самым прямым путем к повышению производительности является увеличение тактовой частотысетевого процессора. Однако производительность не растет пропорционально частоте, поскольку сказывается время обращения к памяти. К тому же большая частота означает необходимость отводить больше тепла.
Выходом обычно является увеличение числа РРЕ-контроллеров. Этот подход особенно эффективен для параллельных архитектур.
Может помочь и увеличение длины конвейера, если удастся разделить процесс обработки пакета на достаточно простые этапы.
Возможно увеличение числа специализированных процессоров или специализированных интегральных схем, предназначенных для выполнения отдельных затратных и часто требующихся операций.
Повысить скорость можно, сократив время прохождения пакетов в системе за счет введения дополнительных шин и увеличения количества линий в существующих.
Прироста производительности удается добиться заменой микросхем памяти SDRAM на SRAM , однако это сказывается на стоимости.
Контрольные вопросы
1. Что такое вычислительная сеть (ВС)? в чем ее специфика?
2. Дайте классификацию ВС.
3. Какие специфические устройства используются в ВС?
4. Дайте описание и технологию работы модели OSI передачи данных.
5. Что такое стек коммуникационных протоколов? Приведите примеры.
6. Перечислите способы повышения производительности сетевых процессоров.