Connection-oriented communication is a network communication mode in telecommunications and computer networking, where a communication session or a semi-permanent connection is established before any useful data can be transferred, enabling the ability to ensure that data is delivered in the correct order to the upper communication layer. The alternative to connection-oriented transmission is connectionless communication, for example the datagram mode communication used by the IP and UDP protocols, where data may be delivered out of order, since different network packets are routed independently, and may be delivered over different paths.
Connection-oriented communication may be a circuit switched connection, or a packet-mode virtual circuit connection. In the latter case, it may use either a transport layer virtual circuit protocol such as the TCP protocol, allowing data to be delivered in order although the lower-layer switching is connectionless, or it may be a data link layer or network layer switching mode, where all data packets belonging to the same traffic stream are delivered over the same path, and traffic flows are identified by some connection identifier rather than by complete routing information, allowing fast hardware based switching[clarification needed].
Connection-oriented protocol services are often, but not always, reliable network services, that provide acknowledgment after successful delivery, and automatic repeat request functions in case of missing data or detected bit-errors. ATM, Frame Relay and MPLS are examples of a connection-oriented, unreliable protocol. SMTP is an example of connection-oriented protocol in which if a message is not delivered, an error report is sent to the sender which makes SMTP a reliable protocol.
Circuit switched communication, for example the public switched telephone network, ISDN, SONET/SDH and optical mesh networks, are intrinsically connection-oriented communications systems. Circuit mode communication provides guarantees that data will arrive with constant bandwidth and at constant delay and in-order delivery of a bit stream or byte stream is provided. The switches are reconfigured during a circuit establishment phase.
Virtual circuit switching
Packet switched communication may also be connection-oriented, which is called virtual circuit mode communication. Due to the packet switching, the communication may suffer from variable bit rate and delay, due to varying traffic load and packet queue lengths. Connection-oriented communication are not necessarily reliable protocols.
Because they can keep track of a conversation, connection-oriented protocols are sometimes described as stateful.
Transport layer connection mode communication
Connection-oriented transport layer protocols provide connection-oriented communications over connectionless communications systems. A connection-oriented transport layer protocol, such as TCP, may be based on a connectionless network layer protocol (such as IP), but still achieves in-order delivery of a byte-stream, by means of segment sequence numbering on the sender side, packet buffering and data packet reordering on the receiver side. The sequence numbering requires two-way synchronization of segment counters during a three-step connection establishment phase[example needed].
In a connection-oriented packet switched data link layer or network layer protocol, all data is sent over the same path during a communication session. The protocol identifies traffic flows only by a channel/data stream number, often denoted virtual circuit identifier (VCI), rather than by complete routing information for each packet (source and destination addresses) used in connectionless datagram switching such as conventional IP routers. In connection-oriented communication, routing information may be provided to the network nodes during the connection establishment phase, where the VCI is defined in tables in each node. Thus, the actual packet switching and data transfer can be taken care of by fast hardware, as opposed to slow software based routing. Typically, this connection identifier is a small integer (10 bits for Frame Relay, 24 bits for ATM, for example). This makes network switches substantially faster (as routing tables are just simple look-up tables, and are trivial to implement in hardware). The impact is so great, in fact, that even characteristically connectionless protocols, such as IP traffic, are being tagged with connection-oriented header prefixes (e.g., as with MPLS, or IPv6's built-in Flow ID field).
ATM and Frame Relay, for example, are both examples of a connection-oriented, unreliable data link layer protocols. There are also reliable connectionless protocols as well, such as AX.25 network layer protocol, when it passes data in I-frames. But this combination is rare, and reliable-connectionless is uncommon in modern networks.
Connection-oriented protocols handle real-time traffic substantially more efficiently than connectionless protocols, especially with short constant length packets, which is why ATM has yet to be replaced with Ethernet for carrying real-time, isochronous traffic streams, especially in heavily aggregated networks like backbones, where the motto "bandwidth is cheap" fails to deliver on its promise. Experience has also shown that over-provisioning bandwidth does not resolve all quality of service issues. Hence, (10-)gigabit Ethernet is not expected to replace ATM at this time.
Some connection-oriented protocols have been designed or altered to accommodate both connection-oriented and connectionless data.
Examples of connection-oriented packet mode communication, i.e. virtual circuit mode communication:
- Ramos-Escano; et al. (June 2, 2005). "US Patent Application Publication 2005/0117529 A1". Retrieved May 19, 2008.