知识卡片
TCP 与 UDP:可靠连接与轻量无连接的取舍
内容
TCP 在真正发送数据前要先和对方握手建立连接,并通过确认和重传机制保证每个分组都送达(可靠协议),还提供流量控制和拥塞控制来避免压垮接收方或网络本身,代价是更多的往返开销;UDP 不建立连接、发出去就不再理会,也不保证送达(不可靠协议),换来的是更简单轻量的实现和更低的延迟,因此常被用于 DNS 查询这类短小、可以容忍偶尔丢失的通信。选择哪种协议不是”谁更好”的问题,而是取决于应用能否承受丢包——邮件这种对时间不敏感的场景用 TCP,讲究实时的场景可能宁愿丢一点数据也要更低延迟。发散:TCP/UDP 的取舍是”每一步都要确认收到”和”发完就不管”这两种通信哲学的直接对照,同样的分歧在消息队列的”至少一次投递”与”最多一次投递”语义选择里换了个说法继续存在。
参考来源
《计算机科学概论》第4章《组网及因特网》