步驟 1:Client → Server (SYN)
誰傳給誰? A (Client) → B (Server)
傳送什麼封包? SYN (synchronize) 封包
封包內容:
Sequence Number (SEQ): 由 A 隨機選擇一個初始數值 X
Acknowledgment Number (ACK): 無 (因為這是連線的開始)
Flags: SYN=1,ACK=0
Window Size: A 端的接收窗口大小
步驟 2:Server → Client (SYN-ACK)
誰傳給誰? B (Server) → A (Client)
傳送什麼封包? SYN-ACK (synchronize-acknowledge) 封包
封包內容:
Sequence Number (SEQ): 由 B 隨機選擇一個初始數值 Y
Acknowledgment Number (ACK): X+1(表示確認 A 發送的 SYN)
Flags: SYN=1,ACK=1
Window Size: B 端的接收窗口大小
步驟 3:Client → Server (ACK)
誰傳給誰? A (Client) → B (Server)
傳送什麼封包? ACK (acknowledge) 封包
封包內容:
Sequence Number (SEQ): X+1(延續 A 端的序號)
Acknowledgment Number (ACK): Y+1(確認 B 端的 SYN)
Flags: SYN=0,ACK=1
Window Size: A 端的接收窗口大小