The Mac object simulates the medium access protocols that are necessary in the shared medium environment such as the wireless and local area networks. Since the sending and receiving mechanisms are tightly coupled in most types of MAC layers, it is essential for the Mac object to be duplex.
On the sending side, the Mac object is responsible for adding the MAC header and transmitting the packet onto the channel. On the receiving side, the Mac object asynchronously receives packets from the classifier of the physical layer. After MAC protocol processing, it passes the data packet to the link layer.