According to what I've read, there are three main connection types in computer networks:
- Unacknowledged, connectionless (e.g. UDP)
- Acknowledged, connectionless (e.g. ?)
- Acknowledged, connection-oriented (e.g. TCP)
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
From memory those three connection types are defined by the OSI network model, and while the TCP/IP and OSI Models may share some similarities the support of certain features required/implied by OSI does not necessarily translate into support in the TCP/IP model.
Everything I can find regarding "acknowledged, connectionless" protocols simply refers to it being a feature/requirement in the Data Link Layer of the OSI model
While the OSI model is a good model for learning how a network should work, is not necessarily perfect for widespread usage and some of the features are simply not worth the effort to implement in common networking protocols.
The two types you listed (TCP and UDP) are enough to support 99.9% of situations that are likely to occur, and as connections "cost less" with faster networking devices and features like Selective Acknowledgement the requirement for acknowledged yet connectionless protocols becomes minimal, and if you truly don't want a connection (i.e. broadcasting to multiple computers) then acknowledgement could create a processing bottleneck coming back to you.
The only real use I can see for that particular type of connection is in a system like a factory where you absolutely must know that certain data has been received by all machines and I cannot see why, with modern hardware speeds and capabilities, you would want to use a connectionless protocol as a connection-orientated protocol would provide much better quality of service.
TFTP uses UDP, and relies on acknowledgements to function.
There is a protocol called Reliable User Datagram Protocol (RUDP). It is a trade off between the reliability of TCP and simplicity of UDP. It attempts to minimize the complexity and overhead of TCP connections while improving reliability.
Does UDP with a request-response protocol qualify as acknowledged-connectionless? E.g. UDP Echo per RFC 862?
802.11 (WiFi) is a good example of this class of service.
"The next step up in terms of reliability is acknowledged connectionless ser- vice. When this service is offered, there are still no logical connections used, but each frame sent is individually acknowledged. In this way, the sender knows whether a frame has arrived correctly or been lost. If it has not arrived within a specified time interval, it can be sent again. This service is useful over unreliable channels, such as wireless systems. 802.11 (WiFi) is a good example of this class of service."
Ref. Computer Networks Book by Andrew S. Tanenbaum (Page: 196)