next up previous contents
Next: 3.4 Quellen Up: 3 Implementierung Previous: 3.2 Server

3.3 Resultat-Listen

Die Resultat-Listen müssen so implementiert werden, daß sie jederzeit erweiterbar/reduzierbar sind. Die Klasse java.util.Vector besitzt genau diese Eigenschaft, sowie komfortable Such- und Einfügemethoden. Deshalb sind alle implementierten Listen von java.util.Vector abgeleitet. Zu jeder Listen-Klasse gehört eine Element-Klasse (z.B. HostList-HostElement). Jede nun beschriebene Klasse besitzt mehrere Konstruktoren und eine Methode zur String-Repräsentation der Klasse. Diese Methoden rufen jeweils die Methoden der übergeordneten Klasse auf.


  
Abbildung 7: Klassenhierarchie der Resultat-Listen
\begin{figure}
 \begin{center}
 
\epsfig {file=Bilder/listen.eps, width=10cm, height=7cm}
 \end{center}\end{figure}

Die Klasse HostList ist die Basis-Klasse für alle weiteren Listen. Die Elemente der HostList sind HostElement. Deshalb wurden vorallem Methoden hinzugefügt, die mit HostElement arbeiten. Ein HostElement besteht aus dem Domain-Name des Hosts. Schließlich bekommt man mit getString() eine String-Repräsentation der Klasse geliefert (der Standard-Name toString() konnte nicht verwendet werden, da dieser in java.util.Vector bereits als final deklariert ist).

Die Klasse HostInterfaceList erweitert die Klasse HostList. Der Konstruktor HostInterfaceList(HostList hl) wandelt die HostList in eine HostInterfaceListe um (und die HostElement in HostInterfaceElement). Ein HostInterfaceElement besteht aus der Anzahl der Interfaces und einer InterfaceList.

Eine InterfaceList hat als Einträge InterfaceElement, die wiederum aus der IP-Adresse und der Beschreibung des Interfaces besteht.

Die Klasse HostIPRoutingList fügt zur HostInterfaceList die IP-Routing-Tabelle (Klasse IPRoutingList) hinzu. Der Konstruktor

HostIPRoutingList(HostInterfaceList)
wandelt die HostInterfaceList in eine HostIPRoutingList um.

Eine IPRoutingList besteht aus IPRoutingElementen. Ein IP-Paket, das von einem Host gesendet werden soll, durchläuft solange der Reihe nach die Pattern einer jeden Zeile, bis ein Pattern paßt.

Am Beispiel der hpheger3.nm.informatik.uni-muenchen.de mit der IP-Adresse 129.187.214.23 (des Interfaces), wird das Pattern-Matching erklärt:

Pattern:129.187.214.23 NextHop:127.0.0.1       outon:127.0.0.1
Pattern:129.187.214.0  NextHop:129.187.214.23  outon:129.187.214.23
Pattern:127.0.0.1      NextHop:127.0.0.1       outon:127.0.0.1
Pattern:0.0.0.0        NextHop:129.187.214.254 outon:129.187.214.23
Soll nun z.B ein IP-Paket mit der Empfänger-Adresse 111.222.333.44 verschickt werden, so paßt erst das letzte Pattern und das Paket wird von der IP-Adresse 129.187.214.23 (out on) an die IP-Adresse 129.187.214.254 (NextHop) geschickt.

Hier noch ein Auszug aus einer HostIPRoutingList:

Host-Name: hpheger3.nm.informatik.uni-muenchen.de
Number of Interfaces: 4
1. InterfaceElement:
Description: ni0 Hewlett Packard Network Interface Pseudo Driver
IPAddress:   null
2. InterfaceElement:
Description: ni1 Hewlett Packard Network Interface Pseudo Driver
IPAddress:   null
3. InterfaceElement:
Description: lo0 Hewlett-Packard Software Loopback
IPAddress:   127.0.0.1
4. InterfaceElement:
Description: lan0 Hewlett-Packard LAN Interface Hw Rev 0
IPAddress:   129.187.214.23
IPRouting:
Pattern:129.187.214.23 NextHop:127.0.0.1       out on:127.0.0.1
Pattern:129.187.214.0  NextHop:129.187.214.23  out on:129.187.214.23
Pattern:127.0.0.1      NextHop:127.0.0.1       out on:127.0.0.1
Pattern:0.0.0.0        NextHop:129.187.214.254 out on:129.187.214.23
Die ersten beiden Interfaces sind Pseudo-Interfaces, und nicht physikalisch im Rechner vorhanden. Das dritte Interface ist das sogenannte Loopback-Device (erkennbar an der 127.xxx.yyy.zz IP-Adresse). Alle IP-Pakete, die an das Loopback-Device geschickt werden, gehen an den Host, von dem es geschickt wurde, zurück (``zurückschleifen'').


next up previous contents
Next: 3.4 Quellen Up: 3 Implementierung Previous: 3.2 Server
Copyright Munich Network Management Team