440 likes | 683 Views
6558/G558 DATAKOMMUNIKATION. Kapitel 2: Fysisk nivå and datalänksnivå (Physical and Data link). Innehåll. Kodning av bitar med fysiska signaler Inramning Feldetektion (inte felkorrigering!) Glidfönsteralgoritmen (sliding window algorithm). Kodning av bitar.
E N D
6558/G558DATAKOMMUNIKATION Kapitel 2: Fysisk nivå and datalänksnivå (Physical and Data link)
Innehåll • Kodning av bitar med fysiska signaler • Inramning • Feldetektion (inte felkorrigering!) • Glidfönsteralgoritmen (sliding window algorithm)
Kodning av bitar • Signaler framskrider i ett fysikaliskt medium • modulering av elektromagnetiska vågor • variera t.ex. spänning • Koding av binärt data i signaler • t.ex. 0 som låg signal och 1 som hög signal • detta kallas Non-Return to Zero (NRZ)
Shannons teorem • Hur många bitar per sekund bps kan man maximalt skicka igenom ett fysikaliskt medium? • Antaganden: • signalen använder frekvenser från f1 till f2 • signalen har styrkan S Watt och bruset N Watt • Claude Shannon: max bps = (f2-f1)log2[ (S+N)/N ]
Kodningsmetoder • Non-Return to Zero Inverted (NRZI) • Övergå från nuvarande signal till den andra för att beteckna 1, hålls kvar vid nuvarande signal för att beteckna 0 • Manchester • Beräkna NRZ och sänd XOR(NRZ,clock) • Används i Ethernet
Kodningsmetoder • 4B/5B • varje 4-bits sekvens kodas med 5 bitar • välj 5-bitssekvenser som har högst en nolla i början och högst 2 nollor i slutet • Resultat: aldrig fler än 3 konsekutiva nollor • 5-bitskoderna skickas enligt NRZI
Inramning (frames) • Bitsekvenser bryts ner till ramar • Utförs av nätverksadaptorn
Inramningsmetoder • Vaktpostmetoden (sentinel) • Speciella 8-bitars tecken betecknar kända ställen i ramen • exempel på protokoll: BISYNC • potentiellt problem: de speciella tecknen finns i nyttolasten • lösning: escape-karaktär, kallas DLE • sändaren: sätt in en extra DLE framför alla specialtecken SYN, SOH, STX, ETX, DLE i nyttolasten • mottagaren: ta bort DLE och godkänn det följande tecknet utan att tolka det
Inramningsmetoder • Bit stuffing • ramen kantas av ett speciellt bitmönster: 01111110 • ex.: HDLC, SDLC, PPP • potentiellt problem: det speciella mönstret finns i nyttolasten • lösning: bit stuffning • sändaren: sätt in en 0 efter 5 konsekutiva ettor • mottagaren: ta bort nollan om den kommer efter fem ettor
Inramningsmetoder • Räknare (counter) • inkludera nyttolastens längd i headern • problem: räknaren får ett eller flera bitfel • lösning: kontrollsumma CRC • exempel: DDCMP
Feldetektering • I princip en omöjlig uppgift! • Målsättning • tillför så få extra bitar som möjligt i ramen för feldetektering • undersök vilka bitfel som är vanliga och välj en feldetektionsmetod som biter på dessa fel • uppskatta hur ofta och vilka fel som slinker igenom
Bitparitet • 1-dimesionell paritet: • addera en paritetsbit för t.ex. varje byte eller 7 bitar. • 2-dimensionell paritet • upptäcker och korrigerar(!) enbitsfel • upptäcker tvåbitsfel och kan ibland korrigera
Cyclic Redundancy Check CRC • Addera k bitar redundant data till ett meddelande av längd n bitar • typiskt k << n • t.ex k = 32 och n = 12000 (1500 bytes) • Representera n-bitars meddelandet såsom ett polynom av grad n-1 • t.ex. MSG = 10011010 som M(x) = x7+x4+x3+x1 • Välj divisionspolynom C(x) av graden k • t.ex. k=3, C(x) = x3+x2+1
CRC: Principer • Modifiera M(x) så att man sänder ett polynom P(x) som är jämnt delbart med C(x) • skjut M(x) k steg åt vänster: M(x)xk • beräkna resten R(x) = M(x)xk/C(x) • P(x) = M(x)xk + R(x), med egenskapen P(x)/C(x) = 0 • Mottagaren får polynomet P(x)+E(x) • E(x) betyder att bitfel uppstått • Dividera P(x)+E(x) med C(x) och se vad resten blir: • om [P(x)+E(x)]/C(x) <> 0 då har vi säkert bitfel • om [P(x)+E(x)]/C(x) = 0 inga bitfel??? Tyvärr, om E(x)/C(x) = 0 dvs. om felet är delbart med CRC-polynomet upptäcks inte felet!
CRC • Alla enbitsfel kan upptäckas (xk och x0 bör finnas i CRC-polynomet) • Om CRC-polynomet har faktorn (x+1) upptäcks alla fel med udda antal bitar • Burst-fel (konsektuiva bitar är felaktiga) upptäcks finns bursten längd < k bitar • Många burstfel längre än k upptäcks också • t.ex. CRC-32 = x32+x26+x23+x22+x16+x12+x11+x10 +x8+x7+ x5+x4+x2+x+1 (Ethernet)
Internet Checksum • Betrakta bitarna som skall överföras som en sekvens av 16-bitars heltal. • Summera dem enligt ettans komplement • Tag ettans komplement av summan
Stop-and-Wait • Problem: att utnyttja länkkapaciteten till fullo • Exempel: • 1.5 Mbps link x 45 ms RTT = 67.5 Kb = 8 KB • ramar med 1 KB innebär 1/8 effektivitet
Glidfönster (Sliding Window) • Tillåter flera utstående ramkvitteringar • Högsta antalet okvitterade ramar kallas ”fönster”
< SWS ─ ■ ■ ■ ■ ■ ■ LAR LFS Sliding Window: sändaren • Beteckna varje ram med en sekvensnummer SeqNum • Upprätthåll tre tillståndsvariabler • send window size SWS • last acknowledgement received LAR • last frame sent LFS • Se till att LFS - LAR <= SWS • Inkrementera LAR när ACK kommer in • Håll SWS stycken ramar i buffern
< ─ RWS ■ ■ ■ ■ ■ ■ LFR LAF Sliding Window: mottagaren • Upprätthåll tre tillståndsvariabler • receive window size RWS • largest acceptable frame LAF • last frame received LFR • Se till att LFA – LFR <= RWS • Ram nr SeqNum inkommer • om LFR < SeqNum <= LFA accepteras ramen • om SeqNum <= LFR eller SeqNum > LFA förkastas ramen • Skicka kumulativa ACKs
Sekvensnumren SeqNum • SeqNum får ändliga värden, och värdena upprepas cykliskt • Antalet olika värden för SeqNum måste vara större än antalet utstående ramar • SWS <= MaxSeqNum-1 är inte tillräckligt • Betrakta ett tre bitars SeqNum, (0,...,7) • Antag SWS = RWS = 7 • sändaren skickar ramarna 0..6 • ramarna kommer fram men ACK tappas bort • sändaren skickar på nytt 0..6 • mottagaren väntar på att 7, 0..6 kommer! • Välj SWS < (MaxSeqNum+1)/2 • SeqNum glider fram inom två SWS/RWS
Nätverkstopologier • Bus (Ethernet) • Token ring (FDDI) • Trådlös (802.11)
Ethernet: översikt • Historia • utvecklad vid Xerox PARC i mitten av 1970-talet • bakgrund i Aloha paketradionätet i Hawaii • standardiserad av Xerox, DEC och Intel 1978 • Nära IEEE 802.3 specifikationen • CSMA/CD • Carrier Sense • Multiple Access • Collision Detection • Ramformat
Ethernet: adresser • Adress • unik, 48 bitar, unicast adress för varje adaptor • exempel: 8:0:e4:b1:2:fe • broadcast: alla är ettor ff:ff:ff:ff:ff:ff • multicast: första biten är 1 • Bandbredd: 10 Mbps, 100 Mbps, 1 Gbps • Kabel: 10Base5, 10BaseT • Accessproblem: distribuerad algoritm som garanterar rättvis åtkomlighet
Ethernet topologier • Kablering: 2500 m, 500m segment, 4 repeaters ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Repeater Host
Ethernet topologier • Hub-topologi
Ethernet: Sändningsalgoritm • Om kabeln är ledig • skicka genast (detta kallas 1-persistent = skickar med sannolikheten 1 om kabeln är ledig) • skicka högst 1500 bytes data • vänta 9.6 ms mellan ramarna • Om kabeln är upptagen • vänta tills den blir ledig och skicka då genast
Ethernet: kollisioner • Skicka och lyssna samtidigt • Om kollision inträffar • skicka 32 bitar ”jamming” och sluta • minimum ramlängd är 512 bitar = 64 bytes = header + 46 bytes nyttolast (+ preamble) • vänta och försök skicka på nytt enligt exponentiell back-off: • 1 ggn: efter 0 eller 51.2 ms • 2 ggn: efter 0, 51.2 ms, 102.4 ms eller 153.6 ms • n:te ggn: k x 51.2 ms , k <= n slumpmässigt vald • ge upp när n är stort, t.ex. n = 16
Token Ring • 16 Mbps IEEE 802.5 (tidigare IBM ring) • 100 Mbps Fiber Distributed Data Interface FDDI
Token Ring: översikt • Grundläggande princip • ramar cirkulerar i en riktning • en token (speciellt bitmönster) roterar i ringen • den som har token får sända • ta bort de egna ramarna när de kommer runt • noderna får chans till nättillgång i tur och ordning • Ramformat
Token ring: token release • När släpps token ? • släpp token genast då sista biten gått ut (immediate release) • släpp token då sista biten gått runt (delayed release)
Token timing • Token Holding Time THT • övre gräns för hur länge en nod får hålla token • Token Rotation Time TRT • tiden för hur länge det tar för token att gå runt ett varv • TRT <= (Aktiva noder) x THT + RingLatens • Target Token Rotation Time TTRT • överenskommen övre gräns för TRT
Token Timing • Varje nod mäter TRT • om uppmätt TRT > TTRT: sänd inte och ge token vidare • om uppmätt TRT < TTRT: token är tidig och noden får sända om den vill • Två typers nättrafik • synkron: kan alltid sändas då noden får token • asynkron: kan sändas ifall token är tidig
Token Maintenance • Försvunnen token • vid systemstart • bitfel som förstör den cirkulerande token • nod som höll token har kraschat • Generera en ny token • skicka ett tokenförslag med ett bud på TTRT • ta emot tokenförslag, uppdatera TTRT och skicka tokenförslag vidare • om nodens förslag gått runt sätter noden ut en ny token
Trådlösa lokala nätverk • IEEE 802.11 • Bandbredd 1-54 Mbps • Fysiskt medium • spread spectrum teknik (2.4 GHz) • infrarött ljus (räckvidd 10 m)
Spread Spectrum • Princip • sprid signalen över ett bredare spektrum än egentligen nödvändigt • svårare att avlyssna; man hör bara brus • Metod 1: Frekvenshoppning • hoppa pseudoslumpmässigt mellan olika frekvenser • både sändare och mottage har samma slumptalsgenerator och samma startvärde • IEEE 802.11 använder 79 st 1MHz breda frekvensband
Spread Spectrum • Metod 2: direktsekvens (Direct Sequnce) • för varje bit, skicka XOR av den biten och n slumpmässiga bitar • både sändare och mottagare använder samma slumpmässiga bitar • n = 11 inom IEEE 802.11
Kollisioner • Liknar Ethernet • Problem: gömda och exponerade noder
Media Access • Sändare skickar RequestToSend RTS • Mottagare svarar med ClearToSend CTS • Grannarna • hör CTS: är själva tysta • hör RTS men ingen CTS: OK att skicka • Mottagaren kvitterar med ACK • grannarna tysta tills ACK hörs • Kollisioner • ingen kollisionsdetektion • noderna antar att kollision skett om inget CTS hörs • exponentiell back-off
Mobilitet • Ad hoc - nätverk • Accesspunkter • ändlig räckvidd • varje mobil nod associeras till en accesspunkt