Wie funktioniert TCP/IP
TCP/IP: So geht´s
Jeder hat schon davon gehört, aber kaum einer weiß genau, wie es funktioniert.
Dabei ist TCP/IP die Grundlage des Internets - und auch in privaten Netzen kommt es mehr und mehr zum Einsatz.
Um im Vorfeld keine Verwirrung aufkommen zu lassen, zeige ich hier das TCP/IP Modell. Es gibt zusätzlich noch das OSI Referenzmedell das mit 7 Schichten arbeitet.
Hier dazu eine Skizze
TCP/IP hält sich nicht an das OSI-Schichtenmodell, es hat ein eigenes Modell, das sich nicht eins zu eins übertragen lässt.
TCP/IP - Die Abkürzung steht für Transmission Control Protocol / Internet Protocol - ist dafür verantwortlich, das die Daten vollständig über das Internet verschickt werden und beim richtigen Empfänger landen. Und obwohl TCP/IP nicht besser ist als andere Netzwerk-Protokolle, setzt es sich allmählich auch in privaten Netzen durch, weil es im Internet Standard ist.
In den siebziger Jahren gab es in den USA ein paar Netz, die unabhängig voneinander funktionierten. Jedes stammte von einem anderen Hersteller, und natürlich war keines von ihnen zueinander kompatibel - man konnte sie also nicht direkt miteinander verbinden, um ein großes Inter-Netz zu bilden. Aus diesem Dilemma heraus wurde TCP/IP entwickelt - ein Bündel von Kommunikationsregeln, die dafür sorgen, das sich Daten zuverlässig und Hardware-unabhängig von einem Rechner zum anderen transportieren lassen. TCP/IP ist damit der Grundstein für das Internet, so wie wir es kennen. Obwohl die Bezeichnung "TCP/IP" eine Kombination aus den Namen zweier Protokolle ist, handelt es sich um eine Familie von vielen Protokollen, von denen TCP und IP die wichtigsten sind.
Die Schichten
Im Mittelpunkt von TCP/IP steht das Schichtenmodell (s.o.): Die Datenübertragung über Netzwerke hinweg wird nicht als großes Gesamtprojekt gesehen, sondern in mehrere, hierarchisch strukturierte Aufgaben aufgeteilt.
1. Das Rad nur einmal erfinden
Wäre die Datenübertragung nicht in solchen Schichten organisiert, müßte beispielsweise jeder Entwickler einer Mail-Software bei Null anfangen. TCP/IP jedoch sorgt für eine zuverlässige Kommuniktion mit dem Zielrechner. Das Mailprogramm muss nichts von den elektrischen Strömen wissen, über die die Nachricht über das Netz- oder Telefonkabel von dem PC ins Internet und weiter zum Zielrechner wandert. Es muss nur eine in TCP/IP definierte Schnittstelle adressieren.
Und so ist das Schichtenmodell (s.o.) aufgebaut: Ganz oben sitzt die Anwendung, zum Beispiel das Mailprogramm oder der Browser. Diese Anwendungen kommunizieren nur mit der direkt darunter liegenden Schicht, nämlich TCP. TCP reciht die Daten an die nächsttiefere Schicht - IP- weiter, die wiederum die Schicht darunter anspricht: Die Netzwerkkarte bzw deren Treiber.
2. Ganz unten: die Hardware
Die unterste Schicht dieses Modells bezeichnet man als Data-Link-Schicht. Gemeint ist damit die Netz-Hardware wie Ethernet oder Modem. So sorgt zum Beispiel bei Ethernet die Netzwerkkarte dafür, dass die Daten korrekt ins Netzkabel eingespeist werden. Umgekehrt leitet die Karte beziehungsweise deren Treiber ankommende Daten an die nächsthöhere Schicht weiter, nämlich an IP. Damit das alles klappt, stellt der Netzwerktreiber jedem Datenblock vor dem Versenden ein paar Verwaltungsdaten (Header) voran. Dieser Header enthält mehrere Infos über das Datenpaket, unter anderem über seine Länge.
3. IP sendet Datenpakete von A nach B
Nun wird die Netzwerkschicht aktiv - hier ist IP zuständig. Sein Job ist es, Datenblöcke von einem Punkt zum nächsten zu senden. Er sucht die richtige Route und schickt die Daten los - das war´s. Um Hardware-Details kümmert sich IP nicht, das ist Aufgabe der Data-Link-Schicht. Damit die Daten beim richtigen Rechner landen, hat jeder Rechner, der mit dem Internet verbunden ist, eine IP-Adresse. Zum Beispiel ist 216.239.39.104 die Adresse des Webserversvon Google.de. Zur Probe kann man im Webbroser alternativ statt http://www.google.de auch die IP-Adresse der Seite, also 216.239.39.104 angeben. Probiert es einfach mal aus.
Jeder Datenblock, den die IP-Schicht zum Versenden an die Data-Link-Schicht weiterleitet, bekommt die IP-Adresse des Senders und des Empfängers in einem weiteren Header vorangestellt. (die Adresse des Senders braucht der Empfänger schließlich wenn er antworten will). Beim Empfangen von Daten gibt das Internet Protokoll (IP) die Daten an die nächst höhere Schicht weiter (TCP).
4. TCP schafft die Verbindung
In der Transportschicht ist es nun die Aufgabe von TCP, für eine zuverlässige Verbindung zu sorgen - die Fachleute sprechen von einem verbindungsorientoierten Protokoll. Es soll sicherstellen, dass die Datenblöcke (Segmente) unversehrt und in der richtigen Reihenfolge beim Empfänger ankommen. Dazu stattet TCP die Datenblöcke mit einem weiteren Header aus, der eine Prüfsumme und eine Nummer für die Reihenfolge der Blöcke enthält.
Danach gibt es die Datenblöcke an die IP-Schicht weiter und die wiederum an die darunterliegende Schicht. Beim Empfang der Daten bestätigt TCP in der Transportschicht beim Empfänger den korrekten Erhalt der Daten. Sind unterwegs Daten verloren gegegangen oder beschädigt worden, geht eine Nachricht in Richtung Absender und die Daten werden erneut verschickt.
Hat alles reibungslos geklappt, entfernt das TCP den Header und gibt die Daten an die Internet-Anwendung weiter. Das geschieht über einen sogenannten Port, eine Nummer, die den Anwendungstyp, etwa ein Mailprogramm, eindeutig kennzeichnet. Denn auf einem Rechner laufen für gewöhnlich mehrere Internet-Anwendungen gleichzeitig - zum Beispiel neben dem Mail-Programm noch ein Browser und vielleicht eine File-Sharing-Software.
5. Ganz oben steht die Anwendung
Wenn ich bisher von Anwendungen gesprochen habe, meinte ich streng genommen die Anwendungsprotokolle. Diese sitzen in der obersten Schicht des TCP/IP Modells. Das bekannteste Protokoll ist http (Hypertext Transfer Protocol), über das zum Beispiel die angeforderten Webseiten zum Internet-Browser transportiert werden. TCP ist es nun egal, ob man den Internet Explorer oder Mozilla zum Surfen benutzt - kommuniziert wird dabei immer über http. Andere Anwendungsprotokolle sind beispielsweise SMTP (Simple Mail Transfer Protocol) zum Versenden von Mails und FTP (File Transfer Protocol), das sich für den Transfer großer Daeien gut eignet. Auch diese Protokolle ünterstützt TCP/IP natürlich.
Weitere Protokolle
TCP/IP ist eine ganze Sammlung von Protokollen. Auch mit den in Punkt 5 erwähnten Anwendungsprotokollen ist die Liste bei weitem nicht komplett.
6. Für die "groben" Arbeiten ist UDP zuständig
UDP (User Datagram Protocol) ist eine funktionsreduzierte Alterantive zu TCP. UDP sitzt wie TCP in der Schicht zwichen IP und den Anwendungsprotokollen - es wird aber als "verbindungslos" bezeichnet. Es kontrolliert die Datenübertragung nur minimal. Weder stellt es sicher, dass die Datenblöcke tatsächlich beim Empfänger ankommen, noch kümmert es sich darum, ob sie in der rictigen Reihenfolge eintreffen.
Wozu ist dann UDP gut ?
Es gibt Gelegenheiten, in denen TCP schlichtweg zu viel Aufwand bedeuten würde. Das gilt zum Beispiel bei der Echtzeitübertragung von Video- oder Audiodaten. Hier kann man eher mit ein paar verfälschten, oder fehlenden Daten leben, als zu warten, bis sie nocheinmal geschickt werden.
7. DNS macht das Leben leichter
In Punkt 3 sagte ich schon, das man statt http://www.google.de auch 216.239.39.104 als Adresse im Browser eintragen kann - beides führt einen auf die Seite der Suchmaschine von Google. Was kann man sich wohl leichter merken?? Gewöhnlich ja wohl den einprägsamen Namen. Deshalb gibt es bei TCP/IP das Domain Name System (DNS), das Domain Namen wie "www.google.de" in IP-Adressen für den Rechner konvertiert. DNS ist ein weltweit verteiltes Verzeichnis. Wenn man im Browser eine Adresse eingibt, versucht TCP/IP sie aufzulösen. Dazu forscht es zuerst in der lokalen HOST-Datei - bei Windows XP beispielsweise im Verzeichnis /Windows/System32/Drivers/Etc. Findet es keinen Eintrag, wendet es sich an den Name-Server, dessen Adresse im Konfigurationsdialog des PC´s steht. Findet der ebenfalls keinen Eintrag, fragt er wiederum einen übergeordeten Name-Server und so weiter.
Ausblicke
TCP/IP gehen langsam aber sicher die IP-Adressen aus - spätestens 2005 soll es eng werden. Insgesamt können mit der bisherigen Notation aus 4 mal einem Byte (1 Byte = 8 Bit // ergibt 32 Bit Adressen) "nur" rund 4 Milliarden Adressen gebildet werden. Das wird dem sich anbahnenden Internet Boom nicht mehr gerecht werden. Das heißt: Die Adressen werden knapp.
8. The next Generation - IPv6
Das zur Zeit verwendete Internet-Protokoll heißt IPv4. Seit Anfang der neunziger Jahre wird bereits am Nochfolger IPv6 (oder auch IPnG für IP next Generation) gearbeitet, der den knappen Adressraum von IPv4 stark erweitert. IPv4 nutzt vier Byte (32Bit) für die Adresse. IPv6 dagegen bietet 16 Byte - und damit über 3 x 1038 Adressen. Die Version 5 gab es übrigens nur in einem Experimentierzustand. Experten gehen davon aus, das IPv4 und IPv6 jahrzehntelang nebeneinander existieren werden. Man muß sich also keine Sorgen machen, übermorgen nicht mehr in s Internet zu kommen.
Eine Einführung zum Thema TCP/IP findet man unter: http://www.itprc.com/tcpipfaq/default.htm
Die TCP/IP Protokolle sind in RFC´s definiert (Request of Comments). Man findet diese Textdateien unter ftp.rfc-editor.org/in-notes
Die Suche in den paar Tausend Dateien läßt sich erleichtern. Es gibt eine Suchmaschine unter http://www.rfc-editor.org/rfcsearch.html und unter http://www.faqs.org/rfcs
Eine aktuelle Liste mit Port-Nummern gibt es unter http://www.iana.org/assignments/port-numbers
Bücher
Anatol Badach und Erwin Hoffman, "Technik der IP Netze" , Hanser Verlag, http://www.hanser.de, 677 Seiten, 44,90 Euro
Das Handbuch vermittelt Grundlagen und Praxiswissen