Wirtschaftsinformatik (Bachelor-Studiengang): Rechnernetze/Onlinedienste (2. Semester)

Sie sind hier: StartseiteWirtschaftsinformatikRechnernetze/Onlinedienste: TCP/IP (Teil 1)

BM / CM, Kurs vom 01.10.2002 - 31.03.2003

Rechnernetze/Onlinedienste: TCP/IP (Teil 1): Geschichte des Internets (Ziele des Internets, Protokollübersicht, OSI-Einbindung), Internet Protocol (IP) (IP-Adressen, Adressarten, Subnetting (Bilden von lokalen Teilnetzen), Internet Protocol (IP) Version 4, Aufbau des IP-Pakets, Nummer des übergeordneten Protocols, >Time to live (TTL), Fragmentieren), Transmission Control Protocol (TCP) (Ports, Aufbau des TCP-Pakets, Ports und Verbindungen, Sequenznummer (SN), Acknowledge-Nummer), User Datagram Protocol (UDP) (Aufbau des UDP-Pakets, Vergleich von IP, TCP und UDP).

  1. Geschichte des Internets
  2. Internet Protocol (IP)
  3. Transmission Control Protocol (TCP)
  4. User Datagram Protocol (UDP)

Geschichte des Internets

Ziele des Internets

Diese Ziele stehen im Gegensatz zu Netzen von Firmen. Ursprünglich für militärische Anwendungen gedacht wurde das Internet während der längsten Zeit seiner Geschichte nur in der Wissenschaft benutzt. Die Kommerzialisierung erfolgte erst ab Mitte der 90er Jahre.

Struktur des Internets:

Struktur des Internets

Bildbeschreibung "Struktur des Internets": Weltweit existieren viele verschiedene, miteinander verknüpfte Netze, auf die beliebig zugeriffen werden kann.

Protokollübersicht

Protokollübersicht

Bildbeschreibung "Protokollübersicht": Auf Transportebene wird unterteilt in Transmission Control Protocol und User Datagram Protocol.

Anwendungsprotokolle:

Internet-Protokolle
OSI-Schicht Internet Protokoll Suite DoD-Schicht
7 Anwendung File Transfer Electronic Mail Terminal Emulation Usenet News Domain Name Service World Wide Web Art der Kommunikation
6 Darstellung File Transfer Protocol (FTP)
RFC 959
Simple Mail Transfer Protocol (SMTP)
RFC 821
Telnet Protocol (Telnet)
RFC 854
Usenet News Transfer Protocol (NNTP)
RFC 977
Domain Name Service (DNS)
RFC 1034
World Wide Web (WWW)
RFC
Applikation
5 Sitzung
4 Transport Transmission Control Protocol (TCP)
RFC 793
User Datagram Protocol (UDP)
RFC 768
Host to Host-Kommunikation
3 Netzwerk Address Resolution Protocol (ARP)
RFC 826
Internet Protocol (IP)
RFC 791
Internet Control Message Protocol (ICMP)
RFC 792
Internet
2 Sicherung Ethernet Token Ring DQDB FDDI ATM lokales Netzwerk
1 Physikalische Übertragung Twisted Pair Lichtwellenleiter Koaxkabel Funk Laser Netzzugriff

OSI-Einbindung

Der Kern des Internets ("das Internet") deckt lediglich nur zwei Schichten ab.
Die Netzwerkschicht (Vermittlungsschicht) ist in drei Teilschichten aufgeteilt.

OSI-Einbindung

Bildbeschreibung "OSI-Einbindung": Übertragungs- und Sicherungsschicht = Lokales Netz bzw. WAN; Vermittlungsschicht = ARP und RARP (Teilschicht 1), IP (Teilschicht 2), IGMP und ICMP (Teilschicht 3); Transportschicht = TCP und UDP; Anwendungsschicht (oberste Schicht) = DHCP und DNS.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Internet Protocol (IP)

IP-Adressen

Jeder Internet-Knoten hat eine eindeutige 32 Bit-Adresse. Diese werden durch vier Dezimalzahlen, die jeweils 8 Bit (Octett/Byte) repräsentieren ("dotted decimal"), dargestellt: z.B. 192.14.17.231

Die Adressen werden in 5 Klassen aufgeteilt:

Einige Adresswerte haben besondere Bedeutungen, z.B. alle Werte auf 0 oder 1.
Darüber hinaus sind noch spezielle Bereiche reserviert.

IP-Adressen

Bildbeschreibung "IP-Adressen": Klasse A = Erstes bit Null, 7 bit Netzwerk-ID, 24 bit Host-ID; Klasse B = Erstes bit Eins, zweites bit Null, 14 bit Netzwerk-ID, 16 bit Host-ID; Klasse C = Erstes und zweites bit Eins, drittes bit Null, 21 bit Netzwerk-ID, 8 bit Host-ID; Klasse D = Erstes bis drittes bit Eins, viertes bit Null, 28 bit Multicast-Adressen; Klasse E = Erstes bis viertes bit Eins, 28 bit Reservierte Adressen.

Praktisch relevant sind nur die Klassen A, B und C.

Die Adresse 127.0.0.0 wird als Loopback-Adresse reserviert. Wird ein Paket mit dieser Zieladresse gesendet, wird das Paket unmittelbar empfangen (dient zu Testzwecken).

Darüber hinaus gibt es noch reservierte Bereiche, die nur innerhalb lokaler Netze vorgesehen sind:

Diese Adressen werden im Internet nicht vermittelt und können daher nur lokal verwendet werden; wer eigene IP-Adressen lokal vergibt, sollte sich möglichst an diese Adressbereiche halten.

Adressarten

Jede Adresse hat zwei Teile:

Wird der Host-ID-Bereich auf 0 gesetzt, wird der Name des Netzwerks erhalten. Gleichzeitig bedeutet dies, dass der eigene Rechner in dem Netz gemeint ist.

Wird der Netz-ID-Bereich auf 0 gesetzt, ist die Adresse einer Station im eigenen Netz gemeint.

Werden die Host-ID-Bits der Identifikation mit 1en aufgefüllt, entsteht die Broadcast-Adresse (auf der IP-Ebene) des Netzes mit der angegebenen Netz-ID.

Sind alle Bits auf 1 gesetzt, so bedeutet dies Broadcast auf dem eigenen (lokalen) Netz.

Subnetting (Bilden von lokalen Teilnetzen)

Die Unterscheidung zwischen Netz- und Host-Adresse erfolgt über eine Subnetzmaske, die den Bereich der Bits der Netz-ID ausmaskiert.
Beispiel: B-Netz: 172.17.0.0 mit Netzmaske 255.255.0.0

Das Aufteilen der Adressbereiche der Stationen innerhalb des Adressbereiches der Klasse in weitere Unterbereiche wird Subnetting genannt.
Beispiel: B-Netz: 172.17.0.0 mit Subnetzmaske 255.255.255.0

Dies bedeutet, dass 253 Subnetze aus maximal 253 Stationen adressiert werden können. Die Aufteilung der unteren 16 Bits kann auch anders erfolgen.

Subnetting - Beispiel

Bildbeschreibung "Subnetting - Beispiel": Klasse B-Adresse, gekennzeichnet durch die Anfangsbits 1 und 0, gefolgt von 14 bit Netz-ID und 16 bit Host-ID (Netzmaske = 255.255.0.0). Die 16 bit Host-ID werden nun aufgeteilt in 8 bit Subnetz-ID und 8 bit Host-ID (Netzmaske = 255.255.255.0). Diese Aufteilung ähnelt dann einer Klasse C-Adresse, wo nur die letzten 8 bit für die Host-ID genutzt werden (Netzmaske = 255.255.255.0).

Bemerkungen zu den Begriffen:

Im TCP/IP-Kontext werden allgemeine Begriffe anders verwendet:

Internet Protocol (IP) Version 4

Das Internet Protocol ist die Basis des ganzen Internets.

Es benutzt:

In diesem Sinne realisiert IP einen verbindungslosen, unzuverlässigen Dienst.

Aufbau des IP-Pakets

Aufbau des IP-Pakets (Teil 1)

Bildbeschreibung "Aufbau des IP-Pakets (Teil 1)": Enthält einerseits 16 bit für Version, Länge des Kopfes, und Service, andererseits 16 bit für die Paketlänge. Weiterhin: jeweils 32 bit für Quell- und Ziel-IP-Adresse, 32 bit für Füllbits und 32 bit für Datenbereich.

Aufbau des IP-Pakets (Teil 2)

Bildbeschreibung "Aufbau des IP-Pakets (Teil 2)": Type of Service = 3 bit Vorrang. Desweiteren 5 bit für D = Kurze Verzögerung, T = Weg mit hohem Durchsatz, R = Weg zu hoher Sicherheit, C = Weg zu niedrigen Kosten und letztes bit Null.

Werte für das Vorrangfeld: 0 = Normal, 1 = Priorität, 2 = Immediate, 3 = Flash, 4 = Flash override, 5 = Critical, 6 = Internet Control, 7 = Network Control.

Aufbau des IP-Pakets (Teil 3)

Bildbeschreibung "Aufbau des IP-Pakets (Teil 3)": 3 bit zur Steuerung der Fragmentierung. Erstes bit Null, zweites bit für "Do-not-Fragment" (Fragmentierungsverbot), drittes bit für "More-Bit" (zeigt, ob noch weitere Fragmente kommen).

Nummer des übergeordneten Protokolls

Das Protokoll-Feld der IP-PDU enthält einen Nummer, die das Transport- bzw. höhere Protokoll - nicht den Port - benennt. Die Liste der Nummern ist in RFC 1700 definiert. Die Nummern werden vom Internet-Gremium IANA bzw. ICANN definiert.

Hier ein Auszug:

Time to live (TTL)

Im TTL-Feld wird mit einer 8-bit-Zahl die maximale Zeitdauer der Existenz eines IP-Pakets während der Übertragung in Sekunden angegeben.

Jeder Router arbeitet wie folgt:

In der Praxis wird TTL bei jedem Passieren eines Router um 1 erniedrigt (ohne die Zeit zu messen), so dass TTL die maximale Anzahl der Router-Passagen (Hops) angibt.

Ist TTL auf 0, so wird das IP-Paket verworfen und an den Absender mit dem ICMP eine Fehlermeldung gesendet.

Dies verhindert ewig kreisende Pakete oder Überlast.

Fragmentieren

Das Zerlegen (und Zusammensetzen) eines längeren IP-Pakets in kleinere wird Fragmentieren genannt.

Es ist bei Übergängen zwischen Netzen unterschiedlicher maximaler Paketlängen (MTU-Werte) erforderlich.

Maximale Paketlängen (Beispiele):

Das Fragmentieren führen in der Regel die Router an den Netzübergängen durch; es kann aber auch der Sender durchführen, indem er gleich Längeres zerlegt.

Fragmentieren

Bildbeschreibung "Fragmentieren": Beispielhaft wird ein Datenpaket mit 1023 bit betrachtet. Beim ersten Fragmentieren werden zwei Pakete gebildet. Paket 1 beinhaltet bit 0 bis bit 511, Paket 2 enthält bit 512 bis bit 1023. Paket 1 wird beim zweiten Fragmentieren in Paket 1a (bit 0 bis 255) und Paket 1b (bit 256 bis 511) unterteilt, Paket 2 in 2a (bit 512 bis 767) und 2b (bit 768 bis 1023).

Alle Fragmente haben dieselbe Kennung, wobei diese keine Reihenfolge definiert. Die Kennungen sollten sich nur nach längeren Zeitabständen wiederholen (um nicht mit verspäteten PDU in Konflikt zu kommen).

Zu fragmentierende Pakete mit don't-fragment-Flags werden verworfen, da sie nicht in das nächste Netzwerk geleitet werden können.

Stationen, die alle Fragmente eines IP-Datagramms innerhalb einer bestimmten Zeitspanne (i.d.R. 30-40 s) zum Reassemblieren nicht erhalten, verwerfen alle empfangenen Pakete.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Transmission Control Protocol (TCP)

Protokoll und Ports:

Protokoll und Ports

Bildbeschreibung "Protokoll und Ports": FTP = Port 21 oder 23, DNS = Port 53, HTTP = Port 80.

Ports sind Schnittstellen zu Entities höherer Schichten als 4. Diese Entities können Server oder Clients sein.

Ports

Port = Schnittstelle zu einem Dienst/Applikation realisiert durch ein entsprechendes Protokoll.

Es gibt maximal 216-1 Ports, die in folgende Klassen eingeteilt sind:

Zuordnung zu reservierten Diensten steht beispielsweise in folgenden Dateien:

Die Port-Nummern adressieren Prozesse/Programme.

Einige der Port-Nummern sind für die beiden Transportprotokolle TCP und UDP doppelt vergeben.

IP-Adresse + Port-Nummer + Protokoll definiert damit exakt einen Dienst bzw. Applikation in einem bestimmten System.

Beispiele für Port-Nummern (RFC 1700)
Port-Nummer TCP UDP
21 FTP (Filetransfer) FTP (Filetransfer)
23 Telnet (rlogin) Telnet (rlogin)
53 DNS (Namensdienst) DNS (Namensdienst)
80 HTTP (Web) -
110 POP3 (Mail) -
119 NNTP (News) -
512 exec biff
513 rlogin who

Aufbau des TCP-Pakets

Aufbau des TCP-Pakets (Teil 1)

Bildbeschreibung "Aufbau des TCP-Pakets (Teil 1)": Quell-/Zielport (je 16 bit), Sequenznummer (32 bit), Acknowledge-Nummer (32 bit), Data Offset und Flags (16 bit), Window-Größe (16 bit), Checksumme/Urgent-Pointer (je 16 bit), Optionen/Füllbits (32 bit), Datenbereich (32 bit). Weitere Erklärungen nachfolgend.

Aufbau des TCP-Pakets (Teil 2)

Bildbeschreibung "Aufbau des TCP-Pakets (Teil 2)": Der Flag-Bereich des Paketes enthält Urgent-Flag, Acknowledge-Flag, Push-Flag, Reset-Flag, Synchronization-Flag und Final-Flag. Weitere Erklärungen nachfolgend.

Es gibt keine besonderen Formen für Aufbau-/Abbau-/Bestätigungspakete, sondern nur eine Paketform, wobei die Flags die Bedeutung des Pakets festlegen.

Window-Größe:

Anzahl der Bytes, die ohne Bestätigung gesendet werden dürfen. Hiermit wird eine variable Fenstergröße eines Sliding Window-Verfahrens seitens des Empfängers definiert. Da im Duplex-Modus kommuniziert wird, gibt es für jede Richtung eine eigene Fenstergröße.

Checksumme:

Es wird über das ganze TCP-Paket und einen Pseudokopf eine einfache Checksumme gebildet. Im Pseudokopf sind zusätzlich Daten der Schicht 3 enthalten, um Irrläufer im Netz nicht aus Versehen mitzuverarbeiten. Dies durchbricht zwar das Schichtenprinzip, was den Konzipierern von TCP/IP egal war.

Pseudokopf / Pseudo-Header von TCP: Wird nicht übertragen, geht aber in die Checksumme ein.

Pseudo-Header von TCP

Bildbeschreibung "Pseudo-Header von Transmission Control Protocol": Enthält Quell-/Ziel-IP-Adresse, Protokoll und TCP-Länge.

Die Nummer des Protokolls von TCP ist 6.

Ports und Verbindungen

Ports und Verbindungen

Bildbeschreibung "Ports und Verbindungen": Greifen mehrere FTP-Clients auf eine Verbindung zu, so erhält jeder Client einen eigenen Port.

Mehrere Verbindungen mit derselben Port-Nummer auf demselben System sind nicht zu unterscheiden, so dass für jedes Programm, das eine eigene Verbindung benötigt, auch eine neue, eindeutige Port-Nummer benutzt werden muss.

Ausnahmen sind Server, d ie über einen fest definierten Port angesprochen werden müssen. Wenn diese Anforderungen von unterschiedlichen Clients bearbeiten werden können (z.B. FTP), so brauchen nur die Clients eigene Port-Nummern zu haben (wie in der vorherigen Abbildung), damit der Server ihnen den richtigen individuellen Output geben kann.

Können Server nur mit einem Client arbeiten (z.B. rlogin), so müssen auch für sie eigens Ports belegt werden. Das bedeutet, dass diese Server nach dem Aufbau nur über diesen neuen Port angesprochen werden können.

Sequenznummer (SN)

Bei TCP werden nicht die Pakete, sondern die übertragenen Bytes durchnummeriert, wobei reine Kontrollpakete - ohne Daten - als 1 Byte gezählt werden. Initial beim Aufbau definiert jede Seite eine initiale Sequenznummer (ISN), die der anderen Seite mitgeteilt und von dort bestätigt wird. Da es hierbei um eine Abstimmung der Sequenznummern handelt, wird dies durch das SYN-Flag gekennzeichnet. Diese Pakete sind demnach die "Aufbau"-Pakete.

Beginnend mit der ISN werden für jede TCP-Verbindung die Bytenummern hoch gezählt und in den Paketen benutzt, womit die Reihenfolge der Pakete gesichert werden kann.

Für jede TCP-Verbindung muss daher ein anderer ISN-Wert benutzt werden, d.h. ein Paket einer bestimmten TCP-Verbindung unterscheidet sich nur in der SN eines Pakets einer anderen, wenn Port-Nummer ... außer Acht gelassen werden.

Natürlich dürfen sich SN nicht wiederholen.

Acknowledge-Nummer

Wenn das Acknowledge-Nummer-Flag gesetzt ist, wird das Feld Acknowledge-Nummer als Bestätigung aller Bytes vor der angegebenen Nummer interpretiert, m.a.W. die Acknowledge-Nummer gibt die Nummer des nächsten nicht-bestätigten, aber eventuell schon gesendeten/empfangenen Bytes an.

Wenn alles Empfangene bestätigt werden soll:

Acknowledge-Nummer = Sequenznummer des letzten Pakets + Anzahl der damit empfangenen Bytes bzw. Anzahl der Kontrollpakete. Eine derartige Bestätigung ist nur dann sinnvoll, wenn alle Teile erfolgreich empfangen wurden.

Aufbau durch 3-Wege-Handshake:

Aufbau durch 3-Wege-Handshake

Bildbeschreibung "Aufbau durch 3-Wege-Handshake": Station A sendet Sequenznummer 921. Station B sendet Sequenznummer 302 und bestätigt den Empfang von A durch die Mitteilung, dass als nächstes Sequenznummer 922 erwartet wird. Station A sendet geforderte 922 und bestätigt Empfangsbereitschaft für 303.

Sende = Nummer des nächsten zu sendenden Bytes
Erwartet = Nummer des nächsten zu empfangenen Bytes

Bestätigter Datentransfer:

Bestätigter Datentransfer

Bildbeschreibung "Bestätigter Datentransfer": Station A sendet Sequenznummer 196 mit einem Datenstrom von 5 Byte und erwartet Sequenznummer 407. Station B sendet Sequenznummer 407 mit 4 Byte Daten und erwartet dann Sequenznummer 201 (entspricht der nächsten freien Sequenznummer nach den empfangenen 5 Byte). Station A sendet 201 und zeigt Empfangsbereitschaft für 411.

Kontrollfluss:

Kontrollfluss

Bildbeschreibung "Kontrollfluss": Station A sendet 100 Byte Daten. Station B teilt A mit, dass 200 Byte empfangen werden können. Station A sendet 200 Byte. Station B sagt "Stop" und meldet, dass jetzt keine Daten mehr empfangen werden. Nach etwas Zeit steigt Station B wieder ein und meldet, dass wieder Daten empfangen werden können...

Abbau der Verbindung:

Abbau der Verbindung

Bildbeschreibung "Abbau der Verbindung": Station A sendet Sequenznummer 296, erwartet Sequenznummer 507. Station B sendet 507, erwartet 297. Die Verbindung A zu B wird beendet. Station B sendet 508, erwartet immer noch 297. Station B sendet 297 und erwartet 509. Die Verbindung B zu A wird beendet.

Verbindungen werden für jede Richtung getrennt abgebaut.
Ausnahme: Reset.

Besonderheiten:

Die Größe des tatsächlich benutzten Fensters beim Senden passt sich dynamisch an die Netzbelastung an, indem die Laufzeiten der Pakete gemessen und daraus ein optimaler Wert berechnet wird.

Darüber hinaus sind insgesamt 6 Timer für verschiedene Funktionen notwendig.

Obwohl dieses Protokoll recht kompliziert ist, gehört es zu den am weitesten verbreiteten Protokollen.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

User Datagram Protocol (UDP)

Port-Nummer, TCP, UDP
Port-Nummer TCP UDP
15 - Netstat
23 Telnet (rlogin) NetBIOS
69 - TFTP (Filetransfer)
161 - Simple Network Management Protocol

Protocol und Ports:

Protocol und Ports

Bildbeschreibung "Protocol und Ports": TFTP = Port 53, Netstat = Port 15, NetBIOS = Port 23, SNMP = Port 161.

Aufbau des UDP-Pakets

Aufbau des UDP-Pakets

Bildbeschreibung "Aufbau des User Datagram Protocol-Pakets": Pseudo-Header enthält Quell-/Zieladresse (je 32 bit), Protokoll und UDP-Länge (je 16 bit). Diese Angaben werden nicht übertragen, gehen aber in die Checksumme mit ein. Übertragen werden Quell-/Ziel-Port (je 16 bit), Länge und Checksumme (je 16 bit) und Daten (32 bit).

Pseudokopf enthält auf beiden Seiten Verwaltungsinformationen, die nicht übertragen werden, aber von der Checksumme abgedeckt sind.

Zuordnung UDP zu Ports:

Analog zu TCP werden die UDP-PDU an die entsprechenden Programme/Dienste/Server durch die UDP-Schicht weiter geleitet.

Die Kombination: IP-Adresse/UDP/Source-Port/Destination-Port ist auch hier weltweit eindeutig.

Vergleich von IP, TCP und UDP

Eigenschaft, IP, UDP, TCP
Eigenschaft IP UDP TCP
Verbindungsorientierung Nein Nein Ja
Nachrichtenbegrenzung Ja Ja Nein
Prüfsumme Nein Nein Ja
Bestätigung Nein Nein Ja
Timeout mit erneuter Übertragung Nein Nein Ja
Erkennen doppelter Übertragungen Nein Nein Ja
Reihenfolge Nein Nein Ja
Datenflusssteuerung Nein Nein Ja
Checksumme über Daten Nein Ja Ja