530 likes | 809 Views
Kompiuterių sistemos. 2 paskaita lekt. dr. A.Slotkienė. Srauto valdymas. Paketų praradimas ir vėlinimas įtakoja persiunčiamo duomenų srauto valdymą Apie prarastus paketus informuoja patvirtinimai, o apie išgadintus paketus sužinome taikydami klaidų kontrolės metodus
E N D
Kompiuterių sistemos 2 paskaita lekt. dr. A.Slotkienė
Srauto valdymas • Paketų praradimas ir vėlinimas įtakoja persiunčiamo duomenų srauto valdymą • Apie prarastus paketus informuoja patvirtinimai, o apie išgadintus paketus sužinome taikydami klaidų kontrolės metodus • Vienas iš sprendimo būdų praradus duomenis ar jų patvirtinimus yra automatizuotas patvirtinimo užklausimas (Automatic Repeat Request (ARQ)). • ARQ taikomi trijų tipų protokolai: – Sustok ir palauk (stop-and-wait) – Grįžti N žingsnių (Go-back-N) – Selektyvus kartojimas (Selective-repeat)
Patvirtinimas • Patvirtinimai gali būti: • Teigiami, pranešantys, kad paketas sėkmingai priimtas (ACK) • Neigiami, informuojantys kad paketas gautas su klaidomis (NAK)
Sustok ir palauk protokolas (a) Prarandamas 1 paketas Time-out time A frame 0 frame 1 frame 1 frame 2 ACK ACK B (b) Prarandamas ACK Time-out time A frame 0 frame 1 frame 1 frame 2 ACK ACK ACK B Gavėjo lango dydis = 1 Siuntėjo lango dydis = 1
Sustok ir palauk protokolas Jei neatsiunčiamas ACK, paketai dubliuojasi Sprendimas: panaudoti paketo antraštėje numeracija. Numeracijai taikomas vienas bitas: 0 ir 1
Vieno bito paketų numeracija (a) Normalus. (b)Su pakartotiniais siuntimais (seq, ack, pkt)
S-W protokolo efektyvumo skaičiavimas • Procesas: • Suskaidomi į labai nedidelius paketus • Laukiama ACK • Siunčiamas kitas paketas • Šis protokolas pasižymi paprastumu, tačiau netenkina šiuolaikinių ryšiųreikalavimų • Labai neefektyvus kai kuriuose fizinėse terpėse, kur a > 1
Slenkantysis langas • Įgalina iš karto perduoti kelis paketus • Siunčiantysis mazgas turi buferį (W-lango dydžio), kuriame laikinai saugo persiunčiamus paketus • Priimantysis mazgas gali išsiųsti iki W paketų nesulaukęs • ACK
Slenkantysis langas • Grįžti N žingsnių • Gavėjo lango dydis =1 • Jie paketas prarandamas persiunčiamas prarastasis ir tik tuomet kiti • Selektyvus kartojimas • Gavėjo lango dydis > 1 • Jie paketas pararandamas persiunčiamas tik prarastasis • Slenkančiojo lango paketai numeruojami moduliu 2k • Efektyvumas apskaičiuojamas:
Slenkančiojo lango protokolai Grįžti N žingsnių Selektyvus kartojimas
Grįžti-N-žingsnių 4 frames are outstanding; so go back 4 Go-Back-4: time fr 0 fr 1 fr 2 fr 3 fr 4 fr 5 fr 3 fr 4 fr 5 fr 6 fr 6 fr 7 fr 8 fr 9 A B Out-of-sequence frames ACK1 ACK2 ACK4 ACK5 ACK3 ACK7 ACK6 ACK9 ACK8 error ACKing next frame expected Gavėjo lango dydis = 1 Siuntėjo lango dydis = > 1
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 ack 15, win 4 1 1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 0 m0 m0 1 1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 1 m1 1 1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 1 1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 0 m0 m0 0 0 m0 ack 1, win 3 1 1 1 m1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4 4 m4
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 2 3 m2 m3 3 3 m3 3 3 m3 4 4 m4 4 4 m4
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 4 3 m3 m4 3 3 m3 3 4 m3 4 4 m4 4 4 m4
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 4 4 m4 4
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 m4 4 4 m4 4
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 ack 4, win 0 m1 1 1 1 1 m1 2 2 2 m2 m2 2 2 m2 3 3 3 m3 m3 3 3 m3 4 4 4 m4 m4 4 4 m4
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 ack 4, win 1 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4 4 m4 5 5 m5 5 5 m5
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 ack 4, win 2 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4 4 m4 5 5 m5 5 5 m5 6 6 m6 6 6 m6
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4 4 m4 m5 5 m5 5 5 5 5 m5 6 6 m6 6 6 m6
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4 4 m4 m5 5 5 5 5 m5 6 m6 6 6 m6 6 6 m6
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4 4 m4 m5 m5 5 5 5 5 5 m5 ack 6, win 0 6 6 6 m6 m6 6 6 m6 7 7 m7 7 7 m7 8 8 m8 8 8 m8 9 9 m9 9 9 m9 10 10 m10 10 10 m10
Grįžti-4-žingsnius pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4 4 m4 ack 6, win 4 m5 5 5 5 5 m5 6 6 m6 6 6 m6 7 7 m7 7 7 m7 8 8 m8 8 8 m8 9 9 m9 9 9 m9 10 10 m10 10 10 m10
Grįžti-N-žingsnių efektyvumas • Kai yra klaidų tikimybė:
Selektyvus kartojimas • Persiunčiamas tik sugadintas paketas • Apie sugadintą paketą pranešama NAK • Efektyviau išnaudoja kanalą Gavėjo lango dydis = > 1 Siuntėjo lango dydis = > 1
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 ack 15, win 4 1 1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 0 m0 m0 1 1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 1 m1 1 1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 1 1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 0 m0 m0 0 0 m0 ack 1, win 3 1 1 1 m1 m1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4 4 m4
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 3 m3 m3 4 4 m4 4 4 m4
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 nack 2 2 2 m2 2 2 m2 3 3 m3 3 3 3 m3 m3 4 4 m4 4 4 m4
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 3 2 m3 m2 3 3 m3 3 3 4 m3 m3 4 4 m4 4 4 m4
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 m1 1 1 1 1 m1 2 2 m2 2 3 2 m3 m2 3 3 m3 3 4 3 m3 m3 4 m4 4 4 m4 4 4 m4
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 ack 4, win 0 m1 1 1 1 1 m1 2 2 2 m2 m2 2 2 m2 3 3 3 m3 m3 3 3 m3 4 4 4 m4 m4 4 4 m4
Selektyvus kartojimas (4) pavyzdys B A seq. data seq. data 0 0 m0 0 0 m0 ack 4, win 1 m1 1 1 1 1 m1 2 2 m2 2 2 m2 3 3 m3 3 3 m3 4 4 m4 4 4 m4 5 5 m5 5 5 m5
Selektyvus kartojimas - efektyvumas • Kai yra klaidų tikimybė:
Slenkančiojo lango apskaičiavimo pavyzdys • Tegu RTT=100 ms. • Visi tinklo segmentai nuo siuntėjo iki gavėjo veikia 100 Mbps sparta. • Norime pasiekti 10 Mbps vidutinę duomenų persiuntimo spartą TCP protokolu tarp siuntėjo ir gavėjo. • Koks turėtų būti siuntimo lango dydis?
2K SEQ=0 RTT apskaičiavimas Sender Receiver 0.9 sec RTT ACK = 2048 2.2 sec RTT = 2.2 s - 0.9 s. = 1.3 s, kur tt=0.9s
Sprendimas • 100 Mbps tinklo segmentų spartos fiziškai neriboja norimos 10 Mbps vidutinės persiuntimo spartos. • Galimi tik atsitiktinės pavienių tinklo segmentų perkrovos, todėl skaičiuosime pagal formulę, kuri tą įvertina.