Програма, що представляється, була написана для полегшення засвоєння студентами основної частини учбового матеріалу з дисципліни “Локальні ТК мережі”. При роботі програми студенти наглядно бачуть роботу основних мережевих протоколів, що входять у протокольний стек ТСР/ІР. Програма дає можливість спостерігати за проходженням службових пакетів і пакетів даних по мережі і у той же час виводить основні дані про структуру цих пакетів. Роботаючи з програмою, можна в легкій і доступній формі вивчити основні принципи роботи мережевих протоколів і зрозуміти порядок їх виклику і взаємодії.
Для подальшого опису роботи програми, розглянемо основні поняття про протокольний стек ТСР/ІР.
Огляд основних понять про протокольний стек TCP/IP.
Набір протоколів ТСР/ІР застосовують у мережах на базі ОС Unix, а також у популярній глобальній мережі Internet. Розробку та супровід цих протоколів виконує ІАВ (Internet Activities Board) з двома підкомітетами: дослідницьким - (Internet Research Task Force (IRTF)) та інженерним - (Internet Engineering Task Force (IETF)). Інженерний підкомітет також розробляє стандарти мережі ТСР/ІР - RFC (Request For Comments). Крім того, Internet має структуру, що відповідає за розподіл адрес - NIC (Network Information Center).
Структура протокольного стека ТСР/ІР.
Розглянемо структуру протокольного стека ТСР/ІР (рис. 6.1.) та коротко охарактеризуємо кожен з протоколів.
Telnet
FTP
SNMP
SMTP
DNS
Інші
Прикладний




ASN.1


Відображення







Сеансовий

ТСР
UDP
Транспортний

Протоколи
Маршрутизації
ІСМР
ІGМР

Мережевий


ІР
ARP
RARP


Ethernet
Token Ring
FDDI
АТМ
РРР
SLIP
Інші
Канальний








Фізичний

Рис. 6.1. Структура стека протоколів ТСР/ІР.
На канальному рівні використовують протоколи відомих мережевих архітектур (Ethernet, FDDI, АТМ, Token Ring та ін.). Особливе місце посідають протоколи SLIP (Serial Line IP) та РРР (Роint То Роint Ргоtocol). Їх застосовують для передавання даних низькочастотними послідовними каналами, найчастіше через послідовний порт комп'ютера та модем призначеною або комутованою телефонною лінією.
ІР (Internet Protokol) - це міжмережевий данограмний протокол мережевого рівня, що забезпечує сервіс передавання пакетів між вузлами мережі. Він не підтримує функції послідовного передавання пакетів та не гарантує надійності їх передавання. ІР є основним протоколом мережевого рівня стека ТСР/ІР. Його використовують усі інші протоколи.
ІСМР (Internet Control Message Protokol) - це основний діагностичний протокол для передавання інформації між вузлами мережі про помилки та збої, а також для діагностування мережі. Крім того, протоколи верхніх рівнів використовують його для адміністрування та діагностування.
ARP (Adress Resolution Protocol) трансформує IP-адресу в канальну адресу станції, а протокол RARP (Reverse Adress Resolution Protocol) виконує зворотну функцію - за канальними адресами визначає логічні ІР-адреси.
Кожен ІР-пакет містить ІР-адреси відправника та одержувача. Водночас для правильного передавання пакета на канальному рівні (у пакеті є канальні кадри) відправник повинен знати і канальну адресу одержувача. Якщо ж канальна адреса одержувача невідома, то ІР розсилає спеціальний пакет запиту - ARP Request Packet - з зазначенням ІР-адреси вузла, з яким треба налагодити зв'язок. Цей запит приймуть усі вузли, де діє протокол АRР, а вузол чия ІР-адреса наведена в запиті, повідомить свою канальну адресу. Вузол-відправник одержить це повідомлення, скоректує свої таблиці і в подальшому буде користуватись інформацією з них.
ТСР (Transmition Control Protocol) є протоколом транспортного рівня з попереднім налагодженням сполучення. Він гарантує надійне передавання пакетів та забезпечує їхню правильну послідовність, під час передавання використовує сервіс протоколу.
UDP (User Datagram Protocol) - данограмний протокол транспортного рівня, який використовують замість протоколу ТСР, якщо немає потреби в додаткових заходах щодо забезпечення надійного передавання. Протокол не гарантує передавання пакета, а також послідовності передавання.
Серед протоколів прикладного рівня та рівня відображення можна виділити Telnet -протокол емуляції термінала, FTP (File Transfer Protocol) - протокол передавання файлів, SМТР (Simple Mail Transfer Protocol) - протокол електронної пошти, SNМР (Sітрlе Network Management Protocol) - протокол керування мережею, DNS (Domain Name System) - протокол служби логічних імен.
Опис роботи програми.
Після запуску файлу програми, що має назву Connection.exe, з‘явиться головне вікно програми яке представлено на рис. 6.2.
Рис. 6.2. Головне вікно програми Connection.
На головному вікні представлено три мережі Ethernet і одна мережа FDDI. Всі ці мережі з‘єднані між собою через маршрутизатори і мають певні адреси різного класу.
Кожна ІР-адреса складається з двох компонент: адреси локальної мережі та адреси госта. Межа між адресами локальної мережі та госта - рухома. Адреса мережі може займати 3, 6, 9 розрядів. Решта - це адреса госта в мережі.
Для зручності адресації мереж різних розмірів їх було розділено на класи (табл. 6.1.).
Таблиця 6.1. Класи мереж internet.
Клас
Значення першого байта
Формат адреси мережі
Формат адреси госта
Кількість мереж
Кількість
гостів

1
2
3
4
5
6

А
1-126
w
x.y.z
126
16777214

В
128-191
w.x
y.z
16384
65534

С
192-223
w.x.y
z
2097151
254

Так, мережеві адреси 194.87.23.0 і 203.21.4.0 відносяться да класу С, а мережеві адреси 142.06.00 і 135.12.0.0 – до класу В.
До двох мереж на головному вікні під‘єднані користувачі у вигляді комп‘ютерів (мережі 194.87.23.0 і 142.06.0.0), до мережі 203.21.4.0 під‘єднаний DNS-сервер, а мережа 135.12.0.0 користувачів не має.
Всі мережі графічно відображають основну топологічну структуру, що в них використовується і мають підпис з назвою типу мережі і власною мережевою адресою.
Внизу вікна знаходиться текстова частина, яка відділена від основного вікна стандартним розділювачем Windows – об‘ємною лінією. У цій текстовій частині вікна, по мірі проходження по програмі, буде з‘являтись інформація у текстовому вигляді, що пояснює процеси які відбуваються у головному вікні.
Зліва у вікні встановлена стандартна кнопка підпис на якій може мати три вигляди:
почати;
продовжити;
вихід.
Кожний вигляд відповідає етапу виконання програми, що видно з їх назв.
Проходження пакетів у головному вікні показується, застосовуючи вивід рухомих зображень і візуально дає інформацію про напрям руху, тип пакету, що передається і зміст пакету.
При проходженні пакетами маршрутизаторів, виводиться вікно, що представляє собою таблицю маршрутизації з усіма її записами і візуально дається зрозуміти яким чином маршрутизатор, застосувуючи цю таблицю, маршрутизує даний пакет. Кількість записів в таблиці маршрутизації є обмеженою і дорівнює шести. При знаходженні необхідного запису, він виділяється і програма зупиняється, чекаючи доки користувач, прочитавши і засвоївши всю необхідну інформацію, натисне на кнопку “Продовжити” яка переходить для цього у активний стан.
Таким самим чином дається зрозуміти і послідовність пошуку необхідних записів апаратними засобами у власних таблицях і кешах, відмічається знайдений запис, що відповідає заданим умовам.
В кінці кожного кроку підсвічується кнопка “Продовжити” і програма повторює цей крок доти, доки користувач не натисне на згадану кнопку. Це зроблено для того, щоб користувач встиг прочитати текстову частину інформації і мав змогу спостерігати за її графічною частиною не хвилюючись, що він щось пропустив.
Як вже згадувалось, вікна пошуку у таблицях і кешах зроблені окремо і виводяться не закриваючи головного вікна для того, щоб користувач міг, посунувши текуче вікно, узгодити інформацію у ньому з інформацією на головному вікні і зрозуміти зміст вибраних записів.
Окремим чином зроблено вікно, що пояснює роботу протоколу ARP (див. рис.6.3).
Рис. 6.3. Вигляд вікна при розгляданні дії протоколу ARP.
При виводі цього вікна, головне вікно програми зникає, даючи зрозуміти, що цей протокол, на даному етепі, розглядається окремо від головних умов, що були описані. Робота у цьому вікні нічим не відрізняється від роботи з головним вікном. Інформація також подається у двох формах (текстовій і графічній) і кожний крок є повторюваним до натискання користувачем кнопки “Продовжити”.
При закінченні розглядання у деталях протоколу ARP це вікно зникає і відкривається головне вікно програми (див. рис. 6.2.).
При роботі протоколу ARP у головному вікні, для полегшення програмування і зменшення машинних ресурсів що потребуються, спрощується передача ARP-запросу, тобто проходження пакету запросу показується тільки до потрібного об‘єкту у мережі, а не до всіх об‘єктів, як це мало би бути. При цьому вважається, що інформація про роботу протоколу є засвоєна і таке спрощення не буде вводити в оману користувача.
При натисканні на головному вікні програми на мережі, маршрутизатори, DNS-сервер з‘являється вікно з коротким описом цих мережевих апаратних засобів. При цьому дія програми не зупиняється і продовжується на головному вікні.
По ходу виконання програми, вона, у певних місцях, видає коротку інформацію у текстовому і графічному вигляді про формати пакетів, що передаються на той час. При цьому дія програми призупиняється до того, як користувач натисне на кнопку “Продовжити програму”, засвоївши всю представлену інформацію.
По ходу виконання програми, для полегшення засвоєння інформації, різними кольорами вказуються логічні частини головного вікна, що приймають участь у роботі на даному етапі виконання програми, при чому однаковими кольорами вказуються однотипні логічні частини (наприклад початковий і кінцевий пункт передачі пакету).
Як вже згадувалось вище, графічне зображення пакету що передається дає інформацію про його тип або вміст. У програмі використовуються такі типи пакетів:
пакет ARP-запросу (бувають двох видів в залежності від того, в яку сторону іде їх передача);
пакет ARP-відповіді (також бувають двох видів в залежності від того, в яку сторону іде їх передача);
пакет DNS-запиту;
пакет DNS-відповіді;
пакет даних (також бувають двох видів в залежності від того, в яку сторону іде їх передача);
Потреба встановити зв‘язок між двома користувачами також відображається рухомим об‘єктом, що дає зрозуміти між якими саме користувачами необхідно встановити цей зв‘язок.
Розглянемо основні кроки виконання програми.
Після запуску програми у головному вікні (див. рис. 6.2.) необхідно натиснути кнопку “Почати”. Після цього у текстовій частині вікна з‘явиться інформація-вхідні дані про те, які комп‘ютери будуть передавати інформацію і у якому напрямку. В графічній частині вікна при цьому відзначаться ці комп‘ютери і з‘явиться рухома картинка що дасть зрозуміти інформацію про напрям передачі. Слідуючі кілька кроків буде поглиблюватись вхідна інформація по якій працює програма.
На третьому кроці дається інформація про пошук ІР-адрес по відомим символьним іменам у власній таблиці відповідності комп‘ютера і в цей час виводиться вікно пошуку необхідної ІР-адреси. Наочно дається зрозуміти, і це підтверджується текстовою інформацією після натискання кнопки “Продовжити”, що у даній таблиці потрібна адреса знайдена не була і тому необхідно вислати запит до DNS-сервера, ІР-адреса якого є відомою за вхідними даними.
Слідуючим кроком пояснюється, яким чином комп‘ютер приймає рішення про маршрутизацію для відправки DNS-запиту на DNS-сервер. Після цього розповідається про неможливість відсилання пакету за ІР-адресою і необхідність знаходження МАС-адреси. Програма показує, що МАС-адреса не була знайдена в кеш-таблиці протоколу ARP даного комп‘ютера і тому необхідно застосувати протокол ARP.
Наступним кроком відкривається вікно демонстрації роботи протоколу ARP (див.рис.6.3), а головне вікно програми закривається.
В активному вікні, в покроковому режимі, детально розглядаються всі етапи, які проходять при застосуванні протоколу ARP. Наглядно демонструються пакети-запити і пакети-відповіді, що застосовуються у протоколі, а також напрям їхнього поширення. Також графічним чином демонструються програмні модулі, що приймають участь у роботі протоколу. В текстовій частині вікна в цей час дається текстова інформація про процеси, що ілюструються графічно. В середині розповіді про роботу протоколу, а саме після відсилання пакету-запиту, виводиться вікно на якому у вигляді рисунка показано структуру пакету протоколу ARP і знизу подається опис елементів цієї структури. Після завершення розгляду роботи протоколу ARP, користувач повертається у головне вікно програми (див. рис.6.2.).
Після повернення у головне вікно, програма умовно показує проходження пакету-запиту і пакету-відповіді протоколу ARP від комп‘ютера до порта маршрутизатора, МАС-адресу якого необхідно визначити.
З початком слідуючого кроку, починається процес передачі DNS-запиту по мережам від комп‘ютера pol.lv.ua до DNS-сервера. По ходу передачі цього пакету показуються принципи маршрутизації та пошуку необхідних параметрів (наприклад МАС-адреси), що робиться за допомогою окремих вікон, як вже згадувалось вище. При цьому у текстовій частині вікна подається супроводжуюча пояснювальна інформація. При доходженні пакету до мережі призначення, кінцевий маршрутизатор, не знайшовши МАС-адреси DNS-сервера у своїй кеш-таблиці протоколу ARP, запускає цей протокол для вирішення фізичної адреси мережевого адаптера DNS-сервера. Графічно показується, що поки не знайдена необхідна фізична адреса, пакет, що прийшов, очікує передачі у буфері маршрутизатора. Після получення ARP-відповіді маршрутизатор відсилає цей пакет по призначенню, тобто на DNS-сервер.
При отриманні DNS-запиту, DNS-сервер починає пошук необхідної інформації у своїй базі даних. Взагалі DNS-сервер використовується не тільки для розв‘язання протоколу DNS, а і для інших цілей. Розглянемо основні положення по DNS-серверах.
DNS - це розподілена база даних, окремі частини якої зберігаються на комп'ютерах -серверах імен. У кожному сервері є інформація тільки про частину загального дерева DNS, а також, обов'язково, посилання на сервери імен, що зберігають інформацію про суміжні частини цього дерева. Сервер імен, як звичайно, відповідає не за один домен, а за декілька суміжних, або їхні частини (zone of authority).
У кожній зоні може бути визначено декілька типів серверів DNS:
первинний сервер імен (Primary Name Server) є центральним сховищем інформації про домен;
вторинний сервер імен (Secondary Name Server) зберігає копію інформації з первинного сервера, розвантажуючи його. Копії періодично узгоджуються;
сервери для кешування (Cache only server) зберігають кешовану інформацію, щоб зменшити навантаження на сервери.
У кожному домені для гарантування надійності повинно бути принаймні два сервери (первинний та вторинний).
Інформація, в тому числі одержана від інших серверів DNS, зберігається у кеш-пам'яті. Визначено максимальну тривалість зберігання інформації у кеш-пам'яті і, отже, періоди її оновлення з первинного сервера, оскільки всі зміни спочатку відбуваються там. Інші сервери оновлюють інформацію шляхом її читання після вилучення з кеш-пам'яті.
Програма, яка реалізує функції DNS на ПК клієнта, називається клієнтом DNS. Клієнт може взаємодіяти з сервером DNS у нерекурсивному або рекурсивному режимах. Розглянемо це на такому прикладі. Клієнт звертається з запитом до сервера DNS щодо з'ясування ІР-адреси. Якщо цей сервер відшукає потрібну інформацію у власній зоні або кешованих даних, переданих іншими серверами, він надсилає її клієнту. Якщо ж такої інформації не виявлено, то сервер надсилає адресу іншого сервера DNS, що розміщений ближче до домену, щодо якого одержано запит. Клієнт DNS сам виконає запит до цього домену. Такий режим називається нерекурсивним. Урекурсивному режимі запит до іншого сервера DNS виконує не клієнт, а сервер DNS, який одержав запит.
Найчастіше використовують нерекурсивний режим взаємодії, оскільки в цьому разі менше завантажений сервер DNS, а також можна ліпше простежити за проходженням запитів.
Головне призначення служби імен DNS - це надавання ІР-адрес на підставі символьного доменного імені госта. Для невеликих мереж це вирішують за допомогою текстового файлу hosts або Imhosts на кожній робочій станції.
Однак, фактично DNS має значно більші можливості, ніж просте відображення адрес. DNS - це база даних про стан госта. Вона є прообразом служби каталогів мережі, хоч і не виконує всіх потрібних для служби каталогів функцій.
Проглянувши свою базу даних, спрощений вигляд якої показується у відкритому вікні, сервер знаходить потрібну інформацію, що відповідним чином відображається, і починає підготовку до відправлення DNS-відповіді до комп‘ютера pol.lv.ua. Оскільки потрібний комп‘ютер знаходиться в мережі, адреса якої не збігається з адресою мережі в якій знаходиться сервер, ним приймається рішення про передачу пакету до маршрутизатора по замовчуванню, яким в даній мережі є маршрутизатор №2.
Пакет відповіді проходить весь шлях до комп‘ютера призначення з показом в процесі передачі пошуків всіх необхідних параметрів сервером і маршрутизаторами (МАС-адреси портів призначення, маршрути для подальшої передачі пакету до отримувача і т.д.) у вигляді вікон, що розкриваються в необхідні моменти.
Отримавши DNS-відповідь, комп‘ютер pol.lv.ua знає ІР-адресу комп‘ютера s1.mrk.ua. Для передачі необхідних даних комп‘ютер pol.lv.ua перевіряє адресу мережі призначення і оскільки вона не збігається з адресою власної мережі, приймає рішення про передачу пакету до маршрутизатора по замовчуванню МАС-адресу якого він знаходить у власному кеші протоколу ARP, так як він вже мав з ним зв‘язок.
При проходжені через мережу FDDI згадується про, так званий, MTU (Maximum Transfer Unit), але, оскільки довжина пакету Ethernet (1500 байт) менша за максимальну довжину пакету FDDI (4470 байт), сегментування пакету не проводиться. Також, при досягненні пакетом маршрутизатора №2, виводиться вікно з інфомацією про структуру пакету та маркеру в мережі FDDI.
Пакет проходить до маршрутизатора №2, маршрутизатор приймає рішення про передачу його до маршрутизатора №3, МАС-адресу якого не знаходить у своїй кеш-таблиці і тому запускає протокол ARP. При отриманні відповіді з необхідною адресою, маршрутизатор №2 пересилає пакет до маршрутизатора №3 який, в свою чергу проглянувши свою таблицю маршрутизації, знаходить в ній запис, що мережа призначення безпосередньо під‘єднана до його першого порту. Запустивши в дію протокол ARP, маршрутизатор визначає МАС-адресу потрібної станції і відправляє пакет по призначенню. При передачі пакету виводиться вікно, що показує формат рамки Ethernet з коротким описом значень її полів.
При досягненні кінцевого адресата, тобто комп‘ютера s1.mrk.ua, програма закінчує свою роботу і напис на кнопці, що у головному вікні (див. рис.6.2.) змінюється на “Вихід”.
Таким чином дана програма розглядає передачу пакету між двома комп‘ютерами через проміжні мережі використовуючи деякі протоколи, що частіше всього використовуються.
Програма написана в середовищі програмування Builder, що робить її здатною до переносу на інші комп‘ютери на яких встановлена ОС Windows чи OS/2.