Improving Routing And Caching Performance In Dht Based Peer-To-Peer Systems