This page is in Pre Alpha. That means no grammer checks, no editting and speeling mistakes galore! The explanations and the final version will come soon. Check it out at your own risk! The Dynamic Host Configuration Protocol Before we tell you all there is to know about DHCP, we will give a brief introduction about it and also understand the necessity of such a protocol. DHCP stands for The Dynamic Host Configuration Protocol. Now let us look into its necessity. Many people on the Internet do not surf the Internet using PPP. (PPP is the protocol used to connect to the Internet over a telephone line) < For details click on PPP - LINK>. Instead they choose to surf using an Ethernet LAN. (An Ethernet LAN is a large area network in which all the computers are connected to each other through a single wire.) . So on a network there will a number of computers and one might choose to surf from any one of those computers. A computer has to have an IP address before it can be live on the internet. So if the network has 1000 computers, each has to have an IP address to go on to the Internet and so in all the network would require a 1000 IP address. Now it is also true that all 1000 computers are not going to be on the Internet at the same time and so 1000 IP addresses for that particular network is not required. Now the main cause of concern in not the 1000 IP addresses but what follows. IP addresses are 4 bytes or 32 bits large - so we have a maximum of 232 IP addresses. This is far too few for the number of computers present or which will be present on the Internet. So allocating 1000 IP addresses to a single network is not feasible as others may feel the pinch. Another problem is that keying in 1000 unique IP address into 1000 different computer is a daunting task. Besides we have to have other information besides the IP address. For instance, we also need to know the address of the router and of the DNS. Even if we opt to key the data in manually, if any changes are to made at a later date, then the whole process has to be repeated. So now seeing the above problems, don't you think we need a protocol that will do the job for us? Can't we just have 200 IP addresses and supply it to the 1000 computers along with all the other required information only when they connect to the Internet? This is what exactly DHCP does. When you connect to the Internet, your computer is given an IP address. Similarly when you disconnect, the IP address is released. DHCP also tackles one more problem. Suppose a company has a large number of subnetworks or independent LANs. Here we do not require to have a DHCP server on each LAN but instead we can have a central point where all the addresses can be allocated. For this purpose we use something called the DHCP Relay Agent that will relay IP addresses from one sub-network to another. A network should always have redundancies. We should have more than one DHCP server running because if the lone server fails, nobody would be able to log onto the Internet. Hence we have to have multiple DHCP servers running. Now Windows 95 has an inbuilt DHCP client and Window NT has an inbuilt DHCP server. A client gets the offer from all the DHCP servers and then the client chooses any one of the IP addresses from the multiple DHCP servers. If we are using a Windows 95 or Windows NT, both of which have an the DHCP protocol inbuilt, we don't have to do any manual work at all! The following paragraph explains how DHCP manages to hand out IP address without any clashes. We can use Address Resolution Protocol (ARP) to find out whether an IP address clash has occurred or not. What ARP states is, I have an IP address, anyone on the network who knows this IP address please reply with the Ethernet address. In DHCP, whenever a client is allocated an IP address by a DHCP server, it will relay an ARP broadcast stating it's IP address. If any computer understands that IP address, it will reply to the client with its Ethernet address. Subsequently, the client would request the DHCP server for another IP address. If no computer replies to the ARP broadcast then the client will assume that no computer has been allocated the IP address and will accept the allocated IP address. Using this process clashes of IP addresses on the network becomes impossible. So, in short, ARP states - give an IP address and the computer having the IP address will give its own Ethernet address. But remember, only to assure that no other computer has the same IP address, DHCP follows ARP. To acquire an IP address DHCP follows the reverse process - the Reverse Address Resolution Protocol (RARP). In RARP, an Ethernet address is given and subsequently the computer with the Ethernet address is supplied with an IP address. So in short, RARP says - give an Ethernet address and you will get an IP address. DHCP follows the same process so it can be said to be following RARP. So in DHCP we do not have to specify anything except for the lease period. The Lease period is the time for which the server has to give an IP address to a computer. Suppose we specify the lease period as 7 hours then after about 4 hours the server will ask the client for renewal of the lease period. If the lease period is not renewed the lease expires after 8 hours and the computer is left with no IP address. If the lease is renewed, then the computer can continue to have the IP address for the next lease period. I hope that by now you might have understood. Why is a lease period required? This is because there are a limited number of IP addresses and we do not want anyone to become its permanent owner so we lease it. The Lease periods are user definable. Now we will sum up all that we have read till now. After that we shall proceed to have a look at the DHCP message format and then, look at the bits & bytes which flow across the server and the client. DHCP is a mechanism and not a policy. Mechanism is, it should do it and policy means rules. No manual work is required to configure an IP network. Computers with pre-configured IP address and computers with no IP address should co-exist so computers with no IP address should talk to the DHCP server and obtain an IP address. Even in case of sub-networks, only a central point DHCP server is required to be installed and a DHCP relay agent is required to relay the IP addresses through the different sub-networks. Now let us look at the DHCP Message format. Table 1: DHCP Message Format Code - 1 byte HW Type - 1 byte Length - 1 byte Hops - 1 byte Transaction Id - 4 byte Seconds - 2 byte Flags - 2 byte Client IP Address - 4 byte Your IP Address - 4 byte Server IP Address - 4 byte Router IP Address - 4 byte Client Hardware Address - 4 byte Server Host Name - 4 byte Boot File Name - 4 byte Options - 4 byte Now that we have seen the DHCP message format let us understand what each field stands for. Code - Indicates whether the message is a DHCP request or a DHCP reply. Here - 1 stands for Request. 2 stands for Reply. HW type - Indicates the type of hardware being used for request and reply. For example we are using Ethernet and so this field will be set to 1. If we were to use IEEE 802 Networks then this field would have been set to 6. These numbers are assigned by a body called Internet Assigned Numbers Association (IANA). < LINK > For complete list of Assigned numbers. Length - Indicates Hardware address length in bytes. For example we are using Ethernet and so this field will be set to 6 since Ethernet addresses are only 6 bytes long. This field will be accordingly set for different types of hardware. Hops - The client sets this to 0. It is incremented by a router that relays the request to another server and is used to identify loops. RFC 951 suggests that a value of 3 indicates a loop. Transaction ID - A random number used to match this boot request with the response it generates. Seconds - Set by the client. It is the elapsed time in seconds since the client started its boot process. Flags - The most significant bit of the flags field is used as a broadcast flag. All other bits must be set to zero, and are reserved for future use. Normally, DHCP servers attempt to deliver DHCP messages directly to a client using unicast delivery. The destination address in the IP header is set to the DHCP your IP address and the MAC address is set to the DHCP client hardware address. If host is unable to receive a unicast IP datagram until it knows its IP address, then this broadcast bit must be set to indicate to the server that the DHCP reply must be sent as an IP and MAC broadcast. Otherwise this bit must be set to zero. Client IP address - Set by the client. Either its own IP address, or 0.0.0.0. Your IP address - Set by the server if the Client IP address field was 0.0.0.0. Server IP address - Set by the server. Router IP address - Set by the forwarding router if BOOTP forwarding is being used. Client hardware address - Set by the client. DHCP defines a "client identifier" option which is used for client identification. If this option is not used the client it identified by its MAC address. Server host name - Optional server host name terminated by X'00'. Boot file name - The client either leaves this as null or specifies a generic name, like "router", indicating the types of boot file to be used. In a DHCP DISCOVER request this is set to null. The server returns a fully qualified directory-path name in a DHCP OFFER request. The value is terminated by X'00'. Then we have a long list of options. Remember the first 4 bytes of the options is always 99.130.83.99 and is called the 'magic cookie'. Now let's look at the bytes that went across the DHCP server and the DHCP client. This was the setup we had. We had four computers, one with a server installed, two with the client installed and one loaded with a program called the 'Sniffer' that could catch all the bytes going between computers in the network. Details about this program is given in the Ethernet document. We started the server and set a range of address from 70.0.0.76 to 70.0.0.80. In one of the two client computers we set the IP address as 70.0.0.71 - let's call this as Client1. Then we switched on the other client - let's call this as Client2, and 'sniffed' the bytes going across the network. The first packet that went across is as given below. Table 2 : Packet 1 - DHCP request from Client2 to the server. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..0..0 ..0..0 ..0..0 ..0..0 ..20..32 ..11..17 ..99..153 ..a6..166 ..0..0 ..0..0 ..0..0 ..0..0 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..44..68 ..0..0 ..43..67 ..1..1 ..34..52 ..d9..217 ..a3..163 ..1..1 ..1..1 ..6..6 ..0..0 ..3c..60 ..2..2 ..3c..60 ..2..2 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..3..3 ..3d..61 ..7..7 ..1..1 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..32..50 ..4..4 ..46..70 ..0..0 ..0..0 ..47..71 ..c..12 ..9..9 ..56..86 ..49..73 ..4a..74 ..41..65 ..59..89 ..4d..77 ..55..85 ..4b..75 ..0..0 ..37..55 ..7..7 ..1..1 ..3..3 ..f..15 ..6..6 ..2c..44 ..2e..46 ..2f..47 ..2b..43 ..4..4 ..37..55 ..2..2 ..0..0 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 In the above table the numbers are represented in Hexadecimal form and in Decimal form respectively. Remember, since we are on an Ethernet network, all data flows across in an Ethernet frame. So the first six bytes indicate the Destination Ethernet Address & the next six indicates the Source Ethernet Address. Also, DHCP works on IP (IP is the Internet protocol that carries data from one computer to another computer which has an IP address). So the next 20 bytes denote the IP header. Except for the 12th byte and the last 8 bytes in the IP header, the bytes are not very important. But if you still curious to know more about IP you can click here. The 12th byte indicates 11 which means the protocol to follow is UDP. UDP is a connectionless protocol. 'Connectionless' means that the computer that sends an UDP packet does not wait for an acknowledgment from the computer to which it sent the packet before sending the next packet. It resends if it doesn't receive a reply. Then from the last 8 bytes in the 20 bytes the first 4 indicate the source IP address & the last 4 indicate the destination IP address. Here we see the source IP address to be 0.0.0.0 which means this computer has no IP address. Next we see the destination IP address as ff.ff.ff.ff. Now, this is an exception ff.ff.ff.ff means that the broadcast is a limited IP broadcast. Limited IP broadcast means the packet remains in the same network and will reach only computers in the same network. After this comes the UDP header which has 8 bytes in it. The Source port, the Destination port, the length and the checksum. Since the DHCP client listens on port 68 and the DHCP server listens on port 67. Here the bytes are 68 & 67 indicating the source port is 68 and the destination port is 67. The 'Length' is 1 & 52, i.e. 1*256 + 52*1 = 308. Therefore it means the bytes including the UDP header are 308 all told. The next two bytes are the checksum, which are not important for the moment. Then comes the DHCP Message. This will be in the format of the table seen above. Let us now understand the bytes that went across the network between the server and the client. First is the `Code' which is one byte. Here it is 1, which means this is a request if it was 2, it would have been a reply. Next is `H/W type' representing the type of hardware in use. Here it shows 1 indicating an Ethernet network being used. We have different types of networks so this option is there. Then it says `6' which means the length of the H/W is 6 bytes long. The next byte is the number of hops. This is zero as expected, client always sets it to zero. Only the router increments it. Then the next four bytes are the transaction ID. Transaction ID is at present, Let us consider, a random number. Then the next two bytes are seconds which as told before is set to zero by the client so it is..0..0 The next 4 bytes are the clients IP address. It is zero as the client at present has no IP address. The next 4 bytes `i.e. your IP address' is also zero. This has to be set by the server and so at present this will be zero. We do not know the servers IP address, so it is zero and same is the case with Routers IP address. The 'Client hardware address' is set as 4.1.19.87.0.0. which is the hardware of 'Client 2" (Remember this was the name given to this computer earlier). The rest are zeros. This is not included in our address. These zeroes are simply padding to complete the 16 bytes allocated for this field. Since we are on an Ethernet network the address is only 6 bytes long but it may be longer on any other network, so a provision is given for the same. Now the next two fields 'Server host name' & 'Boot file name' are also zero since the client, at present, does not know their addresses. Then come the options. The first four bytes of options are 99.130.83.99, i.e. a magic cookie and these are always the same. After this we can have different options going across the network. For list of all option . Always remember - options follow a certain format. First comes the option number, following it is length of the bytes and then comes the actual bytes. Here we now see that the option number is 53 (in decimal). 53 denotes, whether the packet going across is a DHCP request, acknowledgment, offer, etc. Next is its length. Length for 53 is always 1 so here it will be 1. After that there is a 3 which means the packet going across is a DHCP request. So this means Client2 is making a DHCP request. Then is option number. 61. 61 says that it is a client identifier and 7 denotes its length. So following it are 1 4 1 19 87 0 0. Where 1 is the type indicator, indicating this is Ethernet and 4 1 19 87 0 0 is the Hardware address of the client. Then follows 50. Option number 50 indicates requested IP address. Length says 4 (obviously it has to be that because IP addresses are of 4 bytes only) & it says 70.0.0.71. which means it is requesting for 70 0 0 71. Following this option is 12 which indicates the Host Name option and it is 9 bytes long. Here the host is the client and so here it will be the name of the client. It says 86 73 74 65 89 77 85 75, i.e. (vijaymuk). This is the name, we had given to this computer. Then follows option 55 - which indicates The Parameter Request List. Now the parameter request list means the client requests some information from the server and the server replies to it. It is not necessary for the server to reply. It may not for the simple reason, that it does not have them. Now let's look at the parameters list but before this, have a look at the byte earlier, it says 7, which it is asking for 7 parameters. The 3 stands for Router option. Router option gives the list of IP addresses of routers in the client's network. 15 stands for Domain name. This specifies the name of the domain, the client should use when it converts names to numbers. 6 stands for DNS option. This gives a list of DNS systems available to the client. Then follows 43 which stands for vendor specific information. Here the client & server can exchange vendor information. The next byte indicates the length which says 4 and then it says 55. 55 is again parameter request list and its length is 2. Now since no vendor specific information is being requested, the next two bytes say zero. Remember the difference between the option number 55 which occurred earlier and which just occurred now is that earlier one was a general parameter list and this one is vendor specific. The next byte is 255 which says end of the packet. So this finishes one packet, i.e. DHCP request of DHCP client - Client2 to the DHCP server - fe.ff.ff.ff.ff.ff. The rest of the bytes are padded with zero so as to make the packet a certain minimum length. Now, the explanation of the options involves a lot of numbers. We've explained them by simply going through the complete list of options provided in one of the RFC's found on the Internet. The link for the same is provided so anyone of you can also do the same. Now remember we are using UDP so the client just sends information to server without waiting for an acknowledgment. So if the client does not get a reply from the server in a certain stipulated time then it will resend the packet. This is exactly what the client has done. It did not get a reply from the server so it resent the earlier packet. So the next packet is again a DHCP request from Client2. It may or may not be there in any other case, but the fact is it is there here. So we have to take this situation into consideration also. Table 3 : Packet 2 - DHCP request from Client2 to the server. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..1..1 ..0..0 ..0..0 ..0..0 ..20..32 ..11..17 ..98..152 ..a6..166 ..0..0 ..0..0 ..0..0 ..0..0 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..44..68 ..0..0 ..43..67 ..1..1 ..34..52 ..d7..215 ..a3..163 ..1..1 ..1..1 ..6..6 ..0..0 ..3c..60 ..2..2 ..3c..60 ..2..2 ..2..2 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..3..3 ..3d..61 ..7..7 ..1..1 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..32..50 ..4..4 ..46..70 ..0..0 ..0..0 ..47..71 ..c..12 ..9..9 ..56..86 ..49..73 ..4a..74 ..41..65 ..59..89 ..4d..77 ..55..85 ..4b..75 ..0..0 ..37..55 ..7..7 ..1..1 ..3..3 ..f..15 ..6..6 ..2c..44 ..2e..46 ..2f..47 ..2b..43 ..4..4 ..37..55 ..2..2 ..0..0 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 Then Client2 sends an ARP request to verify whether anybody has got 70.0.0.71. Table 4 : Packet 3 - ARP request ( broadcast ) from Client2 . ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..8..8 ..6..6 ..0..0 ..1..1 ..8..8 ..0..0 ..6..6 ..4..4 ..0..0 ..1..1 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..47..71 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..47..71 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 IP address for Client 1 (4.1.20.45.0.0) was set to 70.0.0.71 given at the start so it replied saying that I have got it. Table 5 : Packet 4 - ARP reply from Client1 to Client2 . ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..8..8 ..6..6 ..0..0 ..1..1 ..8..8 ..0..0 ..6..6 ..4..4 ..0..0 ..2..2 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..47..71 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..47..71 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 Now while the process was going on we gave a DHCP release to Client1 to release the IP address it had. And then it again sent a DHCP discover and asked for 70.0.0.71 since it had that IP address earlier. It actually does not matter what IP address the client asks for, the server assigns it only if it can give the same IP address or else it will offer it a new one. This is what happens in this case. Then Client1 sends as ARP request & server replies saying that you have got it. Table 6 : Packet 5 - ARP request ( broadcast ) from Client1. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..8..8 ..6..6 ..0..0 ..1..1 ..8..8 ..0..0 ..6..6 ..4..4 ..0..0 ..1..1 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..47..71 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..47..71 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..0..0 Table 7 : Packet 6 - ARP reply from the server. ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..fe..254 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..8..8 ..6..6 ..0..0 ..1..1 ..8..8 ..0..0 ..6..6 ..4..4 ..0..0 ..2..2 ..fe..254 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..46..70 ..0..0 ..0..0 ..1..1 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..47..71 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 At this point, we sent a DHCP release packet from Client1 relieving it of the IP address it had acquired. This is what the packet shows. Table 8 : Packet 7 - DHCP RELEASE from Client1 to the server. ..fe..254 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..e..14 ..0..0 ..0..0 ..0..0 ..20..32 ..11..17 ..ff..255 ..5d..93 ..46..70 ..0..0 ..0..0 ..47..71 ..46..70 ..0..0 ..0..0 ..1..1 ..0..0 ..44..68 ..0..0 ..43..67 ..1..1 ..34..52 ..ec..236 ..e1..225 ..1..1 ..1..1 ..6..6 ..0..0 ..32..50 ..2f..47 ..39..57 ..2f..47 ..4..4 ..0..0 ..80..128 ..0..0 ..46..70 ..0..0 ..0..0 ..47..71 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..7..7 ..36..54 ..4..4 ..46..70 ..0..0 ..0..0 ..1..1 ..3d..61 ..7..7 ..1..1 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 Client1 then sent a DHCP discover to the server. Table 9 : Packet 8 - DHCP DISCOVER from Client1 to the server. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..f..15 ..0..0 ..0..0 ..0..0 ..20..32 ..11..17 ..8a..138 ..a6..166 ..0..0 ..0..0 ..0..0 ..0..0 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..44..68 ..0..0 ..43..67 ..1..1 ..34..52 ..85..133 ..cb..203 ..1..1 ..1..1 ..6..6 ..0..0 ..d3..211 ..32..50 ..da..218 ..32..50 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..1..1 ..3d..61 ..7..7 ..1..1 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..32..50 ..4..4 ..46..70 ..0..0 ..0..0 ..47..71 ..c..12 ..6..6 ..6d..109 ..61..97 ..63..99 ..68..104 ..32..50 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 The IP address range was set from 70.0.0.76 to 70.0.0.80 in the server. So, when Client1 queried for 70.0.0.71 server could not give that IP address to the client. Therefore, the server sends a DHCP OFFER packet to Client1 stating that it is offering an IP address 70.0.0.76 to the Client1. Table 10 : Packet 9 - DHCP OFFER from server to the Client1. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..fe..254 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..33..51 ..5..5 ..0..0 ..0..0 ..80..128 ..11..17 ..c0..192 ..9f..159 ..46..70 ..0..0 ..0..0 ..1..1 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..43..67 ..0..0 ..44..68 ..1..1 ..34..52 ..d7..215 ..96..150 ..2..2 ..1..1 ..6..6 ..0..0 ..d3..211 ..32..50 ..da..218 ..32..50 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..4c..76 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..2..2 ..1..1 ..4..4 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..3a..58 ..4..4 ..0..0 ..1..1 ..fa..250 ..40..64 ..3b..59 ..4..4 ..0..0 ..3..3 ..75..117 ..f0..240 ..33..51 ..4..4 ..0..0 ..3..3 ..f4..244 ..80..128 ..36..54 ..4..4 ..46..70 ..0..0 ..0..0 ..1..1 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 So now Client1 requests 70.0.0.76 to the server, by sending a DHCP request packet. Table 11 : Packet 10 - DHCP REQUEST from Client1 to the server. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..12..18 ..0..0 ..0..0 ..0..0 ..20..32 ..11..17 ..87..135 ..a6..166 ..0..0 ..0..0 ..0..0 ..0..0 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..44..68 ..0..0 ..43..67 ..1..1 ..34..52 ..43..67 ..1e..30 ..1..1 ..1..1 ..6..6 ..0..0 ..de..222 ..34..52 ..e5..229 ..34..52 ..4..4 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..3..3 ..3d..61 ..7..7 ..1..1 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..32..50 ..4..4 ..46..70 ..0..0 ..0..0 ..4c..76 ..36..54 ..4..4 ..46..70 ..0..0 ..0..0 ..1..1 ..c..12 ..6..6 ..6d..109 ..61..97 ..63..99 ..68..104 ..32..50 ..0..0 ..37..55 ..7..7 ..1..1 ..3..3 ..f..15 ..6..6 ..2c..44 ..2e..46 ..2f..47 ..2b..43 ..4..4 ..37..55 ..2..2 ..0..0 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 The server in turn responds with a DHCP ACK packet, assigning Client1 that IP address. Table 12 : Packet 11 - DHCP ACK from server to the Client1. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..fe..254 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..36..54 ..5..5 ..0..0 ..0..0 ..80..128 ..11..17 ..bd..189 ..9f..159 ..46..70 ..0..0 ..0..0 ..1..1 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..43..67 ..0..0 ..44..68 ..1..1 ..34..52 ..be..190 ..92..146 ..2..2 ..1..1 ..6..6 ..0..0 ..de..222 ..34..52 ..e5..229 ..34..52 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..4c..76 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..5..5 ..3a..58 ..4..4 ..0..0 ..1..1 ..fa..250 ..40..64 ..3b..59 ..4..4 ..0..0 ..3..3 ..75..117 ..f0..240 ..33..51 ..4..4 ..0..0 ..3..3 ..f4..244 ..80..128 ..36..54 ..4..4 ..46..70 ..0..0 ..0..0 ..1..1 ..1..1 ..4..4 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 Client1 verifies that nobody else has that IP address by sending ARP broadcast request packets and since no computer responds, Client1 assumes no other computer body has the IP address and takes the IP address. Table 13 : Packet 12 - ARP request ( broadcast ) from Client1. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..8..8 ..6..6 ..0..0 ..1..1 ..8..8 ..0..0 ..6..6 ..4..4 ..0..0 ..1..1 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..4c..76 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..4c..76 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..0..0 Now at this point in time we sent another DHCP release packet from Client1. This will relieve Client1 of its existing IP address. Now if any other computer wants to acquire an IP address can be given 70.0.0.76 or a different IP address. Table 14 : Packet 13 - DHCP RELEASE from Client1 to the server. ..fe..254 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..23..35 ..0..0 ..0..0 ..0..0 ..20..32 ..11..17 ..ea..234 ..58..88 ..46..70 ..0..0 ..0..0 ..4c..76 ..46..70 ..0..0 ..0..0 ..1..1 ..0..0 ..44..68 ..0..0 ..43..67 ..1..1 ..34..52 ..d2..210 ..5f..95 ..1..1 ..1..1 ..6..6 ..0..0 ..41..65 ..6b..107 ..48..72 ..6b..107 ..0..0 ..0..0 ..80..128 ..0..0 ..46..70 ..0..0 ..0..0 ..4c..76 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..7..7 ..36..54 ..4..4 ..46..70 ..0..0 ..0..0 ..1..1 ..3d..61 ..7..7 ..1..1 ..4..4 ..1..1 ..20..32 ..45..69 ..0..0 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 So now Client 2 sends a packet to the server similar to the first packet. Now what ultimately happens is, the server knows 70.0.0.71 cannot be offered as it is not of the valid range, it sends an OFFER to Client 2, offering it to take IP address 70.0.0.77. Now Client 2 would send a REQUEST to the server stating it's acceptance of the IP address. Then server will send an ACK to Client2 indicating that it has been assigned that IP address. After this the client will again verify whether any computer has 70.0.0.77 as its IP address so it will an ARP broadcast asking for computers who know this IP address. If no computers answer it will assume that nobody has that IP address and will finalize with the IP address for itself. Table 15 : Packet 14 - DHCP DISCOVER from Client2 to the server. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..0..0 ..0..0 ..0..0 ..0..0 ..20..32 ..11..17 ..99..153 ..a6..166 ..0..0 ..0..0 ..0..0 ..0..0 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..44..68 ..0..0 ..43..67 ..1..1 ..34..52 ..74..116 ..4e..78 ..1..1 ..1..1 ..6..6 ..0..0 ..3f..63 ..2..2 ..3f..63 ..2..2 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..1..1 ..3d..61 ..7..7 ..1..1 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..32..50 ..4..4 ..46..70 ..0..0 ..0..0 ..47..71 ..c..12 ..9..9 ..56..86 ..49..73 ..4a..74 ..41..65 ..59..89 ..4d..77 ..55..85 ..4b..75 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 Table 16 : Packet 15 - DHCP OFFER from the server to Client2. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..fe..254 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..3f..63 ..5..5 ..0..0 ..0..0 ..80..128 ..11..17 ..b4..180 ..9f..159 ..46..70 ..0..0 ..0..0 ..1..1 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..43..67 ..0..0 ..44..68 ..1..1 ..34..52 ..d..13 ..b5..181 ..2..2 ..1..1 ..6..6 ..0..0 ..3f..63 ..2..2 ..3f..63 ..2..2 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..4d..77 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..2..2 ..1..1 ..4..4 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..3a..58 ..4..4 ..0..0 ..1..1 ..fa..250 ..40..64 ..3b..59 ..4..4 ..0..0 ..3..3 ..75..117 ..f0..240 ..33..51 ..4..4 ..0..0 ..3..3 ..f4..244 ..80..128 ..36..54 ..4..4 ..46..70 ..0..0 ..0..0 ..1..1 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 Table 17 : Packet 16 - DHCP REQUEST from Client2 to the server. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..12..18 ..0..0 ..0..0 ..0..0 ..20..32 ..11..17 ..87..135 ..a6..166 ..0..0 ..0..0 ..0..0 ..0..0 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..44..68 ..0..0 ..43..67 ..1..1 ..34..52 ..43..67 ..1e..30 ..1..1 ..1..1 ..6..6 ..0..0 ..de..222 ..34..52 ..e5..229 ..34..52 ..4..4 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..3..3 ..3d..61 ..7..7 ..1..1 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..32..50 ..4..4 ..46..70 ..0..0 ..0..0 ..4d..77 ..36..54 ..4..4 ..46..70 ..0..0 ..0..0 ..1..1 ..c..12 ..6..6 ..6d..109 ..61..97 ..63..99 ..68..104 ..32..50 ..0..0 ..37..55 ..7..7 ..1..1 ..3..3 ..f..15 ..6..6 ..2c..44 ..2e..46 ..2f..47 ..2b..43 ..4..4 ..37..55 ..2..2 ..0..0 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 Table 18 : Packet 17 - DHCP ACK from the server to Client2. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..fe..254 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..8..8 ..0..0 ..45..69 ..0..0 ..1..1 ..48..72 ..36..54 ..5..5 ..0..0 ..0..0 ..80..128 ..11..17 ..bd..189 ..9f..159 ..46..70 ..0..0 ..0..0 ..1..1 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..43..67 ..0..0 ..44..68 ..1..1 ..34..52 ..be..190 ..92..146 ..2..2 ..1..1 ..6..6 ..0..0 ..de..222 ..34..52 ..e5..229 ..34..52 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..4c..77 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..63..99 ..82..130 ..53..83 ..63..99 ..35..53 ..1..1 ..5..5 ..3a..58 ..4..4 ..0..0 ..1..1 ..fa..250 ..40..64 ..3b..59 ..4..4 ..0..0 ..3..3 ..75..117 ..f0..240 ..33..51 ..4..4 ..0..0 ..3..3 ..f4..244 ..80..128 ..36..54 ..4..4 ..46..70 ..0..0 ..0..0 ..1..1 ..1..1 ..4..4 ..ff..255 ..ff..255 ..ff..255 ..0..0 ..ff..255 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 Table 19 : Packet 18 - ARP request ( Broadcast ) from Client2. ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..ff..255 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..8..8 ..6..6 ..0..0 ..1..1 ..8..8 ..0..0 ..6..6 ..4..4 ..0..0 ..1..1 ..4..4 ..1..1 ..19..25 ..87..135 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..4c..77 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..0..0 ..46..70 ..0..0 ..0..0 ..4c..77 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..20..32 ..0..0 This will complete the DHCP tutorial. The interpretation of the above bytes is similar to the ones we have interpreted for the first packet. This is possible only if you have the complete options list with you. Once you obtain the list of options from the link we have provided, you can become a master of DHCP.