Datakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll?

Relevanta dokument
Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Informationsteknologi sommarkurs 5p, Datakommunikation

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Introduktion till hårdvara, mjukvara och operativsystem

Design och trender. Föreläsning 12

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

Datorteknik ERIK LARSSON

Operativsystem (IS1350) :00-12:00

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Distribuerade affärssystem

Programmeringsteknik II

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

Objektorienterad programmering

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Operativsystem Introduktion

TDDI16 Datastrukturer och algoritmer. Algoritmanalys

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Datorarkitekturer med operativsystem ERIK LARSSON

Introduktionsmöte Innehåll

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

QuickTime Streaming Server, en introduktion

Föreläsning 11 Tisdag 6/6 2000

Tentamen den 18 mars svar Datorteknik, EIT070

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Föreläsning 2 Datastrukturer (DAT037)

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Grundläggande datavetenskap, 4p

Föreläsning 5 Innehåll

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

DIG IN TO Nätverksteknologier

Tentamen i Datorkommunikation den 10 mars 2014

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Föreläsning 13 Innehåll

Skriftlig tentamen i kursen TDTS0604 och TDTS43 Datornät och distribuerade system kl. 8 12

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

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Pipelining: Software Optimeringar Av: Gustaf Lagerblad

Modul-Fleet NÄR DU VILL FÅ UT MER AV DIN FLOTTA. I can help! Ordered 3 items. Can t serve last client. Running late!

Välkommen! SA S PSA S Im I puls s Mobilite t t e 8 1

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

OSI-modellen. Skiktade kommunikationsprotokoll. OSI-Modellen. Vad är en bra skiktindelning? Fysiska skiktet. Länkskiktet

Datastrukturer. föreläsning 3. Stacks 1

MESI i Intel Core 2 Duo

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 Tentamen :00-18:00

Lösningsförslag till tentamen i IS1350 Operativsystem

Datainsamling över Internet

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A

Sju riktlinjer vid utveckling av hemsidor för mobil och desktop

Projekt Fake för Virtutech

FOTA - 3 COTS och objektorientering i realtidstillämpningar Annika Ohlsson Ericsson Microwave Systems

Författare: Juha Söderqvist IT-GUI. Version 1.0. Datum

Arkitekturer i operativsystem

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt.

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Inkapsling (encapsulation)

Bakgrund. Inför projektet. Mätningar av existerande läge

Protokoll PRTP Workshop

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

Sammansatta datatyper Generics: Parametrisk polymorfism

IP Från användare till användare Vägval DNS Jens A Andersson (Maria Kihl) Att skicka data över flera länkar. Nätprotokoll

Data på disk är en teknisk lösning i Capitex Säljstöd som gör att viss information ej sparas i databasen utan direkt på serverns hårddisk.

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00

Kapitel 6, 7, o 8: IP DNS Vägval Från användare till användare Jens A Andersson (Maria Kihl) Att skicka data över flera länkar.

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

PageSpeed Insights. (utgångsdatum har inte angetts)

Operativsystem - Processer I

Processer och trådar. Rasmus Cronstrand Per Jonsson Ante Wall Fabian Åberg

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

Tentamen Datastrukturer D DAT 035/INN960

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Minnet från processorns sida Datorteknik

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

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Question 2. a) reliable delivery. 5 June

SKOLFS. beslutade den XXX 2017.

Godkännande av kundapplikationer

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Operativsystem ID hp, ID2200 6hp

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Sökning och sortering

Programmering för språkteknologer II. OH-serie: Sökning och sortering. Algoritm

Transkript:

1 Vad är speciellt med implementering av kommunikationsprotokoll?

2 Översikt Inledning Hårdvaru-vy och mjukvaru-vy Mjukvaruarkitektur Rules of thumb Minnesbandbredd TCP-implementering ILP Integrated Layer Processing

3 Kommunikationsprestanda Två mått: genomströmning (throughput) fördröjning (delay)

4 Kostnader Två mått: per byte per paket

5 Faktorer som påverkar protokollstacksprestanda (Givet en viss hårdvara) strukturen: hur protokollstacken partitioneras mellan OS och tillämpning, hur hårvaran accessas, hur (om) skikten separeras i implementationen OS-funktioner: kontext-byte, schemaläggning, minneshantering, avbrottshantering

Ex: paket anländer till väntande tillämpning Avbrott som startar avbrottshanteraren Datakom II (MNP) 6 Avbrottshanteraren sköter protokollprocessning och överlämnar data till tillämpningen OS:et måste kopiera data till tillämpningens buffert och göra kontext-byte OS-funktionerna, avbrott, kopiering och kontext-byte, kostar minst lika mycket som protokoll-processningen. Protokollprestanda beror till stor del på implementationsomgivningen.

7 Strukturen på en protokollstackimplementation partitionering: monolitisk i OS:ets kärna monolitisk i en tillämpningsprocess (server) per process i tillämpningens adressrymd gränssnitt: single-context tasks upcalls

8 Partitioneringsstrategier Vilken funktionalitet skall vara i OS:et (kernel space), som vi litar på, och vilken kan vara i tillämpningens adressrymd (user space), som vi inte litar på? Balans mellan: software engineering (utveckling, test, underhåll) möjlighet att skräddarsy säkerhet prestanda

Monolitisk implementation i OS:ets kärna Allt utom ev. tillämpningsprotokoll i OS:ets kärna Enklaste och mest vanligt förekommande valet Har högst säkerhet Svårare att implementera och debugga Datakom II (MNP) 9 Svårt att skräddarsy för speciella tillämpningsbehov Ex. Unix, OS/2 och Windows NT

10 Monolitisk implementation i tillämpningsprocess (server) I princip hela protokollstacken implementeras i en pålitlig ( trusted ) server-process. Tillämpningen anropar denna server-process i stället för OS:et. Säker Lättare att implementera och debugga Dålig prestanda pga många kontext-byten Ex. Mach, men också WINSOCK DLL i Windows

11 Per-process i tillämpningens adressrymd Implementeras som ett bibliotek som länkas in i tilllämpningen. Bra prestanda (om rätt implementerat) Möjlighet att skräddarsy Lätt att debugga och underhålla Dålig säkerhet kan lösas med registry server Stor binär (om ej delat bibliotek) Multi-trådning nödvändigt för många protokoll

12 Jämförelse Teknik Utvecklingskostnad monolitisk i kärnan monolitisk i server per-protokollstack i server bibliotek perprocess, perprotokollstack Prestanda Säkerhet dålig bra bra hög Skräddarsybarhet dålig dålig bra medel medel dålig bra låg mycket bra bra, med noggrann design bra, men svårare att uppnå låg, förutsatt multitrådning

13 Single context Protokollskikten har en gemensam exekveringstråd som ej kan avbrytas. Endast ett paket processas åt gången, så inga lås behövs för protokollens delade datastrukturer. Koden behöver inte vara reentrant. Effektivt ger låg fördröjning genom stacken.

14 Tasks Varje skikt är en task som aktiveras från en task scheduler. Varje task processar ett paket klart innan den returnerar. En task kan fortsätta processningen av paket genom att anropa en annan task, eller åter-schedulera sig själv efter en timeout. Task scheduler har friheten att aktivera tasks med hög prioritet först ger möjlighet att erbjuda servicekvalitet.

15 Upcalls Nyckelidé: en tråd per paket. Tråden tar hand om alla skikts protokoll-processning. Varje skikt registrerar entry-punkter för att sända och ta emot paket hos skiktet under. När ett skikt vill överlämna ett paket, eller ta emot ett paket från skiktet ovan, så anropar den resp. entrypunkt. Måste använda lås till gemensamma datastrukturer därför att flera trådar kan vara aktiva samtidigt.

16 Tumregel 1: Optimera för det vanliga fallet Gäller generellt för programutveckling. Identifiera vad som är den vanliga exekveringsvägen genom koden och optimera denna med avseende på tid. För kommunikationsprotokoll är det vanliga fallet ett felfritt dataflöde, med generering och mottagning av paket i sekvens. Kan tex beräkna protokoll-huvud i förväg. Byt ordning på tester för att passa vanliga vägen.

Tumregel 2: Var medveten om flaskhalsarna Var är flaskhalsen i systemet? Datakom II (MNP) 17 Kan den bytas ut eller användas på ett effektivare sätt? Genom att åstadkomma en balanserad pipeline, så kan man maximera plattformens prestanda.

18 Tumregel 3: Fin-justera inre loopar Det är ofta en liten del av koden som bidrar till en stor del av exekveringstiden. De innersta looparna är vanligaste kandidater. Överväg att rulla ut och/eller att koda dessa i assembler. Exempel: kopieringsloop, checksummeberäkning.

19 Tumregel 4: Välj bra datastrukturer Val av datastrukturer kan dramatiskt påverka prestandan. Ex: buffrar för protokoll-headers och data, timers och datastrukturer för att lagra förbindelsers tillstånd. Sökning av datastukturer i den vanliga vägen måste vara mycket snabb.

20 Tumregel 5: Undvik att ta på data Ett av de värsta misstagen är att kopiera ett paket flera gånger än vad som är absolut nödvändigt. Gör alla ansträngningar för att undvika att ta på data mer än en gång. Försök kombinera flera data-operationer i samma loop, tex beräkning av checksumma och kopiering.

21 Tumregel 6: Minimera antalet sända paket Mottagning och sändning av paket tar resurser i både nätet och slut-systemet. Piggyback är ett sätt att haka på ytterligare information på paket som ändå skulle skickats, tex ACK på data-paket. Exempel på ineffektivitet är HTTP som öppnar en ny TCP-förbindelse för varje objekt, vilket resulterar i minst tre extra paket per objekt: SYN, SYN-ACK och FIN (förutom den extra fördröjningen).

Tumregel 7: Sänd så stora paket som möjligt Datakom II (MNP) 22 Ju större paket, ju mindre total overhead för pakethuvuden. Det minimerar antalet paket för en given datamängd, och därmed summan av den fasta kostnaden för paketen.

23 Tumregel 8: Cache hints En cache utnyttjar lokalitet om någon operation har lokalitet, så kan en cache ofta förbättra prestanda. Protokoll-kontroll-block är en typisk kandidat. Om ett paket tagits emot på en viss förbindelse är det stor sannolikhet att nästa paket hör till samma förbindelse.

24 Tumregel 9: Använd hårdvara om möjligt Ibland är det värt att utveckla hårdvara för en funktion. Exempel är beräkning av TCP-checksumma på nätverksadaptern.

25 Tumregel 10: Utnyttja tillämpningens egenskaper Gäller tillämpningsprotokoll som tex HTTP Utnyttja kunskap om tillämpningen för att optimera protokollet.