Brasserie by literal translation is brewery. This kind of restaurant that brews its own beer and serves food has its roots in Alsace. Today, I think there are none still left that meet this strict definition. Brasserie has come to mean a restaurant serving serving traditional foods, usually sort of large in size, informal, open long hours kind of place. Some good examples, Pied du Cochon, Balzar, Terminus Nord, Chez Jenny, etc.
Bistro is said to be a derivation of a Russian word for "quick" supposedly used by Russian soldiers when ordering food in Paris restaurants during their occupation of Paris in 1814-5 following the Napoleonic wars. Today it typically indicates a smaller restaurant, often family owned. Today these range from places serving very traditional foods in simple settings (Cafe Constant might be an example) to more upscale places serving modern, near gastronoimc foods (l'Os a Moelle, Ze Kitchen Gallerie for example).
Good definitions from f2dat06.
Very rough rule of thumb is that a true brasserie is open nearly all day and will serve food all afternoon. Bistro's tend to open at lunch 12:00ish with last orders to the kitchen by 2:00ish, and dinner from 7:00 or 7:30 to last orders at 10:00 or earlier. However, as with all rules there are many brasseries that close in the afternoon...not certain that many bistros serve all day though.
Now where do Cafes, Bars and Restaurants fit in....?