Sie sind Hier:
Startseite
Netzwerke
Protokolle
Wozu Protokolle
Wozu Protokolle?
Ist ein Netzwerk harwareseitig
einsatzbereit, können die einzelnen Computer (ob Clients oder Server) noch nicht
mit einander kommunizieren. Es fehlt eine gemeinsame Schnittstelle, die so
genannten Protokolle.
Der Austausch von Nachrichten
erfordert häufig ein Zusammenspiel verschiedener Protokolle, die
unterschiedliche Aufgaben übernehmen (beispielsweise
TCP/IP
Suite). Um die damit verbundene Komplexität beherrschen zu können,
werden die einzelnen Protokolle in Schichten organisiert. Im Rahmen
einer solchen Architektur gehört jedes Protokoll einer bestimmten
Schicht an und ist für die Erledigung der speziellen Aufgaben
zuständig (beispielsweise Überprüfen der Daten auf Vollständigkeit –
Schicht 2). Protokolle höherer Schichten verwenden Dienste von
Protokollen tieferer Schichten (Schicht 3 verlässt sich z. B.
darauf, dass die Daten vollständig angekommen sind). Zusammen bilden
die so strukturierten Protokolle einen Protokollstapel – in
Anlehnung an das
ISO-OSI-Referenzmodell (. Nachrichten einer bestimmten Schicht
werden auch als Protokolldateneinheiten (protocol data units)
bezeichnet. Unter dem Oberbegriff TCP/IP sind rund 500(!) Protokolle
zusammengefasst. TCP/IP steht im allgemeinen Sprachgebrauch für
das Protokoll beim Datenaustausch zwischen verschiedenen
Rechnern.
Ein Protokoll im Netzwerk kann
durchaus mit dem diplomatischen Protokoll verglichen werden. Es ist
genau festgelegt, wie ein ausländischen Staatsgast begrüßt wird,
welche Sprache gesprochen wird und wie die Verabschiedung aussehen
muss. Werden Regeln oder Teile davon nicht befolgt, kann es zu
ernsten Verwicklungen kommen. Im Netzwerk ist das nicht anders.
Aus diesem Grund werden die eigentlichen Nutzdaten in
Protokollinformationen verpackt, die den Transport über das Netzwerk
regeln.
Sollen Daten gesendet werden, werden sie von Schicht 7 bis Schicht 1
durchgereicht und in jeder Schicht werden Informationen hinzugefügt
und die Daten darin quasi verpackt. Kommen die Daten beim
Zielcomputer an, werden sie wieder von Schicht 1 bis 7 nach oben
gereicht und dabei wieder Schicht für Schicht ausgepackt.
Dieser Vorgang lässt sich in etwa mit dem Versenden eines einfachen
Briefes vergleichen. Zunächst wird der Brief geschrieben
(Nutzdaten), in einen Umschlag gesteckt, nach ganz bestimmten Regeln
die Adresse auf das Kuvert geschrieben. Vom Briefkasten wandert der
Brief in eine Verteilerstelle. Von dort aus wird er in die Zielstadt
befördert. Hier findet der Prozess noch einmal statt, nur in
umgekehrter Reihenfolge. Der Brief wandert in eine Verteilerstelle,
wird dort dem Zielpunkt (Straße, Hausnummer) zugeteilt und
anschließend zugestellt. Vom Empfänger wird der Brief geöffnet.
Unterscheidungsmerkmale von Netzprotokollen:
- Anzahl von
Parteien, die an der Kommunikation
teilnehmen: Gibt es für eine Übermittlung immer
nur einen Empfänger, spricht man von Unicast,
bei Übertragungen an mehrere Teilnehmer von
Multicast.
- Findet die
Kommunikation nur in eine Richtung statt,
spricht man von Simplex, fließen die Daten
wechselweise in beide Richtungen, von
Halb-Duplex oder gleichzeitig in beide
Richtungen, von Vollduplex.
- Stellung
der Kommunikationsteilnehmer: Sind diese
untereinander gleichberechtigt, spricht man von
Peer-to-Peer oder symmetrischer anderenfalls von
asymmetrischer Kommunikation. Das am weitesten
verbreitete asymmetrische Modell ist das
Client-Server-System, bei dem ein Dienstanbieter
(der Server) Anfragen von verschiedenen Clients
bearbeitet (wobei es immer die Clients sind, die
die Kommunikation initiieren, d. h. einen Kanal
öffnen).
- Wird nach
einer Anfrage auf Antwort gewartet,
spricht man von synchroner Kommunikation, sonst
von asynchroner Kommunikation.
- Während einer
paketorientierten Kommunikation werden
Nachrichten bzw. Datenpakete übertragen, beim
Streaming wird mit einem kontinuierlichen
Datenstrom einzelner Zeichen gearbeitet
Die wesentlichen
Aufgaben moderner, leistungsstarker Protokolle:
- Ein sicherer
und zuverlässiger Verbindungsaufbau zwischen den
an der Kommunikation beteiligten Computern
(Handshake)
- Das
verlässliche Zustellen von Paketen
- Wiederholen
nicht angekommener Pakete
- Zustellen der
Datenpakete an den/die gewünschten Empfänger
- Das
Sicherstellen einer fehlerfreien Übertragung
(Prüfsumme)
- Das
Zusammenfügen ankommender Datenpakete in der
richtigen Reihenfolge
- Das Verhindern
eines Eingriffs unbefugter Dritter (durch
Verschlüsselung)
Funktionsbeispiel:
Anhand des
Verbindungsaufbau-Prozederes des TCP-Protokolls soll
ein einfaches praktisches Beispiel gezeigt werden.
(Handshake-Verfahren)
- Zunächst
schickt Computer 1 ein Paket, in dem steht, dass
er eine Verbindung zu Computer 2 aufbauen
möchte.
- Darauf
antwortet Computer 2, dass er dazu bereit ist.
- Computer 1
bestätigt anschließend Computer 2, dass er
verstanden hat, dass Computer 2 bereit ist.
Die Verbindung ist
damit hergestellt, und der eigentliche
Datenaustausch kann beginnen.
Einsatz von
Protokollen:
Die bekannteste
Nutzung von Protokollen findet rund um das Internet
statt, hier sorgen sie für (Anwendung -
(Protokollbezeichnung)):
- Das Laden von
Web-Seiten – (HTTP)
- Verschicken
von E-Mails – (SMTP)
- Herunterladen
von Dateien – (FTP
oder
HTTP)
Die Funktionen der
Protokolle bauen zum Teil aufeinander auf. So lösen
beispielsweise die Protokolle
TCP und
IP
das Problem der Datenübertragung. Das Protokoll
SMTP zum
Übermitteln von E-Mails benötigt wiederum die
Funktion, Daten zu versenden und setzt dazu auf das
TCP auf.
Verbindungslose und verbindungsorientierte
Kommunikation:
Das Versenden eines einfachen
Briefes ist eine verbindungslose Kommunikation. Man wirft den Brief in den
Briefkasten und vertraut darauf, dass er am Ziel ankommt. Wenn man nicht
nachfragt oder sich der Empfänger meldet, wird man nie wissen, ob der Brief
wirklich angekommen ist.
Möchte man allerdings sicherstellen, dass ein Brief auch wirklich beim Empfänger
ankommt, dann sollte man auf verbindungsorientierte Kommunikation umsteigen, und
den Brief eingeschrieben aufgeben. So erhält man eine Bestätigung.
Diese beiden Varianten der Kommunikation gibt es auch im Netzwerken. Ethernet
ist in Schicht 1 und 2 verbindungslos. Die Daten werden einfach weggeschickt, es
wird zwar von der sendenden Station geschaut, ob es eventuell Fehler
(Kollisionen) gibt, wenn aber keine Fehler auftreten, wird davon ausgegangen,
dass die Daten angekommen sind. Eine Bestätigung gibt es nicht.
Protokolle der OSI-Schichten 3 und 4:
Schicht 3: Netzwerkschicht:
Sie ist für die Adressierung und
Wegfindung zu einem entfernten Computer verantwortlich. Die Frage ist nun, wozu
eigentlich dieser zusätzliche Aufwand wenn ja bereits in den Informationen der
MAC-Schicht Adressinformationen enthalten sind? Prinzipiell wäre diese
Information auch ausreichend, wenn man sich auf ein einzelnes Netzwerk
beschränken würde. Will man allerdings Daten über mehrere Netzwerke hinweg
austauschen, benötigt man die Informationen der Schicht 3.
Schicht 4: Transportschicht:
Sie stellt sicher, dass die
einzelnen Datenteile beim Empfänger wieder richtig zusammengefügt werden.
TCP/IP - Protokollfamilie:
Die Familie mit der größten
Bedeutung für Netzwerke ist sicher die TCP/IP-Familie, da sie für die
Kommunikation über das Internet verwendet wird.
Zur TCP/IP-Protokollfamilie
gehören unter anderem:
- IP Internet Protocol
- TCP Transmission
Control Protocol
- UDP User Datagram
Protocol
- lICMP Internet Control Message Protocol
- lARP Address Resolution Protocol
Das Internet Protocol (IP):
Es arbeitet auf der 3. Schicht
des
OSI-Referenzmodells. IP arbeitet
verbindungslos. Es entscheidet in welcher Paketgröße die Daten verschickt werden
und über welchen Weg sie verschickt werden. Da IP verbindungslos ist, macht es
sich keine Gedanken ob und in welcher Reihenfolge die Daten am Zielcomputer
ankommen, deshalb können die einzelnen Pakete auch ganz unabhängig voneinander
geroutet werden.
Die Daten werden für den Transport in so genannte IP-Datagramme aufgeteilt. Zur
Zeit sind 2 Versionen von IP in Diskussion: IPV4 und IPV6. Heute findet man
praktisch noch überall IPV4 vor. IPV6 soll IPV4 ablösen, da es mehr Adressen
bietet und die Adressen nach IPV4 langsam knapp werden.
IP-Header:

Version Field: Wird IPV4 oder V6
verwendet?
Type of Service (TOS): Angaben zur Datenpriorisierung und Wegwahl
Total Length: Wie lange ist das gesamte IP-Datagram
Identification Field: Eindeutige Identifikation des IP-Datagrams
Fragmentation Flag: DF: Don't Fragment Flag: Zeigt an, ob das Datagram
fragmentiert ist oder nicht.
MF: More Fragments Flag: Folgen noch weitere Fragmente?
Fragment Offset: Gibt Position des Fragments innerhalb der Gesamtdaten an.
Time To Live (TTL): Hier wird die maximale Lebensdauer des Paketes angegeben.
Bei jedem Passieren eines Routers wird die TTL um 1 verringert. Ist die TTL 0
wird das Paket vom nächsten Router verworfen und der Absender erhält eine
Mitteilung. Anfangswerte der TTL sind üblicherweise 32, 64 oder 128.
Protocol: Für welches Protocol in einer höheren Schicht ist das Datagramm
bestimmt?
Header Checksum: Prüfsumme für den Header; Wird von jedem Router neu gebildet,
da sich ja die TTL ändert.
Source- und Destination Address: Eine der wichtigsten Informationen. Nicht
MAC-Adresse, sondern je 32 Bit lange "IP-Adresse".
Options: Hier können Dienste und Services von IP noch an höhere Schichten
angepasst werden.
IP-Adressen:
Jeder Computer (oder auch netzwerkfähiger Drucker) in einem
TCP/IP-Netzwerk wird über eine Adresse, die so genannte IP-Adresse, adressiert.
Jede IP-Adresse muss eindeutig sein und ein einheitliches Format haben.
Offizielle IP-Adressen werden vom Internet Network Information Center (InterNIC)
vergeben. Eine offizielle IP müssen allerdings nur Rechner haben, die direkt ans
Internet angeschlossen sind.
Jede IP-Adresse besteht aus 2 Teilen, der Netzwerk-ID und der Host-ID. Die
Netzwerk-ID bezieht sich auf das physische Netzwerk. Jede Station im selben
Netzwerk muss auch die gleiche Netzwerk-ID haben. (siehe auch:
IP-Klassen)
Die Host-ID bezieht sich auf die jeweilige Station und muss innerhalb des
Netzwerkes eindeutig sein.
Jede IP-Adresse ist 32 Bits lang (4 x 8Bit) und kann in der Binären- oder der
Punkt-Dezimal-Schreibweise geschrieben werden:
Binär: 11000000 10101000 00000000
10010110
Punkt-Dezimal: 192.168.0.150
Adressklassen:
Im Internet sind 5 Adressklassen definiert. Im Großen und Ganzen stehen sie für
Netzwerke unterschiedlicher Größe und heißen Adressklassen A bis E.
Die Adressklassen legen fest, welcher Teil der IP-Adresse der Netzwerk-ID und
welcher Teil der Host-ID zugeordnet wird. Zu welcher Adressklasse eine
IP-Adresse gehört kann man am ersten Oktett der Binärschreibweise erkennen.
|
Klasse
|
IP-Adresse (binär)
|
Erste Zahl Dezimal |
|
A
|
0....... |
|
0 - 127 |
|
|
8Bit Netzwerk-ID |
24Bit Host-ID |
|
|
B
|
10...... |
|
128 - 191 |
|
|
16Bit Netzwerk-ID |
16Bit Host-ID |
|
|
C
|
110..... |
|
192 - 223 |
|
|
24Bit Netzewrk-ID |
8Bit Host-ID |
|
|
D
|
1110.... |
224 - 239 |
|
E
|
1111.... |
240 - 255 |
Weder die gesamte Netzwerk-ID
noch die gesamte Host-ID darf vollständig aus 0 oder 1 bestehen.
Klasse A:
maximal 126 Netzwerke mit über 17Mio Hosts.
Klasse B:
maximal 16384 Netzwerke mit jeweils bis zu 65000 Hosts
Klasse C:
2 Millionen Netzwerke mit 254 Hosts
Klasse D:
Dies sind die so genannten Multicast-Adressen. Mit ihnen kann man eine
Gruppe von Hosts gemeinsam adressieren.
Klasse E:
Sind zur Zeit noch undefiniert und werden für Versuche verwendet.
Besondere IP-Adressen:
Sind alle Bits der Host-ID einer IP-Adresse auf 0 gesetzt, so ist mit dieser
Adresse das gesamte Netzwerk (Broadcast) gemeint. (z.B: 149.15.0.0)
Von einem direkten Broadcast spricht man, wenn alle Stationen innerhalb eines
Netzwerkes adressiert werden. Das passiert, wenn alle Bits der Host-ID auf 1
gesetzt werden (z.B: 149.15.255.255)
Ein limitierter Broadcast adressiert alle Stationen innerhalb eines Netzwerkes,
wird aber keinesfalls über einen Router weitergeleitet. Er erfolgt über die
Adresse 255.255.255.255.
Die Netzwerk-ID 127.0.0.1 ist der so genannten Loopback und
Diagnosefunktion vorbehalten. Man erreicht so jeweils die eigene Station.
Alle Adressen, die mit 224 beginnen sind bereits für Multicast definiert.
Damit man sie verwenden kann, muss das Betriebssystem allerdings in der Lage
sein Multicast-Gruppen zu definieren. Z.B:
224.0.0.1 Alle Stationen des Subnets
224.0.0.2 Alle Router des Subnets
Öffentlich und private
IP-Adressen:
Öffentliche
IP-Adressen sind Adressen, die beantragt werden müssen. Sobald eine
Verbindung in das Internet aufgebaut wird, wird dem Computer (oder
auch Router) vom jeweiligen Provider eine IP-Adresse zugewiesen.
Dies ist eine öffentliche IP-Adresse und wird für die Dauer der
Internetverbindung zugewiesen. Sobald die Internetverbindung wieder
getrennt wird, wird diese IP-Adresse vom Provider wieder freigegeben
oder einem anderen Firma oder Privatperson zugewiesen. Diese
öffentlichen IP-Adressen sollten in einem privaten Netzwerk nicht
verwendet werden, da es sonst zu einem Adressenkonflikt kommt.
Um Adressenkonflikte
zu vermeiden, gibt es die privaten IP-Adressen. Private IP-Adressen
sind Adressen, die in jedem privatem oder Firmennetzwerk frei
verwendet werden dürfen und deren Nutzung nicht extra beantragt
werden muss. Sie werden von
Routern grundsätzlich nicht ins Internet weitergeleitet, wodurch
es möglich ist, diese Adressen mehrmals weltweit zu nutzen.
Private Adressen 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
Subnetmask:
In einem TCP/IP-Netzwerk benötigt jeder Host eine Subnet Mask. Das ist eine
32Bit-Adresse mit der man einen Teil der IP-Adresse "maskiert", um dadurch die
Netzwerk-ID von der Host-ID zu unterscheiden. Sie ist vor allem immer dann
nötig, wenn man feststellen will, ob sich eine bestimmte IP-Adresse in einem
lokalen oder einem fremden Netzwerk befindet.
Eine Standard-Subnet-Mask wird
verwendet, wenn ein Netzwerk nicht in Subnets unterteilt ist. Ihr Aussehen hängt
von der jeweiligen Adressklasse ab.
Klasse A 255.0.0.0
Klasse B 255.255.0.0
Klasse C 255.255.255.0
Der Host stellt fest, ob sich 2
Adressen im selben Subnet befinden indem er jeweils Quelladresse und Subnetmask
mit UND verknüpft und Zieladresse und Subnetmask. Kommt bei beiden Operationen
das Gleiche heraus, liegen Quelle und Ziel im selben Subnet.
Bit-Kombinationen mit UND
1AND1 = 1
1AND0 = 0
0AND1 = 0
0AND0 = 0
Konkretes Beispiel:
IP-Adresse: 10011111 11100000
00000111 10000001
Subnetmask: 11111111 11111111 00000000 00000000
UND-Verknüpfung 10011111 11100000 00000000 00000000
Subnetting:
Als Subnet bezeichnet man einen Teil eines TCP/IP-Netzwerkes.
Beim sogenannten Subnetting werden die im Netzwerk zur Verfügung stehenden
Host-Ids in mehrere Teilnetze aufgeteilt und zwar so, dass diese Teilnetze dann
auch eine eigenständige Netzwerk-ID haben.
Sinn macht Subnetting in großen Netzwerken, um den Datenverkehr zu verringern
bzw. wenn man verschiedene Technologien wie z.B. Token-Ring und Ethernet mischen
möchte.
Das eigentliche Subnetting ist das richtige Definieren einer Subnetmask, wobei
man die Host-ID in 2 Teile unterteilt.
Betrachten wir eine Adresse der Klasse B

Die Standard Subnetmask lautet
hier 255.255.0.0
bzw. 11111111 11111111 00000000 00000000
Die letzten 2 Stellen(Dezimal) bzw. die letzten 16 Bits (Binär) stehen für die
Host-Ids zur Verfügung. Wir könnten über 65000 Hosts mit einer IP-Adresse
versorgen.
Man kann nun aber Host-Ids für zusätzliche Netzwerk-Ids opfern. Verwendet man
beispielsweise auch noch das erste Byte der Host-Id für die Netzwerk-id würde
die Subnetmask
255.255.255.0 bzw. 11111111.11111111.11111111.00000000
lauten.
Man hat jetzt also 8Bit zur Verfügung, um 254 Subnets zu benennen, allerdings
können sich in diesen Subnet nur je 254 Hosts befinden, da ja nicht mehr mehr
Host-Ids zur Verfügung stehen.
Für die Subnetmask müssen allerdings nicht immer komplette Bytes auf 1 gesetzt
werden.
Hier ein Beispiel zur Vorgehensweise. Wir gehen von einer Adresse der Klasse B
aus:
1.) Festlegen wie viele Subnets benötigt werden: z.B. 6
2.) Diese Zahl ins Binärformat bringen: 6 (Dez.) = 110 (Binär)
3.) Wie viele Bits braucht man zur Darstellung dieser Zahl ?
110 -> 3 Bits
4.) Diese Anzahl von Bits an die 1er der ursprünglichen Subnetmask hängen.
neue Subnetmask: 11111111 11111111 11100000 00000000 (binär)
255. 255. 224. 0 (dezimal)
Routing im TCP/IP-Netzwerk:
Größere Netzwerke bestehen aus
mehreren Subnets, die durch Router untereinander verbunden sind. Die Router
müssen in der Lage sein, den IP-Header zu verstehen und die IP-Datagramme
richtig weiterzuleiten. Jedes Weiterleiten wird als Routing bezeichnet. Die
Entscheidung wohin ein Datagram geschickt wird trifft der Router auf der Basis
seiner Routingtabelle. Moderne Router basieren auf dynamischen Routingtabellen,
da statische sehr aufwändig einzurichten, zu pflegen und zu warten sind. Das
Lernen der Routingtabellen wird über die Routingprotokolle der
TCP/IP-Protokollfamilie erreicht. Beispiele für solche Protokolle sind das RIP
(Routing Information Protocol) und das OSPF (Open Shortest Path First).
Routing:
Routing wird nicht ausschließlich von Routern, denn jede einzelne Station muss
ihre eigenen Daten zunächst auch einmal routen. D.h. sie muss entscheide, ob das
Datenpaket direkt verschickt werden kann - an einen anderen Host im gleichen
Subnet - oder ob es indirekt verschickt werden muss - über einen Router an einen
Host in einem fremden Subnet.
Jedes IP-Datagramm enthält 2 Adressen als Zielangabe, eine IP-Adresse und eine
MAC-Adresse.
Die IP-Adresse ist in jedem Fall die IP-Adresse des Empfänger-Computers. Die
MAC-Adresse ist nur im Fall eines direkten Versendens die MAC-Adresse des
Zielcomputers, im Fall eines indirekten Versendens ist es die MAC-Adresse des
nächsten Routers.
Da ein Host aber nicht die zu einer IP-Adresse gehörige MAC-Adresse kennt, er
sie aber zum Versenden der Daten benötigt, wird vor dem Versenden ein
sogenannter ARP-Request (Wem gehört die IP-Adresse und welche MAC-Adresse hast
du?) als Broadcast gesendet. Die entsprechende Station antwortet dann mit ihrer
MAC-Adresse. Jetzt können die Daten mit der richtigen Adressinformation
versendet werden.
Routingtabellen:
Die für das Routing benötigten Tabellen sind auf den Routern und auf den Hosts
vorhanden. Im Minimalfall enthalten sie die Netzwerk-Ids der möglichen
Zielnetzwerke und den jeweils dazugehörenden Next-Hop-Router, also den Router an
den das Paket weitergeleitet werden muss, um auf dem kürzesten Weg sein Ziel zu
erreichen. Die Bestimmung, welcher weg der beste bzw. kürzeste ist, wird über
die Routingtabelle vorgenommen. Die Routenwahl ist nicht statisch, sondern
berücksichtigt die momentane Netzwerksituation und Belastung.
Zum jeweiligen Zielnetzwerk und dem entsprechenden Next-Hop-Router ist in der
Routingtabelle auch das Interface verzeichnet, über das die Daten geschickt
werden müssen.
Default Router:
Befindet sich in einem Subnet nur ein Router, ist es sinnvoll diesen auf allen
Hosts als sogenannten Default Router oder als Default Gateway einzutragen, da so
die Routingtabellen auf den Hosts kleingehalten werden. Der Host schickt dann
nämlich alle Daten, die nicht für das eigene Netzwerk bestimmt sind an den
Default Router, nimmt aber keinen Eintrag in der eigenen Routingtabelle vor.
Routingprotokolle
Es gibt 2 Arten von Routingprotokollen:
- Distance Vector Protocol
Jeder Router lernt wie das Netzwerk aussieht, indem er mit den Nachbarroutern
die Routingtabellen austauscht. In diesen Tabellen sind alle Netzwerke vermerkt,
an die der Router angrenzt. Die Entfernung zu anderen Netzwerken wird in Hops
angegeben. 1 Hop bedeutet z.B. dass das Netzwerk direkt erreichbar ist, 2 Hops,
dass es über 1 Router erreichbar ist usw.... So kann der kürzeste Weg ermittelt
werden. Die Routinginformationen werden periodisch aktualisiert.
Das RIP (Routing Information Protocol) der TCP/IP-Familie arbeitet nach diesem
Prinzip.
- Link State Protocol
Hier werden nicht die gesamten Routingtabellen ausgetauscht, sondern jeder
Router teilt den anderen mit, welche Router er auf direktem Weg erreichen kann.
Das ODPF (Open Shortest Path First) der TCP/IP-Protokollfamilie arbeitet nach
diesem Prinzip.
Das Adress Resolution Protocol (ARP):
Die Adressierung im Ethernet
erfolgt über IP-Adressen. Das ist eine Adresse der 3. Schicht des OSI-Modells.
Wenn Daten über ein Netzwerk transportiert werden, werden sie in ein Frame der
2. Schicht eingekapselt. Auf der Ebene der 2. Schicht werden aber sogenannte
MAC-Adressen verwendet.
Die Frage ist nun wie MAC-Adressen und IP-Adressen einander zugeordnet werden.
Adressauflösung:
Die Adressauflösung, also die Zuordnung von IP zu MAC-Adresse kann statisch oder
dynamisch erfolgen.
statisch:
In einer Host-Datei sind auf jedem Rechner eine Liste von IP-Adressen und die
zugehörigen MAC-Adressen abgelegt. Bei einer Änderung muss die Host-Datei auf
jedem Rechner aktualisiert werden.
dynamisch:
Die Auflösung erfolgt über das ARP. Ein sogenannter ARP-Request nach der
MAC-Adresse zu einer bestimmten IP-Adresse wird als Broadcast ausgesendet. Alle
Hosts vergleichen diese IP-Adresse mit ihrer eigenen. Sind die Adressen
identisch antwortet der betreffende Host mit der ARP-Response, die die
MAC-Adresse enthält.
Diese MAC-Adresse wird nun in einem sogenannten ARP-Cache eingetragen. Bei jeder
neuen Sendung prüft die Station erst im ARP-Cache, ob ihr die MAC-Adresse zur
IP-Adresse schon bekannt ist. Wenn nicht sendet sie den ARP-Request.
Problematisch wäre es in diesem Zusammenhang natürlich, wenn an 2 Stationen die
gleiche IP-Adresse vergeben wurde. Um dies zu vermeiden sendet jede Station beim
Hochstarten einen ARP-Request nach ihrer eigenen Adresse. Erhält sie darauf eine
andere Antwort als ihre eigene MAC-Adresse, meldet sie dem User, dass die
IP-Adresse bereits im Netzwerk verwendet wird.
TCP/IP - Transportprotokolle:
Auf der Transportschicht des OSI-Referenzmodells
gibt es innerhalb der TCP/IP-Protokollfamilie 2 Standardprotokolle, das TCP
(Transmission Control Protocol) und das UDP (User Datagram Protocol). Die beiden
Protokolle unterscheiden sich darin, dass TCP verbindungsorientiert arbeitet
während UDP verbindungslos ist.
Ein verbindungsorientiertes Protokoll braucht man z.b. für die Datenübertragung
via FTP, da es hier ja sehr wichtig ist, dass die Daten sicher ankommen. Will
man aber beispielsweise Daten in Form eines Broadcasts an mehrere Rechner
senden, so ist es besser verbindungslos zu arbeiten, da es nicht dafürsteht mit
jedem Rechner eine eigene Verbindung aufzubauen.
Die Protokolle der Transportschicht sind für den Transport der Daten zwischen
Anwendungen verantwortlich. Die Anwendungen höherer Schichten werden dabei über
sogenannte Portnummern adressiert. Ein gewisser Teil der Portnummern, der
Bereich von 1 - 1023 wird als Bereich der Well-Known-Ports bezeichnet. Hier ist
bekannt welcher Port zu welcher Anwendung gehört, da diese Portnummern fest
vergeben sind.
| 20 |
FTP-Server
(Daten) |
| 21 |
FTP-Server (Steuerung) |
| 23 |
Telnet |
| 25 |
SMTP (Simple Mail Transfer
Protocol) |
| 53 |
DNS (Domain
Name System) |
| 80 |
HTTP-Webserver |
| 119 |
NNTP
(Network News Transfer Protocol) |
TCP-TRANSMISSION CONTROL
PROTOCOL
TCP ist verbindungsorientiert. Vor dem Verschicken von Daten wird zunächst eine
Verbindung zum Zielcomputer aufgebaut, die gesendeten Daten werden vom Empfänger
bestätigt und im Fehlerfall erneut versendet.
Die Daten, die vom TCP an das IP übergeben werden bezeichnet man als
TCP-Segment.
TCP-Header:
Er enthält folgende Elemente:
· Source Port Field
· Destination Port Field
· Sequence Number Field: Sind Daten sequenziert (zerlegt), gibt dieses Feld an,
um den wievielten Teil es sich handelt.
· Acknowledgement Number Field: Position der nächsten Daten und Bestätigung von
bereits erhaltenen Daten
· Header Length Field
· Flag Field: Enthält 6 Flags zur Steuerung des Datenaustausches
· Windows Field: Wird für die Sliding Windows benötigt.
· Checksum Field
· TCP-Optionen
Datenübertragung:
TCP bietet Sicherheit bei der Übertragung von Daten. Wenn
also Daten zerstört werden, verloren gehen, doppelt gesendet werden oder nicht
in der richtigen Reihenfolge sind, muss dies in Ordnung gebracht werden.
Ein wichtiges Element ist das Positive-Acknowledgement-Retransmission-Verfahren
bei dem vom Sender eine Bestätigung des Empfängers erwartet wird. Erst nach
Erhalt dieser Bestätigung werden neue Segmente gesendet, sonst wird die Sendung
wiederholt.
Um zu überwachen, ob ein Segment auch korrekt ankommt, gibt es im Header die
Checksum. Entdeckt der Empfänger hier eine Abweichung, sendet er einfach keine
Empfangsbestätigung.
Über die Sequenznummer im Header können die Segmente in die richtige Reihenfolge
gebracht und doppelte Segmente erkannt werden.
Da die Hosts, zwischen denen Daten ausgetauscht werden sollen, mit ganz
unterschiedlichen Datenraten arbeiten können, muss der Datenfluss in irgendeiner
Weise kontrolliert werden. Dies erfolgt durch den so genannten Sliding Window
Mechanismus. TCP sendet hier mehrere TCP-Segmente aus, bevor es auf Bestätigung
wartet. Der Empfänger teilt dem Sender mit, wie viele Daten er senden darf,
bevor er auf eine Bestätigung warten muss. Die Menge der Daten ist vom
Empfangspuffer abhängig und wird als Window bezeichnet. Bei jeder Bestätigung
wird das Fenster verschoben und ein neuer Bereich wird frei.
|