我们都看过经典的电影场景。警方已经追踪到坏人的电话,他们准备冲进房间。枪支准备就绪,气氛紧张,执法部门破门而入 - 却发现两部电话已连接,麦克风到扬声器和扬声器到麦克风,转达了罪犯的要求。
这不仅是一个经典的电影比喻,而且还是 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 隧道“魔法”允许物联网设备从安全位置与外部世界连接。
审核编辑 黄昊宇
-
物联网
+关注
关注
2903文章
44257浏览量
371138 -
TCP
+关注
关注
8文章
1348浏览量
78982
发布评论请先 登录
相关推荐
评论