Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In most client-server-applications, the port number of a server is a well-known number, while the client uses a currently available port number. DHCP is different. Here, both the client and the server use a well-known port: UDP port 67 for the DHCP server, and UDP port 68 for the DHCP client.

Why did they design it like that and have a fixed client port number?

share|improve this question
up vote 6 down vote accepted

This is necessary as the client may not have an IP address when using DHCP (he uses DHCP to get an address).

The server and the client communicate via broadcasts so the server broadcasts the IP address of the client to UDP port 68. There is no other way for the server to reach the client. And this is the only way for the client to receive an answer to his request as he has no IP address.

share|improve this answer

If I am assigning a temporary port number, say 10000, to a DHCP client then I have to assign the same port number to all the client in the network.

The DHCP server does not know the clients IP address, what it knows is the port number of DHCP client. So the DHCP server broadcasts the packet with the clients port number equal to 10000. If all the DHCP client are not assigned port number 10000 for DHCP application, it may be possible that some clients are running another application on port number 10000. The packet from the DHCP server will be delivered to wrong client-application. Hence it is better to use well known-port numbers for DHCP.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.