TCP provides lots of additional services which have been added over it’s lifetime one of the more useful ones is that of the virtual circuit transport service. There are three distinct phases in the life of any TCP connection – establishment, transferring data and termination. There are many applications including things like remote login and those that enable file transfer which are perfectly suited to using a virtual circuit type service. Many other applications are suited better towards a transaction based service which is basically a client request followed by a server response. This can be explained by briefly detailing it’s characteristics:
1: Any overhead of connection establishment and the subsequent termination should be minimized. Ideally one request should be sent followed by the corresponding receive before any other packets are sent.
2: Latency should be reduced to the sum of the round trip time (RTT) plus the server processing time (SPT).
3: Server should be capable of detecting duplicate requests and not processing them again.
A very important application uses this type of service which forms the very backbone of the internet – the Domain Name System (DNS). Other common applications such as the BBC VPN many people use to bypass the numerous region locking systems which exist online. The other important decision that an application developer must consider is whether to use UDP or TCP for the transport. The difficulty is that TCP simply provides too many features for an efficient transaction whilst UDP doesn’t really provide enough. Normally UDP is used simply because it avoids the overhead of TCP connections but this involves adding the features that are required like retransmission, dynamics timeouts and congestion avoidance.
The solution that is a better alternative than this is to provide an additional transport layer to provide more efficient handling for the transactions. The transaction protocol which is commonly used now by many applications is called T/TCP defined in RFC 379 – extending the TCP protocol for transactions.
Remember most TCPs require 7 segments to open and close a connection. An additional three more segments are added to deal with the requests and replies (initial and the one responding to the ACK). In addition it may be necessary to add extra control bits to deal with other functionality and connection information required to complete the transactions properly.
James Hibbert: Polskie Proxy, Haber Press, 2017