iT邦幫忙

2025 iThome 鐵人賽

DAY 4
0
Security

30天資安啟航:從入門到實戰系列 第 4

Day 4:SYN、ACK 到底在幹嘛?一文搞懂三向交握

  • 分享至 

  • xImage
  •  

今天我們把昨天看到的各種顏色、協定名稱,拆開來看裡面到底有什麼。
那我們要先介紹網際網路協議套組(英語:Internet Protocol Suite,縮寫IPS),這是一個最基本的封包所經歷的一生

  • 最外層是 Ethernet(乙太網路層),這裡記錄了來源和目的 MAC 位址,就像是郵件上的寄件人和收件人地址。

  • 往裡一層是 IP(網際網路層),這裡有來源 IP 和目的 IP,代表資料要送到哪台電腦。

  • 再往下是 TCP/UDP(傳輸層),這裡有 Port(端口),就像是郵件送到哪一個信箱。TCP 還會有 SYN、ACK 這些標記,控制連線的建立和狀態。

  • 應用層協定,像 DNS、HTTP、HTTPS 等等,才是我們真正看到的內容。

Ethernet 會告訴你哪台電腦傳的,IP 告訴你來源/目的位址,UDP提供來源/目的Port,而 DNS則說明這個封包要問的問題是「某個網址對應哪個 IP」。

上次有提到 TCP 連線裡的 SYN 跟 ACK,今天就來好好聊一下它們。
電腦在傳輸前需要確認是有與另一台主機相互連結,所以為了確保有連接上,採用這樣的方式

TCP 想建立一個連線,需要三步驟:
https://ithelp.ithome.com.tw/upload/images/20250914/20178715MbKTcanHR3.png

SYN:我先舉手,跟對方說「欸,我想連線!」
此時SYN = 1,seq = x(隨機選的一個序號)

SYN + ACK:對方點頭,回你「好啊,我收到你的請求,準備好了!」
SYN = 1(我也要同步,建立連線)
ACK = 1(確認A主機的請求)
seq = y(B隨機選的序號y)
ack = x + 1(表示收到了A主機的序號x,要等下個序號)

ACK:我再回一個「確認!」,這樣雙方就正式握好手,可以開始傳資料了。
ACK = 1(A主機再回一個 ACK 封包:)
seq = x + 1 (A的下一個序號)
ack = y + 1 (確認收到B的序號 y)

這三個步驟就叫 三向交握 (Three-way Handshake)。

那為什麼要這麼麻煩?
因為 TCP 要確保兩邊都「真的準備好」了,網路不會因為漏封包或假連線而亂掉。
如果少了這幾個確認步驟,可能資料還沒開始傳就已經掉在路上了。

下期我將帶著大家實際看封包內的詳細資訊隱藏著哪些內容。
/images/emoticon/emoticon30.gif


上一篇
Day 3:Wireshark 封包分析與協定實戰
下一篇
第五天:封包裡的秘密,一層層拆給你看
系列文
30天資安啟航:從入門到實戰5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言