TCP/IP: Vom Arpanet zum Internet

01.01.2008

Vor 25 Jahren trug so mancher Programmierer eine Ansteckplakette oder ein T-Shirt mit der Aufschrift "I survived the TCP/IP transition" - "Ich habe die Umstellung auf TCP/IP überlebt".

Es war der 1.1.1983, als die Entwickler des Arpanet den sprichwörtlichen Hebel umlegten und das Protokoll NCP [Network Control Program] des Arpanet endgültig ausgedient hatte.

Damit wurde ein weiterer Schritt zum Aufbau des Internets, eines Netzwerks aus Netzwerken, realisiert. Sechs Monate später wurde der militärische Teil des Netzwerks in ein eigenes MILNET ausgegliedert, das Arpanet blieb der Wissenschaft vorbehalten.

Langsam, aber konsequent

Obwohl NCP seit 1969 mehr oder weniger gute Dienste leitete, hatte Bob Kahn von Anfang an das Gefühl, dass etwas falsch lief.

Kahn arbeitete damals für das Unternehmen Bolt, Beranek & Newman [BBN], das für den Aufbau der Infrastruktur des Arpanet verantwortlich war.

Doch anstelle eines proprietären Systems und der damit verbundenen Abhängigkeit von dem einen Lieferanten BBN, der noch dazu oftmals Lieferschwierigkeiten hatte, wollte Kahn eine offene Architektur schaffen, in der "die einzelnen Netzwerke mit Hilfe von Maschinen, die wir Gateways nannten, miteinander in Verbindung stehen. Diese Gateways sollten mit einem Protokoll ausgestattet werden, das dafür sorgt, dass die Daten zu jeder x-beliebigen Maschine weitergeleitet werden können, unabhängig von ihrem Weg." Und vor allem sollte das Protokoll für jeden zugänglich sein.

Plädoyer für eine offene Architektur

Anfang der 1970er Jahre beschäftigte die Wissenschaftler bei der Arpa, der Advanced Research Agency, der in ihrer Geschichte immer wieder ein D für "Defence" vorangestellt wurde, vor allem ein Problem: drei unterschiedliche Netzwerke miteinander zu verbinden.

Ihr Ziel war es, die reibungslose Kommunikation zwischen dem Arpanet, dem "Packet Radio"-Netzwerk [einem Projekt von SRI International, BBN und Collins Radio] und dem "Packet Satellite"-Netzwerk [einer Weiterentwicklung des ALOHA-Net, das von Norman Abramson, Frank Kuo und Richard Binder 1970 an der Universität Hawaii entwickelt worden war] sicherzustellen.

Als Kahn mit der Idee einer "offenen Architektur" zu experimentieren begann, wollte er auch noch andere grundlegende Prinzipien verwirklicht sehen: Effizienz, Einfachheit, Offenheit und "end to end"-Kommunikation: Wie können Host-Computer miteinander über Netzwerkgrenzen und unterschiedliche Technologien hinweg miteinander kommunizieren?

An der Lösung dieses Problems waren nicht nur Kahn und Vint Cerf, damals Assistant Professor in Stanford, beteiligt, sondern Institute an mehreren Universitäten und eine Vielzahl an Studenten.

Internationale Entwicklung

Die ersten Arbeiten an TCP, dem Transmission Control Protocol, fanden an drei verschiedenen Orten statt. Schon allein deswegen war TCP von Anfang an ein internationales Projekt, sagt Cerf.

"Da war einmal mein Lab in Stanford. Der erste Entwurf wurde zur Begutachtung im Herbst 1973 bei einem Treffen an der Universität Sussex vorgestellt, und der erste Aufsatz darüber erschien im Mai 1974 in dem IEEE-Magazin 'Transactions on Communications'. Die erste Spezifikation von TCP erschien ein paar Monate später, im Dezember 1974. Und die ersten Implementierungen fanden kurz darauf in Stanford, bei Bolt, Beranek & Newman und am University College in London statt."

Im Juli 1975 wurde das Arpanet von der DARPA zur Defence Communications Agency ausgelagert. Doch bis TCP vom US-Verteidigungsministerium zum Standard erkoren wurde, musste es mehrmals grundlegend überarbeitet werden.

Die Unterschiede im Design

Neu an TCP war die Implementierung von "Datagram", einem Konzept des französischen Wissenschaftlers Louis Pouzin. Genauso wie Kahn hatte auch Pouzin Anfang der 1970er Jahre Zweifel am Protokoll-Design des Arpanet.

In seinem Netzwerk-Prototyp "Cyclades/Cigale" entwickelte er "Datagram", eine verbindungslose Paketübermittlung, bei der einzelne Pakete auch verloren gehen dürfen.

Das Prinzip von Datagram

In Datagram bedeutet selbst der Ausfall von Netzwerkknoten nicht das Ende der Kommunikation, vielmehr wird mit Irritationen dieser Art gerechnet. Ausserdem erlaubt Datagram den Betrieb beliebiger Dienste.

Im Gegensatz zu "Virtual Circuits", die üblicherweise darauf hindeuten, dass nur bestimmte Services zugelassen werden, erlaubt Datagram die beliebige Erweiterung von Services an den Endpunkten.

Und drittens wird mit einer minimalistischen Architektur sichergestellt, das alle Arten von [Internet-]Netzwerken damit verwirklicht werden können. [Quelle: David D. Clark in "The Design Philosophy of the DARPA Internet Protocols", 1988]

Grundstein für Skype

Ein weiterer Unterschied zwischen TCP und dem frühreren Host-to-Host Protokoll NCP ist, dass nur die Bytes, nicht aber die übermittelten Pakete gezählt werden. Beide Kontrollmechanismen beizubehalten erschien den Entwicklern von TCP als zu kompliziert, schreibt David D. Clark, der ab 1981 für die Architektur von TCP/IP verantwortlich war.

Eine weitere wichtige Entscheidung war die Trennung von TCP [Transmission Control Protocol] in TCP und IP [Internet Protocol]. Mitte der 1970er Jahre, als das Militär vermehrt Interesse an der Computer-Kommunikation zeigte, wurde auch an der Übertragung von Audiosignalen via Packet Switching experimentiert.

Der Computerwissenschaftler Danny Cohen argumentierte damals, dass in der Telefonie das Warten auf das wiederholte Übertragen eines verloren gegangenen Pakets schlimmer sei als dessen Verlust. Das führte, so Cerf, schließlich zur Trennung von TCP, das verantwortlich ist für den verlässlichen Transport der Pakete, und IP.

Aus diesem Grund wurde auch das User Datagram Protocol [UDP] eingeführt, das unter anderem die Basis von Sprachvermittlungsdiensten wie Skype darstellt.

Erster großer Testlauf 1977

Im Juli 1977 kam es zum ersten großangelegten Experiment, Datenpakete mit Hilfe der neuen Protokolle über drei unterschiedliche Netzwerke zu senden und zu empfangen.

Simuliert wurde dabei ein mobiles Szenario auf einem Schlachtfeld: Der Datenverkehr wurde über das mobile "Packet Radio"-Netzwerk in der Umgebung von San Francisco über das Arpanet und einen Satelliten nach London geleitet. Der Rückweg erfolgte über SATNET [ein Satelliten-Netzwerk] in das Arpanet und weiter an einen DEC-Rechner, der am Institut für Informationswissenschaft an der University of Southern California stand.

Kein einziges Bit, so Cerf, sei bei dieser Übertragung verloren gegangen. Zwei Jahre später wurden die Protokolle vom amerikanischen Verteidigungsministerium als Standard anerkannt, und kurze Zeit später begannen die Computerwissenschaftler, einen Plan für die Implementierung und damit den Wechsel von NCP zu TCP/IP zu erarbeiten.

1981 legte Jon Postel in RFC [Request For Comments] 801 den Fahrplan dafür fest. Nicht unbedingt zur Freude aller.

Umstieg [zwangs]geglückt

Zwei Jahre hatten die am Arpanet beteiligten Labs Zeit, ihre Maschinen TCP/IP-tauglich zu machen. Rund 400 Host-Rechner in verschiedenen Städten, Labors und Universitäten mussten auf die neuen Protokolle umgestellt werden.

Um ihren Vorgaben Nachdruck zu verleihen, griffen Postel und seine Kollegen auch hin und wieder zu drastischen Mitteln: Im Frühjahr und Herbst 1982 wurde das Arpanet testweise für ein bis zwei Tage auf TCP/IP umgestellt. Denn das Problem war weniger, die Administratoren von der Sinnhaftigkeit der neuen Protokolle zu überzeugen als von der Unverrückbarkeit der Deadline 1. Jänner 1983.

Dieser Schuss vor den Bug verfehlte seine Wirkung nicht: Abgesehen von ein paar wenigen Unverbesserlichen funktionierte der Wechsel im Großen und Ganzen. Verantwortlich für die Logistik an diesem Tag war übrigens Dan Lynch, heute Winzer im Napa Valley.

(Mariann Unterluggauer)