Linklaget - direkte forbindelser mellom noder Tilbakeblikk Kursets fokus nett for generell bruk pakkebaserte nett Foreleser: KjellÅge Bringsrud E-mail:kjellb A 1 2 3 4 5 N oder D 6 Link 2/8/2005 1 2/8/2005 2 Tilbakeblikk OSI Referansemodellen: lagdelt / abstraksjonslag et lag bygger på laget under og tilbyr en verdiøket tjeneste A Transport Nett Link Fysisk Ende-til-ende 2 3 5 Kom m unikasjonsm edium 2/8/2005 3 B Transport Nett Link Fysisk Generelt om Link-laget Hensikt? Å forbinde to noderinettet (og ende-maskinenetilførstenode inettet) Simplex, Halfduplex, Fullduplex enten eller begge veier sam tidig Spesialtilfeller: Flerenoderkoblettilsam m eledning (Ethernet) Flerenoderkobletiring (sim plex mellom nodene): (Token ring, FDDI) Disse spesialtilfellene blirbehandletsenere 2/8/2005 4 1
Linklagets abstraksjon Linklaget - utfordringer Nettlag Linklag Fysisk lag abstraksjon Problem er/utfordringer? 2/8/2005 5 Utfordringer Rammeinndeling/innramming Feildeteksjon/feilretting Flytkontroll Spesialtilfelle flere noder deler en link (som i Ethernet) => Behov for adgangskontroll til linken (mediet) 2/8/2005 6 Rammeinndeling Problem :Dele sekvensen avbitopp ir Im plem enterestypisk avnettverksadapter A dapterhenter(legger)rammerfra(i)nodensinternlager bit-overføring ramme-overføring Abstraksjon av linjen:uendelig sekvensav bit. Hvordan bestem m estartog slutttiln? Avsendernode Adapter Mottagernode A dapter 2/8/2005 7 Rammer (engelsk: frames) O verføringsenhetm ellom noder/adaptere En ramme= data (bit)som utgjøren naturlighelhet (variabeltellerfastantallbit/byte) Bitsom skaloverføres(f.eks.pakke): Bitsom skaloverføres,pakkesinn ien : Ekstrabitersettesinn bak og/ellerforan,ognoen gangerinne i dataenesom overføres.hensikt? avgrensen detekterefeil kontrollereflyt 2/8/2005 8 2
Innramming iforhold tilo SI- lagene Byte-orienterte protokoller Tidlig tilnærming til innramming opphav i byte/character orienterte terminaler (byte= oktett) Nettverkslag Linklag Fysisk lag BISYNC (Binary Synchronous Communication) IBM 60-tallet PPP (Point-to-Point Protocol) kommunikasjon over modem, f.eks. mellom hjemme-pc og ISP 2/8/2005 9 2/8/2005 10 Byte-orienterte protokoller Bruk av vokter BISYNC 8 8 8 8 8 16 S S S S E Y Y O Header T Body T CRC N N H X X vokter tegn Problem: Hva skjer når SOH, STX og ETX forekommer i datadelen av rammen? Løsning: Markerer disse med DLE foran (og DLE i data med DLE DLE) Kalles gjerne tegn-støffing (character stuffing) 8 8 8 8 8 16 S Y N S Y N S O H D E L T E X S T X D S L O E H E T X CRC 2/8/2005 11 Byte-orienterte protokoller Bruk av byte-teller (antall) 8 8 8 14 42 16 S S Y N Y N C ount Header Body CRC Class Problem: Hva skjer når Count feltet har bit-feil? Løsning: oppdages når CRC feiler ventetilnestesyn; prøvepånyttderfra rammetap For større sikkerhet (redundans): både End-of-Text og teller 2/8/2005 12 3
Bit-orienterte protokoller Bit-orienterte protokoller Regnes som mer moderne enn byte-orienterte En ramme er en samling bit HDLC (også SDLC): avgrenser rammen med en spesiel bit-sekvens 01111110 16 16 01111110 Header Body CRC flag-byte 01111110 2/8/2005 13 Problem: spesielle bit-sekvens forekommer i datadelen Løsning: bit-støffing sender: hver gang fem 1-ere oppdages, settes en ekstra 0 inn 11111 111110 garanterer at flag-byte ikke kan forekomme i datadelen flag-byte er (selvsagt) ikke gjenstand for bit-stuffing mottaker: hver gang fem 1-ere oppdages dersom neste bit er 0, fjern den og fortsett mottaket dersom neste bit er 1 dersom neste bit deretter er 0 slutt på rammen dersom neste bit deretter er 1 rammefeil; vente på neste flag-byte 2/8/2005 14 Tegn- og bit-støffing Klokke-basert innramming Fast rammestørrelse er umulig Fordi: antall ekstra tegn (DLE) eller bit (0) er avhengig av hva slags data det er i rammen Fast rammestørrelse Klokke-basert er et dårlig navn Prinsipp: mottaker ser etter et bestemt bitmønster som gjentas med fast avstand i bitstrømmen (f.eks. hver 810 byte som i SONET) når det spesielle bit-mønstret dukker opp på rett plass tilstrekkelig antall ganger, konkluderer mottaker at den er synkron med sender og tolker rammen korrekt 2/8/2005 15 2/8/2005 16 4
SONET/SDH SONET (Synchronous Optical Network)(USA) / SDH (Synchronous Digital Hierarchy) (Europa) ITU standard for transmisjon over optiske fiber Fast rammestørrelse, leter etter SYN-SYN (spesielt bitmønster først i hodet) med jevne mellomrom (hver 810. byte) Når dette er OK regner mottaker med at den er synkronisert I tillegg til SYN-SYN i starten inneholder hodet pekere til sub-rammer i data-delen (sub-rammer kan flyte over flere SONET-rammer) STS-1 (51.84 Mbps) laveste hastighet for SONET/SDH-linker 2/8/2005 17 Feildeteksjon/feilretting Oppgaver: 1. Finne feil 2. Rette feil To alternativer til å rette feil: A. Ha nok informasjon til å rette opp feil i de mottatte dataene B. Be om at dataene (rammen) blir sendt en gang til (C. Gi blanke, det er ikke så farlig å miste litt data) Generelt prinsipp i informatikken: Oppdage feilen så fort som mulig etter at den har oppstått! 2/8/2005 18 Feil-deteksjon Bit-feil i rammer behov for mekanismer som oppdager bit-feil Teknikker som ofte benyttes i datanett Cyclic Redundency Check (CRC) svært utbredt Paritet - to-dimensjonal paritet BISYNC ved ASCII overføring Sjekksum flere Internett-protokoller Paritet (tverrsum) Ett paritetsbit: F.eks. 7 bit data, sendes som 8 bit Like paritet dvs. et like antall enere i resultatet 0110001 sendes som 01100011 Odde paritet dvs. et odde antall enere i resultatet Odde paritet: 0110001 sendes som 01100010 Generelt: Jo mer data til redundans, jo flere feil oppdages. 2/8/2005 19 2/8/2005 20 5
To-dimensjonal paritet Rad paritet Kolonne paritet Oppdager alle 1,2 og 3 bit feil og de fleste 4 bit feil I eksemplet: 14 bit redundant informasjon, og 42 bit melding ramme paritets byte paritets biter 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 2/8/2005 21 Internett sjekksum algoritme Se på en melding som en sekvens av 16-biters heltall Senderen adderer disse heltallene sammen ved bruk av 16-bit aritmetikk Dette 16-bit tallet er sjekksummen Mottaker utfører samme beregning og sammenligner resultatet med den mottatte sjekksum Får mottaker feil resultat er det bitfeil enten i dataene eller i sjekksummen Benyttes ende til ende i Internett transportlaget 2/8/2005 22 CRC: Cyclic Redundancy Check Generalisering av paritet: Kodeord Data (med hode) Sjekk/CRC Like paritet:kodeordetdeltpå2 skalikkegirest CRC:Kodeordetdeltpå ettall,g,skalikke girest D ettetalletvidelerpåkallervig eneratorpolynom et Deling foregårm ed m odulo-2 regning,dvsikkem ente ellerlåning. Cyclic Redundency Check Kodeord Data (med hode) Sjekk/CRC m biter rbiter CRC:Kodeordetdeltpå etgeneratortallskalikke girest Hvordan finnervisjekk/crc? Jo,slik: 1.Generatortalletkallervi G. G erpå r+1 biter. 2.Lag etstorttallav D ata med r 0-biterbak Dividerdettestore talletpå G m biter Bruk m odulo-2 regning (XOR,dvs.ikkenoem ente) 3.Resten avdivisjonen eralltid pårellerfærrebiter! Denneresten blirsjekk/crc DavilK odeordetværedeleligpåg (med 0 irest) Data (med hode) 000 00 rbiter 2/8/2005 23 2/8/2005 24 6
Desimal analogi til CRC-utregning Kodeord Data (med hode) 82532109 0000 Sjekk/CRC Anta G er3497 825321090000 :3497 = 236008318 med rest1954 82532109-1954 = 825321088046 82532108 8046 825321088046 :3497 = 236008318 nøyaktig (m enteisubtraksjonen ødleggerdataenevåre) 2/8/2005 25 Virkelig CRC-utregning Kodeord Data (med hode) 01 Sjekk 0000 Anta G er10011 010000 :10011 = 1100001010 med rest 1110 010000-1110 = 011110 01 1110 011110 :10011= 1100001010 nøyaktig (og subtraksjonen ødelaikkedataenevåre) 2/8/2005 26 CRC baserer seg på polynomer Cyclic Redundency Check CRC-algoritm enserpåbinærtallsom polynom er. F.eks. betraktes 1 0 0 1 1 som polynom et x + x + 1= x + x + x = 1* x + 0* x + 0* x + 1* x + 1* x 4 4 1 0 4 3 2 1 0 Og 1 1 0 0 0 1 som polynom et x + x + 1 = x + x + x 5 4 5 4 0 NB:Hvispolynom eterav grad r,harbinærtalletr+1 biter 2/8/2005 27 Regneeksemplet (sender): 1000000 : = 11111001 1001 1000 1011 1100 1000 101 rest 2/8/2005 28 7
Cyclic Redundency Check Vanlige CRC polynom Regneeksemplet (mottaker): 1000101 : = 11111001 1001 1000 1011 1100 000 rest 2/8/2005 29 CRC CRC-8 CRC-10 CRC-12 CRC-16 CRC-CCITT CRC-32 C(x) x 8 +x 2 +x 1 +1 =100000111 x 10 +x 9 +x 5 +x 4 +x 1 +1 x 12 +x 11 +x 3 +x 2 +x 1 +1 = 1100000001111 x 16 +x 15 +x 2 +1 =11000000000000101 x 16 +x 12 +x 5 +1 =10001000000100001 x 32 +x 26 +x 23 +x 22 +x 16 +x 12 +x 11 +x 10 + x 8 +x 7 +x 5 +x 4 +x 2 +x+1 2/8/2005 30 Egenskaper CRC-16 Hva bør beskyttes av CRC? Alleenkleog doblebitfeil Allefeilietodde antallbit Allekaskadefeilav lengdem indreenn 17 99,997 % av alle 17 biters kaskader 99,998 % av alle 18 biters kaskader Hele rammen Hele hodet ikke data Deler av hodet Vikigst: mottakeradresse og pakkelengde Kast en pakke så fort som mulig i det en CRCfeil oppdages! 2/8/2005 31 2/8/2005 32 8
Feilretting Feilretting uten retransmisjon Når skal vi rette feil? Mottakeradresse, pakkelengde mm. i hodet må eventuelt rettes med en gang. Data kan rettes med en gang eller vente Avveiing: Rette med en gang: Tar tid, ønsker vi at alle noder i nettet skal bruke tid på dette? Vente: Da kan det hende at feilen blir verre slik at det ikke er mulig å rette den lenger. Kalles Forward Error Correction To-dimensjonal paritet og Hammingkoder kan benyttes Kan også sende alle pakker to ganger og sammenlikne 2/8/2005 33 2/8/2005 34 Feil-korrigerende koder Pålitelig overføring BrukavHamming-kodeforåkorrigere burst feil. 2/8/2005 35 Pakker med feil CRC kastes Fint om vi kan rette opp feilen Hvis feilen ikke kan rettes opp, og vi trenger pakken, da må den sendes en gang til! Også her er det en avveiing: Ende-til ende eller mellom noder? (Problemkomplekset med doblet/triplet (mm.) funksjonalitet) 2/8/2005 36 9
Pålitelig overføring Stop-and-Wait (stopp og vent) Når omsending av pakker er nødvendig: To fundamentale mekanismer kvitteringer (engelsk: acknowledgements, ack) er (timeouts) vha. vekkeklokke (timer) Sender A 1.Pakke 2. Mottaker B Husk at også kvitteringer kan bli borte Ønsker vi at pakkene skal komme frem i riktig rekkefølge? M ottakersenderack tilbakenåren erm ottatt, og førstnårsenderm ottarack,sendesny. Pådennem åten blirikkem ottakeroversvøm m etavpakker, og avsendervetatallepakkererkom m ettrygtfram. Men hva hvispakkerblirborte? 2/8/2005 37 2/8/2005 38 Stop-and-Wait (stopp og vent) Stop-and-Wait Grunnleggende algoritme: send én ramme og vent på kvittering ( ramme) dersom ikke mottatt innen gitt, send rammen på nytt. Problem 1 med grunnleggende algoritme: Men kanskje det var som ble borte Vi må kunne sende den samme rammen på nytt, selv om den allerede er kommet riktig frem 2/8/2005 39 2/8/2005 40 10
Stop-and-Wait Stop-and-Wait Problem 2 med grunnleggende algoritme: Kanskje vi sendte rammen om igjen for tidlig Vi må godta at kommer for sent Må sende rammen på nytt og på nytt helt til kommer tilbake Hvordan vet mottaker at det er den samme rammen som sendes på nytt? 2/8/2005 41 2/8/2005 42 Løsning: sekvensnummer Sekvensnummer som 0 og 1 A (send meg k+1) k+1 k+1 k+1 Mottaker B 0 og 1 som sekvensnummere En bit er nok når vi sender én ramme av gangen og venter på kvittering k+1 k k k k k Rammenr.k Deternok m ed en en-bitteller(0 og1) k,k+1 regnesdautm odulo 2. (En buffers Sliding window protokoll) 1: Send ramme med odde sekvensnummer 0: Send ramme med like sekvensnummer Altså: ramme 0, 1, 2, 3, 4, 5, sendes som ramme 0, 1, 0, 1, 0, 1, Går dette bra? Hva betyr det at det går bra? 2/8/2005 43 2/8/2005 44 11
0-1 sekvensnummer 0-1 sekvensnummer Egenskaper til korrekt løsning? Mottaker leverer aldri samme ramme to eller flere ganger til laget over (nettlaget) Ingen rammer går tapt (forutsatt at alle meldinger før eller siden kommer frem når de resendes tilstrekkelig antall ganger) Rammene leveres i samme rekkefølge hos mottager som de sendes i av senderen (forutsatt at en ramme leveres straks den er korrekt mottat og ikke mottatt før) Analyse av sender - like ramme (0) sendes ut - ignorerer (gamle) 0 - resender like ramme (0) I det 1 kommer: - odde ramme (1) sendes ut - ignorerer (gamle) 1 - resender odde ramme (1) I det 0 kommer: - like ramme (0) sendes ut - ignorerer (gamle) 0 - resender like ramme (0) I det 1 kommer: osv. Vanskelig? 0 0 AC K 1 0 AC K 1 0 1 1 0 0 levér 0 ignorér 0 ignorér 0 levér 1 2/8/2005 45 2/8/2005 46 12