The Controller Area Network (CAN Bus, CANBUS, or just CAN) is an internationally standardized networking protocol, used by modules in modern automobiles as well as industrial vehicles (think tractors, forklifts, and so on).
Signals are dispatched (and received) through a low-level system of controller Nodes in a broadcast-style format. All data is available to all nodes that reside on the same bus. There is no concept of filtering data in the scope of the transmitters, therefore all filtering and masking must be done by the nodes on the receiving end of things.
Unlike other network protocols, with CAN, each Transmitter Node (think "ECU", "module") broadcasts all of its data onto the bus, and does not discriminate based on different Nodes listening to it. There are filters built into the Receiver Nodes, but none of them are at the transmitter level.
It is therefore the responsibility of the listener nodes (or Receivers) to filter through the noise, and determine what traffic is relevant to their individual needs and purposes.
If you have experience with other network types, like TCP, this shotgun-style networking might seem like total madness to you. It casts a wide net, but has proven itself reliable in the areas that matter.
Since the primary automotive uses for CAN are monitoring sensitive sensor data, controlling life-saving and crash-safety equipment, and receiving/dispatching engine control signals (in a timely manner), there is no room for error.
The wiring used is often a small gauge, twisted pair, arranged in bus form along a main channel. Each Node is connected to the main channel by a "stub", using the shortest amount of wire possible. The twisted pair design negates the need for shielding on the wires, and it resists most electrical interference it might encounter inside the automobile application.
The Nodes connect to and interface with the network via a small transceiver chip, usually something like a TJA1042, TJA1050, or TJA1051. These transceivers interact with a CAN controller, although sometimes they are built into the same unit together, and translate the messages and control the flow of data, as well as handle errors and "reboots".