next up previous contents index
Next: 7 Zusammenfassung der Definitionen Up: 6 Implementierung Previous: 6.2.1 Der SAX-Parser

6.3 Client

Der DHCP Agent besteht aus seiner Hauptklasse DHCPMobileAgent , der Klasse RequestHandler  und DhcpServer . Weiterhin werden noch die Spezialklassen IpAddress  und DhcpRequest  implementiert.

Arbeitsweise
]Arbeitsweise Der DHCP-Server lauscht auf Port 68. Empfängt er einen Datenstrom, so wird dieser an den RequestHandler weitergereicht. Der RequestHandler  übergibt den Datenstrom an die Klasse DhcpRequest , welche als Ergebnis alle Teilbereiche des DHCP-Paketes zur Verfügung stellt sowie analysiert um welchen Typ Request es sich handelt.

Policy Agent
]Policy Agent Der RequestHandler  sendet nun eine Anfrage an den Policy Agenten, in der er übermittelt, daß er die IP-Adresse zum Client mit der entsprechenden MAC-Adresse zugewiesen bekommen möchte. Dabei gibt es zwei Antwortmöglichkeiten. Der Policy Agent kann mit einem String antworten, der eine IP-Adresse enthält oder mit dem Vermerk 'dynamic'.

Liefert der Policy Agent eine IP-Adresse, so wird ein Antwort-Strom mit dieser IP-Adresse generiert (DhcpRequest.reply). Im anderen Fall wird eine IP-Adresse aus dem Adresspool des DHCP Agenten verwendet.

IP-Adresspool
]IP-Adresspool Dieser Adresspool wird von der Klasse DhcpServer  verwaltet. Dabei handelt es sich um drei Arrays mit Instanzen der Klasse IpAddress . Diese Arrays werden nach Freien Adressen, reservierten Adressen und Momentan verwendeten Adressen untergliedert.

Hat der Agent keine freien IP-Adressen mehr zur Verfügung, so sendet er keine Antwort.

Management
]Management Der Agent hat folgende Außenschnittstellen:
getIncomingPort()
liefert den aktuellen Port zurück, an dem der DHCP Agent DHCP-Anfragen empfängt
getOutgoingPort()
liefert den aktuellen Port zurück, von dem aus der DHCP Agent Antworten auf DHCP-Anfragen sendet
getDefaultLeaseTime()
liefert die Standard-Leased-Time, die erwendet wird, wenn nichts Gegenteiliges angegeben ist
addIP( string inIP )
fügt die in inIP angegebene IP-Adresse dem zur Verfügung stehenden IP-Adresspool hinzu
removeIP( string inIP )
entfernt die in inIP angegebene IP-Adresse aus dem zur Verfügung stehenden IP-Adresspool.

Applet
]Applet Das dazugehörige Applet soll die Möglichkeit bieten, den Agenten zu stoppen und zu starten sowie ihm IP-Adressen für seinen internen Pool ein und auszutragen.


next up previous contents index
Next: 7 Zusammenfassung der Definitionen Up: 6 Implementierung Previous: 6.2.1 Der SAX-Parser
Copyright Munich Network Management Team