Der Hauptgrund dafür ist, dass der DHCP-Server das "DHCP-Angebot" auf Mac-Ebene ausstrahlt, anstatt Unicast an die Mac-Adresse zu senden, an die er die Anfrage erhalten hat. Wenn der Port nicht konstant ist, akzeptieren einige Hosts, die zufälligerweise den gleichen zufälligen Port empfangen, das Paket an Layer 5 - die Anwendungsebene. Mit anderen Worten, eine Anwendung erhält eine Nachricht von einer völlig anderen Anwendung, nicht von einer gesunden Situation.
Ich musste mich selbst der gleichen Frage stellen und nach einigen Nachforschungen fand ich Folgendes auf der RFC 2131 , das das DHCP-Protokoll beschreibt, unter Abschnitt 1.6 Design-Ziele:
Auch auf der RFC 951 , die das BOOTP-Protokoll beschreibt, finden wir folgendes:
>Der UDP-Header enthält Quell- und Zielportnummern. Das BOOTP-Protokoll verwendet zwei reservierte Portnummern, "BOOTP-Client" (68) und "BOOTP-Server" (67). Der Client sendet Anfragen mit BOOTP Server 'als Zielport; Dies ist normalerweise eine Sendung. Das Der Server sendet Antworten über den BOOTP-Client als Zielport. Abhängig von den Kernel- oder Treiberfunktionen auf dem Server kann dies der Fall sein oder möglicherweise keine Übertragung (dies wird im Abschnitt weiter erläutert) betitelte "Huhn / Ei-Probleme" unten). Der Grund TWO reservierte Ports werden verwendet, um "aufzuwachen" und den BOOTP-Server zu planen Daemons, wenn ein Bootreply an einen Client gesendet werden muss. Seit der Server und andere Hosts hören nicht auf dem BOOTP-Client-Port Solche eingehenden Broadcasts werden im Kernel herausgefiltert Niveau. Wir konnten dem Kunden nicht einfach erlauben, einen "zufälligen" Port auszuwählen Nummer für das UDP-Quellportfeld; da kann die Serverantwort sein Broadcast, könnte eine zufällig gewählte Portnummer andere Hosts verwirren das hat zufällig an diesem Port gelauscht.
Also kommt die Antwort auf die Frage von oben. DHCP-Clients müssen den UDP-Port 68 verwenden, damit das DHCP mit dem BOOTP-Protokoll kompatibel ist und das BOOTP-Protokoll einen bestimmten Port für den Client benötigt, da BOOTPREPLIES gesendet werden kann und ein zufälliger Port für den Client ausgewählt wurde , könnte es zu einer Verwirrung anderer Hosts kommen, die denselben Port abhören.
Tags und Links network-programming dhcp