No problem, so the messages can be - in a sense - divided in two categories: requests and responses. When e.g. you send a request to the network, it travels through different nodes until it finally reaches it’s destination, let’s call it node B. If everything is OK, the node B sends you back a response which again travels through different nodes till it reaches you. Now we have two problems:
a) what if someone other than the node B tries to send you a response? This one is solved with the sentinel.
b) how do you know that a response you receive is something that you requested? The current solution to this problem we have is that the response comes back together with the signed request, and since we were the ones who signed it, we can easily make sure we were the requesters.
For example clients. Clients are those who don’t store data nor control the network, that is, they just query data or request the network (nodes inside the XOR space) to store data in it.
Another example are Nodes that did not find their place in the network yet. That is, when a node starts, it needs to connect to other nodes that are as close to it as possible using the XOR distance (only then it is considered to be “inside” the XOR space), but before it does so, it needs to find its peers. This searching for peers is done with help from the nodes in the XOR space.
You’re welcome :), let me know if you have more questions or if you’d like me to further elaborate.