具体实施方式
“无线设备”可以指代使用无线通信的任何类型的电子设备。作为示例,无线设备可以包括以下中的任何一种:便携式计算机、智能电话、平板计算机、游戏设备、个人数字助理(PDA)、可穿戴设备(例如,智能手表、智能眼镜等)、台式计算机、车辆(或者车辆中的电子设备)、健康监测器等。
无线通信可以在无线网络中发生,诸如根据电气和电子工程师协会(IEEE)802.11协议的局域网(WLAN)。根据IEEE 802.11的无线通信也被称为Wi-Fi无线通信。传统上,在WLAN内,无线设备能够与一个或多个接入点(AP)建立无线链路。根据IEEE 802.11术语,接入点可以被称为AP STA(“站”的简称)。使用AP通信的无线设备,诸如用户设备或者其他类型的设备,可以被称为非AP STA。
在其他示例中,Wi-Fi直连(Wi-Fi Direct)可以被用于执行无线对等(P2P)通信。Wi-Fi直连是用于在IEEE 802.11 WLAN协议之上建立的对等网络的机制,也被称为Wi-Fi对等(P2P)。Wi-Fi直连被由Wi-Fi联盟提供的标准制定。能够根据Wi-Fi直连通信的无线设备的布置包括P2P组所有者(GO)设备和P2P客户端设备。GO设备提供类似于AP的路由和分组转发功能,而客户端设备作为非AP STA操作。Wi-Fi直连过程不同于常规IEEE 802.11/Wi-Fi之处在于它们如何执行发现和组形成。一旦Wi-Fi直连组已经被形成并且正在操作,在组中的设备之间的路由和分组转发类似于传统AP使用的IEEE 802.11 Wi-Fi的路由和分组转发。
Wi-Fi直连布置包括星网络架构,其中GO设备处于星的中心并且互连Wi-Fi直连组中的其他客户端设备。Wi-Fi直连组中的其他客户端设备形成星的点,并且在Wi-Fi直连客户端设备之间的流量路由通过GO设备。
尽管在一些示例中参考了Wi-Fi直连组,但是注意,更普遍地,根据本公开的一些实现的技术或者机制适用于其他无线设备组,其中组设备被用于以星网络架构互连组中其他无线设备。“组设备”可以指代组中的无线设备,数据通过该无线设备被从组的第一无线设备路由到组的另一无线设备。
组中的一些无线设备可以不具有到广域网(WAN)的连接。WAN可以指代无线设备组外部的任何网络。在一些示例中,无线设备组可以形成局域网(LAN),或者可以是LAN的一部分。LAN外部的网络可以被称为WAN。WAN的示例是公共网络,诸如因特网。
在一些示例中,无线设备组中的至少一个无线设备可以包括多个无线接口。无线设备的第一无线接口可以被用于执行与无线设备组中其他成员的无线通信。例如,该第一无线接口可以被用于执行Wi-Fi通信。无线设备还可以包括第二二线接口,第二无线接口可以被用于连接到另一无线网络,诸如蜂窝网络。包括该第二无线接口(诸如,蜂窝网络接口)的无线设备可以使用第该二无线接口来连接到WAN。
在一些示例中,无线设备组中的至少一个无线设备可以不具有到WAN的无线连接。在一些情况下,这种不具有WAN连接的无线设备可以包括不具有第二无线接口(诸如,蜂窝网络接口)的无线设备,换句话说,这个无线设备包括执行Wi-Fi通信的无线接口,但是不包括与广域网通信的无线接口。在其他情况下,不具有WAN连接的无线设备可以包括第二无线接口(诸如,蜂窝网络接口),但是该无线设备暂时地处于提供到WAN连接的网络的覆盖之外。
为了解决包括至少一个不具有WAN连接的无线设备的无线设备组的问题,提供了技术和机制,其中借出无线设备(或者多个借出无线设备)能够将它(它们)的WAN连接借出给不具有WAN连接的无线设备。借用借出无线设备的WAN连接的、不具有WAN连接的无线设备被称为借用无线设备。
在无线设备组是无线设备的Wi-Fi直连组的示例中,除了Wi-Fi直连GO设备之外的Wi-Fi直连客户端设备能够与Wi-Fi直连组中的其他无线设备共享Wi-Fi直连客户端设备的WAN连接。
在后续讨论中,参考了包括借用无线设备、借出无线设备和组设备的无线设备组。注意,一个物理设备可以担任多种角色,例如,单个物理设备可以担任借用无线设备和组设备的角色,或者备选地,可以担任借出无线设备和组设备的角色。因此,参考借用无线设备、借出无线设备、和组设备可以包括参考执行相应的借用、借出和组角色的单独物理设备,或者备选地可以包括参考多个物理设备,其中至少一个物理设备担任多种角色。
1.问题
各种问题可以与借用无线设备对借出无线设备的WAN连接的共享相关联。以下是一些问题的示例。
问题1:由具有WAN连接的无线设备提供许可,以用于允许无线设备组的其他无线设备借用WAN连接。
问题2:使用无线设备组的借出无线设备的WAN连接的借用无线设备的路由数据。
问题3:由借用无线设备使用无线设备组中的借出无线设备的多个WAN连接。
问题4:认证和授权借用无线设备,以共享借出无线设备的WAN连接。
问题5:更改将WAN连接提供给借用无线设备的借出无线设备。WAN连接的改变可以导致网络地址、诸如客户端互联网协议(IP)地址发生改变,如由WAN中的应用服务器或者安全网关所示。会话中IP地址的改变可以产生针对一些应用类型的问题。
2.通用解决方案
图1是包括无线设备组100的示例网络布置的框图。在一些示例中,无线设备组100可以是Wi-Fi直连组。在其他示例中,组100可以包括不同类型的无线设备组。组100中的无线设备包括组设备102,组设备102互连包括借用无线设备104和借出无线设备106的其他无线设备。在无线设备组100是Wi-Fi直连组的示例中,组设备102是GO设备,以及无线设备104和无线设备106是P2P客户端设备。尽管仅一个借用无线设备104和一个借出无线设备106在图1中被示出,但是注意,在其他示例中组100可以包括多个借用无线设备和/或多个借出无线设备。
组设备102与借用无线设备104和借出无线设备106无线地通信。借出无线设备106具有无线接口108,无线接口108提供到WAN 112的无线连接110。无线接口108可以被称为WAN连接接口。
借出无线设备106能够将它的WAN连接借出给组100中的另一无线设备,诸如借用无线设备104。注意,在进一步示例中,借用无线设备104可以借用多个借出无线设备的WAN连接。在这种情况下,多个借出设备的总吞吐量可以被借用无线设备104使用,来增加借用无线设备104的数据通信速率。此外,借用多个借出无线设备的WAN连接的能力可以提高鲁棒性、弹性、和可用性,因为如果另一无线设备丧失功能或者是无法借出其WAN连接,借用无线设备104可以继续使用在操作的借出无线设备的WAN连接。
其中不具有WAN连接的至少一个无线设备能够借用另一无线设备的WAN连接的布置,可以被称为“分布式热点”。更一般地,第一无线设备能够使用第二无线设备地WAN连接。
图2是根据一些示例的,可以由借用无线设备104执行的示例过程的流程图。根据图2,借用无线设备104与组设备102通信(202处),来从组设备102获得标识至少一个借出无线设备(例如,借出无线设备106)的信息,其中借用无线设备能够从该至少一个借出设备借用该至少一个借出无线设备到WAN(例如,WAN 112)的无线连接。
借用无线设备104还使用该至少一个借出无线设备的被借用的无线连接,通过WAN112传送数据(204处)。
3.使用应用层来配置和管理WAN连接的借出
根据本部分中所述的一些示例的解决方案可以被用于解决上述的问题1。这种解决方案涉及使用无线设备的应用层处的代码,来配置和管理WAN连接的借出。应用层处的代码可以被称为应用。应用层是在无线设备中通信协议栈的通信协议层之上的无线设备中的层,其中通信协议层被用于执行网络上的通信。通信协议栈可以包括以下层的一些组合:传输控制协议(TCP)层、用户数据报协议(TCP)层、IP层、MAC层等。
组设备102可以托管分布式热点应用服务器,诸如超文本传输协议(HTTP)服务器或者Web服务器。HTTP是可以被用于建立会话(被称为HTTP会话)的应用协议,通过该会话消息(被称为HTTP消息)可以在设备之间被交换以执行设备之间的通信。HTTP由请求注解(Request for Comments,RFC)7230-7237描述。尽管在一些示例中参考了HTTP服务器,但是注意,在其他示例中,其他应用层可以在组设备102中被使用,以管理无线设备组内WAN连接的借用和借出。
由无线设备的用户使用无线设备中的分布式热点应用(诸如,借出无线设备106),来配置用于在组100的其他成员之中共享无线设备的WAN连接的许可。与被使用分布式热点应用配置的共享许可相关的信息被提供给组设备102处的分布式热点应用服务器,并且这个共享许可信息可以被用于实现:在借出无线设备与借用无线设备之间的数据单元(以帧或者分组的形式)的转发或路由的目的(诸如,通过使用在部分4、5或者以下进一步讨论的部分6中所述的技术)。数据单元的转发或路由可以包括第2层(L2)转发,诸如,通过使用媒体访问控制(MAC)地址。备选地,数据单元的转发或路由可以包括第3层(L3)路由,诸如,通过使用互联网协议(IP)地址。
在后续讨论中,参考Wi-Fi直连组以及这样Wi-Fi直连组中的无线设备。注意,下文中的技术或机制也可以被应用到其他类型的无线设备组。
如上所述,通过使用分布式热点应用,Wi-Fi直连组的无线设备可以指示该无线设备与组中其他无线设备共享该无线设备的WAN连接、或者借出其WAN连接的意图。类似地,使用分布式热点应用,Wi-Fi直连组的无线设备可以指示从组中其他无线设备借用WAN连接的期望。来自借用和借出无线设备处的分布式热点应用的这种信息,在组设备102中的分布式热点应用服务器处被存储为信息。
过程1
以下结合图3中所示的示例网络布置描述过程1,过程1由需要利用另一网络设备(例如,设备2或设备3)的WAN连接的借用无线设备(例如,设备1)使用。如图3中所示,设备2具有通过无线接入网络节点308(例如,蜂窝接入网络节点)到WAN 310的WAN连接,而设备3具有通过无线接入网络节点312(例如,蜂窝接入网络节点)到WAN 310的WAN连接。
如图3的示例中进一步所示的,GO设备102包括:HTTP服务器302、动态主机配置协议(DHCP)服务器304、以及IP路由器306。DHCP是在IP网络上使用网络协议,以用于动态分发网络配置参数,诸如,用于接口和服务的IP地址。
尽管是参考“IP路由器306”,但是注意,节点306可以在基于第2层MAC信息引导流量时用作第2层的交换机,并且节点306可以在基于IP(第3层)信息引导流量时用作第3层的路由器。
图3中的过程1指由借用无线设备(图3中是设备1)执行的过程。假设,分布式热点应用(例如,HTTP应用)被安装在设备1上,设备1期望借用另一无线设备的WAN连接。
作为常规Wi-Fi直连组加入过程的一部分,一旦设备1已经被分配了Wi-Fi直连组中的IP地址,则设备1可以访问被托管在GO设备102上的HTTP服务器302。HTTP服务器302的IP地址可以被设备1使用以下中的任何一种来发现:
·设备1可以发送域名系统(DNS)查询,DNS包括HTTP服务器的域名,其中域名可以是由标准或一些其他源指定的完全限定域名(FQDN)。DNS查询可以被发送给GO设备102的DNS服务器。DNS服务器可以利用HTTP服务器302的IP地址来响应DNS查询。DNS是分层分布式的命名系统。DNS的关键能力是其提供了更易于记忆的域名(文本串)到数字IP地址的转换。
·设备1可以使用在Wi-Fi直连标准源或者另一源中指定的HTTP服务器302的IP地址。
·设备1可以使用与GO设备102的DHCP服务器304的DHCP交换来获得HTTP服务器302的IP地址。
·HTTP服务器302的IP地址可以被GO设备102动态地提供给设备1,作为对现有Wi-Fi直连组形成过程的增强。
作为分布式热点应用服务器的示例HTTP服务器302向设备1呈现以下选项。
根据选项1,HTTP服务器302可以提供信息,该信息由设备1可使用来显示图形用户接口(GUI),诸如在网页页面上,其中GUI包括GUI按钮或者其他控制元件或者输入字段,以使设备1处的用户能够指示该用户是否需要借用任何可用的WAN连接。例如,如果用户激活GUI按键或其他控制元件、或者将命令或其他信息输入到输入字段,则向HTTP服务器302提供设备1请求借用另一无线设备的WAN连接的指示。在选项1情况下,GUI按钮或GUI中其他指示的激活是设备1可以借用组中任何一个或多个借出无线设备的WAN连接的指示。
根据选项2,设备1处的GUI可以显示:Wi-Fi直连组中具有WAN连接的所有无线设备的标识符,或者Wi-Fi直连组中仅已表示共享WAN连接的意愿和/或能力的特定无线设备的标识符,或者两者的标识符。设备1处的用户可以在GUI中选择无线设备,该用户期望从所选择的无线设备借用WAN连接。
在选项1或者选项2的情况下,设备1还可以指示(诸如,利用GUI中的控制元件或输入字段)设备1是否可以利用多个WAN连接(并且如果是,则这种WAN连接有多少)。通过由设备1处的HTTP应用呈现的GUI提供的这样的指示可以被HTTP服务器302接收和存储。
过程2
下文所述的由借出无线设备(图3中的设备3)执行的过程2,可以授权许可,用于一个或多个借用无线设备使用借出无线设备的WAN连接。
假设分布式热点应用(例如,HTTP应用)被安装在设备3上。假设用户(例如,设备3的所有者)准备将设备3的WAN连接借出给其他无线设备。
如上文针对过程1所述的,设备3从Wi-Fi直连组获得IP地址,并且可以接入HTTP服务器。.
GO设备102中的HTTP服务器302可以将以下选项中的一项提供给设备3。
根据选项1,GUI可以由设备3呈现(基于来自GO设备102的信息),并且设备3的用户可以使用GUI来指示设备3准备与Wi-Fi直连组中的任何成员共享设备3的WAN连接。例如,设备3的用户可以激活GUI中的控制元件或者将信息输入到输入字段,来指示与Wi-Fi直连组中的任何成员共享设备3的WAN连接的意愿。
根据选项2,GUI(例如,GUI 316)可以由设备3呈现(基于来自GO设备102的信息),以显示设备3可以与之共享设备3的WAN连接的无线设备的列表。设备3的用户可以在GUI中选择准备与被被列出的无线设备中的哪个无线设备共享设备3的连接。
通过由设备3处的HTTP应用呈现的GUI提供的这种选择可以被HTTP服务器302接收和存储。
过程3
后续的图3中的过程3可以由GO设备102执行,来将Wi-Fi直连组中的(多个)借用无线设备与Wi-Fi直连中的(多个)接触无线设备绑定。该绑定可以生成关联表314,关联表314可以列出:针对图3中所示的Wi-Fi直连组中的每个给定借用无线设备,哪个(些)借用无线设备已经被选择以用于给定的无线设备。在一些示例中,表314还可以标识具有到WAN 310的直接WAN连接的无线设备。
过程3可以在借用请求和借出许可有变化的任何时间被运行,诸如响应于无线设备指示该无线设备期望借用(或停止借用)借出无线设备的WAN连接(使用上文的过程1),或者响应于无线设备指示该无线设备能够(或者不再能够)借出其WAN连接(使用上文的过程2)。
GO设备102中的分布式热点应用服务器(例如,HTTP服务器302)确定可用的借出无线设备中的哪个借出无线设备将被用于服务特定的借用无线设备。如果有多个借出无线设备可用于将它们的WAN连接借出给特定的借用无线设备,则以下示例技术中任何一个可以被用于决定哪些(多个)借出无线设备将被选择。
1)如果借用无线设备可以利用所有可用的借出无线设备的WAN连接,则GO设备102中的分布式热点应用可以授权许可,用于使用所有可用的借出无线设备的WAN连接。
2)如果可用的借出无线设备的数目大于借用无线设备可以使用的WAN连接的数目,则由GO设备102中的分布式热点应用执行的对借出无线设备的选择可以包括选择更高排序的借出无线设备,其中排序可以根据以下中的任何一项或多项:(a)已经与每个借出无线设备关联的借用无线设备的数目,其中与更少数目借用无线设备关联的借出无线设备有更高的排序;(b)用户偏好,其中借用无线设备的用户可以指示针对不同借出无线设备的相对偏好等级(例如,可以被输入到借用无线设备的GUI中);或者(c)任何其他因素。
过程4
以下所述的过程4由GO设备102执行,来提供用于L2或L3转发或路由的配置。
为了配对已经使用过程3绑定的(多个)借出无线设备与(多个)借用无线设备,如在下文中的部分4、5和6中所述的操作可以被采用。
其他过程和增强
以下描述其他的过程和增强。
借出无线设备可以使用HTTP应用来指示该借出无线设备不再具有WAN连接,或者该借出无线设备不再期望借出其WAN连接。在一些示例中,借出无线设备可以指定哪些借用无线设备被禁止使用该无线借出设备的WAN连接。
借出无线设备可以在每个无线借用设备上设置用量上限。可以使用HTTP应用通知借用无线设备任何用量上限。对借出无线设备的WAN连接的使用的监测可以由借出无线设备本身或者由GO设备执行。用量上限可以根据传输的最大字节数或允许的最大吞吐量(或者数量的其他计数)而被指定。如果使用监测在借出无线设备执行中被执行,则借出无线设备可以通知GO设备102中的分布式热点应用服务器(例如,HTTP服务器302)用量上限已经满足。
使用监管可以在借出无线设备或GO设备102处被执行,使用监管包括:监测借出无线设备的WAN连接的使用以及确定使用是否已经超过用量上限;。
由于超出用量上限而引起的借用无线设备与借出无线设备之间的路由的终止的通知可以由GO设备102经由借用无线设备的HTTP应用发送给借用无线设备的用户。
在进一步的示例中,附加的过程可以被用于使借用无线设备能偶指示:该借用无线设备不再期望借用指定借出无线设备的WAN连接或者多个(例如,所有)借出无线设备的WAN连接。
4.使用应用层信息配置在借用与借出无线设备之间的MAC层转发
这个部分所述的解决方案可以被用于解决上文所述的问题2。以下提供了图3中描绘的过程4的示例,以用于提供使用MAC执行帧的转发的配置。
借用无线设备被通知(或者学习)借出无线设备的以太网MAC地址。另外,为了使借用无线设备可以区分WAN绑定流量与LAN流量,借用无线设备还可以被通知:该LAN上使用的IP地址范围;这个IP地址范围包括:LAN上的目的设备的IP地址、或IP地址的范围。前述信息(包括借出无线设备的MAC地址和LAN的IP地址范围)可以被直接或间接传达给借用无线设备。
信息可以被GO设备102使用分布式热点应用直接提供给借用无线设备(例如,处于在GO设备102处HTTP服务器302与借用无线设备中HTTP应用之间的HTTP级别)。
备选地,信息可以以以下示例方式中的一种方式被间接提供给借用无线设备。
GO设备102中的HTTP服务器302仅向借用无线设备通知新的借出无线设备(到WAN的网关)可用。作为响应,借用无线设备向GO设备102发送DHCPINFORM消息(根据DHCP),并且GO设备102中的DHCP服务器304通过确定借用无线设备的标识来响应。然后,DHCP服务器304利用被发送给借用无线设备的DHCPACK来响应DHCPINFORM消息。DHCPACK消息可以包括借出无线设备的IP地址以及LAN的IP地址范围。
在向借用无线设备发送信息的间接方式的另一示例中,借用无线设备可以使用根据地址解析协议(ARP)的交换的借出无线设备的IP地址来确定借出无线设备的MAC地址。ARP是用于将网络层(IP)地址解析到链路层(以太网MAC)地址的协议。
一旦借用无线设备已经获得了借出无线设备的MAC地址,使用MAC地址的分组的L2转发可以被执行。
由借用无线设备始发的分组
以下描述了由借用无线设备始发的分组的路由。
无论借用无线设备何时发送去往WAN 310的IP分组,借用无线设备都使用借出无线设备的MAC地址作为目的MAC地址。
相反地,当发送去往LAN上IP地址的分组时,借用无线设备将802.11 MAC目的地址设置为与目的地IP地址相对应(其中设备可以使用ARP学习与目的地IP地址相对应的MAC地址),同时802.11 MAC接收器地址被设置为AP的MAC地址。
假设由借用无线设备发送的分组包括借出无线设备的目的MAC地址,则GO设备102中的节点306(用作第2层交换机)将分组转发给借出无线设备。
一旦从GO设备102接收到分组,借出无线设备检查从GO设备102接收的分组的目的地IP地址,以确定所接收的分组是否将被转发到WAN 310上,或者该分组是否终止在借出无线设备自身处。
分组将终止在借用无线设备处
以下描述了将被在借用无线设备处终止的分组的路由。
借出无线设备接收到来自WAN 310的分组。在一些示例中,借出无线设备可以包括网络地址转换器(NAT),以对被包括在所接收分组中的目的地IP地址应用网络地址转换。网络地址转换通过将IP地址和端口号映射到IP地址和新的UDP/TCP端口号来工作(IP地址和端口的映射被称为具有端口转换的NAT-PT-NAT)。
借出无线设备使用ARP,并且转换目的地IP地址以确定借用无线设备的802.11MAC目的地址。然后,借出无线设备建立具有MAC目的地址的802.11 MAC分组数据单元(PDU),该MAC目的地址被设置为借用无线设备的MAC目的地址。MAC PDU的MAC源地址被设置为借出无线设备的MAC地址,并且MAC PDU的MAC接收机地址被设置为AP(图3中是GO设备102)的MAC地址。
前述假设了借用无线设备使用单个借出无线设备的WAN连接。
此外,上文的解决方案完全关于L2转发来描述,而在GO设备102处可用于的IP路由功能未被利用。
5.使用应用层信息来配置借用无线设备与借出无线设备之间的IP/IPsec隧道
这部分所述的解决方案可以被用于解决上述的问题2和问题4。
解决问题2的解决方案
为了解决问题2,以下解决方案可以被采用。
这个解决方案类似于部分4中所描述的解决方案,但是不同之处在于在借用无线设备与借出无线设备之间建立IP或IPsec(IP安全)级别隧道。
IP隧道是一种技术,通过该技术由IP路由网络节点A生成或者抵达IP路由网络节点A的IP分组可以被迫使以到达IP路由网络节点B处。这通过封装过程来实现,在封装过程中原始IP分组(IPo)被封装在另一IP分组内(IPe)(由其承载)。IPe(外部IP分组)的目的地IP地址被设置为隧道末端的目的地IP地址,即,以上示例中的IP路由网络节点B的IP地址。
多隧道技术是可用的,诸如IPsec技术。利用IPsec,除了执行上文所述的隧道,被在封装的分组中承载的有效载荷流量(IPo)被加密以避免窃听。在IPsec的情况下,由于执行加密,两个隧道端点都必须相互认证和授权。使用网络秘钥交换(版本2)(IKEv2)可以实现认证和授权以及隧道的建立。
借用无线设备被GO设备102直接或间接通知:可用的借出无线设备的IP地址。
使用借用无线设备中的HTTP应用可以直接地通知、借用无线设备借出无线设备的IP地址。
备选地,借用无线设备可以如下来间接获得借出无线设备的IP地址。借用无线设备可以被HTTP应用通知:与借出无线设备对应的一些文本标签(例如,与设备名称对应的文本串)。在借用无线设备(与包括DNS服务器的GO设备102)执行DNS查找来确定借出无线设备的IP地址之后,借用无线设备使用该文本串来建立FQDN。
借用无线设备使用借出无线设备的IP地址来建立到接触无线设备的IP或IPsec隧道,诸如,在一些示例中,通过使用网络秘钥交换(版本2)。
以下描述了针对始发自或者终止在借用无线设备处的IP分组的分组转发。
始发自借用无线设备的IP分组
借用无线设备首先做出确定:IP分组是否去往LAN或去往WAN。使用DHCP,借用无线设备可以已经被通知了LAN上的IP地址范围。备选地,在借用无线设备中可以存在与应用相关联的一些其他配置数据,其他配置数据通知借用无线设备:应用服务器或其他目标端点是否将仅在WAN上而非在LAN上可用。
如果分组是去往WAN,则借用无线设备将与WAN相对应的目的地IP地址包括在分组中。包括与WAN相对应的目的地IP地址的分组可以如下通过IP/IPsec隧道被传输。
用于内部IP报头和外部IP报头的分组中的源IP地址(由借用无线设备填充)可以是相同的,并且已经被GO设备指定给设备。用于外部(隧道)IP报头的目的地IP地址(由借用无线设备填充)被设置为借出无线设备的IP地址。内部IP报头的目的地IP地址被设置为互联网应用服务器的IP地址。
WAN连接借用设备将分组中的目的MAC地址设置为GO设备102的MAC地址。注意,GO设备102中的IP路由器306仅使用目的地IP地址来路由(如路由器通常那样)。
包含与LAN相对应的目的地IP地址的分组不在IP或IPsec隧道中被承载,而是以常规Wi-Fi直连方式被承载。
IP分组终止在借用无线设备处
借出无线设备接收来自WAN 310的分组。借出无线设备检查从WAN 310接收的分组的目的地IP地址。
如果目的地IP地址(在任何网络地址转换之后的)借用无线设备的目的地IP地址相对应,则借出无线设备将所接收分组封装在IP/IPsec隧道中,借出无线设备与该借用无线设备已建立了IP或IPsec隧道(外部IP报头目的地IP地址被设置为借用无线设备的IP地址,外部IP报头源地址被设置为借出无线设备的IP地址)。借出无线设备将分组中的目的MAC地址设置为GO设备102的MAC地址(其中路由在IP层发生)。
如果所接收的分组的目的地IP地址(在任何网络地址转换之后的)与借用无线设备的IP地址不对应,,则通过将分组的目的MAC地址设置为GO设备102中的路由器306的地址该分组被转发给GO设备102中的路由器306,该借用无线设备与借出无线设备与之已建立了IP或IPsec隧道。
所描述的上述解决方案用于借用无线设备利用单个借出无线设备的情况。
此外,上述解决方案是关于经由GO设备中的IP路由器306、基于L3 IP级别隧道来描述的。
用于解决问题4的解决方案
以下描述了用于解决问题4的解决方案。
若干安全机制可以被使用,诸如图4的示例网络布置中的。在第一安全机制402的情况下,期望加入Wi-Fi直连组的无线设备将被GO设备102认证或授权来这样做(例如,使用Wi-Fi保护设置(WPS)/按钮)。加密秘钥在组形成期间被提供,以用于加密无线设备与GO设备102之间的链路。
在第二安全机制404的情况下,蜂窝WAN连接的设备或者具有WAN连接的其他无线设备将被由蜂窝网络(或其他合适的网络)认证或授权,并且将会通过蜂窝无线电链路应用加密。
在第三安全机制406的情况下,如果无线设备不信任该无线设备的信息所传递通过的Wi-Fi直连组中的所有成员,则无线设备可以在其企业408中建立虚拟专用网络(VPN)。
根据本公开的一些实现,另一安全机制410涉及借出无线设备(例如,图4中的设备3)确保仅借出无线设备已经授权和认证的Wi-Fi直连组中成员才可以利用基础无线设备的WAN连接。该其他安全机制可以采用以下过程。
借用无线设备与借出无线设备建立IPsec隧道。被用于建立IPsec隧道的凭证可以根据多个技术中的任何一个而被同意。例如,借出无线设备的用户可以以带内或带外方式(例如,口头)与借用无线设备的用户共享密码,然后,借用无线设备的用户将密码键入到由运行在借用无线设备上的分布式热点应用呈现的GUI中。
借出无线设备的用户还可以被要求将密码键入到运行在借出无线设备上的分布式热点应用的GUI中。
备选地,预配置的或随机生成的密码或口令码(例如,PIN)可以被使用,在这种情况下,借出无线设备的用户将不必把密码或口令码输入到借出无线设备处的GUI中。
注意,这里假设Wi-Fi直连组中的任何无线设备可以经由GO设备102中的IP路由器在IP层处联系Wi-Fi直连组中的任何无线设备。
针对始发自借用无线设备的分组的传输,其中分组去往WAN 310,借出无线设备检查IPsec隧道中的完整性保护信息,以确保仅有借出无线设备已经授权或认证的设备正在利用该借出无线设备共享的WAN连接。在剥离外部IP报头(作为隧道终止的一部分)之后,如果目的地IP地址在WAN 310中,则借出无线设备将分组转发给WAN 310。
针对从WAN 310接收并且终止在借用无线设备处的分组的传输,如果接收的分组中的目的地IP地址是借用无线设备的IP地址,则分组被封装在IPsec隧道中(即,添加外部IP地址和IPsec报头),并且然后,IP分组被转发给GO设备102,GO设备102向借用无线设备路由分组。借用无线设备可以检查接收的分组的完整性,并且如果完整性测试通过,则借用无线设备剥离外部IP报头(作为隧道终止的一部分)并且将内部IP分组传递向上到更高层。
注意,如果GO设备102自身正在提供WAN连接,则附加的IPsec隧道不被使用,并且GO设备102可以依赖于现有的Wi-Fi直连认证/授权和加密。
6.使用应用层信息来配置在借用无线设备与借出无线设备之间的基于源IP地址的路由
这部分中描述的解决方案可以被用于解决问题2。
该解决方案类似于部分4中所述的解决方案,不同之处在于,分组的路由或转发通过GO设备102中IP路由器306中的下一跳路由器表320(如图3中所示)的配置被在IP级别执行。然而,不同于传统IP路由器,针对从借用设备向WAN发送分组的情况,GO设备102中的IP路由器306考虑分组的目的地IP地址(正常)和源IP地址(不正常)两者。特别地,如果目的地IP地址是在LAN的IP地址范围内的IP地址,则GO设备102中的路由器306基于目的地IP地址以传统方式转发IP分组,以用于Wi-Fi直连网络。然而,如果目的地IP地址与LAN外部的IP地址相对应(即,在WAN上的IP地址),则GO设备102中的路由器306使用源IP地址使用下一跳路由器表320来执行对下一跳路由器的查找(其将是借出无线设备)。使用在HTTP应用中被提供的信息,获得下一跳IP路由器(借出无线设备的IP地址)与特定源IP地址(借用无线设备)的映射。
使用在HTTP服务器302中提供的信息,在一些示例中,GO设备102中的路由表320可以如下被更新:
·(借用无线设备A的)源IP地址A被映射到下一跳路由器(借出无线设备P的)IP地址P,以及
·(借用无线设备B的)源IP地址B被映射到下一跳路由器(借出无线设备Q的)IP地址Q。
下面描述了针对始发自借用无线设备或终止在借用无线设备处的IP分组的分组转发。
始发自借用无线设备的IP分组:
针对始发自借用无线设备的IP分组,借用无线设备通过设置使分组中的目的MAC地址等于GO设备102中IP路由器306的MAC地址,来将IP分组发送给GO设备102中的IP路由器306。
如果GO设备102中的IP路由器306确定IP目的地址在LAN的IP地址范围内,则分组被路由到LAN上的设备,如以Wi-Fi直连的常规方式完成。
然而,如果GO设备102中的IP路由器306确定IP目的地址对应于WAN,则IP路由器306检查下一跳路由器表320,并且基于分组中的源IP地址查找下一跳路由器地址。然后,IP路由器306通过将分组中目的MAC地址设置为借出无线设备的MAC地址来向适当的借出无线设备转发分组。然后,借出无线设备检查目的地IP地址以确定分组是否被终止在借出设备自身处,或者被转发到WAN上。
IP分组终止在借用无线设备处
借出无线设备从WAN 310接收分组,并且向GO设备中的IP路由器306转发从WAN310下行链路接收的所有分组(并非去往借出无线设备本身)。然后,根据常规Wi-Fi直连路由,IP路由器306基于分组中的目的地IP地址,将每个分组路由向每个分组的目的地。
注意,前述解决方案解决借用无线设备利用单个借出无线设备的WAN连接的情况。
适用于部分4、5和6中解决方案的一般说明
注意,GO设备102自身可以具有WAN连接,并且GO设备102的用户可以以与针对上文借出无线设备所述的相同方式来配置共享许可。
原则上注意,分布式热点HTTP服务器302可以被托管在与GO设备102分离的设备上。
具有WAN连接的无线设备可以将任何WAN绑定流量直接地路由到该无线设备的WAN连接上(并且避免U形路由到GO设备102以及返回)。
部分4、5和6中的解决方案的混合也可以被实现。例如,一种解决方案可以被用于始发在借用无线设备上的分组,但是另一种解决方案可以被用于终止在借用无线设备处的分组。备选地,不同的机制可以根据分组是否去往LAN或去往WAN来混合。
7.使用多路径TCP来利用多WAN连接
在一些实现中,基于在借用无线设备与借出无线设备之间的多路径支持,Wi-Fi直连组中的借用无线设备可以使用Wi-Fi直连组中的多个借出无线设备的多个WAN连接(诸如不同IP流的不同通信)可以通过多个路径被承载以用于提升吞吐量。
在一些示例中,为了支持在借用无线设备与多个借出无线设备之间的多个路径,多路径TCP(MPTCP)可以被使用。在MPTCP情况下,单个应用流通过使用多路径TCP垫(shim)层在多个TCP/IP链路上被分割。在传统MPTCP中,不同的IP地址在每个链路上被指定。该方法使应用能从通过多个IP接口可达成的增加的总吞吐量受益。
为了在Wi-Fi直连分布式热点应用中使用MPTCP,MPTCP被实现在借用无线设备以及MPTCP应用服务器中(其中应用服务器通常被托管在网络上,例如,其可以是托管新闻网页页面的应用服务器。)。
此外,机制被用在借用无线设备和(例如,网络托管的)应用服务器两者中,以用于决定有多少分组要通过每个TCP/IP栈被转发。
图5示出了无线设备500,该无线设备500包括:应用502、MPTCP层504、以及多个协议栈506和508。每个协议栈包括多个通信协议层,其在图5中包括TCP层和IP层。无线设备500是借用无线设备。
如下文所述,当使用MPTCP时,针对分组可以如何通过多个WAN连接被传送,三种选项可以被使用。
选项1:具有MAC层转发的MPTCP
设备IP地址管理
在选项1情况下,MAC层转发被与MPTCP结合使用。无线设备仅由GO设备102分配单个IP地址。注意,GO设备102可以分配多个IP地址,MPTCP下的每个TCP/IP栈被分配一个(每个借出无线设备一个),但是这并非必须被执行。
在借用无线设备中始发的分组的转发
设备MPTCP层504选择(多个TCP/IP中的)TCP/IP栈以用于转发分组。分组中的源IP地址被设置为由GO设备102分配给借用无线设备的源IP地址(该相同的源IP地址被MPTCP层504之下的所有TCP/IP栈506和508使用)。
分组中的以太网目的MAC地址被设置为借出无线设备的MAC地址,该借出无线设备与选择的TCP/IP栈相关联。借用无线设备使用部分4中所述的技术来学习借出无线设备的MAC地址。
在借出无线设备处,IP分组被传递通过NAT。由于每个TCP/IP流(在MPTCP层504之下)经由不同借出无线设备被传送,因此在MPTCP处,来自多个TCP/IP流的分组似乎来自不同的源IP地址。
分组的转发终止在借用无线设备处
应用服务器中的MPTCP层和TCP/IP层以与传统MPTCP应用服务器类似的方式来运转。注意,应用服务器中的MPTCP层被设计为通过多个IP接口工作(例如,MPTCP服务器将与设备对话,该设备通常将具有由蜂窝指定的IP地址和由WLAN指定的IP地址)。然而,在此处所述的解决方案中,MPTCP应用服务器通过NAT的使用看到多个IP接口,即使在借用无线设备上仅有一个分配的IP地址。
响应于从WAN接收IP分组,借出无线设备执行网络地址转换,并且使用ARP来学习借用无线设备的以太网MAC地址。
借出无线设备将分组中的目的MAC地址设置为借用无线设备的MAC地址,并且将分组中的MAC接收器地址设置为AP(即,GO设备102)的MAC地址,并且使用该接收无线设备自己的MAC地址作为源MAC地址。
响应于接收到分组,借用无线设备通过检查分组中的802.11源MAC地址来确定哪个TCP/IP堆栈转发分组,其中该地址与从借用设备向WAN发送分组时被使用的802.11目的MAC地址是同一个。
选项2:基于IP/IPsec隧道的转发的MPTCP
在选项2的情况下,多个IP隧道或IPsec隧道可以在借用无线设备与多个借出无线设备之间被建立。例如,在图3中,第一隧道可以在设备1(借用无线设备)与设备2(第一借出无线设备)之间被建立,以及第二隧道可以在设备1与设备3(第二借出无线设备)之间被建立。借用无线设备(设备1)可以使用MPTCP通过多个隧道执行并发通信。
各种设备的层在图6中被示出。在图6中示出的设备包括设备1、设备2、和设备3,这些设备是Wi-Fi直连组中的P2P客户端设备。另外,图6示出了IP路由器306和MPTCP应用服务器602。
设备1包括:应用606、MPTCP层608、以及两个协议栈610和612。每个协议栈610或612包括:外部IP层、在外部IP层之上的IPsec层,在IPsec层之上的内部IP层,以及在内部IP层之上的TCP层。设备1和设备2可以使用设备1中的协议栈610的IPsec/IP栈以及设备2中对应的IPsec/IP栈来建立第一隧道(隧道1),并且设备1和设备3可以使用设备1中的协议栈612的IPsec/IP栈以及设备3中对应的IPsec/IP栈来建立第二隧道(隧道2)。
IP路由器306包括IP层614和616,以路由通过相应的第一隧道和第二隧道传输的分组。
应用服务器602包括:应用618、MPTCP层620、与设备1的第一协议栈610通信的第一TCP/IP栈622、与设备1的第二协议栈612通信的第二TCP/IP栈624。
设备IP地址管理
在选项2的情况下,GO设备102分配多个IP地址:在MPTCP层之下的每个TCP/IP栈一个IP地址(每个借出无线设备一个)。
在借用无线设备中始发的分组的转发
设备MPTCP层608(从设备1中的多个TCP/IP栈中)选择TCP/IP栈,在所选择的TCP/IP栈上转发分组。
分组的内部IP报头和外部IP报头两者的源IP地址都被设置为由GO设备102分配给设备1的IP地址(MPTCP层608下面的每个TCP/IP栈的不同源IP地址)。
内部IP报头的目的地IP地址被设置为MPTCP应用服务器602的IP地址。外部IP报头的目的地IP地址被设置为借出无线设备的IP地址,该借出无线设备与相应的TCP/IP栈相关联。借用无线设备通过部分5中的解决方案来学习可用的借出无线设备的IP地址。
在借出无线设备处,内部IP分组从隧道中被提取(外部IP层被移除),并且可以被传递通过NAT,并且然后被转发到WAN 310。
在借用无线设备中终止的分组的转发
应用服务器602中的MPTCP层和TCP/IP层运转为每个常规的MPTCP应用服务器。
如果从WAN接收IP分组,借出无线设备可以执行网络地址转换。然后,IP分组可以在IP隧道中被承载向无线设备。借用无线设备基于目的地IP地址将分组路由向适当的TCP/IP站。
选项3:基于源IP地址路由的MPTCP
选项3使用部分6中所述的下一跳路由器表320对基于源IP地址路由的MPTCP进行组合。
设备IP地址管理
在选项3的情况下,根据解决方案6中所述的技术,GO设备102利用针对(借用无线设备可以使用的)可用的借出无线设备中的每个设备的单独IP地址分配借用无线设备。
下一跳路由器的配置
如部分6中所述,选项3的利用GO设备102中的下一跳路由器表320。与部分6的解决方案的不同之处在于单个借用无线设备可以具有表中的多个条目,多个IP地址中的每个IP地址是一个条目,其中这些IP地址中的每个IP地址与不同的下一跳路由器(即,不同的借出无线设备)想关联。
在借用无线设备中始发的分组的转发
借用无线设备中的MPTCP层(从多个TCP/IP栈之中)选择TCP/IP栈,以用于发送分组。
分组中的源IP地址被设置为与相应的TCP/IP栈相关联的IP地址。
分组中的以太网目的MAC地址被设置为GO设备102的MAC地址。
在接收到分组时,GO设备102根据下一跳路由器表320检查分组中的源IP地址,并且确定将分组转发到哪个借出无线设备。然后,GO设备102通过将目的MAC地址设置为借出无线设备的MAC地址,来将分组转发给适当的借出无线设备。
响应于接收到分组,借出无线设备可以将IP分组传递通过NAT,并且随后将分组转发给WAN 310。
转发在借用无线设备处终止的分组
MPTCP应用服务器中的MPTCP层和TCP/IP栈运转为每个常规的MPTCP应用服务器。
响应于从WAN 310接收IP分组,借出无线设备可以执行网络地址转换。
借出无线设备将分组转发给GO设备102,并且GO设备102以通常方式向借用无线设备路由分组(通过检查目的地IP地址)。
响应于接收到分组,借用无线设备了解了将分组转发给哪个TCP/IP栈,因为每个栈都与不同的目的地IP地址相关联。
选项1、2和3的一般说明
针对上文所述的部分4、5和6的解决方案的一般说明也适用于选项1、2和3。
8.使用IP流映射来利用多个WAN连接
在这个部分中描述的解决方案可以被用于解决问题3
这个部分中描述的解决方案与部分7中所述的解决方案相同,并且可以利用选项1、2和3,但是不同之处在于,不是使用TCP/IP栈之上的MPTCP垫层借用无线设备,而是将不同的端用户应用映射到不同的IP栈。借用设备可以被分配用于该借用无线设备正在使用的每个借出无线设备的不同IP地址。
9.使用由GO设备提供的信息增强的基于托管的IP能力
这部分描述的解决方案可以被用于解决问题5。
在该解决方案中,节点用作IP会话移动锚点。该IP会话移动锚节点还可以提供安全网关功能。
通用解决方案描述
解决方案涉及多个操作。
作为触发条件,GO设备确定用于借用无线设备X的WAN连接将被从由借出无线设备Y提供的WAN连接切换到由借出无线设备Z提供的WAN连接。这可能是因为先前提供WAN连接的借出无线设备Y已经丧失了WAN覆盖,或者可能是因为借用WAN连接的借用无线设备X已经用尽了它的定额(由借出无线设备Y许可的字节数)。
例如,GO设备可以经由分布式热点应用学习前述信息,该分布式热点应用与借出无线设备通信。
响应于触发条件,GO设备中的应用服务器通过通知借用无线设备X:由于借出无线设备的切换,引起X面向外部的源IP地址已经改变来执行通知操作。通过新的过程该通知可以被实现,或者可以隐含作为部分4、5和6中所述过程中的任何过程的一部分。
接下来,借用无线设备X通知移动锚/安全网关:X的IP地址已经被改变。
移动锚/安全网关启动向新IP地址的隧道下行链路流量,以用于借用无线设备X。
MOBIKE实施方式
在专门实施方式中,移动性和多宿主协议(MOBIKE)可以被使用,其中MOBIKE是对互联网秘钥交换(IKEv2)的移动性和多宿主扩展。注意,IKEv2是用于在设备与安全网关(VPN网关)之间建立安全IPsec隧道的控制平面信令协议。IPsec隧道支持IP层的流量加密,并且防止中间网络能够读取隧道上携带信息。
与传统IKEv2不同,MOBIKE附加地允许与IKEv2和隧道模式IPsec安全关联相关联的IP地址改变。因此,当被分配给移动节点的IP地址改变时,MOBIKE客户端可以保持与VPN网关的连接活动。
在MOBIKE实现的情况下,如图7中所示,借用无线设备X通过Wi-Fi直连分布式热点网络,建立到位于用户的企业网络704中的安全网关702的VPN隧道。VPN支持IP地址移动性。在此示例中,MOBIKE扩展了可以被使用的IKEv2。
注意,在无线设备与用户的企业网络704中的VPN安全网关702之间建立IPsec VPN解决了分布式热点中问题的一个问题,即避免Wi-Fi直连网络中任何其他设备拦截和读取流量。
图7还示出了设备Y,设备Y与另一无线设备(诸如设备X)共享Y的WAN连接。
Wi-Fi直连可以利用私有IPv4网络来提供在无线设备与GO设备之间的中间连接。WAN连接的设备可以被期望使用NAT,以便于与Wi-Fi直连网络中的多个其他设备共享它们的单个WAN连接IP地址(在此示例中,由蜂窝运营商分配)。NAT与IPsec隧道的使用涉及NAT穿透(traversal)解决方案的实现。在此示例中,如图8所示,NAT穿透解决方案时在外部IP报头800与IPsec报头804与内部IP报头806之间插入UDP报头802。MOBIKE支持NAT穿透。图8还示出了分组的其他元素。
将该MOBIKE示例与上文的通用解决方案描述部分相关,新的元素是上文讨论的通知操作,其中从GO设备到借用无线设备的、借出无线设备已经改变的通知(其可以明确或者隐含地作为部分4、5或者6中的解决方案的一部分),触发借用无线设备将IKEv2UPDATE_SA_ADDRESSES通知消息发送给企业网络704中的安全网关702。安全网关702记录IP报头信息(IP源地址和UDP源端口号),IKEv2消息在该IP报头信息上被传输,并且开始使用这些新IP地址/端口号,以用于与这个(借用无线设备X的)特定安全关联相关联的流量的路由。
系统架构
图9是示例系统900的框图,示例系统900可以是无线设备,诸如,借用无线设备、借出无线设备、或者组设备。备选地,系统900可以不同类型的系统。
系统900包括:处理器902(或者多个处理器)、通过网络通信的通信接口904、以及非暂时性机器可读或机器可读存储介质906,以用于存储在存储器902上可执行的机器可读指令908。
处理器可以包括:微处理器、多核微处理器的核心、微控制器,可编程集成电路、可编程门阵列或另一种硬件处理电路。
存储介质906可以包括存储器的一种或多种不同形式,该存储器包括:半导体存储器器件,诸如动态或静态随机存取存储器(DRAM或SRAM)、可擦除和可编程只读存储器(EPROM)、电可擦除和可编程只读存储器(EEROM)以及闪存;磁盘,诸如固定、软盘和可移动盘;其他磁媒介,包括胶带;光媒介,诸如,光盘(CD)或数字视频盘(DVD);或者其他类型的存储设备。注意,上文所讨论的指令可以在计算机可读或机器可读的存储介质上被提供,或者备选地,可以在具有可能多个节点的大型系统中分布的多个计算机可读或机器可读的存储媒介上被提供。这种计算机可读或机器可读存储媒介,被认为是物品(或制品)的一部分。物品或制品可以指任何制造的单个组件或多个组件。存储介质或媒介可以被定位在运行机器可读指令的机器中,或者被定位在远程站点,来自该远程站点的机器可读指令可以通过网络被下载以用于执行。
在前述描述中,提出了许多细节以提供对本文公开的主题的理解。然而,可以在没有这些细节的情况下实践实施方式。其他实施方式可以包括来自上文讨论的细节的修改和变化。所附权利要求旨在覆盖这些修改和变化。