forbindelser mellom noder Kjell Åge Bringsrud kjellb Foreleser: Linklaget - direkte 2/6/2006 1

Like dokumenter
Linklaget. Feildeteksjon/feilretting - pålitelig overføring. Foreleser: Kjell Åge Bringsrud kjellb 2/17/2004 1

Linklaget. Feildeteksjon/feilretting - pålitelig overføring. Foreleser: Kjell Åge Bringsrud kjellb 2/9/2005 1

Linklaget - direkte. forbindelser mellom noder. Foreleser: Kjell Åge Bringsrud kjellb 2/8/2005 1

Linklaget - direkte forbindelser mellom noder

Linklaget. Stop-and-Wait. Hvis vi ikke fyller opp røret. Fyll opp røret. Feildeteksjon/feilretting - pålitelig overføring

Linklaget. Feildeteksjon/feilretting. Feil-deteksjon. Feildeteksjon/feilretting - pålitelig overføring. Oppgaver: 1. Finne feil 2.

Linklaget - direkte forbindelser mellom noder. Tilbakeblikk. Tilbakeblikk. Generelt om Link-laget

Internettets Overlay Arkitektur

Linklaget. Internettets Overlay Arkitektur. Olav Lysne. IP-link. (med bidrag fra Stein Gjessing og Frank Eliassen) Linklaget 1. C.b B.a. A.a. c a. A.

Linklaget. Internettets Overlay Arkitektur. Olav Lysne. IP-link. (med bidrag fra Stein Gjessing og Frank Eliassen) Linklaget 1. C.b B.a. A.a. c a. A.

Oversikt. Linklaget. Olav Lysne. (Koding) (Framing) Feilkontroll/feilretting (bare litt) Flytkontroll Eksempler

Detaljerte funksjoner i datanett

Litt mer detaljer om: Detaljerte funksjoner i datanett. Fysisk Lag. Multipleksing

Linklaget - avslutning

Dypere forståelse av Linklaget Egenskaper ved Ethernet CSMA/CD

Detaljerte Funksjoner i Datanett

Kapittel 4: Transportlaget

Detaljerte Funksjoner i Datanett

in270 Datakommunikasjon, vår 03 forelesningsnotater, kap. 4

Computer Networks A. Tanenbaum

Oppsummering: Linjesvitsjing kapasiteten er reservert, og svitsjing skjer etter et fast mønster. Linjesvitsj

ITF20205 Datakommunikasjon - høsten 2011

Medium Access Control (MAC) Linklaget avslutning. Kjell Åge Bringsrud kjellb. Foreleser: 14/02/2006 1

Detaljerte funksjoner i datanett

in270 Datakommunikasjon, vår 03 forelesningsnotater

Litt mer detaljer om: Detaljerte funksjoner i datanett. Fysisk Lag. Multipleksing

Transport - laget (ende-til-ende protokoller) Internett Best-effort overføring. Best-effort nett kvaliteter

Løsningsforslag Gruppeoppgaver mars 2003

MAT1030 Forelesning 30

Vekst av planteplankton - Skeletonema Costatum

INF1040 Oppgavesett 6: Lagring og overføring av data

Gjennomgang av kap Kommunikasjonsformer Typer av nettverk Adressering og routing Ytelse Protokoller

Forelesning 9 mandag den 15. september

Litt mer detaljer om: Detaljerte funksjoner i datanett. Fysisk Lag. Multipleksing

Repetisjon: høydepunkter fra første del av MA1301-tallteori.

KTN1 - Design av forbindelsesorientert protokoll

Kommunikasjonsnett. Et kommunikasjonsnett er utstyr (maskinvare og programvare) for utveksling av informasjon

Litt mer detaljer om: Tids multipleksing

Linklaget. Olav Lysne. (med bidrag fra Stein Gjessing og Frank Eliassen) Oppsummering 1

1990 første prognoser og varsler om at det ikke vil være nok IPv4 adresser til alle som ønsker det 1994 første dokumenter som beskriver NAT en

STATISTIKK FRA A TIL Å

Høgskolen i Molde Institutt for Informatikk Eksamen in270: Datakommunikasjon Våren 2003 Skisse til svar:

Sentrale deler av pensum i INF240. Hensikt. Pål Spilling og Kjell Åge Bringsrud

Tyngdekraft og luftmotstand

Forelesning 28: Kompleksitetsteori

Kapittel 10 Tema for videre studier

Sentrale deler av pensum i INF

Fasit og løsningsforslag til Julekalenderen for mellomtrinnet

MAT1030 Diskret matematikk. Kompleksitetsteori. Forelesning 29: Kompleksitetsteori. Dag Normann KAPITTEL 13: Kompleksitetsteori. 7.

Hva består Internett av?

Nøkkelspørsmål: Hvor lang er lengden + bredden i et rektangel sammenlignet med hele omkretsen?

Kapittel 1. Potensregning

IT Grunnkurs Nettverk 3 av 4

NyGIV Regning som grunnleggende ferdighet

Nøkkelspørsmål til eller i etterkant av introduksjonsoppgaven:

Brukerdokumentasjon Credit Card Clearing

Læringsmål og pensum. Utvikling av informasjonssystemer. Oversikt. Systemutvikling Systemutvikling i seks faser Femstegs prosedyre for programmering

Kompleksitetsanalyse

Kreativ utvikling av engasjerte mennesker. Fylkesmessa 2009 Kristiansund

Grafisk kryptografi (hemmelig koding av bilder)

Mer om likninger og ulikheter

TDT4110 IT Grunnkurs: Kommunikasjon og Nettverk. Læringsmål og pensum. Hva er et nettverk? Mål. Pensum

Løsningsforslag Gruppeoppgaver, januar INF240 Våren 2003

Terminprøve Sigma 1T Våren 2008 m a t e m a t i k k

Løsningsforslag til obligatorisk oppgave i MAT 1100, H-04

UNIVERSITETET I OSLO

Kodestil i C++ Introduksjon. Navnekonvensjoner. Globale variabler. Simen Hagen

PRIMTALL FRA A TIL Å

Kapittel 7: Nettverksteknologier

Computer Networks A. Tanenbaum

Fortsettelses kurs i Word

Prosent. Det går likare no! Svein H. Torkildsen, NSMO

Forberedelse til. Røyke slutt. Røyketelefonen

Hypotesetesting. Notat til STK1110. Ørnulf Borgan Matematisk institutt Universitetet i Oslo. September 2007

Under noen av oppgavene har jeg lagt inn et hint til hvordan dere kan går frem for å løse dem! Send meg en mail om dere finner noen feil!

Løsningsforslag Gruppeoppgaver mars 2003

Sensorveiledning Oppgave 1

ARBEIDSHEFTE I MATEMATIKK

DE VIKTIGSTE SELSKAPSFORMENE. Velg riktig selskapsform

Transport - laget (ende-til-ende protokoller) Glidende vindu protokoll. Flyt kontroll. dataoverføringsfasen. Sender. Mottaker

Nettverkslaget. Fragmentering/framsending Internetworking IP

Uendelige rekker. Konvergens og konvergenskriterier

Adventskalender. Regning i kunst og håndverk

Kvikkbilde 8 x 6- transkripsjonen av samtalen

Algoritmer og datastrukturer A.1 Filbehandling på bit-nivå

Informasjonsteori Skrevet av Joakim von Brandis,

Fysikkolympiaden 1. runde 26. oktober 6. november 2015

Positiv og virkningsfull barneoppdragelse

Positivt [ ] Negativt [ ] Ingen mening [ ] 6. Hvor mange tastevalg er akseptabelt å gjøre innen du blir koblet til en kundebehandler?

Opptelling - forelesningsnotat i Diskret matematikk Opptelling

Brukerveiledning Tilkobling Altibox Telefon

NASJONALE PRØVER En presentasjon av resultatene til 5.trinn ved Jåtten skole, skoleåret

Brukerveiledning for PedIT - Web

INF Algoritmer og datastrukturer

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

Høgskolen i Molde Institutt for Informatikk Prøveeksamen 1 in270: Datakommunikasjon Våren 2003 Skisse til svar:

in270 Datakommunikasjon, vår 03 forelesningsnotater kap og 7.1/7.2

TwidoSuite kommunikasjon

Transkript:

Linklaget - direkte forbindelser mellom noder Foreleser: Kjell Åge Bringsrud E-mail: kjellb 2/6/2006 1

Referansemodeller disse er bygget opp hierarkisk; lagdelt for å lette forståelsen for å abstrahere vekk detaljer samle i et lag funksjonalitet som naturlig hører sammen et lag bygger på tjenester fra laget under, og tilbyr en verdiøket tjeneste til laget over verdiøkningen skjer gjennom samarbeid med det tilsvarende lag i motsvarende maskin 2/6/2006 2

Referansemodeller vi har tre aktuelle referansemodeller å forholde oss til: ISO s ref.modell for Åpne systemer Internet modellen mellomvare-modellen (tre-lags) ingen motsetning mellom disse, men de har litt forskjellig abstraksjonsmål 2/6/2006 3

Internet modellen Applikasjon Transport IP Nettverk adapter_ 1 ende-til-ende Ruter Transpor t IP Nettverk adapter_ 2 Nett_1 Nett_2 2/6/2006 4

Mellomvare-modellen Applikasjon Mellomvare Nettverk Plattform Mellomvare Nettverk Komm.nett 2/6/2006 5

ISO s ref.modell Node/ svitsj Endesystem Endesystem Applikasjon Applikasjon Presentasjon Sesjon Transport Nett Link Fysisk ende-til-ende Svitsj Applikasjon Presentasjon Sesjon Transport Nett Link Fysisk Komm.-medium Komm.-medium 2/6/2006 6

Generelt om Link-laget Hensikt? Å forbinde to noder i nettet (og ende-maskinene til første node i nettet) Simplex, Half duplex, Full duplex enten eller begge veier samtidig Spesialtilfeller: Flere noder koblet til samme ledning (Ethernet) Flere noder koblet i ring (simplex mellom nodene): (Token ring, FDDI) 2/6/2006 7

Linklaget - utfordringer Utfordringer Rammeinndeling/innramming Feildeteksjon/feilretting Flytkontroll Spesialtilfelle flere noder deler en link (som i Ethernet) => Behov for adgangskontroll til linken (mediet) 2/6/2006 8

Rammeinndeling Problem: Dele sekvensen av bit opp i rammer Implementeres typisk av nettverksadapter Adapter henter (legger) rammer fra (i) nodens internlager Avsendernode bit-overføring node Mottager- Adapter Adapter ramme-overføring Abstraksjon av linjen: uendelig sekvens av bit. Hvordan bestemme start og slutt til rammen? 2/6/2006 9

Rammer (engelsk: frames) Overføringsenhet mellom noder/adaptere En ramme = data (bit) som utgjør en naturlig helhet (variabelt eller fast antall bit/byte) Bit som skal overføres (f.eks. pakke): Bit som skal overføres, pakkes inn i en ramme: Ekstra biter settes inn bak og/eller foran, og noen ganger inne i dataene som overføres. Hensikt? avgrense rammen detektere feil kontrollere flyt 2/6/2006 10

Hvert lag gir overhead Komm. nett 2/6/2006 11

Innramming i forhold til OSI-lagene Nettverkslag Linklag Fysisk lag 2/6/2006 12

Byte-orienterte protokoller Tidlig tilnærming til innramming opphav i byte/character orienterte terminaler (byte= oktett) BISYNC (Binary Synchronous Communication) IBM 60-tallet PPP (Point-to-Point Protocol) kommunikasjon over modem, f.eks. mellom hjemme-pc og ISP 2/6/2006 13

Byte-orienterte protokoller Bruk av vokter BISYNC S Y N 8 8 8 8 8 16 S Y N S O H S T X Header Body E T X CRC 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) S Y N 8 8 8 8 8 16 S Y N S O H D L E E T X S T X D L E S O H E T X CRC 2/6/2006 14

Byte-orienterte protokoller Bruk av byte-teller (antall) S Y N 8 8 8 14 42 16 S Y N Count Header Body CRC Class Problem: Hva skjer når Count feltet har bit-feil? Løsning: oppdages når CRC feiler vente til neste SYN; prøve på nytt derfra rammetap For større sikkerhet (redundans): både End-of-Text og teller 2/6/2006 15

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 01111110 flag-byte 2/6/2006 16

Bit-orienterte protokoller 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/6/2006 17

Tegn- og bit-støffing Fast rammestørrelse er umulig Fordi: antall ekstra tegn (DLE) eller bit (0) er avhengig av hva slags data det er i rammen 2/6/2006 18

Klokke-basert innramming 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/6/2006 19

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) 2/6/2006 20

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 2/6/2006 21

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/6/2006 22

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 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 paritets biter 0 1 1 1 0 0 2/6/2006 23

CRC: Cyclic Redundancy Check Generalisering av paritet: Kodeord Data (med hode) Sjekk/CRC Like paritet: Kodeordet delt på 2 skal ikke gi rest CRC: Kodeordet delt på et tall, G, skal ikke gi rest Dette tallet vi deler på kaller vi Generatorpolynomet Deling foregår med modulo-2 regning, dvs ikke mente eller låning. 2/6/2006 24

Cyclic Redundency Check Kodeord Data (med hode) Sjekk/CRC m biter r biter CRC: Kodeordet delt på et Generatortall skal ikke gi rest Hvordan finner vi Sjekk/CRC? Jo, slik: 1. Generatortallet kaller vi G. G er på r+1 biter. 2. Lag et stort tall av Data med r 0-biter bak Divider dette store tallet på G Bruk modulo-2 regning (XOR, dvs. ikke noe mente) 3. Resten av divisjonen er alltid på r eller færre biter! Denne resten blir Sjekk/CRC Data (med hode) 000 00 m biter r biter Da vil Kodeordet være delelig på G (med 0 i rest) 2/6/2006 25

Eksempel på CRC-utregning Kodeord Data (med hode) Sjekk 1101011011 0000 Anta G er 10011 11010110110000 : 10011 = 1100001010 med rest 1110 11010110110000-1110 = 11010110111110 1101011011 1110 11010110111110 : 10011= 1100001010 nøyaktig 2/6/2006 26

CRC baserer seg på polynomer CRC-algoritmen ser på binærtall som polynomer. F.eks. betraktes 1 0 0 1 1 som polynomet 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 polynomet x 5 + x 4 + 1 = x 5 + x 4 + x 0 NB: Hvis polynomet er av grad r, har binærtallet r+1 biter 2/6/2006 27

Vanlige CRC polynom 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/6/2006 28

Egenskaper CRC-16 Alle enkle og doble bitfeil Alle feil i et odde antall bit Alle kaskadefeil av lengde mindre enn 17 99,997 % av alle 17 biters kaskader 99,998 % av alle 18 biters kaskader 2/6/2006 29

Hva bør beskyttes av CRC? 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/6/2006 30

Feilretting uten retransmisjon Kalles Forward Error Correction To-dimensjonal paritet og Hammingkoder kan benyttes Kan også sende alle pakker to ganger og sammenlikne 2/6/2006 31

Feil-korrigerende koder Bruk av Hamming-kode for å korrigere burst feil. 2/6/2006 32

Pålitelig overføring 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/6/2006 33

Pålitelig overføring Når omsending av pakker er nødvendig: To fundamentale mekanismer kvitteringer (engelsk: acknowledgements, ack) tidsfrister (timeouts) vha. vekkeklokke (timer) Husk at også kvitteringer kan bli borte Ønsker vi at pakkene skal komme frem i riktig rekkefølge? 2/6/2006 34

Stop-and-Wait (stopp og vent) Sender Mottaker 2. ACK A B 1. Pakke Mottaker sender ack tilbake når en ramme er mottatt, og først når sender mottar ack, sendes ny ramme. På denne måten blir ikke mottaker oversvømmet av pakker, og avsender vet at alle pakker er kommet trygt fram. Men hva hvis pakker blir borte? 2/6/2006 35

Stop-and-Wait (stopp og vent) Grunnleggende algoritme: send én ramme og vent på kvittering (ACK ramme) dersom ACK ikke mottatt innen gitt tidsfrist, send rammen på nytt. ramme ramme ACK tidsfrist tidsfrist ramme ACK tidsfrist 2/6/2006 36

Stop-and-Wait Problem 1 med grunnleggende algoritme: Men kanskje det var ACK som ble borte Vi må kunne sende den samme rammen på nytt, selv om den allerede er kommet riktig frem ramme ACK ramme ACK tidsfrist tidsfrist 2/6/2006 37

Stop-and-Wait Problem 2 med grunnleggende algoritme: Kanskje vi sendte rammen om igjen for tidlig Vi må godta at ACK kommer for sent ramme ACK ramme ACK tidsfrist tidsfrist 2/6/2006 38

Stop-and-Wait ramme ramme Må sende rammen på nytt og på nytt helt til ACK kommer tilbake Hvordan vet mottaker at det er den samme rammen som sendes på nytt? ramme tidsfrist tidsfrist tidsfrist ACK ramme ACK ACK 2/6/2006 39

Løsning: sekvensnummer ACK (send meg k+1) k+1 k+1 k+1 Mottaker A B k+1 k k k k k Ramme nr. k Det er nok med en en-bit teller (0 og 1) k, k+1 regnes da ut modulo 2. (En buffers Sliding window protokoll) 2/6/2006 40

Sekvensnummer som 0 og 1 0 og 1 som sekvensnummere En bit er nok når vi sender én ramme av gangen og venter på kvittering ACK 1: Send ramme med odde sekvensnummer ACK 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/6/2006 41

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) 2/6/2006 42

0-1 sekvensnummer ramme 0 Analyse av sender ramme 0 - like ramme (0) sendes ut - ignorerer (gamle) ACK 0 - resender like ramme (0) tidsfrist tidsfrist tidsfrist ramme 0 ACK 1 ramme 0 ramme 1 ACK 1 ACK 0 ACK 1 I det ACK 1 kommer: - odde ramme (1) sendes ut - ignorerer (gamle) ACK 1 - resender odde ramme (1) I det ACK 0 kommer: - like ramme (0) sendes ut - ignorerer (gamle) ACK 0 - resender like ramme (0) I det ACK 1 kommer: osv. Vanskelig? levér ramme 0 ignorér ramme 0 ignorér ramme 0 levér ramme 1 ramme 0 2/6/2006 43

Stop-and-Wait Grunnleggende svakhet: utnytter linjekapasiteten dårlig senderen kan bare ha én utestående ramme til enhver tid Eksempel: 1.5Mbps link x 45ms RTT = 67.5Kb (8KB) dvs. 8KB data kan være underveis på linjen anta rammestørrelse 1KB stop-and-wait bruker ca. 1/8 av linjekapasiteten (om ingen feil) Mål: senderen må kunne sende opp til 8 rammer før den må vente på en ACK moralen er: fyll opp røret Avsender Mottaker 2/6/2006 44

Fyll opp røret Utnytte linjen bedre. Sender flere pakker rett etter hverandre: A Pakker B Pakker Putte ACK/NAK på ryggen til meldinger som går den andre veien ( piggyback ) 2/6/2006 45

Glidende vindu Idé: Tillat senderen å sende flere rammer før den mottar ACK for derved å holde røret fullt. Det må være en øvre grense på antall rammer som kan være utestående (som det ikke er mottatt ACK for). sender mottaker Eksempel: maks. 5 utestående rammer 2/6/2006 46

Glidende vindu Sendt men ikke fått ack, må kanskje sendes på nytt (vil bli resendt om ack aldri mottas) Disse tre er motatt og kvittert (ack sendt) (men kan ikke sendes videre før x motatt) Ikke motatt ack/nack x x Pakker 2/6/2006 47

Glidende vindu: sender Tilordner sekvensnummer til hver ramme (SeqNum) Vedlikeholder tre tilstandsvariable send window size (SWS) last acknowledgment received (LAR) last frame sent (LFS) Vedlikeholder invariant: LFS - LAR SWS Rammer som venter Rammer som er bekreftet på å bli bekreftet Rammer som ikke er sendt N N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12 N+13N+14 LAR SWS LFS Når ACK mottas, økes LAR, og derved kan ny ramme sendes slik at LFS økes. SWS=8 flyt stoppet Buffer for opptil SWS rammer, dvs SWS rammer i røret samtidig 2/6/2006 48

Glidende vindu: mottaker Vedlikeholder tre tilstandsvariable receive window size (RWS) largest acceptable frame (LAF) last frame received (LFR) (with all smaller frames also received) Vedlikeholder invariant: LAF - LFR RWS Rammer som er mottat Rammer som kan mottas (muligens ute av orden) N N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12 N+13N+14 LFR RWS LAF 2/6/2006 49

Glidende vindu: mottaker Kumulativ kvittering ( go back n protokoll), dvs. vi ack-er ikke nye pakker hvis det er hull i sekvensen av mottatte pakker if LFR < MottatRamme.SeqNum < LAF then ta-imot-pakken-og-legg-den-på-plass; beregn-nye-grenser (MottattRamme.SeqNum); // se neste lysark else kast pakken; send ACK (LFR + 1) Rammer som er mottatt Rammer som kan mottas (muligens ute av orden) N N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12 N+13N+14 LFR RWS LAF 2/6/2006 50

Glidende vindu: mottaker Invariant: LFR + 1 er første pakke som ikke er mottatt beregn-nye grenser(seqno) if seqno = LFR + 1 { beregn ny LFR og LAF: for (i= LFR + 1; ramme i er mottatt; i++) { } ; LFR = i-1; LAF = LFR + RWS; } første som ikke er mottatt N N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12 N+13N+14 SeqNum LFR LAF 2/6/2006 51

Glidende vindu: mottaker Varianter til go back n protokoll Negativ kvittering (NAK) mottaker sender NAK på rammer som savnes Selektiv kvittering (SAK) mottaker sender ACK på nøyaktig de rammer som mottas disse behøver da ikke re-sendes Både SAK og NAK øker kompleksiteten til implementasjonen, men kan potensielt bedre utnyttelsen av linjen 2/6/2006 52

Glidende vindu: endelige sekvensnummer I praksis representeres sekvensnummer med et endelig antall biter. n biters sekvensnummer => intervall sekv. nr. = (0..2 n -1) I HDLC: n = 3, dvs. sekvensnummerintervall (0..7) sekvensnummer må gjenbrukes 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 Problem skille mellom ulike inkarnasjoner av samme nummere Minimum krav: sekvensnummerintervallet må være større enn maks. antall utestående rammer 2/6/2006 53

Glidende vindu: endelige sekvensnummer SWS MaxSeqNum+1 er ikke tilstrekkelig anta 3 biters SeqNum felt (0..7) SWS=RWS=8 senderen transmitterer rammene 0..6 mottas uten feil, men ACK går tapt senderens tidsfrist utløper, rammene 0..6 sendes på nytt mottaker forventer 7,0..5, men mottar andre inkarnasjon av 0..5 SWS,RWS (MaxSeqNum+1)/2 er riktig regel 6 5 7 0 Hindrer overlapp mellom 1 4 3 2 nedre kant av sendervinduet og øvre kant av mottakervinduet. 2/6/2006 54

Glidende vindu: endelige sekvensnummer Eksempel: SWS, RWS = 4 LAR 7 0 6 1 5 2 4 3 LFS LAR NFE 7 0 6 1 5 2 4 3 LFA send rammer 0..3 LFA 7 0 6 1 ACK 4 7 0 6 1 5 2 4 3 LFS 5 2 4 3 NFE Hva bør mottaker nå gjøre? send rammer 0..3 2/6/2006 55

Oppsummering Pålitelig overføring av rammer krever metoder for 1. Feildeteksjon 2. Feilkorrigering Metoder for feil-deteksjon Cyclic Redundency Check (CRC) Paritet - to-dimensjonal paritet Sjekksum Metoder for feilkorrigering Forward-error-correction (benyttes relativt lite i datanett) Retransmisjon (stop-and-wait, glidende vindu) 2/6/2006 56