Übersicht

  => Ping Pong mit . . .
  => Sherlock Holmes
  => Sockets
  => Aufgaben

Ping Pong mit . . .

Das Programm ping schickt ein paar Datenpakete zur Adresse, die man hinter ping angegeben hat. Es wird gleichzeitig festgehalten, wie lange die Pakete benötigen, und ob Pakete verloren gegangen sind. Beispiel:

ping www.wspiegel.de

Im Ergebnis seht ihr später die Angabe TTL, das steht für Time To Live. TTL macht erst Sinn im Zusammenhang mit dem nächsten Abschnitt! Man kann ping viele Parameter übergeben, wichtiger finde ich jedoch das Anwendungsfeld von ping: Was glaubst du, wo & warum wird ping eingesetzt?
Antwort: _____________________________________________________________

Lesefutter: In der Einführung zum Thema Netzwerke den Abschnitt 7, im TCP/IP-Skript den Abschnitt Verbindungsprüfung (Leseaufgabe!).

Aufgaben: Nr. 1-3


<<<

Sherlock Holmes

Mit tracert (Unter Linux: traceroute) kann man Sherlock Holmes spielen, ich zitiere aus der Red-Hat-Linux-Dokumentation: tracert "zeigt die von IP-Paketen verwendete Strecke auf ihrem Weg zu einem bestimmten Netzwerk- (oder Internet-)Computer an. Angezeigt werden IP-Adressen und Name (sofern möglich) des Computers zusammen mit der von den Paketen zurückgelegten Strecke. Das Programm wird als Netzwerkfehlersuchtool verwendet." Beispiel:

tracert www.wspiegel.de

TTL (Time To Live) bezieht sich auf die Anzahl der Stationen auf dem Weg durchs Netz, bei jedem Computer wird der Zähler TTL um eins vermindert, und ist man bei 0 (Null!) angekommen, dann "stirbt" das Paket, es wird also nicht mehr weiter geleitet.

Lesetipp: Siehe oben unter ping und die Leseaufgabe!.

Aufgaben: Nr. 1-3

<<<

Sockets

Ports kann man sich als Zugangspunkte für eine Netzwerk-Verbindung vorstellen: Dadurch kann man auf einer TCP/IP-Verbindung mehere Anwendungen laufen lassen, Beispiel: ftp benutzt den Port 21. Die Nummern 0 bis 1023 sind für die häufigsten Dienste reserviert (Beispiel: http, telnet). Zu den Port-Nummern gibt es ein RFC - Assigned Numbers, das aber obsolet (veraltet!) ist und ersetzt wurde durch RFC 3232 ("RFC 1700 is Replaced by an On-line Database"). Man kann Ports als Steckdosen betrachten, übersetzt: Sockets. Der Verbindungsaufbau zu einem Port entspricht dann dem Einstecken! Es gibt hierfür die sogenannte Berkeley Socket-Library, die diverse Funktionen zum Umgang mit Sockets bereitstellt. Wichtig sind für uns erst mal folgende vier Funktionen: connect, close, send und receive.

Die Erklärung kommt aus der englischen Python-Dokumentation! Ein einfacher TCP-Client sieht so aus:

1    from socket import *        # get socket constructor and constants
2    myHost = 'localhost'        # server machine, '' means local host
3    myPort = 8888               # listen on a non-reserved port number
4
5    sock = socket(AF_INET, SOCK_STREAM)  # make a TCP socket object
6    try: # versuche Verbindungsaufbau
7        sock.connect((myHost, myPort)) # mit dem Server verbinden
8
9        print "Verbunden mit dem TCP-Server!"
10       daten = "Hier der einfache Client!"
11       sock.sendall(daten)        # daten senden
12       print "Gesendet:", daten
13       antwort = sock.recv(1024)  # antwort vom Server erhalten
14       print "Antwort:", antwort
15       daten = raw_input('Eingabe: ')
16       while len(daten) > 0:       # Solange senden, bis leere Eingabe!
17           sock.sendall(daten)
18           print "Gesendet:", daten
19           antwort = sock.recv(1024)
20           print "Antwort:", antwort
21           daten = raw_input('Eingabe: ')
22       sock.close() # socket-Verbindung beenden
23       print 'Das wars . . .'
24   except:   # falls keine Verbindung möglich
25       print "Server temporary unavailable!"

und hier folgt ein Demo-Lauf in IDLE:

Verbunden mit dem TCP-Server!
Gesendet: Hier der einfache Client!
Antwort: Echo <Hier der einfache Client!> von ('127.0.0.1', 3186)
Eingabe: Hallo
Gesendet: Hallo
Antwort: Echo <Hallo> von ('127.0.0.1', 3186)
Eingabe: Was geht ab?
Gesendet: Was geht ab?
Antwort: Echo <Was geht ab?> von ('127.0.0.1', 3186)
Eingabe: Das wars
Gesendet: Das wars
Antwort: Echo <Das wars> von ('127.0.0.1', 3186)
Eingabe:
Das wars . . .

Zu dem TCP-Client benötigen wir noch einen TCP-Server, der die Anfragen bearbeitet: siehe das Skript simpleTCPServer.py.
Aufruf dieses Skriptes (auf keinen Fall in IDLE ausführen!!!) in der Windows-Kommandozeile: pfad_zu_python\python.exe simpleTCPServer.py.
Beenden dieses Skriptes in der Kommandozeile: mit Strg+Pause|Untbr (Taste ist rechts oben)

<<<

Beispiele

findest du auf dem Web-Server "muenchen" Adresse 192.168.0.33 unter Lokal => Informatik (W. Spiegel) => Netzwerk

<<<

(Haus-)Aufgaben

  1. Welche IP-Adresse steht hinter www.wspiegel.de? ____________________________
    Probiere ping und tracert auch mit dieser IP-Adresse!

  2. tracert im Vergleich: Vergleiche die Anzahl der Rechnerknoten von www.wspiegel.de mit www.google.com. Warum taucht auf einmal Amsterdam als Rechnerknoten auf? ___________________________

  3. ping & tracert funktionieren auch lokal in unserem Netzwerk, finde die IP-Adresse von muenchen heraus, und probiere einen DoS (=Denial of Service). Falls gar nichts klappt, probiere es hier.

  4. Lade dir das Python-Skript simpleTCPServer.py vom Webserver und bringe den zugehörigen Client zum Laufen.

  5. Leseaufgabe: In der Einführung zum Thema Netzwerke den Abschnitt 7, im TCP/IP-Skript den Abschnitt Verbindungsprüfung.

    W. Spiegel, Kontakt