Kapitel 1 Computernetværk og internettet 19 1.1 Hvad er internettet? 20 1.1.1 Hvad skal der til? 20 1.1.2 Services 22 1.1.3 Hvad er en protokol? 23 1.1.4 Nogle gode hyperlinks 25 1.2 I udkanten af netværket 26 1.2.1 Slutsystemer, klienter og servere 26 1.2.2 Forbindelsesløs og forbindelsesorienteret service 28 1.3 Netværkets kerne 30 1.3.1 Kredsløbskobling og pakkekobling 30 1.3.2 Pakkeforsendelser i computernetværk 40 1.4 Netværksadgang og fysiske medier 43 1.4.1 Adgang til netværket 43 1.4.2 Fysiske medier 49 1.5 Udbydere og internetbackbones 52 1.6 Forsinkelse og tab i pakkekoblede netværk 54 1.6.1 Forsinkelsestyper 54 1.6.2 Køforsinkelser og pakketab 57 1.6.3 Forsinkelse og routere på internettet 60 1.7 Protokollag og deres servicemodeller 61 1.7.1 Lagdelt arkitektur 61 1.7.2 Internettets protokolstak 65 1.7.3 Netværksenheder og lag 68 1.8 Historien bag computernetværk og internettet 69 1.8.1 Udviklingen af pakkekobling: 1961-1972 69 1.8.2 Proprietære netværk og internet: 1972-1980 70 1.8.3 Netværkseksplosionen: 1980-1990 72 1.8.4 Interneteksplosionen: 1990 erne 72 1.8.5 Den seneste udvikling 74 1.9 Opsummering 75 Kortlægning af denne bog 75 Problemer til hjemmearbejde og spørgsmål 76 Problemer 77 Spørgsmål til diskussion 81 Indhold
12 Indhold Kapitel 2 Applikationslaget 83 2.1 Principperne bag applikationslagprotokoller 83 2.1.1 Applikationslagprotokoller 84 2.1.2 Hvilke services skal en applikation bruge? 89 2.1.3 Internettransportprotokollernes services 90 2.1.4 Netværksapplikationer, der beskrives i denne bog 93 2.2 WWW og HTTP 94 2.2.1 Præsentation af HTTP 95 2.2.2 Ikke-vedvarende og vedvarende forbindelser 97 2.2.3 HTTP-meddelelsesformatet 100 2.2.4 Brugerserverens interaktion: Autorisation og cookies 104 2.2.5 GET-betingelsen 106 2.2.6 HTTP-indhold 107 2.3 Filoverførsel: FTP 108 2.3.1 FTP-kommandoer og -svar 109 2.4 Elektronisk post på internettet 110 2.4.1 SMTP 112 2.4.2 Sammenligning med HTTP 115 2.4.3 Postmeddelelsesformater og MIME 115 2.4.4 Postadgangsprotokoller 120 2.5 DNS Internettets vejvisertjeneste 124 2.5.1 DNS-services 125 2.5.2 Hvordan virker DNS? 126 2.5.3 DNS-poster 132 2.5.4 DNS-meddelelser 133 2.6 Socketprogrammering med TCP 134 2.6.1 Socketprogrammering med TCP 135 2.6.2 Eksempel på en klient/server-applikation i Java 137 2.7 Socketprogrammering med UDP 143 2.8 Opbygning af en primitiv webserver 150 2.8.1 Webserverfunktioner 150 2.9 Indholdsdistribution 153 2.9.1 Webcaching 154 2.9.2 Indholdsdistributionsnetværk 159 2.9.3 Peer-to-peer-baseret fildeling 162 2.10 Opsummering 169 Problemer til hjemmearbejde og spørgsmål 169 Problemer 171 Spørgsmål til diskussion 174 Kapitel 3 Transportlaget 177 3.1 Introduktion og services i transportlaget 177 3.1.1 Forhold mellem transport- og netværkslaget 178
3.1.2 Overblik over transportlaget på internettet 180 3.2 Multiplexing og demultiplexing 181 3.3 Forbindelsesløs transport: UDP 187 3.3.1 UDP s segmentstruktur 190 3.3.2 UDP s kontrolsum 190 3.4 Principperne i stabil dataoverførsel 191 3.4.1 Opbygning af en stabil dataoverførselsprotokol 193 3.4.2 Stabil dataoverførsel med pipeline 201 3.4.3 Go-Back-N (GBN) 205 3.4.4 Selective Repeat (SR) 208 3.5 Forbindelsesorienteret transport: TCP 214 3.5.1 TCP-forbindelsen 214 3.5.2 Strukturen af et TCP-segment 216 3.5.3 Estimering af Round-Trip og timeout 220 3.5.4 Stabil dataoverførsel 222 3.5.5 Flowkontrol 229 3.5.6 TCP s forbindelseshåndtering 231 3.6 Principper i trafikkontrol 234 3.6.1 Grunde til og omkostninger ved belastning 236 3.6.2 Forskellige former for trafikkontrol 241 3.6.3 Et eksempel på netværksstøttet trafikkontrol: ATM ABR trafikkontrol 242 3.7 Trafikkontrol i TCP 244 3.7.1 Rimelighed 249 3.7.2 Modeller over forsinkelsen i TCP 251 3.8 Opsummering 259 Problemer til hjemmearbejde og spørgsmål 261 Problemer 262 Spørgsmål til diskussion 268 Indhold 13 Kapitel 4 Netværkslaget og routing 269 4.1 Introduktion og modeller over netværksservices 269 4.1.1 Netværkets servicemodel 271 4.1.2 Oprindelsen af datagrammer og virtuelle kredsløb 275 4.2 Routingprincipper 276 4.2.1 En linkstate-routingalgoritme 278 4.2.2 Distancevektor-routingalgoritmen 282 4.2.3 Andre routingalgoritmer 290 4.3 Hierarkisk routing 290 4.4 Internetprotokollen (IP) 293 4.4.1 IPv4-adressering 294 4.4.2 At flytte et datagram fra afsender til modtager: Adressering, routing og videresendelse 301
14 Indhold 4.4.3 Datagramformat 304 4.4.4 Fragmentering af IP-datagrammer 306 4.4.5 ICMP: Internet Control Message Protocol 308 4.4.6 Dynamic Host Configuration Protocol 310 4.4.7 Network Address Translators (NAT s) 313 4.5 Routing på internettet 315 4.5.1 Routing i autonome systemer på internettet: RIP og OSPF 315 4.5.2 Routing mellem interne systemer: BGP 320 4.6 Hvad er der i en router? 325 4.6.1 Indgangsporte 327 4.6.2 Switch-systemet 329 4.6.3 Udgangsporte 330 4.6.4 Hvor kan der opstå køer? 331 4.7 IPv6 334 4.7.1 IPv6 s datagramformat 334 4.7.2 Overgangen fra IPv4 til IPv6 337 4.8 Multicast-routing 339 4.8.1 Introduktion: Abstraktionen over multicast og multicastgrupper 340 4.8.2 IGMP 343 4.8.3 Multicast-routing: generelt 346 4.8.4 Multicast-routing på internettet 351 4.9 Mobilitet og netværkslaget 354 4.9.1 Overvejelser om mobilitet i netværkslaget 354 4.9.2 Håndtering af mobilitet 355 4.9.3 Mobil IP 362 4.10 Opsummering 366 Problemer til hjemmearbejde og spørgsmål 367 Problemer 369 Spørgsmål til diskussion 374 Opgave 374 Kapitel 5 Linklaget og lokale netværk 377 5.1 Datalinklaget: Introduktion og services 378 5.1.1 Linklagets services 379 5.1.2 Kommunikation mellem enheder 381 5.2 Teknikker til fejlfinding og -rettelse 382 5.2.1 Paritetskontrol 383 5.2.2 Metoder til beregning af kontrolsum 385 5.2.3 Cyclic Redundancy Check (CRC) 386 5.3 Multiple Access Protocols 388 5.3.1 Kanalopdelende protokoller 390 5.3.2 Protokoller med tilfældig adgang 393
5.3.3 Turbaserede protokoller 400 5.3.4 Lokalnetværk (LAN) 401 5.4 LAN-adresser og ARP 402 5.4.1 LAN-adresser 403 5.4.2 Address Resolution Protocol 405 5.5 Ethernet 408 5.5.1 Grundlæggende Ethernet 409 5.5.2 CSMA/CD: Ethernets Multiple Access Protocol 412 5.5.3 Ethernet-teknologier 414 5.6 Hubs, broer og switche 417 5.6.1 Hubs 417 5.6.2 Broer 419 5.6.3 Switche 425 5.7 Trådløse forbindelser 429 5.7.1 Trådløst LAN: IEEE 802.11b 429 5.7.2 Bluetooth 435 5.8 PPP: Punkt til punkt-protokollen 435 5.8.1 PPP-rammer 437 5.8.2 PPP Link-Control Protocol (LCP) og protokoller til netværkskontrol 438 5.9 Asynchronous Transfer Mode (ATM) 440 5.9.1 Vigtige egenskaber ved ATM 441 5.9.2 Det fysiske ATM-lag 443 5.9.3 ATM-laget 444 5.9.4 ATM-tilpasningslag 445 5.9.5 IP over ATM 447 5.10 Frame Relay 450 5.10.1 Den historiske kontekst 450 5.10.2 Frame Relay 451 5.11 Opsummering 454 Problemer til hjemmearbejde og spørgsmål 456 Problemer 457 Spørgsmål til diskussion 462 Indhold 15 Kapitel 6 Multimedia og netværk 463 6.1 Netværksapplikationer med multimedia 463 6.1.1 Eksempler på multimedieapplikationer 464 6.1.2 Udfordringer for multimedia på dagens internet 465 6.1.3 Hvordan skal internettet udvikles for at understøtte multimedia bedre? 466 6.1.4 Komprimering af lyd og video 468 6.2 Streaming af gemt lyd og video 469 6.2.1 Adgang til lyd og video gennem en webserver 471
16 Indhold 6.2.2 Afsendelse af multimedia fra en streaming-server til en hjælpeapplikation 472 6.2.3 Realtidsstreamingprotokol (RTSP) 474 6.3 At få det bedste ud af så godt som muligt-service: Et eksempel på internettelefoni 478 6.3.1 Begrænsninger i så godt som muligt-service 478 6.3.2 At fjerne jitter hos modtageren af lyden 480 6.3.3 Håndtering af pakketab 483 6.3.4 Streaming af gemt lyd og video 486 6.4 Protokoller til interaktive realtidsapplikationer 486 6.4.1 RTP 486 6.4.2 RTP Control Protocol (RTCP) 490 6.4.3 SIP 493 6.4.4 H.323 497 6.5 Bedre end så godt som muligt 499 6.5.1 Scenario 1: En 1 Mbps-lydapplikation og en FTP-overførsel 500 6.5.2 Scenario 2: En 1 Mbps-lydapplikation og en FTP-overførsel med høj prioritet 500 6.5.3 Scenario 3: En fejlende lydapplikation og en FTP-overførsel 501 6.5.4 Scenario 4: To 1 Mbps-lydapplikationer over en overbelastet 1,5 Mbps-forbindelse 503 6.6 Planlægnings- og kontrolmekanismer 505 6.6.1 Planlægningsmekanismer 505 6.6.2 Kontrol: Den utætte spand 509 6.7 Integrerede services 512 6.7.1 Garanteret servicekvalitet 513 6.7.2 Netværksservice med kontrolleret belastning 514 6.8 RSVP 514 6.8.1 Det grundlæggende i RSVP 514 6.8.2 Nogle simple eksempler 516 6.9 Differentierede services 519 6.9.1 Diffentierede services: Et simpelt scenario 519 6.9.2 Klassifikation af trafik og håndtering 521 6.9.3 Per hop-opførsel 523 6.9.4 Kritik af diffentierede services 524 6.10 Opsummering 525 Problemer til hjemmearbejde og spørgsmål 526 Problemer 527 Spørgsmål til diskussion 530 Programmeringsopgave 531
Indhold 17 Kapitel 7 Sikkerhed i computernetværk 533 7.1 Hvad er netværkssikkerhed? 534 7.2 Krypteringsprincipper 536 7.2.1 Kryptering med symmetriske nøgler 537 7.2.2 Kryptering med offentlige nøgler 542 7.3 Autentifikation 546 7.3.1 Autentifikationsprotokollen ap1.0 547 7.3.2 Autentifikationsprotokollen ap2.0 547 7.3.3 Autentifikationsprotokollen ap3.0 548 7.3.4 Autentifikationsprotokollen ap3.1 549 7.3.5 Autentifikationsprotokollen ap4.0 549 7.3.6 Autentifikationsprotokol ap5.0 551 7.4 Integritet 553 7.4.1 Generering af digitale signaturer 554 7.4.2 Sammendrag af beskeder 555 7.4.3 Hash-algoritmer 557 7.5 Nøgledistribution og certificering 558 7.5.1 Nøgledistributionscentret 560 7.5.2 Certificering af offentlige nøgler 561 7.6 Adgangskontrol: Firewalls 565 7.6.1 Pakkefiltrering 566 7.6.2 Applikationsgateway 568 7.7 Angreb og modtræk 570 7.7.1 Kortlægning 570 7.7.2 Pakkesniffing 571 7.7.3 Spoofing 572 7.7.4 Denial of service- og distribuerede denial of service-angreb 572 7.7.5 Kapring 574 7.8 Sikkerhed i mange lag virkelige eksempler 574 7.8.1 Sikker e-mail 575 7.8.2 Secure Sockets Layer (SSL) og Transport Layer Security (TLS) 579 7.8.3 Sikkerhed i netværkslaget: IPsec 582 7.8.4 Sikkerhed i IEEE 802.11 586 7.9 Opsummering 587 Problemer til hjemmearbejde og spørgsmål 588 Problemer 589 Spørgsmål til diskussion 590 Kapitel 8 Netværksadministration 593 8.1 Hvad er netværksadministration? 593 8.2 Netværksadministrationens infrastruktur 597 8.3 Internet-Standard Management Framework 599
18 Indhold 8.3.1 Structure of Management Information: SMI 601 8.3.2 Management Information Base: MIB 603 8.3.3 SNMP s protokoloperationer og transportfortolkninger 605 8.3.4 Sikkerhed og administration 609 8.4 ASN.1 612 8.5 Konklusion 616 Problemer til hjemmearbejde og spørgsmål 617 Problemer 617 Spørgsmål til diskussion 618 Referencer 619 Stikord 649