1. Anwendungsprogramme im Netzwerk 1.1 Local Area Network (LAN) Rechner, die mittels Kabel oder Funk verbunden sind und nach außen als Einheit erscheinen, bilden ein LAN. Peer to Peer: Mittels Peer to Peer –Netz sind viele kleine Heimnetzwerke miteinander verbunden. Durch Aktivierung der „Internetverbindungsfreigabe“ können sogar mehrere Rechner über eine Telefonverbindung im Internet surfen. 1.2 Surfen mit Hilfe eines Servers Das Prinzip des Datenaustauschs zwischen 2 Rechnern in Form von Kommandos und Dateien. Das Kommando http:// realschule-landau.de / fordert vom Rechner realschulelandau.de die Datei index.html an. Daraufhin sendet realschule-landau.de diese Datei an den anfordernden Rechner. (Auf dem Rechner „realschule- landau.de“ ist ein Apache Web-Server installiert.) Diese Datei wird im Cache deines Rechners gespeichert und bleibt daher auch ohne Online-Verbindung im Browser aufrufbar. 1.3 Rechnername, Client, Server Das Kommando der Dateianforderung wird von anderen Rechnern im LAN nicht befolgt, weil auf ihnen kein Programm (HTTP-Server) läuft, das auf eine Datei-Anforderung von anderen Rechnern „lauscht“. Der Browser heißt „HTTP-Client“ In einem Netzwerk können viele verschiedene Computer mit verschiedenen Betriebssystemen miteinander verbunden sein. Ein Computer, der das Netzwerk steuert und Programme und Daten (auch Websites) beherbergt, die die anderen Computer im Netz brauchen wird „Host“ genannt. (Host = Gastgeber) Programme, die Daten im Netzwerk anfordern, nennt man „Client“. (client = Kunde) Programme, die auf Anforderungen warten, nennt man „Server“. Häufig wird auch der Computer, auf dem das Serverprogramm läuft, als Server bezeichnet und der Rechner, der Daten anfordert, als Client 2. Netzwerkdienste 2.1 Dienste und Protokolle Außer Web-Servern gibt es eine Reihe weiterer Programme auf Servern, die den Clients andere „Dienste“ zur Verfügung stellen. Dienste sind demnach ServerComputerprogramme, die ununterbrochen auf Anfragen aus dem Netzwerk „lauschen“ Es gibt eine Menge wichtiger Dienste im Netzwerk, z. B.: HTTP sendet HTML-Dateien, die vom Web-Browser des Clients direkt auf dem Bildschirm angezeigt werden. FTP stellt die Verzeichnisstruktur des Server-Hosts dar und ermöglicht das Kopieren von Dateien von Server-Host zu Client-Host und umgekehrt. Mail ermöglicht der auf dem Client-Host angemeldeten Personen, das Versenden und Empfangen vom Textmitteilungen und Dateien. Telnet ermöglicht es einer Person, die auf dem Server-Host bekannt ist, Programme und Befehle auf einen Server-Host auszuführen. Damit Server und Client sich verstehen können, gibt es präzise Spezifikationen, welche Funktionalität die Server- und Client-Computerprogramme erfüllen müssen und wie der Datenaustausch zwischen den Computern abläuft. Man nennt diese Spezifikationen „Protokoll“. Zum Beispiel sieht das FTP-Protokoll vor, dass es ein Kommando GET (Holen einer Datei vom Server) und ein Kommando PUT (Übertragen einer Datei zum Server) geben muss. Im FTP-Protokoll ist auch ein Kommando DIR vorgesehen, das es beispielsweise im HTTP-Protokoll nicht gibt. Protokolle sind immer die Basis der geordneten Datenübertragung von Host zu Host. 2.2 E-Mail Damit der Mail-Dienst funktioniert, werden Dienste benötigt. Das Verschicken der Nachricht besorgt ein sogenannter SMTP-Server. Das Aufbewahren der Nachrichten in besonderen Dateien und das Versenden der Nachrichten an den Mail-Client wird vom sogenannten POP-Server (oder IMAP-Server) abgewickelt. Da Mail personenbezogen ist, müssen der SMTP-Server und der POP-Server die Personen kennen, d. h., die Personen müssen auf den Servern als Benutzer eingetragen sein 3. Adressierung 3.1 Der Begriff „Port“ Ein Dienst erkennt an der Portnummer, ob die aus dem Netzwerk kommenden Daten für ihn „bestimmt“ sind. Mit anderen Worten, Dienste werden von Client-Hosts über sogenannte Portnummern“ angesprochen. Das Betriebssystem des Servers verwaltet eine Datei, in der die Portnummern mit den dazugehörigen Diensten und Protokollen aufgeführt sind. Bei Rechnern mit UnixBetriebssystem heißt diese Datei „/etc/services“. 3.2 Datenpakete – die Struktur von TCP Im Netzwerk sollen alle Clients möglichst gleichzeitig bedient werden. Daher werden die Daten in kurzen Paketen und nicht an einem Stück zwischen den Hosts transportiert. Man spricht von Datenpaketen. Jedes Datenpaket enthält neben den eigentlichen Daten zusätzliche Informationen. Welche Informationen an welcher Stelle im Datenpaket steht, ist von internationalen Standardisierungsgremien in der Spezifikation des jeweiligen Protokolls vorgegeben. Jedes Datenpaket hat also eine definierte Struktur. TCP (Transmission Control Protocol) Das TCP hat die Aufgabe alle empfangene Datenpakete dem Sender zu bestätigen. Gleichzeitig muss jedes gesendete Datenpaket solange wiederholt gesendet werden, bis der Empfang bestätigt wurde. Die Programme und Protokolle oberhalb der Transportschicht können sich also fest auf die Übertragungsgarantie von TCP verlassen. Der Verwaltungsoverhead, der dabei entsteht bremst die Performance der Datenübertragung allerdings in erheblichen Maße aus. Jedes Datenpaket, das TCP verschickt, wird ein Header vorrangestellt, der die folgenden Daten enthält: - Sender-Port - Empfänger-Port - Paket-Reihenfolge (Nummer) - Prüfsummen - Quittierungsnummer 3.3 Die IP-Adresse Die Netzwerkkartenadresse ist die sogenannte MAC-Adresse, diese wurde bereits beim Thema Netzwerkkomponenten erwähnt. Andere Rechner im Raum sehen wir in der Netzwerkumgebung, wenn die Dateifreigabe in der Netzwerkumgebung aktiviert wurde. In einem Netzwerk können Hosts durch ihren eindeutigen Namen oder durch eine Nummerkombination (IP-Adresse) angesprochen werden. IP heißt „Internet Protocol“ und sorgt dafür, dass Datenpakete unverfälscht vom gewünschten Host im Netzwerk empfangen werden. IP-Adressen bestehen im Ipv4-System aus einer 32-Bit Folge von Daten. Sie werden traditionell in vier Bytes zusammengefasst, die wiederum in Dezimalschreibweise mit Trennpunkten notiert werden. (194.95.213.193) Standardmäßig stellt der linke Teil der 32-Bit-Adresse das sog. Netzpräfix und der rechte Teil die Hostadresse dar. Rechner mit dem gleichen Netzpräfix bilden ein Rechnernetz. Solange keine weiteren Maßnahmen (wie z. B. Router) eingesetzt werden, können Daten nur innerhalb dieses Rechnernetzes ausgetauscht werden. Die IP-Adressen werden vom INTERNIC (Internet Network Information Center, http://rs.internic.net) weltweit verwaltet. Firmen können über INTERNIC auch ganze Gruppen von IP-Adressen mieten. Man unterscheidet im Wesentlichen zwischen drei IPAdressklassen: Class Netzanteil Host-Anteil Subnet-Mask A 8Bit 24 Bit 255.0.0.0 B 16 Bit 16 Bit 255.255.0.0 C 24 Bit 8 Bit 255.255.255.0 3.4 Subnetzbildung Durch das IP Adressierungsschema ist es möglich, innerhalb eines Netzwerkes Hosts in Gruppen zusammenzufassen. Man nennt solche Gruppen „Subnetze“. Zu einem Subnetz gehörende Hosts können untereinander Daten austauschen, aber nicht ohne zusätzliche Maßnahmen Daten von anderen Subnetzen empfangen (in der Schule: Klassenraumnetz, Verwaltungsnetz). Dazu wird eine Subnetzmaske eingesetzt. 3.5 Routing Wo immer 2 oder mehr logische Netze miteinander kommunizieren kommt IP-Routing ins Spiel. Ein Router ist ein Gerät mit mindestens zwei Netzwerkkarten. Um entscheiden zu können an welche Netzwerkkarte der eingehende Datenverkehr weitergeleitet werden soll verwaltet jeder Router eine Routingtabelle, in der verschiedene Routen bereitgehalten werden. Anhand der Zieladresse in den IP-Headern der Datenpakete werden diese an das entsprechende Interface geleitet. Mit einer zweiten Netzwerkkarte, einem Modem oder einer ISDN-Karte kann jeder PC als Router eingesetzt werden, man spricht hier meistens von Software-Routern, da die Hardware nicht speziell für die Routertätigkeit entwickelt wurde. Hardware-Router sind in ihren kleinsten Ausführungen kaum größer als ihre zugehörigen Handbücher und sind nur für ein eng begrenztes Aufgabengebiet geeignet, z. B. als ISDN-Router. 3.6 Network Adress Translation Ein NAT-Proxy ist mit mindestens zwei IP-Adressen konfiguriert. Eine, die zum internen Netz gehört und einer zweiten, die im Internet gültig ist. Alle Clients schicken ihre Internetanfragen an den Proxy-Server, der sie entsprechend verändert und ins Internet weiterleitet. Dabei ersetzt er im ankommenden IP-Paket des Clients zwei Informationen. Die Quell-IPAdresse des Clients wird durch seine öffentliche Adresse ersetzt und der Quell-Port des Clients wird mit einem nicht benutzten Port des Proxys ersetzt. Er führt dabei eine Tabelle, in der gespeichert wird, welche Kombination aus Client-IP und Client-Port auf welchen Proxy-Port gemappt wird. Der Ziel-Rechner im Internet sieht nun als Absender die IP-Adresse des Proxys und wird seine Antwort an die vom Proxy eingetragenen Port-Nummer schicken. Anhand dieser Port-Nummer in der Antwort kann der Proxy-Server in seiner internen Tabelle nachprüfen, an welche IP-Adresse und unter welcher Port-Nummer die Antwort zurück ins lokale Netz geschickt werden soll. Auf diese Art wird es möglich, mehrere Adressen (intern) auf eine Adresse (extern) abzubilden, was auch zur Anonymisierung des Internetverkehrs eingesetzt werden kann. Private Netze (diese IP sollen nicht geroutet werden) 10.0.0.0 - 10.255.255.254 172.16.0.0 - 172.31.255.254 192.168.0.0 - 192.168.255.254 Loopback (Anfragen an diese IP werden nicht ans Netzwerkkabel geschickt) 127.0.0.1 127.255.255.255 4. Die physikalische Ebene 4.1 Ethernet Die Nachfrage nach Standards für lokale Netzwerke (LAN - Local Area Network) ließ die Organisation IEEE (Institute of Electrical and Electronics Engineers) eine Arbeitsgruppe einrichten. Seit dem steht der Name Ethernet als Synonym für alle unter der Arbeitsgruppe vorgeschlagenen und standardisierten Spezifikationen. Angefangen hat es in den Achtzigerjahren beim 10-MBit-Ethernet über Koaxialkabel, dann Fast Ethernet mit 100 MBit/s und Gigabit Ethernet mit 1000 MBit/s und 10 GBit/s. Alle EthernetVarianten haben eines gemeinsam. Sie basieren auf denselben Prinzipien. 4.2 MAC Adresse Ethernet ist ein paketvermittelndes Netzwerk. Die Daten werden in mehrere kleine Pakete aufgeteilt. Diese Pakete werden Frames genannt. In einem Frame werden neben den Daten auch die Zieladresse, die Quelladresse und Steuerinformationen verpackt. Als Adressen dienen die MAC-Adressen. Das ist die einmalig hardwareseitig vom Hersteller konfigurierte Adresse in der Netzwerkkarte. Diese Netzwerkkarte ist der Beginn der physikalischen Ebene. Die MACAdresse (Media Access Control) ist eine 48 Bit (6 Byte) lange Zahl. Die Bits 2 bis 24 bestimmen den Hersteller, die restlichen Bits identifizieren die einzelnen Karten. Beispiele von Netzwerkkarten-Herstellern: 00 AA 00 Intel 08 00 02 3Com 08 00 09 HP 08 00 5A IBM 00 00 E5 Accton 4.3 ARP-Anfrage ARP ist eine Abkürzung für Address Resolution Protocol. (Adressenanpassung) Dieses Protokoll ist eine Komponente des Ethernetstandards. Um ein IP-Datenpaket durch das Kabel an die Netzwerkkarte des Ziel-Hosts schicken zu können, muss der Sende-Host die MAC-Adresse des Ziel-Hosts kennen. Er sendet daher ein spezielles Signal (=Datenpaket) an alle Hosts des Netzwerkes. Dem Signal gibt er seine eigene MACAdresse als Senderadresse und die IP-Adresse des Ziel-Hosts mit. Der Ziel-Host mit dieser IP antwortet, indem er ein Signal, das nun zusätzlich seine eigene MAC-Adresse enthält, an den Sender-Host schickt. Der Sender-Host speichert diese Information eine Weile (ca. 20min) in einer internen Tabelle. Außerdem kann er mit der Information der MAC-Adresse des Ziel-Host das IP Datenpaket um diese Information ergänzen und in das Kabel schicken. Alle PC-Systeme mit TCP/IP (Windows, OS/2 und Unix) stellen das Kommando arp zur Verfügung, um die Adreßabbildung zu beeinflussen oder einzusehen. So gibt der Befehl arp -a die komplette ARP-Tabelle aus. Für jedes Netzwerk-Interface (es können schließlich in einem Rechner mehrere Netzwerkkarten konfiguriert sein) zeigt das Kommando die IP-Adressen, zugehörige MAC-Adressen an. 4.4 Mehrfachzugriff unter CSMA/SD mit Datenkollision Das Fast Ethernet ist ein sogenanntes Kollisionsnetzwerk. Es gibt keine Regeln, die dafür sorgen, dass der Reihe nach oder in irgendeiner anderen Ordnung die Hosts im Netzwerk senden. Es gibt auch Netzwerke (z. B. Token Ring) in denen durch bestimmte Mechanismen Kollisionen vermieden werden. Im Fast Ethernet dürfen prinzipiell alle Hosts gleichzeitig senden. Die Konsequenz sind „Verzerrungen“ der Signale (=elektromagnetische Wellen), wenn sie aufeinanderprallen. Um solche Kollisionen zu vermindern „lauschen“ alle Hosts auf das Netzkabel und senden das Datenpaket erst dann, wenn kein Signal aus dem Netz empfangen werden kann – wenn also die „Leitung frei ist“‘. Es kann aber sein, dass ein anderer Host gleichzeitig oder kurz vorher festgestellt hat, dass er senden kann, und schickt ebenso ein Datenpaket ins Netzkabel. Es kommt nun zu einer Kollision. Derjenige Host, der sich noch im Sende-Status befindet, stellt die Kollision fest und schickt ein besonderes Warnsignal ins Netz. Dieses Signal wird von allen sendenden Host erkannt, die daraufhin den Sendevorgang abbrechen. Nun werden alle Hosts ein paar Sekunden warten und der Vorgang beginnt danach von vorne. Um die Wahrscheinlichkeit einer neuen Kollision zu verhindern, generiert jeder Host per Zufallsgenerator seine Wartezeit.