„TCP/IP Detaillierte Erklärung, Band 1: Protokoll“ ist eine vollständige und detaillierte Anleitung zum TCP/IP-Protokoll. Die einzelnen Protokolle, die zu jeder Schicht gehören, und ihre Funktionsweise in verschiedenen Betriebssystemen werden beschrieben. Der Autor nutzte das Programm tcpdump des Lawrence Berkeley Laboratory, um verschiedene Pakete zu erfassen, die zwischen verschiedenen Betriebssystemen und TCP/IP-Implementierungen übertragen wurden. Das Studium der tcpdump-Ausgabe kann helfen, zu verstehen, wie verschiedene Protokolle funktionieren. Dieses Buch eignet sich als Lehrbuch für Informatikstudenten zum Thema Netzwerke und als Nachschlagewerk für Lehrer. Auch für Techniker geeignet, die sich mit Netzwerken befassen.
Inhaltsverzeichnis Vorwort des Übersetzers Kapitel 1 Überblick 1
1.1 Einleitung 1
1.2 Schichtung 1
1.3 TCP/IP-Layering 4
1.4 Internetadressen 5
1.5 Domain Name System 6
1.6 Verpackung 6
1,7 Punkte mit 8
1.8 Client-Server-Modell 8
1.9 Portnummer 9
1.10 Standardisierungsprozess 10
1.11 RFC 10
1.12 Standard-Einfachdienst 11
1.13 Internet 12
1.14 Umsetzung 12
1.15 Anwendungsprogrammierschnittstelle 12
1.16 Testnetzwerk 13
1.17 Zusammenfassung 13
Kapitel 2 Verbindungsschicht 15
2.1 Einleitung 15
2.2 Ethernet- und IEEE 802-Kapselung 15
2.3 Heckverpackung 17
2.4 SLIP: Serielle Leitung IP 17
2.5 Komprimierter SLIP 18
2.6 PPP: Point-to-Point-Protokoll 18
2.7 Loopback-Schnittstelle 20
2.8 Maximale Übertragungseinheit MTU 21
2.9 Pfad MTU 21
2.10 Berechnung des seriellen Leitungsdurchsatzes 21
2.11 Zusammenfassung 22
Kapitel 3 IP: Internetprotokoll 24
3.1 Einleitung 24
3.2 IP-Header 24
3.3 IP-Routing 27
3.4 Subnetzadressierung 30
3.5 Subnetzmaske 32
3.6 IP-Adressen für Sonderfälle 33
3.7 Beispiel eines Subnetzes 33
3.8 ifconfig-Befehl 35
3.9 Netstat-Befehl 36
3.10 Die Zukunft von IP 36
3.11 Zusammenfassung 37
Kapitel 4 ARP: Adressauflösungsprotokoll 38
4.1 Einleitung 38
4.2 Ein Beispiel 38
4.3 ARP-Cache 40
4.4 ARP-Gruppierungsformat 40
4.5 ARP-Beispiel 41
4.5.1 Allgemeines Beispiel 41
4.5.2 ARP-Anfrage für nicht vorhandenen Host 42
4.5.3 ARP-Cache-Timeout-Einstellung 43
4.6 ARP-Proxy 43
4.7 Kostenloser ARP 45
4.8 ARP-Befehl 45
4.9 Zusammenfassung 46
Kapitel 5 RARP: Reverse Address Resolution Protocol 47
5.1 Einleitung 47
5.2 RARP-Gruppierungsformat 47
5.3 RARP-Beispiel 47
5.4 Design des RARP-Servers 48
5.4.1 RARP-Server als Benutzerprozess 49
5.4.2 Mehrere RARP-Server pro Netzwerk 49
5.5 Zusammenfassung 49
Kapitel 6 ICMP: Internet Control Message Protocol 50
6.1 Einleitung 50
6.2 Arten von ICMP-Nachrichten 50
6.3 ICMP-Adressmaskenanfrage und -antwort 52
6.4 ICMP-Zeitstempelanfrage und -antwort 53
6.4.1 Beispiel 54
6.4.2 Ein anderer Ansatz 55
6.5 ICMP-Port nicht erreichbarer Fehler 56
6.6 4.4BSD-Verarbeitung von ICMP-Nachrichten 59
6.7 Zusammenfassung 60
Kapitel 7 Ping-Programm 61
7.1 Einleitung 61
7.2 Ping-Programm 61
7.2.1 LAN-Ausgang 62
7.2.2 WAN-Ausgang 63
7.2.3 Line-SLIP-Link 64
7.2.4 DFÜ-SLIP-Verbindung 65
7.3 IP-Record-Routing-Optionen 65
7.3.1 Häufige Beispiele 66
7.3.2 Ausnahmeausgabe 68
7.4 IP-Zeitstempeloptionen 69
7.5 Zusammenfassung 70
Kapitel 8 Traceroute-Programm 71
8.1 Einleitung 71
8.2 Bedienung des Traceroute-Programms 71
8.3 LAN-Ausgang 72
8.4 WAN-Ausgang 75
8.5 IP-Ursprungs-Routing-Optionen 76
8.5.1 Traceroute für entspanntes Ursprungsrouting
Programmbeispiel 78
8.5.2 Traceroute für striktes Routing am Ursprungsstandort
Programmbeispiel 79
8.5.3 Traceroute-Programm für loses Quell-Site-Routing
Hin- und Rückweg 80
8.6 Zusammenfassung 81
Kapitel 9 IP-Routing 83
9.1 Einleitung 83
9.2 Grundlagen des Routings 84
9.2.1 Einfache Routing-Tabelle 84
9.2.2 Routing-Tabelle 86 initialisieren
9.2.3 Komplexere Routing-Tabellen 87
9.2.4 Keine Route zum Ziel 87
9.3 ICMP-Host- und Netzwerk-Unerreichbarkeitsfehler 88
9.4 Weiterleiten oder nicht weiterleiten 89
9.5 ICMP-Umleitungsfehler 89
9.5.1 Ein Beispiel 90
9.5.2 Weitere Details 91
9.6 ICMP-Router-Erkennungsmeldung 92
9.6.1 Router-Bedienung 93
9.6.2 Host-Betrieb 93
9.6.3 Umsetzung 93
9.7 Zusammenfassung 94
Kapitel 10 Dynamic Routing Protocol 95
10.1 Einleitung 95
10.2 Dynamisches Routing 95
10.3 Unix-Routing-Daemon 96
10.4 RIP: Routing Information Protocol 96
10.4.1 Nachrichtenformat 96
10.4.2 Normalbetrieb 97
10.4.3 Metriken 98
10.4.4 Frage 98
10.4.5 Beispiel 98
10.4.6 Ein weiteres Beispiel 100
10.5 RIP-Version 2 102
10.6 OSPF: Öffnen Sie den kürzesten Pfad zuerst 102
10.7 BGP: Border Gateway Protocol 103
10.8 CIDR: Typloses Inter-Domain-Routing 104
10.9 Zusammenfassung 105
Kapitel 11 UDP: User Datagram Protocol 107
11.1 Einleitung 107
11.2 UDP-Header 107
11.3 UDP-Prüfsumme 108
11.3.1 tcpdump-Ausgabe 109
11.3.2 Einige statistische Ergebnisse 109
11.4 Ein einfaches Beispiel 110
11.5 IP-Fragmentierung 111
11.6 ICMP-Unerreichbarkeitsfehler (Fragmentierung erforderlich) 113
11.7 Verwenden Sie Traceroute, um Pfad-MTU 114 zu ermitteln
11.8 Pfad-MTU-Erkennung mit UDP 116
11.9 Interaktion zwischen UDP und ARP 118
11.10 Maximale UDP-Datagrammlänge 119
11.11 ICMP-Quellstations-Unterdrückungsfehler 120
11.12 Design des UDP-Servers 122
11.12.1 Kunden-IP-Adresse und Portnummer 122
11.12.2 Ziel-IP-Adresse 122
11.12.3 UDP-Eingabewarteschlange 122
11.12.4 Lokale IP-Adressen einschränken 124
11.12.5 Remote-IP-Adressen einschränken 125
11.12.6 Mehrere Empfänger pro Port 125
11.13 Zusammenfassung 126
Kapitel 12 Rundfunk und Multicasting 128
12.1 Einleitung 128
12.2 Rundfunk 129
12.2.1 Eingeschränkte Ausstrahlung 129
12.2.2 Übertragungen an das Netzwerk 129
12.2.3 Broadcasts an Subnetze 129
12.2.4 Broadcast an alle Subnetze 130
12.3 Rundfunkbeispiel 130
12.4 Multicast 132
12.4.1 Multicast-Gruppenadresse 133
12.4.2 Konvertierung von Multicast-Gruppenadresse in Ethernet-Adresse 133
12.4.3 Multicast in FDDI- und Token-Ring-Netzwerken 134
12.5 Zusammenfassung 134
Kapitel 13 IGMP: Internet Group Management Protocol 136
13.1 Einleitung 136
13.2 IGMP-Nachrichten 136
13.3 IGMP-Protokoll 136
13.3.1 Einer Multicast-Gruppe beitreten 136
13.3.2 IGMP-Berichte und -Abfragen 137
13.3.3 Implementierungsdetails 137
13.3.4 Time-to-Live-Feld 138
13.3.5 Alle Hostgruppen 138
13.4 Ein Beispiel 138
13.5 Zusammenfassung 141
Kapitel 14 DNS: Domain Name System 142
14.1 Einleitung 142
14.2 DNS-Grundlagen 142
14.3 DNS-Nachrichtenformat 144
14.3.1 Problemteile in DNS-Abfragenachrichten 146
14.3.2 Ressourceneintragsteil in der DNS-Antwortnachricht 147
14.4 Ein einfaches Beispiel 147
14.5 Zeigerabfrage 150
14.5.1 Beispiel 151
14.5.2 Überprüfung des Hostnamens 151
14.6 Ressourcendatensätze 152
14.7 Caching 153
14.8 UDP oder TCP 156
14.9 Ein weiteres Beispiel 156
14.10 Zusammenfassung 157
Kapitel 15 TFTP: Simple File Transfer Protocol 159
15.1 Einleitung 159
15.2 Vereinbarung 159
15.3 Ein Beispiel 160
15.4 Sicherheit 161
15.5 Zusammenfassung 162
Kapitel 16 BOOTP: Bootstrap-Protokoll 163
16.1 Einleitung 163
16.2 BOOTP-Paketformat 163
16.3 Ein Beispiel 164
16.4 Design des BOOTP-Servers 165
16.5 BOOTP Traversal Router 167
16.6 Herstellerspezifische Informationen 167
16.7 Zusammenfassung 168
Kapitel 17 TCP: Transmission Control Protocol 170
17.1 Einleitung 170
17.2 TCP-Dienste 170
17.3 TCP-Header 171
17.4 Zusammenfassung 173
Kapitel 18 Aufbau und Beendigung einer TCP-Verbindung 174
18.1 Einleitung 174
18.2 Verbindungsaufbau und -abbau 174
18.2.1 tcpdump-Ausgabe 174
18.2.2 Zeitreihe 175
18.2.3 Abschluss eines Anschlussvertrages 175
18.2.4 Verbindungsabschlussprotokoll 177
18.2.5 Normale TCPdump-Ausgabe 177
18.3 Timeout beim Verbindungsaufbau 178
18.3.1 Erste Timeout-Periode 178
18.3.2 Diensttypfeld 179
18.4 Maximale Segmentlänge 179
18,5 TCP Halbnah 180
18.6 TCP-Zustandsübergangsdiagramm 182
18.6.1 2MSL-Wartezustand 183
18.6.2 Das Konzept der Stillen Zeit 186
18.6.3 FIN_WAIT_2-Status 186
18.7 Segment 186 zurücksetzen
18.7.1 Verbindungsanfrage zu einem nicht vorhandenen Port 187
18.7.2 Ungewöhnlicher Verbindungsabbruch 187
18.7.3 Halboffene Verbindungen erkennen 188
18,8 Gleichzeitig öffnen 189
18.9 Gleichzeitige Schließung 191
18.10 TCP-Optionen 191
18.11 Design des TCP-Servers 192
18.11.1 TCP-Server-Portnummer 193
18.11.2 Qualifizierte lokale IP-Adressen 194
18.11.3 Eingeschränkte Remote-IP-Adresse 195
18.11.4 Warteschlange für eingehende Verbindungsanfragen 195
18.12 Zusammenfassung 197
Kapitel 19 Interaktiver TCP-Datenfluss 200
19.1 Einleitung 200
19.2 Interaktive Eingabe 200
19.3 Bestätigung trotz Verzögerungen 201
19.4 Nagle-Algorithmus 203
19.4.1 Schalten Sie den Nagle-Algorithmus 204 aus
19.4.2 Ein Beispiel 205
19.5 Fenstergrößenbenachrichtigung 207
19.6 Zusammenfassung 208
Kapitel 20 TCP Chunked Data Stream 209
20.1 Einleitung 209
20.2 Normaler Datenfluss 209
20.3 Schiebefenster 212
20,4 Fenstergröße 214
20,5 PUSH-Logo 215
20.6 Langsamer Start 216
20.7 Chunked-Datendurchsatz 218
20.7.1 Bandbreiten-Verzögerungsprodukt 220
20.7.2 Stau 220
20.8 Notbetrieb 221
20.9 Zusammenfassung 224
Kapitel 21 TCP-Timeout und Neuübertragung 226
21.1 Einleitung 226
21.2 Einfaches Beispiel für Timeout und Neuübertragung 226
21.3 Umlaufzeitmessung 227
21.4 Round Trip Time RTT Beispiel 229
21.4.1 Messung der Umlaufzeit RTT 229
21.4.2 Berechnung des RTT-Schätzers 231
21.4.3 Langsamer Start 233
21.5 Staubeispiel 233
21.6 Stauvermeidungsalgorithmus 235
21.7 Algorithmus für schnelle Neuübertragung und schnelle Wiederherstellung 236
21.8 Staubeispiel (Fortsetzung) 237
21,9 Metriken pro Route 240
21.10 ICMP-Fehler 240
21.11 Umgruppierung 243
21.12 Zusammenfassung 243
Kapitel 22 TCP-Persistenz-Timer 245
22.1 Einleitung 245
22.2 Ein Beispiel 245
22.3 Confused-Window-Syndrom 246
22.4 Zusammenfassung 250
Kapitel 23 TCP-Keep-Alive-Timer 251
23.1 Einleitung 251
23.2 Beschreibung 252
23.3 Keep-Alive-Beispiel 253
23.3.1 Absturz auf der anderen Seite 253
23.3.2 Das andere Ende stürzt ab und startet neu 254
23.3.3 Das andere Ende ist nicht erreichbar 254
23.4 Zusammenfassung 255
Kapitel 24 Die Zukunft und Leistung von TCP 256
24.1 Einleitung 256
24.2 Pfad-MTU-Erkennung 256
24.2.1 Ein Beispiel 257
24.2.2 Große Gruppierung oder kleine Gruppierung 258
24.3 Lange Fettpipeline 259
24.4 Fenstererweiterungsmöglichkeiten 262
24.5 Zeitstempeloptionen 263
24.6 PAWS: Seriennummer zur Verhinderung von Wraparound 265
24.7 T/TCP: TCP-Erweiterungen für Transaktionen 265
24,8 TCP-Leistung 267
24.9 Zusammenfassung 268
Kapitel 25 SNMP: Simple Network Management Protocol 270
25.1 Einleitung 270
25.2 Vereinbarung 270
25.3 Managementinformationsstruktur 272
25.4 Objektkennungen 274
25.5 Einführung in die Management Information Base 274
25.6 Instanzidentifikation 276
25.6.1 Einfache Variablen 276
25.6.2 Tabelle 276
25.6.3 Wörterbuchsortierung 277
25.7 Einige einfache Beispiele 277
25.7.1 Einfache Variablen 278
25.7.2 Get-Next-Operation 278
25.7.3 Tabellenzugriff 279
25.8 Management Information Base (Fortsetzung) 279
25.8.1 Systemgruppe 279
25.8.2 Schnittstellengruppe 280
25.8.3 bei Gruppe 281
25.8.4 IP-Gruppe 282
25.8.5 ICMP-Gruppe 285
25.8.6 TCP-Gruppe 285
25.9 Einige andere Beispiele 288
25.9.1 Schnittstelle MTU 288
25.9.2 Routing-Tabelle 288
25.10 Falle 290
25.11 ASN.1 und BER 291
25.12 SNMPv2 292
25.13 Zusammenfassung 292
Kapitel 26 Telnet und Rlogin: Remote-Login 293
26.1 Einleitung 293
26.2 Rlogin-Protokoll 294
26.2.1 Beginn des Bewerbungsprozesses 295
26.2.2 Flusskontrolle 295
26.2.3 Client-Interrupt-Taste 296
26.2.4 Fenstergröße ändern 296
26.2.5 Server-zu-Client-Befehle 296
26.2.6 Client-zu-Server-Befehle 297
26.2.7 Client-Escape-Zeichen 298
26.3 Rlogin-Beispiel 298
26.3.1 Anfängliches Client-Server-Protokoll 298
26.3.2 Kunden-Interrupt-Taste 299
26.4 Telnet-Protokoll 302
26.4.1 NVT ASCII 302
26.4.2 Telnet-Befehl 302
26.4.3 Optionsverhandlung 303
26.4.4 Unteroptionsverhandlung 304
26.4.5 Halbduplex, jeweils ein Zeichen, einmal
Eine Reihe oder Reihenmodus 304
26.4.6 Synchronisationssignale 306
26.4.7 Client-Escape-Zeichen 306
26.5 Telnet-Beispiel 306
26.5.1 Einzelzeichenmodus 306
26.5.2 Zeilenmodus 310
26.5.3 Eine Reihe nach der anderen (Quasi-Reihen-Modus) 312
26.5.4 Leitungsmodus: Client-Interrupt-Taste 313
26.6 Zusammenfassung 314
Kapitel 27 FTP: File Transfer Protocol 316
27.1 Einleitung 316
27.2 FTP-Protokoll 316
27.2.1 Datendarstellung 316
27.2.2 FTP-Befehle 318
27.2.3 FTP-Antworten 319
27.2.4 Verbindungsmanagement 320
27.3 FTP-Beispiel 321
27.3.1 Verbindungsmanagement: Temporäre Datenports 321
27.3.2 Verbindungsverwaltung: Standard-Datenport 323
27.3.3 Textdateiübertragung: NVT ASCII
Darstellung bzw. Bilddarstellung 325
27.3.4 Ungewöhnlicher Abbruch einer Dateiübertragung:
Telnet-Synchronisierungssignal 326
27.3.5 Anonymer FTP 329
27.3.6 Anonymes FTP von einer unbekannten IP-Adresse 330
27.4 Zusammenfassung 331
Kapitel 28 SMTP: Simple Mail Transfer Protocol 332
28.1 Einleitung 332
28.2 SMTP-Protokoll 332
28.2.1 Einfaches Beispiel 332
28.2.2 SMTP-Befehle 334
28.2.3 Umschlag, Header und Text 335
28.2.4 Relay-Agenten 335
28.2.5 NVT ASCII 337
28.2.6 Wiederholungsintervall 337
28.3 SMTP-Beispiel 337
28.3.1 MX-Einträge: Host nicht direkt verbunden mit
Internet 337
28.3.2 MX-Einträge: Hostfehler 339
28.3.3 VRFY- und EXPN-Befehle 340
28.4 Die Zukunft von SMTP 340
28.4.1 Umschlagänderungen: Erweitertes SMTP 341
28.4.2 Header-Änderungen: Nicht-ASCII-Zeichen 342
28.4.3 Textänderungen: Allgemeine Internet-Mail
Erweiterung 343
28.5 Zusammenfassung 346
Kapitel 29 Netzwerkdateisysteme 347
29.1 Einleitung 347
29.2 Sun Remote Procedure Call 347
29.3 XDR: Externe Datendarstellung 349
29.4 Portmapper 349
29.5 NFS-Protokoll 351
29.5.1 Dateihandles 353
29.5.2 Installationsprotokoll 353
29.5.3 NFS-Prozess 354
29.5.4 UDP oder TCP 355
29.5.5 NFS über TCP 355
29,6 NFS-Instanzen 356
29.6.1 Einfaches Beispiel: Lesen einer Datei 356
29.6.2 Einfaches Beispiel: Erstellen eines Verzeichnisses 357
29.6.3 Staatenlos 358
29.6.4 Beispiel: Serverabsturz 358
29.6.5 Idempotente Prozesse 360
29.7 Version 3 von NFS 360
29.8 Zusammenfassung 361
Kapitel 30 Andere TCP/IP-Anwendungen 363
30.1 Einleitung 363
30.2 Fingerprotokoll 363
30.3 Whois-Protokoll 364
30.4 Archie, WAIS, Gopher, Veronica
und WWW 366
30.4.1 Archie 366
30.4.2 WAIS 366
30.4.3 Gopher 366
30.4.4 Veronica 366
30.4.5 World Wide Web WWW 367
30.5 X Window System 367
30.5.1 Xscope-Programm 368
30.5.2 LBX: Niedrige Bandbreite x 370
30.6 Zusammenfassung 370
Anhang A tcpdump-Programm 371
Anhang B Computeruhr 376
Anhang C Sockenprogramm 378
Lösungen zu einigen Übungen im Anhang D 381
Anhang E Konfigurationsoptionen 395
Anhang F Frei verfügbarer Quellcode 406
Referenzen 409
Abkürzungen 420