Кіріспе

Маршрутизациялық протоколдар класы

Желілік жағдайды анықтайтын маршрутизациялық протоколдар – компьютерлік байланыс желілерінде пакеттік коммутация үшін қолданылатын маршрутизациялық протоколдардың екі негізгі класының бірі, екіншісі – қашықтық векторлық маршрутизациялық протоколдар. Желілік жағдайды анықтайтын маршрутизациялық протоколдардың мысалдары – Open Shortest Path First (OSPF) және Intermediate System to Intermediate System (IS IS). Желілік жағдайды анықтайтын протокол желідегі әрбір коммутациялық түйінмен орындалады (яғни, пакеттерді жіберуге дайын түйіндер; Интернетте бұлар маршрутизаторлар деп аталады). Желілік маршрутизацияның негізгі түсінігі – әрбір түйін желіге қосылу картасын граф түрінде құрастырады, онда қай түйіннің қай түйінмен байланысы бар екені көрсетіледі. Содан кейін әрбір түйін желідегі кез келген мүмкін пунктке дейінгі ең жақсы логикалық жолды дербес есептейді. Ең жақсы жолдардың әрбір жиынтығы әрбір түйіннің маршрутизациялық кестесін құрайды. Бұл қашықтық векторлық маршрутизациялық протоколдардан өзгеше, олар әрбір түйіннің маршрутизациялық кестесін көршілерімен бөлісу арқылы жұмыс істейді, ал желілік жағдайды анықтайтын протоколда түйіндер арасында тек байланысқа қатысты ақпарат ғана жіберіледі. Желілік жағдайды анықтайтын алгоритмдер кейде әр маршрутизатордың "өзінің көршілері туралы әлемге хабарлауы" ретінде бейресми сипатталады.

Тарих

Компьютерлердің алғашқы адаптивті маршруттау желісі деп саналатын, оның негізінде байланыс жағдайының маршруттау жүйесі қолданылған, 1976-1977 жылдары Бернард Дж. Харрис басқаратын Plessey Radar тобы жобалап, іске асырды; жоба британ армиясы үшін "Wavell" – компьютерлік басқару және бақылау жүйесі үшін жасалған. Бірінші байланыс жағдайының маршруттау тұжырымы 1979 жылы Джон М. Маккуиллан (содан кейін Bolt, Beranek and Newman) желі жағдайлары өзгерген кезде маршруттарды жылдам есептеу механизмі ретінде жариялады, бұл тұрақты маршруттауға алып келеді. BBN Technologies компаниясының кейінгі жұмыстары желіні аймақтарға бөлу арқылы иерархиялық жүйеде (яғни, желі аймақтарға бөлінген) байланыс жағдайы техникасын қалай қолдануға болатынын көрсетті, сонда әрбір коммутациялық түйінге бүкіл желінің картасы емес, тек ол кіретін аймақтардың картасы ғана қажет. Бұл техника кейіннен заманауи IS-IS және OSPF байланыс жағдайы маршруттау протоколдарында қолдануға бейімделді. Cisco әдебиеті Enhanced Interior Gateway Routing Protocol (EIGRP) протоколын "гибридтік" протокол деп атайды, тіпті ол топологиялық карталардың орнына маршрут кестелерін таратады. Дегенмен, ол OSPF сияқты, жүйе іске қосылғанда маршрут кестелерін синхрондандырады және топология өзгерген кезде ғана нақты жаңартуларды жібереді. 2004 жылы Радия Перлман 2-ші қабаттағы кадрларды жіберу үшін маршруттау көпірлері немесе Rbridges деп аталатын құрылғыларды пайдаланып байланыс жағдайы маршруттауын қолдануды ұсынды. Интернет-инженерлік тобы осы мақсатқа жету үшін Lots of Links (TRILL) протоколының мөлдір өзара байланысын стандарттады. Соңғы кезде бұл иерархиялық техника Optimized Link State Routing Protocol (OLSR) протоколын пайдалана отырып, сымсыз торлы желілерге де қолданылды. Қосылыстың сапасы әртүрлі болатын жағдайларда, қосылыстың сапасын жақсырақ қосылыстарды таңдау үшін пайдалануға болады. Бұл радиожиілікпен хабарласуды қолданатын кейбір жедел маршруттау протоколдарында қолданылады.

Карталарды тарату

Бұл сипаттама ең қарапайым конфигурацияны ғана қамтиды, яғни аймақтар жоқ, сондықтан барлық түйіндерде бүкіл желінің картасы болады. Иерархиялық жағдай біршама күрделірек; әртүрлі протоколдардың сипаттамаларын қараңыз. Бұрын айтылғандай, байланыс күйі алгоритмінің бірінші негізгі кезеңі – әрбір түйінге желі картасын беру. Бұл бірнеше қосымша қадамдар арқылы іске асырылады.

Әрбір тораптың көршілерін анықтау

Біріншіден, әрбір түйін толыққанды жұмыс істейтін байланыстар арқылы өзге қандай порттарға қосылғанын анықтауы керек; ол үшін қолжетімділік протоколын пайдаланады, ол әрбір тікелей байланысты көршісімен мерзімді және жеке-жеке іске қосылады.

Картаны құру

Соңында, желідегі әрбір түйінен алынған толық сілтеме күйі туралы хабарламалар жинағы болғанда, әрбір түйін желінің картасы үшін граф құрайды. Алгоритм сілтеме күйі туралы хабарламалар жинағын қарап шығады; әрбір хабарлама үшін, ол хабарлама жіберген түйінен, сол хабарламада көршілер деп көрсетілген барлық түйіндерге дейін желі картасында сілтемелер жасайды. Егер екі түйіннің арасындағы байланыс туралы мәліметтер сәйкес келмесе, онда сілтеме дұрыс деп есептелмейді; яғни, егер бір түйін екінші түйінмен байланысқаны туралы хабарласа, ал екінші түйін бірінші түйінмен байланысқаны туралы хабарламаса, онда қателік бар және бұл сілтеме картаға қосылмайды.

Осы кезең туралы ескертулер

Түйін мен оның көршілері арасындағы байланыста өзгеріс болған кезде, көршілер туралы ақпаратты беретін желі жағдайы туралы хабарлама қайта есептеледі және желіде таратылады; мысалы, егер сілтеме жұмыс істемей қалса. Мұндай кез келген өзгеріс әрбір түйіннің өз көршілерімен іске асыратын қолжетімділік протоколы арқылы анықталады.

Маршруттау кестесінің есептеуі

Бастапқыда айтылғандай, байланыс жағдайы алгоритмінің екінші негізгі кезеңі – карталарды қарап шығу арқылы маршрут кестелерін құру. Бұл да бірнеше қадамдар арқылы жасалады.

Ең қысқа жолдарды есептеу

Әрбір түйін карта бойынша алгоритмді дербес іске қосып, желідегі өзінен басқа әрбір түйінге ең қысқа жолды анықтайды; көбінесе Дикстра алгоритмінің бір түрі қолданылады. Бұл әрбір жолдың байланыс құнына негізделген, оған қол жетімді өткізу қабілеті де кіреді. Түйін екі дерек құрылымын сақтайды: «аяқталған» түйіндерді қамтитын ағаш және үміткерлер тізімі. Алгоритм екі құрылымды бос күйден бастайды; содан кейін өзінің түйінін бірінші құрылымға қосады. Ашкөз алгоритмнің түрі келесі әрекеттерді қайталап орындайды:

Түйінге тікелей байланысты барлық көрші түйіндер ағашқа қосылады (егер олар бұрыннан ағашта немесе үміткерлер тізімінде болмаса). Қалғандары екінші (үміткерлер) тізімге қосылады. Үміткерлер тізіміндегі әрбір түйін ағаштағы барлық түйіндермен салыстырылады. Ағаштағы түйіндерге ең жақын үміткер түйін ағашқа көшіріліп, тиісті көрші түйінге қосылады. Түйін үміткерлер тізімінен ағашқа көшірілген кезде, ол үміткерлер тізімінен алынып тасталады және алгоритмнің келесі итерацияларында қарастырылмайды. Жоғарыдағы екі қадам үміткерлер тізімінде түйіндер қалғанша қайталанады. (Егер түйіндер қалмаса, желідегі барлық түйіндер ағашқа қосылған болады.) Бұл процедура желідегі барлық түйіндерді қамтитын ағашпен аяқталады, ал алгоритм іске қосылған түйін ағаштың түбірі болады. Осы түйіннен кез келген басқа түйінге дейінгі ең қысқа жол ағаштың түбірінен қажетті түйінге жету үшін өтілетін түйіндер тізімімен көрсетіледі.

Маршруттау кестесін толтыру

Ең қысқа жолдарды анықтағаннан кейін, келесі қадам – маршрут кестесін толтыру. Кез келген мақсаттық түйін үшін, сол мақсатқа дейінгі ең жақсы жол – бұл тамыр түйінінен бастап, ең қысқа жол ағашының мақсаттық түйінге қарай бағытталған тармағы бойынша жасалатын алғашқы қадам. Маршрут кестесін жасау үшін ағашты аралап өту жеткілікті, әр тармақтың басындағы түйіннің идентификаторын есте сақтап, кездесетін әр түйін үшін маршрут кестесіне жазба енгізу қажет.

Алгоритмді оңтайландыру

Жоғарыда сипатталған алгоритм түсінуді жеңілдету үшін мүмкіндігінше қарапайым етіп жасалды. Іс жүзінде, көптеген оңтайландырулар қолданылады.

Қиссалық қайта есептеу

Қосылым картасы өзгерген сайын ең қысқа жол ағашын қайта есептеу және маршрут кестесін қайта құру қажет. BBN Technologies компаниясының зерттеулері картадағы нақты өзгеріске ықпал ететін ағаштың тек сол бөлігін ғана қайта есептеуге мүмкіндік берді. Сонымен қатар, маршрут кестесі ең қысқа жол ағашы есептелген кезде-ақ толтырылады, оны жеке операция ретінде жасаудың қажеті жоқ.

Балық көзінің бағыты

Fisheye State Routing (FSR) арқылы LSA-лар олардың таралуын шектеу және басқару хабарламаларынан туындайтын артық шығындарды азайту үшін әртүрлі өмір сүру уақытымен (time to live) жіберіледі. Осы принцип Hazy Sighted Link State Routing Protocol протоколында да қолданылады.

Ақаулық режімдері

Егер барлық түйіндер бірдей картадан жұмыс істемесе, маршрут циклдары пайда болуы мүмкін. Бұл ең қарапайым жағдайда, екі көрші түйіннің әрқайсысы екіншісін белгілі бір мақсатқа жетудің ең жақсы жолы деп есептейтін жағдай. Осы мақсатқа бағытталған кез келген пакет екі түйіннің арасында айналып, соның нәтижесінде цикл құрайды. Екіден астам түйінге қатысты маршрут циклдары да болуы мүмкін. Мұның себебі, әрбір түйін өзінің ең қысқа жол ағашын және маршрут кестесін басқа түйіндермен ешқандай байланыссыз есептейді. Егер екі түйін әртүрлі карталармен жұмыс бастаса, маршрут циклдарының пайда болуына әкелетін жағдайлар туындауы мүмкін. Кейбір жағдайларда, көп бұлтты ортада айырмашылық циклдары қосылуы мүмкін. Интерфейс протоколы арқылы өзгермелі кіру түйіндері бір мезгілде кіру түйінінің туындауы мүмкін проблеманы да шеше алады.

Оптимизацияланған байланыс күйін маршруттау протоколы

Оптимизацияланған байланыс күйі маршрутизациялау протоколы (OLSR) – мобильді желілерге (сондай-ақ басқа сымсыз желілерде де қолданылуы мүмкін) арналған, өте тиімді байланыс күйі маршрутизациялау протоколы. OLSR проактивті, яғни алдын ала жұмыс істейді және байланыс күйі туралы ақпаратты желіге тарату үшін "сәлемдесу" (hello) және топологиялық басқару (TC) хабарламаларын пайдаланады. "Сәлемдесу" хабарламалары арқылы әрбір түйін екі қадамдық көршілер туралы ақпаратты анықтайды және көп нүктелі релелердің (MPR) жиынтығын сайлайды. Көп нүктелі релелер (MPR) OLSR-ді басқа байланыс күйі маршрутизациялау протоколдарынан ерекшелендіреді. Түйіндер топологиялық ақпаратты желідегі барлық түйіндерге қатысты ең қысқа маршруттарды есептеу үшін қолданады.