DHCP: Dynamic Host Configuration Protocol. Suppose a computer belonging to a network and without a fixed IP address. When it is turned on, it requests network configurations (this request is sent as a broadcast request - everyone in the network can listen, but only a DHCP server will answer). The DHCP server answers this request with informations as IP address, netmask, gateway IP, DNS server, and so on. This IP address can be valid by a period of time (depends on the DHCP server configuration), and, when this period is over, another network configuration request is sent to the DHCP server.
DNS: Domain name system. It is used to translate IP address in readable (or sometimes not ;-) ) names. For example: when you type www.yahoo.com in address field of your browser, a request is sent to your DNS server (that can be fixed or got by DHCP request) and the server answer with the IP address of that name. With this address you can do all the communication needed. The inverse also can be done: you request the name of a host and the DNS answer the name of that host. Below is a link for BIND site, which is a very used DNS server. And a HOWTO too ;-)