Rapid protocol failure detection
AssigneeCisco Technology, Inc.
InventorsChandrashekhar Appanna, Anantha Ramaiah, Ruchi Kapoor
Life of this patent
Estimating the term…
Abstract
A method is disclosed for rapidly detecting a protocol failure. In one embodiment, the method includes receiving an indication that a first process has failed. The first process having been engaged in communications over one or more network connections with a second process. A packet is formed, such that the packet appears to have been formed by the first process. The packet includes one or more data values, which, when received and processed by the second process, will cause the second process to close the network connection. The packet is sent to the second process. When the second process receives the packet, the second process to closes the network connection.
Claims50
A method of detecting a protocol failure, the method comprising the computer-implemented steps of:
- receiving an indication that a first process has failed, the first process having been engaged in communications over a network connection with a second process, the network connection having a source address and a destination address;
- retrieving from a database information about the network connection, wherein the information retrieved from the database indicates the source address and the destination address of the network connection;
- determining a random number;
- based on the information retrieved from the database, forming a packet comprising the source address, the destination address, a sequence field set to the random number, and a SYN field set to 1;
- wherein the packet is formed by a third process that is different from the first and second processes;
- the third process sending the packet to the second process;
- thereby causing the second process to close the network connection with the first process;
- wherein the random number falls within an expected sequence number range of the second process;
- thereby causing the second process to send a reset packet to the first process prior to closing the network connection;
- and
- wherein the method is performed by one or more computing devices.
A method of detecting a protocol failure, the method comprising the computer-implemented steps of:
- receiving an indication that a first process has failed, the first process having been engaged in communications over one or more network connections with a second process;
- retrieving from a database information about each network connection associated with the first process;
- determining a random number;
- forming a packet comprising one or more data values, including a sequence field set to the random number and a SYN field set to 1, which packet, when received and processed by the second process, will cause the second process to close the network connection;
- wherein the packet is formed by a third process;
- sending the packet to the second process;
- thereby causing the second process to close the network connection;
- and
- receiving an ACK packet from the second process, if the random number falls outside of an expected sequence number range of the second process;
- and responsive thereto:
- retrieving from the ACK packet a sequence number and an acknowledgement number;
- forming a reset packet comprising a sequence number based upon the acknowledgement number;
- and
- sending the reset packet to the second process;
- wherein the method is performed by one or more computing devices.
A computer-readable storage medium storing one or more sequences of instructions for detecting a protocol failure, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
- receiving an indication that a first process has failed, the first process having been engaged in communications over a network connection with a second process, the network connection having a source address and a destination address;
- retrieving from a database information about the network connection, wherein the information retrieved from the database indicates the source address and the destination address of the network connection;
- determining a random number;
- based on the information retrieved from the database, forming a packet comprising the source address, the destination address, a sequence field set to the random number, and a SYN field set to 1;
- wherein the packet is formed by a third process that is different from the first and second processes;
- and
- the third process sending the packet to the second process;
- thereby causing the second process to close the network connection with the first process;
- wherein the random number falls within an expected sequence number range of the second process;
- thereby causing the second process to send a reset packet to the first process prior to closing the network connection.
A computer-readable storage medium storing one or more sequences of instructions for detecting a protocol failure, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
- receiving an indication that a first process has failed, the first process having been engaged in communications over one or more network connections with a second process;
- retrieving from a database information about each network connection associated with the first process;
- determining a random number;
- forming a packet comprising one or more data values, including a sequence field set to the random number and a SYN field set to 1, which packet, when received and processed by the second process, will cause the second process to close the network connection;
- wherein the packet is formed by a third process;
- sending the packet to the second process;
- thereby causing the second process to close the network connection;
- and
- receiving an ACK packet from the second process, if the random number falls outside of an expected sequence number range of the second process;
- and responsive thereto:
- retrieving from the ACK packet a sequence number and an acknowledgement number;
- forming a reset packet comprising a sequence number based upon the acknowledgement number;
- and
- sending the reset packet to the second process.
An apparatus for detecting a protocol failure, comprising:
- means for receiving an indication that a first process has failed, the first process having been engaged in communications over a network connection with a second process, the network connection having a source address and a destination address;
- means for retrieving from a database information about the network connection, wherein the information retrieved from the database indicates the source address and the destination address of the network connection;
- means for determining a random number;
- means for forming, based on the information retrieved from the database, a packet comprising the source address, the destination address, a sequence field set to the random number, and a SYN field set to 1;
- wherein the means for forming the packet is operable in a third process that is different from the first and second processes;
- and
- means for sending the packet to the second process;
- thereby causing the second process to close the network connection with the first process;
- wherein where the random number falls within an expected sequence number range of the second process, the means for sending the packet to the second process causes the second process to send a reset packet to the first process prior to closing the network connection;
- wherein the means for sending the packet is operable in the third process.
An apparatus for detecting a protocol failure, comprising:
- means for receiving an indication that a first process has failed, the first process having been engaged in communications over one or more network connections with a second process;
- means for retrieving from a database information about each network connection associated with the first process;
- means for determining a random number;
- means for forming a packet comprising one or more data values, including a sequence field set to the random number and a SYN field set to 1, which packet, when received and processed by the second process, will cause the second process to close the network connection;
- wherein the means for forming a packet is operable in a third process;
- means for sending the packet to the second process;
- thereby causing the second process to close the network connection;
- and
- means for receiving an ACK packet from the second process, if the random number falls outside of an expected sequence number range of the second process;
- means for retrieving from the ACK packet a sequence number and an acknowledgement number;
- means for forming a reset packet comprising a sequence number based upon the acknowledgement number;
- and
- means for sending the reset packet to the second process.
An apparatus for detecting a protocol failure, comprising:
- a network interface that is coupled to a data network for receiving one or more packet flows therefrom;
- a processor;
- one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:
- receiving an indication that a first process has failed, the first process having been engaged in communications over a network connection with a second process, the network connection having a source address and a destination address;
- retrieving from a database information about the network connection, wherein the information retrieved from the database indicates the source address and the destination address of the network connection;
- determining a random number;
- based on the information retrieved from the database, forming a packet comprising the source address, the destination address, a sequence field set to the random number, and a SYN field set to 1;
- wherein the packet is formed by a third process that is different from the first and second processes;
- the third process sending the packet to the second process;
- thereby causing the second process to close the network connection with the first process;
- wherein the random number falls within an expected sequence number range of the second process;
- thereby causing the second process to send a reset packet to the first process prior to closing the network connection.
An apparatus for detecting a protocol failure, comprising:
- a network interface that is coupled to a data network for receiving one or more packet flows therefrom;
- a processor;
- one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:
- receiving an indication that a first process has failed, the first process having been engaged in communications over one or more network connections with a second process;
- retrieving from a database information about each network connection associated with the first process;
- determining a random number;
- forming a packet comprising one or more data values, including a sequence field set to the random number and a SYN field set to 1, which packet, when received and processed by the second process, will cause the second process to close the network connection;
- wherein the packet is formed by a third process;
- sending the packet to the second process;
- thereby causing the second process to close the network connection;
- and
- receiving an ACK packet from the second process, if the random number falls outside of an expected sequence number range of the second process;
- and responsive thereto:
- retrieving from the ACK packet a sequence number and an acknowledgement number;
- forming a reset packet comprising a sequence number based upon the acknowledgement number;
- and
- sending the reset packet to the second process.
A network element, comprising:
- a transmission control protocol (TOP) process;
- a border gateway protocol (BGP) process;
- a system monitor process;
- and
- a fast recovery process, the fast recovery process comprising:
- receiving an indication that a first process has failed, the first process having been engaged in communications over a network connection with a second process, the network connection having a source address and a destination address;
- retrieving from a database information about the network connection, wherein the information retrieved from the database indicates the source address and the destination address of the network connection;
- determining a random number;
- based on the information retrieved from the database, forming a packet comprising the source address, the destination address, a sequence field set to the random number, and a SYN field set to 1;
- wherein the fast recovery process is different from the first and second processes;
- and
- sending the packet to the second process;
- thereby causing the second process to close the network connection with the first process;
- wherein the random number falls within an expected sequence number range of the second process;
- thereby causing the second process to send a reset packet to the first process prior to closing the network connection;
- wherein the first process is the transmission control protocol (TOP) process or the border gateway protocol (BGP) process;
- wherein the transmission control protocol (TCP) process, the border gateway protocol (BGP) process, the system monitor process, and the fast recovery process are performed by one or more computing devices.
Dependencies are inferred from the claim text.