Wirtschaftsinformatik (Bachelor-Studiengang): Rechnernetze/Onlinedienste (2. Semester)
Sie sind hier: Startseite › Wirtschaftsinformatik › Rechnernetze/Onlinedienste: TCP/IP (Teil 1)
BM / CM, Kurs vom 01.10.2002 - 31.03.2003
- Geschichte des Internets
- Internet Protocol (IP)
- Transmission Control Protocol (TCP)
- User Datagram Protocol (UDP)
Geschichte des Internets
- 1969: 4 Hosts
- 1971: ARPANET
- 1972: Telnet
- 1973: FTP (File Transfer Protocol)
- 1974: TCP (Transmission Control Protocol)
- 1980: Von jetzt an weltweite Ausdehnung
- 1981: IP (Netzwerkschicht)
- 1982: TCP/IP-Protokollstack/Suite
- 1983: Abspaltung des MILNET
- 1984: DNS (Domain Name Service)
- 1991: EBONE Europäisches Backbone
- 1992: Mit dem Web breiter Durchbruch
Ziele des Internets
- Weltweite Verbindung zwischen Netzen (Inter-Net)
- Möglichst herstellerunabhängig
- Möglichst freie eigene Definition der Protokolle und Dienste
- Offenheit und Flexibilität
- Jeder darf Zugriff haben
- Basis der Kommunikation zwischen allen Menschen
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:
Bildbeschreibung "Struktur des Internets": Weltweit existieren viele verschiedene, miteinander verknüpfte Netze, auf die beliebig zugeriffen werden kann.
Protokollübersicht
Bildbeschreibung "Protokollübersicht": Auf Transportebene wird unterteilt in Transmission Control Protocol und User Datagram Protocol.
- IP: Internet Protocol
- TCP: Transmission Control Protocol
- UDP: User Datagram Protocol
- ICMP: Internet Control Message Protocol
- ARP: Address Resolution Protocol
- NAT: Network Address Translation (kein Protokoll)
- DHCP: Dynamic Host Configuration Protocol
Anwendungsprotokolle:
- FTP: File Transfer Protocol
- HTTP: Hypertext Transfer Protocol (Web)
- Telnet
- News (NNTP)
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.
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.
Internet Protocol (IP)
- RFC 791
- Es wird nun das Internet Protocol der Version 4 vorgestellt: IPv4.
- Ende der 90er Jahre wurde die Version 6 (IPv6) entwickelt, die sich heute (2002) noch nicht auf dem Markt durchgesetzt hat.
- Ethernet-Typefield:
0x0800
(RFC 894) - 802.2 DSAP, SSAP: 06 (RFC 948)
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:
- Klasse A: Große Netze mit max. 224-2 Adressen
- Klasse B. Mittlere Netze mit max. 216-2 Adressen
- Klasse C: Kleine Netze mit max. 28-2 Adressen
- Klasse D: Multicast-Adressen
- Klasse E: Reservierte Adressen
Einige Adresswerte haben besondere Bedeutungen,
z.B. alle Werte auf 0 oder 1.
Darüber hinaus sind noch spezielle Bereiche reserviert.
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:
- Klasse A: 10.0.0.0 bis 10.255.255.255
- Klasse B: 172.16.0.0 bis 172.31.255.255
- Klasse C: 192.168.0.0 bis 192.168.255.255
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:
- Der vordere Teil ist die Adresse/Name des Netzes (Netz-ID).
- Der hintere Teil ist die Adresse/Name einer Station (Host-ID).
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.
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:
- Host: Rechner, an dem der Benutzer (Client) arbeitet
- Segment: bedeutet hier dasselbe wie Nachricht oder PDU
- Fragmentierung: Verfahren zur Aufteilung langer PDU auf kleinere PDU, synonym zu Segmentierung
- Fragmente: Durch Fragmentierung entstandene PDU, synonym zu Segment (im üblichen Sinne)
Internet Protocol (IP) Version 4
Das Internet Protocol ist die Basis des ganzen Internets.
Es benutzt:
- Datagramme:
PDU ohne Verbindungen, d.h. in sich geschlossene Dateneinheiten, die ohne Zusicherung der Reihenfolge auch auf unterschiedlichen Wegen zum Ziel gebracht werden. - Keine Bestätigungen:
Keine PDU wird auf der IP-Ebene bestätigt; falls es erwünscht ist, muss dies auf den höheren Ebenen erfolgen. - (Fast) keine Prüfsummen:
Nur ein kleiner Teil der IP-PDU; und auch der wird nur rudimentär auf Bitfehler geprüft.
In diesem Sinne realisiert IP einen verbindungslosen, unzuverlässigen Dienst.
Aufbau des IP-Pakets
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.
- Version (4 bit): 4 oder 6
- IHL (Internet Header Length, 4 bit): Länge des Kopfes in Vielfachen von 4 byte (Wertebereich 5..15)
- Type of Service (8 bit): Qualität
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.
- Paketlänge (16 bit): Länge des gesamten Pakets in
byte
Hier wird meist ein MTU-Wert von ca. 1.500 byte benutzt. - MTU = Maximum Transmission Unit
- Kennung (16 bit): Kennzeichnung fragmentierter Pakete, die zu einem nicht-fragmentierten Paket gehören
- Flags (3 bit): Steuerung der Fragmentierung:
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).
- Fragment-Offset (13 bit): Position der Fragmente in Einheiten zu 8 byte, so dass max. 216-1 Bytes transportiert werden können.
- TTL (Time to live, 8 bit): Noch zulässige Anzahl von Sprüngen über Router (Hops) bzw. Zeitdauer, typisch: 30-64 Hops
- Protokoll (8 bit): Nummer des übergeordneten Protokolls
- Headerquersumme (16 bit): wird nach jeder Änderung des Kopfes neu berechnet, insbesondere nach neuem TTL-Wert; primitives, aber schnelles Verfahren
- Optionen/Füllbits: bis zu 40 byte endend an 32-bit-Grenze Optionen dienen zu Routing-, Statistik-, Debugging und Sicherheitsfunktionen
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:
- 0: reserviert
- 1: ICMP
- 2: IGMP
- 6: TCP
- 8: EGP (Routing Protocol)
- 17: UDP
- 29: ISO Transport Class 4 Protocol
- 88: IGRP (Routing Protocol)
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:
- Wird das Paket innerhalb 1 Sekunde weiter gegeben, so wird um 1 dekrementiert.
- Liegt das Paket länger als 1 Sekunde beim Router, so wird der Zähler entsprechend erniedrigt.
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):
- X.25 575 byte
- IEEE 802.3 1.492 byte
- Ethernet (DIX) 1.500 byte
- 4 Mbit/s-Token Ring 4.464 byte
- 16 Mbit/s-Token Ring 17.914 byte
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.
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.
Transmission Control Protocol (TCP)
- RFC 793
- OSI-Ebene 4 (Transport)
- Verbindungsorientiert (Virtueller Kanal)
- Flusssteuerung
- Fehlererkennung und Korrektur
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:
- Reserviert: 1..255 für TCP/IP-Dienste, 256..1023 für Unix-Anwendungen
- Registriert: 1024..49151
- Dynamisch, vergänglich: 49152..65535
Zuordnung zu reservierten Diensten steht beispielsweise in folgenden Dateien:
- Unix:
/etc/services
- Windows NT:
\%Systemroot%\System32\Drivers\Etc\Services
- Windows 9x:
\%Systemroot%\Services
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.
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
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.
- Quell-/Zielport (je 16 bit): Diese beiden Werte als Paar identifizieren eine TCP-Verbindung, m.a.W. die ID einer Verbindung wird durch die ersten 32 bit des TCP-Pakets definiert.
- Sequenznummer (32 bit): Nummer des 1. Bytes des Datenfeldes
- Acknowledge-Nummer (32 bit): Alles bis zur Acknowledge-Nummer-1 wird bestätigt, wenn das Acknowledge-Nummer-Flag gesetzt wird.
- Data Offset (4 bit): Länge des Headers in 32-bit-Blöcken.
- Urgent-Pointer zeigt auf das Ende der Vorrangdaten.
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.
- Urgent-Flag: Paket mit dringlichen Urgent-Daten (Paket gehört dann nicht zum eigentlichen Strom.)
- Acknowledge-Flag: Kennzeichnet eine Bestätigung durch Acknowledge-Nummer.
- Push-Flag: Verhindert das Zwischenpuffern in der TCP-Schicht.
- Reset-Flag: Sofortiger Abbau der Verbindung.
- Synchronization-Flag (SYN): Aufbau beim 3-Wege-Handshake.
- Final-Flag: Kennzeichnung zum Abbau der Verbindung.
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.
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
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:
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:
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:
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:
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.
User Datagram Protocol (UDP)
- RFC 768
- Eigenschaften:
- Verbindungslos
- Unbestätigt
- Ohne jede Fehlerkorrektur
- UDP kann auch als eine Art leere Transportschicht mit Durchgriff auf IP angesehen werden.
Port-Nummer | TCP | UDP |
---|---|---|
15 | - | Netstat |
23 | Telnet (rlogin) | NetBIOS |
69 | - | TFTP (Filetransfer) |
161 | - | Simple Network Management Protocol |
Protocol und Ports:
Bildbeschreibung "Protocol und Ports": TFTP = Port 53, Netstat = Port 15, NetBIOS = Port 23, SNMP = Port 161.
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 |
---|---|---|---|
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 |