45. Описание сервисов уровней представления и прикладного уровня. Синтаксис ASN.1

Сертификаты шифруются с использованием системы записи абстрактного синтаксиса 1 (ASN - Abstract Syntax Notation) OSI. Ее можно рассматривать как нечто подобное структуре в языке С, за тем исключением, что эта запись очень странная и многословная. Более подробную информацию можно найти в (Ford и Baum, 2000). Система абстрактного синтаксиса дополняется правилами ко-дирования, определяющими значения потока октетов. В принципе, спецификации на ASN.1 могут быть представлены различными способами кодирования.

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

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

Разработчики ASN.1, прежде всего, выделили базовый на-бор простых типов, которые иногда называют встроенными. К ним относятся булевские (BOOLEAN), целые (INTEGER), би-товые строки (BITSTRING), строки октетов (OCTETSTRING) и специальный пустой тип (NULL).

Тип BOOLEAN представляет множество, состоящее из двух элементов, характеризующих значения этого типа, — TRUE (ис-тина) и FALSE (ложь).

Тип INTEGER включает все положительные и отрицатель-ные значения целых чисел.

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

Тип OCTETSTRING рассматривает строки как произволь-ную последовательность восьмибитовых значений (от 0 до 255). В этом случае ограничений на длину строк также не существует.

Тип NULL состоит из одного элемента NULL, который ха-рактеризует пустое значение. В таблице 3.7 приведены простые типы и определяемые ими значения.

Таблица 3.7

 

Простой тип

Значения

BOOLEAN

TRUE, FALSE

INTEGER

Множество положительных и отрицательных чисел

BITSTRING

Произвольная последовательность нулей и единиц

OCTETSTRING

Последовательность октетов, содержащих произ-вольные значения в диапазоне от 0 до 255

NULL

NULL

 

 

 

Сервисы, предоставляемые сетевому уровню

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

Уровень передачи данных может предоставлять различные сервисы. Их на­бор может быть разным в разных системах. Обычно возможны следующие вари­анты.

1.  Сервис без подтверждений, без установки соединения.

2.           Сервис с подтверждениями, без установки соединения.

3.           Сервис с подтверждениями, ориентированная на соединение.

Рассмотрим эти варианты по очереди.

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

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

Вероятно, следует отметить, что предоставление подтверждений является ско­рее оптимизацией, чем требованием. Сетевой уровень всегда может послать па­кет и ожидать подтверждения его доставки. Если за установленный период вре­мени подтверждение не будет получено отправителем, сообщение может быть выслано еще раз. Проблема при использовании данной стратегии заключается в том, что кадры обычно имеют жесткое ограничение максимальной длины, свя­занное с аппаратными требованиями. Пакеты сетевого уровня таких ограниче­ний не имеют. Таким образом, если среднее сообщение разбивается на 10 кадров и 20 % из них теряется по дороге, то передача сообщения таким методом может занять очень много времени. Если подтверждать получение отдельных кадров и в случае ошибки посылать их повторно, передача всего сообщения займет гораздо меньше времени. В таких надежных каналах, как, например, оптоволоконный ка­бель, накладные расходы на подтверждения на уровне передачи данных только снизят пропускную способность канала, однако для беспроводной связи такие расходы окупятся и уменьшат время передачи длинных сообщений.

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

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

Маршрутизатор


 

Рассмотрим типичный пример: глобальная сеть, состоящая из маршрутизато­ров, соединенных от узла к узлу выделенными телефонными линиями. Когда кадр прибывает на маршрутизатор, аппаратура проверяет его на наличие ошибок (с по­мощью метода, который мы изучим чуть позднее) и передает кадр программному обеспечению уровня передачи данных (которое может быть внедрено в микросхе­му сетевой карты). Программа уровня передачи данных проверяет, тот ли это кадр, который ожидался, и если да, то передает пакет, хранящийся в поле полез­ной нагрузки кадра, программе маршрутизации. Программа маршрутизации вы­бирает нужную выходящую линию и передает пакет обратно программе уровня передачи данных, который передает его дальше по сети. Прохождение сообще­ния через два маршрутизатора показано на рис. 3.3.

 

 

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

 

Прикладной уровень

Прикладной уровень содержит набор популярных протоколов, необходимых «ользователям. Одним из наиболее распространенных является протокол пере дачи гипертекста HTTP (HyperText Transfer Protocol), который составляет осно­ву технологии Всемирной Паутины. Когда браузер запрашивает веб-страницу, он передает ее имя (адрес) и рассчитывает на то, что сервер будет использовать HTTP. Сервер в ответ отсылает страницу. Другие прикладные протоколы используются для передачи файлов, электронной почты, сетевых рассылок.

 

Прикладной уровень

В модели TCP/IP нет сеансового уровня и уровня представления. В этих уровнях
просто не было необходимости, поэтому они не были включены в модель Опыт
работы с моделью OSI доказал правоту этой точки зрения: большинство прило­
жении в них мало нуждаются.

 

Над транспортным уровнем располагается прикладной уровень. Он содержит все протоколы высокого уровня. К старым протоколам относятся протокол вир­туального терминала (TELNET), протокол переноса файлов (FTP) и протокол электронной почты (SMTP), как показано на рис. 1.18. Протокол виртуального терминала позволяет пользователю регистрироваться на удаленном сервере и ра­ботать на нем. Протокол переноса файлов предоставляет эффективный способ перемещения информации с машины на машину. Электронная почта изначально представляла собой разновидность переноса файлов, однако позднее для нее был разработан специальный протокол. С годами было добавлено много других про­токолов, таких как DNS (Domain Name Service - служба имен доменов), позво­ляющая преобразовывать имена хостов в сетевые адреса, NNTP (Network News Transfer Protocol - сетевой протокол передачи новостей), HTTP, протокол, ис­пользуемый для создания страниц на World Wide Web, и многие другие.

Hosted by uCoz