CN103250390A - 基于对象的传输协议 - Google Patents
基于对象的传输协议 Download PDFInfo
- Publication number
- CN103250390A CN103250390A CN201180056392.8A CN201180056392A CN103250390A CN 103250390 A CN103250390 A CN 103250390A CN 201180056392 A CN201180056392 A CN 201180056392A CN 103250390 A CN103250390 A CN 103250390A
- Authority
- CN
- China
- Prior art keywords
- objects
- session
- network node
- channel
- relevant
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
-
- 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/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/323—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
提供了有助于提供基于对象的传输协议的方法和装置,该基于对象的传输协议允许网络协议层上的任意尺寸对象的发射。该基于对象的传输协议还可以提供元数据与对象的关联以控制其传送,和/或提供响应对象的传送。此外,该基于对象的传输协议可以维护与远程网络节点的可以包括多个信道的会话,会话可以随着时间被更新以无缝地提供移动性、增加的数据率等。另外,可以由接收与属性相关的对象的网络节点远程地修改属性。
Description
技术领域
概括地讲,以下描述涉及网络通信,具体地讲,涉及提供基于对象的传输层协议。
背景技术
网络允许通过无线和/或有线介质互连的多个节点之间的通信。典型的网络架构包括有助于在多个节点之间进行通信的多个通信层。在一个示例中,网络架构可以包括介质层(例如,物理层、数据链路层、网络层等)、主机层(例如,传输层、会话层、表示层、应用层等)等,节点可以利用介质层来进行通信。例如,介质层可以有助于在物理介质(诸如,网络电缆、无线信号等)上发射低等级数据,而主机层可以解释该低等级数据以便呈现给应用。在一个示例中,因特网架构中的传输层可以包括传输控制协议(TCP),其从网络上的一个节点向该网络上的另一节点提供对(与上层相关的)字节流的有序传送。
在网络层,例如,因特网协议(IP)可以用于(例如,经由路由器或直接连接)建立节点之间的连接,并在节点当中路由数据。例如,IP层可以生成来自TCP层的数据的分组,并且将一个或多个头部包括在分组中以助于进行路由。另外,TCP可以对确保有序的字节流的可靠传送的IP连接进行管理。例如,TCP还可以提供针对未被正确地接收的分组的重传机制、提供为了限制传输速率以获取可靠性的流控制、以及为防止网络在阈值等级之上接收进入的数据的拥塞控制。在另一示例中,传输层可以是用户数据报协议(UDP),其相比于TCP而言具有较低的健壮性,并且不提供重传、流控制或拥塞控制。
对网络通信的提升已允许网络设备同时利用各种网络技术来提供到因特网或另一网络的多种连接。就此而言,在任何给定的时间点,网络设备可以具有通过不同网络(和/或网络架构)的一种或多种不同的因特网或其它网络的连接。例如,网络设备可以具有一个或多个第三代合作伙伴计划(3GPP)连接以及一个或多个WiFi连接,其可以被用于从一个或多个不同的网络设备访问类似的或不同的因特网内容。另外,网络设备可以在因特网或另一网络上同时接收数据以用于多种应用,并且网络设备的用户可以在表示不再必需(至少暂时)请求的数据的应用之间进行切换。TCP、UDP和其它传输层协议无法优化这种功能。
发明内容
下面给出了一个或多个方面的简要发明内容,以便提供对这些方面的基本理解。本发明内容不是对所有预期方面的泛泛概述,并且其既不是想要确定所有方面的关键元素或重要元素、也不是想要描述任何方面或所有方面的范围。其唯一目的是以简要的形式给出一个或多个方面的一些概念,作为后面所给出的更详细描述的序言。
根据一个或多个实施例及其对应的公开内容,结合在网络通信中提供基于对象的传输协议来描述各个方面。例如,基于对象的传输协议允许一个或多个网络节点之间的任意尺寸的对象的传送。另外,例如,对象可以具有相关联的元数据参数(诸如优先级、发射期限等),其可以用于控制对象的传送。在一个示例中,对象的接收机可以通过利用元数据参数控制由发送方进行的对象的传送。此外,基于对象的传输协议可以管理用于在一组物理连接上将对象传送到一个或多个网络的会话,该会话可以随着时间被修改以提供相对于物理连接的透明性。
根据一个示例,示出了一种在网络通信中提供基于对象的传输层协议的方法,该方法包括:从应用接收一个或多个对象以用于向远程网络节点进行传送,并且从该应用接收针对所述一个或多个对象的元数据。该方法还包括:选择用于将所述一个或多个对象传送到远程网络节点的会话,并且将所述一个或多个对象提供给网络协议层,以用于至少部分地基于在所述元数据中指示的优先级在与所述会话的信道相关的至少一个网络接口上进行发射。
在另一方面,提供了一种用于在网络通信中提供基于对象的传输层的装置,其包括至少一个处理器,该至少一个处理器配置成从应用获得一个或多个对象以用于向远程网络节点进行传送,并且从该应用获得针对所述一个或多个对象的元数据。所述至少一个处理器还配置成:确定用于将所述一个或多个对象传送到远程网络节点的会话,并且将所述一个或多个对象传送到网络协议层,以用于至少部分地基于在所述元数据中指示的优先级在与所述会话的信道相关的至少一个网络接口上进行发射。另外,无线通信装置包括耦合到所述至少一个处理器的存储器。
在另一方面,提供了一种用于在网络通信中提供基于对象的传输层的装置,其包括用于从应用接收一个或多个对象以用于向远程网络节点进行传送的模块,以及用于从该应用接收针对所述一个或多个对象的元数据的模块。该装置还包括:用于将所述一个或多个对象提供给网络协议层,以用于至少部分地基于在所述元数据中指示的优先级在与所选择的会话的信道相关的至少一个网络接口上进行发射的模块。
此外,在另一方面中,提供了一种用于在网络通信中提供基于对象的传输层的计算机程序产品,其包括计算机可读介质,该计算机可读介质包括:用于使得至少一台计算机从应用获得一个或多个对象以用于向远程网络节点进行传送的代码,以及用于使得所述至少一台计算机从该应用获得针对所述一个或多个对象的元数据的代码。所述计算机可读介质还包括:用于使得所述至少一台计算机确定用于将所述一个或多个对象传送到远程网络节点的会话的代码。另外,所述计算机可读介质还包括用于使得所述至少一台计算机将所述一个或多个对象传送到网络协议层,以用于至少部分地基于在所述元数据中指示的优先级在与所述会话的信道相关的至少一个网络接口上进行发射的代码。
此外,在一个方面,提供了一种用于在网络通信中提供基于对象的传输层的装置,其包括:对象接收组件,其用于从应用获得一个或多个对象以用于向远程网络节点进行传送;以及对象属性关联组件,其用于从所述应用接收针对所述一个或多个对象的元数据。所述装置还包括:对象通信组件,其用于将所述一个或多个对象提供给网络协议层,以用于至少部分地基于在所述元数据中指示的针对所述一个或多个对象的优先级在与所选择的会话的信道相关的至少一个网络接口上进行发射。
为了实现前述以及相关的目的,一个或多个方面包括在下文中充分描述并在权利要求中特别指出的特征。下面的描述和附图详细地给出了一个或多个方面的某些说明性特征。然而,这些特征仅指示了可以用于采用的各个方面的原理的各种方式中的若干方式,并且该描述旨在包括所有的这些方面及其等价物。
附图说明
在下文中将结合附图对所公开的方面进行描述,附图被提供用于示出而非要限制所公开的方面,其中,相同的名称表示相同的元件,并且其中:
图1示出了用于有助于在多个层上的节点之间的网络通信的示例性系统。
图2示出了用于对允许任意尺寸的对象的传送的基于对象的示例性传输协议。
图3示出了用于在基于对象的传输协议的一个或多个会话上传送对象的示例性系统。
图4示出了具有经由应用编程接口(API)利用基于对象的传输协议的应用的示例性网络节点。
图5示出了使用基于对象的传输协议的一个或多个功能进行通信的示例性网络节点。
图6示出了用于在基于对象的传输协议上进行通信的示例性系统。
图7示出了有助于在基于对象的传输协议上传送对象的示例性方法。
图8示出了根据发射期限取消对象的发射的示例性方法。
图9示出了用于修改要接收的对象的一个或多个属性的示例性方法。
图10示出了维护会话中的多个信道的示例性方法。
图11示出了对如从多个源接收的对象进行合并的示例性方法。
图12示出了用于请求对与要接收的一个或多个对象相关的属性的修改的示例性方法。
图13示出了用于在基于对象的传输协议上传送对象的示例性系统。
图14示出了根据本文给出的各个方面的无线通信系统。
图15示出了可以结合本文描述的各种系统和方法而使用的示例性计算机设备。
具体实施方式
现在参照附图来描述各个方面。在下面的描述中,出于解释说明的目的,给出了若干具体细节,以便提供对一个或多个方面的彻底理解。然而,显而易见的是,可以不用这些具体的细节来实践这些方面。
如本文进一步描述的,提供基于对象的传输协议以允许网络节点将对象的传送划分优先级、将用于接收对象的最后期限进行关联、对可以在其上发射对象的去往其它网络节点的多个信道进行管理、等等。此外,在一个示例中,基于对象的传输协议另外定义一个或多个会话,每个会话可以对多个信道中的一个或多个信道以及其上的对象的通信进行管理。就此而言,基于对象的传输协议是对其它传输协议的改进,这至少是因为其允许:任意尺寸的对象的发射、与对象相关联的可实施的优先级、为避免发射不再需要的对象而具有对象的发射期限、对于上层而言透明的多个连接的管理(例如,这提供来自多个连接的移动性以及可能改善的数据率)等。
如在本申请中使用的术语“组件”、“模块”、“系统”等旨在包括与计算机相关的实体,诸如但不限于硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于处理器上运行的过程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。通过举例说明的方式,计算设备上运行的应用和该计算设备两者均可以是组件。一个或多个部件可以位于执行中的过程和/或线程内,并且组件可以位于一台计算机上和/或分布于两台或更多台计算机之间。另外,可以从具有存储在其上的各种数据结构的各种计算机可读介质执行这些组件。这些组件可以诸如根据具有一个或多个数据分组的信号通过本地和/或远程过程来传送诸如来自一个组件的数据,该组件通过该信号与本地系统中、分布式系统中的另一组件,和/或跨越诸如因特网等的网络与其它系统进行交互。
此外,本文结合终端描述了各个方面,终端可以是有线终端或无线终端。终端还可以称为系统、设备、用户单元、用户站、移动站、移动台、移动设备、远程站、远程终端、接入终端、用户终端、终端、通信设备、用户代理、用户设备、或用户装置(UE)。无线终端可以是蜂窝电话、卫星电话、无绳电话、会话发起协议(SIP)电话、无线本地环路(WLL)站、个人数字助理(PDA)、具有无线连接能力的手持式设备、计算设备、或连接到无线调制解调器的其它处理设备。此外,本文结合基站描述了各个方面。基站可以用于与无线终端进行通信,并且还可以称为接入点、节点B、演进型节点B(eNB)、或某些其它术语。
此外,术语“或者”意味着包括性的“或者”而不是排他性的“或者”。也就是说,除非另外指定,或者从上下文能清楚得知,否则短语“X使用A或者B”的意思是任何自然的包括性置换。也就是说,短语“X使用A或者B”满足下面任何一个例子:X使用A;X使用B;或者X使用A和B二者。另外,如本申请和所附权利要求中使用的冠词“一”和“一个”通常应当解释成意为“一个或多个”,除非另外指定或从上下文能清楚得知是指单数形式。
本文描述的技术可以用于各种无线通信系统,诸如CDMA、TDMA、FDMA、OFDMA、SC-FDMA以及其它系统。术语“系统”和“网络”通常交互使用。CDMA系统可以实现诸如通用陆地无线接入(UTRA)、cdma2000等之类的无线技术。UTRA包括宽带CDMA(W-CDMA)和CDMA的其它变体。此外,cdma2000涵盖IS-2000、IS-95和IS-856标准。TDMA系统可以实现诸如全球移动通信系统(GSM)之类的无线技术。OFDMA系统可以实现诸如演进型UTRA(E-UTRA)、超移动宽带(UMB)、IEEE802.11(Wi-Fi)、IEEE802.16(WiMAX)、IEEE802.20、等之类的无线技术。UTRA和E-UTRA是通用移动电信系统(UMTS)的一部分。3GPP长期演进(LTE)是使用E-UTRA的UMTS版本,其在下行链路上使用OFDMA而在上行链路上使用SC-FDMA。在来自名为“第三代合作伙伴计划”(3GPP)的组织的文档中描述了UTRA、E-UTRA、UMTS、LTE和GSM。此外,在来自名为“第三代合作伙伴计划2”(3GPP2)的组织的文档中描述了cdma2000和UMB。此外,这些无线通信系统可以附加地包括通常使用不成对的未授权的频谱的点对点(例如,移动台对移动台)自组网络系统、802.xx无线LAN、蓝牙以及任何其它近距离或远距离的无线通信技术。
各个方面或特征将围绕可以包括多个设备、组件、模块等的系统而给出。应当理解和意识到的是,各种系统可以包括附加的设备、组件、模块等,和/或可以不包括结合附图所讨论的所有设备、组件、模块等。还可以使用这些方法的组合。
参照图1,其示出的是有助于使用基于对象的传输协议在网络中的节点之间进行通信的示例性系统100。系统100包括网络节点102和104,网络节点102和104可以分别是网络中的客户端节点和服务器节点。例如,网络节点102和104均可以是移动设备,诸如UE、计算机、和/或基本上能够在有线或无线网络中进行通信的任意节点。此外,在网络节点102和104之间可以有附加的节点(诸如一个或多个路由器、网关、防火墙等)和/或无线网络组件(诸如一个或多个基站、中继节点等)以有助于通信。为了便于说明而未描述这些组件;然而,就此而言,网络节点102和104可以基本上以任意网络技术和/或跨越多种网络技术来进行通信。在一个示例中,网络节点102可以在与网络节点102和104之间的各种组件的不同的物理网络连接上通过3GPP接口和WiFi接口,同时与网络节点104进行通信,以有助于跨越多个网络进行通信。
根据一个示例,网络节点102可以包括应用106,其可以利用一个或多个主机或介质层协议来与网络节点104处的应用112进行通信,并且反之亦然。例如,应用106和112可以是应用程序、服务、对象、微件、或在网络节点102和104处基本上任何可执行的代码。另外,网络节点102和104包括基于对象的传输协议108和114,基于对象的传输协议108和114可以分别在网络层协议110和116上分别传送来自应用106和112的对象。在一个示例中,网络层协议110和116可以利用IP或类似的协议。例如,应用106可以生成对来自网络节点104(例如,来自应用112)的内容的请求。在一个示例中,应用106可以利用应用编程接口(API)或由基于对象的传输协议108提供的类似接口来创建与对内容的请求相关的一个或多个对象。就此而言,例如,应用106可以指定与请求和/或响应数据相关联的元数据,诸如优先级、发射期限、响应属性、关于对象的一个或多个参数等。在这个示例中,基于对象的传输协议108可以将元数据关联到与对内容的请求相关的一个或多个对象。至少部分地基于元数据,基于对象的传输协议108可以选择要在其上将包括对内容的请求的对象发送到网络节点104的一个或多个信道。
如上所述,例如,基于对象的传输协议108可以管理多个会话,每个会话可以包括到给定的终端主机(诸如网络节点104)的一个或多个网络接口上的一个或多个信道。另外,基于对象的传输协议108可以将与对内容的请求相关的对象提供给针对网络节点104的适当的会话。在一个示例中,基于对象的传输协议108可以提供对象(一旦对象被完全地接收),并且可以在不考虑顺序的情况下(例如,如下所述,除非应用112要求进行顺序递送)提供对象。基于对象的传输协议108中针对网络节点102的会话可以根据相关的元数据中的优先级来将对象排序,并且可以利用网络层协议110以用于将对象发送到网络节点104。从而,在一个示例中,网络节点104可以在网络层协议116(例如,在一个或多个分组或由网络层协议110创建的其它网络帧单元中)上从网络节点102接收对象。网络层协议116可以将对象(例如,作为一个或多个分组)提供给基于对象的传输协议114。一旦从网络节点102完全地接收了对象,基于对象的传输协议114便可以重新构建对象(例如,在接收到分组的情况下),并将对象递送给应用112。从而,应用112可以处理对象,并确定对象中的对内容的请求以及与其相关联的元数据。
在一个示例中,应用112可以满足对内容的请求,这可以包括将一个或多个响应对象传送到网络节点102、对一个或多个响应对象进行流式传送等。另外,应用112可以经由基于对象的传输协议114来设置响应对象的优先级、对于一个或多个响应对象而言的任何潜在的响应的发射期限、响应对象的其它元数据(诸如标识符)等(其可以指定在对内容对象的请求的响应属性中)。类似地,在一个示例中,应用112可以使用基于对象的传输协议114来设置一个或多个响应对象的响应属性。如上所述,基于对象的传输协议114可以将一个或多个响应对象提供给一个或多个会话,以用于根据在相关的元数据中指定的优先级或其它参数在一个或多个信道上向网络节点102进行传送。在这个示例中,如所描述地,一个或多个会话可以利用网络层协议116来将一个或多个数据对象(例如,作为一个或多个分组)传送给网络节点102。
另外,例如,基于对象的传输协议114可以在向网络节点102进行发射之前或期间,至少部分地基于针对一个或多个对象的元数据,来确定针对一个或多个对象已达到发射期限。在这个示例中,基于对象的传输协议114可以从相关的会话中移除一个或多个对象、停止发射一个或多个对象等。另外,应用106可以修改与对内容的请求的响应数据相关的一个或多个属性(诸如,优先级)。在这个示例中,基于对象的传输协议108可以经由网络层协议110到网络层协议116向网络节点104传送消息以更新对象属性。如所描述地,网络层协议116可以将消息提供给基于对象的传输协议114,并且基于对象的传输协议114可以适当地修改与对内容的请求的响应数据相关的属性。就此而言,例如,应用106修改针对响应数据的优先级以影响其传输。
此外,例如,如所描述地,基于对象的传输协议108可以通过向网络节点104传送取消消息来取消对象的发射。类似地,基于对象的传输协议114可以通过向网络节点102传送相关的消息来取消对象的接收。另外,如所描述地,基于对象的传输协议114可以至少部分地基于超出相关的发射期限,取消向网络节点102发射对象。此外,在基于对象的传输协议108从网络节点104和另一网络节点接收到具有相同数据的两个对象的情况中,基于对象的传输协议108可以合并对象以加快接收。在另一示例中,由于可以在发射期间将对象存储在基于对象的传输协议114,因此基于对象的传输协议108可以(例如,至少部分地基于从应用106接收的请求)通过向基于对象的传输协议114发出相应的消息来暂停或恢复来自网络节点104的对象或相关会话的发射。此外,基于对象的传输协议108可以指示基于对象的传输协议114暂停来自发射对象的一个或多个会话。
转到图2,其示出了根据本文描述的方面的基于对象的示例性传输协议200。例如,基于对象的传输协议200可以实现在网络节点(例如,客户端节点或服务器节点)中,诸如UE、终端计算机、服务器、或能够在无线网络中进行通信的基本上任何节点。另外,基于对象的传输协议200可以实现成与网络节点内的其它协议(例如,IP协议、或其它网络层协议、应用协议、或其它主机或介质层协议)连接,以如本文所述地提供网络节点之间的对象的传送。基于对象的传输协议200可以包括:对象层202,其操控将与远程网络节点传送的一个或多个对象;会话层204,其建立用于在一个或多个信道上传送对象的一个或多个会话;以及信道层206,其维护与远程网络节点和/或一个或多个附加的远程网络节点的一个或多个信道。
此外,例如,对象层202可以包括:对象编码协议208,其(例如,利用擦除码或其它编码算法)对对象进行编码以用于向远程网络节点进行发射;以及对象控制协议210,其传送与对象相关的元数据,诸如优先级、期限和/或其它参数(例如,标识信息等)。另外,如所描述地,会话层204可以包括:会话控制协议212,其建立、维护以及移除用于将对象发射到远程网络节点的会话、向会话中添加信道/从会话中移除信道等;以及连接控制协议214,其将会话映射到一个或多个信道。此外,信道层206可以包括:分组构建协议216,其将经编码的对象封装到网络层分组中以用于在一个或多个信道上进行发射;以及拥塞控制协议218,其提供一个或多个信道中的每个信道上的拥塞控制以改善其吞吐量。
根据一个示例,应用层或其它上部的主机层可以利用基于对象的传输协议200来将对象传送到远程网络节点(例如,通过由基于对象的传输协议200提供的API等)。如所描述地,例如,基于对象的传输协议200可以允许应用层或其它上部的主机层执行如下操作中至少之一:将用于传送到远程网络节点的对象和/或正从远程网络节点传送的响应对象划分优先级,关联和实施用于传送去往/来自远程网络节点的对象的期限等等。因而,对象层202可以维护每个对象的状态以有助于:实施优先级、存储部分接收到的对象直到接收到对象的剩余部分为止等等。在这个示例中,基于对象的传输协议200可以接收(例如,来自应用的)对象,而对象编码协议208可以使用一个或多个编码算法(诸如擦除码或其它码)来编码对象,以增加传送对象的可靠性,从而生成针对对象的一个或多个前向纠错(FEC)符号。
另外,对象控制协议210可以将元数据(诸如优先级、发射期限、对象标签或标识符等)与对象相关联,其中元数据可以通过下列方式中的至少一种方式获得:从应用层或其它上部的主机层接收(例如,通过API)、由经编码的对象的接收机指定或与经编码的对象的接收机协商而定等等。另外,例如,对象层202可以根据FEC符号来创建对象编码协议数据单元(PDU),FEC符号可以包括与对象层202相关的一个或多个头部。此外,例如,对象层202可以向会话层204提供对象编码PDU(和/或与对应的对象相关的元数据)以用于进行经优先级划分的发射。
在这个示例中,如所描述地,会话层204可以建立并维护与远程网络节点的会话。会话可以包括一个或多个网络接口上的一个或多个信道,用于将网络层分组传送到远程网络节点。另外,可以(例如,通过对象层202)将来自多个应用的对象编码PDU提供给会话,以用于向远程网络节点进行传送。另外,会话层204可以从给定的会话添加和移除信道,这些信道中每个信道均可以对应于到远程网络节点的接口上的连接。在另一示例中,会话层204可以建立并维护与远程网络节点的安全性关联,其使得能够在添加到远程网络节点的一个或多个信道的同时验证远程网络节点针对会话中的至少另一信道而言是相同的。在这个示例中,会话层204可以在建立与远程网络节点的附加信道时包括安全性关联,并且远程网络节点可以在确定是否允许建立信道时验证安全性关联。
从而,会话控制协议212可以例如建立、维护和移除会话,向会话添加信道或从会话中移除信道等等。连接控制协议214可以使用连接到一个或多个主机的一个或多个网络接口来建立和移除与一个或多个远程网络节点的信道。在上面的示例中,会话层204可以将一个或多个对象编码PDU关联到通过会话控制协议212与远程网络节点建立的会话。例如,这可以至少部分地基于用对象编码PDU(例如,在元数据中、在与经编码的对象相关联的头部中、或以其它方式)指定的、与远程网络节点相关联的标识符。例如,对于给定的会话,会话控制协议212可以根据优先级、发射期限、和/或与对象编码PDU相关联的元数据中的其它属性,对会话中的对象编码PDU进行排序。
会话控制协议212可以在通过连接控制协议214在关联到会话的一个或多个信道上发射一个或多个对象编码PDU。就此而言,例如,会话控制协议212可以在维护会话的同时使用连接控制协议214修改会话的信道,以维护会话的透明性。从而,可以在到远程网络节点的通信路径中修改一个或多个主机,并且会话控制协议212可以在不向应用(例如,或者甚至向对象层202)显露这种修改的情况下,参照这种修改来更新会话的一个或多个信道。在一个示例中,这可以允许相关的网络节点的移动性。
此外,在这个示例中,信道层206可以管理一个或多个网络接口上的与远程网络节点的一个或多个信道。信道层206可以操控针对一个或多个信道的拥塞控制、分组构建、网络地址转换(NAT)以及防火墙穿越和/或等等。例如,分组构建协议216可以将一个或多个对象编码PDU转换成一个或多个分组(例如,和/或PDU),以用于在信道上进行发射(例如,使用一个或多个网络层协议)。拥塞控制协议218可以根据拥塞控制过程来确定信道是否能够操控对一个或多个分组中的至少一部分进行发射。例如,拥塞控制可以指信道对相关的接口上的通信流进行控制以便不使接口超负荷的能力,并且拥塞控制过程可以在相关的信道上提供这种功能。然后,信道层206可以将一个或多个分组提供给网络层协议,以用于向远程网络节点进行发射。在一个示例中,信道层206可以利用传输控制协议(TCP)来完成分组构建、拥塞控制等。
类似地,例如,信道层206可以在网络接口上从远程网络节点(例如,响应于对其发送的对象)接收一个或多个分组。分组构建协议216可以(例如,使用与针对所发射的分组类似的构建方法)将一个或多个分组转换成一个或多个对象编码PDU,并且将对象编码PDU提供给与网络接口和远程网络节点相关的信道上的会话层204。连接控制协议214可以获得对象编码PDU,并且会话控制协议212可以(例如,基于在其上接收到分组的信道)将对象编码PDU与会话相关联。会话层204可以将对象编码PDU传送给对象层202。对象编码协议208可以根据例如所使用的编码方式来解码对象编码PDU,并且可以将经解码的对象提供给相关的应用层(例如,与会话相关的应用)。前述方案允许相比于当前传输协议的各种优势。例如,对应用层提供了在构建数据方面的某些控制。如所描述地,例如,对将在基于对象的传输协议200上发射的对象的创建允许应用层:创建任意尺寸的对象(例如,尺寸不同的对象),进一步指定用于传送对象的参数(诸如优先级和期满定时器等)。
参照图3,其示出了示例性通信系统300,其有助于提供用于在网络上传送对象的基于对象的传输协议306。系统300包括在有线或无线网络中彼此进行通信的网络节点302和304。虽然未示出,但网络节点302和304可以通过一个或多个附加的网络节点(诸如一个或多个网关、路由器、基站、其它设备和/或等等)进行通信。此外,网络节点302和304均可以是基本上任何网络节点或端点,诸如UE、计算机、服务器等。网络节点302可以包括如本文所描述的基于对象的传输协议306,以用于与网络节点304(其也可以具有基于对象的传输协议(未示出))进行通信。
例如,基于对象的传输协议306可以包括多个会话308、310、和312,会话308、310、和312利用网络节点302的一个或多个网络接口314和316来与网络节点304进行通信。如所描述地,例如,基于对象的传输协议306可以建立会话1 308,以用于与网络节点304进行通信。另外,基于对象的传输协议306可以建立会话2 310和会话3 312,以用于在网络接口314和316中的一个或多个网络接口上与其它网络节点(未示出)进行通信。此外,如图所示,会话1 308和会话2 310可以分别利用信道318和320上的接口1 314和接口2 316,以用于与网络节点进行通信,而会话3 312具有到接口2 316而不是接口1 314的信道。应意识到的是,在一个示例中,可以进行完整的网络构建,以使得所有会话可以具有所有接口上的信道。另外,会话308、310和312中的每个会话可以根据在针对会话中的对象的元数据中指示的优先级将对象排序。
另外,接口1 314和接口2 316可以是基本上任何网络接口,诸如3GPP接口、WiFi接口、WiMAX接口、LTE接口、局域网(LAN)接口和/或等等。如所描述地,例如,基于对象的传输协议306可以从应用接收一个或多个对象,以用于在一个或多个会话308、310、或312上进行发射。例如,应用可以识别网络节点304以接收对象,并且基于对象的传输协议306可以至少部分地基于将网络节点304识别成与会话1 308相关联来将对象与会话1 308相关联。从而,基于对象的传输协议306可以将对象置于会话1 308中以用于进行发射(例如,如所描述地,在对对象进行编码、将元数据与对象相关联等等之后)。
基于对象的传输协议306可以根据确定接口1 314和/或接口2 316处的接口发送时机(interface sending opportunity)来发射对象。例如,接口1 314和接口2 316可以具有针对输出分组的队列,其可以被管理以确保接口不会超负荷。从而,当接口1 314和/或接口2 316在其缓冲器中有空间用于数据的最大传输单元(MTU)时,接口具有发送时机。如所描述地,每个信道(诸如信道318和320)可以维护拥塞控制。因而,当在与信道相关的接口(例如,用于信道318的接口1 314或用于信道320的接口2 316)处出现接口发送时机时,每个信道可以根据其拥塞控制过程来确定其是否可以发送数据。至少部分地基于这种信息,会话308、310、和312的子集可以被确定为有资格进行发送。例如,在一个示例中,如果接口1 314具有接口发送时机,则可以将会话1 308和会话2 310识别为有资格进行发送。
另外,然而,基于对象的传输协议306可以将一个或多个会话置于挂起(on hold)。例如,这可以在网络节点304想要另一网络节点的另一会话的情况下由网络304来发起。例如,虽然网络节点302可以向网络节点304提供流式数据,但是网络节点304可以从这种流式应用切换到另一网络节点的另一应用。在这种情况下,网络节点304可能希望将会话1 308挂起,以便在至少一段时间内不从其接收数据。在这个示例中,基于对象的传输协议306可以在确定会话是否有资格进行发送时考虑会话的状态。因而,在上面的示例中,当会话1 308被指示为处于挂起状态中时,基于对象的传输协议306可以确定会话2 310为有资格进行发送。
在这个示例中,一旦基于对象的传输协议306识别出有资格进行发送的会话的子集(例如,这个示例中的会话1 308和会话2 310),则根据与对象相关的元数据的在那些有资格的会话(例如,这些会话的发射期限尚未超出)当中具有优先权最高的对象的会话可以利用接口发送时机。就此而言,例如,可以识别唯一的对象、会话和接口组合,并且可以通过接口来发送针对对象的数据。在两个或更多个有资格的会话具有具备相同或相似优先级的对象的情况下,例如,可以对附加的信息进行分析以确定哪个会话可以利用接口发送时机(例如,无法使用接口发送时机的上一次会话、具有次早的上一次发射时间的会话等)。
另外,例如,在被选择以在接口发送时机上进行发射的对象的尺寸小于在针对接口发送时机的接口处的可用的MTU的情况下,从其中选择对象的会话(例如,会话1 308)可以在接口发送时机中发射一个或多个附加的对象中的一部分。在另一示例中,具有相比一个或多个附加对象而言优先级高的不同的对象的另一会话(诸如会话310)可以在接口发送时机期间发射不同的对象。在一个示例中,在本文中对于发送或发射对象的任何引用可以包括前述过程:在给定的接口发送时机期间确定会话是有资格的,并且从一个或多个这种会话中选择优先级最高的对象。
在一个示例中,如所描述地,基于对象的传输协议306可以向会话1 308提供发送时机或要进行发射的指令。在这个示例中,基于对象的传输协议306可以包括用于在相关的接口(例如,接口1 314)上进行发射所允许的尺寸、针对相关的信道(例如,信道318)的估计往返时间等。在一个示例中,会话1 308可以拒绝发送时机,在这种情况下,基于对象的传输协议306可以将发送时机提供给具有优先级次高的对象的会话(诸如会话2310)。在另一示例中,会话1 308和会话2 310可以拒绝发送时机。在这个例子中,会话1 308和/或会话2 310可以在需要向网络节点304发射数据时(例如,在基于对象的传输协议306向会话1 308或会话2 310提供附加的对象的情况下、在基于对象的传输协议306指示恢复(例如,在网络节点304的请求下)先前被置于挂起的会话的情况下等),请求基于对象的传输协议306中的发送时机。
另外,如所描述地,网络节点304可以包括基于对象的传输协议,该基于对象的传输协议实现到一个或多个接口的一个或多个会话和/或信道,以用于与网络节点302进行通信。在这个示例中,网络节点304可以通过利用与接口1 314或接口2 316的连接来向网络节点302发射响应对象,接口1 314或接口2 316因此可以将响应对象转发给会话1 308。另外,如本文在上面和进一步描述的,基于对象的传输协议306可以控制来自网络节点304的响应对象的传送的一个或多个方面(例如,使用相应的请求中的响应数据参数、向网络节点发送与修改针对响应对象的参数有关的命令等)。
在一个示例中,如本文所描述地,重新参照图1,网络节点102和104可以称为端点、对象传输(OT)服务接入点(SAP)等。例如,对象传输服务接入点是在其上应用对对象传输服务进行访问的逻辑点。例如,可以有多种类型的OT服务接入点。无连接的OT SAP向任意的远程的无连接的OT SAP发送对象并从任意的远程的无连接的OT SAP接收对象。面向连接的OT SAP向特定的远程的面向连接的OT SAP发送对象并从特定的远程的面向连接的OT SAP接收对象。这种类型的SAP还可以用于从远程的面向连接的OT SAP接收针对建立新的本地的面向连接的OT SAP的请求。多播OT SAP向IP多播组发送对象并从IP多播组接收对象。
此外,在特定的示例性实现方案中,OT端点指向潜在的OT服务接入点并由(主机标识、OT端口)对来标识,其中,主机标识是终端主机的标识符(例如,根据主机标识协议(HIP)的主机标识),而OT端口是主机内的OT端点的标识符。例如,HIP可以是在IP网络中用以在端点标识符和定位符之间进行区分的主机识别技术。OT定位符可以是OT主机的网络层地址(例如,IP地址)。OT定位符可以用于发起与OT端点的通信。例如,面向连接的SAP的目的是向应用(诸如应用106和/或112)提供上下文,在该上下文中可以对相关的对象进行操控。这可以在由基于对象的传输协议108和/或114要求安全性时是有用的,这是由于安全性关联可以在套接字等级上创建并应用到通过那个连接而交换的对象。例如,可以利用套接字在网络节点之间进行通信,其中套接字可以是TCP套接字。在这个示例中可以提供两种连接建立模式:正常模式,在该模式下在请求之后立即建立连接;以及惰性模式,在该模式下将连接建立延迟直到要发送数据为止。这允许数据交换和连接建立同时进行,并且可以避免在可以传送数据之前的连接建立延迟。
此外,例如,可以将如之前所描述的对象属性(例如,优先级、发射期限等)按如下在一个具体的示例性实现方案中来定义。
优先级:对象优先级是对对象传输层的关于对象的相对优先级的提示。可以在将用于会话的资源分配给优先级较低的对象之前分配给优先级较高的对象。在下表中定义了优先级级别:
期限:其为时间期限,对象在该时间期限之后对接收机而言将不再有用。在这个时间之后将不再做进一步的尝试来递送对象。本文中该期限还可以称为发射期限。
响应属性:其为对象的发送方想要对象的接收机使用以用于返回任何响应的一组属性。其允许发送方表达与应当将何种优先级用于该响应以及是否有该响应在其后将不再有用的期限有关的意见。
另外,在一个示例性实现方案中,为了协助应用在对象的完全接收之前识别对象,图1中的基于对象的传输协议108和114以及图3中的基于对象的传输协议306可以允许应用将对象标签关联到每个对象。对象标签是与对象一起传送的不透明的数据字段。传送中的对象的对象标签可以被接收机立即用于将对象识别为开始到达的对象。
此外,例如,图1中的基于对象的传输协议108和114以及图3中的基于对象的传输协议306可以提供在对象等级上运行的基本的发送和接收操作以及提供取消对象的发送或接收。对象发送可以是异步的,而接收可以是同步的或异步的。在异步的情况下,提供事件通知机制以通知用户下列事件:新的对象开始到达;新的对象已被完全接收;对象已被成功递送;对象的传送已被发送方取消;对象的期限在对象被接收之前已期满;和/或对象由于接收机处的存储不足而被中止。
重新参照图2,以下是针对基于对象的传输协议200的一个具体的实现方案。如所描述地,多个网络节点均可以包括基于对象的传输协议,并且可以使用基于对象的传输协议彼此进行通信。在下面的描述中,发送方可以是使用基于对象的传输协议将对象发送到接收机(另一网络节点)的网络节点。
在一个示例中,可以根据以下方面来实现对象编码协议208。例如,如上所述,对象编码PDU可以包括可能用于多个对象的对象信息和反馈信息两者。可以在对象块中携带对象信息,在对象编码PDU的反馈块中携带反馈信息。另外,对象编码协议208可以通过由每个网络节点分配的无符号整数对象标识符来标识对象,可以在对象元数据中传送无符号整数对象标识符。例如,当在网络节点之间开始进行对象发送时,发送方包括其已分配的本地对象标识符。一旦发送方与接收机交换了对象控制协议210消息,则发送方可访问接收机的对象标识符,然后可以将对象标识符在对象数据分组中使用。使用接收机的对象标识符可以简化接收机处的对象查找。诸如对象标签、属性、FEC对象发射信息(例如,对象尺寸)以及与对象标识符的关联性之类的对象信息可以由对象控制协议210传送到接收机处的基于对象的传输协议。在一个示例中,有可能的是可以在接收到对象信息之前在接收机处开始进行对象接收。
另外,对象控制协议210可以允许在发送方和接收机之间传送反馈。反馈将与在接收机处的对象的接收的进展有关的信息提供给发送方。信息可以用于确定针对对象应当何时发送附加数据以及发送多少附加数据。例如,对于较小的对象,可以期望的是可以在从对象控制协议210接收到对象信息之前发送反馈。出于这个原因,可以在具有一个或多个对象编码PDU的对象块中对符号尺寸进行编码,以使得可以在接收FEC对象发射信息之前对接收到的符号进行计数。然后,可以在反馈中报告该计数。例如,对于较大的对象,可以在对象的接收接近完成时发送反馈。出于这个原因,一旦接收到FEC对象发射信息(并且已知了对象尺寸),便可以报告所请求的符号的剩余数目。
根据一个示例,可以按如下所示来定义对象编码PDU格式。为了支持应用层构建,定义了两种消息格式:ObjectCodingHeader(对象编码头部)和ObjectCodingBody(对象编码体)。对象编码PDU可以包括ObjectCodingHeader消息,后跟有0个或多个ObjectCodingBody消息。
对于要发送的每个对象,发送方处的对象控制协议210可以维护对未决符号的计数,以表示针对对象仍要发送的符号的数目Nsend以及针对对象上一次发送数据的时间Tsend。(例如,如上所述,通过会话层204)将要发送的对象以优先级次序存储在会话中。可以将优先权同等的对象以针对对象的上一次发射时间的倒序(例如,从最近发送的对象开始)进行存储。对于被接收的每个对象,接收机处的对象控制协议210可以维护对接收到的符号的数目Nrecv、上一次接收数据的时间Trecv、针对对象上一次发送反馈的时间Tfeedback、在上一次反馈中指示的所需要的符号的数目等的计数。
例如,当提供新的对象以用于由应用进行发射时,对象控制协议210可以根据其优先级将对象插入到对象排序中。在被通知给针对会话的发送时机时,对象编码协议208可以首先识别是否应当发送反馈,这可以至少部分地基于下列判定中的一个或多个判定:已完成所述对象,并且尚未发送指示完成情况的反馈或者已经发送针对往返时间的反馈,并且在上一次往返时间中已接收到针对对象的数据;未完成对象,并且自上一次发送反馈以来已过了往返时间;或者未完成对象,自上一次发送反馈以来已接收到针对优先级较低的对象的数据,并且在往返时间中尚未通过该规则触发反馈。在针对对象将包括反馈的情况下,可以将针对对象的剩余符号的数目(如果已知的话)包括在对象编码PDU中。在针对对象的剩余符号的数目未知的情况下,因为尚未接收到FEC对象发射信息,则可以包括接收到的符号的数目。
然后,在Nsend!=0的情况下,发送方识别要发送的第一对象,并将多个符号添加到对象编码PDU,这多个符号的数量等于Nsend和要在对象编码PDU中填放的符号的最大数目中的较小者。Nsend可以被缩减包括在PDU中的符号的数目。如果对象编码PDU中仍有空间,则在Nsend>0的情况下可以针对下一对象重复所述过程。对于Nsend=0的每个对象,发送方可以维护从针对对象发送上一符号的时间(Tsend)开始的定时器。如果定时器期满,则可以增加针对对象的未决符号的数目。
在接收到对象编码PDU之后,接收机首先根据对象编码PDU的反馈块处理反馈消息(如果有的话)。对于每个反馈消息,接收机可以基于所接收的反馈信息来更新针对对象的Nsend值。然后,接收机处理对象块或对象编码PDU。对于每个条目,接收机可以基于对象标识符来识别对象。如果对象标识符未知,则可以创建新的对象。接收机(例如,在存储器或数据存储中)存储与对象相关联的接收符号,并且识别是否已接收到足够的信息来恢复对象。
此外,例如,对象控制协议210可以向远程网络节点的不同的对象控制协议发送或从远程网络节点的不同的对象控制协议接收关于一个或多个对象的元数据,以控制一个或多个对象的递送。例如,对象元数据可以包括:对象ID、对象标签、FEC对象传输信息(例如,包括对象尺寸)、对象属性等。例如,如之前所描述地,对象ID可以是根据无符号整数的对象本地标识,对象标签可以是由发送方生成的标识符,FEC对象发射信息可以包括关于接收与对象编码PDU相关的FEC的细节,以及对象属性可以包括优先级、发射期限等。例如,对象控制协议210可以具有一种消息类型,该消息类型建议与对象相关联的一些或所有数据项的值。例如,当接收的消息中的值匹配上一次建议的值时,可以停止消息交换,否则消息交换可以继续进行,直到发送方和接收方就数据值达成一致为止。
另外,例如,消息可以是幂等型的,这意味着:相同消息的重复接收可以具有与该消息被接收一次相比相同或类似的效果。此外,消息可以是原子型的,使得对在消息中建议的所有状态变化进行制定或不对在消息中建议的任何状态变化进行制定。此外,每个消息可以针对单个对象。这种实例可以通过本地和远程对象ID来标识。在针对给定的实例发送的第一消息中不提供远程对象ID(该消息在远程对等方处建立状态实例)。另外,消息可以携带序列号,并且将不按次序的消息静默地丢弃。针对每个对象实例有单独的序列号空间。每个网络节点可以保留发送的包含当前期望的状态的最早的消息的序列号。此外,只要期望的状态尚未由网络节点确认时,都可以发送重复的消息。同样,为了识别竞争条件,可以在发送的每个消息中回发从远程对等方接收的最高序列号。为了解决竞争条件,将一个节点指定为具有主令牌。
在一个示例中,可以按下列方式实现对象控制PDU:
可以在RaptorG或类似的技术规范中定义FecObjectTransmissionInformation消息的元素。
将对象属性定义如下:
priority是下列值中的一个:URGENT、EXPEDITE、STANDARD、BACKGROUND。
deadline是非负整数,其给出从对象的第一个分组的发送/接收开始以毫秒计数的针对对象接收的期限。
将ObjectControl消息的字段定义如下:
local_object_identifier是非负整数,其识别由消息的发送方分配的对象。其可以被包括在由端点发送的所有消息中,直到端点从对等方接收到包含用于回发对象标识符值的remote_object_identifier字段的消息为止。
remote_object_identifier是非负整数,其识别由消息的接收机分配的对象。其可以被包括在继接收到来自远程对等方的任何消息之后发送的所有消息中。
local_sequence是由消息的发送方分配的针对消息的序列号。针对给定的对象发送的第一消息的local_sequence为0,第二消息的local_sequence为1,等等。
remote_sequence包含从对等方节点接收的最高的local_sequence号,或者未从对等方接收到消息时被忽略。
otport包含针对在无连接套接字上发送的对象的对象所指向的OT端口号。其可以被包括在不包括remote_object_identifier的所有的消息中。
local_connection_identifier包含针对新的连接的本地标识符。
remote_connection_identifier包含由远程端点为连接分配的连接标识符。
object_sequence_number包含从0开始的序列号,以用于针对采用顺序递送的连接的对象。
fec_oti包含如针对RaptorG所定义的FEC对象发射信息,除了源块的数目可能无法以信号方式发送并且可以被假定为1。其可以被包括在不包括remote_object_identifier的所有消息中。
object_tag包含由发送应用所提供的对象标签。
properties包含所建议的对象属性值。
对于每个对象,对象控制协议210可以维护以下的状态信息:
在一个示例中,对象控制协议210操作的一般原则可以是任一对等方可以在任何时间建议一组新的对象属性。例如,接收到新的建议的对等方可以回复确认该建议,或者用相反的建议进行回复。消息交换可以继续进行直到对等方就一组属性达成一致为止。
在创建新的对象时,可以按下面所示出地初始化对象状态信息:
对象状态元素 | 初始值 |
本地对象标识符 | <针对对象的新的唯一本地标识符> |
远程对象标识符 | 空 |
当前属性 | 空 |
确认标签 | 假 |
期望的属性 | 初始的对象属性 |
建议的发送时间 | 空 |
上一本地序列号 | 空 |
上一远程序列号 | 空 |
当在发送方或接收机处的属性发生本地变化时,可以将期望的属性设置成新的属性值,并且可以将建议的发送时间设为空。在发送时机,如果满足下列条件中的至少一个条件,则可以将用于改变属性的消息发送给远程网络节点:期望的属性不为空,并且建议的发送时间为空或者当前时间大于建议的发送时间加往返时间的两倍;或者确认标签为真。如果要发送消息,则可以通过对象控制协议210按如下对消息的字段进行设置:
·可以将本地对象标识符字段设为本地对象标识符值。
·可以将远程对象标识符字段设为远程对象标识符值,或者如果该值为空则将远程对象标识符字段忽略。
·如果上一本地序列号为空则可以将其设为0。否则可以将上一本地序列号增加1。
·可以将本地序列号字段设为上一本地序列号。
·可以将远程序列号字段设为上一远程序列号值,或者如果该值为空则可以将远程序列号字段忽略。
·如果上一远程序列号为空,则可以接着进行下列过程:
ο可以将fec_oti字段设为FEC对象发射信息,
οobject_tag字段可以包含由发送应用提供的对象标签,
ο对于无连接套接字,可以将otport字段设为针对对象的目的地OT端口,
ο对于面向连接的套接字,如果远程连接标识符是已知的,则可以包括remote_connection_identifier字段,否则可以包括local_connection_identifier字段,
ο对于采用顺序递送的面向连接的套接字,可以包括object_sequence_number。
·如果期望的属性值不为空,则可以将属性字段设为期望的属性值,否则设为当前属性值。
当接收到对象控制协议210消息时,接收机可以首先识别目标对象。如果消息包含远程对象标识符字段,则其可以被用于直接查找对象。如果不存在具有这种标识符的对象,则可以静默地丢弃消息。否则,可以如所描述地对消息进行处理。如果消息不包含远程对象标识符,则节点可以对具有与消息的本地对象标识符字段等同的远程对象标识符值的任何对象进行搜索。如果找到这种对象,则可以如所描述地对消息进行处理。如果未找到这种对象,则可以利用按如下初始化的状态值创建新的对象:
如果所接收的消息的本地序列号字段小于或等于上一远程序列号值,则可以静默地丢弃消息。否则可以将上一远程序列号设为等于本地序列号字段。如果所接收的消息的远程序列号字段小于上一本地序列号值,并且其为发送节点,则可以静默地丢弃消息。此外,如果期望的属性不为空,并且消息的属性字段匹配期望的属性值,则可以将当前属性设为期望的属性值,可以将期望的属性设为空并且应将确认标签设为真。否则,节点可以确定所建议的属性是否是可接受的。如果是可接受的,则可以将当前属性设为属性字段,可以将期望的属性设为空并且可以将确认标签设为真。如果所建议的属性不是可接受的,则节点可以确定可接受的最接近的属性值。可以将期望的属性设为这种值并且应当将建议的发送时间设为空。
此外,例如,在一个示例中,可以根据以下方面来实现会话控制协议212。可以通过主机标识协议基本交换来完成会话建立。作为这种交换的结果,建立了会话的两个网络节点的主机标识并且生成了密钥资料。会话的初始建立隐式地验证在其上进行会话建立的信道。可以使用主机标识协议更新过程将新的信道添加到会话或从会话中移除新的信道。
另外,例如,可以与对象控制协议210类似地实现连接控制协议214,并且在一个示例中,对象控制协议210可以实现为包括连接建立和管理以代替连接控制协议214。在一个示例中,连接控制协议214可以附加地或可替代地包括以下方面。
可以按如下定义连接控制PDU:
此外,可以按如下定义ConnectionControl消息的字段:
local_connection_identifier是非负整数,其识别由消息的发送方分配的连接。其可以被包括在由端点发送的所有消息中,直到该端点从对等方接收到包含用于回发连接标识符值的remote_connection_identifier字段的消息。
remote_connection_identifier是非负整数,其识别由消息的接收机分配的连接。其可以被包括在继接收到来自远程对等方的任何消息之后发送的所有消息中。
local_sequence是由消息的发送方分配的针对消息的序列号。针对给定的对象而发送的第一消息具有的local_sequence为0,第二消息具有的local_sequence为1,等等。
remote_sequence包含从对等方节点接收的highest_sequence号,或者如果未从对等方接收到消息则被忽略。
otport包含连接所指向的OT端口号。其可以被包括在不包括remote_connection_identifier的所有的消息中。
in_order_delivery指示连接是否提供对象的有序递送。
对于每个对象,例如,连接控制协议214可以维护以下状态信息:
连接控制协议214操作的一般原则可以是任一网络节点中可以在任何时间建议新的连接状态。接收到新的建议的网络节点可以回复确认该建议,或者用相反的建议进行回复。消息交换继续进行直到网络节点就新的状态达成一致,就如采用对象控制协议210的属性消息交换一样。
当在发起端点处创建新的连接时,可以如下面所示出地初始化连接状态信息:
连接状态元素 | 初始值 |
本地连接标识符 | <针对连接的新的唯一本地标识符> |
远程连接标识符 | 空 |
当前状态 | NEW |
确认标签 | 假 |
期望的状态 | OPEN |
建议的发送时间 | 空 |
上一本地序列号 | 空 |
上一远程序列号 | 空 |
在状态发生本地变化时(例如,连接关闭),可以将期望的状态设为新的状态,并且可以将建议的发送时间设为空。在发送时机,如果满足至少一个下列条件,则可以由网络节点向另一网络节点发送消息:期望的状态不为空,并且建议的发送时间为空或者当前时间大于建议的发送时间加往返时间的两倍;或者确认标签为真。如果要发送消息,则可以按如下对消息的字段进行设置:
·可以将本地连接标识符字段设为本地连接标识符值。
·可以将远程连接标识符字段设为远程连接标识符值,或者如果该值为空则将远程连接标识符字段忽略。
·如果上一本地序列号为空则可以将其设为0。否则可以将上一本地序列号增加1。
·可以将本地序列号字段设为上一本地序列号。
·可以将远程序列号字段设为上一远程序列号值,或者如果该值为空则可以将远程序列号字段忽略。
·如果上一远程序列号为空,则可以接着进行下列过程
о可以将otport字段设为针对连接的目的地OT端口
о当且仅当连接要求顺序递送时,可以将in_order_delivery设为真。
·如果期望的状态值不为空,则可以将状态字段设为期望的状态值,否则设为当前状态值。
在接收到连接控制消息时,接收机网络节点可以首先识别目标连接。如果消息包含远程连接标识符字段,则其可以被用于直接查找连接。如果具有这种标识符的连接不存在,则可以静默地丢弃消息。否则,可以对消息进行处理。如果消息不包含远程连接标识符,则节点可以针对具有与消息的本地连接标识符字段等同的远程连接标识符值的任何连接进行搜索。如果找到这种连接,则可以对消息进行处理。如果未找到这种连接,则可以利用按如下初始化的状态值创建新的连接:
如果所接收的消息的本地序列号字段小于或等于上一远程序列号值,则可以静默地丢弃消息。否则可以将上一远程序列号设为等于本地序列号字段。如果所接收的消息的远程序列号字段小于上一本地序列号值,并且此网络节点不是针对连接的发起网络节点,则可以静默地丢弃消息。如果期望的状态不为空,并且消息的状态字段匹配期望的状态值,则可以将当前状态设为期望的状态值,可以将期望的状态设为空并且可以将确认标签设为真。否则,网络节点可以确定所建议的状态是否是可接受的。CLOSED或REJECTED的状态总是可以网络节点接受。如果可以接受,则可以将当前状态设为该状态字段,可以将期望的状态设为空并且可以将确认标签设为真。如果所建议的状态是不可接受的,则节点可以指定可接受的状态值(诸如REJECTED),以响应对OPEN状态的请求。可以将期望的状态设为这种值,并且可以将建议的发送时间设为空。
此外,根据一个示例,分组构建协议216可以实现为在用于网络节点之间进行发射的分组中包括其它层的多个PDU(例如,对象编码PDU、对象控制PDU、连接控制PDU等)。另外,分组构建协议216可以将一个或多个头部(诸如主机标识协议头部)添加到分组中。就此而言,远程网络节点处的分组构建协议216可以至少部分地基于分组构建来确定各种PDU,并且远程节点处的对象编码协议208、对象控制协议210、连接控制协议214等可以用于处理这些PDU。
转到图4,其描述了有助于利用基于对象的传输协议来与一个或多个网络节点进行通信的示例性网络节点400。如所描述地,网络节点400可以是在网络中进行通信的基本上任何节点,诸如设备、UE、计算机、服务器、本文所提到的任何节点或网络节点等。如所描述地,网络节点400可以包括应用402,其执行并与在不同的网络节点处执行的应用进行通信。此外,网络节点400可以包括API404和对应的基于对象的传输协议406。例如,API404可以有助于通过应用402访问基于对象的传输协议406。
根据一个示例,API404可以允许应用402(或一个或多个不同的应用):创建用于在网络上进行发射的一个或多个任意尺寸的对象、指定这些对象的属性、控制对这些对象进行传送的方面等。另外,API404可以允许应用402指定用于(例如,使用套接字)连接到网络上的远程网络节点的参数等。因而,应用402可以实现对API404的函数调用,以利用基于对象的传输协议406将应用层对象传送到远程网络节点。
在一个示例中,API404可以具有与以下方面相对应的实现方式。API404可以包括多个API,这些API包括用于指定远程网络节点(本文中还称为端点)、对象的属性等的数据结构API、用于管理与远程网络节点的连接的套接字API以及有助于管理对对象的传送的对象API。在一个示例中,API404可以基于套接字抽象,其中套接字对应于在上面的示例中描述的对象传输服务接入点。在创建之后,可以使用调用ot_bind()API将套接字绑定到本地OT端口。在如所描述的无连接套接字的情况下,套接字可以用于将对象发送到任意的远程OT端点,或者用于从任意的无连接OT SAP接收对象。
例如,可以通过发出调用connect()API以指定远程OT端点,来将面向连接的套接字连接到远程OT SAP。可以通过提供OT主机标识、OT定位符或其两者来指定OT端点。如所描述地,可以提供正常连接模式和惰性连接模式。默认地,面向连接的套接字不提供对象的有序递送。然而,可以提供套接字选项以使得能够进行有序递送。另外,函数listen()和accept()可以被提供以接受面向连接的套接字上的新的连接。
可以通过套接字描述符在API404上标识套接字。在下面示出了通过函数ot_poll()提供对用于网络节点400的操作系统函数poll()的模拟,ot_poll()可以用于异步编程。ot_poll()可以具备pollfd数组和另外新的otpollfd数组,pollfd数组用于检测操作系统描述符上的事件,以及另外新的otpollfd数组用于检测网络节点400处的对象传输套接字描述符上的事件。可以通过对象描述符在API404上标识对象。
在一个示例性实现方式中,下表可以描述在API404中使用的数据类型:
在一个示例性实现方式中,下表可以描述API404中使用的一些常量:
由OT管理的若干数据对象涉及使用OTHandle数据类型。通过函数调用来完成对基础对象中的数据的访问;OTHandle结构本身对应用是不透明的。可以对由OT(包括OTEndpoint、OTHostIdentity、OTLocator、OTObject、OTProperties)来管理的数据对象进行引用计数。可以在OTHandle对象上使用函数ot_retain()和ot_release()来对引用计数进行增加和减少。返回具有这些类型的对象的函数返回具有分配给应用的单个引用的对象,并且因此,应用可以在这些对象上调用ot_release()以确保资源的正确释放。另外,OTHandle可以为空,在这种情况下,其不涉及任何对象。可以使用函数ot_is_null()来测试这种情况。函数ot_null_handle()返回空的OTHandle,其可以用于初始化OTHandle数据类型。
在一个示例中,可以根据以下方面来实现API404的数据结构API。OTEndpoint对象可以通过(主机标识,OT端口)对、或者通过(OT定位符,OT端口)对、或者两者来识别OT端点。当发起OT通信时,可以提供初始OT定位符。在通信的建立期间,可以在所提供的OT定位符处发现端点的主机标识。主机之间的后续通信可以使用或不使用在建立期间提供的OT定位符,并且通常,不会使应用知道用于通信的OT定位符集合的变化。如上面所提到的,OT定位符可以是IPv4或IPv6地址,并且因此标准的struct sockaddr结构可以用于表示(定位符,OT端口)对。OT主机标识可以是主机标识协议型标识,并且因此标准的struct sockaddr结构还可以用于表示(主机标识,OT端口)对,其中,其是包括在所述结构中的128比特主机标识标签。可以使用函数ot_endpoint()来初始化OTEndpoint结构。可以对端点标识和端点定位符进行查询。
另外,可以使用函数ot_initproperties()、ot_getproperty()、ot_setproperty()、以及ot_clearproperty()对OTProperties结构进行管理。
此外,在一个示例中,可以根据以下方面来实现API404的套接字API。套接字是使用函数ot_socket()来创建的:
使用函数ot_close()来销毁套接字:
使用函数ot_bind()来将套接字绑定到本地OT端口:
此外,例如,可以使用函数ot_connect()将已被绑定到本地OT端口的套接字连接到远程端点。如果套接字是无连接套接字,则这种调用指定要将套接字与其相关联的对等方。这种地址是要向其发送数据报的地址,并且是要从其接收数据报的唯一地址。如果套接字是面向连接的,则这种调用指示应当建立的到另一套接字的连接。在这种情况下,如上所述,有两种连接模式:OT_CONNECT_NORMAL和OT_CONNECT_LAZY。
可以使用函数ot_listen()将已被绑定到本地OT端口的面向对象的套接字用于对进入的OT连接进行监听。该函数立即返回,并随后使用函数ot_accept()来接受进入的连接。
已被标记为监听方的套接字维护进入的连接请求的队列。函数ot_accept()用于获得针对队列上的第一请求的新的面向连接的套接字,或者如果队列为空则等待新的请求。
OT套接字维护未决事件的队列,可以使用函数ot_pop event()对队列进行查询。可以使用函数ot_poll()来检测新的事件的存在。函数ot_pop_event()取出由从队列提供的事件掩码所选择的类型的最老的事件,或者当队列不包含与掩码匹配的任何事件时等待下一事件发生。
可以使用调用ot_setsockopt()和ot_getsockopt()来对套接字选项进行读取和写入。所支持的套接字选项可以为例如:
可以使用函数ot_poll()来检测套接字事件。该函数允许跨越多个OT套接字以及操作系统套接字/文件描述符来检测事件(如函数POSIX poll()一样)。函数ot_poll()使用按如下定义的pollfd和otpollfd数据结构:
虽然在fds数组中使用标准的操作系统事件掩码,但对于otfds数组,事件掩码为以下几种OT类型:OT_SEND_COMPLETE、OT_RECV_STARTED、OT_RECV_COMPLETE、OT_CANCELLED、OT_EXPIRED、OT_ABORTED。
在一个示例中,可以根据以下方面来实现API404的对象API。将函数ot_send()和ot_sendto()分别用于发起无连接套接字或面向连接的套接字上的对象的发送。这些函数不会阻塞;如果要求对对象发送的完成进行通告,则使用ot_poll()和/或ot_pop_event()来检测套接字上的对象完成事件。
可以将函数ot_recv()和ot_recvfrom()分别用于在面向连接的套接字或无连接套接字上接收对象。每个套接字维护接收的对象的队列,并且如果未指定明确的对象描述符,那么,这些函数返回套接字接收队列或块中首先完成接收的对象、或者如果队列为空则阻塞直到有对象可用为止。如果指定了明确的对象描述符,则这些函数阻塞直到那个对象可用、被取消或期满为止。对于异步操作,使用函数select()和ot_pop_event()来检测对象的接收。
对于len、tag、props和data指针,如果不需要该信息,则这些函数的调用方可以传递Null。在入口处,由bufferlen指向的字段应当包含由数据所指向的缓冲器处的缓冲器尺寸。在出口处,由返回的字节的数目对所述字段进行重写。如果缓冲器小于对象尺寸,则针对相同的对象重复调用ot_recvfrom或ot_recv将返回对象的连续的部分。
另外,可以将函数ot_obj_pop_event()用于获得与指定的对象相关的下一事件。应注意的是,如果在(使用ot_pop_event()或ot_poll()的)套接字上和在对象上有两个线程同时等待,则当事件发生时仅通知在对象上等待的线程。
函数ot_getbytes()从接收的对象中获取字节。
可以使用ot_getinfo()来获得关于对象的信息(包括对象标签、长度、和属性)。
在使用函数ot_setproperties()发送或接收对象的同时可以对对象的属性进行改变。
可以使用方法ot_cancel()来取消正在进行中的对象的发送或接收。应注意到仍然可能的是:如果在已发送了足够多的用以传送对象的数据之后但在接收机确认接收之前,在发送方处发出了ot_cancel(),或者如果在对象的接收完成之后,在接收机处发出了ot_cancel(),那么,将在接收机处接收到取消的对象。
在某些通信模型中,可能发生的是:在相同或不同的套接字上接收的两个对象被识别为包含完全相同的数据。在这种情况下,可以通过使用函数ot_merge()将这两个对象合并成一个对象来加快对象的接收。
由对象描述符标识的对象具有与过程相关联的生命期,在该过程中,创建对象直到使用函数ot_freeze()将对象显式地存储。可以将函数ot_discard()用于获取之前冻结的对象,并且可以将函数ot_discard()用于丢弃冻结的对象。
从而,API404允许应用402构建用于在基于对象的传输协议406上进行传送的对象。例如,应用402可以确定对象的尺寸,并且不局限于固定长度的分组(如TCP一样)。此外,应用402可以指定对象属性,诸如如所描述的优先级、发射期限、响应属性、对象标签等。另外,如之前所描述的,应用402可以控制从远程网络节点到网络节点400的对象的发射。
参照图5,其示出了有助于使用基于对象的传输协议向一个或多个远程网络节点发射对象的网络节点500。如所描述的,网络节点500可以是设备、UE、计算机、服务器、本文描述的基本上任何节点或网络节点、和/或类似的组件或组件的与一个或多个远程网络节点进行通信的部分。网络节点500可以包括:对象接收组件502,其用于从基于对象的传输协议层之上的应用层或其它协议层获得对象;对象属性关联组件504,其接收元数据和/或将元数据与对象相关;以及对象通信组件506,其在一个或多个网络接口上将对象发送到远程网络节点(未示出)。网络节点500还可以包括:可选的对象编码组件508,其对对象或与其相关联的属性的至少一部分进行编码;可选的对象解码组件510,其对一个或多个接收的对象进行解码;以及对象提供组件512,其将经解码的对象发送到应用层。在一个示例中,如本文所描述地,对象接收组件502、对象属性关联组件504、对象通信组件506、对象编码组件508、对象解码组件510、以及对象提供组件512可以实现为基于对象的传输协议的一部分以提供其功能。
根据一个示例,对象接收组件502可以从网络节点500处的一个或多个应用接收对象。另外,对象属性关联组件504可以从应用接收属性、标签等,以用于关联到对象。就此而言,如所描述地,这些应用可以构建对象,并且确定优先级、发射期限、类似的响应属性、和/或其它元数据以用于如所描述地与对象进行关联。例如,网络节点500可以实现有助于将对象和相关的元数据发送到对象接收组件502和对象属性关联组件504的API,该API可以由应用所利用。
例如,如所描述地,对象通信组件506可以维护与一个或多个远程网络节点的一个或多个面向连接的会话,该一个或多个面向连接的会话有助于在一个或多个信道上与网络节点进行通信。在另一示例中,对象通信组件506可以包括一个或多个无连接的会话,该一个或多个无连接的会话可以被初始化并被用以发射如从应用接收到的对象。在任一种情况下,例如,对象通信组件506可以选择针对对象(例如,和/或相关的元数据)的会话,以用于向远程网络节点进行发射。对象通信组件506可以将对象发送的远程网络节点。
例如,如之前所描述地,在对象通信组件506处发射对象可以至少部分地基于确定与会话相关的一个或多个信道上的发送时机,如所描述地,这可以至少部分地基于检测针对与一个或多个信道相关的至少一个网络接口的发送时机。对象通信组件506还可以至少部分地基于确定针对一个或多个对象所指示的优先级高于具有到至少一个网络接口的信道的不同会话中的不同对象的不同优先级(例如,和/或确定对象元数据中指定的发射期限未超出),来确定针对一个或多个信道的发送时机。此外,如所描述地,对象通信组件506可以开始分析针对一个或多个信道的拥塞控制,以如上所描述地确定一个或多个信道是否可用于在确定发送时机时进行发射。例如,这可以包括确定一个或多个信道是否可用于发送一个或多个对象,或者确定一个或多个信道上的拥塞控制是否阻止这种发送。
另外,例如,会话(无论是面向连接的还是无连接的)可以允许到远程网络节点的访问。此外,对象编码组件508可以对对象、相关的元数据、与会话中的一个或多个信道相关的属性等进行编码。从而,如所描述地,对象编码组件508可以(例如,使用擦除码等)将对象编码成对象编码PDU、将对象元数据编码到对象控制PDU中、和/或将信道属性(例如,连接状态)编码到连接控制PDU中。在这个例子中,对象通信组件506可以将PDU发送到远程网络节点。
例如,在任何情况下,对象通信组件506可以将PDU构建到一个或多个分组中,以用于在一个或多个网络层协议上进行传送。在一个示例中,如所描述地,对象通信组件506可以维护与远程网络节点的会话,并且可以管理针对会话的信道,以使得对象通信组件506可以添加、移除、或修改到一个或多个主机的信道。从而,例如,在网络节点500是无线网络节点的情况下,对象通信组件506可以通过如下操作来允许其移动性:当网络节点500在无线网络上行进时修改针对会话的主机信道。从而,如所描述地,对象通信组件506可以通过与远程网络节点的会话维护主机切换的透明性。另外,例如,如所描述地,对象通信组件506可以在一个或多个主机上建立与远程网络节点的多个信道。在这个示例中,如所描述地,对象通信组件506可以通过在建立与远程网络节点的附加信道的请求中包括从远程网络节点(例如,在与其的初始信道上)接收的安全性关联来添加到远程网络节点的信道。
另外,对象通信组件506可以从远程网络节点接收响应于向远程网络节点发送的对象的一个或多个分组。例如,分组可以包括响应对象(例如,根据与对象一起发送到远程网络节点的响应属性)、相关的经编码的PDU等。例如,在接收到PDU的情况下,对象解码组件510可以根据PDU来解码对象和/或相关的元数据。在任一种情况下,如所描述地,对象提供组件512可以至少部分地基于在其上接收对象或相关的PDU的信道将对象传送到应用层。另外,例如,所接收的对象也可以具有元数据,元数据可以包括:对象的标识符、标签等,用于较早地识别对象(例如,如所描述地,用于可能地合并);响应属性,对象通信组件506可以在响应于所接收的对象而传送任何对象时利用响应属性;等等。此外,例如,如所描述地,对象通信组件506可以(例如,在一个或多个对象编码PDU中等)发送和/或接收关于与远程网络节点的通信的反馈。
现在转到图6,其示出了有助于在网络节点之间传送对象的示例性通信系统600。系统600包括能够根据本文描述的方面传送对象的网络节点602和604。网络节点602和604均可以是设备、UE、计算机、服务器、本文中描述的节点或网络节点、或在有线或无线网络中进行通信的基本上任何节点。应意识到的是,网络节点602可以如网络节点604一样另外包括类似的组件以帮助提供类似的功能,并且反之亦然。此外,网络节点602和604可以包括可以在其中实现所描述的组件的基于对象的传输协议。
例如,网络节点602可以包括:对象通信组件606,其在会话上向远程网络节点发射对象和/或从远程网络节点接收对象;可选的对象属性指定组件608,其可以指示对与从远程网络节点接收的对象相关联的属性的修改;以及可选的对象合并组件610,其可以从多个网络节点接收分组并将分组组合以形成一个或多个对象。网络节点604可以包括:对象通信组件612,其在会话中向远程网络节点发射对象和/或从远程网络节点接收对象;可选的对象属性修改组件614,其更新正发射到远程网络节点的一个或多个对象的属性;以及可选的会话状态更新组件616,其控制用于将对象发射到远程网络节点的一个或多个会话的状态。
根据一个示例,对象通信组件612可以向网络节点602发射对象,对象可以在对象通信组件606处接收。在一个示例中,对象通信组件606可以通过向网络节点604发射对象来从网络节点604请求内容。另外,对象属性指定组件608可以在请求中关联响应属性(例如,针对响应对象的属性)。对象通信组件612可以接收请求,并且对象属性修改组件614可以根据与对内容的请求相关联的响应属性来设置与对对内容的请求进行响应相关的对象的属性。在一个示例中,如所描述地,对象属性修改组件614可以将替代的对象属性发射到对象属性指定组件608(并且反之亦然),以有助于协商针对响应对象的属性。对象通信组件612可以根据针对响应对象的一组属性将响应对象发送到网络节点602。
此外,如所描述地,对象属性指定组件608可以将对象发射到网络节点604以请求修改对象属性,同时从网络节点604接收对象。在这个示例中,如所描述地,对象通信组件612可以接收请求修改对象属性的对象,并且对象属性修改组件614可以因此修改属性、发射替代的属性以进行协商等。就此而言,在一个示例中,网络节点602可以修改由网络节点604向其发射的对象的优先级。从而,例如,在请求这种对象的应用结束或不再需要接收处于之前指示的优先级的对象的情况下,网络节点602可以改变优先级,以降低在网络节点602处接收对象的速率。例如,这可以允许增加针对来自网络节点604或一个或多个其它网络节点的其它对象的接收速率、降低为接收和处理对象所需的功耗等。
此外,如所描述地,对象属性指定组件608可以请求对信道或会话的状态的修改。在一个示例中,对象属性指定组件608可以请求网络节点604中止会话(例如,包括将会话置于挂起)一段时间。在这个示例中,对象属性指定组件608可以(例如,在由对象通信组件608所传送的对象中)指示与会话或会话中的信道相关的属性。一旦属性被接收,则会话状态更新组件616可以适当地修改会话的状态、将替代的属性传送到网络节点602以协商状态等。例如,如之前所描述地,在会话状态更新组件616将会话置于挂起的情况下,可以在考虑会话的发送时机时忽略会话,以停止发射来自会话的对象。
在另一示例中,对象通信组件606可以接收从网络节点604和另一远程网络节点请求的对象(例如,在分布式实现方案中)。就此而言,对象合并组件610检测在对象通信组件606处接收的对象是否是针对相同的数据(例如,如所描述地,至少部分地基于对象中指定的属性或标签)。在对象针对相同的数据的情况下,对象合并组件610可以组合针对来自多个网络节点的对象接收的PDU。如所描述地,可以使用擦除码对PDU进行编码;从而,对象合并组件610可以在来自每个网络节点的PDU中接收多个经擦除编码的符号,并且一旦接收到与对象的符号的总数目对应的多个经擦除编码的符号,网络节点602便可以解码对象。此外,例如,对象通信组件612可以将对象多播到网络节点602和多个其它网络节点。
参照图7-12,其示出了涉及提供基于对象的传输协议的示例性方法。虽然出于简单解释的目的,将方法表示和描述为一系列动作,但是应理解和意识到的是,根据一个或多个实施例,由于某些动作可以按不同的顺序发生和/或与根据本文所表示和描述的其它动作同时发生,因此方法不限于动作的顺序。例如,应意识到的是,方法可以替代地表示成一系列相互关联的状态或事件,如在状态图中。此外,并非需要所有所示出的动作来实现根据一个或多个实施例的方法。
参照图7,其表现了有助于使用基于对象的传输协议传送对象的示例性方法700。在702处,可以从应用接收一个或多个对象,以用于向远程网络节点进行传送。如所描述地,对象可由应用来构建并且可以是任意尺寸的。在704处,可以从应用接收针对一个或多个对象的元数据。例如,元数据可以涉及优先级、发射期限、标识符、或一个或多个对象的其它方面。在706处,如所描述地,可以选择会话以用于将一个或多个对象传送到远程网络节点。例如,可以至少部分地基于与远程网络的关联性来选择会话,并且会话可以具有到远程网络节点的一个或多个信道。在708处,可以将一个或多个对象提供给网络协议层,以用于在与会话的信道相关的至少一个网络接口上进行发射。如所描述地,可以在确定的发送时机中在至少一个网络接口上发射一个或多个对象。
转至图8,其表现了有助于利用针对对象而指定的发射期限的示例性方法800。在802处,可以从与会话相关的元数据获取会话中的对象的发射期限。如所描述地,例如,发射期限可以由应用来指定,并且与元数据中的对象相关联。在804处,可以(例如,基于将发射期限与当前时间进行比较)确定发射期限已超出。从而,在806处,可以取消对象的发射。这可以包括例如从会话中移除对象、修改与对象相关的状态等。
参照图9,其示出了用于基于来自远程网络节点的请求来修改对象属性的示例性方法900。在902处,可以从远程网络节点接收修改与对内容的请求相关的对象的一个或多个属性的请求。如所描述地,例如,可以将该请求作为一个或多个对象来接收。一个或多个属性可以涉及与对内容的请求相关的一个或多个对象的优先级、发射期限等。在一个示例中,这些对象中的一部分的发射可能已开始。在904处,可以至少部分地基于请求来修改一个或多个对象的一个或多个属性。这可以包括例如改变会话中的对象的属性(例如,在应用为非活动状态的情况下降低优先级)。在906处,可以根据一个或多个属性来发射一个或多个对象。在另一示例中,修改属性的请求可以涉及会话或其信道,并且在904处,如所描述地,可以对会话或信道的状态进行修改,并且在906处,可以根据状态修改来发射(或不发射)一个或多个对象。
转到图10,其示出了有助于与远程网络节点建立多个信道以用于在基于对象的传输协议上进行通信的示例性方法1000。在1002处,可以在一个或多个信道上与远程网络节点进行通信。如所描述地,一个或多个信道可以是会话的一部分以最大化会话中的吞吐量。在1004处,可以在初始信道上从远程网络节点接收安全性关联。在1006处,可以在不同的网络接口上的来自远程网络节点的针对附加信道的请求中指定安全性关联。例如,这允许远程网络节点在允许另一连接之前验证初始连接。
参照图11,其描述了用于对从多个源接收的对象进行合并的示例性方法1100。在1102处,可以从多个网络节点接收与对象相关的对象编码PDU。例如,对象编码PDU可以是相同的对象的不同的擦除码符号(例如,如所描述地,这可以至少部分地基于相关的标识符或标签来识别)。在1104处,可以将对象编码PDU合并以增加其接收时间。
转至图12,其示出了用于对来自远程网络节点的接收对象的一个或多个属性进行修改的示例性方法1200。在1202处,可以确定从一个应用切换到不同的应用。例如,应用可以正从远程网络节点接收流式数据,并且不同的应用可以从不同的网络节点请求数据。因而,在1204处,可以向远程网络节点发射请求,以修改与应用相关的对象的一个或多个属性。例如,一个或多个属性可以包括对象的优先级(例如,鉴于切换到不同的应用以便当多个对象与应用相关时不进行接收,而降低发射优先级)等。在1206处,如所描述地,可以根据一个或多个属性来接收与应用相关的对象。
应意识到的是,如所描述地,根据本文中描述的一个或多个方面,可以做出关于确定会话以在网络接口上接收发送时机的推论等。如本文中使用的术语“推断”或“推论”通常指的是根据如经由事件和/或数据获得的一组观测结果来对系统、环境和/或用户的状态进行推理或推断的过程。例如,推论可以用来识别特定的内容或动作,或可以产生状态的概率分布。这种推论是概率性的,也就是说,基于所考虑的数据和事件,对感兴趣的状态上的概率分布进行计算。推论还可以指用于根据一组事件和/或数据构成高级事件的技术。这种推论使得根据一组观测的事件和/或存储的事件数据来构造新的事件或动作,而不管事件是否在时间上紧密相关,也不管事件和数据是否来自一个或数个事件和数据源。
参照图13,其示出了有助于在基于对象的传输协议上进行通信的系统1300。例如,系统1300可以至少部分地位于基站、移动设备、计算机、服务器等中。应意识到的是,系统1300表示为包括功能框,这些功能框可以是代表由处理器、软件、或其组合(例如,固件)所实现的功能的功能框。系统1300包括能够相互协作的电子组件的逻辑分组1302。例如,逻辑分组1302可以包括用于从应用接收一个或多个对象以用于向远程网络节点进行传送的电子组件1304。如所描述地,对象可以由应用来构建并且可以是任意尺寸的。此外,逻辑分组1302可以包括从应用接收针对一个或多个对象的元数据的电子组件1306。
如所描述地,例如,元数据可以包括对象的优先级、发射期限、标识符、标签等。此外,逻辑分组1302可以包括用于将一个或多个对象提供给网络协议层,以用于至少部分地基于在元数据中指示的优先级,在与所选择的会话的信道相关的至少一个网络接口上进行发射的电子组件1308。如所描述地,电子组件1308可以至少部分地基于确定针对会话的发送时机来发送会话中的一个或多个对象,这还可以基于一个或多个对象的优先级。例如,在一个方面,电子组件1304可以包括如所描述的对象接收组件502等。另外,例如,电子组件1306可以包括如上面所描述的对象属性关联组件504等。此外,在一个示例中,在一个方面,电子组件1308可以包括如所描述的对象通信组件506等。
此外,系统1300可以包括存储器1310,其保存用于执行与电子组件1304、1306、和1308相关联的功能的指令。虽然示为在存储器1310外部,但应理解的是,电子组件1304、1306和1308中的一个或多个可以存在于存储器1310内。在一个示例中,电子组件1304、1306和1308可以包括至少一个处理器,或者电子组件1304、1306和1308中的每一个可以是至少一个处理器的相应的模块。此外,在附加的或替代的示例中,电子组件1304、1306和1308可以是包括计算机可读介质的计算机程序产品,其中电子组件1304、1306或1308中的每一个可以是相应的代码。
现在参照图14,其示出了根据本文中给出的各种实施例的无线通信系统1400。系统1400包括基站1402,基站1402可以包括多个天线组。例如,一个天线组可以包括天线1404和1406,另一组可以包括天线1408和1410,而另一组可以包括天线1412和1414。对于每个天线组示出了两个天线;然而,对于每个天线组可以使用更多或更少的天线。如应意识到的,基站1402可以附加地包括发射机链和接收机链,发射机链和接收机链中的每一个可以既而包括与信号的发送和接收相关联的多个组件(例如,处理器、调制器、复用器、解调器、解复用器、天线等)。
基站1402可以与一个或多个移动设备(诸如移动设备1416和移动设备1422)进行通信;然而,应意识到的是,基站1402可以与基本上任意数目的类似于移动设备1416和1422的移动设备进行通信。移动设备1416和1422可以是例如蜂窝电话、智能电话、手持式通信设备、手持式计算设备、卫星无线电台、全球定位系统、PDA和/或用于在无线通信系统1400上进行通信的任何其它适当的设备。如图所示,移动设备1416与天线1412和1414进行通信,其中,天线1412和1414在前向链路1418上向移动设备1416发送信息并在反向链路1420上从移动设备1416接收信息。此外,移动设备1422与天线1404和1406进行通信,其中,天线1404和1406在前向链路1424上向移动设备1422发送信息并在反向链路1426上从移动设备1422接收信息。例如,在频分双工(FDD)系统中,前向链路1418可以使用与由反向链路1420所使用的频带不同的频带,并且前向链路1424可以使用与由反向链路1426所使用的频带不同的频带。此外,在时分双工(TDD)系统中,前向链路1418和反向链路1420可以使用共同的频带,并且前向链路1424和反向链路1426可以使用共同的频带。
每个天线组和/或将它们指定为在其中进行通信的区域可以称为基站1402的扇区。例如,天线组可以被指定为对由基站1402所覆盖的区域的扇区中的移动设备进行通信。在前向链路1418和1424上的通信中,基站1402的发射天线可以使用波束成形来改善移动设备1416和1422的前向链路1418和1424的信噪比。并且,与通过单个天线向其所有移动设备进行发射的基站相比,在基站使用波束成形向随机散布在整个相关联的覆盖中的移动设备1416和1422进行发射时,邻近小区中的移动设备可以遭受较小的干扰。此外,如图所示,移动设备1416和1422可以使用端到端技术或自组技术彼此直接进行通信。根据一个示例,系统1400可以是多输入多输出(MIMO)通信系统。
参照图15,在一个方面,可以由计算机设备1500代表网络节点102、104、302、304、400、500、602、或604(例如,图1和3-6)中的任何一个网络节点。计算机设备1500包括处理器1502,其用于执行对与本文中描述的一个或多个组件和功能相关联的处理功能。处理器1502可以包括处理器或多核处理器的单个集合或多个集合。此外,处理器1502可以被实现为集成处理系统和/或分布式处理系统。
计算机设备1500还包括存储器1504,其诸如用于存储由处理器1502执行的应用的本地版本。存储器1504可以包括可由计算机使用的基本上任意类型的存储器,诸如随机访问存储器(RAM)、只读存储器(ROM)、磁带、磁盘、光盘、易失性存储器、非易失性存储器及其任意组合。
此外,计算机设备1500包括通信组件1506,其支持建立和维护与利用如本文中描述的硬件、软件以及服务的一方或多方的通信。通信组件1506可以携带计算机设备1500上的组件之间以及计算机设备1500和外部设备(诸如,位于通信网络之上的设备、和/或串行连接或本地连接到计算机设备1500的设备)之间的通信。例如,通信组件1506可以包括一个或多个总线,并且还可以分别包括与发射机和接收机相关联的发射链组件和接收链组件,以可操作用于与外部设备通过接口进行连接。另外,例如,通信组件1506可以利用如本文中所描述的基于对象的传输协议(例如,图2中的基于对象的传输协议200)。
此外,计算机设备1500还可以包括数据存储1508,其可以是硬件和/或软件的任意适当的组合,其支持与本文中描述的方面结合使用的信息、数据库以及程序的大容量存储。例如,数据存储1508可以是用于当前不被处理器1502执行的应用的数据资料库。
计算机设备1500可以附加地包括用户接口组件1510,其可操作用于从计算机设备1500的用户接收输入,并且还可操作用于生成用于呈现给该用户的输出。用户接口组件1510可以包括一个或多个输入设备,包括但不限于键盘、数字键盘、鼠标、触摸感应显示器、导航键、功能键、麦克风、语音识别组件、能够从用户接收输入的任何其它机制或上述的任意组合。此外,用户接口组件1510可以包括一个或多个输出设备,包括但不限于显示器、扬声器、触觉反馈机制、打印机、能够将输出呈现给用户的任何其它机制或上述的任意组合。
另外,在所描述的示例中,计算机设备1500可以包括如上面所描述的对象接收组件502、对象属性关联组件504、以及对象通信组件506。从而,如所描述的,这些组件502、504和506可以利用处理器1502来执行与其相关联的指令、利用存储器1504来存储与其相关联的信息、利用通信组件1506来执行基于对象的传输层上的操作等。另外,应意识到的是,计算机设备1500可以包括本文中所描述的附加的或替代的组件。
可以用执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,来实现或执行结合本文公开的实施例所描述的各种说明性的逻辑、逻辑框、模块、组件和电路。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合或者任何其它此种结构。此外,至少一个处理器可以包括可操作用于执行本文描述的一个或多个步骤和/或动作的一个或多个模块。示例性存储介质可以耦合到该处理器,使得该处理器可以从存储介质读取信息以及向存储介质写入信息。在替代的方式中,存储介质可以是处理器的组成部分。此外,在某些方面,处理器和存储介质可以位于ASIC中。此外,ASIC可以位于用户终端中。在可替代的方式中,处理器和存储介质也可以作为分立组件存在于用户终端中。
在一个或多个方面,所描述的功能、方法和算法可以实现在硬件、软件、固件或其任意组合中。如果实现在软件中,则可以将这些功能作为计算机可读介质上的一个或多个指令或代码存储或传送,可以将该计算机可读介质并入计算机程序产品中。计算机可读介质包括计算机存储介质和通信介质二者,通信介质包括有助于计算机程序从一个位置转移到另一个位置的任意介质。存储介质可以是能够由计算机存取的任意可用介质。通过举例而非限制的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备、或者能够用于携带或存储以指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。此外,基本上任何连接可以称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外、无线电和微波之类的无线技术从网站、服务器或其它远程源发送的,则同轴电缆、光纤光缆、双绞线、DSL或者诸如红外、无线电和微波之类的无线技术被包括在介质的定义中。如本文中使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中,盘通常磁性地复制数据,而碟通常用激光光学地复制数据。上述各项的组合也应该包括在计算机可读介质的范围中。
虽然上述公开内容讨论了说明性方面和/或实施例,但应注意的是,在不背离如由所附权利要求所定义的所描述的方面和/或实施例的范围的前提下,可以做出各种变更和修改。此外,虽然可以对所描述的方面和/或实施例的元素以单数形式来描述或要求保护,但是除非明确声明限制成单数,否则应将复数考虑在内。此外,除非另外声明,否则任何方面和/或实施例中的全部或一部分可以与任何其它方面和/或实施例中的全部或一部分一起使用。
Claims (41)
1.一种在网络通信中提供基于对象的传输层的方法,包括:
从应用接收一个或多个对象,以用于向远程网络节点进行传送;
从所述应用接收针对所述一个或多个对象的元数据;
选择用于将所述一个或多个对象传送到所述远程网络节点的会话;以及
将所述一个或多个对象提供给网络协议层,以用于至少部分地基于在所述元数据中指示的所述一个或多个对象的优先级,在与所述会话的信道相关的至少一个网络接口上进行发射。
2.根据权利要求1所述的方法,还包括:
检测针对所述至少一个网络接口的发送时机;以及
确定所述一个或多个对象的所述优先级高于具有与所述至少一个网络接口相关的所述信道或不同的信道的所述会话或不同的会话中的不同的对象的至少一个不同的优先级,其中,所述提供所述一个或多个对象至少部分地基于所述确定。
3.根据权利要求2所述的方法,其中,所述检测所述发送时机包括:分析针对所述信道的拥塞控制以确定所述信道可用于在所述至少一个网络接口上发射所述一个或多个对象。
4.根据权利要求2所述的方法,其中,所述检测所述发送时机包括:分析所述会话的状态以确定所述会话可用于在所述至少一个网络接口上发射所述一个或多个对象。
5.根据权利要求1所述的方法,还包括:
确定与所述会话中的一个或多个不同的对象相关的发射期限;以及
至少部分地基于超出所述发射期限来取消所述一个或多个不同的对象的发射。
6.根据权利要求1所述的方法,还包括:从所述远程网络节点接收修改与所述一个或多个对象相关的后续对象的一个或多个属性的请求。
7.根据权利要求6所述的方法,还包括:
修改与所述一个或多个对象相关的一个或多个后续对象的所述一个或多个属性,其中,所述一个或多个属性包括经修改的优先级;以及
将所述一个或多个后续对象提供给所述网络协议层,以用于至少部分地基于所述经修改的优先级,在与所述会话的所述信道相关的所述至少一个网络接口上进行发射。
8.根据权利要求1所述的方法,还包括:从所述远程网络节点接收修改所述信道或所述会话的状态的请求。
9.根据权利要求8所述的方法,还包括:至少部分地基于所述请求将所述会话置于挂起。
10.根据权利要求1所述的方法,还包括:建立与到所述会话的不同的网络接口相关的附加信道,以用于与所述远程网络节点进行通信。
11.根据权利要求10所述的方法,还包括:至少部分地通过传送包括在所述信道上从所述远程网络节点接收的安全性关联在内的建立所述附加信道的请求,来建立与所述远程网络节点的所述附加信道。
12.根据权利要求10所述的方法,还包括:
从所述会话中移除所述信道;以及
将与所述一个或多个对象相关的一个或多个后续对象提供给所述网络协议层,以用于至少部分地基于针对所述一个或多个后续对象所指示的所述优先级,在与所述附加信道相关的所述不同的网络接口上进行发射。
13.根据权利要求1所述的方法,还包括:使用擦除码对所述一个或多个对象进行编码,以生成多个对象编码协议数据单元(PDU),其中,所述将所述一个或多个对象提供给所述网络协议层包括将所述一个或多个对象编码PDU提供给所述网络协议层。
14.根据权利要求1所述的方法,还包括:
至少部分地基于所述一个或多个对象从所述远程网络节点接收一个或多个响应对象中的至少一部分;以及
至少部分地基于将所述一个或多个响应对象识别为与所述一个或多个对象相关,将所述一个或多个响应对象提供给所述应用。
15.根据权利要求14所述的方法,还包括:将所述元数据提供给所述网络协议层,以用于在与所述会话的所述信道相关的所述至少一个网络接口上进行发射,其中,所述元数据包括针对所述一个或多个响应对象的响应属性。
16.根据权利要求15所述的方法,还包括:向所述远程网络节点发送修改所述响应属性的请求。
17.根据权利要求15所述的方法,还包括:向所述远程网络节点发送修改与所述一个或多个响应对象相关的不同的会话或不同的信道的状态的请求。
18.根据权利要求14所述的方法,还包括:
从不同的远程网络节点接收与所述一个或多个响应对象对应的一个或多个不同的对象编码协议数据单元(PDU);
确定所述一个或多个不同的对象编码PDU与所述一个或多个响应对象相关;以及
将所述一个或多个不同的对象编码PDU与从所述远程网络节点接收的一个或多个对象编码PDU合并,以形成所述一个或多个响应对象。
19.根据权利要求1所述的方法,其中,所述一个或多个对象尺寸不同。
20.一种用于在网络通信中提供基于对象的传输层的装置,包括:
至少一个处理器,其配置成:
从应用获得一个或多个对象,以用于向远程网络节点进行传送;
从所述应用获得针对所述一个或多个对象的元数据;
确定用于将所述一个或多个对象传送到所述远程网络节点的会话;以及
将所述一个或多个对象传送到网络协议层,以用于至少部分地基于在所述元数据中指示的优先级,在与所述会话的信道相关的至少一个网络接口上进行发射;以及
存储器,其耦合到所述至少一个处理器。
21.一种用于在网络通信中提供基于对象的传输层的装置,包括:
用于从应用接收一个或多个对象以用于向远程网络节点进行传送的模块;
用于从所述应用接收针对所述一个或多个对象的元数据的模块;以及
用于将所述一个或多个对象提供给网络协议层,以用于至少部分地基于在所述元数据中指示的优先级,在与选择的会话的信道相关的至少一个网络接口上进行发射的模块。
22.一种用于在网络通信中提供基于对象的传输层的计算机程序产品,包括:
计算机可读介质,包括:
用于使得至少一台计算机从应用获得一个或多个对象以用于向远程网络节点进行传送的代码;
用于使得至少一台计算机从所述应用获得针对所述一个或多个对象的元数据的代码;
用于使得至少一台计算机确定用于将所述一个或多个对象传送到所述远程网络节点的会话的代码;以及
用于使得至少一台计算机将所述一个或多个对象传送到网络协议层,以用于至少部分地基于在所述元数据中指示的优先级,在与所述会话的信道相关的至少一个网络接口上进行发射的代码。
23.一种用于在网络通信中提供基于对象的传输层的装置,包括:
对象接收组件,其用于从应用获得一个或多个对象,以用于向远程网络节点进行传送;
对象属性关联组件,其用于从所述应用接收针对所述一个或多个对象的元数据;以及
对象通信组件,其用于将所述一个或多个对象提供给网络协议层,以用于至少部分地基于在所述元数据中指示的所述一个或多个对象的优先级,在与选择的会话的信道相关的至少一个网络接口上进行发射。
24.根据权利要求23所述的装置,其中,所述对象通信组件至少部分地基于如下操作将所述一个或多个对象提供给所述网络协议层:检测针对所述至少一个网络接口的发送时机;以及确定针对所述一个或多个对象的所述优先级高于具有所述至少一个网络接口上的所述信道或不同的信道的所选择的会话或不同的会话中的不同对象的至少一个不同的优先级。
25.根据权利要求24所述的装置,其中,所述对象通信组件至少部分地通过分析针对所述信道的拥塞控制以确定所述信道是否可用于在所述至少一个网络接口上发射所述一个或多个对象来检测所述发送时机。
26.根据权利要求24所述的装置,其中,所述对象通信组件至少部分地通过分析所选择的会话的状态以确定所选择的会话是否可用于在所述至少一个网络接口上发射所述一个或多个对象来检测所述发送时机。
27.根据权利要求23所述的装置,其中,所述对象通信组件还配置成:确定与所选择的会话中的一个或多个不同的对象相关的发射期限,以及至少部分地基于所述发射期限来取消所述一个或多个不同的对象的发射。
28.根据权利要求23所述的装置,还包括:对象属性修改组件,其用于从所述远程网络节点接收修改与所述一个或多个对象相关的后续对象的一个或多个属性的请求。
29.根据权利要求28所述的装置,其中,所述对象属性修改组件修改与所述一个或多个对象相关的一个或多个后续对象的所述一个或多个属性,并且所述对象通信组件将所述一个或多个后续对象提供给所述网络协议层,以用于在与所选择的会话的所述信道相关的所述至少一个网络接口上进行发射。
30.根据权利要求23所述的装置,还包括:对象属性修改组件,其用于从所述远程网络节点接收修改所述信道或所选择的会话的状态的请求。
31.根据权利要求30所述的装置,还包括:会话状态更新组件,其用于至少部分地基于来自所述远程网络节点的所述请求将所述信道或所选择的会话置于挂起。
32.根据权利要求23所述的装置,其中,所述对象通信组件添加与到所选的会话的不同的网络接口相关的附加信道,以用于与所述远程网络节点进行通信。
33.根据权利要求32所述的装置,其中,所述对象通信组件至少部分地通过传送包括在所述信道上从所述远程网络节点接收的安全性关联在内的建立所述附加信道的请求,来建立与所述远程网络节点的所述附加信道。
34.根据权利要求32所述的装置,其中,所述对象通信组件从所选择的会话中移除所述信道。
35.根据权利要求23所述的装置,还包括:对象编码组件,其用于使用擦除码对所述一个或多个对象进行编码,以生成多个对象编码协议数据单元(PDU),其中,所述对象通信组件将所述多个对象编码PDU提供给所述网络协议层。
36.根据权利要求23所述的装置,还包括:对象提供组件,其将一个或多个响应对象发送到所述应用,其中,所述对象通信组件在所述信道上接收所述一个或多个响应对象。
37.根据权利要求36所述的装置,其中,所述对象通信组件还将所述元数据传送到所述网络协议层,其中,所述元数据包括针对所述一个或多个响应对象的响应属性。
38.根据权利要求37所述的装置,还包括:对象属性指定组件,其向所述远程网络节点发送修改所述响应属性的请求。
39.根据权利要求37所述的装置,还包括:对象属性指定组件,其向所述远程网络节点发送修改与所述一个或多个响应对象相关的不同的会话或不同的信道的状态的请求。
40.根据权利要求36所述的装置,还包括:对象合并组件,其用于确定从所述远程网络节点接收的一个或多个对象编码协议数据单元(PDU)与从不同的远程网络节点接收的一个或多个不同的对象编码PDU相关,并将所述一个或多个对象编码PDU与所述一个或多个不同的对象编码PDU合并,以形成所述一个或多个响应对象。
41.根据权利要求32所述的装置,其中,所述一个或多个对象尺寸不同。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/952,729 | 2010-11-23 | ||
US12/952,729 US8862769B2 (en) | 2010-11-23 | 2010-11-23 | Object-based transport protocol |
PCT/US2011/062119 WO2012071553A1 (en) | 2010-11-23 | 2011-11-23 | Object-based transport protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103250390A true CN103250390A (zh) | 2013-08-14 |
CN103250390B CN103250390B (zh) | 2016-08-10 |
Family
ID=45316077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180056392.8A Expired - Fee Related CN103250390B (zh) | 2010-11-23 | 2011-11-23 | 用于提供基于对象的传输协议的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8862769B2 (zh) |
EP (1) | EP2643957B1 (zh) |
JP (1) | JP5701995B2 (zh) |
CN (1) | CN103250390B (zh) |
TW (1) | TW201228321A (zh) |
WO (1) | WO2012071553A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375887A (zh) * | 2013-08-16 | 2015-02-25 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN104539631A (zh) * | 2015-01-20 | 2015-04-22 | 成都市酷岳科技有限公司 | 一种信息交换及高速传输的实现方法及其模块 |
CN104965864A (zh) * | 2015-06-04 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 一种远程对象的标识方法及远程对象的标识系统 |
US10432754B2 (en) | 2015-09-16 | 2019-10-01 | Profire Energy, Inc | Safety networking protocol and method |
CN110495214A (zh) * | 2017-04-19 | 2019-11-22 | Lg电子株式会社 | 用于处理pdu会话建立过程的方法和amf节点 |
US10514683B2 (en) | 2015-09-16 | 2019-12-24 | Profire Energy, Inc. | Distributed networking system and method to implement a safety state environment |
CN111200608A (zh) * | 2020-01-02 | 2020-05-26 | 中科驭数(北京)科技有限公司 | 链路信息处理方法和装置 |
US11109280B2 (en) | 2017-04-19 | 2021-08-31 | Lg Electronics Inc. | Method for PDU session establishment procedure and AMF node |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452835B2 (en) * | 2009-12-23 | 2013-05-28 | Citrix Systems, Inc. | Systems and methods for object rate limiting in multi-core system |
US10218756B2 (en) | 2012-01-06 | 2019-02-26 | Comcast Cable Communications, Llc | Streamlined delivery of video content |
CN103294541B (zh) * | 2013-05-24 | 2017-04-26 | 福建联迪商用设备有限公司 | 一种星型结构的多进程间的通信方法和装置 |
WO2015183704A1 (en) * | 2014-05-29 | 2015-12-03 | F5 Networks, Inc | Object tagging |
US9282072B1 (en) * | 2014-11-14 | 2016-03-08 | Quanta Computer Inc. | Serial output redirection using HTTP |
CN107734681B (zh) * | 2016-08-12 | 2019-08-30 | 电信科学技术研究院 | 一种传输资源的指示方法及装置 |
US9894080B1 (en) * | 2016-10-04 | 2018-02-13 | The Florida International University Board Of Trustees | Sequence hopping algorithm for securing goose messages |
US10812220B1 (en) | 2018-09-26 | 2020-10-20 | Parallels International Gmbh | Method and system for transmitting data over multiple paths |
US11558776B2 (en) * | 2019-03-29 | 2023-01-17 | Lg Electronics Inc. | Devices and system for transmitting and receiving compressed bitstream via wireless stream and handling transmission error |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737022A (en) | 1993-02-26 | 1998-04-07 | Kabushiki Kaisha Toshiba | Motion picture error concealment using simplified motion compensation |
US5835728A (en) | 1995-02-17 | 1998-11-10 | Nec Corporation | System for routing computer network |
US7145898B1 (en) * | 1996-11-18 | 2006-12-05 | Mci Communications Corporation | System, method and article of manufacture for selecting a gateway of a hybrid communication system architecture |
US6128653A (en) | 1997-03-17 | 2000-10-03 | Microsoft Corporation | Method and apparatus for communication media commands and media data using the HTTP protocol |
JP2000315155A (ja) * | 1999-03-04 | 2000-11-14 | Sony Corp | データ処理装置、データ処理方法及びプログラム提供媒体 |
US6438603B1 (en) * | 1999-04-30 | 2002-08-20 | Microsoft Corporation | Methods and protocol for simultaneous tuning of reliable and non-reliable channels of a single network communication link |
JP3676121B2 (ja) * | 1999-06-01 | 2005-07-27 | 三菱電機株式会社 | パラメータ決定装置、パラメータ決定方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
WO2001080033A2 (en) | 2000-04-17 | 2001-10-25 | Circadence Corporation | System and method for implementing application -independent functionality within a network infrastructure |
JP2002111721A (ja) * | 2000-09-27 | 2002-04-12 | Matsushita Electric Ind Co Ltd | ネットワーク装置 |
JP3465703B2 (ja) | 2001-07-18 | 2003-11-10 | 日本電気株式会社 | 共通チャネルフロー制御方法 |
US7496748B2 (en) * | 2001-07-23 | 2009-02-24 | Itt Manufacturing Enterprises | Method for establishing a security association between two or more computers communicating via an interconnected computer network |
JP2003319009A (ja) * | 2002-04-24 | 2003-11-07 | Communication Research Laboratory | データ通信制御方法、データ通信制御システム、データ送出機構、データ通信制御プログラム、およびデータ通信制御プログラム記録媒体 |
CN1245031C (zh) | 2002-07-12 | 2006-03-08 | 清华大学 | 基于预测方向校正/统计预判的快速亚象素运动估计方法 |
US7349337B1 (en) * | 2003-12-12 | 2008-03-25 | Novell, Inc. | Techniques for shaping data transmission rates |
US8046830B2 (en) * | 2004-07-23 | 2011-10-25 | Citrix Systems, Inc. | Systems and methods for network disruption shielding techniques |
CA2572401A1 (en) * | 2004-07-23 | 2006-02-02 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
US20060182101A1 (en) * | 2005-02-14 | 2006-08-17 | Hoekstra Geert J | Method for distributing transport sessions over multiple network interfaces |
US20070050525A1 (en) | 2005-08-25 | 2007-03-01 | Moxa Technologies Co., Ltd. | [virtual com port for remote i/o controller] |
US8744470B2 (en) | 2006-12-22 | 2014-06-03 | Disney Enterprises, Inc. | Optimization of data delivery in mobile networks |
KR101456487B1 (ko) | 2008-03-04 | 2014-10-31 | 삼성전자주식회사 | 부화소 단위의 움직임 예측을 이용한 영상 부호화, 복호화방법 및 그 장치 |
JP5178539B2 (ja) * | 2008-04-04 | 2013-04-10 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、セッション管理システム並びにプログラム |
JP5012647B2 (ja) | 2008-04-30 | 2012-08-29 | ソニー株式会社 | 画像処理装置およびその方法、並びにプログラム |
-
2010
- 2010-11-23 US US12/952,729 patent/US8862769B2/en not_active Expired - Fee Related
-
2011
- 2011-11-23 CN CN201180056392.8A patent/CN103250390B/zh not_active Expired - Fee Related
- 2011-11-23 TW TW100142947A patent/TW201228321A/zh unknown
- 2011-11-23 EP EP11794309.2A patent/EP2643957B1/en not_active Not-in-force
- 2011-11-23 JP JP2013541059A patent/JP5701995B2/ja not_active Expired - Fee Related
- 2011-11-23 WO PCT/US2011/062119 patent/WO2012071553A1/en active Application Filing
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375887A (zh) * | 2013-08-16 | 2015-02-25 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN104539631A (zh) * | 2015-01-20 | 2015-04-22 | 成都市酷岳科技有限公司 | 一种信息交换及高速传输的实现方法及其模块 |
CN104965864A (zh) * | 2015-06-04 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 一种远程对象的标识方法及远程对象的标识系统 |
CN104965864B (zh) * | 2015-06-04 | 2018-05-08 | 深圳市腾讯计算机系统有限公司 | 一种远程对象的标识方法及远程对象的标识系统 |
US10514683B2 (en) | 2015-09-16 | 2019-12-24 | Profire Energy, Inc. | Distributed networking system and method to implement a safety state environment |
US10432754B2 (en) | 2015-09-16 | 2019-10-01 | Profire Energy, Inc | Safety networking protocol and method |
US10992787B2 (en) | 2015-09-16 | 2021-04-27 | Profire Energy, Inc. | Safety networking protocol and method |
US11314235B2 (en) | 2015-09-16 | 2022-04-26 | Profire Energy, Inc. | Systems to implement a safety state environment among control modules |
CN110495214A (zh) * | 2017-04-19 | 2019-11-22 | Lg电子株式会社 | 用于处理pdu会话建立过程的方法和amf节点 |
CN110495214B (zh) * | 2017-04-19 | 2021-08-27 | Lg电子株式会社 | 用于处理pdu会话建立过程的方法和amf节点 |
US11109280B2 (en) | 2017-04-19 | 2021-08-31 | Lg Electronics Inc. | Method for PDU session establishment procedure and AMF node |
CN111200608A (zh) * | 2020-01-02 | 2020-05-26 | 中科驭数(北京)科技有限公司 | 链路信息处理方法和装置 |
CN111200608B (zh) * | 2020-01-02 | 2021-08-03 | 中科驭数(北京)科技有限公司 | 链路信息处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2014505384A (ja) | 2014-02-27 |
US20120131223A1 (en) | 2012-05-24 |
WO2012071553A1 (en) | 2012-05-31 |
EP2643957B1 (en) | 2018-07-25 |
CN103250390B (zh) | 2016-08-10 |
EP2643957A1 (en) | 2013-10-02 |
JP5701995B2 (ja) | 2015-04-15 |
TW201228321A (en) | 2012-07-01 |
US8862769B2 (en) | 2014-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103250390A (zh) | 基于对象的传输协议 | |
CN100552626C (zh) | 用网络栈同步和上载已卸载网络栈连接的方法 | |
CN101138218B (zh) | 用于在不兼容传输中支持安全性协议的方法和装置 | |
CN105794135B (zh) | 用于数据传输的跨层和跨应用确认 | |
US20200022022A1 (en) | Dynamic header compression for constrained networks | |
CN106688277A (zh) | 在时隙化信道调频网络中的有效集中式资源和调度管理 | |
TW200810433A (en) | Overhead reduction in an ad-hoc wireless network | |
CN106453474A (zh) | 在不稳定网络环境中的大文件的网络传输 | |
Caini et al. | DTNperf_3: A further enhanced tool for delay-/disruption-tolerant networking performance evaluation | |
EP3120267A1 (en) | Systems and methods using binary dynamic rest messages | |
CN106411842A (zh) | 在内容中心网络堆栈中传输状态 | |
CN111465873A (zh) | 一种数据发送方法和电子设备 | |
CN103535075B (zh) | 移动设备驱动的信息交换 | |
US11160139B2 (en) | Method for optimizing per message type data exchange between connected objects | |
CN109120373A (zh) | 一种信道编码方法、数据接收方法及相关设备 | |
Phung et al. | Enhancing rest http with random linear network coding in dynamic edge computing environments | |
TW200807988A (en) | Configuring a host device by way of MMP | |
JP2023062123A (ja) | 無線通信装置、無線通信方法、及び無線通信システム | |
WO2022062426A1 (zh) | 中继基站的多播调度方法和装置、存储介质及电子装置 | |
CN115333782A (zh) | 数据发送方法、数据接收方法、存储介质及计算机设备 | |
CN106900024A (zh) | 用于数传电台自组网超远程数据传输的战术通信方法 | |
US10367708B2 (en) | Network coding aware nodes in a distributed network | |
KR101151615B1 (ko) | Udp기반의 p2p 데이터 전송 방법 및 시스템 | |
Flowers et al. | MiWi™ Wireless Networking Protocol Stack | |
JP2011193055A (ja) | 通信装置および通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160810 Termination date: 20181123 |