经由用户服务平台通信的方法、装置和计算机可读存储介质与流程

文档序号:19751624发布日期:2020-01-21 19:38阅读:236来源:国知局
经由用户服务平台通信的方法、装置和计算机可读存储介质与流程



背景技术:

领域

一个或多个示例实施例涉及用于经由用户服务平台(usp)进行通信的方法、装置和/或计算机可读存储介质。

相关技术的讨论

用户服务平台(usp)包括控制器和代理的网络,控制器和代理的网络允许应用操纵服务元件,其中服务元件反映设备公开的某些功能性。通过使用usp协议交换usp消息来完成服务元件的操纵。



技术实现要素:

一个或多个示例实施例为始发用户服务平台(usp)端点提供用以将表示usp消息的有效载荷分段成更小分段(也称为“片段”或“块”)的机制,这些更小的分段许可通过具有不同消息大小约束的消息传输协议(mtp)代理传输有效载荷,并且该机制用于使接收usp端点在接收到该更小的分段之后将更小的分段重组成更大的有效载荷。此过程有时在本文中被称为分段和重组(sar)功能。

至少一个示例实施例提供了一种电子设备,包括:存储计算机可读指令的存储器;被耦合到存储器的一个或多个处理器;以及被耦合到一个或多个处理器的收发器。一个或多个处理器被配置为执行计算机可读指令,以进行以下操作:对表示用户服务平台消息的有效载荷进行分段以生成多个有效载荷分段;以及基于多个有效载荷分段生成用户服务平台记录的序列,用户服务平台记录中的每个用户服务平台记录包括:(i)来自多个有效载荷分段之中的有效载荷分段、以及(ii)分段和重组状态信息,指示所包括的有效载荷分段被生成时电子设备处的有效载荷的分段的状态。收发器被配置为传输用户服务平台记录的序列。

至少一个其他示例实施例提供了一种电子设备,该电子设备包括收发器和被耦合到该收发器的一个或多个处理器。收发器被配置为接收多个用户服务平台记录的序列,多个用户服务平台记录中的每个用户服务平台记录包括:(i)表示用户服务平台消息的一部分的有效载荷分段,以及(ii)分段和重组状态信息,指示在始发端点设备处将有效载荷分成有效载荷分段的状态。一个或多个处理器被配置为执行计算机可读指令,以进行以下操作:缓冲多个用户服务平台记录;以及,响应于接收到包括分段和重组状态信息的用户服务平台记录,该分段和重组状态信息指示在始发端点设备处对有效载荷的分段被完成,通过将缓冲区中的多个用户服务平台记录的有效载荷分段进行重组,来恢复用户服务平台消息。

附图说明

从本文以下给出的具体实施方式和附图,示例实施例将得到更加充分地理解,其中相似的元件由相似的附图标记表示,这些元件仅以示例的方式给出,因此不限制本公开。

图1是图示了示例用户服务平台(usp)网络架构的一部分的框图。

图2提供适合用于实现本文描述的功能元件或本文描述的功能元件的一部分的通用架构和功能性。

图3是图示了用于生成和传输usp记录的方法的示例实施例的流程图。

图4a是图示了用于接收和处理usp记录的方法的示例实施例的流程图。

图4b是图示了处理所缓冲的usp记录的有效载荷的方法的示例实施例的流程图。

图5是图示了用于处理有效载荷部分以生成有效载荷分段和usp记录的方法的示例实施例的流程图。

图6图示了根据示例实施例的usp记录结构。

应当注意,这些附图旨在图示在某些示例实施例中利用的方法、结构和/或材料的一般特性,并补充下面提供的书面描述。然而,这些附图不是按比例绘制的,并且可能不能精确地反映任何给定实施例的精确的结构或性能特性,并且不应被解释为定义或限制示例实施例所涵盖的值或特性的范围。在各个附图中使用相似或相同的附图标记旨在指示相似或相同的元件或特征的存在。

具体实施方式

现在将参考示出了一些示例实施例的附图来更全面地描述各种示例实施例。

本文公开了详细的说明性实施例。然而,出于描述示例实施例的目的,本文公开的特定结构和功能细节仅是表示性的。然而,示例实施例可以以许多备选形式被体现,并且不应被解释为仅限于本文阐述的实施例。

相应地,尽管示例实施例能够进行各种修改和备选形式,但是在附图中通过示例示出了实施例并且将在本文中对其进行详细描述。然而,应理解,无意将示例实施例限于所公开的特定形式。相反,示例实施例将覆盖落入本公开范围内的所有修改、等同形式和备选形式。在整个附图的描述中,相同的标号表示相同的元件。

尽管将从控制器、代理或其他适用的电子设备的角度描述一个或多个示例实施例,但是应理解,本文讨论的一个或多个示例实施例可以由在适用设备的上一个或多个处理器(或处理电路)执行。

图1是图示了示例用户服务平台(usp)网络架构的一部分的框图。

如图1所示,usp网络架构的一部分包括控制器102、消息传输协议(mtp)代理104、代理106、以及代理服务元件108a、108b。控制器102、mtp代理104和代理106可以经由一个或多个mtp进行通信。在一个示例中,控制器102可以经由简单(或流)面向文本的消息协议(stomp)来与mtp代理104通信,而代理106可以通过约束应用协议(coap)来与mtp代理104通信。代理106可以经由诸如zigbee、z-wave等的高级通信协议来与代理服务元件108a、108b进行通信。

尽管图1仅图示了单个控制器102、单个mtp代理104、单个代理106以及两个代理服务元件108a、108b,但是示例实施例不应限于该示例。相反,usp网络架构可以包括控制器、mtp代理、代理和代理服务元件的网络。此外,尽管关于mtp代理进行了讨论,但是示例实施例不应当限于该示例。相反,可以使用其他中间代理。

代理106是将服务元件108a和108b公开给控制器102的usp端点。控制器102是通过代理106操纵服务元件108a和108b的usp端点。在图1所示的示例中,代理106通过mtp代理104将服务元件108a和108b公开给控制器102。

示例控制器包括网络服务提供商控制器(acs)、应用服务提供商控制器和智能手机控制器(例如,家庭网络内部或外部)。然而,示例实施例不应当限于这些示例。示例代理包括智能家居网关、smarttv等。

代理服务元件表示代理公开的一项服务功能性,并且可以由一个或多个对象表示。代理服务元件的示例包括家庭自动化设备,诸如灯、锁、恒温器等。

仍然参照图1,控制器102和代理106允许应用通过使用usp协议、经由mtp代理104交换usp消息来操纵服务元件108a、108b。这些应用包括传统的管理系统、提供物联网服务的用户门户或被管理实体,并且作为自动化智能家居或智能建筑系统的一部分,可以充当网关上云中的用户门户或通过智能手机被访问。

usp消息是指usp层通信的内容,包括消息报头和消息体。消息体可以包括例如请求、响应或错误。消息报头可以包括提供有关消息的信息的元素,诸如发送者和接收者的端点标识符、消息类型以及消息标识(消息id)元素。消息id是被用于将响应或错误与请求相关联的标识符。

尽管图1所示的网络包括处于mtp代理104形式的代理机制,但是示例实施例不限于该示例。根据一个或多个其他示例实施例,代理可以在不具有代理机制的情况下向控制器直接公开一个或多个服务元件。

控制器、代理和/或代理(诸如图1所示的控制器、代理和/或代理)可以被部署在各种配置中,其中控制器和代理跨互联网(或服务提供商网络)或在本地网络内(例如,在家庭内)通信。无论部署配置如何,当控制器和代理经由usp协议交换usp消息时,usp消息的交换可能需要使用各种mtp来跨网络传输。

mtp位于usp协议下方的层处,其在始发usp端点(也称为始发usp端点设备、始发端点、始发端点设备等)与接收usp端点(也称为接收usp端点设备、接收端点、接收端点设备)之间承载消息。始发usp端点和接收usp端点也可以被统称为电子设备。mtp的示例包括stomp、coap、超文本传输协议(http)和可扩展消息传递和到场协议(xmpp)。

在更复杂的部署中,始发usp端点(例如,控制器102)可以跨一个或多个mtp代理向接收usp端点(例如,代理106)传送usp消息,这些mtp代理在使用不同mtp的端点之间转发usp消息。

在图1中,例如,控制器102被部署在代理106位于其中的家庭网络(例如,局域网(lan))之外的服务提供商的网络中。在该示例中,如上所述,代理106经由coap与mtp代理104通信,并且控制器102经由stomp与mtp代理104通信。因此,在控制器102和代理106之间交换的usp消息遍历多个mtp。在这些情况下,usp的端到端(e2e)消息交换能力许可通过使用usp记录以更安全和/或可靠的方式交换usp消息。

usp记录被定义为传输层有效载荷,传输层有效载荷将构成(或表示)usp消息的数据报序列封装为usp记录的有效载荷部分。usp记录还提供附加的元数据,以支持安全可靠地传递usp消息的各个段(也称为片段)。稍后将关于图6更详细地讨论该附加元数据。

为了抑制usp记录的传输被阻止和/或丢弃的可能性,一个或多个示例实施例提供了对表示usp消息的未加密的、编码的或加密的有效载荷(例如,包括usp消息或多个实体(例如,传输层安全性(tls)实体)进行分段和重组的能力,该有效载荷的大小大于始发usp端点与接收usp端点之间的一个或多个mtp的最小最大传输单元(mtu)。mtu是可以通过特定网络被发送的最大大小的分组或帧。

分段和重组(sar)可以独立地被采用,也可以与已知的安全性和可靠性e2e消息交换相结合地被采用。例如,可以使用sar功能以更可靠的方式交换较大的未加密的usp消息,而如果不采用sar功能,更小的usp消息仍可以维持相同的可靠性。

至少一些示例实施例提供了用于传输usp消息的方法,其中始发usp端点将表示usp消息的有效载荷进行分段成m个字节的分段,其中m可以是来自(用于在始发usp端点与接收usp端点之间遍历的mtp的)mtu之中的最小mtu的大小。在其中mtu与stomp相关联的示例中,m可以是225个字节。在接收到分段的有效载荷的所有分段之后,接收usp端点重组有效载荷分段,以恢复表示被包括在其中的usp消息的原始有效载荷。

图6图示了usp记录的示例结构。

参照图6,usp记录可以包括:版本;始发usp端点标识符(from_id);会话上下文标识符(session_id);数据报序列标识符(sequence_id);预期的序列标识符(expected_id);有效载荷编码信息(payload_encoding);有效载荷加密信息(payload_encryption);有效载荷分段和重组(sar)状态(payload_sar_state);有效载荷记录sar状态(payload_rec_sar_state);有效载荷;和重传标识符(retransmit_id)。如本文所讨论的,有效载荷可以被称为usp记录的有效载荷部分,其表示usp消息。usp记录的其余元数据部分可以被称为usp记录的非有效载荷部分。尽管在本文中讨论为包括图6中所示的每个字段,但是usp记录不必包括图6中所示的所有非有效载荷部分。此外,usp记录至少在某些情况下不需要承载有效载荷。

仍然参照图6,版本指示usp记录的版本。from_id标识已经生成并传输了usp记录的始发usp端点。session_id包括标识在始发usp端点和接收usp端点之间所建立的e2e会话上下文(会话上下文)的信息。

通过发送具有值的usp记录来在两个usp端点之间建立会话上下文,该session_id值当前没有与usp端点组合相关联。在usp中,代理发起在usp端点之间建立会话上下文的过程,并且通过session_id的值和相关联的控制器的usp标识符的组合来在代理内唯一标识会话上下文。

会话上下文可以具有寿命,并且可以在给定(或替代地,期望的或预定的)时间段到期之后到期。会话上下文的到期可以由代理处的会话上下文到期(sessioncontextexpiration)参数来控制,其中如果代理在给定时间段内未在会话上下文内看到活动(例如,usp记录的交换),则代理认为会话上下文已到期。

一旦在usp端点之间建立了会话上下文,则创建usp记录以在会话上下文内交换有效载荷(和usp消息)。usp记录由它们的from_id、session_id和sequence_id唯一标识。

仍然参照图6,对于在会话上下文中发送的usp记录序列中的第一usp记录,可以将sequence_id初始化为零,并且在序列中的每个usp记录被发送后递增。根据至少一些示例实施例,端点可以基于发送的记录的数目来维护sequence_id的独立值。

expected_id指示始发usp端点希望从接收usp端点接收的下一个序列标识符。对与expected_id匹配的sequence_id的接收隐式地确认接具有比expected_id更小的sequence_id的传输数据报。

表示usp消息的usp记录的有效载荷部分可以包括一个或多个有效载荷记录。usp消息可以是未加密的,使用简明二进制对象表示(cbor)对象签名和加密(cose)而被加密,或者使用传输层安全性(tls)加密而被加密。然而,示例实施例不应当限于这些示例。在其中usp消息是更大的未加密的usp消息(或用cose加密的usp消息)的示例中,有效载荷部分可以包括表示usp消息的有效载荷记录。在另一示例中,有效载荷部分可以包括多个实体(例如,tls记录),其中每个实体(例如,tls记录)构成有效载荷记录。

仍然参照图6,payload_encoding包括被用于对未加密的有效载荷进行编码(和解码)的编码协议的标识。有效载荷编码信息的有效值包括未编码(‘0’)和已编码(‘1’)。

payload_encryption包括被用于加密usp消息以生成有效载荷部分的安全协议(例如,cose、tls等)。

payload_sar_state指示针对始发usp端点处的有效载荷的分段和重组状态。payload_sar_state的示例值包括“无分段”(例如‘0’)、“开始”(例如‘1’)、“处理中”(例如‘2’)和“完成”(‘3’)。

payload_rec_sar_state指示针对有效载荷内给定有效载荷记录的分段和重组状态。payload_rec_sar_state的示例值包括“未使用”(例如,‘0’)、“开始”(例如,‘1’)、“处理中”(例如,‘2’)和“完成”(例如,‘3’)。

如本文所讨论的,payload_sar_state和payload_rec_sar_state可以被统称为分段和重组状态信息(或分段和重组状态指示符信息)。有效载荷sar状态(payload_sar_state)在本文中可以被称为有效载荷分段和重组状态,并且可以在给定的有效载荷分段被生成时指示始发端点设备处的有效载荷的分段的状态。有效载荷记录sar状态(payload_rec_sar_state)可以称为有效载荷记录段和重组状态,并且可以当给定的有效载荷分段被生成时指示始发端点设备处的有效载荷记录的分段的状态。

retransmit_id包括针对usp记录的重新传输以用于可靠消息交换的请求。当请求重新传输时,retransmit_id被包括或被设置。

图3是图示了用于生成和传输usp记录的方法的示例实施例的流程图。

出于示例的目的,将针对在控制器102(用作始发usp端点)和代理106(用作接收usp端点)之间建立的会话上下文来描述图3中所示的示例实施例。然而,应当理解,示例实施例不应限于该示例。

参照图3,在步骤s300处,控制器102处理(例如,编码和/或加密)usp消息以生成usp记录的有效载荷部分以用于向代理106传输。在一个示例中,控制器102根据tr-369协议来处理usp消息。所生成的有效载荷部分可以被存储在控制器102处的有效载荷传输缓冲区中。

如上所述,根据一个或多个示例实施例,表示usp消息的有效载荷部分可以包括一个或多个有效载荷记录。例如,有效载荷部分可以包括有效载荷记录,该有效载荷记录包括未加密的usp消息、cose加密的有效载荷记录或多个有效载荷记录,每个有效载荷记录包括经tls加密的实体。然而,示例实施例不应当被限于这些示例。

返回图3,在步骤s302中,控制器102确定usp记录(包括在步骤s300中创建的非有效载荷部分和有效载荷部分)的估计大小(例如,以字节为单位)是否大于在控制器102与代理106之间遍历的mtp的最小mtu。

如果在步骤s302处usp记录的估计大小小于或等于控制器102与代理106之间的mtp(例如,stomp和coap)的最小mtu,则控制器102确定在步骤s300处创建的有效载荷部分的分段和重组(sar)不是必需的。在这种情况下,在步骤s306处,控制器102生成并且传输usp记录以用于向代理106传输。例如,在步骤s306中,控制器102将在步骤s300处创建的有效载荷部分和非有效载荷部分封装在usp记录中(例如,具有诸如图6所示的结构)。

返回步骤s302,如果usp记录的估计大小大于控制器102和代理106之间的mtp的最小mtu,则在步骤s308中,控制器102利用分段和重组(sar)功能处理有效载荷部分以生成有效载荷分段序列,每个有效载荷分段包括在有效载荷部分中的有效载荷记录(以及因此,usp消息的至少一部分)的至少一个分段(或片段)。取决于有效载荷部分的大小和被包含在其中的有效载荷记录,控制器102可以将有效载荷部分(和/或有效载荷部分内的一个或多个有效载荷记录)分段(或分片段)成更小的“块(chunk)”(在本文也称为有效载荷分段或分段),使得包括有效载荷分段和usp记录的非有效载荷部分的usp记录的大小小于或等于最小mtu。在一个示例中,为了传输到图1中的代理106,由于用于stomp的mtu为225字节,因此控制器102可以将有效载荷部分分为小于225字节(例如,介于150到200字节之间)的分段,这是控制器102与代理106之间的mtp的mtu之中最小的mtu。

还是在步骤s308中,控制器102生成usp记录的序列,每个usp记录都包括所生成的有效载荷分段,以用于传输给代理106。除了usp记录的相应有效载荷部分是有效载荷分段,控制器102可以按照与以上关于步骤s306所讨论的方式相似的方式,生成该序列中的每个usp记录。

关于sar功能的应用和在步骤s308处的usp记录序列的产生的更详细的讨论稍后将在图5中提供。

返回图3,在步骤s310中,控制器102将在步骤s308中生成的usp记录有序地发送到代理106(例如,通过mtp代理104)以传送usp消息。

图5是图示了用于处理有效载荷部分以生成有效载荷分段并且然后生成usp记录以用于传输的方法的示例实施例的流程图。像图3一样,出于示例目的,将针对在控制器102和代理106之间建立的会话上下文来描述图5中示出的示例实施例。然而,应当理解,示例实施例不应限于该示例。

参照图5,在步骤s502处,控制器102基于usp记录的非有效载荷部分的大小和控制器102与代理106之间的mtp的最小mtu来设置usp记录(在步骤s300中生成)的有效载荷部分的有效载荷分段大小。在一个示例中,控制器102可以将有效载荷分段大小设置为最小mtu的大小与非有效载荷部分的大小之间的差。在上述示例中,如果stomp的mtu为225字节并且usp记录的非有效载荷部分的大小为25字节,则有效载荷部分的分段大小可以为200字节。

在步骤s504中,控制器102从有效载荷传输缓冲区获得有效载荷部分的第一有效载荷记录。

在步骤s506中,控制器102确定包括非有效载荷部分和获得的有效载荷记录的usp记录的估计大小(例如,以字节为单位)是否大于控制器102和代理106之间的mtp的最小mtu。

如果控制器102确定usp记录的估计大小小于或等于最小mtu,则在步骤s512处,控制器102将有效载荷记录作为有效载荷分段返回到有效载荷传输缓冲区。这样,控制器102将有效载荷分段返回到有效载荷传输缓冲区中的与先前在步骤s504中获得有效载荷记录时有效载荷记录占据的位置相同的位置。

在步骤s516中,控制器102确定有效载荷传输缓冲区是否包括将要处理的附加有效载荷记录。即,例如,控制器102确定对具有sar功能的有效载荷部分的处理是否完成。

如果控制器102确定有效载荷传输缓冲区包括将要处理的附加有效载荷记录,则在步骤s514中,控制器102从有效载荷传输缓冲区获得下一个有效载荷记录。该处理然后返回到步骤s506,并且如本文所讨论的那样继续。

返回到步骤s516,如果控制器102确定有效载荷传输缓冲区不包括将要处理的任何附加有效载荷记录(完成了利用sar功能对有效载荷部分的处理),则控制器102生成(或者,可替代地,创建)与有效载荷传输缓冲区中的每个有效载荷分段相对应的usp记录,以便生成usp记录的序列以传输到代理106。同样在步骤s518处,控制器102设置有效载荷sar状态(payload_sar_state)和所生成的usp记录的非有效载荷部分中的有效载荷记录sar状态(payload_rec_sar_state)。控制器102然后将生成的一个或多个usp记录存储在传出传输缓冲区中,以有序传输到代理106。

对于每个usp记录,当被包括在usp记录中的有效载荷分段被创建时,可以基于有效载荷部分的分段状态来设置有效载荷sar状态和有效载荷记录sar状态。例如,包括有效载荷部分的第一有效载荷分段的第一usp记录可以具有“开始”的有效载荷sar状态,而包括有效载荷部分的最后一个有效载荷分段的usp记录的有效载荷sar状态可以为“完成”。包括第一有效载荷分段和最后一个有效载荷分段之间的有效载荷分段的一个或多个usp记录的有效载荷sar状态可以为“处理中”。

类似地,包括与分段的有效载荷记录的第一部分相对应的有效载荷分段的usp记录可以具有为“开始”的有效载荷记录sar状态,并且包括与分段的有效载荷记录的最后部分相对应的有效载荷分段的usp记录可以具有为“完成”的有效载荷记录sar状态。包括与在第一部分和最后部分之间的分段的有效载荷记录的部分相对应的有效载荷分段的一个或多个usp记录的有效载荷记录可以具有“”“处理中”的sar状态。

稍后将讨论设置有效载荷sar状态和有效载荷记录sar状态的更具体示例。

返回图5中的步骤s506,如果控制器102确定包括非有效载荷部分和从有效载荷传输缓冲区获得的有效载荷记录的usp记录的估计大小大于最小mtu,则控制器102将有效载荷记录分段为多个有效载荷分段,其中多个有效载荷分段中的每个有效载荷分段具有小于或等于有效载荷分段大小的大小。

在步骤s510中,控制器102将多个有效载荷分段存储在有效载荷传输缓冲区中的与在分段之前由有效载荷记录在传输缓冲区中先前占据的位置相同的位置处,使得有效载荷记录之间的原始描述被维持。然后,该处理进行到步骤s516,并如上所述继续进行。

现将针对非有效载荷部分np为25字节,原始有效载荷部分p为700字节,最小mtu为225字节的更具体示例来描述图5。在该示例中,有效载荷部分p包括两个有效载荷记录的序列,包括200字节的第一有效载荷记录pr_1和500字节的第二有效载荷记录pr_2。在该示例中,有效载荷记录中的每个有效载荷记录可以包括tls实体,并且tls实体表示usp消息。然而,示例实施例不应限于该示例。

再次参照图5,在步骤s502处,控制器102将有效载荷分段大小设置为225–25=200字节。

在步骤s504处,控制器102从有效载荷传输缓冲区获得第一有效载荷记录pr_1

在该示例中,因为包括第一有效载荷记录pr_1(200字节)和非有效载荷部分np(25字节)的usp记录的估计大小等于最小mtu(步骤s506),所以控制器102不对第一个有效载荷记录pr_1进行分段。相反,控制器102在第一有效载荷记录pr_1(步骤s512)从之被获得的相同位置处将第一有效载荷记录pr_1作为第一有效载荷分段pr1_seg1返回到有效载荷传输缓冲区。

由于有效载荷传输缓冲区包括将要处理的第二有效载荷记录pr_2(步骤s516),所以控制器102从有效载荷传输缓冲区获得第二有效载荷记录pr_2(步骤s514)。

因为包括第二有效载荷记录pr_2(500字节)和非有效载荷部分np(25字节)的usp记录的估计大小大于最小mtu(步骤s506),所以控制器102将第二有效载荷记录pr_2分段为多个有效载荷分段pr2_seg1、pr2_seg2和pr2_seg3的序列(步骤s508)。在该示例中,第一有效载荷分段pr2_seg1和第二有效载荷分段pr2_seg2中的每个有效载荷分段具有200字节的大小,而第三有效载荷分段pr2_seg3具有100字节的大小。

然后,控制器102将多个有效载荷分段(按顺序)存储在有效载荷传输缓冲区中的在分段之前由第二有效载荷记录pr_2先前占据的位置(步骤s510)。

在该示例中,由于针对当前有效载荷部分没有其他有效载荷记录要处理(步骤s516),所以控制器102基于有效载荷分段pr1_seg1、pr2_seg1生成usp记录uspr1、uspr2、uspr3和uspr4的序列,该有效载荷分段pr1_seg1、pr2_seg2和pr2_seg3被存储在有效载荷传输缓冲区中(步骤s518)。在该示例中,第一usp记录uspr1包括有效载荷分段pr1_seg1作为有效载荷部分,第二usp记录uspr2包括作为有效载荷部分的有效载荷分段pr2_seg1,第三usp记录uspr3包括作为有效载荷部分的有效载荷分段pr2_seg2,并且第四usp记录uspr4包括作为有效载荷部分的有效载荷分段pr2_seg3。usp记录uspr1、uspr2、uspr3和uspr4可以具有单调递增的sequence_id编号,使得在代理106接收到usp记录之后,以单调递增的sequence_id编号的顺序来处理usp记录。针对如上面图3中的步骤s306和s308所讨论的,控制器106可以生成相应的usp记录uspr1、spr2、uspr3和uspr4。尽管针对单调递增的sequence_id编号讨论了示例实施例,但是可以使用任何方式来维持usp记录的顺序。

同样在步骤s518中,控制器102针对所生成的usp记录uspr1、uspr2、uspr3和uspr4中的每个usp记录设置有效载荷sar状态和有效载荷记录sar状态。

在此示例中,对于序列中的第一个usp记录uspr1(包括有效载荷分段pr1_seg1),将有效载荷sar状态(payload_sar_state)设置为“开始”,并将有效载荷记录sar状态payload_rec_sar_state设置为“未使用”。对于序列中的第二个usp记录uspr2(包括有效载荷分段pr2_seg1),将有效载荷sar状态设置为“处理中”并且将有效载荷记录sar状态设置为“开始”。对于序列中的第三usp记录uspr3(包括有效载荷分段pr2_seg2),将有效载荷sar状态设置为“处理中”,并且将有效载荷记录sar状态设置为“处理中”。对于序列中的第四usp记录uspr4(包括有效载荷分段pr2_seg3),将有效载荷sar状态设置为“完成”,并且将有效载荷记录sar状态设置为“完成”。

然后,在图3的步骤s310处,将usp记录uspr1、uspr2、uspr3和uspr4存储在传出usp记录传输缓冲区中,以用于有序地传输给代理106。

通过图5所示的过程,控制器102生成usp记录的序列,usp记录中的每个usp记录的大小小于或等于控制器102和代理106之间的mtp中最小的mtu。相应地,可以降低usp记录的传输被阻止和/或被丢弃的可能性。

在代理106处,在从控制器102接收到所传输的usp记录序列(包括分段的有效载荷部分)后,代理106处理所接收的usp记录以重组分段的有效载荷部分,并且然后恢复原始的(或所传输的)usp消息。

图4a是图示了用于处理包括分段的有效载荷部分的有效载荷分段的接收到的usp记录的方法的示例实施例的流程图。出于示例的目的,将再次针对在控制器102与代理106之间建立的会话上下文来描述图4a中所示的示例实施例。然而,应当理解,示例实施例不应限于该示例。此外,将参照根据上述针对图3至图5讨论的分段过程处理的usp记录的接收来描述图4a中所示的示例实施例。然而,应当理解,在不执行图4a中的步骤s42至s48的情况下,可以如针对图4a中的步骤s410所讨论的那样,处理在代理106处接收的未分段的usp记录(例如,具有被设置为“无分段”的有效载荷sar状态和被设置为“未使用”的有效载荷记录sar状态的usp记录)。

参照图4a,响应于在步骤s42处接收到具有被设置为“开始”的有效载荷sar状态(payload_sar_state)的usp记录,在步骤s44处,代理106将接收到的usp记录存储在接收usp记录缓冲区中。

在步骤s45处,代理106检查针对下一个接收到的usp记录的有效载荷sar状态和有效载荷记录sar状态(payload_rec_sar_state)。

在步骤s46处,如果针对下一个接收到的usp记录的有效载荷sar状态和有效载荷记录sar状态都未被设置为“完成”(针对下一个接收到的usp记录的有效载荷sar状态和有效载荷记录sar状态中的至少一个被设置为“开始”或“处理中”),则该过程返回到步骤s44,在步骤s44将下一个接收到的usp记录存储在接收usp记录缓冲区中。然后,该过程如本文所述继续进行。

返回步骤s46,如果将针对下一个接收到的usp记录的有效载荷sar状态和有效载荷记录sar状态都设置为“完成”,则在步骤s47中,代理106将下一个接收到的usp记录存储在接收usp记录缓冲区中。

然后,在步骤s48处,代理106处理所缓冲的usp记录中的每个usp记录的有效载荷部分,以在控制器102处的分段之前重组和恢复原始有效载荷部分。根据至少一些示例实施例,代理106根据从最小到最大的usp记录的单调递增的sequence_id编号,处理被存储在接收usp记录缓冲区中的usp记录的有效载荷部分,以重组表示由控制器102发送的原始usp消息的较大的有效载荷部分。下面将关于图4b更详细地讨论在步骤s48中的处理的示例实施例。

在步骤s410中,代理106处理(例如,根据需要解码和/或解密)重组的有效载荷部分以从控制器102恢复usp消息。在一个示例中,代理106可以根据tr-369协议处理重组的有效载荷部分,以恢复原始的usp消息。

现在将针对以上给出的示例更详细地讨论图4a,在该示例中,usp记录uspr1、uspr2、uspr3和uspr4由控制器102有序地发送到代理106。

参照图4a,在接收到具有被设置为“开始”的有效载荷sar状态的第一usp记录uspr1后(步骤s42),代理106将第一usp记录uspr1存储在接收usp记录缓冲区中(步骤s44)。

然后,代理106检查是否将针对下一个usp记录uspr2的有效载荷sar状态和有效载荷记录sar状态都设置为“完成”(步骤s45)。由于在该示例中,下一个usp记录uspr2包括被设置为“处理中”的有效载荷sar状态和被设置为“开始”的有效载荷记录sar状态(步骤s46),因此代理106将usp记录uspr2存储在接收usp记录缓冲区中(步骤s44)。

然后,代理106检查针对下一个usp记录uspr3的有效载荷sar状态和有效载荷记录sar状态是否都被设置为“完成”(步骤s45)。由于下一个usp记录uspr3包括被设置为“处理中”的有效载荷sar状态和被设置为“处理中”的有效载荷记录sar状态(步骤s46),因此代理106再次将usp记录uspr3存储在接收usp记录缓冲区中(步骤s44)。

然后,代理106检查针对下一个usp记录uspr4的有效载荷sar状态和有效载荷记录sar状态是否都被设置为“完成”(步骤s45)。由于下一个usp记录uspr4包括有效载荷sar状态和被设置为“完成”的有效载荷记录sar状态(步骤s46),所有代理106将第四usp记录uspr4存储在接收usp记录缓冲区中(步骤s47),然后在控制器102处进行分段之前,开始处理存储在接收usp记录缓冲区中的usp记录uspr1、uspr2、uspr3和uspr4的有效载荷部分,以重组原始有效载荷部分(表示原始usp消息)(步骤s48)。

然后,代理106处理(例如,根据需要解码和/或解密)重组的有效载荷部分,以恢复被包括在其中的原始usp消息(步骤s410)。

图4b是图示了在图4a的步骤s48中处理缓冲的usp记录的方法的示例实施例的流程图。

参照图4b,在步骤s482中,代理106处理被存储在接收usp记录缓冲区中的第一usp记录。在该示例中,代理106处理在缓冲的usp记录之中的具有最低sequence_id编号的usp记录。

如果当前usp记录的有效载荷记录sar状态在步骤s483未被设置为“未使用”或在步骤s484未被设置为“完成”,则代理106在步骤s4814中将有效载荷分段添加到有效载荷分段缓冲区中。然后,代理106在步骤s4816中处理序列中的下一个缓冲的usp记录(例如,具有单调递增的序列号中的下一个sequence_id号的缓冲的usp记录),并且该过程返回到步骤s484。

如果在步骤s484中,将针对当前usp记录的有效载荷记录sar状态设置为“完成”,则代理106在步骤s485中将从当前usp记录获得的有效载荷分段附加到有效载荷分段缓冲区中,并在步骤s486中开始处理一个或多个缓冲的有效载荷分段,以在分段之前从原始有效载荷部分重组有效载荷记录。然后,代理106在s488中将重组的有效载荷记录附加在有效载荷记录缓冲区中。

在步骤s4810中,代理106检查针对序列中的最近被处理的(或当前的)usp记录的有效载荷sar状态是否被设置为“完成”。

如果针对序列中最近被处理的usp记录的有效载荷sar状态未被设置为“完成”,则该过程进入步骤s4816并如上所述继续进行。

返回到步骤s4810,如果将序列中最近被处理的usp记录的有效载荷sar状态被设置为“完成”,则该过程进行到图4a中的步骤s410,在图4a中,对重组的有效载荷部分(存储在有效载荷记录缓冲区中的有效载荷记录)进行处理(例如,根据需要进行解码和/或解密)以恢复原始的usp消息。

现在返回图4b中的步骤s483,如果将缓冲区中的第一usp记录的有效载荷记录sar设置为“未使用”,则代理106确定usp记录包括未分段的有效载荷记录(例如,有效载荷分段包括有效载荷记录)。在该示例中,该过程进行到步骤s488,在步骤s488中,代理106将有效载荷记录存储在有效载荷记录缓冲区中。然后该过程如上所述进行。

现在将针对以上给出的示例更详细地讨论图4a、图4b,在该示例中,usp记录uspr1、uspr2、uspr3和uspr4由控制器102有序地发送到代理106。

参照图4b,代理106处理序列中的第一usp记录uspr1以获得有效载荷分段pr1_seg1(步骤s482)。

由于针对usp记录uspr1的有效载荷记录sar状态被设置为“未使用”(步骤s483),所以代理106将有效载荷记录pr_1(作为有效载荷分段pr1_seg1被包括)存储在有效载荷记录缓冲区中(步骤s488)。

由于针对第一usp记录uspr1的有效载荷sar状态被设置为“开始”而不是“完成”(步骤s4810),因此代理106处理下一个usp记录uspr2以获得有效载荷分段pr2_seg1(步骤s4816)。

因为针对第二usp记录uspr2的有效载荷记录sar状态被设置为“开始”,而不是“未使用”(步骤s483)或“完成”(步骤s484),所以代理106将有效载荷分段pr2_seg1附加到有效载荷分段缓冲区中(步骤s4818),并且处理下一个usp记录uspr3以获得有效载荷分段pr2_seg2(步骤s4816)。

因为针对usp记录uspr3的有效载荷记录sar状态被设置为“处理中”,而不是“未使用”(步骤s483)或“完成”(步骤s484),所以代理106将有效载荷分段pr2_seg2附加到有效载荷分段pr2_seg1的有效载荷分段缓冲区中(步骤s4814),并且处理下一个usp记录uspr4以获得有效载荷分段pr2_seg3(步骤s4816)。

因为针对usp记录uspr4的有效载荷记录sar状态被设置为“完成”(步骤s484),所以代理106将有效载荷分段pr2_seg3附加到已经在有效载荷分段缓冲区中的有效载荷分段pr2_seg1和pr2_seg2上(步骤s485),以获得第二有效载荷记录pr_2(步骤s486)。

然后,代理106将获得的第二有效载荷记录pr_2存储在有效载荷记录缓冲区中(步骤s488)。

仍然参照图4b,由于针对usp记录uspr4的有效载荷sar状态也被设置为“完成”,因此该过程进行到图4a的步骤s410,在步骤s410中,对包括在有效载荷记录缓冲区中的有效载荷记录pr_1和pr_2的重组有效载荷部分p进行处理(例如,根据需要进行解码和/或解密)。

图2描绘了计算机、计算或电子设备的高级框图,该计算机、计算或电子设备适用于实现,尤其是,始发usp端点和接收usp端点(例如,代理和控制器)以及网关、mtp代理和网关等。

参照图2,计算机1000包括一个或多个处理器1002(例如,中央处理单元(cpu)或其他合适的处理器)和存储器1004(例如,随机存取存储器(ram)、只读存储器(rom)等)。计算机1000还可以包括协作模块/过程1005。协作过程1005可以被加载到存储器1004中,并且由处理器1002执行以实现如本文所讨论的功能,因此,协作过程1005(包括相关联的数据结构)可以存储在计算机可读存储介质(例如,ram存储器、磁性的或光学的驱动器或软盘等)中。在始发端点处,存储器1004可以包括有效载荷传输缓冲区、传出传输缓冲区等。在接收端点处,存储器1004可以包括缓冲存储器,诸如接收usp记录缓冲区、传出传输缓冲区、有效载荷传输缓冲区、有效载荷分段缓冲区等。

计算机1000还可以包括一个或多个输入/输出设备1006(例如,用户输入设备(诸如键盘、小键盘、鼠标等)、用户输出设备(诸如显示器、扬声器等)、输入端口、输出端口、接收器、发送器、一个或多个存储设备(例如,磁带驱动器、软盘驱动器、硬盘驱动器、光盘驱动器等)等等以及它们的各种组合)。

尽管在本文中针对示例进行了讨论,在该示例中控制器102用作始发usp端点,并且代理106用作接收usp端点,但是示例实施例不应限于该示例。相反,代理106可以用作始发usp端点(例如,除了上面针对图4a和4b讨论的功能性之外,还被配置为执行上面针对图3和图5讨论的功能性),并且控制器102可以用作接收usp端点(例如,除了上面针对图3和图5所讨论的功能性之外,还可以被配置为执行针对图4a和图4b所讨论的功能性)。也就是说,例如,控制器102和代理106中的每一个可以具有本文中针对图1至图3、4a、4b和5讨论的功能性。

尽管本文中的示例实施例主要针对由始发usp端点处的有效载荷部分表示的usp消息,然后在接收usp端点处进行恢复的消息来讨论,但是示例性实施例不应限于此示例。相反,有效载荷部分可以包括和/或承载任何始发有效载荷信息(例如,tls握手所需的tls记录等)。

尽管本文可以使用第一、第二等术语来描述各种元件,但是这些元件不应受到这些术语的限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离本公开的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文所使用的,术语“和/或”包括一个或多个相关列出的项的任何和所有组合。

当一个元件被称为“连接”或“耦合”到另一个元件时,它可以直接连接或耦合到另一个元件,或者可以存在中间元件。相反,当一个元件被称为“直接连接”或“直接耦合”到另一个元件时,则不存在中间元件。应当以类似的方式来解释用于描述元件之间的关系的其他词语(例如,“在...之间”与“直接在...之间”、“相邻”与“直接相邻”等)。

本文所使用的术语仅出于描述特定实施例的目的,而并非旨在进行限制。如本文所使用的,单数形式“一(a)”、“一个(an)”和“该(the)”也意图包括复数形式,除非上下文另外明确指出。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”、和/或“包括(including)”时,其指定了所述特征、整数、步骤、操作、元件,和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或添加。

还应注意,在一些备选实施方式中,所指出的功能性/动作可以不按图中所指出的顺序发生。例如,取决于所涉及的功能性/动作,连续示出的两个图实际上可以基本上同时执行,或者有时可以按照相反的顺序执行。

在以下描述中提供了具体细节以提供对示例实施例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践示例实施例。例如,系统可以用框图示出,以便不会在不必要的细节上模糊示例实施例。在其他实例中,为了避免混淆示例实施例,可以在没有不必要的细节的情况下示出众所周知的过程、结构和技术。

如本文所讨论的,将参照操作的动作和符号表示(例如,以流程图、流图、数据流图、结构图、框图等形式)来描述说明性实施例,这些操作可以被实现为程序模块或功能过程,包括例程、程序、对象、组件、数据结构等,它们执行特定的任务或实现特定的抽象数据类型,并且可以使用现有的硬件实施在例如现有的端点、客户端、网关、节点、代理、控制器、计算机、基于云的服务器、网络服务器、代理或代理服务器、应用服务器等上。如稍后所讨论的,这样的现有硬件尤其可以包括:尤其是,一个或多个中央处理单元(cpu)、片上系统(soc)设备、数字信号处理器(dsp)、专用集成电路、现场可编程门阵列(fpga)计算机等。

尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行、并发或同时执行。另外,可以重新安排操作顺序。进程可以在完成其操作时终止,但也可以具有图中未包括的其他步骤。进程可以对应于方法、函数、过程、子例程、子程序等。当进程对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。

如本文所公开的,术语“存储介质”、“计算机可读存储介质”或“非暂时性计算机可读存储介质”可以表示用于存储数据的一个或多个设备,包括只读存储器(rom)、随机存取存储器(ram)、磁性ram、核心存储器、磁盘存储介质、光学存储介质、闪存设备和/或其他用于存储信息的有形机器可读介质。术语“计算机可读介质”可以包括但不限于便携式或固定存储设备、光学存储设备以及能够存储、包含或承载指令和/或数据的各种其他介质。

此外,示例实施例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合而被实现。当以软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段可以被存储在机器或计算机可读介质中,诸如计算机可读存储介质。当以软件实现时,一个或多个处理器将执行必要的任务。

代码段可以表示过程、功能、子程序、程序、例程、子例程、模块,软件包、类或指令、数据结构或程序语句的任意组合。一个代码段可以通过传递和/或接收信息、数据、变量、参数或存储器内容而耦合到另一个代码段或硬件电路。信息、变量、参数、数据等可以通过任何合适的方式传递、转发或传输,包括内存共享、消息传递、令牌传递、网络传输等。

本文所使用的术语“包括”和/或“具有”被定义为包括(即,开放语言)。如本文所使用的,术语“耦合”被定义为连接,尽管不一定直接地连接并且不一定机械地连接。源自单词“指示”的术语(例如,“指示(indicates)”和“指示(indication)”)旨在涵盖可用于传送或参考所指示的对象/信息的所有各种技术。所指示的可用于传送或引用对象/信息的可用技术的一些但并非全部示例包括:所指示的对象/信息的传递、所指示的对象/信息的标识符的传递、所指示的用于生成对象/信息的信息的传递、所指示的对象/信息的某些部分或部分的传递、所指示的对象/信息的某些派生的传递、所指示的表示对象/信息的某些符号的传递。

根据示例实施例,客户端、网关、节点、代理控制器、计算机、基于云的服务器、网络服务器、应用服务器、代理或代理服务器等可以是(或包括)硬件、固件、执行软件的硬件或它们的任意组合。这样的硬件可以包括被配置为专用机器以执行本文描述的功能以及这些元件的任何其他众所周知的功能的一个或多个中央处理器(cpu)、片上系统(soc)设备、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)计算机等。在至少某些情况下,cpu、soc、dsp、asic和fpga通常可被称为处理电路、处理器和/或微处理器。

端点、客户端、网关、节点、代理、控制器、计算机、基于云的服务器、网络服务器、应用服务器、代理或代理服务器等也可以包括各种接口,包括一个或多个连接到一个或多个天线的发送器/接收器、计算机可读介质和(可选的)显示设备。一个或多个接口可以被配置为通过相应的数据和控制平面或接口向一个或多个网络元件(诸如交换机、网关、终端节点、控制器、服务器、客户端等)发送/从其接收(有线和/或无线地)数据或控制信号。

上面已经关于本发明的具体实施例描述了益处、其他优点和问题的解决方案。但是,益处、优点、问题的解决方案以及任何可能导致或引起此类益处、优点或解决方案,或使此类益处、优点或解决方案变得更加明显的要素,均不得解释为任何或所有权利要求的关键、所需或必要特征或要素。

详细地参考实施例(在附图中示出了实施例的示例),其中,相似的附图标记始终表示相似的元件。就这一点而言,示例实施例可以具有不同的形式,并且不应被解释为限于本文所阐述的描述。因此,下面仅通过参考附图描述了示例实施例,以解释本说明书的示例实施例。在权利要求中指定了各个实施例的方面。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1