The best real world data you can collect on that is by using an existing client, with some modifications to record everything you need. Gnucleus or the open-source LimeWire are good starting points - or check out
www.gnutelladev.com for some more clients which you can modify to suit your needs. If you're not too keen on programming, things obviously change and you'll have to either continue your quest (by asking people here for example) or get that dusty programming book off the shelf.
It might actually be a nice pet project for someone - a lot of people have asked about a 'simulator', something that just collects a lot of data so you can use it for your write-up or other purposes. Most current developers are more inclined to develop something more practical for average end-users.
-- Mike