(19)
(11) EP 2 820 806 B1

(12) EUROPEAN PATENT SPECIFICATION

(45) Mention of the grant of the patent:
13.12.2017 Bulletin 2017/50

(21) Application number: 13708003.2

(22) Date of filing: 21.02.2013
(51) International Patent Classification (IPC): 
H04L 12/723(2013.01)
H04L 12/717(2013.01)
H04L 12/751(2013.01)
(86) International application number:
PCT/US2013/027059
(87) International publication number:
WO 2013/130330 (06.09.2013 Gazette 2013/36)

(54)

IDENTIFYING AN EGRESS POINT TO A NETWORK LOCATION

IDENTIFIZIERUNG EINES AUSGABEPUNKTES AN EINEM NETZWERKSTANDORT

IDENTIFICATION D'UN POINT DE SORTIE À UN EMPLACEMENT DE RÉSEAU


(84) Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(30) Priority: 28.02.2012 US 201213407066

(43) Date of publication of application:
07.01.2015 Bulletin 2015/02

(73) Proprietor: Google LLC
Mountain View, CA 94043 (US)

(72) Inventor:
  • PADGETT, Steven
    Sunnyvale, CA 94087 (US)

(74) Representative: Boult Wade Tennant 
Verulam Gardens 70 Gray's Inn Road
London WC1X 8BT
London WC1X 8BT (GB)


(56) References cited: : 
WO-A2-2006/102398
US-A1- 2011 128 969
US-A1- 2009 092 140
   
       
    Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


    Description

    TECHNICAL FIELD



    [0001] This disclosure relates to methods of identifying an egress point to a network location.

    BACKGROUND



    [0002] In general, autonomous systems (AS) having networks under a common administrator may share a common routing policy for communication therebetween, such as border gateway protocol (BGP). Within each autonomous system, the routing protocol typically entails an interior gateway protocol (IGP), such as a link state protocol.

    [0003] Link state protocol generally relies on a routing algorithm executed at each network node. Each node on the network advertises, throughout the network, links to neighboring nodes and provides a cost associated with each link, which can be based on any appropriate metric such as link bandwidth or delay and is typically expressed as an integer value. A link may have an asymmetric cost, that is, the cost in a first direction along a link may be different from the cost in a second, reverse direction. Based on the advertised information in the form of a link state packet (LSP) each node constructs a link state database (LSDB), which is a map of the entire network topology, and from that constructs generally a single route to each available node based on an appropriate algorithm such as, a shortest path first (SPF) algorithm. As a result, a spanning tree is constructed, rooted at the node and showing a communication path including intermediate nodes to each available destination node.

    [0004] The results of the spanning tree can be stored in a routing information base (RIB) and based on these results the forwarding information base (FIB) or forwarding table is updated to control forwarding of packets appropriately. When there is a network change a link state packet representing the change is flooded through the network by each node adjacent the change, each node receiving the link state packet sends it to each adjacent node. As a result, when a data packet for a destination node arrives at a node the node identifies a route to that destination and forwards the packet to the next node along that route. The next node repeats this step and so forth.

    [0005] US2009092140 discloses a method and apparatus for providing a hierarchical structure for routing over packet networks. The method first receives one or more packets from at least one customer endpoint device with a Customer Edge (CE) functionality, wherein said one or more packets are destined for a destination node. The method locates a route for routing said one or more packets by consulting an interface specific routing table. The method then forwards said one or more packets towards said destination node using said route.

    [0006] US2011128969 discloses a network which utilizes centralized control for the transport of a packet flow to a destination via an intermediary network. The network identifies the intermediary network best suited for offloading the packet flow and then develops a routing policy based on Multiprotocol Label Switching or other circuit-switching type techniques. This ensures that the packets of the packet flow are automatically forwarded to a peering router connected to the identified intermediary network, and ensures that the peering router automatically outputs the packets of the packet flow to the identified intermediary network in a manner that bypasses autonomous routing decisions by the routers of the network.

    SUMMARY



    [0007] In computer networks, such as the Internet, a network of links (i.e., communication paths) and nodes, such as routers directing packets of data along one or more connected links, send packets of data from a source to a destination according to one or more routing protocols. A unique internet protocol (IP) address typically identifies elements in the network. In a relatively large provider network, multiple egress points may advertise a route to a specific destination. A default routing policy out of the provider network to that destination may include selecting only one egress point (assuming no load-balancing) based on network policies for routing egress traffic. Since many networks fail to accept advertisements less than 256 IP addresses in a block, an egress point may be chosen that is less efficient than another egress point to the same destination. The present disclosure provides a network system that can route egress traffic to part of a prefix, including individual IP addresses of that prefix. This allows selection of an efficient egress point for binding of a particular client connection. The present invention is defined in the appended independent claims to which reference should be made. Advantageous features are set out in the appended dependent claims.

    DESCRIPTION OF DRAWINGS



    [0008] 

    FIG. 1 is a schematic view of an exemplary network system.

    FIG. 2 is a schematic view of an exemplary network system capable of directing data traffic to an internet protocol address and/or a subnetwork.

    FIG. 3 is a schematic view of an internet protocol address.

    FIG. 4 is a schematic view of an exemplary egress data source.

    FIG. 5 is a schematic view of an exemplary network system.

    FIG. 6 provides an exemplary arrangement of operations for a method of identifying an egress point to a network location.



    [0009] Like reference symbols in the various drawings indicate like elements.

    DETAILED DESCRIPTION



    [0010] Referring to FIG.1, in some implementations, a network system 10 may include an external network 100, such as the Internet or a portion thereof, in communication with a provider network 200. The network system 10 may include a network of communication paths 20 (also referred to as links or connections) and nodes 30 (e.g., routers directing packets of data along one or more connected links) that send packets 40 of data from a source 50a to a destination 50b according to one or more routing protocols. A unique internet protocol (IP) address typically identifies a link 20 or a node 30 in the network system 10. The provider network 200 may provide access to and/or direct traffic about the external network 100.

    [0011] One possible routing protocol for the network system 10 and/or the external network 100 is border gateway protocol (BGP). Border gateway protocol routes data between autonomous systems (AS) having networks under a common administrator and sharing a common routing policy. Routers adhering to border gateway protocol generally exchange full routing information during a connection session, for example, using transmission control protocol (TCP), allowing inter-autonomous system routing. The information exchanged may include various attributes including a next-hop attribute. For example, where a BGP router advertisers a connection to a network in a form of an IP address prefix, the next-hop attribute includes the IP address used to reach the BGP router. Within each autonomous system the routing protocol typically includes an interior gateway protocol (IGP) that may include a link state protocol such as open shortest path first (OSPF) or intermediate system-intermediate system (IS-IS).

    [0012] The provider network 200 includes a connection manager 210 that may route data packets 40 received from sources 50a to corresponding destinations 50b. The connection manager 210 may execute on at least one computing device 212, such as a server, in communication with the external network 100. Moreover, the connection manager 210 may reside on the provider network 200. When the connection manager 210 receives a client connection 22 from a source 50a (e.g., a client of the external network 100), the connection manager 210 may determine an egress point 202 of the provider network 200 for binding with the client connection 22 to send data packets 40 received from the source 50a to the corresponding destination 50b. In some implementations, rather than relying on the default network routing protocol to determine an egress point 202 for data packets 40 of the client connection 22, the connection manager 210 can choose a specific communication path 20 to the destination 50b. This allows the connection manager 210 to use a pre-selected communication path 20 that may differ from a communication path 20 chosen by the default network routing protocol. As a result, certain high value traffic can be directed along certain communication paths 20 using the egress points stored in the egress data source 220. Moreover, rather than relying on a link state database (LSDB) stored at an egress point router (for link state protocol scenarios) for all or any data traffic, the connection manager 210 can execute on a separate computing device, such as a server, having relatively greater computer processing and memory capabilities.

    [0013] The egress point 202 may include one or more egress routers 204. Routers 204 generally provide logical or physical borders between subnets 306 and manage traffic between the subnets 306. Each subnet 306 can be served by a designated default router, but may include multiple physical Ethernet segments interconnected by network switches or network bridges.

    [0014] FIG. 3 illustrates an exemplary IP address 300. IP networks can be divided into subnetwork in both IPv4 and IPv6. For this purpose, an IP address 300 generally has two parts: a network prefix 302 and a host identifier 304, or interface identifier (IPv6). For IPv4, a subnet mask may be used to divide the IP address 300 into a subnetwork 306 portion and the host identifier 304.

    [0015] A subnetwork 306, or subnet, is generally a subdivision of an IP network. Subnetting can be the process of designating some high-order bits from the host identifier 304 of the IP address 300 and grouping them with a network mask to form a subnet mask. This divides the IP network into smaller subnetworks 306. All computing devices belonging to a subnetwork 306 can be addressed with a common, identical, most-significant bit-group in their IP addresses 300.

    [0016] Referring again to FIG. 2, multiple egress points 202 can advertise a communication path 20 (e.g., a link) to a specific destination 50b. Moreover, in some instances, the connection manager 210 may accept advertisements only in blocks of IP addresses 300. A routing policy for routing egress traffic may cause the connection manager 210 to chose only one egress point 202 (assuming no load-balancing) for directing data packets 40 out of the provider network 200 to a prefix 302 of that destination 50b, even though multiple valid egress points 202 may exist. For example, one egress point 202 may have relatively low latency for sending data packets 40 to a first set of IP addresses 300, while another egress point 202 may have relatively low latency for sending data packets 40 to a second set of IP addresses 300.

    [0017] Referring to FIGS. 2-4, in some implementations, the provider network 200 routes egress traffic to part of a prefix 302, i.e., a subnetwork 306, including individual IP addresses 300 of that prefix 302. This allows selection of an efficient egress point 202 for binding of a particular client connection 22.

    [0018] In some implementations, the connection manager 210 communicates with an egress data source 220 to select an egress point 202 for binding with a received client connection 22, rather than relying solely on natural network routing. The egress data source 220 stores egress point identifiers 402 of corresponding egress points 202, which are associated with internet protocol (IP) addresses 300 and/or subnetworks 306. Each egress point 202 may be associated (via its egress point identifier) with one or more IP addresses 300 and/or subnetworks 306. The associations can be determined based on at least one performance factor 404, such as latency PCm-1, bandwidth PCm-2, cost PCm-3, and/or usage PCm-4. Moreover, the egress data source 220 may store at least one performance factor 404 for association with at least one egress point 202. The connection manager 210 may query the egress data source 220 by IP address 300, subnetwork 306 and/or performance factor 404. For example, the connection manager 210 may query the egress data source 220 for an egress point identifier 402 corresponding to an egress point 202 satisfying a performance criteria 404 that includes a threshold latency PCm-1, a threshold bandwidth PCm-2, a threshold cost PCm-3, and/or a threshold usage PCm-4.

    [0019] FIG. 4 illustrates an exemplary relationship model 400 providing a possible one-to-many relationship between egress points 202, each having an egress point identifier 402 (e.g., unique identifiers), and IP addresses 300, subnetworks 306, and/or performance factors 404. The egress data source 220 may be a relational database, allowing flexible management and storage of information associated with the egress points 202.

    [0020] Referring again to FIG. 2, the connection manager 210 communicates with a tunnel manager 230 for routing data packets 40 from the client connection 22 to the destination 50b. The tunnel manager 230 may instantiate network tunnels 232 of the provider network 200, for example, for each egress point 202 having a corresponding egress point identifier 402 stored by the egress data source 220. In some implementations, the tunnel manager 230 instantiates network tunnels 232 only for egress points 202 that would not be selected naturally by the default network routing protocol. Natural egress points 202a, those normally chosen by the network routing protocol, may not need network tunnels 232, since data packets 40 can move to those egress points 220a under the normal (default) routing protocol. On the other hand, pre-selected egress points 202b, such as those stored in the egress data source 220, need network tunnels 232 to direct data packets 40 to those locations against the normal routing protocol. As such, in some examples, the tunnel manager 230 may establish network tunnels 232 only for egress points 202, 202b specified by the egress data source 220.

    [0021] When the connection manager 210 receives a client connection 22 from the external network 100, the connection manger 210 may retrieve an egress point identifier 402 from the egress data source 220 based on the IP address 300 and/or the subnetwork 306 of the corresponding destination 50b of the client connection 22. The connection manager 210 binds the client connection 22 to an egress point 202 corresponding to the retrieved egress point identifier 402. The connection manager 210 encapsulates packets 40 of data received from the client connection 22 and sends the encapsulated data packets 40a through an instantiated network tunnel 232 for the bound egress point 202. The connection manager 210 may use multi-protocol label switching (MPLS), generic routing encapsulation (GRE), or a virtual local area network (VLAN), for example, to encapsulate the data packets 40 and send the encapsulated data packets 40a across the provider network 200 to the bound egress point 202. MPLS directs data from one network node 30 to the next based on short path labels rather than long network addresses, avoiding complex lookups in a routing table.

    [0022] When individual data packets 40 need binding to a specific egress point 202, the connection manager 210 may support delayed binding and migration of in-process flows between egress points 202. In some examples, the connection manager 210 executes an input/output control request on an existing socket to have a kernel start encapsulating data packets 40 sent through that socket to the bound egress point 202.

    [0023] In some implementations, a decapsulator 240 terminates the tunnelled traffic at the egress point 202. The decapsulator 240 decapsulates encapsulated data packets 40a sent by the connection manager 210 through a network tunnel 232 to the bound egress point 202. The decapsulated data packets 40 are forwarded in the provider network 200 following natural network routing to the egress point 202. Each decapsulator 240 may advertise a tunnel endpoint 234 (e.g., associated with an egress point 202). The tunnel manager 230 may configure the decapsulator 240 associated with each received tunnel endpoint advertisement 234 to terminate encapsulated data packets 40a received through a network tunnel 232. In some examples, the decapsulator 240 is part of a network node 30 (e.g., a router), while in other examples, the decapsulator 240 is a specialized component communicating with the tunnel manager 230 and/or the egress point 202. The provider network 200 may include multiple decapsulators 240, each of which may be associated with multiple network tunnels 232 aggregated by groups of servers in a given location. A single network tunnel 232 can be used by several servers to communicate with many clients on various external networks 100.

    [0024] In some examples, the provider network 200 does not need to send the encapsulated data packets 40a completely to the bound egress point 202. Instead, the encapsulated data packets 40a may simply reach a threshold distance near the egress point 202, where natural network routing directs the encapsulated data packets 40a to a particular egress point 202 or a particular router 204 at the egress point 202.

    [0025] The tunnel manager 230 may receive tunnel end point advertisements from decapsulators 240 associated with the egress points 202 and instantiates network tunnels 232 to each egress point 202. Moreover, the tunnel manager 230 may provide tunnel information to the connection manager 210, which may use the tunnel information for encapsulating the data packets 40. In some examples, the tunnel information includes a tunnel identifier, a tunnel type, and/or an egress point identifier for an associated network tunnel 232. When the connection manager 210 sends encapsulated data packets 40a through a network tunnel 232, the tunnel manager 230 or the connection manager 210 may monitor the network tunnel 232 to verify delivery of the encapsulated data packets 40a. An inner header of the encapsulated data packets 40a may have a destination IP address 300 for a monitoring object, such as an IP address 300 for the tunnel manager 230 or the connection manager 210, allowing the monitoring object to check on the movement of the encapsulated data packets 40a and verify delivery the encapsulated data packets 40a through the network tunnel 232 to the egress point 202.

    [0026] Referring to FIGS. 2 and 5, in some implementations, the tunnel manager 230 queries the egress data source 220 for IP subnets 306 and/or IP addresses 300 and their associated egress points 202. The tunnel manager 230 may solicit advertisements from the queried egress points 202 (e.g., of corresponding network tunnel end points 234) and then instantiate a network tunnel 232 to each egress point 202. The tunnel manager 230 may communicate tunnel information 236 to the connection manager 210, such as a network tunnel identifier 236a, a tunnel type 236b, corresponding egress point identifier 402, encapsulation and/or label information, etc.

    [0027] When the connection manager 210 receives a client connection 22 from a source 50a (e.g., a client) on an external network 100, the connection manager 210 queries the egress data source 220 for an egress point 202 corresponding to a destination 50b of the client connection 22. If the egress data source 220 does not have any egress points 202 associated with the destination 50b (e.g., returns an empty recordset for the query), the connection manager 210 may respond to the source 50a using natural network routing. In this case, the data packets 40 move through the provider network 200 using natural network routing to a natural egress point 202a, which may be less efficient than a pre-selected egress point 202b stored in the egress data source 220 and associated with that destination 50b.

    [0028] If the egress data source 220 returns an egress point identifier 402 to a pre-selected egress point 202b, the connection manger 210 may cross-reference the egress point identifier 402 with the tunnel information received from the tunnel manger 230 for identifying the appropriate encapsulation/label information. The connection manager 210 encapsulates the data packets 40 received from the source 50a and sends the encapsulated data packets 40a into the provider network 200 through an instantiated network tunnel 232 to the decapsulator 240 associated with the egress point 202. The decapsulator 240 decapsulates the encapsulated data packets 40a and forwards the data packets 40 into the provider network 200 at least near the pre-selected egress point 202b, where natural network routing can guide the data packets to the pre-selected egress point 202b.

    [0029] In some implementations, a first percentage of data flows to various destinations 50b are not encapsulated and are allowed to egress naturally, according to the default network routing protocol. These destinations 50b do not have associated egress points 202 stored in the egress data source 220. While a second percentage of data flows on the provider network 200 (such as high value flows) having destinations 50b accounted for in the egress data source 220 may be encapsulated for travel through a network tunnel 232 to a pre-selected egress point 202b. If a pre-selected egress point 202b ceases to exist, the data may flow using the default network routing protocol.

    [0030] FIG. 6 provides an exemplary arrangement 600 of operations for a method of identifying an egress point 202 to a network location. The method includes receiving 602 a client connection 22 from an external network 100 and retrieving 604 an egress point identifier 402 from the egress data source 220 for the received client connection 22. The egress data source 220 may store egress point identifiers 402 associated with at least one of an IP address 300 and a subnetwork 306. The method further includes binding 606 the client connection 22 to an egress point 202 corresponding to the retrieved egress point identifier 402. The method includes encapsulating 608 data packets 40 received from the client connection 22, sending the encapsulated data packets 40a through an instantiated network tunnel 232 to the bound egress point 202, and decapsulating the encapsulated data packets 40a at least near the bound egress point 202.

    [0031] In some implementations, the method includes instantiating network tunnels 232 of the provider network 200 (e.g., via the tunnel manager 230) for each egress point 202 having a corresponding egress point identifier 402 stored by the egress data source 220. In some examples, this includes receiving an advertised tunnel endpoint 234 from a decapsulator 240 associated with each egress point 202 and for each received tunnel endpoint advertisement 234, instantiating a network tunnel 232 to the associated egress point 202.

    [0032] The method may include querying the egress data source 220 for an egress point identifier 402 associated with a destination 50b of the received client connection 22. The destination 50b can be an internee protocol address 300 and/or a subnetwork 306. In additional implementations, the method includes querying the egress data source 220 for an egress point identifier 402 corresponding to an egress point 202 satisfying a performance criteria, which may include a threshold latency, a threshold bandwidth, a threshold cost, and/or a threshold usage. Moreover, the method may include encapsulating the data packets 40 with tunnel label information received from the tunnel manager 230, such as a network tunnel identifier, a tunnel type, and/or an egress point identifier 402.

    [0033] When the egress data source 220 fails to provide an egress point identifier 402 for the received client connection 22, the method may include sending the data packets 40 received from the client connection 22 according to a default network routing protocol. The default network routing protocol can route the data packets 40 to another egress point 202 for delivery to the destination 50b.

    [0034] Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

    [0035] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.

    [0036] Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Aspects of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.

    [0037] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

    [0038] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

    [0039] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few. Computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

    [0040] Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), e.g., the Internet.

    [0041] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

    [0042] While this specification contains many specifics, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular implementations of the invention. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.

    [0043] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multi-tasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

    [0044] A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the scope of the disclosure. Accordingly, other implementations are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results.


    Claims

    1. A method of identifying an egress point (202) to a network location, the method comprising:

    receiving, at a connection manager (210), a client connection (22) from an external network (100);

    retrieving, at the connection manager (210), an egress point identifier (402) from an egress data source (220) for the received client connection (22), the egress data source (220) storing egress point identifiers (402) associated with at least one of an internet protocol address (300) and a subnetwork (306);

    binding, at the connection manager (210), the client connection (22) to a pre-selected egress point (202) corresponding to the retrieved egress point identifier (402), the pre-selected egress point (202, 202b) different from another egress point (202, 202a) naturally selected by a default network routing protocol;

    encapsulating, at the connection manager (210), packets (40) of data received from the client connection (22);

    instantiating, at the connection manager (210), a network tunnel (232) to an intermediate egress point (30) located a threshold distance from the bound pre-selected egress point (202, 202b);

    sending, from the connection manager (210), the encapsulated data packets (40, 40a) through the instantiated network tunnel (232) to the intermediate egress point (30);

    decapsulating, at a decapsulator (240), the encapsulated data packets (40a) at least near the intermediate egress point (30); and

    after decapsulating the encapsulated data packets, routing the decapsulated data packets (40, 40a) from the intermediate egress point (30) to the bound pre-selected egress point (220) using the default network routing protocol.


     
    2. The method of claim 1, further comprising instantiating network tunnels (232) of a provider network (200) for each pre-selected egress point (202) having a corresponding egress point identifier (402) stored by the egress data source (220).
     
    3. The method of claim 1 or 2, further comprising:

    receiving an advertised tunnel endpoint (234) from a decapsulator (240) associated with each pre-selected egress point (202); and

    for each received tunnel endpoint advertisement (234), instantiating a network tunnel (232) to the associated pre-selected egress point (202).


     
    4. The method of any preceding claim, further comprising:

    receiving an advertised tunnel endpoint (234) from a decapsulator (240) associated with each pre-selected egress point (202); and

    for each received tunnel endpoint advertisement (234), configuring the associated decapsulator (240) to terminate encapsulated data packets (40a) received through a network tunnel (232).


     
    5. The method of any preceding claim, further comprising querying the egress data source (220) for an egress point identifier (402) associated with a destination (50b) of the received client connection (22), the destination (50b) comprising at least one of an internet protocol address (300) and a subnetwork (306).
     
    6. The method of any preceding claim, further comprising querying the egress data source (220) for an egress point identifier (402) corresponding to a pre-selected egress point (202) satisfying a performance criteria (404), the performance criteria (404) comprising at least one of a threshold latency (PCm-1), a threshold bandwidth (PCm-2), a threshold cost (PCm-3), and a threshold usage (PCm-4).
     
    7. The method of any preceding claim, further comprising encapsulating the data packets (40) with received tunnel label information (236), the tunnel label information (236) comprising at least one of a network tunnel identifier (236a), a tunnel type (236b), and an egress point identifier (402).
     
    8. The method of any preceding claim, further comprising sending the data packets (40) received from the client connection (22) according to a default network routing protocol when the egress data source (220) fails to provide an egress point identifier (402) for the received client connection (22).
     
    9. A network system comprising:

    an egress data source (220) storing egress point identifiers (402) associated with at least one of an internet protocol address (300) and a subnetwork (306);

    a tunnel manager (230) instantiating network tunnels (232) of a provider network for each pre-selected egress point (202) having a corresponding egress point identifier (402) stored by the egress data source (220);

    a connection manager (210) in communication with the egress data source (220) and the tunnel manager, the connection manager (210) configured to:

    receive a client connection (22) from an external network (100);

    retrieve an egress point identifier (402) from the egress data source (220) for the received client connection (22);

    bind the client connection (22) to a pre-selected egress point (202) corresponding to the retrieved egress point identifier (402), the pre-selected egress point different from another egress point naturally selected by a default network routing protocol;

    encapsulate packets (40) of data received from the client connection (22);

    instantiate a network tunnel (232) to an intermediate egress point (30) located a threshold distance from the bound pre-selected egress point (202, 202b); and

    send the encapsulated data packets (40, 40a) through the instantiated network tunnel (232) to the intermediate egress point (202); and

    a decapsulator (240) decapsulating the encapsulated data packets (40, 40a) at least near the intermediate egress point (30);

    wherein after decapsulating the encapsulated data packets (40a) at the decapsulator (240), the connection manager (210) is configured to route the decapsulated data packets (40) from the decapsulator (240) to the bound pre-selected egress point (202, 202b) using the default network routing protocol.


     
    10. The network system of claim 9, wherein the tunnel manager is configured to:

    receive a tunnel end point advertisement (234) from a decapsulator (240) associated with each pre-selected egress point (202); and

    for each received tunnel endpoint advertisement (234), instantiate a network tunnel (232) to the associated pre-selected egress point (202).


     
    11. The network system of claim 9 or 10, wherein the tunnel manager is configured to:

    receive a tunnel end point advertisement (234) from a decapsulator (240) associated with each pre-selected egress point (202); and

    for each received tunnel endpoint advertisement (234), configure the associated decapsulator (240) to terminate encapsulated data packets (40, 40a) received through a network tunnel (232).


     
    12. The network system of any of claims 9-11, wherein the tunnel manager (230) is configured to provide tunnel label information to the connection manager (210), the connection manager (210) encapsulating the data packets (40) with the tunnel label information (236), the tunnel label information (236) comprising at least one of a network tunnel identifier (236a), a tunnel type (236b), and a pre-selected egress point identifier (402).
     
    13. The network system of any of claims 9-12, wherein the egress data source (220) stores at least one performance factor (404) for association with at least one pre-selected egress point (202), the performance factor (404) comprising at least one of latency (PCm-1), bandwidth (PCm-2), cost (PCm-3), and usage (PCm-4).
     
    14. The network system of any of claims 9-13, wherein the connection manager (210) sends the data packets (40) received from the client connection (22) according to a default network routing protocol when the egress data source (220) fails to provide an egress point identifier (402) for the received client connection (22).
     
    15. The network system of any of claims 9-14, wherein the pre-selected egress point (202) comprises an egress router (204).
     


    Ansprüche

    1. Verfahren zum Identifizieren eines Ausgabepunkts (202) bei einem Netzwerkstandort, wobei das Verfahren umfasst:

    Empfangen, bei einem Verbindungsmanager (210), einer Clientverbindung (22) von einem externen Netzwerk (100);

    Ermitteln, bei dem Verbindungsmanager (210), eines Ausgabepunktidentifikators (402) von einer Ausgabedatenquelle (220) für die empfangene Clientverbindung (22), wobei die Ausgabedatenquelle (220) Ausgabepunktidentifikatoren (402) speichert, die einer Internetprotokolladresse (300) und/oder einem Unternetzwerk (306) zugeordnet sind;

    Binden, bei dem Verbindungsmanager (210), der Clientverbindung (22) an einen vorausgewählten Ausgabepunkt (202) entsprechend dem ermittelten Ausgabepunktidentifikator (402), wobei der vorausgewählte Ausgabepunkt (202, 202b) von einem anderen Ausgabepunkt (202, 202a) verschieden ist, der auf natürliche Weise durch ein Default-Netzwerkroutingprotokoll ausgewählt ist;

    Einkapseln, bei dem Verbindungsmanager (210), von Datenpaketen (40), die von der Clientverbindung (22) empfangen sind;

    Instanziieren, bei dem Verbindungsmanager (210), eines Netzwerktunnels (232) zu einem Zwischenausgabepunkt (30), der in einem Schwellenabstand von dem gebundenen vorausgewählten Ausgabepunkt (202, 202b) lokalisiert ist;

    Senden, von dem Verbindungsmanager (210), der eingekapselten Datenpakete (40, 40a) durch den instanziierten Netzwerktunnel (232) zu dem Zwischenausgabepunkt (30);

    Entkapseln, bei einem Entkapsler (240), der eingekapselten Datenpakete (40a) wenigstens nahe dem Zwischenausgabepunkt (30); und

    nach dem Entkapseln der eingekapselten Datenpakete, Routen der entkapselten Datenpakete (40, 40a) von dem Zwischenausgabepunkt (30) zu dem gebundenen vorausgewählten Ausgabepunkt (220) unter Verwendung des Default-Netzwerkroutingprotokolls.


     
    2. Verfahren nach Anspruch 1, ferner umfassend Instanziieren von Netzwerktunnels (232) eines Providernetzwerks (200) für jeden vorausgewählten Ausgabepunkt (202) mit einem entsprechenden, durch die Ausgabedatenquelle (220) gespeicherten, Ausgabepunktidentifikator (402).
     
    3. Verfahren nach Anspruch 1 oder 2, ferner umfassend:

    Empfangen eines bekanntgemachten Tunnelendpunkts (234) von einem Entkapsler (240), der jedem vorausgewählten Ausgabepunkt (202) zugeordnet ist; und

    für jede empfangene Tunnelendpunktbekanntmachung (234) Instanziieren eines Netzwerktunnels (232) zu dem zugeordneten vorausgewählten Ausgabepunkt (202).


     
    4. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend:

    Empfangen eines bekanntgemachten Tunnelendpunkts (234) von einem Entkapsler (240), der jedem vorausgewählten Ausgabepunkt (202) zugeordnet ist; und

    für jede empfangene Tunnelendpunktbekanntmachung (234), Konfigurieren des zugeordneten Entkapslers (240) zum Beenden von eingekapselten Datenpaketen (40a), die durch einen Netzwerktunnel (232) empfangen werden.


     
    5. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend Befragen der Ausgabedatenquelle (220) nach einem Ausgabepunktidentifikator (402), der einem Ziel (50b) der empfangenen Clientverbindung (22) zugeordnet ist, wobei das Ziel (50b) eine Internetprotokolladresse (300) und/oder ein Unternetzwerk (306) umfasst.
     
    6. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend ein Befragen der Ausgabedatenquelle (220) nach einem Ausgabepunktidentifikator (402) entsprechend einem vorausgewählten Ausgabepunkt (202), der ein Leistungskriterium (404) erfüllt, wobei das Leistungskriterium (404) eine Schwellenlatenz (PCm-1), eine Schwellenbandbreite (PCm-2), Schwellenkosten (PCm-3) und/oder eine Schwellenverwendung (PCm-4) umfasst.
     
    7. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend ein Einkapseln der Datenpakete (40) mit empfangenen Tunnellabelinformationen (236), wobei die Tunnellabelinformationen (236) einen Netzwerktunnelidentifikator (236a), einen Tunneltyp (236b) und/oder einen Ausgabepunktidentifikator (402) umfassen.
     
    8. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend Senden der Datenpakete (40), die von der Clientverbindung (22) empfangen werden, gemäß einem Default-Netzwerkroutingprotokoll, wenn die Ausgabedatenquelle (220) dabei scheitert, einen Ausgabepunktidentifikator (402) für die empfangene Clientverbindung (22) bereitzustellen.
     
    9. Netzwerksystem, umfassend:

    eine Ausgabedatenquelle (220), die Ausgabepunktidentifikatoren (402) speichert, die einer Internetprotokolladresse (300) und/oder einem Unternetzwerk (306) zugeordnet sind;

    einen Tunnelmanager (230), der Netzwerktunnel (232) eines Providernetzwerks für jeden vorausgewählten Ausgabepunkt (202) mit einem entsprechenden Ausgabepunktidentifikator (402) instanziiert, der durch die Ausgabedatenquelle (220) gespeichert ist;

    einen Verbindungsmanager (210) in Kommunikation mit der Ausgabedatenquelle (220) und dem Tunnelmanager, wobei der Verbindungsmanager (210) für Folgendes ausgelegt ist:

    Empfangen einer Clientverbindung (22) von einem externen Netzwerk (100);

    Ermitteln eines Ausgabepunktidentifikators (402) von der Ausgabedatenquelle (220) für die empfangene Clientverbindung (22);

    Binden der Clientverbindung (22) an einen vorausgewählten Ausgabepunkt (202) entsprechend dem ermittelten Ausgabepunktidentifikator (402), wobei der vorausgewählte Ausgabepunkt verschieden ist von einem anderen Ausgabepunkt, der auf natürliche Weise durch ein Default-Netzwerkroutingprotokoll ausgewählt ist;

    Einkapseln von Datenpaketen (40), die von der Clientverbindung (22) empfangen sind;

    Instanziieren eines Netzwerktunnels (232) zu einem Zwischenausgabepunkt (30), der in einem Schwellenabstand von dem gebundenen vorausgewählten Ausgabepunkt (202, 202b) lokalisiert ist; und

    Senden der eingekapselten Datenpakete (40, 40a) durch den instanziierten Netzwerktunnel (232) zu dem Zwischenausgabepunkt (202); und

    einen Entkapsler (240), der die eingekapselten Datenpakete (40, 40a) wenigstens nahe dem Zwischenausgabepunkt (30) entkapselt;

    wobei nach dem Entkapseln der eingekapselten Datenpakete (40a) bei dem Entkapsler (240), der Verbindungsmanager (210) dazu ausgelegt ist, die entkapselten Datenpakete (40) von dem Entkapsler (240) zu dem gebundenen vorausgewählten Ausgabepunkt (202, 202b) unter Verwendung des Default-Netzwerkroutingprotokolls zu routen.


     
    10. Netzwerksystem nach Anspruch 9, wobei der Tunnelmanager für Folgendes ausgelegt ist:

    Empfangen einer Tunnelendpunktbekanntmachung (234) von einem Entkapsler (240), der jedem vorausgewählten Ausgabepunkt (202) zugeordnet ist; und

    für jede empfangene Tunnelendpunktbekanntmachung (234), Instanziieren eines Netzwerktunnels (232) zu dem zugeordneten vorausgewählten Ausgabepunkt (202).


     
    11. Netzwerksystem nach Anspruch 9 oder 10, wobei der Tunnelmanager für Folgendes ausgelegt ist:

    Empfangen einer Tunnelendpunktbekanntmachung (234) von einem Entkapsler (240), der jedem vorausgewählten Ausgabepunkt (202) zugeordnet ist; und

    für jede empfangene Tunnelendpunktbekanntmachung (234), Konfigurieren des zugeordneten Entkapslers (240) zum Beenden eingekapselter Datenpakete (40, 40a), die durch einen Netzwerktunnel (232) empfangen sind.


     
    12. Netzwerksystem nach einem der Anspruche 9 bis 11, wobei der Tunnelmanager (230) dazu ausgelegt ist, Tunnellabelinformationen an den Verbindungsmanager (210) bereitzustellen, wobei der Verbindungsmanager (210) die Datenpakete (40) mit den Tunnellabelinformationen (236) einkapselt, wobei die Tunnellabelinformationen (236) einen Netzwerktunnelidentifikator (236a), einen Tunneltyp (236b) und/oder einen vorausgewählten Ausgabepunktidentifikator (402) umfassen.
     
    13. Netzwerksystem nach einem der Ansprüche 9 bis 12, wobei die Ausgabedatenquelle (220) wenigstens einen Leistungsfaktor (404) zur Zuordnung mit wenigstens einem vorausgewählten Ausgabepunkt (202) speichert, wobei der Leistungsfaktor (404) eine Latenz (PCm-1), eine Bandbreite (PCm-2), Kosten (PCm-3) und/oder eine Verwendung (PCm-4) umfasst.
     
    14. Netzwerksystem nach einem der Ansprüche 9 bis 13, wobei der Verbindungsmanager (210) die von der Clientverbindung (22) empfangenen Datenpakte (40) gemäß einem Default-Netzwerkroutingprotokoll sendet, wenn die Ausgabedatenquelle (220) dabei scheitert, einen Ausgabepunktidentifikator (402) für die empfangene Clientverbindung (22) bereitzustellen.
     
    15. Netzwerksystem nach einem der Ansprüche 9 bis 14, wobei der vorausgewählte Ausgabepunkt (202) einen Ausgaberouter (204) umfasst.
     


    Revendications

    1. Procédé d'identification d'un point de sortie (202) à un emplacement de réseau, le procédé comprenant :

    la réception, au niveau d'un gestionnaire de connexion (210), d'une connexion client (22) depuis un réseau externe (100) ;

    le retrait, au niveau du gestionnaire de connexion (210), d'un identifiant de point de sortie (402) depuis une source de données de sortie (220) pour la connexion client reçue (22), la source de données de sortie (220) stockant des identifiants de point de sortie (402) associés à au moins un parmi une adresse de protocole internet (300) et un sous-réseau (306) ;

    l'association, au niveau du gestionnaire de connexion (210), de la connexion client (22) à un point de sortie présélectionné (202) correspondant à l'identifiant de point de sortie récupéré (402), le point de sortie présélectionné (202, 202b) différent d'un autre point de sortie (202, 202a) choisi naturellement par un protocole de routage réseau par défaut ;

    l'encapsulation, au niveau du gestionnaire de connexion (210), de paquets (40) de données reçues de la connexion client (22) ;

    l'instanciation, au niveau du gestionnaire de connexion (210), d'un tunnel de réseau (232) à un point de sortie intermédiaire (30) situé à une distance seuil du point de sortie présélectionné associé (202, 202b) ;

    l'envoi, depuis le gestionnaire de connexion (210), des paquets de données encapsulés (40, 40a) via le tunnel de réseau instancié (232) au point de sortie intermédiaire (30) ;

    la décapsulation, au niveau d'un dispositif de décapsulation (240), des paquets de données encapsulés (40a) au moins proche du point de sortie intermédiaire (30) ; et

    après la décapsulation des paquets de données encapsulés, le routage des paquets de données décapsulés (40, 40a) depuis le point de sortie intermédiaire (30) au point de sortie présélectionné associé (220) en utilisant le protocole de routage réseau par défaut.


     
    2. Procédé selon la revendication 1, comprenant en outre l'instanciation de tunnels de réseau (232) d'un réseau de fournisseurs (200) pour chaque point de sortie présélectionné (202) ayant un identifiant correspondant de point de sortie (402) stocké par la source de données de sortie (220).
     
    3. Procédé selon la revendication 1 ou 2, comprenant en outre :

    la réception d'une extrémité annoncée du tunnel (234) depuis un dispositif de décapsulation (240) associé à chaque point de sortie présélectionné (202) ; et

    pour chaque annonce reçue de l'extrémité du tunnel (234), l'instanciation d'un tunnel de réseau (232) au point de sortie présélectionné associé (202).


     
    4. Procédé selon l'une quelconque revendication précédente, comprenant en outre :

    la réception d'une extrémité annoncée du tunnel (234) depuis un dispositif de décapsulation (240) associé à chaque point de sortie présélectionné (202) ; et

    pour chaque annonce reçue de l'extrémité du tunnel (234), la configuration du dispositif associé de décapsulation (240) pour cesser que des paquets de données encapsulés (40a) soient reçus à travers un tunnel de réseau (232).


     
    5. Procédé selon l'une quelconque revendication précédente, comprenant en outre la requête de la source de données de sortie (220) pour un identifiant de point de sortie (402) associé à une destination (50b) de la connexion client reçue (22), la destination (50b) comprenant au moins un parmi une adresse de protocole internet (300) et un sous-réseau (306).
     
    6. Procédé selon l'une quelconque revendication précédente, comprenant en outre la requête de la source de données de sortie (220) pour un identifiant de point de sortie (402) correspondant à un point de sortie présélectionné (202) satisfaisant un critère de performance (404), le critère de performance (404) comprenant au moins un parmi une latence seuil (PCm-1), une bande passante seuil (PCm-2), un coût seuil (PCm-3), et une utilisation seuil (PCm-4).
     
    7. Procédé selon l'une quelconque revendication précédente, comprenant en outre l'encapsulation des paquets de données (40) avec les informations d'étiquetage des tunnels reçues (236), les informations d'étiquetage des tunnels (236) comprenant au moins un parmi un identifiant de tunnels de réseau (236a), un type de tunnel (236b), et un identifiant de point de sortie (402).
     
    8. Procédé selon l'une quelconque revendication précédente, comprenant en outre l'envoi des paquets de données (40) reçus depuis la connexion client (22) selon un protocole de routage réseau par défaut lorsque la source de données de sortie (220) ne réussit pas à fournir un identifiant de point de sortie (402) pour la connexion client reçue (22).
     
    9. Système réseau comprenant :

    une source de données de sortie (220) stockant des identifiants de point de sortie (402) associé à au moins un parmi une adresse de protocole internet (300) et un sous-réseau (306) ;

    un gestionnaire de tunnel (230) pour l'instanciation de tunnels de réseau (232) d'un réseau de fournisseurs pour chaque point de sortie présélectionné (202) ayant un identifiant de point de sortie correspondant (402) stocké par la source de données de sortie (220) ;

    un gestionnaire de connexion (210) en communication avec la source de données de sortie (220) et le gestionnaire de tunnel, le gestionnaire de connexion (210) configuré pour :

    la réception d'une connexion client (22) depuis un réseau externe (100) ;

    la récupération d'un identifiant de point de sortie (402) depuis la source de données de sortie (220) pour la connexion client reçue (22) ;

    l'association de la connexion client (22) à un point de sortie présélectionné (202) correspondant à l'identifiant de point de sortie récupéré (402), le point de sortie présélectionné différent d'un autre point de sortie choisi naturellement par un protocole de routage réseau par défaut ;

    l'encapsulation de paquets (40) de données reçues de la connexion client (22);

    l'instanciation d'un tunnel de réseau (232) à un point de sortie intermédiaire (30) situé à une distance seuil du point de sortie présélectionné associé (202, 202b) ; et

    l'envoi des paquets de données encapsulés (40, 40a) via le tunnel de réseau instancié (232) au point de sortie intermédiaire (202) ; et

    un dispositif de décapsulation (240) pour la décapsulation des paquets de données encapsulés (40, 40a) au moins proches du point de sortie intermédiaire (30) ;

    dans lequel après la décapsulation des paquets de données encapsulés (40a) au niveau du dispositif de décapsulation (240), le gestionnaire de connexion (210) est configuré pour le routage des paquets de données décapsulés (40) du dispositif de décapsulation (240) au point de sortie présélectionné associé (202, 202b) en utilisant le protocole de routage réseau par défaut.


     
    10. Système réseau selon la revendication 9, dans lequel le gestionnaire de tunnel est configuré pour :

    la réception d'une annonce de l'extrémité d'un tunnel (234) depuis un dispositif de décapsulation (240) associé à chaque point de sortie présélectionné (202) ; et

    pour chaque annonce reçue de l'extrémité du tunnel (234), l'instanciation d'un tunnel de réseau (232) au point de sortie présélectionné associé (202).


     
    11. Système réseau selon la revendication 9 ou 10, dans lequel le gestionnaire de tunnel est configuré pour :

    la réception d'une annonce de l'extrémité d'un tunnel (234) depuis un dispositif de décapsulation (240) associé à chaque point de sortie présélectionné (202) ; et

    pour chaque annonce reçue de l'extrémité du tunnel (234), la configuration du dispositif associé de décapsulation (240) pour cesser que les paquets de données encapsulés (40, 40a) soient reçus à travers un tunnel de réseau (232).


     
    12. Système réseau selon l'une quelconque des revendications 9-11, dans lequel le gestionnaire de tunnel (230) est configuré pour fournir des informations d'étiquetage des tunnels au gestionnaire de connexion (210), le gestionnaire de connexion (210) réalisant l'encapsulation des paquets de données (40) avec les informations d'étiquetage des tunnels (236), les informations d'étiquetage des tunnels (236) comprenant au moins un parmi un identifiant de tunnels de réseau (236a), un type de tunnel (236b), et un identifiant de point de sortie présélectionné (402).
     
    13. Système réseau selon l'une quelconque des revendications 9-12, dans lequel la source de données de sortie (220) stocke au moins un facteur de performance (404) pour l'association avec au moins un point de sortie présélectionné (202), le facteur de performance (404) comprenant au moins un parmi un de latence (PCm-1), de bande passante (PCm-2), de coût (PCm-3), et d'utilisation (PCm-4).
     
    14. Système réseau selon l'une quelconque des revendications 9-13, dans lequel le gestionnaire de connexion (210) envoie les paquets de données (40) reçu depuis la connexion client (22) selon un protocole de routage réseau par défaut lorsque la source de données de sortie (220) ne réussit pas à fournir un identifiant de point de sortie (402) pour la connexion client reçue (22).
     
    15. Système réseau selon l'une quelconque des revendications 9-14, dans lequel le point de sortie présélectionné (202) comprend un routeur de sortie (204).
     




    Drawing




















    Cited references

    REFERENCES CITED IN THE DESCRIPTION



    This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

    Patent documents cited in the description