When your node recieve a transaction from one of it's neighbors: this transaction is referencing 2 other transactions : t1 and t2 (trunk and branch transaction).
If either t1 or t2 (or both) is not in the database of your node: then the transaction hash of t1 (or t2 or both) is added to the queue of the "transactions to request to one of your neighbors".
At some point, your node will take a look into this queue and ask for details about one of the transaction in the "transaction to request" queue to one of it's neighbors.
By this means your node solidify it's view of the tangle (i.e. it fills the unknown parts).