Analytical expressions for three P-wave attenuation mechanisms in rocks are given and numerically compared. The mechanisms are: (1) Biot loss, in which flow occurs at the scale of the wavelength between the peaks and troughs of a P wave; (2) squirt loss, in which flow occurs at the grain scale between microcracks the grains and the adjacent pores; and (3) mesoscopic loss, in which flow occurs at intermediate scales between the various lithological bodies that are present in an averaging volume of earth material. Each mechanism is of importance over different frequency bands. Typically, Biot loss is only important at the highest of ultrasonic frequencies (> 1 MHz), squirt-loss (when it occurs) is important in the range of 10 kHz to 1 MHz, while mesoscale loss dominates at the lower frequencies (<10 kHz) employed in seismology.