When you think of your home’s cable connection, it seems like a unidirectional thing since many TV channels come into your home through a single wire. But what about when you order a movie on-demand? Your choice of movie must go out to the cable company somehow, over the same wire. What about cable internet access? When you surf the web and send emails you send out tons of data. Cable home phone is another popular service as well — your voice has to be transmitted out from your home. And to top it off, many people subscribe to all 3 services at once!
How is it possible to have all this information traveling simultaneously in both directions on one cable?
It’s a simple question with a relatively simple answer. It was easy to find out how multiple services can exist on one cable unidirectionally but harder to find out how they can exist bidirectionally.
How to Transmit Several Things in One Direction
It helps to talk about the unidirectional case first. The answer to this first question is that many blocks of information can be sent over one wire using a technique called Frequency Division Multiplexing (FDM) . TV cables have a bandwidth of 1 GHz  which means 1 GHz is the maximum frequency they can carry. FDM allows this 1 GHz spectrum to be split up into slots (say 6 MHz each) where each slot carries a block of information. In the case of old-school analog cable TV, each slot carried one channel . The receiver, say your TV or set-top-box, uses a filter to tune in to a specific slot to extract its information.
These slots can carry any type of electronic information including digital TV channels, internet data, and voice (phone) data. The receiver only looks at the slots it’s interested in. For example, your cable modem simply tunes into the slots that are allocated for internet data and ignores the slots that carry TV channels.
I won’t go into details about how FDM is implemented at the circuit-level but see the Wikipedia links below for more info.
How Bidirectional Works
Bidirectional transport is also called “duplex”. A simple way to implement duplex communication is to have separate wires for each direction. This is how Ethernet works for example. But your home’s cable connection is just a single wire. So how does it work?
As you may have guessed, FDM is used to allocate separate slots for receive and transmit data. So this means that both ends of the cable are being driven simultaneously. Your modem is driving the wire with data to send out to your provider and your provider is also driving the wire with data to send to you! Intuitively this seemed off to me because how can two things drive the same cable at once without creating interference? There are 2 parts to the answer:
- From an electrical perspective, the principle of superposition allows two transmitters to drive the same cable at once with the resulting signal on the cable simply being the sum of the two individual signals. 
- By using FDM to first assign these signals into separate slots they can be safely summed together without interfering with each other. If they were in the same slot the resulting sum would be corrupt since the signals would directly overlap.
The circuit that performs this function is called a diplexer . When the diplexer is used for bidirectional communication, it’s called a duplexer . See  for more information on duplexers.