Kapitel 3 o 4
Att skicka signaler på en länk Tillförlitlig dataöverföring
Jens A Andersson (Maria Kihl)
2
Att sända information mellan datorer
♦Två datorer som skall kommunicera.
♦Datorer förstår endast digital information, dvs ettor och nollor
värd värd
11001000101
Digitalisering av ljud
Omvandling av ljud till binär data sker i tre steg:
1) Sampling 2) Kvantisering 3) Kodning
Detta kallas för Pulse Code Modulation(PCM).
4
Exempel: Bithastighet för telefoni
Analog signal i frekvensbandet 0 - 4kHz.
Nyqvist-teoremet medför att samplingsfrekvensen blir 8 kHz = 8000 sampel per sekund.
8-bitars kodning av varje sampel.
Bithastigheten blir 64 kbit per sekund
5
Dataöverföring på en länk
Två datorer kommunicerar över en länk.
Länken består av ett utbredningsmedium.
6
Länkens kapacitet
En länk kan överföra data med en viss hastighet, som anges i bitar per sekund.
Ett annat mått på länkens kapacitet är bandbredd.
Hög bandbredd medför hög överföringsshastighet.
7
Digital kommunikation (2)
Digital transmission: Bitarna representeras av digitala signaler.
Analog transmission: Bitarna representeras av analoga signaler.
110101 110101
Nätadapter Nätadapter
länk
8
Översättning från bitar till signaler
Det enklaste sättet att skicka bitar på en länk är genom att använda olika spänningsnivåer, så kallad linjekodning.
nätadapter 011001
Mottagaren läser av amplitudnivån och tolkar signalen.
volt
s
Non-return to zero (NRZ)
Nolla = låg spänningsnivå Etta = hög spänningsnivå
0 0 1 0 1 1 0 1 0 0
Synkronisering!
Problem?
10
Manchester
Kombinerar NRZ och en klockpuls.
Inga problem med synkronisering.
Signalfrekvensen är dubbelt så hög jämfört med NRZ.
0 0 1 0 1 1 1 1 0 1 0
11
Översättning från bitar till signaler (2)
Ett annat sätt att skicka bitar över en länk är genom att använda så kallad modulering.
Bitarna representeras av en sinusvåg som är olika beroende på om det är en etta eller nolla som skickas.
Sinusvåg: g(x)=A*sin(Fx+P) x=0..2π
Grundfrekvensen i sinusvågen utgör den så kallade bärfrekvensen.
12
Amplitudmodulering
tid
1 0
13
Frekvensmodulering
1 0
tid
14
Fasmodulering (1)
tid
1 0
Fasmodulering (2)
tid
00 01 10 11
16
Spread Spectrum
Idé: Sprid signalen över större bandbredd än nödvändigt
Två varianter:
♦FHSS: Frekvenshopp
♦DSSS: Spridningskoder = sekvenser av nollor och ettor så kallade chip-sekvenser
(olika långa)
17
Hedy Lamarr
18
Signalkvalitet
Begrepp:
♦Dämpning (attenuation)
♦Distorsion (distorsion
♦Brus (noise)
♦Överhörning (cross-talk)
♦Bitfelsfrekvens (bit error ratio, BER)
19
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!
20
Mänsklig dialog
Hej!
Hej!
Kan du köpa mjölk?
Ja visst!
Hej då!
Hej då!
Dialogstart Informationsutbyte Dialogavslutning
Datordialog
New connection Acknowledged Data request
Data transfer End connection
Acknowledged
Dialogstart Informationsutbyte Dialogavslutning
22
Protokoll
Applikationsprotokoll
Applikation Applikation
Fysisk länk
Nätadapter Nätadapter
information information
23
Protokoll - Standardisering
Standardiseringsorgan
♦ITU (tidigare CCITT)
♦IEEE
♦ISO
♦IETF
♦ETSI
♦3GPP
♦……
24
HTTP, ett applikationsprotokoll
Hyper Text Transfer Protocol = HTTP Med HTTP kan man hämta web-sidor.
HTTP request HTTP reply
25
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 och svans innehåller kontrollinformation.
svans (tail) data (payload)
huvud (header)
26
Att överföra paket
Datapaketen måste komma fram utan fel till mottagaren. 110111001111 100111010011
Tillförlitlig dataöverföring??
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!
1 länk 0
28
Länkhanterare
I varje dator finns det en länkhanteraresom ser till att data skickas på ett tillförlitligt sätt över en länk.
länk länkhanterare
nätadapter data bitar
länkhanterare nätadapter
data bitar
applikation applikation
29
Länkprotokoll
Länkhanteraren i sändaren och mottagaren använder ett länkprotokollför att kunna förstå varandra.
länkhanterare applikation
nätadapter
länk data
bitar
länkhanterare applikation
nätadapter data bitar länkprotokoll
applikationsprotokoll
30
Från paket till bitar
Sändarens nätadapter skickar en ström av bitar.
Mottagaren måste gruppera bitarna i form av datapaket.
nätadapter länk nätadapter
paket bitar
...01100111...
???
31
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 eller slutar.
paket
flagga flagga
32
Vad gör man när det blir fel?
Om datapaket inte kommer fram korrekt kan mottagaren inte förstå informationen.
1101011110 1101011111
?
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
34
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.
35
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
36
Kontrollsumma (checksum)
♦Upptäcker fler fel än paritetsbit
♦Princip, sändning:
zDela upp bitströmmen i flera lika stora segment
zSummera segmenten
zÖverskjutande ettor adderas till
zGör ett-komplement på den nya summan
zSkicka segmenten + komplementet av summan
37
Kontrollsumma (checksum) (2)
♦Princip, mottagning:
zDela upp hela mottagna bitströmmen i segment (lika stora som mottagaren)
zAddera alla segmenten
zAddera överskjutande bitar
zTag ett-komplement av summan
zOm komplementet av summan = 0 är mottagen bitström korrekt
38
Cyklisk Redundanscheck (CRC)
Låt bitarna i paketet representeras av ett polynom.
Exempel:
10011010 = x7+x4+x3+x = M(x) Använd ett generatorpolynom av grad k.
Exempel: C(x) = x3+x2+1 (k=3)
CRC forts.
Hitta ett annat polynom, R(x), så att
M(x)*xk+R(x) = C(x) * f(x) [f(x) är ett ointressant polynom]
Skicka iväg bitarna som representeras av M(x)*xk+R(x)
betyder att M(x)*xk+ R(x) jämnt delbart med C(x)
40
CRC hos mottagaren
Mottagaren tar emot M(x)*xk+R(x)+E(x)
E(x) är feltermen. E(x) = 0 vid felfri överföring
Mottagaren utför [M(x)*xk+R(x)+E(x)]/C(x)
Om E(x)=0 är resten vid divisionen =0