TCP是什麼?TCP 工作原理與 TCP 常見的 DDoS攻擊

TCP 是在傳輸層運作的一種通訊協定,它可靠的傳輸機制成為許多資料傳輸的主要依靠,但卻也存在許多的限制和問題,如 攻擊者會利用 TCP 的特性發起 DDoS 攻擊,因此 TCP 層的防禦同樣不可忽視。
➤TCP是什麼?
➤TCP的工作原理
➤TCP 使用案例
➤TCP 常見問題
➤TCP 常見的 DDoS攻擊
➤如何防禦 TCP 的 DDoS攻擊
TCP是什麼?
TCP (Transmission Control Protocol) 傳輸控制通訊協定,存在於 OSI 模型中的第四層傳輸層。而同樣在這一層運作的還有 UDP(User Datagram Protocol) 使用者資料包通訊協定,這兩者都是負責端點對端點的資料發送,兩者的工作目的相同,但是運作方式不同。
TCP 在正式傳遞資料前,會使用三次握手(Three-way handshake)協議,確保資料完整無誤地傳送,防止錯誤的連結。因此大多數的網路協定都是建立在 TCP 上,因為比較「可靠」。
UDP 不需要建立連結,就可以直接發送資料,因此適用在不需要在程式中執行錯誤檢查和糾正的應用,例如串流媒體、即時多人遊戲和 VoIP(Voice over Internet Protocol 網路電話)。
不過,因為 TCP 是「可靠」傳輸,因此會相較於 UDP 複雜許多,他有以下幾個機制:
連線導向(Connection-oriented)
全雙工服務(Full-duplex service)
可靠資料傳輸(Reliable data transfer)
流量控制(Flow Control)
壅塞控制(Congestion Control)
TCP的工作原理
TCP 傳輸控制通訊協定是一種「連線導向」的通訊協定,也就是說它在傳輸資料之前,必須先建立一條穩定的連線,而 TCP 為了確保資料可靠並安全的傳輸到接收端,建立了一套機制,包括連線建立、封包編號、確認回覆、錯誤檢查與重傳控制...等。
以下這些機制讓 TCP 成為一種可靠、有序且穩定的通訊軟體,TCP 被廣泛應用於對資料可靠性與完整性要求高的應用層協定中,如 HTTP、SMTP、FTP …等。
三次握手:建立連線
在開始資料傳輸前,TCP 必須在傳送端與接收端之間建立連線,過程會像這樣:
Step 1:SYN
傳送端發送一個 SYN 封包(請求建立連線) 給接收端。Step 2:SYN-ACK
接收端收到後回應一個 SYN-ACK 封包,表示同意連線請求。Step 3:ACK
傳送端再回傳一個 ACK 封包,表示確認連線成功。
完成三次握手後,即可正式建立連線,雙方可以開始進行資料傳輸。
封包編號與確認
TCP 將資料拆分為多個封包,每個封包都會有一個「序號(Sequence Number)」,接收端會依序組裝資料;收到封包後,接收端會回傳「確認號(ACK Number)」,告知已成功接收的封包編號。
例如:
傳送端發送 Seq=1 的封包
接收端回應 ACK=2,表示「我收到第 1 號封包了,請傳第 2 號」
這個機制確保封包不會遺漏,也能保證資料順序。
錯誤偵測與重傳機制
TCP 使用「檢查碼(Checksum)」來檢測封包是否在傳輸中損壞。
如果接收端偵測到資料錯誤或根本沒收到封包,則不會回傳 ACK,傳送端在超時後會自動重傳該封包,確保資料可靠送達。
流量控制
TCP 會依據接收端的處理能力調整傳輸速率,避免資料傳太快導致接收端來不及處理,造成封包遺失。
這種機制透過「滑動視窗(Sliding Window) 」來實現,動態調整每次可傳輸的封包數量。
壅塞控制
若網路過於擁擠,也可能造成封包遺失。
TCP 會偵測網路壅塞的情況,自動降低傳輸速率,再逐步加快,避免進一步壅塞,這是維持整體網路穩定的重要設計。
終止連線
資料傳輸完畢之後,連線終止程序開始:
用戶端傳送一個 FIN 封包,啟動終止。
伺服器回應一個 ACK 封包,伺服器傳送專有的 FIN 封包。
用戶端確認伺服器的 FIN 封包,連線終止。
TCP 使用案例
瀏覽網頁:HTTP/ HTTPS 依賴 TCP 傳送完整的網頁資料。
傳輸檔案:FTP 依賴 TCP 確保每一筆資料正確傳送。
電子郵件:SMTP/ POP3/ IMAP 使用TCP 處理電子郵件的傳送與接收。
遠端登入系統:SSH/ Telnet 利用 TCP 要求資料即時且正確的在遠端登入系統。
這些 TCP 使用案例,都能表現 TCP 的核心優勢,如:
確保資料不漏、不重複、順序正確。
有自動重傳與確認回覆機制。
對使用者來說,TCP 提升了網站、應用與檔案傳輸的穩定性與信任感。
TCP 常見問題
雖然 TCP 穩定可靠,但 TCP 在某些情境下仍有一些缺點。TCP 非常適合需要穩定與正確性的應用,但在效能、即時性與資源消耗方面存在限制,因此在某些場景會改用 UDP 或其他協定作為替代。
傳輸延遲較高
TCP 需要三次握手建立連線、每個封包都要確認與回覆,這會增加延遲,對即時性要求高的應用不利,如遊戲或語音通話。封包開銷大
TCP 為確保傳輸正確,需要加入額外資訊,如序號、確認碼、檢查碼...等,相較 UDP 而言,封包體積較大,效率較低。不適合廣播/多播
TCP 是點對點通訊,不支援廣播(Broadcast) 或多播(Multicast),限制了在某些應用場景的使用,如線上直播。容易受到特定攻擊
例如 SYN Flood 攻擊,攻擊者大量發送未完成握手的請求,使伺服器資源耗盡,導致正常用戶無法連線。
TCP 常見的 DDoS攻擊
TCP 因為可靠連接特性和三次握手機制,成為 DDoS 主要的攻擊目標之一,攻擊者目的是透過大量的惡意流量將其資源耗盡,達到癱瘓線上服務的目的。
SYN 洪水攻擊 (SYN Flood Attack)
攻擊原理:
攻擊者在 TCP 三次握手過程中發送大量 SYN (同步) 封包,卻不完成最後一步握手,導致伺服器資源耗盡。攻擊目的:
使伺服器的半開放連接表達到上限,阻止正常用戶建立新的連接。
ACK 洪水攻擊 (ACK Flood Attack)
攻擊原理:
攻擊者偽造大量 ACK 封包,並持續發送至目標伺服器。攻擊目的:
佔用伺服器資源,降低其處理正常請求的能力。
RST 洪水攻擊 (RST Flood Attack)
攻擊原理:
透過發送大量 RST 封包,中斷伺服器與用戶間的 TCP 連接。攻擊目的:
干擾伺服器的正常數據傳輸,破壞用戶體驗。
Push+Ack攻擊 (Push+Ack Attack)
攻擊原理:
攻擊者持續向目標伺服器發送帶有 PUSH 和 ACK 標誌的封包。攻擊目的:
耗盡伺服器資源,導致其運作效率大幅下降。備註:
此類攻擊雖不像 SYN Flood 般消耗連線表,但可能透過過量資料觸發伺服器應答與計算開銷。
TCP連接耗盡攻擊 (TCP Connection Exhaustion Attack)
攻擊原理:
攻擊者完成正常的 TCP 三次握手,但保持這些連接空閒而不進行數據傳輸。攻擊目的:
佔滿伺服器的同時連接數,妨礙新用戶的連線請求。
慢速攻擊 (Slowloris Attack)
攻擊原理:
攻擊者建立多個 TCP 連接,並以極慢的速度持續發送 HTTP 請求,保持連線狀態。攻擊目的:
長時間佔用伺服器資源,使其他用戶無法正常連接或提交請求。
零日攻擊 (Zero-Day Exploits)
攻擊原理:
利用伺服器 TCP 協定中的未知安全漏洞進行攻擊。攻擊目的:
繞過現有安全防護,對伺服器造成直接損害。
如何防禦 TCP 的 DDoS攻擊
隨著 DDoS 攻擊頻率增加,TCP 層防禦已成為重要的課題,面對各種針對 TCP 的攻擊,以下是常見的防禦方式。
啟用 SYN Cookies
對抗 SYN Flood 攻擊最有效的方式之一,就是啟用「SYN Cookies」。SYN Cookies 技術透過在未真正建立連線前,不使用資源紀錄半連線狀態,而是將必要資訊封裝在回應封包中,等對方回傳 ACK 時再確認連線建立。設定連線數與超時限制
限制每個 IP 的 TCP 連線數、縮短連線閒置時間,有助於防止連線耗盡類型的攻擊。使用防火牆與入侵偵測系統
透過防火牆過濾異常 TCP 流量,或用入侵偵測系統檢測攻擊特徵,自動阻擋可疑來源。部署 DDoS 防禦服務
部署具備 DDoS 防護能力的 CDN 或雲端清洗中心,可有效協助分散並過濾惡意 TCP 攻擊流量,如Cloudflare、Akamai 或 騰雲運算。流量清洗
將流量引導至清洗中心,篩選掉惡意請求,只讓正常連線通過,該技術通常由專業的清洗中心或 DDoS 緩解服務提供。
資料來源:
✔HackMD|Transmission Control Protocol (TCP)
✔1nce|TCP 是什麼及其應用情境?
✔騰雲運算|什麼是TCP、UDP協議?
延伸閱讀:
✔HTTP攻擊是什麼?網站變慢可能是HTTP攻擊!DDoS洪水型攻擊解析
✔DDoS攻擊原理解析!如何防禦DDoS攻擊
✔OSI 模型是什麼?OSI網路七層架構
✔哪些網站或系統容易被DDoS攻擊?容易被DDoS攻擊的網站類型風險與防禦