Hi Ramesh,
Here is the process.
DHCPDISCOVER >>The client sends a DHCPDISCOVER packet.
DHCPOFFER >> The DHCP server responds by sending a DHCPOFFER packet
DHCPREQUEST >> The client responds to the DHCPOFFER by sending a DHCPREQUEST.
DHCPACK >>The DHCP server responds to the DHCPREQUEST with a DHCPACK, thus completing the initialization cycle.
When the client receives the DHCPACK, it enters into the Bound state, and is now free to use the IP address to communicate on the network. I believe this answer to your query 1.
DHCPACK is sent by the server not received by the server. So you need to correct your question here. If the Client is not able to receive the DHCPACK, client might need to re-try DHCPREQUEST again and again depending upon the make of client.
When DHCPDISCOVER is made, a field part of DHCP header has "Client hardware address" contains the mac address of client. DHCP server maintains the mapping of MAC address and assigned IP address in its record.
Please rate if it helps.
-Amit