Datalinklag

Datalinklaget (eller datalinklaget ) er det andre laget av nettverksarkitekturen basert på ISO/OSI-modellen for sammenkobling av åpne systemer. Dette overføringslaget mottar datapakker fra nettverkslaget og danner rammene som sendes til det underliggende fysiske laget med sikte på å tillate pålitelig overføring av data gjennom den underliggende kanalen .

Beskrivelse

I IP-stabelen, i noen tilfeller, består datalinklaget i bruk av et nettverk bygget med en annen protokoll for å transportere IP-pakker. Dette skjer for eksempel med X.25 , Frame Relay , Asynchronous Transfer Mode . Noen eksempler på datalinklagsprotokoller er:

Det kan være pålitelig eller ikke - mange datakoblingsprotokoller bruker ikke bekreftelser, og noen sjekker kanskje ikke engang etter overføringsfeil. I dette tilfellet må de høyere nivåene utføre flytkontrollen , feilkontrollen og administrere bekreftelsene (og relaterte reoverføringer).

I noen nettverk, for eksempel IEEE 802 LAN , er dette laget delt inn i MAC- og LLC -underlagene . Sistnevnte er felles for alle MAC-lag, for eksempel token-ring og IEEE 802.11 , men også for MAC-lag som ikke er en del av 802-standarden, for eksempel FDDI .

Funksjoner

Datalinklaget må derfor utføre flere spesifikke funksjoner:

Alt dette gjør det mulig å få det fysiske mediet til å fremstå i mottak, på høyere nivå, som en feilfri overføringslinje. [1] [2]

LLC undernivå

Det øverste undernivået er logisk lenkekontroll (LLC), og kan tilby tjenester for flytkontroll, bekreftelse, feildeteksjon (eller korrigering). PPP- og HDLC- protokoller er en del av dette undernivået.

LLC-undernivåprotokollene som gir bekreftelse eller garantitjeneste for datamottak, må inkludere bekreftelses- eller ACK -meldinger . Avsenderen kan vente på at hver melding blir kvittert før den sender den neste, eller den kan fortsette å sende til et maksimalt antall meldinger som ennå ikke er bekreftet av mottakeren er nådd, i såkalte vindusprotokoller .

I vindusprotokoller er hver overført pakke identifisert med et progressivt nummer inne i vinduet , kalt sekvensnummer ; bekreftelsesmeldingene må rapportere sekvensnummeret til pakken de møter.

Bekreftelsesmeldingene kan være kumulative ("mottatte pakker opptil N"), eller kreve kumulativ retransmisjon ("retransmit packets up to N") eller kun selektive av pakker som ikke er mottatt riktig. I noen tilfeller bruker bekreftelsen av meldingene mottatt en dedikert melding, i andre tilfeller settes bekreftelsen inn i spesifikke felt av meldingene som sendes i motsatt retning ( piggyback ) , noe som reduserer retransmisjonsforsinkelsene .

MAC-underlag

Det nedre undernivået er Media Access Control eller Medium Access Control . Hensikten er å regulere den multiple tilgangen til flere noder til en delt kommunikasjonskanal , unngå eller håndtere forekomsten av kollisjoner. En kollisjon oppstår når to eller flere noder samtidig overfører data på den delte kanalen. Dette fører til uunngåelig tap av overførte data med påfølgende sløsing med båndbredde .

Det finnes flere standardalgoritmer og protokoller for multippel tilgangskontroll. For eksempel bruker IEEE 802.3 MAC CSMA /CD -algoritmen mens IEEE 802.11 MAC er basert på CSMA/CA-algoritmen . Førstnevnte brukes vanligvis i kablede LAN , sistnevnte i WLAN .

Det er to hovedtyper av multitilgangsalgoritmer: tilfeldig og ordnet. Ved tilfeldig multippeltilgang kan kollisjoner forekomme, men passende mekanismer er implementert for å redusere sannsynligheten for at de inntreffer og for å sende de kolliderte rammene på nytt. Ved ordnet tilgang, derimot, er forekomsten av en kollisjon helt umulig siden nodene følger en nøyaktig rekkefølge av tilgang til kanalen (etablert i initialiseringsfasen av nettverket) som gjør dem til eksklusive brukere av overføringsmediet (med mindre det er feil) eller funksjonsfeil).

Videre, på MAC-nivå, er rammeformatet definert, som typisk vil inneholde start/slutt-feltene, avsender/mottakers MAC-adressefelt , LLC-nivå innkapslet pakke , feildeteksjonskoden (FEC), og eventuelt utfylling av byte til sørg for at størrelsen på rammen ikke faller under en minimumsgrense.

Grensesnitt

Datalinklaget er ofte implementert som en nettverkskortdriver . Operativsystemet vil ha et programvaregrensesnitt mellom dette laget og det høyere (nettverks)laget. Dette grensesnittet er ikke et lag, men mer en standard for kommunikasjon mellom lag. Noen eksempler:

LLC underlagsfunksjonalitet

Synkron og asynkron overføring

Seriell overføring kan foregå synkront eller asynkront .

I den asynkrone overføringen blir hvert tegn som sendes foran og etterfulgt av signaler som indikerer begynnelsen og slutten av tegnet; disse signalene kalles start- og stoppsignaler. Asynkron girkasse kalles derfor også start-stopp transmisjon. Med denne metoden kan hvert tegn betraktes som uavhengig av de andre, tidsintervallet mellom sending av to tegn er uspesifisert.

Ved synkron overføring grupperes tegnene som skal sendes i meldinger ( rammer ). Hver ramme innledes med synkroniseringstegn som brukes til å få mottakerstasjonen til å synkronisere seg med overføringshastigheten til stasjonen som sender meldingen. Synkron overføring er raskere fordi overføringsdødtider reduseres, men en feil i selv en enkelt bit kan skade hele meldingen som sendes. De synkrone overføringsprotokollene er delt inn i BCP ( Byte Control Protocol ) eller byteorientert, der underinndelingen i tegn til meldingen som skal overføres opprettholdes, og BOP ( Bit Oriented Protocol ) eller bitorientert, der meldingene er sett på som en rekke biter (på denne måten er du ikke bundet til 8-bits ASCII-koding).

En viktig operasjon ved synkron overføring er framing , dvs. underinndelingen i rammer av informasjonen som skal overføres.

Innramming

Begrepet innramming refererer til følgende operasjoner:

For å kunne tilby tjenester på nettverkslaget, må datalinklaget dra nytte av tjenestene som tilbys av det fysiske laget. Den vanlige tilnærmingen til datalinklaget er å dele strømmen av biter i pakker (nøyaktig tilpasset en overføring på et pakkenettverk ), og beregne sjekksummen . Ulike metoder brukes for å dele opp biter i pakker eller rammer:

Tegntellingsmetoden (oppnådd ved å spesifisere antall tegn i rammen i pakkehodefeltet) er sjelden brukbar siden hvis feltet som inneholder antall tegn blir skadet (endret) under overføring, kan det ikke lenger brukes. locate hvor neste ramme begynner; de andre teknikkene brukes da.

I byte-orientert overføring (rammen beholder underinndelingen i byte) innledes rammen av ASCII -tegnsekvensen DLE STX ( Data Link Escape Start of TeXt ) og avsluttes med DLE-sekvensen ETX ( Data Link Escape End of TeXt ). Hvis en ramme mislykkes og destinasjonen mister synkronisering, er det bare å finne neste DLE STX eller DLE ETX. Imidlertid kan DLE-tegnet vises tilfeldig inne i rammen når binære data som objektprogrammer eller flytende kommatall overføres; slik at disse tegnene ikke forstyrrer, legges en ekstra DLE til (som fjernes ved destinasjonen før den passerer rammen på nettverksnivå) slik at bare enkelt DLE tolkes som skilletegn; denne teknikken kalles tegnstopping .

I bitorientert overføring (rammen kan inneholde et hvilket som helst antall byte) begynner og slutter hver ramme med sekvensen 01111110 kalt flagg: denne sekvensen kan vises tilfeldig i dataene, derfor settes det alltid inn 0 i overføringen etter fem påfølgende 1-er. strøm av biter, uavhengig av om den neste biten er 1 eller 0, mens i mottak er det nødvendig å eliminere de innsatte bitene, og alltid fjerne en 0 etter fem 1-er; denne teknikken kalles bitstuffing .

Feilkontroll

Som nevnt mottar senderstasjonen til datalinklaget dataene fra det øvre laget og deler dem inn i rammer før de overlates til det fysiske laget for overføring på kanalen, og legger til en kode for kontroll av overføringsfeil ( data integritet ) i resepsjonen ( sjekksum ).

Når en pakke ankommer destinasjonen, beregnes kontrollsummen på nytt fra det samme datalinklaget som mottakssystemet. Hvis resultatet er forskjellig fra det som finnes i pakken, gjenkjenner datalink-laget at en feil har blitt gjort og iverksetter passende tiltak (som å forkaste pakken og sende en feilmelding som svar til avsenderen).

Generelt er det to typer kontrollkoder , detektorkodene som bare lar deg forstå at rammen ikke er korrekt og muligens be om reoverføring av pakken ( ARQ Automatic Repeat-reQuest ) og korreksjonskodene som ikke bare lar deg forstå hvis du har oppstått en feil, men også for å identifisere plasseringen av feilen og rette den deretter ( FEC Forward Error Correction ). Disse sistnevnte kodene krever mange flere biter enn detektorkoder og sløser derfor med båndbredde; derfor brukes vanligvis bare deteksjonskoder.

I tilfelle en feil, hvis tjenesten er upålitelig, kan rammen ganske enkelt forkastes; hvis linjen skal være pålitelig, må alle rammene komme riktig frem; hvis det brukes en detektorkode, må mottakeren be om reoverføring av feil rammer.

Valget mellom detektor- og korrigeringskoder kan også avhenge av hastigheten på linjene (for lavhastighetslinjer kan det ta for lang tid å vente på retransmisjon) eller pålitelighet (hvis feilraten på linjen er veldig lav, er det ikke verdt å kaste bort mye båndbredde for en korrigeringskode) eller typen tjeneste som forespørres (sanntid eller ikke).

Den vanlige måten å sikre pålitelig levering på er å gi avsender tilbakemelding om hva som skjer i den andre enden av linjen. Vanligvis krever protokollen at mottakeren sender tilbake noen spesielle kontrollpakker med en positiv eller negativ verdi avhengig av pakkene som mottas. Hvis avsender får positivt svar på en sendt pakke, vet de at den har kommet riktig. Hvis den derimot får et negativt svar, betyr det at noe har gått galt og at pakken må sendes på nytt.

En ekstra komplikasjon kan komme fra muligheten for at maskinvareproblemer fører til at pakken forsvinner totalt. Hvis en pakke ikke ankommer destinasjonen, vil avsenderen ikke vente på ubestemt tid, faktisk brukes en timer, som startes når dataene sendes, hvis timeren overskrider (programmert) grenseterskel uten å motta ACK ( Acknowledgement eller bekreftelse ), vil den sende pakkene på nytt. Imidlertid, hvis pakken eller bekreftelsesmeldingen går tapt, utløper tidtakeren ( tidsavbrudd ), og senderstasjonen, som ikke mottar bekreftelse, blir tvunget til å sende dataene på nytt, men på dette tidspunktet kan avsenderen motta to eller flere ganger. samme pakke. For å løse dette problemet er pakkene som sendes nummerert, slik at mottakssystemet, i tilfelle det mottar et pakkenummer som er lik den forrige, dvs. en kopi av pakken, forkaster den. Denne teknikken er kjent som Stopp og vent ; de andre teknikkene som oftest brukes for feilkontroll er Hamming Code og CRC ( Cyclic Redundancy Control ). Faktisk utføres imidlertid feilkontrollfunksjoner på individuelle pakker ikke bare på datalinknivå, men i hvert annet lag av protokollen for å garantere riktigheten av tjenestedataene ( header ) til protokollene beregnet på de respektive lagene.

Flytkontroll

Et annet viktig designproblem som finnes i datalinklaget er det å administrere en delt linje når flere noder ønsker å sende meldinger samtidig og også må bestemme hva de skal gjøre med en avsender som systematisk har en tendens til å overføre pakker raskere enn mottakeren kan godta dem. Denne situasjonen kan lett oppstå når avsenderen er plassert på en rask maskin og mottakeren på en treg maskin. Avsenderen fortsetter å sende pakker i høy hastighet, helt til mottakeren er fullstendig overveldet. Selv om overføringen er feilfri, vil mottakeren på et tidspunkt ikke være i stand til å håndtere de innkommende pakkene og vil begynne å miste dem ( bufferoverløp ).

Den typiske løsningen er å innføre en flytkontroll for å tvinge avsenderen til å respektere mottakerens hastighet ved å sende pakker. Denne påleggelsen krever vanligvis en type tilbakemeldingsmekanisme slik at avsenderen kan bli varslet om mottakeren er i stand til å motta eller ikke.

Hvis på den annen side flere noder ønsker å sende meldinger samtidig, pleier det å bli introdusert en sentralisert kontroll som skaper en enkelt kontrollnode, ansvarlig for å bestemme hvem som får prioritet i nettverket; neste node vil da sjekke når nettverket ikke lenger er opptatt, slik at det kan sende meldingen så snart den blir ledig. Det kan imidlertid skje at flere noder overvåker nettverket og at så snart det er ledig sender de meldinger umiddelbart, i dette tilfellet vil det oppstå kollisjonsproblemer; for å overvinne dette problemet, vil nodene som overvåker nettverket bli regulert av en flertilgangsprotokoll ved å vente for eksempel en tilfeldig tid før de sender meldingene, siden det er usannsynlig at nodene velger samme øyeblikk for å sende dataene.

MAC-underlagsfunksjonalitet

I telekommunikasjon , i sammenheng med datanettverk , er MAC ( akronym for Medium Access Control eller Media Access Control ) et undernivå av ISO/OSI standardiserte arkitekturmodell , definert i IEEE 802 -standarden , som inneholder funksjoner for å kontrollere tilgang. til fysisk medium for kringkastingskanaler , innrammingsfunksjonalitet og feilkontroll .

Det er en del av datalinknivået , hvorav det representerer det nedre undernivået overvunnet av LLC -undernivået og begrenset under av det fysiske nivået . De ulike egenskapene til dette laget er beskrevet fra tredje del av standarden og utover. Dette er nivået der MAC-adressen eller den fysiske adressen til datamaskinen er plassert. Dette laget har hovedsakelig to funksjoner, datainnkapsling og tilgang til mediet.

Den første funksjonen omhandler innkapslingen av rammene før deres overføring og dekapsuleringen ved mottak; den omhandler også deteksjon av overføringsfeil og avgrensing av rammen for å lette synkronisering mellom sender og mottaker. Den andre funksjonen kontrollerer tilgang til media , og kommuniserer direkte med det fysiske laget.

Merknader

  1. ^ Data Link Layer Definition , på linfo.org , 16. oktober 2005. Hentet 13. mai 2012 .
  2. ^ Bradley Mitchell, Visual Networking Overview - OSI-modellen - Data Link Layer , på compnetworking.about.com , about.com . Hentet 13. mai 2012 .

Bibliografi

Relaterte elementer

Andre prosjekter

Eksterne lenker