I. The study database people understand this: http://wenku.baidu.com/view/32b8b13e376baf1ffc4fad7e.html
Cache and Buffer are two different concepts. Simply put, Cache accelerates "read" while buffer is "write". The former solves the read problem, save the data read from the disk. The latter solves the write problem and stores the data to be written to the disk. In many cases, these two terms are not strictly differentiated, and read/write hybrid types are often referred to as buffer cache.
A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use.
2. Programming people better understand this: http://wiki.answers.com/Q/The_difference_between_buffer_and_cache
Think of it like this: a "Buffer" is an area where data moves back and forth between two objects. A "Cache" is where data is stored when it may not be immediately needed, but might be soon. A buffer is like a hallway between two rooms, and a cache is like a closet. get it?