Пређи на садржај

Експоненцијално одустајање

С Википедије, слободне енциклопедије

Експоненцијално одустајање (exponential backoff) је алгоритам који користи повратну спрегу за мултипликативно смањење учесталости неког процеса, како би се постепено пронашла прихватљива учесталост. Ови алгоритми налазе примену у широком спектру система и процеса, при чему су посебно значајне радио и рачунарске мреже.

Алгоритам експоненцијалног одустајања

[уреди | уреди извор]

Алгоритам експоненцијалног одустајања је облик система са затвореном петљом који смањује учесталост контролисаног процеса као одговор на неповољне догађаје. На пример, ако се апликација на смартфону не успе повезати са својим сервером, може покушати поново након 1 секунде, затим, ако поново не успе, након 2 секунде, затим 4, итд. Сваки пут се пауза множи фиксним износом (у овом случају 2). У овом случају, неповољан догађај је неуспешно повезивање са сервером. Други примери неповољних догађаја укључују сударе мрежног саобраћаја, одговор грешке са сервиса или експлицитни захтев за смањење учесталости (тј. „odustati” — back off).

Смањење учесталости може се моделирати као експоненцијална функција:

или

Овде, t представља временско кашњење примењено између радњи, b је мултипликативни фактор или osnova, c је број уочених неповољних догађаја, а f је учесталост (или проток) процеса (тј. број радњи по јединици времена). Вредност c се повећава сваки пут када се уочи неповољан догађај, што води до експоненцијалног пораста кашњења и, самим тим, обрнуто пропорционалне учесталости. Експоненцијални алгоритам одустајања где је b = 2 назива се бинарним експоненцијалним алгоритмом одустајања.

Када се учесталост смањи као одговор на неповољан догађај, обично не остаје на том смањеном нивоу заувек. Ако се током одређеног периода не примете неповољни догађаји, често називаног „време опоравка” или „period за хлађење”, учесталост се поново може повећати. Временски период који мора проћи пре новог покушаја повећања учесталости такође може бити одређен алгоритмом експоненцијалног одустајања. Типично, опоравак учесталости се одвија спорије од њеног смањења због одустајања и често захтева пажљиво подешавање како би се избегло осциловање учесталости.[1] Тачно понашање при опоравку је специфично за имплементацију и може бити условљено бројним факторима из окружења.

Механизам путем кога се смањење учесталости практично постиже у систему може бити сложенији од једноставног временског кашњења. У неким случајевима, вредност t може се односити на горњу границу временског кашњења, а не на специфичну вредност временског кашњења. Назив „експоненцијално одустајање” односи се на карактеристику експоненцијалног раста одустајања, а не на тачан нумерички однос између броја неповољних догађаја и времена кашњења.

Ограничавање протока

[уреди | уреди извор]

Експоненцијално одустајање се често користи као део механизама за ограничавање протока у рачунарским системима као што су веб сервиси, како би се помогло у спровођењу праведне дистрибуције приступа ресурсима и спречио прекомерно оптерећење мреже. Сваки пут када сервис обавести клијента да шаље захтеве сувише често, клијент смањује своју учесталост за неки предодређени фактор све док учесталост захтева клијента не достигне прихватљиву равнотежу. Сервис може спроводити ограничавање протока тако што ће одбити да одговори на захтеве када их клијент шаље сувише често, како се „лоши” клијенти не би препустили својим додељеним ресурсима.

Предност коришћења алгоритма експоненцијалног одустајања у односу на фиксирано ограничење протока је та што се ограничења протока могу постићи динамички без提供给ња икаквих претходних информација клијенту. У случају да се ресурси неочекивано суже, нпр. због великог оптерећења или прекида рада сервиса, захтеви за одустајање и одговори грешке са сервиса могу аутоматски смањити учесталост захтева од клијената. Ово може помоћи у одржавању одређеног нивоа доступности уместо претераног оптерећивања сервиса. Поред тога, квалитет услуге може имати приоритет за одређене клијенте на основу њихове појединачне важности, нпр. смањењем одустајања за хитне позиве на телефонској мрежи током периода високог оптерећења.

У једноставној верзији алгоритма, поруке се одлажу за предодређено (нерандомно) време. На пример, у SIP протоколу преко непоузданог транспорта (као што је UDP), клијент поново шаље захтеве у интервалима који почињу од Т1 секунди (обично 500 ms, што је процена времена повратног пута) и удвостручавају се након сваког поновног слања све док не достигну Т2 секунде (које се подразумевају као 4 s). Ово резултује интервалима поновног слања од 500 ms, 1 s, 2 s, 4 s, 4 s, 4 s, итд.[2]

Избегавање судара

[уреди | уреди извор]

Алгоритми експоненцијалног одустајања се могу користити за избегавање судара у мрежи. У тачка-ка-више тачака или мултиплексираној мрежи, више пошиљалаца комуницира преко јединственог дељеног канала. Ако се два пошиљаоца покушају одаслати поруку у исто време, или „препричају” један другог, долази до судара и поруке се оштећују или губе. Сваки пошиљалац се затим може повући пре него što покуша да пошаље поново исту поруку.

Детерминистички алгоритам експоненцијалног одустајања није погодан за ову употребу, јер би се сваки пошиљалац повукао за исти период, што би их довело до поновног слања у исто време и изазвало нови судар. Уместо тога, у сврху избегавања судара, време између поновних слања се рандомизује, а алгоритам експоненцијалног одустајања поставља опсег вредности кашњења које су могуће. Временско кашњење се обично мери у слотовима, који су периоди фиксиране дужине (или „исечци”) времена на мрежи. У бинарном експоненцијалном алгоритму одустајања (тј. оном где је b = 2), након c судара, свако поновно слање се одлаже за случајан број времена слота између 0 и 2c − 1. Након првог судара, сваки пошиљалац ће чекати 0 или 1 време слота. Након другог судара, пошиљаоци ће чекати било где од 0 до 3 времена слота (укључујући). Након трећег судара, пошиљаоци ће чекати било где од 0 до 7 времена слота (укључујући), и тако даље. Како се број покушаја поновног слања повећава, број могућности за кашњење експоненцијално расте. Ово смањује вероватноћу судара, али повећава просечно кашњење.

Експоненцијално одустајање се користи током поновног слања оквира у мрежама са носилачко осетљивим приступом са избегавањем судара (CSMA/CA) и носилачко осетљивим приступом са откривањем судара (CSMA/CD), где је овај алгоритам део методе приступа каналу који се користи за слање података на овим мрежама. У Етернет мрежама, алгоритам се често користи за заказивање поновног слања након судара. Поново слање се одлаже за износ времена изведен из времена слота (на пример, време потребно за слање 512 битова; тј., 512 бит-времена) и броја покушаја поновног слања.

Овај пример је из Етернет протокола,[3] где домаћин који шаље може да зна када је дошло до судара (тј. да је други домаћин покушао да преноси), када шаље оквир. Ако оба домаћина покушају да поново пошаљу чим дође до судара, поново би дошло до судара — и тај образац би се наставио унеколико. Домаћини морају изабрати случајну вредност унутар прихватљивог опсега kako би осигурали да се ова ситуација не догоди. Зато се користи алгоритам експоненцијалног одустајања. Вредност 51,2 μs се овде користи као пример јер је то време слота за 10 Mbit/s Етернет линију. Међутим, 51,2 µs може бити замењено било којом позитивном вредношћу у пракси.

  1. Када се први пут деси судар, пошаљи прекидни сигнал да би се спречило даље слање података.
  2. Поново пошаљи оквир након 0 секунди или 51,2 µs, изабрано насумице.
  3. Ако то не успе, поново пошаљи оквир након 0 s, 51,2 µs, 102,4 µs или 153,6 µs.
  4. Ако то и даље не успе, поново пошаљи оквир након k · 51,2 µs, где је k случајни цео број између 0 и 23 − 1.
  5. За даље неуспехе, након c-тог неуспелог покушаја, поново пошаљи оквир након k · 51,2 µs, где је k случајни цео број између 0 и 2c − 1.

Историја и теорија

[уреди | уреди извор]

У семиналном раду објављеном у AFIPS 1970.,[4] Норман Абрамсон је представио идеју о више корисника, на различитим острвима, који деле један радио канал (тј. једну фреквенцију) за приступ главном рачунару на Универзитету на Хавајима без било какве временске синхронизације. Судари пакета на пријемнику главног рачунара се третирају од стране пошиљаоца након истека времена као откривене грешке. Сваки пошиљалац који не прими позитивну потврду од главног рачунара поново би слао свој изгубљени пакет. Абрамсон је претпоставио да је низ пакета послат у дељени канал Поасонов процес са протоком G, који је збир протока S нових долазака пакета пошиљаоцима и протока поново послатих пакета у канал. Претпостављајући стационарно стање, показао је да је проток канала са максималном вредношћу од 1/(2e) = 0,184 у теорији.

Лари Робертс је разматрао ALOHA канал подељен на временске слотове, при чему је сваки временски слот довољно дугачак за време преноса пакета. (Сателитски канал који користи TDMA протокол је подељен на временске слотове.) Користећи исте Поасонове процесе и претпоставке стационарног стања као Абрамсон, Лари Робертс је показао да је максимални проток 1/e = 0,368 у теорији.[5] Робертс је био менаџер програма истраживачког пројекта ARPANET. Инспирисан идејом ALOHA са слотовима, Робертс је покренуо нови пројекат ARPANET Satellite System (ASS) да би укључио сателитске везе у ARPANET.

Резултати симулације Абрамсона, његових колега и других показали су да ALOHA канал, са слотовима или не, није стабилан и да би се понекад дешавао колапс због препуњења. Колико времена до колапса због препуњења зависило је од протока нових пакета као и од других непознатих фактора. Године 1971., Лари Робертс је замолио професора Леонарда Клајнрока и његовог докторанда, Сајмона Лама, са UCLA-е да се придруже пројекту Сателитски систем ARPANET-а. Сајмон Лам би радио на стабилности, оцени перформанси и адаптивној контроли ALOHA са слотовима за свој истраживачки рад докторске дисертације. Први рад који је написао заједно са Клајнроком био је ARPANET Satellite System (ASS) Note 12, дистрибуиран групи ASS у августу 1972.[6] У овом раду, слот случајно изабран у интервалу од K слотова је коришћен за поновно слање. Нови резултат из модела је да повећање K повећава проток канала, који конвергира ка 1/e када се K повећава на бесконачност. Овај модел је задржао претпоставке о Поасоновим доласцима и стационарном стању и није био намењен за разумевање статистичког понашања и колапса због препућења.

Стабилност и адаптивно одустајање

[уреди | уреди извор]

Да би разумео стабилност, Лам је креирао дискретни временски Марковљев ланац за анализу статистичког понашања ALOHA са слотовима у поглављу 5 своје дисертације.[7] Модел има три параметра: N, s и p. N је укупан број корисника. У било ком тренутку, сваки корисник може бити неактиван или блокиран. Сваки корисник има највише један пакет за слање у следећем временском слоту. Неактиван корисник генерише нови пакет са вероватноћом s и шаље га у следећем временском слоту одмах. Блокирани корисник шаље свој пакет у резерви са вероватноћом p, где 1/p = (K+1)/2 kako би се просечни интервал поновног слања задржао исти. Резултати протока-кашњења два метода поновног слања су упоређени екстензивним симулацијама и утврђено је да су у суштини исти.[а]

Ламов модел даје математички rigorозне одговоре на питања стабилности ALOHA са слотовима, као и ефикасан алгоритам за израчунавање перформанси протока-кашњења за било који стабилан систем. Постоје 3 кључна резултата, приказана испод, из Ламовог Марковљевог ланца модела у поглављу 5 његове дисертације (такође заједно објављено са професором Леном Клајнроком у часопису IEEE Transactions on Communications.[8])

  1. ALOHA са слотовима са Поасоновим доласцима (тј. бесконачно N) је инхерентно нестабилан, јер не постоји стационарна расподела вероватноће. (Достизање стационарног стања је била кључна претпоставка коришћена у моделима Абрамсона и Робертса.)
  2. За ALOHA са слотовима коначног N и коначног K, Марковљев ланац модел се може користити за одређивање да ли је систем стабилан или нестабилан за дати улазни проток (N×s) и, ако је стабилан, за израчунавање његовог просечног кашњења пакета и протока канала.
  3. Повећање K повећава максимални број корисника који могу бити смештени у стабилан ALOHA канал са слотовима.[б]

Последица

[уреди | уреди извор]

За коначни (N × s), нестабилан канал за тренутну вредност K може се учинити стабилним повећањем K на довољно велику вредност, која ће се називати K(N,s).[в]

Хеуристички RCP за адаптивно одустајање

[уреди | уреди извор]

Лам је користио Маркову теорију одлучивања и развио оптималне политике контроле за ALOHA са слотовима, али ове политике захтевају да сви блокирани корисници знају тренутно стање (број блокираних корисника) Марковљевог ланца. Године 1973., Лам је одлучио да уместо коришћења сложеног протокола за кориснике да процене стање система, креираће једноставан алгоритам за сваког корисника да користи сопствене локалне информације, тј. број судара које је његов пакет у резерви доживео.[9] Применом горње последице, Лам је изумео следећу класу адаптивних алгоритама одустајања (названу Хеуристички RCP).

Хеуристички RCP алгоритам састоји се од следећих корака: (1) Нека m означава број претходних судара које је пакет доживео код корисника као информацију о повратној спрези у његовој контрольној петљи. За нови пакет, K(0) се иницијализује на 1. (2) Интервал поновног слања пакета K(m) се повећава како m расте (све док канал не постане стабилан, како имплицира горња последица). За имплементацију, са K(0)=1, како m расте, K(m) се може повећати множењем (или сабирањем).

Запажање

[уреди | уреди извор]

Бинарно експоненцијално одустајање (BEB) коришћено у Етернету неколико година касније је посебан случај Хеуристичког RCP-а са .

BEB је веома лак за имплементацију. Међутим, није оптималан за многе примене јер BEB користи 2 као једини множилац, што не пружа флексибилност за оптимизацију. Посебно, за систем са великим бројем корисника, BEB сувише споро повећава K(m). С друге стране, за систем са малим бројем корисника, довољно мали K је довољан за стабилност система, и одустајање не би било потребно.

Да би се илустровао пример мултипликативног RCP-а који користи више множилача, погледајте доњи ред у табели 6.3 на страни 214 у поглављу 6 Ламове дисертације, или доњи ред у табели III на страни 902 у раду Лам-Клајнрок. У овом примеру:

  1. Нови пакет се шаље одмах, m=0, K(0)=1
  2. За пакет са 1 претходним сударом, K(1) = K(0) × 10 = 10 (Множилач се скаче директно на K* = 10, за који је пронађено да је оптимална K вредност у стационарном стању за овај посебан систем (ALOHA са слотовима за сателитски канал).)
  3. За пакет са 2 претходна судара, K(2) = K(1) × 10 = 100 (још један судар, K скаче 10 пута).
  4. K(3) = K(2) × 2 = 200
  5. K(m)=K(m−1) за m≥4

За овај пример, K=200 је довољно за стабилан ALOHA систем са слотовима са N једнаким око 400, што произилази из резултата 3 изнад последице. Не потребно је даље повећавати K.

Скретно експоненцијално одустајање

[уреди | уреди извор]

„Скретна” варијанта алгоритма уводи ограничење на c. Ово једноставно значи да након одређеног броја повећања, експоненција престаје. Без ограничења на c, кашњење између преноса може постати нежељено дуго ако пошиљалац упорно примећује неповољне догађаје, нпр. због деградације перформанси мреже. У рандомизованом систему, ово се може десити случајно, што води до непредвидивог кашњења; дуже кашњења због неограниченог повећања c су експоненцијално мање вероватна, али су они ефективно неизбежни на заузетој мрежи због закона заиста великих бројева. Ограничавање c помаже у смањењу могућности неочекивано дугих кашњења преноса и побољшању времена опоравка након привременог прекида.

На пример, ако је горња граница постављена на i = 10 у скретном бинарном експоненцијалном алгоритму одустајања (како је то у IEEE 802.3 CSMA/CD стандарду[10]), онда је максимално кашњење 1023 времена слота, тј. 210 − 1.

Избор одговарајућег ограничења одустајања за систем подразумева проналажење равнотеже између вероватноће судара и кашњења. Повећањем горње границе, долази до експоненцијалног смањења вероватноће судара при сваком покушају преноса. У исто време, повећање ограничења такође експоненцијално повећава опсег могућих времена кашњења за пренос, што води до мање детерминистичких перформанси и повећања просечног кашњења. Оптимална вредност ограничења за систем је специфична и за имплементацију и за окружење.[11]

Очекивано време чекања

[уреди | уреди извор]

Дата равномерна расподела времена чекања, очекивано време чекања је просек могућности. Након c судара у бинарном експоненцијалном алгоритму одустајања, кашњење се случајно бира из [0, 1, ..., N] слотова, где је N = 2c − 1, а очекивано време чекања (у слотовима) је

На пример, за очекивано време чекања за трећи (c = 3) судар, прво се може израчунати максимално време чекања, N:

а затим се израчуна просек могућих времена чекања:

.

што је, за пример, E(3) = 3.5 слота.

Напомене

[уреди | уреди извор]
  1. ^ Слика 5-1 на страни 100, поглавље 5, у Ламовој дисертацији
  2. ^ Слика 5-9 на страни 114 у поглављу 5 Ламове дисертације, или Слика 10 на страни 418 у раду Клајнрок-Лам из 1975.
  3. ^ Слика 5-10 на страни 116 у поглављу 5 Ламове дисертације, или Слика 11 на страни 418 у раду Клајнрок-Лам из 1975.

Референце

[уреди | уреди извор]
  1. ^ Tanenbaum & Wetherall 2010, стр. 395
  2. ^ Rosenberg, J. (2002). „RFC3261 – SIP: Session Initiation Protocol” [RFC3261 – SIP: Протокол за покретање сесије]. The Internet Society. 
  3. ^ Peterson, Larry L.; Davie, Bruce S. (2022). „Chapter 2: Direct Links” [Поглавље 2: Директне везе]. Computer Networks: A Systems Approach [Рачунарске мреже: Системски приступ] (Sixth изд.). Morgan Kaufmann Publishers. стр. 120. ISBN 978-0-12-818200-0. 
  4. ^ Abramson, Norman (1970). The ALOHA System - Another Alternative for Computer Communications [ALOHA систем - Још једна алтернатива за рачунарске комуникације] (PDF). Proceedings of the 1970 Fall Joint Computer Conference - Зборник рада Конференције за заједничке рачунаре, јесен 1970. AFIPS Press. 
  5. ^ Roberts, Lawrence G. (април 1975). „ALOHA Packet System With and Without Slots and Capture” [ALOHA пакетски систем са и без слотова и захватања]. ACM SIGCOMM Computer Communication Review - ACM SIGCOMM Преглед рачунарских комуникација. 5 (2): 28—42. doi:10.1145/1024916.1024920. 
  6. ^ Kleinrock, Leonard; Simon S. Lam (август 1972). Analytic Results for the ARPANET Satellite System Model Including the Effects of the Retransmission Delay Distribution [Аналитички резултати за модел сателитског система ARPANET-а укључујући ефекте расподеле кашњења поновног слања] (PDF) (Технички извештај). ARPA Network Information Center, Станфордов институт за истраживање, Менло Парк, Калифорнија. ASS Note 12 (NIC 11294). 
  7. ^ Lam, Simon S. (март 1974). Packet Switching in a Multi-Access Broadcast Channel with Application to Satellite Communication in a Computer Network, Ph.D. dissertation, 306 pages [Комутација пакета у каналу вишеструког приступа са емитовањем са применом у сателитској комуникацији у рачунарској мрежи, докторска дисертација, 306 страница] (Теза). UCLA-ENG-7429 (ARPA), UCLA Школа за инжењерство и примењене науке. 
  8. ^ Kleinrock, Leonard; Lam S., Simon (април 1975). „Packet-Switching in a Multi-Access Broadcast Channel: Performance Evaluation” [Комутација пакета у каналу вишеструког приступа са емитовањем: Оцена перформанси] (PDF). IEEE Transactions on Communications - IEEE Трансакције о комуникацијама. COM-23 (4): 410—423. doi:10.1109/TCOM.1975.1092814. Приступљено 16. 2. 2023. 
  9. ^ Lam, Simon S.; Kleinrock, Leonard (септембар 1975). „Packet-Switching in a Multi-Access Broadcast Channel: Dynamic Control Procedures” [Комутација пакета у каналу вишеструког приступа са емитовањем: Процедуре динамичке контроле] (PDF). IEEE Transactions on Communications - IEEE Трансакције о комуникацијама. COM-23 (9): 891—904. doi:10.1109/TCOM.1975.1092917. Приступљено 16. 7. 2023. 
  10. ^ „IEEE Standard 802.3-2015” [IEEE стандард 802.3-2015]. IEEE. Приступљено 20. 3. 2022. 
  11. ^ Tanenbaum & Wetherall 2010, стр. 285

Литература

[уреди | уреди извор]
  • Tanenbaum, Andrew; Wetherall, David (2010). Computer Networks [Рачунарске мреже] (5th - 5. издање изд.). Pearson. ISBN 978-0132126953.