## 4 Classification of Auto-Configuration Protocols
### Stateful Protocols
#### 4.1.3 [PERSON] and [PERSON]'s Protocol  
The [PERSON] and [PERSON] proactive scheme [13] tries to fix the problem of IP address assignment by binary division of free address blocks. These divisions are done to the power of 2. Thus, nodes can exist with any block. Moreover, each node of the network has a table with the state of all the others in the network; that is to say, it knows the free address blocks of other nodes, as well as the IP address of the network interface from each node.  
The address assignment process can come from any node. Following this idea, a non-configured node (client node) sends a _broadcast_ message of the REQUEST type so that a node in the network configures this client node. As it is a diffusion message, it is possible to have several replies, but it will choose the node that replies first (REPLAY), and this will act as the server node. If this node has several blocks, it will give one to the client node, and will choose the first IP address from the block as its own. Otherwise, if the node has a block, then it will divide into two similar parts and will give one half to the client node, and keep the other one for itself.  
If we consider a case in which there aren't any blocks available, some solutions are proposed based on the idea that the server searches its surrounding neighbours to see whether any block is available. In the case where no free addresses are found, it will try to get a block by using the neighbors of a higher level hop, and so on. Another solution consists of looking for the node that has the greater free range address, to deliver half of this block to the node which is joining the network.  
The departure of the nodes can take place in an abrupt or smooth way, and for each case there is a scheme to follow. If the departure is abrupt, the node that acted as the server in its configuration will see in its routing table that the block of node that left the network is not there and it will add the block to its free address block. In the case of easy departure, the node, which leaves the network, warns it's neighbours of its intention to leave and the neighbour node then seeks the node which configured the client so that it gets its block.  
The greatest advantages of this protocol is that it works well for merging and partitioning of networks, since it fixes the duplicated addresses problem which occurs in these cases. Each node which initiates the network generates a random number called _PartitionID_ which will be a network identification number. In this manner, when a partitioning or merging of the network occurs, the first node which leaves from original network will create another _PartitionID_. At the time the two networks with different PartitionID are joined; firstly the consistency of its IP address will be checked. This process consists of verifying the existence of two nodes with the same address. In case affirmative, a change of the node belonging to the network with less free IP address range is produced. The new IP address will belong to the highest network range with the biggest free address number. The major drawback of this protocol is that the synchronization depends on the existence of a reliable _broadcast_ and such a thing does not exist in a distributed mobile environment, thus one can question the robustness of this protocol.