DHCP (Dynamic Host Configuration Protocol)

Das DHCP-Protokoll ermöglicht es, die zur Kommunikation in TCP/IP-Netzen nötige Vergabe von IP-Adressen und zugehöriger Subnetzmaske zu automatisieren. Weiters können auch passende DNS-Server bzw. ein Gateway zugewiesen werden. Die IP-Adressen können aufgrund der MAC Adresse vergeben werden, oder aber auch zufällig aus einem bestimmten Adressbereich heraus (Range, Scope). Der DHCP-Server könnte beispielweise so konfiguriert sein, dass alle Rechner automatisch Adressen aus dem Klasse-C Netz (also z.B. von 192.168.0.1 bis 192.168.0.254) zugewiesen bekommen. Der DHCP-Server behält dabei die Übersicht, welche Adressen bereits vergeben wurden und welche nicht. Die Adressen können für eine bestimmte Zeit zugewiesen werden (lease-time) - die Clients fordern dann keine neue Adresse vom DHCP-Server innerhalb dieser Zeitspanne an.

Konfiguration des Clients für DHCP unter WindowsXP: 

Lease-Timer mit ipconfig /all auf der Eingabeaufforderung ausgegebn (hier: Lease Time von 2h ersichtlich):

Damit der Client aber überhaupt eine IP vom DHCP-Server anfordern kann, bräuchte er ja selber einer IP schon für die Anfrage; da er aber keine besitzt, wird per UDP (verbindungsloses Protokoll) und nicht per TCP eine DHCPDISCOVER-Request ausgesendet (der Rechner schickt also das UDP Paket an alle Adressen ( 0.0.0.0:68) mit der Netzwerkmaske 255.255.255.255 Port67, also ein Broadcast auf Port 67 und seiner MAC-Adresse, dass das Paket überhaupt wieder zu ihm zurückkommen kann - anders gesagt: es schickt das Discoverpaket blind ins Netz)

Der DHCP-Server erhält dieses Paket und bietet nun dem Client mit DHCPOFFER eine IP-Adresse an. Da in größeren Netzen mehrere DHCP-Server vorhanden sein können, kann sich der Client mit DCHPREQUEST direkt eine IP-Adresse vom gewünschten DHCP-Server (DHCPPACK) zukommen lassen (die ganze Kommunikation läuft also auf verbindungsloser UDP-Basis ab, da ja ohne IP-Adresse auch keine direkte TCP/IP-Verbindung aufgebaut werden kann):