Simulation and emulation are techniques often used in the research community. They can be used during development, testing and debugging of a new protocol, to test and look at the characteristics of a protocol already in use. And to evaluate the overall performance of the network. Network emulation is used to test real network systems where we can configure and control the environment. Network emulation lets us process real network traffic from the emulated network by using traffic shapers to vary common network parameters in a controlled way. Some of the network behaviour that we can control this way are delay, loss, jitter and bandwidth. This helps when we want to test different protocols or applications under different circumstances. An emulator can also be hard to configure in the correct manner, and a faulty configuration can lead to incorrect results. NetEm, a network emulator included in the Linux kernel doesn’t have a built-in bandwidth emulator, but relies on other queueing disciplines in the kernel to do bandwidth limitation. Configuring these together is very hard to get right. In this thesis we propose a design for a built-in rate emulator extension to NetEm, which we also implement. This implementation is then tested to verify the condition of our design.