* Skynet uses a point-to-point protocol rather than a DHT, which not only makes it faster, it's also more robust to abuse. DHTs are pretty famously fragile to things like DDoS and active subversion, and Skynet has been designed to be robust and high performance even when malicious actors are trying to interrupt the network.*
Think about it this way. To be able to find who is hosting the file, we need a mutable shared data structure which can be updated with this information as it changes over time. In IPFS, this is fulfilled by the DHT, whereas in Skynet/Sia the blockchain takes over the role.
I have had to deal with routing when building the Intercoin project. And spoke to several of the teams including at MaidSAFE. One way of selecting nodes from the global network is to have everyone’s IP addresses. But them you make the entire network susceptible to DDOS attacks. One of the advantages of an additional search layer (DNS, DHT etc.) on top of IP is that it can mitigate DDOS. The other is if the IP actually changes.
To be a host on Skynet, you have to declare yourself on the Sia blockchain, which means users running a blockchain node (full node or lite node) are able to have a complete and limited list of all the possible hosts on the network. The Skylinks aren't just hashes, they contain a couple bytes extra of information as well.
Between the explicit list of potential hosts and a small amount of hinting in the Skylink, you can narrow down the number of potential places a file is stored to be small enough that you can just ping all of them in parallel with a request for the data. You don't have to do any multi-hop routing to find the data.
* Skynet uses a point-to-point protocol rather than a DHT, which not only makes it faster, it's also more robust to abuse. DHTs are pretty famously fragile to things like DDoS and active subversion, and Skynet has been designed to be robust and high performance even when malicious actors are trying to interrupt the network.*
How is P2P used rather than DHT