I am trying to learn about the dhcp protocol, I've created a program which snoops on dhcp messages (both client and server, so that I may not have to look at wireshark), my questions are
1) on the client, parameter option 55 (parameters list), this usually has a long list to tell the server to support each cmd, but looking at other dhcp server implementations, the least the dhcp server usually send is cmd 1,3,6. Now my question is, is there a min cmds to pass back to the client (ignoring other cmds in the parameter list)? Can you please tell me where in the rfc2131 (or other rfc) is this info?
2) why is setting the router (option 3) to "0.0.0.0"? what does this mean to the client?
3) does the xid field constant for a client? does a server use this to uniquely identify a client or does it use the hardware (mac) chaddr field, which doesn't change between msgs?
4) I know that windows doesn't honor hostname (option 12), can it be possible to set the hostname (computername), on the dhcp level on windows? possibly by writing a driver at boottime? are there 3rd party software/driver that can do this?
5) is my understanding correct on boot on lan? client request boot filename, request boot file from tftp, then control passes to boot file (pxelinux.0) for sanboot (iscsi, aoe, etc)? is this also applicable for boot on lan uefi boot (via gpt)?