Connection-oriented communication
Connection-oriented (CO-mode[1]) 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, and where a stream of data is delivered in the same order as it was sent. 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 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.
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.
Contents
Circuit switching
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.
Datalink and network layer virtual circuit switching
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 connectless 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.[citation needed]
Some connection-oriented protocols have been designed or altered to accommodate both connection-oriented and connectionless data.[2]
Examples
Examples of connection-oriented packet mode communication, i.e. virtual circuit mode communication:
- Asynchronous Transfer Mode
- Connection-oriented Ethernet
- DCCP
- Frame Relay
- GPRS
- IPX/SPX
- Multiprotocol Label Switching
- SCTP
- Transmission Control Protocol
- TIPC
- X.25 is a connection-oriented reliable network protocol.
- Ip addresses
Some connection-oriented protocols have been designed or altered to accommodate both connection-oriented and connectionless data.[3]
See also
References
- ↑ Information Processing Systems - Open Systems Interconnection, "Transport Service Definition", International Organization for Standardization, International Standard 8072, June 1986.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.