In the Bitcoin (0.10.0) source code I'm coming across the term "trickle".
Could someone please give short but accurate explanations on following instances and tell what they're used for?

   1. `bool fSendTrickle`
   2. `bool fTrickleWait`
   3. `CNode* pnodeTrickle` ?

What is the general idea behind "trickling"?