At our next department tea, Jack Sneeringer '16 and Martin Liu '16 will talk about research they did at Colgate over the past summer. Lunch will be served following their talk.
Abstract: Large data centers are often looking for ways to improve performance, however it is difficult to estimate how potential upgrades will affect performance. A network simulator should be able to provide an estimate. However, existing network simulators are extremely accurate and unscalable or scalable but wildly inaccurate. Our research was focused on developing an accurate and highly scalable network simulator.
Data is sent over the Internet in small pieces called packets. The best way to visualize this is to think of a table you might order from IKEA. The table isn’t shipped to you in one piece, but instead is shipped in small pieces and is assembled once all of the pieces have arrived. A file is transmitted across a network in the same way. This is an important notion for network simulation because sending a single file across a network is thousands of simulation events.
Our simulator aims to improve scalability through the use of “flowlets.” Flowlets are designed to reduce packet level computation while still realistically simulating traffic. A flowlet is a “super packet” that is handled by the network as a single packet but is the size of 10 or 20 packets. Using flowlets reduces the number of simulation events significantly while still representing traffic flow fairly well. A nice feature of flowlets is that they are completely adjustable. The user can decide how large to make a single flowlet depending on his or her personal preference for accuracy or efficiency.
Our simulator also aims to improve scalability through the use of XCP instead of TCP. The use of XCP was motivated by the difficulty of implementing flowlets in TCP. For instance, TCP requires packet loss to tell the sender to reduce traffic but figuring out how to drop a flowlet is difficult. A nice feature of XCP is that it does not allow for packet loss. In addition, XCP is more scalable from a simulation standpoint than TCP. XCP calculations are done on switches, not at the end user. This means that the number of calculations scales with the number of switches and not the number of end users.