IP Library Granted Patent US 9,246,808
Granted Patent B2
US 9,246,808 · App. 14/194,217 · Granted Jan 26, 2016

Protocol circuit layer

Inventors: Riley Eller (Seattle, WA); Frank Laub (Seattle, WA); Jeremy Bruestle (Seattle, WA); Mark L. Tucker (Seattle, WA)
Assignee: CoCo Communications Corp.
H04L45/74H04L12/66
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 9,246,808
App. No.
14/194,217
Granted
Jan 26, 2016
Kind
B2
Abstract

A protocol circuit layer is described. The protocol circuit layer may employ a routing layer to determine optimal routes when establishing a circuit. The circuit layer may employ a link layer to send data packets over links to other network nodes. A naming layer may employ circuits to establish a distributed database of associations between network node addresses and their network locations.

Claims (47)

1. A method that enables network communications over circuits defined by a plurality of nodes, wherein adjacent ones of the plurality of nodes are communicatively coupled together via at least one leg, and wherein each of the circuits are defined by a source node and a destination node that are interconnected via the plurality of nodes, and the method comprising:

receiving a first circuit establishment (CEST) packet at a node from a first adjacent node,

wherein the first CEST packet is received via a first link that communicatively couples the node and the first adjacent node, and

wherein the first CEST packet includes a first local leg identifier (ID) that identifies the first link;

generating, at the node, a circuit ID associated with a circuit that is being established between the source node and the destination node;

storing, at the node, at least the first local leg ID in a leg table,

wherein the first local leg ID is associated with the circuit ID, and

wherein the first link is identified as an incoming leg into the node from the first adjacent node that is identified by the first local leg ID;

identifying, at the node, a second adjacent node that is communicatively coupled to the node via a second link,

generating, at the node, a second local leg ID that is associated with the second link;

storing, at the node, at least the second local leg ID in the leg table,

wherein the second local leg ID is associated with the circuit ID, and

wherein the second link is an outgoing leg from the node to the second adjacent node that is identified by the second local leg ID; and

communicating a second CEST packet from the node to the second adjacent node via the second link, wherein the second CEST packet includes the second local leg ID.

2. The method of claim 1 , wherein the first CEST packet received at the node includes a 4-tuple that has an identifier of the source node, an identifier of the destination node, an identifier of a source service from the source node, and an identifier of a destination service to the destination node, and further comprising:

storing, at the node, the 4-tuple,

wherein the 4-tuple is associated with the circuit ID.

3. The method of claim 2 , wherein the second CEST packet communicated from the node to the second adjacent node includes the 4-tuple.

4. The method of claim 2 , wherein the source service is a first type of communication service, and the destination service is a second type of communication service that is different from the first type of communication service.

5. The method of claim 1 , wherein storing at least the first local leg ID in the leg table comprises:

storing the first local leg ID in a first triple;

storing a first link ID in the first triple; and

storing a direction that defines an incoming travel direction of packets from the first adjacent node to the node in the first triple.

6. The method of claim 1 , further comprising:

in response to a failure of the first link, accessing information from the leg table stored at the first adjacent node, wherein the information includes a first triple;

identifying an alternative link based on the accessed leg information for a second leg, wherein the alternative link is between the node and a third adjacent node;

communicating a third circuit establishment (CEST) packet from the node to the third adjacent node over the identified alternative link,

wherein the third CEST packet includes a 4-tuple and the circuit ID, and

wherein the 4-tuple includes an identifier of the source node, an identifier of the destination node, an identifier of a source service from the source node, and an identifier of a destination service to the destination node;

where in response to the third adjacent node receiving the third CEST packet from the node, the third adjacent node and the alternative link become part of the circuit between the source node and the destination node.

7. The method of claim 6 , wherein storing at least the second local leg ID in the leg table comprises:

storing the second local leg ID in a second triple;

storing a second link ID in the second triple; and

storing a direction that defines an outgoing travel direction of packets from the node to the second adjacent node in the second triple.

8. The method of claim 1 , wherein after communicating the second CEST packet from the node to the second adjacent node, the method further comprises:

receiving, at the node, a first circuit data (CDAT) packet from the first adjacent node via the incoming leg,

wherein the received first CDAT packet includes at least the first local leg ID of the incoming leg and a payload having data therein, and

wherein the node determines the circuit ID based on the first local leg ID in the received first CDAT packet;

determining, at the node, that the payload of the received first CDAT packet is to be communicated over the outgoing leg to the second adjacent node based on the circuit ID; and

communicating a second CDAT packet from the node to the second adjacent node via the outgoing leg,

wherein the second CDAT packet includes at least the second local leg ID of the outgoing leg and the payload having the data therein.

9. The method of claim 1 , wherein after communicating the second CEST packet from the node to the second adjacent node, the method further comprises:

receiving, at the node, a first circuit close (CCLS) packet from the first adjacent node via the incoming leg, wherein the received first CCLS packet includes at least the first local leg ID of the incoming leg;

determining, at the node, the circuit ID based on the first local leg ID in the received first CCLS packet;

determining, at the node, that a second CCLS packet is to be communicated over the outgoing leg to the second adjacent node based on the circuit ID;

communicating the second CCLS packet from the node to the second adjacent node via the outgoing leg, wherein the second CCLS packet includes at least the second local leg ID of the outgoing leg; and

removing, at the node, at least a first triple from the leg table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2018
From: ELLER, RILEY; LAUB, FRANK; BRUESTLE, JEREMY; TUCKER, MARK L
To: COCO COMMUNICATIONS CORP
Reel/Frame 045137/0853 →
Continuity (4)
Continuation 13532614 · Jun 25, 2012
Continuation 12278144
Provisional Application 60763977 · Feb 1, 2006
Related Publication 20140314085A1 · Oct 23, 2014