Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA COMMUNICATION METHOD AND DEVICE IN CONSTRAINED APPLICATION PROTOCOL
Document Type and Number:
WIPO Patent Application WO/2012/167659
Kind Code:
A1
Abstract:
A data communication method and device in a Constrained Application Protocol (CoAP) are provided by the embodiments of the present invention. The method includes: receiving a request sent from a terminal; processing the Via option information for the request according to whether a proxy node stores the parameters and state of the session corresponding to the request, wherein the Via option information is used for recording the request route and the response route; sending the processed request. With the above solution, the stateless proxy can be implemented, the stateful proxy node and the stateless proxy node are enabled to exist on the transmission path of the same session simultaneously, the stateful proxy node extracts and then deletes the route information of the path in the protocol message, and stores locally the route information of the path instead in order to shorten the route information carried in the protocol message. Therefore, the utilization ratio of the resources of the proxy node is improved, and the communication delay or interruption caused by the proxy node busyness or fault is reduced.

Inventors:
CHEN XIANFENG (CN)
BIAN YONGGANG (CN)
Application Number:
PCT/CN2012/073539
Publication Date:
December 13, 2012
Filing Date:
April 05, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
CHEN XIANFENG (CN)
BIAN YONGGANG (CN)
International Classes:
H04L29/08
Foreign References:
CN101124785A2008-02-13
CN102014129A2011-04-13
CN101252410A2008-08-27
US20050259633A12005-11-24
Attorney, Agent or Firm:
LEADER PATENT & TRADEMARK FIRM (CN)
北京同立钧成知识产权代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求

1. 一种受限应用协议 CoAP中数据通信的方法, 其特征在于, 所述方法包 括:

接收来自终端发送的请求;

根据代理节点是否将存储所述请求对应的会话的参数和状态,对所述请求 进行路径记录 Via选项信息的处理,其中所述 Via选项信息用于记录请求路径和 响应路由;

发送经处理后的请求。

2. 根据权利要求 1所述的方法, 其特征在于, 所述根据代理节点是否将存 储所述请求对应的会话的参数和状态, 对所述请求进行 Via选项信息的处理包 括:

当所述代理节点不存储与所述请求对应的会话的参数和状态时,所述代理 节点为无状态代理节点,所述无状态代理节点在所述请求中增加 Via选项信息; 并发送增加了所述 Via选项信息的请求; 或

当所述代理节点将存储所述请求对应的会话的参数和状态时,所述代理节 点为有状态代理节点, 所述有状态代理节点存储所述请求中的 Via选项信息, 删除所述请求中的 Via选项信息, 并发送删除了所述 Via选项信息的请求。

3. 根据权利要求 2 所述的方法, 其特征在于:

在所述请求中, 当使用请求的源地址作为 Via选项信息时, 所述无状态代 理节点使用所述请求的源地址作为增加的所述 Via选项信息, 或, 所述有状态 代理节点将所述请求的源地址增加到所存储的 Via选项信息中; 或

在所述请求中, 当使用代理节点的地址作为 Via选项信息时, 所述无状态 代理节点使用所述无状态代理节点的地址作为增加的所述 Via选项信息, 或, 所述有状态代理节点在删除所述请求中的 Via选项信息后, 将所述有状态代理 节点的地址增加在删除了 Via选项信息后的请求中。

4. 根据权利要求 3所述的方法, 其特征在于, 所述方法还包括:

当接收到的所述来自终端发送的请求为直接由所述终端发送的请求,并确 定第一 Via选项信息和所述请求的源地址不一致时,则将所述第一 Via选项信息 修改成所述请求的源地址。

5. 根据权利要求 1-4任一所述的方法, 其特征在于, 所述方法还包括: 接收来自所述服务器的基于所述请求的响应 ,以便于向所述终端发送所述 响应。

6. 根据权利要求 5所述的方法, 其特征在于:

当所述响应携带多个 Via选项信息时, 则所述无状态代理节点删除所述响 应中携带的第一 Via选项信息并将删除了所述第一 Via选项信息的响应发送到 剩余 Via选项信息中的第一 Via选项信息对应的设备。

7. 根据权利要求 5所述的方法, 其特征在于:

当所述响应携带 Via选项信息时, 所述无状态代理节点删除所述响应中的 第一 Via选项信息, 并将删除了第一 Via选项信息的响应发送到所述第一 Via选 项信息对应的设备。

8. 根据权利要求 5所述的方法, 其特征在于:

当所述响应未携带所述 Via选项信息时, 则所述有状态代理节点根据所述 响应中的令牌选项信息查找本地存储的与所述令牌选项信息对应的 Via选项信 息, 将根据所述令牌选项信息查找到的存储的 Via选项信息加入所述响应, 删 除加入的 Via选项信息中的第一 Via选项信息, 以及将删除所述第一 Via选项信 息后的响应发送到所述第一 Via选项信息对应的设备; 或

当所述响应携带一个所述 Via选项信息时, 则有状态代理节点删除所述响 应中携带的 Via选项信息, 根据所述响应中携带的令牌选项信息查找存储的与 所述令牌选项信息对应的 Via选项信息, 将根据所述令牌选项信息查找到的与 所述令牌选项信息对应的 Via选项信息加入所述删除了 Via选项信息的响应,并 将加入了查找到的与所述令牌选项信息对应的 Via选项信息后的响应发送到所 述加入的与所述令牌选项信息对应的 Via选项信息中的第一 Via选项信息对应 的设备。

9. 根据权利要求 8所述的方法, 其特征在于:

所述有状态代理节点选择所存储的 Via选项信息的第二 Via选项信息作为 响应的 Via选项信息,并将所述响应发送到所述第二 Via选项信息地址对应的设 备。

10. 一种受限应用协议 CoAP中数据通信的方法, 其特征在于, 所述方法 包括:

生成携带路径记录 Via选项信息的请求,所述 Via选项信息用于记录请求路 径和响应路由;

向代理节点发送所述请求 ,以便于所述代理节点根据所述代理节点是否将 存储所述请求对应的会话的参数和状态,对所述请求进行 Via选项信息的处理; 以及

接收经所述代理节点的基于所述请求发送的响应。

11. 一种受限应用协议 CoAP中数据通信的方法, 其特征在于, 所述方法 包括:

接收来自终端的经代理节点发送的请求;

基于所述请求, 生成携带路径记录 Via选项信息的响应, 其中所述 Via选项 信息用于记录请求路径和响应路由;

向所述代理节点发送所述响应,以便于所述代理节点根据所述代理节点是 否已存储所述请求对应的会话的参数和状态, 对所述响应进行 Via选项信息的 处理, 并向所述终端发送经处理后的响应。

12. 一种受限应用协议 CoAP数据通信的装置, 其特征在于, 所述装置包 括:

接收模块, 用于接收来自终端发送的请求;

处理模块,用于根据所述装置是否将存储所述请求对应的会话的参数和状 态对所述请求进行路径记录 Via选项信息的处理,其中所述 Via选项信息用于记 录请求路径和响应路由;

发送模块, 用于发送经处理后的请求。

13. 根据权利要求 12所述的装置, 其特征在于,

所述处理模块具体用于当所述装置不存储所述请求对应的会话的参数和 状态时, 在所述请求中增加 Via选项信息; 所述发送模块具体用于发送增加了 所述 Via选项信息的请求; 或

所述处理模块具体用于当所述装置将存储所述请求对应的会话的参数和 状态时, 存储所述请求中的 Via选项信息, 并删除所述请求中的 Via选项信息; 所述发送模块具体用于发送删除了所述 Via选项信息的请求。

14. 根据权利要求 13所述的装置, 其特征在于,

当所述请求中使用请求的源地址作为 Via选项信息时, 如果所述装置不存 储所述请求对应的会话的参数和状态,所述处理模块使用所述请求的源地址作 为增加的所述 Via选项信息; 或如果所述装置将存储所述请求对应的会话的参 数和状态,所述处理模块将所述请求的源地址增加到所存储的 Via选项信息中; 或

当所述请求中使用装置的地址作为 Via选项信息时, 如果所述装置不存储 所述请求对应的会话的参数和状态,所述处理模块使用所述装置的地址作为增 加的所述 Via选项信息; 或如果所述装置将存储所述请求对应的会话的参数和 状态, 所述处理模块在删除所述请求中的 Via选项信息后, 将所述装置的地址 增加在删除了 Via选项信息后的请求中。

15. 根据权利要求 14所述的装置, 其特征在于, 当所述接收模块接收到所 述终端的请求时, 所述装置还包括:

确定模块, 用于当确定第一 Via选项信息和所述请求的源地址不一致时, 将所述第一 Via选项信息修改成所述请求的源地址。

16. 根据权利要求 12-15任一所述的装置, 其特征在于,

所述接收模块, 进一步用于接收来自所述服务器的基于所述请求的响应, 以便于向所述终端发送所述响应。

17. 根据权利要求 16所述的装置, 其特征在于, 当所述响应携带多个 Via 选项信息时:

所述发送模块,进一步用于当所述装置未存储所述请求对应的会话的参数 和状态时, 删除所述响应中携带的第一 Via选项信息, 并将删除了所述第一 Via 选项信息的响应发送到剩余 Via选项信息中的第一 Via选项信息对应的设备。

18. 根据权利要求 16所述的装置, 其特征在于, 当所述响应携带 Via选项 信息时:

所述发送模块,进一步用于当所述装置未存储所述请求对应的会话的参数 和状态时, 删除所述响应中的第一 Via选项信息, 并将删除了所述第一 Via选项 信息的响应发送到所述第一 Via选项信息对应的设备。

19. 根据权利要求 16所述的装置, 其特征在于, 当所述响应未携带所述 Via选项信息, 且所述装置已存储所述请求对应的 会话的参数和状态时, 则所述装置还包括: 查找模块, 用于根据所述响应中的 令牌选项信息查找本地存储的与所述令牌选项信息对应的 Via选项信息; 并且 所述处理模块进一步用于将根据所述令牌选项信息查找到的存储的 Via选项信 息加入所述响应, 删除加入的 Via选项信息中的第一 Via选项信息; 所述发送模 块进一步用于将删除所述第一 Via选项信息后的响应发送到所述第一 Via选项 信息对应的设备; 或

当所述响应携带一个所述 Via选项信息时, 且所述装置已存储所述请求对 应的会话的参数和状态时, 则所述装置还包括: 查找模块, 用于根据所述响应 中携带的令牌选项信息查找存储的与所述令牌选项信息对应的 Via选项信息; 所述处理模块, 进一步用于删除所述响应中携带的 Via选项信息; 将根据所述 令牌选项信息查找到的与所述令牌选项信息对应的 Via选项信息加入所述删除 了 Via选项信息的响应; 所述发送模块进一步用于将加入了查找到的与所述令 牌选项信息对应的 Via选项信息后的响应发送到所述加入的与所述令牌选项信 息对应的 Via选项信息中的第一 Via选项信息对应的设备。

20. 根据权利要求 19 所述的装置, 其特征在于:

当所述处理模块已存储所述请求对应的会话的参数和状态时,所述发送模 块选择所存储的 Via选项信息的第二 Via选项信息作为响应的 Via选项信息, 并 将所述响应发送到所述第二 Via选项信息对应的设备。

21. 一种受限应用协议 CoAP中数据通信的终端, 其特征在于, 所述装置 包括:

生成模块, 用于生成携带路径记录 Via选项信息的请求, 所述 Via选项信息 用于记录请求路径和响应路由;

发送模块, 用于向代理节点发送所述请求, 以便于所述代理节点根据所述 代理节点是否将存储所述请求对应的会话的参数和状态, 对所述请求进行 Via 选项信息的处理;

接收模块, 用于接收经所述代理节点的基于所述请求发送的响应。

22. 一种受限应用协议 CoAP中数据通信的服务器, 其特征在于, 所述装 置包括: 接收模块, 用于接收来自终端的经代理节点发送的请求;

生成模块, 用于基于所述请求, 生成携带路径记录 Via选项信息的响应, 其中, 所述 Via选项信息用于记录请求路径和响应路由;

发送模块, 用于向所述代理节点发送所述响应, 以便于所述代理节点根据 所述代理节点是否已存储所述请求对应的会话的参数和状态,对所述响应进行 Via选项信息的处理, 并向所述终端发送经处理后的响应终端。

Description:
受限应用协议中数据通信的方法和装置

本申请要求于 2011年 07月 14日提交中国专利局、 申请号为 201110197032.1、 发明名称为 "受限应用协议中数据通信的方法和装置" 的中 国专利申请的优先权, 其全部内容通过引用结合在本申请中。

技术领域

本发明涉及数据通信领域, 并且更具体地, 涉及受限应用协议 CoAP中数 据通信的方法和装置。 背景技术

受限应用协议 CoAP ( Constrained Application Protocol )主要是用于 M2M (机器对机器)的场景中, 比如: 家庭控制器、 楼宇自动化、 智能能源、 传感 器网络等。 在这样的环境中, 这些机器的功能比较简单, 一般处理器只有 8位, 存储空间小, 不支持复杂的传输协议, 数据传输速率也较低。 CoAP提供一种 请求 /响应的交互模式, 支持内嵌的资源发现, 包括关键的网页概念, 比如统 一资源标识符( Unique Resources Identifier, 简称 URI )和内容类型。

CoAP基于用户数据报协议 ( User Datagram Protocol, 简称 UDP )进行传 输。 其交互模式可以是同步的响应, 也可以是异步的响应。 消息类型可以是: 需要确认的消息( Confirmable ) 、 不需要确认的消息( Non-confirmable ) 、 确 认消息( Acknowledgement )、重置消息( Reset )。可以通过事务标识 ( Messages ID )来关联一对请求和响应。

CoAP支持的方法有四个: Get (获取资源) 、 Put (更新资源) 、 Post (创 建资源)和 Delete (删除资源) 。 资源通过 URI来识别。 我们通常称资源的拥 有方为服务器(Server ) , 请求资源方为终端 (Client ) 。

CoAP协议支持不同的选项(Option ) , 比如 Block (分片 )、 Location (位 置)、 Token (令牌) 等, 不同的选项支持不同的功能, 并且可以通过定义新 的 Option来扩展新的功能。

CoAP中代理节点 (Proxy )是指一个 CoAP逻辑实体, 它位于 CoAP终端 ( Client )和 CoAP服务器(Server )路由路径之间, 对 CoAP协议消息进行处理 并路由转发, 其处理可以是过滤, 权限检查, 目标地址查询等等。 任何一个

CoAP节点都可以作为一个代理节点, 一般在子网之间的节点与受限网络和外 部网络的关联节点上始终支持代理功能。

CoAP支持订阅, 如果终端发起的订阅请求经过代理节点, 则该代理节点 需要保存终端和代理节点之间的会话以及的和 代理节点之间的会话的状态关 系。 在该订阅过程, 代理节点需要记录终端的地址、 终端和代理节点之间的令 牌选项信息、 服务器的地址、 代理节点和服务器之间的令牌选项信息

由于代理节点需要处理会话状态以及记录会话 相关数据,而代理节点通常 是为很多 CoAP终端和服务器提供服务, 因此代理节点有差异。

相同的处理能力的情况下,存储了多个会话状 态以及记录会话相关数据的 代理节点处理速度要低于存储了一个会话状态 以及记录会话相关数据的代理 节点, 因此同一时间段内前者能够处理的订阅数量就 少于后者。

已存储会话状态以及记录会话相关数据的代理 节点受限于存储能力,只能 存储一定数量的订阅会话状态,如果订阅数量 超出, 则此代理节点不能处理新 的订阅请求。

因为路由信息增加造成报文需要分片,或者报 文路由信息增加带来服务器 存储量的增加, 而作为代理节点的服务器性能是受限的,存储 量增加造成能同 时存储的订阅数量就会减少, 导致通信延误或无法发送。 发明内容

本发明实施例提供了一种受限应用协议 CoAP中数据通信的方法, 根据代 理节点是否将存储本次请求对应的会话的参数 和状态进行 Via选项信息的处 理, 减少因为报文中路由信息增加带来通信延误或 无法发送问题的可能性。

本发明一方面提供了一种受限应用协议 CoAP中数据通信的方法, 该方法 包括: 接收来自终端发送的请求; 根据代理节点是否将存储该请求对应的会话 的参数和状态, 对该请求进行路径记录 Via选项信息的处理, 其中 Via选项信息 用于记录请求路径和响应路由; 发送经处理后的请求。

本发明另一方面提供了一种受限应用协议 CoAP中数据通信的方法, 该方 法包括: 生成携带 Via选项信息的请求, Via选项信息用于记录请求路径和响应 路由; 向代理节点发送请求, 以便于根据代理节点是否将存储该请求对应的 会 话的参数和状态, 对该请求进行 Via选项信息的处理; 以及接收经代理节点的 基于请求发送的响应。

本发明又一方面, 提供了一种受限应用协议 CoAP中数据通信的方法, 该 方法包括: 接收来自终端的经代理节点发送的请求; 基于请求, 生成携带 Via 选项信息的响应, 其中 Via选项信息用于记录请求路径和响应路由; 向代理节 点发送响应,以便于代理节点根据代理节点是 否已存储该请求对应的会话的参 数和状态, 对该响应进行 Via选项信息的处理, 并向终端发送经处理后的响应。

本发明一方面还提供了一种受限应用协议 CoAP数据通信的装置, 该装置 包括: 接收模块, 用于接收来自终端发送的请求; 处理模块, 用于根据装置是 否将存储请求对应的会话的参数和状态,对请 求进行路径 Via选项信息的处理, 其中 Via选项信息用于记录请求路径和响应路由; 发送模块, 用于发送经处理 后的请求。

本发明另一方面, 提供了一种受限应用协议 CoAP中数据通信的终端, 该 终端包括: 生成模块, 用于生成携带 Via选项信息的请求, Via选项信息用于 记录请求路径和响应路由; 发送模块, 用于向代理节点发送请求, 以便于代理 节点根据代理节点是否将存储该请求对应的会 话的参数和状态,对该请求进行 Via选项信息的处理; 接收模块, 用于接收经代理节点的基于请求发送的响应。

本发明又一方面, 提供了一种受限应用协议 CoAP中数据通信的服务器, 该服务器包括: 接收模块, 用于接收来自终端的经代理节点发送的请求; 生成 模块, 用于基于请求, 生成携带 Via选项信息的响应, 其中, Via选项信息用于 记录请求路径和响应路由; 发送模块, 用于向代理节点发送响应, 以便于代理 节点根据代理节点是否已存储所述请求对应的 会话的参数和状态,对该响应进 行 Via选项信息的处理, 并向终端发送经处理后的响应。

通过上述方案, 本发明实施例能够实现无状态代理, 允许有状态代理节点 和无状态代理节点可以在同一会话的传输路径 上同时存在,通过有状态代理将 协议报文中的路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩 短协议报文中携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代 理节点繁忙或故障时引起的通信延误或中断。 附图说明

为了更清楚地说明本发明实施例的技术方案, 下面将对本发明实施例中所 需要使用的附图作简单地介绍,显而易见地, 下面所描述的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲 ,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。

图 1是根据本发明实施例受限应用协议 CoAP中数据通信的方法的流程图。 图 2是根据本发明实施例受限应用协议 CoAP中数据通信的例子的示意图。 图 3是根据本发明另一实施例受限应用协议 CoAP中数据通信的例子的示 意图。

图 4是根据本发明另一实施例受限应用协议 CoAP中数据通信的例子的示 意图。

图 5是根据本发明另一实施例受限应用协议 CoAP中数据通信的例子的示 意图。

图 6是根据本发明另一实施例受限应用协议 CoAP中数据通信的例子的示 意图。

图 7是根据本发明实施例受限应用协议 CoAP中数据通信的例子的示意图。 图 8是根据本发明实施例受限应用协议 CoAP中数据通信的另一方法的流 程图。

图 9是根据本发明实施例受限应用协议 CoAP中数据通信的又一方法的流 程图。

图 10是根据本发明实施例受限应用协议 CoAP中数据通信的装置的框图。 图 11是根据本发明另一实施例受限应用协议 CoAP中数据通信的装置的框 图。

图 12是根据本发明实施例受限应用协议 CoAP中数据通信的终端的框图。 图 13是根据本发明实施例受限应用协议 CoAP中数据通信的服务器的框 图。 具体实施方式 下面将结合本发明实施例中的附图,对本发明 实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例是本发明的一部分实施例, 而不是全 部实施例。基于本发明中的实施例,本领域普 通技术人员在没有做出创造性劳 动的前提下所获得的所有其他实施例, 都应属于本发明保护的范围。

图 1是根据本发明实施例受限应用协议 CoAP中数据通信的方法 100的流程 图。

如图 1的方法 100所示, 包括:

110, 接收来自终端发送的请求。 请求中包括令牌选项信息, 服务器地址 信息等。令牌选项信息用于将请求和响应关联 , 即请求和对应响应的令牌选项 信息是相同的。 其中, 所述来自终端发送的请求可以为直接来自终端 的请求, 也可以为由别的代理节点发送的来自终端发送 的请求。具体的,代理节点既可 以直接接收终端发送的请求, 也可以从别的代理节点处接收由终端发送的请 求。

120, 根据代理节点是否将存储本次请求对应的会话 的参数和状态, 对所 述请求进行路径记录( Via )选项信息的处理, 其中 Via选项信息用于记录请求 路径和响应路由。

130, 发送经处理后的请求。

本发明实施例允许在 CoAP中, 根据代理节点是否存储本次请求对应的会 话的参数和状态将代理节点分成无状态代理节 点和有状态代理节点,并且可以 在同一会话的传输路径上同时存在。一个会话 包括请求和响应。本发明实施例 中,处理一个会话的请求时将存储该会话的参 数和状态的代理节点和处理一个 会话的响应时已存储该会话的参数和状态的代 理节点称为该会话中的有状态 代理节点, 简称有状态代理节点; 相似的, 在处理该次会话的请求时不存储该 会话的参数和状态的代理节点以及在处理该次 会话的响应时未存储该会话的 参数和状态的代理节点称为该会话中的无状态 代理节点, 简称无状态代理节 点。 会话的参数包括令牌选项信息, Via选项信息等, 会话的状态包括建立中, 已建立, 结束等。代理节点是否是有状态代理节点或无 状态代理节点是针对一 个会话定义的, 对不同的会话, 代理节点可以充当不同的角色, 即同一代理节 点可以在一个会话中充当有状态代理节点,而 在另一会话中充当无状态代理节 点, 但是一个会话过程进行中不能更改在该会话中 的状态。

代理节点判断自己会充当有状态代理节点或无 状态代理节点可以通过以 下方法判断。 例如, 在代理节点的配置文件中设置标识, 代理节点通过识别该 标识来确定充当有状态代理节点或无状态代理 节点,可以通过人工配置改变该 标识, 从而使代理节点改变角色; 也可以通过所分配的内存空间大小来决定, 如果内存空间大小可以存储会话参数和状态, 则代理节点将充当有状态代理, 反之则充当无状态代理;代理节点如何判断自 身充当有状态代理或无状态代理 不是本发明所解决问题, 这里仅进行举例说明。

当在该次会话中,代理节点在处理所述请求时 , 不存储所述请求对应的会 话的参数和状态,或当代理节点处理所述响应 时,代理节点未存储所述响应对 应的请求的会话参数或状态, 即此代理节点是无状态代理节点。无状态代理 节 点在请求中增加 Via选项信息, 以向服务器发送请求。

当在该次会话中,代理节点在处理所述请求时 ,将存储所述请求对应的会 话的参数和状态; 或当代理节点处理所述响应时,代理节点已存 储所述响应对 应的请求的会话参数或状态, 即此代理节点是有状态代理节点。有状态代理 节 点存储请求中的 Via选项信息并删除请求中的 Via选项信息。

在执行 120前,首先在 CoAP协议中定义一个新的选项,路径记录 (Via)选项, 简称 Via选项 , 用于记录请求路径和响应路由。 Via选项携带的赋值称为 Via选 项信息。 Via选项由类型长度值 ( TLV, Type Length Value )字段定义如下表 1 所示

从表 1得知, Via选项信息作为字符串可以是请求所经过的 Proxy的地址,可 以是一个 URI、 IP地址或者唯一的设备编号等, Via选项信息是可路由的, 即可 以根据该赋值和对应的设备实现通信,从上得 知 Via选项没有缺省值。其中 C/E 是 Via选项的属性之一, C代表 CoAP路径上的节点必须理解该选项并做相应处 理, E代表 CoAP路径上的节点可以不理解该选项, 不做相应处理。

举例来说, 当 Via选项信息中包括多个地址信息时, Via选项信息实现方 式有如下两种方式。

例如:

Via: 192.0.0.2, 190.2.1.1

在该方法中,新加入的地址信息顺序放在后面 。 最前面的地址信息称为第 二 Via选项信息, 最后面的地址信息称为第一 Via选项信息。

或:

Via: 192.0.2.1

Via: 192.0.2.2

本发明实施例以第二种实现方式为例说明,新 加入的地址信息顺序放置在 上面。 在该方法中, 最上面的地址信息称为第一 Via选项信息, 最下面的地址 信息称为第二 Via选项信息。

通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代理节点繁忙或 故障时引起的通信延误或中断。

图 2是根据本发明实施例受限应用协议 CoAP中数据通信的例子 200的示意 图。

如图 2的例子 200所示, 包括:

210, 接收请求。 接收请求的代理节点可以是无状态代理节点或 有状态代 理节点。

220, 当请求为直接由终端发送时, 比较第一 Via选项信息携带的地址和请 求的用户数据 4艮协议 ( UDP, User Datagram Protocol ) 4艮文源地址(简称请求 的源地址)是否一致, 如果不一致, 则执行到 230 ( 220的"否") ; 如果一致, 则执行到 240 ( 220的"是") 。

230, 将第一 Via选项信息携带的地址改为请求的源地址。 当代理节点确定最上面的 Via选项信息(第一 Via选项信息)携带的信息和 请求的源地址不一致时, 则将最上面的 Via选项信息(第一 Via选项信息)修改 成请求的源地址。

240, 确定本代理节点是作为有状态代理节点, 如果不是, 则到 260 ( 240 的"否") , 如果是, 则到 250 ( 240的"是") 。

确定代理节点是否充当有状态代理节点或无状 态代理节点的方法前面已 有描述。

250, 有状态代理节点将请求中的 Via选项信息存储到本地, 然后删除请求 中的 Via选项信息。 具体的, 有状态的代理节点可以将请求中的 Via选项信息与 请求中的令牌选项信息对应存储, 以便后期根据令牌选项信息获取存储的 Via 选项信息。

260, 增加携带本代理节点地址的 Via选项信息。

无状态代理节点在请求中增加携带本代理节点 地址的 Via选项信息。

有状态代理节点可以在请求中增加携带本代理 节点地址的 Via选项信息。 270, 无状态代理节点或有状态代理节点发送处理后 的请求。

根据上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 使得请求的 Via 选项信息占用的负载尽可能的少, 缩短协议报文中携带的路由信息, 由此提高 代理节点资源使用的效率, 以减少对传输的消耗, 减少了代理节点繁忙或故障 时引起的通信延误或中断。

图 3是根据本发明另一实施例受限应用协议 CoAP中数据通信的例子 300的 示意图。 图 3中的实施例是图 2中实施例的另一种实现方法, 终端或代理节点不 再将自己的地址加入 Via选项信息, 由路径下一跳的代理节点来加入。

如图 3的例子 300所示, 包括:

310, 接收请求。 接收请求的代理节点可以是无状态代理节点或 有状态代 理节点。

320, 确定本代理节点是否是无状态代理节点, 如果不是, 则执行到 330, 如果是, 则执行到 360。 330, 有状态代理节点按顺序存储请求中的 Via选项信息。 具体的, 有状态 的代理节点可以将请求中的 Via选项信息与请求中的令牌选项信息对应存储 , 以便后期根据令牌选项信息获取存储的 Via选项信息。

340, 有状态代理节点存储 Via选项信息后, 删除请求中的 Via选项信息。 如果请求中没有 Via选项信息, 则省略 330和 340, 直接执行步骤 350。

在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代理节点繁忙或 故障时引起的通信延误或中断。 终端或代理节点不再将自己的地址加入 Via选 项信息, 由路径下一跳的代理节点来加入, 由此进一步减少对代理节点传输资 源的消耗。

上述实施例中以路径中一跳为例说明。 实际中, 路径可以有多跳, 其中代 理节点分别为无状态代理节点或有状态代理节 点。多跳路径中相邻的代理节点 可以是连续的无状态代理节点、也可以是连续 的有状态代理节点, 亦可以两者 交替。 本发明实施例对此没有限定。

在 CoAP中,无状态代理节点和有状态代理节点的 Via选项信息使用的地址 是统一的。 也就是说, 当无状态代理节点使用请求的源地址作为增加 的 Via选 项信息时,则有状态代理节点将请求的源地址 增加到所存储的 Via选项信息中, 如例子 300所示。或者当无状态代理节点使用本代理节 点的地址作为 Via选项信 息时, 则有状态代理节点在删除请求中的 Via选项信息后, 使用本代理节点的 地址作为 Via选项信息, 如例子 200所示。 反之亦然。

图 4是根据本发明另一实施例受限应用协议 CoAP中数据通信的例子 400的 示意图。 图 于图 2或图 3的例子的请求, 做出响应的例子。

如图 4的例子 400所示, 包括: 410, 接收基于请求的响应。 接收响应的代理节点可以是无状态代理节点 或有状态代理节点。 响应中包括诸如令牌选项信息, 和 /或终端的地址信息。

420, 当响应中包含 Via选项信息时,删除响应中最上面的 Via选项信息(即 第一 Via选项信息) 。

430, 确定是否还包含 Via选项信息, 如果否, 则执行到 440, 如果是, 则 执行到 450。

440,根据令牌选项信息查找本地存储的与令牌 项信息对应的 Via选项信 息, 并将根据该令牌选项信息查找到的存储的 Via选项信息加入响应, 然后执 行图 4的 450。有状态代理节点执行图 4的 440。令牌选项信息用于将请求和响应 关联, 即请求和对应响应的令牌选项信息是相同的。

450 ,将删除第一 Via选项信息后的响应中剩余 Via选项信息中最上面的 Via 选项信息 (第一 Via选项信息)作为响应目的地址, 将响应发送到目的地址对 应的设备。

通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率。

图 5是根据本发明另一实施例受限应用协议 CoAP中数据通信的例子 500的 示意图。 作为图 4的发明实施例的另一选择, 图 5例示了另一实施例实现方式, 服务器或代理节点在发送响应之前, 会先将报文中最上面的 Via选项信息 (第 一 Via选项信息)删除。

如图 5的例子所示 500, 包括:

510, 接收基于请求的响应。 接收响应的代理节点可以是无状态代理节点 或有状态代理节点。

520, 确定响应中是否包含 Via选项信息, 如果是, 则执行到 530, 如果否, 则执行到 540 ( 520的"是") 。

530, 根据响应中的令牌选项信息查找本地存储的与 响应中的令牌选项信 息对应的 Via选项信息,并将根据该令牌选项信息查找到 的存储的 Via选项信息 增力口到响应中。 540, 将响应中 Via选项信息中最上面的 Via选项信息 (第一 Via选项信息) 作为响应目的地址。

550, 删除响应中 Via选项信息中最上面的 Via选项信息 (第一 Via选项信 息)。 删除响应中最上面的 Via选项信息(第一 Via选项信息)的代理节点可以 是无状态代理节点或有状态代理节点。

560, 将响应发送到目的地址对应的设备。

代理节点会在会话结束后删除所存储的会话参 数, 包括 Via选项信息, 对 于订阅的情况,会话结束代表了订阅结束,订 阅结束的判断方法可以是给订阅 加上有效期, 或者被订阅方显示的通过应答来结束订阅。

通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代理节点繁忙或 故障时引起的通信延误或中断。 服务器或代理节点不再将自己的地址加入 Via 选项信息, 由路径下一跳的代理节点来加入。

图 6的实施例是图 4和图 5实施例中有状态代理节点实现的另一种选择 服 务器或有状态代理节点向客服端返回响应时, 会尝试跳过无状态代理节点, 只 有在跳过失败时, 才会严格按照请求经过的代理节点, 原路径返回。 此发明实 施例中, 增加表示尝试的尝试标识位, 其比特位上以 1表示已经尝试过跳过无 状态代理节点, 以 0表示准备尝试跳过无状态代理节点, 此处尝试标识位的表 示方法仅是举例说明, 也可以以其他任何方式表示。

图 6是根据本发明另一实施例受限应用协议 CoAP中数据通信的例子 600的 示意图。

如图 6的例子所示, 包括:

610, 接收到基于请求的响应后, 将已存储的与响应中的令牌选项信息对 应的 Via选项信息增加到响应中。

620, 确定响应中是否只存在一个 Via选项信息, 是则执行 680, 否则执行

630。

630, 确定响应中尝试标志位是否为 1 , 是则执行 680, 否则执行 640。 640, 删除响应中 Via选项信息只剩最下面的一个(第二 Via选项信息) , 并将尝试标识位从 0设为 1。

650 , 将只剩该第二 Via选项信息的响应发送到该第二 Via选项信息对应的 设备。

660, 确定响应是否发送成功, 如果是则执行 670, 否则执行 610。

可以通过对需要确认请求 CON的确认(ACK ) 响应来确定响应是否发送 成功;

670,删除响应中令牌选项信息对应的本次会话 本地所存储的 Via选项信 息, 只保留最下面一个(即第二 Via选项信息) 。 此时, 尝试跳过无状态代理 节点成功。

680, 将响应发送到响应中最上面的 Via选项信息 (即第一 Via选项信息) 对应的设备。 这是发送响应的正常顺序。

上述实施例中使用尝试标志位仅是尝试跳过无 状态代理节点实现方式的 一种例子, 本发明不限于此。 其他实现方式例如可以通过确定有多个 Via选项 信息, 将响应直接发送到响应中最下面的一个(第二 Via选项信息)对应的设 备。

图 6中的实施例可以应用在下述场景例子中。 假设请求经过的代理节点以 及各代理节点对请求的会话状态信息保存情况 为:

Client—ProxyA (未存储会话状态, 无状态代理节点)一ProxyB(已存储会话 状态,有状态代理节点)一ProxyC (未存储会话状态,无状态代理节点)一ProxyD (已存储会话状态, 有状态代理节点) --- ProxyE (未存储会话状态, 无状态代 理节点)一 Server,

则 Server在处理返回响应时, 试图跳过无状态代理节点 ProxyE , 尝试直接 发送响应到 ProxyD, 只有直接发送失败时才会发送给 ProxyE, 由 ProxyE转发 响应到 ProxyD; ProxyD同样试图跳过无状态代理节点 ProxyC直接尝试发送响 应到 ProxyB, 只有当发送响应不成功时, 才经由 ProxyC转发。

通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代理节点繁忙或 故障时引起的通信延误或中断。

图 7是根据本发明实施例受限应用协议 CoAP中数据通信的例子的示意图。 这里只关注本发明新增加的 Via选项信息的变化, 假设 ProxyA是无状态的 代理节点, ProxyB是有状态的代理节点, Client、 ProxyA、 ProxyB、 Server的 地址分别为:

Client的 URI为: coap:〃 clientsensor.example/clientl 通讯地址为: 192.0.2.2 ProxyA的通讯地址为: 192.0.2.1

ProxyB的通讯地址为: 192.1.2.1

Server的 URI为: coap ://server. sensor. example/Server 1

如图 7的例子所示, 包括:

701 , Client发起请求时, 生成携带该 client的地址的 Via选项信息。

Via: 192.0.2.2

703 , ProxyA不存储该请求的会话的参数和状态, 它在请求中增加携带自 己地址的 Via选项信息, 放置在终端的 Via选项信息上:

Via: 192.0.2.1

Via: 192.0.2.2

705 , ProxyB是有状态代理节点, 它首先将请求中的 Via选项信息存储在本 地, 然后再在请求中删除步骤 703中的请求的 Via选项信息, 并增加自己的地址 作为新的 Via选项信息:

Via: 192.1.2.1

步骤 703中的请求的 Via选项信息:

Via: 192.0.2.1

Via: 192.0.2.2

被记录在 ProxyB上。 将携带 ProxyB的地址的请求发送到服务器。

706-710, 将服务器基于步骤 701的请求的响应发送到终端。

711 , 当请求的资源发生改变时, Server向终端发送异步通知消息。 该异步 通知消息可以是对本次请求的多次响应中的其 中一次响应。

Server首先提取出获取步骤 705的请求中的 Via选项信息以及 Token选项信 息生成携带该 Via选项信息和 Token选项信息的响应:

200 OK

Via: 192.1.2.1

713 , ProxyB根据消息类型 (Type ) : 200发现是响应消息, 根据 Token选 项信息查找到本地存储的会话信息, 从会话信息中提取出之前存储的 Via选项 信息

Via: 192.0.2.1

Via: 192.0.2.2

解析该 Via的值, 得到下一个地址 192.0.2.1 , 转发响应到该代理节点 ProxyA, 此时响应信息为:

200 OK

Via: 192.0.2.1

Via: 192.0.2.2

715 , ProxyA解析从 ProxyB转发过来的响应, 根据 Token选项信息未发现 本地有对应的会话信息, 根据从 Via选项中提取的路由信息转发响应到终端 Client, 此时的响应信息为:

200 OK

Via: 192.0.2.2

至此完成整个路由过程。

在上述实施例中, 步骤 708, 710, 712, 714以及 716为收到响应后返回的 确认消息。

图 8是根据本发明实施例受限应用协议 CoAP中数据通信的另一方法 800的 流程图。 该方法由终端完成。

如图 8的方法 800所示, 包括:

810, 生成携带 Via选项信息的请求, 其中 Via选项信息用于记录请求路径 和响应路由。

例如 , 其中 Server的 URI为: coap:〃 server.sensor.example/ServerlClient的 URI为: coap:〃 clientsensor.example/clientl 通讯地址为: 192.0.2.2, 生成携带 自己地址的 Via选项信息, Via: 192.0.2.2

820, 向代理节点发送请求, 以便于所述代理节点根据代理节点是否将存 储所述请求对应的会话的参数和状态对所述请 求进行 Via选项信息的处理。 无 状态代理节点或有状态代理节点向服务器发送 请求的方法参考图 1的方法。

假设请求经过的代理节点以及各代理节点对请 求的会话状态信息保存情 况为:

Client—ProxyA (不存储会话状态, 无状态代理节点)一ProxyB (将存储会话 状态, 有状态代理节点) --- Server。

经过的无状态代理节点 ProxyA不存储该次请求的会话状态,它在请求中 增 加携带自己地址的 Via选项信息, 放置在终端的 Via选项信息上:

Via: 192.0.2.1

Via: 192.0.2.2

经过的有状态代理节点 ProxyB首先将之前的 Via选项信息存储在本地, 然 后再在请求中删去之前的 Via选项信息并增加携带自己地址的 Via选项信息: Via: 192.1.2.1

之前的 Via选项信息:

Via: 192.0.2.1

Via: 192.0.2.2

被记录在有状态代理节点 ProxyB上。 将处理后的请求发送到服务器。 服务器接收到请求, 存储 Via选项信息。

830, 接收经代理节点的基于请求发送的响应。

服务器首先提取出有状态代理节点的 Via选项信息携带的地址以及 Token 选项信息:

200 OK

Via: 192.1.2.1

有状态代理节点 ProxyB根据消息类型 (Type ) : 200发现是响应消息, 根 据 TokenlD查找到本地存储的会话信息, 从会话信息中提取出之前存储的 Via 选项信息

Via: 192.0.2.1 Via: 192.0.2.2

解析该 Via的值, 得到下一个地址 192.0.2.1 , 转发消息到无状态代理节点 ProxyA, 此时响应信息为:

200 OK

Via: 192.0.2.1

Via: 192.0.2.2

无状态代理节点 ProxyA解析从有状态代理节点 ProxyB转发过来的响应, 根据 TokenlD未发现本地有对应的会话信息,根据从 Via选项中提取的路由信息 转发响应到终端, 此时的响应信息为:

200 OK

Via: 192.0.2.2

至此完成整个路由过程。

通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代理节点繁忙或 故障时引起的通信延误或中断。

图 9是根据本发明实施例受限应用协议 CoAP中数据通信的又一方法 900的 流程图。 该方法由服务器完成。

如图 9的方法 900所示, 包括:

910, 接收来自终端的经代理节点发送的请求。 无状态代理节点或有状态 代理节点向服务器发送请求的方法参考图 1的方法。

例^口, Client的 URI为: coap:〃 sensor. example/client通讯地址为: 192.0.2.2, 生成携带自己地址的 Via选项信息,

Via: 192.0.2.2

假设请求经过的代理节点以及各代理节点对请 求的会话状态信息保存情 况为:

Client—ProxyA (不存储会话状态, 无状态代理节点)一ProxyB (将存储会话 状态, 有状态代理节点) --- Server。 经过的无状态代理节点 ProxyA不存储该次请求的会话状态,它在请求中 增 加携带自己地址的 Via选项信息, 放置在终端的 Via选项信息下:

Via: 192.0.2.1

Via: 192.0.2.2

经过的有状态代理节点 ProxyB首先将之前的 Via选项信息存储在本地, 然 后再在请求中删除之前的 Via选项信息并增加携带自己地址的 Via选项信息: Via: 192.1.2.1

之前的 Via选项信息:

Via: 192.0.2.1

Via: 192.0.2.2

被记录在有状态代理节点 ProxyB上。 将请求发送到服务器。

服务器接收到请求, 存储 Via选项信息。

920, 基于请求, 生成携带 Via选项信息的响应, 其中 Via选项信息用于记 录请求路径和响应路由。

服务器首先提取出有状态代理节点 ProxyB的 Via选项信息携带的地址以及

Token选项信息:

200 OK

Via: 192.1.2.1

930, 向 ProxyB发送响应, 以便于代理节点根据代理节点是否已存储请求 对应的会话的参数和状态, 对该响应进行 Via选项信息的处理, 并向终端发送 经处理后的响应。

有状态代理节点 ProxyB根据消息类型 (Type ) : 200发现是响应消息, 根 据 TokenlD查找到本地存储的会话信息, 从会话信息中提取出之前存储的 Via 选项信息

Via: 192.0.2.1

Via: 192.0.2.2

解析该 Via的值, 得到下一个地址 192.0.2.1 , 转发消息到无状态代理节点 ProxyA, 此时响应信息为:

200 OK Via: 192.0.2.1

Via: 192.0.2.2

无状态代理节点 ProxyA解析从有状态代理节点 ProxyB转发过来的响应, 根据 TokenlD未发现本地有对应的会话信息,根据从 Via选项中提取的路由信息 转发响应到终端, 此时的响应信息为:

200 OK

Via: 192.0.2.2

至此完成整个路由过程。

通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代理节点繁忙或 故障时引起的通信延误或中断。

图 10是根据本发明实施例受限应用协议 CoAP中数据通信的装置的框图。 作为示例性的实现方式, 图 10的装置可以为 CoAP中的代理节点, 包括接 收模块 1010、 处理模块 1020和发送模块 1030。

接收模块 1010,用于接收来自终端发送的请求。请求中包 令牌选项信息, 服务器地址信息等。令牌选项信息用于将请求 和响应关联, 即请求和对应响应 的令牌选项信息是相同的。

处理模块 1020,用于根据装置是否将存储所述请求对应的 话的参数和状 态对所述请求进行 Via选项信息的处理,其中 Via选项信息用于记录请求路径和 响应路由。

发送模块 1030, 用于发送经处理后的请求。

本发明实施例允许在 CoAP中, 根据装置 (代理节点)是否存储本次请求 对应的会话的状态和参数将代理节点分成无状 态代理节点和有状态代理节点, 并且可以在同一会话的传输路径上同时存在。 一个会话包括请求和响应。本发 明实施例中,处理一个会话的请求时将存储该 会话的参数和状态的代理节点和 处理一个会话的响应时已存储该会话的参数和 状态的代理节点称为该会话中 的有状态代理节点, 简称有状态代理节点; 相似的, 在处理该次会话的请求时 不存储该会话的参数和状态的代理节点以及在 处理该次会话的响应时未存储 该会话的参数和状态的代理节点称为该会话中 的无状态代理节点,简称无状态 代理节点。 会话的参数包括令牌选项信息, Via选项信息等, 会话的状态包括 建立中, 已建立, 结束等。 代理节点是否是有状态代理节点或无状态代理 节点 是针对一个会话定义的, 对不同的会话, 代理节点可以充当不同的角色, 即同 一代理节点可以在一个订阅中充当有状态代理 节点,而在另一订阅中充当无状 态代理节点, 但是一个订阅过程进行中不能更改在该订阅中 的状态。

代理节点判断自己将充当有状态代理节点或无 状态代理节点可以通过以 下方法判断。 例如, 在代理节点的配置文件中设置标识位, 代理节点通过识别 该标识位来确定充当有状态代理节点或无状态 代理节点,可以通过人工配置改 变该标识位,从而使代理节点改变角色; 也可以通过所分配的内存空间大小来 决定,如果内存空间大小可以存储会话参数和 状态, 则代理节点将充当有状态 代理,反之则充当无状态代理; 代理节点如何判断自身充当有状态代理或无状 态代理不是本发明所解决问题, 这里仅进行举例说明。

当在该次会话中无状态代理节点在请求中增加 Via选项信息, 以向服务器 发送请求。 当在该次会话中, 有状态代理节点存储请求中的 Via选项信息并删 除请求中的 Via选项信息。

也就是说,处理模块 1020具体用于当所述装置不存储所述请求对应 会话 的参数和状态时, 在所述请求中增加 Via选项信息; 所述发送模块 1030具体用 于发送增加了所述 Via选项信息的请求; 或处理模块 1020具体用于当所述装置 将存储所述请求对应的会话的参数和状态时, 存储所述请求中的 Via选项信息, 并删除所述请求中的 Via选项信息; 所述发送模块 1030具体用于发送删除了所 述 Via选项信息的请求。

首先在 CoAP协议中定义一个新的选项,路径记录 (Via)选项,简称 Via选项, 用于记录请求路径和响应路由。 Via选项携带的赋值称为 Via选项信息。 Via选 项由类型长度值 ( TLV, Type Length Value )字段定义如表 1。

参见表 1得知, Via选项信息作为字符串可以是请求所经过的 Proxy的地址, 可以是一个 URI、 IP地址或者唯一的设备编号等, Via选项信息是可路由的, 即 可以根据该赋值和对应的设备实现通信, 从上得知 Via选项没有缺省值。 其中 C/E是 Via选项的属性之一 , C代表 CoAP路径上的节点必须理解该选项并做相应 处理, E代表 CoAP路径上的节点可以不理解该选项, 不做相应处理。

举例来说, 当 Via选项信息中包括多个地址信息时, Via选项信息实现方 式有如下两种方式。

例如:

Via: 192.0.0.2, 190.2.1.1

在该方法中,新加入的地址信息顺序放在后面 。 最前面的地址信息称为第 二 Via选项信息, 最后面的地址信息称为第一 Via选项信息。

或:

Via: 192.0.2.1

Via: 192.0.2.2

本发明实施例以第二种实现方式为例说明,新 加入的地址信息顺序放置在 上面。 在该方法中, 最上面的地址信息称为第一 Via选项信息, 最下面的地址 信息称为第二 Via选项信息。

进一步的, 当所述请求中使用请求的源地址作为 Via选项信息时, 如果所 述装置不存储所述请求对应的会话的参数和状 态,所述处理模块 1020使用所述 请求的源地址作为增加的所述 Via选项信息; 或如果所述装置将存储所述请求 对应的会话的参数和状态,所述处理模块 1020将所述请求的源地址增加到所存 储的 Via选项信息中; 或

当所述请求中使用装置的地址作为 Via选项信息时, 如果所述装置不存储 所述请求对应的会话的参数和状态, 所述处理模块 102使用所述装置的地址作 为增加的所述 Via选项信息; 或如果所述装置将存储所述请求对应的会话的 参 数和状态, 所述处理模块 1020在删除所述请求中的 Via选项信息后, 将所述装 置的地址增加在删除了 Via选项信息后的请求中。

通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代理节点繁忙或 故障时引起的通信延误或中断。 图 11是根据本发明另一实施例受限应用协议 CoAP中数据通信的装置的框 图。

该装置的接收模块 1101、处理模块 1102和发送模块 1103可以执行装置 1000 的接收模块 1010、处理模块 1020和发送模块 1030的功能, 以及还可以执行更多 的功能,具体参见下文的表述,此夕卜,装置 还包括确定模块 1104、查找模块 1105。

当具体的, 当接收模块 1101接收到终端的请求时(即接收到直接来自 端 的请求时)且当请求中使用请求的源地址作为 Via选项信息时, 所述装置还包 括确定模块 1104。 所述确定模块 1104用于当, 确定当第一 Via选项信息和请求 的源地址不一致时, 将第一 Via选项信息修改成请求的源地址。

进一步的,接收模块 1101用于终端进一步用于接收来自所述服务器 基于 所述请求的响应, 以便于向所述终端发送所述响应;

当所述响应携带多个 Via选项信息时, 所述发送模块 1103进一步用于当所 述装置未存储所述请求对应的会话的参数和状 态时,删除所述响应中携带的第 一 Via选项信息, 并将删除了所述第一 Via选项信息的响应发送到剩余 Via选项 信息中的第一 Via选项信息对应的设备; 或当所述响应携带 Via选项信息时, 所 述发送模块 1103进一步用于当所述装置未存储所述请求对 的会话的参数和 状态时, 删除所述响应中的第一 Via选项信息, 并将删除了所述第一 Via选项信 息的响应发送到所述第一 Via选项信息对应的设备。

进一步的, 当所述响应未携带所述 Via选项信息, 且所述装置已存储所述 请求对应的会话的参数和状态时, 则所述装置还包括查找模块 1105。 所述查找 模块 1105用于根据所述响应中的令牌选项信息查找 地存储的与所述令牌选 项信息对应的 Via选项信息; 并且所述处理模块 1102进一步用于将根据所述令 牌选项信息查找到的存储的 Via选项信息加入所述响应,删除加入的 Via选项信 息中的第一 Via选项信息; 所述发送模块 1103进一步用于将删除所述第一 Via 选项信息后的响应发送到所述第一 Via选项信息对应的设备; 或

当所述响应携带一个所述 Via选项信息时, 且所述装置已存储所述请求对 应的会话的参数和状态时, 则所述装置还包括查找模块 1105。 所述查找模块 1105用于根据所述响应中携带的令牌选项信息 找存储的与所述令牌选项信 息对应的 Via选项信息; 所述处理模块 1102进一步用于删除所述响应中携带的 Via选项信息; 将根据所述令牌选项信息查找到的与所述令牌 选项信息对应的 Via选项信息加入所述删除了 Via选项信息的响应;所述发送模块 1103进一步用 于将加入了查找到的与所述令牌选项信息对应 的 Via选项信息后的响应发送到 所述加入的与所述令牌选项信息对应的 Via选项信息中的第一 Via选项信息对 应的设备。

进一步的,当所述处理模块 1102已存储所述请求对应的会话的参数和状态 时, 所述发送模块选择所存储的 Via选项信息的第二 Via选项信息作为响应的 Via选项信息, 并将所述响应发送到所述第二 Via选项信息对应的设备。

通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息删除, 改为本地存储路径的路由信息, 缩短协议报文中携带的 路由信息, 由此提高代理节点资源使用的效率,减少了代 理节点繁忙或故障时 引起的通信延误或中断。

图 12是根据本发明另一实施例受限应用协议 CoAP中数据通信的终端的框 图。 作为示例性的实现方式, 图 12的终端执行 CoAP中的终端的功能, 该终端 包括生成模块 1210发送模块 1220和接收模块 1230。

生成模块 1210生成携带路径记录 Via选项信息的请求,其中 Via选项信息用 于记录请求路径和响应路由。

发送模块 1220经向代理节点发送请求,以便于代理节点 据代理节点是否 将存储本次请求对应的会话的参数和状态对应 请求进行 Via选项信息的处理。

接收模块 1230接收经代理节点基于所述请求发送的响应

所述终端实现了方法 800, 具体细节参考方法 800的说明, 此处不再赘述。 通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代理节点繁忙或 故障时引起的通信延误或中断。

图 13是根据本发明实施例受限应用协议 CoAP中数据通信的服务器的框 图。 作为示例性的实现方式,服务器包括接收模块 1310、生成模块 1320和发送 模块 1330。

接收模块 1310接收来自终端的经代理节点发送的请求。

生成模块 1320基于请求, 生成携带 Via选项信息的响应, 其中 Via选项信息 用于记录请求路径和响应路由。

发送模块 1330向代理节点发送响应,以便于代理节点根 代理节点是否已 存储请求对应的会话的参数和状态, 对响应进行 Via选项信息的处理, 并向终 端发送经处理后的响应。

服务器实现了方法 900, 具体细节参考方法 900的说明, 此处不再赘述。 通过上述方案, 在 CoAP中, 允许有状态代理节点和无状态代理节点可以 在同一会话的传输路径上同时存在,并且通过 有状态代理节点将协议报文中的 路径的路由信息提取后删除, 改为本地存储路径的路由信息, 缩短协议报文中 携带的路由信息, 由此提高代理节点资源使用的效率, 减少了代理节点繁忙或 故障时引起的通信延误或中断。

此外, 本发明上述实施例中的 CoAP终端可以是移动终端, 如各种手机, 笔记本, PDA等移动设备, 也可以是固定终端, 如 PC机等设备。 本发明上述 实施例中的代理节点可以是网络中的网络设备 ,也可以是计算机等设备。本发 明上述实施例中的服务器可以为服务器。本发 明上述实施例的各功能模块都可 以为运行于上述设备的处理器中的功能模块, 本发明在此不做限定。

本领域普通技术人员可以意识到,结合本文中 所公开的实施例描述的各示 例的模块及算法步骤, 能够以电子硬件、或者计算机软件和电子硬件 的结合来 实现。这些功能究竟以硬件还是软件方式来执 行,取决于技术方案的特定应用 所描述的功能, 但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述描述 的系统、装置和模块的具体工作过程,可以参 考前述方法实施例中的对应过程, 在此不再赘述。

在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统、 装置和方 法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示意性 的, 例如, 所述模块的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有另 外的划分方式, 例如多个模块或组件可以结合或者可以集成到 另一个系统, 或 一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直 接耦合或通信连接可以是通过一些接口, 装置或模块的间接耦合或通信连接, 可以是电性, 机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可 以不是物理上分开的,作为 模块显示的部件可以是或者也可以不是物理模 块, 即可以位于一个地方,或者 也可以分布到多个网络模块上。可以根据实际 的需要选择其中的部分或者全部 模块来实现本实施例方案的目的。

另外, 在本发明各个实施例中的各功能模块可以集成 在一个处理模块中, 也可以是各个模块单独物理存在,也可以两个 或两个以上模块集成在一个模块 中。

所述功能如果以软件功能模块的形式实现并作 为独立的产品销售或使用 时, 可以存储在一个计算机可读取存储介质中。基 于这样的理解, 本发明的技 术方案本质上或者说对现有技术做出贡献的部 分或者该技术方案的部分可以 以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中, 包括 若干指令用以使得一台计算机设备(可以是个 人计算机, 服务器, 或者网络设 备等)执行本发明各个实施例所述方法的全部 或部分步骤。 而前述的存储介质 包括: U盘、 移动硬盘、 只读存储器(ROM, Read-Only Memory ) 、 随机存取 存储器(RAM, Random Access Memory ) 、 磁碟或者光盘等各种可以存储程 序代码的介质。

以上所述,仅为本发明的具体实施方式,但本 发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明 揭露的技术范围内, 可轻易想到 变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护范围应 所述以权利要求的保护范围为准。