我是网络新手并尝试获取一些基本概念。如果有人能告诉我,我将非常感激 为什么在实时系统中使用TCP是一个坏主意? 什么使UDP更适合实时系统?
答案 0 :(得分:8)
简而言之,TCP旨在实现全部以上的完美传输。您将按照发送的确切顺序获得已发送的内容,否则您将一无所获。
这个问题是TCP会在重新传输数据之前挂断,直到收到正确的数据为止,但在实时系统中,它试图重新传输的数据是无用的,因为它已经过时了;并且您实际想要的数据必须等待您不想清除堆栈的数据,然后才能发送。
This article更有说服力地解释了
答案 1 :(得分:1)
如前所述,UDP通过TCP用于实时服务(RTS),主要是因为UDP数据包与TCP相比有多简单,因为后者更强调纠错和可靠性。
TCP数据包与UDP数据包相比更大,并且为了保持其完整性而更加谨慎地传输,其中接收方确认发送的每个TCP数据包,这在发送敏感数据时很好但是它将成为瓶颈一个RTS,其中状态将保持尽可能更新,并且通常传输的数据为100-1000 KB / s,并且当用UDP实现时,丢失几KB将不会破坏您的服务。