Contents
Can we make UDP reliable?
UDP uses a simple transmission model without implicit handshaking techniques for providing reliability and ordering of packets. Thus, UDP provides an unreliable service and datagrams may arrive out of order, appear duplicated, or go missing without notice.
Why is the UDP not considered reliable?
UDP does not provide error correction and is therefore an unreliable protocol. In other words, delivery of packets is not guaranteed. UDP datagrams are transmitted without provision for an acknowledgment. Because there is no virtual connection between sender and receiver, UDP is also said to be connectionless.
What is the most reliable protocol?
Together, Transmission Control Protocol (TCP) and IP provide a reliable service, whereas User Datagram Protocol (UDP) and IP provide an unreliable one.
Can we receive TCP like functionality over UDP?
In summary, UDP can be used for every type of application that TCP can, as long as you also implement a proper retransmission mechanism.
Why is UDP with reliability a substitute for TCP?
TCP provides reliability at transport layer while UDP does not. So, UDP is fast. But, a protocol at application layer can implement reliable mechanism while using UDP. In this sense, why isn’t UDP with reliability (implemented on Application layer) a substitute of TCP in the case that UDP is faster than TCP while we need reliability?
What happens when the acknowledgement is dropped in UDP?
When some reliability is required, the solution I’ve seen (which makes sense conceptually) is to use acknowledgements (i.e. the server sends a packet to the client, and when the client receives that message, it sends back an acknowledgement to the server). What happens when the acknowledgement is dropped?
Is there an answer to this problem using UDP-game?
Send a single acknowledgment packet and hope for the best. Send a handful of acknowledgment packets (maybe 3-4) and hope for the best, assuming that not all of them will be dropped. Is there an answer to this problem?
Why is UDP used in the application layer?
UDP can give the application layer more control over the traffic at the cost of an awful lot of work. The answer to your question is, sometimes it is done that way. Games that require low latency often do exactly that.