In this thesis, a new multi-channel medium access control (MAC) scheme is proposed. The scheme is based on a common control channel, to coordinate the use of multiple data channels among the terminals, and a request pulse (RP) channel, in which narrow request pulses are transmitted to help avoid occurrence of collisions in the common control channel. The transmission of each data packet on a data channel is preceded by the exchange of three control messages, RTS, CTS, and RES, between the transmitting and receiving terminals, using the common control channel. These control messages allow the transmitter and receiver to agree on the channel to be used for data transmission. Furthermore, they provide the necessary mechanism for avoiding collisions in data channels, while resolving the well-known multi-channel hidden node and multi-channel deafness problems. The idea of a common control channel, while resolving the challenges faced in a multi-channle environment, introduces a new problem of its own: as the number of data channels and the number of data packets sent on these channels go up, the volume of control messages that need to be exchanged in the control channel would also increase, ultimately making the control channel a system bottleneck. We address this problem in the following way: each terminal seeking to transmit data, before sending its RTS control message in the control channel, announces its desire to do so by sending a narrow request pulse, in a separate auxiliary control channel called request pulse channel. Other terminals hearing this request pulse, refrain from sending their request pulses for a prescribed period of time. Using this approach we are able to minimize the number of collisions of RTS messages in the control channel, thereby improving its efficiency and enabling a single control channel to suport a larger number of data channels. The idea of sending request pulses on an auxiliary channel in order to prevent collisions in the main channel was introduced by Bateni. Here, we have modified the original scheme, as described below, in order to optimize it for the present application where the channel benefiting from the request pulses is the common control channel, with very short control messages, instead of the data channel.