发明内容
一种可与多种通信数据网络进行交互、进而有选择性地控制与多种通信数据网络进行数据分组交换的设备,在下面至少一幅附图中进行了描述,并在权利要求中进行了完整的说明。
本发明提供了一种可支持分组交换通信的通信架构,包括:
多个网络节点,用于支持多条通信路径,其中至少一个网络节点包括终端节点,至少另一个网络节点包括支持节点;
所述终端节点执行第一多路径管理应用,以支持第一通信软件应用;
所述支持节点执行第二多路径管理应用;及
所述第一多路径管理应用和所述第二多路径管理应用协同完成所述多条通信路径之间的无缝切换,以支持所述第一通信软件应用。
优选地,所述第一通信软件应用也配合支持所述无缝切换。
优选地,所述第一多路径管理应用控制进行所述无缝切换。
优选地,所述第二多路径管理应用控制进行所述无缝切换。
优选地,所述第一通信软件应用具有一项通信条件(requirement),所述第一多路径管理应用在执行所述无缝切换前评估(consider)所述通信条件。
本发明提供了一种通信架构,可按照通信软件应用的要求,通过分组交换网络与目的设备进行通信交换,该通信架构包括:
第一接入点设备,与所述分组交换网相连;
第二接入电设备,与所述分组交换网相连;
终端设备,使用第一网络标识通过第一接入点设备与所述分组交换网相连;并使用第二网络标识通过第二接入点设备与所述分组交换网相连;
设备驱动器,包括多路径驱动器部分、第一子驱动器部分和第二子驱动器部分;
第一通信路径,起始于所述多路径驱动器部分,通过所述第一子驱动器部分、所述第一接入点设备和所述分组交换网到达所述目的设备;
第二通信路径,起始于所述多路径驱动器部分,通过所述第二子驱动器部分、所述第二接入点设备和所述分组交换网到达所述目的设备;
所述设备驱动器的所述多路径驱动器部分在所述第一通信路径和所述第二通信路径之间进行无缝切换。
优选地,所述终端设备包括多网络接口电路,其同时与所述第一和第二子驱动器部分交互。
优选地,所述通信软件应用要求至少一个通信特征,该至少一个通信特征由所述设备驱动器的所述多路径驱动器部分确定(identify)。
优选地,所述设备驱动器的所述多路径驱动器部分根据所述至少一个通信特征进行所述无缝切换。
优选地,所述无缝切换在执行时不通知所述通信软件应用。
优选地,所述无缝切换根据预先设定的因素执行。
优选地,所述无缝切换在执行时通知所述通信软件应用。
优选地,所述通知过程要求对是否进行所述无缝切换进行确认。
本发明提供了一种分组交换网中的计算设备,该分组交换网包括多个接入点,该计算设备包括:
多个通信接口,其中每一个通信接口都具有从所述多个接入点中对应的一个接入点处接收到的至少一个唯一的网络地址;
第一低层模块,用于连接所述多个通信接口中的第一通信接口;
第二低层模块,用于连接所述多个通信接口中的第二通信接口;
高层协议管理器,用于选择所述第一通信接口和所述第一低层模块用于数据交换;
为支持所述数据交换,所述高层协议管理器响应通信因素,从所述第一通信接口和所述第一低层模块无缝切换至所述第二通信接口和所述第二低层模块。
优选地,所述计算设备进一步包括通信应用,与所述高层协议管理器相连;所述高层协议管理器在选择所述第一通信接口和所述第一低层模块前与所述通信应用交互。
优选地,所述高层协议管理器与所述多个接入点中的至少一个接入点协同选择所述第一通信接口和所述第一低层模块。
优选地,所述通信因素包括进行数据交换所要求的最低数据率。
优选地,在与所述通信应用进行交互后,所述高层协议管理器从所述通信应用处收到所述通信因素。
优选地,所述通信因素随时间变化,所述高层协议管理器定期检查所述通信因素。
本发明提供了一种通信电路,包括:
存储器,用于存储至少一部分通信应用程序以及至少一部分设备驱动程序,所述设备驱动程序包括多个单路径子驱动程序部分;
处理电路,与所述存储器相连;
多个通信接口,所述处理电路执行所述设备驱动程序中的多个单路径子驱动程序部分,将这些单路径子驱动器对应的每个通信接口连接到所述处理电路;
所述处理电路确定对应于所述通信应用和每个通信接口的多个通信特征,根据这些通信特征,从所述多个通信接口中选择第一通信接口,从所述多个单路径子驱动程序中选择对应的第一单路径子驱动程序,用于进行通信交换。
优选地,所述处理电路使用从所述多个通信接口中选择的第二通信接口和从所述多个单路径子驱动程序中选择的第二单路径子驱动程序,无缝地继续进行所述通信交换。
优选地,所述处理电路监控所述多个通信特征。
优选地,所述处理电路响应所述通信应用,作出相应选择。
优选地,所述处理电路响应通过所述多个通信接口中至少一个接口收到的控制信号,作出对应选择。
通过下面将要结合附图进行的对具体实施方式进行的介绍,本发明的特点和优势将更加明显。
具体实施方式
图1是多台设备151、153、155、157和159通过多个接入点131、133、135和137与互联网骨干网103进行交互的示意图,其中每台设备151、153、155、157和159与一个以上的接入点进行交互。第一个人计算机151、电话机153、电视机155、第二个人计算机157和耳机159与互联网骨干网103交互。第一服务提供商设备111、第二服务提供商设备113、第三服务提供商设备115和第四服务提供商设备117与互联网骨干网103相连。多个服务提供商设备111、113、115和117中的每一个都可以是计算设备、路由器、交换机、基站、天线、收发器、域名服务器、代理服务器、存储服务器其中的一台或几台的组合。多个服务提供商设备111、113、115和117中的每一个通过有线(包括光纤)和/或无线链路与互联网骨干网103相连。
第一服务提供商设备111管理有线数据网络121。有线数据网络121可以是PSTN网络、光纤网络和有线电视网络其中之一或者它们的组合。第一接入点131、第二接入点133和第三接入点(也就是机顶盒)135与有线数据网121相连。第二服务提供商设备113管理地面无线数据网络123。地面无线数据网络123可以是电视广播网,包括例如UHF(超高频)或VHF(特高频)传输。机顶盒135与地面无线数据网123相连。第三服务提供商设备115管理卫星数据网125。机顶盒135使用碟形天线与卫星数据网125通信。第四服务提供商设备117管理无线数据网127。无线数据网127可以是例如,EDGE网络、WCDMA(宽带频分多址)网络、IEEE802.11网络、WiMax网络或UMTS(通用移动通信系统)网络。机顶盒135还可用于与无线数据网127通信。第四接入点137与无线数据网127相连。接入点131、133、135和137中的每一个都包含至少一个(通常为两个或多个)用于接收和发送数据的收发器。第一接入点131从第一个人计算机151接收数据,并将收到的数据发往有线数据网121。第一接入点131还从有线数据网121接收数据,并将收到的数据发往第一个人计算机151。这些数据可包括控制信息、支持数据,以及多种多媒体数据如文本消息、音频、视频、图片、电子邮件、电视内容、音乐视频或文件,并与另一网络设备如互联网服务器、广播设备或另一终端进行交换。
第一个人计算机151通过有线接口与第一接入点131相连,同时,通过无线接口与第二接入点133相连。因此,第一个人计算机151便可通过第一接入点131或第二接入点133从/向有线数据网121接收/发送数据。第一接入点131为第一个人计算机151分配第一IP地址,第二接入点为第一个人计算机151分配第二IP地址。电话机153通过两条无线链路与第二AP133相连。电视机155通过无线链路与第二AP133相连。第二个人计算机157通过有线链路与第二AP133相连。第二AP133通过两条有线链路,第一有线链路和第二有线链路与有线数据网121相连。
如图所示,每台终端可能具有多条到达任意其他终端、服务器或其他网络设备的可用通信路径。第一个人计算机151具有两条通过AP131和133的上行路径。电话机153具有两条均通过AP133的上行路径,电视机155和个人计算机157均具有三条。为对通过这些可用上行路径进行的通信进行管理,终端151-157中的每一台都使用了多路径管理功能,该功能是通过结合使用常用和/或专用硬件和相关软件来实现的。类似的,接入点133和机顶盒135均具有两条或多条上行通信路径,以及两条或多条下行通信路径,通过这些通信路径可到达其他终端、服务器以及其他网络设备。为对经由这些可用的多条上行和下行路径进行的通信进行管理,接入点133和机顶盒135也都使用了多路径管理功能,该功能是通过结合使用常用和/或专用硬件和相关软件来实现的。同样的,具有两条或多条上行路径,或两条或多条下行路径的任何其他网络如一些服务器105,也都可使用多路径管理功能。
如本文所述,“上行路径”和“下行路径”并不一定是指数据流的实际方向。替而代之的是,“上行路径”指的是发起于与互联网骨干网103相连的当前设备的路径,而“下行路径”指的是从当前设备指向终端设备的路径。因此,例如,接入点133具有两条上行路径(均与个人计算机151有关),以及三条下行路径(只有一条与个人计算机151有关)。
特别的,每台具有多条上行路径和/或多条下行路径的网络设备都会执行多路径管理软件应用。因此,在两台终端设备之间的可用路径上,可能运行有一个或多个多路径管理应用。然而,多路径管理应用只会从这些可用上行和下行路径中选出其中的一条,来支持两台终端设备之间的交换。该选择过程可能包括一条或多条上行路径和/或一条或多条下行路径。其他上行和下行路径将保持非活跃状态,或用于支持其他终端设备交换。同样的,一些路径可支持多个终端设备交换同时进行。
若两台终端设备之间的整条路径中存在多个多路径应用,则每一个多路径应用都将依照本地设置来工作。例如,根据网络配置以及本地设置,无论是否具有来自任一上行多路径应用的支持,每个多路径管理应用都将独立地管理其上行路径,而不是下行路径。作为选择,根据所作的设置,整个管理过程的一部分或全部均可交由一个多路径应用来进行,而其他多路径应用则进入休眠状态或提供支持。同样的,两台终端设备之间的数据交换管理工作也可交由一些或所有多路径管理应用共同负责。
路径选择可以发生在,例如:1)终端设备开机;2)路径特征发生变化;3)路径发生变化或变成可用;4)按要求改变;5)定期或持续进行。选择过程可发生在所有与例如下列项有关的通信中:a)终端设备;b)特定通信软件应用;c)特定媒体类型;和/或d)以请求为基本方式的一个请求(on a requestby request basis)。
例如,第一个人计算机151(或使用第一个人计算机151的用户)想要向连接到互联网骨干网103的目的终端发送(上行)数据。第一个人计算机151通过第一IP地址与第一接入点131建立关联,通过第二IP地址与第二接入点133建立关联。运行在第一个人计算机151上的多路径管理应用评估并选择一条或同时选择两条可用的上行路径,以进行一个或进行中的通信交换。作为选择,如果进行了这样的配置,则运行在第一个人计算机151上的多路径管理应用可仅评估(或协助评估)这两条可用的上行路径,并向第一服务提供商设备111发送相关信息和结果。第一服务提供商设备111执行的多路径管理功能作出响应,评估接收到的信息和结果,并根据评估的结果控制第一个人计算机151使用第二IP地址和无线接口与有线数据网121进行通信。
对于电话机153,运行于其上,以及接入点133和第一服务提供商设备111上的多路径管理软件可各自独立完成类似的任务,或共同参与该选择过程。例如,第二接入点133通过运行在电话机153上的多路径管理软件所选择的链路与电话机153交换数据,第二接入点133依照运行在第一服务提供商设备111上的多路径管理软件的指令与第一服务提供商设备111交换数据。还可存在其他情况,如根据数据流来选择不同的路径,例如,从第一终端设备到第二终端设备的路径,与从第二终端设备到第一终端设备的路径相比,可能会涉及不同的多路径管理责任,并导致不同的路径选择结果。在从第一终端设备到第二终端设备的路径中,每台设备可做自己的独立评估并选择一条或多条通往第二终端设备的链路。同样的,在从第二终端设备到第一终端设备的路径中,每台设备也可仅做自己的独立评估并选择一条或多条通往第一终端设备的链路。
在承担此任务时,多路径管理应用评估每条可用的上行和下行链路的多个特征。根据这些特征,多路径管理应用为每条链路生成一连接率,其中包括一个或多个因素。通过比较第一和第二连接率中的一个或多个因素,多路径管理应用可确定应该使用路径中的哪条链路。
上面提到的多个特征可包括最大和当前带宽、负载程度、传送队列、竞争要求、数据类型、干扰、误码率、安全性、链路成本等。具体来说,第一组和第二组特征中的一些特征是不随时间变化的,而另外一些则会随时间发生变化。例如,那些随时间变化的特征可能是因为带宽、路径路由、网络负载、QoS(服务质量)、传送功率要求、误码率、漫游等因素发生变化而发生改变的。那些不随时间发生变化的特征包括例如链路成本、最大带宽、QoS保障、第二有线链路的反窃听性能、电路对比(vs.)分组交换特征等。
在对AP 133和电话机153之间的链路进行首次评估和选择后,运行在AP133上的多路径管理应用程序会在固定的时间间隔、或对该链路提出新的要求时、以及相关因素发生变化使得超过了某些预先设定的阈值时,重新评估其作出的决策。如果找到了一个更为合适的配置,多路径管理应用将会对当前路径进行切换。这种情况可发生在例如,电视机155打开第二个窗口来显示第二视频数据,使得所需数据量上升;或者另一数据交换结束,一条更为合适的连接路径得以释放。另一方面,在随后的一个时间,第一个人计算机151可能有大量数据需要上传。使用当前的活跃链路来传送这些数据会立即增大该链路的负担,超过该链路进行另一应用时可以接受的带宽。作为响应,多路径管理应用程序会对这种其他应用,或者对这种大量数据的传送负担的部分或全部进行重新路由。
多路径管理应用程序将数据传输在一条链路和另一条链路之间进行无缝切换,此过程可通知,也可不通知终端通信应用软件。例如,第一个人计算机151可能不知道第二AP 133用来将第一个人计算机151所生成数据传送至有线数据网络121的有线链路。电视机155和第二PC157也可能不知道多路径管理应用程序所执行的路径切换。数据传输从第二有线链路切换至第一有线链路的过程不会影响第二AP133对电视机155和/或第二PC157所生成数据的传送。
第二PC157与第二AP133、机顶盒135和第四AP137相关联。第二PC157包括有线接口、第一无线接口和第二无线接口。第二AP133为第二PC157分配第三IP地址。机顶盒135为第二PC157分配第四IP地址。第四AP137为第二PC157分配第五IP地址。第二PC157通过第二AP133,使用第三IP地址和有线接口与有线数据网121通信。第二PC157使用第四IP地址和第一无线接口与机顶盒135通信。第二PC157使用第五IP地址和第二无线接口与第四AP137通信。在第二PC157上运行有第二多路径管理程序。第二多路径管理程序是一套用于管理三个通信关联(communication association)的软件,第一通信关联与第二AP133相关联,第二通信关联与机顶盒135相关联,第三通信关联与第四AP137相关联。第二多路径管理软件定期收集与这三个通信关联有关的特征或参数。第二多路径管理程序可在这三个通信关联发生变化时收集该多个参数。这些参数可包括每个关联中的IP地址、每个关联承载的数据流、每个关联所提供的带宽、每个关联所支持的加密和编码方式、每个关联的功率要求、每个关联的类型、每个关联引入的延迟、每个关联中的干扰级别,这与每个关联所承载的数据流有关。第二多路径管理程序将收集到的这些参数存储在第二PC157的存储器中。在第二实施例中,第二多路径管理程序使用新的一组收集到的多个参数更新现有的参数,然后不再使用旧的一组参数。在第二实施例中,多路径管理程序存储旧的一组的多个参数,直到收集到新的一组的多个参数。
第二PC157或者使用第二PC157的用户希望向连接到互联网骨干网103的目的设备发送数据。第二PC157生成数据传输请求。作为对该请求的响应,第二多路径管理程序获取有关这三个通信关联的多个参数。第二多路径管理程序会从第二接入点133、机顶盒135和第四接入点137收集至少一些参数,例如,每个关联提供的带宽、每个关联所支持的加密和编码方式、每个关联引入的延迟和每个关联的干扰级别。这些参数可从第二PC157的存储器中获取。这些参数也可从不在第二PC157机箱里的单独的存储系统中获取。这些参数中的一些或全部,例如对应于每个通信关联的IP地址可从第二PC157的有线接口、第一无线接口和第二无线接口处获取。多路径管理程序使用获取的参数从这三个接口——有线接口、第一无线接口和第二无线接口中选择一个接口,然后控制第二PC157使用选中的接口和对应的IP地址向互联网骨干网103发送(也就是上行)数据。多路径管理程序这一选择过程为数据上行过程提供可能得到的最好的服务。例如,多路径管理程序选择第二无线接口。第二PC157使用第四接入点137分配的第五IP地址向第四接入点137发送数据。第四接入点137接收这些数据,使用无线数据网络127将这些数据发网目的设备。
在第二PC157从/向第四接入点137收发数据的过程中,第四接入点137与第二PC157第二无线接口间的无线链路可能断开。若该无线链路断开,则软件应用程序会控制第二PC157使用剩下的两个接口中的一个,这两个接口也就是有线接口和第一无线接口中。软件应用程序选择一个可提供更好服务的接口。从剩下的两个接口中选择一个的选择过程需要依靠获取的多个参数来进行。例如,软件应用程序可选择有线接口。随后,第二PC157使用有线接口和第三IP地址来发送数据。从第二无线接口到有线接口的接口变动将无缝地进行,这样一来,第二PC157所发送的任何数据都不会丢失。随后,第二PC157发送的数据到达第二AP133。第二AP133通过两条链路连接到有线数据网络121。运行在第二AP133上的多路径管理应用程序从连接有线数据网络121的两条链路中选择其中的一条,用于向有线数据网络121发送从第二PC157收到的数据。第二AP133使用选中的链路将从第二PC157收到的数据发往有线数据网络。第二PC157发送的数据最终将通过第二AP133、有线数据网络121和互联网骨干网103到达目的节点。
在另一实施例中,运行在第二PC157上的第二多路径管理程序定期获取有关所有这三个通信关联的多个参数。多路径管理程序可选择一个阈值,并且在三个通信关联中任何一个的质量低于该阈值时,将相应的通信关联隔离。在该示范性方案中,第二PC157使用第四接入点137和第二PC157的第二无线接口之间的无线链路来发送数据。当该无线链路的质量下降到低于该阈值时,多路径应用程序会促使第二PC157切换到有线接口,并使用第三IP地址来发送数据。因此,从第二无线接口到有线接口的切换发生在该链路断开前。多路径应用程序确保不会有任何数据(也就是第二PC157发送的数据)由于发生切换而丢失。
图2是本发明如图1所示接入点133多个组件的示意图,该接入点133支持从其自身到互联网骨干网103的多条数据路径。图1中的机顶盒135也支持到互联网骨干网103的一条以上的数据通信路径。图2中示出了多个组件,对于图1中的多路径接入点133和多路径机顶盒135这些组件是共通的。多路径AP或多路径STB(机顶盒)200包括处理电路202、用户输入接口218、多个有线接口220和多个无线接口230。处理电路202包括存储系统204、操作系统210、多路径管理软件(MMS)214和设备子驱动器216。用户输入接口218从用户处接收输入信息,处理电路202因此对输入信息作出响应。用户输入接口218可以是多个按钮、触摸屏、语音接口、鼠标、拇指转轮、屏幕和触摸笔等。多个有线接口220包括第一有线上行接口222、第二有线上行接口223、第一有线下行接口224和第二有线下行接口225。多个无线接口230包括第一无线上行接口232、第二无线上行接口233、第一无线下行接口234和第二无线下行接口235。多路径AP(或多路径STB)200的上行接口(有线上行和无线上行接口)支持多路径AP(或多路径STB)200与一个或多个数据网络之间的数据通信,其下行接口(有线下行和无线下行接口)支持多路径AP(或多路径STB)200与一台或多台客户端设备之间的数据通信。客户端设备就是生成数据的终端和/或设备。典型的客户端设备包括个人计算机、电话机、PDA、视频游戏机、电视机或可生成能够通过分组交换网络传输的第一格式(例如将数据分割后装入分组中)数据的各种终端。这些数据可以是音频、视频、图片,电子邮件、网页、音乐视频、存储在互联网和/或企业内部网服务器上的文件、文本消息、电视节目和任何类型的多媒体信息。典型的数据网络包括光纤数据网、有线数据网、公共交换电话网、GSM网络、CDMA网络、EDGE网络、IEEE802.11网络、WiMax网络、卫星数据网络,或者任何种类的标准和专用的分组交换网络。
例如但不限于,多路径AP(或多路径STB)200使用第一上行有线接口222与光纤数据网通信,使用第二上行有线接口223与有线数据网通信,使用第一上行无线接口232与EDGE网络通信、使用第二上行接口233与WiMax网络通信。光纤数据网、有线数据网、EDGE网络和WiMax网络使用不同的协议进行分组数据发送和接收。每个有线和无线上行接口(222、223、232和233)与至少一个对应的硬件设备交互,而对应的硬件设备由媒体访问控制(MAC)地址唯一地标识。典型的硬件设备包括收发器。多路径AP(或多路径STB)200首先将其自身与光纤数据网、有线数据网、EDGE网络和WiMax网络建立关联,然后与这些网络进行通信。这种关联包括由对应的数据通信网络为多路径AP(或多路径STB)200分配IP地址。在建立关联过程中,光纤数据网为多路径AP(或多路径STB)200分配第一IP地址,有线数据网为多路径AP(或多路径STB)200分配第二IP地址,EDGE网络为多路径AP(或多路径STB)200分配第三IP地址,WiMax网络为多路径AP(或多路径STB)200分配第四IP地址。多路径AP(或多路径STB)200通过第一上行有线接口222使用第一IP地址与光纤数据网通信,类似的,多路径AP(或多路径STB)200通过第二上行有线接口223使用第二IP地址与有线数据网通信,通过第一上行无线接口232使用第三IP地址与EDGE网络通信,通过第二上行接口233使用第四IP地址与WiMax网络通信。
在该非限定性实施例中,多路径AP(或多路径STB)200使用第一有线下行接口224与个人计算机通信,使用第二有线下行接口225与耳机通信,使用第一无线下行接口234与电话机通信,使用第二无线下行接口235与电视机通信。多路径AP(或多路径STB)200在该示范性实施例中连接到不同类型的分组数据网络(也就是光纤数据网络、有线数据网络、EDGE网络和WiMax网络)。与多路径AP(或多路径STB)200相连的分组数据网络的类型对个人计算机、耳机、电话机和电视机(也就是客户端设备)而言是不可见的。在这些客户端设备广播发送关联请求时,多路径AP(或多路径STB)200的MMS214为个人计算机、耳机、电话机和电视机分别分配第五IP地址、第六IP地址、第七IP地址和第八IP地址。多路径AP(或多路径STB)200的MMS214控制个人计算机使用第五IP地址向多路径AP(或多路径STB)200发送第一格式数据。多路径AP(或多路径STB)200通过第一有线下行接口224从个人计算机接收第一格式的数据。
多路径AP(或多路径STB)200通过第一有线上行接口222、第二有线上行接口223、第一无线上行接口232和第二无线上行接口233连接到互联网骨干网。MMS214评估对应于第一有线上行接口222的第一度量值、对应于第二有线上行接口232的第二度量值、对应于第一无线上行接口232的第三度量值,以及对应于第二无线上行接口233的第四度量值。第一度量值在某一时刻的数值与多个参数有关。这些参数可以是,第一有线上行接口222支持的最大带宽、等待通过多路径AP(或多路径STB)200从客户端设备(也就是个人计算机、耳机、电话机和电视机)上传到互联网骨干网的数据负载量、该时刻通过第一有线接口222传送的数据的大小、等待通过多路径AP(或多路径STB)200上传的数据负载的类型(也就是上传的数据负载是文本消息、视频文件、实时数据还是非实时数据等),以及第一有线上行接口222的功率需求。第一度量值随时间变化。MMS214在固定的时间间隔对第一度量值进行评估。分别对应于第二有线上行接口223、第一无线上行接口232和第二无线上行接口233的第二度量值、第三度量值和第四度量值也随时间变化。MMS214也在固定的时间间隔对第二度量值、第三度量值和第四度量值进行评估。MMS214可以在收到任一客户端设备(个人计算机、耳机、电话机或电视机)发送的数据上传请求时评估第一度量值、第二度量值、第三度量值和第四度量值。MMS214可以在通过多路径AP(或多路径STB)200的用户输入接口218收到用户的输入信息后评估第一度量值、第二度量值、第三度量值和第四度量值。MMS214将第一度量值、第二度量值、第三度量值和第四度量值存储于多路径AP(或多路径STB)200的存储系统204中。MMS214在评估完新一组度量值后,对第一度量值、第二度量值、第三度量值和第四度量值进行更新。
MM214可从多个有线接口220、多个无线接口230、操作系统210、存储系统204以及客户端设备(计算机,耳机、电话机和电视机)收集与度量值(第一度量值、第二度量值、第三度量值和第四度量值)有关的多个参数。在该示范性实施例中,多路径AP(或多路径STB)200的设备子驱动器216通过扫描来确定第一有线下行接口224是否存在来自个人计算机的数据。设备子驱动器216通知MMS214有数据存在。随后,多路径AP(或多路径STB)200的MMS214对这四个度量值进行评估。MMS对这四个度量值进行评估以找出更好的数据通信链路,其对应的度量值更高。在这个非限定性实施例中,在四个度量值中,可能第二度量值的值最高。第二度量值对应于多路径AP(或多路径STB)200的第二有线上行接口223。多路径AP(或多路径STB)200的MMS214控制设备子驱动器216将从个人计算机收到的数据路由至多路径AP(或多路径STB)200的第二有线上行接口223。设备子驱动器216是一套软件程序,它可与第一有线下行接口224和第二上行有线接口223的硬件进行交互。设备子驱动器216将第一有线下行接口224的(也就是来自个人计算机的)可用数据转发到第二上行有线接口223。第二上行有线接口223使用第二IP地址将这些数据发往有线数据网络。这些数据通过有线数据网最终到达互联网骨干网。
个人计算机并不知道用于发送多路径AP(或多路径STB)200从个人计算机接收到的数据的数据网络和/或多路径AP(或多路径STB)200的接口的类型。个人计算机将数据按照多路径AP(或多路径STB)200指定的第一格式发往多路径AP(或多路径STB)200。在本示范性实施例中,多路径AP(或多路径STB)200的MMS214选择使用第二上行有线接口223。从个人计算机收到的第一格式数据可能需要转换至有线数据网所支持的第二格式。MMS214触发设备子驱动器216将第一有线下行接口224的可用数据(也就是来自个人计算机的)路由至代码转换器。该代码转换器是多路径AP(或多路径STB)200的处理电路202的一部分。代码转换器将第一格式的数据转换为第二格式。MMS214接下来触发设备子驱动器216将第二格式的数据从代码转换器路由至第二上行有线接口223。第二上行有线接口223使用第二IP地址将第二格式的数据发往有线数据网。第二上行有线接口223包括无线发射模块。
MMS获取这些参数,并定期评估这四个度量值。用户可借助用户输入接口218通过MMS214设置两次连续的度量值评估操作之间的时间间隔。用户输入接口218接收用户定义的时间间隔值,并将其发往MMS214。MMS214将该时间间隔值存储到存储系统204中,并且在用户定义的每次时间间隔内对这四个度量值进行一次评估。如果在某一时刻,第三度量值超过第二度量值,则MMS214将触发设备子驱动器216,将从个人计算机收到的数据路由至第一无线上行接口232,这是因为第三度量值对应于第一无线上行接口232。设备子驱动器216将第一有线下行接口224的可用数据(也就是来自个人计算机的数据)转发至第一无线上行接口232。第一无线上行接口232使用第三IP地址将这些数据发往EDGE网络。这些数据最终通过EDGE网络到达互联网骨干网。通过从第一有线下行接口224到第二有线上行接口223路径进行传输的这些数据,在MMS214进行切换后,将通过从第一有线下行接口224到第一无线上行接口232的路径传输。MMS214控制数据路由的切换,并确保在切换过程中不发生数据(或者数据分组)丢失。
图3是本发明如图1所示客户端设备155或157多个组件的示意图,该客户端设备支持从其自身155或157到图1中的多个接入点133、135和137的多条数据路径。多路径客户端设备300包括处理电路302、存储系统304、用户输入接口330、第一有线上行接口342、第二有线上行接口343、第一无线上行接口344,以及第二无线上行接口345。有线和无线接口(342、343、344和345)中的每一个都与至少一个对应的硬件设备进行交互,并且该对应的硬件设备由媒体访问控制(MAC)地址唯一地标识。典型的对应的硬件设备包括收发器。该收发器用于发送和接收数据(也就是数据分组)。操作系统308是运行在多路径客户端设备300上的一套软件。通信应用软件310或311运行在多路径客户端设备300上。多路径上行管理软件(MMS)314也运行在多路径客户端设备300上。设备子驱动程序316也运行在多路径客户端设备300上。
多路径客户端设备300本身与所有可用的分组交换网络相关联。所有这些分组交换网络都连接到互联网骨干网。多路径客户端设备300包括四个通信接口(342、343、344和345),且多路径客户端设备300可将自身与最多四个不同类型的分组数据网络相关联。例如但不限于,多路径客户端设备300通过第一有线上行接口342将其自身与有线数据网络的第一接入点相关联。与有线数据网第一接入点之间的关联包括由第一接入点为其分配IP地址。多路径客户端设备300使用第一IP地址和第一有线上行接口342来向有线数据网发送数据,并通过第一接入点从有线数据网接收数据。在这个非限定性实施例中,多路径客户端设备300通过第二有线上行接口343和第二IP地址与光纤数据网络的第二接入点相关联。多路径客户端设备300还通过第一无线上行接口344和第三IP地址与属于卫星数据网络的第三接入点相关联。多路径客户端设备300还通过第二无线上行接口345和第四IP地址与UMTS数据网络的第四接入点相关联。第二IP地址、第三IP地址和第四IP地址分别通过第二接入点(也就是光纤数据网)、第三接入点(也就是卫星数据网络)和第四接入点(也就是UMTS网络)分配给多路径客户端设备300。
多路径客户端设备300的用户输入接口330可以是多个按钮、键盘、触摸屏、鼠标、语音接口,触摸笔、拇指转轮等。多路径客户端设备300可以是个人计算机、电话机、电视机、耳机,以及视频游戏机等。若多路径客户端设备300是个人计算机,则用户输入接口330通常为鼠标和键盘。若多路径客户端设备300是电话机,则用户输入接口330通常为屏幕和多个按钮。若多路径客户端设备300是视频游戏机,则用户输入接口330通常为拇指转轮和游戏摇杆。多路径客户端设备300可向互联网骨干网发送数据。在这个非限定性实施例中,多路径客户端设备300为一电话机。电话机300通过多个按钮330(用户输入接口)接收对视频的选择。非限定的,选择的视频为一段音乐视频,该音乐视频存储于连接到互联网骨干网的互联网服务器上。电话机300与四个接入点相关联(连接到四个接入点),第一接入点属于有线数据网络,第二接入点属于光纤数据网络,第三接入点属于卫星数据网络,第四接入点属于UMTS网络。所有这四个接入点均连接到互联网骨干网。电话机300现在需要通过四个接入点中的任意接入点向互联网骨干网发送请求,用于请求选中的音乐视频。
运行在电话机300上的MMS314对视频选择作出响应,收集对应于四条路径的多个通信条件信息(CRI),这四条路径分别存在于四个接入点和对应的电话机300的四个接口(342、343、344和345)之间。对应于四条路径中每一条的CRI可包括对应路径所支持的最大带宽、对应路径的功率需求、对应路径中存在的延迟、对应路径中的拥塞状况,以及对应路径的成本。对应于第一有线上行接口342的第一CRI通常包括有线数据网络所支持的最大带宽,电话机300在第一接入点和第一有线上行接口342之间的第一路径发送和接收数据时需要的功率,数据包流经第一路径时经历的可以接受的延迟,第一路径上的干扰级别,通过第一路径发送和接收数据时的成本。分别对应于第二有线上行接口343、第一无线上行接口344和第二无线上行接口345的第二CRI、第三CRI和第四CR同样地反映出与对应通信关联有关的统计信息。在通信关联不发生变化的情况下,CRI中的至少一个统计信息,通常是通信关联所支持的最大带宽始终保持不变。即便通信关联不发生变化,CRI的至少一些统计信息,通常是路径中存在的延迟以及干扰级别,也会随时间发生变化。MMS314将收集到的多个通信条件信息(CRI)(也就是第一CRI、第二CRI、第三CRI,和第四CRI)存储于存储系统304中。MMS314通过定期收集多个CRI来对存储的多个CRI进行定期更新。运行在话机300上的MMS314可从四个接入点、电话机300的四个接口,以及运行在电话机300上的操作系统308收集这些CRI。
MMS314响应该视频选择请求,收集对应于这四条路径的多个CRI。MMS对视频选择的响应可通过从存储系统304中获取存储的多个CRI值来进行。运行在多路径客户端设备300上的通信应用软件将MMS314收集的这些CRI展示给用户。通信应用软件(310或311)可将这些CRI显示在电话机300的屏幕(也就是用户输入接口330)上。通信应用软件311可以是运行在单路径客户端设备上的任意标准互联网浏览器应用程序(IE、Firefox)。通信应用软件310是一套软件如对通信应用软件311进行了修改,添加了多个新增特性以支持多路径管理过程。因此,链路选择和无缝切换过程将通知通信应用软件311。通信应用软件311清楚这些过程何时执行,更为重要的,通信应用软件311还可在该过程中协助该过程的进行。例如,通信应用软件311可直接或者在应用过程中将当前以及此后的要求和条件发往多路径管理进程,以协助选择和管理过程的进行。通过使用软件310或311,根据显示在电话机300屏幕上的多个CRI,可向用户提供四条路径以供选择。通信应用软件(310或311)响应用户作出的路径选择,将该路径选择通知MMS314。
在本示范性实施例中,用户选择对应于第二有线接口343的路径。在本示范性实施例中,第二有线接口343与属于光纤数据网络的第二接入点相关联。运行在电话机300上的MMS314控制设备子驱动器316将此后与互联网骨干网之间进行的全部数据收发过程切换至通过第二有线接口343进行。子驱动器316为一套软件,可驱动对应第一有线上行接口342、第二有线上行接口343、第一无线上行接口344,以及第二无线上行接口345的所有硬件设备。这些硬件设备由其MAC地址唯一地标识。电话机300响应此视频选择,需要将对应于所选音乐视频的请求发往互联网骨干网。子驱动器316使用第二有线接口343来发送第一份数据,其中包含对所选音乐视频的请求。第二有线接口343(也就是与第二有线接口343相关联的硬件)使用第二IP地址将第一份数据发往第二接入点。对所选音乐视频的请求通过用户选择的路径(也就是对应于第二有线接口343的路径)最终到达互联网骨干网。
在本示范性实施例中,存储有所选音乐视频的互联网服务器对该请求作出响应,将所选择的音乐视频发往互联网骨干网。MMS314和子驱动器316控制电话机300通过用户选择的路径从互联网骨干网接收选择的音乐视频。第二有线接口343使用第二IP地址从第二接入点(通过光纤数据网络连接到互联网骨干网)接收选择的音乐视频。
这四个分组数据网中的数据流随时间进行变化,因此,多个CRI也随时间进行变化。运行在电话机如300上的MMS314在固定的时间间隔收集这些CRI,同时,电话机300通过第二有线接口343接收选择的音乐视频。MMS314收集这些CRI的时间间隔为一预先设定的值。在本示范性实施例中,用户选择的第二路径上的干扰级别随时间不断增加。可对MMS314进行设置,使得其在用户选择路径上的干扰级别超过一上限值时作出响应。该上限值可为一预先设定的值。如果在某一时刻,第二路径上的干扰级别超过该上限值,运行在电话机300上的MMS314可查找最近一次收集的CRI,从剩下的三条路径(也就是,经由第一有线上行接口342的路径、经由第一无线上行接口344的路径,以及经由第二无线上行接口345的路径)中选择一条具有最低干扰的替代路径。例如但不限于,在该时刻,经由第一无线上行接口344的路径具有最低干扰。MMS314会控制子驱动器316使用第一无线上行接口344来替代第二有线上行接口342收发数据。子驱动器316控制与第一无线上行接口344相关联的硬件从互联网骨干网接收选择的音乐视频。第一无线上行接口344与属于卫星数据网络的第三接入点相关联。与第一无线上行接口344相关联的硬件会向卫星数据网络和互联网服务器发送请求消息,请求互联网服务器通过卫星数据网络发送选择的音乐视频。选择的音乐视频会通过卫星数据网络到达第三接入点。电话机300使用第三IP地址通过第一无线上行接口344接收选择的音乐视频。子驱动器316控制与第二有线上行接口343相关联的硬件停止接收选择的音乐视频。MMS314和子驱动器316在该时刻进行路径的切换,即从一条高干扰路径切换至一条具有最低干扰的路径,并且不会造成数据丢失。
还可对MMS314进行设置,使得其在用户选择路径上的延迟超过一上限值时作出响应。
在本示范性实施例中,MMS314和子驱动器316通过用户选择的路径对数据进行路由。在另一实施例中,运行在电话机300上的应用无论何时需要从/向互联网骨干网收/发数据,MMS314都会查找最近一次收集的多个CRI值,并从这四条可用路径中选择一条路径。MMS314可根据从/向互联网骨干网收/发的数据的类型来选择路径。例如但不限于,本实施例中的应用为多媒体游戏应用。该多媒体游戏应用要下载大量数据,并需要实时操作。运行在电话机300上的MMS314对该多媒体游戏应用要求作出响应,查找最近一次收集的多个CRI值,从四条可用路径中选择一条可提供最高带宽的路径。在该实施例中,在四条可用路径中,第二接入点和第二有线上行接口343之间的路径可提供最高的带宽。运行在电话机300上的MMS314控制设备子驱动器316将此后多媒体游戏应用要求的与互联网骨干网之间的所有数据收发过程都使用第二有线上行接口343进行。互联网骨干网和电话机300之间的数据传输通过光纤数据网进行。
在另一实施例中,例如但不限于,该应用为一IP网络上的语音(VoIP)应用。该VoIP应用要与互联网骨干网之间收发语音数据包。运行在电话机300上的MMS314响应该VoIP应用要求,查找最近一次收集的多个CRI值,从四条可用路径中选择一条可提供最低延迟的路径。在本实施例中,在四条可用路径中,第四接入点和第二无线上行接口345之间的路径可提供最低延迟。运行在电话机300上的MMS314控制设备子驱动器316将VoIP应用要求的与互联网骨干网之间的所有数据收发过程都使用第二无线上行接口345进行。电话机300与互联网骨干网之间的数据收发过程通过WiMax网络进行。
图4是本发明运行有多个软件的客户端设备400的示意图,该客户端设备400支持从其自身到多个接入点的多条数据路径。客户端400可以是计算机、视频游戏机、电话机、电视机、机顶盒、耳机或任意的运行有要求与互联网之间收发数据分组的至少一个应用的设备。如果客户端设备400为计算机,则例如但不限于,运行在计算机400上的至少一个应用可以是互联网浏览器(也就是网页浏览)应用,它运行在OSI/ISO协议栈的第7层上。用户通常通过显示在计算机400屏幕上的网页浏览器(也就是Internet Explorer、NetscapeNavigator、Mozilla Firefox等)与互联网浏览应用交互。运行在计算机400上的该互联网浏览应用响应用户通过用户输入接口(通常为键盘和鼠标)输入的用户选择信息,触发计算机400的通信接口(也就是,通常OSI/ISO协议栈第2层和/或第1层)向互联网发送请求,请求此用户选择所指定的存档数据(例如,网页)。运行在计算机400上的低层硬件和软件(也就是,OSI/ISO协议栈第6层、5层、4层、3层、2层)将该请求封装到第一组多个分组中,并由计算机400的通信接口将第一组分组发往互联网。计算机400的通信接口还从互联网接收第二组多个分组,其中包含所请求的存档数据(也就是网页)。在本示范性实施例中,数据分组涉及第一组分组和第二组分组。运行在计算机400上的低层硬件和软件(也就是,OSI/ISO协议栈第6层、5层、4层、3层、2层)从第二组多个分组中提取收到的存档数据,将其转发至互联网浏览应用(也就是OSI/ISO协议栈第7层)。互联网浏览应用在计算机400的屏幕上显示收到的存档数据,也就是所请求的网页。
运行在计算机400上的这至少一个应用可以是互联网电话应用。第一用户与使用目的设备的第二用户之间收发语音信息。互联网电话应用同样运行于目的设备上。该目的设备与互联网相连。在这种情况下,第一组的多个分组包括使用计算机400的第一用户的语音。第二组的多个分组包括使用目的设备的第二用户的语音。
如果客户端设备400是电视机和机顶盒,则例如但不限于,在电视机和机顶盒400上运行的这至少一个应用可以是电视节目收看应用。在这种情况下,第一组的多个分组包括发往互联网的电视节目(录播或直播多媒体信息,如新闻节目、足球比赛、音乐节目等)请求,第二组的多个分组包括所请求的电视节目。
客户端设备400包括多个通信接口。客户端设备400通过多条数据路径与多个接入点通信。这多个接入点属于多个不同的分组数据网络。例如但不限于,客户端设备400包括三个通信接口,有线接口、第一无线接口和第二无线接口。在开机后,客户端设备400将其自身与可用的接入点相关联。接入点包括收发器,从客户端设备400接收数据分组,然后发往对应的分组数据网络。同时,该接入点从对应的分组数据网络接收数据分组,然后发往客户端设备400。
例如但不限于,在第一时刻,客户端设备400配置了属于光纤数据网络的第一接入点,属于IEEE802.11网络的第二接入点,属于WiMax网络的第三接入点,以及属于卫星数据网络的第四接入点。在客户端设备400的有线接口中插接有光纤线缆。在开机后,客户端设备400分别通过有线接口、第一无线接口和第二无线接口,将其自身与第一接入点、第二接入点和第三接入点相关联。第一接入点为客户端设备400的有线接口分配第一IP地址。这样一来,客户端设备400便可使用第一IP地址,通过有线接口和第一接入点与光纤数据网通信。第二接入点为客户端设备400的第一无线接口分配第二IP地址。这样一来,客户端设备400便可使用第二IP地址,通过第一无线接口和第二接入点与IEEE802.11网络通信。第三接入点为客户端设备400的第二无线接口分配第三IP地址。这样一来,客户端设备400便可使用第三IP地址,通过第二无线接口和第三接入点与WiMax网络通信。与客户端设备400通信的多个接入点包括第一接入点、第二接入点和第三接入点。这多条数据路径包括有线接口和第一接入点之间的第一数据路径,第一无线接口和第二接入点之间的第二数据路径,第二无线接口和第三接入点之间的第三数据路径。多个不同的分组数据网络包括光纤数据网络、IEEE802.11网络,以及WiMax网络。
运行在客户端设备400上的操作系统410(例如,Windows XP,UNIX,Linux等)与通信软件应用程序交互。该通信软件应用程序416可以是标准的网页浏览应用(例如,IE,Netscape Navigator,Mozilla Firefox等)。客户端设备400上还运行有多路径管理软件(MMS)420。MMS420控制和监视客户端设备400通过多条数据路径与多个接入点之间的通信。通信软件应用415可以是带有多个新增功能的标准网页浏览应用。这些新增功能使得用户可使用客户端设备400与MMS420交互。
MMS420控制多个低层设备驱动器(424、425、426和427)。低层设备驱动器是一套软件,用于驱动与客户端设备400一个或多个通信接口(也就是有线接口、第一无线接口,以及第二无线接口)相关联的硬件。单入单出(SISO)低层设备驱动器437通过单条输入线路从MMS420接收数据分组。SISO设备驱动器427对单条数据路径上的数据分组交换进行控制。例如,SISO设备驱动器427驱动与第一无线接口相关联的硬件。第一无线接口在第一时刻与IEEE802.11网络相关联。SISO设备驱动器427通过单条输入线路从MMS420接收数据分组。MMS420将IEEE802.11网络分配给第一无线接口的第二IP地址嵌入数据分组中。SISO设备驱动器427控制与第一无线接口相关联的发射器发送数据分组。与第一无线接口相关联的发射器发送的数据分组内嵌有第二IP地址。因此,属于IEEE802.11网络的第二接入点接收该发射器发送的数据分组。SISO设备驱动器427控制与第一无线接口相关联的接收器查找其内嵌有第二IP地址的数据分组。当与第一无线接口相关联的接收器检测到内嵌有第二IP地址的数据分组,该接收器便接收这些数据分组,并将其转发给SISO设备驱动器427。SISO设备驱动器427向MMS420转发收到的数据分组。
MMS420控制SISO设备驱动器427收集与此单条数据路径有关的统计信息,该路径上的数据分组交换由SISO设备驱动器427控制。物理层437涉及SISO设备驱动器427所控制的单条数据路径。这些统计信息可包括数据路径中的延迟、该数据路径上的信噪比、与第一无线接口相关联的发射器为保持预先定义的该数据路径上的比特误码率所要求的功率。SISO设备驱动器427可请求第二接入点提供一些或全部的这种统计信息,SISO设备驱动器427随后将从第二接入点收到的这些统计信息发往MMS420。SISO设备驱动器427可通过发送和接收训练分组数据来测定一些或全部的这些统计信息。
SISO设备驱动器427在固定的时间间隔收集与此单条路径有关的这些统计信息。例如但不限于,MMS420在第二时刻接收多个统计信息,并判断出此单条数据路径中的延迟大于预先设定的阈值。MMS420可控制SISO设备驱动器427改变关联,切换到一个新的关联上。SISO设备驱动器427可控制第一无线接口查找属于无线分组数据网而不是IEEE802.11网络的接入点。第一无线接口现在可将其自身与属于WiMax网络的第三接入点相关联。该WiMax网络可为第一无线接口分配第四IP地址。SISO设备驱动器427现在控制的是第一无线接口和属于WiMax网络第三接入点之间的一条不同路径上的数据分组交换。路径的切换由MMS420触发和管理,这种切换操作可发生在第一无线接口没在与互联网之间发送或接收任何分组数据的时候(控制数据以及包含一些或全部统计信息的数据除外)。MMS420可控制SISO设备驱动器427收集与该条不同路径有关的第二组统计信息,从第二时刻起,该路径上的数据分组交换由SISO设备驱动器427控制。
单入双出(SIDO)低层设备驱动器426通过单条输入线路从MMS420接收数据分组。SIDO设备驱动器426控制第一路径435和第二路径436上的数据分组交换。例如,SIDO设备驱动器426驱动与有线接口关联的第一硬件,以及与第一无线接口关联的第二硬件。在第一时刻,有线接口与光纤数据网络相关联,第一无线接口与IEEE802.11网络相关联。SIDO设备驱动器426通过单条输入线路从MMS420接收数据分组。MMS420控制SIDO设备驱动器426收集与第一路径435有关的第一组的多条统计信息,该第一路径435存在于有线接口和属于光纤数据网络的第一接入点之间。MMS420还控制SIDO设备驱动器426收集与第二路径436有关的第二组的多条统计信息,该第二路径436存在于第一无线接口和属于IEEE802.11网络的第二接入点之间。MMS420使用第一组和第二组的多条统计信息在第一路径435和第二路径436中间选出一条路径。可对MMS420进行设置,使其选择在指定时刻提供最低干扰的那条路径。还可对MMS420进行设置,使其选择在指定时刻提供最高带宽的那条路径。
例如但不限于,第二路径436可提供比第一路径435更高的带宽。在向SIDO设备驱动器426发送数据分组前,MMS420将IEEE802.11网络分配给第一无线接口的第二IP地址嵌入数据分组内。MMS420控制SIDO设备驱动器426通过第二路径436收发数据分组。SIDO设备驱动器426控制与第一无线接口相关联的第二硬件发送数据分组。与第一无线接口相关联的第二硬件所发送的数据分组内嵌有第二IP地址。因此,属于IEEE802.11网络的第二接入点接收上述发射器发送的数据分组。SIDO设备驱动器426控制第二硬件查找嵌有第二IP地址的数据分组。当第二硬件检测到嵌有第二IP地址的数据分组,第二硬件接收这些数据分组,并转发到SIDO设备驱动器426。SIDO设备驱动器426将收到的数据分组转发给MMS420。
在第二时刻,客户端设备400移至一新位置。这时,其与第二接入点之间的通信关联已丢失。第一无线接口查找可用的无线分组数据网络。例如,第一无线接口与属于IEEE802.11网络的第四接入点相关联。第四接入点为第一无线接口分配第四IP地址。此时,第二路径436是指第一无线接口和第四接入点之间的通信路径。MMS420控制SIDO设备驱动器426收集与第一路径435有关的第一组的多条统计信息,以及与新的第二条路径436有关的第三组的多条统计信息。MMS420判断出,在该第二时刻,有线接口和第一接入点之间的第一路径435可比新的第二路径436提供更高的带宽。MMS420随后控制SIDO设备驱动器426通过第一路径435来路由数据分组,并停止通过新的第二路径436发送和接收数据分组。在将数据分组发往SIDO设备驱动器426之前,MMS420将由属于光纤数据网络的第一接入点分配的第一IP地址嵌入数据分组中,这样一来,SIDO设备驱动器426便可控制数据分组经由第一路径435传送。
多入多出(MIMO)设备驱动器424通过三条输入线路从MMS420接收数据分组,也就是说,MIMO设备驱动器424接收运行在客户端设备400上的三个不同应用所生成的数据分组。MIMO设备驱动器424控制第一路径432和第二路径433上的数据分组交换。例如,MIMO设备驱动器424驱动与第一无线接口相关联的第一硬件,以及与第二无线接口相关联的第二硬件。在第一时刻,第一无线接口与属于IEEE802.11网络的第二接入点相关联,第二无线接口与属于WiMax网络的第三接入点相关联。MIMO设备驱动器424通过三条输入线路从MMS420接收数据分组。例如,客户端设备400上运行有游戏应用、网页浏览应用、以及互联网电话应用。MIMO设备驱动器424通过这三条输入线路接收对应于游戏应用的第一组数据分组,对应于网页浏览应用的第二组数据分组,以及对应于互联网电话应用的第三组数据分组。
MMS420从第一路径432和第二路径433中选出一条更高带宽的路径,然后控制MIMO设备驱动器424通过这条具有更高带宽的路径路由对应游戏应用的第一组多个数据分组。如果在第二时刻,控制设备上未运行该游戏应用,则MMS420将控制MIMO设备驱动器424通过这条具有更高带宽的路径路由对应互联网电话应用的第三组数据分组。例如但不限于,在第三时刻,第二无线接口和属于WiMax网络的第三接入点之间的第二路径433断开。这时,第二无线接口就将自身与属于IEEE802.11网络的第五接入点相关联。第一路径432指的是第一无线接口和属于IEEE802.11网络的第二接入点之间的路径。第二路径433指的是第二无线接口和属于IEEE802.11网络的第五接入点之间的路径。
在第三时刻,第一路径432和第二路径433提供同样大小的带宽。这时,MMS420会控制MIMO设备驱动器424通过具有更低干扰的路径路由对应游戏应用的第一组分组数据。MMS420负责从多条路径(例如,第一路径432和第二路径433)选出一条路径,并通过控制低层设备驱动器(424、425、426和427中的一个或多个)与对应硬件(例如,发射器和接收器)之间进行交互,来保持选中路径上的分组数据交换。MMS420和低层设备驱动器(424、425、426和427中的一个或多个)可获取对应多条路径的多条统计信息,并使用这些获取的统计信息无缝切换至一条新路径,以继续进行数据分组交换。
图5是本发明运行有多个软件的接入点500的示意图,该接入点500支持从其自身到多个客户端设备的第一组多条数据路径,以及从其自身到分组交换网络的第二组多条数据路径。接入点500与分组交换网络和多个客户端设备相关联。该接入点和分组交换网络可使用同一种协议,接入点使用该协议与分组交换网络通信。接入点为多台客户端设备分配多个IP地址。接入点500包括至少一个收发器,它通过第二组多条数据路径中的一条从分组交换网络接收第一组多个数据分组,并从多台客户端设备中确定第一组多个数据分组的目的设备,然后将收到的数据分组发往确定的客户端设备。该收发器还从多个接入点中的一个或一些接收第二组数据分组,然后通过第二组多条数据路径中的一条将第二组多个数据分组发往分组交换网络。运行在接入点500上的多路径管理软件(MMS)550从第二组多条数据路径中选择其中的一条,用于在该接入点和分组数据网络之间进行数据分组交换。
例如但不限于,接入点500通过第一路径570、第二路径572和第三路径574与WiMax网络相关联。第二组多条数据路径指的是第一路径570、第二路径572和第三路径574。双入单出(DISO)设备驱动器560是一套软件,用于驱动对应第一路径570的第一硬件电路。对应第一路径570的第一硬件电路至少包括第一收发器,用于通过第一路径570收发数据分组。在本实施例中,第一路径570是接入点500和属于WiMax网络的集线器或交换机或另一接入点之间的第一无线路径。通过第一路径570传送的数据分组遵守WiMax协议。WiMax网络为第一路径570分配第一IP地址。DISO设备驱动器560通过第一输入路径和第二输入路径从MMS550接收数据分组。DISO设备驱动器560用于将来自第一输入路径和第二输入路径的数据分组转发给对应第一路径570的第一硬件电路。
MMS550可控制DISO设备驱动器560收集对应第一路径570的第一通信条件信息(CRI)。该第一CRI可包括WiMax网络分配给第一路径570的IP地址(也就是第一IP地址)、第一路径570上的延迟、第一路径570上的数据流、第一路径570的成本、第一路径570使用的跳数(hops)等。第一CRI随时间进行变化。MMS550可控制DISO设备驱动器560定期收集第一CRI。MMS550可从DISO设备驱动器560接收第一CRI,并将其存储在接入点500的存储系统中。在需要时,MMS550还可从第二存储系统获取第一CRI。第一CRI中的一个或多个参数可能是出厂设置值,它们存储在接入点500的存储系统中。
单入双出(SIDO)设备驱动器565是一套软件,用于驱动对应第二路径572的第二硬件电路,以及驱动对应第三路径574的第三硬件电路。第二和第三硬件电路至少分别包括第二收发器和第三收发器,分别用于通过第二路径572和第三路径574收发数据分组。在本实施例中,第二路径572和第三路径574分别是接入点500和WiMax网络中相同或不同集线器或交换机之间的第二无线路径和第三无线路径。WiMax网络分别为第二路径572和第三路径574分配第二IP地址和第三IP地址。SIDO设备驱动器565通过单条输入路径从MMS550接收数据分组,并可在MMS550监控下,将来自单条输入路径的数据分组转发给对应第二路径572的第二硬件电路或对应第三路径574的第三硬件电路。MMS550可控制SIDO设备驱动器565定期收集分别对应第二路径572和第三路径574的第二CRI和第三CRI,并将它们发往MMS550。在需要时,MMS550还可从第二存储系统获取第二CRI和第三CRI。
在本示范性实施例中,MMS550用于控制将由运行在接入点500上的任意应用生成的分组数据通过三条路径,即第一路径570、第二路径572,以及第三路径574中可提供最低延迟的路径传送。例如但不限于,接入点500上运行有视频下载应用。该视频下载应用要从互联网下载(接收)一存档的视频文件。接入点500通过WiMax网络与互联网相连。接入点500可通过第一路径570、第二路径572,以及第三路径574中的任一路径连接到WiMax网络。运行在接入点500上的MMS550有第一CRI、第二CRI,以及第三CRI。MMS550使用第一CRI、第二CRI和第三CRI从第一路径570、第二路径572和第三路径574中确定可提供最低延迟的那条路径。例如,第二路径572可提供最低的延迟。MMS550控制SIDO设备驱动器565通过第二路径572从互联网接收对应该存档视频文件的数据分组。SIDO设备驱动器565控制对应第二路径的第二硬件从互联网接收对应所存档视频文件的数据分组。SIDO设备驱动器565将收到的数据分组转发给MMS550,后者将这些数据分组转发给该视频下载应用。
例如但不限于,双入双出(DIDO)设备驱动器510驱动对应双路径530的第五硬件和第六硬件。第一客户端设备通过双路径530与接入点500的第五硬件和第六硬件相连。MMS550控制DIDO设备驱动器51O收集对应双路径530的CRI。第一客户端设备无论何时想要从/向接入点收/发数据分组,就向接入点发送请求。MMS550响应来自客户端设备的请求,使用对应双路径530的CRI从双路径530选出一条路径。MMS550控制客户端设备使用从双路径530选出的路径从/向接入点收/发数据。MMS550控制DIDO设备驱动器510使用对应所选出路径的硬件与第一客户端设备收发数据分组。
图6是本发明运行在计算设备上的多路径管理软件(MMS)管理该计算设备和至少一个分组交换网之间的多条通信路径的方法的流程图。该计算设备可以是个人计算机、电话机、与电视机相关联的机顶盒、属于分组数据网络的接入点,或者可与分组数据网络通信的任何类型的设备。该至少一个分组交换网络可以是有线网络、光纤网络、卫星数据网络、WiMax网络、IEEE802.11网络、UMTS网络、GPRS网络、CDMA网络,或者可将数据分段放入分组中进行传输的任何类型的标准或专用的数据网络。数据指的是视频、音频、音乐视频、视频游戏、语音对话、图片、文本消息、电视节目,以及任何实时或存档的多媒体信息中的一种或多种。
在步骤605,计算设备开机,该设备的操作系统(OS)(例如,Windows XP,Linux,Unix等)开始启动。在步骤605,操作系统(OS)启动多路径管理软件(MMS)。该计算设备包括多个通信接口。该计算设备在开机后,便开始将每个通信接口与至少一个分组数据网络相关联。如果该计算设备为一接入点,则该计算设备可尝试将每个通信接口与同一分组数据网络相关联。如果该计算设备为一客户端设备,例如,个人计算机、电话机、耳机,则该计算设备可尝试将通信接口与多种类型的分组数据网络相关联。该计算设备可以是个人计算机,该个人计算机可具备第一通信接口、第二通信接口和第三通信接口。该个人计算机在开机时便可将第一通信接口与属于IEEE802.11网络的第一接入点相关联。因此,在第一通信接口和属于IEEE802.11的第一接入点之间便建立起第一通信路径。该个人计算机还可将第二通信接口与属于WiMax网络的第二接入点相关联。因此,在第二通信接口和属于WiMax网络的第二接入点之间便建立起第二通信路径。该个人计算机还可将第三通信接口与属于UMTS网络的第三接入点相关联。因此,在第三通信接口和属于UMTS网络的第三接入点之间便建立起第三通信路径。在该实施例中,第一、第二和第三通信接口为无线接口。第一、第二和第三通信接口中的一个或多个还可以是有线接口。在这种情况下,个人计算机可将该有线接口与有线分组数据网络相关联。多条通信路径指的是第一、第二和第三通信路径。运行在该个人计算机上的MMS对第一、第二和第三通信路径进行管理。
如步骤605所示,在启动后,MMS便开始分析并监视该计算设备(客户端设备或接入点)的多个通信接口,以及多条相关的通信路径。在下一步骤607,第一通信应用、第二通信应用和第三通信应用被启动。第一通信应用和第二通信应用可对应于互联网浏览。如步骤607所示,MMS分别从第一通信应用和第二通信应用接收第一网页请求和第二网页请求。第三通信应用包括内置的多路径管理功能。
例如但不限于,第一通信应用可能至少会要求一条最低数据率的通信路径。对应于第一通信应用的第一通信条件信息(CRI),也就是所要求的最低数据率,可能存储在存储系统中。在下一步骤609,MMS从存储系统获取第一CRI。若存储系统中没有存储第一CRI,则在步骤609,MMS会提示用户输入第一CRI。MMS通过该计算设备的用户输入接口接收用户输入的第一CRI。该计算设备的这个用户输入接口可以是键盘、鼠标、触摸屏、以及多个按钮等。若在步骤609中,用户未输入第一CRI,则在步骤609,MMS对来自第一通信应用的请求(也就是第一网页请求)进行分析,并确定第一CRI(也就是分配给第一通信应用的最低带宽)。在步骤611,MMS尝试为第一通信应用分配第一CRI中所指定的最低带宽。在步骤609,MMS直接或间接的收集对应第二通信应用的第二CRI。第二CRI可包括第二通信应用所能接受的最大延迟和第二通信应用所要求的最低信扰比。如果该计算设备是接入点,也就是说MMS没有运行在个人计算机上,而是运行在例如第一接入点上,则在步骤609,运行在第一接入点上的MMS通过第一通信路径从个人计算机接收对应于第一通信应用的第一CRI。
在步骤611,MMS确定,个人计算机(计算设备)和第一接入点之间的第一通信路径、个人计算机和第二接入点之间的第二通信路径,以及个人计算机与第三接入点之间的第三通信路径可用于与互联网传送数据分组。在步骤611,MMS从这三条可用通信路径中选择一条满足第一CRI的路径。满足第一CRI的路径可能不止一条。MMS可从该一条以上的路径中随机选择其中的一条。MMS控制个人计算机使用选中的路径将第一通信应用生成的数据分组发往互联网,或从互联网接收其所要求的数据,直到在步骤611从MMS收到下一条的指令。个人计算机通过在步骤611中选择的路径向互联网发送第一网页请求(以数据分组的形式)。个人计算机通过选择的路径从互联网接收所请求的网页(以数据分组的形式)。
该计算设备可以是接入点。该接入点支持其自身到互联网的多条通信路径。如果该计算设备为第一接入点,也就是说,MMS不是运行在个人计算机上,而是运行在第一接入点上,则运行在第一接入点上的MMS从多条通信路径中选择一条满足第一CRI的路径。第一接入点从个人计算机接收第一网页请求(以数据分组的形式),并通过在步骤611中选择的路径将其发往互联网。第一接入点通过选择的路径从互联网接收所请求的网页(以数据分组的形式),并将其发往个人计算机。运行在该计算设备(个人计算机或者第一接入点)上的MMS从多条可用路径中选择满足第二CRI的第二路径,控制第二通信应用使用选择的路径与互联网进行数据分组交换。
运行在该计算设备(个人计算机或者第一接入点)上的MMS对所选择的路径和其他可用通信路径进行定期监控。若在某一时刻,第一通信应用所使用的路径不能满足第一CRI,则在下一步骤660,MMS会从其他可用通信路径中选择一条可满足第一CRI的不同路径,并控制第一通信应用使用该不同路径代替前一路径进行数据分组交换,直到从MMS收到下一条指令。在该时刻,前一路径不能提供第一通信应用所要求(在第一CRI中指定的)的最小数据率,这可能是由于该路径中数据流量增大而造成的。MMS继续对该计算设备和互联网之间的所有可用路径进行定期监控。在步骤650,MMS还对第二通信应用所使用的路径进行类似的定期监控,并在步骤660中,根据第二CRI,以及该路径的健壮性和/或特征(例如,该路径提供的带宽、该路径中存在的延迟、流经该路径的数据流量等)进行路径切换。MMS可在该路径中的延迟超过第二CRI中指定的上限时改变第二通信应用所使用的路径。
在步骤607,将启动具有内置多路径管理功能的第三通信应用。第三通信应用可能需要满足多个通信条件。例如,第三通信应用可能要求使用一条具有低功率、低干扰的通信路径。在步骤621第三通信应用向MMS发送对应第三通信应用的第三CRI(也就是第三通信应用的最大功率要求和最大干扰要求)。在步骤631,MMS从该计算设备和互联网(或接入点,若该计算设备不是接入点而是客户端设备)之间的多条可用路径中选择一条可满足第三CRI的路径。在步骤631,MMS控制该计算设备使用选中的路径向互联网发送第三通信应用所生成的数据分组,或者从互联网接收第三通信应用所要求的数据分组。如步骤650所示,MMS对选中的路径进行监控,并在必要是改变所用的路径。在步骤621,MMS可能已从多条可用路径中选择了一条满足最低功率的路径。该选中的路径所提供的干扰低于第三CRI指定的可以接受的最大干扰级别。在第二时刻,所选路径中的干扰可能超过可以接收的最大干扰级别。这时,MMS控制第三通信应用转而使用第二路径,该路径所提供的干扰低于可以接受的最大干扰级别。但是,该第二路径可能要使用大于前一路径的功率。
在步骤621,具有内置多路径管理功能的第三通信应用可能绕过MMS,选择一条满足第三CRI的路径。第三通信应用使用选择的路径进行分组数据交换,直到所选路径不能满足对应第三通信应用的通信条件。之后,第三通信应用触发路径变更,如步骤650所示。
图7所示为支持从计算设备到互联网的多条路径的计算设备协议层所执行功能的流程图。如步骤704所示,该计算设备的最上层协议层运行有互联网浏览程序。使用该互联网浏览程序的用户输入用户选择。该用户选择可能指向一网页。该互联网浏览程序生成一请求数据,向互联网请求所选择的网页。如步骤706所示,低层协议层(lower protocol layer)对请求数据进行加密和/或编码。通过执行加密和/或编码,可避免请求数据在通过物理介质传送时可能产生的错误。如步骤708所示,下一低层协议层选择一通信协议,该计算设备(也就是该计算设备的硬件和/或软件)使用该协议从/向互联网收/发数据信息。如步骤710所示,更低层协议层(further lower protocol layer)对请求数据进行分段,然后装入分组中。
该计算设备至少包括以太LAN无线模块、IEEE802.11无线模块,以及GPRS无线模块。该计算设备分别使用以太LAN无线模块、IEEE802.11无线模块,以及GPRS无线模块通过以太局域网(LAN)、IEEE802.11网络和GRPS网络连接到互联网。如步骤714所示,以太LAN无线模块由第一MAC地址唯一标识。如步骤716所示,IEEE802.11无线模块由第二MAC地址唯一标识。如步骤718所示,GPRS无线模块由第三MAC地址唯一标识。因此,该计算设备通过至少三条通信路径与互联网相连,这三条路径是通过以太LAN无线模块实现的第一路径、通过IEEE802.11无线模块实现的第二路径,以及通过GPRS无线模块实现的第三路径。如步骤712所示,第二低层协议层(second next lower protocollayer)在固定的时间间隔,计算该计算设备和互联网之间每条路径的成本。每条路径的成本与对应路径的资金成本、对应路径上的数据流量、对应路径中的延迟,以及对应路径中的干扰等参数有关。与每条路径成本有关的参数随时间进行变化。第二低层协议层在固定的时间间隔获取这些参数,随后计算并更新每条路径的成本。第二低层协议层从更下层协议层(further lower protocollayer)接收包含请求数据的分组。第二低层协议层控制包含请求数据的分组通过这些路径中成本最低的路径传送。这些分组通过最低成本的路径到达物理层(有线或无线)。若最低成本路径为通过以太LAN无线模块实现的第一路径,则该分组中将嵌入第一IP地址。若最低成本路径为通过IEEE802.11无线模块实现的第二路径,则该分组中嵌入第二IP地址。若最低成本路径为通过GPRS无线模块实现的第三路径,则该分组中嵌入第三IP地址。嵌有IP地址的分组通过选择的最低成本路径到达互联网。
图8是本发明一网络的结构示意图,其中展示了多个接入点服务区内的多台客户端设备。第一接入点811为第一圆形地理区域851服务。第一接入点使用第一分组数据交换协议与互联网803通信。例如但不限于,第一分组数据交换协议为WiMax协议。第二接入点813为第二圆形地理区域871服务。在本实施例中,第二接入点813使用第二分组数据交换协议UMTS协议与互联网803通信。第三接入点815使用WiMax协议为第三圆形地理区域881服务。第三接入点815还使用第三分组数据交换协议IEEE802.11协议为第四地理区域861服务。
第一客户端设备821位于第二圆形地理区域871内。第一客户端设备821将其自身与第二接入点813相关联。第二接入点813为第一客户端设备821分配第一IP地址。第一客户端设备821使用第一IP地址和UMTS协议通过第二接入点813从/向互联网803收/发数据分组。
第二客户端设备823位于第一圆形地理区域851、第二圆形地理区域871和第四地理区域861三者的重叠区域。第二客户端设备823将其自身与第一接入点811、第二接入点813和第三接入点815相关联。811、813和815分别为第二客户端设备823分配独立的IP地址。第二客户端设备823通过三条不同的路径与互联网803通信,这三条路径分别是通过第一接入点811使用WiMax协议的第一路径、通过第二接入点813使用UMTS协议的第二路径,以及通过第三接入点815使用IEEE802.11协议的第三路径。
第三客户端设备825位于第二圆形地理区域871和第四地理区域861的重叠区域。第三客户端设备825将其自身与第二接入点813和第三接入点815相关联。813和815分别为第三客户端设备825分配独立的IP地址。第三客户端设备825通过两条不同路径与互联网803通信,这两条路径是通过第二接入点813使用UMTS协议的第四路径,和通过第三接入点815使用IEEE802.11协议的第五路径。
第四客户端设备829位于第三圆形地理区域881和第四地理区域861的重叠区域。第四客户端设备829将其自身与第三接入点815相关联。第三接入点815为第四客户端设备829分配两个独立的IP地址。第四客户端设备829通过两条不同路径与互联网803通信,它们是通过第三接入点815使用WiMax协议的第六路径,和通过第三接入点815使用IEEE802.11协议的第七路径。
在某一时刻,第三客户端设备825移至第四客户端设备829所在位置。因此,第三客户端设备825此时不再在第二接入点813的服务区内。第三客户端设备825与第二接入点813之间的关联随即断开。但第三客户端设备825与第三接入点815之间的关联保持不变。然而,第三客户端设备825通过第八路径使用IEEE802.11协议与第三接入点815通信。第三客户端设备825此时位于第三圆形地理区域881内。第三客户端设备825通过第九路径使用WiMax协议与第三接入点815通信。第三客户端设备825此时存在两条到互联网803的路径,这两条路径均不同于此前第三客户端设备825与互联网803通信所使用的两条路径。
图9是本发明客户端设备建立与分组数据网之间关联的方法的流程图。客户端设备的网络关联过程开始于步骤900,这时客户端设备开机。在下一步骤902,客户端设备关联到第一分组数据网络。该客户端设备关联到属于第一分组数据网络的接入点。该客户端设备与第一分组数据网(也就是接入点)之间的关联过程可包括,客户端设备向接入点发送关联请求。该客户端设备位于接入点所服务的地理区域内。在步骤904,该接入点通过向客户端设备发送IP地址来向该客户端设备发放关联许可。在此后与该接入点的所有通信中,该客户端设备使用该接入点分配的IP地址与其进行通信。客户端设备位于第二分组数据网络的服务区域内。开机后,客户端设备同样关联到第二分组数据网络。客户端设备将关联到所有那些地理服务区域覆盖该客户端设备所在位置的分组数据网络。
在步骤906,客户端设备将属于第一分组数据网络的接入点为其分配的IP地址发往所有其他分组数据网络(或者属于所有其他分组数据网络的接入点)。如果客户端设备发现一新的分组数据网络,则该过程跳转至步骤902,这时,客户端设备关联到新的分组数据网络。这个新的分组数据网络可能在客户端设备改变位置或属于新的分组数据网络的接入点开机时被发现。
如步骤912所示,客户端设备定期更新与所有分组数据网络之间的关联。在某一时刻,客户端设备可能移出特定接入点的服务区,随后,该客户端设备便解除与该特定接入点之间的关联。如步骤916所示,该客户端设备将对应于与多个分组数据网络(或接入点)之间多个关联的IP地址发往这些分组数据网络。该过程随后跳转至步骤909,客户端设备对与所有分组数据网络之间的关联进行更新。
图10是本发明隶属分组数据网的接入点向客户终端传送数据分组的方法的流程图。该分组数据网络可以是WiMax网络、GPRS网络、EDGE网络、GSM网络、WCDMA网络(宽带CDMA)、IEEE802.11网络、以太网、光纤网络、卫星数据网络、有线网络,或者可以承载分段装入分组中的数据的各种网络。数据可以是图片、视频、音频、文本消息、网页、音乐视频、电视节目、娱乐时件,或者任何类型的实时或存档的多媒体信息中的一种或多种。接入点与客户终端相关联。客户终端可以是个人计算机、话筒、机顶盒、电话机,或者可用于收发分段装入分组中的数据的任何种类的设备。属于分组数据网络的接入点至少包括一个收发器,它从客户终端接收数据分组,将收到的数据分组发往该接入点所属的分组数据网络。这至少一个收发器还从其所属的分组数据网络接收其它数据分组,并将收到的数据分组发往客户终端。
在客户终端与接入点建立关联后,接入点向客户终端传送数据分组的过程开始于步骤1000。在建立关联后,接入点为客户终端分配第一IP地址。如步骤1002所示,接入点等待从其所属的分组数据网络接收数据分组。在步骤1004,接入点接收发往客户终端的数据分组。该接入点可能还与除了该客户终端以外的一个或多个客户终端相关联。数据分组的目的地址包含在数据分组中。在步骤1004,接入点通过分析数据分组确定其目的地址,并尝试将这些数据分组发往其客户终端。接入点可通过一条或多条路径与客户终端相连。如果接入点通过单条路径与客户终端相连,那么在步骤1006该客户终端首先确定该单条路径是否可用于向客户终端传送数据分组。若是,则在步骤1008,该接入点通过该单条路径向客户终端传送数据分组。随后,如步骤1002所示,接入点等待来自分组数据网络的新的数据分组的到达。
如果接入点通过多条路径与客户终端相连,则该接入点会从这些路径中选出一条路径。在步骤1006,该接入点会判断是否可通过选择的路径将数据分组发往客户终端。若是,则在步骤1008,接入点将这些数据分组通过选择的路径发往客户终端。随后,如步骤1002所示,接入点等待来自分组数据网络的新的数据分组的到达。
在步骤1006,该接入点可能会发现,无论是通过该单条路径,还是通过选择的路径,都无法将数据分组发往客户端设备。该客户端设备至少还与第二接入点相关联。第二接入点可能与上述接入点属于同一分组数据网络。第二接入点还可属于另一类型的第二分组数据网络。第二接入点为客户端设备分配第二IP地址。该客户端设备在与上述接入点在步骤1000相关联时,会将第二IP地址以及第二接入点通知上述接入点。如果上述接入点无法通过上述单条路径或所选择的路径来发送数据分组,则在步骤1012上述接入点会尝试将数据分组通过第二接入点发往客户终端。客户端设备可能与多个不同于上述接入点的接入点相关联。在这种情况下,上述接入点可掌握客户端设备所关联的多个接入点,以及对应的IP地址。在步骤1010,上述接入点从这些接入点中选择第三接入点。在步骤1012,上述接入点尝试通过选择的第三接入点将数据分组发往客户终端。若数据分组传送成功,则上述接入点跳转至步骤1002,等待来自分组数据网络的新的数据分组的到达。若数据分组传送失败,则上述接入点返回步骤1010,从这些接入点中选择第四接入点,以向客户端设备传送数据分组。上述接入点不断进行尝试,确保发往客户端设备的数据分组最终能够到达客户端设备。
图11是本发明多路径管理软件(MMS)进行示范性路径选择时的功能示意图。第一终端设备(end point device)1111和第二终端设备1141之间的通信可通过从多条可用路径中的选出的任意一条或多条路径来承载,这些可用路径由网络节点1125、互联网骨干网1103,以及第一、第二、第三和第四接入点(AP)1121、1151、1131和1145分别来支持。根据路径建立参数,以及基础通信应用条件,运行在第一和第二终端设备1111和1141,第一、第二、第三和第四AP1121、1151、1131和1145,以及网络节点1125上一个或多个MMS应用可分别独立地工作,也可共同参与路径的选择。
第一通信应用和第二通信应用运行在第一终端设备1111上,第三通信应用和第四通信应用运行在第二终端设备1141上。这些终端设备可以是运行有通信应用的客户端设备和服务器,例如第一、第二、第三和第四每一通信应用可包括视频游戏、互联网电话应用、互联网浏览应用,或需要使用可到达远端终端设备的通信路径的其他通信应用。例如但不限于,运行在第一终端设备1111上的第二通信应用,和运行在第二终端设备1141上的第四通信应用可以是互联网电话应用,其中,第一和第二终端设备1111和1141包括VoIP电话机。这样一来,第二通信应用与第四通信应用之间需要收发语音和补充媒体(如果有的话)。作为选择,例如,第二终端应用可包括客户端计算机上的客户端游戏软件或客户端浏览器软件,它们与服务器上的游戏服务器软件或网页服务器软件交互。
在第一终端设备1111的第二通信应用和第二终端设备1141的第四通信应用之间可存在多条通信路径。如图所示,第二通信应用可使用多达三条链路来连接第一和第二接入点1121和1151。同时,接入点1121和1151总共具有三条链路连接网络节点1125,而网络节点1125具有两条到达互联网骨干网1103的链路。从互联网骨干网1103,有三条链路指向第三和第四接入点1131和1145,这样便总共有三条链路到达第二终端设备1141。每条链路可以是无线的,也可以是有线的。
可从多条链路中选出单条路径,也可同时选出多条路径。运行在第一和第二终端设备1111和1141、第一、第二、第三和第四AP1121、1151、1131和1145,以及网络节点1125上的一个或多个MMS应用选择一条或多条路径。若通信应用,如第一终端设备的第二通信应用具有到MMS的软件接口,该通信应用便可向MMS发送条件信息(如带宽、QoS等),协助MMS进行路径选择。这些通信应用还可控制MMS,或在路径选择过程中通过MMS变得更加活跃。若通信应用不具备这种特定的功能,或未配置成协助或控制MMS,则MMS或者为该通信应用获取预先设定的参数,或者与用户交互(通过弹出窗口,例如),来获取这些参数,进而根据这些参数进行路径选择。
运行在终端设备上的MMS应用可以路径为单位对整条路径中进行选择,也可只在本地链路中进行选择。也就是说,第一终端设备1111上的第一MMS可从下列位置中的一处或多处获取参数,然后对从第一终端设备1111到第二终端设备1141的整条路径作出选择,这些位置包括:1)第二通信应用;2)与第二通信应用相关联的本地或远端存储器;3)与第一通信应用相关联的本地或远端存储器;4)每条本地链路的通信特征;5)源自多个远端MMS应用中每一应用的每条远端链路的通信特征。如果第二通信应用的参数不可知,则第一MMS可选择一条缺省路径。此后,无论最初的路径是如何选择的,第一MMS都会对穿过网络的来自第二通信应用的数据流量进行分析,根据这些分析,在必要时切换至另一条路径。
同样,第一终端设备1111的第一MMS还可将整条路径的选择权或本地链路的选择权交给通信应用。作为选择,每个MMS可只负责本地路径的选择。例如,第一终端设备1111的第一MMS可以选择使用连接第一AP1121的两条所示链路中的一条来支持第二通信应用,而选择使用连接第一AP1121两条链路中的另一条和连接第二AP1151的链路来支持第一通信应用。第二AP1151的第六MMS可选择连接网络节点1125两条链路中的一条或同时选择两条,而第一AP1121的第二MMS可将两条接收链路上的通信汇聚到一条连接到网络节点1125的输出链路。相反的,网络节点1125可将接收数据流分发到两条输出链路上,也可选择单条输出链路,连接到互联网骨干网1103。尽管未进行展示,但互联网骨干网1103还可包括更多的网络节点,它们均具有MMS应用,并可作出类似的链路决定,以到达第三和第四AP1131或1145其中之一,或同时到达此二者,进而到达第二终端设备1141。在这个本地化决策过程中,每个节点上的MMS应用根据从下列一处或多处获取的参数作出其路径选择:1)第二通信应用;2)与第二通信应用有关的本地或远端存储器;3)与第一通信应用有关的本地或远端存储器;4)每条本地链路的通信特征;5)所经过的基础通信流量。此后,每个MMS对数据流量进行分析,在必要时切换至其他或另外的链路。
具体来说,在一示范性配置中,第二通信应用生成第一组多个语音分组,以及补充媒体分组,并发往第一MMS。第一终端设备1111通过两条(无线和/或有线)链路与第一接入点(AP)1121相连,并通过单条链路与第二AP1151相连。运行在第一终端设备1111上的第一MMS和运行在第一AP1121上的第二MMS相互协助对方进行路径选择,并共同决定使用两条路径中的第一条来从第一终端设备1111向第一接入点1121发送第一组多个语音分组,使用两条路径中的第二条来从第一终端设备1111向第一接入点1121发送补充媒体分组。
第一AP1121通过单条链路与网络节点1125相连。运行在第一AP1121上的第二MMS控制第一组多个语音分组和补充媒体分组通过可用的单条链路发往节点1125。与第一组多个补充媒体分组相比,第二MMS为第一组多个语音分组设定了更高的QOS(服务质量)条件。只有在上述单条链路满足第一组多个语音分组的QOS条件时,第一AP1121(或第二MMS控制第一AP1121)才会向节点1125发送第一组多个语音分组。在某一时刻,第二MMS可能发现该单条链路不适合承载第一组多个语音分组,但却适合承载补充媒体分组。因此,第二MMS控制第一AP1121仅通过该单条链路向节点1125发送补充媒体分组。
节点1125通过两条链路与互联网骨干网1103相连。运行在节点1125上的第三MMS从与互联网骨干网1103相连的两条链路中选择一条,通过选择的链路将从第一AP1121收到的第一组多个语音分组和补充媒体分组发往互联网骨干网1103。第三MMS可根据数据分组和补充媒体分组在从第一终端设备1111到达节点1125时所采用的路径,从两条可用路径中选择其中一条。互联网骨干网1103包括多个例如计算设备、路由器、交换机、基站、收发器、域名服务器、代理服务器、存储服务器。互联网骨干网1103中的一个或多个组件将收到的第一组多个语音分组和补充媒体分组发往第三AP1131。第三AP1131将收到的第一组多个语音分组和补充媒体分组通过唯一一条可用的链路转发给第二终端设备1141。当然,还可选择其他路径链路对上述相应路径进行替换或补充,上述选择权也可交由任一MMS,或几个MMS或通信应用来掌控。
在完成了对从第三AP1131收到的第一组多个语音分组和补充媒体分组的分析后,第四MMS确定这些分组的目的地是第二终端设备1141的第四通信应用。第四MMS作出响应,将收到的第一组多个语音分组和补充媒体分组转发给第四通信应用。作为响应,第四通信应用生成第二组多个语音分组和补充媒体分组。本实施例中的第四MMS将第二组多个语音分组和补充媒体分组发往第四AP1145。第二终端设备1141通过两条链路与第四AP1145相连。第四MMS选择其中一条,或同时选择这两条链路来发送第二组多个语音分组和补充媒体分组。
第四MMS作出响应从两条链路中选择一条或多条链路的过程也可不同于从第二通信应用接收语音分组和补充媒体时进行的操作。但是,第四MMS可分析接收信息时的带宽使用情况,以此决定选择一条不同链路来发送信息。在这个例子中,第四MMS通过第三AP1131从互联网骨干网1103接收第一组多个语音分组,通过第四AP1145向互联网骨干网1103发送第二组多个语音分组。作为选择,第四MMS可通过第三AP1131向互联网骨干网1103发送第二组多个语音分组和补充媒体分组。
第四AP1145上运行有第五MMS。第五MMS将从第二终端设备1141收到的第二组多个语音分组和补充媒体分组发往互联网骨干网1103。互联网骨干网1103通过两条链路与节点1125相连。运行在节点1125上的第三MMS从两条链路中选择一条,来从互联网骨干网1103接收第二组多个语音分组和补充媒体分组,并将选择的路径通知互联网骨干网1103。选择的路径可与节点1125用于向互联网骨干网1103发送第一组多个语音分组和补充媒体分组所使用的路径相同,也可以不同。互联网骨干网1103通过选择的链路将从第四AP1141收到的第二组多个语音分组和补充媒体分组发往节点1125。
运行在节点1125上的第三MMS和运行在第二AP1151上的第六MMS共同选出节点1125和第二AP1151之间的两条链路来承载从节点1125发往第二AP1151的第二组多个语音分组和补充媒体分组。其中一条选中的链路承载第二组语音分组,另一条承载第二组补充媒体分组。在另一配置中,运行在节点1125上的第三MMS和运行在第一AP1121上的第二MMS可共同决定通过第一AP1125来传送第二组多个语音分组和补充媒体分组。在第二通信应用和第四通信应用之间的全双工通信中,第三MMS执行两次链路选择,一次用于传送第一组多个语音分组和补充媒体分组,另一次用于传送第二组多个语音分组和补充媒体分组。
第二AP1151将收到的第二组多个语音分组和补充媒体分组转发给第一终端设备1111。运行在第一终端设备1111上的第一MMS分析第二组多个语音分组和补充媒体分组,并将它们转发给运行在终端设备1111上的第二应用。
为支持第一或任何其他通信应用,第一终端设备1111的第一MMS可进行如下操作:1)提示用户为第一通信应用输入缺省参数(以弹出方式询问第一通信应用是用于视频流、音频流、语音电话、视频电话、文件传送、互联网浏览,还是文本聊天等);2)从远端服务器获取预先设定的配置;3)从本地存储器获取预先设定的配置信息;4)如果可以的话,从MMS接口获取预先设定的配置信息;5)使用缺省配置。该配置信息包括多个参数,这些参数与下列因素有关:a)与通信应用之间进行通信的基本通信条件;b)交换的媒体类型;c)控制配置(例如,通信应用同时控制,或各自单独控制,本地MMS链路选择/控制;单个MMS整条路径全程选择/控制等)。
终端设备1111和1141为网络节点。接入点1121、1131、1141和1151、网络节点1125,以及互联网骨干网1103(未示出)中的多个节点都是可提供支持的网络节点。当然,每个节点可以也可不使用MMS应用,整条路径可进行对应变化。
本领域的技术人员应当明白,本文所使用的术语“通信连接”包含无线和有线的直接连接,经由另一组件、元件、电路或模块进行的无线和有线的间接连接。本领域的技术人员还应当明白,推断连接(也就是通过推论得知一个元件连接到另一元件)包括两个元件之间以与上述“通信连接”相同的方式进行的无线和有线的直接和间接连接。
本发明的描述过程还借助方法步骤的方式来描述特定功能的执行过程及其相互关系。为便于描述,文中对这些功能性模块和方法步骤的边界和顺序进行了专门的定义。为使这些功能及其关系可正常工作,也可重新定义他们的边界和顺序。但这些对边界和顺序的重新定义都将落入本发明的主旨和所声明的保护范围之中。
本发明的描述过程借助功能性模块的方法来描述某些重要功能的执行过程。为便于描述,文中对这些功能性模块边界进行了专门的定义。为使这些功能可正常工作,也可重新定义他们的边界。类似的,流程图中的步骤也是为描述某些重要功能而专门定义的。为将这些流程图的应用得到扩展,可重新定义流程图中模块的边界和顺序,同时,重新定义后,这些模块仍然完成原来的重要功能。这种对功能性模块和流程图步骤和顺序的重新定义也都将落入本发明的主旨和所声明的保护范围之中。
本领域的技术人员还能意识到,本文中的功能性模块和描述的其他模块和组件可按图中的方式实现,也可使用进一步细分的组件、应用专用集成电路、执行特定软件的处理器以及它们的任意组合来实现。
同时,为便于理解,本文借助实施例对本发明进行了详细的描述,但本发明并非仅限于这些实施例。显然,对于本领域的技术人员而言,可在本发明的主旨和范围内对本文内容进行修改,但这些修改仍然落入本发明的范围之内。