
A semi-centralised peer-to-peer architecture is one that contains at least one central point of control or focus. The purpose of these control nodes can range from maintaining a stricter control over the whole network, to simply acting as a central reference point for the remaining nodes.
In this type of architecture there exists a single node that can act as a lookup for all the other nodes within the network. For example, this node can maintain an index or catalogue and typically behaves as a point of reference for the data or processing that is available on the network.
Only one node within the network has this capability. The other nodes are regarded as being equal and autonomous, and any data or computation that is required can be spread out over all these nodes.
All nodes within the network can communicate directly with each other, however this is typically achieved with the aid of the central index node. A typical scenario would be where one node requests the location of the node they wish to communicate with, from the central index node. Once a response is given, the node can then establish a direct connection with the target node. This is illustrated in the diagram below, where in the left illustration the node r is requesting the location of the node s from the index node. Once this has been obtained r can set up a direct connection with s (right illustration).

By using a central index node the need for a discovery service is reduced (or even removed). When a node connects to the network it informs the index node of its location. This means that establishing a communication link between two nodes can be a simple and quick process. However the central index node does pose as a potential single point of failure. Should it fail then the remaining nodes of the network will lose their means for looking up other nodes on the network. To take this into account, a combination of a lookup index node and a discovery service can be used.