Функціонування комп'ютерних мереж
Поняття протоколу та стеку протоколів.
При об'єднанні комп'ютерів у мережу виникає комплекс проблем, який може бути розв'язаний шляхом вироблення стандартів побудови мережі та взаємодії комп'ютерів у такій мережі та їх подальшим дотриманням. Так, при об'єднанні у мережу лише двох вузлів постають наступні проблеми:
обрання лінії зв'язку та визначення її параметрів;
обрання способу перетворення даних у сигнали, що передаватимуться по лінії зв'язку;
забезпечення синхронізації передавачів та приймачів вузлів мережі;
вироблення стандартів взаємодії вузлів по мережі;
створення ПЗ, що забезпечуватиме таку взаємодію тощо,
що самі по собі не є тривіальними.
Якщо ж вузлів буде більше 2-х, до окреслених проблем додадуться проблеми:
вибору топології мережі (структури зв'язків між вузлами мережі);
адресації вузлів мережі;
маршрутизації (вибору маршруту чи маршрутів, по яких будуть проходити сигнали, що переносять дані, за певними критеріями, наприклад, надійності чи швидкості передачі даних) тощо.
В результаті стандартизації розв'язування цих проблем, обмін даними між вузлами мережі відбувається за визначеними правилами, що називаються протоколами. Кожен протокол розроблений для розв’язання невеликого кола проблем, що виникають при вирішенні питання взаємодії вузлів комп’ютерної мережі. Набір протоколів, що здатні вкупі забезпечити обмін даними між двома довільними вузлами певної мережі, називається стеком протоколів. ПЗ, що забезпечує функціонування мережі, відпрацьовує певні протоколи і називається мережним ПЗ, яке може бути представлене у вигляді модуля ОС або існувати самостійно у вигляді програми або комплексу програм. Програмний модуль, що реалізує певний протокол, нерідко для скорочення також називають "протоколом". При цьому співвідношення між протоколом – формально визначеною процедурою і протоколом – програмним модулем, що реалізує цю процедуру, аналогічне співвідношенню між алгоритмом, призначеним для розв'язання певної задачі і програмою, що цю задачу розв'язує.
Обмін даними в локальних комп'ютерних мережах.
Деякі лінії зв'язку у комп'ютерних мережах можуть використовуватись не тільки для передачі даних, що генеруються вузлами, які зв'язані цією лінією зв'язку, а й для транзитної передачі даних до інших вузлів. Такими лініями зв'язку, є, наприклад, магістральна лінія у топології "загальна шина" або лінії, що зв'язують концентратори у топології "дерево". Крім того, по одній лінії, що з'єднує конкретний вузол мережі з рештою вузлів, може відбуватись обмін даними цього вузла з іншими. Такі лінії зв'язку називають поділяємими.
У аналогових телефонних мережах при забезпеченні сеансу зв'язку двох абонентів використовується т.зв. принцип комутації каналів. Всі лінії зв'язку між двома вузлами, які ініціюють сеанс зв'язку, за участі мережного комутаційного обладнання, встановленого на АТС, що обслуговують ці вузли, об'єднуються у канал зв'язку. Такий канал створюється на весь час сеансу зв'язку і надається в монопольне користування його учасникам. При цьому обмін інформацією з третім абонентом неможливий – при наборі номеру одного з абонентів, що бере участь у сеансі зв'язку, викликаючий абонент почує сигнал "зайнято".
У зв'язку з згаданим недоліком від використання принципу комутації каналів у комп'ютерних мережах відмовились на користь принципу комутації пакетів. Відповідно до певного протоколу, дані, що мають бути відправленими з даного вузла будь-якому іншому вузлу мережі, діляться на частини визначеного об'єму – т.зв. пакети, які і відсилаються у мережу. До корисних даних пакету при цьому додається адресна інформація, завдяки якій пакети просуваються мережею від вузла-відправника до вузла-адресата, при цьому проміжні вузли, в залежності від топології мережі, або просто ігнорують пакети з чужою адресою, або відсилають такі пакети іншим вузлам. Вузлом-адресатом отримані пакети збираються у вихідний блок даних.
Завдяки комутації пакетів один вузол може паралельно (з точки зору користувача) передавати чи приймати дані від декількох вузлів, а по деякій лінії зв'язку поширюватись черга пакетів, адресою призначення яких є різні вузли.
Адресація вузлів глобальної мережі згідно протоколу IP.
Глобальну мережу можна уявити собі як сукупність локальних мереж (підмереж), з'єднаних міжмережними лініями зв'язку. При цьому підмережі можуть відрізнятись топологією та використовуваними протоколами. Вузли, до яких під'єднуються міжмережні лінії зв'язку, називають маршрутизаторами, це може бути як спеціалізований комутаційний пристрій, так і комп'ютер з спеціальним ПЗ. Очевидним є той факт, що у маршрутизатора є як мінімум два інтерфейса вводу/виводу для кожної з підмереж, до яких він підключений. Головне призначення маршрутизаторів – об'єднання різнорідних підмереж і створення іллюзії єдиної, бездоганно взаємодіючої мережі глобального масштабу.
Відповідно до протоколу ІР (Internet Protocol, міжмережний протокол), що визначає спосіб адресації вузлів комп'ютерних мереж, кожному комп'ютеру у складі мережі присвоюється унікальна адреса (ІР-адреса) довжиною 4 байти, що складається з двох логічних частин – номера мережі та номера вузла в цій мережі. Найчастіше ІР-адреси представляють у вигляді чотирьох чисел, що представляють значення кожного байта в десятковій формі, наприклад:
128.10.2.30
Оскільки мінімальне число, яке може представляти байт – це нуль, а максимальне число – 255, то здавалось би, що можливі ІР-адреси знаходяться у проміжку між 0.0.0.0 та 255.255.255.255. Насправді цих адрес дещо менше, тому що, по-перше, деякі адреси є зарезервованими і присвоюватись вузлам не можуть, а по-друге, вузол не може мати адресу, що складається цілком з нулів.
Запис адреси не передбачає спеціального розмежувального знаку для відділення номеру мережі від номеру вузла. Механізм поділу ІР-адрес на номери мережі та вузлів ми не розглядатимемо. Відмітимо лише, що для комп'ютерів даної підмережі частина ІР-адреси є сталою – це і є номер мережі. Підмережу при цьому прийнято позначати ІР-адресою, в якої байти, що означають номер вузла дорівнюють нулю.
Також уточнимо, що в дійсності ІР-адреси призначаються не вузлам мережі, а з'єднанням вузла з підмережею.Тому маршрутизаторам присвоюється стільки ІР-адрес, до скількох підмереж він підключений.
Обмін даними в глобальних комп'ютерних мережах
Протокол ІР відповідає за створення умов для доставки даних від довільного вузла-відправника довільному вузлу-одержувачу через всі підмережі, що утворюють деяку глобальну мережу. Доставка даних від одного вузла глобальної мережі іншому стає можливою завдяки аналізу ІР-адреси вузла-адресата.
Розглянемо процес доставки пакета, відправленого вузлом 76.76.76.77. Концентратор мережі 76.76.76.0 відсилає пакет, який надходить йому від цього вузла, всім іншим вузлам підмережі. Якщо пакет відправлявся локальному вузлу (наприклад, 76.76.76.77), то він буде прийнятий вузлом-адресатом, решта вузлів цей пакет проігнорують. Маршрутизатор так само порівняє частину ІР-адреси вузла-адресата пакету з ІР-адресою підмережі, з якої прийшов цей пакет, визначить, що вони співпадають і так само його проігнорує. Пакет при цьому не вийде за межі підмережі.
П
риклад
глобальної мережі: локальні підмережі
різних топологій об'єднані маршрутизаторами
(ШЗ-адреси виділені напівжирним шрифтом)
у глобальну мережу. Наведені ІР-адреси
окремих вузлів та номери підмереж.
Нехай вузол 76.76.76.77 відправляє пакет даних вузлу 12.10.1.3, що знаходиться у іншій підмережі глобальної мережі. В цьому випадку всі вузли даної мережі, що отримають цей пакет від концентратора, проігнорують його, крім маршрутизатора, який на основі аналізу ІР-адрес вузла-отримувача та мережі, в якій знаходиться вузол-відправник визначить, що адресат даного пакету знаходиться ні в мережі відправника, ні в решті мереж, до яких під'єднаний маршрутизатор.
Зазначимо, що час від часу маршрутизатори глобальної мережі відправляють у мережу пакети зі службовою інформацію, яка зокрема, містить відомості, до яких мереж підключений даний маршрутизатор. Так само вони прослуховують мережу на предмет таких самих пакетів, сформованих іншими маршрутизаторами, і в такий спосіб створюють т.зв. таблицю маршрутизації. Таблиця маршрутизації встановлює відповідність між інтерфейсами вводу/виводу маршрутизатора та ІР-адресами підмереж, до яких можна дістатись через даний інфтерфейс.
Проглянувши свою таблицю маршрутизації, даний маршрутизатор переправить отриманий пакет у підмережу 220.9.0.0, в якій він так само буде проігнорований вузлами підмережі, а наступний маршрутизатор перешле пакет у підмережу 50.3.0.0. В кінці кінців пакет потрапить до мережі призначення, в якій буде сприйнятий вузлом-адресатом (12.10.1.3).
Пакети мандрують мережею одні незалежно від інших, при цьому звичайною є ситуація, коли пакети досягають вузела-адресата не в тій послідовності, в якій вони залишали вузел-відправник. Це характерно для тих випадків, коли між вузлами можна прокласти декілька маршрутів, що відрізняються своєю довжиною, а пакети просуваються по різних маршрутах. У вузлі-адресаті отримані пакети збираються у вихідний блок даних з використанням неадресної службової інформації – за номерами пакетів.
Відмітимо, що під довжиною маршруту розуміють не географічну довжину, а пропускну здатність лінії та її завантаженість. Так, маршрут між двома комп'ютерами, що знаходяться на різних континентах і з'єднані швидкіною лінією космічного зв'язку може виявитись "коротшим" за маршрут, який треба пройти даним по телефонним лініям, що з'єднують комп'ютери, розташовані у одному місті. Завдяки скачкоподібним змінам завантаженості маршрутів, мережним обладнанням, що займається просуванням пакетів, можуть обиратись різні маршрути для пакетів, що мають бути доставлені одному й тому ж вузлу-адресату.
