首页 > 解决方案 > 了解 CoAP 代理

问题描述

根据 CoAP 规范RFC7252第 5.7 节,存在两种类型的 CoAP 代理,即正向代理和反向代理。与此定义正交的代理可以是 CoAP-CoAP 或 HTTP-CoAP 代理。

根据这些定义,我有以下问题:

  1. 必须使用每种代理类型(正向代理、反向代理、CoAP-CoAP 和 HTTP-CoAP)的用例是什么?
  2. 这些用例中的代理究竟是什么?
  3. 每个代理需要 CoAP 消息的哪一部分来完成其任务?(我假设代理会查看一些 CoAP 选项?)
  4. 在哪里运行代理?在边界路由器上?

如果有人可以提供除了上述问题的答案之外,还可以提供良好的敬意和示例,那就太好了。

标签: proxyreverse-proxycoap

解决方案


  1. 代理时间的一些用例是:

    • 转发代理:逃避限制性防火墙(例如,因为传出连接被阻止,除非它们通过代理);当 CoAP-over-WebSocket 服务器用作转发代理时,其中的一个特殊情况是从浏览器内访问 CoAP 上的资源。
    • 反向代理:与正向代理大致相同,但方向相反(即,如果服务器位于防火墙网络中,则可以在防火墙上运行反向代理,以选择性地允许请求进入)。此外,反向代理可用于不受约束的服务器端的负载平衡。
    • HTTP-CoAP-代理:从没有良好 CoAP 支持的编程环境访问 CoAP 设备(例如,如果您的监控系统支持轮询 HTTP 服务器,HC 代理很容易允许监控您的 CoAP 服务器)。
    • CoAP-HTTP 代理:使大型网络上的服务可用于受限设备(例如查询天气预报)。这通常用途有限,因为这些 Web 服务不使用适用于受限设备的数据格式。
  2. 这在不同情况下几乎没有变化;除了明显的(交叉代理来回转换 CoAP 和 HTTP 消息)外,正向和反向代理的区别仅在于它们是对带有 Proxy-* 选项(通常是 Proxy-Scheme)设置的消息(正向代理)做出反应,还是对那些没有(反向代理)。

  3. 所有代理都需要检查完整的消息(即所有标题字段并查看所有选项)。大多数标头字段(令牌、消息 ID、mtype 在某种程度上)和几个选项(例如观察)是逐跳的,即。服务器对它们进行操作并为转发的请求创建新值。如果消息中有任何代理需要理解但不需要理解的内容(即未知的代理不安全选项),它会拒绝转发。

  4. 这完全取决于应用程序,但在大多数常见示例中,这将是某种边界路由器;可以是 6LoWPAN 场景中的 6LBR,也可以是更大设置的防火墙。在 CoAP-over-WebSocket 端点和 CoAP 世界的其他部分之间进行路由的情况下,CoAP-over-WebSocket 服务器通常运行在同一台机器上,该机器也为使用套接字的 Web 应用程序提供服务。


推荐阅读