3.1 Network Services
3.1.2 Connection-oriented services
A connection-oriented protocol works much like the process that makes a telephone call work. The caller initiates a call and then knows the connection is made when he or she hears a voice at the other end. When the exchange of information is complete, the user hangs up the phone to terminate the call. (As an aside, when studying Voice over IP - see, for example, "Voice over IP Fundamentals" from Cisco Press - you learn that data and voice integration requires a heavy dose of telephone switching and signaling theory to grasp how it works.) Another example of a connection-oriented service would be mailing a certified letter and receiving a return receipt as verification that the receiving party did indeed receive the letter.

Connection-oriented protocols have some method for connection establishment, flow control, error control, and session termination. A connection-oriented protocol ensures that packets are in order and manages timeout counters as well. A connection-oriented protocol is also capable of requesting the retransmission of missing packets. TCP and ATM are two popular connection-oriented protocols.

With connection-oriented data transfer, a logical association, or connection, is established between protocol entities. The figure in the left illustrates the three distinct phases of connection-oriented data transfer:

  • Connection establishment
  • Data transfer
  • Connection termination

During the connection-establishment phase, a single path between the source and destination systems is determined. Network resources typically are reserved at this time to ensure a consistent grade of service, such as a guaranteed throughput rate.

In the data-transfer phase, data is transmitted sequentially over the path that has been established. Data always arrives at the destination system in the order in which it was sent.

During the connection-termination phase, an established connection that is no longer needed is terminated. Further communication between the source and destination systems requires establishment of a new connection. The termination aspect can vary from protocol to protocol. With some protocols, a specific entity may always establish and terminate the connection. With other protocols, either side can perform these functions.

Connection-oriented network service has two significant disadvantages as compared to connectionless service: static-path selection and the reservation of network resources. Static-path selection can be a source of difficulty because all traffic must travel along the same static path. A failure anywhere along that path causes the connection to fail. Static reservation of network resources causes difficulty because it requires a guaranteed rate of throughput and, thus, a commitment of resources that other network users cannot share. Unless the connection uses full, uninterrupted throughput, bandwidth is not used efficiently.

Connection-oriented services, however, are useful for transmitting data for applications that require a lengthy exchange of data. Voice and video applications are typically based on connection-oriented services.

When troubleshooting connection-oriented protocols, check whether there are multiple retransmissions of data segments. If there are, determine why the higher-layer protocol is requesting them. Verify that sequence numbers, acknowledgements, window sizes, and other parameters associated with this type of protocol are appropriate and are being incremented or managed correctly. This is one place where a protocol analyzer (software or hardware) is indispensable.