I'm an undergraduate and am looking forward to becoming an academic; do the whole PhD stuff and start doing research. I'm interested in a variety of computer science related things but lately P2P technologies have really caught my interest. I have the impression that I need to choose one of the computer science fields to perform my PhD studies in, so now I'm wondering how to do that, given my interest in P2P technologies. Would P2P fall under the area of distributed systems and such? Which fields of computer science are most relevant to P2P systems?
Distributed systems, algorithms and even graph theory are fields that are likely to be relevant.
But, in a sense, "fields" aren't particularly relevant. You don't get a PhD "in a field" but, rather, by finding an advisor who wants to do a research project with you. That person would probably be in one of the fields I've suggested but being in a field isn't a formal status.
Not repeating previous answer.
Security, cryptography, zero knowledge techniques are probably also very relevant. Essentially you should analyze what properties you expect from your P2P system, and that include two kinds:
properties that you would expect from any implementation of the same service.
properties that only P2P can provide.
Typically, many services can be fully centralized, but that gives too much power to whomever can access all the data. Possibly P2P can avoid that. At what cost?
Identifying the questions you might have, and the way they were so far addressed may help you identify relevant fields. Look at all existing P2P systems.
For example, the first one may have been Internet TCP/IP. What did it rely on? I would guess that probability theory has some part in it. What else?
And if you manage to produce a working P2P search engine that is competitive, I hope they give you two PhDs for the price of one.