dhcpcd is an RFC2131 compliant DHCP client. It is fully featured and yet lightweight: the binary is 60k as reported by size(1) on Linux i386. It has support for duplicate address detection, IPv4LL, carrier detection, and a merged resolv.conf and ntp.conf for which other DHCP clients require third party tools.
dhcpcd-dbus receives interface configuration events from the dhcpcd control socket and emits them to the DBus listeners. It also has methods to release, rebind, stop, and query dhcpcd on an interface. This allows users to control dhcpcd to some extent, as all dhcpcd operations require root privileges, and DBus has a fine-grained ACL list for accessing these functions which dhcpcd-dbus can optionally use. dhcpcd-dbus can also talk to wpa_supplicant via its control socket and expose a minimal interface.
dhcpcd-gtk is a GTK+ monitor for dhcpcd. It uses dhcpcd-dbus to talk to dhcpcd and wpa_supplicant. At present, dhcpcd-gtk is just an application that sits in the notification area. The icon has several states, showing offline, address negotiation, and online. When attempting to negotiate an address, you get a nice animation. A notification bubble is also shown per interface state change. Future versions will have Access Point selection and dhcpcd configuration options.