German Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Russian Serbian Slovak Spanish Swedish Thai Turkish Welsh

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)

  1. Zunächst schickt Computer 1 ein Paket, in dem steht, dass er eine Verbindung zu Computer 2 aufbauen möchte.
  2. Darauf antwortet Computer 2, dass er dazu bereit ist.
  3. 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.