Distributed kernel operating system
First Claim
1. A method for establishing a connection between nodes of a distributed operating system comprising:
- generating a transmission request by a local node for a remote node;
transmitting an initial packet by the local node to the remote node, the initial packet including a local node descriptor indicative of the remote node and a local connection identifier;
receiving the initial packet by the remote node;
generating, by the remote node, a receive connection structure associated with the local node descriptor;
transmitting, in response to the receiving of the initial packet, a confirmation packet to the local node to establish the transmission connection, the confirmation packet including the local node descriptor, the local connection identifier, a remote node descriptor indicative of the local node, and a remote connection identifier; and
receiving, by the local node, the confirmation packet.
14 Assignments
0 Petitions
Accused Products
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.
-
Citations
34 Claims
-
1. A method for establishing a connection between nodes of a distributed operating system comprising:
-
generating a transmission request by a local node for a remote node;
transmitting an initial packet by the local node to the remote node, the initial packet including a local node descriptor indicative of the remote node and a local connection identifier;
receiving the initial packet by the remote node;
generating, by the remote node, a receive connection structure associated with the local node descriptor;
transmitting, in response to the receiving of the initial packet, a confirmation packet to the local node to establish the transmission connection, the confirmation packet including the local node descriptor, the local connection identifier, a remote node descriptor indicative of the local node, and a remote connection identifier; and
receiving, by the local node, the confirmation packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A distributed operating system embodied on a computer readable medium comprising:
-
a local node including a local thread running on a local processor, the local node operable to pass messages and receive messages;
a remote node in communication with the local node via a plurality of networks, the remote node including a remote thread running on a remote processor, the remote node operable to pass messages and receive messages;
where the local node is further operable to;
establish, in response to receiving a transmission request from the local thread, a node-to-node connection with the remote node, the node-to-node-connection associated with a local connection identifier and a remote connection identifier, the local connection identifier associated with the local node and the remote connection identifier associated with the remote node;
manage message passing from the local node to the remote node over the plurality of network interfaces, and receive messages from the remote node and forward the messages to the local thread, where the remote node is further operable to;
establish the node-to-node connection with the local node, and receive messages from the local node and forward the messages to the remote thread. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A distributed operating system embodied on a computer readable medium comprising:
-
a local node including a local thread running on a local processor, the local node operable to pass messages from the local node and receive messages at the local node;
a remote node in communication with the local node via a plurality of network interfaces, the remote node including a remote thread running on a remote processor, the remote node operable to pass messages from the remote node and receive messages at the remote node;
where the local node is further operable to;
establish a node-to-node connection with the remote node in response to receiving a transmission request from the local thread,;
manage message passing from the local node to the remote node over the plurality of network interfaces, and receive messages from the remote node and forward the messages to the local thread, where the remote node is further operable to;
establish the node-to-node connection with the local node, and receive messages from the local node and forward the messages to the remote thread;
where the node-to-node connection is established by;
generating, by a local node, a transmission request for a remote node and transmitting, by the local node, an initial packet to the remote node, the initial packet including a local node descriptor indicative of the remote node and a local connection identifier;
receiving, by a remote node, the initial packet;
generating, by the remote node, a receive connection structure associated with the local node descriptor;
transmitting, by the remote node and in response to the receiving of the initial packet, a confirmation packet to the local node to establish the transmission connection, the confirmation packet including the local node descriptor, the local connection identifier, a remote node descriptor indicative of the local node, and a remote connection identifier; and
receiving, by the local node, the confirmation packet. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A method of managing communications between nodes of a distributed message-passing operating system, the method comprising:
-
generating, at a local node, a transmit request to transmit data to a remote node, the local node and the remote node capable of communicating via both a first interface and a second interface;
establishing a connection between the local node and a remote node, the connection associated with a local connection identifier and a remote connection identifier, the local connection identifier associated with the local node and the remote connection identifier associated with the remote node;
transmitting data over the connection;
transmitting, by the local node and after transmitting the data, a poll packet to the remote node via both the first interface and the second interface, the poll packet including the local connection identifier and the remote connection identifier; and
determining if the first and second interfaces are operational based on responses to the poll packets are received. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
-
Specification