TCP與UDP差異

TCP與UDP差異

有時候會被問到TCP與UDP的差異,突然要教人的時候會不太知道該怎麼說,想說就打一篇文章,讓自己邏輯更清晰。

TCP與UDP都屬於OSI模型第四層(傳輸層)。

TCP:在傳送資料前會建立一個可靠的連線,且在傳送過程中檢查錯誤與重新傳送的功能,以確保資料不會丟失。

  1. Client 向 Server 主動傳送一個要求連線封包。
  2. Server 接收並確認這個封包後,也會回傳一個相對應的封包給 Client 確認,並等待。
  3. Client 收到 Server 的封包後,就確認了第一步驟發送的封包有被正確接收,如果 Client 也同意與 Server 建立連線,就會再回傳一個確認封包告知 Server。

Server接收到也確認後,就完成三次交握,並建立連線。

 

UDP:沒有確保傳送資料的可靠性,因此傳輸速度比較快。

  1. Client 向 Server 主動傳送一個要求資料封包。
  2. Server不需要向Client確認封包,直接回傳對應的資料給Client。

 

TCP與UDP差異:

主要差異是可靠性,TCP提供可靠的傳送機制,而UDP不保證傳送的可靠性,因此對資料完整性比較高的要求,選擇TCP。對傳輸速度要求比較快且不太在意封包丟失則選UDP。

 

參考資料:
https://www.explainthis.io/zh-hant/swe/tcp-udp