Hosted at Sorceforge.net next up previous contents
Next: E-Mails Up: Hitchhiker's Guide to the Previous: Einleitung   Contents

Subsections

Grundlagen

In diesem Kapitel werden die unteren Schichten des Internets, also die Basis, auf der alle folgenden Kapitel aufbauen werden, vermittelt.

Das OSI-Schichtenmodell

Man untergliedert die Protokolle des Internets in verschiedene Schichten, definiert schon 1982 durch das OSI3-Schichtenmodell (siehe Grafik

Figure 1: Das vereinfachte OSI-Schichtenmodell
\includegraphics[scale=0.6]{.cached/37df8a391bf2b6006aa3162efc6b5d49.eps}
[*]).

Je weiter "`oben"' ein Protokoll liegt, so abstrakter ist es. Mit diesen Protokollen werden wir uns am meisten beschäftigen. "`Unten"' liegt zum Beispiel die physische Schicht: Das entspräche praktisch dem Netzwerkkabel. Da uns aber nur die Software interessiert, wird hier darauf nicht eingegangen werden.

Auf der Transportschicht ist das Protokoll IP4angesiedelt. IP ist für die grundlegende Kommunikation aller Rechner im Internet zuständig. Eine Schicht höher (nicht abgebildet) liegt TCP5. Dieses Protokoll sorgt dafür, dass die mit IP versendeten Pakete am Ziel auch ankommen. Auf der Anwendungsebene schließlich sind alle "`hohen"' Protokolle angesiedelt, namentlich SMTP, POP3, HTTP und NNTP, denen je ein einzelnes Kapitel gewidment ist.

IP

Heute sorgt für die Kommunikationsfähigkeit aller Knoten im Internet die Version 4 des IP.

IPv4 adressiert alle Rechner mit Hilfe eines vier Byte langen "`Words"', untergliedert in vier Zahlen mit je einem Byte. Was sich hier etwas kompliziert anhört ist ganz einfach: 66.35.250.209 ist zum Beispiel eine gültige IP-Adresse. Jede Zahl darf (wegen der 1-Byte-pro-Zahl-Grenze) maximal 255 (die 0 wird mit einbezogen) betragen.

Besondere IP-Adressen sind solche, die

Jedes Paket wird auch mit einer TTL versehen, mehr dazu [*].

TCP

Ein gravierender Nachteil von IP ist allerdings die mangelnde Fehlertoleranz: Ist Netzlast hoch, kommen viele Pakete6nicht am Ziel an. Deswegen wurde ein weiteres Protokoll entworfen, TCP. TCP sorgt dafür, dass die via "`normalem"' IP versendeten Pakete auch am Ziel ankommen.

Dies erreicht TCP vereinfacht gesagt dadurch, dass es die Pakete nummeriert. Kommt dann ein Paket am Ziel nicht an, fordert der Zielrechner es erneut.

Auch ergänzt TCP IP um sogenannte Ports: Auf jedem der insgesammt $ 2^{16}$ Ports (0 bis 65535) kann ein eigener Dienst (HTTP, SMTP, POP3, IMAP, DNS, etc.) "`lauschen"'. Dadurch erst wird die Dienstevielfalt des Internets möglich.

Um zu einem TCP Port eines Hosts zu connecten, benutzt man unter guten System (Linux, Hurd) den Kommandozeilenbefehl telnet (siehe Screenshot

Figure 2: Telnet
\begin{figure}\begin{center}\begin{small}
\begin{verbatim}iblech@thestars ible...
...host.
iblech@thestars iblech $\end{verbatim}
\end{small}\end{center}\end{figure}
[*]). Um also zu Port X des Hosts Y zu connecten, gibt man ein:
telnet Y X

Will man eine Übersicht der offenen Ports (Ports, an denen ein Dienst lauscht) haben, verwendet man einen Portscanner.

Portscanner verbinden sich praktisch mit jedem möglichen Port des Zielsystems. Wird die Verbindung aufgebaut, ist der Port offen und kann angezeigt werden. Ein guter Portscanner unter Linux und anderen Unix-basierten Systemen ist nmap (siehe Screenshot

Figure 3: Nmap
\begin{figure}\begin{center}\begin{small}
\begin{verbatim}iblech@thestars genu...
...ds
iblech@thestars genuineng $\end{verbatim}
\end{small}\end{center}\end{figure}
[*]).

UDP

UDP ergänzt IP lediglich um die schon von TCP bekannten Ports, nicht aber um die Fehlertoleranz.

UDP kommt zum Beispiel bei der Übertragung von Audio- und Video-Streams zum Einsatz, da dort zum einen die häufige Neu-Übertragung von Paketen, was natürlich die verfürbare Bandbreite noch weiter schmälert, fehlt. Dies ist allerdings bei solchen Übertragungen nicht wichtig: Fehlt ein Frame, kommt schon sehr schnell der nächste. Dieses Fehlen ist dann nur als Knacken zu hören bzw. als kurze Pause zu sehen.

ICMP

ICMP wird7 nur zur Statusübertragung für TCP/UDP/IP eingesetzt, zum Beispiel ob der Zielhost existiert, eine Route verfügbar ist usw.

Über ICMP werden auch sogennannte "`Pings"' übertragen. Pings sind kleine Pakete, die, am Zielrechner angekommen, von diesem sofort zurückgeschickt werden. So kann man die Erreichbarkeit von Hosts testen (siehe Screenshot

Figure 4: Ping
\begin{figure}\begin{center}\begin{small}
\begin{verbatim}iblech@thestars ible...
...02 ms
iblech@thestars iblech $\end{verbatim}
\end{small}\end{center}\end{figure}
[*]).

Routing

Eine Frage blieb bisher ganz unbeantwortet: Wie werden die Pakete nun eigentlich von Rechner A nach B transportiert, wenn keine direkte Leitung zum Ziel vorhanden ist?

Um nicht jeden Computer des Internet mit jedem anderem Computer zu vernetzen, benutzt man sogenannte Router.

Das Bild

Figure 5: Route von A nach B
\includegraphics[scale=0.6]{.cached/3e153e524baecdffaa6f34c1080cf877.eps}
[*] veranschaulicht dies. Jeder Rechner besitzt8 eine Routing-Tabelle. In dieser Tabelle ist festgelegt, welche Verbindungen (Leitungen) zu welchen Rechnern führen.

Im Beispiel würde gelten:

TTL

Jeder Router verringert die TTL10 jedes Pakets, welches ihn passiert.

Angenommen, der Startwert ist 255 (theoretisches Maximum) und ein Paket wandert über 16 Router bis zum Ziel, so wird die entgültige TTL (die, die der Zielrechner zu Gesicht bekommt), nur noch 239 betragen.

Erreicht die TTL zu irgendeinem Zeitpunkt 0, so wird das Paket verworfen und den Quellrechner via ICMP über das Problem informiert.

Viele Betriebssysteme verwenden dabei eine andere TTL als Startwert. Kennt man also die Start-TTL eines Rechners (ermittelbar via einem Ping (End-TTL wird geliefert) und Traceroute (siehe nächster Abschnitt; Anzahl der Hops (Router) zwischen Quell- und Zielrechner werden bekannt)), so kann man das eingesetzte Betriebssystem mit einiger Gewissheit vorhersagen (siehe Screenshot

Figure 6: Betriebssystem-Vorhersage mit Hilfe der TTL
\begin{figure}\begin{center}\begin{small}
\begin{verbatim}iblech@thestars ible...
...m als
Start-TTL 254 einsetzt.]\end{verbatim}
\end{small}\end{center}\end{figure}
[*]).

Traceroute

Mit Hilfe des Befehls traceroute (tracert auf manchen schlechten Systemen) wird die Route zu einem beliebigen Zielrechner angezeigt (siehe Screenshot

Figure 7: Traceroute zu www.latein.de
\begin{figure}\begin{center}\begin{small}
\begin{verbatim}traceroute to www.la...
...12 rohde.net (217.160.106.142)\end{verbatim}
\end{small}\end{center}\end{figure}
[*]).

Traceroute benutzt dabei keine Magie: Es setzt einfach die Start-TTL zuerst auf 1. Damit kommt ein Paket also nur bis zum ersten Router, welches ein ICMP-Time-to-Live-exceeded-Paket zurück sendet, womit der erste Hop bekannt ist. Dann wiederholt traceroute das Verfahren mit einer TTL von 2, erhält damit den nächsten Router, usf.

Abschluss

Zu diesem Zeitpunkt sollte folgenden klar sein, um die nächsten Kapitel zu verstrehen:



Footnotes

... OSI3
Open System Interconnection
... IP4
Internet Protocol
... TCP5
Transport Control Protocol
... Pakete6
IP unterteilt Sendedaten in Pakete
... wird7
von einigen kryptographischen Zwecken einmal abgesehen...
... besitzt8
heutzutage sind die Routing-Tabellen dynamisch, aber das Prinzip ist das gleiche
... ISP9
Internet Service Provider
... TTL10
Time to Live

Hosted at Sorceforge.net next up previous contents
Next: E-Mails Up: Hitchhiker's Guide to the Previous: Einleitung   Contents
Ingo Blechschmidt 2003-08-07