CN101682549B - 使用历史连接信息的网络接口选择 - Google Patents

使用历史连接信息的网络接口选择 Download PDF

Info

Publication number
CN101682549B
CN101682549B CN2008800200706A CN200880020070A CN101682549B CN 101682549 B CN101682549 B CN 101682549B CN 2008800200706 A CN2008800200706 A CN 2008800200706A CN 200880020070 A CN200880020070 A CN 200880020070A CN 101682549 B CN101682549 B CN 101682549B
Authority
CN
China
Prior art keywords
computer
network
network interface
interface
web
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
Application number
CN2008800200706A
Other languages
English (en)
Other versions
CN101682549A (zh
Inventor
D·班塞尔
S·加吉
M·希德哈伦
D·塞勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101682549A publication Critical patent/CN101682549A/zh
Application granted granted Critical
Publication of CN101682549B publication Critical patent/CN101682549B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing

Abstract

计算机可能能够通过多个接口经由网络与各设备进行通信。在要建立新连接时,计算机可以选择接口来用于该连接。在某些实施例中,接口可以基于表示该计算机已经通过各接口建立的先前网络连接的性能的历史连接信息来选择。

Description

使用历史连接信息的网络接口选择
背景
技术领域
此处描述的技术涉及使用计算机的网络通信。
相关技术的讨论
计算机可被配置成通过网络连接彼此通信。网络连接的细节对用户而言可以不是显而易见的。例如,计算机可以与位于附近或在不同的州或国家的服务器进行通信。通信可以通过不同类型的介质发生,诸如例如电话线、电缆线、光纤或无线电波。如果网络通信通过因特网发生,则通信可以由因特网服务提供商(ISP)来促进,ISP可以通过各种不同的网络路径中的任一个来路由通信。
某些计算机可具有它们将如何访问计算机网络的各种不同的选项。例如,计算机可以通过提供有线网络接口或无线网络接口卡(NIC)的以太网连接来访问网络,无线网络接口卡提供无线网络接口。在计算机具有超过一个网络接口时,其可以选择使用哪一接口来进行连接。一种用于选择网络接口的在先技术是选择具有最高接口数据率的可用接口。计算机的接口可以广告它们能够提供的数据率并且计算机可以基于所广告的数据率来选择接口。
概述
在一方面,在计算机需求建立新网络连接时,可以基于通过可用接口的先前网络连接的性能来为该网络连接选择网络接口。申请人认识到,虽然一个接口可能具有比另一接口更高的数据率,但在某些实施例中,使用较慢接口可以向该网络连接提供更好的总体性能。可以使用关于通过多个接口的先前连接的历史信息来预测哪一接口将为新连接提供最佳总体性能。在某些实施例中,这种历史信息可由计算机本身来存储。在该计算机作出到其它计算机的连接时,可以存储这些连接的一个或多个参数的性能相关的参数,并将这些参数与这些连接通过其而建立的接口相关联。作为示例,这种历史信息可包括往返时间、连接数据率、连接丢失率、该连接的跳数计数和/或任何其它合适的信息。在需要建立新连接时,该计算机可以访问这一所存储的信息的一些或全部以确定使用哪一接口。结果,可以通过选择最可能提供最佳连接性能的接口来达到改进的连接性能。
一个实施例涉及用于在计算环境中使用的方法,该计算环境包括被配置成通过第一网络接口和第二网络接口来经由网络通信的第一计算机。网络可以允许第一计算机与多个其它计算机经由该网络进行通信。第一计算机可以存储第一和第二历史网络连接信息。第一历史网络连接信息可以表示第一计算机与多个其它计算机中的至少一个之间的通过第一网络接口的第一网络连接的性能。第二历史网络连接信息可以表示第一计算机与多个其它计算机中的至少一个之间的通过第二网络接口的第二网络连接的性能。至少基于第一和第二历史网络连接信息,可以从第一和第二网络接口中选择网络接口来用于第三网络连接。基于所选接口,可以在第一计算机和来自多个其它计算机中的第二计算机之间建立第三网络连接,以使第三网络连接通信通过所选网络接口。
另一实施例涉及用于在计算环境中使用的计算机可读介质,该计算环境包括被配置成通过第一网络接口和第二网络接口来经由网络通信的第一计算机。网络可以允许第一计算机与多个其它计算机经由该网络进行通信。该计算机可读介质上可以记录在被执行时执行一种包括若干动作的方法的指令。例如,响应于指令的执行,计算机可以存储表示第一计算机与多个其它计算机中的至少一个之间的通过多个网络接口的多个网络连接的性能的历史网络连接信息。可以从多个网络接口中选择用于第一计算机与多个其它计算机中的至少一个之间的网络连接的网络接口。基于所选接口,可以在第一计算机和来自多个其它计算机中的第二计算机之间建立网络连接,以使第一计算机和第二计算机之间的通信通过所选网络接口。
又一实施例涉及包括计算机并还包括第一和第二网络接口的系统,第一和第二网络接口允许该计算机与多个其它计算机经由网络进行通信。该计算机可包括至少一个存储设备,该设备存储表示该计算机与多个其它计算机中的至少一个之间的通过第一网络接口的第一网络连接的性能参数的第一历史网络连接信息,以及表示该计算机与多个其它计算机中的至少一个之间的通过第二网络接口的第二网络连接的性能参数的第二历史网络连接信息。该计算机还可包括基于第一和第二历史信息来确定要将第一和第二网络接口中的哪一个用于要与多个其它计算机中的至少一个建立的第三网络连接的处理器。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图简述
在附图中,各个附图中示出的每一完全相同或近乎完全相同的组件由同样的标号来表示。出于简明的目的,不是每个组件在每张附图中均被标号。在附图中:
图1示出可在其中实现各实施例的计算环境;
图2是示出根据某些实施例的通过网络进行通信的方法的流程图;以及
图3示出可在其上实现各实施例的示例性计算机。
详细描述
申请人认识到,用于选择网络接口的在先技术蒙受缺点。如上所述,一种用于选择网络接口的在先技术是选择广告其可以提供最高数据率的可用接口。例如,以太网网络适配器接口可以广告其可用并能够通过高数据率,并且蜂窝数据网络适配器接口可以广告其可用并能够提供较低数据率。根据用于选择最佳可用接口的在先技术,可以选择以太网接口,因为它广告其能够提供比蜂窝数据接口更好的性能。然而,在某些情况下,经由蜂窝数据接口连接实际上可以提供更好的性能,因为接口速度本身不考虑接口之外的可以影响网络性能的因素。例如,以太网连接可以向因特网服务提供商(ISP)的服务器提供连接。然而,如果ISP当前不能提供高质量的服务,则通过以太网连接进行的连接可能相对缓慢。计算机通过使用蜂窝数据接口进行连接可体验更好的性能,该蜂窝数据接口可以通过可提供更好服务的不同ISP来提供网络连接。因此,申请人认识到,接口速度之外的因素可以限制连接可达到的性能。因此,在某些实施例中,可以使用不同的和/或附加准则来选择要用于连接的接口。例如,可以将先前连接的性能作为整体来考虑而非只考虑网络接口的能力。
在某些实施例中,可以基于关于通过可用接口的先前连接的性能的历史信息来选择接口。这种历史信息可包括各种因素中的任一个,如往返时间、连接数据率、连接丢失率、该连接的跳数计数和/或任何其它合适的信息。在建立连接时,计算机可以记录关于这些连接参数的历史信息,并可以访问该历史信息来作出关于对于新连接使用哪一接口的决定。这种历史信息可不限于接口本身的性能,而可以补充或替换地反映连接作为整体的性能。如果接口最近向到特定网络位置的网络连接提供了良好的性能,则可以假定该接口可以继续提供到该网络位置和附近的位置的良好的性能。在这些情况下,可以选择这种接口超过可能向相似网络位置提供较差服务的较快接口。关于先前网络连接的合适的历史信息可被用来选择更可能在将来提供良好性能的接口。在某些实施例中,计算机本身可以基于关于先前网络连接的历史信息来有利地实现这种解决方案。
图1示出可在其中实现各实施例的计算环境10的示例。计算环境10包括第一计算机1和第二计算机2,计算机1可经由网络7建立到第二计算机2的连接。计算机1和2可以是任何合适类型的计算机,且网络7可以是任何合适类型的网络,因为此处描述的技术在这些方面不作限制。第一计算机1可以由第一接口3和第二接口4通信,它们可以允许计算机1经由网络7与各设备交换信息。如果计算机1通过接口3连接到计算机2,则通信可以经由第一路由5通过网络7来发生。如果计算机1通过接口4连接到计算机2,则通信可以经由第二路由6通过网络7来发生。路由5和6可以体验不同的性能。
虽然在图1中示出两个接口,但此处描述的技术不限于该示例,因为附加接口可以提供到网络7的访问,并且这些技术可以扩展到这些附加网络接口。网络接口可以是计算机的一部分或与计算机分开。例如,计算机可以具有作为计算机的一部分的网络接口卡形式的内置网络接口(例如,内置无线NIC或以太网NIC)。另选地,接口可以与计算机分开,并可以经由局部数据总线(例如,串行或并行总线)与计算机通信以经由网络提供对另一设备的访问。可以使用任何合适类型和配置的网络接口,因为此处描述的技术在这一方面不作限制。
计算机1随后可以尝试通过接口3、接口4或某一其它接口建立到计算机2的新连接。在某些实施例中,计算机1可以基于关于已建立(例如,基于图1的示例中的接口3和4)的先前连接的性能的历史信息来选择要使用的接口。这一历史信息可以允许计算机考虑接口选择对所采取来通过网络的路由(例如,路由5或6)的影响。作为一个示例,接口3可能能够提供比接口4更高的数据率。选择接口3可能导致通过路由5来将通信路由通过网络7。然而,如果路由5比路由6慢,则选择接口4可能比选择接口3提供更好的总体性能。在某些实施例中,关于通过接口3和4进行的先前连接的历史信息可以允许计算机作出关于哪一接口可能提供具有更好性能的连接的受教育的预测。
可以考虑任何合适的历史信息。作为一个示例,该历史信息可包括关于先前网络连接的往返时间(RTT)的信息。在计算机1向计算机2发送分组时,在计算机2接收到该分组之前可存在延时。一旦计算机2接收到该分组,则计算机2可以向计算机1发送响应。例如,计算机1可以发送确认分组来确认对计算机1所发送的分组的接收。RTT可以是从计算机1发送通信的时间直到计算机1接收到响应的时间的时间量。较小的RTT可能是优选的,因为较小的RTT可以允许连接提供较好的性能。RTT可以受各种因素影响,如计算机之间的距离、计算机2的速度和/或所采取来通过网络的路由的速度。作为另一示例,该历史信息可包括关于过去的连接所达到的数据率的信息。如RTT一样,数据率可以受各种因素影响,如所采取来通过网络的路由的速度。作为又一示例,该历史信息可包括关于连接的丢失率的信息。在通过网络发送数据时,分组可能不总能达到其目的地,并且有时可能以崩溃的形式到达其目的地。当这种情况发生时,可以说分组丢失,并且需要重新传送该分组。连接的丢失率表示给定连接的分组丢失的速率。作为又一示例,该历史信息可包括关于“跳数计数”的信息,跳数计数是数据要达到其目的地所采取的通过网络的步数。在数据通过连接路由时,该数据可能需要通过多个步骤,每一个步骤可包括可以向前转发该数据的设备(例如,交换机、路由器或网关)。如果跳数计数相对很大,则数据可能需要通过大量路由器,这可能减慢连接并可以使该连接有更大机会失败。
以上仅是可以测量来确定连接的性能的参数的示例,并且应当理解,本发明不限于使用这些参数,因为可以使用任何合适的历史连接信息来用于接口选择。
图2是示出根据某些实施例的通过网络进行通信的方法的流程图。如上所述,计算机可以保存历史连接信息以供将来用于选择接口。在动作A1,计算机可以存储关于已通过第一接口建立的连接的历史连接信息。这可以用任何合适的方式来完成,例如,在计算机通过第一接口建立到网络的连接时,计算机可以存储关于该连接的信息。这一信息可以从任何源获得。计算机本身可以测量连接信息和/或可以从另一设备接收连接信息。例如,该连接信息可以从测量连接信息的另一设备接收。计算机可以在存储器中本地地存储历史连接信息,或这一信息可以存储在别处。例如,该信息可由测量该信息的设备来存储并由计算机稍后在选择接口之前获取。该历史连接信息可包括关于该连接的任何合适的性能相关信息,其示例已在以上讨论。在某些实施例中,该历史连接信息可以与计算机所连接到的设备的网络地址相关联,并且该网络地址和历史连接信息可以存储在一起。在一个示例中,计算机1可以对经由接口3所建立的到计算机2的连接来执行动作A1。然而,这仅是示例,因为动作A1可以用任何合适的方式来执行。
在动作A2,计算机可以存储关于已通过不同于第一接口的第二接口建立的连接的历史连接信息。该历史连接信息可以表示关于通过第二接口所进行的连接的性能相关信息。在某些实施例中,在动作A2中存储的历史连接信息可以与在动作A1中存储的信息是相同的类型,从而允许基于同一准则来比较不同的连接。另选地,可以对不同的连接存储不同类型的历史连接信息,因为此处描述的技术在这一方面不作限制。如以上参考动作A1所述,历史连接信息可由该计算机或不同的设备来测量,并可以本地地存储在估计时间上或另一位置中。在一个示例中,计算机1可以对经由接口4所建立的到计算机2的连接来执行动作A2。然而,这仅是示例,因为动作A2可以用任何合适的方式来执行。
结果,可以保存通过不同接口的连接的历史连接信息。在某些实施例中,动作A1和A2可以重复多次,以使计算机可以构建到多个不同设备的连接的历史连接信息的数据集。例如,在建立连接时可以周期性地测量并保存连接信息。例如,可以将测量之间的时间间隔选择为大约等于该连接的RTT,并且也可以在RTT改变时进行测量。然而,连接信息不必周期性地测量或保存,并可以用不同的方式执行。可以对一个或多个连接参数存储任何合适的原始连接测量和/或导出的连接信息。如果计算机访问了超过两个网络接口,则如果需要还可以对这些附加接口中的任一个存储历史连接信息。
在某一点处,计算机可能希望建立新网络连接。为选择网络接口,计算机可以在动作A3基于在动作A1和A2所保存的历史连接信息来作出决定。这一历史连接信息可以用各种方式来使用。作为一个示例,决定可以基于诸如最佳数据率等一种类型的历史连接信息来作出。作为另一示例,决定可以基于不同历史连接参数的组合来作出。如果使用了多个参数,则可以根据每一参数对于连接质量的相对重要性来对它进行加权。可以选择可能提供如加权参数所测量的更好性能的接口。所使用的参数和所给出的权重可以用任何合适的方式来选择,因为本发明不限于任何特定的参数或加权。
在某些实施例中,可以使用单个连接参数的多个测量来进行接口选择。例如,可以对单个参数的多个测量执行统计函数或其它数学函数,以便可以确定一个或多个数学上生成的连接参数。作为一个特定示例,平均连接参数可以基于连接参数的随时间所进行的多个测量来确定,以便使用特定时间段上的最新近测量。例如,可以向较新近测量给出比较老测量更大的权重。然而,此处描述的技术不限于对多个测量进行加权的方法或被用来确定这样的数学上生成的参数的特定函数。
在某些实施例中,可以使用可用历史连接信息的子集来选择接口。例如,如果要建立到特定网络地址的新连接,则可以考虑所作出的到具有相似网络地址的计算机的先前连接的历史连接信息,因为发明人认识到,具有相似地址的计算机往往位于相似的物理位置。地址的相似性可以用任何合适的方式来确定,因为此处描述的技术不限于用于确定相似性的任何特定技术。可以做出的一个类推是参考电话号码,“家庭地址”位于同一区域的电话号码具有相同的区号。这对于因特网协议(IP)地址也同样成立,因为位于彼此附近的计算机拥有带相同前缀的地址。因此,IP地址前缀和物理邻近性之间存在统计相关性。在某些情况下,在连接到物理上彼此接近的设备时,连接参数可能相似。结果,向具有相似IP前缀的设备做出的连接可以具有相似的质量,并可以具有相似的连接性能特性。因此,在某些实施例中,在需要建立到特定IP地址的新连接时,可以基于到相似IP地址的连接的历史数据来选择接口。在某些实施例中,相似的IP地址可包括完全相同的IP地址,这表示到同一网络位置的连接。在因特网协议版本4(IPv4)中,相似的地址可包括例如具有相同的前三个字节或相同的前两个字节的IP地址。在IPv6中,相似的地址可包括具有相同的前八个字节、相同的前七个字节、相同的前六个字节、或相同的具有其它合适长度的前缀的IP地址。可以针对具有相似IP地址的计算机选择任何合适的前缀长度,因为此处描述的技术不限于所比较的IP地址前缀的特定大小。
响应于在动作A3选择接口,可以在动作A4建立连接,以便经由该连接的通信通过所选接口来发生。可以建立任何合适类型的连接,因为此处描述的技术不限于用于连接的特定协议。合适的连接的一个示例是传输控制协议(TCP)连接,然而,可以建立其它类型的连接。
对于图1所示的计算环境,计算机1和/或2可以是任何类型的计算机,如以下详细描述的计算机。例如,计算机1和/或2可以是台式计算机、膝上型计算机、蜂窝电话、个人数字助理、或任何其它合适类型的计算设备。接口3和4可以是使计算机1能够访问网络7的任何合适的接口。接口3和4可以是例如经由无线总线与计算机1的处理器进行通信的网络适配器。合适的接口的示例包括有线NIC,如以太网卡、电话调制解调器、DSL卡等。合适的接口的示例还包括无线NIC,如能够经由蓝牙、IEEE标准802.11、蜂窝数据协议进行通信的NIC和/或任何其它类型的NIC。网络7可以是任何合适的计算机网络,如因特网、内联网、或任何其它合适类型的网络,因为此处描述的技术在这一方面不作限制。
现将描述可在其上实现本发明的各实施例的计算系统。参考图3,可在其上实现本发明的各实施例的示例性系统包括诸如计算设备40等计算设备,其可以是适于用作例如一个或多个计算机1和2的设备。计算设备40可包括至少一个处理单元41和存储器42。取决于计算设备的确切配置和类型,存储器42可以是易失性的、非易失性的、或两者的某种组合。一个可能的配置在图3中由虚线43来示出。另外,设备40还可具有附加特征/功能。存储器42是可以存储诸如在执行时实现此处描述的技术中的任一种的计算机可读指令等信息的一种形式的计算机可读介质。
设备40可包括至少某种形式的计算机可读介质。计算机可读介质可以是可由设备40访问的任何可用介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。例如,设备40还可包含附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这些其它存储在图3中由可移动存储44和不可移动存储45示出。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器42、可移动存储44和不可移动存储45都是计算机存储介质的示例。
设备40还包括输出设备46、输入设备47、和/或一个或多个通信连接48。通信连接48可包括例如使设备40能够经由诸如并行总线或串行总线等任何合适的数据总线与网络接口进行通信的总线接口。
应当理解,本发明不限于在任何特定的系统或系统组上执行。例如,本发明的各实施例可以在一个设备上或在设备的组合上运行。同样,应当理解,本发明不限于任何系统或网络体系结构。
示例1
现在将描述此处描述的技术的应用程序的一个详细示例。然而,这仅是示例,并且本发明不限于该特定应用程序,因为此处描述的技术可用于多个其它应用程序中。
在某些实施例中,可以选择接口来在OSI网络通信模块的第四层达到最高带宽。因为可以测量在特定路由上达到的带宽,所以可以使用过去的性能来作出关于将来的接口选择的更明智的决定。以下描述基于来自过去的端对端带宽测量来作出路由选择的解决方案的示例。
1.每一链路外(off-link)路由可以维护两个带宽值:近(对应于来自到“邻近”主机的TCP连接的带宽测量)和远带宽(对应于来自到非“邻近”主机的TCP连接的带宽测量)。对于到同一子网上的目的地的路由,可能只有一个测量带宽值。
2.一开始,近和远带宽可被设为基于NIC报告的接口速度所导出的值。直到TCP连接报告了关于带宽的足够信息为止,否则使用基于接口速度的带宽值。在某些实施例中,可以通过存储到5个不同目的地的至少5个连接的连接信息来获得足够信息。
3.对于每一TCP连接,可以如下测量所获得的带宽并将其报告给IP层:
a.如果
i.a)发送者高效地填充管道(至少发送允许他发送的50%)或b)发送者拥塞受限。(丢失、延迟尖峰、重新排序等)。
ii.对于接收者带宽,如果自动调节启用或每一RTT得到接收窗口的75%(高效接收者),则可以提供样本。
iii.样本可以传递给IP层并在按路由的基础上跟踪,从而将测量分成子网或“桶”,如近桶和远桶:
平均带宽=平均带宽+(样本-平均带宽)/N,在每一情况下可以基于试验和经验来选择N(例如8)。
则TCP层可以取带宽样本并将其报告给IP层。
注意,该算法可能不区分传输方向,发送者和接收者样本被同等对待并且不相加。所以如果数据传输同时发生,则其估计将更加保守。
4.对于每一路由,所获得的带宽信息可被分类成近桶或远桶。为这样做,使用报告其带宽的目的地IP地址。这可以如下完成:
a.其IP地址与左移8位(对于IPv4)或16位(对于IPv6)的主机的子网掩码下的主机IP地址相匹配的所有目的地可被认为是近的。
b.对于不匹配准则(a)的目的地,RTT值或跳数计数可以如下使用。如果到目的地的RTT在阈值之下(例如10毫秒)或跳数计数小于阈值(例如6),则认为该目的地是近的。此外,对于将来的连接,与在左移8位(对于IPv4)或16位(对于IPv6)的主机的子网掩码下的近目的地相匹配的所有目的地可被认为是近的。为这样做,计算机可以维护近IP地址范围的列表。
c.不属于近的或不在子网上的任何IP地址被认为是远的。
5.对于要建立到它的新TCP连接的目的地,可首先将该目的地IP分类成近对远,并且随后可以基于来自匹配路由查找的各个路由的平均近或远带宽来比较这些路由。可以选择具有较高平均带宽的路由。
  近带宽   远带宽
  路由1   X1   X2
  路由2   Y1   Y2
对于每一目的地,如果路由1和路由2是匹配的路由,则可以比较X1和Y1,而对于远目的地可以比较X2和Y2。
6.特定路由的平均远带宽可以用该路由的平均近带宽作为上限。
7.为增加稳定性,可以通过将平均带宽分桶化成几个桶来引入滞后。只有在平均带宽超过桶阈值多于25%的情况下它才可被分类成不同的桶。
8.在一段时间之后(如2小时),如果没有报告某路由的新带宽样本,则该路由的平均带宽可以基于接口速度来如在1中一样重新设置。
在机器重新引导时可以清除在以上部分3中维护的状态。在休眠/唤醒或媒体断开连接/重新连接时,如果分配给该接口的任何IP地址是不同的,则可以清除状态(因为不同的IP地址指示到不同网络的连接并且因此可能造成不同的性能)。
以上算法可以跨接口来对基于接口速度而落入同一桶中的TCP连接进行负载平衡;例如,如果大量TCP连接开始通过一个接口,使得每一连接的平均吞吐量减至通过另一接口可达到的吞吐量以下,则以上算法可以自动地检测到这一点并开始通过另一接口来路由新TCP连接。
以下是可以提供给维护持久连接的应用程序的描述通知。
NetBT/RDR客户机:在某些操作系统中,NetBT/RDR客户机可以使用NetBT协议(通过端口138/139)以及使用SMB协议(使用端口445)来尝试连接。可以通过所有可用接口来尝试使用NetBT的连接,并且随后可以挑选首先连接的接口。这与TCP/IP栈无关。由于这一行为,NetBT实际上可能最终挑选较慢接口而没有利用TCP/IP中的改进来选择最佳接口。
为解决这一问题,在某些实施例中,计算机可以首先尝试通过端口445连接(这可最终使得使用TCP/IP路由偏好),这失败后其可以后退到138/139端口来通过所有接口尝试连接。为这样做,SMB可以通过将NetBT连接的发起延迟0.5秒来优化TCP/IP连接。
NetBT可以维护跨始自/去往同一主机的多个数据传输来共享的持久连接。即使在计算机(例如膝上型计算机)由于强烈的主机行为而停放之后,这也可以造成关于挑选哪一接口的粘性(stickiness),因为路由也是基于源地址的,这在一开始建立连接时就指定了。另外,操作系统可以实现称为快速重连的特征,这在媒体断开连接/连接(例如在休眠/唤醒期间)之后重新建立TCP连接而不将其拆除。这意味着可以将机器置于休眠模式并之前经由另一接口连接,而唤醒可以独立于路由度量来继续挑选先前接口。
为解决持久连接问题,在某些实施例中,在TCP层的解决方案可以涉及TCP迁移,这超出了该特征的范围。然而,在应用层的解决方案是可能的。SMB可以如下执行:
1.注册媒体连接/断开连接通知
2.在媒体连接通知时;向栈查询是否有更好的接口可用。
3.如果有更好的接口可用,则拆除可被拆除(即,不打开活动文件)和已经有一段时间不活动的所有连接
现在已经描述了本发明的某些说明性实施例,本领域的技术人员应当明白,以上仅是说明性而非限制性的,因此是仅作为示例来提出的。众多修改和其它实施例在本领域的普通技术人员的认知范围之内,并且被认为是落入本发明的范围之内。前述描述和附图仅用作示例。特别地,尽管此处所提出的许多示例涉及方法动作或系统元件的特定组合,但是应当理解,这些动作和元件可以用其它方式来组合以实现相同的目的。仅关于一个实施例所讨论的动作、元件和特征并不旨在被排除在其它实施例中的相似角色之外。
权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰一个权利要求要素本身并不意味着一个权利要求要素相对于另一个的任何优先级、优先顺序或次序,也不意味着执行一方法的动作的时间顺序,而是仅用作将具有某一名称的一个权利要求要素与具有相同名称的另一权利要求要素(但使用了序数词)区分开来的标签以便区分权利要求要素。此处对“包括”、“包含”、或“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其等效物以及其它项目。

Claims (19)

1.一种在包括被配置成通过第一网络接口(3)和第二网络接口(4)经由网络(7)来进行通信的第一计算机(1)的计算环境中的方法,所述网络(7)允许所述第一计算机(1)与多个其它计算机经由该网络(7)进行通信,所述方法包括以下动作:
(A)在所述第一计算机与所述多个其它计算机中的至少一个之间、通过所述第一网络接口的第一网络连接期间,测量表示所述第一网络连接的性能的第一历史网络连接信息;
(B)在终止所述第一网络连接之前,所述第一计算机(1)存储所述第一历史网络连接信息;
(C)在所述第一计算机与所述多个其它计算机中的至少一个之间、通过所述第二网络接口的第二网络连接期间,测量表示所述第二网络连接的性能的第二历史网络连接信息;
(D)在终止所述第二网络连接之前,所述第一计算机(1)存储所述第二历史网络连接信息;
(E)在终止所述第一网络连接之后,至少基于所述第一和第二历史网络连接信息,从所述第一和第二网络接口中选择所选网络接口来用于第三网络连接;以及
(F)基于所述动作(E),在所述第一计算机(1)和来自所述多个其它计算机中的第二计算机(2)之间建立所述第三网络连接,以使第三网络连接通信通过所选网络接口。
2.如权利要求1所述的方法,其特征在于,所述第一网络接口(3)和第二网络接口(4)根据不同的网络通信协议来操作。
3.如权利要求1所述的方法,其特征在于,所述第一网络接口(3)和第二网络接口(4)通过不同类型的通信介质来提供对所述网络的访问。
4.如权利要求3所述的方法,其特征在于,所述不同类型的通信介质包括无线介质和有线介质。
5.如权利要求1所述的方法,其特征在于,所述动作(E)是由所述第一计算机(1)执行的,并且所述第一计算机响应于所述动作(E)来发起所述动作(F)。
6.如权利要求1所述的方法,其特征在于,所述第一网络连接是所述第一计算机(1)与来自所述多个其它计算机中的第三计算机(2)之间的,其中所述第三计算机(2)的网络地址与所述第二计算机的网络地址相似,并且其中部分地基于所述第二和第三计算机的网络地址的相似性来将所选网络接口选择为所述第一网络接口。
7.如权利要求6所述的方法,其特征在于,所述第三计算机的地址和所述第二计算机的地址具有相同的前缀。
8.如权利要求6所述的方法,其特征在于,所述第三计算机具有与所述第二计算机的物理位置相接近的物理位置。
9.如权利要求1所述的方法,其特征在于,所述第一历史网络连接信息的至少一部分表示所述第一网络连接的跳数计数,并且其中至少部分地基于所述跳数计数来将所选网络接口选择为所述第一网络接口。
10.如权利要求1所述的方法,其特征在于,所述第一历史网络连接信息的至少一部分表示所述第一网络连接的往返时间,并且其中至少部分地基于所述往返时间来将所选网络接口选择为所述第一网络接口。
11.如权利要求1所述的方法,其特征在于,所述第一历史网络连接信息表示所述第一网络连接的数据率,并且其中至少部分地基于所述数据率来将所选网络接口选择为所述第一网络接口。
12.如权利要求1所述的方法,其特征在于,所述第一历史网络连接信息表示所述第一网络连接的分组丢失率,并且其中至少部分地基于所述分组丢失率来将所选网络接口选择为所述第一网络接口。
13.如权利要求1所述的方法,其特征在于,所选网络接口提供比所述第一和第二网络接口中的非所选网络接口将提供的更高的总体连接数据率。
14.一种在包括被配置成通过第一网络接口(3)和第二网络接口(4)经由网络(7)来进行通信的第一计算机(1)的计算环境中的方法,所述网络允许所述第一计算机(1)与多个其它计算机经由该网络(7)进行通信,所述方法包括以下动作:
(A)在多个网络连接中的至少一个被终止之前,所述第一计算机(1)存储表示该第一计算机与所述多个其它计算机中的至少一个之间、通过所述多个网络接口的所述多个网络连接的性能的历史网络连接信息,所述历史网络连接信息包括:对于从所述第一计算机的每一可用路由,至少一个近带宽值以及至少一个远带宽值,所述至少一个近带宽值表示所述第一计算机与所述多个其它计算机中的至少一个近计算机之间的至少一个网络连接的性能,所述至少一个远带宽值表示所述第一计算机与所述多个其它计算机中的至少一个远计算机之间的至少一个网络连接的性能;
(B)确定所述多个其它计算机中的第二计算机是否是近计算机;
(C)至少基于所述历史网络连接信息,从所述多个网络接口中选择所选网络接口来用于所述第一计算机(1)和所述第二计算机之间的网络连接,其中所述选择包括:
如果确定所述第二计算机是近计算机,则至少部分地基于所述历史网络连接信息的至少一个近带宽值来选择所选择的网络接口;以及
如果确定所述第二计算机不是近计算机,则至少部分地基于所述历史网络连接信息的至少一个远带宽值来选择所选择的网络接口;以及
(D)基于所述动作(C),在所述第一计算机(1)和所述第二计算机(2)之间建立所述网络连接,以使所述第一计算机和所述第二计算机之间的通信通过所选网络接口。
15.如权利要求14所述的方法,其特征在于,执行(A)以便在所述多个网络连接中的至少一个活动时存储所述历史网络连接信息。
16.一种系统,包括:
计算机(1);
允许所述计算机与多个其它计算机经由网络进行通信的第一网络接口(3);以及
允许所述计算机与多个其它计算机经由所述网络进行通信的第二网络接口(4);
其中,所述计算机包括:
至少一个存储设备(42),所述存储设备(42)在第一网络连接被终止之前,存储包括从所述计算机与所述多个其它计算机中的至少一个之间、通过所述第一网络接口(3)的所述第一网络连接所测量的往返时间和/或丢失率的第一历史网络连接信息,以及包括从该计算机与所述多个其它计算机中的至少一个之间、通过所述第二网络接口(4)的第二网络连接所测量的往返时间和/或丢失率的第二历史网络连接信息;
处理器(41),所述处理器(41)在所述第一网络连接被终止之后,基于所述第一和第二历史信息来确定要将所述第一和第二网络接口中的哪一个用于要与所述多个其它计算机中的至少一个建立的第三网络连接。
17.如权利要求16所述的系统,其特征在于,所述第一和第二网络接口是所述计算机的一部分。
18.如权利要求16所述的系统,其特征在于,所述计算机还包括:
耦合到所述处理器的至少一个有线总线(48);
其中所述第一网络接口是经由所述至少一个有线总线与所述处理器通信的网络适配器。
19.如权利要求16所述的系统,其特征在于,所述第一网络接口(3)是有线网络适配器且所述第二网络接口(4)是无线网络适配器。
CN2008800200706A 2007-06-15 2008-06-04 使用历史连接信息的网络接口选择 Active CN101682549B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/818,888 US8274893B2 (en) 2007-06-15 2007-06-15 Network interface selection using historical connection information
US11/818,888 2007-06-15
PCT/US2008/065737 WO2008157036A1 (en) 2007-06-15 2008-06-04 Network interface selection using historical connection information

Publications (2)

Publication Number Publication Date
CN101682549A CN101682549A (zh) 2010-03-24
CN101682549B true CN101682549B (zh) 2013-11-20

Family

ID=40132250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800200706A Active CN101682549B (zh) 2007-06-15 2008-06-04 使用历史连接信息的网络接口选择

Country Status (4)

Country Link
US (1) US8274893B2 (zh)
EP (1) EP2165465B1 (zh)
CN (1) CN101682549B (zh)
WO (1) WO2008157036A1 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8159962B2 (en) * 2007-07-27 2012-04-17 General Instrument Corporation Method and apparatus for optimizing home network interface selection in home networking applications
CN101675705B (zh) * 2007-12-25 2013-06-12 松下电器产业株式会社 通信装置、通信方法
US9319299B2 (en) * 2008-01-25 2016-04-19 Alcatel Lucent Method and apparatus for link aggregation using links having different link speeds
US8537677B2 (en) * 2009-10-13 2013-09-17 Hewlett-Packard Development Company, L.P. Incremental adaptive packet routing in a multi-dimensional network
US10218467B2 (en) 2009-12-23 2019-02-26 Pismo Labs Technology Limited Methods and systems for managing error correction mode
EP2456136A1 (fr) * 2010-11-17 2012-05-23 Thomson Licensing Dispositif et procédé de détermination de chemin(s) de communication entre un équipement ayant plusieurs interfaces de communication et un autre équipement ayant au moins une interface de communication
EP2456135A1 (fr) * 2010-11-17 2012-05-23 Thomson Licensing Procédé et dispositif de détermination de chemin(s) de communication entre des équipements de communication à interfaces de communication multiples
US8583824B2 (en) * 2010-12-16 2013-11-12 Microsoft Corporation Identifying an efficient destination server
US9059869B2 (en) * 2012-10-09 2015-06-16 Qualcomm Incorporated Interface selection in a hybrid communication device
CN112187926B (zh) * 2013-03-28 2023-11-14 柏思科技有限公司 通过至少一个端到端连接传输和接收数据包的方法和系统
US20140297818A1 (en) * 2013-03-29 2014-10-02 Microsoft Corporation Parallel and Dynamic Interface Selection
WO2015001395A1 (en) * 2013-07-05 2015-01-08 Pismo Labs Technology Limited Methods and systems for transmitting packets through network interfaces
WO2015001392A1 (en) * 2013-07-05 2015-01-08 Pismo Labs Technology Limited Methods and systems for sending and receiving information data
CN103825795A (zh) * 2013-12-05 2014-05-28 青岛海信电子设备股份有限公司 Ipip隧道自动识别创建的方法
US10291597B2 (en) 2014-08-14 2019-05-14 Cisco Technology, Inc. Sharing resources across multiple devices in online meetings
JP6368050B2 (ja) 2014-11-24 2018-08-01 フィリップス ライティング ホールディング ビー ヴィ ネットワークに接続された照明デバイスの制御
US10681145B1 (en) * 2014-12-22 2020-06-09 Chelsio Communications, Inc. Replication in a protocol offload network interface controller
US10542126B2 (en) 2014-12-22 2020-01-21 Cisco Technology, Inc. Offline virtual participation in an online conference meeting
US10833925B2 (en) * 2015-02-24 2020-11-10 Red Hat Israel, Ltd. Attachment of a logical network to a virtual machine
US9948786B2 (en) 2015-04-17 2018-04-17 Cisco Technology, Inc. Handling conferences using highly-distributed agents
US10291762B2 (en) 2015-12-04 2019-05-14 Cisco Technology, Inc. Docking station for mobile computing devices
CN107231318B (zh) * 2016-03-25 2022-07-08 阿尔格布鲁控股有限公司 基于实时网络性能的动态切换控制的方法、设备和装置
US10454877B2 (en) 2016-04-29 2019-10-22 Cisco Technology, Inc. Interoperability between data plane learning endpoints and control plane learning endpoints in overlay networks
US10091070B2 (en) 2016-06-01 2018-10-02 Cisco Technology, Inc. System and method of using a machine learning algorithm to meet SLA requirements
US10182387B2 (en) * 2016-06-01 2019-01-15 At&T Intellectual Property I, L.P. Method and apparatus for distributing content via diverse networks
US10574609B2 (en) 2016-06-29 2020-02-25 Cisco Technology, Inc. Chat room access control
KR102581310B1 (ko) 2016-10-25 2023-09-22 삼성전자 주식회사 무선 통신 시스템에서 접속 네트워크를 선택하는 방법 및 장치
US10592867B2 (en) 2016-11-11 2020-03-17 Cisco Technology, Inc. In-meeting graphical user interface display using calendar information and system
US10516707B2 (en) 2016-12-15 2019-12-24 Cisco Technology, Inc. Initiating a conferencing meeting using a conference room device
US10515117B2 (en) 2017-02-14 2019-12-24 Cisco Technology, Inc. Generating and reviewing motion metadata
US9942519B1 (en) 2017-02-21 2018-04-10 Cisco Technology, Inc. Technologies for following participants in a video conference
US10440073B2 (en) 2017-04-11 2019-10-08 Cisco Technology, Inc. User interface for proximity based teleconference transfer
US10375125B2 (en) 2017-04-27 2019-08-06 Cisco Technology, Inc. Automatically joining devices to a video conference
US10963813B2 (en) 2017-04-28 2021-03-30 Cisco Technology, Inc. Data sovereignty compliant machine learning
US10404481B2 (en) 2017-06-06 2019-09-03 Cisco Technology, Inc. Unauthorized participant detection in multiparty conferencing by comparing a reference hash value received from a key management server with a generated roster hash value
US10375474B2 (en) 2017-06-12 2019-08-06 Cisco Technology, Inc. Hybrid horn microphone
US10477148B2 (en) 2017-06-23 2019-11-12 Cisco Technology, Inc. Speaker anticipation
US10516709B2 (en) 2017-06-29 2019-12-24 Cisco Technology, Inc. Files automatically shared at conference initiation
US10608901B2 (en) 2017-07-12 2020-03-31 Cisco Technology, Inc. System and method for applying machine learning algorithms to compute health scores for workload scheduling
US10706391B2 (en) 2017-07-13 2020-07-07 Cisco Technology, Inc. Protecting scheduled meeting in physical room
US10091348B1 (en) 2017-07-25 2018-10-02 Cisco Technology, Inc. Predictive model for voice/video over IP calls
US10715638B2 (en) * 2017-10-30 2020-07-14 Nec Corporation Method and system for server assignment using predicted network metrics
US10771621B2 (en) 2017-10-31 2020-09-08 Cisco Technology, Inc. Acoustic echo cancellation based sub band domain active speaker detection for audio and video conferencing applications
US10867067B2 (en) 2018-06-07 2020-12-15 Cisco Technology, Inc. Hybrid cognitive system for AI/ML data privacy
US10446170B1 (en) 2018-06-19 2019-10-15 Cisco Technology, Inc. Noise mitigation using machine learning
JP2021190866A (ja) * 2020-05-29 2021-12-13 キヤノン株式会社 通信装置、無線接続方法、およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005085078A (ja) * 2003-09-10 2005-03-31 Fuji Xerox Co Ltd 省電力対応装置を含むネットワークシステム
CN1716963A (zh) * 2004-07-01 2006-01-04 阿尔卡特公司 用于选择网络接口的方法、具有多个网络接口的设备及应用

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2154276T3 (es) * 1993-12-27 2001-04-01 Ricos Kk Aparato de comunicaciones para descargar datos.
US6064671A (en) 1995-12-08 2000-05-16 Killian; Michael G. Multi-homed end system for increasing computers network bandwidth
JPH10257098A (ja) * 1997-03-07 1998-09-25 Sony Corp 通信経路制御装置及び通信経路制御方法、並びに通信経路制御ユニット
US6697333B1 (en) 1998-03-04 2004-02-24 Alcatel Canada Inc. Bandwidth load consideration in network route selection
US6256309B1 (en) 1998-04-28 2001-07-03 Cisco Technology, Inc. Quality of service sensitive routes precomputed in bandwidth brackets
US5943317A (en) 1998-10-15 1999-08-24 International Business Machines Corp. Sub-network route optimization over a shared access transport facility
US7039709B1 (en) 2000-05-31 2006-05-02 International Business Machines Corporation Dynamically selection of most efficient transmission medium and route from a client browser
US20030065816A1 (en) 2001-09-28 2003-04-03 Intel Corporation User-preferred network interface switching using route table manipulation
US20040111529A1 (en) 2002-12-10 2004-06-10 Intel Corporation (A Delaware Corporation) Dynamic host based load balancing of a multihomed network
JP2005124166A (ja) 2003-09-10 2005-05-12 Delta Networks Inc WLAN用QoSベース負荷バランスポリシー
US7613171B2 (en) * 2004-08-31 2009-11-03 Ephraim Zehavi Cellular network service over WLAN
US20060075124A1 (en) * 2004-10-01 2006-04-06 Michael Joseph Dougherty Automatic activation and deactivation of wireless network adapter
KR100716986B1 (ko) * 2004-11-11 2007-05-10 삼성전자주식회사 RR(Return Routability)과정을이용한 경로 선택 방법 및 장치
US20060142021A1 (en) 2004-12-29 2006-06-29 Lucent Technologies, Inc. Load balancing on shared wireless channels
US20070014241A1 (en) 2005-07-14 2007-01-18 Banerjee Dwip N Resolver caching of a shortest path to a multihomed server as determined by a router
US7835743B2 (en) 2005-08-03 2010-11-16 Toshiba America Research, Inc. Seamless network interface selection, handoff and management in multi-IP network interface mobile devices
US7606159B2 (en) 2005-08-30 2009-10-20 Cisco Technology, Inc. Method and apparatus for updating best path based on real-time congestion feedback
JP2007088949A (ja) * 2005-09-22 2007-04-05 Fujitsu Ltd 情報処理装置、通信負荷分散方法および通信負荷分散プログラム
US7626994B2 (en) * 2005-11-14 2009-12-01 Broadcom Corporation Multiple node applications cooperatively managing a plurality of packet switched network pathways
US20080081576A1 (en) * 2006-09-28 2008-04-03 Olsen Christopher N Multi-antenna configurations with one or more embedded antennae
US8000239B2 (en) * 2006-12-14 2011-08-16 Oracle America, Inc. Method and system for bandwidth allocation using router feedback
US8259613B2 (en) * 2006-12-29 2012-09-04 Lenovo (Singapore) Pte. Ltd. Autonomic network connections

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005085078A (ja) * 2003-09-10 2005-03-31 Fuji Xerox Co Ltd 省電力対応装置を含むネットワークシステム
CN1716963A (zh) * 2004-07-01 2006-01-04 阿尔卡特公司 用于选择网络接口的方法、具有多个网络接口的设备及应用

Also Published As

Publication number Publication date
EP2165465A4 (en) 2010-08-25
US8274893B2 (en) 2012-09-25
EP2165465B1 (en) 2019-01-23
EP2165465A1 (en) 2010-03-24
WO2008157036A1 (en) 2008-12-24
US20080310419A1 (en) 2008-12-18
CN101682549A (zh) 2010-03-24

Similar Documents

Publication Publication Date Title
CN101682549B (zh) 使用历史连接信息的网络接口选择
US8718061B2 (en) Data center network system and packet forwarding method thereof
CN100574272C (zh) 自动虚拟局域网标识符发现的方法和网络终端
CN101573927B (zh) 网络系统中的路径最大传输单元发现
US8903964B2 (en) Auto-configuration of network captured traffic device
US8391157B2 (en) Distributed flow analysis
US7734175B2 (en) Network configuring apparatus
EP3340549B1 (en) System and method for distributing routing-protocol information in clos fabrics
CN103348637B (zh) 用于混合通信网络中的帧递送路径选择的方法和装置
CN100579034C (zh) 上报设备信息的方法、获取设备信息的系统和设备
EP3847781A1 (en) Application of machine learning for building predictive models enabling smart fail over between different network media types
EP2192721A1 (en) A method of operating a network subnet manager
EP3110086B1 (en) System and method for detecting network neighbor reachability
US20110243032A1 (en) Method For Energy Efficient Configuration Of Ports Of A Logical Communication Channel
CN102118277A (zh) 丢包检测方法和装置及路由器
US7096281B2 (en) Efficient connectivity between multiple topology subnets via common connection network
US8526334B2 (en) Choosing connectable end points for network test
WO2009036680A1 (fr) Procédé, dispositif et système d'identification de configuration de matériel d'accès d'essai
EP1222724B1 (en) Method and apparatus for failure detection in a communications network
CN104579809B (zh) 一种堆叠分裂的检测方法和设备
CN101635685B (zh) 一种学习获得pmtu的方法及装置
Zhang et al. Inferring regional access network topologies: Methods and applications
CN103503373A (zh) 通信系统和方法
US7738362B2 (en) System and method for address notification in a network
US10999151B2 (en) Apparatus, system, and method for topology discovery across geographically redundant gateway devices

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150508

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150508

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.