Selecting an interface for packet routing based on application-layer data

US9444736B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9444736-B2
Application numberUS-201414290690-A
CountryUS
Kind codeB2
Filing dateMay 29, 2014
Priority dateMay 29, 2014
Publication dateSep 13, 2016
Grant dateSep 13, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The disclosed embodiments relate to a system for selecting an interface for routing an outbound packet. During operation, the system receives an outbound packet to be routed to a destination address. Next, the system obtains application-layer data associated with the outbound packet, including one or more of a process identifier, an application identifier and a user identifier. The system then selects an interface through which to route the outbound packet based on the application-layer data, and uses the selected interface to route the outbound packet.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for selecting an interface for packet routing, comprising: enabling a plurality of configuration agents to contribute a policy rule to a set of policy rules; receiving an outbound packet to be routed to a destination address; selecting the interface through which to transmit the outbound packet based at least in part on a policy rule from the set of policy rules; and transmitting the outbound packet via the selected interface. 2. The computer-implemented method of claim 1 , further comprising: obtaining application-layer data associated with the outbound packet from a network socket for the outbound packet, wherein the application-layer data comprises a process identifier, an application identifier, and a user identifier; and selecting the interface based at least in part on the application-layer data. 3. The computer-implemented method of claim 1 , wherein the selecting the interface comprises: making a series of routing decisions at different layers of a network stack; and tracking previous routing decisions, wherein the previous routing decisions are used to guide later routing decisions. 4. The computer-implemented method of claim 1 , further comprising: determining that multiple policy rules from the set of policy rules apply to the outbound packet; and selecting one of the multiple policy rules to apply to the outbound packet based at least in part on precedence relationships in the set of policy rules. 5. The computer-implemented method of claim 1 , wherein a type of the selected interface comprises: a WiFi interface; an Ethernet interface; a cellular data interface; a cellular service interface; or a virtual interface. 6. The computer-implemented method of claim 2 , wherein the application-layer data further comprises: a traffic class; a protocol; a domain name: an account name; or a privilege. 7. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by a processor cause the processor to perform operations for selecting an interface for packet routing, the operations comprising: receiving an outbound packet to be routed to a destination address; selecting the interface through which to transmit the outbound packet based at least in part on a policy rule from a set of policy rules, wherein the selecting comprises: determining that multiple policy rules from the set of policy rules apply to the outbound packet; and applying the policy rule of the set of policy rules to the outbound packet based at least in part on precedence relationships in the set of policy rules; and using the selected interface to transmit the outbound packet. 8. The non-transitory computer-readable storage medium of claim 7 , further comprising: obtaining application-layer data associated with the outbound packet from a network socket for the outbound packet, wherein the application-layer data comprises a process identifier, an application identifier, and a user identifier; and selecting the interface based at least impart on the application-layer data. 9. The non-transitory computer-readable storage medium of claim 7 , wherein the selecting the interface operation comprises: making a series of routing decisions at different layers of a network stack; and tracking previous routing decisions, wherein the previous routing decisions are used to guide later routing decisions. 10. The non-transitory computer-readable storage medium of claim 7 , wherein the operations further comprise: enabling a plurality of configuration agents to contribute policy rules to the set of policy rules. 11. An electronic device, comprising: one or more processors configured to: enable a plurality of configuration agents to contribute a policy rule to a set of policy rules; receive an outbound packet to be routed to a destination address; obtain application-layer data associated with the outbound packet, wherein the application-layer data comprises one or more of a process identifier, an application identifier, and a user identifier; make a routing decision for the outbound packet based at least in part on the policy rule or the application-layer data; and use the routing decision to communicate the outbound packet to the destination address. 12. The electronic device of claim 11 , wherein to make the routing decision for the outbound packet the one or more processors are configured to select an interface through which to transmit the outbound packet. 13. The electronic device of claim 11 , wherein the one or more processors are configured to obtain the application-layer data from a network socket for the outbound packet. 14. The electronic device of claim 11 , wherein to make the routing decision, the one or more processors are configured to: track a previous routing decision; and select an interface at different layers of a network stack based at least in part on the previous routing decision. 15. The computer-implemented method of claim 3 , wherein the making the series of routing decisions is based at least in part on a first policy rule of a first layer and a second policy rule of a second layer, wherein the first and second policy rules are in the set of policy rules, and wherein the first and second layers are different layers of the network stack. 16. The computer-implemented method of claim 3 , wherein the tracking the previous routing decisions comprises transmitting metadata specifying the previous routing decisions with the outbound packet. 17. The non-transitory computer-readable storage medium of claim 9 , wherein the making the series of routing decisions is based at least in part on a first policy rule of a first layer and a second policy rule of a second layer, wherein the first and second policy rules are in the set of policy rules, and wherein the first and second layers are different layers of the network stack. 18. The non-transitory computer-readable storage medium of claim 9 , wherein the tracking the previous routing decisions comprises transmitting metadata specifying the previous routing decisions with the outbound packet. 19. The electronic device of claim 14 , wherein the set of policy rules comprise a first policy rule of a first layer and a second policy rule of a second layer, and wherein the first and second layers are different layers of the network stack. 20. The electronic device of claim 14 , wherein to track the previous routing decision, the one or more processors are configured to transmit metadata specifying the previous routing decision with the outbound packet.

Assignees

Inventors

Classifications

  • Selecting a network or a communication service · CPC title

  • Route determination based on the nature of the carried application · CPC title

  • Application aware · CPC title

  • H04L45/74Primary

    Address processing for routing · CPC title

  • Selection among different networks · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9444736B2 cover?
The disclosed embodiments relate to a system for selecting an interface for routing an outbound packet. During operation, the system receives an outbound packet to be routed to a destination address. Next, the system obtains application-layer data associated with the outbound packet, including one or more of a process identifier, an application identifier and a user identifier. The system then …
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification H04L45/74. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Sep 13 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).