Послідовність виконання команди вибір показана на рисунку 2.2, б. Ця команда означає: "Вторинний вузол, я вибираю вac, тому що в мене є для вас дані. Ви можете прийняти?" Підтвердження АСК у відповідь на вибір означає: "Так, я вільний і готовий прийняти ваші дані". Дані передаються, перевіряються на наявність помилок, і їх прийом підтверджується. Процес може повторюватися, поки не надійде керуюче повідомлення EOT, що означає: "У мене немає більше графіка для передавання". На рисунку 2.2, в метод опитування/вибору поданий в ускладненому вигляді. Команда вибір передається у вторинний вузол, але цей вузол дає негативну відповідь. Зміст цього діалогу такий: "Вторинний вузол, у мене є дані для вас, ви можете прийняти?" Відповідь: "Ні, не можу". Існує багато причин, через які вузол не може вести прийом: він може бути зайнятий виконанням інших завдань, не мати потрібного обсягу пам'яті для прийому даних, в ньому можуть знаходитися дані для передачі в первинний вузол тощо. Система опитування/вибір вирішує проблему ініціювання опитування первинним вузлом, що дає змогу вторинному вузлу надіслати дані й очистити свої буфери.
На рисунку 2.2, г зображено, що відбувається в мережі опитування/вибір, коли на опитування вторинний вузол відповідає негативно. У цьому випадку в системі використовується NAK для повідомлення про негативну реакцію на опитування. Це означає: "Вторинний вузол, у вас є дані для мене?" Відповідь NAK означає: "Ні, немає". У нових системах повідомлення про бажання почати прийом або передачу називається Готовий до прийому (receive ready), небажання називається Не готовий до прийому (receive not ready).
Недоліком системи опитування/вибір є наявність кількаразових
відповідних реакцій на опитування, що може бути пов'язане зі споживанням
значних ресурсів каналу. Ефективніший підхід полягає у використанні динамічних
таблиць опитування/вибір. Якщо продовжується опитування термінала і він не
відповідає після визначеної кількості спроб, його пріоритет у таблиці
опитування знижується. Отже, він обслуговується й опитується. Пріоритет
станції, яка не реагує, знижується, а ті пристрої, що позитивно реагували на
опитування, просуваються нагору в таблиці пріоритетів.
Протокол двійкового синхронного керування (BSC) набув широкого розповсюдження. Він є напівдуплексним протоколом. Передача здійснюється по черзі в обох напрямках. Цей протокол підтримує двоточкові і багатоточкові з'єднання, а також як комутовані, так і некомутовані канали. Він є кодозалежним протоколом, і кожен знак, переданий за BSC, має бути декодований для одержувача, щоб визначити, чи є він керуючим знаком, чи належить до даних користувача.
Формати кадру BSC і керуючі коди
показані на рисунку.2.3. Керуючі коди можуть мати декілька функцій, що
визначаються конкретним режимом роботи каналу в даний момент часу. На рисунку
показані не всі можливі модифікації формату кадру BSC, а деякі приклади
основних реалізацій формату. Крім наведених на рисунку 2.3, застосовуються
також команди ENQ - запит (використовується при опитуванні з вибором і при
захопленні каналу); EOT - кінець передачі (переводить канал у режим керування).
Рисунок 2.3 - Формати BSC і керуючі коди
На рисунку 2.3: - заповнення кадру (тимчасове заповнення між повідомленнями);- синхронізація каналу в стані спокою (підтримує активність каналу); - початок тексту (переводить канал r режим текст);
ЕТХ - кінець тексту; - початок заголовка;
ІТВ - кінець проміжного блока;
ВСС - контрольний лічильник блока;
ЕТВ - кінець блока передачі, - авторегістр 1 (використовується для досягнення кодової прозорості)
Наявність заголовків, наведених на рис. 2.3, не є
обов'язковою. Якщо заголовок входить у повідомлення, перед ним розміщується код
SOH.
Канал або ланка BSC працює в одному з двох режимів. Режим керування використовується головною станцією для керування операціями, виконуваними в каналі, - передачею кадрів опитування і вибору. Режим повідомлення, або текстовий режим, використовується для передачі блока або блоків інформації до станції або зі станції. Одержавши запрошення почати пересилання даних (опитування), залежна станція передає дані користувача, причому перед даними або заголовком поміщається керуючі коди початку тексту (STX) або початку заголовку (SОН). Ці керуючі символи переводять канал у режим повідомлення (або текстовий режим). Слідом за цим у текстовому режимі проводиться обмін даними, поки не зустрінеться EOT, який повертає канал у режим керування. В той час, коли канал знаходиться в режимі повідомлення, він використовується тільки для обміну даними між двома станціями. Всі інші станції мають залишатися пасивними. Текстовий режим із двома станціями називається також режимом вибору або утримання.
Операції опитування і вибору ініціюються кадром, що містить
Адресу ENQ (Адреса - це адреса станції). Керуюча (головна) станція відповідає
за посилку примітивів. Операція вибору виконує одну з двох функцій: 1)
переводить вибрану станцію в режим підпорядкування; 2) переводить всі інші станції
(у багатоточковому каналі) у пасивний режим. Знаки STX і SOH ініціюють стан
пасивності. Вибрана станція підтримує стан режиму підпорядкування, поки не
одержить EOT, ЕТВ (кінець блока передачі) і ЕТХ (кінець тексту). Пасивні
станції підтримують стан режиму пасивності, поки не одержать EOT.
HDLC - протокол високорівневого управління каналом передачі даних, є опублікованим ISO стандартом і базовим для побудови інших протоколів канального рівня (SDLC, LAP, LAPB, LAPD, LAPX і LLC). Він реалізує механізм управління потоком за допомогою безперервного ARQ (ковзаюче вікно) і має необов'язкові можливості (опції), що підтримують напівдуплексну і повнодуплексну передачу, одноточкова і багатоточкова конфігурації, а так само комутовані і некомутовані канали.
Розглянемо функції базової множини (superset) HDLC і найбільш важливі підмножини цього протоколу: SDLC, LAP, LAPB, LAPD, LAPX і LLC.
Існує три типи станцій HDLC:
Первинна;
Вторинна;
Комбінована.
Первинна станція (ведуча) управляє ланкою передачі даних (каналом). Несе відповідальність за організацію потоків передаваних даних і відновлення працездатності ланки передачі даних. Ця станція передає кадри команд вторинним станціям, підключеним до каналу. У свою чергу вона отримує кадри відповіді від цих станцій. Якщо канал є багатоточковим, головна станція відповідає за підтримку окремого сеансу зв'язку з кожною станцією, підключеною до каналу.
Вторинна станція (відома) працює як залежна по відношенню до первинної станції (ведучій). Вона реагує на команди, що отримуються від первинної станції, у вигляді відповідей. Підтримує тільки один сеанс, а саме тільки з первинною станцією. Вторинна станція не відповідає за управління каналом.
Комбінована станція поєднує в собі одночасно функції первинної і вторинної станції. Передає як команди, так і відповіді і отримує команди і відповіді від іншої комбінованої станції, з якою підтримує сеанс.
В процесі взаємодії одна з одною станції можуть знаходитися у трьох логічних станах.
Стан логічного роз'єднання (LDS). У цьому стані станція не може вести передачу або приймати інформацію. Якщо вторинна станція знаходиться в нормальному режимі роз'єднання (NDM - Normal Disconnection Mode), вона може прийняти кадр тільки після отримання явного дозволу на це від первинної станції. Якщо станція знаходиться в асинхронному режимі роз'єднання (ADM - Asynchronous Disconnection Mode), вторинна станція може ініціювати передачу без отримання на це явного дозволу, але кадр повинен бути єдиним кадром, який указує статус первинної станції. Умовами переходу в стан LDS можуть бути початкове або повторне (після короткочасного відключення) включення джерела живлення; ручне управління встановленням в початковий стан логічних ланцюгів різних пристроїв станції і визначається на основі прийнятих системних угод.
Стан ініціалізації (IS). Цей стан використовується для передачі управління на видалену станцію, її корекції у разі потреби, а також для обміну параметрами між видаленими станціями в ланці передачі даних, використовуваними в стані передачі інформації.
Стан передачі інформації (ITS). Вторинною, первинною і комбінованим станціям дозволяється вести передачу і приймати інформацію користувача. У цьому стані станція може знаходиться в режимах NRM, ARM і ABM, які описані нижче. Три режими роботи станції в стані передачі інформації, які можуть встановлюватися і відмінятися у будь-який момент:
· режим нормальної відповіді (NRM - Normal Response Mode) вимагає, щоб перш, ніж почати передачу, вторинна станція отримала явний дозвіл від первинної. Після отримання дозволи вторинна станція починає передачу відповіді, яка може містити дані. Поки канал використовується вторинною станцією, може передаватися один або більш за кадри. Після останнього кадру вторинна станція повинна знову чекати явного дозволу, перш ніж знову почати передачу. Як правило, цей режим використовується вторинними станціями в багатоточкових конфігураціях ланки передачі даних;
· режим асинхронної відповіді (ARM - Asynchronous Response Mode) дозволяє вторинній станції ініціювати передачу без отримання явного дозволу від первинної станції (зазвичай, коли канал вільний, - в стані спокою). Цей режим додає велику гнучкість роботи вторинної станції. Можуть передаватися один або декілька кадрів даних або інформація, що управляє, відбиває зміну статусу вторинній станції. ARM може зменшити накладні витрати, оскільки вторинна станція, щоб передати дані, не потребує послідовності опиту. Як правило, такий режим використовується для управління сполученими в кільце станціями або ж в багатоточкових з'єднаннях з опитом по ланцюжку. У обох випадках вторинна станція може отримати дозвіл від іншої вторинної станції і у відповідь на нього почати передачу. Таким чином дозвіл на роботу просувається по кільцю або уздовж з'єднання.
· асинхронний збалансований режим (ABM - Asynchronous Balanse Mode) використовують комбіновані станції. Комбінована станція може ініціювати передачу без отримання попереднього дозволу від іншої комбінованої станції. Цей режим забезпечує двосторонній обмін потоками даних між станціями і є основним (робочим) і найчастіше використовуваним на практиці.
Протоколом HDLC передбачено три способи конфігурування каналу при його використанні первинною, вторинною або комбінованою станцією.
Незбалансована конфігурація (UN) забезпечує роботу однієї головної станції та однієї або більшої кількості підпорядкованих станцій у конфігурації: двоточкової або багатоточкової, напівдуллексної або дуплексної, із комутованим або некомутованим каналом. Конфігурація називається незбалансованою тому, що первинна станція відповідає за керування кожною вторинною станцією і за виконання команд установлення режиму.
Симетрична конфігурація (UA) була у вихідній версії протоколу HDLC і використовувалася в первинних мережах. Ця конфігурація забезпечує функціонування двох незалежних двоточкових незбалансованих конфігурацій станцій. Кожна станція має статус первинної і вторинної, отже кожна станція логічно розглядається як дві станції: первинна і вторинна. Головна станція передає команди вторинної станції на другому кінці каналу і навпаки. Незважаючи на те, що станція може працювати як первинна, так і вторинна, які є самостійними логічними об'єктами, реальні команди і відповіді мультиплексуються в один фізичний канал.
Збалансована конфігурація (ВА) складається з двох
комбінованих станцій тільки в двоточковому з'єднанні. Метод передачі -
напівдуплексний або дуплексний, комутований або не комутований. Комбіновані
станції мають однаковий статус у каналі і можуть несанкціоноване надсилати одна
одній трафік. Кожна станція несе однакову відповідальність за керування
каналом. Отже, логічні станції HDLC можуть складатися з первинних або
комбінованих станцій. Функціонування станцій залежить від одного з трьох
станів: стану логічного роз'єднання, стану ініціювання і стану передачі
інформації. Вони працюють в одному з трьох режимів відповіді: нормальної,
асинхронної і збалансованої. Можливі три типи конфігурацій каналу HDLC:
незбалансована, симетрична і збалансована
У протоколі HDLC використовується термін кадр для позначення незалежного об'єкта даних, переданого каналом від однієї станції до іншої (рисунок 2.4 а).
Кадр складається з п'яти або шести полів. Всі кадри повинні починатися і закінчуватися полями прапора "01111110". Станції, підключені до каналу, постійно контролюють двійкову послідовність прапора. Прапори можуть постійно передаватися по каналу між кадрами HDLC. Для індексації виняткової ситуації у каналі можуть бути послані сім підряд одиниць, що йдуть. П'ятнадцять або більше число одиниць підтримують канал в стані спокою. Якщо приймаюча станція виявить послідовність бітів тих, що не є прапором, вона тим самим повідомляється про початок кадру, про виняткову (з аварійним завершенням) ситуацію або ситуацію спокою каналу. При виявленні наступної послідовності прапора станція знатиме, що поступив повний кадр.
Адресне поле визначає первинна або вторинна станції, що беруть участь у передачі конкретного кадру. Кожній станції привласнюється унікальна адреса. У незбалансованій системі адресні поля в командах і відповідях містять адресу вторинної станції. У збалансованих конфігураціях командний кадр містить адреса одержувача, а кадр відповіді містить адреса станції, що передає.
Поле, що управляє, задає тип команди або відповіді, а так само порядкові номери, використовувані для звітності про проходження даних в каналі між первинною і вторинною станціями. Формат і зміст поля, що управляє, визначають кадри трьох типів: інформаційні (I), супервізорні (S) і ненумеровані (U).
Інформаційний формат(I-формат) використовується для передачі даних кінцевих користувачів між двома станціями.
Супервізорний формат (S-формат)
виконує функції, що управляють: підтвердження (квитування) кадрів, запит на
повторну передачу кадрів і запит на тимчасову затримку передачі кадрів.
Фактичне використання супервізорного кадру залежить від режиму роботи станції
(режим нормальної відповіді, асинхронний збалансований режим, асинхронний режим
відповіді). Ненумерований формат (U -формат) також використовується для цілей
управління: ініціалізації або роз'єднання, тестування, скидання і ідентифікації
станції і т.д. Конкретний тип команди і відповіді залежить від класу процедури
HDLC.
Рисунок 2.4 - Формат кадру HDLC (a) і
правила адресації (б)
Інформаційне поле містить дійсні дані користувача. Інформаційне поле є тільки в кадрі інформаційного формату. Його немає в кадрі супервізорного або ненумерованого формату. [Примітка: кадри "UI - ненумерована інформація" і "FRMR - Неприйняття кадру" ненумерованого формату мають інформаційне поле].
Поле CRC (контрольна послідовність кадру) використовується для виявлення помилок передачі між двома станціями. Станція, що передає, здійснює обчислення над потоком даних користувача, і результат цього обчислення включається в кадр як поле CRC. У свою чергу, приймаюча станція проводить аналогічні обчислення і порівнює отриманий результат з полем CRC. Якщо має місце збіг, велика вірогідність того, що передача відбулася без помилок. У разі неспівпадання, можливо, мала місце помилка передачі, і приймаюча станція посилає негативне підтвердження, що означає, що необхідно повторити передачу кадру. Обчислення CRC називається циклічним контролем по надмірності і використовує твірний поліном х16+х12+х5+1, відповідно до рекомендації МККТТ V.41. Цей метод дозволяє виявляти всілякі кортежі помилок завдовжки не більше 16 розрядів, що викликаються одиночною помилкою, а також 99,9984% всіляких довших кортежів помилок.