Your connection to the Internet is probably single-homed, that is, one connection going to one upstream provider. Simple enough to understand - "send all packets not meant for the LAN to this address".
Consider that a large company, or a datacenter with hundreds to thousands of servers, will have multiple connections to multiple providers, such as ATT, Level3, Sprint, Cogent, etc.
BGP is the border gateway protocol - it lets you load sets of prefixes (eg. 207.89.0.0 if that range were all owned by one provider) and then given the connections you have and what prefixes are connected to that connection, it will try to use the least number of hops to get your traffic to the destination.
ASN is autonomous system number - basically a "site location" that represents an organization that has some number of IP addresses (represented by prefixes as above).
You use the ASN in conjunction with the other information you give BGP, so that you don't have to store ALL the routes for ALL the locations and compute the path for each packet.
Big routers like the larger Ciscos have custom RAM chips and do most of the routing in hardware, in order to be fast enough. They are called TCAMs : http://www.enterprisenetworkingplanet.com/nethub/article.php...
Is it:
1) A provider might not have enough bandwidth available for your needs, so you need to diversify?
2) You would get multiple providers so that you try to reach as many destinations as possible directly? IOW, if I only have ATT, then in order to get to destination X that's on Level3 there's an extra hop wherever the hell ATT connects to Level3, and you also have Level3 yourself then the fastest route to that is through the Level3 network?
3) All/None of the above/something else?
i've never read any books on the stuff, but i used to work at an isp and learned about larger-scale routing concepts just by gleaning it from cow-orkers. unless you're going to work at an isp or do network administration for a large network, you're probably not going to interact with bgp, eigrp, asn's and other concepts much, if any.
that said, you can subscribe to the nanog mailing list (be prepared for lots of boring "can someone from xyz network contact me off-list" threads), play around with the various public route servers available, and if you're really interested, setup a test network with openbgpd or quagga.
CCENT/CCNA ICND1 Official Exam Certification Guide
CCNA ICND2 Official Exam Certification Guide
Both are on Cisco Press.
It doesn't go up to BGP but does provide a solid introduction to other routing protocols like RIP, RIPv2, OSPF, and EIGRP.