最新資訊

TCP 是在傳輸層運作的一種通訊協定,它可靠的傳輸機制成為許多資料傳輸的主要依靠,但卻也存在許多的限制和問題,如 攻擊者會利用 TCP 的特性發起 DDoS 攻擊,因此 TCP 層的防禦同樣不可忽視。

MULTI-CDN
百科學習

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

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 複雜許多,他有以下幾個機制:

  1. 連線導向(Connection-oriented)

  2. 全雙工服務(Full-duplex service)

  3. 可靠資料傳輸(Reliable data transfer)

  4. 流量控制(Flow Control)

  5. 壅塞控制(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 會偵測網路壅塞的情況,自動降低傳輸速率,再逐步加快,避免進一步壅塞,這是維持整體網路穩定的重要設計。


終止連線

資料傳輸完畢之後,連線終止程序開始:

  1. 用戶端傳送一個 FIN 封包,啟動終止。

  2. 伺服器回應一個 ACK 封包,伺服器傳送專有的 FIN 封包。

  3. 用戶端確認伺服器的 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攻擊的網站類型風險與防禦

返回上頁