The second extra credit assignment, which is much more challenging than the first, is to implement your own DHCP client using UDP sockets and IP broadcast. The hardest part of the assignment is to understand in precise detail the DHCP requirements. Here are some sites to help you: www.networksorcery.com/enp/protocol/dhcp.htm jhmcis.jhmi.edu/standards/dhcp/dhcp.htm support.microsoft.com/kb/169289 You should test your program in an environment with a DHCP server present. You should run ethereal to see what the packets look like precisely between the DHCP server and a working DHCP client. (talk to me if you are serious about doing this assignment). Your DHCP client needs to work with ANY DHCP Server. You can issue ip addr/ip route commands from your program to set up your basic routing settings. You can hard-code in your mac address into the program. This assignment will take quite a bit of work, so don't try it unless you are able to devote a significant number of hours of programming and testing.