1.TCP 是面向连接的、可靠的传递,实现也比较复杂,发送数据前先通过三次 “对话” 才能建立连接,传输完毕通过四次挥手拆除连接。TCP 提供超时重发、丢弃重复数据、检验数据、流量控制等功能,比较智能,保证数据从一端可以传到另一端,确保可靠。
而 UDP 没有这个机制,实现比较简单,它是无连接的数据传输协议并且无重传机制,它只能尽最大能力去传输数据,但会发生丢包,收到重复包、乱序等情况。
2.TCP 虽然提供可靠的传输,会进行拥塞控制、数据校验、重传机制,但这种可靠传输会加大带宽的开销,所以速度会慢,不适合实时通信。而 UDP 协议传输数据开销比较小,速度更快,比较适合实时通信。
3. 很明显,TCP 适用于对完整性要求高的场景,而 UDP 适用对实时性要求高的场景,比如音频、多媒体应用等。