Wie Daten zwischen Rechnern ausgetauscht werden, ist absolutes Grundlagenwissen im Informatikstudium: Das OSI-Modell und die Grundlagen der paketbasierten Kommunikation müssen Sie kennen, wenn Sie professionell mit Computern arbeiten. Dazu finden Sie in diesem umfassenden Lehrbuch den vollständigen Überblick über moderne Netzwerkthemen: Von der technischen Umsetzung über Algorithmen und Protokolle bis zur Planung und Konzeption von Netzwerkarchitekturen.
Aus dem Inhalt:
- Netzwerke im Überblick
- Ethernet und WLAN
- Packete, Verbindungen und Routing
- Routing-Algorithmen und Large Scale IP-Routing
- Border Gateway Protocol (BGP)
- IPv4 und IPv6 und Ihre Begleiter: DNS, ARP, DHCP, SLAAC
- Transportprotokolle: UDP und TCP
- Queuing und Scheduling
- Quality of Service
- Netzwerkmanagement mit SNMP
- Sicherheit und praktische Anwendung
Inhaltsverzeichnis
Materialien zum Buch . . . 25
Geleitwort des Fachgutachters . . . 27
1. Netzwerke im Überblick . . . 29
1. 1 . . . Schichten . . . 29
1. 2 . . . Datenrate, Durchsatz und Bandbreite . . . 30
1. 3 . . . Pakete . . . 31
1. 4 . . . Datagrammweiterleitung . . . 33
1. 5 . . . Topologie . . . 37
1. 6 . . . Routing-Schleifen . . . 38
1. 7 . . . Überlast . . . 40
1. 8 . . . Mehr über Pakete . . . 41
1. 9 . . . LANs und Ethernet . . . 42
1. 10 . . . IP -- Internet Protocol . . . 45
1. 11 . . . DNS . . . 54
1. 12 . . . Transport . . . 55
1. 13 . . . Firewalls . . . 61
1. 14 . . . Einige nützliche Dienstprogramme . . . 63
1. 15 . . . IETF und OSI . . . 65
1. 16 . . . Berkeley Unix . . . 69
1. 17 . . . Epilog . . . 70
1. 18 . . . Übungen . . . 70
2. Ethernet-Grundlagen . . . 75
2. 1 . . . Klassisches 10-Mbit/s-Ethernet . . . 76
2. 2 . . . 100 Mbit/s (Fast) Ethernet . . . 93
2. 3 . . . Gigabit-Ethernet . . . 95
2. 4 . . . Ethernet-Switches . . . 96
2. 5 . . . Epilog . . . 101
2. 6 . . . Übungen . . . 102
3. Weiterführende Ethernet-Themen . . . 107
3. 1 . . . Spanning-Tree-Algorithmus und Redundanz . . . 108
3. 2 . . . Virtuelles LAN (VLAN) . . . 114
3. 3 . . . TRILL und SPB . . . 119
3. 4 . . . Software-Defined Networking . . . 122
3. 5 . . . Epilog . . . 132
3. 6 . . . Übungen . . . 132
4. Drahtlose LANs . . . 137
4. 1 . . . Abenteuer im Funkland . . . 137
4. 2 . . . Wi-Fi . . . 143
4. 3 . . . WiMAX und LTE . . . 182
4. 4 . . . Ortsfeste Drahtlosnetzwerke . . . 188
4. 5 . . . Epilog . . . 190
4. 6 . . . Übungen . . . 191
5. Sonstige LAN-Technologien . . . 195
5. 1 . . . Virtuelle private Netzwerke . . . 195
5. 2 . . . Carrier-Ethernet . . . 197
5. 3 . . . Token Ring . . . 198
5. 4 . . . Virtuelle Verbindungen . . . 200
5. 5 . . . Asynchronous Transfer Mode: ATM . . . 204
5. 6 . . . Epilog . . . 208
5. 7 . . . Übungen . . . 208
6. Verbindungen . . . 213
6. 1 . . . Kodierung und Frames . . . 213
6. 2 . . . Zeitmultiplexverfahren . . . 220
6. 3 . . . Epilog . . . 227
6. 4 . . . Übungen . . . 227
7. Pakete . . . 229
7. 1 . . . Paketverzögerung . . . 229
7. 2 . . . Schwankungen der Paketverzögerung . . . 233
7. 3 . . . Paketgröße . . . 234
7. 4 . . . Fehlererkennung . . . 237
7. 5 . . . Epilog . . . 245
7. 6 . . . Übungen . . . 245
8. Sliding Windows . . . 251
8. 1 . . . Zuverlässige Datenübertragung: Stop-and-Wait . . . 251
8. 2 . . . Die Sliding-Windows-Strategie . . . 256
8. 3 . . . Lineare Flaschenhälse . . . 261
8. 4 . . . Epilog . . . 271
8. 5 . . . Übungen . . . 271
9. IP Version 4 . . . 277
9. 1 . . . Der IPv4-Header . . . 279
9. 2 . . . Schnittstellen . . . 282
9. 3 . . . Spezielle Adressen . . . 284
9. 4 . . . Fragmentierung . . . 287
9. 5 . . . Der klassenlose IP-Delivery-Algorithmus . . . 290
9. 6 . . . IPv4-Subnetze . . . 294
9. 7 . . . Netzwerkadressübersetzung . . . 302
9. 8 . . . Unnummerierte Schnittstellen . . . 309
9. 9 . . . Mobile IP . . . 311
9. 10 . . . Epilog . . . 313
9. 11 . . . Übungen . . . 313
10. IPv4-Begleitprotokolle . . . 317
10. 1 . . . DNS . . . 317
10. 2 . . . Address Resolution Protocol: ARP . . . 336
10. 3 . . . Dynamic Host Configuration Protocol (DHCP) . . . 341
10. 4 . . . Internet Control Message Protocol . . . 343
10. 5 . . . Epilog . . . 349
10. 6 . . . Übungen . . . 349
11. IPv6 . . . 351
11. 1 . . . Der IPv6-Header . . . 352
11. 2 . . . IPv6-Adressen . . . 353
11. 3 . . . Netzwerkpräfixe . . . 358
11. 4 . . . IPv6-Multicast . . . 359
11. 5 . . . IPv6-Erweiterungsheader . . . 360
11. 6 . . . Nachbarschaftserkennung (Neighbor Discovery) . . . 364
11. 7 . . . Zuweisung von IPv6-Hostadressen . . . 371
11. 8 . . . Epilog . . . 378
11. 9 . . . Übungen . . . 378
12. Weitere IPv6-Funktionen . . . 381
12. 1 . . . Weltweit sichtbare Adressen . . . 381
12. 2 . . . ICMPv6 . . . 382
12. 3 . . . IPv6-Subnetze . . . 384
12. 4 . . . IPv6 und IPv4 gemeinsam benutzen . . . 386
12. 5 . . . IPv6-Beispiele ohne Router . . . 392
12. 6 . . . IPv6-Konnektivität über Tunneling . . . 395
12. 7 . . . Konnektivität von IPv6 nach IPv4 . . . 400
12. 8 . . . Epilog . . . 402
12. 9 . . . Übungen . . . 402
13. Routing-Update-Algorithmen . . . 405
13. 1 . . . Distanzvektor-Routing-Update-Algorithmus . . . 406
13. 2 . . . Langsames Konvergenzproblem bei Distanzvektoren . . . 413
13. 3 . . . Minimierung der Streckenkosten . . . 415
13. 4 . . . Schleifenfreie Distanzvektor-Algorithmen . . . 418
13. 5 . . . Link-State-Routing-Update-Algorithmus . . . 427
13. 6 . . . Routing nach anderen Attributen . . . 432
13. 7 . . . ECMP . . . 434
13. 8 . . . Epilog . . . 435
13. 9 . . . Übungen . . . 436
14. IP-Routing im großen Maßstab . . . 445
14. 1 . . . Classless Internet Domain Routing: CIDR . . . 446
14. 2 . . . Hierarchisches Routing . . . 449
14. 3 . . . Routing in früherer Zeit . . . 450
14. 4 . . . Providerbasiertes Routing . . . 451
14. 5 . . . Geografisches Routing . . . 458
14. 6 . . . Epilog . . . 459
14. 7 . . . Übungen . . . 459
15. Border Gateway Protocol (BGP) . . . 465
15. 1 . . . AS-Pfade . . . 467
15. 2 . . . AS-Pfade und Routenaggregation . . . 469
15. 3 . . . Transit-Traffic . . . 471
15. 4 . . . BGP-Filterung und Routing-Policies . . . 471
15. 5 . . . BGP-Tabellengröße . . . 474
15. 6 . . . BGP-Pfadattribute . . . 475
15. 7 . . . BGP und Traffic-Engineering . . . 480
15. 8 . . . BGP und Anycast . . . 484
15. 9 . . . BGP für internes Routing . . . 485
15. 10 . . . BGP-Beziehungen . . . 486
15. 11 . . . Beispiele für BGP-Instabilität . . . 492
15. 12 . . . BGP-Sicherheit und Route Registrys . . . 494
15. 13 . . . Epilog . . . 500
15. 14 . . . Übungen . . . 500
16. UDP-Übertragung . . . 503
16. 1 . . . User Datagram Protocol -- UDP . . . 503
16. 2 . . . Trivial File Transport Protocol, TFTP . . . 520
16. 3 . . . Grundlegende Übertragungsprobleme . . . 523
16. 4 . . . Weitere Anmerkungen zu TFTP . . . 531
16. 5 . . . Remote Procedure Call (RPC) . . . 534
16. 6 . . . Epilog . . . 539
16. 7 . . . Übungen . . . 539
17. Grundlagen des TCP-Transports . . . 545
17. 1 . . . Das Ende-zu-Ende-Prinzip . . . 547
17. 2 . . . TCP-Header . . . 547
17. 3 . . . Aufbau einer TCP-Verbindung . . . 549
17. 4 . . . TCP und WireShark . . . 555
17. 5 . . . TCP-Offloading . . . 557
17. 6 . . . TCP-Simplex-Talk . . . 558
17. 7 . . . TCP und bind() . . . 563
17. 8 . . . TCP-Zustandsdiagramm . . . 565
17. 9 . . . Epilog . . . 572
17. 10 . . . Übungen . . . 572
18. TCP -- Probleme und Alternativen . . . 577
18. 1 . . . Alte Duplikate bei TCP . . . 577
18. 2 . . . TIMEWAIT . . . 578
18. 3 . . . Der dreifache Handshake -- erneut betrachtet . . . 580
18. 4 . . . Anomale TCP-Szenarien . . . 583
18. 5 . . . Schnelleres Öffnen von TCP-Verbindungen . . . 584
18. 6 . . . Path MTU Discovery . . . 587
18. 7 . . . Sliding Windows bei TCP . . . 587
18. 8 . . . Verzögerte ACKs bei TCP . . . 588
18. 9 . . . Nagle-Algorithmus . . . 589
18. 10 . . . Flusssteuerung bei TCP . . . 590
18. 11 . . . Silly-Window-Syndrom . . . 591
18. 12 . . . Zeitüberschreitung und Neuübertragung bei TCP . . . 592
18. 13 . . . KeepAlive . . . 594
18. 14 . . . TCP-Timer . . . 594
18. 15 . . . Varianten und Alternativen . . . 595
18. 16 . . . Epilog . . . 608
18. 17 . . . Übungen . . . 608
19. TCP Reno und Überlastmanagement . . . 611
19. 1 . . . Grundlagen des TCP-Überlastmanagements . . . 612
19. 2 . . . Slow Start . . . 618
19. 3 . . . TCP Tahoe und Fast-Retransmit . . . 624
19. 4 . . . TCP Reno und Fast-Recovery . . . 626
19. 5 . . . TCP NewReno . . . 630
19. 6 . . . Selektive Bestätigungen (SACK) . . . 632
19. 7 . . . TCP und Auslastung der Flaschenhalsverbindung . . . 633
19. 8 . . . Verluste einzelner Pakete . . . 638
19. 9 . . . Annahmen zu TCP und Skalierbarkeit . . . 639
19. 10 . . . TCP-Parameter . . . 640
19. 11 . . . Epilog . . . 641
19. 12 . . . Übungen . . . 641
20. TCP-Dynamik . . . 647
20. 1 . . . Ein erster Blick auf das Queuing . . . 647
20. 2 . . . Flaschenhalsverbindungen mit konkurrierendem Datenverkehr . . . 649
20. 3 . . . TCP Reno -- Fairness mit synchronisierten Verlusten . . . 659
20. 4 . . . Epilog . . . 669
20. 5 . . . Übungen . . . 669
21. Weitere TCP-Dynamiken . . . 675
21. 1 . . . Begriffe der Fairness . . . 675
21. 2 . . . TCP-Reno-Verlustrate und cwnd . . . 677
21. 3 . . . TCP-Freundlichkeit . . . 680
21. 4 . . . Noch einmal AIMD . . . 684
21. 5 . . . Aktives Warteschlangenmanagement . . . 686
21. 6 . . . Das TCP-Problem der hohen Bandbreiten . . . 694
21. 7 . . . Das Problem der verlustbehafteten Verbindungen . . . 696
21. 8 . . . Das Problem der Satelliten-TCP-Verbindungen . . . 697
21. 9 . . . Epilog . . . 697
21. 10 . . . Übungen . . . 698
22. Queuing und Scheduling . . . 705
22. 1 . . . Queuing und Echtzeitdatenverkehr . . . 706
22. 2 . . . Traffic-Management . . . 707
22. 3 . . . Priority Queuing . . . 708
22. 4 . . . Warteschlangenverfahren . . . 708
22. 5 . . . Fair Queuing . . . 710
22. 6 . . . Anwendungen von Fair Queuing . . . 730
22. 7 . . . Hierarchisches Queuing . . . 733
22. 8 . . . Hierarchical Weighted Fair Queuing . . . 737
22. 9 . . . Epilog . . . 744
22. 10 . . . Übungen . . . 745
23. Token-Bucket . . . 749
23. 1 . . . Token-Bucket -- Definition . . . 750
23. 2 . . . Token-Bucket -- Beispiele . . . 753
23. 3 . . . Mehrere Token-Buckets . . . 754
23. 4 . . . GCRA . . . 755
23. 5 . . . Gewährleistung der VoIP-Bandbreite . . . 757
23. 6 . . . Verzögerung begrenzen . . . 758
23. 7 . . . Token-Bucket durch einen Router . . . 760
23. 8 . . . Token-Bucket durch mehrere Router . . . 761
23. 9 . . . Verzögerungsbedingungen . . . 762
23. 10 . . . CBQ . . . 765
23. 11 . . . Linux HTB . . . 765
23. 12 . . . Parekh-Gallager Theorem . . . 767
23. 13 . . . Epilog . . . 768
23. 14 . . . Übungen . . . 768
24. Quality of Service . . . 773
24. 1 . . . Netzneutralität . . . 775
24. 2 . . . Wo die wilden Warteschlangen wohnen . . . 775
24. 3 . . . Echtzeit-Datenverkehr . . . 776
24. 4 . . . Integrated Services/RSVP . . . 780
24. 5 . . . Globales IP-Multicast . . . 781
24. 6 . . . RSVP . . . 788
24. 7 . . . Differentiated Services . . . 794
24. 8 . . . RED with In and Out . . . 801
24. 9 . . . NSIS . . . 801
24. 10 . . . Comcast-System zu Überlaststeuerung . . . 802
24. 11 . . . Real-time Transport Protocol (RTP) . . . 804
24. 12 . . . Multi-Protocol Label Switching (MPLS) . . . 810
24. 13 . . . Epilog . . . 814
24. 14 . . . Übungen . . . 814
25. Netzwerkverwaltung und SNMP . . . 817
25. 1 . . . Netzwerkarchitektur . . . 820
25. 2 . . . SNMP-Grundlagen . . . 820
25. 3 . . . Namen und OIDs unter SNMP . . . 823
25. 4 . . . MIBs . . . 825
25. 5 . . . SNMPv1-Datentypen . . . 827
25. 6 . . . ASN. 1-Syntax und SNMP . . . 828
25. 7 . . . SNMP-Tabellen . . . 829
25. 8 . . . SNMP-Operationen . . . 835
25. 9 . . . MIB-Browsing . . . 841
25. 10 . . . MIB-2 . . . 842
25. 11 . . . SNMPv1-Communitys und -Sicherheit . . . 853
25. 12 . . . SNMP und die ASN. 1-Kodierung . . . 855
25. 13 . . . Übungen . . . 859
26. Die SNMP-Versionen 2 und 3 . . . 863
26. 1 . . . SNMPv2 . . . 863
26. 2 . . . Erstellung von Tabellenzeilen . . . 879
26. 3 . . . SNMPv3 . . . 890
26. 4 . . . Übungen . . . 905
27. Sicherheit . . . 907
27. 1 . . . Einbruch mit Ausführung von Code . . . 909
27. 2 . . . Stapelüberlauf . . . 911
27. 3 . . . Heap-Überlauf . . . 923
27. 4 . . . Network Intrusion Detection . . . 930
27. 5 . . . Ziele der Kryptografie . . . 932
27. 6 . . . Sichere Hashes . . . 934
27. 7 . . . Verschlüsselung mit gemeinsamem Schlüssel . . . 940
27. 8 . . . Diffie-Hellman-Merkle-Schlüsselaustausch . . . 954
27. 9 . . . Übungen . . . 959
28. Verschlüsselung mit öffentlichem Schlüssel . . . 963
28. 1 . . . RSA . . . 963
28. 2 . . . Vorwärts gerichtete Geheimhaltung . . . 967
28. 3 . . . Vertrauen und der Mann in der Mitte . . . 969
28. 4 . . . Ende-zu-Ende-Verschlüsselung . . . 970
28. 5 . . . SSH und TLS . . . 971
28. 6 . . . IPsec . . . 998
28. 7 . . . DNSSEC . . . 1002
28. 8 . . . Beispiele mit RSA-Schlüssel . . . 1016
28. 9 . . . Übungen . . . 1020
Bibliografie . . . 1023
Index . . . 1033