Weder Ethernet, noch die gängigen DFÜ-Techniken allein verfügen über die Möglichkeit, verschiedene Netze zu adressieren. Darüber hinaus arbeitet Ethernet z.B. verbindungslos: Der Absender erhält vom Empfänger keine Bestätigung, ob ein Paket angekommen ist. Spätestens wenn ein Ethernet-Netzwerk mit mehreren Netzen verbunden werden soll, muss also mit übergeordneten Protokollen – etwa mit TCP/IP – gearbeitet werden.
Bereits in den 60er Jahren vergab das amerikanische Militär den Auftrag, ein Protokoll zu schaffen, das unabhängig von der verwendeten Hard- und Software, einen standardisierten Informationsaustausch zwischen einer beliebigen Zahl verschiedener Netzwerke möglich machen sollte. Aus dieser Vorgabe entstand im Jahr 1974 das Protokoll TCP/IP.
Obwohl TCP und IP immer in einem Wort genannt werden, handelt es sich hier um zwei aufeinander aufsetzende Protokolle. Das Internet Protocol IP übernimmt die richtige Adressierung und Zustellung der Datenpakete, während das darauf aufsetzende Transport Control Protocol TCP für den Transport und die Sicherung der Daten zuständig ist.
TCP / IP im lokalen Netz
Der besseren Übersichtlichkeit halber wird zunächst der Datentransport und die logische Adressierung mit TCP/IP innerhalb eines lokalen Netzes näher beleuchtet.
IP - Internet Protocol
Für das Verständnis der Adressierung innerhalb eines lokalen Netzes reicht zunächst ein Blick auf die grundsätzliche Struktur des Internet Protocols IP und auf das Address Resolution Protocol ARP, welches die Zuordnung von IP-Adressen zu Ethernet-Adressen ermöglicht.
IP-Adressen - Unter IP hat jeder Netzteilnehmer eine einmalige IP-Adresse, die oft auch als „IP-Nummer“ bezeichnet wird. Diese Internet-Adresse ist ein 3 -Bit-Wert, der zur besseren Lesbarkeit immer in Form von vier durch Punkte getrennte Dezimalzahlen (8-Bit-Werten) angegeben wird (Dot-Notation).
Eine IP-Adresse muss im gesamten verbundenen Netzwerk einmalig sein!
IP-Datenpakete - Auch bei der Datenübertragung mit IP werden die Nutzdaten in einen Rahmen von Adressierungs-informationen gepackt. IP-Datenpakete enthalten neben den zu transportierenden Nutzdaten eine Fülle von Adress- und Zusatzinformationen, die im sogenannten „Paketkopf“ stehen.
Die Transportprotokolle TCP und uDP
Die Frage, auf welche Art und Weise Daten transportiert werden sollen, lösen Transportprotokolle, die jeweils verschiedenen Anforderungen gerecht werden.
TCP - Transport Control Protocol - Weil IP ein ungesichertes, verbindungsloses Protokoll ist, arbeitet es in der Regel mit dem aufgesetzten TCP zusammen, das die Sicherung und das Handling der Nutzdaten übernimmt. TCP stellt für die Dauer der Datenübertragung eine Verbindung zwischen zwei Netzteilnehmern her. Beim Verbindungsaufbau werden Bedingungen wie z.B. die Größe der Datenpakete festgelegt, die für die gesamte Verbindungsdauer gelten.
TCP arbeitet nach dem sogenannten Client-Server-Prinzip:
- Denjenigen Netzteilnehmer, der eine Verbindung aufbaut (der also die Initiative ergreift), bezeichnet man als Client. Der Client nimmt einen vom Server angebotenen Dienst in Anspruch, wobei je nach Dienst ein Server auch mehrere Clients gleichzeitig bedienen kann.
- Derjenige Netzteilnehmer, zu dem die Verbindung aufgebaut wird, wird als Server bezeichnet. Ein Server tut von sich aus nichts, sondern wartet auf einen Client, der eine Verbindung zu ihm aufbaut.
TCP sichert die übertragenen Nutzdaten mit einer Checksumme. Darüber hinaus leitet TCP die Nutzdaten auf dem Zielrechner an das richtige Anwendungsprogramm weiter, indem es unterschiedliche Anwendungsprogramme – auch Dienste genannt – über unterschiedliche Portnummern anspricht. So ist Telnet z.B. über Port 3, HTTP, der Dienst über den Webseiten aufgerufen werden, über Port 80 zu erreichen.
Damit die Antwort des Zielrechners wieder an der richtigen Stelle ankommt, hat auch die Client-Anwendung eine Portnummer. Bei PC-Anwendungen werden die Portnummern der Client-Anwendungen dynamisch und unabhängig von der Art der Anwendung vergeben. Auch TCP verpackt die Nutzdaten in einen Rahmen von Zusatzinformationen. Das so entstandene TCP-Paket wird in den Nutzdatenbereich eines IP-Pakets eingesetzt.
Aufbau eines TCP/IP-Datenpakets:
UDP – user Datagramm Protocol - UDP ist ein weiteres Transportprotokoll, das genau wie TCP auf IP aufsetzt. Im Gegensatz zu TCP arbeitet UDP verbindungslos. Jedes Datenpaket wird als Einzelsendung behandelt, und es gibt keine Rückmeldung darüber, ob ein Paket beim Empfänger angekommen ist.
Weil unter UDP aber keine Verbindungen auf- und abgebaut werden müssen und somit keine Timeout-Situationen entstehen können, kann UDP jedoch schneller als TCP sein: Wenn ein Paket verloren geht, wird die Datenübertragung hier eben ungehindert fortgesetzt, sofern nicht ein höheres Protokoll für Wiederholungen sorgt. Die Datensicherheit ist unter UDP also in jedem Fall durch das Anwendungsprogramm zu gewährleisten.
Als Faustregel kann man sagen:
- Für kontinuierliche Datenströme oder große Datenmengen sowie in Situationen, in denen ein hohes Maß an Datensicherheit gefordert ist, wird in aller Regel TCP eingesetzt.
- Bei häufig wechselnden Übertragungspartnern sowie einer Gewährleistung der Datensicherheit durch übergeordnete Protokolle macht der Einsatz von UDP Sinn.
Der Weg eines Zeichens durch das Ethernet
Wir haben nun mit TCP/IP (bzw. UDP/IP) das Handwerkszeug kennengelernt, mit dem Daten adressiert und transportiert werden. Zusammenfassend wird im Folgenden noch einmal der Weg eines Zeichens in einem lokalen Netz aufgezeigt. TCP/IP ist ein rein logisches Protokoll und benötigt immer eine physikalische Grundlage. Wie bereits anfänglich erwähnt, genießt Ethernet heute die größte Verbreitung bei den physikalischen Netzwerktopologien. So findet man auch in den meisten TCP/IP-Netzwerken Ethernet als physikalische Grundlage. TCP/IP und Ethernet werden zusammengeführt, indem jedes TCP/IP-Paket in den Nutzdatenbereich eines Ethernet-Paketes eingebettet wird.
Aufbau eines TCP/IP-Ethernet-Datenpakets:
Auf den ersten Blick erscheint dieses vielschichtige Übertragungsverfahren ungeheuer umständlich. Aber erst die strikte Trennung von logischem Protokoll (TCP/IP) und physikalischem Protokoll (Ethernet) macht es möglich, netzübergreifend und hardwareunabhängig Daten auszutauschen.
TCP / IP bei netzübergreifender Verbindung
Das Internet-Protokoll macht es möglich, eine unbestimmte Anzahl von Einzelnetzen zu einem Gesamtnetzwerk zusammenzufügen. Es ermöglicht also den Datenaustausch zwischen zwei beliebigen Netzteilnehmern, die jeweils in beliebigen Einzelnetzen positioniert sind. Die physikalische Ausführung der Netze bzw. Übertragungswege (Ethernet, Token Ring, ISDN....) spielt hierbei keine Rolle. Die verschiedenen Einzelnetze werden über Gateways/Router miteinander verbunden und fügen sich so zum Internet bzw. Intranet zusammen. Die Adressierung erfolgt nach wie vor über die IP-Adresse, die wir uns nun einmal genauer ansehen werden.
Netzklassen
Die IP-Adresse unterteilt sich in Net-ID und Host-ID, wobei die Net-ID zur Adressierung des Netzes und die Host-ID zur Adressierung des Netzteilnehmers innerhalb eines Netzes dient. An der Net-ID erkennt man, ob der Empfänger, zu dem die Verbindung aufgebaut werden soll, im gleichen Netzwerk wie der Sender zu finden ist. Stimmt dieser Teil der IP-Adresse bei Sender und Empfänger überein, befinden sich beide im selben Netzwerk; stimmt er nicht überein, ist der Empfänger in einem anderen Netzwerk zu finden. Je nachdem, wie groß der Anteil der Net-ID an einer IP-Adresse ist, sind wenige große Netze mit jeweils vielen Teilnehmern und viele kleine Netze mit jeweils wenigen Teilnehmern denkbar. In den Anfängen des Internets hat man den IP-Adressraum anhand der Größe der möglichen Netzwerke in Klassen unterschieden.
Class A - Das erste Byte der IP-Adresse dient der Adressierung des Netzes, die letzten drei Byte adressieren den Netzteilnehmer.
Class B - Die ersten zwei Byte der IP-Adresse dienen der Adressierung des Netzes, die letzten zwei Byte adressieren den Netzteilnehmer.
Class C - Die ersten drei Byte der IP-Adresse dienen der Adressierung des Netzes, das letzte Byte adressiert den Netzteilnehmer.
Subnet-Mask
Es ist allerdings möglich, ein Netzwerk – egal welcher Netzwerkklasse – in weitere Unternetzwerke zu unterteilen. Zur Adressierung solcher Subnets reicht die von den einzelnen Netzwerkklassen vorgegebene Net-ID allerdings nicht aus; man muss einen Teil der Host-ID zur Adressierung der Unternetze abzweigen. Im Klartext bedeutet dies, dass die Net-ID sich vergrößert und die Host-ID entsprechend kleiner wird.
Welcher Teil der IP-Adresse als Net-ID und welcher als Host-ID ausgewertet wird, gibt die Subnet-Mask vor. Die Subnet-Mask ist genau wie die IP-Adresse ein 3 -Bit-Wert, der in Dot-Notation dargestellt wird. Betrachtet man die Subnet-Mask in binärer Schreibweise, ist der Anteil der Net-ID mit Einsen, der Anteil der Host-ID mit Nullen aufgefüllt.
Gateways und Router
Gateways bzw. Router sind im Prinzip nichts anderes als Computer mit zwei Netzwerkkarten. Ethernet- Datenpakete, die auf Karte A empfangen werden, werden vom Ethernet-Treiber entpackt und das enthaltene IP-Paket wird an den IP-Treiber weitergegeben. Dieser prüft, ob die Ziel-IP-Adresse zum an Karte B angeschlossenen Subnet gehört und das Paket direkt zugestellt werden kann, oder ob das IP-Paket an ein weiteres Gateway übergeben wird.
So kann ein Datenpaket auf seinem Weg von einem Netzteilnehmer zum anderen mehrere Gateways/ Router passieren. Während auf IP-Ebene auf der gesamten Strecke die IP-Adresse des Empfängers eingetragen ist, wird auf Ethernet-Ebene immer nur das nächste Gateway adressiert. Erst auf dem Teilstück vom letzten Gateway/Router zum Empfänger wird in das Ethernet-Paket die Ethernet-Adresse des Empfängers eingesetzt. Neben Routern, die ein Ethernet-Subnet mit einem anderen Ethernet-Subnet verbinden, gibt es auch Router, die das physikalische Medium wechseln – z.B. von Ethernet auf Token Ring oder ISDN. Während auch hier die IP-Adressierung über die gesamte Strecke gleich bleibt, ist die physikalische Adressierung von einem Router zum anderen den auf den Teilstrecken geforderten physikalischen Gegebenheiten angepasst.
Bei einer TCP-Verbindung wird der korrekte Empfang eines Datenpaketes mit dem Rücksenden einer Acknowledgement-Nummer quittiert. Das Quittungspaket durchläuft den gesamten Übertragungsweg und alle damit verbundenen Prozeduren in Gegenrichtung. All dies spielt sich innerhalb weniger Millisekunden ab.
Quelle: Produktinformation der Firma Telenot, Auszüge aus "TCP/IP-Ethernet bis Web-IO" von Frank Thiel (http://www.wut.de)