Design an application that sends three UDP packets to each router from source to destination and calculate the RTT for each and provide average RTT as well with names etc. When the application comes up it starts all the routers, sources and destinations. Each has to know their role and the path to be taken if receive a packet. Only the directly related routers know about the hosts. They have to send messages to others to inform about that. System will take some time to stabilize so all routers know what is the path to take if they have to send the packets from any source to any destination in the network. There are two types of messages to be sent, one routing updates and second actual traceroute packets. The traceroute packets have TTL incrementing from 1, routers only reply to the packet if it receives one with TTL of 1, otherwise it just decrements the value and forwards to packet. We need to see some message from the routers when they forward or reply the packet. Sender sends multiple packets with increasing TTL until it receives reply from the destination. Routers have to send reply as well as forward packet when they receive traceroute messages so database at each router needs to keep all forwarding as well as reverse addresses. You have to design your own message format and give IDs in any way you want. At minimum the message must have source address, destination address, TTL and address of the sending node etc.