Интегрированные сети ISDN


         

Бесклассовая интердоменная маршрутизация (CIDR)



4.4.11.5 Бесклассовая интердоменная маршрутизация (CIDR)

Вряд ли отцы-создатели Интернет предполагали, что когда-либо, тем более при их жизни возникнет дефицит IP-адресов. Уже в 1996 году было зарегистрировано более 100000 сетей. Разбивка сетей на три класса A, B и С уже не может отвечать современным требованиям. Сеть класса А с ее 16000000 адресов слишком велика, а класса С с 254 адресами, как правило, слишком мала. Сети класса B с 65536 машинами может показаться оптимальными, но на практике каждая из этих сетей не обеспечивает оптимального использования адресного пространства и всегда остаются неиспользованные адреса (для классов B и A количество пустующих адресов оказывается обычно значительным). Адресные блоки заказываются администраторами, которые полагают, что однажды их организация или фирма станет великой с тысячами ЭВМ (пока же у них есть всего несколько машин). Надо сказать, что такие оптимистические прогнозы сбываются крайне редко. Проблема маршрутизации может быть решена путем реализации более глубокой структурной иерархии, где каждый IP-адрес имеет код страны, региона, города, сети, но при этом размер адреса должен существенно превышать 32 разряда, так как адреса неизбежно будут использоваться крайне не эффективно - ведь Китаю и Монако будут выделены равные адресные зоны. Это может стать возможным при внедрении технологии IPv6.

Если бы в адресах класса С для кода номера ЭВМ было выделено 10 или 11 бит (1024-2048), ситуация была бы более приемлемой. Маршрутизатор рассматривает IP-адресную среду на двух уровнях - адрес сети и адрес ЭВМ, при этом практически они работают только с адресами сетей. Число записей в маршрутной таблице должно будет быть равным половине миллиона записей (по числу блоков С-адресов).

Проблема может быть решена, если забыть про разбиение всей совокупности IP-адресов на классы. Такая модель реализуется в рамках протокола CIDR (Classless InterDomain Routing). В этой модели каждой сети ставится в соответствие определенное число смежных блоков по 256 адресов. Далее используется известное географическое зонное распределение IP-адресов (см. Ethernet в Интернет, а также RFC-1519). Протокол при просмотре маршрутных таблиц предполагает применение специальных масок и индексных механизмов.



– Центральный проводник; – изолятор; – проводник-экран; внешний изолятор



Рисунок 3.1.1. 1 – центральный проводник; 2 – изолятор; 3 – проводник-экран; внешний изолятор


Коаксиальная система проводников из-за своей симметричности вызывает минимальное внешнее электромагнитное излучение. Сигнал распространяется по центральной медной жиле, контур тока замыкается через внешний экранный провод. При заземлении экрана в нескольких точках по нему начинают протекать выравнивающие токи (ведь разные “земли” обычно имеют неравные потенциалы). Такие токи могут стать причиной внешних наводок (иной раз достаточных для выхода из строя интерфейсного оборудования), именно это обстоятельство является причиной требования заземления кабеля локальной сети только в одной точке. Наибольшее распространение получили кабели с волновым сопротивлением 50 ом. Это связано с тем, что эти кабели из-за относительно толстой центральной жилы характеризуются минимальным ослаблением сигнала (волновое сопротивление пропорционально логарифму отношения диаметров внешнего и внутреннего проводников). Но по мере развития технологии скрученные пары смогли вытеснить из этой области коаксиальные кабели. Это произошло, когда полоса пропускания скрученных пар достигла 200-350 МГц при длине 100м (неэкранированные и экранированные скрученные пары категории 5 и 6), а цены на единицу длины сравнялись. Скрученные пары проводников позволяют использовать биполярные приемники, что делает систему менее уязвимой (по сравнению с коаксиальными кабелями) к внешним наводкам. Но основополагающей причиной вытеснения коаксиальных кабелей явилась относительная дешевизна скрученных пар. Скрученные пары бывают одинарными, объединенными в многопарный кабель или оформленными в виде плоского ленточного кабеля. Применение проводов сети переменного тока для локальных сетей и передачи данных допустимо для весьма ограниченных расстояний. В таблице 3.1.1 приведены характеристики каналов, базирующихся на обычном и широкополосном коаксиальном кабелях.



Частотное преобразование



Рисунок 2.1. Частотное преобразование


Получение исходного сигнала из преобразованного достигается путем обратного преобразования, которое сводится к умножению полученного сигнала на sin(wнt), где wн = 2 p*fн. При таком обратном преобразовании мы получим сигнал с исходным частотным диапазоном. Помимо этого будет получен сигнал с полосой от (2fн - fм) до (2fн+ fм). Так как fн обычно много больше fм, серьезных проблем это не вызывает - достаточно воспользоваться соответствующим фильтром. Этому методу обратного преобразования присущи некоторые недостатки. Если сигнал fн имеет фазовый сдвиг q

по отношению к тому, что имел сигнал, использованный при прямом преобразовании, то амплитуда выходного сигнала будет пропорциональна cosq. Понятно, что при вариации фазы амплитуда будет меняться, а при q=p/2 станет нулевой. По этой причине должны быть предприняты специальные меры для синхронизации этих сигналов (fн. передатчика и fн приемника).

Соотношение [1.1] используется при реализации амплитудной, частотной или фазовой модуляции. Так в случае амплитудной модуляции при временной вариации A1 (=Авх) будет изменяться и амплитуда выходного сигнала (А2=Aн - амплитуда несущей частоты при этом остается постоянной; w1=w н при этом может также варьироваться). Форма сигнала на выходе такого преобразователя имеет вид: Авых = Ан[1+Авх(t)] sin wнt. Для получения формы исходного сигнала на принимающей стороне используется схема детектора (например, диодного), на выходе которого получается сигнал, пропорциональный модулю огибающей функции входного сигнала. Существуют и другие методы демодуляции амплитудно-модулированного сигнала. Главным недостатком метода амплитудной модуляции является возможность нелинейных искажений из-за перемодуляции (когда амплитуда модулирующего сигнала слишком велика).

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




sin[wнt + q(t)], где q(t) зависит от формы преобразуемого входного сигнала. Часто используется комбинация амплитудной и фазовой модуляции, которая носит название квадратурной модуляции.

Системы передачи данных с амплитудной или частотной модуляцией являются аналоговыми системами и по этой причине весьма чувствительны к шумам на входе приемника. Применение цифровых методов пересылки информации увеличивает вероятность корректной доставки. Если для аналоговой передачи требуется отношение сигнал/шум на уровне 40-60 дБ, то при цифровой передаче достаточно 10-12 дБ. Выбор типа модуляции зависит от стоящей задачи и от характеристик канала (полосы пропускания, ослабления сигнала и т.д.). Частотная модуляция менее чувствительна к амплитудным флуктуациям сигнала. Ослабление сигнала может варьироваться во времени из-за изменений в транспортной среде, это довольно типично для коммутируемых телефонных сетей. В сетях, использующих выделенные каналы, это также возможно благодаря применению динамических протоколов маршрутизации, когда длина пути может изменяться в пределах одного сеанса связи. В любом случае на передающей стороне необходим модулятор, а на принимающей демодулятор. Так как обмен обычно двунаправлен, эти устройства объединяются в одном приборе, который называется модемом (см. также раздел “4.3.7. Модемы").

В модемах применимы несколько видов модуляции:

FSK (Frequency Shift Keying) - ступенчатое переключение частоты синусоидального сигнала от f1 к f2 при неизменной амплитуде, частоте f1

ставится в соответствие логический нуль, а f2 - логическая единица.
BPSK (Binary Phase-Shift Keying) - скачкообразное переключение фазы синусоидального сигнала на p при неизменной амплитуде, при этом фазе 0 ставится в соответствие логический нуль, а p- логическая единица.
DPSK (Differential Phase Shift Keying) - метод, при котором изменяется фаза несущей частоты при постоянной амплитуде и частоте. Разновидность PSK, при которой кодируется лишь изменение сигнала.
QAM (Quadrature Amplitude Modulation) - комбинация амплитудной и фазовой модуляции, позволяет осуществить кодирование 8 бит на бод.
QPSK (Quadrature Phase-Shift Keying) - квадратурная фазовая модуляция. Использует 4 фиксированных значения фазы 0, p/2, p

и 3p/2. Требует в два раза более узкую полосу, чем PSK, и по этой причине весьма популярна.
TCM (Trellis Coded Modulation) - метод предполагает использование избыточности, каждый бод несет дополнительный бит, который позволяет более точно восстановить информационную битовую последовательность. При кодировании сигнала используется метод QAM. Метод реализован в современных высокоскоростных модемах и позволяет снизить требования к отношению сигнал/шум на 4-5 дБ.
В QAM-модуляции используется 8/16 комбинаций амплитуда-фаза (см. Рисунок 2.2). Понятно, что такой тип модуляции более уязвим для шумов.




Форматы специальных сообщений



4. Форматы специальных сообщений

Далее описывается формат сообщений CyberCash версии 0.8. Предполагается, что читатель знаком с такими терминами как "получатель" (acquirer), "PAN" (первичный номер счета), и т.д., определенными в документе ISO 8583, и назначение валюты (currency designations), как это определено в ISO 4217. Некоторые несущественные поля для упрощения удалены. В последующих примерах сообщений подписи, хэши и шифрованные секции не имеют никакого реального смысла.

4.1. Регистрация персоны и нахождение приложения

Первым шагом, который должен сделать клиент, чтобы использовать CyberCash, является регистрация персоны с помощью своего приложения. Это делается с помощью сообщения R1, описанного ниже. Сервер CyberCash откликается сообщением R2.

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

4.1.1. R1 – регистрация

Описание: Это исходное сообщение, посылаемое для формирования новой персоны CyberCash.

#########################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

transaction: 123123213

date: 19950121100505.nnn

cyberkey: CC1001

opaque:

FrYOQrD16lEfrvkrqGWkajM1IZOsLbcouB43A4HzIpV3/EBQM5WzkRJGzYPM1r3noBUc

MJ4zvpG0xlroY1de6DccwO9j/0aAZgDi9bcQWV4PFLjsN604j3qxWdYn9evIGQGbqGjF

vn1qI1Ckrz/4/eT1oRkBBILbrWsuwTltFd84plvTy+bo5WE3WnhVKsCUJAlkKpXMaX73

JRPoOEVQ3YEmhmD8itutafqvC90atX7ErkfUGDNqcB9iViRQ7HSvGDnKwaihRyfirkgN

+lhOg6xSEw2AmYlNiFL5d/Us9eNG8cZM5peTow==

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ: Сгенерирован с использованием общедоступного ключа CyberCash, идентифицированного в CyberKey.

#####################################################################

Содержимое скрытой секции:



type: registration

swversion: 0.8win

content-language: en-us

requested-id: MyRequestedCCID

email: myemail@myemailhost.com

pubkey:

0VdP1eAUZRrqt3Rlg460Go/TTs4gZYZ+mvI7OlS3l08BVeoms8nELqL1RG1pVYdDrTsX

E5L+wcGCLEo5+XU5zTKkdRUnGRW4ratrqtcte7e94F+4gkCN06GlzM/Hux94

signature:

v6JGmxIwRiB6iXUK7XAIiHZRQsZwkbLV0L0OpVEvan9l59hVJ3nia/cZc/r5arkLIYEU

dw6Uj/R4Z7ZdqO/fZZHldpd9+XPaqNHw/y8Arih6VbwrO5pKerLQfuuPbIom

#####################################################################

подпись покрывает следующие поля: transaction, date, cyberkey, type, swversion, content-language, requested-id, email, pubkey

#####################################################################

Объяснение:

content-language (язык содержимого) берется из поля заголовка MIME (смотри RFC-1766) и соответствует языку, на котором должно быть написано сообщение (в настоящее время допустимо пока только en-us). swversion используется для проверки, не является ли приложение клиента устаревшим.



4.1.2 R2 – отклик регистрации



Это сообщение предоставляет отклик об успехе или неудаче R1.

#####################################################################

Отправитель: CyberServer

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

transaction: 12312313

date: 19950121100505.nnn

opaque:

r1XfjSQt+KJYUVOGU60r7voFrm55A8fP5DjJZuPzWdPQjGBIu3B6Geya8AlJfHsW11u8

dIv1yQeeYj/+l9TD1dXW21/1cUDFFK++J2gUMVv8mX1Z6Mi4OU8AfsgoCliwSkWmjSOb

kE62sAlZTnw998cKzMFp70TSlI3PEBtvIfpLq5lDCNbWidX8vFZV0ENUmMQ9DTP3du9w

fsFGvz1mvtHLT/Gj8GNQRYKF4xiyx4HYzTkSMhgU5B/QDLPS/SawIJuR86b9X0mwsr0a

gbGTzECPJTiKkrhxxMG/eymptsVQSLqNaTCx6w==

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Тот же самый, что и ключ сессии для R1 в случае той же транзакции и того же соединения (ID может отсутствовать).

#####################################################################

Содержимое скрытой секции:



type: registration-response

server-date: 19950121100506.nnn

requested-id: MyRequestedCCID

response-id: CyberCashHandle

>email: myemail@myemailhost.com

response-code: success/failure/etc.

pubkey:

0VdP1eAUZRrqt3Rlg460Go/TTs4gZYZ+mvI7OlS3l08BVeoms8nELqL1RG1pVYdDrTsX

E5L+wcGCLEo5+XU5zTKkdRUnGRW4ratrqtcte7e94F+4gkCN06GlzM/Hux94

swseverity: fatal/warning [отсутствует, если все в порядке]

swmessage; Говорит CyberApp, что оно является устаревшим. Этот текст отображается для пользователя [присутствует только, если имеется SWSeverity].

message;

Произвольный текст уведомления об успехе или неудаче.

Этот текст должен быть отображен для владельца приложения CyberCash...

В принципе текст включает в себя: duplicate-id (дублированный ID), bad-signature (ошибочная подпись) или ill-formed-registration (некорректная регистрация).

Объяснение:



responseid
применяется для предоставления уникального ID, если в результате ошибки потерян ID, использованный ранее. Если причина неудачи не связана с дублированным ID, это поле может быть опущено.
responseid предоставляет действительный ID с присоединенными контрольными символами в случае успеха.
swseverity может предупредить пользователя о том, что приложение устарело или о наличии в нем известных ошибок.
4.1.3. GA1 - get-application (получение приложения)



Используется CyberApp, чтобы получить обновленную версию.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

transaction: 123123213

date: 19950121100505.nnn

cyberkey: CC1001

opaque:

VHMS611wGkUmR6bKoI+ODoSbl7L5PKtEo6aM88LCidqN+H/8B4xM3LxdwUiLn7rMPkZi

xOGb+5d1lRV7WeTp21QYlqJr8emc6FAnGd5c0csPmcnEpTFh9xZDJaStarxxmSEwm2mw

l2VjEUODH6321vjoMAOFQWn7ER0o

$$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$

#####################################################################

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



#####################################################################

Содержимое скрытой секции:

type: get-application

swversion: 0.8win

Объяснение:

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



4.1.4. GA2 – отклик получения приложения (get-application-response)



Возвращает в случае успеха URL копии современного приложения CyberApp или флаг неудачи.

#####################################################################

Отправитель: CyberServer

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

transaction: 12312313

date: 19950110102333.nnn

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

$$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$

#####################################################################

Скрытый ключ: ключ сессии от GA1

#####################################################################

Содержимое скрытой секции:

type: get-application-response

server-date: 19950110102334.nnn

response-code: success/failure/etc.

message; Текст сообщения отображается пользователю, предоставляя дополнительную информацию об успехе или неудаче.

swversion: 0.8win

application-url: http://foo.cybercash.com/server/0.8WIN.EXE

>application-hash: lSLzs/vFQ0BXfU98LZNWhQ==

В качестве хэша приложения используется MD5.

application-url и application-hash при ошибке опускаются.

swversion является версией, подлежащей передаче покупателю.



4.2. Привязка кредитных карт (Binding Credit Cards)



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


Покупатель, после регистрации персоны в CyberCash, как это описано выше, может связать каждую кредитную карту по своему желанию с персоной в системе CyberCash. Это делается с помощью сообщения BC1, посылаемого покупателем своему серверу CyberCash, и отклика BC4, приходящего от сервера.



4.2.1. BC1 – подключение кредитной карты (Bind-Credit-card)



Это начальное сообщение в процессе установления соответствия между кредитной картой и персоной CyberCash.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: MyCyberCashID

date: 19950121100505.nnn

transaction: 12312314

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Формируется из ключа шифрования CyberCash идентифицированного в CyberKey

#####################################################################

Содержимое скрытой секции:

type: bind-credit-card

swversion: 0.8win

card-number: 1234567887654321

card-type: mastercard

card-salt: 46735210

card-expiration-date: 05/99

card-name: John Q. Public

card-street:

card-city:

card-state:

card-postal-code:

card-country:

signature:

tX3odBF2xPHqvhN4KVQZZBIXDveNi0eWA7717DNfcyqh2TpXqgCxlDjcKqdJXgsNLkY7

GkyuDyTF/m3SZif64giCLjJRKg0I6mqI1k/Dcm58D9hKCUttz4rFWRqhlFaj

#####################################################################

Подпись покрывает следующие поля: id, date, transaction, cyberkey, type, swversion, card-number, card-salt, card-expiration-date, card-name, card-street, card-city, card-state, card-postal-code, card-country



#####################################################################

Объяснение:

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



4.2.2. BC4 – отклик подключения кредитной карты (bind-credit-card-response)



Отмечает, что процесс подключения кредитной карты завершился. Присылает флаг успеха или неудачи.

#####################################################################

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: mycybercashid

transaction: 12312314

date: 19950121100505.nnn

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Ключ сессии от BC1 и ID

#####################################################################

Содержимое скрытой секции:

type: bind-credit-card-response

server-date: 19950121100506.nnn

swseverity: fatal/warning [absent if ok]

swmessage; message about obsoleteness of customer software to be shown to the customer. [only resent if SWSeverity present]

response-code: success/failure/etc.

card-number: 1234567887654321

card-type: visa

card-salt: 47562310

card-expiration-date: 01/99

card*: [other card* lines to also be given in CH.1 message]

message; Простой текст для пользователя может содержать много строк.



Все строки card* могут быть спасены в виде единого блока для последующего предоставления в CH.1. card-expiration-date, card-number, card-salt и card-type должны присутствовать всегда. В зависимости от причины неудачи не все поля могут быть представлены в сообщении отклике.



4.3. Сообщения покупателя о покупке, содержащие данные о кредитной карте



Вообще, подключение CyberCash к покупке с помощью кредитной карты происходит после того как пользователь определит, что же он, в конце концов, покупает. Когда клиент нажимает клавишу CyberCash “payment”, продавец посылает покупателю сообщение PR1 в виде тела типа MIME риложение/cybercash.

Если покупатель желает продолжить процедуру, он отвечает продавцу сообщением CH1. Продавец реагирует, послав отклик CH2. В паузе между посылкой CH1 и получением CH2, продавец обычно контактирует с сервером CyberCash посредством сообщений CM*.



4.3.1. PR1 – запрос платежа (payment-request)



Это сообщение является первым, которое определено CyberCash в процессе торговой сделки со стороны продавца. Собственно покупка произведена, так как мы собираемся ее оплатить.

#####################################################################

Отправитель: MerchantApp

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: payment-request

merchant-ccid: ACME-012

merchant-order-id: 1231-3424-234242

merchant-date: 19950121100505.nnn

note;

Товары ACME

Покупка 4 пар "Rocket Shoes" по цене $39.95 каждая.

Доставка и вручение $5.00

Общая цена: 164.80

Доставить по адресу: Wily Coyote 1234 South St. Somewhere, VA 12345

merchant-amount: usd 164.80

accepts: visa:CC001, master:CC001,amex:CC001,JCPenny:VK005,macy:VK006

url-pay-to: http://www.ACME.com/CybercashPayment

>url-success: http://www.ACME.com/ordersuccess

>url-fail: http://www.ACME.com/orderfail

merchant-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD



$$-CyberCash-End-lSLzs/vFQ0BXfU98LZNWhQ==-$$

Скрытая секция здесь отсутствует.

#####################################################################

При формировании подписанного продавцом хэша используется секретный ключ продавца. Хэш формируется для полей: type, merchant-ccid, merchant-order-id, date, note, merchant-amount, accepts, url-pay-to, url-success, url-fail

#####################################################################

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



accepts: Программа клиента распознает только одно слово имени карты из поля accepts сообщения PR1. Например,

MasterCard

AmericanExpress

Распознаны как

Master card

American express

Не распознаны. MasterCard и masterCard распознаются оба как master card.

За типом карты следует указатель ключа. Для основного ряда кредитных карт это будет CC*. Клиент может использовать или игнорировать * номер по своему выбору. Для личной карты это будет VK*, где * представляет собой ключ CheckFree, который следует использовать. Карты разделяются запятыми, указатель ключа следует за типом карты и двоеточием.



url-pay-to указывает, куда следует послать CH1.



url-fail и url-success несут информацию о том, где броузер должен искать данные в случае успеха или неудачи.



4.3.2. CH1 – платеж через кредитную карту (credit-card-payment)



Это сообщение осуществляет представление кредитной карты для выполнения платежа. ####################################################################

Отправитель: CyberApp

Получатель: MerchantApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: card-payment

id: myCyberCashID

order-id: 1231-3424-234242

merchant-ccid: ACME-012

transaction: 78784567

date: 19950121100505.nnn

pr-hash: c77VU/1umPKH2kpMR2QVKg==



pr-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD

cyberkey: CC1001

opaque:

iff/tPf99+Tm5P7s3d61jOWK94nq9/+1jOWK9+vr9+b+94n3tYzmiveJ9/+09/334ubg

3rWM5Ir3ier3/7WM5Ir36+v35v73ife1jOWK94n3/7T3/ffm5uD+7N339/f39/eq3ff3

9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3

5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw

3ard3Q==

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

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

#####################################################################

Содержимое скрытой секции:

swversion: 0.8win

>amount: usd 10.00

card*: [из успешно прошедшего BC4 (включает в себя время действительности кредитной карты, ее номер, тип и card-salt)]

Подпись:

meO38aULnoP09VhTS2E56tnuZBRRlGfbwqaleZ9zNnv7YjExJKBFxuaqYTUDEj427HHh

mm9BVmHRwCq6+8ylZXixGHI1I9A/ufAMrpqMIi6DS3PRlc8WC3CCWoAHyAqr

#####################################################################

type, id, order-id, merchant-ccid, transaction, date, pr-hash, pr-signed-hash, cyberkey, swversion, amount, card*

#####################################################################

Поле pr-signed-hash тождественно полю подписанного продавцом хэша (merchant-signed-hash) в сообщении PR1.



4.3.3. CH2 – отклик оплаты с помощью карты (charge-card-response)



Отклик покупателю на CH1-попытку оплатить покупку с помощью кредитной карты. Индицирует успех или неудачу.

#####################################################################

Отправитель: MerchantApp

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: charge-card-response

merchant-ccid: ACME-012

id: myCyberCashID

transaction: 78784567

date: 1995121100500.nnn

merchant-date: 19950121100505.nnn



merchant-response-code: failure/success/etc.

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD

merchant-message; Это сообщение от продавца следует отобразить пользователю. Может иметь много строчек и не имеет защиты.

opaque: [может отсутствовать, смотри объяснение]

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

>rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Скрытый ключ. Ключ сессии покупателя, взятый из CH1 и переданный через CM1 для ID и транзакции.

#####################################################################

Закрытая секция содержит (из CM.6):

server-date: 19950121100706.nnn

amount: usd 10.00

order-id: 1231-3424-234242

card*: [из успешного BC4]

response-code: failure/success/etc.

swseverity: fatal/warning

swmessage; Ujdjhbn CyberApp, что это закрытая часть. Этот текст отображается для пользователя [присутствует только, когда присутствует SWSeverity].

message;

Свободный комментарий причины неудачи или успеха. Этот текст должен быть отображен для покупателя приложением CyberCash.

Закрытая секция является опционной, так как сообщение CH1 продавцу может не пройти, из-за неверного идентификатора заказа (order-id), даты, ошибочного идентификатора продавца (merchant-ccid) и т.д.. Таким образом, сервер не может быть вовлечен, так как в данной ситуации не существует безопасного механизма генерации закрытой секции сообщения.

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


Заметим, что могут быть два сообщения, одно от продавца и одно от сервера.



4.4. Сообщения продавца о покупке, связанные с кредитной картой



Продавец представляет покупки через кредитную карту, делает корректировки и выражает предпочтения через последовательность CM*. Вообще, цикл, сопряженный с кредитной картой включает авторизацию для покупки, включение покупки в перечень на оплату и собственно осуществление оплаты. Имеется возможность удалить определенную позицию из перечня или аннулировать всю сделку (смотри раздел 5.1.). Авторизации всегда осуществляется клиентом через отклики-сообщения CM1 или CM2. Если приобретение выполняется получателем (acquirer) или каким-то другим объектом между сервером CyberCash и получателем, это делается посредством сообщений CM3 или CM2 в зависимости от соглашения между продавцом и объектом, осуществляющим приобретение. Возвраты обрабатываются с помощью сообщений CM5. Сообщение CM4 служит для возврата покупки или возврата до оплаты сделки. CM6 является форматом сообщения, используемого для откликов на все другие CM*-сообщения.

Последовательности MM* были также применены для оплат, осуществляемых продавцом, как описано в разделе 3.4.7

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

Многие современные продавцы работают в режиме "terminal capture", где авторизации получаются продавцом.



4.4.1. CM1 - auth-only (аутентификация)



Это сообщение используется продавцом для выполнения операции авторизации кредитной карты покупателя.

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################



Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-69

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-cyberkey: CC1001

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ

mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Содержимое скрытой секции продавца:

type: auth-only

order-id: 12313424234242

merchant-amount: usd 10.00

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

merchant-signature:

v4qZMe2d7mUXztVdC3ZPMmMgYHlBA7bhR96LSehKP15ylqR/1KwwbBAX8CEqns55UIYY

GGMwPMGoF+GDPM7GlC6fReQ5wyvV1PnETSVO9/LAyRz0zzRYuyVueOjWDlr5

#####################################################################

Ключ продавца закрытой части генерируется из общедоступного ключа CyberCash, на который указывает merchant-cyberkey. Закрытую часть сообщения покупателя (Opaque) - смотри CH1.

#####################################################################

Содержимое закрытой части и подпись: (в точности как в CH1)

swversion: 0.8win



amount: usd 10.00

card*: [from successful BC4 (includes card-expiration-date, card-number, and card-salt)]

Подпись:

48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK

+IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

#####################################################################

Подпись продавца покрывает следующие поля:

merchant-ccid, merchant-transaction, merchant-date, merchant-cyberkey, type, order-id, merchant-amount, pr-hash, pr-signed-hash, id, transaction, date, cyberkey

Подпись покупателя: смотри CH1

#####################################################################

Пояснение:

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



4.4.2. CM2 - auth-capture



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

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

[exactly the same as CM1 except

type: auth-capture

]



4.4.3. Сообщение CM3 - post-auth-capture



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

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-012

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-cyberkey: CC1001

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs



rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ

mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Содержимое скрытой секции продавца:

type: post-auth-capture

authorization-code: a12323

order-id: 1231-3424-234242

merchant-amount: usd 10.00

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

merchant-signature:

vxyEF1ZHn5Rgmtms3H3t/+UB6RAvZQA1AdddjvlS0H75N1x83FyJuh8V9Ok6t4EUQQZ6

Mnptzc6phJi3Ar0s0oumELsdc8upJdXpNpJV021PGJXfDKfHP0heJIWLodXr

#####################################################################

Ключ закрытой секции продавца генерируется из общедоступного ключа шифрования CyberCash, идентифицируемого в merchant-cyberkey.

Закрытая секция сообщения покупателя (Opaque) - смотри CH1.

#####################################################################

Содержимое закрытой секции и подпись: (в точности как в CH1)

swversion: 0.8win

amount: usd 10.00

card*: [в случае успешного BC4 (включает в себя card-salt, номер карты и срок действия карты)]

Подпись:

48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK

+IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

#####################################################################

Подпись продавца покрывает следующие поля:



merchant-ccid, merchant-transaction, merchant-date, merchant-cyberkey, type, authorization-code, order-id, merchant-amount, pr-hash, pr-signed-hash, id, transaction, date, cyberkey

#####################################################################

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



4.4.4. Сообщение об удалении CM4



Аннулирует возврат денег, если сообщение получено до окончательного расчета. Сообщение аналогично сообщению CM1 за исключением того, что оно имеет другой код типа и снабжено полем номера ссылки возврата (retrieval-reference-number field) (которое включается в подпись).

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-012

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-cyberkey: CC1001

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ

mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################



Содержимое скрытой секции продавца:

type: void

retrieval-reference-number: 432112344321

order-id: 1231-3424-234242

merchant-amount: usd 10.00

pr-hash: WATCQuH2q17lRuoxD78YBg==

pr-signed-hash:

8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC

kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

Подпись продавца:

lkjladjslkjflsakjflkjsdljflsakjflkjsdljflsakjflkj flsakjflkjsdljflsakjflkjsdljflsajflksdjflksdjflsdjssf=

#####################################################################

Ключ закрытой секции продавца генерируется из общедоступного ключа шифрования CyberCash, идентифицируемого в Merchant-CyberKey.

Закрытая секция сообщения покупателя (Opaque) - смотри CH1.

#####################################################################

Содержимое закрытой секции и подпись: (в точности как в CH1)

swversion: 0.8win

amount: usd 10.00

card*: [из успешного bc4 (содержит card-salt, номер карты и срок ее действия)]

Подпись:

48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK

+IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

#####################################################################

Подпись продавца покрывает следующие поля: merchant-ccid, merchant-transaction, merchant-date, merchant-cyberkey, type, retrieval-reference-number, order-id, merchant-amount, pr-hash, pr-signed-hash, id, transaction, date, cyberkey

#####################################################################>

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



4.4.5. CM5 - возврат



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

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer



#####################################################################

Пример сообщения:

[в точности как и CM1, только поле type: return]



4.4.6. CM6 – отклик на операцию оплаты (charge-action-response)



Это квитанция, предоставляемая продавцу в качестве уведомления о выполнении платежной операции. Индицирует успех, неудачу или предоставляет какую-то иную информацию.

#####################################################################

Отправитель: CyberServer

Получатель: MerchantApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-012

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ

mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Скрытый ключ продавца. Ключ сессии, который совпадает с CM1/2/3/4/5 для той же транзакции и CCID продавца.

Скрытый ключ. Тот же ключ сессии покупателя, что и в сообщении CH1 переданном через CM* для данного ID и транзакции

#####################################################################

Содержимое скрытой секции продавца:

type: charge-action-response

server-date: 19950121100706.nnn



action-code: XXX [per ISO 8583]

response-code: failure/success/etc.

order-id: 1231-3424-234242

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC

kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov

retrieval-reference-number: 432112344321

authorization-code: a12323

card-hash: 7Tm/djB05pLIw3JAyy5E7A==

{

card-prefix: nnxxxx [ Returned if merchant is not full-PAN]

}

или

{

card-number: 1234567890123456 [Returned if merchant is full-PAN]

}

expiration-date: 12/34 [всегда присутствует]

merchant-swseverity: fatal/warning

merchant-swmessage; Сообщение для продавца об устаревшем номере протокола в стартовой $$-строке сообщения продавца.

merchant-message;

Свободный текст, поясняющий причины неудачи или успеха.

Этот текст направляется сервером продавцу...

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

Содержимое скрытой секции (покупателя):

server-date: 19950121100706.nnn

amount: usd 10.00

order-id: 1231-3424-234242

card*: [from successful BC4]

response-code: failure/success/etc.

swseverity: fatal/warning

swmessage; Говорит CyberApp, что оно является устаревшим. Этот текст отображается для пользователя. [присутствует только, когда имеется SWSeverity]

message;

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



retrieval-reference-number
необходимо для аннулирования.
authorization-code необходим для post-auth-capture. Оба эти поля присутствуют только в сообщении CM6, если оно было присланы банком. Все зависит от выполняемой операции.
card-prefix (префикс карты) представляет собой первые две и последние четыре цифры номера кредитной карты. По усмотрению банка продавца присылается номер кредитной или ее префикс.
card-hash является в действительности хэшем всего номера кредитной карты и salt, представленной покупателем. card-hash необходим для того, чтобы продавец мог, если хочет, сортировать транзакции покупателя по его кредитным картам, не зная их номеров.
card* представляет собой поля card*, полученные вместе с сообщениями CM*, присланными в качестве отклика. Они появляются в алфавитном порядке.
server-date дублируется в целях безопасности в закрытой секции покупателя.
[] комментарии, появляющиеся после некоторых полей.
<


/p> 4.4.7. Последовательности сообщений MM*



Последовательности сообщений CM* представляют собой первичную систему покупок с помощью кредитных карт CyberCash для безопасной обработки денежных оплат клиентами системы. Однако продавцы, которые авторизованы их банком для получения оплаты товаров и услуг, могут также получать оплату по телефону, по почте или наличными. Чтобы исключить для продавца необходимость иметь вторую параллельную систему обработки этих платежей, определены последовательности сообщений MM1 - MM6, которые служат для организации таких менее безопасных транзакций. Сообщения MM* очень похожи на последовательность сообщений CM*, но закрытая секция покупателя на самом деле подписана продавцом, при этом не требуется какого-либо дополнительного CyberCash ID покупателя или ссылки на его кредитную карту.



4.4.8. CD1 – запрос данных о кредитной карте



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

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-69

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-cyberkey: CC1001

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ



mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Содержимое скрытой секции продавца:

type: card-data-request

password: xyzzy

server-date: 19950121100505.nnn [optional]

order-id: 12313424234242

merchant-amount: usd 10.00

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

IV8gWHx1f8eCkWsCsMOE3M8mnTbQ7IBBcEmyGDAwjdbaLu5Qm/bh06OX1npe2d3Hijxy

+X8vKcVE6l6To27u7A7UmGm+po9lCUSLxgtyqyn3jWhHZpc5NZpwoTCf2pAK

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

Подпись продавца:

8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC

kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov

#####################################################################

Скрытый ключ продавца генерируется из общедоступного ключа шифрования CyberCash, идентифицированного в merchant-cyberkey.

Закрытая секция сообщения покупателя (Opaque) - смотри CH1.

#####################################################################

Содержимое закрытой секции и подпись: (в точности как в CH1)

swversion: 0.8win

amount: usd 10.00

card*: [от успешного BC4 (включает в себя время действия карты, номер карты и card-salt)]

Подпись:

48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK

+IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

#####################################################################

Подпись продавца покрывает следующие поля: merchant-ccid, merchant-transaction, merchant-date, merchant-cyberkey, type, password, server-date, order-id, merchant-amount, pr-hash, pr-signed-hash, id, transaction, date, cyberkey

Подпись покупателя: смотри CH1

#####################################################################

[смотри также объяснения для CM1]

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


Вся эта информация содержится в исходном сообщении CH1, вложенном в CM1 для реализации транзакции. Если продавец сохраняет CM1 и другую информацию транзакции, то он может послать это CD1-сообщение серверу.

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



4.4.9. CD2 – отклик на данные кредитной карты



Отклик на CD1 с указанием на успешный или нет прием данных о кредитной карте.

#####################################################################

Отправитель: CyberServer

Получатель: MerchantApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-012

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-opaque:

t731/86R72ZLrqHLIf0VG6m3ybvs+dG6K705L8LFKEXgCti0NGjK83CwDsUdiso7U1JP

2Z0BClVHLmhIBY7+QXx5iCEGHy8JKC9IWyNNi2O/OOIDgLeJAkMSZYbNQrSKViY34imS

0s7Q6uDk9wV0fixjvRBuNO2B7urWWsqfkLOYDnHy0RvhyUzYxLrMaTX+/6IkyU5Z0lH3

BXYBUNV8DgitEjgLXmyWuXRDlEBN02yeZgsFRm9GmuBHfCTySm2XqnifizpmKMUa9UiH

onNx9W86fuBdcJF7CJgH5Gct2M/dx/f2VpoRkmeSmWxFrYi8wgtvddSXF9my40NZ8WZz

CEUEvQhcmruopwEeehv+bejc3fDDZ23JKrbhlZ17lSvFR14PKFsi32pXFqTO0ej9GTc5

L6c8nM3tI1qdHNCe0N5f7ASdKS0tYSxAYJLIR6MqPrXjNJEaRx7Vu1odMlkgrzGOV1fo

5w33BQHK3U2h+1e5zYBeHY3ZYG4nmylYYXIye4xpuPN4QU0dGrWZoImYE44QOwjd5ozl

xulPBjj6cpEI/9wTwR3tpkBb4ZfYirxxnoj9JUkPK9Srv9iJ

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Скрытый ключ: ключ сессии из CD1.

#####################################################################

Содержимое скрытой секции:

type: card-data-response

server-date: 19950121100706.nnn

response-code: failure/success/etc.

order-id: 1231-3424-234242

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

IV8gWHx1f8eCkWsCsMOE3M8mnTbQ7IBBcEmyGDAwjdbaLu5Qm/bh06OX1npe2d3Hijxy

+X8vKcVE6l6To27u7A7UmGm+po9lCUSLxgtyqyn3jWhHZpc5NZpwoTCf2pAK



card-hash: 7Tm/djB05pLIw3JAyy5E7A==

card-number: 4811123456781234

card-type: visa

card-name: John Q. Public

expiration-date: 01/99

merchant-swseverity: fatal/warning

merchant-swmessage; Сообщение для продавца о том, что номер информационного протокола в стартовой строке $$ сообщения продавца устарел.

merchant-message;

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

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

Сообщение в норме возвращает выбранные поля из дешифрованной закрытой части CH1, в том формате, в каком они были посланы серверу в CD1.



4.5. Прикладные сообщения и уведомления об ошибках



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

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

Клиенты должны быть способны определить состояние предшествующих транзакций, когда клиент или продавец закрэшился во время сессии или произошла потеря информации в ходе или по завершении транзакции. Определены два сообщения-запроса о транзакции TQ1 и TQ2. Один из них осуществляет запрос, а второй аннулирует транзакцию, если она не завершена. Откликом на оба эти запроса является сообщение TQ3, посылаемое сервером.

Так как система работает в режиме запрос-отклик, имеется две ситуации, когда необходимы специальные сообщения об ошибках. Если запрос оказался не интерпретируемым или имеет неизвестный код типа, посылается уведомление об ошибке UNK1. Если отклик оказался не интерпретируемым или имеет неизвестный код типа или имела место какая-то другая ошибка, которая должна быть зафиксирована в журнале событий сервера CyberCash. Клиент или продавец направляют серверу диагностические сообщения DL1 или DL2.



4.5.1.


P1 - ping



Простая проверка доступности сервера со стороны клиента. Здесь для минимизации избыточности не используется никаких криптографических методов.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: ping

id: myCyberCashID [optional]

transaction: 123123213

date: 19950121100505.nnn

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

id является опционным, так как персона может быть еще не установлена.



4.5.2. P2 – отклик на ping



Отклик на ping P1. Для минимизации избыточности здесь не используется никаких криптографических методов.

#####################################################################

Отправитель: CyberServer

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: ping-response

id: myCyberCashID [если присутствует в P1]

transaction: 12312313

date: 19950121100505.nnn

server-date: 19950121100506.nnn

swseverity: fatal/warning [отсутствует, если все в порядке]

swmessage; Говорит CyberApp, что оно использует устаревший протокол.

Данный текст отображается для пользователя. [Присутствует только при наличии SWSeverity.]

response-code: success/failure/etc.

message;

Свободный текст комментария об ошибке или успехе.

Этот текст должен быть отображен отправителю его прикладной программой CyberCash.

supported-versions: 08.win, 0.81win, 0.8mac

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

swversion не включается в P1 по соображениям секретности, по этой причине swseverity и swmessage присутствуют, только если сервер может сказать, что эти вещи устарели.

supported-versions позволяет клиенту знать как можно быстрее, какие версии поддерживаются приложением, а какие нет.





4.5.3. TQ1 – запрос транзакции



Запрос клиента серверу о состоянии транзакции.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: MyCyberCashID

date: 19950121100505.nnn

transaction: 12312314

cyberkey: CC1001

opaque:

VFaztHuj757Jrv+JxZFsHORy/zgkrxhBCu9cPdE04c1NnXzVlGOHygpSl+UGbUvnhkYl

>21QQaHkaE3geccRk03cqFYoLNRCclImcsyeIZCgVt+2dJTj1V+E7R7ePQtCj+0gY42+V

L5BWhVtmDQFyg1DdJ6n3S/er6ZuObAjpcAogG+T1Na5dJmrTA1wRMiYVkqhXi2KMYdur

3U47P8ZGUza7W0MST3DgvviN0kVhtmHEnm515mo6NTQdfdxw9WZpy6vMqrBGk2nTgi2c

bnf+muO0+kiNPXVvEzRrO8o=

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Генерируется ключом шифрования CyberCash, идентифицированным CyberKey

#####################################################################

Содержимое скрытой секции:

type: transaction-query

swversion: 0.8win

begin-transaction: 1234

end-transaction: 4321

Подпись:

jJfFsKvOxLaV87gxu7lIPet3wIDwh1H2F61reYC9jmUrS6WAtUVFG9aCNuTEBoMixF0X

vD5oPfyheJRIlnL6i0c4o/bfyO3edKAacmWjTmKt6/4y9p3qgvKkSX8r9aym

#####################################################################

Подпись содержит в себе поля: id, date, transaction, cyberkey, type, swversion, begin-transaction, end-transaction

#####################################################################

Объяснение:

Это запрос клиента сообщить ему о состоянии предшествующей транзакции или транзакций.



begin-transaction и end-transaction могут совпадать.



4.5.4. TQ2 – аннулирование транзакции



Запрос клиента серверу в связи с аннулированием транзакции.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: MyCyberCashID



date: 19950121100505.nnn

transaction: 12312314

cyberkey: CC1001

opaque:

VFaztHuj757Jrv+JxZFsHORy/zgkrxhBCu9cPdE04c1NnXzVlGOHygpSl+UGbUvnhkYl

21QQaHkaE3geccRk03cqFYoLNRCclImcsyeIZCgVt+2dJTj1V+E7R7ePQtCj+0gY42+V

L5BWhVtmDQFyg1DdJ6n3S/er6ZuObAjpcAogG+T1Na5dJmrTA1wRMiYVkqhXi2KMYdur

3U47P8ZGUza7W0MST3DgvviN0kVhtmHEnm515mo6NTQdfdxw9WZpy6vMqrBGk2nTgi2c

bnf+muO0+kiNPXVvEzRrO8o=

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ: полученный из ключа шифрования CyberCash, заданного CyberKey

#####################################################################

Содержимое скрытой секции:

type: transaction-cancel

swversion: 0.8win

begin-transaction: 1234

end-transaction: 4321

Подпись:

kD7DEav2uLQIYMtP9gbhYaBUpB2a5whNwnK2eXbbyTCf56F6dl3DIVf7D8Z4WxbY2YZn

ByRIKeqlhmss7fbdnBiDYmKfOuc+I4bi/Oslml5riaciQhTd2JdHG+PCcHwZ

#####################################################################

Подпись защищает следующие поля: id, date, transaction, cyberkey, type, swversion, begin-transaction, end-transaction

#####################################################################

Объяснение:>

Это попытка клиента аннулировать предыдущую транзакцию или транзакции.>

begin-transaction и end-transaction могут совпадать.

Запрос аннулирования транзакции (TQ.2) определен для взаимодействия клиента с сервером. Этот запрос позволяет клиенту запросить состояние операции и предотвратить операцию, если она еще не осуществлена.



4.5.5. TQ3 – отклик транзакции (transaction-response)



Отклики, генерируемые TQ1 или TQ2

#####################################################################

Отправитель: CyberServer

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: mycybercashid

date: 19950121100505.nnn

transaction: 12312314

server-date: 19950121100505.nnn

opaque:

eFXRL+H0J5q318M21wRdtcbhu9WCyLysQkeF9oIcjtbstymx343bbt0EAtU1gcJaUKJZ



3skgvwrhcxU4bFcE68OPlUXAvLq10I3MczPYPsiGrsU0K4bZtQvDZmn727QQAfONBm5s

s1yjIha+Fj481BJQs0CTYc3ju90lAjCYgirXtnnR6yJXoDO75b7UjthvHSnrTWVZvktX

PvTuUCYzbXSFoYvwFM3Y+yHqSHlmWutYKQpYze8zbUSDQfmwTCJyw3aY2JasZ+xMP/CD

JWbCA+gCLBYCnvzM/ExKTZTFD3xr5JBfNbV4p6CiK6lsfRFD7maAK6TSVnWjwCEJNpOv

fyllfWD04fT7LINQcjJiQK1Pk/912Tk6Q35eRaQZorwv2hnY/7By2OkPyFdAqFL+D0H6

TqzxmdEjEFKxi/PPT1+Cs/Nszy8wZzaGg8iWATfARY6stl+02dDhwOoFXSBNvchlVrcI

IlvhumSIQs29Pntj3DbkYo4IEmmN/qi1vnzld22q7lA1q/CQakyc7jlQUFISx76buqwy

35XiC9Yn8flE4Va14UxMf2RCR1B/XoV6AEd64KwPeCYyOYvwbRcYpRMBXFLyYgWM+ME1

+yp7c66SrCBhW4Q8AJYQ+5j5uyO7uKyyq7OhrV0IMpRDPjiQXZMooLZOifJPmpvJ66hC

VZuWMuA6LR+TJzWUm4sUP9Zb6zMQShedUyOPrtw1vkJXU1vZ5aI8OJAgUcLEitcD+dsY

Df4CzA00fC10POkJ58HZB/pSBfUrHAa+IqMHyZkV/HBi9TjTwmktJi+8T9orXS0jSvor

dMTGWn0ifETy2VXt

$$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$

#####################################################################

Скрытый ключ. Ключ сессии из TQ1/TQ2 для текущих значений транзакции и ID.

#####################################################################

Содержимое скрытой секции:

type: transaction-response

response-code: success/failure/etc.

message; текстовое сообщение, посылаемое сервером покупателю.

swseverity: fatal/warning

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

report-fee: usd 0.15 [если не равно нулю]

transaction-1: old-transaction-number

transaction-status-1: success/failure/pending/cancelled/etc.

server-date-1: 19951212125959.nnn

date-1: 19950121100505.nnn

type-1: auth-only/etc.

Оплата отчета (Report-fee) представляет собой уведомление о том, что данный отчет имеет цену и его предоставление зависит от оплаты. Транзакции с заданным номером может соответствовать несколько транзакций (аутентификация, оплата и т.д.).



Термины



"исходная транзакция" относится к платежу или другой транзакции, которая была запрошена или аннулирована. Заметим, что эта транзакция в действительности не является резидентной для сервера.
"request" относится к запрашивающим сообщениям TQ.2 или TQ.1.
id: идентификатор сообщения-запроса
date: дата сообщения-запроса
transaction: транзакция сообщения-запроса
server-date: текущая дата/время
type: Отклик транзакции
response-code: код отклика для сообщения-запроса, может быть одним из:
  "success" означает, сообщение прошло успешно. Не подразумевает требования присылки состояния запроса.
  "failure-hard" означает, что сообщение-запрос не прошло из-за некорректного формата или по какой-то другой причине.
  "failure-swversion" означает, что запрос не был обработан из-за проблем ревизии программного обеспечения.
message: сообщение используется только для транзакции TQ, а не к состоянию транзакций, статус или аннулирование которых были запрошены. Сообщение формируется на основании кода отклика:
  "success" сообщение проигнорировано.
  "failure-hard" используется стандартное сообщение уведомление о неудаче.
  "failure-swversion" в случае фатальной ошибки используется стандартное сообщение типа swversion
swseverity: относится к сообщению-запросу
swmessage: относится к сообщению-запросу - для полей запрос/отмена ('N' берется из ряда от 1 до N)
transaction-N: номер исходной транзакции, или, если исходной транзакции на сервере нет, то номер транзакции запроса состояния транзакции с заданным номером. Состояние исходной транзакции может быть одним из:
  "success" исходная транзакция была успешно проведена. Если запросом было сообщение TQ.2, аннулирование не производится.
  "failure" исходная транзакция не была реализована. Если запросом было сообщение TQ.2, аннулирование не производится.
  "pending" исходная транзакция все еще обрабатывается и окончательный результат пока не известен.
  "canceled" исходная транзакция была аннулирована сервером. Последующий приход исходной транзакции не будет обрабатываться, но будет послан отклик "failure-canceled".
server-date-1: поле server-date из исходной транзакции. Опускается, если исходная транзакция на сервере отсутствует.
date-1: поле даты исходной транзакции. Опускается, если исходная транзакция на сервере отсутствует.
type-1: поле типа исходной транзакции. Опускается, если исходная транзакция на сервере отсутствует.
<


/p> 4.5.6. UNK1 – неизвестная ошибка



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

#####################################################################

Отправитель: MerchantApp или CyberServer

Получатель: CyberApp или MerchantApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: unknown-error

unknown-error-message:

Текст сообщения о причинах ошибки, которое следует представить пользователю. (Не найден CyberCash-обработчик, проверка целостности обработчика не прошла, специфицирована неизвестная версия протокола, специфицирован неизвестный тип и т.д.)

{

server-date: 19950121100506.nnn [если послано сервером]

}

или

{

merchant-date: 19950121100506.nnn [если послано продавцом]

}

x-id: mycybercashID

x-transaction: 123123213

x-date: 19950121100505.nnn

x-cyberkey: CC1001

x-opaque:

2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G

9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7

TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw

5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX

GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm

lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy

Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

Это сообщение посылается в качестве отклика, когда не удается найти или понять тип сообщения. Оно всегда имеет в начале поля типа и unknown-error-message. Любые поля запроса, которые удается распознать, копируются с префиксами "x-" в сообщение UNK1, посылаемое в качестве отклика. Таким образом, если появляется x-opaque, это означает, что в исходном запросе было поле opaque и т.д.

Так как покупатель инициирует обмен с продавцом и сервером, а продавец запускает обмен с сервером, это сообщение будет послано только покупателю продавцом или сервером покупателю или продавцу.


Оно должно быть записано для отладочных целей. Вам может быть нужно отслеживать отказы обслуживания посредством сообщений UNK1.



4.5.7. DL1 – диагностическая запись



Клиентская диагностическая запись о плохом сообщении от продавца или сервера.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: MyCyberCashID

date: 19950121100505.nnn

transaction: 1234

cyberkey: CC1001

opaque:

2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G

9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7

TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw

5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX

GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm

lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy

Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Генерируется из ключа шифрования CyberCash, идентифицируемого в CyberKey

#####################################################################

Содержимое скрытой секции:

type: diagnostic-log

message: incorrect order-id

swversion: 0.8win

x-type: original-message-type

x-transaction: original-transaction-number

x-opaque: [ели нельзя дешифровать]

9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3

5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw

#####################################################################

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



4.5.8. DL2 – диагностические журнальные записи продавца (merchant-diagnostic-log)





Диагностическая запись продавца о плохом сообщении от сервера.

#####################################################################

Отправитель: CyberMerchant

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: MyCyberCashID

merchant-transaction: 1234

merchant-date: 19950121100505.nnn

merchant-cyberkey: CC1001

merchant-opaque:

2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G

9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7

TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw

5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX

GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm

lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy

Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Генерируется из ключа шифрования CyberCash, заданного в CyberKey

#####################################################################

Содержимое скрытой секции:

type: merchant-diagnostic-log

server-date: 19950121100505.nnn [optional]

message: incorrect order-id

x-type: original-message-type

x-transaction: original-transaction-number

x-opaque: [если невозможно дешифровать]

9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3

5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw

#####################################################################

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



4.6.


Кабельные каналы связи



3.1 Кабельные каналы связи

Кабельные каналы для целей телекоммуникаций исторически использовались первыми. Да и сегодня по суммарной длине они превосходят даже спутниковые каналы. Основную долю этих каналов, насчитывающих многие сотни тысяч километров, составляют телефонные медные кабели. Эти кабели содержат десятки или даже сотни скрученных пар проводов. Полоса пропускания таких кабелей обычно составляет 3-3,5 кГц при длине 2-10 км. Эта полоса диктовалась ранее нуждами аналогового голосового обмена в рамках коммутируемой телефонной сети. c учетом возрастающих требованиям к широкополосности каналов скрученные пары проводов пытались заменить коаксиальными кабелями, которые имеют полосу от 100 до 500 МГц (до 1 Гбит/с), и даже полыми волноводами. Именно коаксиальные кабели стали в начале транспортной средой локальных сетей ЭВМ (10base-5 и 10base-2; см. Рисунок 3.1.1).



Каналы передачи данных



3 Каналы передачи данных

Номер раздела Название раздела Объем в страницах Объем в кбайт
3 Каналы передачи данных 1 1
3.1 Кабельные каналы связи 7 106
3.2 Оптоволоконные каналы 10 8
3.3 Беспроводные (радио) каналы и сети 11 8
3.4 Протокол SLIP 2 20
3.5 Протокол PPP 9 8
3.6 Протокол G.703 1 21

За последние двадцать лет пропускная способность каналов выросла с 56 кбит/c до 1 Гбит/с. Разработаны технологии, способные работать в случае оптических кабелей со скоростью 50 Тбит/с. Вероятность ошибки при этом сократилась с 10-5 на бит до пренебрежимо низкого уровня. Современный же лимит в несколько Гбит/с связан главным образом с тем, что люди не научились делать быстродействующие преобразователи электрических сигналов в оптические.



Коды протоколов в Ethernet II



10.2 Коды протоколов в Ethernet II

Десятичный код

Hex

Описание

  0-05DC Поле длины IEEE 802.3
512 0200 XEROX PUP (PARC Universal Packet)
513 0201 Трансляция адреса для пакетов PUP
1536 0600 XEROX NS IDP
2048 0800 Internet протокол (IPv4)
2049 0801 X.75 Internet
2050 0802 NBS Internet
2051 0803 ECMA Internet
2052 0804 Chaosnet
2053 0805 X.25 уровень 3
2054 0806 Протокол трансляции адреса (ARP)
2055 0807 XNS совместимость
2560 0A00 Xerox IEEE-802.3 PUP
4096 1000 Berkley Trailer
21000 5208 BBN Simnet
24577 6001 DEC MOP Dump/Load
24578 6002 DEC MOP удаленный терминал
24579 6003 DEC DECnet фаза IV
24580 6004 DEC LAT (Local Area Transport)
24582 6005 Диагностический протокол DEC
24583 6006 Протокол пользователя DEC
24586 6010-6014 Корпорация 3Com
28720 7030 Proteon
32773 8005 HP Probe
32776 8008 AT&T
32784 8010 Excelan
32787 8013 Диагностика SGI
32788 8014 Сетевые игры SGI
32793 8019 Apollo Computers
32821 8035 Реверсивный протокол ARP (RARP)
32824 8038 DEC LANbridge
32829 803D Ethernet шифрование DEC
32831 803F Сетевой монитор трафика DEC
32872 8068 General Dynamics
32873 8069 AT&T
32923 809B AppleTalk
33011 80F3 AppleTalk AARP
33072 8130 Heyes Microcomputers
33079 8137-8138 NetWare IPX/SPX
33100 814C SNMP
  818D Motorola Computer
  81A5-81AE RAD Network Devices
36865 9001 3Com(Bridge) XNS Sys Mgmt(Системное управление XNS)
36866 9002 3Com(Bridge) TCP-IP System



Конфигурирование сетевых систем



5.5 Конфигурирование сетевых систем

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



Коррекция ошибок



2.8 Коррекция ошибок

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

Код Хэмминга представляет собой блочный код, который позволяет выявить и исправить ошибочно переданный бит в пределах переданного блока. Обычно код Хэмминга характеризуется двумя целыми числами, например, (11,7) используемый при передаче 7-битных ASCII-кодов. Такая запись говорит, что при передаче 7-битного кода используется 4 контрольных бита (7+4=11). При этом предполагается, что имела место ошибка в одном бите и что ошибка в двух или более битах существенно менее вероятна. С учетом этого исправление ошибки осуществляется с определенной вероятностью. Например, пусть возможны следующие правильные коды (все они, кроме первого и последнего, отстоят друг от друга на расстояние 4):

00000000

11110000

00001111

11111111

При получении кода 00000111 не трудно предположить, что правильное значение полученного кода равно 00001111. Другие коды отстоят от полученного на большее расстояние Хэмминга.

Рассмотрим пример передачи кода буквы s = 0x073 = 1110011 с использованием кода Хэмминга (11,7).

Позиция бита: 11 10 9 8 7 6 5 4 3 2 1
Значение бита: 1 1 1 * 0 0 1 * 1 * *

Символами * помечены четыре позиции, где должны размещаться контрольные биты. Эти позиции определяются целой степенью 2 (1, 2, 4, 8 и т.д.). Контрольная сумма формируется путем выполнения операции XOR (исключающее ИЛИ) над кодами позиций ненулевых битов.
В данном случае это 11, 10, 9, 5 и 3. Вычислим контрольную сумму:

11 = 1011
10 = 1010
09 = 1001
05 = 0101
03 = 0011
s = 1110
Таким образом, приемник получит код:

Позиция бита: 11 10 9 8 7 6 5 4 3 2 1
Значение бита: 1 1 1 1 0 0 1 1 1 1 0
Просуммируем снова коды позиций ненулевых битов и получим нуль.

11 = 1011
10 = 1010
09 = 1001
08 = 1000
05 = 0101
04 = 0100
03 = 0011
02 = 0010
s = 0000
Ну а теперь рассмотрим два случая ошибок в одном из битов посылки, например, в бите 7 (1 вместо 0) и в бите 5 (0 вместо 1). Просуммируем коды позиций ненулевых бит еще раз.

11 = 1011
10 = 1010
09 = 1001
08 = 1000
07 = 0111
05 = 0101
04 = 0100
03 = 0011
02 = 0010
s = 0111
 
11 = 1011
10 = 1010
09 = 1001
08 = 1000
04 = 0100
03 = 0011
02 = 0010
s = 0101
В обоих случаях контрольная сумма равна позиции бита, переданного с ошибкой. Теперь для исправления ошибки достаточно инвертировать бит, номер которого указан в контрольной сумме. Понятно, что если ошибка произойдет при передаче более чем одного бита, код Хэмминга при данной избыточности окажется бесполезен.

В общем случае код имеет N=M+C бит и предполагается, что не более чем один бит в коде может иметь ошибку. Тогда возможно N+1 состояние кода (правильное состояние и n ошибочных). Пусть М=4, а N=7, тогда слово-сообщение будет иметь вид: M4, M3, M2, C3, M1, C2, C1. Теперь попытаемся вычислить значения С1, С2, С3. Для этого используются уравнения, где все операции представляют собой сложение по модулю 2:

С1 = М1 + М2 + М4

С2 = М1 + М3 + М4

С3 = М2 + М3 + М4

Для определения того, доставлено ли сообщение без ошибок, вычисляем следующие выражения (сложение по модулю 2):

С11 = С1 + М4 + М2 + М1

С12 = С2 + М4 + М3 + М1

С13 = С3 + М4 + М3 + М2

Результат вычисления интерпретируется следующим образом.

С11 С12 С13 Значение
1 2 4 Позиция бит
0 0 0 Ошибок нет
0 0 1 Бит С3 не верен
0 1 0 Бит С2 не верен
0 1 1 Бит М3 не верен>
1 0 0 Бит С1 не верен>
1 0 1 Бит М2 не верен
1 1 0 Бит М1 не верен
1 1 1 Бит М4 не верен
<


/p> Описанная схема легко переносится на любое число n и М.

Число возможных кодовых комбинаций М помехоустойчивого кода делится на n классов, где N – число разрешенных кодов. Разделение на классы осуществляется так, чтобы в каждый класс вошел один разрешенный код и ближайшие к нему (по расстоянию Хэмминга) запрещенные коды. В процессе приема данных определяется, к какому классу принадлежит пришедший код. Если код принят с ошибкой, он заменяется ближайшим разрешенным кодом. При этом предполагается, что кратность ошибки не более qm.

Можно доказать, что для исправления ошибок с кратностью не более qmm (как правило, оно выбирается равным D = 2qm +1). В теории кодирования существуют следующие оценки максимального числа N n-разрядных кодов с расстоянием D.

d=1 n=2n
d=2 n=2n-1
d=3 n

2n /(1+n)
d=2q+1

Методы сжатия информации



2.6 Методы сжатия информации

Номер раздела Название раздела Объем в страницах Объем в кбайт
2.6 Методы сжатия информации 3 3
2.6.1 Алгоритм Зива-Лемпеля 3 3
2.6.2 Локально адаптивный алгоритм сжатия 2 2
2.6.3 Сжатие данных с использованием преобразования Барроуза-Вилера 1 1
2.6.4 Метод Шеннона-Фано 1 3
2.6.5 Статический алгоритм Хафмана 1 1

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

Первые теоретические разработки в области сжатия информации относятся к концу 40-х годов. В конце семидесятых появились работы Шеннона, Фано и Хафмана. К этому времени относится и создание алгоритма FGK (Faller, Gallager, Knuth), где используется идея "сродства", а получатель и отправитель динамически меняют дерево кодов (смотри, например, http://www.ics.uci.edu/~dan/plus/DC-Sec4.html).

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

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

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

Альтернативой статистическому алгоритму является схема сжатия, основанная на динамически изменяемом словаре (напр., алгоритмы Лембеля-Зива). Данный метод предполагает замену потока символов кодами, записанными в памяти в виде словаря (таблица перекодировки). Соотношение между символами и кодами меняется вместе с изменением данных. Таблицы кодирования периодически меняются, что делает метод более гибким. Размер небольших словарей лежит в пределах 2-32 килобайт, но более высоких коэффициентов сжатия можно достичь при заметно больших словарях до 400 килобайт.

Реализация алгоритма возможна в двух режимах: непрерывном и пакетном. Первый использует для создания и поддержки словаря непрерывный поток символов. При этом возможен многопротокольный режим (например, TCP/IP и DECnet). Словари сжатия и декомпрессии должны изменяться синхронно, а канал должен быть достаточно надежен (напр., X.25 или PPP), что гарантирует отсутствие искажения словаря при повреждении или потере пакета. При искажении одного из словарей оба ликвидируются и должны быть созданы вновь.

Пакетный режим сжатия также использует поток символов для создания и поддержания словаря, но поток здесь ограничен одним пакетом и по этой причине синхронизация словарей ограничена границами кадра. Для пакетного режима достаточно иметь словарь объемом, порядка 4 Кбайт. Непрерывный режим обеспечивает лучшие коэффициенты сжатия, но задержка получения информации (сумма времен сжатия и декомпрессии) при этом больше, чем в пакетном режиме.

При передаче пакетов иногда применяется сжатие заголовков, например, алгоритм Ван Якобсона (RFC-1144). Этот алгоритм используется при скоростях передачи менее 64 Kбит/с. При этом достижимо повышение пропускной способности на 50% для скорости передачи 4800 бит/с. Сжатие заголовков зависит от типа протокола. При передаче больших пакетов на сверх высоких скоростях по региональным сетям используются специальные канальные алгоритмы, независящие от рабочих протоколов. Канальные методы сжатия информации не могут использоваться для сетей, базирующихся на пакетной технологии, SMDS (Switched Multi-megabit Data Service), ATM, X.25 и Frame Relay. Канальные методы сжатия дают хорошие результаты при соединении по схеме точка-точка, а при использовании маршрутизаторов возникают проблемы - ведь нужно выполнять процедуры сжатия/декомпрессии в каждом маршрутизаторе, что заметно увеличивает суммарное время доставки информации. Возникает и проблема совместимости маршрутизаторов, которая может быть устранена процедурой идентификации при у становлении виртуального канала.

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

Если при работе с пакетами заголовки оставлять неизмененными, а сжимать только информационные поля, ограничение на использование стандартных маршрутизаторов может быть снято. Пакеты будут доставляться конечному адресату, и только там будет выполняться процедура декомпрессии. Такая схема сжатия данных приемлема для сетей X.25, SMDS, Frame Relay и ATM. Маршрутизаторы корпорации CISCO поддерживают практически все режимы сжатия/декомпрессии информации, перечисленные выше.

Сжатие информации является актуальной задачей, как при ее хранении, так и при пересылке. Сначала рассмотрим вариант алгоритма Зива-Лемпеля.



Национальные коды доменов в Интернет



10.12 Национальные коды доменов в Интернет

Обычно завершающий код Internet-адреса определяет государственную принадлежность узла, сервера или ЭВМ (информация взята на сервере RIPE Network Coordination Center (X.500 в ISO 3166)). Информация упорядочена согласно англоязычным названиям стран.

Страна

Английское название

Двухбуквенный код

Трехбуквенный код

Числовой код

Афганистан AFGHANISTAN AF AFG 004
Албания ALBANIA AL ALB 008
Алжир ALGERIA DZ DZA 012
Американское Самоа AMERICAN SAMOA AS ASM 016
Андорра ANDORRA AD AND 020
Ангола ANGOLA AO AGO 024
  ANGUILLA AI AIA 660
Антарктика ANTARCTICA AQ ATA 010
Антигуа и Барбуда ANTIGUA AND BARBUDA AG ATG 028
Аргентина ARGENTINA AR ARG 032
Армения ARMENIA AM ARM 051
Аруба ARUBA AW ABW 533
Австралия AUSTRALIA AU AUS 036
Австрия AUSTRIA AT AUT 040
Азербайджан AZERBAIJAN AZ AZE 031
Багамские острова BAHAMAS BS BHS 044
Бахрейн BAHRAIN BH BHR 048
Бангладеш BANGLADESH BD BGD 050
Барбадос BARBADOS BB BRB 052
Беларусь BELARUS BY BLR 112
Бельгия BELGIUM BE BEL 056
Белиз BELIZE BZ BLZ 084
Бенин BENIN BJ BEN 204
Бермудские острова BERMUDA BM BMU 060
Бутан BHUTAN BT BTN 064
Боливия BOLIVIA BO BOL 068
Босния и Герцеговина BOSNIA AND HERZEGOWINA BA BIH 070
Ботсвана BOTSWANA BW BWA 072
BOUVET ISLAND BV BVT 074  
Бразилия BRAZIL BR BRA 076
Британская территория в Индийском океане BRITISH INDIAN OCEAN TERRITORY IO IOT 086
Бруней BRUNEI DARUSSALAM BN BRN 096
Болгария BULGARIA BG BGR 100
Буркина Фасо BURKINA FASO BF BFA 854
Бурунди BURUNDI BI BDI 108
Камбоджа CAMBODIA KH KHM 116
Камерун CAMEROON CM CMR 120
Канада CANADA CA CAN 124
  CAPE VERDE CV CPV 132
Каймановы острова CAYMAN ISLANDS KY CYM 136
Центрально Африканская Республика CENTRAL AFRICAN REPUBLIC CF CAF 140
Чад CHAD TD TCD 148
Чили CHILE CL CHL 152
Китай CHINA CN CHN 156
Остров Рождества CHRISTMAS ISLAND CX CXR 162
Кокосовые острова COCOS (KEELING) ISLANDS CC CCK 166
Колумбия COLOMBIA CO COL 170
Каморы COMOROS KM COM 174
Конго CONGO CG COG 178
Острова Кука COOK ISLANDS CK COK 184
Коста-Рика COSTA RICA CR CRI 188
Кот де Вуар COTE D'IVOIRE CI CIV 384
Хорватия CROATIA HR HRV 191
Куба CUBA CU CUB 192
Кипр CYPRUS CY CYP 196
Чешская республика CZECH REPUBLIC CZ CZE 203
Дания DENMARK DK DNK 208
Джибути DJIBOUTI DJ DJI 262
Доминика DOMINICA DM DMA 212
Доминиканская республика DOMINICAN REPUBLIC DO DOM 214
Восточный Тимор EAST TIMOR TP TMP 626
Эквадор ECUADOR EC ECU 218
Египет EGYPT EG EGY 818
Сальвадор EL SALVADOR SV SLV 222
Экваториальная Гвинея EQUATORIAL GUINEA GQ GNQ 226
Эритрея ERITREA ER ERI 232
Эстония ESTONIA EE EST 233
Эфиопия ETHIOPIA ET ETH 231
Фолклендские острова FALKLAND ISLANDS FK FLK 238
Острова Фаро FAROE ISLANDS FO FRO 234
Фиджи FIJI FJ FJI 242
Финляндия FINLAND FI FIN 246
Франция FRANCE FR FRA 250
Франция, метрополия FRANCE, METROPOLITAN FX FXX 249
Французская Гвинея FRENCH GUIANA GF GUF 254
Французская Полинезия FRENCH POLYNESIA PF PYF 258
Французские Южные территории FRENCH SOUTHERN TERRITORIES TF ATF 260
Габон GABON GA GAB 266
Гамбия GAMBIA GM GMB 270
Грузия GEORGIA GE GEO 268
Германия GERMANY DE DEU 276
Гана GHANA GH GHA 288
Гибралтар GIBRALTAR GI GIB 292
Греция GREECE GR GRC 300
Гренландия GREENLAND GL GRL 304
Гренада GRENADA GD GRD 308
Гваделупа GUADELOUPE GP GLP 312
Гуам GUAM GU GUM 316
Гватемала GUATEMALA GT GTM 320
Гвинея GUINEA GN GIN 324
Гвинея-Биссау GUINEA-BISSAU GW GNB 624
Гайана GUYANA GY GUY 328
Гаити HAITI HT HTI 332
  HEARD AND MC DONALD ISLANDS HM HMD 334
Гондурас HONDURAS HN HND 340
Гонконг HONG KONG HK HKG 344
Венгрия HUNGARY HU HUN 348
Исландия ICELAND IS ISL 352
Индия INDIA IN IND 356
Индонезия INDONESIA ID IDN 360
Иран IRAN IR IRN 364
Ирак IRAQ IQ IRQ 368
Ирландия IRELAND IE IRL 372
Израиль ISRAEL IL ISR 376
Италия ITALY IT ITA 380
Ямайка JAMAICA JM JAM 388
Япония JAPAN JP JPN 392
Иордания JORDAN JO JOR 400
Казахстан KAZAKHSTAN KZ KAZ 398
Кения KENYA KE KEN 404
Кирибати KIRIBATI KI KIR 296
КНДР KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF KP PRK 408
Корея KOREA KR KOR 410
Кувейт KUWAIT KW KWT 414
Киргизстан KYRGYZSTAN KG KGZ 417
Лаос LAO PEOPLE'S DEMOCRATIC REPUBLIC LA LAO 418
Латвия LATVIA LV LVA 428
Леван LEBANON LB LBN 422
Лесото LESOTHO LS LSO 426
Либерия LIBERIA LR LBR 430
Ливия LIBYAN ARAB JAMAHIRIYA LY LBY 434
Лихтенштейн LIECHTENSTEIN LI LIE 438
Литва LITHUANIA LT LTU 440
Люксембург LUXEMBOURG LU LUX 442
Макао MACAU MO MAC 446
Македония MACEDONIA, MK MKD 807
Мадагаскар MADAGASCAR MG MDG 450
Малави MALAWI MW MWI 454
Малайзия MALAYSIA MY MYS 458
Мальдивские острова MALDIVES MV MDV 462
Мали MALI ML MLI 466
Мальта MALTA MT MLT 470
Маршалловы острова MARSHALL ISLANDS MH MHL 584
Мартиника MARTINIQUE MQ MTQ 474
Мавритания MAURITANIA MR MRT 478
Маврикий MAURITIUS MU MUS 480
  MAYOTTE YT MYT 175
Мексика MEXICO MX MEX 484
Микронезия MICRONESIA FM FSM 583
Молдова MOLDOVA MD MDA 498
Монако MONACO MC MCO 492
Монголия MONGOLIA MN MNG 496
  MONTSERRAT MS MSR 500
Марокко MOROCCO MA MAR 504
Мозамбик MOZAMBIQUE MZ MOZ 508
  MYANMAR MM MMR 104
Намибия NAMIBIA NA NAM 516
Остров Науру NAURU NR NRU 520
Непал NEPAL NP NPL 524
Нидерланды NETHERLANDS NL NLD 528
Нидерландские Антиллы NETHERLANDS ANTILLES AN ANT 530
Новая Каледония NEW CALEDONIA NC NCL 540
Новая Зеландия NEW ZEALAND NZ NZL 554
Никарагуа NICARAGUA NI NIC 558
Нигер NIGER NE NER 562
Нигерия NIGERIA NG NGA 566
  NIUE NU NIU 570
Остров Норфолк NORFOLK ISLAND NF NFK 574
Северные Марианские острова NORTHERN MARIANA ISLANDS MP MNP 580
Норвегия NORWAY NO NOR 578
Оман OMAN OM OMN 512
Пакистан PAKISTAN PK PAK 586
Остров Палау PALAU PW PLW 585
Панама PANAMA PA PAN 591
Папуа Новая Гвинея PAPUA NEW GUINEA PG PNG 598
Парагвай PARAGUAY PY PRY 600
Перу PERU PE PER 604
Филиппины PHILIPPINES PH PHL 608
Остров Питкэрн PITCAIRN PN PCN 612
Польша POLAND PL POL 616
Португалия PORTUGAL PT PRT 620
Пуэрто-Рико PUERTO RICO PR PRI 630
Катар QATAR QA QAT 634
Реюньон REUNION RE REU 638
Румыния ROMANIA RO ROM 642
Россия RUSSIAN FEDERATION RU RUS 643
Руанда RWANDA RW RWA 646
Сант Китс и Невис SAINT KITTS AND NEVIS KN KNA 659
Сент-Люсия SAINT LUCIA LC LCA 662
Сент-Винсент и Гренадины SAINT VINCENT AND THE GRENADINES VC VCT 670
Самоа SAMOA WS WSM 882
Сан-Марино SAN MARINO SM SMR 674
Сан Томе и Принсипи SAO TOME AND PRINCIPE ST STP 678
Саудовская Аравия SAUDI ARABIA SA SAU 682
Сенегал SENEGAL SN SEN 686
Сейшельские острова SEYCHELLES SC SYC 690
Сиерра-Леоне SIERRA LEONE SL SLE 694
Сингапур SINGAPORE SG SGP 702
Словакия SLOVAKIA SK SVK 703
Словения SLOVENIA SI SVN 705
Соломоновы острова SOLOMON ISLANDS SB SLB 090
Сомали SOMALIA SO SOM 706
Южная Африка SOUTH AFRICA ZA ZAF 710
Южная Георгия и Южные Сэндвичевы острова SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS GS SGS 239
Испания SPAIN ES ESP 724
Шри-Ланка SRI LANKA LK LKA 144
Св. Елена ST. HELENA SH SHN 654
Сен-Пьер и Микелон ST. PIERRE AND MIQUELON PM SPM 666
Судан SUDAN SD SDN 736
Суринам SURINAME SR SUR 740
Острова Свалбард и Ян-Майена SVALBARD AND JAN MAYEN ISLANDS SJ SJM 744
Свазиленд SWAZILAND SZ SWZ 748
Швеция SWEDEN SE SWE 752
Швейцария SWITZERLAND CH CHE 756
Сирия SYRIAN ARAB REPUBLIC SY SYR 760
Тайвань TAIWAN, PROVINCE OF CHINA TW TWN 158
Таджикистан TAJIKISTAN TJ TJK 762
Танзания TANZANIA TZ TZA 834
Таиланд THAILAND TH THA 764
Того TOGO TG TGO 768
Острова Токелау TOKELAU TK TKL 772
Тонга TONGA TO TON 776
Тринидад и Тобаго TRINIDAD AND TOBAGO TT TTO 780
Тунис TUNISIA TN TUN 788
Турция TURKEY TR TUR 792
Туркменистан TURKMENISTAN TM TKM 795
  TURKS AND CAICOS ISLANDS TC TCA 796
Тувалу TUVALU TV TUV 798
Уганда UGANDA UG UGA 800
Украина UKRAINE UA UKR 804
Объединенные арабские Эмираты UNITED ARAB EMIRATES AE ARE 784
Великобритания UNITED KINGDOM GB GBR 826
Соединенные Штаты UNITED STATES US USA 840
  UNITED STATES MINOR OUTLYING ISLANDS UM UMI 581
Уругвай URUGUAY UY URY 858
Узбекистан UZBEKISTAN UZ UZB 860
Вануату VANUATU VU VUT 548
Ватикан VATICAN CITY STATE (HOLY SEE) VA VAT 336
Венесуэла VENEZUELA VE VEN 862
Вьетнам VIET NAM VN VNM 704
Виргинские острова (ВБ) VIRGIN ISLANDS (BRITISH) VG VGB 092
Виргинские острова (США) VIRGIN ISLANDS (U.S.) VI VIR 850
Острова Эллис и Футуна WALLIS AND FUTUNA ISLANDS WF WLF 876
Западная Сахара WESTERN SAHARA EH ESH 732
Йемен YEMEN YE YEM 887
Югославия YUGOSLAVIA YU YUG 891
Заир ZAIRE ZR ZAR 180
Замбия ZAMBIA ZM ZMB 894
Зимбабве ZIMBABWE ZW ZWE 716
<

Общие операции



4. Общие операции

4.1. Согласование уровня безопасности и номера по порядку

Безопасность сообщения COPS согласуется один раз на соединение и работает для всего последующего обмена через это соединение. Если требуется определенный уровень безопасности COPS, он должен быть согласован во время начального обмена сообщениями Client-Open/Client-Accept, специфицирующего тип клиента равный нулю (который зарезервирован для согласования уровня соединения и верификации соединения).

Если PEP не конфигурировался для использования средств безопасности COPS, он просто пошлет PDP сообщения Client-Open для поддерживаемых типов клиента, как это задано в разделе 4.3 и не будет включать объект Integrity в какие-либо сообщения COPS.

В противном случае, средства безопасности могут быть инициализированы PEP, если он посылает PDP сообщение Client-Open с Client-Type=0 до открытия любого другого типа клиента (Client-Type). Если PDP получает Client-Open с Client-Type=0, после того как другой тип клиента уже успешно открыт, он должен прислать сообщение Client-Close (для Client-Type=0) к PEP. Это первое сообщение Client-Open должно специфицировать Client-Type=0 и должно предоставить объекты PEPID и COPS Integrity. Этот объект Integrity будет содержать начальный порядковый номер, который PDP должен инкрементировать в дальнейшем, после исходного обмена Client-Open/Client-Accept и Key ID, идентифицирующего алгоритм и ключ, которые используются для вычисления дайджеста.

Аналогично, если PDP принимает ключ безопасности PEP и алгоритм путем проверки дайджеста сообщения с использованием идентифицированного ключа, PDP должен послать PEP сообщение Client-Accept с Client-Type =0, содержащего объект Integrity. Этот объект Integrity будет включать исходный порядковый номер, идентификатор ключа (Key ID), задающий ключ и алгоритм, использованные для вычисления дайджеста.

Если PEP, от перспективного PDP, который требует безопасности, потерпит неудачу или вообще не выполнит согласование требований безопасности, не послав исходное сообщение Client-Open с Client-Type=0, содержащее корректный объект Integrity, PDP должен послать PEP сообщение Client-Close с Client-Type=0, специфицирующее соответствующий код ошибки.
Аналогично, если PDP, в процессе диалога с PEP, который требует безопасности, не выполнил согласования параметров, не послав сообщение Client-Accept со значением Client-Type=0 и корректным объектом Integrity, PEP должен послать PDP сообщение Client-Close со значением Client-Type=0, специфицируя соответствующий код ошибки. Такое сообщение Client-Close не должно нести в себе объект integrity (так как согласование безопасности еще не завершено).

Инициализация безопасности может потерпеть неудачу по одной из следующих причин:

1. Партнер, получающий сообщение требует обеспечения уровня безопасности COPS, но объект Integrity не прислан.
2. Объект Integrity COPS был прислан, но с неизвестным или неприемлемым C-Type (код ошибки Unknown COPS Object, специфицирующий неподдерживаемые C-Num и C-Type).
3. Дайджест сообщения или идентификатор ключа в присланном объекте Integrity был некорректен и, следовательно, сообщение не может быть аутентифицировано с помощью ключа (код ошибки - Authentication Failure).
Раз начальное согласование уровня безопасности завершено, PEP знает, какие порядковые номера ожидает PDP, а PDP знает, какие порядковые номера ожидает PEP. Все сообщения COPS должны включать согласованный объект Integrity, специфицирующий корректный порядковый номер с соответствующий дайджест сообщения (включая сообщения Client-Open/Client-Accept для специфических типов клиента). Все последующие сообщения от PDP к PEP должны вызывать инкрементацию порядкового номера, осуществляемую PEP в объекте Integrity исходного сообщения Client-Open. Аналогично, все последующие сообщения от PEP к PDP должны вызывать инкрементацию порядкового номера, осуществляемую PDP в объекте Integrity исходного сообщения Client-Accept. Порядковые номера увеличиваются на 1, начиная с исходного значения. Например, если порядковый номер задан для PEP в исходном сообщении Client-Accept равным 10, следующее сообщение PEP посылаемое к PDP, предоставит объект Integrity с порядковым номером 11.


Следующее сообщение, которое посылает PEP в направлении PDP, будет иметь порядковый номер 12 и т.д. Если любое последующее сообщение содержит неверный порядковый номер, неопределенный Key ID, некорректный дайджест сообщения, или не имеет объекта Integrity при условии, что параметры безопасности согласованы, то для Client-Type=0 должно быть сгенерировано сообщение Client-Close, содержащее корректный объект Integrity, где специфицируется соответствующий код ошибки. После этого соединение должно быть разорвано.



4.2. Работа с ключами



Процедура работы с ключами находится за пределами данного документа, но реализации COPS должны, по крайней мере, предоставить возможность ручной конфигурации ключей и задания их параметров. Ключ, используемый для формирования дайджеста сообщения с объектом Integrity, идентифицируется с помощью поля Key ID. Таким образом, параметр Key ID используется для идентификации одного из множества ключей, используемых совместно PEP и PDP. Key ID имеет отношение к определенному PEPID для PDP, или к определенному PDP для PEP. Для каждого ключа должны быть также определены параметры времени действия и параметры, задающие криптографический алгоритм. Как минимум, все реализации COPS должны поддерживать криптографический алгоритм HMAC-MD5-96 [HMAC][MD5] для вычисления дайджеста сообщения, который включается в объект Integrity (Keyed Message Digest), присоединяемый к сообщению.

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



4.3. Инициализация PEP



Спустя некоторое время после установления соединения между PEP и удаленным PDP, после согласования условий обеспечения безопасности (если это требуется), PEP пошлет удаленному PDP одно или более сообщение Client-Open, по одному для каждого поддерживаемого PEP типов клиента.


Сообщение Client- Open должно содержать адрес последнего PDP, с которым PEP хранит полный набор решений. Если не поступило ни одного решения от предыдущего PDP, объект LastPDPAddr не должен быть включен в сообщение Client-Open (смотри раздел 2.5). Каждое сообщение Client-Open должно, по крайней мере, содержать общий заголовок, указывающий на один тип клиента, который поддерживает PEP. Удаленный PDP откликнется сообщениями Client-Accept для каждого типа клиента, запрошенного PEP и поддерживаемого PDP.

Если какой-то конкретный тип клиента не поддерживается PDP, PDP будет реагировать с помощью Client-Close, специфицируя неподдерживаемый тип клиента, и возможно предлагая альтернативный PDP-адрес и номер порта. В противном случае, PDP пошлет Client-Accept, специфицируя временную выдержку между сообщениями keep-alive, а PEP может начать посылку запросов PDP.



4.4. Нестандартные операции



Когда PEP сталкивается с ситуацией, которая требует нового политического решения, он посылает удаленному PDP сообщение-запрос. То, что квалифицируется как случай определенного типа клиента, должно быть специфицировано в соответствующем документе, посвященном этому client-type. Удаленный PDP принимает решение и посылает сообщение-решение PEP. Так как запрос определяет состояние, запрос будет запомнен или инсталлирован на удаленном PDP. Уникальный дескриптор (уникальный для TCP-соединения и типа клиента), специфицированный в запросе и соответствующем ему решении идентифицирует состояние запроса. PEP отвечает за удаление этого состояния запроса, если запрос уже более не применим.

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





4.5. Операции конфигурирования



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

В любом случае, PEP может уведомить удаленный PDP о локальном статусе инсталлированного состояния, используя сообщение-отклик. Это сообщение, если нужно, может содержать специфическую информацию клиента.



4.6. Операции Keep-Alive



Сообщение Keep-Alive используется для проверки соединения между клиентом и сервером, чтобы проверить функциональность соединения даже в отсутствие обмена сообщениями между PEP и PDP. PEP должен формировать COPS KA-сообщение случайным образом в диапазоне от одной четвертой до 3/4 минимальной величины выдержки KA таймера, заданной PDP в сообщении Client-Accept. При получении сообщения Keep-Alive от PEP, PDP должен реагировать на это сообщение Keep-Alive посылкой отклика Keep-Alive к PEP. Если любая из сторон не получит сообщение Keep-Alive или любого другого сообщения COPS за время выдержки KA-таймера, соединение должно считаться разорванным.



4.7. Закрытие PEP/PDP



Наконец, сообщения Client-Close используются для аннулирования влияния соответствующих сообщений Client-Open, оповещающих партнера о том, что специфицированный тип клиента не поддерживается или не является активным. Когда PEP регистрирует потерю связи, связанную с таймаутом keep-alive он должен послать сообщение Client-Close для каждого открытого типа клиента, специфицирующего код ошибки разрыва соединения.Затем PEP может разорвать соединение с PDP, попытаться восстановить связь или использовать альтернативный PDP. Когда PDP завершает работу, он должен послать сообщения Client-Close всем PEP для всех типов клиента, при этом может специфицироваться альтернативный PDP, который может заменить прежний.




Подписи и хэши



3. Подписи и хэши

Входные сообщения-запросы CyberCash обычно имеют подпись всех полей. Эта подпись передается в пределах скрытой части сообщения. Она позволяет серверу аутентифицировать источник сообщения.

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

3.1. Цифровые подписи

Цифровые подписи являются средством аутентификации. В сообщениях CyberCash, они вычисляются с привлечением хэша данных, подлежащих аутентификации, после чего хэш шифруется посредством секретного ключа RSA.

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

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

Цифровая подпись RSA имеет размер практически равный длине используемого модуля. Например, если модуль содержит 768 бит, то двоичная электронная подпись будет содержать столько же бит, что равно 96 байт. В представлении base64 это займет 128 байт.

3.2. Хэш-коды

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

Хэш вычисляется с использованием алгоритма MD5 (смотри RFC-1321) для комбинированного сообщения. Комбинированное сообщение составляется из меток и значений, специфицированных в списке для конкретного хэша. Так как хэш чувствителен к порядку поступающих данных, существенно, чтобы пары метка-значение были сгруппированы в правильной последовательности.

До хэширования из текста комбинированного сообщения удаляются все пробелы (SP, TAB, LF и CR) и все коды меньше 32 и больше 127. Таким образом, все формы обозначения начала новой строки, пустые строки, завершающие пробелы и прочее, удаляются.

Хэши MD5 имеют по 16 байт. Это означает, что кодировка base64 такого хэша занимает 24 символа (последние два будут всегда заполнителями).



Преобразование, кодировка и передача информации



2 Преобразование, кодировка и передача информации

Номер раздела Название раздела Объем в страницах Объем в кбайт
2 Преобразование, кодировка и передача информации 4 3
2.1 Передача сигналов по линиям связи 8 6
2.2 Представление электрических сигналов в цифровой форме 10 7
2.3 Цифровые каналы T1 и Е1 2 1
2.4 Методы преобразования и передачи звуковых сигналов 6 5
2.5 Методы преобразования и передачи изображения 14 12
2.6 Методы сжатия информации 3 3
2.7 Обнаружение ошибок 2 2
2.8 Коррекция ошибок 6 6
2.9 Видеоконференции по каналам Интернет и ISDN 8 97
2.10 Статистическая теория каналов связи 10 145

Для передачи информации на большие расстояния в настоящее время используются исключительно электромагнитные волны (акустические волны пригодны лишь для ограниченных расстояний). При этом пересылка может осуществляться по медным проводам, оптоволоконному кабелю или непосредственно, по схеме передатчик-приемник. В последнем случае используются антенны. Для того чтобы антенна была эффективна, ее размеры должны быть сравнимы с длиной передаваемой волны. Чем шире динамический диапазон передаваемых частот, тем труднее сделать антенну, пригодную для решения этой задачи. Именно по этой причине для передачи используются частоты, начиная с многих сотен килогерц и выше (длина волн сотни метров и меньше). Передача сигнала непосредственно по лучу лазера ограничена расстояниями 100-3000м и становится неустойчивой при наличии осадков даже для инфракрасных длин волн. Между тем человек воспринимает акустические колебания в диапазоне 20-12000 Гц и для целей пересылки звука (например, телефония) требуется именно этот диапазон частот. Динамический диапазон частот в этом случае равен 600, а для высококачественного воспроизведения звука он в два раза шире. При решении этой проблемы используется преобразование частот и различные методы модуляции. Так тот же частотный диапазон, лежащий в пределах (100 - 100,012) Мгц, соответствует динамическому диапазону 0,012%, что позволяет сделать компактную антенну и упростить частотное выделение сигнала.

Для преобразования частот используется перемножение сигналов. Пусть мы имеем два синусоидальных сигнала: A1*sin(w1

t) и A2*sin( w2t). Из тригонометрии известно, что:

A1*sin( w1t)*A2*sin( w2

t)=1/2*A1*A2*[sin( w1+w2)t + sin( w1-w2)t]. [1.1]

Это означает, что в результате перемножения вместо двух частот f1=w1/2p

и f2= w2/2p мы имеем две новые частоты (w1+w2)/2p и (w1-w2)/2p

с амплитудой 1/2*A1*A2. Если входной сигнал имеет полосу 0 - fм, то после перемножения с сигналом, имеющим частоту fн (несущая частота), получим сигнал с полосой в интервале от (fн - fм) до (fн+ fм). Это преобразование проиллюстрировано на Рисунок 2.1. (по вертикальной оси отложена спектральная плотность сигнала f(jw )). На практике это преобразование выполняется с помощью смесителей или гетеродинов, частота fн называется сигналом гетеродина или несущей.



Причины циклов пакетов и осцилляции маршрутов



5.4 Причины циклов пакетов и осцилляции маршрутов

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

Начнем с локальных сетей. В разделе о мостах 4.1.1.4, там где говорилось об алгоритме “расширяющееся дерево” отмечалась недопустимость того, чтобы две ЭВМ в локальной сети могли соединяться друг с другом различными путями. Здесь подразумевается соединение через систему мостов, повторителей/концентраторов и переключателей. Такого рода соединение через маршрутизаторы допустимо, но и там следует к этому относиться с определенной осторожностью. Рассмотрим фрагмент сети, изображенный на Рисунок 5.4.1.



Пример ошибочной топологии локальной сети



Рисунок 5.4.1. Пример ошибочной топологии локальной сети


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

Зацикливание пакетов возможно также при использовании внутреннего протокола маршрутизации IGRP, где некорректный выбор параметра вариация приводит к тому, что система при распределении потоков по нескольким направлениям воспринимает путь “назад”, как вполне приемлемый.

Еще один вариант циклов пакетов возникает при использовании маршрутов по умолчанию (более детально это описано в разделе, посвященном маршрутизации 4.4.11). Так при наличии канала между сетями А и Б внешние маршрутизаторы этих сетей сконфигурированы так, что в сети А пакет адресованный не А, направляется в Б, а в сети Б все пакеты с местом назначения не Б, направляются сети А. Такая конфигурация возможна и она будет работать нормально до тех пор, пока в одной из сетей не появится пакет с ошибочным адресом, не соответствующем ни сети А, ни Б. Такой пакет будет двигаться между сетями А и Б до тех пор пока не выработает свой ресурс по TTL.

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

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

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



Пример с несколькими PDP



Рисунок .2. Пример с несколькими PDP.

Когда TCP-соединение разорвано, PDP ожидает, что необработанное состояние запроса, соответствующее обмену запрос/решение, будет удалено. Когда PEP регистрирует потерю соединения из-за таймаута, он должен послать сообщение Client-Close каждому открытому типу клиенту, содержащему объект <Error>, который указывает на код ошибки "Communication Failure". Кроме того, PEP должен постоянно пытаться контактировать с первичным PDP или, если не удается, с любым известным запасным PDP. В частности PEP должен проверить все доступные PDP, с которыми он был сконфигурирован до того, как он сможет установить соединение. Если PEP соединен с запасным PDP, а первичный PDP становится доступным, запасной PDP является ответственным за переадресацию PEP на первичный PDP (через сообщение <Client-Close>, содержащее объект <PDPRedirAddr>, идентифицирующий первичный PDP для каждого из типов клиента). В разделе 2.5 рассмотрены детали синхронизации PEP и PDP.

2.4. Использование дескриптора клиента (Client Handle)

Дескриптор клиента служит для идентификации уникального состояния запроса для каждого из типов клиента для одного PEP. Дескрипторы клиента выбираются PEP и являются недоступными для PDP. PDP просто использует дескриптор запроса, чтобы однозначно идентифицировать состояние запроса для конкретного типа клиента, для конкретного TCP-соединения, и тем самым связать его решения с соответствующим запросом. Дескрипторы клиента инициализируются в сообщениях запроса и используются в последующих сообщениях запроса, решения и отчета для ссылки на то же состояние запроса. Когда PEP готов удалить состояние локального запроса, он посылает сообщение удаления (delete) PDP для соответствующего дескриптора клиента. Дескрипторы, относящиеся к различным состояниям запроса, должны быть уникальны в рамках контекста конкретного TCP-соединения и типа клиента.

2.5. Синхронизация

При отсоединении от PDP, PEP должен перейти к принятию локальных решений.
При восстановлении соединения PEP информирует PDP обо всех событиях, которые произошли под локальным управлением. Кроме того, удаленный PDP может потребовать, чтобы внутренние состояния всех PEP были заново синхронизованы (все ранее поступившие запросы были заново посланы) путем передачи сообщения синхронизации состояний (Synchronize State).
После неудачи и до полного установления нового соединения, ухудшение сервиса может быть минимизировано, если PEP кэширует переданные ранее решения и продолжает использовать их в течение некоторого времени.
PEP, который кэширует состояние предыдущего обмена PDP, должен сообщить о факте разрыва соединения любому PDP, с которым он может восстановить соединение. Это выполняется путем включения адреса и номера TCP-порта последнего PDP, для которого PEP кэширует состояние в сообщении Client-Open. Объект <LastPDPAddr> будет включен для последнего PDP, с которым PEP был полностью синхронизован. Если прерывание обслуживания было временным и PDP все еще содержит полное состояние для PEP, PDP может выбрать вариант, когда не все состояния синхронизованы. PEP ответственен за актуализацию всех состояний PDP, которые изменились за время прерывания обслуживания. Если PEP выходит из строя и теряет все кэшированные состояния для некоторого типа клиента, он просто не включает <LastPDPAddr> в свое сообщение Client-Open.

Протокол



2. Протокол

2.1. Общий заголовок

Далее рассматриваются форматы сообщений и объекты, которыми обмениваются PEP и удаленный PDP. Каждое сообщение COPS состоит из заголовка, за которым следует некоторое число типизованных объектов.

0 1 2 3
Версия Флаги Код операции Тип клиента
Длина сообщения

//// далее обозначает зарезервированное поле и должно содержать 0.

В заголовке имеются поля:

Версия: 4 бита Номер версии COPS. Текущее значение версии 1.
Флаги: 4 бита Определенные значения флага (все другие флаги должны быть установлены в нулевое состояние): 0x1 Solicited Message Flag Bit. Этот флаг устанавливается, когда поступает запрос COPS. Этот флаг не должен устанавливаться (значение=0), если только не специфицировано обратное в разделе 3

Ниже в таблице представлены значения поля код операции.

Код
операции (8 бит)
Функция Название операции
1 Запрос REQ
2 Решение DEC
3 Отчет о состоянии RPT
4 Стереть состояние запроса DRQ
5 Синхронизовать состояние запроса> SSQ
6 Client-Open OPN
7 Client-Accept CAT
8 Client-Close CC
9 Keep-Alive KA
10 Завершить синхронизацию SSC

Поле Тип клиента: 16 бит

Тип клиента идентифицирует клиента политики. Интерпретация всех инкапсулированных объектов Типы клиента, которые устанавливают старший бит в поле тип клиента, зависят от производителя (enterprise specific; это типы клиентов 0x8000 - 0xFFFF). Для сообщений KA тип клиента в заголовке должен быть установлен равным 0, так как KA используется для проверки связи.

Длина сообщения: 32 бит

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

2.2. Форматы специфических объектов COPS

Все объекты имеют один и тот же формат; каждый объект состоит из одного или более 32-битных слов с 4-октетным заголовком. Формат показан на рисунке:

0 1 2 3
Длина (октеты) C-Num C-Type
(Содержимое объекта)

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

Обычно, C-Num идентифицирует класс информации в объекте, а C-тип идентифицирует субтип или версию информации, содержащейся в объекте.

C-num: 8 бит

1 Дескриптор (Handle)
2 Контекст
3 Входной интерфейс
4 Выходной интерфейс
5 Код причины
6 Решение
7 LPDP решение
8 Ошибка
9 Специфические данные клиента
10 Таймер Keep-Alive
11 Идентификация PEP
12 Тип отчета
13 Адрес переадресации PDP
14 Последний PDP-адрес
15 Таймер аккоунтинга
16 Целостность сообщения
C-type: 8 бит. Значения, определенные для C-num.



2.2.1. Объект дескриптор (Handle)



Объект Handle (дескриптор) содержит уникальную величину, которая идентифицирует инсталлированное состояние. Эта идентификация используется большинством операций COPS. Состояние, соответствующее дескриптору, должно быть непосредственно удалено, когда оно более не применимо.

C-Num = 1

C-Type = 1, дескриптор клиента.

Поле дескриптора имеет переменную длину, дескриптор должен отличаться от других дескрипторов клиента того же самого PEP (соединение COPS TCP)для определенного типа клиента. Он всегда выбирается PEP в исходный момент и ликвидируется, когда он более не нужен. Дескриптор клиента используется, чтобы осуществить ссылку на состояние запроса инициализированного некоторым PEP и инсталлированным для типа клиента PDP. PEP специфицирует дескриптор клиента в своих сообщениях запроса (Request), отклика (Report) и ликвидации (Delete), посланных к PDP. Во всех случаях, дескриптор клиента служит для однозначной идентификации конкретного запроса PEP для данного типа клиента.

Значение дескриптора клиента устанавливается PEP и является непрозрачным для PDP.


PDP просто выполняет побайтовое сравнение со значением этого объекта с учетом значений дескрипторов объектов других поступивших запросов.



2.2.2. Объект Context



Специфицирует тип события(ий), которое вызвало запрос. Этот объект необходим для сообщений-запросов. Запросы управления доступом, выделения ресурсов, и переадресации зависят от типов клиентов. Для допустимых типов клиента PEP может также послать запрос PDP с целью получения именованной конфигурационной информации. Эта именованная конфигурационная информация может иметь форму, полезную для установления системных атрибутов в PEP, или она может иметь форму правил политики, которые могут быть непосредственно проверены PEP.

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

C-num = 2, C-тип = 1

0 1 2 3
R-Type M-Type
R-тип (флаг типа запроса)

0x01 Запрос входящего сообщения/Управления доступом (Incoming-Message/Admission Control)
0x02 Запрос выделения ресурсов
0x04 Запрос исходящего сообщения
0x08 Запрос конфигурации
M-Type (Тип сообщения специфичные для клиента (Client Specific) 16-битовые значения типов протокольного сообщения.



2.2.3. Объект In-Interface (IN-Int)



Объект In-Interface используется для идентификации входного интерфейса, к которому относится запрос, и PEP, используется обратный адрес и ifindex.

Объект Interface используется также для идентификации принимающего интерфейса через его ifindex. Поле ifindex может быть использовано, чтобы отличать субинтерфейсы от ненумерованных интерфейсов (смотри, например RSVP LIH). Когда PEP поддерживает SNMP, целое число ifindex должно соответствовать тому же целому числу для интерфейса в индексной интерфейсной таблице MIB-II.

Поле ifindex специфицированное в In-Interface обычно имеет отношение к ниже лежащему потоку протокольных сообщений.


Поле ifindex является интерфейсом, через который получаются протокольные сообщения.

C-Num = 3

C-Type = 1, IPv4-адрес + Интерфейс

0 1 2 3
IPv4 Address format
ifindex
Для этого типа объекта интерфейса, IPv4-адрес специфицирует адрес, откуда пришло сообщение.

C-Type = 2, IPv6-адрес + Интерфейс

0 1 2 3
IPv6 Address format

ifindex
Для данного типа объекта интерфейса, IPv6-адрес специфицируетIP-адрес, откуда пришло входное сообщение. Поле ifindex используется для спецификации местного интерфейса MIB-II PEP, как это описано выше.



2.2.4. Объект Out-Interface (OUT-Int)



Объект Out-Interface используется для идентификации выходного интерфейса, которому адресован запрос, и адреса, куда должен быть переправлено сообщение. Для потоков или сообщений, направляемых локальной ЭВМ PEP, используется обратный адрес и ifindex. Out-Interface >имеет те же форматы, что и объект In-Interface. Этот интерфейсный объект используется также для идентификации выходного интерфейса через его ifindex. Поле ifindex может быть использовано для отличия субинтерфейсов от ненумерованных интерфейсов (смотри, например, RSVP LIH). Когда PEP поддерживает SNMP, целое число ifindex должно соответствовать тому же целому числу для интерфейса в индексной интерфейсной таблице MIB-II.

Поле ifindex специфицированное в Out-Interface обычно связано с потоком протокольных сообщений. Поле ifindex определяет один из адресов, куда протокольное сообщение может быть переадресовано.

C-Num = 4

C-Type = 1, IPv4-адрес + интерфейс

Некоторые форматы C-типа выступают в качестве объекта In-Interface. IPv4-адрес специфицирует адрес, куда направлено исходящее сообщение. Поле ifindex используется для спецификации местного интерфейса MIB-II для PEP.

C-Type = 2, IPv6-адрес + интерфейс

Тот же формат C-типа, что и в случае объекта In-Interface. Для этого типа объекта интерфейса, адрес IPv6 специфицирует IP-адрес, которому адресовано исходящее сообщение. Поле ifindex используется для спецификации местного интерфейса MIB-II для PEP.





2.2.5. Объект Reason



Этот объект специфицирует причину, почему состояние запроса было стерто. Объект появляется в запросах стирания (DRQ). Поле субкода причины зарезервировано для более подробного описания причины, специфической для клиента и описанной в соответствующих документах.

C-Num = 5, C-тип = 1

0 1 2 3
Reason-Code Reason Sub-code
Код причины  
1 Не специфицировано
2 Управление
3 Preempted (Другое состояние запроса получает предпочтение)
4 Tear (Используется для сообщения об удалении указанного состояния)
5 Таймаут (время локального состояния истекло)
6 Route Change (Изменение делает некорректным состояние запроса)
7 Недостаточные ресурсы (локальные ресурсы исчерпаны)
8 Директива PDP (решение PDP вызвало аннулирование)
9 Неподдерживаемое решение (решение PDP не поддерживается)
10 Synchronize Handle Unknown (дескриптор не известен)
11 Промежуточный дескриптор (stateless event)
12 Malformed Decision (восстановление не возможно)
13 Неизвестный объект COPS от PDP:

Субкод (октет 2) содержит неизвестный C-Num объекта (октет 3) содержит неизвестный C-тип объекта


2.2.6. Объект Decision



Решение, принятое PDP. Присутствует в откликах. Специфические необязательные объекты решения необходимы в решениях для определенных запросов в зависимости от типа клиента.

C-Num = 6

C-тип = 1, флаги решения (обязательные)

0 1 2 3
Код команды Флаги
Команды:

0 = Решение NULL (Конфигурационные данные недоступны)

1 = Инсталлировать (Admit request/Install configuration)

2 = Удалить (запрос/конфигурацию)

Флаги:

0x01 = Trigger Error (сообщение об ошибке срабатывания, если установлена)

Trigger Error применима для типов клиентов, которые могут посылать уведомления об ошибках для сигнальных сообщений.

Значения поля флаги не применимые для данного контекста R-типа или типа клиента должны игнорироваться PEP.

C-тип = 2, Stateless Data

Этот тип объекта решения несет в себе дополнительную информацию (stateless), которая может быть использована PEP локально.


Этот объект имеет переменную длину и его внутренний формат должен специфицироваться для данного типа клиента в соответствующем расширительном документе COPS. Этот объект для сообщений-решений является опционным и интерпретируется согласно текущему контексту.

Ожидается, что даже посторонние PEP могут принимать некоторые простые политические решения в рамках их LPDP

Так как этот набор хорошо известен и используется повсеместно, PDP обслуживает и его (обычным образом, через конфигурацию, или используя сообщение Client-Open). PDP может также включать эту информацию в свои решения, а PEP должен использовать ее в случае запросов выделения ресурсов.

C-тип = 3, Данные замещения

Этот тип объекта решения несет в себе информацию замещения, которая призвана заменить существующие данные в указанном сообщении. Этот объект имеет переменную длину и его внутренний формат должен быть специфицирован для данного типа клиента в соответствующем документе-расширении COPS. Он является опционным в сообщениях решениях и интерпретируется согласно текущему контексту.

C-тип = 4, Данные решения, специфические для клиента

Дополнительные типы решений могут быть введены с помощью информационного объекта специфического решения клиента (Client Specific Decision Data Object). Он имеет переменную длину и его внутренний формат должен быть специфицирован для данного типа клиента в соответствующем документе расширения COPS. Он является опционным в сообщениях-решениях и интерпретируется в соответствии с данным контекстом.

C-тип = 5, именованные данные решения

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



2.2.7. Объект LPDP-решение (LPDPDecision)





Решение принятое LPDP PEP ( Local Policy Decision Point) может присутствовать в запросах. Эти объекты имеют формат, идентичный формату объектов специфических решений клиента, описанному выше.

C-Num = 7

C-тип = (тот же C-Type что и для объектов решения)



2.2.8. Объект Error



Этот объект используется для идентификации конкретных протокольных ошибок COPS. Поле субкода ошибки содержит дополнительную спецификацию ошибки, характерную для данного клиента. Субкоды ошибки для конкретного типа клиента должны специфицироваться в соответствующем документе расширения.

C-Num = 8, C-тип = 1

0 1 2 3
Код ошибки Субкод ошибки
Код ошибки Причина
1 Плохой дескриптор
2 Неверный указатель ссылки (Invalid handle reference)
3 Плохой формат сообщения (Malformed Message)
4 Невозможна обработка (сервер не может обслужить запрос)
5 Отсутствует обязательная информация, специфическая для клиента
6 Неподдерживаемый тип клиента
7 Отсутствует обязательный объект COPS
8 Отказ клиента
9 Коммуникационный отказ (Communication Failure)
10 Не специфицировано
11 Закрытие сессии
12 Переадресация на предпочтительный сервер
13 Неизвестный объект COPS:

Субкод (октет 2) содержит C-Num и C-Type (октет 3) неизвестного объекта.
14 Неуспех аутентификации
15 Необходима аутентификация


2.2.9. Объект специфической информации клиента (ClientSI)



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

C-Num = 9,

C-Type = 1, Signaled ClientSI.

Поле переменной длины. Все объекты/атрибуты, специфичные для сигнального протокола клиента или внутреннего состояния, инкапсулируются в один или более информационных объектов, специфических для клиента. Формат данных, инкапсулированных в объект ClientSI, определяется типом клиента.

C-Type = 2, Именованный ClientSI.

Поле переменной длины. Содержит именованную конфигурационную информацию, полезную для передачи специфических данных о PEP, запросе, или сконфигурированном состоянии серверу PDP.





2.2.10. Объект Keep-Alive-таймер (KATimer)



Значение времени кодируются в виде 2-октетных целых чисел и измеряются в секундах. Время выдержки таймера рассматривается как приращение.

C-Num = 10,

C-Type = 1, значение таймера Keep-alive

Объект таймер используется для спецификации максимального временного интервала, в течение которого сообщение COPS должно быть послано или получено. Диапазон значений таймаутов лежит в пределах 1 - 65535 секунд. Значение нуль соответствует бесконечности.

0 1 2 3
////////////// Значение таймера KA


2.2.11. Объект идентификации PEP (PEPID)



Объект идентификации PEP используется, для того чтобы идентифицировать PEP-клиента удаленному PDP. Это необходимо для сообщений Client-Open.

C-Num = 11, C-Type = 1

Поле переменной длины. Это ASCII-строка, завершающаяся нулем, которая дополняется нулями до границы, кратной 32 бит. Идентификатор PEPID должен содержать ASCII-строку, однозначно идентифицирующую PEP в пределах политической области PEP. Например, он может быть статически приписанным IP-адресом PEP или DNS-именем. Этот идентификатор может использоваться PDP в качестве дескриптора для идентификации PEP в его политических правилах.



2.2.12. Объект тип отчета (Report-Type)



Тип отчета, соответствующий запросу состояния для данного дескриптора:

C-Num = 12, C-Type = 1

0 1 2 3
Report-Type /////////////
Report-Type:

1 = Success : Решение было успешным для PEP

2 = Failure : Решение не могло быть реализовано PEP

3 = Accounting: Актуализация аккоунтинга для инсталлированного состояния.



2.2.13. Адрес пересылки PDP (PDPRedirAddr)



PDP при закрытии PEP-сессии для конкретного типа клиента может опционно использовать этот объект для того чтобы переадресовать PEP на специфицированный адрес сервера и заданный порт TCP:

C-Num = 13,

C-Type = 1, IPv4-адрес+ TCP порт

0 1 2 3
Формат IPv4-адреса
///////////////////////// TCP Port Number
C-Type = 2, IPv6-адрес + TCP порт

0 1 2 3
Формат IPv6-адреса

 
<


/p>

2.2.14. Последний адрес PDP (LastPDPAddr)



Когда PEP имеет определенный тип клиента, он должен специфицировать последний PDP, который он успешно открыл (им получено сообщение Client-Accept) со времени, когда PEP последний раз перезагружался. Если со времени последней загрузки не использовалось никакого PDP, PEP просто не включит этот объект в сообщение Client-Open.

C-Num = 14,

C-Type = 1, IPv4-адрес (тот же формат, что и для PDPRedirAddr)

C-Type = 2, IPv6-адрес (имеет тот же формат, что и PDPRedirAddr)



2.2.15. Объект Accounting-таймер (AcctTimer)



Время кодируется в виде двухоктетых целых чисел и измеряется в секундах. Значение таймера рассматривается как временной интервал между двумя событиями.

C-Num = 15,

C-Type = 1, Значение таймера аккоунтинга

Значение опционного таймера используется для определения минимального интервала между периодическими отчетами о типах аккоунтинга. Оно используется PDP для того чтобы охарактеризовать PEP приемлемое значение интервала между не запрошенными аккоунтинг-актуализациями через сообщения-отчеты, когда это применимо. Он обеспечивает для PDP метод управления объемом аккоунтинг-трафика в сети. Диапазон конечных значений времени лежит в пределах 1 - 65535 секунд (два октета). Значение нуль означает, что не должно быть не запрошенных аккоунтинг-актуализаций.

0 1 2 3
////////////// ACCT Timer Value


2.2.16. Объект целостность сообщения (Message Integrity)



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

C-Num = 16,

C-Type = 1, HMAC дайджест

Объект HMAC-целостности для вычисления дайджеста сообщения привлекает HMAC (ключевое хэширование для аутентификации сообщения) [HMAC], при этом используется ключ, общий для PEP и PDP.



Объект Integrity специфицирует 32- битовый ID ключа, который определяет специфический ключ, используемый конкретным PEP и его PDP, а также используемый криптографический алгоритм. Для заданного PEPID ID ключа допускает существование одновременно нескольких ключей для PEP и оответствующих ключей PDP. Ключ, идентифицированный ID ключа, используется для вычисления дайджеста сообщения в объекте Integrity. Все программные реализации, как минимум должны поддерживать HMAC-MD5-96, который реализует алгоритм MD5 [MD5] вычисляющий дайджест сообщения длиной 96-бит.

Этот объект включает в себя также порядковый номер, который представляет собой 32-битовое целое число без знака, которое служит для предотвращения атак откликов. Порядковый номер инициируется на фазе обмена сообщениями Client-Open, Client-Accept и инкрементируется каждый раз при посылке очередного сообщения тому же получателю через существующее TCP-соединение. Если порядковый номер достигает значения 0xFFFFFFFF, следующим номер будет равен нулю и процесс продолжится.

Дайджест сообщения COPS вычисляется для области, начиная с заголовка, и вплоть до объекта Integrity (который должен быть последним объектом в сообщении COPS). В эту область попадают заголовок объекта Integrity, ID ключа и порядковый номер (Sequence Number). В случае HMAC-MD5-96, HMAC-MD5 выдает 128-битовый дайджест, который далее укорачивается до 96 бит.

0 1 2 3
Key ID
Sequence Number
...Keyed Message Digest...

 


2.3. Коммуникация



Протокол COPS использует одно устойчивое TCP соединение между PEP и удаленным PDP. Реализация PDP на сервере должна прослушивать стандартный номер TCP-порта (COPS=3288 [IANA]). PEP ответственен за инициативу TCP-соединения с PDP. Положение удаленного PDP может быть сконфигурировано или получено с помощью механизма локации услуг [SRVLOC].

Если один PEP может поддерживать несколько типов клиентов, он может посылать соответствующее число сообщений Client-Open, адресованных PDP, через одно или более TCP-соединений.Аналогично, PDP с заданным адресом и номером порта может поддерживать один или более типов клиента. Для заданного набора поддерживаемых типов клиентов PDP может в каждом конкретном случае независимо воспринять или отвергнуть любой тип клиента. Если тип клиента отвергнут, PDP может перенаправить PEP на альтернативный PDP-адрес и TCP-порт для данного типа клиента через COPS. Различные TCP-порты могут использоваться для перенаправления PEP на другие программные реализации PDP, работающие на том же сервере.

Один PEP может сформировать соединения с несколькими PDP. Это может происходить, когда физически различные PDP поддерживают разные типы клиентов (как это показано на Рисунок ).




Протокол COPS (Common Open Policy Service)



4.4.9.7 Протокол COPS (Common Open Policy Service)

Протокол COPS предназначен для обмена информации о политике между серверами политики (Policy Decision Point или PDP) и их клиентами (Policy Enforcement Points или PEP). Примером клиента политики является RSVP-маршрутизатор, который должен реализовывать управление доступом, базирующееся на определенной политике [RSVP]. Мы предполагаем, что существует, по крайней мере, один сервер, определяющий политику в каждом из доменов. Базовая модель взаимодействия между сервером политики и клиентом совместима с документом по управлению доступом [WRK]. Характеристики протокола COPS содержат следующие моменты (RFC-2748):

1. Протокол использует модель клиент-сервер, где PEP посылает запросы, осуществляет актуализацию данных, отправляет сообщения о ликвидации удаленным PDP, а PDP возвращает отклики-решения узлам PEP.
2. Протокол использует TCP для надежного обмена сообщениями между клиентами и сервером. Следовательно, не нужно никакого дополнительного механизма для обеспечения надежного взаимодействия между сервером и клиентами.
3. Протокол является расширяемым и может работать с любой специфической информацией клиентов без модификации самого протокола COPS. Протокол был создан для общего администрирования, конфигурации и реализации политики.
4. COPS предоставляет безопасность на уровне сообщений для целей аутентификации, защиты отклика и целостности сообщения. COPS может также использовать для цели безопасности существующие протоколы, такие как IPSEC [IPSEC] или TLS для осуществления аутентификации и безопасного канала между PEP и PDP.
5. COPS представляет собой протокол состояний. (1) Состояние запрос/решение является общим для системы клиент-сервер. (2) Состояние различных событий (пар запрос/решение) могут ассоциироваться. Под пунктом (1) подразумевается, что запросы клиента PEP инсталлируются или запоминаются удаленным PDP до тех пор, пока они не будут аннулированы PEP. В то же время, для заданного состояния запроса решения удаленного PDP могут генерироваться асинхронно. Под пунктом (2) подразумевается, что сервер может реагировать на новые запросы по-разному в зависимости от поступивших ранее запросов/решений.
6. Кроме того, COPS является протоколом состояний, так как он позволяет серверу конфигурировать клиента, а затем аннулировать это состояние, если оно более не нужно.



с кредитными картами CyberCash версия



4.6.3 Протокол для работы с кредитными картами CyberCash версия 0.8







Протокол CyberCash (RFC-1898, D. Eastlake, CyberCash Credit Card Protocol Version 0.8. February 1996) предназначен для осуществления платежей через Интернет посредством кредитных карточек.

CyberCash Inc. представляет собой компанию, базирующуюся в штате Вирджиния и основанную в августе 1994. Целью компании является посредничество в сфере платежей через Интернет. CyberCash выполняет функцию посредника, через которого осуществляются финансовые операции между покупателем, продавцом и их банками. Важно то, что до начала операции участники могут не иметь никаких отношений друг с другом.

CyberCash является третьей стороной, которая гарантирует надежную проводку платежа от одного партнера к другому.



1.1. Обзор системы



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

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

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




QAM-модуляция с битами на бод (слева) и битами на бод (справа)



Рисунок 2.2. QAM-модуляция с 3 битами на бод (слева) и 4 битами на бод (справа)



Расширенный информационный кадр CAN



Рисунок 4.1.4.2. Расширенный информационный кадр 2.0b CAN


Однобитовое субполе SRR (substitute remote request) включено в поле арбитража (идентификатора кадра) и всегда содержит код 1, что гарантирует преимущество стандартного информационного кадра (2.0a) случае его соревнования с расширенным кадром (2.0b) (при равных 11 битах идентификатора). Субполе IDE (identifier extension) служит для идентификации расширенного формата и для этого типа кадра всегда имеет уровень логической 1. Вслед за IDE следует 18-битовое поле (биты имеют имена id-17, ..., id-0; первым передается бит id-28) расширения идентификатора кадра. Контроллеры 2.0b полностью совместимы с кадрами 2.0a и могут посылать и принимать пакеты обоих типов. Идентификаторы в пределах одной сети должны быть уникальными. Следует иметь в виду, что 18-битное поле расширения идентификатора можно при определенных условиях использовать и для передачи информации. Идентификатор не является адресом места назначения, а определяет назначение передаваемых данных (адресация по содержанию). По этой причине пакет может быть принят отдельным узлом, группой узлов, всеми узлами сети или не воспринят вообще. Предельное число различных идентификаторов для версии 2.0a составляет 2032, а для 2.0b превышает 500 миллионов.

Послав кадр-запрос другому узлу, отправитель может затребовать присылку определенной информации. Удаленный узел должен откликнуться информационным кадром с тем же идентификатором, что и запрос.

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


Протокол can имеет развитую систему диагностики ошибок. В результате вероятность не выявленной ошибки составляет менее 4.7ґ 10-11. При выявлении ошибки кадр отбрасывается и его передача повторяется.

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

Любой модуль can может быть переведен в пассивный режим (“состояние сна”), при котором внутренняя активность прекращается, а драйверы отключаются от канала. Выход из этого режима возможен либо по внутренним причинам, либо вследствие сетевой активности. После “пробуждения” модуль ждет, пока стабилизируется его внутренний тактовый генератор, после чего производится синхронизация его работы с тактами канала (11 тактов). Благодаря синхронизации отдельные узлы не могут начать передачу асинхронно (со сдвигом на часть такта). Протокол предусматривает использование четырех типов кадров:

Информационный.

Удаленный запрос (требование присылки информационного кадра с тем же идентификатором, что и запрос).

Сообщение об ошибке.

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

Информационные кадры и удаленные запросы могут использовать как стандартные, так и расширенные форматы кадров (2.0a и 2.0b).



Кадр удаленного запроса может иметь стандартный и расширенный форматы. В обоих случаях он содержит 6 полей: SOF, поле арбитража, поле управления, CRC, поля ACK и EOF. Для этого типа кадров бит RTR=1, а поле данных отсутствует вне зависимости от того, какой код содержится в субполе длины.



Кадр сообщения об ошибке имеет только два поля - суперпозиция флагов ошибки и разграничитель ошибки. Флаги ошибки бывают активными и пассивными. Активный флаг состоит из шести нулевых бит, а пассивный - из шести единиц. Суперпозиция флагов может содержать от 6 до 12 бит. Разграничитель ошибки состоит из восьми единичных бит.



Кадр перегрузки включает в себя два поля - перпозиция флагов перегрузки и разграничитель перегрузки (8 бит =1).


В поле флаг ерегрузки записывается 6 бит, равных нулю (как и в поле флаг активной ошибки). Кадры ошибки или перегрузки не требуют межкадровых разделителей. Существует ряд условий перегрузки, каждое из которых вызывает посылку такого кадра:

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

Детектирование доминантного бита в начале поля int.

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

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

Поля SOF, идентификатор, управляющее поле, данные и CRC кодируются таким образом, что при появлении пяти идентичных бит подряд, в поток вставляется бит противоположного уровня. Так 0000000 преобразуется в 00000100, а 1111110 в 11111010. Это правило не распространяется на CRC-разделители, поля ACK и EOF, а также на кадры сообщения об ошибке или переполнении. Существует 5 разновидностей ошибок (таблица 3.3.4.1).


Разводка разъема интерфейса


Разводка разъема интерфейса RS-232



Номер контакта

Сторона ЭВМ (DTE) Разъем DB25M

Устройство передачи данных (DCE) Разъем DB25F



1

Экран

Экран



2

Выход передачи данных (TD)

Вход приема данных (RD)



3

Вход приема данных (RD)

Выход передачи данных (TD)



4

Запрос передачи данных (RTS)

Запрос приема данных (CTS)



5

Запрос приема данных (CTS)

Запрос передачи данных (RTS)



6

Вход готовности (DSR)

Выход готовности (DTR)



7

Земля сигнала

Земля сигнала



8

Вход CD (Carrier Detect)

Выход CD (Carrier Detect)



20

DTE готов (DTR)

DCE готов (DSR)



22

Индикатор вызова (RI)

Индикатор вызова (RI)









Интерфейс V.24/RS-232 (9-контактный)






Разводка разъемов



10.17 Разводка разъемов

RJ-11 (6 контактов)

Контакт Назначение
1 Не используется (иногда земля)
2 Прием +
3 Передача +
4 Передача -
5 Прием -
6 Не используется (иногда земля)

Телефонный разъем

Применение неэкранированных скрученных пар

Использование Ножки разъема
1-2 3-6 4-5 7-8
Аналоговая передача голоса - - TR/RX -
10BASE-T TX RX - -
100BASE-TX TX RX - -
100BASE-T4 TX RX - -
100BASE-VG BI BI BI BI
ISDN Питание TX RX Питание
Token Ring - TX RX -
ATM-пользователь TX   RX
ATM-разветвитель RX     TX

TX – передача; RX – прием; BI – двунаправленная передача/прием.



Сети управления и сбора данных в реальном масштабе времени (CAN)



4.1.4 Сети управления и сбора данных в реальном масштабе времени (CAN)

Стандарт CAN (Controller Area Network - http://www.kvaser.se/can/protocol/index.htm или http://www.omegas.co.uk/can/canworks.htm, а также www.can-cia.de) был разработан в Германии компанией Robert Bosch gmbh для автомобильной промышленности (1970 годы). Сеть CAN ориентирована на последовательные каналы связи, выполненные из скрученных пар проводов (или оптических волокон), стандарт определяет протоколы физического уровня и субуровеней MAC и LLC. Все узлы сети равноправны и подключаются к общему каналу. Уровни сигналов протоколом не нормированы. В CAN использована кодировка типа NRZ (Non Return to Xero). Для распознавания сигнатур начала (SOF) и конца (EOF) кадра используется бит-стафинг. В настоящее время в ЕС разрабатывается новый протокол для сети автомобиля, который бы позволял передачу высококачественного стерео аудио и видео сигналов, обеспечивал работу с мобильными телефонными сетями и Интернет. Предполагается, что пропускная способность протокола составит 45 Мбит/c

Высокая надежность и дешевизна сделала сети CAN привлекательными для промышленности и науки. Сеть предназначена для сбора информации и управления в реальном масштабе времени, но может быть использована и для других целей. Канал can реализует принцип множественного доступа с детектированием столкновений (CSMA/CD - Carrier Sense Multiple Access with Collision Detection, аналогично Ethernet). Сеть может содержать только один сегмент. В соответствии со стандартом ISO 11898 сеть способна работать при обрыве одного из проводов, при закоротке одного из проводов на шину питания или на землю. Скорость работы канала программируется и может достигать 1 Мбит/с. Недиструктивная схема арбитража позволяет сделать доступ к общему каналу существенно более эффективным, чем в случае Ethernet. В настоящее время действуют две версии стандарта с полями арбитража длиной в 11 бит (2.0a) и 29 бит (расширенная версия, 2.0b). Код арбитража одновременно является идентификатором кадра и задается на фазе инициализации сети. При одновременной попытке передачи кадров двумя узлами арбитраж выполняется побитно с использованием схемы проволочного “И”, при этом доминантным состоянием является логический “0”. Выигравший соревнование узел продолжает передачу, а проигравший ждет момента, когда канал освободится. Код-адрес объекта (узла CAN) задается с помощью переключателей на плате CAN при формировании сети.

Когда канал свободен, любой из подключенных узлов, может начать передачу. Кадры могут иметь переменную, но конечную длину. Формат информационного кадра сети CAN, содержащего семь полей, показан на Рисунок 4.1.4.1.



Схема взаимодействия различных частей COPS



Рисунок .1. Схема взаимодействия различных частей COPS.

На рисунке .1 показано взаимодействие различных компонентов политики (взято из [WRK]). Здесь, COPS используется для обмена описаниями политики между узлами реализации политики PEP (Policy Enforcement Point) и удаленными пунктами принятия политических решений PDP (Policy Decision Point) в пределах контекста конкретного типа клиента. Может использоваться опционный пункт принятия локального политического решения LPDP (Local Policy Decision Point) в отсутствии PDP.

Предполагается, что каждый конкретный клиент политики функционально совместим с PEP [WRK]. PEP может обмениваться информацией с сервером политики.

PEP ответственен за инициализацию постоянного TCP-соединения с PDP. Узел PEP использует это соединение для посылки запросов и получения откликов-решений от удаленного PDP. Коммуникация между PEP и удаленным PDP происходит в основном в форме обменов запрос-решение, хотя удаленный PDP может по своей инициативе послать PEP и не запрошенное решение, чтобы вызвать изменение одобренных ранее состояний запросов. PEP имеет также возможность сообщать удаленному >PDP, что решение PDP успешно исполнено локально. Узел PEP ответственен за уведомление PDP об изменении состояния запроса в PEP. Наконец, в функции PEP входит аннулирование любого состояния, которое не может быть использовано из-за событий, имевших место у клиента, или в силу решений, принятых сервером.

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


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

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

Контекст каждого запроса соответствует типу события, его вызвавшего. Объект контекста COPS идентифицирует тип запроса и сообщения, которые вызвали данное политическое событие, посредством своих полей типа сообщения и запроса. COPS идентифицирует три типа событий: (1) приход сообщения (2) выделение локальных ресурсов, и (3) переадресацию исходящего сообщения. Каждое из этих сообщений может потребовать различных решений. Содержимое сообщений COPS-запросов/решений зависит от контекста. Четвертый тип запроса полезен для типов клиентов, которые хотят получить конфигурационную информацию от PDP. Это позволяет >PEP послать конфигурационный запрос специфическому именованному устройству или модулю, который требует инсталляции конфигурационной информации. PEP может также иметь возможность принимать локальные политические решения с помощью LPDP (Local Policy Decision Point) [WRK], однако, PDP всегда остается точкой принятия решений. Это означает, что соответствующая информация о локальных решениях должна передаваться PDP. То есть, PDP должен быть предоставлен доступ к информации, чтобы принять окончательное политическое решение. Чтобы обеспечить такую возможность, PEP должен послать информацию о локальном решении удаленному PDP посредством объекта решения LPDP. PEP должен затем следовать решению PDP, так как оно является окончательным.



Наконец, допустимость ошибки ( fault tolerance) является обязательной особенностью данного протокола, в частности из-за того, что он ассоциируется с управлением услугами и безопасностью в распределенных сетях. Допустимость ошибки может быть достигнута за счет того, что PEP и удаленный PDP постоянно проверяют свое соединение путем посылки тестовых сообщений keep-alive (“еще жив?”). Когда обнаружен отказ, PEP должен попытаться восстановить контакт с удаленным PDP или соединиться с альтернативным (backup) PDP. Пока PEP не имеет связи, он должен ограничиться принятием локальных решений. Как только соединение восстановлено, PEP должен уведомить PDP о любом ликвидированном состоянии или о событиях, которые произошли с момента потери соединения. Кроме того, удаленный PDP может потребовать, чтобы все внутренние состояния PEP были заново синхронизованы (все ранее поступившие запросы должны быть продублированы). После отказа и до того как новое соединение будет восстановлено в полном объеме, ущерб в обслуживании может быть минимизирован, если PEP кэширует переданные ранее решения и продолжает их использовать в течение некоторого ограниченного времени. В разделах 2.3 и 2.5 детально рассмотрены механизмы COPS для обеспечения надежности.




Схема взаимодействия субъектов сделки



Рисунок .1. Схема взаимодействия субъектов сделки

1.2. Соображения безопасности

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

1.2.1. Аутентификация и идентификация личности

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

В то время как истинная идентичность покупателя или продавца определяется парой ключей (общедоступный/секретный), для человека эти ключи запомнить слишком сложно (более 100 шестнадцатеричных цифр). Поэтому, пользовательский интерфейс использует короткие алфавитно-цифровые идентификаторы, выбранные пользователем, для того чтобы специфицировать себя. CyberCash добавляет контрольные цифры к запрошенному ADDS ID, с тем чтобы минимизировать вероятность неверного выбора персоны. IDU персоны является общедоступной информацией. Владение ID персоны без соответствующего секретного ключа в данной системе не предоставляет каких-либо преимуществ.

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


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



1.2.2. Конфиденциальность



Сообщения шифрования работают со стандартом DES (Digital Encryption Standard), обычно используемым в настоящее время при осуществлении электронных платежей. Планируется применение супершифрования (т.e., более чем одноуровневое шифрование) особо чувствительной информации, такой как PIN-коды, и обрабатывать их так, что они никогда не появляются в виде простого текста, за исключением короткого времени перед поступлением на специальное оборудование внутри сервера перед перекодировкой с помощью нового ключа.

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



1.3. Работа с кредитной картой



При использовании системы CyberCash для транзакций с применением кредитной карточки, покупателю, решившему произвести покупку, достаточно кликнуть на клавише CyberCash "PAY" панели продавца. Продавец посылает покупателю счет, который содержит информацию о покупке, отображаемую на экране дисплея покупателя. (Смотри описание сообщения PR1). Покупатель добавляет номер своей кредитной карточки и другую информацию путем выбора соответствующих пунктов из списка кредитных карт, зарегистрированных на его CyberCash-персону.


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

При получении этого сообщения, продавец добавляет туда информацию авторизации, которая шифруется, снабжается электронной подписью продавца и пересылается серверу CyberCash. (Смотри описание сообщений CM1 & CM2). Сервер CyberCash может аутентифицировать все подписи для подтверждения того, что покупатель и продавец согласились с корректностью счета и правильностью суммы стоимости сделки. Сервер CyberCash переадресует соответствующую информацию в банк, сопровождая ее запросом на производство платежа в пользу продавца, включая его авторизацию. Банк дешифрует и обрабатывает полученную информацию, после чего осуществляет соответствующую операцию с кредитной карточкой. Отклик банка передается серверу CyberCash, который присылает продавцу электронную квитанцию (смотри описание сообщения CM6) часть которой продавец переадресует покупателю (смотри описание сообщения CH2). На этом транзакция завершается.



2. Формат заголовка общего сообщения



Версия 0.8 внешнего формата для кодирования сообщений CyberCash описана ниже. Сообщения CyberCash представляют собой стилизованные документы для передачи финансовой информации по Интернет.

В то время как существует множество схем передачи данных по Интернет (HTTP, SMTP и прочие), каждая из них привязывается к определенному механизму передачи. Так как сообщения CyberCash могут передаваться через любую из названных сред (да и через некоторые не названные), должна быть обеспечена независимость от механизма обмена.



2.1. Формат сообщения



Сообщения CyberCash состоят из следующих компонентов:

Заголовок – определяет начало сообщения CyberCash и включает информацию о версии.

Прозрачная часть – содержит данные, которые не являются конфиденциальными.

Невидимые части – содержат финансовую информацию сообщения и защищены от разглашения или искажения.


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

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

В CyberCash сообщении запрещены нулевые символы (значение нуль) или символы, характеризуемые восемью битами. "Двоичные" значения, которые могут содержать такие коды, представляются с помощью base64, описанного в документе RFC-1521.



2.2. Детали формата



Заголовок содержит одну строку, которая выглядит следующим образом

$$-CyberCash-0.8-$$

или

$$-CyberCash-1.2.3-Extra-$$

Он содержит в себе несколько полей, разделенных символом минус "-"

1. "$$" - литерная строка со значением $ в колонке 1.
2. "CyberCash" - литерная строка (регистр не существенен)
3. x.y или x.y.z – номер версии формата сообщения. x – первичный номер версии. y – номер субверсии. z, если присутствует, номер субсубверсии.
4. "Extra" – опционная дополнительная алфавитно-цифровая строка.
5. "$$" - литерная строка.
Номера версии начинаются с 0.7. ".z" опускается, если z = 0. 0.7 и 0.8 являются тестовыми и начальными версиями поставки системы для кредитных карт. 0.9 и 1.0 представляют собой улучшенные версии этой системы.

Строка "Extra" используется в безопасной среде так чтобы один компонент мог что-то сообщить другому без существенных издержек. Например, Firewall-сервер может записать здесь "HTTP" или "SMTP", прежде чем переадресовывать сообщение базовому серверу в пределах периметра Firewall.



2.3. Части тела



Части тела сообщения (как открытые, так и скрытые) состоят из пар атрибут-значение в формате, который напоминает формат стандартного заголовка почтового сообщения (RFC-822). Однако здесь имеются некоторые трудности.



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

Если метка завершается ":", тогда производится обработка согласно требованиям документа RFC-822. Когда важно наличие завершающего пробела (SP, TAB, LF), все лидирующие пробелы на последующих строках удаляются. Такие строки укорачиваются до 64 символов, не считая завершающего символа.

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

Другим способом решения проблемы может быть следующее: после обнаружения начальной последовательности $$ в стартовой строке, вы можете обрабатывать любые последующие строки в соответствии с первым символом. Если он является алфавитно-цифровым, это новая метка, которая должна завершаться символами ":" или ";", а это указывает на новую пару метка-значение. Если он является пробелом (SP, TAB, LF или CR), это указывает на продолжение предыдущей строки метки. (Как конкретно обрабатывается продолжение, зависит от завершающего символа метки). Если это "$", то строка должна быть оконечной строкой сообщения. Если это #, тогда это строка комментария и должна игнорироваться. Другие начальные символы не определены. На данный момент программные продукты CyberCash не поддерживают комментариев.



2.4. Открытая часть



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


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

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



2.5. Скрытая часть



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

Скрытая часть сообщения выделяется метками "opaque" или "merchant-opaque" в зависимости оттого, клиент или продавец зашифровал эти данные.

Для сообщений, приходящих на сервер, скрытые данные шифруются согласно алгоритму DES CBC с помощью случайного ключа транзакции, при этом ключ DES шифруется посредством алгоритма RSA с привлечением одного из общедоступных ключей сервера. Зашифрованный с помощью RSA ключ DES размещается в первой части поля, закодированного с помощью base64. Соответствующий исходящий отклик сервера может быть зашифрован с помощью DES с применением ключа транзакции. В этом случае достаточно открытых данных, чтобы идентифицировать транзакцию, а покупатель и продавец имеют ключ транзакции, полученный вместе с входным сообщением.

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





2.6. Завершающая часть



Завершающая секция служит для выделения конца сообщения. Она содержит несколько полей разделенных "-".

1. "$$" - строка литералов.
2. "CyberCash" - строка литералов (не чувствительна к регистру).
3. "End" - строка литералов (не чувствительна к регистру).
4. Контрольная сумма передачи.
5. "$$" – строка литералов.
Контрольная сумма передачи вычисляется согласно алгоритму MD5. Номер версии в начальной строке содержит исключительно печатные символы и размещается после второго $$ этой строки и до первого $$ завершающей строки. Заметим, что все пробелы (SP, TAB, LF и CR) не включаются в этот хэш. Терминаторы меток (: или ;) включаются туда, также как любые строки #-комментариев. Заметим также, что опционная символьная строка "Extra" в начальной $-строке в хэш не включается. Основной идеей является обеспечение корректности передачи, избегая зависимости от шлюзов (gateways) или любой обработки, которая может изменить завершающую строку или преобразовать символы табуляции, пробелы или символы разрыва строки.



2.7. Примеры сообщений



Простое сообщение от клиента:

$$-CyberCash-0.8-$$

id: DONALD-69

transaction: 918273645

date: 199512250102

cyberkey:CC1001

opaque:

GpOJvDpLH62z+eZlbVkhZJXtTneZH32Qj4T4IwJqv6kjAeMRZw6nR4f0OhvbTFfPm+GG

aXmoxyUlwVnFkYcOyTbSOidqrwOjnAwLEVGJ/wa4ciKKI2PsNPA4sThpV2leFp2Vmkm4

elmZdS0Qe350g6OPrkC7TKpqQKHjzczRRytWbFvE+zSi44wMF/ngzmiVsUCW01FXc8T9

EB8KjHEzVSRfZDn+lP/c1nTLTwPrQ0DYiN1lGy9nwM1ImXifijHR19LZIHlRXy8=

$$-End-CyberCash-End-jkn38fD3+/DFDF3434mn10==-$$

Сообщение от продавца:

$$-CyberCash-a.b.c-extra-$$

merchant-ccid: acme-69

merchant-date: 19951231115959

merchant-transaction: 987654321

label: value

labelx: multiple line

value...

# Комментарий

# еще одна строка комментария

label; text with a real

multi-line

format !

merchant-cyberkey: CC1001

merchant-opaque:

C1Q96lU7n9snKN5nv+1SWpDZumJPJY+QNXGAm3SPgB/dlXlTDHwYJ4HDWKZMat+VIJ8y

/iomz6/+LgX+Dn0smoAge7W+ESJ6d6Ge3kRAQKVCSpbOVLXF6E7mshlyXgQYmtwIVN2J

66fJMQpo31ErrdPVdtq6MufynN8rJyJtu8xSNolXlqIYNQy5G2I3XCc6D3UnSErPx1VJ

6cbwjLuIHHv58Nk+xxt/FyW7yAMwUb9YNcmOj//6Ru0NiOA9P/IiWczDe2mJRK1uqVpC

sDrWehG/UbFTPD26trlYRnnY

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$




Системы шифрования



6.4 Системы шифрования

Проблема сокрытия содержания послания при его транспортировке волновала людей с древних пор. Известно, что еще Цезарь (100-44 годы до нашей эры) при переписке использовал шифр, получивший его имя. В 1518 году Джоанес Тритемиус написал первую книгу по криптографии, где впервые были описаны многоалфавитные подстановочные шифры. Лишь в 1918 году во время первой мировой войны в Германии была применена шифровальная система ADFGVX. Позднее в 1933-45 годах в Германии была разработана и применена первая шифровальная машина (на этом принципе работает система crypt в UNIX). Мощное развитие криптография получила в период второй мировой войны. С этой шифровальной машиной связан и первый успех в области вскрытия сложных шифров.

Чаще всего шифруются тексты документов, но в последнее время шифрованию подвергаются и изображения, голосовые данные и даже тексты программ.

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

Знание использованного алгоритма не должно снижать надежность шифрования.

Длина зашифрованного текста должна быть равна длине исходного открытого текста (это требование относится к числу желательных и выполняется не всегда).

Зашифрованный текст не может быть прочтен без знания ключа.

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

Изменение длины ключа не должно приводить к изменению алгоритма шифрования.

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


Дешифрование путем перебора всех возможных ключей должно выходить далеко за пределы возможностей современных ЭВМ.

Если при шифровании в текст вводятся дополнительные биты, то алгоритм их внесения должен быть надежно скрыт.

Не должно быть легко устанавливаемой зависимости между последовательно используемыми ключами.

Алгоритм может быть реализован аппаратно.

В симметричных криптосистемах могут использоваться одно- или многоалфавитные подстановки (например, одно-алфавитная подстановка Цезаря), при этом производится замена символов исходного текста на другие с использованием достаточно сложных алгоритмов. Многоалфавитные подстановки несравненно более надежны. К числу простых методов шифрования относится способ перестановок символов исходного текста (этот метод эффективен только лишь при достаточно большой длине исходного текста). Множество перестановок символов для текста из N символов равно N!, что до какой-то степени гарантирует надежность процедуры. Несколько большую надежность предлагает метод гаммирования, когда на исходный текст накладывается псевдослучайная последовательность бит, генерируемая на основе ключа шифрования, например, с использованием операции исключающего ИЛИ. Обратное преобразование (дешифрование) выполняется генерацией точно такой же псевдослучайной последовательности и наложением ее на зашифрованной текст. Гаммирование уязвимо для случая, когда злоумышленнику становится известен фрагмент исходного текста. В этих обстоятельствах он без труда восстановит фрагмент псевдослучайной последовательности, а по нему и всю последовательность. Так если достаточно большое число сообщений начинается со слов "Секретно", а в конце ставится дата сообщения, расшифровка становится вопросом времени и терпения.

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


Содержимое сообщения



3. Содержимое сообщения

Объект Integrity, если он включен, должен всегда быть последним объектом сообщения. Если необходимо обеспечить безопасность, а полученное сообщение не содержит корректного объекта Integrity, получатель должен послать сообщение Client-Close для Client-Type=0, определяющее соответствующий код ошибки.

3.1. Запрос (REQ) PEP -> PDP

PEP устанавливает дескриптор состояния запроса клиента, для которого PDP может обеспечить нужное состояние. Удаленный PDP затем использует дескриптор, для ссылки на информацию и решения, переданные по TCP-каналу конкретному PEP для данного типа клиента.

Раз для нового запроса определен дескриптор, любые последующие модификации запроса могут производиться с помощью сообщения REQ, специфицирующего инсталлированный дескриптор. PEP ответственен за уведомление PDP всякий раз, когда изменения его локального состояния отслеживает состояния PEP. Формат сообщения-запроса имеет вид:

<Request Message> ::= <Common Header>

<Client Handle>

<Context>

[<IN-Int>]

[<OUT-Int>]

[<ClientSI(s)>]

[<LPDPDecision(s)>]

[<Integrity>]

<ClientSI(s)> ::= <ClientSI> | <ClientSI(s)> <ClientSI>

<LPDPDecision(s)> ::= <LPDPDecision> | <LPDPDecision(s)> <LPDPDecision>

<LPDPDecision> ::= [<Context>]

<LPDPDecision: Flags>

[<LPDPDecision: Stateless Data>]

[<LPDPDecision: Replacement Data>]

[<LPDPDecision: ClientSI Data>]

[<LPDPDecision: Named Data>]

Объект context используется для определения контекста, в рамках которого следует интерпретировать все другие объекты. Он также служит для определения вида решения, которое должен послать сервер, определяющий политику. Это решение может относиться к управлению доступом, размещению ресурсов, переадресации или замене объектов, а также в конфигурации.

Объекты interface используются, чтобы определить соответствующий интерфейс, через который было получено или предполагается послать протокольное сообщение.
Они обычно используются, если клиент запрашивает конфигурационные данные для какого-то конкретного интерфейса.

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

Наконец, объект LPDPDecision содержит информацию согласно локальному решению, принятому LPDP.

Сообщения Request с неверным форматом должны вызывать сообщения Decision PDP с соответствующим кодом ошибки.



3.2. Решение (DEC) PDP -> PEP



PDP реагирует посредством REQ с сообщением DEC, которое включает в себя ассоциированный дескриптор клиента и один или более объектов решения, сгруппированные относительно пар типов объектов Context и флагов решения (Decision Flags). Если имела место протокольная ошибка, вместо этого присылается объект ошибки.

Требуется, чтобы первое сообщение решения для нового или актуализованного запроса имело флаг требования в заголовке COPS равный 1. Это исключает отслеживание того, какому модифицированному запросу соответствует конкретное решение (т.е., запрос посылается повторно для того же самого дескриптора). Важно, чтобы для данного дескриптора существовало одно предпочтительное решение, соответствующее определенному запросу. Это по существу означает, что PEP не должен посылать более одного REQ (для данного дескриптора), прежде чем он получит соответствующий DEC с заданным набором флагов сообщения. PDP должен всегда посылать решения для запросов в порядке их получения и каждому запросу должно соответствовать решение.

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

Формат сообщения Decision представлен ниже:



<Decision Message> ::= <Common Header>

<Client Handle>

<Decision(s)> | <Error>

[<Integrity>]

<Decision(s)> ::= <Decision> | <Decision(s)> <Decision>

<Decision> ::= <Context>

<Decision: Flags>

[<Decision: Stateless Data>]

[<Decision: Replacement Data>]

[<Decision: ClientSI Data>]

Сообщение Decision может включать либо объект Error, либо один или более объекта context и соответствующего объекта decision. О проблемах протокола COPS сообщается в объекте Error. Объект Decision зависит от контекста и типа клиента.



3.3. Состояние отчета (RPT) PEP -> PDP



Сообщение RPT используется PEP, чтобы сообщить PDP об успехе или неудаче реализации решения PDP, или уведомить об изменении состояния. Report-Type специфицирует вид отчета и опционный ClientSI и может содержать дополнительную информацию для типа клиента.

Для каждого сообщения DEC, содержащего контекст конфигурации, которое получено PEP, он должен сформировать соответствующее сообщение-отчет о состоянии с флагом запрошенного сообщения (Solicited Message flag), который указывает на то успешно или нет реализовано конфигурационное решение. RPT-сообщения, запрошенные решением для данного дескриптора клиента, должны устанавливать флаг запрошенного сообщения и должны быть посланы в том же порядке, к каком получены соответствующие сообщения решения. Не должно быть более одного сообщения отчета о состоянии, соответствующему флагу-требованию, установленному для заданного решения.

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

<Report State> ::== <Common Header>

<Client Handle>

<Report-Type>

[<ClientSI>]

[<Integrity>]



3.4. Состояние аннулирования запроса DRQ (Delete Request State) PEP -> PDP





При посылке это сообщение PEP указывает, что удаленный PDP, чье состояние идентифицируется дескриптором клиента, более недоступно или неверно. Эта информация будет затем использоваться удаленным PDP для инициации соответствующих служебных операций. Объект кода причины интерпретируется с учетом типа клиента и определяет причину аннулирования. Формат сообщения Delete Request State представлен ниже:

<Delete Request> ::= <Common Header>

<Client Handle>

<Reason>

[<Integrity>]

Важно, что когда состояние запроса окончательно удаляется из PEP, сообщение DRQ для состояния запроса посылается PDP, так что соответствующее состояние может быть также удалено в PDP. Состояния запроса, не удаленные явно PEP, будут поддерживаться PDP, пока не будет закрыта сессия или пока не будет разорвано соединение.

Сообщения Decision с неверным форматом должны запустить DRQ, специфицирующее соответствующий код ошибки (Bad Message Format) и любое ассоциированное состояние PEP должно быть либо удалено, либо повторно запрошено. Если Decision содержится в неизвестном объекте COPS Decision, PEP должен аннулировать его запрос, специфицирующий код причины объекта COPS Unknown, так как PEP будет неспособен работать с информацией, содержащейся в неизвестном объекте. В любом случае, после отправки DRQ, PEP может попытаться послать соответствующий запрос повторно.



3.5. Запрос состояния синхронизации (SSQ) PDP -> PEP



Сообщение запроса состояния синхронизации имеет следующий формат:

<Synchronize State> ::= <Common Header>

[<Client Handle>]

[<Integrity>]

Это сообщение указывает, что удаленный PDP хочет, чтобы клиент повторно прислал свое состояние. Если имеется опционный дескриптор клиента, только состояние, ассоциированное с этим дескриптором, синхронизуется. Если PEP не распознает запрошенный дескриптор, он должен немедленно послать сообщение DRQ PDP для дескриптора, специфицированного в SSQ-сообщении. Если в SSQ-сообщении не специфицировано никакого дескриптора, все активные состояния клиента должны быть синхронизованы с PDP.



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



3.6. Client-Open (OPN) PEP -> PDP



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

<Client-Open> ::= <Common Header>

<PEPID>

[<ClientSI>]

[<LastPDPAddr>]

[<Integrity>]

PEPID является символическим именем с переменной длиной, которое однозначно идентифицирует клиента для PDP (смотри раздел 2.2.11).

Именованный объект ClientSI может быть включен для передачи дополнительной глобальной информации о PEP к PDP, когда необходимо (как это специфицировано в соответствующем расширении документа для заданного типа клиента).

PEP может также предоставить объект Last PDP Address в его сообщении Client-Open, специфицирующий последний PDP (для заданного типа клиента), для которого он кэширует решения с момента последней перезагрузки (reboot). PDP может использовать эту информацию, чтобы определить подходящий режим синхронизации (смотри раздел 2.5).

Если PDP получает сообщение Client-Open с неверным форматом, он должен сформировать сообщение Client-Close, специфицирующее соответствующий код ошибки.



3.7. Client-Accept (CAT) PDP -> PEP



Сообщение Client-Accept используется для позитивного отклика на сообщение Client-Open. Это сообщение пришлет PEP объект таймера, заключающий в себе максимальный временной интервал между сообщениями keep-alive. Опционно, если нужно, может быть добавлен таймер, специфицирующий минимально допустимый интервал между аккоунтинг-сообщениями-отчетами.



<Client-Accept> ::= <Common Header>

<KA Timer>

[<ACCT Timer>]

[<Integrity>]

Если PDP отказывает клиенту, он пошлет сообщение Client-Close.

Таймер KA соответствует максимальному приемлемому времени между сообщениями, посылаемыми от PDP к PEP. Время выдержки таймера определяется PDP и измеряется в секундах. Значение времени выдержки 0 означает, что не требуется верификации вторичного соединения.

Опционный таймер ACCT позволяет PDP проинформировать PEP о том, что периодические аккоунтинг-отчеты не должны превышать специфицированный временной интервал для каждого дескриптора клиента. Это позволяет PDP контролировать частоту, с которой PEP посылает аккоунтинг-отчеты. Вообще, сообщения Report типа аккоунтинг посылаются PDP, когда определен соответствующий PEP. Аккоунтинг-таймер по большей части используется PDP, чтобы поддерживать частоту актуализаций на приемлемом уровне (т.e. предотвращать перегрузку PEP под действием аккоунтинг-отчетов от PDP). Не включение этого объекта в сообщение означает, что не существует для PDP каких-либо ограничений на частоту аккоунтинг-актуализации.

Если PEP получает сообщение Client-Accept с неверным форматом, он должен сгенерировать сообщение Client-Close, где специфицирован соответствующий код ошибки.



3.8. Client-Close (CC) PEP -> PDP, PDP -> PEP



Сообщение Client-Close может быть послано как PDP, так и PEP с тем, чтобы обратить внимание противоположной стороны на то, что указанный тип клиента более не поддерживается.

<Client-Close> ::= <Common Header>

<Error>

[<PDPRedirAddr>]

[<Integrity>]

Объект Error включен, чтобы описать причину закрытия (например, запрошенный тип клиента не поддерживается удаленным PDP или отказ в работе клиента).

PDP может опционно включать PDP-объект адреса перенаправления, для того чтобы проинформировать PEP об альтернативном PDP, который он должен использовать для типа клиента, специфицированного в общем заголовке.



3.9. Keep-Alive (KA) PEP -> PDP, PDP -> PEP





Сообщение keep-alive должно передаваться PEP в пределах периода, определенного минимальным значением выдержки KA-таймера, которая определяется в сообщениях CAT для данного соединения. Сообщение KA должно генерироваться случайным образом в пределах между 1/4 и 3/4 этого минимального интервала KA-таймера. Когда PDP получает сообщение keep-alive от PEP, он должен откликнуться таким же сообщением, адресованным PEP. Это сообщение обеспечивает подтверждение для каждой из сторон того, что соединение функционирует даже в случае, когда нет никаких других сообщений.

Тип клиента в заголовке должен всегда быть установлен равным 0, так как KA используется для верификации соединения (а не для верификации сессии клиента).

<Keep-Alive> ::= <Common Header>

[<Integrity>]

Как клиент, так и сервер могут предполагать, что TCP-соединение недостаточно для типа клиента с минимальным значением времени (специфицировано в сообщении CAT), если не зарегистрировано никакой телекоммуникационной активности в течение периода времени, превосходящего выдержку таймера. При этом PEP предполагает, что удаленный PDP или соединение не работает и PEP должен пытаться использовать альтернативный/запасной PDP.



3.10. Завершение состояния синхронизации (SSC) PEP -> PDP



Сообщение завершения состояния синхронизации (Synchronize State Complete) посылается от PEP к PDP, после того как PDP пошлет запрос синхронизации состояния PEP и PEP завершит синхронизацию. Полезно, чтобы PDP знал, когда все старые состояния клиента успешно повторно запрошены и, таким образом, PEP и PDP полностью синхронизованы. Объект дескриптора клиента (Client Handle) следует включать только тогда, когда соответствующее сообщение синхронизации состояний (Synchronize State Message) непосредственно ссылается на определенный дескриптор (handle).

<Synchronize State Complete> ::= <Common Header>

[<Client Handle>]

[<Integrity>]




Соображения безопасности



5. Соображения безопасности

Протокол COPS предоставляет объект Integrity, который может обеспечить аутентификацию, целостность сообщения, и предотвратить подмену с использованием записи предыдущих сообщений. Все реализации COPS должны поддерживать работу с объектом COPS Integrity. Чтобы гарантировать, что клиент (PEP) обменивается с корректным сервером политики (PDP), необходима аутентификация PEP и PDP, с использованием общего ключа (secret), и согласованная проверка того, что соединение является корректным. Ключ используется в сочетании с содержимым сообщения COPS, чтобы вычислить дайджест сообщения, который является частью объекта Integrity. Объект Integrity затем используется для проверки всех сообщений COPS, посланных через TCP-соединение между PEP и PDP.

Объект COPS Integrity предоставляет также порядковый номер, чтобы исключить атаки откликов. PDP выбирает начальный порядковый номер для PEP, а PEP выбирает начальный порядковый номер для PDP. Эти начальные номера затем инкрементируются каждым последующим сообщением, пересланным через данное соединение в соответствующем направлении. Исходный порядковый номер должен быть выбран так, чтобы для заданного ключа в процессе монотонного приращения не получалось идентичных номеров.

Безопасность обмена между клиентом (PEP) и сервером (PDP) может быть обеспечена за счет IP Security [IPSEC]. В этом случае, заголовок аутентификации IPSEC (AH) должен использоваться для проверки правильности соединения; кроме того, безопасное поле данных IPSEC ESP (Encapsulation Security Payload) может использоваться для реализации, как безопасности, так и конфиденциальности.

TLS [Transport Layer Security] может использоваться, как для обеспечения соединения, так и для гарантии конфиденциальности.

Тип клиента идентифицирует Client-type приложения, к которому относится сообщение. Значения типа клиента в диапазоне 0x0001-0x3FFF зарезервированы для статуса необходимой спецификации (Specification Required), как это определено [IANA-CONSIDERATIONS]. Эти значения должны быть зарегистрированы IANA и их поведение и применимость должны быть описана в документе расширения COPS.

Значения типа клиента (Client-type) в диапазоне 0x4000 - 0x7FFF зарезервированы для частного использования, как это определено в [IANA-CONSIDERATIONS].

Значения типа клиента в диапазоне 0x8000 - 0xFFFF относятся к типу “первым пришел – первым обслужен”, как это определено в [IANA-CONSIDERATIONS].


6. Соображения безопасности

Система CyberCash для работы с кредитными картами версии 0.8 предоставляет достаточную защиту платежных сообщений, как это описано в разделах 1.2, 2.2.4 и 2.2.5. Система не обеспечивает достаточной защиты от нечестного продавца (здесь вне конкуренции протокол SET). Следует не выпускать из внимания ЭВМ, на которых работают различные части системы, в противном случае нельзя добиться приемлемого уровня безопасности.

Ссылки

[ISO 4217]

Codes for the representation of currencies and funds

[ISO 8583]

Financial transaction card originated messages - Interchange message specifications, 1993-12-15.

[RFC-822]

Crocker, D., "Standard for the format of ARPA Internet text messages", STD 11, RFC- 822, UDEL, August 1982.

[RFC-1521]

Borenstein, N., and N. Freed, "MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies", RFC- 1521, Bellcore, Innosoft, September 1993.

[RFC-1766]

Alvestrand, H., "Tags for the Identification of Languages", UNINETT, March 1995.



Ссылки



6. Ссылки

[RSVP]

Braden, R., Zhang, L., Berson, S., Herzog, S. and S. Jamin, "Resource ReSerVation Protocol (RSVP) Version 1 - Functional Specification", RFC-2205, September 1997.

[WRK]

Yavatkar, R., Pendarakis, D. and R. Guerin, "A Framework for Policy-Based Admission Control", RFC-2753, January 2000.

[SRVLOC]

Guttman, E., Perkins, C., Veizades, J. and M. Day, "Service Location Protocol, Version 2", RFC-2608, June 1999.

[IPSEC]

Atkinson, R., "Security Architecture for the Internet Protocol", RFC-2401, August 1995.

[HMAC]

Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC-2104, February 1997.

[MD5]

Rivest, R., "The MD5 Message-Digest Algorithm", RFC-1321, April 1992.

[RSVPPR]

Braden, R. and L. Zhang, "Resource ReSerVation Protocol (RSVP) - Version 1 Message Processing Rules", RFC-2209, September 1997.

[TLS]

Dierks T. and C. Allen, "The TLS Protocol Version 1.0", RFC-2246, January 1999.

[IANA]

http://www.isi.edu/in-notes/iana/assignments/port-numbers

[IANA-CONSIDERATIONS]

Alvestrand, H. and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC-2434, October 1998



Стандартный информационный кадр CAN



Рисунок 4.1.4.1 Стандартный информационный кадр 1 2.0a CAN


Кадр начинается с доминантного бита начала кадра (логический нуль, SOF - start of frame). Далее следует поле арбитража (идентификатор кадра), содержащее 11 бит (эти разряды носят имена id-28, ..., id-18) и завершающееся битом RTR (remote transmission request) удаленного запроса передачи. В информационном кадре RTR=0, для кадра запроса RTR=1. Семь наиболее значимых бит id-28 - id-22 не должны быть никогда все одновременно равными 1. Первым передается бит id28. Доминантные биты r0 и r1 (=0) зарезервированы для будущего использования (в некоторых спецификациях бит r1 называется IDE и относится для стандартных кадров к полю управления). Поле DLC (Data Length Code; биты поля имеют имена dcl3 - dcl0) несет в себе код длины поля данных в байтах. Поле данных, размещенное вслед за ним, может иметь переменную длину или вообще отсутствовать. CRC - циклическая контрольная сумма. В качестве образующего полинома при вычислении CRC используется x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1. Формально, следующий за контрольной суммой бит-разграничитель (=1) принадлежит полю CRC. Поле отклика (ack) содержит два бита, первый из которых первоначально имеет уровень 1, а узлы получатели меняют его значение на доминантное (логический 0). Бит используется для сообщения о корректности контрольной суммы. Второй бит поля всегда имеет уровень логической 1. Завершающее поле EOF (end of frame) содержит семь единичных бит. За этим полем следует поле-заполнитель (INT) из трех единичных бит, после него может следовать очередной кадр. Формат расширенного информационного кадра сети can показан на Рисунок 4.1.4.2.



с одним или более устройств



Таблица 3.1.1


  Стандартный кабель Широкополосный
Максимальная длина канала 2 км 10 – 15 км
Скорость передачи данных 1 – 50 Мбит/с 100 – 140 Мбит/с
Режим передачи полудуплекс дуплекс
Ослабление влияния электромагнитных и радиочастотных наводок 50 дБ 85 дБ
Число подключений < 50 устройств 1500 каналов с одним или более устройств на канал
Доступ к каналу CSMA/CD FDM/FSK

На Рисунок 3.1.2 показана зависимость ослабления кабеля (внешний диаметр 0,95 см) от частоты передаваемого сигнала.
При диагностировании сетей не всегда под руками может оказаться настоящий сетевой тестер типа WaveTek, и часто приходится довольствоваться обычным авометром. В этом случае может оказаться полезной таблица 3.1.2, где приведены удельные сопротивления используемых сетевых кабелей. Произведя измерение сопротивления сегмента, вы можете оценить его длину.


и поперечное” контрольное суммирование предаваемого



Таблица 2.8.2


Число полезных бит М Число избыточных бит (n-m)
6 7 8
32 48% 74% 89%
40 36% 68% 84%
48 23% 62% 81%

Другой блочный метод предполагает “продольное и поперечное” контрольное суммирование предаваемого блока. Блок при этом представляется в виде N строк и M столбцов. Вычисляется биты четности для всех строк и всех столбцов, в результате получается два кода, соответственно длиной N и M бит. На принимающей стороне биты четности для строк и столбцов вычисляются повторно и сравниваются с присланными. При выявлении отличия в бите i кода битов четности строк и бите j – кода столбцов, позиция неверного бита оказывается определенной (i,j). Понятно, что если выявится два и более неверных битов в контрольных кодах строк и столбцов, задача коррекции становится неразрешимой. Уязвим этот метод и для двойных ошибок, когда сбой был, а контрольные коды остались корректными.
Применение кодов свертки позволяют уменьшить вероятность ошибок при обмене, даже если число ошибок при передаче блока данных больше 1.
Линейные блочные коды
Блочный код определяется, как набор возможных кодов, который получается из последовательности бит, составляющих сообщение. Например, если мы имеем К бит, то имеется 2К возможных сообщений и такое же число кодов, которые могут быть получены из этих сообщений. Набор этих кодов представляет собой блочный код. Линейные коды получаются в результате перемножения сообщения М на порождающую матрицу G[IA]. Каждой порождающей матрице ставится в соответствие матрица проверки четности (n-k)*n. Эта матрица позволяет исправлять ошибки в полученных сообщениях путем вычисления синдрома. Матрица проверки четности находится из матрицы идентичности i и транспонированной матрицы А. G[IA] ==> H[ATI].

  I A AT [ZEBR_TAG_/table>
Если

Таблица



Таблица 6.4.1.


Исходный текст 9 5 18 1 3 19 20 3 21 11 20 6
Используемый ключ 23 5 13 14 10 17 5 1 13 9 27 11
Зашифрованный текст 32 10 31 15 13 36 25 4 34 20 47 17

Зашифрованный текст получается здесь из исходного добавлением значения очередного кода ключа (сложение может быть заменено вычитанием или операцией исключающее ИЛИ). Исходный текст в данном случае невозможно восстановить без знания ключа.
Примером шифрования с использованием секретного ключа является метод Видженера (Vigenere; www.massconfusion.com/crypto/lecture/method6.shtml), относящийся к числу много алфавитных подстановок. Здесь берется небольшое целое число m и алфавит после каждой символьной подстановки сдвигается на m символов. Например, для m=4
1. abcdefghijklmnopqrstuvwxyz

ghijklmnopqrstuvwxyzabcdef

2. opqrstuvwxyzabcdefghijklmn

3. lmnopqrstuvwxyzabcdefghijk

4. fghijklmnopqrstuvwxyzabcde
Ключ = golf (смотри левую вертикальную колонку символов).
Исходный текст разбивается на группы по m символов (в рассмотренном случае по 4). Для каждой группы первый символ заменяется соответствующей буквой первого алфавита, вторая – из второго и т.д. Например, фраза "get me out of here please" будет преобразована следующим образом:
getm eout ofhe repl ease

mser kcfy utsj xsaq kohj.
Наибольшее распространение в последнее время получило блочное шифрование, где последовательность процедур воздействует на блок входного текста. Одним из наиболее известных таких методов стал DES (Data Encryption Standard), который работает с блоками данных по 64 байта (1998 год). Существует четыре режима работы:

ECB electronic code book.
CBC cipher block chaining
CFB cipher feedback
OFB output feedback.

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

Таблица



Таблица 3.1.7.


Категория кабеля Сопротивление по постоянному току (L=300м) Ослабление [дБ] NEXT [дБ]
III 28,4 17 @ 4 МГц

30 @ 10 МГц

40 @ 16 МГц
32 @ 4 МГц

26 @ 10 МГц

23 @ 16 МГц
IV 28,4 13 @ 4 МГц

22 @ 10 МГц

27 @ 16 МГц

31 @ 20 МГц
47 @ 4 МГц

41 @ 10 МГц

38 @ 16 МГц

36 @ 20 МГц
V 28,4 13 @ 4 МГц

20 @ 10 МГц

25 @ 16 МГц

28 @ 20 МГц

67 @ 100 МГц
53 @ 4 МГц

47 @ 10 МГц

44 @ 16 МГц

42 @ 20 МГц

32 @ 100 МГц

Подводя итоги можно сказать, что при расстояниях до 100 метров с успехом могут использоваться скрученные пары и коаксиальные кабели, обеспечивая полосу пропускания до 150 Мбит/с, при больших расстояниях или более высоких частотах передачи оптоволоконный кабель предпочтительнее. Следует заметить, что работа с кабелями предполагает необходимость доступа к системе канализации (иногда это требует специальных лицензий; а там часто размещаются усилители-повторители). Кабельное хозяйство требует обслуживания. В этом отношении радиоканалы предпочтительнее, ведь случаев коррозии электромагнитных волн не зарегистрировано, да и крысы их не грызут. Справедливости ради отмечу, что здесь серьезную угрозу представляют корыстолюбивые бюрократы, ответственные за выдачу лицензий, а они пострашнее крыс.

цветов, их имен и кодов


Образец Код Название CSS Название Образец Код Название CSS Название
          #F0F8FF aliceblue блекло-голубой           #A52A2A brown коричневый
         #FAEBD7 antiquewhite античный белый          #DEB887 burlywood старого дерева
     #00FFFF aqua синий      #5F9EA0 cadetblue блеклый серо-голубой
          #7FFF00 chartreuse фисташковый           #FF7F50 coral коралловый
          #F5F5DC azure лазурь           #D2691E chocolate шоколадный
          #F5F5DC beige бежевый           #6495ED cornflowerblue васильковый
          #FFE4C4 bisque бисквитный           #000000 black черный
          #FFF8DC cornsilk темно-зеленый           #DC143C crimson малиновый
       #FFEBCD blanchedalmond светло-кремовый        #00FFFF cyan циан
       #0000FF blue голубой        #00008B darkblue темно-голубой
       #8A2BE2 blueviolet светло-фиолетовый        #008B8B darkcyan темный циан
       #B8860B darkgoldenrot темный красно-золотой     #A9A9A darkgray темно-серый
       #006400 darkgreen темно-зеленый        #BDB76B darkkhaki темный хаки
       #8B008B darkmagenta темный фуксин        #556B2F darkolivegreen темно-оливковый
       #FF8C00 darkorange темно-оранжевый     #9932CC darkorchid темно-орхидейный
    #8B0000 darkred темно-красный     #E9967A darksalmon темно-оранжево-розовый
    #8FBC8F darkseagreen темный морской волны     #483D8B darkslateblue темный сине-серый
    #2F4F4F darkslategray темный сине-серый     #00CED1 darkturqueise темно-бирюзовый
    #9400D3 darkviolet темно-фиолетовый     #FF1493 deeppink темно-розовый
    #00BFFF deepskyblue темный небесно-голубой     #696969 dimgray тускло-серый
    #1E90FF dodgerblue тускло-васильковый     #B22222 firebrick огнеупорного кирпича
    #FFFAF0 floralwhite цветочно-белый     #228B22 forestgreen лесной зеленый
    #FF00FF fuchsia фуксии     #F8F8FF ghostwhite туманно-белый
    #DCDCDC gainsboro гейнсборо     #FFD700 gold золотой
    #DAA520 goldenrod красного золота     #808080 gray серый
    #008000 green зеленый     #ADFF2F greenyellow желто-зеленый
    #F0FFF0 honeydew свежего меда     #FF69B4 hotpink ярко-розовый
    #CD5C5C indianred ярко-красный     #4B0082 indigo индиго
    #FFFFF0 ivory слоновой кости     #F0E68C khaki хаки
    #E6E6FA lavender бледно-лиловый     #FFF0F5 lavenderblush бледный розово-лиловый
    #7CFC00 lawngreen зеленой лужайки     #FFFACD lemonchiffon лимонный
    #ADD8E6 lightblue светло-голубой     #F08080 lightcoral светло-кораловый
    #E0FFFF lightcyan светло-циановый     #FAFAD2 lightgoldenrodyellow светлый золотисто-желтый
    #90EE90 lightgreen светло-зеленый     #D3D3D3 lightgrey светло-серый
    #FFB6C1 lightpink светло-розовый     #FFA07A lightsalmon светлый оранжево-розовый
    #20B2AA lightseagreen светлый морской волны     #87CEFA lightskyblue светлый небесно-голубой
    #778899 lightslategray светлый сине-серый     #B0C4DE lightsteelblue светло-стальной
    #FFFFE0 lightyellow светло-желтый     #00FF00 lime цвета извести
    #32CD32 limegreen зеленовато-известковый     #FAF0E6 linen льняной
    #FF00FF фуксин blanchedalmond     #800000 maroon оранжево-розовый
    #66CDAA mediumaquamarine умеренно-аквамариновый     #0000CD mediumblue умеренно-голубой
    #3CB371 mediumseagreen умеренный морской волны     #7B68EE mediumslateblue умеренный серо-голубой
    #BA55D3 mediumorchid умеренно-орхидейный     #9370DB mediumpurple умеренно-пурпурный
    #00FA9A mediumspringgreen умеренный сине-серый     #48D1CC mediumturquose умеренно-бирюзовый
    #0C71585 mediumvioletred умеренный красно-фиолетовый     #191970 midnightblue полуночный синий
    #0F5FFFA mintcream мятно-кремовый     #FFE4E1 mistyrose туманно-розовый
    #FFE4B5 moccasin болотный     #FFDEAD navajowhite грязно-серый
    #000080 navy морской     #FDF5E6 oldlace старого коньяка
    #808000 olive оливковый     #6B8E23 olivedrab
    #FFA500 orange оранжевый     #FF4500 orangered оранжево-красный
    #DA70D6 orchid орхидейный     #EEE8AA palegoldenrod бледно-золотисный
    #98FB98 palegreen бледно-зеленый     #AFEEEE paleturquoise бледно-бирюзовый
    #DB7093 palevioletred бледный красно-фиолетовый     #FFEFD5 papayawhip дынный
    #FFDAB9 peachpuff персиковый     #CD853F peru коричневый
    #FFC0CB pink розовый     #DDA0DD plum сливовый
    #B0E0E6 powderblue туманно-голубой     #800080 purple пурпурный
    #FF0000 red красный     #BC8F8F rosybrown розово-коричневый
    #4169E1 royalblue королевский голубой     #8B4513 saddlebrown старой кожи
    #FA8072 salmon оранжево-розовый     #F4A460 sandybrown рыже-коричневый
    #2E8B57 seagreen морской зеленый     #FFF5EE seashell морской пены
    #A0522D sienna охра     #C0C0C0 silver серебристый
        #87CEEB skyblue небесно-голубой         #6A5ACD slateblue серо-голубой
        #708090 slategray сине-серый         #FFFAFA snow снежный
        #00FF7F springgreen весенне-зеленый         #4682B4 steelblue сине-стальной
        #D2B48C tan желто-коричневый         #008080 teal чайный
        #D8BFD8 thistle чертополоха         #FF6347 tomato томатный
        #40E0D0 turquoise бирюзовый         #EE82EE violet фиолетовый
        #F5DEB3 wheat пшеничный         #FFFFFF white белый
        #F5F5F5 whitesmoke белый дымчатый         #FFFF00 yellow желтый
        #9ACD32 yellowgreen желто-зеленый         #7FFFD4 aquamarine аквамарин
<

Конфигурационные файлы



Таблица 5.5.1. Конфигурационные файлы

Название файла

Назначение

/etc/hosts

База данных имен ЭВМ и их IP-адресов (ею пользуются такие утилиты, как ping и ifconfig)

/etc/networks

База данных имен ЭВМ и их MAC-адресов (адресов сетевых карт)

/etc/ethers

Опционный файл, который содержит имена субсетей, их сетевые маски или сетевые адреса доменов

/etc/protocols

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

/etc/services

Файл, определяющий взаимодействие в системе клиент-сервер. Первое поле содержит название процесса (Echo, tcpmux, systat, netstat, chargen, TFTP, NNTP, POP-3, login, talk и т.д.), второе поле хранит номер порта и имя протокола.

/etc/syslog

Определяет типы сообщений и проход к log-файлу

/etc/inetd.conf

Содержит последовательность записей, определяющих работу протоколов Интернет: имя услуги (из файла /etc/services); тип сокета (stream, dgram, raw или rdm); протокол (из файла /etc/protocols); статус ожидания (wait-status); пользователь; проход к серверу.

/etc/routed

Используется при загрузке системы, определяет взаимодействие с другими машинами

/etc/passwd

Содержит информация для идентификации пользователей и их паролей

/etc/hosts.equiv

Содержит имена машин и пользователей, что позволяет авторизованному пользователю входить в другие машины, не вводя пароль.

/etc/bootptab

Определяет адреса и загрузочные файлы

/etc/snmp.conf

Определяет содержимое поля community и допустимые адреса

/etc/resolv.conf

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

/etc/named.boot

Определяет положение баз данных, других серверов имен и доменов, обслуживаемых named.

/usr/local/domain/named.fwd

База данных имен для обычных запросов. Проход может быть и иным, он указывается в named.boot.

/usr/local/domain/named.rev

База данных сервера имен для запросов в IN-ADDR.ARPA. Замечание о проходе в предшествующем пункте справедливо и здесь.

/usr/local/domain/named.ca

База данных сервера имен для инициализации кэша. Замечание о проходе для named.fwd справедливо и здесь. Смотри также документ RFC-1033. Содержимое файла можно прочитать с помощью процедуры nslookup.

<
Файл /etc/ passwd содержит записи аутентификационных параметров пользователей. Каждая запись содержит 7 полей. В первом поле записано имя пользователя (LOGIN ID) в представлении ASCII. Второе поле содержит зашифрованный пароль пользователя. Шифрование осуществляется с добавлением символов, что делает обратную дешифровку невозможной. Причем одно и то же слово при таком методе может быть зашифровано различным способом. Третье поле является числовым номером пользователя (UID). В четвертом поле записывается код группы пользователей, к который принадлежит данный клиент. Пятое поле содержит комментарий администратора. В шестом поле хранится имя базового каталога пользователя. В заключительном поле записывается имя командного интерпретатора, который будет использоваться по умолчанию. В новейших версиях UNIX файл /etc/passwd содержит только "x" во втором поле записи для каждого пользователя, что указывает на использование файла /etc/shadow, где в зашифрованном виде содержатся пароли пользователей. Доступ к этому файлу имеет только администратор. Информация о членах групп пользователей хранится в файле /etc/group/.
Файл /usr/lib/aliases используется для создания почтовых ящиков, которым не соответствуют какие-либо аккоунты. Здесь прописываются псевдонимы, которым система пересылает поступающие почтовые сообщения. Строка переадресации в этом файле имеет форму:

alias: имя_пользователя или

alias: имя_пользователя_1, имя_пользователя_2, ..., имя_пользователя_N.
В первом случае вся почта приходящая alias переадресуется пользователя с указанным именем. Во втором - всем пользователям, имена которых представлены в списке. Если список не умещается в одной строке, перед вводом "возврата каретки" следует напечатать символ "/". В качестве аккоунтов могут использоваться как локальные так и стандартные почтовые адреса. Для особо длинных списков можно ввести специальную строку в файл /usr/lib/aliases:

authors:":include:/usr/local/lib/authors.list", где authors - псевдоним, а authors.list - файл, содержащий список адресатов, кому следует переслать сообщение.
Наиболее мощной и по этой причине наиболее опасной возможностью файла псевдонимов является переадресация входной почты программе, указанной в псевдониме. Когда первым символом имени аккоунта в псевдониме является вертикальная черта (|), то управление будет передано программе, чье имя следует за этим символом, а входные почтовые сообщения будут передаваться этой программе, например строка:
listserv: "|/usr/local/bin/listserv -l"
обеспечит пересылку почты программе listserv, как если бы исполнялась команда cat mailfile|listserv -l. Эта техника используется для интерпретации содержимого поля subject или тела сообщения в качестве команд управления подписными листами.
Файл named.boot, который служит для инициализации сервера имен, имеет следующую структуру. Строки, начинающиеся с точки с запятой являются комментариями. Строка sortlist определяет порядок, в котором выдаются адреса сервером, если их число в отклике превышает 1. Запись directory, описывает положение информационных файлов (имя проход/каталога). Строка cashe, служит для инициализации кэша сервера имен с использованием файла named.ca. Этот также как и другие файлы должны находиться в каталоге, указанном в записи directory. Записи primary указывают, в каких файлах размещена информация таблиц соответствия имен и IP-адресов. Последняя запись primary содержит информацию для локальной ЭВМ. В записях secondary специфицируется данные, которые должны считываться с первичного сервера и из локальных файлов.
В файле named.local содержится локальный интерфейс обратной связи сервера имен. Файл включает в себя только одну запись SOA (Start of Authority) и две ресурсных записи. Запись SOA определяет начало зоны. Символ @ в начале первого поля записи задает имя зоны. Четвертое поле этой записи содержит имя первичного сервера имен данного субдомена, а следующее поле хранит имя администратора, ответственного за данный субдомен (его почтовый адрес). Запись SOA включает в себя список из 5 чисел, заключенный в скобки.
Версия или серийный номер. Первое число в списке увеличивается каждый раз при актуализации файла. Вторичные серверы имен проверяют и сравнивают номер версии файла первичного сервера с имеющимся у них кодом, для того чтобы определить, следует ли копировать базу данных DNS.
Время обновления (refresh time). Определяет время в секундах, задающее период запросов вторичного DNS к первичному.
Время повторной попытки. Задает время в секундах, когда вторичный сервер имен может повторить запрос в случае неудачи предыдущего.
Время истечения пригодности (expiration time). Верхний предел временного интервала в секундах по истечении которого база данных вторичного DNS считается устаревшей без проведения актуализации.
Минимум. Значение по умолчанию для таймера TTL для экспортируемых ресурсных записей.
Файл /etc/hosts.equiv позволяет составить список ЭВМ, объединенных в группу. Пользователь, находящийся в одной из ЭВМ этой группы, может установить связь с другой, не вводя своего пароля. Понятно, что применение этого метода входа, предоставляя некоторые удобства, создает и определенные угрозы с точки зрения сетевой безопасности.
Файл .rhosts, который размещается в корневом каталоге пользователя, позволяет ему описать список ЭВМ, куда он имеет доступ. При этом появляется возможность войти из данной ЭВМ в любую из названных машин без ввода пароля. Замечания об использовании файла hosts.equiv в полном объеме справедливы и в данном случае.
Если к ЭВМ подключены модемы, необходимо применение так называемого dialup-пароля. Удаленный пользователь помимо своего ID и пароля должен ввести еще и dialup-пароль, который является общим для всех работающих на данной ЭВМ. Если все три параметра аутентификации корректны, доступ будет разрешен. При ошибке в любом из трех компонентов ЭВМ попросит повторить их ввод, не указывая, где совершена ошибка. Файл /etc/dpasswd является исполняемым и может реализовать ряд опций.
a [список] характеризует список терминалов, который добавляется к /etc/dialups. Пользователь при входе с такого терминала должен будет ввести пароль dialup. Элементы в списке заключаются в кавычки и разделяются пробелами или запятыми.
d [список] определяет список терминалов, которые должны быть удалены из /etc/dialups и пользователю будет не нужно в будущем вводить пароль dialup при входе с этих терминалов.
r [список] меняет login shell на /bin/sh для каждого из пользователей, перечисленных в списке.
s [shell] модифицирует запись в файле /etc/d_passwd или добавляет новую запись.
u [список] создает новое ядро (shell) для имен, указанных в списке. Добавляются записи в etc/d_passwd для нового ядра, а пароль работает для всех пользователей из списка, если не оговорено обратного.
x [shell] удаляет shell и пароль из файла /etc/d_passwd



Новые европейские стандарты



Таблица 3.1.3A. Обзор категорий кабелей со скрученными парами проводов (ISO/IEC 11801 = EN 50173)

Категория

Полоса пропускания

Применения

3

до 16 МГц

Ethernet, Token Ring, телефон

4

до 20 МГц

Ethernet, Token Ring, телефон

5

до 100 МГц

Ethernet, ATM, FE,Token Ring, телефон

6

до 200/250 МГц

GigaEthernet,Ethernet, FE, ATM, Token Ring

7

до 600 МГц

GigaEthernet,Ethernet, FE, ATM, Token Ring



Новые европейские стандарты на разъемы для скрученных пар (CENELEC)



Таблица 3.1.3Б. Новые европейские стандарты на разъемы для скрученных пар (CENELEC)

Стандарт

Экран

Полоса пропускания

EN 60603-7-2

-

< 100 МГц (кат. 5)

EN 60603-7-3

+

< 100 МГц (кат. 5)

EN 60603-7-4

-

< 250 МГц (кат. 6)

EN 60603-7-5

+

< 250 МГц (кат. 6)

EN 60603-7-7

+

< 600 МГц (кат. 7)

Конкретные зависимости ослабления сигнала от частоты и длины кабеля в децибелах представлены в таблице ниже (LANline Special IV/2002 p/26).

Частота
[МГц]

Ослабление для кабеля категории 5 [дБ]

Ослабление для кабеля категории 6 [дБ]

Кабель 2 м

Кабель 5 м

Кабель 10 м

Кабель 2 м

Кабель 5 м

Кабель 10 м

1

72.9

71.6

70.1

65.0

65.0

65.0

4

61.0

59.7

58.4

65.0

65.0

65.0

16

49.1

48.0

46.9

62.0

60.5

59.0

62.5

37.6

36.8

36.0

50.4

49.2

48.1

100.0

33.7

33.0

32.5

46.4

45.3

44.4

200.0

 

 

43.0

42.1

41.4

250.0

 

 

 

38.8

38.1

37.6

Данные, приведенные в таблице 3.1.2, могут использоваться для оперативной предварительной оценки качества кабельного сегмента (соответствует стандарту EIA/TIA 568, 1991 год). Частотные характеристики неэкранированных пар категории 6 представлены в табл. 3.1.5`.



Обзор классов соединений согласно требованиям ISO/IEC (EN



Таблица 3.1.3A1. Обзор классов соединений согласно требованиям ISO/IEC 11801 (EN 50173)

Класс

Применение

A

Голос и сетевые приложения до 100 кГц

B

Информационные приложения до 1 МГц

С

Информационные приложения до 16 МГц

В

Информационные приложения до 100 МГц

E

Информационные приложения до 200/250 МГц

F

Информационные приложения до 600 МГц

LWL

Информационные приложения от 10 МГц



описанных сообщений



Таблица описанных сообщений

C = Приложение Покупателя, M = Приложение Продавца, S = Сервер CyberCash

FLOW

Раздел

Имя

C->S

4.2.1

BC.1 bind-credit-card

S->C

4.2.2

BC.4 bind-credit-card-response

C->M

4.3.2

CH.1 credit-card-payment

M->C

4.3.3

CH.2 credit-card-response

M->S

4.4.8

CD.1 запрос данных о кредитной карте

S->M

4.4.9

CD.2 отклик на запрос о кредитной карте

M->S

4.4.1

CM.1 только аутентификация

M->S

4.4.2

CM.2 auth-capture

M->S

4.4.3

CM.3 post-auth-capture

M->S

4.4.4

CM.4 void

M->S

4.4.5

CM.5 возврат

S->M

4.4.6

CM.6 отклик на платеж

C->S

4.5.7

DL.1 диагностическая запись

M->S

4.5.7

DL.2 диагностическая запись продавца

C->S

4.1.3

GA.1 получение приложения

S->C

4.1.4

GA.2 получение отклика приложения

M->S

4.4.7

MM.1 только аутентификация продавца

M->S

4.4.7

MM.2 merchant-auth-capture

M->S

4.4.7

MM.3 merchant-post-auth-capture

M->S

4.4.7

MM.4 merchant-void

M->S

4.4.7

MM.5 merchant-return

S->M

4.4.7

MM.6 отклик продавца на процедуру оплаты

C->S

4.5.1

P.1 ping

S->C

4.5.2

P.2 отклик на ping

M->C

4.3.1

PR.1 запрос платежа

C->S

4.1.1

R.1 регистрация

S->C

4.1.2

R.2 отклик на регистрацию

C->S

4.5.3

TQ.1 запрос о состоянии транзакции

C->S

4.5.4

TQ.2 аннулирование транзакции

S->C

4.5.5

TQ.3 отклик на транзакцию

S->C, S->M, M->C

4.5.6

UNK.1 неизвестная ошибка

5. Дальнейшие разработки

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

5.1. Процесс авторизации кредитной карты и расчета

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

(1)

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

(2)

приобретение (capture): платежная информация для покупки вводится продавцом в расчетный документ.

(3)

оплата (clearance): обработка перечня товаров. Это вызывает появление товаров из перечня в записи о покупке для данной кредитной карты. Эта запись посылается банку, предоставившему кредитную карту покупателю.

(4)

урегулирование (settlement): межбанковская операция по пересылке денежных средств.

(5)

удаление (void): продавец отменяет шаг 2 (или 6), сумма оплаты удаляется из расчетного документа. Операция должна быть выполнена до осуществления оплаты.

(6)

кредит (credit): продавец вводит отрицательную сумму оплаты в расчетный документ. Эта сумма появится в записи о покупке владельца кредитной карты.

Четвертый шаг (settlement) реализуется исключительно в банковской среде. CyberCash 0.8 формирует сообщения для реализации шагов 1, 1&2, 2, 5 и 6. это справедливо для систем работы с кредитными картами, где данные о сделке накапливаются в банке или в системе продавец-банк. CyberCash 0.8 поддерживает такие системы. Другие системы работы с кредитными картами требуют того, чтобы все данные о сделке хранились у продавца. Такие системы часто называются “терминальными покупками” ("terminal capture"). Это делает операции 2, 5 и 6 внутренними для продавца, но требует сообщений для выполнения операции 3. Такие сообщения о денежных расчетах будут включены в будущие версии CyberCash для приложений продавца и сервера.



изготовленные из скрученных пар категории



Таблица 3.1.5. Параметры неэкранированных пар категории 6

Частота, МГц Затухание, дБ/100м NEXT, дБ ACR, дБ/100м
1 2,3 62 60
10 6,9 47 41
100 23,0 38 23
300 46,8 31 4
Смотри www.osp.ru/lan/lan_6_96/source/57.htm

ACR - Attenuation-to-Crosstalk Ratio.

NEXT - Near End CrossTalk.

Кабели, изготовленные из скрученных пар категории 5 (волновое сопротивление 100,15 Ом), с полосой 100 Мгц обеспечивают пропускную способность при передаче сигналов ATM 155 Мбит/с. При 4 скрученных парах это позволяет осуществлять передачу до 622 Мбит/с. Кабели категории 6 сертифицируются до частот 300 Мгц, а экранированные и до 600 Мгц (волновое сопротивление 100 Ом). В таблице 3.1.6 приведены данные по затуханию и перекрестным наводкам. Приведены характеристики такого кабеля с 4-мя скрученными экранированными парами (S-FTP).




Разновидности ошибок



Таблица 4.1.4.1 Разновидности ошибок.

Тип ошибки

Описание

bit error

Передающий узел обнаружил, что состояние шины не соответствует тому, что он туда передает

stuff error

Нарушено правило кодирования (вставка бита противоположного значения после 5 идентичных бит, см. абзац выше).

CRC error

Приемник обнаружил ошибку в контрольной сумме.

form error

Обнаружено нарушение формата кадра

acknowledgment error

Выявлен неверный уровень первого бита поля ack.

Любой узел CAN должен регистрировать и по запросу сообщать число ошибок при передаче и приеме.

Номинальное время, выделенное для передачи одного бита, включает в себя четыре временные области: sync_seg, prop_seg, phase_seg1, phase_seg2 (Рисунок 3.4.4.3).



содержит зависимость m от N и K для кодов ВСН



Таблица 2.8.1 содержит зависимость m от N и K для кодов ВСН.




Сопротивление кабеля по постоянному току



Таблица 3.1.2 Сопротивление кабеля по постоянному току

Коаксиал

Ом/сегмент

Максимальная длина сегмента

10BASE5

5

500 м

10BASE2

10

185 м

Эти данные взяты из Handbook of LAN Cable Testing. Wavetek Corporation, California

.

Скрученная пара

Ом/100 м

24 AWG

18,8

22 AWG

11,8




Стандартный массив для кодов (



Таблица 2.8.3. Стандартный массив для кодов (6,3)


000000

001101

010011

100110

011110

101011

110101

111000

000001

001100

010010

100111

011111

101010

110100

111001

000010

001111

010001

100100

011100

101001

110111

111010

000100

001001

010111

100010

011010

101111

110001

111100

001000

000101

011011

101110

010110

100011

111101

110000

010000

011101

000011

110110

001110

111011

100101

101000

100000

101101

110011

000110

111110

001011

010101

011000

001001

000100

011010

101111

010111

100010

111100

011001

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

Синдром равен произведению левой колонки (CL "coset leader") стандартного массива на транспонированную матрицу контроля четности HT.

Синдром = CL . HT

Левая колонка стандартного массива

000

000000

001

000001

010

000010

100

000100

110

001000

101

010000

011

100000

111

001001

Чтобы преобразовать полученный код в правильный, нужно умножить полученный код на транспонированную матрицу проверки четности, с тем чтобы получить синдром. Полученное значение левой колонки стандартного массива добавляется (XOR!) к полученному коду, чтобы получить его истинное значение. Например, если мы получили 001100, умножаем этот код на HT:

этот результат указывает на место ошибки, истинное значение кода получается в результате операции XOR:

под горизонтальной чертой записано истинное значение кода.

Смотри также

www.cs.ucl.ac.uk/staff/S.Bhatti/D51-notes/node33.html (Saleem Bhatti).



типов кадров управления доступом для сети Token Ring



10.6 Таблица типов кадров управления доступом для сети Token Ring

Код команды

Наименование

Класс адресата

Класс отправителя

0x0 Отклик (является реакцией на команды управления доступом) Источник запроса Рабочая станция
0x2 Аварийный сигнал (используется станциями для восстановления работоспособности после устойчивой ошибки) Рабочая станция кольца Рабочая станция кольца
0x3 Запрос маркера (используется для выбора активного монитора) Рабочая станция Рабочая станция
0x4 Очистка кольца (посылается активным монитором для повторного запуска маркерного доступа) Рабочая станция Рабочая станция
0x5 Активное мониторирование (используется активным монитором для опроса кольца) Рабочая станция Рабочая станция
0x6 Резервное мониторировние (используется дополнительным монитором для опроса кольца) Рабочая станция Рабочая станция
0x7 Проверка дублирования адреса (посылается станцией самой себе после подключения к кольцу) Рабочая станция Рабочая станция
0x8 Проверка среды ответвителя (проверяется целостность адаптера станции и ответвителя) Рабочая станция Рабочая станция
0x9 Пересылка вперед (служит для проверки наличия пути между станциями) Рабочая станция Сервер конфигурации
0xB Удаление станции из кольца (если станция получает кадр с таким кодом и своим адресом получателя, она должна отключиться от сети) Рабочая станция Сервер конфигурации
0xC Изменение параметров (используется сервером конфигурации для информирования станций об изменении параметров адаптера) Рабочая станция Сервер конфигурации
0xD Инициализация станции (используется сервером параметров для пересылки данных в адаптер станции при ее инициализации) Рабочая станция Сервер параметров кольца
0xE Запрос адреса станции (посылается серверу конфигурации в ответ на запрос) Рабочая станция Сервер конфигурации
0xF Запрос состояния станции (Посылается сервером конфигурации для получения данных о состоянии станции) Рабочая станция Сервер конфигурации
0x10 Запрос подключения станции (используется станцией в ответ на запрос сервера конфигурации о подключении) Рабочая станция Сервер конфигурации
0x20 Запрос инициализации (используется для получения данных от сервера параметров) Сервер параметров кольца Рабочая станция
0x22 Запрос об адресе станции (посылается сервером конфигурации стации с целью определения ее адреса) Сервер конфигурации Рабочая станция
0x23 Запрос о состоянии станции (запрос о состоянии станции, посылаемый сервером конфигурации) Сервер конфигурации Рабочая станция
0x24 Запрос о подключении станции (используется сервером конфигурации для получения данных об адаптере станции) Сервер конфигурации Рабочая станция
0x25 Сообщение нового активного монитора (используется новым активным монитором для информирования о себе сервера конфигурации) Сервер конфигурации Рабочая станция
0x26 Сообщение об изменении адреса предшественника (используется станцией для сообщения серверу конфигурации об изменении ближайшего активного предшественника) Сервер конфигурации Рабочая станция
0x27 Сообщение о незавершенном опросе кольца (используется активным монитором для передачи монитору ошибок сообщений о нарушении порядка опроса) Монитор ошибок Рабочая станция
0x28 Сообщение об ошибке монитора (используется станцией для оповещения монитора ошибок о сбоях) Монитор ошибок Рабочая станция
0x29 Сообщение об ошибке (используется станциями для передачи серверу ошибок содержимого счетчиков нестабильных ошибок) Монитор ошибок Рабочая станция
0x2A Отклик на передачу вперед (используется станцией для передачи серверу конфигурации результата передачи вперед) Сервер конфигурации Рабочая станция
<

Зависимость пропускной способности канала от его длины



Таблица 4.1.4.2 Зависимость пропускной способности канала от его длины

Длина канала в метрах

Пропускная способность сети в Кбит/с

100

500

200

250

500

125

6000

10

В сетях CAN используются 9-, 6- и 5-контактные разъемы. Тип разъема, или какие либо его характеристики стандартом не регламентируются. Разъем определяется протоколом HLP (High Layer Protocol).



Временные зоны периода передачи одного бита



Рисунок 4.1.4.3 Временные зоны периода передачи одного бита


Первая временная область (SYNC_SEG) служит для синхронизации работы различных узлов сети. Область PROP_SEG предназначена для компенсации временных задержек в сети и равна сумме времени распространения сигнала по каналу и задержки во входных компараторах. PHASE_SEG1 и PHASE_SEG2 служат для компенсации фазовых ошибок и могут увеличиваться или уменьшаться после синхронизации. T0 - минимальный квант времени, используемый для формирования временной шкалы в пределах периода передачи одного бита (длительность внутреннего такта может быть значительно короче). Момент стробирования определяет момент времени, когда проверяется состояние канала. Этот момент должен быть синхронным для всех узлов сети. Длительность этих временных областей может задаваться программно. Чем длиннее канал, тем меньшую скорость передачи информации он может обеспечить (см. табл. 3.3.4.2).



Автор признателен читателю, который прочел



8 Заключение


Автор признателен читателю, который прочел эти тексты до конца. Надеюсь, что это было не самое скучное и бесполезное занятие. Я являюсь свидетелем и участником развития Интернет в России с самого его начала и это внушает самые оптимистические надежды. В стране, где главным жизненным увлечением заметной части населения является воровство (во всяком случае для той ее части, которая имеет возможность и определенные способности), появление дорогостоящей общенациональной сети при полном отсутствии поддержки со стороны правительства (по крайней мере на начальном этапе) можно считать чудом двадцатого века. Причины этого явления еще предстоит понять и объяснить.
Существующая система Internet неидеальна, в ней не мало недостатков больших и малых. Наиболее серьезные трудности связаны с проблемой маршрутизации, не существует механизма выравнивания загрузки каналов в рамках внешних протоколов, механизмы управления не всегда удобны и безопасны, диагностика не совершенна. Система адресации Internet архаична и уже готов новый стандарт (расширение разрядности адресов до 128), многие сервисные услуги неудобны, например, не производится предупреждения об отключении связи при пассивности пользователя, telnet не имеет возможностей непосредственного копирования удаленных файлов, поисковые системы не всегда позволяют найти то, что нужно, если эта информация имеется и т.д. и пр. Но именно это должно привлечь новых молодых людей (возможно и из России), которые усовершенствуют систему. Ничто не идеально в этом мире, ведь совершенство означает прекращение развития и, следовательно, неизбежную гибель. Internet жив, возможно его идеи поменяют жизнь людей не меньше, чем это сделало радио или телевидение. Ведь именно Интернету мы обязаны появлением электронных журналов, всемирных дискуссионных клубов по интересам, глобальных баз данных, IP-телефонии, видеоконференций и прочих удивительных вещей, именно электронная почта помогла распространять правдивую информацию в незабвенные августовские дни 1991 года. Таким образом, телекоммуникационные сети могут стать гарантом демократии, можно блокировать телевидение и прессу, но чтобы остановить электронную почту, нужно выключить телефонную сеть по всей стране.
Попробую сделать некоторые конкретные прогнозы в этой области на будущее. Меня на это подталкивает стоящая у меня дома на полке книга "Космическая эра. Прогнозы на 2001 год" (Москва, "Мир", 1970), которая является переводом книги "Space Ege in Fiscal Year 2001", 1966. В этой книге дан прогноз развития науки и технологии до 2001-го года. Прогнозы этой книги в области космоса оказались чересчур оптимистичными (обитаемые станции на Луне, полеты человека к Марсу, коммерция в космосе и т.д.). Удивительно, что во время написания этой книги люди уже разрабатывали и испытывали технологии, которые легли в основу Интернет. Привожу цитату из этой книги:
"Устройства графической и буквенно-цифровой индикации будут использоваться не только как средство взаимодействия человека с машиной, но, по-видимому, с помощью таких быстродействующих устройств можно будет также осуществлять и связь между людьми".
За более чем 34 года сделан совершенно точный прогноз относительно цифровых телекоммуникаций. Полагаю, прогресс в этой области даже превзошел то, что себе представляли авторы этой книги. Я не решаюсь сделать столь далекие предсказания (это написано в 1998 году и я не намерен изменять что-либо в будущем).
К 2002 году появятся первые гибриды ЭВМ и телевизора, а к 2005 эти приборы станут массовыми.
В 2010 году в России во многих городах будут созданы общегородские сети кабельного цифрового телевидения с доступом к Интернет из любого дома, будут заложены основы общенациональной сети. Традиционная подписка на газеты и журналы будет заменена подпиской на отдельные статьи по вашему выбору (зачем оплачивать то, что вам не интересно, печатать и перевозить никому ненужную бумагу, да и сохранение лесов неплохой аргумент для этого) с возможностью чтения на экране телевизора и распечаткой при необходимости на принтере.
К 2010 году будут созданы электронные книги - переносные устройства для чтения текстов, записанных на CD, с возможностью звукового, а со временем и полномасштабного мультимедийного воспроизведения. Будет возможен и сетевой доступ к библиотекам.
К 2020 году будет создана всемирная информационная сеть, базирующаяся на широкополосных оптоволоконных каналах (телевидение, новости в аудио и видео форматах, полный информационный сервис). Россия здесь задержится на 5-10 лет из-за нынешнего провала в сфере образования.
К 2010 телефонные магнитные карты будут снабжены индивидуальными характеристиками голоса клиента, которые будут передаваться принимающей стороне при вызове. Процессор в телефонном аппарате будет преобразовывать голос в символьную последовательность (в текст). Это позволит передавать по каналу только текст, индивидуальность голосу будет придаваться на принимающей стороне при синтезе, что сократит на порядок требования к полосе канала.
Время покажет, был ли я пессимистом или оптимистом. В том, что все это будет, я уверен, могу ошибаться только в сроках. Предпосылками для этого должны стать снижение цен на отоволоконные кабели, принтеры и терминальное оборудование, разработки дешевых специализированных интегральных схем, часть из которых уже имеется, другие разрабатываются сегодня; аппаратные устройства сжатия информации и много другое. Создание широкой информационной сети с доступом в каждый дом породит немало новых проблем. Это прежде всего обеспечение защиты частной информации, предотвращение вторжения в личную жизнь. Огромную работу здесь предстоит выполнить программистам. Это и разработка более эффективных алгоритмов сжатия данных, шифрования/дешифрования информации, новых протоколов передачи, удобных пользовательских интерфейсов, более совершенных распределенных баз данных и поисковых систем. Буду счастлив, если среди людей, кто внесет свой вклад в это общее дело, окажутся и читатели этой книги. В следующем веке сети предоставят много новых рабочих мест для граждан планеты Земля. Желаю гражданам всемирного государства Интернет новых успехов и приятных приключений.



Зависимость наводок NEXT от частоты передаваемого сигнала



Рисунок 3.1.3. Зависимость наводок NEXT от частоты передаваемого сигнала.

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



Зависимость ослабления сигнала от частоты для неэкранированной скрученной пары



Рисунок 3.1.4. Зависимость ослабления сигнала от частоты для неэкранированной скрученной пары

Для неэкранированной скрученной пары 5-ой категории зависимость отношения сигнал-шум от длины с учетом ослабления и наводок NEXT показана на Рисунок 3.1.5.



Зависимость ослабления сигнала в кабеле от его частоты



Рисунок 3.1.2. Зависимость ослабления сигнала в кабеле от его частоты



Зависимость отношения сигнал/шум от частоты с учетом ослабления и наводок на ближнем конце кабеля



Рисунок 3.1.5 Зависимость отношения сигнал/шум от частоты с учетом ослабления и наводок на ближнем конце кабеля

Характеристики неэкранированных скрученных пар американского стандарта 24 AWG (приведены характеристики кабелей, используемых при построении локальных сетей) для кабелей различной категории собраны в таблице 3.1.7.