As an application developer my entire understanding of networks was a high level 'acceptance' of http request/response pairs along with some DNS addressing.
Somewhere in the back of my mind I understood that HTTP was built on top of TCP and that TCP packets need to be routed across networks, and that the routing of these packets can vary. I have never, until now, considered the complexity that must be present in routing packets via 'hops' from origin/destination.
How much control do ISPs and other entities have over this process? i.e. my understanding is that an ISP can conceptually be seen as a destination within a multi-hop route - does an ISP have the ability/authority to decide on the next destination of a particular packet? If so, how is this controlled?