- •1 Аналіз інформаційних мереж 10
- •1 Аналіз інформаційних мереж
- •1.1 Види мереж
- •1.2 Особливості та призначення корпоративних мереж, історія розвитку
- •1.3 Опис корпоративної мережі, що досліджується
- •2 Дослідження канального рівня мережі
- •2.1 Обгрунтування стандартизації функцій інформаційних мереж міжнародною спілкою електрозв’язку
- •2.2 Передача даних на канальному рівні
- •2.2.1 Протоколи канального рівня
- •2.2.2 Система опитування/вибір
- •2.2.3 Двійкове синхронне керування
- •2.2.4 Режими каналу
- •2.2.5 Високорівневе керування каналом (hdlc)
- •2.2.6 Формат у кадрі hdlc
- •2.2.7 Кодонезалежність і синхронізація hdlc
- •2.2.8 Керуюче поле hdlc
- •2.2.9 Протокол sdlc
- •2.2.10 Перетворення протоколів
- •3 Функціональна схема роботи кінцевого і центрального вузлів мережі
- •3.1 Склад та функції мережі
- •3.2 Функціональна схема кінцевого вузла (кв) мережі
- •3.2.2 Вихідний виклик до центрального вузла.
- •3.2.3 Вхідний виклик від центрального вузла
- •3.3 Функціональна схема центрального вузла (цв) мережі
- •3.3.1 Вихідний стан.
- •3.3.2 Вихідний виклик всіх кв по черзі
- •3.3.3 Виборочний вихідний виклик до кв
- •3.3.4 Вхідний виклик від кв
- •4. Розробка алгоритму канального рівня
- •4.1 Обгрунтування вибору середовища програмування Delphi
- •4.2 Структура програмного забезпечення
- •4.3 Опис алгоритму роботи канального рівня центрального вузла
- •4.4 Опис алгоритму роботи канального рівня кінцевого вузла
- •4.4.1 Процедура формування блоку для передачі FormBlock
- •4.4.2 Процедура передачі блоку рівню 1 PdBlock
- •4.4.3 Процедура прийому блоку від рівня 1
- •Висновки
- •Перелік посилань
- •Додаток а програма канального рівня
- •Додаток б перелік команд які використовуються в алгоритмах
- •Додаток в перелік прапорців
- •Додаток г перелік тайм-аутів
- •Обов’язкові креслення
4.4 Опис алгоритму роботи канального рівня кінцевого вузла
На рисунку 4.1 представлений алгоритм канального рівня кінцевого вузла інформаційної мережі.
На початку підпрограми здійснюється установка всіх прапорців і лічильників в стан, необхідний для правильного відпрацювання канального рівня для передачі і прийому інформації для сеансового рівня.
Після цього треба перевірити активність фізичного рівня, тобто наявність встановленого модемами каналу зв’язку. Якщо канал не встановлений, немає можливості передавати і приймати інформацію, і підпрограма другого рівня закінчує роботу. Якщо ж канал встановлений, може бути два варіанти:
Підпрограма сеансового рівня викликала підпрограму канального рівня для передачі інформації, про що свідчить активний стан прапорця наявності інформації для передачі FRG52. В цьому випадку канальний рівень кінцевого пункту повинен передати канальному рівню центрального пункту команду „запит на захват каналу” (ENQ). Після передачі команди ENQ запускається тайм-аут Т21 очікування відповіді від центрального пункту. Якщо за час Т21 не надійшла позитивна відповідь (АСК) на нашу вимогу ENQ, виставляємо в активний стан прапорець помилки FО25 і завершуємо роботі канального рівня. Якщо отримана згода (АСК) від канального рівня центрального вузла на прийом інформації, приступаємо до передачі. Для цього ставимо в активний стан прапорець FA2, в неактивний стан прапорець „кінець передачі” (FETX), встановлюємо покажчик чергового байту для передачі в регістрі RG52 (j) та номер блоку для передачі (NBlockPd) в 0, і викликаємо підпрограму формування блоку для передачі FormBlock.
Сформований блок передається за допомогою підпрограми PdBlock. Оскільки в мережі використовується вирішуючий зворотній зв’язок з очікуванням, то під час передачі блоку або відразу після передачі всього блоку від канального рівня центрального вузла може бути отримано DLE, що означає порушення порядку прийому блоків згідно номерів блоків, тобто втрату блоку. В цьому випадку передачу всього кадру треба розпочинати спочатку. Може надійти від канального рівня центрального вузла повідомлення про те, що блок був прийнятий з помилкою „заперечення правильності прийому блоку” (NAK).
Це може бути у двох випадках - неправильний формат блоку або неправильна контрольна сума блоку. В такому випадку враховується спроба передачі блоку в лічильнику SSPDB, який при формування блоку був встановлений в 3, і якщо лічильник спроб ще не дорівнює 0, виконується передача цього блоку ще раз. Якщо за три спроби передачі цього блоку позитивний результат не отриманий, виставляється в активний стан прапорець помилки для сеансового рівня, і підпрограма канального рівня закінчує роботу. Ще може надійти від канального рівня центрального вузла повідомлення про те, що блок був прийнятий без помилки - „підтвердження правильності прийому блоку” (АСК). В такому випадку якщо не всі блоки кадру передані, про що свідчить неактивний стан прапорця FETX, то переходимо до формування і передачі наступного блоку. Якщо передача закінчена, виставляється в неактивний стан прапорець наявності інформації для передачі FRG52, передається канальному рівню центрального вузла повідомлення „кінець передачі” (ЕОТ), ставиться в неактивний стан прапорець FA2, включається тайм-аут Т22 очікування прийому від ЦВ і очікуємо команду від ЦВ.
2) Підпрограма сеансового рівня викликала підпрограму канального рівня для прийома інформації, про що свідчить неактивний стан прапорця наявності інформації для передачі FRG52. В цьому випадку канальний рівень кінцевого пункту повинен включити тайм-аут Т22 очікування прийому команди від ЦВ і чекати команду.
Якщо за час Т22 від ЦВ не надходить команда „запит на захват каналу” (ENQ), підпрограма канального рівня закінчує роботу.
У випадку надходження команди ENQ треба надіслати позитивну відповідь (АСК), тобто згоду на прийом, встановити в активний стан прапорець FA2, приготувати лічильник прийнятої інформації SRG25 (записати в нього 0), встановити в неактивний стан прапорець FRG25 наявності прийнятої канальним рівнем для сеансового рівня інформації і встановити в неактивний стан прапорець FETX, який означає, що прийнятий останній блок кадру. Також для запобігання зациклювання програми необхідно запустити тайм-аут Т21 очікування знаку від канального рівня ЦВ.
Канальний рівень ЦВ, після прийому від КВ АСК буде надсилати інформаційні блоки. Ознакою початку інформаційного блоку є перший байт блоку STX („початок тексту”). Якщо за час Т21 не отримано STX, треба встановити в неактивний стан прапорець FA2 і вийти з підпрограми другого рівня.
Якщо STX є, викликаємо підпрограму прийома блоку PmBlock. Ця підпрограма перевіряє правильність блоку, ознаку кінця кадру і виставляє відповідні прапорці.
При неправильному форматі блоку або неправильній контрольній сумі блоку (активний прапорець FNAK) треба передати канальному рівню ЦВ „заперечення правильності прийому блоку” (NAK) і перейти до повторного прийома блоку.
При неправильному номері блоку (активний прапорець FDLE) треба передати канальному рівню ЦВ „передати кадр спочатку” (DLE) і перейти на початок прийома кадру.
При правильному форматі блоку і номера блоку, а також правильній контрольній сумі блоку (активний прапорець FACK) треба передати канальному рівню ЦВ „підтвердження правильності прийому блоку” (АСК) і перевірити, чи активний прапорець FETX („кінець тексту”). Якщо блок не останній, приступаємо до прийома наступного блоку.
Якщо був прийнятий останній блок кадру для сеансового рівня, за час Т21 повинна надійти команда ЕОТ. В цьому випадку встановлюються прапорці: FA2 в неактивний стан, FRG25 в активний стан, передається ЕОТ і підпрограма канального рівня закінчує роботу.
Рисунок 4.1- Алгоритм канального рівня кінцевого вузла
Продовження рисунку 4.1- Алгоритм канального рівня кінцевого вузла