Part 3: Simulating TCP Why simulation is necessary? Analyze theoretical aspects Reduce overhead to build up research environments Easy to implement new functions Does not require the knowledge of kernel coding