Tosiaikajärjestelmät Luento 7: Tietoliikenne Tiina Niklander Jane Liu: Real-time systems, luku 11 Sisältö Verkkomalli (ja ominaisuudet) Pakettien vuorottaminen verkossa Weighted-Fair Queueing (ja muunnelmat) WFQ, RPS, FWFQ EDD (Earliest-Due-Date) muunnelmat D-EDD, J-EDD, Painotettu kierto (Weighted Round-Robin, WRR) 1
Vaatimuksia verkolle Tunnetut ja rajoitetut siirtoviipeet Deterministinen käyttäytyminen häiriötilanteissa (ylikuorma, vikaantumiset) Kiireellisyyden tuki (lyhyt vasteaika, muita tärkeämpi viesti) Yhteydellisyys (tosiaikainen ympäristö ei odota, hiljaisuuden syy täytyy tietää) Verkkoja? Paikallinen LAN tai väylä Pieni, luotettava Kovat mahdollisia Laaja WAN, MAN Isompi, hitaampi Vain pehmeitä, kuten multimedia 2
Verkon rakenne ja aikarajat Tavoitteena käyttää standardeja osia Helposti saatavilla, huolto helpompaa Usein kustannustehokkaita Paljon standardeja: Ethernet, vuororengas LAN hyvin yleinen ratkaisu Aikarajoihin vaikuttaa myös Kuormitusmalli Prioriteetit Häiriötilanteet Kommunikointimalli Liu kuva 11-1 3
Mallinnetaan (jälleen kerran) Ajan kuluminen Yksi aikayksikkö yhden maksimikokoisen paketin siirtoaika tarkasteltavassa yhteydessä Aikayksikkö ei siis sidota minuutteihin tai sekunteihin, se on eri verkoissa eri kokoinen Verkon kapasiteetti Siirtoviive lasketaan käyttäen noita abstrakteja yksiköitä, kuinka monta pakettia ehdittäisiin siirtää Yhteyden pituus kuinka monta pakettia voi yhtäaikaa olla matkalla (eli kuinka monta abstr. yks. kuluu yhden paketin kulkemiseen) Kaistanleveyden todellinen numeerinen arvo ei ole tärkeä, joten se on aina 1 (vrt. käyttöaste) Verkon perusominaisuudet Ominaisuudet vaihtelevat verkosta toiseen verkon kaistanleveys, paketin koko ja siirtoaika Mittareita: Puutokset: Miss ratio, loss ratio Viiveen vaihtelu (Delay jitter) Puskurin tarve (Buffer requirement) Läpimenoaste (Throughput rate) 4
Liikennöintimallit Jaksolliset (periodic) (p i,e i,d i ) Näitä tuottavat ja käyttävät jaksolliset tapahtumat Esimerkkejä: sensori data, Constant-Bit-Rate ääni ja videodata Jaksottomat (ei takarajaa) Näitä tuottavat ja käyttävät jaksottomat tapahtumat Tavoitteena: pitää viiveiden keskiarvo mahdollisimman pienenä (vrt. tapahtumat) Liikennöintimallit Sporadiset Käytetään mallintamaan purskeista (ja vaihtelevaa) liikennettä Esimerkiksi MPEG-koodattu videodata Tarkempia liikennöintimalleja (luku 7.8.1) Ferrari & Verma (FeVe) Vuotava astia (Leaky Bucket),E), kun E on koko, on tahti 5
Sporadinen liikenne Purskeinen liikenne Keskiarvoistettu liikenne Vuon valvonta Kolme abstraktia mallia Vuopohjainen (flow): ei tosiaikainen esim. TCP:n liikkuva ikkuna Määräpohjainen (rate): jaksolliset ja sporadiset Säännöllinen, yhtenäistää lähettäjän ja vastaanottajan kapasiteetin, esim. XTP Vrt. ed. kalvon kuva, jossa tasataan välejä Ansiopohjainen (credit): Äkillinen tosiaik. Etukäteen varattava, pyyntö tai varasto 6
Tosiaikaisten viestien valvonta Määräpohjainen valvonta ensimmäiseen solmuun (toimii samalla hyväksymistestinä) Viiveen vaihtelun valvonta myöhempiin solmuihin, esim. säilyttämällä ensimmäisen solmun liikennöintimalli Sisältö Verkkomalli (ja ominaisuudet) Pakettien vuorottaminen verkossa Weighted-Fair Queueing (ja muunnelmat) WFQ, RPS, FWFQ EDD (Earliest-Due-Date) muunnelmat D-EDD, J-EDD, Painotettu kierto (Weighted Round-Robin, WRR) 7
Pakettien vuorottaminen Algoritmit toimivat reitittimissä Reitittimellä on jono kullekin eteenpäin menevälle yhteydelle (connection) Eri yhteyksien paketit päätyvät samaan fyysiseen linkkiin vuorotellen Tarkastellaan vain yhtä eteenpäin vievää reittiä WFQ (Weighted Fair-Queueing) Demers, Keshav & Shenker: Analysis and Simulation of a fair queueing algorithm. Proc. of ACM Sigcomm, p. 1-12, 1989. Kytkin: monta sisään ja yksi puskuroitu ulos, jokaiselle saapuvalle yhteydelle varattu osa kaistasta Miten järjestää saapuvat paketit ulos? Käytetään lopetusnumeroa (finnish number). Se kertoo millä 'kierroksella' tietystä yhteydestä saapuvan sanoman pitäisi viimeistään päästä ulos, jos koko kaista on varattu saapujille. Kukin paketti lähetetään kokonaan ennen seuraavan valintaa Emuloi GPS (Generalised Processor Sharing) teor. mallia 8
WFQ vuorotusperiaate Kunkin yhteyden ensimmäiselle paketille lasketaan lopetusnumero sijoitetaan lopetusnumero SFN-jonoon (Smallest Finish Number) Tyhjään järjestelmään ensimmäisenä saapuva paketti lähetetään samantien tulipa se mistä yhteydestä tahansa Seuraavaksi lähetettävän paketin valinta Jos samasta yhteydestä i uusia paketteja odottamassa, käsitellään seuraava kuten yllä Valitaan seuraavaksi lähetettäväksi paketiksi se, jonka lopetusnumero SFN-jonossa on pienin Lopetusnumeron (fn) laskeminen Tavoitteena ylläpitää yhteydelle annettua osuutta kokonaiskapasiteetista 1) Tyhjään linkkiin saapuva (yhteyden i) ensimmäinen paketti: t -1 = t; U b += u i ; fn i += e/u i ; 2) Seuraavat paketit (kun linkki on kiireinen) Yhteyden i ensimmäinen paketti Linkin laskuri FN += (t- t -1 )/ U b fn i = max(fn, fn i ) + e/u i ; ja SFN-jonoon (fn i,i) t -1 = t; U b += u i ; 9
Lopetusnumeron (fn) laskeminen 3) Yhteyden i paketin lähetys päättyi Lisää yhteyden i paketteja jonossa fn i += e/u i ja SFN-jonoon (fn i,i) Ei tällä hetkellä lisää paketteja i:ssä ( -> idle) Linkin laskuri FN += (t- t -1 )/ U b t -1 = t; U b -= u i ; Muuttujat: FN on linkin sarjanumero, ja fn i yhteyden U b on linkin kaistanleveys ja u i yhteyden t on nykyhetki ja t -1 kertoo linkin tietojen edellisen muutoshetken WFQ esimerkki Liu kuva 7-14 d Ennen ajanhetkeä 18, kun FQ4 (osuus 3/8) puuttuu, FQ 1 (osuus ¼) saa 2/5 kaistasta, FQ 2 (osuus 1/8) 1/5 osan ja FQ 3 (osuus ¼) 2/5 osaa. Ajanhetken 18 jälkeen: kaikki saavat vain niille varatun osuuden. 10
Rate-Proportional Server (RPS) Stiliadis & Varma: 'Rate-proportional servers: a design methodology for fair queueing algorithms'. ja 'Efficient fair queueing algorithm for packet-switched networks'. IEEE/ACM Tr. on Networking, 6(2),April 1998. Teoreettinen malli ja sen pohjalta laadittu algoritmi Frame-based WFQ, joka ei ole yhtä reilu kuin WFQ, mutta sen yleiskuormitus on hiukan pienempi. FWFQ laskee lähetysarvon (vrt. lopetusnumero) vain ajoittain eli sitten, kun kaikki ko. 'kierrokselle' kuuluneet paketit on lähetetty Yhteyden ja linkin potentiaali Kaikki GPS-tyyppiset algoritmit käyttävät ajanmukana muuttuvaa järjestyslukua (potentiaali) Potentiaali on abstrakti väline kuvata linkin ja yhteyden toimintaa, se voi olla lopetusnumero (kuten WFQ), virtuaalikello (kts. koko kaistanleveys luento 3), takaraja,... Potentiaalin (t) ja ajan t suhteen täytyy olla (t 2 )- (t 1 ) t 2 -t 1 linkin ollessa käytössä (t)< i (t) yhteydelle i, kun lähetettäviä pakettejä 11
Potentiaali tarkemmin Yhteyden ulos (=linkin) ollessa käytössä, on kunkin sisääntulevan jonottavan yhteyden potentiaali kasvava ajanfunktio (nondecreasing) Linkin potentiaali (t) ajanhetkellä t on t:n ja jonottavien yhteyksien potentiaalien funktio Kun yhteys on vapaa (eikä jonota) sen potentiaali pysyy vakiona. Kun ensimmäinen paketti saapuu tällaista yhteyttä pitkin, yhteyden potentiaaliksi tulee max( i (t - ), (t - )), missä juuri ja juuri t - <t FWFQ Frame-Based WFQ WFQ pyrkii tarjoamaan mahdollisimman tasapuolisesti kullekin kuuluvan osuuden FWFQ on epäreilumpi, se laskee osuuden vain jaksottain. Laskentavälin minimipituus (kehyksen koko F) täytyy olla suurempi kuin kaikkien yhteyksien suurimman paketin teoreettinen siirtoaika (eli e i /u i ) Tätä jaksottaista laskentaa kutsutaan potentiaalin kalibroinniksi FWFQ:n aikavaativuus on O(1), kun WFQ:n on O(n) 12
FWFQ: Potentiaalin kalibrointi Kaikkien viritettyjen (backlogged) yhteyksien potentiaaleille pätee π i( tk ) kf Kaikkien yhteyksien potentiaaleille pätee πi( tk) < ( k + 1)F Kalibroinnissa asetetaan πi( tk) = max( π t, kf ( ) ) Kalibrointien välillä linkin potentiaali kasvaa tasaisesti (yhden yksikön yhdessä aikayksikössä) πi( t) = π ( tk) + ( t tk), kun tk < t tk + 1 k FWFQ: pakettien käsittely Ensimmäinen saapuva paketti t -1 = t; k+=1; i = e/u i ; Jos i >kf, niin merkkaa paketti, Flag=T; X+=1 Laita jonoon ( i,i) Seuraavat paketit Yhteyden i ensimmäinen paketti i = + t- t -1 + e/u i Jos i >kf, niin merkkaa paketti, Flag=T; X+=1 Laita jonoon ( i,i) 13
FWFQ: pakettien käsittely Yhteyden i paketin lähetys päättyi Jos merkattu paketti, niin X-=1; Jos X=0 ja Flag=T, niin kalibroi eli = max( + t- t -1,kF); k+=1; t -1 = t; Flag = F; Jos yhteys pysyy viritettynä (eli lisää paketteja jonossa), niin i = i +e/u i ; Jos i >kf, niin merkkaa paketti, Flag=T; X+=1 Laita jonoon ( i,i) FWFQ esimerkki u 1 =1/4 e 1 = 1 Liu kuva 11-4 u 2 = 1/8 e 2 = 1 u 3 = 1/4 e 3 = 1.5 u 4 = 3/8 e 4 = 3 4 Liu kuva 11-4 Kaistan varaukset samat kuin edellä. Kehyksen koko 10, joten uudelleenkalibrointi noin joka 10. 'hetki', nämä merkitty nuolilla. Ensimmäinen ajankohta 14. Silloin millään saapujalla ei enää ole paketteja, jotka olisi pitänyt lähettää edellisellä kierroksella. Vastaavasti myöhemmät kalibrointikohdat. 14
Sisältö Verkkomalli (ja ominaisuudet) Pakettien vuorottaminen verkossa Weighted-Fair Queueing (ja muunnelmat) WFQ, RPS, FWFQ EDD (Earliest-Due-Date) muunnelmat D-EDD, J-EDD, Painotettu kierto (Weighted Round-Robin, WRR) Koko yhteyttä tarkastelevia Delay Earliest-Due-Date (D-EDD) Jittered-EDD WRR (Weighted Round-Robin) 15
Delay Earliest-Due-Date (D- EDD) Ferrari & Verma: A scheme for real-time channel establishment in wide-area networks. IEEE Journal on Selected Areas in Communications 8(3), April 1990. Perustuu EDF:ään Päästä-päähän yhteyden muodostuksessa yhden paketin kuljettamiseen käytettävissä oleva aika jaetaan linkkien kesken, kukin linkki saa vähintään tarvitsemansa minimin. Saapuvat viestit jaksotetaan suhteellisen saapumisaikansa mukaisesti. (Näin estetään varattua laajempi kaistan käyttö) Muistuttaa sporadisen palvelimen erikoistapausta D-EDD: yhteyden muodostus (1/2) Lähettäjä tekee aloitteen. Se lähettää request-forconnection -viestin, jossa kuvataan tulevasta liikenteestä p i pakettien minimisaapumisväli D i aika, jolloin viimeistään vastaanottajalla Jokainen matkalle osuva kytkin (switch) Päättää hyväksyykö Varaa alustavasti tarvittavan kapasiteetin Laskee maksimiviiveen ja sen pohjalta paikallisen suhteellisen aikarajan Lisää lasketun aikarajan viestiin ennen edelleenlähettämistä 16
D-EDD: yhteyden muodostus (2/2) Vastaanottaja tarkistaa reitin kelvollisuuden Laskee kaikkien kytkimien suhteellisen aikarajat yhteen (oltava D i ) Jos aikaraja ylittyy, yhteydenmuodostus epäonnistui Kun yhteys voidaan muodostaa, vastaanottaja määrää kytkimien paikallisen aikarajat Se voi jakaa ylimääräisen ajan kytkimille Paluuviestistä kytkimet poimivat uudet aikarajansa tekevät pysyvät varaukset tarvittaville resursseille (kaistaleveys ja puskuritila) vapauttavat tilapäisen varauksen ylijäämän D-EDD: Pakettien käsittely Vuonvalvonta on keskeistä. EDF ei selviä ylikuormasta, joten sitä ei saa syntyä. Saapuvan paketin paikallista aikarajaa ei lasketa todellisesta saapumisajasta vaan ns. efektiivistä saapumisajasta e e a i, j = max ( ai, j 1 + pi, ai, j) Paikallinen aikaraja on siis 17
Jittered-EDD Verma, Zhang & Ferrari: Delay jitter control for real-time communication in packet switching network. Proceedings of Tricomm '91, p. 35-46, April 1991. Jitter-EDD on D-EDD:n muunnelma, jossa pienennetään sanoman kulkuajan variaatiota. D-EDD:ssä tuo vaihtelu on varsin suuri, jopa k =1 ( Di, k ) k Jitter-EDD ei ole yhtä ahne. Sanomaa ei välttämättä aina lähetetä heti kun voitaisiin. Lähetyshetkien väli pyritään vakioimaan. j J-EDD: toiminta Yhteyden muodostus kuten D-EDD Paketin käsittely: Vaihtelun tasoittamiseksi lähetettävään pakettiin lisätään tieto ahead-time eli kuinka paljon se on etuajassa suhteessa aikarajaansa. Saapuvalle paketille lasketaan lähetysaika (ready time), jolloin vasta se laitetaan lähetysjonoon (D- EDD laittoi jonoon heti) e r i j = max( ai, j, ai, j + ahi,, j ) 18
Esimerkki D-EDD Liu Kuva 11-6 J-EDD WRR (Weighted Round-Robin) Kustakin saapuvasta yhteydestä lähetetään yhdellä kierroksella korkeintaan maks. sanomia eteenpäin Greedy-WRR (ahne-wrr): lähettää aina jos voi Stop-and-Go: Lähetetään edellisellä jaksolla saapuneista maksimimäärä (yleensä kaikki) Hierarchical Round-Robin (HRR): eri kuormille eri jakson pituus samassa linkissä Budgeted WRR: ei jaksollinen, mutta tahdistaa silti lähetyksiä paikallisesti. 19
WRR Ei globaalia kelloa tai aikarajan mukaan järjestettyä jonoa Ei tehtävien (tai töiden) välisiä riippuvuuksia Yhteyksillä on vakiotahti (constant bit rate) Esim ääni ja osa multimediaprotokollista Datavirtaa (message stream) kuvataan (p i,e i,d i ) P ja D kuten ennenkin, mutta e on nyt viestien määrä yhdellä kierroksella (instance) Greedy-WRR Kullakin yhteydellä on paino wt i Yhden kierroksen kuluessa yhteyden i viesteistä lähetetään edelleen korkeintaan wt i kappaletta Yhteydet käsitellään vuorotellen (siitä RR) ja kaikki painon mukaan mahtuvat viestit lähetetään edelleen Kierroksen maksimipituus RL on kiinteä RL n i = 1 wt i RL < min( pi) p RL i / wt i e i 20
Stop-and-Go Pitää kierroksen pituuden RL vakiona, jakaa siis lähetysajan kehyksiin Kehyksessä j saapuva sanoma lähetetään kehyksen j+1 aikana (jos tahti on pysynyt vakiona) Kehysten synkronointi kytkimien välillä vaikuttaa sekä kulkuaikaan että tarvittavaan puskuritilaan. Yhteenveto Prioriteettipohjaisia käytäntöjä Performance Measures WFQ Delay- EDD Jitter- EDD Acceptance Test O(1) O(1) O(1) Sched. Complexity O(n) O(logn) O(logn) End-to-end delay bound E/u+ (e+1) D D End-to-end jitter const const const Buffer-space requirem. const const const 21
Yhteenveto Painotettu kierto (WRR) Performance Measures Greedy WRR Synkr. S&G Ei synkr. S&G Acceptance Test O(1) O(1) O(1) Sched. Complexity O(1) O(l) O(1) End-to-end delay bound p i + ( -1) RL p i + RL End-to-end jitter p i- -e i + ( -1) (RL-1) 2RL 2RL Buffer-space requirem. kts. alla 2wt i 3wt i ( 1+ ( k 1)( RL 1) / p i ) e i 22