Providing anonymity to network communication refers to the prevention of “networking information” retrieval, not only using the content of transmitted data packets but also from their timing information. Access to such timing information can reveal the source-destination pairs or path of data flow which is a violation of user privacy, and can further be used to jam a particular flow or create black holes. Chaum Mixes [1] are often used to obfuscate this timing information from malicious eavesdroppers. A Chaum Mix is a relay node or a proxy server that collects packets from different users, then uses layered encryption and packet padding to make outgoing packets appear indistinguishable to eavesdroppers. Furthermore, it also alters the timing information by reordering and batching together packets from different users, so that the probability of any outgoing packet belonging to a particular user is identical for all users, thus achieving perfect anonymity. A drawback of the ideal Chaum Mix is that if long data streams (eg. media streaming) are transmitted, then it may require a very large buffer capacity to work well. In fact, it has been proven that any batching strategy, under the constraint of a limited buffer size, would eventually reveal the source identities [2]. It is, however, possible to mask the actual pattern of traffic flow through the insertion of dummy traffic. For example, consider a network where all nodes transmit packets according to scheduled departure times. If an actual packet is unavailable for transmission at its time of departure, a dummy packet can be transmitted in its place and perfect anonymity is still maintained. But the extensive use of dummy packets can reduce network throughput, which leads to some interesting questions: