IP Library Granted Patent US 10,432,522
Granted Patent B2
US 10,432,522 · App. 15/700,676 · Granted Oct 1, 2019

Network packet flow controller with extended session management

Inventors: Hadriel S. Kaplan (Nashua, NH); Prashant Kumar (Andover, MA); Patrick Timmons (Newton, MA); Patrick J. MeLampy (Dunstable, MA)
Assignee: 128 Technology, Inc.
H04L45/74H04L45/38H04L49/252H04L49/30H04L61/2007H04L61/2521H04L61/6063H04L61/6068H04L69/22
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 10,432,522
App. No.
15/700,676
Granted
Oct 1, 2019
Kind
B2
Abstract

An intermediate node obtains a lead packet of a plurality of packets in a session having a unique session identifier, modifies the lead packet to identify at least the intermediate node and also to identify source and destination port numbers assigned by the intermediate node for a possible forward association, and then forwards the lead packet toward the destination node though an intermediate node electronic output interface to the IP network. The intermediate node also may receive, through an intermediate node electronic input interface in communication with the IP network, a backward message from a next node having a next node identifier. Both the intermediate node and the next node form an association between the intermediate node identifier, the next node identifier, and the source and destination port numbers assigned by the intermediate node. This association is part of a forward association for the intermediate node and is part of a return associate for the next node.

Claims (66)

1. A packet routing method for directing packets of a session from an originating node toward a destination node in an IP network, the method comprising:

an initial waypoint node obtaining an original lead packet of a plurality of packets in a session, the initial waypoint node having an initial waypoint node identifier, the original lead packet including header fields including a 5-tuple of information including an original source address, an original source port number, an original destination address, an original destination port number, and an original protocol identifier;

determining if a stateful routing session exists for the session based on the 5-tuple of information in the lead packet and stateful routing session information stored in a database;

when a stateful routing session does not exist for the session, establishing the stateful routing session by:

(a) storing return association information for the stateful routing session in the database, the return association information based on the 5-tuple of information in the lead packet;

(b) determining a next node for the session, the next node having a next node identifier;

(c) assigning a source port number and a destination port number for the session; and

(d) storing forward association information for the stateful routing session in the database, the forward association information including the next node identifier and the assigned source and destination port numbers;

generating a modified lead packet including the initial waypoint node identifier as the source address, the next node address as the destination address, the assigned session source and destination port numbers, and the original protocol identifier, and including the original source address, the original source port number, the original destination address, and the original destination port number as metadata in the modified lead packet; and

forwarding the modified lead packet to the next node though an initial waypoint node electronic output interface to the IP network, the electronic output interface being in communication with the IP network.

2. The packet routing method as defined by claim 1 wherein determining the next node for the session comprises accessing a routing information base having routing information and next node information for the destination node based on the original destination address.

3. The packet routing method as defined by claim 1 further comprising:

the initial waypoint node obtaining a subsequent packet of the plurality of packets in the session;

generating a modified packet based on the forward association information; and

forwarding the modified packet toward the next node.

4. The packet routing method as defined by claim 3 , wherein the modified packet includes the initial waypoint node identifier as the source address, the next node address as the destination address, the assigned session source and destination port numbers, and the original protocol identifier, and further includes the original source address, the original source port number, the original destination address, and the original destination port number as metadata in the modified packet.

5. The packet routing method as defined by claim 1 further comprising:

the initial waypoint node obtaining a return packet associated with the session;

generating a modified return packet based on the return association information; and

forwarding the modified return packet toward the originating node.

6. The packet routing method as defined by claim 5 , wherein the modified return packet includes the original destination address as the source address, the original source address as the destination address, the original source and destination port numbers, and the original protocol identifier.

7. The packet routing method as defined by claim 1 wherein the initial waypoint node comprises a routing device or a switching device.

8. An initial waypoint routing device for directing packets of a session from an originating node toward a destination node in an IP network, the initial waypoint routing device having an initial waypoint node identifier, the routing device comprising:

a plurality of communication interfaces for sending and receiving IP packets over an IP network;

a memory for storing stateful routing session information;

a packet identifier operatively coupled with the plurality of communication interfaces, the packet identifier configured to identify an original lead packet of a plurality of packets in a session received through a first communication interface, the original lead packet including header fields including a 5-tuple of information including an original source address, an original source port number, an original destination address, an original destination port number, and an original protocol identifier;

a session manager configured to determine if a stateful routing session exists for the session based on the 5-tuple of information in the lead packet and stateful routing session information stored in the memory and when a stateful routing session does not exist for the session, establishing the stateful routing session by:

(a) storing return association information for the stateful routing session in the database, the return association information based on the 5-tuple of information in the lead packet;

(b) determining a next node for the session, the next node having a next node identifier;

(c) assigning a source port number and a destination port number for the session; and

(d) storing forward association information for the stateful routing session in the database, the forward association information including the next node identifier and the assigned source and destination port numbers;

a packet modifier configured to generate a modified lead packet including the initial waypoint node identifier as the source address, the next node address as the destination address, the assigned session source and destination port numbers, and the original protocol identifier, and including the original source address, the original source port number, the original destination address, and the original destination port number as metadata in the modified lead packet; and

a router operatively coupled with the packet modifier and with the electronic output interface, the router being configured to forward the modified lead packet toward the destination node through a second communication interface.

9. The initial waypoint routing device as defined by claim 8 further comprising a routing information base having routing information and next node information for the destination node based on the original destination address, wherein the packet modifier is further configured to determine the next node for the session by accessing the routing information base.

10. The initial waypoint routing device as defined by claim 8 wherein:

the packet identifier is further configured to obtain a subsequent packet of the plurality of packets in the session;

the packet modifier is further configured to generate a modified packet based on the forward association information; and

the router is further configured to forward the modified packet toward the destination node.

11. The initial waypoint routing device as defined by claim 10 , wherein the modified packet includes the initial waypoint node identifier as the source address, the next node address as the destination address, the assigned session source and destination port numbers, and the original protocol identifier, and further includes the original source address, the original source port number, the original destination address, and the original destination port number as metadata in the modified packet.

12. The initial waypoint routing device as defined by claim 8 wherein:

the packet identifier is further configured to obtain a return packet associated with the session;

the packet modifier is further configured to generate a modified return packet based on the return association information; and

the router is further configured to forward the modified return packet toward the originating node.

13. The initial waypoint routing device as defined by claim 12 , wherein the modified return packet includes the original destination address as the source address, the original source address as the destination address, the original source and destination port numbers, and the original protocol identifier.

14. A computer program product comprising a tangible, non-transitory computer readable medium encoded with instructions that when run on a computer system implement a method for directing packets of a session by an initial waypoint node from an originating node toward a destination node in an IP network, the method comprising:

the initial waypoint node obtaining an original lead packet of a plurality of packets in a session, the initial waypoint node having an initial waypoint node identifier, the original lead packet including header fields including a 5-tuple of information including an original source address, an original source port number, an original destination address, an original destination port number, and an original protocol identifier;

determining if a stateful routing session exists for the session based on the 5-tuple of information in the lead packet and stateful routing session information stored in a database;

when a stateful routing session does not exist for the session, establishing the stateful routing session by:

(a) storing return association information for the stateful routing session in the database, the return association information based on the 5-tuple of information in the lead packet;

(b) determining a next node for the session, the next node having a next node identifier;

(c) assigning a source port number and a destination port number for the session; and

(d) storing forward association information for the stateful routing session in the database, the forward association information including the next node identifier and the assigned source and destination port numbers;

generating a modified lead packet including the initial waypoint node identifier as the source address, the next node address as the destination address, the assigned session source and destination port numbers, and the original protocol identifier, and including the original source address, the original source port number, the original destination address, and the original destination port number as metadata in the modified lead packet; and

forwarding the modified lead packet to the next node though an initial waypoint node electronic output interface to the IP network, the electronic output interface being in communication with the IP network.

15. The computer program product as defined by claim 14 wherein determining the next node for the session comprises accessing a routing information base having routing information and next node information for the destination node based on the original destination address.

16. The computer program product as defined by claim 14 wherein the method further comprises:

the initial waypoint node obtaining a subsequent packet of the plurality of packets in the session;

generating a modified packet based on the forward association information; and

forwarding the modified packet.

17. The computer program product as defined by claim 16 , wherein the modified packet includes the initial waypoint node identifier as the source address, the next node address as the destination address, the assigned session source and destination port numbers, and the original protocol identifier, and further includes the original source address, the original source port number, the original destination address, and the original destination port number as metadata in the modified packet.

18. The computer program product as defined by claim 14 wherein the method further comprises:

the initial waypoint node obtaining a return packet associated with the session;

generating a modified return packet based on the return association information; and

forwarding the modified return packet.

19. The computer program product as defined by claim 18 , wherein the modified return packet includes the original destination address as the source address, the original source address as the destination address, the original source and destination port numbers, and the original protocol identifier.

20. The computer program product as defined by claim 14 wherein the initial waypoint node comprises a routing device or a switching device.

Assignments (2)
NUNC PRO TUNC ASSIGNMENT Recorded May 6, 2026
From: 128 TECHNOLOGY, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 075513/0087 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2017
From: KAPLAN, HADRIEL S.; KUMAR, PRASHANT; TIMMONS, PATRICK; MELAMPY, PATRICK J.
To: 128 TECHNOLOGY, INC.
Reel/Frame 044087/0436 →
Continuity (2)
Continuation 14833571 · Aug 24, 2015
Related Publication 20170373972A1 · Dec 28, 2017
Cited By (36)
US 12,200,596 US 12,206,566 US 12,218,839 US 12,231,320 US 12,231,327 US 12,232,013 US 12,282,409 US 12,284,626 US 12,289,198 US 12,289,220 US 12,289,243 US 12,289,622 US 12,289,655 US 12,301,403 US 12,302,133 US 12,323,826 US 12,348,411 US 12,362,987 US 12,362,990 US 12,363,035 US 12,375,367 US 12,382,368 US 12,484,012 US 12,542,785 US 12,580,842 US 12,610,257 US 12,652,241 US 12,652,546 US 12,659,255 US 12,675,380 US 12,683,904 US 12,711,010 US 12,719,764 US 12,732,442 US 12,739,600 US 12,745,294