Das TCP/IP Referenzmodell oder auch DoD-Stack genannt, ist aus einer vorwiegend praktischen Sicht spezifiziert worden. Eines der wichtigsten Designziele im ARPANET war die Fähigkeit mehrere Netze nahtlos zusammenzuschliessen. Diese Architektur wurde später nach den zwei wichtigsten Protokollen TCP/IP-Referenzmodell genannt.
Das TCP/IP Modell ist in fünf Schichten organisiert wie folgende Abbildung zeigt (Comer/Stevens, 1991):
Application-Layer | Anwendungsschicht | |
Transport-Layer | Transportschicht | |
Internet-Layer | Internet-Schicht | |
Network-Interface-Layer | Netz-Zugangs-Schicht | |
Hardware-Layer |
Aufgabe der Netz-Zugangsschicht ist die Zustellung der Daten zwischen Rechnern am selben Netz. Die hierfür erforderlichen Protokolle sind nicht durch den Standard festgelegt. Das TCP (Transmission Control Protocol) stellt auf höherer Ebene eine fehlergesicherte Übertragung der Daten sicher - deshalb braucht diese Funktion nicht durch die Netz-Zugangsschicht bereitgestellt werden (Tanenbaum, 1998). Ein wesentliches Protokoll dieser Schicht ist ARP/RARP mit dessen Hilfe logische (IP-Adressen) auf physikalische Adressen (MAC) abgebildet werden.
Das oben genannte Designziel führte schliesslich zur Wahl eines paketvermittelten Netzes auf der Grundlage einer verbindungslosen Vernetzungsschicht. Die Internet-Schicht hat die Aufgabe, den Rechnern im Netz zu ermöglichen, Pakete in jedes beliebige Netz zu senden und die Pakete unabhängig voneinander an das (in einem anderen Netz befindliche) Ziel zu befördern. Die Pakete können dabei sogar in einer anderen Reihenfolge ankommen, als sie abgeschickt wurden. In diesem Fall ist es die Aufgabe der höheren Schichten, dafür zu sorgen, dass die Pakete wieder richtig angeordnet werden. Die Internet-Schicht definiert ein offizielles Paketformat und Protokoll namens IP (Internet Protocol). Die Internet-Schicht hat die Aufgabe, IP-Pakete richtig zuzustellen. Das Routing von Paketen ist hier die wichtigste Aufgabe. Damit ist die Internet-Schicht von TCP/IP der Netzwerk-Schicht von OSI in der Funktionalität sehr ähnlich.
Wie die OSI-Transportschicht, soll die Transportschicht des TCP/IP-Modells Partnereinheiten an den Quell- und Zielhosts die Kommunikation ermöglichen. Hier wurden zwei Ende-zu-Ende Protokolle definiert. Das TCP (Transmission Control Protocol) ist ein zuverlässiges, verbindungsorientiertes Protokoll, durch das ein Bytestrom von einem Rechner fehlerfrei zu einem anderen irgendwo im Internet geleitet wird. Es zerlegt den eingehenden Bytestrom in einzelne Nachrichten und leitet sie an die Internet-Schicht weiter. Am Ziel werden sie vom TCP-Prozess auf dem Zielrechner wieder zu einem Ausgabestrom zusammengesetzt. TCP gewährleistet auch die Flussteuerung um sicherzustellen, dass ein langsamer Empfänger nicht von einem schnellen Sender überschwemmt wird.
Das zweite Protokoll auf dieser Schicht ist das UDP (User Datagram Protocol). Dies ist ein ungesichertes, verbindungsloses Protokoll für Anwendungen, die die Sicherungs und Abfolgefunktionen von TCP selbst implementieren wollen. Dies ist vor allem dann der Fall, wenn Schnelligkeit der Zustellung wichtiger ist als ihre Genauigkeit z.B. bei der Übermittlung von Sprache oder Videosequenzen.
Die oberste Schicht des TCP/IP-Stacks ist die Verarbeitungsschicht. Explizite Sitzungs- und Darstellungsschichten fehlen, da man bei der Entwicklung keine Notwendigkeit für deren Implementation sah. Die Verarbeitungsschicht umfasst alle höherschichtigen Protokolle. Zu den klassischen gehören TELNET (virtuelles Terminal), FTP (Dateitransfer), und SMTP (E-Mail). Im Laufe der Jahre wurden viele andere Protokolle hinzugefügt, wie z.B. NNTP (Austausch von Nachrichten), HTTP (Holen von Seiten aus dem WWW) oder DNS (Zuordnung von Namen zu IP-Adressen) (Tanenbaum, 1998).