9789147052110

Page 1

data kommunikation VALENTINO BERTI MATS BJÖRKMAN ANDERS LINDGREN LARS-ÅKE NORDÉN


Innehåll Förord Bokens struktur Olika sätt att läsa boken Kommentarer från författarna

7 8 9 11

1. Datakommunikationens grunder Grundläggande principer för datakommunikation Protokoll – datakommunikationens regler Principerna för kretskopplade och paketförmedlande nät Skiktade arkitekturer för datakommunikation Principer för nätverksdesign Grunder för nätverkstopologi Makten över datakommunikationens regelverk Utveckling av två viktiga nät – PC-nät och Internet Sammanfattning Repetitionsfrågor Referenser

13 15 27 32 37 51 53 60 61 67 68 70

2. Principer för dataöverföring En systemmodell för datornät Pålitlig överföring av data Feldetektion Paketering av data Sammanfattning Repetitionsfrågor Referenser

71 72 75 98 104 107 108 108

3. Principer för routing och forwarding Vad gör en router? Routing

109 109 113

INNEHÅLL

3


4

Routing i Internet Forwarding Sammanfattning Repetitionsfrågor Referenser

129 139 144 145 146

4. Applikationsskiktet Kommunikation mellan tillämpningar Kommunikationssätt Några vanliga tillämpningar Realtidstjänster Namnöversättning med DNS Verktyg för att utforska nätverket Principer för nätverksprogrammering Sammanfattning Repetitionsfrågor Referenser

147 148 155 160 182 195 201 208 219 220 221

5. Transportskiktet Transportskiktets uppgifter och förutsättningar UDP och TCP – protokoll i transportskiktet Tre andra transportprotokoll Sammanfattning Repetitionsfrågor Referenser

223 224 227 245 247 247 248

6. Nätskiktet Adressering IP – funktionalitet ICMP – kontrollmeddelanden på Internet ARP och RARP – översätter mellan IP-adresser och MAC-adresser Sammanfattning Repetitionsfrågor Referenser

249 249 262 269 270 275 276 276

7. Länkskiktet Länkskiktets uppgifter Trådbundna länkskikt Trådlösa länkskikt

277 278 285 296


Sammanfattning Repetitionsfrågor Referenser

312 313 314

8. Fysiska skiktet Bandbredd, basband och bredband Störningar och störkällor Trådbunden media Trådlös förbindelse Sammanfattning Repetitionsfrågor Referenser

315 317 321 325 339 342 342 342

9. Data- och nätverkssäkerhet Introduktion Krypteringens grunder och historia Nätverkssäkerhet – skydd av data Nätverkssäkerhet i protokollstacken – krypteringsprogram Nätverkssäkerhet – skydd av system Sammanfattning Repetitionsfrågor Referenser

343 343 347 373 391 395 401 402 403

10. Appendix A: Förkortningar och begrepp

405

11. Appendix B: Standardiseringsorganisationer

409

12. Appendix C: Standardisering av Internet

415

13. Appendix D: Standarder för trådlösa lokala nätverk – WLAN

421

14. Appendix E: Styrkoder i ACII-kodtabell

427

Register

429

INNEHÅLL

5


Förord Vad är egentligen Internet? Det beror helt och hållet på vem du frågar. För somliga är det ett hav av digital information – för andra ett världsomspännande nätverk av nätverk. Någon likställer Internet med de tjänster som finns i form av webben, e-post, mediatjänster etc. En annan ser möjligheten att söka information som central. Internet kan vara allt detta beroende på vilket perspektiv man väljer. En sak som är helt säker är att det som började som ett militärt projekt och sedan under många år närmast kunde beskrivas som en akademisk tummelplats, har vuxit till att vara en oerhört viktig – för somliga den allra viktigaste – infrastruktur för kommunikation som finns idag. För dem som växer upp idag har persondatorer och Internet alltid funnits och det kan ibland vara svårt att föreställa sig hur man för bara 30 år sedan klarade av allt det som Internet idag används till. Ordet Internet är sammansatt av orden inter (mellan) och net (nät). Internet utgörs med denna definition av det som finns mellan olika nät, och det är precis så Internet är byggt: ett mycket stort antal sammankopplade datornätverk som tillsammans bildar Internet. Ingen äger Internet och ingen har absolut makt över det även om det finns starka intresseorganisationer. Varje delnät ägs och sköts på olika sätt av olika ägare som kan vara företag, universitet, Internetleverantörer, organisationer etc. Sedan kopplas dessa nät till varandra i form av ett internet som tillsammans bildar det vi kallar för Internet. Det finns alltså en skillnad mellan att bygga ihop flera datornät till ett internet och den stora globala sammankopplingen av tiotusentals olika datornät som i vardagligt tal kallas Internet. Det säger sig självt att när man kopplar ihop nätverk, som består av olika tekniker, sköts av olika personer och har olika tjänster och regler, så kan det bli problem. Därför finns det regler för hur dessa internet ska byggas så att det fungerar för alla. Dessa regler, mekanismer och tekniker brukar kallas för internetteknologi, eller internetworking på engelska.

FÖRORD

7


Kunskap om och förståelse för hur denna internetteknologi fungerar är centralt för modern datakommunikation, vilket är ämnet för denna bok. Datakommunikation förekommer i många former och har funnits långt innan Internet existerade. Idag är datakommunikation i princip synonymt med internetteknologi, vilket är förklaringen till varför denna bok fokuserar på just internetteknologi – hur man får alla dessa sammankopplade nätverk att samarbeta och därigenom möjliggöra den mångfald av tjänster som finns på Internet. Syftet med boken är att ge en bred introduktion till datakommunikation i allmänhet och internetteknologin i synnerhet. Efter att ha läst boken ska du ha fått en god grundläggande förståelse för hur Internet är konstruerat och fungerar.

Bokens struktur Internettekniken är i sig ett komplext tekniskt system där många delkomponenter med avgränsade uppgifter ska samverka för att åstadkomma en fungerande helhet. För att det överhuvudtaget ska vara möjligt för dem som arbetar med internetteknologi att samtala om ämnet på ett fungerande sätt krävs det någon form av struktur. Den uppdelning som används för att strukturera de olika delarna består av ett antal skikt där det översta skiktet representerar tjänster och program som använder sig av Internet. I det lägsta skiktet återfinns det fysiska nätverket, där informationen kan överföras på olika sätt: i kablar, via radio, akustiskt etc. Datakommunikation som ämne kan beskrivas på olika sätt beroende på tycke och smak. En variant kan vara bottom-up, dvs. att börja med de enskilda delsystemen och komponenterna och sedan successivt bygga ihop dem till en helhet. Detta innebär att man börjar med de lägsta skikten och arbetar sig uppåt i den struktur som finns. En annan variant är top-down, vilket är raka motsatsen, där man utgår från helheten och successivt gräver sig ner i de tekniska detaljerna genom att behandla skikten uppifrån och ned. Ytterligare en variant kan vara att särskilja principer från hur man sedan väljer att förverkliga dem på olika sätt. Inget är fel och allt är rätt, på sitt sätt. Vi har i denna bok gjort en kapitelindelning som möjliggör olika sätt att tillgodogöra sig materialet beroende på vad läsaren tycker är mest tilltalande. Boken inleds med ett kapitel som ger en introduktion till datakommunikation och internetteknologi genom att till stor del utveckla det historiska perspekti-

8


vet. Därefter kommer två kapitel som tar upp två centrala principer för ämnet datakommunikation: • Hur man överför information från punkt A till punkt B. • Hur informationen hittar från punkt A till punkt B. Vid en första anblick kan dessa två punkter överlappa varandra, varför det kan vara på sin plats med en analogi. Tänk dig att du ringer från en mobiltelefon till en fast telefon. Rent tekniskt går det till som så att ditt tal spelas in i små ljudklipp flera gånger per sekund som sedan vidarebefordras till den du talar med. Den första punkten kan handla om hur stora ljudklippen ska vara och vad som händer om något av dem försvinner. Den andra punkten handlar om hur ljudklippen hittar genom telenätet från din mobiltelefon till mottagarens telefon. Efter de två principkapitlen kommer fem kapitel som beskriver den skiktade strukturen uppifrån och ned. Vi har valt att utgå från helhetsbilden eftersom de flesta idag har personlig erfarenhet av datornätverk och Internet, och därför enkelt kan relatera till helheten och sina egna erfarenheter av den. Boken avslutas därefter med ett kapitel som introducerar data- och nätverkssäkerhet – ett område som inte nödvändigtvis har direkt med datakommunikation att göra, men som är så pass centralt i dagens datornät att vi bedömer det som mycket viktigt att ha med i en introduktion till datakommunikation.

Olika sätt att läsa boken Här beskrivs några olika sätt som man kan tillgodogöra sig denna bok på: Top-down, principer först och skikt sedan Om du vill skilja principerna från hur de sedan är realiserade i de olika skikten så kan du helt enkelt läsa kapitlen i nummerordning. Kapitel 1 ger dig en historisk bakgrund och det avslutande kapitel 9 introducerar data- och nätverkssäkerhet när du har fått en förståelse för hur de olika skikten fungerar. Top-down, principer och skikt sammanflätade Även om kapitlen om principer är allmängiltiga så förekommer principerna sedan oftare i vissa skikt än i andra. Man kan därför tänka sig följande läsning, där principerna flätas in i en top-down-genomgång av skikten: Kapitel 1, 4, 2, 5,

FÖRORD

9


3, 6, 7, 8, 9. Om du vill läsa kapitel 9 om säkerhet tidigare än att spara det till sist kan det med fördel läsas efter kapitel 4 i denna läsordning. Bottom-up, principer först och skikt sedan Detta innebär en omvänd ordning av kapitel 4–8 jämfört med top-down, vilket innebär att läsordningen blir: Kapitel 1, 2, 3, 8, 7, 6, 5, 4, 9. Denna ordning ger dig förståelse för hur de olika typerna av fysiska nätverk fungerar innan de så småningom kopplas ihop till ett internet. Bottom-up, principer och skikt sammanflätade Man kan även välja att fläta in principkapitlen mellan de olika skiktkapitlen och får då ordningen: Kapitel 1, 8, 2, 7, 3, 6, 5, 4, 9. Här tas principerna för informationsöverföring upp innan länkskiktet medan principen för hur informationen hittar fram presenteras före nätskiktet. Kort introduktion till hur Internet fungerar Om du vill få en elementär förståelse för hur Internet fungerar utan att gå in alltför mycket i detalj på olika mekanismer och regler kan följande läsordning vara att rekommendera: • Kapitel 1 för en historisk återblick och introduktion av skiktmodellen. • Delar av kapitel 4 för en beskrivning av hur några vanliga tjänster fungerar. • Delar av kapitel 5 för en beskrivning av de grundläggande kommunikationstjänsterna. • Delar av kapitel 6 för en beskrivning av IP. • Delar av kapitel 9 för en introduktion till nätverkssäkerhet.

10


Kommentarer från författarna Det är inte bara Internet som har vuxit oerhört de senaste decennierna, utan även ämnet datakommunikation. Från att ha varit ett specialämne som studenter möjligtvis läste i årskurs 3 eller 4 på datatekniska universitetsutbildningar så lär man sig idag grunderna i datakommunikation redan på flera gymnasieprogram. Men vad är egentligen grunderna i ämnet datakommunikation idag? Det är ingen självklarhet, givet att Internet idag är många olika saker för olika målgrupper. Vi som har skrivit denna bok har alla personlig erfarenhet av att undervisa i ämnet datakommunikation på olika nivåer. Dessa erfarenheter har vi utgått ifrån i valet av vad som ingår i denna bok, på vilket sätt och i vilken ordning. Boken kan som sagt läsas på ett antal olika sätt, men oavsett vilket du väljer hoppas vi att du kommer ha stor behållning av den.

FÖRORD

11



Datakommunikationens grunder

1

System för datakommunikation har tre primära komponenter som vi kommer att återkomma till i de övriga kapitlen, se även figur 1.1. Det finns en sändare som normalt är den källa där data uppstår, ett medium som är det medel som används för överföringen samt en mottagare som markerar slutet på överföringen. Dessa enheter skulle idag kunna symboliseras av en server på Internet (sändaren), bredbandsförbindelsen (mediet) samt persondatorn i hemmet (mottagaren). I de flesta av dagens kommunikationssystem kan sändare och mottagare byta roller med varandra så att man kan både sända och ta emot. Det kallas för duplex-kommunikation och det ska vi förklara i senare kapitel.

sändare

media

mottagare

FIGUR 1.1. Komponenter i ett transmissionssystem. I sändaren uppstår data som man via media överför till en mottagare.

I detta kapitel ska vi gå igenom de viktigaste grundläggande principerna för datakommunikation av vilka många får en mer detaljerad beskrivning i andra kapitel. Ett viktigt område är t.ex. begreppet kommunikationsprotokoll som går igen i många av de övriga kapitlen. Vi ska tidigt förstå den funktionella skillnaden mellan ett kretskopplat nät, som vårt traditionella telefonnät, och ett paketförmedlande nät som Internet. Det känns också naturligt att i detta kapitel bekanta oss med skiktade kommunikationsarkitekturer så att vi lättare kan förstå och positionera olika begrepp samt stycka upp komplexa kommunikationsstrukturer (kallade kommunikationsstackar) i olika

DATAKOMMUNIKATIONENS GRUNDER

13


mindre komponenter. En sådan kommunikationsstruktur är TCP/IP-stacken som huvuddelen av denna bok egentligen handlar om. När vi närmar oss slutet av kapitlet tittar vi på några olika grundläggande nätverkstopologier (hur nätverksanslutna enheter är kopplade till varandra) så att vi lär oss känna igen begreppen bussnät, ringnät och stjärnnät samt vilka effekter och konsekvenser olika topologier ger på exempelvis skalbarhet, säkerhet, robusthet och ekonomi. I appendix B och C presenteras de olika organisationer och myndigheter som är involverade i att standardisera olika delar av datakommunikationsområdet samt Internet. Du kommer att se ett antal faktarutor i detta kapitel där vi beskriver historiska begrepp och produkter. Historiken är intressant för att förstå varför vi har ärvt vissa egenskaper samt för att påvisa hur långt vi har kommit med datakommunikationen idag.

Kommunikation Ordet kommunikation kommer ursprungligen från latinets comunis vilket betyder gemenskap. Från comunis härleds ordet comunicare vilket betyder göra något gemensamt, meddela någon något, få del av något, rådpläga (se Svenska Akademins Ordbok). Givetvis ligger även begreppet kommun nära till hands att nämna. Ordet kommunikation förekommer också i andra sammanhang och med andra betydelser, till exempel • medel för färd eller transport av varor • portvalv under fästningsvallar • kommunicerande kärl (kommer du ihåg fysiklektionen?) • rådslag, överläggning • underrätta, delge Under medeltiden skedde kommunikationen via vandrings – och boskapsstigar. Det var tidsödande att förflytta sig från en plats till en annan och det begränsade möjligheterna att sända viktiga meddelanden på längre avstånd. Ropa, vissla, eld- och röksignaler, springa eller rida till häst med bud, var några sätt att larma om fara. Med kristendomen kom kyrkorna och då blev klockklämtning det vanligaste sättet att larma folk i bygderna vid framför allt eldsvådor. Kanonskott, vårdkasar, tornväktare och brandvakter – kommunikationsmetoderna förr i världen var åtskilliga och hade många gånger tusenåriga anor.

14


Grundläggande principer för datakommunikation I detta avsnitt går vi igenom de grundläggande principerna för datakommunikation. Dessa uttryck och begrepp återkommer till och från i framtida kapitel och kommer inte att beskrivas mer utförligt än vad som sker i detta avsnitt. Först får du en beskrivning av hur begreppen bit och byte hör ihop och hur dessa kodas i olika kodtabeller för att bilda våra läsbara tecken. Den minsta enheten som hanteras inom datakommunikationen är en bit. Kodtabellerna behövs för att mottagaren ska kunna avkoda inkommande bitströmmar och få fram information ur datamängden. Alla länder har sina specialtecken som ska kunna representeras, i Sverige har vi t.ex. å, ä och ö. Vidare kommer du i detta avsnitt att få bekanta dig med begreppet bitar per sekund som är ett mått på överföringshastighet. När man kommunicerar är det viktigt att sändare och mottagare är synkroniserade med varandra, mottagaren ska vara beredd att ta emot ettor och nollor när sändaren börjar leverera. Du kommer också att läsa om olika principer för felhantering inom datakommunikation, principer som sedan praktiseras i senare kapitel. Vad händer om data inte kommer fram, eller kommer fram i fel ordning, eller förstörs på vägen (ettor och nollor kastas om) eller om mottagaren helt enkelt inte svarar?< Alla dessa avvikelser måste kunna hanteras av de kommunicerande parterna och hur man hanterar dessa felsituationer måste man vara överens om. När alla kommunicerande parter är överens om hur data kodas, hur dialogen ska gå till (vem som får sända, hur och när) samt hur och vem som ska hantera olika felsituationer, ja då har man ett regelverk att förhålla sig till. Detta regelverk kallas för kommunikationsprotokoll och det är vad denna bok handlar om. Men i synnerhet handlar den om protokollarkitekturen TCP/IP (Transmission Control Protocol/Internet Protocol) som definierar ett antal regelverk som får Internet att fungera. Data är ettor och nollor – bit, byte och kodtabeller Nästan all datakommunikation är digital och handlar om att överföra ettor och nollor från en punkt till en annan. Överföringshastighet (transmissionshastighet) mäts i bitar per sekund (bit/s) medan lagring av data mäts i det engelska uttrycket byte (plur. bytes). Nu gäller det att förstå hur dessa uttryck hänger ihop. Ett tecken från tangentbordet på en vanlig PC skapar en kombination av 8 ettor och nollor. På engelska kallas denna grupp för byte och är en sammansätt-

DATAKOMMUNIKATIONENS GRUNDER

15


ning av orden Binary Term. Det svenska ordet tecken skulle man därför kunna säga motsvarar den tekniska termen byte. En fullskriven A4-sid rymmer ca 2000 tecken, alltså 2000 byte som motsvarar 8 × 2000 = 16 000 bitar.

Hålkortet Hålkortet var länge det dominerande mediet för datarepresentation. Amerikanen Herman Hollerith har fått ge namn åt den hålkortskod som kom att användas med hans patent från 1887. Figur 1.2 visar ett 80-kolumners hålkort för programmering eller registrering av data. Datortillverkaren IBM kom att dominera hålkortsanvändningen och 80 kolumner kom att bli standard för hålkort. Olika hålkombinationer i en kolumn ger ett tecken. Under 1960-talet lanserade datorleverantören IBM en hålkortsterminal som både kunde sända hålkortsdata och stansa nya hålkort från data som kom från telelinjen. Denna terminaltyp fick heta IBM 2780 och hade just till uppgift att läsa ett hålkort i taget och sända informationen i 80-teckens block (samma datamängd som rymdes på ett hålkort). IBMs datakommunikationsprotokoll 2780 var under 1970- och 1980-talet den tidens FTP (File Transfer Protocol), det vanligaste regelverket för att överföra satsvis data (via hålkort) mellan två datorer. Hålkortets 80 kolumner kom att leva kvar i textbildskärmarnas 80 tecken per rad från 80-talet och som delvis finns kvar än idag i stordatormiljöer.

FIGUR 1.2. 80-kolumners hålkort. Foto: Henrik Bergman, Stockholm

16


Det blir lätt stora tal så därför använder man prefixen Kilo (K, 103), Mega (M, 106), Giga (G, 109) och Tera (T, 1012) framför ordet byte. I datakommunikationssammanhang räknar man dock alltid bitar som minsta överföringsenhet och sekunder som tidsenhet, därför får man bitar per sekund som förkortas bit/s men man kan även se förkortningen bps. Är det stora mängder om överförs per sekund använder man begreppen Kbit/s, Mbit/s, Gbit/s och så vidare. Ser man t.ex. begreppet MB betyder det MegaByte och syftar då på en fils storlek och aldrig på överföringshastighet. Hur lång tid det tar att överföra data beror på vilken överföringshastighet man har tillgång till. Ett USB-minne (Universal Serial Bus) eller MP3-spelare som rymmer 128 MB (MegaBytes) kan lagra ca 64 000 normalsidor A4 med text (128 miljoner/2 000). Över en Internetförbindelse på 2 Mbit/s tar det nominellt ca 8,5 minuter att överföra hela USB-minnet (128 Mbyte × 8 bitar/2 Mbit/s). Sedan kan det i verkligheten gå fortare eller långsammare beroende på protokoll, komprimering av data och överföringens kvalité. Enskilda ettor och nollor ger inte mycket information men om man grupperar dem i någon form av kod så kan man representera olika tecken. Bitar grupperas i bytes, 7 eller 8 i varje grupp. Vanligast i dag är 8 bitar i en byte (= tecken). Antalet bitar i tecknet bestämmer hur många teckenkombinationer man har möjlighet att representera, 2b, där b är antalet bitar som bildar en byte. ASCII -TABELLEN

ASCII-tabellen (uttalas aski) är, tillsammans med UNICODE, den vanligaste kodtabellen idag, dock med vissa modifieringar. Namnet är en förkortning av American Standard Code for Information Interchange och har använts sedan 1960-talet. ASCII-tabellen konstruerades ursprungligen för den amerikanska marknaden och stöder i sin grundversion inga nationella tecken såsom våra svenska bokstäver å, ä och ö. Grundversionen av ASCII byggdes upp med 7 bitar vilket ger 27 = 128 teckenkombinationer. Nu kan inte alla dessa 128 tecken användas till bokstäver, siffror och specialtecken (exempel på specialtecken är alla tecken som du får om du håller ner skift och trycker på en siffertangent) utan 32 tecken reserveras till speciella styrtecken för att styra enheter (t.ex. styrtecknet Line Feed, LF, för att mata upp en rad på en skrivare) eller som kommandotecken i en datakommunikationsdialog (t.ex. Start Of Text, STX, för att meddela mottagaren att efter detta tecken startar användardata).

DATAKOMMUNIKATIONENS GRUNDER

17


hexadec

hex

0

1

2

3

4

5

6

7

Dec

0

16

32

48

64

80

96

112

0 1 2 3 4 5 6 7 8 9 A B C D E F

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

NUL SOH STX ETX EOT ENQ ACK HEL BS HT LF VT FF CR SO SI

DLE SP DC1 ! DC2 " DC3 # DC4 $ NAK % SYN & ETB ’ CAN ( ) EM SUB * ESC + FS , GS RS . US /

0 1 2 3 4 5 6 7 8 9 : ; < = > ?

@ A B C D E F G H I J K L M N O

P Q R S T U V W X Y Z [ \ ] ^ _

‘ a b c d e f g h i j k l m n o

p q r s t u v w x y z { | } ~ DEL

FIGUR 1.3. ASCII-tabell med 7 bitar.

Notera att tabellen är indelad i 8 (0 –7) kolumner samt 16 rader (0–15). Varje rad och kolumn har ett decimalt och ett hexadecimalt index enligt det hexadecimala talsystemet, det vill säga ett talsystem med basen 16. HEXADECIMALA TALSYSTEMET

Hexadecimala talsystemet är ett positionssystem med de sexton siffrorna 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Det hexadecimala talsystemet är, precis som det decimala (X10), ett positionssystem där positionen längst till höger (första positionen) är värd 1 (=160), den andra är värd 16 (=161), den tredje 256 (=162) och så vidare. För att få ihop sammanlagt 16 tecken måste man ta till bokstäver efter siffran 9. Bokstaven A motsvarar således vår decimala siffra 10, bokstaven B den decimala siffran 11, C decimalt 13, D decimalt 14 och slutligen F motsvarar decimalt 15. Nu har vi 0 − 15, dvs 16 tecken. Om vi nu ska räkna om det hexadecimala talet 1AB16 till decimalt ser det ut så här: 1 ∙ 162 + 10 ∙ 161 + 11 ∙ 160 = 256 + 160 + 11 = 42710 och omvänt om vi ska skriva om det decimala talet 52310 till hexadecimalt får vi följande konvertering: 2 ∙ 162 + 0 ∙ 161 + 11 ∙ 160 = 512 + 0 + 11 = 20B16

18


Tabellen kan du använda för att snabbt få reda på ett teckens hexadecimala kod. Låt oss anta att du vill veta bokstaven A:s hexadecimala kod. När du har hittat A i tabellen går du rakt upp och läser av kolumnens hexadecimala kod som för A är 4. Sedan går du till vänster och läser av radkoden för A som är 1. Bokstaven A har således hexadecimala koden 41. Andra exempel: siffran 1 har hexadecimala koden 31 och bokstaven O har koden 4F. Som du ser i tabellen så innehåller kolumnerna 0 och 1 olika koder. Detta är de styr- och kommandokoder som nämnts tidigare. Du finner förklaringar till förkortningarna i Appendix E. Du har säkert noterat att det även finns ett decimalt kolumn- och radindex i tabellen. Det finns där för att enkelt kunna konvertera från hexadecimalt till decimalt. För att använda samma exempel som ovan så har bokstaven A har det decimala värdet 65 (kolumn 64 + rad 1). UNICODE

Som tidigare nämnts så måste man kunna koda hela världens alla olika tecken för att datakommunikation ska kunna användas av alla. ASCII-tabellen är för begränsad för detta då det inte finns tillräckligt många bitkombinationer. Därför har datorindustrin utvecklat en kodtabell som man kallar för Unicode och som består av över 100 000 tecken från 93 teckenuppsättningar [Unicode Inc.]. Syftet med Unicode är tänkt att ersätta äldre kodtabeller (såsom ASCII) och idag används Unicode bl.a. av Microsoft Windows, Apple Mac OS, Linux, Oracle och fler tillverkare ansluter sig. Unicode har utrymme för 1 114 112 tecken och kan representera tekniska symboler, matematiska symboler, musikaliska symboler och givetvis olika länders specialtecken såsom våra svenska å, ä och ö. EBCDIC

Denna kodtabell som introducerades av IBM för sin stordator System/360 i mitten av 1960-talet blev standard i alla IBM:s större datormodeller. EBCDIC (uttalas ”e b c dik”) står för Extended Binary Coded Decimal Interchange Code och har en bytelängd av 8 bitar vilket ger 256 tecken (28) i tabellen. Denna teckenkodtabell är inte lika vanlig längre då applikationer på Internet främst använder ASCII och UNICODE.

DATAKOMMUNIKATIONENS GRUNDER

19


Terminalernas inflytande Datakommunikationen fick ett rejält uppsving då bildskärmsterminalen uppfanns. Först då kunde man föra en riktig dialog med datorn och ställa frågor mot t.ex. databaser. Innan dess var det mest överföring av hålkort och hålremsor samt utskrift på skrivare. Men det var lite av vilda västern från datortillverkarnas sida eftersom varje datortillverkare hade sina egna protokoll mot varje terminalmodell. Det var först då Internet med TCP/IP, World Wide Web och HTML-kodning kom som datoranvändarna blev fria från leverantörernas inlåsningar. Dock figurerar fortfarande vissa begrepp och beteckningar från den gamla bildskärmstiden och därför känns det relevant att ge en historisk genomgång av de vanligaste bildskärmarna och deras protokoll. Teletype (TTY) skrivarterminal Den allra första terminaltypen är den s.k. teletypeterminalen, även förkortad TTY-terminalen. TTY-terminalen är som en elektrisk skrivmaskin som kan koda tecken enligt ASCII-tabellen och sända dem över en telelinje och skriva de tecken som tas emot på ett papper. DEC VT100 bildskärmsterminal Digital Equipment Corporation, eller även förkortat DEC, var en tidig datortillverkare som i slutet av 1970-talet tog fram en bildskärmsterminal kallad DEC VT100 (Virtual Terminal). DEC VT100 var egentligen en vidareutveckling av TTY-terminalen. I stället för papper visades de ASCII-kodade tecknen på en bildskärm och då tillkom fler styrkoder för att bl.a. kunna styra hur man presenterar tecken på skärmen (t.ex. blinkande text, inverterad text, dubbel teckenstorlek) Det regelverk som kom att gälla för att kommunicera mot denna terminal kom att kallas VT100-protokoll.

BILD 1.1. Digital Equipments VT100-terminal från slutet av 1970-talet. Den är asynkron, vilket innebär att den skickar tecknet så fort man har tryckt på tangenten. Foto: Dave Fischer.

20


IBM 3270 bildskärmsterminal På 1970-talet lanserade datortillverkaren IBM en serie bildskärmsterminaler under namnet IBM 3270. De kom att bli den mest använda bildskärmsterminalerna i världen, eftersom de anslöts till IBM stordatorer och många datorprogram var anpassade till denna terminlatyp. Ännu 2011 kan man finna applikationer som kräver denna typ av terminal som då oftast får emuleras (härmas) av en PC med speciell terminalprogramvara.

BILD 1.2. IBM:s 3270 terminal. Här visas själva bildskärmsarbetsplatsen men 3270 bestod av flera komponenter av vilka den s.k. styrenheten var en central del. 3270 styrenhet anslöt flera bildskärmar och skrivare via koaxialkabel. Foto: IBM Corporation.

Till skillnad mot DEC VT100 som sänder/mottar ett tecken i taget kan IBM 3270-terminalen ta emot ett helt bildskärmsformulär i taget och sända data i block, allt kodat i EBCDIC. Sättet att kommunicera med denna terminaltyp kallas för 3270-protokoll och sättet att presentera data på skärmen kallas för 3270-presentation. ”Dumma” terminaler När persondatorn blev populär och började anslutas till värddatorer kunde man använda dem som terminaler genom att ladda s.k. emulatorer, program som fick persondatorn att emulera (härma) en viss terminal. Eftersom persondatorn var programmerbar hade emulatorn fler funktioner än den originalterminal som den härmade. Därför myntades begreppet ”dum terminal” för att skilja dem från persondatorns mer ”intelligenta” terminalfunktion (spara data på hårddisk, klippa och klistra mellan terminalbild och PC-program, filöverföring mm.).

DATAKOMMUNIKATIONENS GRUNDER

21


Principer för överföring – hastighet och kontroll I detta avsnitt kommer du att få läsa om hur man mäter överföringshastighet samt vad begreppet bredband betyder. När man kommunicerar är det viktigt att sändare och mottagare är synkroniserade med varandra och i detta avsnitt presenteras två grundläggande metoder för synkronisering. När kommunikation etableras måste vissa villkor förhandlas och överenskommas mellan parterna och om något går fel i kommunikationen måste detta hanteras. BITAR PER SEKUND OCH BREDBAND

Överföringshastighet är en central fråga inom datakommunikationsområdet. Hur fort man kan transportera den digitala informationen är i vissa fall direkt avgörande för om man kan använda vissa tillämpningar (t.ex. videokonferens). Dataöverföringen sker seriellt, dvs. att databitarna skickas en i taget efter varandra, därför är begreppet bit/s (bitar per sekund) relevant. Man kan även se det skrivet som bps. Med begreppet bredband menar man idag snabb överföring, men vad är snabb överföring? Enligt internationella organisationer såsom International Telecommunication Union (ITU, se appendix B) och EU startar bredband vid hastigheten 256 000 bit/s men här i Sverige tycker Post- och Telestyrelsen (PTS) att hastigheten bör vara minst 2 Mbit/s (miljoner bitar per sekund). Vi kan konstatera att det inte finns några direkta bestämmelser som reglerar hur hög överföringshastigheten måste vara för att få kallas bredband. Det är mer ett samlingsnamn för en mängd olika tekniker som gör det möjligt att kommunicera och främst att ansluta till Internet med hög överföringshastighet. Mer om dessa olika tekniker i kapitel 8. ASYNKRON OCH SYNKRON ÖVERFÖRING

I kapitel 7 kommer begreppen asynkron och synkron överföring att beskrivas närmare. Det är två olika metoder för att synkronisera sändaren med mottagaren, en viktig funktion i alla datakommunikationssammanhang. Syftet är att mottagaren ska bli medveten om när sändaren börjar sända bitar samt i vilken takt. Asynkron överföring är den enklare metoden då man bara behöver klara synkroniseringen för ett tecken. Synkron överföring måste hålla synkroniseringen över många tecken i följd (många tecken i följd kallas datablock) och kräver en mer avancerad hårdvara och är därmed en dyrare teknik.

22


HANDSKAKNING

Inom datakommunikation används begreppet handskakning (handshake) för att beskriva när två kommunicerande enheter ska förhandla om gemensamma parametrar innan den direkta dataöverföringen startar. Handskakning är den process som normalt följer efter den fysiska kommunikationsetableringen (en kommunikationskrets har upprättats) och som föregår den rena dataöverföringen.

uppkoppling av krets

uppkoppling av fysisk kommunikationskrets elektrisk gränssnitt etableras

handskakning

förhandling om protokollparametrar, kontroll av identiteter (terminaladresser)

dataöverföring

dataöverföring mellan de kommunicerande parterna

avsluta kommunikation

logisk nedkoppling av datasamtalet. kontroll av eventuella checksummor

nedkoppling av krets

fysisk nedkoppling av krets, ny fysisk uppkoppling krävs vid ny kommunikation

FIGUR 1.4. Bilden visar var handskakningen kommer in i kommunikationsprocessen.

Exempel på parametrar som förhandlas i handskakningen är: • överföringshastighet • teckentabell • Hur eventuella bitfel ska upptäckas (s.k. paritetskontroll). • Hur många tecken (bytes) som maximalt kan skickas i en följd (kallas även för buffertstorlek). I kapitel 4 beskrivs ett praktiskt exempel (trevägshandskakning) på hur handskakning kan gå till samt vilken funktionalitet den ger. FELHANTERING – FÖRDRÖJNINGAR OCH TIMEOU T

Kommunikation är mycket en fråga om timing och detta är särskilt viktigt inom datakommunikation. När en dator skickar ett meddelande till en annan dator

DATAKOMMUNIKATIONENS GRUNDER

23


förväntas någon form av svar tillbaka. Detta svar måste komma inom en viss tid annars skulle man låsa kommunikationen (man kan inte vänta hur länge som helst). Denna väntetid kan röra sig mellan några millisekunder till flera minuter, beroende på omständigheter och på protokollet. När väntetiden överskrider sin, i protokollet specificerade, maxtid uppstår en timeout och det är en felsituation som måste kunna hanteras av regelverket.

söker konta kt söker konta kt här är

time out

jag

datab lock 1

omsän dning datablo ck 1

time out

ok

datablo ck 2 ok

FIGUR 1.5. visar exempel på när en timeout kan uppstå och vad som normalt händer som en följd av det. Sändaren väntar på en bekräftelse från mottagaren för Datablock 1 och kommer inget sådant så skickas normalt meddelandet om. Om svar uteblir (flera timeouter efter varandra) efter flera omsändningar så brukar sändaren normalt bryta kommunikationen.

Timeouter hanteras på olika sätt beroende på när de uppstår. Om en timeout uppstår vid kommunikationsetableringen så kommer sändande dator att försöka ett antal gånger till (retries på engelska) men fortsätter timeouten att uppstå så bryter sändaren etableringsförsöken. Om timeout uppstår mitt i dialogen eller i dataöverföringen så sker normalt en omsändning även här. Den som utvecklar kommunikationsregelverket (protokollet) måste bestämma vad som ska ske om motparten är tyst.

24


Trafiksätt – simplex och duplex Begreppen simplex och duplex anger på vilket sätt man låter trafiken flöda mellan två parter. Begreppen förekommer i protokollsammanhang samt i konfiguration av utrustning. Simplex och duplex kan användas både för att ange det logiska flödet och det fysiska flödet. SIMPLEX

Simplex betyder egentligen enkel och innebär envägskommunikation i datakommunikationssammanhang. Sett ur ett fysiskt perspektiv innebär simplex att information bara kan flöda åt ett håll, som t.ex i radio- och TV-sändningar. Med simplexförbindelse kan den som tar emot data inte sända tillbaka. Ur protokollsynpunkt är simplexkommunikation betydligt enklare att implementera. Ur ett logiskt perspektiv innebär simplex att applikationerna endast kan kommunicera åt ett håll, vi får således en dedikerad sändare och en dedikerad mottagare trots att det fysiska mediet kanske tillåter tvåvägskommunikation. Denna kombination är idag mycket ovanlig. Jämför gärna med två personer som samtalar. Båda kan fysiskt sett både sända och lyssna, men det är endast en person som talar åt gången. Den andra är då helt tyst.

FIGUR 1.6. Med simplex-överföring kan man endast sända åt ett håll,

som t. ex. då en kamera sänder till en tv.

DUPLEX

Duplex betyder dubbel och en fysisk duplexförbindelse innebär att linjen kan användas för tvåvägskommunikation så att båda parter kan sända och ta emot. Även här finns en logisk och fysisk aspekt. Fysisk duplex innebär att det fysiska mediet tillåter tvåvägskommunikation, t.ex. Walkie Talkie och logisk duplex innebär således att applikationen både kan ta emot och sända samtidigt. Duplex delas upp i halv och full duplex.

DATAKOMMUNIKATIONENS GRUNDER

25


Halv duplex Halv duplex innebär att den fysiska linjen används för tvåvägskommunikation enligt den tidigare beskrivningen, men endast åt ett håll i taget. Detta var vanligt för modem från början av 1980-talet för uppringda telefonförbindelser. Kommunikation med Walkie Talkie sker t.ex. i halv duplex och det är därför man uppmanar den andre partnern att gå över i sändningsläge genom att avsluta sin mening med ordet ”KOM”.

FIGUR 1.7. Med halv duplex kan information flöda åt båda hållen men endast åt ett håll i taget. Applikationerna och utrustningen måste komma överens om vem som ska sända i ett visst ögonblick, som t. ex. med kommunikationsradio.

Enheter som skiftar mellan sändning och mottagning drabbas av något som kalllas vändningstid. Detta är något som involverade protokoll måste ta hänsyn till. Full duplex Detta är den fulländade tvåvägskommunikationen vilket innebär att båda parter kan både sända och ta emot samtidigt. Logisk full duplex innebär att applikationen kan både sända och ta emot samtidigt, detta kräver givetvis att mediet klarar full duplex.

FIGUR 1.8. Med full duplex kan båda parterna samtidigt både sända och ta emot

data. Detta är idag t.ex. standard för datakommunikation på Internet.

Protokoll påverkas av driftsättet simplex eller halv/full duplex och måste kunna ta hand om olika situationer som kan uppstå i respektive driftsätt. I ett simplex-protokoll måste mottagaren vara beredd på att kunna ta emot information eftersom parterna inte kan handskaka. I ett halv duplex-protokoll måste man komma överens om vem som ska sända i ett givet ögonblick. I ett full duplexprotokoll kan man blanda dataöverföring med kommandon i samma sändning,

26


dock måste man givetvis skilja på vad som är kommandon och vad som är användardata. Eftersom data hela tiden kan strömma fritt mellan båda enheter måste de kommunicerande parterna vara ordentligt synkroniserade med varandra. Vi tar upp fler exempel på detta längre fram i boken. Som tidigare nämnts kan simplex och duplex också ange hur den logiska informationen flödar på en högre applikationsnivå. Till exempel kan den fysiska förbindelsen mellan två kommunicerande parter vara full duplex medan den logiska är halv duplex. Detta är speciellt intressant då vi längre fram ska se på kommunicerande applikationer som kanske bara kan kommunicera i halv duplex på applikationsnivå men där den fysiska länken tillåter full duplex. kommunikationssystem

kommunikation mellan applikationer

kommunikation på fysisk nivå

FIGUR 1.9. Schematisk bild över ett kommunikationssystem.

Man kan tänka sig en analogi när två personer diskuterar med varandra. Det är fullt fysiskt möjligt att tala samtidigt (i full duplex) men vi är uppfostrade att lyssna när den andre talar (halv duplex).

Protokoll – datakommunikationens regler I denna bok kommer begreppet protokoll att nämnas ofta, det är förmodligen ett av de mest centrala begreppen inom datakommunikation. Inom Internetvärlden finns många begrepp som slutar med P, t.ex TCP, IP, HTTP, SMTP, SNMP. Det avslutande P:et står för protocol och betyder i generella termer att det är en överenskommelse mellan två eller fler parter om vilka regler som gäller när man ska kommunicera. I vardagslivet använder vi alla, omedvetet, kommunikationsprotokoll för att underlätta och genomföra en vettig kommunikation. På bilden nedan ser du två

DATAKOMMUNIKATIONENS GRUNDER

27


personer som för en kort dialog med varandra. För att starta kommunikationen säger de båda hej och för att markera att dialogen är slut säger de hej då. Om den ena parten inte uppfattar något ord kan denne säga hursa?, varpå den andra parten upprepar det senast sagda. Uttrycken hej, hej då och hursa kan sägas vara protokollkoder som ska underlätta tydningen av den överförda informationen. Skulle båda parterna råka prata i munnen på varandra tystnar båda, väntar en stund, och någon återupptar dialogen.

hej lar s

hej pia

hur m år

du?

bra tack

hursa? bra tack hej då

hej då

FIGUR 1.10. Exempel på ett interaktivt protokoll som två personer använder för att

styra informationsflödet.

Ett annat tydligt exempel på protokoll är då man använder kommunikationsradio. Vid radiokommunikation krävs att parterna tydligt anger när de har skickat hela sitt meddelande och väntar på svar från den andre parten. Det är då man får höra kommandona (protokollkoderna) kom samt klart slut. Protokoll finns för olika ändamål och på olika nivåer i kommunikationshierarkin. Figur 1.10 visar hur två parter kommunicerar interaktivt med varandra, dvs. de för en dialog. Detta är den vanligaste protokolltypen för kommunikation mellan en klient (t.ex. PC) och en server. Ska man i stället överföra en fil (s.k. filöverföring) ser dialogen något annorlunda ut eftersom de kommunicerande parterna inte har samma status, den ene ska sända och den andre ska ta emot. Filöverföring kan även kallas för satsvis överföring (förr i tiden sände man buntar med hålkort över en modemförbin-

28


delse) och på svengelska kan man även säga batchprotokoll. Bilden nedan visar ett exempel på satsvis överföring mellan två människor: lyssnar du på mig?

javisst

start handskakning

du skall städa vattna blommorna mata katten

dataöverföring

ta in posten

var det allt? avslut klart slut FIGUR 1.11. Exempel på ett satsvis överföring.

Notera i protokollet ovan hur man först kontrollerar att man har kontakt, sedan överför själva informationen och i slutfasen hur man kommer överens om att man ska avsluta uppkopplingen. Detta visar att protokoll har olika faser beroende på hur de ska användas. Funktioner i ett protokoll I protokoll finns olika funktioner och dessa funktioner fungerar på olika sätt i olika slags protokoll (utrustning som inte kommunicerar med samma protokoll kan därför inte förstå varandra). De vanligaste funktionerna ett protokoll ska hantera är: • Dialogen, vem får sända i vilken ordning. • Adresseringen, hur man talar om vem man är och vem man vill kommunicera med. • Ramformat, hur informationen paketeras eller ”ramas in”. • Felhantering, hur hantera olika felsituationer som kan uppstå.

DATAKOMMUNIKATIONENS GRUNDER

29


Appendix E: Styrkoder i ACII-kodtabell I detta appendix beskrivs akronymerna för de s.k. styrkoderna i ASCIIkodtabellen. NUL = NULL vilket kan tolkas som ”tomt” SOH = Start of Header STX = Start of Text ETX = End of text EOT = End Of Transmission ENQ = Enquiry ACK = Positive Acknowledgement BEL = Bell (ringklocka) BS = Back Space HT = Horizontal Tab LF = Line Feed VT = Vertical Tab FF = Form Feed CR = Carriage Return SO = Shift Out SI = Shift In DLE = Data Link Escape DC1 = Data Com 1 DC2 = Data Com 2 DC3 = Data Com 3 DC4 = Data Com 4 NAK = Negative Acknowledgement SYN = Synchronize ETB = End of Transmission Block CAN = Cancel EM = End of Message SUB = Substitute ESC = Escape FS = Filed Separator GS = Group Separator RS = Record Separator US = Unit Separator

APPENDIX E: STYRKODER I ACII-KODTABELL

427



Register

f=följande sida ff=följande sidor SYMBOL 3G 277, 296, 308 ff, 315, 405 3GPP Long Term Evolution 311 4G 277, 296, 308 f, 311 f, 315 8P8C 330 A accesspunkt 297 f, 302 ff ACK 80 ff acknowledgments 81, 231 adressering 30, 45, 249f, 270, 420 adressklasser 251 ADSL 177, 285, 292, 294 f, 320, 405 Advanced Encryption Standard 372 ff, 405 aggregering 250, 254 f ALOHA 284, 314 annonserade fönstret 231 f, 244 anpassningsbarhet 51 f antivirusprogram 399 anycasting 160 A-nät 252 f applikation 36, 77, 96, 147ff, 420 applikationsorienterad programmering 208 applikationsprocesser 148 f applikationsprotokoll 48 applikationsskiktet 48, 147, 391

area 128 area-gräns-routrar 132 ARP 270 ff, 276 ARPANET 65 f, 129, 131, 405 ARQ 85, 405 ASCII 17 f, 67, 201, 405, 427 asymmetriska algoritmer 349 asymmetriska krypton 372, 378 asynkron 22, 278, 280 f attenuation 323 autenticitet 344 ff, 373, 379383, 386 autentisering 159, 215, 381 ff, 393 Authentication Header 393 autonoma system 129 f, 133, 136 f, 145 autonoma-system-gränsroutrar 133 avkodning 187 avståndsvektor 121 B bakdörr 374, 396 bandbredd 32, 77, 135, 290, 294 f, 310, 317 f, 328, 422 basband 317, 342 Basic Service Set 298, 405 bedrägligt uppträdande 345 Bell, Alexander Graham 34 beräkningsmässigt ogörligt 349 big-endian 263 bigram 360 f bildskärmsterminal 20, 21 Binary Term 16

bit 15, 17, 263 f, 280 f, 286, 288, 380 bitar per sekund 22 bitmask 254 BitTorrent 48, 177 blindrutor 361 blockkrypton 349, 374 Bluetooth 43, 277, 298, 305 ff, 422 Blåtand, Harald 307 BNC 335, 405 BNC-kontakt 334 B-nät 252 bomber 370 f BOOTP 273 f Border Gateway Protocol 136 botnet 399 brandvägg 257, 276, 399 f bredband 22, 283, 317, 320 broadcast 57, 160, 252, 270 f, 425 broadcasting 160 brus 324 brute force-attacker 374 buffert 74, 289 buffertstorlek 23, 185 bussnät 14, 53 f, 69, 334 byte 15 f, 291, 294 f C Caesarkryptot 350 ff Carrier Sense Multiple Access 54, 285, 287, 289, 296, 298 f, 304, 308, 313, 421 CDMA 311 f cellulära datanätverk 308 certifikat 387

REGISTER

429


checksumma. Se kontrollsumma chiffer 347 CIDR Se Classless InterDomain Routing Cipher Block Chaining 375 cirkulär buffert 92 Classless InterDomain Routing 253 f, 256 cloud computing 160 C-nät 252 Colossus 371 Contention Window 299 f Count-to-infinity 123, 145 CRC 102, 279, 292, 294, 299, 303 CSMA. Se Carrier Sense Multiple Access Cyclic Redundancy Check. Se cyklisk redundanskontroll cyklisk redundanskontroll 292, 405 D datablock 22, 282, 373 f Data Encryption Standard 372 f datagram 227, 291, 393 Datagram Congestion Control Protocol 47, 245 datahastighet 107 datainkapsling 278 dataintrång 181, 207 datalänkskiktet 44 datapaket 32 f, 57, 249, 262, 302, 346, 422 dataram 278, 288, 290, 299 f, 302 ff dataström 229 datatransport 45, 63, 74 dataöverföring 294, 300 f, 304 f, 325 Datex 33 datornät 7, 9, 34, 63 DCCP. Se Datagram Congestion Control Protocol DDoS-attacker 388 dekryptering 376 delade medier 283

430

demodulera 315 denial-of-service-attack 345, 388, 395 Destination Address. Se destinationsadress destinationsadress 143, 264, 268, 271, 291 Destination unreachable 269 DHCP. Se Dynamic Host Control Protocol dialogskiktet 38 differentiell kryptoanalys 374 Diffie-Hellmans nyckelutbyte 372, 386 Diffusing Update Algoritm 135, 406 DIFS 299 ff, 406 digitala vattenmärken 390 digitalisering 190 digital signatur 383 f, 392 Digital Subscriber Line 294 f, 320, 405, 408 Dijkstras algoritm 118 direktsänd media 184 direktuppspelning 158 distance vector 122, 131 distortion 324 distribuerade DoS-attacker 388 Distributed Inter-Frame Space 299 distributör 178 DNS. Se Domain Name System DNSSEC 391 f DNS-server 196, 200, 205, 392 dold kommunikation 373, 389, 390 Domain Name System 195, 215, 226, 250 f, 345, 388, 392, 406 domän 196 Don’t Fragment 264, 269 DoS-attack. Se denial-of-service-attack duplex 13, 25 f, 287, 327 Dynamic Host Control Protocol 270, 273 f dynamisk tilldelning 273 f dämpning 321, 323

E Echo 127, 269 EIGRP 134 f, 265 elektromagnetisk interferens 322, 326 elnätskommunikation 321 Encapsulation Security Payload 393 engångskrypton 358 f Enigma 362, 365, 367, 369 f e-post 167, 168 ff, 395, 397 f Ericsson, Lars Magnus 34 Ethernet 45, 48, 50, 53, 55 f, 270 f, 277, 279, 281, 283, 285-303, 313, 326-329, 421 etikett 139 exclusive-or 103 exploits 396 f, 399 Exterior Gateway Protocol 129, 265 F fair queueing 141, 142 fast recovery 240 fast retransmit 241 FDMA 284, 285, 312 f, 406 feldetektion 98 Felhantering 23, 29, 278 fiberkabel 321, 325, 335 f, 342 fildelning 173 ff filöverföring 28, 48, 177, 226 first-in-first-out 141 flooding 116, 127, 134 Flow label 268 flödeskontroll 47, 96, 238, 278, 283 forward error correction 96 forwarding 109 ff , 113, 129, 139, 250, 254, 257 forwardingbeslut 112, 139 forwardingtabell 111, 139, 143 FQDN 196, 199, 205, 215, 406 fragmentering 105, 252, 264, 266 f, 269, 301 Fragment offset 264, 266 frekvens 192, 306, 311, 318, 323, 328 f, 339 ff, 353, 357, 407, 422 frekvensanalys 355 f, 358 ff, 362, 368


Frequency Division Multiple Access 284, 406 FTP 16, 48, 177, 256, 258, 325, 406 fully qualified domain names 196 fysiska media 290, 315, 342 fysiska skiktet 39, 43, 49, 159, 292, 315, 421 f, 425 fönsterskalning 232 förbindelselöst nätverk 140 förbindelseorienterad kommunikation 152 fördröjning 127, 135, 142, 150, 263 förluster 76, 142, 216 först-in-först-ut 141 G gateway 41 f, 128, 256, 265, 269, 389 General Packet Radio Service 43, 310, 406 genomströmningshastighet 150 geostationär satellit 340 ghost flushing 126 glasfiber 315, 339 glidande fönster 89, 91, 236 go-back-N 86 GPRS. Se General Packet Radio Service gränssnitt 40 f 134, 155, 210 GSM 43, 310 f, 315, 406, 413 H handshake. Se handskakning handskakning 23 HDLC. Se High-Level Data Linc Control Header checksum 264 hexadecimala talsystemet 18 High-Level Data Linc Control 282 Hop limit 268 host 206, 250 hot potato routing 116 HTML 163, 406, 415 HTTP 27, 48, 165, 406, 415 hubb 54, 176, 286, 313

Huffmankodning 188 huvudkomprimering 295 I ICANN 418 ICMP 127, 249, 264, 265, 269, 406 identifikationsfältet 264 IEEE 61, 285 f, 291, 296-308, 313 f, 342, 412 f, 421 ff, 425 IEEE 802.11i 394 IETF 294, 391 f, 415, 417 ff ifconfig 206 IMAP 170, 406 impedans 334 Implicit indikation 94 infrastrukturläge 297 inloggning 346, 395 insamlad kunskap 113, 115 ff, 121 integritet 99, 231, 344, 346, 373, 379, 382 f, 393 interaktiva tjänster 185 Interior Gateway Protocols 130 f, 406 interleaving 96 Interna routrar 132 Internet 7 ff, 32, 61, 63, 65 f, 129 ff, 134, 137 f, 249, 269, 282 f, 286, 295 ff, 391 ff, 393, 397, 399 f, 412, 415 ff Internetbanken 346 Internet-kontrollsumman 104 Internet of things 160 Internetprotokollet 45 interoperabilitet 425 intrång 344 f, 395 ff IP 10, 27, 30, 34, 50, 114, 134, 137, 140 f, 144, 249-268, 277 f, 291 ff, 295, 311, 314, 317, 393, 419 f, 422 ipconfig 206 IPsec 393, 406 IP-telefoni 36, 48 IPv4 45, 137, 249, 253, 256, 260 f, 263, 265 ff IPv6 45, 137, 261, 265, 267 f IS-IS 129 ff, 134, 145 f, 407 ISM-bandet 296, 298, 407

ISO 42, 70, 134, 165, 265, 282, 329, 407, 409 ff, 422 iterativ server 217 J jammningssignal 288 f jitter 182, 186, 280 K kabelkategori 327 kabelnät 327 kabel-TV 320 kablar 8, 55, 110, 286 f, 292, 315, 318, 324, 330, 334, 337, 339, 342 kanal 49, 277, 279, 283, 286, 287 f, 299, 306, 423 klartext 347, 350 klient 64, 155, 273 ff, 392, 422 f klient/server 155 koaxialkabel 286 f, 320, 325, 333, 335 kod 311, 324, 347, 398, 400 kodning 20, 187 kodtabell 15, 19, 39, 67 f, 411, 427 kollisioner 278, 287 ff, 299 f, 305, 313 kommunikation 14, 23, 26, 30, 148, 283 kommunikationsarkitekturer 13, 67 kommunikationsorienterad programmering 208 kommunikationsprotokoll 13, 15, 27, 324, 341 kommunikationssätt 155 kommunikationsstack 13, 37 kommunikationssystem 13, 27, 39 kommunikationstjänster 52, 151 komplexa krypton 372 kompression 187, 317 konfidentialitet 344 kontaktdon 43, 49, 323, 329, 342 kontrollsumma 100, 264, 279, 292, 350 konvergens 53

REGISTER

431


kortaste-vägen-algoritmen 118 kostnad 59, 263, 316, 341 kostnadskontroll 51 f kretskopplat nät 13, 32 f, 68 kryptering 47, 344, 347, 350 f krypteringsalgoritm 348 krypteringsprogram 391 krypto 347 kryptoanalys 345, 347 f, 351, 372, 374 kryptografiska checksummor 378, 383, 391 kryptografiska hashfunktioner 383 kryptografiska utmaningar 380 kryptomaskiner 362 f kryptonyckel 348 kumulativ ACK 81 kvantkryptering 372 ködiscipliner 139 ff L LAN 46, 62 f, 133, 281, 283, 296, 314, 316, 325, 328, 337, 407, 421 f, 424 ledarstrukturer 330 leechers 178 Lempel-Ziv-kodning 188 Link-Control Protocol 293 link state-algoritmer 117, 127, 128 Linux 19, 64, 179, 202, 206 little-endian 263 ljud 38, 40, 47, 188 ff, 280 ljudkompression 191 LTE 311 f, 315, 407 länk 59 f, 109 f, 112, 240, 279, 283, 292 f, 295, 395 länkskikt 44, 48, 277 ff lösenordstest 396 M MAC-adresser 30, 45, 261, 270 f, 273 f, 291, 296, 313 man-in-the-middle-attack 345 f maskar 398

432

masker 361 maskinkrypton 362 master 30, 72, 306 meddelandehastighet 107 meddelandenummer 76, 92 meddelandenyckel 368 Media Access Control. Se medieaccesskontroll medieaccess 278, 283 medieaccesskontroll 45, 283, 285, 304, 425 medium 13, 277, 283, 288, 319 mikrovågslänkar 339 f MIME 171, 407 mobiltelefon 9, 306 f, 347 mobiltelefonisystem 295, 309 ff moddispersion 338 modem 26, 40, 281 f, 285, 292, 310, 315, 328 modulera 315 molntjänster 180 monoalfabetiska substitutionskrypton 351 f, 354, 356 More Fragments 264 mottagarbuffert 88, 238 mottagare 13, 71, 75, 110, 112, 249, 252, 289, 290, 306, 348, 350 mottagarfönster 89, 91, 238 mottagningsbekräftelse. Se ACK MP3 17, 192 MPEG 192 f, 407 multicast 129, 137 f, 145, 160, 252, 425 multicastadresser 252 multimode 335, 337 N NACK 83, 86, 407 namnuppslagning 215 NAT. Se Network Address Translation nedladdning 179, 295 nerlänk 340 netstat 206, 234 Network Address Translation 256 ff

Next header 268 NFSNET 65 NMT 310, 315 nod 41 f, 60, 109, 250, 284, 285, 288 ff, 297, 299 ff, 311 ff nslookup 205 nyckeldistributionscentral 386 nyckelhantering 373, 385 ff nyckelpar 376 f, 386 f nyckeltyper 199 nätfiske 395 nätmask 254, 259, 274 nätmodell 53, 56 ff, 69 nätskiktet 10, 46, 63, 73, 129, 249, 277 f, 400 nätverkstopologi 14, 53, 57 nätverkssäkerhet 9 f , 343 ff, 347, 379 nätverk 7 f, 10, 32, 46, 51, 63 ff, 69, 109, 118 f, 122, 125, 127140, 143, 245 f, 249, 257, 277, 283 ff, 291, 296 ff, 303, 305 ff, 313, 421, 423, 425 nätverksadresser 30, 63 nätverksbaserade spel 182 nätverksdesign 51 nätverksinterface 250, 291 nätverkskabel 277, 286, 330 nätverksprogrammering 208 O oktetter 209 omsändning 24, 76, 78, 80, 279 f, 284, 288 operativsystem 51, 64, 208, 316 Optical Time Domain Reflectometer 338, 407 optimalitet 114, 115 optioner 264 optisk fiber 44, 323, 327, 335, 338, 340 optofiber. Se optisk fiber opålitlig leverans 224 OSI-BRM 42, 70 OSI-modellen 37, 42 f, 159 oskärmad 325 f, 328 OSPF 127 ff, 145 f, 407


P paketering 104 paketförmedlande nät 13, 32 f, 35, 65, 67, 408 paketsniffers. Se paketsniffning paketsniffning 207, 396 parallell server 217 Parameter Problem 269 paritet 281, 283 paritetsbit 99, 280 f paritetskontroll 23, 283 partvinnad kabel 43, 55, 63, 325 f, 412 path vector 121, 126 Payload length 268 PC 21, 61, 280, 282, 306 PC-nät 61 f peer-to-peer- nätverk 109 phishing 395, 399 ping 203 Point-to-Point Protocol 282, 292, 314 poisoned reverse 125 polyalfabetiska substitutionskrypton 354 POP 169, 407 portnummer 202, 211, 225, 256, 258, 295 Post- och Telestyrelsen 22, 61, 298, 329, 339, 409, 426 PPP 282, 292 ff, 314, 407 preamble 290 presentationsskiktet 47 Pretty Good Privacy 391, 407 processmultiplexing 225 programmeringsgränssnitt 210 Protocol Independent 138, 146 protokoll 13, 15, 27 ff, 48, 277, 279, 282, 285, 287 f, 292 f, 296, 298, 306 f, 311, 415, 418, 423, 425 protokollfältet 264, 294 protokolloberoende 138 protokollstack 37, 43, 63, 69, 134, 408 Public Key Infrastructure 387 pulskodning 189 pulsmeddelanden 308

punycode 201 pålitlighet 313 pålitlig överföring 75, 150, 229 R radiolänk 321, 339 ramformat 31, 34, 50, 68, 282, 290, 294, 302 Random Early Detection 142 random walk 116 f RARP 270, 273 f realtidsapplikationer 280, 424 realtidstjänster 182 Redirect 269 reflektor 366 regelverk 15, 30, 54, 60, 67, 407 resurssnålhet 114 RFC-dokument 49, 67 RG11 333 RG58 333, 334 RG59 333 RG62 333 Rijndael 375 f ringnät 14, 54, 59, 62, 67 RIP 131 RJ-45 43, 329 ff, 412 robusthet 14, 114 rotcertifikat 387 rotormaskiner 362, 364 f rotservrar 198 routeändringar 114 f route damping 126, 128 route flapping 114, 126, 128 router 109 ff, 139 f, 143, 254, 255, 282, 344 routing 109-117, 123, 129-136, 143, 249, 250, 265, 308 routingprotokoll 129 ff, 134, 136, 138, 249 f, 308 routingtabell 35, 109 ff, 122, 126, 135, 143, 206, 254 f RSA-algoritmen 372, 377 ff, 381, 386, 391 RTP 47, 314, 408 ruttvektor 121 ryggradsnätverk 132 råa socketar 215 rättvist köande 141

S sammanslagning 106 f, 315 satellitkommunikation 321, 340, 341 SCTP 47, 245, 265, 408 Secure Shell 391 Secure Socket Layer 392, 408 seeder 178 segmentering 106 sekvensnummer 134, 230, 302, 303, 394 selective repeat 87 selektiv ACK 81 sensornätverk 116, 308 Serpent 375 server 28, 35, 45, 420 serviceklasser 263 Service Set Identifier 297 sessioner 38, 148 sessionsnyckel 379 sessionsskiktet 47 Shannons formel 319, 342 Short Inter-Frame Space 299 ff, 408 SIFS. Se Short Inter-Frame Space simplex 25 ff, 38, 67 f singlemode 335, 337 skalbarhet 14, 51, 57, 59, 114, 115 skärmad 325 f, 328 f skensignalering 389, 390 skikt 8 ff, 37-42, 69, 72, 258, 269, 279 f, 300, 313 SMTP 27, 48, 168, 393, 408 sockets 210 sökning 175, 359 Source Address 264, 268 Source Quench 269 split horizon 125, 131 språkskiktet 39 stabilitet 114 stack 37, 48 stadsnät 340 stamnätverks-routrar 132 startbit 281 steganografi 390 stereotypa meddelanden 369 f stjärnnät 14, 54, 56, 58, 63, 67, 69, 334

REGISTER

433


ST-kontakten 338 stockning 263, 269 stockningsfönster 239, 242 stockningskontroll 106, 269 stop-and-wait 85 stopp-bit 280 Store and forward 156 streaming 158, 183 strikt prioritetsordning 141 f strömkrypton 349 stub networks 136 störningar 31, 278 f, 287, 298, 306, 312, 316, 321 ff, 325, 336, 342 störningskällor 31, 321 subnät 58, 259 f, 269, 298 substitution 349, 363 substitutionstabell 350 f SUNET 65 f, 70, 408 supernoder 176 svarstid 80 svärm 178 SwipNet 66, 408 switch 54, 286, 313 symmetriska algoritmer 349, 384 symmetriska krypton 373 synkron 22, 278, 280, 282 synkronisering 22, 47, 84 säkerhet 53, 359, 394, 396, 412, 420 sändaradress 291 sändare 13, 110, 278, 280, 289 f, 296, 306, 312, 348, 350 sändarfönster 89 sändarhastighet 94, 239 T T568A 330, 332, 412 T568B 330 ff, 412 TCP 14 f, 27, 47 f, 137, 142, 223, 229 ff, 258, 264 f, 269, 295, 314, 317, 388 f, 419 TCP/IP 43, 45, 48, 63, 227 TDMA. Se Time Division Multiple Access telefon 9, 39 f, 190 Telnet 48, 202 TERA 328 ff, 332 terminal 20, 21, 37, 64, 280, 282, 333, 425

434

The Cambridge Ring 62 tidsstämpel 232 tillgänglighet 344 ff, 373, 416 tillståndsdiagram 288, 299 tillämpningar 64, 114, 116, 147 f, 258, 298, 306, 328 ff, 337, 422 Time Division Multiple Access 284 f, 306, 311, 313, 408 Time Exceeded 269 timeout 23 f, 79, 142, 236, 341, 388 timeouttid 80, 243 Timestamp Reply 269 Timestamp Request 269 Time to live 264 Tjock Ethernet 334 Token Ring 56, 62, 286, 314, 328 f tolk 40, 41 topologi 51, 53, 56, 60, 69, 127, 129 toppnivådomäner 197 total intern reflektion 336 total längd 264 traceroute 203 trackers 178 Traffic class 268 trafikanalys 389 transienter 322, 323 transmissionsmedia 44, 315, 342 transmissionssystem 13 Transport Layer Security 379, 392, 408 transportprotokoll 47, 227, 258, 280, 291 transportskiktet 44 f, 47 f, 63, 73, 223 f, 280 transposition 349 transpositionskrypto 359, 360 trevägshandskakning 23, 232 f, 235, 244 trigram 360 f Triple DES 374, 405 trojan 397 trojanska hästar 396 trådbundna länkskikt 285 trådlös 40, 63, 277, 298 f, 307, 339, 422

trådlösa länkskikt 296 trådlös kommunikation 63, 277, 298 Tunn Ethernet 334 tvådimensionell paritetskontroll 100 tvåvägskommunikation 25 f twisted pair 286, 327 Twofish 375 Type of Service 263 typfältet 291 U UDP 47, 48, 223, 227, 280, 314, 317, 393, 408 UMTS. Se Universal Mobile Telecommunications System underdomän 196 unicast 137 f, 160, 425 UNICODE 19, 39, 67 uniform resource identifier 162, 408 uniform resource locator 162, 395, 408, 415 Universal Mobile Telecommunications System 310 ff, 315, 408, 413 uppladdning 179, 322 upplänk 340 uppslagning 139, 201, 254 f uppspelningsattack 345 f, 379 f, 394 uppspelningsbuffert 184, 188 uppstartsfasen 174 URI. Se uniform resource identifier URL. Se uniform resource locator USB 17, 322 V VDSL 285, 292, 294 f, 320, 408 vektoralgoritmer 117 f, 121, 124 vektorbaserad ACK 83 VENONA 359 versionsfältet 268 Very Small Aperture Terminal 341, 408 video 36, 46, 192, 268, 280


videokompression 192 f Vigenèrekryptot 355 f vikning 101 virtuellt huvud 228, 230 virus 169, 397, 398 VSAT 341, 408 vägfladder 114 vägval 69, 109, 249 vägvalstabell 109 W WAN 46, 57 f, 337, 408 webbadress 162 webben. Se World Wide Web webbserver 161, 257, 346, 400 webb-TV 48 WiFi 277, 279, 296, 298, 303, 305, 307, 320

Wi-Fi Protected Access 394, 423 Wired Equivalent Privacy 394, 423 Wireshark 207 WLAN 43, 63, 296, 316, 320, 342, 393, 408, 413, 421, 423 World Wide Web 7, 20, 64, 66, 161, 400, 408, 415 WPA2 394, 408, 423 WPAN 308, 408 X XOR 103, 311, 375

Z ZigBee 277, 298, 307 f Å åtkomst av lagrad media 182, 184 Ä ämnesskiktet 38, 41 Ö överföringshastighet 15, 22 f överföringstid 317 f överhörning 321, 324, 329

Y YouTube 66, 255

REGISTER

435


ISBN 9-7891-47-05211-0 © 2012 Valentino Berti, Mats Björkman, Lars-Åke Nordén, Anders Lindgren och Liber AB Redaktör Lennart Köhler Grafisk formgivning Nette Lövgren Illustrationer Integra Software Services Omslagsbild Shutterstock Produktion Jürgen Borchert Första upplagan 1 Repro Integra Software Services, Indien Tryck Kina 2012

kopieringsförbud Detta verk är skyddat av upphovsrättslagen. Kopiering, utöver lärares rätt att kopiera för undervisningsbruk enligt bonusavtal, är förbjuden. bonus-avtal tecknas mellan upphovsrättsorganisationer och huvudman för utbildningsanordnare, t.ex. kommuner/universitet. Den som bryter mot lagen om upphovsrätt kan åtalas av allmän åklagare och dömas till böter eller fängelse i upp till två år samt bli skyldig att erlägga ersättning till upphovsman/ rättsinnehavare. Liber AB, 113 98 Stockholm tfn 08-690 90 00 www.liber.se kundservice tfn 08-690 93 30, fax 08-690 93 01 e-post: kundservice.liber@liber.se


datakommunikation är en bred introduktion till datakommunikation i allmänhet och internetteknologin i synnerhet. Vad Internet är beror helt på vem du frågar, och detsamma gäller ämnet datakommunikation. Från att ha varit ett specialämne som studenter möjligtvis läste i årskurs 3 eller 4 på datatekniska universitetsutbildningar så kan man idag lära sig grunderna i datakommunikation på flera gymnasieprogram. Författarna till denna bok har alla personlig erfarenhet av att undervisa i ämnet datakommunikation på olika nivåer. Bokens struktur möjliggör olika sätt att tillgodogöra sig materialet beroende på vad som är mest tilltalande för respektive målgrupp. Bokens inledande kapitel ger läsaren de nödvändiga historiska perspektiven och sedan följer två kapitel med ämnets centrala principer: dataöverföring och routing/forwarding. Därefter beskrivs hur dessa principer realiseras i fem olika skikt, från det översta skiktet som representerar tjänster och program till det lägsta skiktet där informationen överförs fysiskt i kablar, via radio, akustiskt etc. Till varje avsnitt ges en uppsättning frågor som testar om läsaren tillgodogjort sig materialet och kapitlen avslutas med en sammanfattning av vad som behandlats. Faktarutor erbjuder belysande exempel och fördjupningar och en stor mängd illustrationer förtydligar komplicerade relationer och flöden. VALENTINO BERTI är verksam som konsult och har mångårig erfarenhet av IT-branschen, främst inom datakommunikation och IT-infrastruktur. MATS BJÖRKMAN är professor i datakommunikation vid Mälardalens högskola och forskar bland annat om datornätverks prestanda- och förutsägbarhet och kommunikation för små och inbyggda system.

LARS-ÅKE NORDÉN är universitetslektor vid Uppsala universitet, institutionen för informationsteknologi. Han forskar bland annat om trådlösa sensornätverk. ANDERS LINDGREN är forskare vid SICS, Swedish Institute of Computer Science.

Best.nr 47-05211-0 Tryck.nr 47-05211-0


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.