_TCP/IP für Anfänger_
Freitag, 27.12.97
11.15-13.00 Uhr: Workshop I: TCP/IP für Anfänger
_Teil 1_
moderiert und referiert von [2] Ron Hendrik Fulda und [3] Jan Haul.
Vielleicht aufgrund des ausgefallenen Parallelworkshops war diese
Veranstaltung derartig stark besucht, daß schon zum offiziellen Beginn
um 11.00 Uhr fast keine (kindergartenkleinen) Stühle mehr zur
Verfügung standen. Weil der geplante Referent (Ulf Zimmermann) nicht
anwesend war, begann der Workshop mit 15 Minuten Verspätung unter der
Leitung von Ron und Jan.
Zunächst wurde die Frage gestellt, wozu Netzwerkprotokolle wie TCP/IP
eingesetzt werden. Sie dienen zur betriebssystemunabhängigen
Datenübertragung zwischen Computern und erfüllen dabei auch noch die
Funktionen der Verbindungskontrolle (Hallo? Ist da jemand?),
Adressierung (Wo kommt das Datenpaket her, wie gross ist es und wo
soll es hin?) und der Fehlerkorrektur. Fortgeschrittene Protokolle
beherrschen auch das Routing (Auf welchem Weg kommt das Paket am
schnellsten zum Empfänger?).
In diesem Teil zeigte sich bereits, daß alle Anwesenden in ihrer
Computerpraxis schon TCP/IP benutzt hatten, die meisten jedoch, ohne
sich darunter besonders viel vorstellen zu können. Um zu erklären, auf
welche Art ein Netzwerkprotokoll im System integriert ist. Hierzu
wurde das sogenannte 7-Schichten Modell verwendet:
* Die erste und unterste Schicht ist die physikalische Verbindung
(der Übertragungsweg) zwischen den Computern, in den meisten
Fällen die eine oder andere Art von Kabel (es kann auch ein
Glasfaserstrang oder eine Funkverbindung sein). Diese Verbindungen
werden teilweise Aufgrund ihrer Länge und einem damit verbundenen
Leistungsverlust durch HUBs, MAUs oder REPEATER verstärkt.
* Die zweite Schicht bezeichnet die Topologie der Verkabelung und
die Zugriffsweise der Rechner auf das Netz. Hat man einen
logischen Strang mit zwei offenen Enden, auf den jeder Rechner
zugreifen kann, sobald er frei ist, so hat man die im Ethernet
verbreitete zweite Schicht. Hat man dagegen einen logischen Ring,
in dem jeder Rechner zu einem definierten Zeitpunkt über einen
sogenannten Token auf das Netz zugreifen kann, so hat man z.B. die
im Token-Ring-System verwendete zweite Schicht.
Physikalisch besteht ein Ethernet-System aus einem Kabel, an dem
Rechner mittels eines einfachen Stranges aufgeschaltet sind, und
an dessen offenen EndenTerminatoren (Wiederstände) eine
Datenreflexion verhindern. Unterbricht man das Kabel an einer
Stelle, so kann keiner der Rechner mit einem anderen
kommunizieren. Dem kann man im Ethernet durch die Verwendung eines
HUBs vorbeugen, der den Kabelstrang nach jedem Rechner wieder
aufnimmt, so daß physikalisch das Kabel wie in einem Sternsystem
geführt wird, logisch aber immer noch einen Einzelstrang mit
offenen aber terminierten Enden darstellt. Der HUB kann nun
erkennen, wenn irgendwo ein Kabeldefekt vorliegt und den
betroffenen Kabelteilstrang samt Rechner aus dem Reststrang
herausnehmen, so daß die übrigen Rechner in ihrer Kommunikation
nicht beeinflußt werden und der Kabelstrang weiterhin logisch
linear verläuft. Desweiteren arbeiten HUBs auch als
Signalverstärker; einige können auch als Router arbeiten und so
entscheiden, in welche Richtung Datenpakete am Besten gesendet
werden, um schnell zum Empfänger zu gelangen.
Im Token-Ring-System sitzt zentral eine MAU, die mit jedem Rechner
über ein Hin- und ein Rückkabel verbunden ist. Physikalisch ergibt
sich ein sternförmiger Kabelstrang von der MAU zu den Rechnern,
logisch erhält man einen ununterbrochenen Ring (mit gewelltem
Rand). Die MAU kann hierbei bei einem Kabeldefekt den Rechner am
defekten Strang abklemmen, so daß die restlichen Rechner immer
noch über einen ununterbrochenen Ring verfügen und miteinander
kommunizieren können.
* Die dritte Schicht beschäftigt sich mit dem Problem: Wie packe ich
die Datenpakete, wie verwalte ich Absender- und Empfängeradresse
(die Absenderadresse wird für die Rückmeldung bei Fehlern
benötigt).
Protokolle, die in dieser Ebene eingesetzt werden sind: TCP/IP,
SPX/IPX, NETBios, X25, Framerelais, SNA, Appletalk, ...
Diese Protokolle können für sich alleine stehen oder miteinander
kombiniert, bzw. ineinander verschachtelt werden. Im Workshop
wurde hauptsächlich das TCP/IP = Transfer Control Protocol /
Internet Protocol betrachtet.
Was ist nun TCP/IP?
Vereinfacht besteht es aus zwei Schichten, die untere, das IP, kümmert
sich um die Adressierung und die Zustellung der Datenpakete, darauf
liegt das TCP, das die Verbindung zwischen den beteiligten Rechnern
kontrolliert, die korrekte Zustellung und Zustellungsreihenfolge der
Datenpakete managt.
In der unteren Schicht des IP leigt auch das ICMP, das Internet
Control Message Protocol als Teil von IP; z.B. arbeitet das
Dienstprogramm Ping als eines von wenigen Programmen mit ICMP-Echo.
Im TCP eingebettet liegt ein funktionell begrenztes Protokoll, das UDP
= User Datagramm Protocol, es kümmert sich lediglich um die Verbindung
zwischen den Rechnern, kontrolliert aber keine Zustellverifikation
oder Paketgröße. Es wird z.B. von Nameservern für die erste
Kontaktaufnahme verwendet.
Im IP erfolgt die Adressierung im Format aaa.bbb.ccc.ddd:pp, wobei aaa
bis ddd für 4 Byte dezimale Adresse und pp für 16 Bit Portnummer
stehen.
Eine komplette IP-Adressierung enthält für den Absenderrechner 4 Byte
Adresse und 2 Byte Absenderanwendungsport und das gleiche noch einmal
für den Empfangsrechner.
Die Adresse unterteilt sich in verschiedene Teile: Netz-Adresse und
Host-Adresse, wobei die Grenze variabel ist. Anhand der Netz-ID leiten
die Router die Nachrichtenpakete in die richtige Richtung weiter.
Diese Adressen sind weltweit eindeutig! Allerdings ist durch den
begrenzte Anzahl der verfügbaren Adressen auch die Anzahl der
angeschlossenen Rechner limitiert. Deshalb soll in naher Zukunft die
Adressierung von IP4 (4 Byte) auf IP6 (6 Byte) umgestellt werden, was
der Expansion des Internets eine zumindest mittelfristige Zukunft
gewährt.
Die etwas kryptisch zu lesenden Ziffernfolgen der IP-Adressen bilden
hierbei einen physikalischen Namensraum, die meist geläufigeren
Domain-Namen einen logischen Namensraum. Der physikalische Adressraum
ergibt sich, da alle an einen Server angeschlossenen Rechner im
gleichen Ziffernbereich zumindest eines Bytes der IP-Adresse liegen,
während sich der logische Namensraum durch den Namen einer Domain
ergeben, die durch Nameserver frei definierten Rechnern zugeordnet
werden, auch wenn sie an unterschiedlichen Enden des Erdballs liegen.
Die bis zum Ende konstant ca. 50 Teilnehmer liessen sich nur mit Mühe
bewegen, nach der bereits 45 minütigen Überziehung des geplanten
Zeitrahmens den Raum für den nächsten Workshop freizumachen. Nach
einer kurzen Pause wolte man sich in einen anderen Raum zu vertagen.
Da dieser aber kurzfristig belegt war, mußte der zweite Teil auf den
Nachmittag verschoben werden.
_Teil 2__
_Workshop: TCP/IP für Anfänger
referiert und moderiert durch [4]Ulf "ALF" Zimmermann
Zu Beginn erfolgte eine ungefähre Wiederholung des ersten Teils in
Kurzform. Trotz der Zweiteilung des Workshops und war die
Teilnehmerzahl mit ca. 40 Teilnehmern für mich überraschen hoch.
Gleich zum Anfang zeigte sich aber, daß unterschiedliche Referenten
durchaus unterschiedliche Meinungen zu den selben Themen haben können:
U. Zimmermann stellte das TCP/IP-Protokoll abweichend vom
7-Schicht-Modell als ein nur 4-Schichtiges Modell dar. Die erste
Schicht ist der physikalische Link zwischen den Rechnern (das Kabel),
die zweite Schicht ist das Netzwerk mit seinem physikalischem Aufbau
und der IP-Adressierung. Die dritte Schicht wird durch den
Mailtransport über TCP gebildet und die vierte Schicht stellen die
darauf zugreifenden Applikationen (Userprozesse) wie z.B. FTP, Telnet
oder e-Mail. Dabei sind die Ebenen 1-3 durch das Betriebssytem
vorgegeben oder an dieses gebunden und die vierte Schicht setzt
relativ unabhängig von den Schichten 1-3 darauf auf, sie müssen nichts
voneinander wissen.
Im Anschluß wurden die verschiedenen Header der verschiedenen
Protokolle im Detail vorgestellt. Darauf wurde der Aufbau einer
Verbindung zwischen zwei Rechnern genauestens erklärt, wobei
unterschiedliche Kommunikationsvarianten veranschaulicht wurden. Einen
Unterschied gibt es zum Beispiel zwischen HTTP-Zugriffen, die nach
Übertragung jedes Dokumententeils komplett abgebrochen werden, und
FTP-Zugriffen, bei denen zu Beginn eine Kontroll-Verbindung eröffnet
wird, die während der gesamten FTP-Sitzung bestehen bleibt. Der
Request wird dabei als TCP-Verbindung ausgeführt, während z.B. die
Antwort auf einen derartigen FTP-TCP-Request für das Kommando "DIR"
als FTP-Daten-Verbindung zurückgesendet wird. Die Anzahl der
Kontroll-Verbindungen limitiert die Anzahl der eingeloggten User auf
einem derartigen Dienst, da für eine Kontroll-Verbindung uch immer ein
Daten-Verbindungs-Anteil reserviert wird.
Danach ging es um die Domain Name Server (DNS), die den physikalischen
IP-Adressen im oben erwähnten 4-Byte-Format leicht zu merkende Namen
wie "www.yahoo.com" zuordnen. Der Aufbau der Behandlungs-Hierarchie
bei einer Anfrage an einen DNS wurde erläutert, wobei auch Sätze wie
"Je niedriger die Priorität ist, umso höher ist sie." nicht mehr zur
Erheiterung des inzwischen um zwei Drittel geschrumpften Publikums
führten. Es folgten Ausführungen zur allgemeinen Hierarchie von
IP-Adressen, dem genauen Vorgehen beim Lookup nach IP-Nummern bzw.
Reverse-Lookup nach Domain-Namen. Daran schlossen sich Erläuterungen
zur allgemeinen Netzwerk-Domain-Hierarchie, der Beurteilung der
Provider-Geschwindigkeiten, dem Ablauf von Domain-Registrierungen und
Verwaltungen an.
Ich schloß mich den vorangegangenen zwei Dritteln der Hörerschaft an
und verließ den Workshop nach zweieinviertel Stunden um 19.15 Uhr, da
er zu diesem Zeitpunkt nichts mehr mit dem eigenlichen Thema zu tun
hatte.
_Empfehlenswerte Literatur zum Thema, lt. U. Zimmermann:
_W.R.Stevens: TCP/IP illustrated Volume 1; [5]Addison-Wesley
(Grundlagenbuch zur Programmierung)
C. Hunt: TCP/IP Netzwerk Administration; [6]O-Reilly (Grundlagenbuch
z.B. zur Web-Serververwaltung)
[7] Derk Marko Reckel
References
2. mailto:h...@ccc.de
3. mailto:pi...@ccc.de
4. mailto:u...@alameda.net
5. http://www.aw.com/
6. http://www.ora.com/
7. mailto:derk....@link-goe.de