IP Library Granted Patent US 8,386,586
Granted Patent B2
US 8,386,586 · App. 13/292,701 · Granted Feb 26, 2013

Distributed kernel operating system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,386,586
App. No.
13/292,701
Granted
Feb 26, 2013
Kind
B2
Abstract

An improved distributed operating system over a network of computer systems is described. Existing distributed operating systems have transmission performance limitations dictated by their inability to (1) reliably handle transient communication failures and rapid node reboots, (2) provide a transmission protocol that adapts to link reliability, and (3) allow transmissions to occur over an arbitrary combinations of communication links. The systems and methods described herein solve these problems by providing a reliable node-to-node session protocol that offers high performance message delivery and multi-interface management and support. This is done by transmitting all data between two nodes of the operating system over a single connection that may dynamically exploit multiple interfaces between the nodes.

Claims (50)

1. A method for managing transmission of data packets over multiple network links interconnecting a local node and a remote node, the method comprising:

establishing a connection between a local node and a remote node;

determining, with a media selection layer of a local network manager on the local node, a media selection preference indicating a policy for a transmission of one or more data packets to the remote node;

identifying, with the media selection layer, in accordance with the media selection preference, one or more network links for use in transmitting each of the one or more data packets; and

transmitting each of the one or more data packets to the remote node using the identified one or more network links.

2. The method of claim 1 , where a pathname of a device on the remote node comprises the media selection preference.

3. The method of claim 1 , wherein the media selection preference comprises a loadbalance policy that allows the media selection layer to determine which two or more network links to utilize for the transmission of the one or more data packets.

4. The method of claim 3 , wherein identifying, with the media selection layer, in accordance with the media selection preference, a network link for use in transmitting each of the one or more data packets comprises:

identifying a network link that provides the fastest transmission of the data packet.

5. The method of claim 1 , wherein the media selection preference comprises a preferred policy that allows a user to specify one or more particular network links to utilize for the transmission of the one or more data packets.

6. The method of claim 5 , wherein identifying, with the media selection layer, in accordance with the media selection preference, one or more network links for use in transmitting the one or more data packets comprises:

identifying one or more network links specified by a user-level process for transmission of the one or more data packets.

7. The method of claim 6 , further comprising:

determining whether each of the one or more network links specified by the user-level process is available for transmission of the one or more data packets;

determining to utilize each of the one or more network links specified by the user-level process for transmission of the one or more data packets when each of the one or more network links specified by the user-level process is available; and

determining to utilize a network link other than each of the one or more network links specified by the user-level process for transmission of the one or more data packets when all of the one or more network links specified by the user-level process are not available.

8. The method of claim 7 , wherein determining to utilize a network link other than the one or more network links specified by the user-level process for transmission of the one or more data packets when all of the one or more network links specified by the user-level process are not available comprises:

identifying a network link other than the one or more network links specified by the user-level process that provides for the fastest transmission of the one or more data packets.

9. The method of claim 7 , wherein determining to utilize a network link other than the one or more network links specified by the user-level process for transmission of the one or more data packets when all of the one or more network links specified by the user-level process are not available comprises:

identifying a network link whose performance characteristics are similar to the one or more network links specified by the user-level process for transmission of the one or more data packets.

10. The method of claim 1 , wherein the media selection preference comprises an exclusive policy that only allows only network links specified by the user-level process to be utilized for the transmission of the one or more data packets.

11. A non-transitory computer-readable storage medium comprising a set of instructions for managing a transmission of a data packets over multiple network links interconnecting a local node and a remote node, the set of instructions to direct a processor to perform acts of:

establishing a connection between a local node and a remote node;

determining, with a media selection layer of a local network manager on the local node, a media selection preference indicating a policy for a transmission of one or more data packets to the remote node;

identifying, with the media selection layer, in accordance with the media selection preference, one or more network links for use in transmitting each of the one or more data packets; and

transmitting each of the one or more data packets to a remote node using the one or more identified network links;

wherein the media selection preference comprises at least one of a loadbalance policy, a preferred policy, or a exclusive policy;

wherein the loadbalance policy allows the media selection layer to determine one or more network links to utilize for the transmission of the one or more data packets;

wherein the preferred policy allows a user to specify one or more particular network links to utilize for the transmission of the one or more data packets; and

wherein the exclusive policy allows only one or more network links specified by the user-level process to be utilized for the transmission of the one or more data packets.

12. The non-transitory computer-readable storage medium of claim 11 , wherein a pathname of a device on the remote node comprises the media selection preference.

13. A local network manager configured to manage a transmission of data packets over multiple network links interconnecting a local node and a remote node, the local network manager comprising:

a processor configured to operate as a media selection layer, the processor configured to:

establish a connection between a local node and a remote node;

determine a media selection preference indicating a policy for a transmission of one or more data packets;

identify, in accordance with the media selection preference, one or more network links for use in transmitting the one or more data packets; and

transmit each of the one or more data packets to the remote node using the identified one or more network links.

14. The local network manager of claim 13 , wherein the media selection preference comprises a loadbalance policy that allows the media selection layer to determine which two or more network links to utilize for the transmission of the one or more data packets.

15. The local network manager of claim 13 , wherein the media selection preference comprises a preferred policy that allows a user-level process to specify one or more particular network links to utilize for the transmission of the one or more data packets.

16. The local network manager of claim 15 , wherein to identify, in accordance with the media selection preference, one or more network links for use in transmitting the one or more data packets, the processor is configured to:

identify one or more network links specified by the user-level processor for transmission of the one or more data packets.

17. The local network manager of claim 16 , wherein the processor is further configured to:

determine whether each of the one or more network links specified by the user-level process is available for transmission of the one or more data packets;

determine to utilize each of the one or more network links specified by the user-level process for transmission of the one or more data packets when each of the one or more network links specified by the user-level process is available; and

determine to utilize a network link other than the one or more network links specified by the user-level process for transmission of the one or more data packets when all of the one or more network links specified by the user-level process is not available.

18. The local network manager of claim 17 , wherein determining to utilize a network link other than the one or more network links specified by the user-level process for transmission of the one or more data packets when all of the one or more network links specified by the user-level process are not available comprises:

identifying a network link other than the one or more network links specified by the user-level process that provides for the fastest transmission of the one or more data packets.

19. The local network manager of claim 17 , wherein determining to utilize a network link other than the one or more network links specified by the user-level process for transmission of the one or more data packets when all of the one or more network links specified by the user-level process are not available comprises:

identifying a network link whose performance characteristics are similar to the one or more network links specified by the user-level process for transmission of the one or more data packets.

20. The local network manager of claim 13 , wherein the media selection preference comprises an exclusive policy that only allows only network links specified by the user-level process to be utilized for the transmission of the one or more data packets.

Assignments (12)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
CHANGE OF ADDRESS Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0961 →
REGISTRATION Recorded Feb 23, 2012
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 027753/0124 →
CHANGE OF SEAT Recorded Feb 23, 2012
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 027753/0216 →
CHANGE OF NAME Recorded Feb 23, 2012
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 027753/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2012
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027753/0393 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2012
From: BOYD, ANDREW
To: QNX SOFTWARE SYSTEMS
Reel/Frame 027752/0958 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2012
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 027753/0272 →