Virtual circuit multiplexing or VC-MUX is one of the two (the other being LLC encapsulation) mechanisms for identifying the protocol carried in ATM Adaptation Layer 5 (AAL5) frames specified by RFC 2684, Multiprotocol Encapsulation over ATM.
With virtual circuit multiplexing, the communicating hosts agree on the high-level protocol for a given circuit. It has the advantage of not requiring additional information in a packet, which minimizes the overhead. For example, if the hosts agree to transfer IP, a sender can pass each datagram directly to AAL5 to transfer, nothing needs to be sent besides the datagram and the AAL5 trailer. This tends to reduce fragmentation overhead (e.g., an IPv4 datagram containing a TCP ACK-only packet with neither IP nor TCP options exactly fits into a single cell). The chief disadvantage of such a scheme lies in duplication of virtual circuits: a host must create a separate virtual circuit for each high-level protocol if more than one protocol is used. Because most carriers charge for each virtual circuit, customers try to avoid using multiple circuits because it adds unnecessary cost.
It is commonly used in conjunction with PPPoE and PPPoA which are used in various xDSL implementations.