Here is what's important for a quality, time-sensitive Internet connection:
1) Ping = Time data takes for a round trip from client to host back to client. High ping = high delay between when you do something and when the host see's it happening.
2) Jitter = Variance in ping. If you had a low ping before, do you have a low ping now? Your ping can jump all over the place with a low quality connection. Ping should be nearly constant, and Jitter describs the quality of this.
3) Packet Loss = How much data is lost. If I send data to the host but the host never gets it, or if the host sends me data and I never get it, it must be resent and that takes time. The game has prediction algorithms to make it look like you never stopped running but what if you changed course? That's why you see people warp around in the game.
4) Buffer-Bloat = Data is ready to be sent or received, but there is too much traffic on your local network and your router cannot keep up, so your data becomes queue'd and must wait to be sent out or received. This creates artificial jitter which can result in choppy game play much like packet loss. HOWEVER, if the traffic is mostly constant and a high average ping is a result, with Black Ops 2 lag comp you are put at a calculated advantage. This is what is happening when you hear of people downloading torrents while playing Black Ops 2. They are artificially inflating their ping via consistent buffer-bloat.
Here's what's not so important (comparatively speaking):
Bandwidth = How much data you can push through at once. (i.e. garden hose vs fire hose) With most Internet connections there is much more bandwidth than is needed, even if you are host. Bandwidth becomes important only if you are sharing your Internet connection with other people. I get angry when this is the only spec people toss out there when claiming they have a good Internet connection as it is the most irrelivant to a quality connection.
My connection:
Ping: 13ms (average)
Jitter: 1ms (meaning my max ping is 14ms)
Packet Loss: 0%
Buffer-Bloat: Non-existent (thanks to proper "QoS" on an Enterprise level router)
Bandwidth: 60Mbps Down / 8Mbps Up
I do not always get host although my internet is better than 93% of US internet connections. In fact, it is RARE that I get host. Why? Other than crappy programming, who knows? What I do know is that I am always behind everyone else by about 250ms - 333ms, regardless if I am host or not.
The times that I have had my best games is when a local friend of mine with GARBAGE internet was host. Why was he host? Who knows? Why did I benefit? Who knows?