CN102882906A - 受限应用协议中数据通信的方法和装置 - Google Patents
受限应用协议中数据通信的方法和装置 Download PDFInfo
- Publication number
- CN102882906A CN102882906A CN2011101970321A CN201110197032A CN102882906A CN 102882906 A CN102882906 A CN 102882906A CN 2011101970321 A CN2011101970321 A CN 2011101970321A CN 201110197032 A CN201110197032 A CN 201110197032A CN 102882906 A CN102882906 A CN 102882906A
- Authority
- CN
- China
- Prior art keywords
- option information
- request
- via option
- response
- agent node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种受限应用协议CoAP中数据通信的方法和装置。该方法包括:接收来自终端发送的请求;根据代理节点是否存储该请求对应的会话的参数和状态对该请求进行Via选项信息的处理,其中Via选项信息用于记录请求路径和响应路由;发送经处理后的请求。通过上述方案,能够实现无状态代理,允许有状态代理节点和无状态代理节点可以在同一会话的传输路径上同时存在,并且通过有状态代理节点将协议报文中的路径的路由信息提取后删除,改为本地存储路径的路由信息,缩短协议报文中携带的路由信息,由此提高代理节点资源使用的效率,减少了代理节点繁忙或故障时引起的通信延误或中断。
Description
技术领域
本发明涉及数据通信领域,并且更具体地,涉及受限应用协议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
类型编号 | C/E | 类型名称 | 数据类型 | 长度 | 缺省值 |
16 | C | Via | 字符串 | 可变长 | 无 |
从表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选项信息携带的地址和请求的用户数据报协议(UDP,User Datagram Protocol)报文源地址(简称请求的源地址)是否一致,如果不一致,则执行到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。
350,将请求的UDP报文源地址(请求的源地址)作为Via选项信息存储在本地,然后执行到图3的370。
360,无状态代理节点将请求的源地址写入Via选项信息。
370,无状态代理节点或有状态代理节点发送处理后的请求。
根据上述方案,在CoAP中,允许有状态代理节点和无状态代理节点可以在同一会话的传输路径上同时存在,并且通过有状态代理节点将协议报文中的路径的路由信息提取后删除,改为本地存储路径的路由信息,缩短协议报文中携带的路由信息,由此提高代理节点资源使用的效率,减少了代理节点繁忙或故障时引起的通信延误或中断。终端或代理节点不再将自己的地址加入Via选项信息,由路径下一跳的代理节点来加入,由此进一步减少对代理节点传输资源的消耗。
上述实施例中以路径中一跳为例说明。实际中,路径可以有多跳,其中代理节点分别为无状态代理节点或有状态代理节点。多跳路径中相邻的代理节点可以是连续的无状态代理节点、也可以是连续的有状态代理节点,亦可以两者交替。本发明实施例对此没有限定。
在CoAP中,无状态代理节点和有状态代理节点的Via选项信息使用的地址是统一的。也就是说,当无状态代理节点使用请求的源地址作为增加的Via选项信息时,则有状态代理节点将请求的源地址增加到所存储的Via选项信息中,如例子300所示。或者当无状态代理节点使用本代理节点的地址作为Via选项信息时,则有状态代理节点在删除请求中的Via选项信息后,使用本代理节点的地址作为Via选项信息,如例子200所示。反之亦然。
图4是根据本发明另一实施例受限应用协议CoAP中数据通信的例子400的示意图。图4是基于图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://client.sensor.example/client1通讯地址为:192.0.2.2
ProxyA的通讯地址为:192.0.2.1
ProxyB的通讯地址为:192.1.2.1
Server的URI为:coap://server.sensor.example/Server1
如图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选项信息的响应:
200OK
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/Server1 Client的URI为:coap://client.sensor.example/client1通讯地址为: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发现是响应消息,根据TokenID查找到本地存储的会话信息,从会话信息中提取出之前存储的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转发过来的响应,根据TokenID未发现本地有对应的会话信息,根据从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发现是响应消息,根据TokenID查找到本地存储的会话信息,从会话信息中提取出之前存储的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转发过来的响应,根据TokenID未发现本地有对应的会话信息,根据从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)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (22)
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选项信息的处理,并向所述终端发送经处理后的响应终端。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101970321A CN102882906A (zh) | 2011-07-14 | 2011-07-14 | 受限应用协议中数据通信的方法和装置 |
PCT/CN2012/073539 WO2012167659A1 (zh) | 2011-07-14 | 2012-04-05 | 受限应用协议中数据通信的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101970321A CN102882906A (zh) | 2011-07-14 | 2011-07-14 | 受限应用协议中数据通信的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102882906A true CN102882906A (zh) | 2013-01-16 |
Family
ID=47295455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101970321A Pending CN102882906A (zh) | 2011-07-14 | 2011-07-14 | 受限应用协议中数据通信的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102882906A (zh) |
WO (1) | WO2012167659A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104917828A (zh) * | 2015-05-28 | 2015-09-16 | 重庆邮电大学 | 一种基于节点休眠和路由维护的CoAP协议代理缓存方法 |
CN105227525A (zh) * | 2014-06-17 | 2016-01-06 | 阿尔卡特朗讯 | 用于基于信令的物联网设备的ip通信方法与设备 |
CN106656730A (zh) * | 2015-10-30 | 2017-05-10 | 西门子公司 | 一种通信方法、装置和系统 |
CN107104925A (zh) * | 2016-02-22 | 2017-08-29 | 西门子公司 | 用于安全通信的方法、装置及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110808950B (zh) * | 2019-09-25 | 2022-06-28 | 西安广和通无线软件有限公司 | 消息处理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101124785A (zh) * | 2005-03-04 | 2008-02-13 | 思科技术公司 | 用于网络可达性检测的系统和方法 |
US20080080507A1 (en) * | 2006-09-29 | 2008-04-03 | George Swallow | Directed echo requests and reverse traceroute |
CN101212418A (zh) * | 2006-12-31 | 2008-07-02 | 华为技术有限公司 | 背靠背用户代理及其传输信息的方法 |
CN101822007A (zh) * | 2007-10-12 | 2010-09-01 | 思科技术公司 | 用于路由器中的预留反射机功能的方法和设备 |
CN102014129A (zh) * | 2010-11-22 | 2011-04-13 | 华为技术有限公司 | 一种在CoAP网络中注册的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005332085A (ja) * | 2004-05-18 | 2005-12-02 | Fujitsu Ltd | コンピュータネットワークシステムにおける通信経路制御プログラム及び装置 |
CN101252410B (zh) * | 2008-04-10 | 2011-02-16 | 中国电子科技集团公司第三十研究所 | 一种减少ip路由协议带宽占用量的方法 |
-
2011
- 2011-07-14 CN CN2011101970321A patent/CN102882906A/zh active Pending
-
2012
- 2012-04-05 WO PCT/CN2012/073539 patent/WO2012167659A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101124785A (zh) * | 2005-03-04 | 2008-02-13 | 思科技术公司 | 用于网络可达性检测的系统和方法 |
US20080080507A1 (en) * | 2006-09-29 | 2008-04-03 | George Swallow | Directed echo requests and reverse traceroute |
CN101212418A (zh) * | 2006-12-31 | 2008-07-02 | 华为技术有限公司 | 背靠背用户代理及其传输信息的方法 |
CN101822007A (zh) * | 2007-10-12 | 2010-09-01 | 思科技术公司 | 用于路由器中的预留反射机功能的方法和设备 |
CN102014129A (zh) * | 2010-11-22 | 2011-04-13 | 华为技术有限公司 | 一种在CoAP网络中注册的方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227525A (zh) * | 2014-06-17 | 2016-01-06 | 阿尔卡特朗讯 | 用于基于信令的物联网设备的ip通信方法与设备 |
CN105227525B (zh) * | 2014-06-17 | 2018-07-13 | 阿尔卡特朗讯 | 用于基于信令的物联网设备的ip通信方法与设备 |
CN104917828A (zh) * | 2015-05-28 | 2015-09-16 | 重庆邮电大学 | 一种基于节点休眠和路由维护的CoAP协议代理缓存方法 |
CN104917828B (zh) * | 2015-05-28 | 2018-04-27 | 重庆邮电大学 | 一种基于节点休眠和路由维护的CoAP协议代理缓存方法 |
CN106656730A (zh) * | 2015-10-30 | 2017-05-10 | 西门子公司 | 一种通信方法、装置和系统 |
CN107104925A (zh) * | 2016-02-22 | 2017-08-29 | 西门子公司 | 用于安全通信的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2012167659A1 (zh) | 2012-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103339901B (zh) | 内容导向网络环境中的终端和中间节点以及终端和中间节点的通信方法 | |
EP2088791B1 (en) | Method, system and device for increasing multimedia messaging service system capacity | |
CN104247371A (zh) | 以信息为中心的网络中的基于名称的邻居发现和多跳服务发现 | |
US8903972B2 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
CN105743958A (zh) | 一种终端之间的通信方法和装置 | |
CN102647704B (zh) | 数据传输处理方法、基站和系统 | |
JP5255035B2 (ja) | フェイルオーバシステム、記憶処理装置及びフェイルオーバ制御方法 | |
CN103547342A (zh) | 消息发送方法、消息阅读通知方法、消息接收方法及装置 | |
JP2022519387A (ja) | 無線通信システムでサービスをフレキシブルに提供する方法及び装置 | |
CN102882906A (zh) | 受限应用协议中数据通信的方法和装置 | |
CN103220219A (zh) | 一种报文转发方法和设备 | |
CN102802227A (zh) | 基于基站直通架构的数据处理方法、设备和系统 | |
CN104486327A (zh) | 页面与长连接服务器间的通信方法及客户端 | |
CN104869049A (zh) | 终端信息发送方法和系统 | |
CN107371151A (zh) | 数据传输方法及装置 | |
US8892663B2 (en) | Apparatus and method for establishing partnership with a peer-to-peer (P2P) service based on gossip | |
CN101925158A (zh) | 号码详情的获取系统及方法 | |
CN101247370B (zh) | 消息呈现业务的实现方法和系统 | |
CN109495526A (zh) | 一种报文发送方法、装置、系统、电子设备及存储介质 | |
CN101938427B (zh) | 一种全局负载均衡中的重定向方法和装置 | |
KR20110122947A (ko) | 허브 및 가상 그룹에 속하는 송, 수신 단말의 통신 방법 | |
CN103944806A (zh) | 一种基于微信平台的数据传输方法和系统 | |
CN102986173B (zh) | 消息状态设置方法和cpm业务服务器 | |
JP6807952B2 (ja) | 通信サービスを端末通信装置に提供する通信ネットワークを決定する方法及び装置 | |
US8473625B1 (en) | Preservation of network address translation (NAT) state across wireless sessions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130116 |