Доступ к сетям с пакетной передачей (с протоколами х.25)
Описание HDLC-протокола. Протокол канального уровня HDLC (Higher-level Data Link Control) принят международной организацией по стандартизации ISO. Различные промышленные фирмы пользуются своими производными этого протокола, среди которых наиболее известен протокол SDLC (Synchronous Data Link Control) фирмы IBM. При создании этих протоколов преследовались следующие цели:
• поле передаваемых данных должно содержать любое количество битов и любую их комбинацию, т. е. протоколы не являются байт-ориентированными;
• необходимо предусмотреть средства защиты от ошибок при передаче;
• функционирование должно быть устойчивым к сбоям и отказам; при отказах и сбоях протокол не должен допускать потерь пакетов, доставок одних и тех же пакетов два-жды или доставок искаженных пакетов;
• протокол должен работать в конфигурациях point-to-point, multipoint, кольцевых структурах;
• протокол должен допускать работу в сети полнодуплексных и полудуплексных терминалов;
• при полнодуплексном режиме полоса пропускание должна использоваться максимально, а в многоточечных конфигурациях должен быть предусмотрен режим одновременной передачи и приема информации от разных станций;
• протокол должен эффективно работать при большом времени распространения сигнала по сети и при высоких скоростях передачи;
•при работе должны обнаруживаться состояния неработоспособности или некорректной работы станций в сети.
Типы станций в сети. Для организации управления передачами в сети в несбалансированном режиме обмера одна станция в сеансе связи обозначается как первичная, другая как вторичная. Первичная станция - станция , которая организует обмен в сети, контролирует его и организует восстановление после сбоев. Вторичная станция - ведомая станция, ее действия полностью контролируются первичной станцией. От первичной станции ко вторичной идут кадры с командами, обратно кадры с ответами. При нормальной работе в качестве реакции на команду ожидается ответ. В сетях с multipoint-соединениями работа происходит в режиме опроса, и станция, которая опрашивает другие, является первичной.
Некоторые станции могут сочетать функции первичных и вторичных станций. В этом случае они называются комбинированными. Если при передаче между комбинированными станциями обе станции выполняют один и тот же набор управляющих функций, то такой способ работы называется сбалансированным.
В сбалансированных режимах каждая станция может выполнять функции первичной или вторичной станции (комбинированная станция). Комбинированная станция может посылать и принимать как команды, так и ответы. Если комбинированная станция начала обмен, то она и контролирует его ход. Станции несут равную ответственность за нейтрализацию ошибок.
Каждое сообщение начинается и заканчивается флагом 01111110. Для обеспечения прозрачности данных внутри пакета применяется процедура вставки бита. Нулевой бит вставляется после каждых пяти единичных битов в потоке данных так, чтобы комбинация, соответствующая флагу, не могла встречаться среди битов данных. Вставка и исключение
нулевых битов применяются для всех полей кадра между ограничивающими флагами и носят название «bit staffing». Если при приеме между флагами окажется меньше 32 бит, то кадр считается неправильным и принимающая станция его отбрасывает.
В промежутке между передачей кадров канал находится в активном состоянии, при котором в него непрерывно посылаются флаговые байты. Если за флаговым байтом не следует флаговый байт, то принимающая станция считает, что началась передача кадра.
Передающая станция может прервать передачу кадра передачей, по крайней мере, семи смежных единиц без вставки нулей (1111111). При этом канал, когда в нем обнаруживается 15 и более смежных единиц, переходит в пассивное состояние. В этом случае для возобновления передачи передающая станция должна повторно опросить готовность принимающей, перед тем как посылать ей данные. Передающая станция может прервать передачу кадра и без перевода канала в пассивный режим, передав восемь смежных единиц, а затем флаговый байт (1111111101111110). Это приведет к отмене приема только текущего кадра, после чего можно передавать следующий кадр.
Основные типы кадров. HDLC-пакет (или кадр) состоит из 3-байтного заголовка и 3-байтного концевика, между которыми может располагаться любое число битов данных. Кадры могут быть двух типов: информационные и управляющие. В управляющих кадрах между заголовком и концевиком может не быть ни одного бита. Байты заголовка содержат следующую информацию:
Байт 1: байт флага, открывающий кадр данных. Формат флага 01111110.
Байт 2:8 битовый адрес станции, которой посылается кадр. Для проверки работоспособности станций и канала связи выделен специальный адрес 00000000 - «не станция». Для передачи сообщения всем станциям, подключенным к сети, выделен специальный глобальный адрес 11111111. При этом любой кадр-ответ на команду с глобальным адресом должен содержать индивидуальный адрес станции, которая его передала. Поле адреса можно расширить путем присоединения дополнительного байта. Обычно поле адреса содержит 8 бит и 256 комбинаций адресов. Но существует договоренность, что если первый передаваемый бит адреса (младший значащий бит) равен нулю, то и следующий байт тоже относится к полю адреса. Аналогично, если первый передаваемый бит адреса второго байта равен нулю, то и третий байт относится к полю адреса, и так далее. Если первый передаваемый бит адреса равен единице, то дополнительных адресных байтов нет и разрешено использовать 128 адресов.
Байт 3: 8 битовое поле, содержащее информацию, управляющую процессом передачи. Существует два формата кадра: основной и расширенный. Разница заключается в разной разрядности поля управления кадром (8 бит и 16 бит) из-за изменения в размере полей порядковых номеров кадра и ответа Ns, Mr, которые составляют 3 и 7 бит соответственно. Байты концевика содержат следующую информацию:
Байты 1 и 2: 16-битный код контрольной суммы кадра для проверки ошибок. Байт 3: байт флага, закрывающий кадр данных.
В протоколе HDLC используются три типа кадров (рис. 5.111 ):
• l-кадр: информационный кадр для передачи данных пользователей;
• S-кадр: супервизорный кадр, в котором передаются команды управления процессом
передачи ( подтверждение приема, переспрос, остановка, запрос на передачу).
• U-кадр: ненумерованный кадр, который используется для дополнительных функций уп
равления сеансом передачи и смены режима передачи; ненумерованный кадр не со
держит порядкового номера.
При нормальном режиме работы сети необходимы только 1-кадры и S-кадры. Эти кадры внутри поля управления кадром содержат порядковые номера передаваемого кадра.
Управляющий байт в кадре выполняет функции управления процессом передачи информации.
Первым в канал при передаче передается 0-й бит. Биты 1 и 0 определяют тип кадра. Бит P/F имеет два значения: это бит опроса (polling), если кадр передается первичной станцией, и это бит конца, если кадр передается вторичной станцией. Бит опроса устанавливается в Р = 1 в командах, если требуется ответ. Последний кадр в кадрах ответа содержит бит конца, равный F = 1, и на него требуется подтверждение. Таким образом, функция бита P/F одна и та же в обоих случаях. Этот бит показывает, что станция ожидает ответ и не будет передавать новый кадр до его получения.
Первичная станция, послав кадр с установленным битом опроса, ожидает ответ в течение заданного времени. Не получив его, станция снова пошлет кадр, запрашивающий ответ. Повторная передача осуществляется заданное количество раз. При этом используются два тайм-аута: 1) при отсутствии ответа от вторичной станции, 2) при получении неправильного ответа. Ни длительность тайм-аутов, ни число попыток повторных передач не регламентированы в HDLC, и эти числа меняются в зависимости от конкретной реализации.
Обмен между станциями контролируется с помощью порядковых номеров. Счет в 3-битовых номерах идет по модулю 8 от 0 до 7, после чего снова идет 0. В расширенном режиме управляющее поле может быть увеличено до 16 бит, так, чтобы счетчики порядковых номеров стали 7-битовыми и счет мог идти по модулю 128. Каждый информационный кадр идентифицируется порядковым номером Ns в поле управления кадром. Прием информации подтверждается посылкой подтверждения, в котором содержится порядковый номер Mr следующего информационного кадра, который ожидает принимающая станция. При этом предполагается, что все кадры до Mr были приняты правильно. Таким образом, l-кадр содержит два номера: Ns - собственный порядковый номер и Nr - номер, которым подтверждается принятие Nr-1-го кадра.
Подтверждение может посылаться или в виде информационных 1-кадров, или в виде S-кадра, в котором также присутствует номер последнего правильно принятого кадра Nr-1.
Основные режимы работы. Протокол HDLC определяет следующие основные рабочие режимы:
• нормального ответа NRM (normal response mode);
• асинхронного ответа ARM (asynchronous response mode);
• асинхронного сбалансированного ответа ABM (asynchronous balanse response).
Режим NRM. Соединение устанавливается по команде первичной станции. Только одна станция ведет передачу в данный момент времени, остальные только слушают. Вторичная станция может начать действия только по команде от первичной. Это процедура опроса (polling) первичной станции вторичной. При опросе используется бит P/F (poll/final) из поля управления кадром. Первичная станция инициализирует обмен, посылая или кадр-опроса (S-кадр с установленным битом опроса, опрашивающий есть ли у вторичной станции данные для передачи), или информационные 1-кадры для передачи данных от первичной ко вторичной, указав в поле адреса адрес вторичной и установив в последнем кадре бит опроса Р = 1. После этого первичная станция ждет ответа. Вторичная станция, получив право на ответ, передает ответ в виде или S-кадров (если нет данных для передачи), или информационных l-кадров, установив в последнем кадре бит конца передачи F = 1. В любом случае, если вторичная станция получила от первичной станции l-кадры, она должна подтвердить их прием. Первичная станция, получив ответ от вторичной в виде l-кадров, посылает подтверждение в виде S-кадра или новых 1-кадров. Этот процесс передачи кадров продолжается, пока у первичной или у вторичной станции есть данные для передачи. В этом режиме все управление лежит на первичной станции, она должна:
• послать кадр-запрос;
• следить за тайм-аутом передачи;
• организовать повторные передачи, если нет подтверждения
Режим ARM. В этом режиме вторичная станция, не получив подтверждение от первичной, по собственной инициативе начинает передачу. Это режим используется при работе в кольце,когда разрешение приходит от другой вторичной станции(или в шине с опросом поцепочке).При этом вторичная станция может передавать данные и кадры-управления и руководить обменом. Весь контроль за передачей в этом режиме лежит на вторичной станции, т.е. она отвечает за тайм-ауты и за повторные передачи, если нет подтверждений правильности приема.
Режим АВМ. В этом режиме любая станция может начать передачу. Каждая станция в этом режиме может выполнять функции первичной или вторичной станций. Любая станция может посылать и принимать как кадры-команды, так и кадры-ответы. Этот режим введен для повышения пропускной способности сети и снижения задержек в сети.
Вспомогательные режимы работы. Вспомогательные режимы разработаны для состояний, когда вторичная станция отключена от звена связи. В этих режимах станция не может получать и передавать 1-кадры и S-кадры. Такой режим предотвращает работу станции в необычных условиях, которые могут привести к соперничеству между станциями, работающими в режимах асинхронного ARM- и асинхронного сбалансированного АВМ-от-вета, несоответствию порядковых номеров передаваемых и принимаемых данных.
Вспомогательные режимы:
• нормального разъединения NDM (Normal Disconnect Mode);
• асинхронного разъединения ADM (Asynchronous Disconnected Mode);
• запуска (инициации) 1М (Initialization Mode).
Режимы разъединения применяются при необходимости предотвратить неожиданный выход станции в сеть, когда происходит другой обмен. Вторичная станция должна переходить в режим разъединения при следующих обстоятельствах:
• временном отключении или начальном включении питания;
• ручном управлении установкой логических целей станции в исходное состояние;
• ручном переводе станции в режим подсоединения.
Режим нормального разъединения NDM. В этом режиме вторичная станция отсоединена от звена связи и не может принимать и предавать I- и S-кадры. Но ей разрешено отвечать на команду, полученную в U-кадре с битом опроса Р = 1 передачей одного кадра ответа, указывающего статус станции. Станция также должна выполнять команды:
• команду с требованием об идентификации; кадр ответа содержит признаки идентифи-
кации станции;
• команду установления режима работы; если станция может включить новый режим ра-
боты, то она передает ответ подтверждение в виде U-кадра и изменяет режим работы;
• команду начала теста; если станция может провести тест, то она передает ответ в виде
U-кадра, содержащего ответ-тест.
Асинхронный режим разъединения ADM. Режим ADM аналогичен режиму NDM с той разницей, что вторичная станция может послать ответ по собственной инициативе, без опроса со стороны первичной станции. В этом режиме станция посылает ответ в асинхронном режиме при полудуплексном обмене, когда обнаружит нерабочее состояние канала связи, а при полнодуплексном обмене - в любое удобное для станции время.
Режим запуска (инициации) IM. Режим используется для передачи программы управления на удаленную вторичную станцию, ее коррекции в случае необходимости, а также для обмена параметрами между удаленными станциями. Станция может находиться в этом режиме, перед тем как перейти в рабочий режим. Переключение в рабочий режим выполняется по специальным командам в виде U-кадров. Вторичная станция может сама запросить переход в этот режим, если обнаружит ошибки своего функционирования, для получения корректной программы управления от первичной станции. Если команда на переход в режим инициации поступила от первичной станции , то вторичная станция переходит в этот режим только после передачи ответа-подтверждения. При нахождении станций в этом режиме обмен служебной информацией ведется ненумерованными информационными кадрами (U-кадры). Режим инициации заканчивается, когда вторичная станция принимает одну из команд установления другого режима работы и подтверждает переход в этот режим ответом-подтверждением.
Расширенные рабочие режимы. Расширенные режимы используют два управляющих байта в заголовке кадра, увеличив разрядность счетчиков принятых и переданных кадров с 3 бит до 7 бит.
• NRME (Normal Response Mode Extended) - расширенный режим нормального ответа (расширенная версия режима NRM).
• ARME (Asynchronous Response Mode Extended) - расширенный режим асинхронного ответа (расширенная версия режима ARM).
• АВМЕ (Asynchronous Balanced Mode Extended) - расширенный асинхронный сбалансированный режим (расширенная версия режима АВМ).
Супервизорные кадры. S-кадры осуществляют управление процессом передачи данных в информационных кадрах. Обычно они не имеют поля данных и их размер 6 байт. Два бита в супервизорном кадре определяют его тип. Таким образом, S-кадры могут быть четырех типов (табл. 5.75).
Таблица 5.75
Типы S-кадров
Значение битов 3, 4 в поле типа кадра | Мнемоника команды | Описание команды |
RR (Receive Ready) | К приему готов. Станция готова к приему Nr-кадра, кадры до Nr приняты правильно. | |
REJ (Reject) | Переспрос. Запрос передачи или повторной передачи l-кадра номер Мг и следующих за ним. Кадры до Mr приняты правильно. | |
RNR (Receive Not Ready) | К приему не готов. Станция занята и не может принимать l-кадры. По окончании занятости она ждет кадр Nr, кадры до Nr приняты правильно. | |
SREJ (Selective reject) | Селективный переспрос. Требуется повторная передача одного Nr-кадра. Кадры до Nr приняты правильно. |
Ненумерованные кадры. С помощью ненумерованных кадров осуществляются следующие функции:
• реализуется механизм передачи информации, не используя контроль по порядковым
номерам;
• передаются команды, которые осуществляют запуск станции, изменение режима пере-
дачи, отключение станции;
• производится отказ от выполнения неправильных команд или обработка особых ситу-
аций, например, если размер кадра больше чем размер буфера на станции.
В ненумерованных кадрах нет полей с номерами кадров, поэтому для идентификации типа U-кадра используются 5 бит. Таким образом может быть 32 типа ненумерованных кадров, однако не все типы задействованы (табл. 5.76).
Кадры команды
DISC (Disconnect) - используется для завершения ранее установленного режима работы или режима инициации и перехода в режим разъединение.
SIM (Set Initialization Mode) - используется для перевода удаленной станции в режим инициации с целью изменения на ней текущих параметров или для введения новых параметров или программ.
RSET (Reset) - применяется только в тех случаях, если станция работает в режиме АВМ, для сброса в исходное состояние счетчика номера принятого пакета с целью возобновления сеанса упорядоченной передачи пакетов нового сообщения.
UP (Unnumbered Poll). Получив такую команду, удаленная станция должна выставить ответ, содержащий информацию о ее состоянии. В качестве ответа могут быть переданы и еще не переданные информационные кадры.
Кадры ответа
DM (Disconnect Mode) — ответ удаленной станции, что она находится в режиме разъединения.
RIM-(Request Initialization Mode) - ответ, который используется для оповещения удаленной станции о необходимости перехода в режим инициации для изменения текущих параметров или введения новых параметров для вторичной или комбинированной станции, которая послала этот запрос.
UA (Unnumbered Acknowledgement) — ответ используется вторичной или комбинированной станцией для подтверждения выполнения команд, переданных в U-кадре.
RD (Request Disconnection) - ответ используется для сообщения станции, что на вторичной или комбинированной станции желателен переход в режим разъединения.
В составе U-кадра, в котором передаются ответы RIM, UA, RD, не допускается использование информационной области данных.
FRMR (Frame Reject) - ответ используется вторичной или комбинированной станцией для передачи на удаленную станцию сообщения о том, что принят некорректный кадр данных, который не может быть исправлен повторной передачей. В информационной области кадра дается обоснование переданного ответа. События, связанные с некорректной ситуацией:
1) принят кадр с командой, которая не используется в данном протоколе; 2) принят кадр, длина которого превышает максимально допустимую длину, определенную в данной реализации сети для обработки на вторичной станции; 3) принят кадр, который содержит информационную область, которая недопустима для данного типа кадра; 4) принят кадр с нарушенным порядком нумерации кадров Ns или Nr; 5) причина, по которой кадр отнесен к некорректным, не оговаривается.
Команда и ответ
Команды и ответы XID, TEST, U1 используются для передачи по сети информации о состоянии станции.
XID (Exchange Identification) - используется для опознания станции, обмена параметрами и другой служебной информацией. Кадр может содержать информационную область, при этом первый байт этой области определяет формат всей ее остальной части. TEST используется для тестирования канала связи. Вторичная станция, получив эту команду, должна передать ответ, скопировав в него информационную часть кадра. Если станция не может провести копирование данных, то она посылает ответ без информационного поля. Команда «тест» не должна менять содержимого переменных на станциях в сети.
U1 (Unnumbered Information) - служит для передачи информации от источника по каналу связи до удаленного пользователя без гарантии упорядоченной доставки ее получателю.