Troll is an application designed to simulate the various quirks and vagaries of a network environment. Troll forwards UDP datagrams between processes, sometimes dropping, garbling, and duplicating them. The accompanying binary runs on Linux. Download it and save it as a file named 'troll' The original author of troll is Mitchell Tasman, has been extensively modified by Marvin Solomon, and has more recently been adapted by Vivek Shirvastava to meet the needs of the CS 640 programming assignment. You should check the accompanying man pages on how to use troll in detail. However, here is a short example to use troll. Let us assume that you want to send traffic from A to B (both are tcpend processes) and want to simulate network losses, reorders, and duplicates using troll (C). Let us assume the following IP address and port assignments for A, B, and troll and data is being sent from A -> B. Process | IP address | Port ====================================== tcpend (A) | 128.105.112.101 | 5201 tcpend (B) | 128.105.112.102 | 5202 troll (C) | 128.105.181.31 | 5200 Then execute the following commands in sequence: On C: troll -S 128.105.112.101 -a 5201 -C 128.105.112.102 -b 5202 5200 (Note that troll's port number, 5200, does not need to be qualified.) On B: tcpend -p 5202 -m -c On A: tcpend -p 5201 -s 128.105.181.31 -a 5200 -f -m -c Essentially you tell A that the destination is C and not B.