iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0

TCP/UDP是什麼?

這兩種都是常見的網路協定,雖然同樣都是傳送資料,但在性質上卻有很大的不同。

  • TCP(傳輸控制協定):

    為了保證不會有封包遺失的狀況發生,每個封包會分配到一個唯一的識別碼和序號,也就是下圖的 Sequence number,可以讓接收端識別封包的順序和完整性,和 UDP 相比較為可靠。

    那TCP是怎麼確認封包是否真的傳送到對方手中的呢?有個 Double check 的機制,也就是「三方交握(Three Way Handshake)」。

    SYN(synchronous):同步封包
    ACK(ACKnowledgement):確認

    步驟:

    1. Client 發出一個同步封包,向 Server 請求連線,這時還沒有傳送任何實際要傳送的資料。
    2. 此時 Server 接收到 Client 的請求後,知道 Client 有傳送資料的請求,就回傳一個 OK 的訊息給 Client,說他可以接收訊息了!
    3. 確認 Server 可以接收資料後,Client 便把傳送的是實際要傳送的資料


    (參考來源:網路)

    常見的應用如下:

    1. 郵件傳輸
    2. 文字訊息
  • UDP(使用者資料包協定):

    UDP 沒有三方交握的機制,缺乏可靠性和卻也因此能比 TCP 以更快的速度傳送資料,

    常見的應用如下:

    1. 線上遊戲
    2. 影片串流

封包的架構

以下介紹 TCP 和 UDP 的封包結構,下面兩張圖看起來是一個表,但實際在傳送時是以一長條的 bits 去傳遞的。

TCP 封包

UDP封包


上一篇
Day3 - SSH/Telnet
下一篇
Day5 - IPV4 & IPV6
系列文
網路的架構&各種應用23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言