How does a bitcoin transaction enter the network? I am trying to understand Bitcoin at a more fundamental level. I'd like to know how a new transaction enters and propagates across the network? I've read many Bob and Alice type scenarios where it's said that "the transaction is broadcast to the network". If there are many nodes on the Bitcoin network, how does the wallet know which node to initially broadcast the transaction to?

EDIT

Just for clarification, I'm referring to the process of sending from the client wallet (e.g. Mycelium on Android) to Node 1, before it gets propagated to all other nodes. How does my wallet know which node to send to first, or does it just randomly pick one?
I'd suggest you read this blog post about using the raw Bitcoin protocol: http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html

To answer your question, you should specifically read the "How to find peers" section of that post. Specifically this part:


  There's a chicken-and-egg problem, though, of how to find the first
  peer. Bitcoin clients solve this problem with several methods. Several
  reliable peers are registered in DNS under the name bitseed.xf2.org.
  By doing a nslookup, a client gets the IP addresses of these peers,
  and hopefully one of them will work. If that doesn't work, a seed list
  of peers is hardcoded into the client.


and


  The hardcoded peer list in the Bitcoin client is in chainparams.cpp in
  the array pnseed. For more information on finding Bitcoin peers, see
  How Bitcoin clients find each other or Satoshi client node discovery.