Grundlagen der Rechnernetze Einführung Übersicht • • • • • • Basisbausteine und Begriffe Kommunikationsgrundlagen Adressierung Protokolle und Schichten Performance Geschichte und Gegenwart Grundlagen der Rechnernetze ‐ Einführung 2 Basisbausteine und Begriffe Grundlagen der Rechnernetze ‐ Einführung 3 Hosts und Links H2 H1 Link Host Grundlagen der Rechnernetze ‐ Einführung 4 Nachricht, Stream, Paket M H1 P1 H2 P2 Header S H3 … Payload H4 Pn Trailer Bytes Letztes Bit Erstes Bit Grundlagen der Rechnernetze ‐ Einführung 5 Multiple‐Access H1 H2 H3 Grundlagen der Rechnernetze ‐ Einführung … Hn 6 Multiplexing H1 H4 H2 H5 H3 H6 H4 H1 … H2 H5 H6 H3 Grundlagen der Rechnernetze ‐ Einführung 7 Skalierbarkeit von Multiple‐Access‐Netz? H1 H2 H3 … Hn Annahme alle Knotenpaare kommunizieren gleich häufig. Was ist der Anteil s des Mediums pro Knotenpaar? Grundlagen der Rechnernetze ‐ Einführung 8 Skalierbarkeit von vollvermaschtem Netz? H11 H1 H2 H10 H3 H9 H4 H8 H7 H6 H5 Anzahl Links k pro Knoten und Gesamtanzahl Links l? Grundlagen der Rechnernetze ‐ Einführung 9 Switched‐Network H1 H2 H3 S1 H8 S2 S3 S4 H4 H7 S5 H6 H5 Grundlagen der Rechnernetze ‐ Einführung 10 Cloud‐Icon H1 H2 H3 S1 H8 N S2 S3 S4 H4 H7 S5 H6 H5 Grundlagen der Rechnernetze ‐ Einführung 11 Internet H2 H1 H3 N1 H4 R1 R2 H9 N3 N2 R3 H5 H8 H7 Grundlagen der Rechnernetze ‐ Einführung H6 12 Rekursive Anwendung des Cloud‐Icons H2 H1 H3 N1 H4 R1 H9 R2 N N3 N2 R3 H5 H8 H7 Grundlagen der Rechnernetze ‐ Einführung H6 13 Netzgrößen Bildquelle: www.cebylon.com/khi1/141‐01‐GAN‐MAN.html Grundlagen der Rechnernetze ‐ Einführung 14 Netze und Graphen H2 H1 H2 H1 H3 H3 N1 N1 R1 H4 R1 R2 R2 H4 H9 N3 N2 R3 H6 N2 N3 H5 H8 H7 H9 R3 H8 H7 H5 H6 Definition: Graph Grundlagen der Rechnernetze ‐ Einführung 15 Beispieltopologien Bus Stern Baum Ring Grundlagen der Rechnernetze ‐ Einführung Mesh 16 Kommunikationsgrundlagen Grundlagen der Rechnernetze ‐ Einführung 17 Kommunikationsformen H2 H1 H3 N1 H4 R1 R2 H9 N3 N2 R3 H5 H8 H7 Grundlagen der Rechnernetze ‐ Einführung H6 18 Forwarding‐Tabelle Zieladresse 4711 7893 3467 2576 … Nächster Hop 3 2 5 2 … 6 5 1 2 R 4 3 Grundlagen der Rechnernetze ‐ Einführung 19 Timeouts und Acknowledgments H2 H1 H3 N1 H4 R1 R2 H9 N3 N2 R3 H5 H8 H7 Grundlagen der Rechnernetze ‐ Einführung H6 20 Verbindungsorientiert und Verbindungslos H2 H1 H3 N1 H4 R1 R2 H9 N3 N2 R3 H5 H8 H7 Grundlagen der Rechnernetze ‐ Einführung H6 21 Client‐Server‐Prinzip H N Grundlagen der Rechnernetze ‐ Einführung S 22 Adressierung Grundlagen der Rechnernetze ‐ Einführung 23 Physikalische Adresse – Beispiel Ethernet 00001000 00000000 00101011 11100100 10110001 00000010 08 : 00 : 2B : E4 : B1 : 02 Broadcast 11111111 11111111 11111111 11111111 11111111 11111111 FF:FF:FF:FF:FF:FF Multicast 1XXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX {8X,…,FX}:XX:XX:XX:XX:XX Grundlagen der Rechnernetze ‐ Einführung 24 Flache und hierarchische Adressräume H1 H2 1.1 H3 1.2 H7 1.7 4.1 R3 3.1 H4 2.8 2.7 4.3 4.4 3.2 R1 2.5 H9 4.2 4 1.10 1 H8 R2 3 2 2.4 2.1 H5 H6 Grundlagen der Rechnernetze ‐ Einführung 25 Konsequenz für Forwarding‐Tabelle H1 H2 1.1 H3 1.2 H7 1.7 4.1 2.8 2 2.4 2.1 H5 R3 3.1 H4 2.7 4.3 4.4 3.2 R1 2.5 H9 4.2 4 1.10 1 H8 H6 3 R2 Ziel Next‐Hop H1 nach R1 H2 nach R1 H3 nach R1 H4 direkt H5 direkt H6 direkt H7 nach R3 H8 nach R3 H9 nach R3 Grundlagen der Rechnernetze ‐ Einführung Ziel Next‐Hop 1.X nach R1 2.X direkt 4.X nach R3 26 Classful IP‐Adressen 10101011 01000101 11010010 11110101 171.69.210.245 Class A 0 7 24 Netz Host Class B 14 1 0 16 Netz Host Class C 1 1 0 21 8 Netz Host Grundlagen der Rechnernetze ‐ Einführung 27 Bedarf für eine weitere Hierarchieebene H1 H2 1.1 H3 1.2 H7 1.7 4.1 R3 3.1 H4 2.8 2.7 4.3 4.4 3.2 R1 2.5 H9 4.2 4 1.10 1 H8 R2 3 2 2.4 2.1 H5 H6 Eingang ins Campus‐Netz Grundlagen der Rechnernetze ‐ Einführung 28 Subnetze Zum Beispiel Class B Adresse Subnetz Maske Ergebnis 1 0 14 16 Netz Host 11111111 11111111 11111111 (255.255.255.0) Netznummer Grundlagen der Rechnernetze ‐ Einführung Subnetz 00000000 Host 29 Subnetting‐Beispiel Subnetznummer : 128. 96. 34. 0 = 100000000 01100000 00100010 00000000 Subnetzmaske : 255.255.255.128 = 111111111 11111111 11111111 10000000 128. 96. 34. 15 = 100000000 01100000 00100010 00001111 H1 128. 96. 34. 1 = 100000000 01100000 00100010 00000001 R1 128. 96. 34.130 = 100000000 01100000 00100010 10000010 128. 96. 34.128 = 100000000 01100000 00100010 10000000 255.255.255.128 = 111111111 11111111 11111111 10000000 128. 96. 34.139 = 100000000 01100000 00100010 10001011 H2 Beispiel: Verwendung eines Class B Netzes: 128.96.X.X = 10000000 01100000 XXXXXXXX XXXXXXXX Grundlagen der Rechnernetze ‐ Einführung 30 Konsequenz für Forwarding‐Tabellen Subnetznummer : 128. 96. 34. 0 Subnetzmaske : 255.255.255.128 128. 96. 34. 15 H1 128. 96. 34. 1 Interface 1 Subnetznummer Subnetzmaske Nächster Hop 128.96.34.0 255.255.255.128 direkt (if 1) 128.96.34.128 255.255.255.128 direkt (if 2) 128.96.33.0 255.255.255.0 nach R2 (if 2) R1 128. 96. 34.130 Interface 2 128. 96. 34.128 255.255.255.128 Netznummer Nächster Hop 128.96 … R3 128. 96. 34.139 128. 96. 34.129 H2 R2 128. 96. 33. 1 128. 96. 33. 255.255.255. 0 0 Beispiel: Verwendung des Class B Netzes 128.96.X.X Grundlagen der Rechnernetze ‐ Einführung 31 Adressauflösung IP‐Adresse Physikalische Adresse IP‐Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.15 ??? 128.96.34.16 85:48:A4:28:AA:18 128.96.34.16 85:48:A4:28:AA:18 … … … … 128.96.34.15 45:35:FE:36:42:55 H1 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18 R1 Grundlagen der Rechnernetze ‐ Einführung H2 32 Motivation für Super‐Netting Betrachten wir als Beispiel die IT‐Abteilung eines Uni‐Campus, die „autonom“ eine Menge von IP‐Adressen nutzt. Mit Subnetting können wir gegebene Menge von IP‐Adressen effizient nutzen. Aber, die IT‐Abteilung muss immer noch IP‐Adressmenge in den Granularitäten Class‐A‐, ‐B‐, oder ‐C‐Netz beantragen/verwalten. Was ist wenn wir z.B. 257 Hosts im Netz haben? 1. Beantrage ein Class‐B‐Netz. Effizienz? 2. Beantrage zwei Class‐C‐Netze. Grundlagen der Rechnernetze ‐ Einführung 33 Lösung: Classless‐Interdomain‐Routing (CIDR) Aggregiere Netz‐Adressen. Beispiel: Annahme wir haben 16*256‐1 Hosts. Verwenden Adressen von 16 Class‐C‐Netzen. Aber Adressen nicht beliebig, sondern hintereinanderliegend, z.B.: 192.4.16 192.4.17 ... 192.4.31 Beobachtung: alle Adressen beginnen mit denselben 20 Bits: 11000000 00000100 0001 Grundlagen der Rechnernetze ‐ Einführung 34 Lösung: Classless‐Interdomain‐Routing (CIDR) Beobachtung: alle Adressen beginnen mit denselben 20 Bits: 11000000 00000100 0001 Im Beispiel also eine 20‐Bit Netzadresse • Liegt zwischen Class‐C (24 Bit) und Class‐B (16 Bit) • Erforderte Ausgabe von 2^4 = 16 Class‐C‐Adressen Allgemein: i‐Bit‐Netzadresse erfordert wie viele Class‐C‐Netze? Internet‐Router beachten nur noch die i‐Bit‐Netzadresse. Grundlagen der Rechnernetze ‐ Einführung 35 Lösung: Classless‐Interdomain‐Routing (CIDR) Wir brauchen für das Schema noch eine passende Notation. Notation am Beispiel: 192.4.16 192.4.17 ... 192.4.31 wird zusammengefasst dargestellt als: 192.4.16/20 Also, /20 bedeutet Netzadresse besteht aus ersten 20 Bit und fasst die 2^4=16 aufeinander folgenden Class‐C‐Netze beginnend mit 192.4.16 zusammen. Grundlagen der Rechnernetze ‐ Einführung 36 Quiz Wie fasst man die Class‐C‐Netze 192.4.0 bis 192.4.31 mittels /X‐ Notation zusammen? Wie stellt man das einzelne Class‐C‐Netz 192.4.16 in /X‐Notation dar? Grundlagen der Rechnernetze ‐ Einführung 37 Lösung: Classless‐Interdomain‐Routing (CIDR) Umgang mit aggregierten Adressen im Router: • Adressen in den Routing Tabellen: <länge,wert>‐Paar • Vergleichbar mit <mask,wert>‐Paar im Subnetting, wenn Mask aus aufeinanderfolgenden 1‐Bit‐Werten besteht CIDR erlaubt weitere Routenaggregation. Beispiel: Kunden‐Netze 128.112.128/24 Advertise 128.112.128/21 … Internet‐Anbieter 128.112.135/24 Es müssen noch nicht mal alle 8 aufeinanderfolgenden Netze aktuell genutzt sein! Grundlagen der Rechnernetze ‐ Einführung 38 Lösung: Classless‐Interdomain‐Routing (CIDR) CIDR und Routingtabelleneinträge? Prefixe dürfen überlappen. Beispiel‐Routingtabelle: Network‐Address Next Hop ... ... 171.69/16 if1 171.69.10/24 if2 ... ... Wohin mit der Nachricht an 171.69.10.5? Wohin mit der Nachricht an 171.69.20.5? Generell: Longest‐Prefix‐Match (erfordert effiziente Algorithmen/Datenstrukturen zum Finden des längsten passenden Prefix.) Grundlagen der Rechnernetze ‐ Einführung 39 Subnetting versus CIDR • Subnetting erlaubt das Aufteilen einer Netzadresse in Teilnetze – Aufteilung annähernd beliebig; alles was mit der Subnetzmaske ausdrückbar ist • CIDR dient dem Aggregieren von Netzadressen in einer einzigen Adresse – Aggregation nicht beliebig; Netzadressen müssen aufeinanderfolgend sein; zusammengefasst werden immer nur 2^i viele Netze – Gewisse Flexibilität, indem man „Dummy‐Netze“ verwendet Grundlagen der Rechnernetze ‐ Einführung 40 Protokolle und Schichten Grundlagen der Rechnernetze ‐ Einführung 41 Protokoll und Interface Host 1 Host 2 High‐Level Objekt High‐Level Objekt Service Interface Service Interface Protokoll Peer‐to‐peer Interface Grundlagen der Rechnernetze ‐ Einführung Protokoll 42 Message‐Sequence‐Chart (MSC) H1 H2 Grundlagen der Rechnernetze ‐ Einführung 43 Protokollzustandsautomat connection request/ connection response Wait for connection request file request/ file response Wait for file request close request Grundlagen der Rechnernetze ‐ Einführung 44 Beispiel H N S Service‐Primitiven: File f GET_FILE(), void ABORT_FILE_RETRIVAL(), ... Zustände: CLIENT_IDLE, CLIENT_WAITS_FOR_FILE, ... Zeitvorgaben: if client waits 1000ms then change to state CLIENT_ERROR Nachrichtenformate: FILE_REQUEST_MESSAGE: |CLIENT_ADR|SERVER_ADR|FILE_NAME| Grundlagen der Rechnernetze ‐ Einführung 45 Protokollgraph Host 1 Protokoll 1 Host 2 Protokoll 2 Protokoll 1 Protokoll 2 Protokoll 3 Protokoll 3 Protokoll 4 Protokoll 4 Grundlagen der Rechnernetze ‐ Einführung 46 Nachrichtenkapselung Host 1 Host 2 Anwendung 1 Anwendung 1 Daten Daten Protokoll 1 Protokoll 1 H1 Daten H1 Daten Protokoll 2 Protokoll 2 H2 H1 Daten H2 H1 Daten Protokoll 3 Protokoll 3 H3 H2 H1 Daten Grundlagen der Rechnernetze ‐ Einführung 47 Multiplexing und Demultiplexing Host 1 Protokoll 1 Host 2 Protokoll 2 Protokoll 1 Protokoll 2 Protokoll 3 Protokoll 3 Protokoll 4 Protokoll 4 Grundlagen der Rechnernetze ‐ Einführung 48 OSI‐Modell Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 49 Internet‐Modell Nothing stated by TCP/IP model Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 50 Internet‐Protokolle Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 51 Anwendungssicht auf TCP (oder UDP) Erzeugen eines Sockets int socket(int domain : type : protocol : domain, int type, int protocol) PF_INET, PF_UNIX, PF_PACKET, ... SOCK_STREAM, SOCK_DGRAM, ... UNSPEC, ... Passive‐Open auf der Server‐Seite int bind(int socket, struct sockaddr *address, int len) int listen(int socket, int backlog) int accept(int socket, struct sockaddr *address, int *len) address : enthält IP-Adresse und Port backlog : Anzahl erlaubter Pending-Connections Active‐Open auf der Client‐Seite int connect(int socket, struct sockaddr *address, int len) Senden und Empfangen von Daten int send(int socket, char *message, int len, int flags) int recv(int socket, char *buffer, int len, int flags) Grundlagen der Rechnernetze ‐ Einführung 52 Adressen im Internet‐Modell Host 1 Host 2 Application Application Application Application Port TCP UDP UDP TCP Demux‐Key IP IP IP‐Adresse LINK LINK Physikalische Adresse physical physical Grundlagen der Rechnernetze ‐ Einführung 53 Performance Grundlagen der Rechnernetze ‐ Einführung 54 Bandbreite 0 1 1 0 0 1 1 … 1 s 1 Sekunde Bandbreite b in obigem Beispiel: Grundlagen der Rechnernetze ‐ Einführung 55 Bps und bps Kenngröße Größenordnung Wert KBps 210 Byte/s 1.024 MBps 220 Byte/s 1.048.576 GBps 230 Byte/s 1.073.741.824 TBps 240 Byte/s 1.099.511.627.776 Kbps 103 Bits/s 1.000 Mbps 106 Bits/s 1.000.000 Gbps 109 Bits/s 1.000.000.000 Tbps 1012 Bits/s 1.000.000.000.000 Vereinfachung für Überschlagsrechnungen: Grundlagen der Rechnernetze ‐ Einführung 56 Propagation‐Delay H1 d H2 Zeit x zur Übertragung eines Bits bei Distanz d und Signalausbrei‐ tungsgeschwindigkeit l Grundlagen der Rechnernetze ‐ Einführung 57 Delay einer Single‐Hop‐Übertragung H1 d H2 Zeit x zur Übertragung von n Bits bei Distanz d Signalausbreitungs‐ geschwindigkeit l und Bandbreite b: Grundlagen der Rechnernetze ‐ Einführung 58 Delay einer Multi‐Hop‐Übertragung H1 d H2 Zeit x zur Übertragung von n Bits bei Distanz d, Signalausbreitungs‐ geschwindigkeit l, Bandbreite b und Queuing‐Zeit q: Grundlagen der Rechnernetze ‐ Einführung 59 Delay‐Bandbreiten‐Produkt Bandbreite Delay Beispiel: Anzahl Bits n die ein Kanal mit 100ms Latenz und 50Mbps Bandbreite speichert Grundlagen der Rechnernetze ‐ Einführung 60 Transferzeit und Effektiver Durchsatz H1 H2 Beispiel: Überschlagsrechnung zu Transferzeit z und effektivem Durchsatz d und bei Abrufen einer 1MB Datei über einen Kanal mit 1Gbps Bandbreite und 92ms RTT: Grundlagen der Rechnernetze ‐ Einführung 61 Bitfehlerrate und Paketverlustrate 010100010111100010011101110010110001101 Bitfehler Paket 1 Paket 2 Paket 3 Paket 4 Paketfehler Einfacher Zusammenhang zwischen BER und PER, für n Bit Nachrichten ohne Fehlerkorrektur Grundlagen der Rechnernetze ‐ Einführung 62 Additive und Bottleneck‐Kosten H1 5ms e2 10ms e1 1Mbps R1 1Gbps R2 10ms e3 1Gbps 20ms H2 e4 R3 1Mbps Beispiel: Delay d und Bandbreite b zwischen H1 und H2 Grundlagen der Rechnernetze ‐ Einführung 63 Multiplikative Kosten H1 p2=1/3 p1=2/3 e2 e1 R2 p3=1/2 p4=1/2 e3 R1 H2 e4 R3 Beispiel: Gesamtpaketerfolgsrate bei gegebenen Paketverlustraten pro Link Grundlagen der Rechnernetze ‐ Einführung 64 Performance Beispiel: Effektiver Durchsatz von Packet‐Switching Grundlagen der Rechnernetze ‐ Einführung 65 Delay‐Einsparungen Circuit‐Switching H1 R1 R2 Message‐Switching H2 H1 R1 R2 Packet‐Switching H2 Grundlagen der Rechnernetze ‐ Einführung H1 R1 R2 H2 66 Einfluss der Paketgröße H1 R1 R2 H2 Nachrichtenlänge n Bits Paket‐Payload k Bits Paket‐Header c Bits Bandbreite b bps Delay pro Hop d Sekunden Anzahl Hops h Effektiver Durchsatz x Grundlagen der Rechnernetze ‐ Einführung 67 Effektiver Durchsatz in Gbps Beispiel‐Plot Nachrichtengröße 1 GB Bandbreite 1 Gbps Header‐Größe 64 Byte Anzahl Hops Delay pro Hop 10 10 ms Paketgröße in KB Grundlagen der Rechnernetze ‐ Einführung 68 Performance Beispiel: Vorteil von statistischem Multiplexing Grundlagen der Rechnernetze ‐ Einführung 69 Statisches versus Statistisches Multiplexing p b bps … H1 Hn p Verhältnis x der mittleren Bandbreite pro Knoten von statistischem über statischem Multiplexing bei n Knoten, Zugriffswahrschein‐ lichkeit p und Bandbreite b Grundlagen der Rechnernetze ‐ Einführung 70 Angepasste über fester Bandbreitenzuweisung Beispiel‐Plot 50% Zugriffwahrscheinlichkeit 70% Zugriffwahrscheinlichkeit 90% Zugriffwahrscheinlichkeit Anzahl Knoten Grundlagen der Rechnernetze ‐ Einführung 71 Geschichte und Gegenwart Grundlagen der Rechnernetze ‐ Einführung 72 Geschichte und Gegenwart Entwicklung des Internet Grundlagen der Rechnernetze ‐ Einführung 73 Packet‐Switching der ersten Stunde Ende der 1950er Auf Höhe des kalten Krieges möchte das DoD(1) eine Lösung für ein Command und Kontrollzentrumsnetz, welches einen nuklearen Angriff überlebt. Gegen 1960 (1) Das DoD beschließt einen Vertrag mit RAND Corporation, eine Lösung zu finden. Mitarbeiter Paul Baran entwickelte ein stark verteiltes und fehlertolerantes System auf Basis von digitalem Packet‐Switching. Der zu dieser Zeit amerikanische Telefonmonopolist AT&T findet dieses System jedoch nicht realisierbar. Struktur des Telefonsystems Das DoD ist das Department of Defense der USA. Barans verteiltes Switching‐System Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 74 Das ARPANET 1967 Die ARPA(1) wechselt ihren Schwerpunkt unter der Leitung von Larry Roberts auf die Erforschung von Netzen. Einer der damals kontaktierten Experten, Wesley Clark, entwickelt ein Packet‐Switched Subnetz, in dem jeder Host an einen Router angebunden ist. Unabhängig davon wurde unter Leitung von Donald Davies am NPL(2) ein ähnliches Packet‐ Switching‐System entworfen und sogar als Campus‐Netz schon implementiert. Das NPL referenziert hierbei die ursprünglich abgelehnte Arbeit von Paul Baran. 1969 (1) Die ARPA beauftragt die Consulting‐Firma BBN in Cambridge ein solches Netz und die dazu notwendige Netzsoftware zu entwickeln. Des Weiteren werden Graduate‐Studenten der Universität Utah damit beauftragt die Host‐ Software zu entwickeln. Das Ergebnis ist das ARPANET welches schnell größer wurde und bald die ganze USA abdeckte. Die ARPA, Advanced Research Projects Agency, ist ein staatlicher, amerikanischer, militärischer Forschungsförderer für Universitäten und Industrie. (2) Das NPL ist das National Physical Laboratory in England. Struktur des Packet‐Switched Subets nach Clark Dez 1969 Jul 1970 Apr 1972 Mär 1971 Sep 1972 Der Zuwachs im ARPANET Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 75 Das ARPANET und NSFNET 1974 Die ersten ARPANET‐Protokolle erlaubten keine transparente End‐to‐End‐ Kommunikation über verschiedene Netze. Dies wurde mit wachsen des ARPANET immer wichtiger und führte schließlich zur Entwicklung von TCP/IP von Vinton Cerf und Robert Kahn. Die ARPA forcierte die Verwendung von TCP/IP durch Verträge mit BBN und der University of California Berkeley, die neuen Protokolle in Berkeley Unix zu integrieren. Hierbei wurde auch die Socket‐Schnittstelle entwickelt. Späte 1970 bis Ende 1980er (1) Die Teilnahme am ARPANET erforderte einen Vertrag mit dem DoD. Daher beschloss man im NSF(1) einen für alle US Universitäten freien Nachfolger des ARPANETs zu bauen. Der Anfang war ein USA umspannender Backbone, der sechs Super‐Computer‐Center verband. An den Backbone wurden etwa 20 regionale von der NSF geförderte Netze angebunden. Das Ergebnis war das NSFNET. Das ARPANET und das NSFNET wurden erstmals an der Universität Carnegie‐ Mellon verbunden. Das NSF‐Backbone 1988 Die NSF ist die US National Science Foundation. Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 76 Kommerzialisierung des Internet Während der 1980er Mit dem immer größer werden der Netze wurde das Auffinden von Hosts anhand von IP‐Adressen immer aufwendiger. Als Lösung wurde eine hierarchische Namensstruktur, das DNS (Domain Name System), entwickelt. Das NSFNET verband Nutzer an tausenden von US Universitäten, Forschungslaboren, Bibliotheken und Museen. Es war damit permanent überladen. Die NSF beschloss einen Vertrag mit MERIT, einem Konsortium in Michigan, das Netz weiter zu betreiben. Damit erfuhr der Backbone des NSFNET einen Upgrade (zunächst von 56kbps auf 448kbps (Fiber‐Channels von MCI) und dann noch mal auf 1.5Mbps Lines) Mit dem Zusammenschluss von ARPANET und NSFNET schlossen sich viele weitere regionale Netze und Netze in Kanada, Europa, und Pazifik an. 1990 Als ersten Schritt in Richtung Kommerzialisierung gibt die NSF das NSFNET an die nonprofit Corporation ANS (Advanced Networks and Services) von MERIT, MCI und IBM ab. Das ANS machte einen Upgrade des NSFNET Backbones auf das ANSNET, von 1.5Mbps auf 45Mbps Lines. Des Weiteren schloss das NSF Verträge mit den Netzbettreibern PacBell, Ameritech, MFS und Sprint ab, die einen fairen Wettbewerb der Netzanbieter sicher stellten. 1995 Das ANSNET wurde an American Online verkauft. Damit begann die Kommerzialisierung von IP‐Diensten. Grundlagen der Rechnernetze ‐ Einführung 77 WWW Während der 1990er In vielen anderen Ländern entstehen nationale Forschungsnetze, häufig ähnlich gestaltet wie das ARPANET und NSFNET. Beispiele sind in Europa EuropaNET und EBONE, die mit 2Mbps starteten, einen Upgrade auf 34Mbps erfuhren und dann irgendwann ebenfalls an die Industrie abgegeben wurden. Bis in die frühen 1990er waren Akademiker die Anwender des Internet. Die Hauptanwendungen waren Email, News, Remote‐Login und File‐ Transfer. Dies änderte sich schlagartig mit der Erfindung des WWW des CERN Physikers Tim Berners‐Lee und des Mosaik‐Browsers von Marc Andreesen am National Center for Supercomputer Applications in Urbana, Illinois. Es entstanden viele Internet‐Service‐Provider (ISP), die es einer immer größer werdenden Zahl von Endnutzern ermöglichten sich von Zuhause ins Internet einzuwählen. Grundlagen der Rechnernetze ‐ Einführung 78 Vereinfachte Übersicht des heutigen Internets Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 79 Geschichte und Gegenwart Telefonnetze, LANs und Standardisierung Grundlagen der Rechnernetze ‐ Einführung 80 Wide‐Area Datennetze 1970er Das verbindungsorientierte Wide‐Area Datennetz der ersten Stunde ist das in den 1970er entwickelte X.25 System. Das System wurde etwa ein Jahrzehnt verwendet. 1980er In den 1980ern wird X.25 im wesentlichen durch ein neues System, Frame‐Relay, ersetzt. Es diente (zum Teil sogar bis heute) hauptsächlich zum verbinden von LANs. 1990er In den 1990er wurde ATM (Asynchronous Transfer Mode) entwickelt. Das Ziel war der Zusammenschluss von Sprache, Daten, Kabelfernsehn, Telex, Telegraph in einem einzigen Datennetz (ATM = Internet versus Telcos). ATM hatte zwar nicht den ursprünglich erhofften Erfolg, wird aber häufig von Carriern für internen Datentransport von Internet‐Traffic verwendet. Grundlagen der Rechnernetze ‐ Einführung 81 Local‐Area‐Netze Frühe 1970er Norman Abrahamson und Kollegen der Universität Hawaii entwickeln das drahtlose (Short‐Range‐Radio) ALOHANET mit dem Computer der anliegenden Inseln mit dem Hauptcomputer auf Honolulu kommunizieren können. 1976 Auf der Basis der Arbeit von Norman Abrahamson entwickeln Bob Metcalfe und David Boggs bei Xerox PARC das erste LAN mit dem Namen Ethernet (ursprüngliche Datenrate: 2.94Mbps). 1978 Das Xerox Ethernet wurde 1978 von DEC, Intel und Xerox als 10Mbps Ethernet unter dem Namen DIX standardisiert. Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 82 Local‐Area‐Netze Ab 1978 Bob Metcalfe gründet die Firma 3Com und verkauft über 100 Millionen Ethernet‐Adapter. Ethernet wurde über die Jahre immer weiter entwickelt: 100Mbps und 1000Mbps, Switching, Cabling etc. Neben dem Ethernet‐Standard wurden auch ein Token‐Bus und ein Token‐Ring‐LAN‐Standard etabliert. Der Ethernet‐Standard hat sich jedoch weitestgehend hier gegenüber durchgesetzt. Mitte der 1990er Standardisierung einer Ethernet‐kompatiblen drahtlosen LAN‐Technik namens WiFi. Drahtloses Netz mit Access‐Point Ad‐hoc Netz Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 83 Standardisierungsgremien Telekommunikation ITU International Telecommunicaiton Union Internationale Standards ISO International Standards Organization IEEE Institute of Electrical and Electronics Engineering Internet‐Standards ISOC Internet Society IAB Internet Architecture Board IRTF Internet Research Task Force IETF Internet Engineering Task Force IEEE 802 Working‐Groups Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003 Grundlagen der Rechnernetze ‐ Einführung 84 Zusammenfassung und Literatur Grundlagen der Rechnernetze ‐ Einführung 85 Zusammenfassung • • • • • • • • • Rekursive Definition eines Netzes Skalierbarkeit durch hierarchische Aggregation Adressierung, Routing, Forwarding Statistisches Multiplexing Layering, Protokolle Separation‐of‐Concerns OSI‐Modell, Internet‐Hour‐Glass‐Modell Latenz und Bandbreite Standardisierungen Grundlagen der Rechnernetze ‐ Einführung 86 Literatur [PetersonDavie2007] Larry L. Peterson and Bruce S. Davie, „Computer Networks: A Systems Approach“, Edition 4, 2007. 1.2 Requirements 1.3 Network Architecture 1.4.1 Application Programming Interface (Sockets) 1.5 Performance 4.1.1 What is an Internetwork? 4.1.3 Global Addresses 4.1.4 Datagramm Forwarding in IP 4.3.1 Subnetting 4.3.2 Classless Routing (CIDR) [Tanenbaum2003] Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003. 1.5 Example Networks 1.6 Network Standardization Grundlagen der Rechnernetze ‐ Einführung 87