Примеры
Настоящее приложение содержит примеры использования ECN. Примеры разделены на пять групп:
- общие примеры, которые показывают, как выглядят определения ECN (D.1);
- специализированные примеры, которые показывают, как изменяются некоторые части какого-либо стандартизованного кодирования. Каждый пример содержит описание требований к кодированию и описание выбранных решений и возможных альтернативных решений (D.2);
- примеры специально оперируемой структуры, которые показывают использование явно генерируемых структур, когда одно и то же специализированное кодирование используется несколько раз (D.3);
- пример традиционного протокола, показывающий три способа обращения с проблемой традиционного подхода "бит-еще" ("more-bit") к окончанию "последовательности-из" (D.4);
- второй пример традиционного протокола, показывающий, как конструировать определения ECN для протокола, в котором кодовые последовательности сообщения определены с помощью табличной нотации (D.5).
D.1 Общие примеры
Примеры, описанные в D.1.1-D.1.14, являются частью полной спецификации ECN, модули которой АСН.1, EDM и ELM даны в общих чертах в D.1.15, D.1.16 и D.1.17, а полностью даются в экземпляре этого приложения, помещенного на web-сайте, указанном в приложении F.
D.1.1 Объект кодирования булева типа
D.1.1.1 Присвоение АСН.1 равно:
Married ::= BOOLEAN
D.1.1.2 Присвоениями объекта кодирования (см. 23.3.1) являются:
booleanEncoding #BOOLEAN ::= {
ENCODING-SPACE
SIZE 1
MULTIPLE OF bit
TRUE-PATTERN bits:'1'B
FALSE-PATTERN bits:'0'B}
marriedEncoding-1 #Married ::= booleanEncoding
D.1.1.3 Предварительное выравнивание отсутствует, а пространство кодирования равно одному биту, поэтому "Married" кодируется в битовом поле длиной 1. Комбинациями для значений TRUE и FALSE (в случае одиночного бита) являются '1'В и '0'В соответственно.
D.1.1.4 Указанные выше значения являются такими значениями, которые могут устанавливаться по умолчанию (см. 23.3.1), если соответствующие признаки кодирования были пропущены, поэтому то же самое кодирование может быть достигнуто с помощью менее длинной продукции:
marriedEncoding-2 #Married ::= {
ENCODING-SPACE
SIZE 1}
D.1.1.5 Это кодирование для булева типа является, конечно, как раз тем, которое обеспечивает PER, а другая альтернатива должна определять кодирование, использующее объект кодирования PER для булева типа с помощью синтаксиса, приведенного в 17.3.1.
marriedEncoding-3 #Married ::= {