Question: why dhcp has two ports?
Answer: BOOTP and DHCP are defined to use UDP broadcast packets in the general case, so that the clients can receive server responses without having actual IPs. ... The reason TWO reserved ports are used, is to avoid 'waking up' and scheduling the BOOTP server daemons, when a bootreply must be broadcast to a client.