多路径数据通信的制作方法

文档序号:21459780发布日期:2020-07-10 17:57阅读:455来源:国知局
多路径数据通信的制作方法

本公开涉及多路径数据通信,尤其涉及通信设备中多路径通信的部署和/或控制。



背景技术:

为了满足例如下一代无线网络的无线网络的容量与成本要求,诸如3gpp、ieee和ietf的标准化机构一直集中在用于多个路径(多路径)无线通信的技术上。多路径无线通信是指使用多个无线电接入技术(rat)以用于同时并行地在多个无线链路或路径上传送单个数据流。

由于多个原因,多路径无线通信是具有吸引力的。

例如,将多个独立的数据传送路径聚合成一个逻辑连接提高了总体吞吐量,还减少了延迟。为此目的,可使用资源池和多路复用。rat间带宽聚合不受每rat频谱可用性的限制。

多路径无线通信使得能够控制无线服务质量(qos);临时带宽中断例如可通过使用自适应链路复用来掩盖(mask)。端到端延迟可使用以分组级前向纠错(fec)形式的冗余编码来控制。

多路径无线通信允许运营商有效地重新使用已有的多频段、多技术基础设施并提供高速连接,而不会产生与推出新的高性能网络相关联的大量成本。

在通信设备尤其是(但非排它性地)在诸如移动电话、智能手机和平板计算机的传统设备中,多路径无线通信功能的安装和控制是复杂的,并且可能是昂贵的。



技术实现要素:

第一方面提供了一种方法,其包括:在包括被设置为用户空间和内核空间的存储器的客户端设备中:在用户空间中提供用于接收去往内核空间的一个或多个应用调用的用户空间控制模块;由用户空间控制模块接收用于请求使用一个或多个内核空间网络服务的数据传输的应用调用;以及在用户空间控制模块的控制下,在从客户端设备的多个路径上实施所请求的数据传输。

用户空间控制模块可根据网络使用规则,实施所请求的数据传输。

网络使用规则可定义用于多个路径中的每一个的带宽管理策略。

网络使用规则可定义用于多个路径和/或多路径连接中的每一个的服务质量(qos)策略。

网络使用规则可基于进行应用调用的应用类型来确定要用于多个路径的数据传输的网络服务。

网络使用规则可基于应用服务要求和/或服务质量要求来确定要用于多个路径的数据传输的网络服务。

网络使用规则可以是响应于指示所测量的带宽和/或服务质量性能的反馈数据而被动态地更新的。

该方法还包括:从外部网络管理实体接收网络使用规则。

用户空间控制模块可通过以下操作来接收去往内核空间的一个或多个应用调用:在相关联的应用被调用时,修改相关联的应用以指向与用于实施多路径控制的用户空间控制模块相关联的库。

修改相关联的应用可包括:修改它的本地调用库以指向多路径控制库。

取代对标准套接字的应用调用,多路径控制库可生成对打开多个并行套接字和多路径调度器的多路径方法的调用。

用户空间控制模块可通过以下操作来接收去往内核空间的一个或多个应用调用:在用户空间中修改应用执行环境。

修改应用执行环境可包括:将系统调用挂钩注入虚拟机,该系统调用挂钩用于执行所修改的用于实施多路径控制的功能。

在从客户端设备的多个路径上实施所请求的数据传输可包括:在内核空间中配置一个或多个已有的内核协议。

一个或多个已有的内核协议可被配置为:选择用于使用多个路径来发送数据的无线电接口。

在从客户端设备的多个路径上实施所请求的数据传输可包括:在内核空间中修改一个或多个已有的内核协议。

一个或多个已有的内核协议可通过上传专用的拥塞控制模块来修改。

专用的拥塞控制模块可以是从例如sim卡的存储器模块上传的。

专用的拥塞控制模块可以是从远程服务器上传的。

在从客户端设备的多个路径上实施所请求的数据传输可包括:在用户空间中实施一个或多个新的联网协议栈。

在用户空间中实施的联网协议栈包括以下中的一个或多个:mpudp,基于mpudp的tcp,fec感知的mpudp,以及基于raw套接字的协议栈。

任何前述定义的方法可被执行而不修改内核空间功能。

任何前述定义的方法可在智能电话或平板计算机中的一个上被执行。

第二方面提供了一种计算机程序,其包括指令,该指令在由计算机程序执行时控制它执行任何前述定义的方法。

第三方面提供了一种非暂时性计算机可读存储介质,在其上存储计算机可读代码,该计算机可读代码在由至少一个处理器执行时使得至少一个处理器执行一种方法,其包括:在包括被设置为用户空间和内核空间的存储器的客户端设备中:在用户空间中提供用于接收去往内核空间的一个或多个应用调用的用户空间控制模块;由用户空间控制模块接收用于请求使用一个或多个内核空间网络服务的数据传输的应用调用;以及在用户空间控制模块的控制下,在从客户端设备的多个路径上实施所请求的数据传输。

第四方面提供了一种装置,其具有至少一个处理器和在其上存储计算机可读代码的至少一个存储器,该计算机可读代码在被执行时控制至少一个处理器:在包括被设置为用户空间和内核空间的存储器的客户端设备中:在用户空间中提供用于接收去往内核空间的一个或多个应用调用的用户空间控制模块;由用户空间控制模块接收用于请求使用一个或多个内核空间网络服务的数据传输的应用调用;以及在用户空间控制模块的控制下,在从客户端设备的多个路径上实施所请求的数据传输。

第五方面提供了一种装置,其被配置为执行任何前述定义的方法。

附图说明

现在将通过非限制性示例的方式参考附图来描述示例性实施例,其中:

图1是根据示例性实施例的多路径网络架构的框图;

图2是根据示例性实施例的处理模块的组件的示意图;

图3是根据示例性实施例的包括用户空间和内核空间的用户设备(ue)存储器空间的示意图;

图4是根据另一个示例性实施例的ue存储器空间的示意图。

图5是根据另一个示例性实施例的ue存储器空间的示意图。

图6是根据示例性实施例的用于示出应用调用可如何被拦截的图3-5存储器空间的一部分的示意图;

图7是根据示例性实施例的服务质量(qos)感知多路径系统的示意图;

图8是根据另一个示例性实施例的用于示出应用调用可如何被拦截的图3-5存储器空间的一部分的示意图;

图9是根据另一个示例性实施例的qos感知多路径系统的示意图;

图10是示出根据实施例的在网络管理器与ue之间用于生成集中式网络控制策略的交互的示意图;

图11是示出根据实施例的在网络管理器与ue之间用于生成分布式网络控制策略的交互的示意图;

图12是示出根据实施例的使用多连接的内核支持的ue的示意图;

图13是示出根据实施例的可由ue执行的处理步骤的流程图。

具体实施方式

本文中的实施例涉及多路径网络,例如,数据的部署和控制以使用多个替代路径通过网络或多个网络进行传输。特别地,实施例涉及在无线网络(例如,下一代无线网络)上的数据传输,然而本公开不限于此。

由此,实施例涉及可在用户设备(ue)处执行的方法和系统,该用户设备可以是以下中的一个或多个:计算机终端、移动电话、智能电话、膝上型计算机、平板计算机等。ue可以是传统设备,但实施例也可在未来形式的ue中使用。

可彼此独立的多个替代路径的使用可产生如上所述的各种益处,包括性能,由此,将不同的传送路径聚合成一个逻辑连接提高了总体吞吐量,并且可减少延迟。进一步地,qos控制可使用多个路径来控制,例如,通过掩盖临时带宽中断和fec。进一步地,多路径无线通信允许运营商有效地重新使用已有的频谱资源和基础设施以提供高速连接,而不会产生大量成本。

不同的替代路径可使用不同的通信技术;例如,第一路径或分组子流可使用wifi链路,第二路径或分组子流可使用第三代、第四代或第五代(3g/4g/5g)蜂窝网络。因此,不同的用户设备(ue)通信接口可用于单独的子流。

图1示出了根据第一实施例的示例性网络架构10。架构10包括数据源12、具有多个通信接口16a,16b的分割器14、第一ip网络18、第二ip网络20、目的地聚合器24、以及数据目的地26。

数据源12和数据目的地26可包括用于发送和/或接收数据分组的任何形式的通信终端。例如,数据源12和数据目的地26可以各自是以下中的一个:计算机终端、移动电话、智能电话、膝上型计算机、平板计算机、或实际上具有无线数据通信能力的任何形式的终端。

分割器14可以是与数据源12相关联的任何形式的处理模块;分割器可构成数据源的一部分。例如,分割器14可以是数据源12内的硬件、软件和/或固件模块。分割器14的硬件、软件和/或固件可被配置为执行在下面描述的操作,例如通过与ram相关联的处理器、控制器、多个处理器或控制器、存储在存储器(例如,硬盘驱动器或可移动存储器模块)上的一个或多个软件应用。在一些情况下,一个或多个软件应用可以是存储在远程存储器设备上并由分割器14访问的基于云的应用。在本文的实施例中,分割器14在网络级3上操作。分割器14可以是虚拟分割器或物理分割器。

在分割器14内可以有可与空中蜂窝通信相关联的第一通信接口(if1)16a。例如,第一通信接口16a可包括用于经由与蜂窝网络相关联的一个或多个enb基站20进行数据通信的3g/4g/5g通信接口。第二通信接口(if2)16b可经由固线电话网络18与因特网通信相关联。还可提供进一步的通信接口(ifn)。

聚合器24可以是与数据目的地26相关联的任何形式的处理模块;聚合器可构成数据目的地的一部分。例如,聚合器24可以是数据目的地26内的硬件、软件和/或固件模块。聚合器24的硬件、软件和/或固件可被配置为执行聚合或组合在相应链路上的不同子流的操作。聚合器24可包括与ram相关联的处理器、控制器、多个处理器或控制器、存储在存储器(例如,硬盘驱动器或可移动存储器模块)上的一个或多个软件应用。在一些情况下,一个或多个软件应用可以是存储在远程存储器设备上并由聚合器24访问的基于云的应用。在本文的实施例中,聚合器24在网络层3(l3)处操作。聚合器24可以是虚拟聚合器或物理聚合器。

图2是移动终端90(例如,智能手机)的组件的示意图。移动终端90可具有处理器300、302、紧密耦合到处理器并且包括ram102和rom103的存储器304、硬件键306和显示器308。移动终端90可包括用于连接到网络的一个或多个网络接口310,例如,可以是有线或无线的调制解调器。

处理器300连接到每一个其它组件以便控制其操作。

存储器304可包括非易失性存储器,诸如只读存储器、硬盘驱动器(hdd)或固态驱动器(ssd)。rom303除了其它事物还存储操作系统312,并且可存储软件应用314。ram302被控制器300用于临时存储数据。操作系统112可包含代码,该代码在由处理器300结合ram302执行时控制移动终端90的每个硬件组件的操作。

处理器300可采用任何合适的形式。例如,它可以是微控制器、多个微控制器、处理器、或多个处理器。

在一些实施例中,移动终端90还可与外部软件应用相关联。这些外部软件应用可以是存储在远程服务器设备上的应用,并且可以部分或完全地在远程服务器设备上运行。这些应用可被称为云托管应用。移动终端90可与远程服务器设备通信,以便使用存储在其中的软件应用。

操作系统312可将存储器304划分成用于管理操作系统功能的内核空间和用于管理应用软件的用户空间。内核空间通常是存储器304的受保护区域,防止它被应用或操作系统312的其它部分覆盖(overwrite)。内核空间包括通常将用户空间中的应用软件连接到计算机(例如,移动终端90)的硬件的内核程序。内核程序在内核空间中执行它的任务,诸如运行进程和处理中断。相反,与用户相关的任何事情通常发生在用户空间中。

图3是ue(例如,其可以是在上面提及的移动终端90)的存储器空间30的示意图。存储器空间30被设置成用户空间32和内核空间34,它们各自具有在上面提及的角色和属性。

在存储器空间30的用户空间32内可驻留至少一个应用程序42以及用户空间控制器44。在存储器空间30的内核空间34内可驻留一组内核空间功能46以及传统的联网协议48。

还提供了可以是但不限于网络接口卡(nic)的多个网络接口,例如,长期演进(lte)接口50a和wifi接口50b。网络接口不需要像移动电话的情况中那样包括卡。

应用程序42可以是针对内核联网服务进行系统调用(即,通过lte和wifinic50a,50b中的一个或多个进行数据转送的系统调用)的任何形式的应用。例如,应用程序42可用于在ip网络上流传输视频或音频媒体。例如,应用程序42可与视频流传输服务相关。

内核空间功能46表示应用42与硬件即nic50a,50b通信所必需的功能。内核空间功能46通常采用位于操作系统与应用程序之间的库的形式。

传统的联网协议48定义了用于内核空间功能46的操作系统信令协议以与硬件(例如,nic50a,50b)正确地通信。这通常在机器代码级完成,并且联网协议48由操作系统提供商设置。

用户空间控制器44被配置为从去往内核空间功能46的一个或多个应用程序42接收系统调用。换句话说,用户空间控制器44被配置为拦截来自应用程序42的用于访问网络服务的系统调用,诸如请求访问nic50a,50b中的一个或多个以用于在多个相应的子路径上发送或接收数据。

用户空间控制器44可进一步被配置为:响应于接收到针对网络服务的应用调用,配置已有的传统的内核协议48以执行所请求的操作,例如用于使用ltenic50a和/或wifinic50b来发送媒体。由用户空间控制器44进行的该拦截意味着它可有效地至少暂时地替换或绕过通常不能够或不应当被修改的内核空间功能48。

此外,由于用户空间控制器44驻留在用户空间32中,因此,定期更新和重新配置是合适的。

此外,用户空间控制器44可从图3中所示的另一个实体(其是网络管理器40)接收网络控制策略数据。

网络管理器40可以是例如与无线网络相关联的远程设备,其确定与一个或多个网络相关的一个或多个数据表示的策略。例如,网络管理器40可基于各种参数,例如基于每个应用、基于网络条件来实施业务控制策略,并且这些策略可被动态地更新和/或确定。

例如,如果网络管理器40向用户空间控制器44提供如下的策略:在lte链路上发送基于ip的语音(voip)数据同时将非关键照片上传卸载到尽力服务随机接入wifi链路,则这样的策略可通过用户空间控制器将传统的联网协议48配置为实施所述策略来实施。由于一个或多个策略发生变化,因此,传统的联网协议48的配置可利用用户空间控制器44进行。

如果策略允许,则另一个示例可通过nic50a,50b在并行的lte和wifi链路上发送youtube视频。

以此方式,使用用户空间控制器44的非侵入性方法在现有的ue中提供了多连接部署以及基于每个应用的灵活业务控制。

关于进一步的实施例,图4是ue的存储器空间30(其例如可以是与图3中所示相同的存储器空间)的示意图。存储器空间30同样被设置成用户空间32和存储器空间30,用户空间32和存储器空间30各自具有在上面提及的角色和属性。

如前所述,在用户空间32内可驻留应用程序42和用户空间控制器44。在存储器空间30的内核空间34中可驻留一组内核空间功能46以及传统的联网协议48。还可以提供一组网络接口卡(nic),即长期演进(lte)nic50a和wifinic50b。

在该实施例中,特征模块54可从ltenic50a中的用户身份模块(sim)52加载。sim52可以是软件sim或硬件sim卡。也可使用其它形式的存储器模块。特征模块54可包括特定于ltenic50a的专用的拥塞控制模块。将理解,其它特征模块可从具有这种功能的任何其它nic加载。

在该实施例中,传统的联网协议48可基于用于特定特征模块的特征模块54来修改。

关于进一步的实施例,图5是ue30的存储器空间30(其例如可以是与图3和图4中所示相同的存储器空间)的示意图。存储器空间30同样被设置成用户空间32和内核空间34,用户空间32和内核空间34各自具有在上面提及的角色和属性。

如前所述,在用户空间32内可驻留应用程序42和用户空间控制器44。在存储器空间30的内核空间34中可驻留一组内核空间功能46以及传统的联网协议48。还可提供一组网络接口卡(nic),即长期演进(lte)nic50a和wifinic50b。

在该实施例中,还可在用户空间32中提供新的联网协议56。这有效地绕过了传统的联网协议48。新的联网协议56可在所注入的代码基中实现,例如,使用mpudp,基于mpudp的tcp,fec感知的mpudp,以及基于raw套接字的协议栈中的一个或多个。

如所提及的,用户空间控制器44有效地拦截了来自去往内核空间34的一个或多个应用42的应用系统调用。这可通过以下操作中的一个或多个在用户空间32中执行:

-在激活应用之后修改应用代码;应用可由所谓的ld预加载(ld_preload)模块来加载,ld_preload模块链接到所修改的c库以用于socket调用。

或者通过以下的操作来执行:

-在用户空间32中修改应用执行环境,诸如通过使用所谓的xposed框架或类似的java方法挂钩机制将系统调用挂钩注入到androiddalvik/art虚拟机中。虚拟机可在沙箱中实现,该沙箱每次被重新加载该虚拟机的新实例。androiddalvik虚拟机的替代方案是可用的,并且这作为一个示例被给出。某些运营商可强制使用不同版本的java,诸如例如支持felica的版本。

一旦以此方式控制数据流,将理解,可以以参照图3-5描述的方式来实施多连接和网络控制特征。

参考图6,现在将根据实施例来描述用于多连接部署的过程。

该过程是基于修改加载标准应用操作所需的库的模块的。该过程可涉及在应用激活期间用实施多连接和数据流控制的一个或多个所修改的库来动态地替换系统调用库。例如,在android操作系统中,所谓的ld_preload函数可用于链接替换库。

在图6中,用户进程由元素62表示并且驻留在用户空间32中。在应用被调用时,生成用户进程62,其在被配置为调用被链接到包括替换方法72的替换库70的库调用68的stockdalvik虚拟机64上运行java代码66。替换方法72被返回到库调用,然后被返回到用户空间32中的java代码66。所有这些操作被执行而不会干扰内核空间34。

在该示例中,标准用户数据报协议(udp)套接字调用例如可用对多路径udp(mpudp)方法的调用进行替换,mpudp方法使得多个并行的udp套接字被打开并且实施多路径调度器。

参考图7,在另一个示例中,利用fec的qos感知多路径tcp(mptcp)连接可使用存储关于应用特定的qos目标的信息的qos数据库以模拟的方式来实施。在该示例中,可在从网络管理器40接收到之后被本地存储在用户空间32中的qos数据库82提供了用于与以与图6的示例相同的方式实现的自定义库92一起使用的应用qos设置。在所示的示例中,在用户空间32中多个用户进程84a,84b,84c被调用,并且经由它们的所修改的库链接将它们相应的套接字文件描述符(fd)和应用唯一标识符(uid)传递给自定义库92。

例如,基于所接收的套接字fd、应用id和qos设置,自定义库92可被设置为:

(i)取回用于应用uid的qos设置(94);

(ii)将套接字选项应用于qos定义(96);以及

(iii)向套接字代理分配域名(98)。

每个进程84a,84b,84c的结果可被传送到可解析代理域名服务器(dns),并在ip选项中传递qos参数的自定义内核网络栈100。自定义内核网络栈100可使用qos设置解释和实施模块、qos调度器模块104、fec模块108和mptcp模块110。

用于系统调用拦截和多连接实施的另一个方法可包括在用户空间32中修改应用执行环境。参考与图6类似的图8,用户进程由元素122表示并且驻留在用户空间32中。在应用被调用时,生成用户进程122,其在被配置为调用一个或多个所注入的系统调用挂钩128的stockdalvik虚拟机123上运行java代码126。

在该实施例中,通过使用所谓的xposed框架,系统调用挂钩128是基于android系统的所谓的xposed挂钩。

一个或多个xposed挂钩128被配置为执行实施所需的特征的一个或多个所修改的功能。一个或多个所修改的功能被实现为xposed模块(java代码)128,并且可包括诸如但不限于执行代码、修改方法参数或结果的功能,作为一些示例给出。结果被返回到xposed挂钩128并且被返回到java代码126。

作为对图7的补充,图9示出了如何使用图8的xposed概念或者实际上任何使用在用户空间32中修改应用执行环境的概念来实施qos感知的mptcp。图9与图7类似,除了所修改的库链接90被用挂钩140进行替换之外。

策略驱动的多连接控制

现在将参照图10至图12来描述与网络管理器40可如何操作相关的实施例。

参考图10,总的来说,网络策略包括在网络管理器40处生成的一组数据。网络策略可在步骤178中在网络管理器40处预先主动地生成,并且存储在策略数据库180中。策略数据库180可被存储或复制到sim卡,例如,ltesim卡52。可替代地,sim可以是软件sim。可使用其它形式的存储器模块。可替代地,网络策略也可从远程服务器即时上传。网络策略可定义网络使用规则,例如与服务质量(qos)的关系,包括应用服务要求和/或服务质量要求。规则可涉及公共连接或不同的连接。

具有应用172的ue170可将它的应用uid提供给多连接和qos控制模块174,其可构成用户空间控制器44的一部分,然后其可利用qos简档查询来询问策略数据库180,无论策略数据库180位于何处。策略数据库180可存储应用特定的网络配置,该应用特定的网络配置以配置文件的形式被传递回采用套接字选项形式的用户空间控制器44。这允许对诸如速率上限或接口类型的套接字参数的集中式网络优化。

在一些实施例中,反馈可从用户设备中的测量模块176接收。

参照图11,实施网络控制策略的替代方法可包括:基于从本地测量模块196接收的测量和从网络管理器40的策略生成模块200接收的算法准则,直接在ue190中生成策略。同样地,反馈可在策略生成模块200处从ue190的测量模块196接收。该方法数据交换开销方面可以是更有效的。

否则,该替代方法将以与图10的示例对应的方式进行操作。

一般地,实施例使得能够重新使用所期望的特征的内核支持。例如,在未来的智能手机和其它通信设备中可期望对mptcp的支持。

现在参考图12,ue210的操作系统可通过使用专用api218将应用系统调用转发到用户空间控制器44来支持在上面描述的方法和系统。在所述用户空间控制器44上的实施在以下方面是有利的:它提供了与敏感内核操作的隔离以及允许将已知的、完善建立和支持的编程方法用于它的实施。

内核空间34还可进一步通过以下操作来支持在上面描述的方法和系统的操作:提供网络栈层的各种参数,诸如无线电网络信号强度(在物理层上)、切换时间和竞争测量(媒体接入层)、路由特性(网络层)、拥塞控制状态(传输层)、以及诸如电池寿命的ue相关参数。

图13是示出了可由ue在实现在上面描述的方法和系统中执行的处理步骤的流程图。

第一操作13.1包括:在客户端设备(或ue)的用户空间中提供用于接收去往内核空间的一个或多个应用调用的用户空间控制模块。另一个操作13.2包括:由用户空间控制模块接收用于使用一个或多个内核空间网络服务的数据传输的应用调用。另一个操作13.3包括:在用户空间控制模块的控制下,在从客户端设备的多个路径上实施所请求的数据传输。

将理解,在上面描述的实施例仅仅是说明性的并且不限制本发明的范围。在阅读本申请之后,其它变化和修改对于本领域技术人员将是显而易见的。

此外,应理解,本申请的公开内容包括在本文中明确或隐含地公开的任何新颖特征或特征的任何新颖组合,或其任何概括,并且在本申请或由此衍生的任何申请的诉讼期间,可构想新的权利要求以覆盖任何这种特征和/或这种特征的组合。

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