В настоящем разделе описаны функции, выполняемые как часть рассматриваемого протокола.
Не все функции должны выполняться в каждой реализации. В п.6.19 определены те функции, которые могут быть опущены, и указаны правильные действия в тех случаях, когда запрошенные функции не предусмотрены.
6.1.Функция "Формирование ПБД"
Функция "Формирование ПБД" несет ответственность за формирование протокольного блока данных в соответствии с правилами кодирования ПБД, приведенными в разд.7. Протокольная управляющая информация, необходимая для доставки блока данных его получателю, определяется исходя из текущего состояния и локальной информации, а также на основании параметров, обеспечиваемых примитивом СУ-БЛОК-ДАННЫХ. запрос.
Адресная информация протокола сетевого уровня (АИПСУ) для полей адрес отправителя и адрес получателя заголовка ПБД образуется из параметров "УСУ-адрес-отправителя" и "УСУ-адрес-получателя". Параметры "УСУ-адрес-получателя" и "УСУ-качество-услуг", вместе с текущим состоянием и локальной информацией используются для определения необходимого выбора факультативных функций. Данные пользователя, передаваемые от пользователя УСУ (УСУ-данные-пользователя), образуют часть "данные" ПБД.
При формировании ПБД назначается идентификатор блока данных, который должен отличать запрос на передачу "УСУ-данные-пользователя" конкретному адресуемому пользователю УСУ от других подобных запросов. Отправитель ПБД должен выбрать идентификатор блока данных таким образом, чтобы он оставался уникальным (для данной пары адресов отправителя и получателя) в течение максимального времени существования исходного ПБД в данной сети; это правило применяют для любого ПБД, образованного из исходного ПБД в результате применения функции "сегментирование" (см. п.6.7). Производные ПБД рассматриваются как соответствующие тому же исходному ПБД и, следовательно, тому же примитиву СУ-БЛОК-ДАННЫХ. запрос, если эти ПБД имеют одинаковые адреса отправителя и получателя и одинаковый идентификатор блока данных.
Идентификатор блока данных используется также для выполнения служебных функций, например для информирования об ошибках (см. п.6.10).
Общая длина ПБД, выраженная в октетах, определяется его отправителем и помещается в поле общая длина заголовка ПБД. Это поле не изменяется ни в одном производном ПБД в течение всего времени существования данного ПБД.
При использовании несегментируемого подмножества протокола отсутствует как поле "общая длина", так и поле "идентификатор блока данных". Правила, определяющие функцию "формирование ПБД", модифицируются в данном случае следующим образом. В процессе формирования ПБД значение общей его длины, выраженное в октетах, определяется отправителем и помещается в поле длина сегмента заголовка ПБД. Это поле не изменяется в течение всего времени существования ПБД. Идентификация блока данных не обеспечивается.
6.2. Функция "разборка ПБД"
Эта функция несет ответственность за извлечение из ПБД протокольной управляющей информации. Во время этого процесса информация, относящаяся к генерации примитива СУ-БЛОК-ДАННЫХ. индикация определяется следующим образом. Параметры "УСУ-адрес-отправителя" и "УСУ-адрес-получателя" примитива СУ-БЛОК-ДАННЫХ. индикация извлекаются из АИПСУ и помещаются в поля адрес отправителя и адрес получателя заголовка ПБД. Часть "данные" принятого ПБД сохраняется до тех пор, пока не будут приняты все сегменты исходного СБД; все это в совокупности формирует параметр "УСУ-данные-пользователя" примитива СУ-БЛОК-ДАННЫХ. индикация. Информация, относящаяся к качеству услуг, обеспечиваемых при передаче ПБД, определяется качеством услуг и другой информацией, содержащейся в факультативной части заголовка ПБД. Эта информация образует параметр "УСУ-качество-услуг" примитива СУ-БЛОК-ДАННЫХ. индикация.
6.3. Функция "анализ формата заголовка"
Эта функция определяет, используется ли весь протокол, описанный в настоящем стандарте, или только одно из соответствующих определенных его подмножеств. Если ПБД содержит идентификатор протокола сетевого уровня, который показывает, что это стандартная версия протокола, то данная функция определяет, доставлен ли принятый ПБД своему получателю, адрес которого указан в заголовке ПБД. Если адрес получателя, содержащийся в ПБД, идентифицирует ПДУСУ, обслуживаемый данным логическим-объектом-сетевого-уровня, то этот ПБД будет доставлен своему адресату, если нет - он должен быть передан дальше.
Если ПБД содержит идентификатор протокола сетевого уровня, который показывает, что используется подмножество "инертный протокол сетевого уровня", то никакого дальнейшего анализа заголовка ПБД не требуется. В этом случае логический-объект-сетевого-уровня определяет одно из двух: либо адрес пункта подключения подсети, закодированный в виде АИПСУ в поддерживающем протоколе подсети, соответствует адресу ПДУСУ, обслуживаемого этим логическим-объектом-сетевого-уровня, либо имеет место ошибка.
6.4. Функция "управление временем существования ПБД"
Эта функция используется для обеспечения максимального времени существования ПБД. Она тесно связана с функцией "анализ формата заголовка". Эта функция определяет, может ли принятый ПБД передаваться дальше, либо заданное для него время существования кончилось и он должен быть аннулирован.
Действия функции "управление временем существования ПБД" зависят от поля время существования заголовка ПБД. Это поле содержит в любой момент времени оставшуюся часть времени существования ПБД (представленное в единицах 500 мс). Время существования исходного ПБД определяется логическим-объектом-сетевого-уровня отправителя и помещается в поле "время существования" ПБД. Если функция "сегментирование" применима к ПБД, то значение поля "время существования" исходного ПБД копируется во все производные ПБД.
Время существования ПБД уменьшается каждым логическим-объектом-сетевого-уровня, обрабатывающим ПБД. Когда логический-объект-сетевого-уровня обрабатывает ПБД, он уменьшает время существования ПБД, по меньшей мере, на единицу. Значение поля "время существования" ПБД должно уменьшаться больше чем на единицу, если сумма двух значений:
а) транзитной задержки в нижерасположенных услугах, из которых был принят ПБД;
б) задержки внутри системы, обрабатывающей ПБД, превышают или оценочно превышают 500 мс. В этом случае поле "время существования" должно уменьшаться на единицу за каждые дополнительные 500 мс задержки. Определение задержки необязательно должно быть точным, но в тех случаях, когда точное значение не может быть установлено, используемое значение следует завышать, но не занижать.
Если поле "время существования" достигнет нулевого значения до того, как ПБД будет доставлен получателю, то этот ПБД должен быть аннулирован. Функция "информирование об ошибке" должна привлекаться в соответствии с изложенным в п.6.10. Она может привести к генерации ПБД "информирование об ошибке".
Вопрос о том, выполняет логический-объект-сетевого-уровня функцию "управление временем существования" или нет, является частным вопросом.
6.5. Функция "маршрутизация ПБД"
Данная функция определяет тот логический-объект-сетевого-уровня, которому должен быть направлен ПБД, и те услуги нижерасположенного уровня, которые должны использоваться для достижения этого логического-объекта-сетевого-уровня с использованием полей этого ПБД "адрес получателя" и "общая длина". При необходимости сегментирования функция "маршрутизация ПБД", кроме того, определяет, с помощью какой услуги нижерасположенного уровня должны передаваться производные ПБД/сегменты, чтобы достичь этого логического-объекта-сетевого-уровня. Результаты выполнения функции "маршрутизация ПБД" сообщаются функции "продвижение ПБД" (вместе с самим ПБД) для дальнейшей обработки.
Выбор услуги нижерасположенного уровня, которая должна использоваться для достижения "следующей" в маршруте системы, вначале зависит от параметра "УСУ-качество-услуг" примитива СУ-БЛОК-ДАННЫХ. запрос, который определяет КУ, запрошенное передающим пользователем УСУ. Вопрос о том, обеспечивается ли это КУ непосредственно протоколом ПСУ-БУС путем выбора параметра "СУ-качество-услуг" и других факультативных параметров или с помощью средств КУ, обеспечиваемых каждой из услуг нижерасположенного уровня, определяется до привлечения функции "продвижение ПБД". Выбор маршрута промежуточными системами может впоследствии зависеть от значений параметра "СУ-качество-услуг" (при его наличии) и других факультативных параметров (при их наличии).
6.6. Функция "продвижение ПБД"
Данная функция выдает примитив ПСТ-БЛОК-ДАННЫХ. запрос (см. п.5.5), который снабжает подсеть или ФСЗП, идентифицируемую функцией "маршрутизация ПБД", протокольным блоком данных в виде подлежащих передаче данных пользователя, адресной информацией, необходимой для этой подсети или для ФСЗП с целью идентификации "следующей" системы в пределах специфичного для подсети региона адресации (это может быть промежуточная система или адресуемая оконечная-система), a также предельными значениями качества услуг (при их наличии), которые должны рассматриваться в процессе обработки данных пользователя.
Если подлежащий передаче ПБД длиннее максимального СБД, обеспечиваемого услугами нижерасположенного уровня, то используется функция "сегментирование" (см. п.6.7).
6.7. Функция "сегментирование"