Network interface routing using computational context
First Claim
1. A method for routing data to a physical communication network interface comprising:
- receiving a request to transmit data from an application executing a programmatic thread on a computing device having a plurality of physical communication network interfaces for transmitting the data over different communication networks, wherein the request is received at a network layer of the computing device that supports explicit socket bindings to specific physical communication network interfaces;
monitoring the request at one or more layered protocol drivers implemented by the networking layer for an explicit socket binding to a specific physical communication network interface;
upon determining that the request is without an explicit socket binding to a specific physical communication network interface, identifying a computational context that is associated with the data and relevant for subsequent network operations based on the executing programmatic thread;
registering the computational context with a routing interface of the network layer exposed by the one or more layered protocol drivers, the computational context registered by the programmatic thread using a thread identification parameter of the programmatic thread;
associating the computational context registered by the programmatic thread with a particular physical communication network interface in a mapping table of the routing interface;
receiving the data to transmit from the programmatic thread; and
routing the data to the particular physical communication network interface of the computing device for transmission over a communication network based upon the computational context registered by the programmatic thread with the routing interface.
2 Assignments
0 Petitions
Accused Products
Abstract
Knowledge of the computational context of a computer operating environment, for example, awareness of process threads, is used to route IP traffic in the presence of multiple active network connections. An additional protocol may be added to the network layer of an operating system in order to map certain computational contexts to particular network interfaces. Any process with identification parameters associated with a mapped computational context requesting data transfer via a communication network is bound to the network interface previously associated with the computational context rather than an alternate network interface that otherwise might be the default. Further, process threads created by a parent process thread may be caused to inherit the computational context of the parent thread in order to assign traffic to the same network interface. This routing framework may have particular application with respect to multihomed host devices, for example, mobile computing devices.
-
Citations
20 Claims
-
1. A method for routing data to a physical communication network interface comprising:
-
receiving a request to transmit data from an application executing a programmatic thread on a computing device having a plurality of physical communication network interfaces for transmitting the data over different communication networks, wherein the request is received at a network layer of the computing device that supports explicit socket bindings to specific physical communication network interfaces; monitoring the request at one or more layered protocol drivers implemented by the networking layer for an explicit socket binding to a specific physical communication network interface; upon determining that the request is without an explicit socket binding to a specific physical communication network interface, identifying a computational context that is associated with the data and relevant for subsequent network operations based on the executing programmatic thread; registering the computational context with a routing interface of the network layer exposed by the one or more layered protocol drivers, the computational context registered by the programmatic thread using a thread identification parameter of the programmatic thread; associating the computational context registered by the programmatic thread with a particular physical communication network interface in a mapping table of the routing interface; receiving the data to transmit from the programmatic thread; and routing the data to the particular physical communication network interface of the computing device for transmission over a communication network based upon the computational context registered by the programmatic thread with the routing interface. - View Dependent Claims (2, 3, 4, 5, 6, 20)
-
-
7. A method for routing data in a computing device having a plurality of physical communication network interfaces for transmitting the data over different communication networks, the method comprising:
-
registering computational contexts relevant for subsequent network operations with a routing interface of a network layer of the computing device, wherein; the network layer supports explicit socket bindings to specific physical communication network interfaces, the routing interface is exposed by one or more layered protocol drivers implemented by the network layer, and the computational contexts are identified based on programmatic threads executed by the computing device and registered by the programmatic threads using thread identification parameters; associating particular computational contexts registered by the programmatic threads with particular physical communication network interfaces in a mapping table of the routing interface; receiving a request to transmit data from a process thread executing on the computing device; monitoring the request at the one or more layered protocol drivers implemented by the networking layer for an explicit socket binding to a specific physical communication network interface; upon determining that the request is without an explicit socket binding to a specific physical communication network interface, identifying a computational context associated with the data based on the executing process thread; and making a routing decision for transmission of the data through one of the plurality of physical communication network interfaces of the computing device based upon the computational context associated with the data and the computational contexts registered by the one or more programmatic threads with the routing interface. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method of making network interface routing decisions in a computing device having multiple physical communication network interfaces for transmitting data over different communication networks, the method comprising:
-
receiving a request to transmit data from an application process executing on the computing device at a network layer of the computing device, the network layer supporting explicit socket bindings to specific physical communication network interfaces; monitoring the request at one or more layered protocol drivers implemented by the networking layer for an explicit socket binding to a specific physical communication network interface; upon determining that the request is without an explicit socket binding to a specific physical communication network interface, identifying a computational context that is associated with the data and relevant for subsequent network operations based on a parameter presented to the networking layer as part of the application process; mapping the parameter to a particular physical communication network interface in a routing interface exposed by one or more layered protocol drivers implemented by the networking layer to create a mapped relationship; registering the mapped relationship with the routing interface of the network layer by the application process using a thread identifier of the application process; storing the mapped relationship in a mapping table of the routing interface for associating the computational context with the particular physical communication network interface; associating the parameter with data sent from the application process for transmission; comparing the parameter associated with the data to the mapped relationship registered by the programmatic thread with the routing interface; and routing the data to the particular physical communication network interface to which the parameter is mapped. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
Specification