Typically, a device in an ad hoc wireless network has a tunable radio allowing it to listen or transmit on one channel at a time. To ensure maximum connectivity, all devices tune their radio to the same channel. However, as node density increases, the interference worsens,resulting in lower throughput per device. Some of the interference is unnecessary. Modern radios can switch channels rapidly (i.e., tune to different frequencies quickly). Given multiple available channels, devices in a neighborhood can potentially transmit on different channels simultaneously to increase the network throughput. This dissertation explores whether it is possible to exploit the existence of multiple channels and the ability of radios to switch between them quickly to increase network throughput without a central coordinator. Multi-channel MAC should be viewed as a practical way to increase throughput when more spectrum is available, without hardware changes. We first classify existing multi-channel MAC protocols into four categories based on their operation principle. Then, we compare these approaches through both analysis and simulation. Using the best performing approach, Parallel Rendezvous, as a skeleton, we designed our own multi-channel MAC protocol called McMAC. To prove that McMAC is practical and to discover any hidden issue, we implemented the salient features of McMAC on an experimental hardware platform and evaluated its performance.