Ein Schüler kam zu seinem Meister. Er wartete lange, bis der Meister aus seiner tiefen Meditation aufgetaucht war und seinen Blick vom Minesweeper-Bildschirm gelöst hatte.
"Meister", fragte er dann, " kann ein Programm feststellen, ob der Computer, auf dem es läuft, mit dem Internet verbunden ist?".
"Nein", antwortete der Meister, klickte auf eine Mine und grunzte. Der Schüler schlich sich davon, um über diese Antwort nachzudenken.
Am nächsten Tag kam der Schüler wieder zu seinem Meister. Er wartete, bis dieser seine Solitär-Partie verloren hatte, und reichte ihm ein Blatt Papier mit einem ausgedruckten Listing. "Meister", sagte er, "ich habe einen Weg gefunden, wie ein Programm doch feststellen kann, daß der Computer, auf dem es läuft, mit dem Internet verbunden ist.". Und er beschrieb seine Lösung:
"Das Internet ist eine Ansammlung von Hunderttausenden oder Millionen von lokalen Netzen, die alle TCP/IP als Protokoll benutzen und über Router miteinander verbunden sind. Ein Computer, der mit dem Internet verbunden wird, tut das über eine Wählverbindung im DFÜ-Netzwerk. Ein Programm braucht also nur die API-Funktion RASEnumConnections aufzurufen. Wenn eine Verbindung besteht ist der Computer mit dem Internet verbunden.".
Der Meister dachte 512ms über diese Antwort nach. Dann sagte er zum Schüler: "Geh nach oben in das Büro des Großmeisters. Der hat einen Laptop mit Modem, den er sich angeschafft hat um auch auf Reisen unsere Haiku-Datenbank abfragen zu können. Leider hat er dabei übersehen, daß die meisten seiner Reisen nach innen führen und er dort keinen Telefonanschluß hat. Deshalb dient das Notebook als Türstopper. Probiere Deinen Code dort aus".
Das tat der Schüler und wenig später kam er aufgeregt zum Meister zurück: "Meister!", rief er, "Ich habe mit dem DFÜ-Netzwerk eine Verbindung in unser eigenes LAN aufgenommen und meine Funktion sagt, ich wäre mit dem Internet verbunden gewesen. Sind wir das Internet?".
Der Meister atmete tief durch und beruhigte den Schüler: "Nein, das sind wir nicht. Was hast Du gelernt?"
"Daß DFÜ-Netzwerkverbindungen auch benutzt werden können, um Rechner mit anderen Rechnern und anderen lokalen Netzen zu verbinden, und nicht nur mit den Einwahlrechnern von Internet-Providern. Das Netzwerk, in das man sich einwählt kann auch ebenso wie das Internet selbst, aus mehreren Segmenten mit Routern dazwischen bestehen. Es nicht einmal richtig, daß jede DFÜ-Netzwerkverbindung TCP/IP als Protokoll transportieren muss. Deshalb kann die Existenz einer aktiven DFÜ-Verbindung nicht als Kriterium für eine Internet-Verbindung dienen." antwortete der Schüler brav.
"Gut", sagte der Meister, "geh jetzt zu diesem Computer dort drüben in der Ecke.". Der Schüler gehorchte. "Siehst Du irgendwelche Anschlüsse, über die eine DFÜ-Netzwerkverbindung aufgebaut werden könnte?" fragte der Meister. "Nein", antwortete der Schüler, "nur das Netzwerkkabel unseres LANs.".
"Versuche mal ein ping www.microsoft.com", schlug der Meister vor. Das tat der Schüler. "Oh Meister!", erschrak er als er die Ausgabe sah, "Ich bekomme eine Antwort! Sind wir also Microsoft?". Der Meister blickte den Schüler mitleidig an und sagte: "Geh nach nebenan zu Meister Pinguin und laß Dir dieses Wunder erklären.".
Als der Schüler wiederkam fragte der Meister wieder "was hast Du gelernt?". Und der Schüler antwortete:
"Daß man auch alle Rechner eines LANs mit dem Internet verbinden kann ohne das DFÜ-Netzwerk zu benutzen. Ja, daß das eigentlich sogar der normale Zustand war, bevor die vielen Millionen Einzelplätze dazugekommen sind, die nur über Wählleitungen zeitweise am Internet teilnehmen. Dazu wird im LAN ein Router aufgestellt - das kann ein kleines Kästchen sein, oder wie bei Meister Pinguin eine ganze Workstation, und dieser Rechner vermittelt dann die TCP/IP-Pakete zwischen dem Internet und den Rechnern im LAN."
"Und was verrät Dir das in Bezug auf Deine ursprüngliche Frage?" wollte der Meister wissen. Der Schüler dachte einmal wirklich ernsthaft nach, eine besonders seltene Erfahrung, und antwortete:
"Ein Programm auf einem Computer kann nicht von sich aus feststellen, ob dieser Computer mit dem Internet verbunden ist.".
Der Schüler ging und der Meister wandte sich wieder seinen Studien des Minesweeper-Feldes zu. Er dachte "Wenn ich in polynomieller Zeit von einer gegebenen Minesweeper-Stellung sagen kann, ob sie konsistent ist oder nicht, dann würde das P=NP beweisen.". Gerade hatte der das Problem fast gelöst und wähnte sich bereits reich, berühmt und bewundert, als der Schüler wieder hereinplatzte.
"Meister! Es geht doch!", rief er. Der Meister sah ihn an, wie etwas Weiches, in das er auf dem Weg in den Steingarten getreten war. "Und wie diesmal?", fragte er.
"Ganz einfach. Du hast es mir selber gezeigt", antwortete der Schüler, "Ich führe einfach ein Ping nach http://www.microsoft.com aus. Wenn das gelingt, dann ist der Computer mit dem Internet verbunden". Der Schüler wartete auf Lob für diese geniale Idee.
Aber der Meister blickte finster.
"In einer Zeit vor Deiner Zeit lebte einmal ein Physiker namens Nils Bohr, der eine populäre Theorie mitformulierte, nach der die Beobachtung eines Systems dieses System verändert.", sprach der Meister in Rätseln. "Geh nocheinmal zu Meister Pinguin und beschreibe ihm Deine Lösung.".
Als der Schüler wiederkam war er niedergeschlagen. Ohne dazu aufgefordert zu werden berichtete er was er gelernt hatte:
"Das ICMP-Paket, das ich von meinem Ping aus los sende, um das Bestehen einer Internet-Verbindung zu testen, wird von Meister Pinguins Router empfangen. Dort wird festgestellt, daß es nicht für einen Rechner in diesem LAN bestimmt ist. Daraufhin baut Meister Pinguins Router eine Wählverbindung auf und bringt unser LAN damit an das Internet. Mein Ping hat also anstatt zu prüfen, ob eine Verbindung besteht, eine solche aufgebaut."
"Das kostet Geld, also musste ich Meister Pinguin versprechen, meine Idee nicht auszuführen. Er ist dabei recht deutlich geworden, und auch ein bisschen lauter als sonst.", fügte der Schüler kleinlaut bei und ging.
Der Meister war mit seinem Schüler zufrieden, bis er am nächsten Tag schon wieder in seiner Tür stand.
"Meister! Die großen Meister aus Redmond haben eine Lösung. Sie heißt GetInternetConnectedState und sie verrät mir, ob mein Computer mit dem Internet verbunden ist". So rief der Stunden im Triumph aus.
Der Meister, dem die Erwähnung der Schule aus Redmond immer den Magen übersäuerte, runzelte die Stirn und lief leicht rot an. "Hast Du das auch ausprobiert?", ermahnte er den Schüler.
"Nein, es kommt aus Redmond", antwortete der frech.
Dafür schickte der Meister ihn zuerst eine Woche lang den Steingarten rechen und dann ein Testprogramm schreiben, das die Funktion auf allen bisher ausprobierten Situationen versucht. Der Student tat das und der Meister litt nocheinmal mit ihm, als er zusammenfasste:
"Meister, GetInternetConnectedState tut nichts anderes als die Einstellungen der Default-Verbindung des Internet-Explorers zu lesen. Es liefert immer wahr wenn die Verbindung über ein LAN hergestellt werden soll. Meister Pinguin würde mich nur noch Microcode für Tischgrills schreiben lassen, wenn ich das verwände. Bei Wählverbindungen berücksichtigt es die Einstellungen zum Autodial nicht richtig und kann nicht mehrere Verbindungen auseinanderhalten. Außerdem setzt es eine Installation und vollständige Konfiguration von Internet Explorer 4.0 voraus um überhaupt funktionieren zu können."
"Außerdem", sprach der Schüler, "wollte ich diese Frage doch nur deshalb beantwortet haben, um in regelmäßigen Abständen nachsehen zu können, ob neue Bilder der Sonnenblume von der Webcam bereitgestellt sind. Selbst wenn ich alle Schwierigkeiten ignoriere und Meister Pinguins Strafe hinnähme, wüsste ich immer noch nicht, ob ftp://www.sonnenblume.zen es im Moment erlaubt die Bilder herunterzuladen, oder ob das Kontingent gleichzeitiger Verbindungen wieder mal ausgelastet ist."
"Meister, ist es also richtig, daß ein Programm wirklich nicht feststellen kann, ob ein Computer mit dem Internet verbunden ist?"
"Ja", antwortete der Meister, "Habe ich das denn nicht gleich gesagt? Und bis morgen definierst Du das Internet.". Dann klatschte er mit einer Hand und machte Feierabend.
E-Mail: marian@marian-aldenhoevel.de