title: difference between p2p and client-server node design
body: <p>I have some time of experience in server-client application development with c++ native call (epoll,etc), now i am trying to do something with p2p with netty. But I couldn't make clear different between p2p and server-client design. 
  IMHO, p2p is just like a server application but also will make connection to other peer(server) like a client, am I right? which protocol tcp/udp is more common to use in a p2p design? The file sharing p2p applications I have seen are all tcp base. The p2p example from netty guide are using udt, i guess it would be a good use case for peer-to-peer gaming, am I right?</p>