IP Library Granted Patent US 7,068,595
Granted Patent B2
US 7,068,595 · App. 09/834,771 · Granted Jun 27, 2006

Method and apparatus for facilitating instant failover during packet routing

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 7,068,595
App. No.
09/834,771
Granted
Jun 27, 2006
Kind
B2
Abstract

One embodiment of the present invention provides a system that facilitates instant failover during packet routing by employing a flooding protocol to send packets between a source and a destination. Upon receiving a packet containing data at an intermediate node located between the source and the destination, the system determines whether the packet has been seen before at the intermediate node. If not, the system forwards the packet to neighboring nodes of the intermediate node. In one embodiment of the present invention, forwarding the packet to neighboring needs involves forwarding the packet to all neighboring nodes except the node from which the packet was received. In one embodiment of the present invention, determining whether the packet has been seen before involves examining a sequence number, S R , contained within the packet to determine whether the sequence number has been seen before.

Claims (71)

1. A method for facilitating instant failover during data packet routing by employing a flooding protocol to send data packets between a source and a destination, the method comprising:

receiving a data packet at an intermediate node located between the source and the destination, wherein the data packet is enroute from the source to the destination;

wherein the data packet is received from a first neighboring node;

determining whether the data packet has been seen before at the intermediate node, wherein determining whether the data packet has been seen before involves examining a sequence number, S R , contained within the data packet to determine whether the sequence number has been seen before, and

wherein determining whether the data packet has been seen before involves examining a record, R, indicating the N possible sequence numbers preceding a highest received sequence number, S H , that have been seen before; and

if the data packet has not been seen before, forwarding the data packet to neighboring nodes of the intermediate node.

2. The method of claim 1 , wherein forwarding the data packet to neighboring nodes involves forwarding the data packet to all neighboring nodes except the first neighboring node from which the data packet was received.

3. The method of claim 1 , wherein the sequence number includes one of:

a sequence number inserted into a payload of the data packet;

a sequence number located within an Internet Protocol (IP) header of the data packet; and

a sequence number located within a layer 4 header of the data packet.

4. The method of claim 1 , wherein examining the sequence number involves looking up a highest received sequence number, S H , stored at the intermediate node based upon the source of the data packet.

5. The method of claim 1 , wherein examining the sequence number involves looking up a highest received sequence number, S H , stored at the intermediate node based upon the source and the destination of the data packet.

6. The method of claim 1 , wherein determining whether the data packet has been seen before involves:

looking up a highest received sequence number, S H ;

if S R >S H ,

overwriting S H with S R ,

updating a record, R, indicating which of N possible sequence numbers preceding S H have been seen before, and

forwarding the data packet to the neighboring nodes;

if S H -N>S R , discarding the data packet; and

if S H ≧S R ≧S H -N, then

if R indicates that S R has been seen before, discarding the data packet, and

if R indicates the data packet has not been seen before,

updating R to indicate that S R has been seen, and

forwarding the data packet to the neighboring nodes.

7. The method of claim 6 , wherein the record, R, is a bit vector of size N.

8. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for facilitating instant failover during data packet routing by employing a flooding protocol to send data packets between a source and a destination, the method comprising:

receiving a data packet at an intermediate node located between the source and the destination, wherein the data packet is enroute from the source to the destination;

wherein the data packet is received from a first neighboring node;

determining whether the data packet has been seen before at the intermediate node, wherein determining whether the data packet has been seen before involves examining a sequence number. S R , contained within the data packet to determine whether the sequence number has been seen before, and wherein determining whether the data packet has been seen before involves examining a record, R. indicating the N possible sequence numbers preceding a highest received sequence number. S H , that have been seen before; and

if the data packet has not been seen before, forwarding the data packet to neighboring nodes of the intermediate node.

9. The computer-readable storage medium of claim 8 , wherein forwarding the data packet to neighboring nodes involves forwarding the data packet to all neighboring nodes except the first neighboring node from which the data packet was received.

10. The computer-readable storage medium of claim wherein the sequence number includes one of:

a sequence number inserted into a payload of the data packet;

a sequence number located within an Internet Protocol (IP) header of the data packet; and

a sequence number located within a layer header of the data packet.

11. The computer-readable storage medium of claim wherein examining the sequence number involves looking up a highest received sequence number, S H , stored at the intermediate node based upon the source of the data packet.

12. The computer-readable storage medium of claim wherein examining the sequence number involves looking up a highest received sequence number, S H , stored at the intermediate node based upon the source and the destination of the data packet.

13. The computer-readable storage medium of claim wherein determining whether the data packet has been seen before involves:

looking up a highest received sequence number, S H ;

if S R >S H ,

overwriting S H with S R ,

updating a record, R, indicating which of N possible sequence numbers preceding S H have been seen before, and

forwarding the data packet to the neighboring nodes;

if S H -N>S R , discarding the data packet; and

if S H S R S H -N,then

if R indicates that S R has been seen before, discarding the data packet, and

if R indicates the data packet has not been seen before, updating R to indicate that S R has been seen, and

forwarding the data packet to the neighboring nodes.

14. The computer-readable storage medium of claim 13 , wherein the record, R, is a bit vector of size N.

15. An apparatus that facilitates instant failover during data packet routing by employing a flooding protocol to send data packets between a source and a destination, the apparatus comprising:

a receiving mechanism that is configured to receive a data packet at an intermediate node located between the source and the destination, wherein the data packet is enroute from the source to the destination;

wherein the data packet is received from a first neighboring node;

a determination mechanism that is configured to determine whether the data packet has been seen before at the intermediate node, wherein determining

whether the data racket has been seen before involves examining a sequence number S R , contained within the data packet to determine whether the sequence number has been seen before, and wherein determining whether the data packet has been seen before involves examining a record, R, indicating the N possible sequence numbers preceding a highest received sequence number, S H , that have been seen before; and

a forwarding mechanism that is configured to forward the data packet to neighboring nodes of the intermediate node if the data packet has not been seen before.

16. The apparatus of claim 15 , wherein the forwarding mechanism is configured to forward the data packet to all neighboring nodes except the first neighboring node from which the data packet was received.

17. The apparatus of claim 15 , wherein the sequence number includes one of:

a sequence number inserted into a payload of the data packet;

a sequence number located within an Internet Protocol (IP) header of the data packet; and

a sequence number located within a layer header of the data packet.

18. The apparatus of claim 15 , wherein the determination mechanism is configured to look up a highest received sequence number, S H , stored at the intermediate node based upon the source of the data packet.

19. The apparatus of claim 15 , wherein the determination mechanism is configured to look up a highest received sequence number, S H , stored at the intermediate node based upon the source and the destination of the data packet.

20. The apparatus of claim 15 , wherein the determination mechanism is configured to:

look up a highest received sequence number, S H ;

if S R >S H ,to

overwrite S H with S R ,

update a record, R, indicating which of N possible sequence numbers preceding S H have been seen before, and to forward the data packet to the neighboring nodes;

if S H -N>S R , to discard the data packet; and

if S H ≧S R ≧S H -N,to discard the data packet, if R indicates that S R has been seen before, and to update R to indicate that S R has been seen, and to forward the data packet to the neighboring nodes, if R indicates the data packet has not been seen before.

21. The apparatus of claim 20 , wherein the record, R, is a bit vector of size N.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0633 →
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0232 →