Datalänklagret. Datalänklagret ska:

Relevanta dokument
Kihl & Andersson: , 4.5 Stallings: , , (7.3)

Länkhantering (feldetektering, felhantering, flödeskontroll) Maria Kihl

Tillförlitlig dataöverföring. Jens A Andersson

Laborationer onsdag/fredag. Laborationer onsdag/fredag. Tillförlitlig dataöverföring Multiplexering Lokala nät (inledning) Labbmanual

Tillförlitlig dataöverföring Egenskaper hos en länk Accessmetoder. Jens A Andersson

Kapitel 3 o 4. Tillförlitlig dataöverföring. (Maria Kihl)

Tentamen i Datorkommunikation den 10 mars 2014

Tillförlitlig dataöverföring Egenskaper hos en länk Accessmetoder. Jens A Andersson

Datakommunikation vad är det?

Kapitel 3 o 4. Tillförlitlig dataöverföring. (Maria Kihl)

DATALINK-NÄTVERK. Hårdvarubyggklossar

Datakommunikation vad är det?

Omtentamen i Datakommunikation för E2

Kapitel 3 o 4 Att skicka signaler på en länk Tillförlitlig dataöverföring. Att göra. Att sända information mellan datorer

Följande signaler har kodats med Manchester. Hur ser bitströmmen ut om den inleds med en 0:a?

Lokala nät Ethernet o 802.x. (Maria Kihl)

Tentaexempel. Maria Kihl

ETSF05 Repetition av KomSys

MAC-(sub)lagret. Nätlagret. Datalänklagret. Fysiska lagret LLC MAC. LLC = Logical Link Control-sublager MAC = Media Access Control-sublager

Lokala nät (forts ) Ethernet o 802.x Stora nät och behovet av nätprotokoll IP. Felkorrektion. Att bekräfta paket. Jens A Andersson (Maria Kihl)

Länkhantering (feldetektering, felhantering, flödeskontroll) Maria Kihl

Kapitel 4: Tillförlitlig dataöverföring Kapitel 5:Lokala nät. Repetition. Länkprotokoll. Jens A Andersson (Maria Kihl) länk

Föreläsning 3. Datakodning (Data encoding) T Introduktion till modern telekommunikation Gunnar Karlsson, Bengt Sahlin 1

KomSys Hela kursen på en föreläsning ;-) Jens A Andersson

Föreläsning 3. Datakodning (Data encoding) Mål (fortsättning) Länk Mottagare. Sändare

Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning

Kapitel 5: Lokala nät Ethernet o 802.x. Felkorrektion. Att bekräfta paket. Jens A Andersson (Maria Kihl)

DIG IN TO Nätverksteknologier

PARITETSKONTROLL. Om generatorn i vidstående exempel avkänner ett jämt antal ettor ger den en nolla ut. Detta innebär att överföringen

Kihl & Andersson: , Stallings: , 12.1, 12.2, 13.1, 13.3

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Transportnivån. Kommunikation mellan processer. Kommunikation mellan processer. Sockets och TCP. UDP (User Datagram Protocol) Checksumman

Mattias Wiggberg Collaboration

Turingmaskinen - en abstrakt datormodell

repetitionskoder blockkoder Felrättande koder

LTH, Institutionen för Elektro- och Informationsteknik (EIT)

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Föreläsning 4: Lokala nät (forts ) Ethernet o 802.x Stora nät och behovet av nätprotokoll Transportprotokoll. Jens A Andersson

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Kihl & Andersson: , 3.3 Stallings: , 12.1, 12.2, 13.1, 13.3

Kihl & Andersson: , 3.1-2, (ej CDM) Stallings: 3.1-4, 5.1, 5.2, 5.3, 8.1, 8.2

Föreläsning 4: Lokala nät (forts ) Ethernet o 802.x Stora nät och behovet av nätprotokoll Transportprotokoll. Jens A Andersson

Data och information. Grunderna i datatransmission och fysiska skiktet. Media: vågledare. Datatransmission. Kodning av diskret information

Grunderna i datatransmission och fysiska skiktet. Bitarna möter verkligheten Sidorna i boken

Från användare till användare ARP. (Maria Kihl)

Instuderingsfrågor ETS052 Datorkommuniktion

Lab 3 Kodningsmetoder

Dataöverföring på Parallell- och serieform MOP 11/12 1

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Assemblerprogrammeringsuppgifter för FLIS-processorn

M7003 FMS/Weisser mätstyrningsserver M9003 ersatt med Simens S Plc- RS232

Digital kommunikation. Maria Kihl

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Föreläsning 5: Stora datanät Från användare till användare ARP

Föreläsning 5: ARP (hur hitta MAC-adress) Från applikation till applikation

LTH, Institutionen för Elektro- och Informationsteknik (EIT) ETS052 Datorkommunikation Sluttentamen: , 14-19

Datainsamling över Internet

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

DIG IN TO Nätverksteknologier

6. Blandade uppgifter

Lösningar till tentan i ETS052 Datorkommunikation

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Behandlingen av köpkort och köpkortsbokföringen.

Systemkonstruktion SERIEKOMMUNIKATION

Blandade problem från elektro- och datateknik

Digital- och datorteknik

Seriellmeny. PS SmartSwitch. Baud. Robust XON. Databitar. Svara på DSR RS-232/RS-422. Jobb-buffring. RS-422-polaritet. NPA-läge.

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

EDA451 - Digital och Datorteknik 2009/2010. EDA Digital och Datorteknik 2009/2010. Binär Kodning, lärobokens kap.2

Föreläsning 5: ARP (hur hitta MAC-adress) IPv4, IPv6 Transportprotokoll (TCP) Jens A Andersson

Kommunikationssystem grundkurs, 2G1501 Övningar modul 1 Dataöverföring & fysisk infrastruktur 1 Dataöverföring

Lösningar ETS052 Datorkommunikation,

Övningar modul 1 - Dataöverföring & fysisk infrastruktur

Länk Mottagare. Sändare. transmission linjekodning modulering inramning kontrolldata och nyttolast Adressering Felkontroll Flödeskontroll

Kurs: HF1012, Matematisk statistik Lärare: Armin Halilovic Datum: Tisdag 12 april 2016 Skrivtid: 8:15-10:00

Programmering av inbyggda system. Seriekommunikation. Viktor Kämpe

4 Paket- och kretskopplade nät

LiTH Lab1: Asynkron seriell dataöverföring via optisk länk Laboration 1. Asynkron seriell dataöverföring via optisk länk

LTH, Institutionen för Elektro- och Informationsteknik (EIT) ETS052 Datorkommunikation Sluttentamen: , 08-13

Digital kommunikation. Maria Kihl

DA 2012: F13. Nätverk 2 Ann-Sofi Åhn

Tentamen SSY 065, onsdag 17/12, 08:30-12:30, H. Lärare: Petter Falkman, (772) 3723 Tider för lärarens närvaro: 09:30, 11:00

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

Dator- och telekommunikation (ETS601) Höstterminen 2016

Tentamen i Datakunskap NT

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

DIGITAL KOMMUNIKATION

LTH, Institutionen för Elektro- och Informationsteknik (EIT)

Tentamen Nätverksprogrammering Lösningsförslag

Informationsteknologi sommarkurs 5p, Datakommunikation

2 Vad händer när man ringer? 2 Vad händer när man ringer?

9600 baud Standard baudrate för anslutning till någon av Microbus övriga displayer.

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Föreläsning 4. Multiplexering (1/2) Multiplexering (2/2) Multiplexering Närnät

Access till nätet. Maria Kihl

Question 2. a) reliable delivery. 5 June

Internetprotokollen. Maria Kihl

Real-time requirements for online games

Transkript:

Datalänklagret Datalänklagret ska: Erbjuda tjänster till det överliggande lagret (nätverkslagret) Paketera data (framing) Hantera fel i överföringen Hantera flödeskontroll

Tjänster som datalänklagret erbjuder nätverkslagret Olika typer av tjänster Obekräftad "connectionless service, skickar data utan att veta om mottagaren finns eller lyssnar, dessutom förväntar man sig ingen bekräftelse på att paket kommer fram. Används vid korta avstånd med liten risk för fel, t ex LAN (jämför med brev på posten) Bekräftad "connectionless service. Mottagaren skickar kvittens om paketet kommer fram. (jämför med rekommenderat brev) Bekräftad "connection-oriented service, etablerar först kontakt, sen skickar data. Skickar uppkopplingsbegäran Mottagaren svarar med ett klartecken att den är redo att ta emot data Data skickas Nerkopplingsbegäran skickas

Paketering av data Det finns två (tre) principer för att paketera data: Teckenorienterad överföring Ett tecken består av ett antal bitar, exempelvis 7 (ASCII-tecken) eller 8 bitar. Bitorienterad överföring Ett paket av data kan bestå av ett godtyckligt antal bitar. (Ett tredje sätt är att signalera på en särskild kanal när start och stopp ska ske, sk hårdvarumässig signalering.)

Teckenorienterad överföring Vid teckenorienterad överföring paketerar man ett antal tecken i ett datablock. För att mottagaren ska veta var ett datablock börjar och var det slutar finns det två sätt att ange längden på datablocket. 1. Ett speciellt tecken anger längden på varje datablock. 7 tecken 5 tecken 8 tecken 7 datablock 5 datablock 8 datablock 2 Speciellt tecken som anger datalängden för varje block Nackdel: Vi får synkroniseringsproblem (dvs problem att avgöra var kommande block börjar och slutar) om vi får fel i överföringen av något tecken som anger datalängden.

Teckenorienterad överföring Ett annat sätt är att ha: 2. Speciella tecken för start och stopp för ett datablock. STX datablock ETX Starttecken (Start of text) Stopptecken (End of text) Problem: Vi får problem om STX- eller ETX-tecknen ingår i datablocket. Åtgärd: Vi stoppar in specialtecken framför STX/ETX som anger att dessa tecken ingår i datablocket och inte anger start eller stopp. Det kallar vi character stuffing. datablock STX DLE ETX ETX Specialtecken som anger att ETX ingår i datablocket = stuffat tecken ETX ingår i datablocket

Bitorienterad överföring Vid bitorienterad överföring kan data bestå av ett godtyckligt antal bitar. För att mottagaren ska veta var data börjar och var de slutar kan man använda: Ett speciellt bitmönster som anger start/stopp, t ex 01111110. Problem: Bitmönstret för start/stopp kan förekomma i dataströmmen. Åtgärd: Bitstuffing. Om fler än 5 ettor i följd uppträder i datat så stoppas en 0 in. originaldata stuffad data på kanalen avstuffad data hos mottagaren

Hantering av fel i överföringen Varje kanal kan ge bitfel i överföringen. Hur man vill hantera dessa fel beror på hur stor sannolikheten för fel är och hur känslig vår applikation är för bitfel. Vi kan välja på tre olika sätt att hantera fel: Ingen felhantering (risken för bitfel kanske är så liten att vår applikation inte påverkas) Felupptäckt. Vi kan begränsa oss till att upptäcka att vi har bitfel i överföringen. Vi kan sen välja på att: Be sändaren att sända om felaktigt paket. Jämför med TCPprotokollet. (kanske inte möjligt i en realtidstillämpning) Kasta felaktiga paket. Felaktig data är ofta sämre än inget data. Jämför med UDP-protokollet. Felrättning. Man försöker rätta felaktig data. Förekommer t ex i mobiltelefonnäten där kravet på realtidstillämpningar är stort och felsannolikheten hög.

Hantering av fel i överföringen Totala antalet överförda bitar (n) = antalet databitar (m) + antalet kontrollbitar (r) Felupptäckt och felrättning kräver redundans, dvs att vi adderar kontrollbitar till vårt data (r >0) databitar kontrollbitar m r Antalet bitar som skiljer två ord åt kallas Hamming distance (d) Om r=0, så är d=1 => ickeredundant. Man kan inte ändra något utan att det ändrar betydelse, alltså: d = 1 000 001 010 011 100 101 110 111

Felupptäckande kod För att upptäcka e fel krävs d = e + 1. Det finns olika metoder att upptäcka fel, t ex: Paritetsbitar. Blockkod CRC (Cyclic Redundance Check).

Paritetsbit En väldigt enkel metod att upptäcka enkelfel (dvs då det bara är fel i enda bit i paketet) är att lägga till en paritetsbit. Mottagaren kan då räkna antalet 1 :or och avgöra om det föreligger bitfel. Det finns två olika sätt att välja paritetsbit: Jämn paritet = sändaren lägger till en extra bit så att summan av alla 1 :or blir jämnt Udda paritet = sändaren lägger till en extrabit så att summan av alla 1 :or blir udda. Med en paritetsbit (jämn paritet) får man d = 2 000 0 001 1 010 1 011 0 100 1 101 0 110 0 111 1

Blockkod Vi kan utveckla metoden med paritetsbitar genom att lägga till ytterligare kontrollbitar och på så sätt kunna upptäcka fler fel i överfört data. Vi använder oss av en matematisk funktion som bestämmer kontrollbitarna som funktion av databitarna: r = f(m) Mottagaren kan göra motsvarande operation och kan konstatera om den får samma resultat. Därigenom kan mottagaren avgöra om det finns fel i överföringen eller inte. databitar m kontrollbitar r

CRC (Cyclic Redundancy Check) CRC bygger på polynomdivision. Vi börjar med att uttrycka vårt data i polynomform: Ex) Data =101 i polynomform blir 1*X 2 + 0*X 1 + 1*X 0 =X 2 + 1 Sändare och mottagare har också kommit överens om ett gemensamt polynom som man ska använda vid divisionen. Sändaren fyller ut sitt data med CRC-bitar tills polynomdivisionen går jämnt ut (data i polynomform) + CRC Överenskommet polynom = ska gå jämnt ut Ex) Data 101 ger polynomen X 2 + 1. Överenskommet polynom =X Sändaren fyller ut sitt data med CRC-bit tills divisionen går jämnt ut. I detta fall adderar den en 0 i slutet och får (data+crc) =1010, dvs X 3 +X (data i polynomform) + CRC Överenskommet polynom X 3 +X = = X 2 +1 (vilket går jämnt ut) X Mottagaren gör samma operation och kan avgöra om data är korrekt eller inte.

Felrättande kod Vill vi också rätt felaktiga bitfel måste vi addera ytterligare kontrollbitar. För att rätta till e bitar krävs det att d = 2e + 1 Med d = 3 kan man alltså rätta ett fel, Ex) 00 kodas som 000000 01 kodas som 000111 10 kodas som 111000 11 kodas som 111111 Om vi får fel i överföringen så att 000000 tolkas som 0000001 kan vi slutas oss till att det förmodligen var 000000 som sänts. Men om det ursprungliga datat var 000000 och det som mottagaren ser är 000011 så kommer mottagaren att tolka det som 000111. Dvs vi kan bara rätta enkelfel med d=3

Flödesreglering (grundläggande datalänkprotokoll) 1. Simplex, ingen flödeskontroll, felfri kanal 2. Halv duplex, flödeskontroll, felfri kanal 3. Halv duplex, flödeskontroll, ej felfri kanal 4. Full duplex, flödeskontroll, ej felfri kanal (Sliding window)

Simplex, ingen flödeskontroll, felfri kanal Sändaren sänder data när det finns något att sända och utgår från att det kommer fram till mottagaren som inte kvitterar. S 1 2 3 4 5 D D D D D R S=Sändare R=Mottagare D=Data 1 2 3 4 5 tid

Halv duplex, flödeskontroll, felfri kanal Stop-and-wait Sändaren sänder data när det finns något att sända och väntar på bekräftelse att data kommit fram (Ack) innan den sänder nästa data. S 1 2 3 D Ack R 1 2 3 S=Sändare R=Mottagare D=Data Ack=Bekräftelse Problem: Vad händer om vi får fel i överföringen? Då stannar kommunikationen av.

Halv duplex, flödeskontroll, ej felfri kanal Sändaren sänder data när det finns något att sända och väntar på bekräftelse att data kommit fram (Ack) innan den sänder nästa data. Men eftersom det kan bli fel i överföringen finns en timeout som startar varje gång data sänds och om den löper ut indikerar det att det uppträtt fel i överföringen. Då sänder sändaren om sitt data. timeout S 1 D 1 Ack 2 D 2 fel 2 D 2 R 1 2 Problem: Hur vet mottagaren att det har blivit fel i överföringen och att sändaren sänder D 2 igen och inte D 3?

Halv duplex, flödeskontroll, ej felfri kanal Sändaren numrerar paketen löpande med 0 och 1 timeout S R D 1 (0) Ack D 2 (1) fel D 2 (1) Ack D 3 (0) Problem: Protokollen inte särskilt effektiva eftersom man måste vänta på bekräftelse innan man sänder nytt data.

Sliding window Full duplex, flödeskontroll, ej felfri kanal Kräver full duplex. Sändare och mottagaren kan sända bekräftelse och data samtidigt (piggy backing) Sändaren väntar inte på bekräftelse innan nästa data skickas. Sändaren håller reda på hur många obekräftade data som sänds och när bekräftelser kommer noteras det. Datapaketen måste dock numreras. Det finns två varianter. Med eller utan buffert. Utan buffert. Om t ex time-out:en löper ut för Data 2 så sänder sändaren om allt från och med Data 2 (se figur nästa bild) Med buffert. Om t ex time-out:en löper ut för Data 2 så sänder sändaren bara om det som mottagaren inte fått bekräftelse på, dvs bara Data 2 och fortsätter sedan skicka data från där sändaren senast sände data. (se figur nästa bild)

Sliding window Full duplex, flödeskontroll, ej felfri kanal Utan buffert Med buffert