Kapitel 3 o 4 Att skicka signaler på en länk Tillförlitlig dataöverföring Jens A Andersson (Maria Kihl)
Översättning från bitar till signaler (2) Ett annat sätt att skicka bitar över en länk är genom att användasåkalladmodulering modulering. Bitarna representeras av en sinusvåg som är olika beroende på om det är en etta eller nolla som skickas. k Sinusvåg: gg() g(x)=a*sin(fx+p) ( ) x=0..2π Grundfrekvensen i sinusvågen utgör den så kallade bärfrekvensen. 11
Amplitudmodulering d l i 1 0 tid 12
Frekvensmodulering 1 0 tid 13
Fasmodulering (1) 1 0 tid 14
Fasmodulering (2) 00 01 10 11 tid 15
Spread Spectrum Idé: Sprid signalen över större bandbredd än nödvändigt di Två varianter: FHSS: Frekvenshopp DSSS: Spridningskoder i d = sekvenser av nollor och ettor så kallade chip-sekvenser (olika långa) 16
Signalkvalitet li Begrepp: Dämpning (attenuation) Distorsion (distorsion Brus (noise) Överhörning (cross-talk) Bitfelsfrekvens (bit error ratio, BER) 18
Att få datorer att kommunicera När människor kommunicerar använder vi ett språk. Datorer kommunicerar med hjälp av protokoll. Två människor måste använda samma språk för att förstå varandra! Två datorer måste använda samma protokoll för att förstå varandra! 19
Mänsklig dialog Hej! Hej! Kan du köpa mjölk? Ja visst! Hej då! Hej då! Dialogstart Informationsutbyte Dialogavslutning 20
Datordialog New connection Acknowledged Data request Data transfer End connection Acknowledged Dialogstart Informationsutbyte Dialogavslutning 21
Protokoll Applikation information Applikationsprotokoll Applikation information Nätadapter Fysisk länk Nätadapter 22
Protokoll - Standardisering di i Standardiseringsorgan ITU (tidigare CCITT) IEEE ISO IETF ETSI 3GPP 23
HTTP, ett applikationsprotokoll i k ll Hyper Text Transfer Protocol = HTTP Med HTTP kan man hämta web-sidor. HTTP request HTTP reply 24
Datapaket När data skall skickas mellan två datorer delas den (oftast) först upp i mindre delar, så kallade paket. Ett paket består av upp till tre delar: huvud, data och svans huvud (header) data (payload) svans (tail) Huvud och svans innehåller kontrollinformation. 25
Att överföra paket 110111 001111 100111 010011 Datapaketen måste komma fram utan fel till mottagaren. 26
Tillförlitlig li li dataöverföring?? 1 länk 0 Om en etta kommer fram som en nolla har det inträffat ett bitfel. Tillförlitlig dataöverföring innebär att sändare och mottagare ser till att all information kommer fram korrekt! 27
Länkhanterare I varje dator finns det en länkhanterare som ser till att data skickas k på ett tillförlitligt li li sätt över en länk. applikation data länkhanterare bitar nätadapter länk applikation data länkhanterare bitar nätadapter 28
Länkprotokoll k Länkhanteraren i sändaren och mottagaren använder ett länkprotokoll k ll för att kunna förstå varandra. applikation data länkhanterare bitar nätadapter applikationsprotokoll p länkprotokoll k ll länk applikation data länkhanterare bitar nätadapter 29
Från paket till bitar Sändarens nätadapter skickar en ström av bitar. Mottagaren måste gruppera bitarna i form av datapaket.??? paket nätadapter...01100111... länk bitar nätadapter 30
Från bitar till paket Hur kan mottagaren omvandla en bitström till en följd av datapaket? Ett exempel är att använda flaggor. En flagga är ett antal bitar med ett specifikt värde. När en flagga kommer vet mottagaren att en ny ram startar t eller slutar. flagga paket flagga 31
Vad gör man när det blir fel?? 1101011110 1101011111 Om datapaket inte kommer fram korrekt k kan mottagaren inte förstå informationen. 32
Att upptäcka bitfel Det är viktigt att mottagaren kan detektera om bitfel uppstår. Sändaren lägger till en eller flera bitar vars värde beror på innehållet i paketet. data extrabitar 33
Att upptäcka bitfel (2) Mottagaren kontrollerar att data och extrabitar stämmer överens. Om de gör det, har paketet kommit fram korrekt. Annars är paketet felaktigt och måste kastas. 34
Paritetsbit Sändaren lägger till en bit i slutet av paketet. Jämn paritet = jämnt antal ettor i hela paketet. Ojämn paritet = ojämnt antal ettor i hela paketet. Exempel på jämn paritet: 10011100 + 0 = 100111000 35
Kontrollsumma (checksum) Upptäcker fler fel än paritetsbit Princip, sändning: Dela upp bitströmmen i flera lika stora segment Summera segmenten Överskjutande ettor adderas till Gör ett-komplement på den nya summan Skicka segmenten + komplementet av summan 36
Kontrollsumma (checksum) (2) Princip, mottagning: Dela upp hela mottagna bitströmmen i segment (lika stora som mottagaren) Addera alla segmenten Addera överskjutande bitar Tag ett-komplement av summan Om komplementet av summan = 0 är mottagen bitström korrekt 37
Cyklisk k Redundanscheck d (CRC) Låt bitarna i paketet representeras av ett polynom. Exempel: 10011010 = x 7 +x 4 +x 3 +x = M(x) Använd ett generatorpolynom av grad k. Exempel: C(x) = x 3 +x 2 +1 (k=3) 38
CRC forts. Hitta ett annat polynom, R(x), så att M(x)*x k +R(x) = C(x) * f(x) [f(x) är ett ointressant polynom] betyder t d r att M(x)*x k + R(x) jämnt delbart med C(x) Skicka iväg bitarna som representeras av M(x)*x k +R(x) 39
CRC hos mottagaren Mottagaren tar emot M(x)*x k +R(x)+E(x) E(x) är feltermen. E(x) = 0 vid felfri överföring Mottagaren g utför [M(x)*x () k +R(x)+E(x)]/C(x) () ()] () Om E(x)=0 är resten vid divisionen =0 40