1. What is a buffer?

On a train, there are a set of 'buffers' between each carriage. These device absorb shocks as the carriages move back and forth. A buffer memory does something similar: It accepts a stream of data at a certain rate, stores it for a bit, then streams it out again at a different rate.

This is a very useful feature, because it allows data to be loaded very rapidly into the buffer, then the application can go off and do something else whilst the buffer outputs the data at its own pace.