BGP is the routing protocol used between autonomous systems (AS) on the Internet to exchange routing and reachability information. It uses path vector routing to exchange routing information between ASes and allows for policies to influence path selection. BGP attributes like AS path, next hop, local preference, and communities are used to apply policies and influence the best path selection. Techniques like route reflection and confederations help scale the internal BGP mesh within a large AS.