For further details on Ethernet networks, please refer to http://www.linuxpapers.org/, which contains some articles on networking basics and Ethernet networking.
The BPF language is described in the following paper by Steven McCanne and Van Jacobson: “The BSD Packet Filter: a New Architecture for User-level Packet Capture”, available at http://www-nrg.ee.lbl.gov/nrg.html.
The tcpdump program is available at http://www-nrg.ee.lbl.gov/nrg.html.