Тем временем компонент «управление доступом к среде на приеме» подуровня УДС, обнаружив сигнал опознавания несущей, ожидает поступления подлежащих доставке битов. Компонент «управление доступом к среде на приеме» собирает биты из подуровня ПФС в течение всего времени, пока сигнал опознавания несущей остается включенным. При исчезновении этого сиг- пала кадр при необходимости усекается до границы октета и передается компоненту «раскомпоновка принятых данных» для обработки.
Компонент «раскомпоновка принятых данных» проверяет поле «Адрес получателя» кадра для того, чтобы решить, должна ли данная станция принимать этот кадр. Если да, то он передает поля ЛП, АО и блок данных УЛЗ (БД УЛЗ) подуровню УЛЗ вместе с соответствующим кодом состояния, указывающим либо прием-завершен, либо прием-слишком-длительный. Он проверяет также действительность кадров УДС, анализируя контрольную последовательность кадра с целью обнаружениялюбых искажений передаваемого кадра и проверяя соответствующую октетную структуру окончания кадра. Кадры с действительной КПК могут также проверяться на соответствие октетной структуре.
Внешние помехи доступу и восстанов- л е ни е
Если несколько станций пытаются одновременно передавать, то возможно взаимное влияние их передач друг на друга, несмотря на попытки устранить это влияние путем отсрочек передачи. Если передачи от двух станций налагаются друг на друга, то возникающее при этом соперничество называется конфликтом. Определенная станция может ощутить ситуацию конфликта в процессе начальной части своей передачи (окно конфликта), прежде чем переданный ею сигнал успеет распространиться до всех станций данной физической среды КДОН/ОК. Как только будет пройдено окно конфликта, считается, что передающая станция захватила физическую среду; последующие конфликты исключаются, поскольку можно предполагать, что все другие (правильно функционирующие) станции должны были получить нужный сигнал (путем опознавания несущей) и отсрочили свою передачу. Время для захвата физической среды основывается на времени кругового распространения сигнала по физическому уровню, к элементам которого относятся подуровень ПФС, МСС и физическая среда.
В случае конфликта физический уровень передающей станции вначале информирует о наличии вмешательства в физической среде и затем включает сигнал опознавания несущей. В свою очередь о конфликте оповещает компонент «управление доступом к среде на передаче» подуровня УДС и начинается обработка конфликта. Этот компонент прежде всего усиливает конфликт путем передачи битовой последовательности, называемой «наличие конфликта». В п. 4.4 описана реализация, использующая эту процедуру усиления конфликта. Этим обеспечивается длительность конфликта, достаточная для информирования другой (их) передающей (іих) станции (й), участвующей (их) в конфликте. После передачи сигнала «наличие конфликта» компонент «управление доступом к среде на передаче» заканчивает свою передачу и по истечении случайного интервала времени приступает к обслуживанию другой попытки передачи. В условиях повторяющихся конфликтов предпринимаются попытки повторной передачи. Однако поскольку повторение конфликтов указывает на занятость физической среды, то компонент «управление доступом к среде на передаче» пытается согласовать нагрузку на нее с помощью выдержек (сознательно задерживая собственные повторные передачи с целью снижения своей нагрузки на среду). Это осуществляется путем расширения временного интервала, из которого выбирается случайный момент времени для последующей повторной попытки передачи. Возможно, что либо передача пройдет успешно, либо попытка будет отклонена в предположении, что физическая среда неисправна или находится в состоянии перегрузки.
На приемной стороне биты, образованные в результате конфликта, принимаются и декодируются подуровнем ПФС точно так же, как и биты действительного кадра. Неполные кадры, поступившие во время конфликтов, выделяются из правильно переданных кадров компонентом «управление доступа к среде на приеме» подуровня УДС.
Взаимоотношения с подуровнем УЛЗ и физическим уровнем
Подуровень УДС КДОН/ОК предоставляет подуровню УЛЗ услуги, необходимые ему для передачи и приема кадров. Доступ к этим услугам определен в и. 4.3. Подуровень УДС КДОН/ОК предпринимает большие усилия для захвата физической среды и передачи последовательного потока битов подуровню УЛЗ. И хотя подуровень УЛЗ информируется о некоторых ошибках, исправление ошибок не выполняется на подуровне УДС. Исправление ошибок может быть выполнено на подуровне УЛЗ или на более высоких (под) уровнях.
Функциональные возможности метода доступа КДОН/ОК
Приводимый ниже обобщенный перечень функциональных возможностей подуровня УДС КДОН/ОК предназначен обеспечить оперативный справочный материал по возможностям настоящего стандарта в соответствии с черт. 4.2.
При передаче кадров осуществляется:
получение данных из подуровня УЛЗ и формирование кадра;
выдача физическому уровню побитового потока данных для его передачи по физіичеойой среде.
Примечание. Предполагается, что данные, поступившие из подуровня УЛЗ, кратны октету.
При приеме кадров осуществляется:
прием побитового потока данных из физического уровня;
Функции управления доступом к среде
КДОН/ОК
Черт. 4.2
Примечание. Цифры означают функции, перечисленные в п. 4.1.4.
выдача подуровню УЛЗ тех кадров, которые имеют либо глобальные адреса, либо адресованы непосредственно данной станции;
удаление всех кадров, не адресованных данной принимающей станции, либо их передача диспетчеру сети.
Отсрочка передачи побитового потока данных при каждой занятости физической среды.
Присоединение надлежащего значения КПК к исходящим кадрам и проверка октетной структуры данных.
Проверка поступающих кадров на наличие ошибок передачи с помощью КПК и проверка октетной структуры данных.
Задержка передачи битового потока кадров на заданный межкадровый интервал времени.
Прекращение передачи при обнаружении конфликта.
Планирование повторных передач после обнаружения конфликта до достижения заданного предельного числа повторений.
Усиление конфликта путем передачи сообщения «наличие конфликта» с целью гарантированного распространения конфликта по всей сети.
Аннулирование принятых сообщений, длина которых меньше установленного минимального значения.
Присоединение ІКО всем кадрам преамбулы, начального ограничителя кадра, полей АП, АО, длины и КПК и введение поля заполнителя в те кадры, длина которых меньше минимального установленного значения.
Удаление преамбулы, начального ограничителя кадра, полей АП, АО, длины, КПК и заполнителя (при его наличии) из принятых кадров.
Метод управления доступом к среде Л ВО КДОН/ОК. Точная спецификация
Введение
В данном разделе, определяющем процедурную модель процесса УДС КДОН/ОК, приведено точное определение алгоритма с использованием программы на машинном языке Паскаль. При появлении какой-либо неоднозначности в определении отдельных вопросов метода КДОН/ОК на подуровне УДС за точным определением следует обращаться к процедурной спецификации на языке Паскаль, излагаемой в пп. 4.2.7—4.2.10. В пп. 4.2.2—4.2.6 в описательном виде представлен механизм доступа с формализованной терминологией, которая подлежит использованию в остальных подразделах.
Краткое описание процедурной модели
Ниже описаны функции метода КДОН/ОК на подуровне УДС, представленные в виде программной модели, записанной на машинном языке Паскаль. Эта процедурная модель призвана служить основой спецификации тех функций, которые должны обеспечиваться в любой реализации метода КДОН/ОК на подуровне УДС. Важно отличать, однако, модель от фактической реализации. Модель оптимизирована с точки зрения простоты и ясности представления, тогда как в практической реализации следует уделять основное внимание таким ограничениям, как эффективность и приспособленность к конкретным методам реализации или машинной архитектуре. В этом контексте следует рассматривать различные важные свойства процедурной модели.
Основные правила построения процедурной модели
Описание подуровня УДС на машинном языке никоим образом не означает, что соответствующие процедуры должны быть реализованы в виде программы, выполняемой ЭВМ. Конкретная реализация может содержать любые подходящие методы, включая аппаратные, микропрограммные, программные или любое сочетание этих методов.
Соответствовать настоящему стандарту должно поведение любой реализации подуровня УДС, а не его внутренняя структура. Внутренние детали процедурной модели полезны только в той степени, в которой они помогают ясно и четко определить это поведение.
Обработка входящих и исходящих кадров в процедурной модели несколько упрощена в том смысле, что большая часть подуровня УДС обрабатывает кадры как простые объекты и только для представления физическому уровню кадры выстраиваются в последовательность. Практически же многие реализации будут вместо этого обрабатывать каждый кадр последовательно по блокам, по октетам или по словам. Такой подход не отражен в процедурной модели, поскольку он только усложнил бы описание функций без каких-либо других изменений.
Модель состоит из алгоритмов, которые должны выполняться многими параллельными процессами; в совокупности эти алгоритмы реализуют процедуру КДОН/ОК. Временные зависимости, вводимые потребностями параллельных действий, разрешаются двумя способами:
процессы относительно внешних событий. Предполагается, что алгоритм выполняется «очень быстро» относительно внешних событий в том смысле, что работа процесса никогда не нарушается и процесс никогда не запаздывает своевременно реагировать на внешние события. Если, например, необходимо принять кадр, то предполагается, что процедура управления доступом «пркем-кадра» всегда будет привлечена до момента начала поступлення рассматриваемого кадра;
процессы относительно процессов. Относительно скорости выполнения процессов не делается никаких предположений. Это значит, что каждое взаимодействие между двумя процессами должно строиться так, чтобы обеспечивалось правильное их функционирование независимо от соответствующих скоростей их выполнения. Заметим, однако, что временные взаимодействия между процессами часто косвенно отражают в определенной степени времена появления внешних событий, и в этих случаях могут делаться соответствующие предположения о временных параметрах.
Задача ставится так, чтобы конкуренция процессов отражала в модели параллелелизм, свойственный задаче реализации процедур подуровней УЛЗ и УДС, хотя фактическая параллельная их структура в конкретных реализациях, видимо, должна быть различной.
Использование языка Паскаль в процедурной модели
Относительно метода использования языка Паскаль в процедурной модели следует высказать несколько соображений.
Для упрощения спецификации некоторые ограничения языка Паскаль в настоящем стандарте обойдены:
элементы программы (например переменные и процедуры) представлены в логически сгруппированном нисходящем порядке.
Тем самым некоторые ограничения, налагаемые языком Паскаль на упорядочение, обойдены для облегчения восприятия матсриа- л а;
конструкции процессов и циклов производной языка Паскаль. Введен параллельный язык Паскаль для определения мест расположения автономных параллельных активностей. В настоящем разделе процесс рассматривается просто как бсспарамстри- ческая процедура, которая начинает выполнение «с начала отсчета времени», вместо того, чтобы привлекаться путем вызова процедуры. Циклический оператор образует основное тело процесса и его выполнение постоянно повторяется;
отсутствие в языке границ пространства переменных приводит к тому, что кадры рассматриваются так, как если бы они всегда имели единую фиксированную длину (которая фактически никогда не определяется). Длина кадра зависит от длины его поля данных, следовательно, «псевдопостоянное» значение параметра длина_ікадра следует рассматривать как изменяющееся в долгосрочном плане, даже если оно и фиксировано для любого данного кадра.
использование различных записей для представления кадра (в виде полей и битов) соответствует духу, но не букве «Отчета по языку Паскаль», поскольку позволяет рассматривать нижс- расположенное представление как два различных типа данных.
В модели не используется никаких явных примитивов меж- нроцессовой синхронизации. Вместо этого все межпроцессовые взаимодействия выполняются путем тщательно стилизованной манипуляции коллективно используемыми переменными. Например, некоторые переменные устанавливаются только одним процессом, а проверяются другим таким образом, что конечный результат не будет зависеть от скоростей их выполнения. И если подобные методы в общем случае не очень подходят для конструирования крупных параллельных программ, то они упрощают данную модель и больше напоминают методы, свойственные большинству схожих применяемых технологий (макрокоды, аппаратные автоматы состояний и т. п.)
О р г а н из а ц и я процедурной модели