區域網路檔案傳輸
透過 WebRTC 在同一區域網路內的裝置之間直接傳輸檔案和文字,無需伺服器
什麼是區域網路檔案傳輸?
區域網路檔案傳輸使用 WebRTC 點對點通訊,在同一區域網路內的兩台設備之間傳送檔案和文字。連線建立後,資料可以在瀏覽器之間直接傳遞,而不是先上傳到外部雲端或伺服器再下載。它適合辦公室電腦、測試設備、家庭網路、教室、實驗室,以及不想使用 USB 隨身碟、雲端硬碟或聊天附件的快速交接場景。傳輸速度取決於本地網路、瀏覽器支援和設備效能。處理敏感檔案時,應確認接收設備確實是目標對象,並在完成後關閉臨時會話。
使用方式
使用方式
- 在其中一部裝置上點選「建立連線」— 系統會產生包含連線資訊的 QR code
- 使用另一部裝置掃描該 QR code — 頁面會自動開啟並產生回應碼
- 使用第一部裝置掃描回應碼 — WebRTC 連線即建立完成
- 連線成功後,雙方即可交換文字訊息及各類型檔案
傳輸提示
- 傳輸檔案時,請保持兩部裝置處於喚醒狀態且網路可連線;關閉分頁或裝置進入休眠會中斷 WebRTC 工作階段。
- 對於非常大或重要的檔案,傳輸完成後請驗證下載的檔案,因為瀏覽器記憶體、網路品質與裝置限制可能影響可靠性。
使用場景
技術原理
區域網路檔案傳輸基於 WebRTC(Web Real-Time Communication),這是 W3C/IETF 標準,定義於 RFC 8825-8835,最初為瀏覽器端即時音視訊而設計。同樣的點對點機制支援 RTCDataChannel API,可在兩台瀏覽器之間傳輸任意二進位資料,資料路徑中無需任何中繼伺服器。開啟通道的信令交換正是 QR Code 握手所做的事情:發起方建立一個 SDP(Session Description Protocol,RFC 8866)描述其媒體和資料能力,編碼為 URL 或 QR Code,應答方回傳一個對應的 SDP。雙方套用遠端描述後,ICE(Interactive Connectivity Establishment,RFC 8445)收集候選傳輸位址。 每個候選是一個(IP, port, protocol)元組加上優先級:host 候選(裝置本身的區域網路 IP)在同一網路中通常勝出,但 srflx(伺服器反射,從 STUN 繫結請求學到)和 relay(TURN 中繼,RFC 8656)候選按優先順序嘗試。連通性檢查在候選之間發送 STUN 繫結請求;第一個成功的配對成為選定的候選對。ICE 進入連線狀態後,DTLS(Datagram Transport Layer Security,RFC 6347,TLS 1.2/1.3 的 UDP 親和版本,RFC 5246/8446)使用 SDP 中的憑證雜湊進行指紋驗證,執行一次 RTT 握手。DTLS 工作階段金鑰保護上方的每個 SCTP(Stream Control Transmission Protocol,RFC 4960/RFC 9260)封包,每個 DataChannel 是在該單一 DTLS 關聯上運行的一對 SCTP 串流。 大型檔案透過 DataChannel 分塊傳輸。瀏覽器的 SCTP 層將每個訊息分段為約 16 KB 的記錄(預設 SCTP MTU 扣除 DTLS + SCTP + Chunk Header 開銷,依瀏覽器引擎不同可能為 16 KB 或 64 KB),接收端按順序重組。流量和擁塞控制(RFC 4960 §6)防止發送端淹沒接收端:cwnd 在 ACK 時加性增長,在丟失時乘性縮減,與 TCP 的 AIMD 形狀相同但應用於每個 SCTP 關聯。在千兆區域網路中,端到端吞吐量通常受限於瀏覽器主執行緒的編碼成本(將每個區塊轉為 ArrayBuffer 視圖並推入 SCTP 堆疊),上限約 200-400 MB/s,而非線路速度。頁面將傳入的區塊重組為單一 Blob 並提供下載,讓使用者自行決定位元組落點,避免接收端在尖峰時佔用數 GB 記憶體。 因為資料以點對點方式透過 DTLS-SRTP 風格的加密傳輸,中間路由器和任何中繼伺服器只看到密文;頁面運營者永遠看不到明文,也沒有上傳步驟。代價是交換 SDP 所需的信令伺服器——本頁使用 QR Code 和複製貼上連結作為手動、無伺服器的信令通道,因此需要掃描兩次。
- WebRTC 是 W3C/IETF 標準(RFC 8825-8835),整合三個引擎:SDP 用於協商、ICE 用於候選收集、DTLS-SRTP / DTLS-SCTP 用於傳輸安全。
- QR Code 握手是無伺服器信令:發起方發布 SDP offer,應答方回傳 SDP answer,中央伺服器永遠不會看到資料路徑。
- ICE(RFC 8445)收集 host、srflx(STUN 反射)、prflx(對等反射)和 relay(TURN,RFC 8656)候選;通過連通性檢查的最高優先級配對成為選定的傳輸。
- DTLS(RFC 6347)使用 SDP 中固定的憑證雜湊進行一次 RTT 指紋驗證握手,然後加密線路上的每個位元組——沒有純 HTTP 或 WebSocket 後備方案。
- DataChannel 運行在 SCTP-over-DTLS 上,而非裸 UDP:SCTP 在 UDP 套接字之上提供有序、可靠、面向訊息的串流,並具備擁塞控制(RFC 4960 §6)。
- 區塊大小預設約 16 KB(依瀏覽器而異,有時為 64 KB):接收端將區塊重組為單一 Blob 並觸發下載,避免將整個檔案載入記憶體。
- 瀏覽器記憶體才是真正的天花板:1 GB 檔案意味著約 1 GB 的 ArrayBuffer 開銷,因此在手機上實際限制通常為每次傳輸 200-500 MB,而非網路速度。
- WebRTC NAT 穿透需要 STUN/TURN 伺服器來處理跨網路對等裝置;本頁假設同一區域網路拓撲,host 候選(區域網路 IP)通常勝出,無需 STUN 伺服器。
範例
從手機傳送照片到電腦
1. 在電腦上點選「建立連線」產生 QR code
2. 用手機掃描,頁面開啟後會產生回應碼
3. 在電腦上掃描回應碼以完成交握
4. 選擇要傳送的照片並點選傳送從電腦傳送檔案到手機
連線建立後,在電腦上點選「傳送檔案」,並挑選檔案、壓縮檔或影片。
手機會收到提示,輕點一下即可儲存檔案。互傳文字訊息
連線後,雙方都可以在輸入框中輸入並送出。
不需要額外的軟體 - 就是瀏覽器中簡單的雙向聊天。常見問題
檔案傳輸是怎麼運作的?
兩台位於同一區網的裝置透過 WebRTC 點對點直接連線。在訊令(signalling)建立連線之後,檔案會直接在瀏覽器之間傳遞——不會經過任何中介伺服器。速度取決於您本地的網路環境(Wi-Fi 或乙太網路);典型 Wi-Fi 約為 30–150 Mbps。
我的檔案會離開區網嗎?
WebRTC 連線一旦建立就不會——檔案位元組只在兩台裝置之間流動。連線建立前會有一個小步驟(透過協調伺服器交換 session 描述);那個交換的是中介資料(metadata),不是檔案內容。
為什麼兩台裝置連不起來?
兩台裝置必須位於同一個 Wi-Fi 網路或區網區段中。企業網路常會封鎖點對點連線;訪客 Wi-Fi 也常會啟用「客戶端隔離(client isolation)」讓彼此看不到。建議改用個人 Wi-Fi 或行動熱點。任一端的 VPN 也可能阻擋直接點對點連線。
有檔案大小限制嗎?
WebRTC 在協定上沒有限制,實務限制來自瀏覽器記憶體與分頁的存活時間。在桌機上幾 GB 的傳輸通常沒問題;行動瀏覽器可能會把背景分頁暫停,導致傳輸中斷。傳輸大檔時請讓兩端的分頁都保持在前景。
傳輸的檔案是加密的嗎?
是。WebRTC 資料通道採用 DTLS-SRTP 端對端加密;即使有人在同一個 Wi-Fi 上偷聽,也無法讀取檔案內容。訊令階段是透過 HTTPS 與協調伺服器溝通。只要兩端都是您信任的,就可以視為私密傳輸。
對非技術背景的使用者好用嗎?
好用——把房間代碼或網址分享給對方,他們在瀏覽器中打開,連線就會自動建立。不需要安裝 App。介面就像沒有平台限制的 AirDrop。在 iOS Safari、Android Chrome、Windows Edge、macOS Firefox 之間都能互相傳輸。
可以一次傳給多台裝置嗎?
大多數版本支援一對一房間。要傳給多個接收端,請重複傳輸或使用支援群播的工具。透過 WebRTC 做群組傳輸技術上是可行的,但會佔用 N 倍的上傳頻寬。