Why can't distance vector and link state routing be used as internetwork routing algorithm? That is apart from the high convergence time of Distance vector routing is there any other reason we cannot use it as an exterior routing algorithm?
Someone once wrote this as an answer to a similar question:
Other protocols like EIGRP or OSPF assume the best way to get somewhere is the fastest link -- i.e. the link with the highest bandwidth. As such, they have a simple metric for selecting routes.
In many situations, especially between different organizations (autonomous systems), the reason for choosing a particular path may have nothing to do with bandwidth. It may be due to a pre-arranged agreement on who will carry what traffic, or based on some financial agreement. You may want to route some traffic to one neighbor, but different traffic to another.
The main advantage of BGP is that it gives you much more control over what routes you advertise and what advertisements you accept from your neighbors. BGP gives you more control over route selection and your neighbor's route selection.
There's saying, documented in RFC 1925:
(3) With sufficient thrust, pigs fly just fine.
With sufficient CPU power, you can run link state in Internet, and you'd do probably fine. But that's neither elegant nor scaleable.
BGP was invented to provide scale - by limiting number of unnecessary things internetworking protocol would need to deal with and focusing on things, that on the internetwork scale are important (like AS_PATH, which shows on a Internet scale how AS interconnect).
Link-state protocols for example, are focused on links, not prefixes or AS_PATHs. Why would you like to keep link state information across all links in the Internet? Can you do it? Yeah, probably. Will it run on processors that were available 20 years ago? No. Would it be really wise to do it today from engineering perspective? Again, probably not - at least not on every node.
In the era of SDN controllers, more and more horse power will be available to provide large-scale calculations across or even for entire Internet. That doesn't however mean this should be executed on a per-node basis.