TCP 与 UDP 是什么?差异为何?

2023年2月10日

💎 加入 E+ 成長計畫 與超過 350+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

TCP 原理

TCP 全名 Transmission Control Protocol 是一种面向连接的协定,它在传送资料前会建立一个可靠的连接,并且在传送过程中提供错误检查和重新传送功能,确保传送的资料不会丢失。

TCP 原理
TCP 原理

以下流程可以搭配上图来看,当 Client 向 Server 发送请求前,会经过的程序为:

  1. Client 向 Server 主动传送一个要求连线封包
  2. Server 接收并确认这个封包后,也会回传一个相对应的封包给 Client 确认,并等待。
  3. Client 收到 Server 的封包后,就确认了第一步骤发送的封包有被正确接收,如果 Client 也同意与 Server 建立连线,就会再回传一个确认封包告知 Server。
  4. Server 接收到也确认过后,就完成了三次交握,并建立连线。

TCP 特性

建立完连线后,后续进行传输封包都会加上序号,而这个序号可以让 TCP 拥有可靠的传输性,能够确保:

  • 完整性:接收端能够确认封包是否传送完毕,判断是否有缺漏。
  • 重传处理:当发现有缺少封包或者逾时,则会在一定的时间内重新传送。
  • 顺序性:封包的序号可以确保接收方在收到封包时,重建顺序。

为了能够提升整体传输效率,TCP 并非一个封包一个封包传送,而是利用滑动窗口的方式来传输,每一次传输一个窗口的量,借此来提升传输效率。

UDP 原理

UDP 全名为 User Datagram Protocol 是一种面向非连接的协定,它没有保证传送资料的可靠性,因此传送速度更快,通信引擎也更简单。由下图所示,传输方(Server)不需确认接收方(Client)是否有收到封包,封包也不像 TCP 管理得如此严密,也因为少了一些确认机制,不仅表头资料会比较少,传输效率也比较好,适合应用的场景为:串流服务。

UDP 原理
UDP 原理

TCP 与 UDP 的比较

TCP 和 UDP 的主要差别在于传送资料的可靠性:TCP 提供可靠的传送,而 UDP 不保证传送的可靠性。因此,如果对资料的完整性有更高的要求,则选用 TCP;如果通信需要更快的速度,则选用 UDP。


相关文章

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們