Multiplexing is the process of combining two or more data streams into a single physical connection. TCP provides multiplexing facilities by using source and destination port numbers. These port numbers allow TCP to set up a number of virtual connections over a physical connnection and multiplex the data stream through that connection.
Typically, a transmitting host will attempt to connect to a well-known port number at the destination host. A few examples of 'well known ports' of protocols that ride on top of TCP are:
25 - Simple Mail Transport Protocol (SMTP)
21 - File Transfer Protocol
22 - Secure Shell
23 - Telnet
80 - HTTP
443 - HTTPS
The transmitting station will use a source port that is some arbitrary number above 1023. Each source and destination port pairing identifies a separate virtual connection, allowing multiple connections to share one physical network connection.
Practical Example
- Launch your web browser
- Type in a web page address
- The browser opens a connection to download the web page at that address.
- The browser opens a second connection for an image in that web page.
- The browser opens a third connection for the external style sheet for that page.
- Each of the three connections uses a different set of virtual ports.
- The web page, the image and the stylesheet all download simultaneously.
- The page is rendered by your browser.
TCP Tutorials
- Introduction to Transmission Control Protocol (TCP)
- TCP: A Reliable Protocol
- TCP Header
- TCP 3-Way Handshake
- TCP Connections
- TCP Sockets
- TCP Data Transfer/a>
- TCP Segmentation and Reassembly
- TCP Flow Control
- TCP Multiplexing
- TCP Precedence
- TCP Transport Stream Push (TCP Push)