************************************************************************ The four steps of DHCP DISCOVER, OFFER, REQUEST, ACK. DHCP server is at 192.168.100.1 The client will be given 192.168.100.100 Client broadcasts a DISCOVER: Frame: 342 bytes Ethernet: Destination: Broadcast (ff:ff:ff:ff:ff:ff) Source: 00:26:6c:79:01:be Type: IP (0x0800) Internet Protocol: Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 Total Length: 328 Identification: 0x427f (17023) Flags: 0x00 Fragment offset: 0 Time to live: 128 Protocol: UDP (17) Header checksum: 0xf726 [correct] * Source: 0.0.0.0 {this DHCP client has no IP address yet} * Destination: 255.255.255.255 {IP broadcast address} User Datagram Protocol: Source port: bootpc (68) {DHCP is also known as 'bootpc' protocol} Destination port: bootps (67) {DHCP server listens at UDP port 67} Length: 308 Checksum: 0x0145 [validation disabled] Bootstrap Protocol: {AKA DHCP} {in UDP's Data field} Message type: Boot Request (1) Hardware type: Ethernet Hardware address length: 6 Hops: 0 Transaction ID: 0x99312c9f Seconds elapsed: 0 Bootp flags: 0x0000 (Unicast) Client IP address: 0.0.0.0 Your (client) IP address: 0.0.0.0 Next server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0 Client MAC address: 00:26:6c:79:01:be Client hardware address padding: 00000000000000000000 Server host name not given Boot file name not given Magic cookie: DHCP * Option: (t=53,l=1) DHCP Message Type = DHCP Discover Option: (t=61,l=7) Client identifier Client MAC address: 00:26:6c:79:01:be Option: (t=12,l=8) Host Name = "wills-PC" Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0" * Option: (t=55,l=12) Parameter Request List 1 = Subnet Mask 15 = Domain Name 3 = Router 6 = Domain Name Server 44 = NetBIOS over TCP/IP Name Server 46 = NetBIOS over TCP/IP Node Type 47 = NetBIOS over TCP/IP Scope 31 = Perform Router Discover 33 = Static Route 121 = Classless Static Route 249 = Private/Classless Static Route (Microsoft) 43 = Vendor-Specific Information ****************************** DHCP server responds with unicast OFFER Frame: 590 bytes Ethernet: Destination: 00:26:6c:79:01:be Source: 00:25:9c:17:9d:c0 Type: IP (0x0800) Internet Protocol: Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 Total Length: 576 Identification: 0xcce2 (52450) Flags: 0x02 (Don't Fragment) Fragment offset: 0 Time to live: 32 Protocol: UDP (17) Header checksum: 0x4214 [correct] Source: 192.168.100.1 Destination: 192.168.100.100 {but client doesn't have this yet} User Datagram Protocol: Source port: bootps (67) Destination port: bootpc (68) Length: 556 Checksum: 0xcce2 [validation disabled] Bootstrap Protocol Message type: Boot Reply (2) Hardware type: Ethernet Hardware address length: 6 Hops: 0 Transaction ID: 0x99312c9f Seconds elapsed: 0 Bootp flags: 0x0000 (Unicast) Client IP address: 0.0.0.0 * Your (client) IP address: 192.168.100.100 Next server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0 Client MAC address: 00:26:6c:79:01:be Client hardware address padding: 00000000000000000000 Server host name not given Boot file name not given Magic cookie: DHCP * Option: (t=53,l=1) DHCP Message Type = DHCP Offer * Option: (t=54,l=4) DHCP Server Identifier = 192.168.100.1 * Option: (t=1,l=4) Subnet Mask = 255.255.255.0 * Option: (t=51,l=4) IP Address Lease Time = 1 day * Option: (t=3,l=4) Router = 192.168.100.1 {default gateway} * Option: (t=6,l=4) Domain Name Server = 192.168.100.1 Option: (t=31,l=1) Perform Router Discover = Enabled ****************************** Client sends out broadcast REQUEST Frame: 354 bytes Ethernet: Destination: Broadcast (ff:ff:ff:ff:ff:ff) Source: 00:26:6c:79:01:be Type: IP (0x0800) Internet Protocol: Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 Total Length: 340 Identification: 0x4280 (17024) Flags: 0x00 Fragment offset: 0 Time to live: 128 Protocol: UDP (17) Header checksum: 0xf719 [correct] Source: 0.0.0.0 {client is not yet using its Offered IP address} Destination: 255.255.255.255 {REQUEST is a broadcast, to tell other DHCP servers, if any, it's taking this OFFER} User Datagram Protocol: Source port: bootpc (68) Destination port: bootps (67) Length: 320 Checksum: 0x0151 [validation disabled] Bootstrap Protocol: Message type: Boot Request (1) Hardware type: Ethernet Hardware address length: 6 Hops: 0 Transaction ID: 0x99312c9f Seconds elapsed: 0 Bootp flags: 0x0000 (Unicast) Client IP address: 0.0.0.0 Your (client) IP address: 0.0.0.0 Next server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0 Client MAC address: 00:26:6c:79:01:be Client hardware address padding: 00000000000000000000 Server host name not given Boot file name not given Magic cookie: DHCP * Option: (t=53,l=1) DHCP Message Type = DHCP Request Option: (t=61,l=7) Client identifier Client MAC address: 00:26:6c:79:01:be * Option: (t=50,l=4) Requested IP Address = 192.168.100.100 Option: (t=54,l=4) DHCP Server Identifier = 192.168.100.1 Option: (t=12,l=8) Host Name = "wills-PC" Option: (t=81,l=11) Client Fully Qualified Domain Name Client name: wills-PC Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0" Option: (t=55,l=12) Parameter Request List 1 = Subnet Mask 15 = Domain Name 3 = Router 6 = Domain Name Server 44 = NetBIOS over TCP/IP Name Server 46 = NetBIOS over TCP/IP Node Type 47 = NetBIOS over TCP/IP Scope 31 = Perform Router Discover 33 = Static Route 121 = Classless Static Route 249 = Private/Classless Static Route (Microsoft) 43 = Vendor-Specific Information ****************************** Server sends unicast ACK Frame: 590 bytes Ethernet: Destination: 00:26:6c:79:01:be Source: 00:25:9c:17:9d:c0 Type: IP (0x0800) Internet Protocol: Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 Total Length: 576 Identification: 0xc9e2 (51682) Flags: 0x02 (Don't Fragment) Fragment offset: 0 Time to live: 32 Protocol: UDP (17) Header checksum: 0x4514 [correct] Source: 192.168.100.1 Destination: 192.168.100.100 {client's new IP address is being used now} User Datagram Protocol: Source port: bootps (67) Destination port: bootpc (68) Length: 556 Checksum: 0xc9e2 [validation disabled] Bootstrap Protocol: Message type: Boot Reply (2) Hardware type: Ethernet Hardware address length: 6 Hops: 0 Transaction ID: 0x99312c9f Seconds elapsed: 0 Bootp flags: 0x0000 (Unicast) Client IP address: 0.0.0.0 Your (client) IP address: 192.168.100.100 Next server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0 Client MAC address: 00:26:6c:79:01:be Client hardware address padding: 00000000000000000000 Server host name not given Boot file name not given Magic cookie: DHCP * Option: (t=53,l=1) DHCP Message Type = DHCP ACK Option: (t=54,l=4) DHCP Server Identifier = 192.168.100.1 Option: (t=1,l=4) Subnet Mask = 255.255.255.0 Option: (t=51,l=4) IP Address Lease Time = 1 day Option: (t=3,l=4) Router = 192.168.100.1 Option: (t=6,l=4) Domain Name Server = 192.168.100.1 Option: (t=31,l=1) Perform Router Discover = Enabled