Mandalex

DHCP ist die Abkürzung für "Dynamic Host Configuration Protocol". Mittels DHCP können IP-Adressen dynamisch vergeben werden. Beispielsweise kann sich damit ein Laptop via Wireless irgendwo einloggen.

Der Ablauf für eine Anmeldung ins Netz funktioniert nach folgendem Prinzip: Der Host sendet zuerst eine "DHCP discover" Meldung ins Netz. Irgendein Server wird ihm dann mit "DHCP offer" antworten, einem kleinen Antwortpaket, in dem eine mögliche IP-Adresse steht. Möchte der Host dieses Angebot annehmen, so sendet er ein "DHCP request", worauf der Server mit einem "DHCP ack" antwortet. Nun kann der Host die erhaltene IP-Adresse benutzen.

Mit der Adresse hat der Host auch gleich noch eine Zahl mitbekommen, die angibt, wieviele Sekunden diese IP-Adresse gültig ist (normalerweise 3600 Sekunden, 1 Stunde). Vor Ablauf dieser Zeit muss der Host (normalerweise automatisch) die Adresse noch einmal anfordern.

Zu Beginn hat der Host noch keine IP-Adresse, und er weiss auch nicht die Adresse des Servers, den er anzufragen hat. Er verschickt deshalb beispielsweise das folgende Paket an alle:

Source:        0  .0  .0  .0    (Anonym)
Source-Port:   68               (DHCP-Client-Port)
Destination:   255.255.255.255  (an alle)
Dest-Port:     67               (DHCP-Server-Port)
yi-Adresse:    0  .0  .0  .0    (noch keine Adresse)
Anfrage-ID:    654              (Zufallszahl)

Ein DHCP-Server im lokalen Netzwerk bekommt nun diese Nachricht und antwortet darauf, da er keine explizite IP-Adresse hat, ebenfalls an alle mit folgendem Paket:

Source:        223.1  .2  .5    (Adresse des Servers)
Source-Port:   67               (DHCP-Server-Port)
Destination:   255.255.255.255  (an alle)
Dest-Port:     68               (DHCP-Client-Port)
yi-Adresse:    223.1  .2  .4    (vorgeschlagene Adresse)
Anfrage-ID:    654              (gleiche ID wie Host zur Identifizierung der Antwort)
Lifetime:      3600             (1 Stunde verfügbar)

Dieses Paket gelangt nun (nebst allen anderen Hosts) zum Host, der die Anfrage startete. Er identifiziert die Antwort anhand des Ports und der ID und antwortet wiederum dem gesamten Netz, dass er mit dieser Adresse einverstande ist:

Source:        0  .0  .0  .0    (Adresse noch nicht angenommen)
Source-Port:   68               (DHCP-Client-Port)
Destination:   255.255.255.255  (an alle)
Dest-Port:     67               (DHCP-Server-Port)
yi-Adresse:    223.1  .2  .4    (Adresse würde akzeptiert werden)
Anfrage-ID:    655              (nächste ID)
Lifetime:      3600             (Bestätigung der Verfügbarkeits-Zeit)

Falls nun mittlerweile ein anderer DHCP-Server auf die ursprüngliche Anfrage antwortete, so ignoriert der Host diese Antwort. Der Server, der die zweite Antwort sendete, sieht nun am letzten Paket, dass sein Vorschlag nicht angenommen wurde und kümmert sich wieder um andere Geschäfte. Der Server, der jedoch die akzeptierte Adresse anbot, antwortet nun dem Host noch mit einer ACK-Nachricht (er sendet sie wiederum an alle, um zu signalisieren, dass der Host nun versorgt ist):

Source:        223.1  .2  .5    (Adresse des Servers)
Source-Port:   67               (DHCP-Server-Port)
Destination:   255.255.255.255  (an alle)
Dest-Port:     68               (DHCP-Client-Port)
yi-Adresse:    223.1  .2  .4    (vergebene Adresse)
Anfrage-ID:    655              (gleiche neue ID wie Host)
Lifetime:      3600             (Repetition der Zeit)