CN104067255B - 建立网络连接 - Google Patents
建立网络连接 Download PDFInfo
- Publication number
- CN104067255B CN104067255B CN201280053732.6A CN201280053732A CN104067255B CN 104067255 B CN104067255 B CN 104067255B CN 201280053732 A CN201280053732 A CN 201280053732A CN 104067255 B CN104067255 B CN 104067255B
- Authority
- CN
- China
- Prior art keywords
- network
- request
- parameter
- available
- data
- 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.)
- Active
Links
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/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/321—Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5691—Access to open networks; Ingress point selection, e.g. ISP selection
- H04L12/5692—Selection among different networks
-
- 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
- H04L67/141—Setup of application sessions
-
- 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/28—Timers or timing mechanisms used in protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/18—Selecting a network or a communication service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
在一个实现方式中,一种计算机实施的方法包括在计算设备并且从在计算设备上安装的应用接收对于建立网络连接以通过网络传输和接收数据的请求,其中请求包括信息,该信息指示由应用对于请求的网络连接和数据传输而标识的一个或者多个参数。该方法还可以包括由计算设备延迟建立请求的网络连接直至i)标识了满足作为请求的部分而被提供的一个或者多个参数的可用网络连接,或者ii)对于请求而指定的时间段已经到期。该方法还可以包括响应于在时间段已经到期之前标识满足一个或者多个参数的可用网络而使用标识的可用网络来建立用于应用的请求的网络连接。
Description
相关申请的交叉引用
本申请要求于2011年9月1日提交的第61/530,395号美国临时申请按照35U.S.C.§119(e)的优先权。该申请的全部内容通过引用并入于此。
技术领域
本文总体上涉及从计算设备建立网络连接。
背景技术
在计算设备上的应用经常使用网络连接以向其它计算设备传输数据和从其它计算设备接收数据。例如,在经由局域网(“LAN”)连接到因特网的计算设备上安装的因特网浏览器可以向远程服务器发送对于网页的请求。远程服务器可以通过向计算设备传输与网页关联的数据来对请求做出响应从而满足因特网浏览器的请求。可以通过打开网络套接字来建立在计算设备之间的网络连接,这些网络套接字通过可用网络连接创建信道以用于数据在计算设备之间的双边通信。
在另一示例中,移动计算设备(比如智能电话)经常运行软件应用,这些软件应用使用网络连接以向其它计算设备发送数据和从其它计算设备接收数据。移动计算设备可以通过无线网络连接(比如IEEE 802.11WI-FI连接)和/或通过公用陆地移动网络(“PLMN”)传输数据,该PLMN使用蜂窝无线电电话网络标准,比如增强型数据GSM环境(“EDGE”)、码分多址(“CDMA”)和/或长期演进(“LTE”)。移动计算设备可以通过打开用于数据在应用与另一计算设备之间的双边通信的套接字来建立一个或者多个应用可使用的网络连接。一旦套接字被打开并且网络连接被建立,数据在移动计算设备与另一计算设备之间的传输就可以开始。
发明内容
本文总体上描述用于在计算设备之间建立网络连接并且传输数据的方法、技术和系统。计算设备可以使用利用网络连接请求提供的信息以选择将请求的连接建立在其上的最优网络。
例如,在计算设备上的应用可以请求计算设备建立网络连接,可以通过该网络连接传达(例如,传输和/或接收)数据。请求可以包括与通信关联的参数,比如请求应用的标识、将跨越网络传达的数据量和类型以及足以承载通信的网络的最大延时和/或最小带宽。参数也可以例如包括延迟参数,延迟参数指示用于计算设备建立网络连接的可接受延迟,该网络连接满足由应用提供的参数。计算设备然后可以使用来自请求的参数以发现与之连接的适当网络。如果适当网络并非立即可用,则计算设备例如可以在可接受延迟时段内延迟建立连接直至发现适当网络。或者,如果可接受延时段到期而尚未发现适当网络,则计算设备可以丢弃请求。
附加实现方式可以包括用于基于成本选择和/或延迟网络连接的机制。例如,计算设备可以具有限制与网络连接关联的成本的预算。计算设备可以延迟建立网络连接直至可以在预算内的价格服务于请求的网络可用。如果无网络可用于在预算内服务于请求,则可以丢弃请求。计算设备也可以通过在网络之中协商来管理成本以在可能的最低成本服务于请求。如果多于一个网络可以在预算内服务于请求,则计算设备可以部分基于网络的成本选择在其上建立网络连接的最优网络。
在一个实现方式中,一种计算机实施的方法包括在计算设备并且从在计算设备上安装的应用接收对于建立网络连接以通过网络传输和接收数据的请求,其中请求包括信息,该信息指示由应用对于请求的网络连接和数据传输而标识的一个或者多个参数。该方法还可以包括由计算设备延迟建立请求的网络连接直至i)标识了满足作为请求的部分而被提供的一个或者多个参数的可用网络连接,或者ii)对于请求而指定的时间段已经到期。该方法还可以包括响应于在时间段已经到期之前标识满足一个或者多个参数的可用网络而使用标识的可用网络来建立用于应用的请求的网络连接。
这些和其它实现方式可以可选地包括以下特征中的一个或者多个特征。由应用标识的一个或者多个参数可以包括指示用于请求的网络连接的最小网络带宽的最小网络带宽参数和指示用于请求的网络连接的最大网络延时的最大网络延时参数。可用网络连接可以在可用网络连接具有大于或者等于最小网络带宽的可用带宽时满足最小网络带宽参数并且在可用网络连接具有小于或者等于最大网络延时的当前延时时满足最大网络延时参数。由应用标识的一个或者多个参数可以包括总数据大小参数,总数据大小参数指示将对于请求的网络连接而传输和接收的数据的总大小。可用网络连接可以在可用网络连接具有足以在阈值时间段内传输和接收总大小的数据的最小带宽时满足总数据大小参数。由应用标识的一个或者多个参数可以包括可接受延迟参数,可接受延迟参数指示在其内请求的网络连接被允许延迟的时间段。可用网络连接可以在从接收请求时的该时间段内标识可用网络连接时满足可接受延迟参数。
该方法还可以包括在来自在计算设备上安装的其它应用的对于网络连接的一组其它请求之中对接收的请求排行。可以在接收的请求至少具有在其它请求之中的阈值排行时建立请求的网络连接。可以至少基于传输和接收用于每个请求的数据的成本对请求排行。传输和接收每个请求的成本可以基于将对于每个请求而传输和接收的数据的总大小以及用于通过一个或者多个可用网络传输和接收数据的每数据单位的成本。可以基于用于计算设备的网络连接预算确定阈值排行,网络连接预算指示可用于计算设备花费以通过网络连接传输和接收数据的金额。可以至少基于请求中的每个请求的推断的重要性对请求排行。可以至少基于待传输的数据类型和计算设备的用户是否当前正在与关联于请求中的每个请求的一个或者多个应用交互来确定请求中的每个请求的推断的重要性。
该方法还可以包括:响应于标识一个或者多个可用网络,请求来自一个或者多个可用网络的报价,接收用于一个或者多个可用网络的报价,其中报价指示用于通过一个或者多个可用网络传输和接收请求的数据的成本,至少部分基于接收的报价从一个或者多个可用网络选择可用网络,并且与选择的可用网络建立请求的网络连接。请求来自其的报价的一个或者多个可用网络中的每个可用网络可以满足一个或者多个参数。
一个或者多个参数可以包括质量参数,质量参数指示被允许用于请求的网络连接和数据传输的多个质量级别。该方法还可以包括:标识能够在由质量参数指定的多个质量级别中的一个或者多个质量级别传输和接收请求的数据的一个或者多个可用网络,并且选择标识的可用网络中的能够在来自多个质量级别之中的最大质量级别传输和接收请求的数据的可用网络。可以使用选择的可用网络来建立请求的网络连接。
在另一实现方式中,一种移动计算设备包括:无线联网天线,以及网络连接管理器,网络连接管理器被编程用于接收对于建立网络连接以通过网络传输和接收数据的请求。请求可以包括信息,信息指示对于请求的网络连接和数据传输而标识的一个或者多个参数。该移动计算设备还可以包括:请求管理器,被编程用于i)延迟建立请求的网络连接直至标识了满足作为请求的部分而被提供的一个或者多个参数的可用网络连接,并且ii)响应于标识满足一个或者多个参数的可用网络并且在对于请求而指定的时间段已经到期之前,使用无线联网天线来与标识的可用网络建立请求的网络连接。
这些和其它实现方式可以可选地包括以下特征中的一个或者多个特征。该移动计算设备还可以包括:连接定价协商器,被编程用于请求和接收来自一个或者多个可用网络的报价,其中报价指示用于通过一个或者多个可用网络传输和接收请求的数据的成本。该移动计算设备还可以包括:请求排行模块,被编程用于至少部分基于由连接定价协商器接收的报价在对于网络连接的多个其它请求之中对接收的请求排行。网络连接管理器还可以被编程用于至少部分基于由排行请求模块生成的排行从接收的请求和多个请求之中选择一个或者多个请求。
在另一实现方式中,一种在计算机可读存储设备中体现的计算机程序产品包括指令,指令在由一个或者多个计算设备执行时使一个或者多个计算设备执行操作,操作包括从在一个或者多个计算设备上安装的应用接收对于建立网络连接以通过网络传输和接收数据的请求,其中请求包括信息,信息指示由应用对于请求的网络连接和数据传输而标识的一个或者多个参数。操作还可以包括延迟建立请求的网络连接直至i)标识了满足作为请求的部分而被提供的一个或者多个参数的可用网络连接,或者ii)对于请求而指定的时间段已经到期。操作还可以包括响应于在时间段已经到期之前标识满足一个或者多个参数的可用网络而使用标识的可用网络来建立用于应用的请求的网络连接。
在附图和以下描述中阐述了一个或者多个实现方式的细节。可以提供各种优点。例如,延迟建立网络连接直至具有用于满足应用的对于有效数据通信的最小要求的充分容量(例如,可接受带宽和延时特性)的网络可用更高效地使用客户端计算资源和网络资源二者。此外,在建立网络连接以传输和接收数据时的自动延迟可以例如通过减少使用不充分连接和与这样的使用关联的成本来减少应用的用户的成本。自动延迟也可以限制传输直至在用户的预算允许网络使用时的时间。另外,用户可以通过客户端计算设备与一个或者多个可用网络协商以连接到满足应用的要求的参数的最低成本网络来节省金钱。
在附图和以下描述中阐述了一个或者多个实现方式的细节。其它特征、目的和优点将从描述和附图以及从权利要求变得清楚。
附图说明
图1是用于基于关联连接参数建立请求的网络连接的示例系统的概念图。
图2图示了网络连接管理器的各种功能单元,这些功能单元包括对请求排行、管理连接预算和在可用网络之中协商价格。
图3描绘了具有网络连接管理器的计算设备的系统图,该网络连接管理器与各种数据贮存库、客户端应用和可用网络对接。
图4A至图4B是用于建立网络连接的示例技术的流程图。
图5是示例计算设备的框图。
在各附图中的相似标号指示相似单元。
具体实施方式
本文总体上描述用于更优地建立网络连接的技术、方法、系统和计算机程序产品。例如,计算设备(比如智能电话)经常运行多个应用,这些应用各自在时间上同时请求连接到网络以传输或者接收数据。例如,用户可以配置电子邮件应用以定期地与远程电子邮件服务器同步并且下载新近电子邮件消息,这要求智能电话通过网络与服务器连接。一般而言,智能电话如今将通过立即打开套接字并且通过其上连接智能电话的任何网络传输和接收电子邮件数据来自动服务于电子邮件应用的请求。然而,立即建立连接并非总是必需或者希望的。例如,如果智能电话连接到更慢的网络,则下载电子邮件消息(比如具有多媒体附件的电子邮件消息)可能使网络的带宽和智能电话的处理容量在拖延的时间内紧张,这可能不必要地减少可用计算能力并且耗尽设备的电池。
计算设备可以管理来自应用的对于建立网络连接的请求以提高设备的网络性能。例如,计算设备可以延迟建立连接或者传输和接收数据直至具有充分带宽的网络变得可用或者直至当前可用网络的性能特性(例如,带宽、延时)提高至至少阈值水平。移动计算设备将遇到在时间段内具有可变性能(和/或成本)特性的可能性可能很高。例如,随着移动计算设备(例如,智能电话)与它们的用户一起在家里、工作地和其它位置之间行进,计算设备例如根据计算设备在地理上位于何处可以接入多个WI-FI、EDGE和/或LTE网络。在应用产生对于建立网络连接的请求时的时间仅可以接入EDGE网络的移动计算设备可以延迟建立连接直至在计算设备可以接入更快网络(比如WI-FI或者LTE网络)时的稍后时间。
多种技术可以用来管理来自多个应用的对于网络连接的竞争请求。例如,计算设备可以在或者在大约相同时间从多个应用接收对于网络连接的请求,但是计算设备和/或可用网络可能无充分容量来用网络连接的关联参数(例如,最小带宽、最大延时)建立网络连接中的每个网络连接。可以根据多种因素(例如,基于是否响应于用户输入或者从后台进程产生请求的推断的重要性)对这样的竞争网络连接请求排行以标识计算设备应当在给定的时间如果有则建立哪些请求的网络连接。
多种技术也可以用来管理花费的用于建立网络连接的金钱。例如,网络提供者(例如,无线网络提供者、因特网服务提供者(ISP))可以对接入和使用它们的网络向用户收费。例如,网络提供者可以向用户收取对于在时间段内无限使用的费用;基于用户接入网络的时间长度的时期费用;与传输和接收的数据量成比例的时期费用;和/或允许上至预定最大值的任何网络使用量的固定费用,该固定费用可以被表达为关于用户的设备可以通过网络传输和接收的数据量的上限。为了管理通过这样的付费连接而花费的金额,计算设备可以与网络提供者协商定价和/或可以基于用于这样的连接的关联成本和可用资金选择待建立的网络连接请求。例如,用户可以向他的/她的计算设备提供用于付费网络连接的每月预算(例如,30美元/月),并且除了其它技术之外和/或取代其它技术,计算设备还可以使用这一预算以确定建立哪些请求的网络连接。
以下关于各图更具体地描述这些特征以及先前未提到的其它特征。
图1是用于基于关联连接参数建立请求的网络连接的示例系统的概念图。图1描绘了客户端计算设备102的网络连接管理器110,网络连接管理器110被配置用于延迟建立请求的网络连接106直至发现满足由应用104与请求106关联地提供的连接参数108的网络。在描绘的示例中,客户端计算设备102的应用104(例如,电子邮件应用、web浏览器应用、社交网络应用)在无满足用于请求106的参数108的网络可用(例如,在时间0可用的网络A(116)和网络B(120)未满足参数108)时的时间0(100)提供对于网络连接的请求106,并且网络连接管理器110延迟建立请求的连接直至在满足请求106的参数108网络变得可用(例如,在时间1可用的网络C(132)满足参数108)时的时间1(124)。
客户端计算设备102可以是多种电子计算设备(比如智能电话、平板计算设备、电子阅读器、膝上型计算机和/或台式计算机)中的任何电子计算设备。客户端计算设备102被描绘为运行应用104,该应用可以是一个或者多个计算机程序(例如,软件、固件、硬件),该一个或者多个计算机程序的操作在某个程度上包括通过网络传输和/或接收数据。应用104可以是多种应用(比如web浏览器、游戏、电子邮件客户端、系统更新例程、通过IP的语音(“VoIP”)服务)中的任何应用。应用104可以被本地运行作为单独应用和/或可以在计算设备102上作为瘦客户端运行,该瘦客户端通过网络与另一计算设备交互以向用户提供特征(例如,在云中运行应用)。
在步骤A(106)中,应用104产生向网络连接管理器110传达的对于网络连接的请求106。例如,应用104可以对应用编程接口(API)进行调用以建立网络套接字,应用104可以使用该网络套接字以与另一计算设备通信。这样的API可以包括网络连接管理器110和/或与网络连接管理器110关联,并且可以指引由应用104产生的对网络连接管理器110的调用。来自应用104的请求106可以包括一个或者多个参数108,一个或者多个参数108指定对于请求的网络连接106的一个或者多个偏好和/或要求(例如,最小带宽)。例如,应用104可以向参数108提供对API的调用以建立网络套接字(例如,套接字(最小带宽、最大延时、最大延迟))。网络连接管理器110可以使用参数118以确定如何和何时建立用于请求106的网络连接。
特定参数108可以在不同应用104以及从个别应用104产生的各种请求106之中变化。参数108可以包括与网络连接关联的信息和/或约束的任何组合、这样的信息涉及应用的标识和/或状态、待传输和/或接收的数据类型(例如,视频、文字)、待传输和/或接收的数据量、对于网络连接需要的最小带宽、用于建立网络连接的最大可接受延迟和/或对于网络连接可允许的最大延时。在图1中,示例参数108包括将作为请求的网络连接106的部分而传输和/或接受的数据量(三MB)、每秒一兆比特的最大带宽、一百毫秒(ms)的最大延时和用于建立请求的网络连接106的十二小时的可接受延迟。
参数108向网络连接管理器110提供它可以用来确定建立哪些请求的连接和何时建立它们的信息。例如,应用104可以是数字音乐和多媒体应用(例如,ITUNES),该应用响应于用户向应用104提供输入以购买音频文件(例如,歌曲)来产生对于从远程服务器系统下载音频文件的请求106。应用104可以基于多种因素(比如用户指定的设置(例如,用户指示他/她愿意为音频文件下载等待十二小时)、正被传输和/或接收的数据类型和/或用于应用104的默认配置(例如,对于应用104的最小性能需要参数108))提供参数108作为请求106的部分。
一旦网络连接管理器110接收请求106,客户端计算设备102继续如在步骤B(112)中描绘的那样检查寻找可用网络。在图1中,两个可用网络被图示为网络A(116)和网络B(120)。根据客户端计算设备102的类型以及与设备102关联的硬件和软件,设备102可以连接到的可用网络的范围可以变化。膝上型和台式计算机可以接入各种局域网(“LAN”)、无线局域网(“WAN”)或者甚至接入宽带无线网络,比如EDGE、CDMA和/或LTE网络。移动计算设备(比如智能电话和/或平板计算设备)也可以通过WI-FI、BLUETOOTH和/或宽带无线网络(比如EDGE、CDMA和/或LTE网络)接入大量网络。例如,网络连接管理器110可以使客户端计算设备102使用一个或者多个网络接口来扫描寻找可用网络。
当在步骤B(112)中检查寻找可用网络时,客户端计算设备102可以分别注册可用网络A(116)和B(120)的各种特性和/或参数118和122。客户端计算设备102可以用多种方式(比如通过网络技术的分类、去往网络102的网络信号强度和/或通过接收从网络A和B直接提供的网络信息和/或参数)来确定网络参数118和122。
在图1中,在时间0(100),客户端计算设备102当在步骤B(112)中检查寻找网络之后检测到两个可用网络116和120。网络A(116)的参数118指示网络允许不多于10MB的数据事务、具有500Kb/s的带宽并且它的当前延时为90ms。网络B(120)的参数122指示网络B(120)允许不多于2MB的数据事务、具有1.5Mb/s的带宽并且它的当前延时为120ms。然而,在描绘的示例中,由应用104产生的请求106是对于通过如下网络的3MB事务,该网络具有至少1Mb/s带宽和至多100ms延时。分别基于用于网络A和B的参数118和122,当前可用网络A和B在时间0(100)未满足用于请求的网络连接106的参数118。例如,网络A(116)的带宽不足并且网络B(120)相似地无法满足请求106的要求,因为它不会传输或者接收多于2MB的数据并且它具有不可接受的延时。基于这一确定,客户端计算设备102可以如在步骤C(114)中所示延迟建立请求的网络连接106直至在满足请求参数108的网络可用时的稍后时间。
网络连接管理器110可以存储请求106直至遇到满足参数108的可用网络和/或直至已经超过如在参数108中指示的用于建立网络连接的可接受延迟。在图1的示例中,客户端计算设备102可以继续搜索12小时寻找满足请求106的参数108的可用网络,该12小时是可接受的延迟时段。计算设备102可以在延迟时段内经过步骤B(112)和C(114)连续循环,从而检查寻找可用网络并且延迟建立请求的网络连接106直至发现满足参数108的网络。
在时间1(124),在继续在时间0(100)如在步骤B(112)和步骤C(114)中所示搜索寻找可用网络并且延迟建立网络连接之后,客户端计算设备102发现网络C(132)。不同于在时间0(100)的网络A(116)和网络B(120),网络C(132)满足应用请求106的参数108。例如,网络C(132)具有充分数据事务容量、带宽和充分低的带宽,从而使得它的参数134超过应用104的网络连接请求106和请求106的关联参数108的阈值网络要求。
如果计算设备102在请求106的可接受延迟时段到期之前发现满足必备参数108的网络,则可以建立网络连接。例如,一旦计算设备102发现网络C(132)是用于服务于请求106的适合网络,则网络连接管理器110如在步骤D(136)中描绘的那样检查来自参数108的可接受延迟时段是否已经到期。如果请求106已经到期,则将不会建立网络连接。然而,在图1的示例中,在时间0(100)与时间1(124)之间的流逝的时间小于十二小时的可接受延迟时段;因此,客户端计算设备102通过网络连接管理器110在步骤F(130)中与网络C(132)建立连接。例如,网络连接管理器110可以创建用于应用104的网络套接字并且可以与网络C(132)建立连接(例如,与网络C(132)认证客户端计算设备102)。结合在步骤F建立网络连接,网络连接管理器110可以向请求应用104通知已经与可用网络建立了请求的网络连接106并且应用104可以使用建立的连接来传输或者接收数据。
图2是描绘示例客户端计算设备212的概念图,客户端计算设备212管理对于建立网络连接的多个请求211。示例客户端计算设备212包括多个不同应用205,这些应用205向客户端计算设备212的网络连接管理器214提供对于网络连接的请求211。网络连接管理器214可以使用多种技术以如果有则选择建立哪些请求的网络连接。例如,网络连接管理器214可以基于多种因素(比如用于网络连接的成本)对请求211排行。
客户端计算设备212可以是多种适当电子计算设备(比如膝上型计算机、台式计算机、上网本、移动电话、智能电话、平板计算设备和/或计算机服务器系统)中的任何电子计算设备。客户端计算设备212被描绘为运行应用205,该应用可以是一个或者多个计算机程序(例如,软件、固件、硬件或者其任何组合),该一个或者多个计算机程序的操作在某个程度上包括通过网络传输和/或接收数据。应用205可以是多种应用(比如web浏览器、游戏、电子邮件客户端、系统更新例程和/或VOIP服务)中的任何应用。应用205可以被本地运行作为单独应用和/或可以在计算设备212上作为瘦客户端运行,该瘦客户端通过网络与另一计算设备交互以向用户提供特征(例如,在云中运行的应用)。示例应用205被描绘为包括应用A(200)、应用B(202)和应用N(204)。
应用205可以产生并且向计算设备21提供对于建立和/或使用网络连接的请求211。请求211可以包括一个或者多个请求参数,比如与请求关联的网络约束(例如,最小带宽、最大延时);指示用于设备212服务于请求211的时间表的可接受延迟参数;指示将传输和/或接收的数据量的一个或者多个数据参数;指示多少金钱和/或用户的网络预算中的多少网络预算可用于请求211中的每个请求的成本约束;和/或计算设备212可以在建立和使用网络连接时使用的其它信息,比如请求应用(例如,电子邮件客户端、游戏、web浏览器)的标识、指示请求211是否基于用户输入或者是后台任务的部分和/或用户是否正在活跃地使用应用205的信息。
例如,来自应用A(200)的请求206包括如下参数,这些参数指示请求206将通过网络传输和/或接收上至5MB的数据。在另一示例中,来自应用B(202)的请求208包括如下参数,这些参数指示请求208将传输和/或接收100KB的数据。在又一示例中,来自应用N(204)的请求210包括如下参数,这些参数指示请求210将传输和/或接收500MB的数据。
应用205也可以在请求211中包括如下信息,该信息指示哪些传输质量对于请求的网络连接可接受。例如,从因特网视频服务(比如YOUTUBE)接收和播放流传输视频内容的应用可以包括如下信息,该信息指示用流传输视频的高、中或者低质量版本对于网络连接而可允许。对照而言,一些网络连接请求可以指定仅特定连接质量可允许。应用205和/或用户可以使优选哪个质量级别和可允许哪些质量级别优先。每个质量级别也可以与不同网络参数关联。例如,用流传输高质量视频可能需要具有5Mb/s的最小带宽的网络连接,而可以仅使用1Mb/s连接来用流传输低质量视频。请求211可以包括如下信息,该信息标识用于请求的网络连接的一个或者多个最小质量级别和关联网络参数。或者请求211可以简单地指示哪些质量级别可接受,从而使得计算设备212可以推断与每个可接受服务级别关联的网络参数。因此,在步骤A中,应用A(200)、B(202)和N(204)各自产生对于网络连接的请求(分别为206、208和210)。请求A(206)包括质量参数,该质量参数指示用于高质量或者低质量数据传输的网络连接可接受。在另一方面,请求B(208)指示能够承载高质量数据传输的网络连接对于请求的网络连接是需要的。
计算设备212可以管理对于网络连接的传入请求211并且确定何时连接到可用网络239和连接到哪些可用网络。例如,在图2中,计算设备212被描绘为具有网络连接管理器214。网络连接管理器214可以位于计算设备212上作为单独应用、集成到软件、硬件和/或固件中或者在计算设备212上作为瘦客户端运行。网络连接管理器接收对于网络连接的传入请求211并且确定如何通过与可用网络239建立连接来服务于请求。
为了最小化网络使用成本,网络连接管理器214包括连接定价协商器216,连接定价协商器216可以发现和/或协商关于来自可用网络239中的一个或者多个可用网络的网络连接的定价信息。例如,在一个基本实现方式中,定价协商器216可以查询每个可用网络239或者仅查询满足一个或者多个请求211的用于与网络建立连接的成本和/或服务于请求211的成本的参数的那些可用网络239。因此,在步骤B(226)中,连接定价协商器216向网络A(234)、网络B(236)和网络N(238)发送对于定价信息的请求。在步骤C(228-232)中,可用网络239(例如,网络A(234)、网络B(236)和网络N(238))中的每个可用网络向计算设备212传输回它们的定价信息,其中网络连接管理器214可以在确定连接到哪些网络时和在管理网络连接的其它方面中使用信息。
计算设备212也可以使用用于在一个或者多个可用网络239之中协商价格的更复杂例程。例如,连接定价协商器216可以向网络发送信息,该信息包括关于设备212正尝试建立的连接请求211的更多细节,比如关于待传输的数据质量的信息、待传输的内容类型(例如,HTML、音频、视频)、用于使用网络连接的预期时间长度、打算使用的带宽和可能影响网络的定价报价的其它因素。另外,定价协商可以涉及到在计算设备212和可用网络239中的一个或者多个可用网络之中的动态通信以允许可用网络竞争以提供最低报价。
网络连接请求211也可以按照将服务于它们的顺序被排行。在图2中,排行由请求排行模块220在步骤D(218)中发生。排行可以基于一个或者多个因素,比如请求的重要性、请求的成本、接收请求211的顺序和时间和/或可以延迟请求的剩余时间。例如,请求排行模块220基于每个请求的成本和每个请求的重要性对请求A(206)、请求B(208)和请求C(210)排行。请求211的成本可以由连接定价协商器216确定。可以基于因素(比如提供请求的应用(例如,电子邮件客户端、游戏、web浏览器)的标识、关于请求是否源于用户输入或者被提供作为后台任务的部分和/或用户是否正活跃地使用从其接收请求的应用的信息)确定请求211的重要性。重要性也可以受由应用205在请求211本身中传达的参数影响。请求排行模块220例如示出用于请求A(206)的低质量连接由于它的低成本和高重要性组合而被排行第一。请求B(206)尽管具有比低质量请求A(206)更低的成本却被排行第二,因为它仅为中重要性。然而,请求B(208)尽管具有比高质量版本的请求A(206)更低的重要性却由于它的明显更低成本而比请求A(206)排行更高。
计算设备212也可以使用预算以管理如何建立网络连接和/或服务于哪些请求211。例如,建立网络连接和使用网络资源的成本有时可以超过用户希望在给定的时间段(例如,一小时、一天、一周、一月)内花费的成本。用户可以向计算设备212提供预算,该预算限制设备212可以在网络连接上花费的开支。可以用包括每天和/或每月限额的各种形式实施预算。
在图2中,网络连接管理器214包括预算管理器224,预算管理器224限制建立将使预算被超过的网络连接。例如,图2中的预算包括用于每月在网络连接上花费的15美元。在30天的月中,这等于可用于每天花费的平均0.50美元。例如,如果用户指令计算设备212这样做,则用户可以超过每天或者每月预算。在预算管理器224中所示的预算示例中,当在网络连接上花费的数额降至编预算的最大以下值时已经从先前日子结转0.42美元。组合转存的数额和每天分配给出针对当天花费在网络连接上的共计0.92美元。
用户和/或计算设备212可以保留预算的部分以用于由一个或者多个应用使用。例如,安全软件可以执行周期性检查以寻找更新或者电子邮件客户端可以周期性地ping远程服务器并且下载新电子邮件。为了保证每天为这些任务编预算足够资金,预算的某个部分可以专用于那些请求。用户可以指示哪些应用或者任务应当具有保留的预算和保留的大小,或者它们可以由计算设备212比如通过跟踪和分析哪些程序在历史上具有所需频繁使用和关联成本来推断。也可以基于其它因素(比如对于当天的其余时间将需要多少附加网络使用的估计)来维持保留预算。在图2中,在应用205之中未明示的应用D和应用F分别具有保留的每天预算0.05美元和0.10美元。预算管理器224从当天的总可用预算扣除保留的成本从而留下对于当天可用于网络连接的非保留资金0.77美元(0.92美元-0.05美元-0.10美元)。
预算管理器224管理建立和/或使用网络连接的成本以便保持于预算内。在图2的示例描绘中,网络连接管理器214按照排行顺序经过请求211继续,如由步骤E(222)所指示的那样选择对于使用网络连接的请求,并且对于在可用预算内允许的请求在可用网络239中的一个或者多个可用网络上建立连接。例如,在步骤F(240)中,计算设备212与网络B(236)建立连接以在0.05美元的成本服务于低质量请求A(206),然后与网络A(234)产生连接以在0.03美元的成本服务于请求B(208)。对于请求C(210)未产生连接,因为连接成本将在服务于请求A(206)和请求B(208)之后超过可用预算。例如,如果用户批准用于超过预算的特殊权限则可以产生连接。
图3是可以用来实施在本文中描述的系统和方法的计算设备300的系统图。计算设备300可以是多种适当电子设备(比如蜂窝电话、智能电话、平板计算设备、台式计算机、膝上型计算机、个人数字助理、服务器和其它类似设备)中的任何电子设备。计算设备300可以与以上分别关于图1和2描述的计算设备102和212相似。
计算设备300可以包括输入/输出(I/O)接口302,I/O接口302将计算设备300连接到多个可用网络(比如网络A(328)、网络B(330)和/或如由网络N(332)指示的任何其它可用网络)中的一个或者多个网络。I/O接口302可以从计算设备300向可用网络326传输数据并且在计算设备300上从可用网络326接收数据。I/O接口302可以是有线和/或无线接口。例如,有线I/O接口302可以是包括以太网、IEEE 1394、并行端口、PS/2、串行端口、USB、VGA、数字可视接口(DVI)和/或USB的多种接口中的任何接口。类似地,无线I/O接口302可以是包括IEEE 802.11WI-FI收发器、3G无线电收发器、LTE无线电收发器、BLUETOOTH收发器和/或其它收发器等的多种接口中的任何接口。
计算设备300可以经由I/O接口302连接到一个或者多个可用网络326。网络A(328)、网络B(330)和网络N(332)代表计算设备302可以连接到的可用网络326的范围。可用网络326可以包括有线网络和/或无线网络,比如局域网(“LAN”)、无线局域网(“WAN”)和/或宽带无线网络(比如EDGE、CDMA和/或LTE网络)。已经在图1中将可用网络326相似地表示为网络A和B(分别为116和120)并且在图2中表示为可用网络239。
计算设备300可以运行一个或者多个应用303。应用303可以是包括软件、固件和/或硬件的一个或者多个计算机程序。应用303中的一个或者多个应用的操作可以在某个程度上包括通过网络传输和/或接收数据。具体应用303可以包括web浏览器、游戏、电子邮件客户端、系统更新例程、VOIP服务和/或其它计算机程序。在图3的系统中的应用303可以与以上分别关于图1和图2描述的应用104和应用205相似。
计算设备300也可以包括存储与管理和建立网络连接相关的信息的各种数据贮存库320、322、324。例如,数据贮存库320、322、324中的一个或者多个数据贮存库可以存储于易失性存储器介质(比如随机存取存储器(“RAM”)设备)中和/或数据贮存库320、322、324可以存储于非易失性存储介质(比如紧致盘(“CD”)、DVD、硬盘驱动、闪存、EPROM、EEPROM、磁盘驱动或者全息存储装置)中。数据贮存库320、322、324可以本地存储于计算设备300上、可拆卸存储器(比如SD卡)中和/或可以远程存储于比如服务器上。
请求数据贮存库320可以包括存储的信息,该信息关于应用303已经提供的对于网络连接的请求。与网络连接请求关联的信息可以存储于请求数据贮存库320中,比如请求程序的标识;标记在接收请求时的时间的时间戳;如以上关于图2描述的请求的成本和重要性;与请求关联的参数,比如以上关于图1描述的参数108,包括数据大小、最小带宽、可接受延迟和最大延时;和/或其任何组合。
预算数据贮存器322可以包括涉及预算的信息,该预算限制和/或管理在网络连接上花费的成本。例如,预算数据贮存器322可以包括数据,该数据代表每月预算、每天预算、结转数额、用于一个或者多个应用303的保留的预算和/或当前总每天预算。预算数据贮存器322可以包括与以上在图2中的预算管理器223中示出和描述的预算数据相似的数据。
可用网络数据贮存库324可以包括涉及可用网络326的信息。例如,可用网络数据贮存库324可以包括关于哪些网络326当前可用的信息、关于可用网络326的历史数据和/或与一个或者多个可用网络326关联的参数,比如网络类型(例如,IEEE 802.11g、IEEE802.11n、以太网LAN、CDMA、LTE)和/或网络特性(例如,延时、带宽、信号强度)。
计算设备300可以也可以包括网络连接管理器310,网络连接管理器310可以管理对于网络连接的请求并且确定何时和如何服务于请求。例如,网络连接管理器310可以包括可以是软件、固件和/或硬件的一个或者多个计算机程序。网络连接管理器310可以与以上关于图1描述的网络连接管理器105和关于图2的网络连接管理器214相似。网络连接管理器310可以包括由应用303提供的对请求的接入。此外,连接管理器310可以访问来自资源(比如请求数据贮存库320、预算数据贮存库322和/或可用网络数据贮存库324)的在管理网络连接的建立时使用的存储的数据。
网络连接管理器310可以包括多种功能方面,这些功能方面包括连接定价协商器312、请求排行模块314、请求延迟管理器316、预算管理器318和/或其任何组合。
连接定价协商器312可以发现和/或协商来自可用网络326中的一个或者多个可用网络的定价信息。例如,连接定价协商器312可以执行与以上关于连接定价协商器216描述的操作相似的操作,连接定价协商器216是关于图2描述的。
请求排行模块314可以通过基于如下因素对来自应用303的一个或者多个请求排序和/或排行来管理请求,这些因素包括用于服务于请求的已知或者估计成本、与请求关联的重要性和/或其任何组合。请求排行模块314可以执行与以上关于请求排行模块220描述的操作相似的操作,请求排行模块220是以上关于图2描述的。
请求延迟管理器316可以管理在请求数据贮存库320中未决的请求并且可以从贮存库320去除已经超过它们的可接受延迟的请求。在从贮存库320去除请求时,可以向提供请求的应用通知网络连接管理器310不能满足请求。请求延迟管理器316可以执行与以上关于网络连接管理器110描述的操作相似的操作,网络连接管理器110是以上关于图1描述的。
预算管理器318可以管理建立和/或使用网络连接的成本以便保持于预算内。预算管理器318可以执行与以上关于预算管理器224描述的操作相似的操作,预算管理器224是以上关于图2描述的。
网络A-N(328-332)可以各自包括从其传输和接收用于网络A-N(328-332)的无线信号的一个或者多个无线接入点(例如,无线收发器、蜂窝网络塔、无线路由器、无线范围延伸器/重复器)。例如,在图3中将网络A-N(328-332)描绘为与示例接入点334-338关联。网络A-N(328-332)中的每个网络可以与多个接入点关联(包括多个接入点)。
网络A-N(328-332)也可以各自与计算机系统关联,这些计算机系统管理客户端计算设备(比如计算设备300)的网络接入和使用。例如,网络A 328与计算机系统340关联并且网络N 332与计算机系统342关联。计算机系统340和342可以各自包括一个或者多个计算设备,比如台式计算机、计算机服务器、分布式计算系统(例如,云计算系统、联网的计算机服务器)和/或其它适当计算设备。虽然未描绘,但是网络B 330可以与相似于计算机系统340和342的计算机系统关联。
计算机系统340和342被描绘为包括报价生成器(344和346)、网络监控单元(348和350)和接入控制单元(352和354)。报价生成器344和346可以生成用于客户端计算设备(比如计算设备300)的报价,这些客户端计算设备正请求接入网络328和332。由生成器344和346生成的报价可以基于多种信息,比如预定定价信息(例如,报价被限于其内的预定定价范围、基于数据数量和传输速度的定价时间表)、当前网络使用信息(例如,连接的客户端计算设备的当前数目、当前带宽使用、当前可用带宽)、将来网络使用承诺(例如,与其它计算设备达成的对于网络接入的协定、用于这样的协定的最小网络性能参数)和/或如下信息,该信息指示对于网络接入的当前供应和需求(例如,来自客户端计算设备的报价请求数目、在客户端报价请求上包括的网络参数、客户端计算设备已经接受和/或拒绝的先前报价数额)。报价生成器344和346可以分别使用接入点334和338向计算设备300提供报价。
计算机系统340和342的网络监控单元348和350分别可以监控和确定用于网络A和N(328和332)的当前网络使用统计。网络监控单元348可以从网络328和332的各种部件收集使用统计(例如,延时信息、使用的带宽、可用带宽),比如来自路由器、交换机、接入点和/或其它适当计算设备的使用信息。网络监控单元348和350可以向报价生成器344和346提供网络使用统计,这些报价生成器可以基于当前使用信息生成报价。网络监控单元348和350可以附加地和/或备选地向客户端计算设备(比如计算设备300)提供一些网络使用统计以向客户端计算设备通知关于用于网络328和332的当前网络条件,客户端计算设备可以使用这些当前网络条件以确定是否使用接入点334和338来与网络328和332建立网络连接。
接入控制单元352和354可以控制客户端计算设备(比如计算设备300)通过接入点334和338对网络328和332的接入。接入控制单元352和354可以指令接入点334和338使接入仅限于当前被授权使用网络328和332的客户端计算设备,这可以由客户端计算设备提供的各种标识信息(比如唯一标识符(例如,MAC地址、用户名)和/或认证信息(例如,授权证书))指示。接入控制单元352和354可以使对网络328和332的介入限于已经接受了来自报价生成器344的报价并且已经被建立了支付方法(例如,已经验证了信用卡、已经标识了具有充分可用余额的借记账户)的客户端计算设备。
图4A至图4B是用于建立网络连接的示例技术400和450的流程图。在技术400中,示例计算设备402对于时间段基于一个或者多个参数(例如,最小带宽、最大延时)确定是否与可用网络建立连接。在技术450中,示例计算设备452基于对于一个或者多个可用网络而获得的报价确定是否与可用网络建立一个或者多个请求的网络连接。可以全部或者部分组合示例技术400和450。
参照图4A,示例技术400的部分由计算设备402、网络A(404)和网络B(406)执行。计算设备402可以是多种适当计算设备(比如计算设备102、计算设备212和/或计算设备300)中的任何计算设备。网络A(404)和B(406)可以是多种适当无线网络(比如网络116、120和132);网络234、236和238;和/或网络328、330和332中的任何网络。网络A(404)和B(406)可以各自包括一个或者多个接入点(比如接入点334-338)并且可以包括一个或者多个关联计算机系统(比如计算机系统340和342)。
计算设备402可以接收对于建立网络连接的请求(408)。例如,计算设备102从应用104接收对于建立网络连接的请求(106)。接收的请求可以包括用于请求的网络连接的一个或者多个参数,比如以上关于图1讨论的示例参数108。响应于接收请求,计算设备402可以检测可用网络(410)。例如,计算设备402可以使用无线收发器以扫描寻找来自附近网络的信标信号,比如由网络A 404传输的无线信标信号(412)。响应于检测到由用于网络A(404)的接入点传输的信标信号,计算设备402可以向网络A 404传输当前网络信息(例如,可用带宽、当前延时)的请求。
网络A(404)可以从计算设备402接收请求(416)并且响应于接收请求而可以标识当前网络信息(418)。例如,计算机系统340的网络监控单元348可以标识用于网络A 328的当前网络信息。网络A(404)可以提供当前网络信息(420),并且计算设备402可以接收用于网络A 404的当前信息(422)。
使用当前网络信息,计算设备402可以确定网络A是否满足在对于建立网络连接的请求中包括的用于网络连接的参数(424)。例如,客户端计算设备102的网络连接管理器110可以比较请求的参数108分别与用于网络116和118的当前网络信息118和122以确定是否与网络116和/或118建立连接。在当前网络信息未满足在请求中阐述的参数时,计算设备402可以延迟建立网络连接(426)。
响应于基于由另一网络传输的信标信号(430)检测到另一可用网络(428),计算设备(402)可以确定用于建立请求的网络连接的可允许持续时间是否已经到期(432)。例如,客户端计算设备102的网络连接管理器110可以响应于检测到存在网络C(132)来检查用于建立由应用104请求的网络连接的可接受延迟是否已经流逝。响应于确定用于请求的持续时间尚未到期,计算设备402可以请求来自网络B 406的网络信息(434)。如果用于请求的持续时间已经到期,则计算设备402可以基于用于请求的时间段已经到期来丢弃请求和/或向请求实体(例如,系缚到计算设备402的应用、用户、另一计算设备)提供指示,该指示是未建立请求的网络连接。网络B(406)可以从计算设备402接收请求(436)、标识用于网络B的当前网络信息(438),并且可以向计算设备402提供当前网络信息(440),该计算设备可以接收(442)和使用该当前网络信息以确定网络B是否满足在请求中阐述的参数(444)。用于网络B(406)的步骤434-444可以与用于网络A(404)的步骤相似。
在描绘的示例中,网络B(406)具有满足请求的参数的当前网络条件(例如,可用带宽、延时),这些当前网络条件与以上关于图1描述的网络C(132)的满足请求的参数108的当前网络条件相似。响应于确定网络B(406)满足请求的参数,计算设备402可以与网络B(446)建立网络连接。建立连接可以包括计算设备402向网络B(446)传输如下信息和任何附加信息,该信息指示来自计算设备402的对于使用网络B(446)的请求,该附加信息可以被网络B(446)请求访问比如用于计算设备402和/或关联用户的支付信息和/或标识信息。
参照图4B,示例技术450的部分由计算设备452、网络A(454)和网络B(456)执行。计算设备452可以是多种适当计算设备(比如计算设备102、计算设备212、计算设备300和/或计算设备402)中的任何计算设备。网络A(454)和B(456)可以是多种适当无线网络(比如网络116、120和132);网络234、236和238;网络328、330和332;和/或网络404和406中的任何网络。网络A(454)和B(456)可以各自包括一个或者多个接入点(比如接入点334-338),并且可以包括一个或者多个关联计算机系统(比如计算机系统340和342)。
计算设备452从一个或者多个请求实体(比如一个或者多个应用、计算设备452的用户、在计算设备452上运行的服务和/或系缚到计算设备452的设备)接收对于建立网络连接的请求(458)。由计算设备452接收的请求可以各自在时间段内被分离地接收。例如,客户端计算设备212从应用200-204接收请求206-210。
响应于接收请求,计算设备452可以基于由网络A和B(462a-b)传输的信标信号检测可用无线网络(460)(比如网络A(454)和网络B(456))。响应于检测到网络A和B在计算设备452的范围内,计算设备452可以向网络A和B提供报价请求(464)。这样的报价请求可以包括如下信息,该信息标识用于由计算设备452接收的网络连接请求的参数。例如,对于网络连接的请求可以各自包括一个或者多个连接参数,比如最小连接带宽、最大延时、连接质量和/或待传输的数据量。计算设备452可以向网络A和B(454和456)提供用于接收的请求的网络连接参数的至少一部分作为报价请求的部分。
网络A和B(454和456)可以接收请求(466a-b)、可以标识用于网络的当前使用信息(468a-b)并且至少部分基于当前使用信息可以生成将向计算设备452提供的报价(470a-b)。例如,计算机系统340和342可以使用网络监控单元348和350以标识网络328和332的当前使用,并且可以使用接入控制单元352和354以标识其它计算设备的将来承诺网络使用。报价生成器344和346可以至少部分基于由网络监控单元348和350标识的信息以及由接入控制单元352和354标识的信息生成报价。网络A和B(454和456)可以向计算设备452无线传输生成的报价(472a-b)。
计算设备452可以接收报价(474)并且可以继续使用关于请求的报价信息和/或其它信息以对接收的请求排行以确定如果有则应当建立请求的网络连接中的哪个网络连接。例如,计算设备452可以确定请求的重要性(476)、基于来自网络A和B的接收的报价确定用于请求的成本(478)和/或确定请求将在其内到期的时间表(480)。基于这样的信息(例如,请求重要性、成本、到期时间表),计算设备452可以对请求排行。例如,客户端计算设备212的请求排行模块可以基于确定的成本(该成本是基于来自网络234-238的定价信息228-232确定的)和请求1-5的确定的重要性对请求1-5排行。
计算设备452可以访问用于计算设备452的预算信息和/或与计算设备452关联的一个或者多个用户(484)并且基于排行的请求和预算信息可以选择请求中的一个或者多个请求(486)。例如,客户端计算设备212的预算管理器224可以使用来自请求排行模块220的信息和预算信息(例如,每月预算、平均每天花费的数额、结转的数额、保留的预算信息和/或用于当前时间段的剩余预算)以选择请求中的一个或者多个请求。计算设备452可以对于选择的请求与网络A和/或B建立一个或者多个连接(488)。
图5是可以作为客户端或者作为一个服务器或者多个服务器用来实施在本文中描述的系统和方法的计算设备500、550的框图。计算设备500旨在于代表各种形式的数字计算机,比如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它适当计算机。计算设备550旨在于代表各种形式的移动设备,比如个人数字助理、蜂窝电话、智能电话和其它相似计算设备。此外,计算设备500或者550可以包括通用串行总线(USB)闪存驱动。USB闪存驱动可以存储操作系统和其它应用。USB闪存驱动可以包括输入/输出部件,比如可以向另一计算设备的USB端口中插入的无线传输器或者USB连接器。这里所示的部件、它们的连接和关系及其功能意味着仅为示例而未意味着限制在本文中描述和/或要求保护的实现方式。
计算设备500包括处理器502、存储器504、存储设备506、连接到存储器504和高速扩展端口510的高速接口508以及连接到低速总线514和存储设备506的低速接口512。使用各种总线来互连并且可以在公共母板上装配或者在适当时以其它方式装配部件502、504、506、508、510和512中的每个部件。处理器502可以处理用于在计算设备500内执行的指令,这些指令包括在存储器504中或者存储设备506上存储的用于在外部输入/输出设备(比如耦合到高速接口508的显示器516)上显示用于GUI的图形信息的指令。在其它实现方式中,多个处理器和/或多个总线可以在适当时与多个存储器和存储器类型一起使用。也可以连接多个计算设备500,其中每个设备提供必需操作的部分(例如作为服务器组、成组刀片服务器或者多处理器系统)。
存储器504存储计算设备500内的信息。在一个实现方式中,存储器504是一个或者多个易失性存储器单元。在另一实现方式中,存储器504是一个或者多个非易失性存储器单元。存储器504也可以是另一形式的计算机可读介质,比如磁盘或者光盘。
存储设备506能够提供用于计算设备500的海量存储。在一个实现方式中,存储设备506可以是或者包含计算机可读介质,比如软盘设备、硬盘设备、光盘设备或者带设备、闪存或者其它相似固态存储器设备或者如下设备的阵列,这些设备包括存储区域网络或者其它配置中的设备。可以在信息载体中有形地体现计算机程序产品。计算机程序产品也可以包含在被执行时执行一种或者多种方法(比如以上描述的方法)的指令。信息载体是计算机或者机器可读介质,比如存储器504、存储设备506或者在处理器502上的存储器。
高速控制器508管理用于计算设备500的带宽密集操作,而低速控制器512管理带宽密集度更低的操作。这样的功能分配仅为示例。在一个实现方式中,高速控制器508耦合到存储器504、显示器516(例如,通过图形处理器或者加速器)并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口510。在该实现方式中,低速控制器512耦合到存储设备506和低速扩展端口514。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或者多个输入/输出设备(比如键盘、指点设备、扫描仪)或者联网设备(比如交换机或者路由器)。
如该图中所示可以在多个不同形式中实施计算设备500。例如,它可以被实施为标准服务器520或者被多次实施于成组这样的服务器中。它也可以被实施为架式服务器系统524的部分。此外,可以在个人计算机(比如膝上型计算机522)中实施它。备选地,来自计算设备500的部件可以与移动设备(未示出)(比如设备550)中的其它部件组合。这样的设备中的每个设备可以包含计算设备500、550中的一个或者多个计算设备,并且整个系统可以由相互通信的多个计算设备500、550组成。
计算设备550包括处理器552、存储器564、输入/输出设备(比如显示器554、通信接口566和收发器568)以及其它部件。设备550也可以具有用于提供附加存储的存储设备,比如微驱动或者其它设备。使用各种总线来互连部件550、552、564、554、566和568中的每个部件,并且可以在公共母板上或者在适当时以其它方式装配部件中的若干部件。
处理器552可以执行计算设备550内的指令,这些指令包括存储器564中存储的指令。处理器可以被实施为包括分离以及多个模拟和数字处理器的芯片的芯片组。此外,可以使用多种架构中的任何架构来实施处理器。例如,处理器552可以是CISC(复杂指令集计算机)处理器、RISC(精简指令集计算机)处理器或者MISC(最小指令集计算机)处理器。处理器可以例如提供协调设备550的其它部件,比如控制用户界面、由设备550运行的应用和设备550的无线通信。
处理器552可以通过控制接口558和耦合到显示器554的显示接口556与用户通信。显示器554可以例如是TFT(薄膜晶体管液晶显示器)显示器或者OLED(有机发光二极管)显示器或者其它适当显示器技术。显示接口556可以包括用于驱动显示器554以向用户呈现图形和其它信息的适当电路。控制接口558可以从用户接收命令并且转换它们以用于向处理器552提交。此外,可以提供与处理器552通信的外部接口562以便支持设备550与其它设备的近区域通信。外部接口562可以例如在一些实现方式中提供有线通信或者在其它实现方式中提供无线通信,并且也可以使用多个接口。
存储器564存储计算设备550内的信息。存储器564可以被实施为一个或者多个计算机可读介质、一个或者多个易失性存储器单元或者一个或者多个非易失性存储器单元中的一项或者多项。也可以提供扩展存储器574并且扩展存储器574可以通过可以例如包括SIMM(单列直插存储器模块)卡接口的扩展接口572连接到设备550。这样的扩展存储器574可以提供用于设备550的额外存储空间或者也可以存储用于设备550的应用或者其它信息。具体而言,扩展存储器574可以包括用于实现或者补充以上描述的过程的指令,并且也可以包括安全信息。因此,例如,扩展存储器574可以被提供作为用于设备550的安全模块,并且可以用允许安全使用设备550的指令对扩展存储器574编程。此外,可以经由SIMM卡将安全应用与附加信息一起提供,比如以不可黑客的方式将标识信息放置于SIMM卡上。
如以下讨论的那样,存储器可以例如包括闪存和/或NVRAM存储器。在一个实现方式中,在信息载体中有形地体现计算机程序产品。计算机程序产品包含在被执行时执行一种或者多种方法(比如以上描述的方法)的指令。信息载体是计算机或者机器可读介质,比如可以例如通过收发器568或者外部接口562接收的存储器564、扩展存储器574或者在处理器552上的存储器。
设备550可以通过可以在必要时可以包括数字信号处理电路的通信接口566无线地通信。通信接口566可以在各种模式或者协议(比如GSM语音呼叫、SMS、EMS或者MMS消息接发、CDMA、TDMA、PDC、WCDMA、CDMA2000或者GPRS以及其它模式或者协议)之下提供通信。可以例如通过射频收发器568出现这样的通信。此外,可以比如使用蓝牙、WiFi或者其它这样的收发器(未示出)出现近程通信。此外,GPS(全球定位系统)接收器模块570可以向设备550提供附加的与导航和位置有关的无线数据,该数据可以在适当时由在设备550上运行的应用使用。
设备550也可以使用音频编码解码器560来可听地通信,编码解码器560可以从用户接收口述信息并且将它转换成可用数字信息。音频编码解码器560可以类似地比如通过例如在设备550的头戴式受话器中的扬声器生成用于用户的可听声音。这样的声音可以包括来自语音电话呼叫的声音、可以包括记录的声音(例如语音消息、音乐文件等)并且也可以包括由在设备550上操作的应用生成的声音。
如该图中所示,可以用多个不同形式实施计算设备550。例如,它可以被实施为蜂窝电话580。它也可以被实施为智能电话582、个人数字助理或者其它相似移动设备的部分。
可以在数字电子电路、集成电路、特殊设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现这里描述的系统和技术的各种实现方式。这些各种实现方式可以包括在可编程系统上可执行和/或可解译的一个或者多个计算机程序中的实现方式,该可编程系统包括可以是特殊或者通用的至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器被耦合用于从存储系统接收数据和指令以及向存储系统传输数据和指令。
这些计算机程序(也被称为程序、软件、软件应用或者代码)包括用于可编程处理器的机器指令并且可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实施。如这里所用,术语“机器可读介质”和“计算机可读介质”指代用来向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指代用来向可编程处理器提供机器指令和/或数据的任何信号
为了提供与用户的交互,可以在计算机上实施这里描述的系统和技术,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和指点设备(例如,鼠标或者跟踪球)。其它种类的设备也可以用来提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈或者触觉反馈);并且可以用包括声音、话音或者触觉输入的任何形式接收来自用户的输入。
可以在计算系统中实施这里描述的系统和技术,该计算系统包括后端部件(例如,作为数据服务器)或者包括中间件部件(例如,应用服务器)或者包括前端部件(例如,具有如下图形用户界面或者Web浏览器的客户端计算机,用户可以通过该图形用户界面或者Web浏览器与这里描述的系统和技术的实现方式交互)或者这样的后端、中间件或者前端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、对等网络(具有自组织或者静态成员)、网格计算基础结构和因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常相互远离并且通常通过通信网络交互。借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序产生客户端和服务器关系。
虽然以上已经具体描述了少数实现方式,但是其它修改是可能的。另外,可以使用用于建立网络连接的其它机制。此外,在各图中描绘的逻辑流程可以无需所示特定顺序或者依次顺序以实现希望的结果。可以提供其它步骤或者可以从描述的流程消除步骤并且可以向描述的系统添加或者从描述的系统去除其它部件。因而,其它实现方式在所附权利要求的范围内。
Claims (23)
1.一种计算机实施的方法,包括:
在计算设备并且从在所述计算设备上安装的第一应用接收对于建立网络连接以通过网络传输和接收数据的请求,其中所述请求包括信息,所述信息指示由所述第一应用对于请求的所述网络连接和数据传输而标识的一个或者多个参数;
响应于接收所述请求,并且在针对所述应用建立所述网络连接之前,重复地标识一个或者多个可用网络直至i)可用的标识的所述网络中的至少一个网络满足与所述请求一起被提供的所述一个或者多个参数,或者ii)与所述请求关联的指定的最大可接受延迟时段到期;以及
响应于在所述指定的最大可接受延迟时段已经到期之前标识满足所述一个或者多个参数的可用网络,使用标识的所述可用网络来建立用于所述第一应用的请求的所述网络连接。
2.根据权利要求1所述的计算机实施的方法,其中由所述第一应用标识的所述一个或者多个参数包括指示用于请求的所述网络连接的最小网络带宽的最小网络带宽参数和指示用于请求的所述网络连接的最大网络延时的最大网络延时参数。
3.根据权利要求2所述的计算机实施的方法,其中所述可用网络在所述可用网络具有大于或者等于所述最小网络带宽的可用带宽时满足所述最小网络带宽参数并且在所述可用网络具有小于或者等于所述最大网络延时的当前延时时满足所述最大网络延时参数。
4.根据权利要求1所述的计算机实施的方法,其中由所述第一应用标识的所述一个或者多个参数包括总数据大小参数,所述总数据大小参数指示将对于请求的所述网络连接而传输和接收的所述数据的总大小。
5.根据权利要求4所述的计算机实施的方法,其中所述可用网络在所述可用网络具有足以在阈值时间段内传输和接收所述总大小的所述数据的最小带宽时满足所述总数据大小参数。
6.根据权利要求1所述的计算机实施的方法,其中由所述第一应用标识的所述一个或者多个参数包括可接受延迟参数,所述可接受延迟参数指示对于其所述计算设备被允许建立请求的所述网络连接的最大时间段。
7.根据权利要求6所述的计算机实施的方法,其中所述可用网络在从接收所述请求时的所述时间段内标识所述可用网络时满足所述可接受延迟参数。
8.根据权利要求1所述的计算机实施的方法,还包括:
在所述计算设备并且从在所述计算设备上安装的一个或者多个其它应用接收对于建立网络连接的一个或者多个其它请求;
在来自在所述计算设备上安装的所述一个或者多个其它应用的所述一个或者多个其它请求之中对来自所述第一应用的接收的所述请求排行;并且
其中在来自所述第一应用的接收的所述请求至少具有在所述一个或者多个其它请求之中的阈值排行时建立针对所述第一应用的请求的所述网络连接。
9.根据权利要求8所述的计算机实施的方法,其中至少基于传输和接收用于所述请求和所述一个或者多个其它请求中的每个请求的数据的成本对所述请求和所述一个或者多个其它请求排行。
10.根据权利要求9所述的计算机实施的方法,其中传输和接收所述请求和所述一个或者多个其它请求中的每个请求的所述成本基于将对于所述请求和所述一个或者多个其它请求中的每个请求而传输和接收的数据的总大小以及用于通过一个或者多个可用网络传输和接收数据的每数据单位的成本。
11.根据权利要求9所述的计算机实施的方法,其中基于用于所述计算设备的网络连接预算确定所述阈值排行,所述网络连接预算指示可用于所述计算设备花费以通过网络连接传输和接收数据的金额。
12.根据权利要求8所述的计算机实施的方法,其中至少基于所述请求和所述一个或者多个其它请求中的每个请求的推断的重要性对所述请求和所述一个或者多个其它请求排行。
13.根据权利要求1所述的计算机实施的方法,还包括:
响应于标识一个或者多个可用网络,请求来自所述一个或者多个可用网络的报价;
接收用于所述一个或者多个可用网络的报价,其中所述报价指示用于通过所述一个或者多个可用网络传输或者接收请求的所述数据的成本;
至少部分基于接收的所述报价从所述一个或者多个可用网络选择可用网络;并且
与选择的所述可用网络建立请求的所述网络连接。
14.根据权利要求13所述的计算机实施的方法,其中请求来自其的所述报价的所述一个或者多个可用网络中的每个可用网络满足所述一个或者多个参数。
15.根据权利要求1所述的计算机实施的方法,其中所述一个或者多个参数包括质量参数,所述质量参数指示被允许用于请求的所述网络连接和数据传输的多个质量级别。
16.根据权利要求15所述的计算机实施的方法,还包括:
标识能够在由所述质量参数指定的所述多个质量级别中的一个或者多个质量级别传输和接收请求的所述数据的一个或者多个可用网络;
选择标识的所述可用网络中的能够在来自所述多个质量级别之中的最大质量级别传输和接收请求的所述数据的可用网络;并且
其中使用选择的所述可用网络来建立请求的所述网络连接。
17.根据权利要求1所述的计算机实施的方法,其中对于建立所述网络连接的所述请求包括对于在所述计算设备和在所述请求中被标识的一个或者多个其它计算设备之间传输和接收数据的请求,其中所述一个或者多个其它计算设备不同于提供所述一个或者多个可用网络连接的一个或者多个接入点。
18.根据权利要求1所述的计算机实施的方法,还包括:
在计算设备并且从在所述计算设备上安装的不同于所述第一应用的第二应用接收对于建立第二网络连接以通过所述网络传输和接收数据的第二请求,其中所述第二请求包括第二信息,所述第二信息指示由所述第二应用对于请求的所述第二网络连接和数据传输而标识的一个或者多个第二参数;
响应于接收所述第二请求,重复地标识一个或者多个第二可用网络直至i)可用的标识的所述第二网络中的至少一个第二网络满足与所述第二请求一起被提供的所述一个或者多个第二参数,或者ii)与所述第二请求关联的第二指定的最大可接受延迟时段到期;以及
响应于在所述第二指定的最大可接受延迟时段已经到期之前标识满足与所述第二请求一起被提供的所述一个或者多个第二参数的第二可用网络,使用标识的所述第二可用网络来建立用于所述第二应用的请求的所述第二网络连接。
19.一种计算机实施的方法,包括:
在计算设备并且从在所述计算设备上安装的应用接收对于建立网络连接以通过网络传输和接收数据的请求,其中所述请求包括信息,所述信息指示由所述应用对于请求的所述网络连接和数据传输而标识的一个或者多个参数;
由所述计算设备延迟建立请求的所述网络连接直至i)标识了满足作为所述请求的部分而被提供的所述一个或者多个参数的可用网络连接,或者ii)对于所述请求而指定的时间段已经到期;以及
响应于在所述时间段已经到期之前标识满足所述一个或者多个参数的可用网络,使用标识的所述可用网络来建立用于所述应用的请求的所述网络连接;以及
在来自在所述计算设备上安装的其它应用的对于网络连接的一组其它请求之中对接收的所述请求排行,其中:
在接收的所述请求至少具有在所述其它请求之中的阈值排行时建立请求的所述网络连接,
至少基于所述请求和所述其它请求中的每个请求的推断的重要性对所述请求和所述其它请求排行,以及
至少基于待传输的数据类型和所述计算设备的用户是否当前正在与关联于所述请求和所述其它请求中的每个请求的一个或者多个应用交互来确定所述请求和所述其它请求中的每个请求的所述推断的重要性。
20.一种移动计算设备,包括:
无线联网天线;以及
一个或者多个处理器,被编程用于实例化:
网络连接管理器,被编程用于接收对于建立网络连接以通过网络传输和接收数据的请求,其中所述请求包括信息,所述信息指示对于请求的所述网络连接和数据传输而标识的一个或者多个参数;以及
请求管理器,被编程用于i)重复地标识一个或者多个可用网络直至可用的标识的所述网络中的至少一个网络满足与所述请求一起被提供的所述一个或者多个参数的可用网络连接,并且ii)响应于标识满足所述一个或者多个参数的可用网络并且在对于所述请求而指定的最大可接受延迟时段已经到期之前,使用所述无线联网天线来与标识的所述可用网络建立请求的所述网络连接。
21.根据权利要求20所述的移动计算设备,其中所述一个或者多个处理器还被编程用于实例化:
连接定价协商器,被编程用于请求和接收来自一个或者多个可用网络的报价,其中所述报价指示用于通过所述一个或者多个可用网络传输和接收请求的所述数据的成本;
请求排行模块,被编程用于至少部分基于由所述连接定价协商器接收的所述报价在对于网络连接的多个其它请求之中对接收的所述请求排行;并且
其中所述网络连接管理器还被编程用于至少部分基于由所述请求排行模块生成的所述排行从接收的所述请求和所述多个其它请求之中选择一个或者多个请求。
22.根据权利要求20所述的移动计算设备,其中所述计算设备还被编程用于接收对于建立网络连接以通过网络传输和接收数据的多个请求,所述多个请求由在所述计算设备上安装的多个不同应用提供,所述多个请求中的每个请求包括信息,所述信息指示由提供所述请求的所述多个不同应用中的相应应用标识的一个或者多个参数。
23.一种用于建立网络连接的设备,包括:
用于从在一个或者多个计算设备上安装的应用接收对于建立所述网络连接以通过网络传输和接收数据的请求的装置,其中所述请求包括信息,所述信息指示由所述应用对于请求的所述网络连接和数据传输而标识的一个或者多个参数;
用于响应于接收所述请求,并且在针对所述应用建立所述网络连接之前,重复地标识一个或者多个可用网络直至i)可用的标识的所述网络中的至少一个网络满足与所述请求一起被提供的所述一个或者多个参数,或者ii)与所述请求关联的指定的最大可接受延迟时段到期的装置;以及
用于响应于在所述指定的最大可接受延迟时段已经到期之前标识满足所述一个或者多个参数的可用网络,使用标识的所述可用网络来建立用于所述应用的请求的所述网络连接的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161530395P | 2011-09-01 | 2011-09-01 | |
US61/530,395 | 2011-09-01 | ||
PCT/US2012/053660 WO2013033702A1 (en) | 2011-09-01 | 2012-09-04 | Establishing network connections |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104067255A CN104067255A (zh) | 2014-09-24 |
CN104067255B true CN104067255B (zh) | 2016-12-28 |
Family
ID=47756955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280053732.6A Active CN104067255B (zh) | 2011-09-01 | 2012-09-04 | 建立网络连接 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8650325B2 (zh) |
EP (1) | EP2751702B1 (zh) |
CN (1) | CN104067255B (zh) |
WO (1) | WO2013033702A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110280247A1 (en) * | 2010-05-17 | 2011-11-17 | Google Inc. | System and method for reducing latency via multiple network connections |
US20130107783A1 (en) * | 2011-10-26 | 2013-05-02 | At&T Intellectual Property I, L.P | Intelligent Hot Spot and Tethering |
US9838287B2 (en) | 2012-01-27 | 2017-12-05 | Microsoft Technology Licensing, Llc | Predicting network data consumption relative to data usage patterns |
KR20130120291A (ko) * | 2012-04-25 | 2013-11-04 | 주식회사 아이디어웨어 | 네트워크 부하 저감 기능이 구비된 무선단말장치와 그의 네트워크 부하 저감방법 |
US20140068212A1 (en) * | 2012-09-04 | 2014-03-06 | Microsoft Corporation | Device backups and updates in view of data usage statistics |
GB2506870B (en) * | 2012-10-09 | 2014-11-12 | Gos Networks Ltd | Method for the reduction of signalling traffic on mobile devices |
KR102002407B1 (ko) | 2013-05-07 | 2019-07-23 | 삼성전자주식회사 | 휴대단말기의 콘텐츠 전송 방법 및 장치 |
US9301245B2 (en) * | 2013-06-14 | 2016-03-29 | Qualcomm Incorporated | Toll path routing protocol |
US9369342B2 (en) | 2013-11-15 | 2016-06-14 | Microsoft Technology Licensing, Llc | Configuring captive portals with a cloud service |
US10057302B2 (en) | 2013-11-15 | 2018-08-21 | Microsoft Technology Licensing, Llc | Context-based selection of instruction sets for connecting through captive portals |
US9554323B2 (en) * | 2013-11-15 | 2017-01-24 | Microsoft Technology Licensing, Llc | Generating sequenced instructions for connecting through captive portals |
US10382305B2 (en) | 2013-11-15 | 2019-08-13 | Microsoft Technology Licensing, Llc | Applying sequenced instructions to connect through captive portals |
CN104754491B (zh) * | 2013-12-26 | 2021-02-09 | 索尼公司 | 移动终端、以及移动终端之间协作传输的实现方法 |
US10412230B2 (en) * | 2014-07-14 | 2019-09-10 | Google Llc | System and method for retail SIM marketplace |
KR102274950B1 (ko) * | 2014-09-11 | 2021-07-08 | 삼성전자주식회사 | 무선 통신 시스템에서 다중 망 접속을 위한 장치 및 방법 |
US10769533B2 (en) | 2015-09-04 | 2020-09-08 | Baidu Usa Llc | Systems and methods for efficient neural network deployments |
US10200272B1 (en) | 2015-09-30 | 2019-02-05 | Alarm.Com Incorporated | Dynamic availability-based wireless data transmission |
EP3174248A1 (en) * | 2015-11-26 | 2017-05-31 | R3 - Reliable Realtime Radio Communications GmbH | Communication system |
US10028133B2 (en) * | 2016-10-24 | 2018-07-17 | General Motors Llc | Timing delivery of over-the-air data to a vehicle |
CN108234149B (zh) * | 2016-12-09 | 2023-01-24 | 沈阳美行科技股份有限公司 | 一种网络请求的管理方法和装置 |
JP6901591B2 (ja) * | 2017-05-04 | 2021-07-14 | 北京小米移動軟件有限公司Beijing Xiaomi Mobile Software Co.,Ltd. | 基地局にアクセスするための方法および装置 |
US10972575B2 (en) * | 2017-06-02 | 2021-04-06 | Huawei Technologies Co., Ltd. | Method and system for supporting edge computing |
DK3637861T3 (da) * | 2018-10-10 | 2022-03-21 | Telia Co Ab | Valg af en mobilkommunikationsnetværkstjeneste |
US11883737B2 (en) | 2019-09-27 | 2024-01-30 | Qualcomm Incorporated | Methods and apparatuses for game state based network interface management |
CN110768903A (zh) * | 2019-10-28 | 2020-02-07 | 北京字节跳动网络技术有限公司 | 优化网络连接的方法、装置、终端及存储介质 |
US11432201B2 (en) | 2020-06-26 | 2022-08-30 | T-Mobile Usa, Inc. | Network application programming interface (API) exposure |
US11886767B2 (en) * | 2022-06-17 | 2024-01-30 | T-Mobile Usa, Inc. | Enable interaction between a user and an agent of a 5G wireless telecommunication network using augmented reality glasses |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1151551A (zh) * | 1995-10-10 | 1997-06-11 | 国际商业机器公司 | 动态改变低级文件系统操作超时参数的系统和方法 |
US5644715A (en) * | 1991-11-22 | 1997-07-01 | International Business Machines Corporation | System for scheduling multimedia sessions among a plurality of endpoint systems wherein endpoint systems negotiate connection requests with modification parameters |
US6965948B1 (en) * | 1999-11-12 | 2005-11-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for selective network access |
US7433929B2 (en) * | 2000-12-29 | 2008-10-07 | At&T Mobility Ii Llc | Intelligent network selection based on quality of service and applications over different wireless networks |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289322B1 (en) | 1998-03-03 | 2001-09-11 | Checkfree Corporation | Electronic bill processing |
US5479411A (en) | 1993-03-10 | 1995-12-26 | At&T Corp. | Multi-media integrated message arrangement |
US6058309A (en) | 1996-08-09 | 2000-05-02 | Nortel Networks Corporation | Network directed system selection for cellular and PCS enhanced roaming |
US6122514A (en) * | 1997-01-03 | 2000-09-19 | Cellport Systems, Inc. | Communications channel selection |
US6148197A (en) | 1998-03-06 | 2000-11-14 | Sbc Technology Resources, Inc. | Intelligent roaming system with over the air programming |
US7076447B1 (en) | 1999-06-10 | 2006-07-11 | Inphonic, Inc. | Systems and methods for aggregating buyers for the purchase of telecommunication services via a network |
US6381315B1 (en) | 1999-12-02 | 2002-04-30 | Eli Nhaissi | Universal exchange for making least-cost non-local telephone calls |
US7444669B1 (en) | 2000-05-05 | 2008-10-28 | Microsoft Corporation | Methods and systems for providing variable rates of service for accessing networks, methods and systems for accessing the internet |
US6690936B1 (en) | 2000-10-31 | 2004-02-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Air-interface efficiency in wireless communication systems |
WO2002041580A1 (de) | 2000-11-14 | 2002-05-23 | Siemens Aktiengesellschaft | Vorrichtung und verfahren zur auswahl von netzzugängen |
US20020111915A1 (en) | 2001-02-12 | 2002-08-15 | Clemens Christopher Donald | Payment management |
US20020138398A1 (en) | 2001-03-26 | 2002-09-26 | Kalin Dan M. | Automated bandwidth exchange node system |
US20020169716A1 (en) | 2001-05-08 | 2002-11-14 | Johnson Jack J. | Bidding tor telecommunications traffic and billing for service |
US8818833B2 (en) * | 2002-02-14 | 2014-08-26 | International Business Machines Corporation | Method and system for managing service requests across multiple systems |
JP3828444B2 (ja) * | 2002-03-26 | 2006-10-04 | 株式会社日立製作所 | データ通信中継装置及びシステム |
WO2004047476A1 (en) | 2002-11-20 | 2004-06-03 | International Business Machines Corporation | Managing network resources for wireless communication |
FI20030827A0 (fi) | 2003-06-03 | 2003-06-03 | Nokia Corp | Hintatiedon välittäminen tietoliikennejärjestelmässä |
US6931109B1 (en) * | 2003-06-12 | 2005-08-16 | Sprint Communications Company L.P. | Link selection parameter modification for network access selection |
EP1517572B1 (en) * | 2003-09-16 | 2010-12-08 | Research In Motion Limited | Method and apparatus for selecting a wireless network based on quality of service (QOS) criteria associated with an application |
US7466655B1 (en) * | 2003-09-16 | 2008-12-16 | Cisco Technology, Inc. | Ant-based method for discovering a network path that satisfies a quality of service equipment |
US7526765B2 (en) * | 2003-11-26 | 2009-04-28 | International Business Machines Corporation | Method and apparatus for on-demand resource allocation and job management |
JP2006033105A (ja) | 2004-07-13 | 2006-02-02 | Aruze Corp | メディア通信装置及びメディア通信プログラム |
US7417962B2 (en) | 2004-09-15 | 2008-08-26 | Alcatel Lucent | QoS capable mobile ad-hoc network device |
US8565185B2 (en) | 2005-04-13 | 2013-10-22 | Toshiba America Research, Inc. | Framework of media-independent pre-authentication support for PANA |
US20060256772A1 (en) | 2005-05-12 | 2006-11-16 | Yahoo! Inc. | Selecting a network for routing real-time audio |
US20070253449A1 (en) * | 2005-12-22 | 2007-11-01 | Arnab Das | Methods and apparatus related to determining, communicating, and/or using delay information |
US7907938B2 (en) | 2006-08-31 | 2011-03-15 | Alcatel-Lucent Usa Inc. | Apparatus and method for data transmission in a wireless communications network |
US7885654B2 (en) | 2006-10-10 | 2011-02-08 | Apple Inc. | Dynamic carrier selection |
US7792491B2 (en) * | 2006-10-18 | 2010-09-07 | Matthew Robert Whitten | Wireless printing using a mobile computing device |
US8438267B2 (en) | 2006-12-28 | 2013-05-07 | At&T Intellectual Property Ii, L.P. | Internet-wide scheduling of transactions |
US8036367B2 (en) | 2007-03-19 | 2011-10-11 | Google Inc. | Flexible communication systems and methods |
US8594665B2 (en) * | 2007-08-27 | 2013-11-26 | At&T Intellectual Property I, L.P. | Communication devices that utilize various communication networks to satisfy communication needs of device applications |
US8238243B2 (en) * | 2009-02-12 | 2012-08-07 | Arcsoft, Inc. | System and method for network optimization by managing low priority data transfers |
US8713578B2 (en) * | 2009-03-25 | 2014-04-29 | International Business Machines Corporation | Managing job execution |
US8626234B2 (en) * | 2009-12-17 | 2014-01-07 | Alcatel Lucent | Method and apparatus for providing layered wireless networks |
-
2012
- 2012-09-04 EP EP12828113.6A patent/EP2751702B1/en active Active
- 2012-09-04 CN CN201280053732.6A patent/CN104067255B/zh active Active
- 2012-09-04 WO PCT/US2012/053660 patent/WO2013033702A1/en active Application Filing
- 2012-09-28 US US13/631,168 patent/US8650325B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5644715A (en) * | 1991-11-22 | 1997-07-01 | International Business Machines Corporation | System for scheduling multimedia sessions among a plurality of endpoint systems wherein endpoint systems negotiate connection requests with modification parameters |
CN1151551A (zh) * | 1995-10-10 | 1997-06-11 | 国际商业机器公司 | 动态改变低级文件系统操作超时参数的系统和方法 |
US6965948B1 (en) * | 1999-11-12 | 2005-11-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for selective network access |
US7433929B2 (en) * | 2000-12-29 | 2008-10-07 | At&T Mobility Ii Llc | Intelligent network selection based on quality of service and applications over different wireless networks |
Non-Patent Citations (2)
Title |
---|
Multicast routing with end-to-end delay and delay variation constraints;George N Rouskas等;《IEEE Journal on Selected Areas in Communications》;19970430;第15卷(第3期);第346-356页 * |
提供有界延迟服务的网络结构;孙利民等;《国防科技大学学报》;19981231;第20卷(第2期);第91-97页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2013033702A1 (en) | 2013-03-07 |
US8650325B2 (en) | 2014-02-11 |
EP2751702B1 (en) | 2018-05-16 |
EP2751702A4 (en) | 2015-03-25 |
CN104067255A (zh) | 2014-09-24 |
US20130060653A1 (en) | 2013-03-07 |
EP2751702A1 (en) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104067255B (zh) | 建立网络连接 | |
US20220141110A1 (en) | Managing data transfers over network connections based on priority and a data usage plan | |
US9955330B2 (en) | Distributed computing task costing with a mobile device | |
CN112954741B (zh) | 移动终端、以及移动终端之间协作传输的实现方法 | |
US9355420B2 (en) | Bandwidth management | |
CN110443695A (zh) | 数据处理方法及其装置、电子设备和介质 | |
Mallinson | Don't Fix What Isn't Broken: The Extraordinary Record of Innovation and Success in the Cellular Industry under Exiting Licensing Practices | |
CN110876123A (zh) | 流量获取、提供、共享、校准、转移方法以及设备 | |
US20130339073A1 (en) | Influencing the utilization of resources in a circumscribed venue | |
CN109040325A (zh) | 一种信息推送的控制方法、装置、设备及介质 | |
CN111626767A (zh) | 资源数据的发放方法、装置及设备 | |
US20120130850A1 (en) | Techniques and system for revenue sharing in an online storefront | |
Li et al. | Computation offloading and service allocation in mobile edge computing | |
Jiang et al. | On economic viability of mobile edge caching | |
CN114626939A (zh) | 授信处理方法、装置、电子设备及存储介质 | |
CN113778675A (zh) | 一种基于面向区块链网络的计算任务分配系统及方法 | |
Kattiyan Ramamoorthy et al. | Stackelberg game-theoretic spectrum allocation for QoE-Centric wireless multimedia communications | |
CN116382806A (zh) | 一种任务卸载方法、装置及计算机可读存储介质 | |
Wang et al. | Cooperative Edge Computing Task Offloading Strategy for Urban Internet of Things | |
Chunlin et al. | Context-aware integrated scheme for mobile cloud service allocation | |
KR20230053315A (ko) | 오프라인 기반의 가이딩용 송수신기 제공 방법 및 시스템 | |
Li et al. | Mechanism Design for Time-Varying Value Tasks in High-Load Edge Computing Markets | |
KR20240121364A (ko) | 소셜네트워크의 트렌드를 반영하여 구독 서비스를 제공하는 플랫폼 운영방법 | |
KR20240120900A (ko) | 빅데이터 기반 적정 구독료를 산출하는 영유아 용품 및 서비스 구독 통합 서비스 시스템 | |
US20170353610A1 (en) | Bandwidth-sharing, intelligent network switching system |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: Google limited liability company Address before: American California Patentee before: Google Inc. |
|
CP01 | Change in the name or title of a patent holder |