Code in java Design the peer to peer system in which many pairs of nodes (from both clusters/groups) as possible or at least 100 pairs to exchange messages or content data. A text message sent in lower-case be converted to uppercase and returned. You may replace the text-file with something more meaningful or practical such as videos and audio file. If so, then replace the character- conversion logic inside the server-side code to reflect this new application. Create a new TCP socket for, e.g., N1, while it waits on its initial request to the S-Router for group N; and also how the S-Router for group M instructs node M1, for example, to connect to N1 using this new TCP link. Make use of the threading code and be careful of creating several sockets and leaving them open (not closed) at the same time. Note that the S-Router-S1 and S-Router-S2 communicate using a pair of TCP sockets with port numbers 5555 and 5556 respectively. The test files exist on any node which is designated as a sender-Client/Peer. Collect and analyze data for such parameters as average message sizes, average transmission time, average time for the routing-table lookup, number of bytes/units of data transferred per unit time, average number of message drops..