It is a great question but unfortunately the complete answer is very complex and some of it is still theory. The amount of research is huge and I don't think you could really simplify it enough to put in a post here. Even doing something like a google search would take you forever to sort through the BS. I'd get a couple of books to read written by some of the guys who are quoted here a lot.