TCP與UDP有何分別?
TCP(傳輸控制協定)與 UDP(用戶數據報協定)是傳輸層兩大協定:TCP 以連線、確認與重傳機制保證數據可靠並按序送達;UDP 則無連線、無重傳,以最低開銷追求最低延遲。本頁講解兩者的工作機制、逐項比較,以及在監控串流、語音與遠端存取等弱電工程場景應如何選擇。
兩種截然不同的傳輸哲學
TCP 與 UDP 同樣工作在傳輸層,同樣以埠號區分主機上的不同服務,但設計目標剛好相反。TCP 以可靠為先:傳送前先以三向握手建立連線,每個分段附有序號,接收方回覆確認,遺失的分段會被重傳,並以流量控制與擁塞控制調節速率,確保數據完整、按序、不重複地送達。網頁瀏覽、電郵、檔案傳輸等「一個字節都不能錯」的應用都建立在 TCP 之上。
UDP 以簡單為先:不建立連線、不確認、不重傳、不保證次序,標頭只有 8 字節,僅提供埠號多工與校驗和檢錯。應用程式把數據報交給 UDP,UDP 便直接送出,成敗由應用層自行承擔。這種極簡設計令 UDP 延遲低、開銷小,特別適合即時影音、DNS 查詢等場景——對這些應用而言,遲到的數據比遺失的數據更沒有價值。
監控串流實務:RTSP/RTP 如何選擇傳輸模式
IP 攝影機的影像串流普遍以 RTSP 控制、RTP 承載影像數據。工程上選擇傳輸模式可依以下步驟判斷:
- 判斷網絡環境——攝影機與 NVR 同處局域網且網絡質素良好,優先使用 UDP,延遲最低、開銷最小。
- 跨互聯網觀看改用 TCP——遠端觀看經過 NAT 與防火牆,UDP 容易被攔截;改以 TCP 傳輸(RTSP interleaved)穿透性與畫面完整性較佳。
- 出現花屏先查遺包——UDP 模式下花屏多數源於遺包,應檢查線材、端口協商速率與交換機是否擁塞,而非單純切換協定。
- 延遲不斷累積則檢查頻寬——TCP 模式下畫面愈滯後,代表頻寬不足令重傳堆積,應降低碼率或提升鏈路頻寬,並以 QoS 保障監控流量。
- 防火牆規則要寫明協定——開放 RTSP 需同時考慮 TCP 554 控制通道與 RTP 使用的 UDP 埠範圍,兩者缺一都會造成「能連線但沒有畫面」。
香港商廈與屋苑項目常見的教訓是:管理處在局域網觀看正常,管理公司總部跨網觀看卻沒有畫面,root cause 往往正是 RTP 的 UDP 流量被中途防火牆丟棄,改行 TCP 模式即時解決。