In this assignment, you are to develop programming skills of peer via a particular Peer-to-Peer (P2P)application – content distribution and distributed query. The application allows peers to form anoverlay and share information from the entire peer overlay. In this assignment, you will need toupgrade a client and a server into a peer. The peers are to form an overlay by IP multicast and theinformation stored in a peer can be shared by any other peers. When a peer queries a question, itwill multicast a request including the question to the peer overlay and the peer that has the answerto the question to respond to the requester peer. To query a question, a UDP datagram via IPmulticast is used. Once the answer is found, replying the answer is to use another separate UDPcommunication between the requester and the replier. To complete this assignment, you need tocomplete the following 2 parts.Part 1: Peer overlay design and implementationIn this part, you are to develop the simplified system of content distribution and distributed query.The assumptions on the system are specified as follows.