Дипломная работа: Алгоритми маршрутизації в мережах
Дипломная работа: Алгоритми маршрутизації в мережах
Курсова робота
1. Вступ
В наш час комп’ютерні мережі перебувають в стані розвитку й
набувають широкого розповсюдження. Лише комп’ютерна мережа Internet в даний час розрахована на 4.294.967.296
комп’ютерів, які матимуть IP адреси. До цього числа слід додати
чиленні локальні та корпоративні мережі. Всі ці комп’ютери були з’єднані з
метою обміну інформацією і власники комп’ютерів жадають швидкої передачі
великої кількості інформації на значні відстані.
Вимоги користувачів мережі задовольняються покращенням якісті
каналів передачі даних на заміну телефонним дротам прийшлі оптично-волоконні
лінії, канали передачі даних за допомогою супутникового зв’язку тощо. Але
значну роль при такій кількості з’єднаних в мережу комп’ютерів відіграє якість
протоколів, за допомогою яких здійснюється передача даних між серверами,
протоколів маршрутизації, алгоритмів на яких вони побудовані.
Враховуючи, що 4-байтну адресацію в мережі Internet буде замінено 8-байтною, тобто
максимальна кількість комп’ютерів під’єднаних до мережі зросте у 4.294.967.296
разів, слід зазначити, що найбільшу роль відіграватиме покращення саме
механізму маршрутизації пакетів даних між серверами мережі Internet.
Маршрутизація – це задача знаходження шляху між комп’ютером, що
відсилає дані та комп’ютером-одержувачем, але в зв’язаній моделі IP ця задача в основному зводиться до пошуку
шляхів до шлюзів між мережами. Поки пакети даних знаходяться на окремій мережі
або підмережі проблеми маршрутизації вирішуються за технологією, специфічною
для інтерфейсу цієї мережі. IP маршрутизація починається, коли
потрібно передати дані між різними мережами з різними інтерфейсами. Якщо мережі
отримувача та відправника безпосередньо зв’язані, то дані мають пройти через
шлюз, що з’єднує мережі. Якщо ці мережі не зв’язані шлюзом, дані мають пройти
через мережі, що знаходяться між відправником і одержувачем та шлюзами що їх
з’єднують.Як тільки дані доходять до шлюзу на мережі отримувача, технологія
маршрутизації цієї мережі спрямовує дані до отримувача.
Для
знаходження маршруту до комп’ютера-отримувача система зберігає таблиці
маршрутизації, які використовуються протоколами мережного рівня для вибору
потрібного мережного інтерфейсу. Маршрутизаційна інформація зберігається у
вигляді двох таблиць: перша – для маршрутів до хостів, друга – для маршрутів до
мереж. Такий підхід дозволяє використовувати універсальні механізми визначення
маршрутів як для мереж із розподіленим середовищем передачі даних , так і для
мереж типу point-to-point. Визначаючи маршрут, модуль мережного
протоколу (IP) спочатку переглядає таблиці для хостів,
а потім для мереж. Якщо пошук не дає результату, то використовується маршрут по
замовчуванню.
Визначення
маршруту може базуватися на різноманітних показниках або комбінаціях
показників. Програмні реалізації алгоритмів маршрутизації вираховують вартість
маршруту для визначення оптимальних маршрутів до пункту призначення.
В
таблиці 1 наведено приклад таблиці типу пункт призначення/наступний об’єкт для
пересилання пакетів.
Мережа призначення |
Наступний об’єкт |
57 |
вершина С |
24 |
вершина В |
26 |
вершина В |
18 |
вершина А |
20 |
вершина С |
34 |
вершина А |
28 |
вершина А |
Таблиця
1 : маршрутизаційна таблиця типу пункт призначення/наступний об’єкт для
пересилання пакетів
Існує багато підходів до задач пошуку оптимальних шляхів в мережі,
що реалізовані в протоколах, за якими відбувається маршрутизація, таких як Interior Gateway
Protocols: OSPF (Open Shortest Path First), Dual IS-IS (Intermediate System to
Intermediate System), RIP (Routing Information Protocol), GGP (Gateway to
Gateway Protocol); Exterior Gateway Protocols: BGP (Border Gateway Protocol),
EGP (Exterior Gateway Protocol), Inter-AS Routing without Exterior Gateway;
Static Routing.
Найрозповсюдженішими в Internet є реалізації алгоритмів вектору відстані
та відкриття найкоротшого шляху.
Алгоритми відкриття найкоротшого маршруту, також відомі як
алгоритми стану канала направляють потоки маршрутизаційної інформации до всіх
вузлів об'єднаної мережі. Але кожний маршрутизатор відсилає лише ту частину
маршрутизаційної таблиці, котра описує стан його власних каналів. Алгоритми
вектору відстані (також відомі, як алгоритми Белмана-Форда) вимагають від
кожногo маршрутизатора відсилки всієї або частини своєї маршрутизаційної
таблиці, але лише своїм сусідам. Алгоритми відкриття найкоротшого маршруту
фактично направляють невеликі корекції по всіх напрямках, в той час як
алгоритми вектору відстані відсилають більш великі корекції лише до сусідніх
маршрутизаторів.
Відрізняючись більш швидкою сходимістю, алгоритми відкриття
найкоротшого маршруту трохи менше схильні до утворення петель маршрутизації,
ніж алгоритми вектору відстані. З іншого боку, алгоритми відкриття найкоротшого
маршруту характеризуються більш складними розрахунками в порівнянні з
алгоритмами вектору відстані, потребуючи більшої процесорної потужності та
пам’яті, ніж алгоритми вектору відстані. В зв’язку з цим, реалізація та
підтримка алгоритмів відкриття найкоротшого маршруту може бути більш дорогою.
Не дивлячись на їхні відмінності, обидва типи алгоритмів добре функціонують за
самих різноманітних умов.
В
додатку наведено текст демону Routed,
який реалізований у маршрутизаційному протоколі RIP на основі алгоритму вектору відстані.
2. Маршрутизаційні рішення
2.1. RIP : Алгоритми вектору відстані
Алгоритми вектору відстані основані на обміні малої кількості
інформації. Кожний об’єкт (шлюз або хост), що приймає участь в маршрутизації,
має тримати інформацію про всі комп’ютери системі. Кожний запис в таблиці
маршрутизації включає наступний шлюз, на який дані, напрямлені до об’єкту,
мають бути відправлені. До того ж він має містити значення, що характеризує
загальну відстань до об’єкту. Відстань - це узагальнена характеристика, що може
відображати швидкість передачі даних, грошову вартість передачі тощо. Алгоритми
вектору вістані дістали свою назву від того, що вони можуть обчислити
оптимальний маршрут коли змінюється лише список відстаней. Крім того, має місце
обмін маршрутизаційною інформацією між безпосередньо зв’язаними об’єктами,
тобто елементами спільної мережі. Записи в таблиці маршрутизації мають містити
таку інформацію про комп’ютер-отримувач:
адреса : в IP
реалізації це має бути IP
адреса хоста або мережі;
шлюз : перший шлюз на цьому маршруті;
інтерфейс : інтерфейс, що має бути використований, щоб досягти
першого шлюза;
ціна : число, що визначає відстань до комп’ютера-отримувача;
таймер : проміжок часу з того моменту коли інформація була
востаннє оновлена.
На додаток можуть бути додані різні флаги та інша інформація.
Таблиця починається з опису об’єктів, що прямо під’єднані до системи. Вона
оновлюється на основі інформації, що приходить від сусідніх шлюзів.
Найважливіша інформація, якою обмінюються хости та шлюзи міститься в звітах
оновлення. Кожний об’єкт, що бере участь в маршрутизації посилає звіти
оновлення, що описують таблиці маршрутизації в тому стані, в якому вони
знаходяться на даний момент. Можливо визначити оптимальний маршрут користуючись
лише інформацією отриманою від сусідніх об’єктів.
Алгоритми
вектору відстані базуються на таблиці даючи найкращий маршрут з міркувань ціни
(будь-якої характериски,яку можна представити у вигляді суми ребер графу) .
Формально, якщо вершини i та j сусідні, тоді ціна d(i,j) рівна
ціні ребра між i та j. В нормальному випадку всі об’єкти на даній мережі однакові, d(i,j) однакове для всіх об’єктів даноі мережі і визначає ціну
використовування цієї мережі. Щоб дістати ціну всього маршруту, потрібно додати
ціни всіх ребер, що складають цей маршрут. Для зручності припустимо, що ціна –
додатнє ціле. Нехай D(i,j) визначає ціну кращого маршруту з вершини i до вершини j. Вона має бути
визначена для кожного ребра. d(i,j) визначатиме
ціни окремих кроків. Формально, нехай d(i,j) визначає ціну
маршруту, йдучи прямо з вершини i до вершини j. Це значення дорівнює нескінченності, якщо i та j не сусідні
вершини. (Слід зауважити, що d(i,i) -
нескінченність. Це так, якщо не брати до уваги, що вершина може мати пряме
з’єднання до самої себе). Оскільки ціни адитивні, то можна показати отримання
кращого маршруту так :
D(i,i) = 0, для всіх i
D(i,j) = min [d(i,k) + D(k,j)], інакше k
і найкращий маршрут той, що починається з вершини i до тих вершин
k, для яких d(i,k) + D(k,j) мінімальне.
Ми можеме обмежити друге рівняння для тих k, що є сусідами i. Для
інших d(i,k) нескінченність, тому вони не можуть дати мінімального значення.На
основі цього можливо обчислити відстань. Об’єкт i примушує його сусідів k
прислати ціну шляху до об’єкту призначення j. Коли i отримує ціну d(k,j) від всіх k, він додає d(k,j) до ціни шляху D(i,k). Потім і порівнює значення від всіх
сусідів і вибирає найменше.
Реальні реалізації алгоритму запам’ятовують найкращу ціну й
ідентифікацію сусіда, що її надіслав. Інформація заміщається, коли надсилається менша ціна. Це дозволяє
обраховувати мінімум, не зберігаючи інформацію від всіх сусідів. Але в випадку,
коли інформація надходить від об’єкта, що був записаний в таблиці як найкращий,
інформація оновлюється в будь-якому випадку. Механізм визначення найкращого
маршруту передбачає крах об’єкту на ділянці цього маршруту. В зв’язку з цим
встановлено, що об’єкти мають відсилати оновлену інформаціію кожні 30 секунд.
Якщо об’єкт, що дає кращу ціну, не відповідає протягом 180 секунд (враховується
можливість втрати пакету), ціна шляху встановлюється в дуже велике значення.
Страницы: 1, 2, 3, 4, 5, 6 |