我們都看過經典的電影場景。警方已經追蹤到壞人的電話,他們準備沖進房間。槍支準備就緒,氣氛緊張,執法部門破門而入 - 卻發現兩部電話已連接,麥克風到揚聲器和揚聲器到麥克風,轉達了罪犯的要求。
這不僅是一個經典的電影比喻,而且還是 TCP 隧道的一個簡單示例。讓我們探討一下這是什么以及為什么它是現代物聯網的重要概念。
回歸本源
讓我們退后一步,解釋一下這里發生了什么。首先,互聯網上的大多數服務使用傳輸控制協議 (TCP) 連接作為客戶端和服務器程序之間的通信方式。TCP 連接就像電話連接一樣,一旦“通話”接通,就可以通過對著麥克風(電話的輸入通道)說話并激活另一端的揚聲器(輸出接收端的信道)。同樣,反之亦然。
為了完成電話類比,請考慮可以創建 TCP 連接,就像使用分機號碼撥打電話一樣。與電話號碼一樣,TCP 連接使用 IP 地址和分機號碼連接到服務器的 IP 地址(電話號碼)和正確的端口(分機)。例如,當有人請求一個網頁時,瀏覽器會打開一個 TCP 連接到由 IP 地址指定的網絡服務器。同樣,將其視為電話對話,然后瀏覽器對 TCP“麥克風”“說話”以請求特定頁面,然后將其傳輸到網絡服務器端的接收器。然后,網絡服務器定位網頁并將其傳回給瀏覽器以“聽到”,這意味著它顯示了用戶的數據。很簡單,對吧?這就是為什么在如此多的客戶端/服務器應用程序中使用 TCP 來請求和接收數據的原因。
IoT 中典型的 TCP 客戶端/服務器應用程序,例如連接到 IoT 設備(服務器)的智能手機應用程序(客戶端)。這種連接類似于電話交談。(來源:Nabto)
防火墻的連接問題
但有一個問題。假設您想使用 TCP 隧道在 IoT 中創建客戶端/服務器應用程序,例如連接到 IoT 設備(服務器)的智能手機應用程序(客戶端)。不幸的是,實現這一目標說起來容易做起來難。
為什么?那么,如果智能手機和物聯網設備位于同一個局域網上,表現為WIFI,那么應該沒有問題,因為建立連接只是智能手機定位物聯網設備IP地址的問題。但這并不是那么有用,就像您與物聯網設備位于同一建筑物中一樣,您只需親自前往設備并與之交互即可。
另一方面,如果您在遠程操作,您的智能手機(和您)將在您的局域網之外,這意味著建立連接更加困難,因為您的家庭網絡防火墻會阻止來自網絡外部的連接. 當然,您可以為此類連接打開防火墻,也可以將 IoT 設備放置在防火墻之外的可公開訪問的 IP 地址上。但是,不建議這樣做,因為您的物聯網設備可能容易受到來自整個互聯網的攻擊。
家庭網絡防火墻可能會阻止外部連接,使遠程客戶端難以從 IoT 設備讀取數據;并且為物聯網設備打開防火墻不是一種選擇,因為它很容易被黑客入侵。(來源:Nabto)
通過TCP隧道找到解決方法
物聯網開發者面臨的問題是:我們如何通過防火墻連接到外部世界?我們如何以安全的方式做到這一點?這兩個問題的答案都是帶有嵌入式中繼的TCP隧道。該解決方案允許設備保持在防火墻后面,同時跨公共通道安全通信。此外,在中間有一個中繼,作為額外的預防措施,可以對這些通信進行加密和身份驗證。TCP隧道的工作原理是在客戶端運行一個小程序,該程序對TCP連接/請求開放??雌饋硐襁@樣。隧道接收器端接觸到在物聯網設備上運行的隧道調度器端程序。一旦隧道調度器收到此類“伸出”,它將創建到數據應用物聯網設備的TCP連接,隧道接收器和隧道調度器將在兩個連接之間接收和轉發數據。對于TCP客戶端,它看起來就像TCP服務器端在本地運行,而對于TCP服務器端應用程序,它看起來就像客戶端在本地連接。
TCP 隧道通過在客戶端運行一個小程序來工作,該程序對 TCP 連接/請求開放。(來源:Nabto)
另一個特點是,如果您認為本地連接是安全的,例如在您的手機或程序之間的物聯網設備內部發生的連接,隧道可以變得非常安全。隧道接收器和隧道調度器之間的連接可以使用證書進行強身份驗證,同樣,可以通過加密保護隱私。這對于攜帶敏感或私人數據的設備尤其重要,例如網絡攝像頭或可穿戴設備。
例如,在視頻設備中,TCP 隧道通常用于在現有視頻播放器客戶端和 TCP 視頻流服務(例如 IP 攝像機上的 RTSP 服務器)之間發送和接收圖像。同時,對現有 HTTP 服務的安全遠程訪問在提供對管理應用程序的遠程訪問方面很受歡迎。我個人非常喜歡這個解決方案及其簡單性。在客戶端或服務器端都不需要進行任何調整——相反,當客戶端實際與隧道調度程序通信時,它會相信它是在本地與服務器通信。實際上,這種簡單的 TCP 隧道“魔法”允許物聯網設備從安全位置與外部世界連接。
審核編輯 黃昊宇
-
物聯網
+關注
關注
2910文章
44752瀏覽量
374576 -
TCP
+關注
關注
8文章
1372瀏覽量
79142
發布評論請先 登錄
相關推薦
評論