« 上一頁繼續 »
METHOD AND SYSTEM FOR DETECTING A COMMUNICATION PROBLEM IN A COMPUTER NETWORK
CROSS REFERENCE TO RELATED APPLICATION
This application is a division of pending application Ser. No. 10/246,156, entitled METHOD AND SYSTEM FOR DETECTING A COMMUNICATION PROBLEM IN A COMPUTER NETWORK, filed on Sept. 18, 2002.
TECHNICAL FIELD OF THE INVENTION
The invention relates generally to network communications and, more particularly, to detecting communication problems that result from one or more devices failing, either through malfunction or through malice, to properly forward data packets to other devices.
Communication problems in computer networks can result in the loss of data, time and money. Such problems stem from a variety of sources. One major source of communication problems is faulty or malicious routing. Faulty routing occurs when a device in a computer network fails, due to a malfunction, to properly forward data packets to other devices in the computer network. On the other hand, malicious routing is when a device in a computer network intentionally fails to forward data packets.
Protocols do exist to facilitate routing in computer networks. For example, one of the protocols currently employed on the Internet to assist devices in properly routing data packets is the Border Gateway Protocol (BGP). However, BGP includes no mechanism for verifying either the authenticity (the correct origin) or the accuracy of the routing information that it distributes. As a result, traffic on a network can be severely disrupted by routers announcing nonexistent routes, or simply failing to withdraw failed routes, as a result of either malfunction or malice. Two approaches have been suggested to solving this problem. One, Secure BGP (S-BGP), requires routing information to be digitally signed, so that routers advertising false routing information can be held accountable when detected. However, the overhead of a digital signature is large and possibly prohibitive, particularly when bringing a failed router back on line, at which time all routing advertisements for that router must be digitally signed at once. Furthermore, the management of the public-key infrastructure (PKI) that allows all routers to validate each other’s digital signatures is a daunting task. Moreover, S-BGP does little to help detect or diagnose faulty routing information emanating (accidentally or maliciously) from a router; it only ensures reliable identification of the information’s origin (for after-the-fact, out-of-band blame assignment).
Another proposed approach is to maintain a centralized registry of “plausibility” information about routing advertisements, so that blatantly invalid advertisements can be discounted when received. This approach can prevent the most egregious routing problems that arise from router misconfigurations, but it is still vulnerable to a wide range of both inadvertent and malicious false advertisements for routes that a particular router may be “entitled” to advertise, but cannot in fact serve.
In accordance with the foregoing, a method and system for detecting a communication problem in a computer network is
provided. According to the invention, a computer in the network runs a verification procedure in which it sends data packets to another computer in the network. Some or all of the data packets contain, either individually or collectively, a secret piece of information, such as a secret code. The computer then makes a determination regarding the network links between it and the other computer. If, for example, the other computer is able to respond by providing the secret piece of information back, then the computer sending the data packets concludes that the devices along the network links en route to the other computer are properly forwarding data packets.
Additional aspects of the invention will be made apparent from the following detailed description of illustrative embodiments that proceeds with reference to the accompanying figures.
BRIEF DESCRIPTION OF THE DRAWINGS
While the appended claims set forth the features of the present invention with particularity, the invention may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:
FIG. 1 illustrates an example of a computer network in which the invention may be practiced;
FIG. 2 illustrates an example of a computer on which at least some parts of the invention may be implemented;
FIG. 3 illustrates a network on which a verification procedure may be performed according to an embodiment of the invention.
FIG. 4 illustrates a procedure that is followed when a router conducts an investigation in accordance with an embodiment of the invention; and
FIG. 5 illustrates an example of a network on which a router may conduct an investigation in accordance with an embodiment of the invention.
The invention is generally directed to a method and system for detecting a communication problem on a computer network. The invention can be used in a variety of contexts. For example, the invention can be used to detect faulty or malicious routing in a network. According to various embodiment of the invention, a computer tests network links by transmitting data packets to a receiving computer over the network links. The data packets, either individually or collectively, contain a piece of information that is secret, both in terms of its existence and in terms of its content. The secret piece of information may take a variety of forms. For example, the secret piece of information may be the number of data packets that contain a secret code, or the secret piece of information may be a large number that can only be derived if the receiving computer knows a certain algorithm and is able to receive at least a certain percentage of the data packets. The computer sending the data packets then makes a determination regarding the network links based on the response that the receiving computer sends back. If, for example, the receiving computer is able to reconstruct the secret piece of information and transmit it back, the computer concludes that the devices en route to the receiving computer are properly forwarding data packets.
Prior to proceeding with a description of the various embodiments of the invention, a description of the computer and networking environment in which the various embodiments of the invention may be practiced will now be provided. Although it is not required, the present invention may be implemented by programs that are executed by a computer.
Generally, programs include routines, objects, components, data structures and the like that perform particular tasks or implement particular abstract data types. The term “pro gram” as used herein may connote a single program module or multiple program modules acting in concert. The term “computer” as used herein includes any device that electronically executes one or more programs, such as personal computers (PCs), hand-held devices, multi-processor systems, microprocessor-based programmable consumer electronics, network PCs, minicomputers, mainframe computers, consumer appliances having a microprocessor or microcontroller, routers, gateways, hubs and the like. The invention may also be employed in distributed computing environments, where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, programs may be located in both local and remote memory storage devices.
An example of a networked environment in which the invention may be used will now be described with reference to FIG. 1. The example network includes several computers 10 communicating with one another over a network 11, represented by a cloud. Network 11 may include many wellknown components, such as routers, gateways, hubs, etc. and allows the computers 10 to communicate via wired and/or wireless media. When interacting with one another or the network 11, one or more of the computers may act as clients, servers orpeers with respect to other computers. Accordingly, the various embodiments of the invention may be practiced on clients, servers, peers or combinations thereof, even though specific examples contained herein do not refer to all of these types of computers.
Referring to FIG. 2, an example of a basic configuration for a computer on which all or parts of the invention described herein may be implemented is shown. In its most basic configuration, the computer 10 typically includes at least one processing unit 14 and memory 16. The processing unit 14 executes instructions to carry out tasks in accordance with various embodiments of the invention. In carrying out such tasks, the processing unit 14 may transmit electronic signals to other parts of the computer 10 and to devices outside of the computer 10 to cause some result. Depending on the exact configuration and type of the computer 10, the memory 16 may be volatile (such as RAM), non-volatile (such as ROM or flash memory) or some combination of the two. This most basic configuration is illustrated in FIG. 2 by dashed line 18. Additionally, the computer may also have additional features/ functionality. For example, computer 10 may also include additional storage (removable and/ or non-removable) including, but not limited to, magnetic or optical disks or tape. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, including computer-executable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 10. Any such computer storage media may be part of computer 10.
Computer 10 may also contain communications connections that allow the device to communicate with other devices. A communication connection is an example of a communication medium. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal
such as a carrier wave or other transport mechanism and includes any information delivery media. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term “computer-readable medium” as used herein includes both computer storage media and communication media.
Computer 10 may also have input devices such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output devices such as a display 20, speakers, a printer, etc. may also be included. All these devices are well known in the art and need not be discussed at length here.
Turning to the invention, reference is made to FIG. 3, in which a computer network is shown. The computer network includes a first computer 30, a second computer 32, a third computer 34, and a fourth computer 36. The computer network also includes a destination host 38, which is, itself, a computer. The first computer 30 communicates with the second computer 32 via a network link 40. The second computer 32 communicates with the third computer 34 via a network link 42. The third computer 34 communicates with the fourth computer 36 via a network link 44. Finally, the fourth computer 36 communicates with the destination host 38 via a network link 46.
Each of the network links 40-46 of FIG. 3 may include a variety of types of communication media. Also, each of the computers of FIG. 3 is considered to be a part of each link to which it is adjacent. For example, the first computer 30 and the second computer 32 are each considered to be end nodes on the link 40 between them. Similarly, the second computer 32 and the third computer 34 are each considered to be end nodes on the link 42 between them. Furthermore, the third computer 34 and the fourth computer 36 are each considered to be end nodes on the link 44 between them. Finally, the fourth computer 36 and the destination host 38 are each considered to be end nodes on the link 46 between them. Each of the network links 40-46 may also include other, intermediate computers that are not illustrated in FIG. 3.
According to an embodiment of the invention, the first computer 30 verifies whether each of the network links 40 46 between itself and the destination host 38 are functioning by performing a verification procedure. This verification procedure will now be described. First, the first computer 30 establishes a secure communication session with the second computer 32. The first computer 30 then indicates to the second computer 32 what information the second computer 32 needs to give to the first computer 30 in order to convince the first computer 30 that the second computer 32 is properly receiving data packets from the first computer 30. In various embodiments of the invention, the information that the first computer 30 requires from the second computer 32 is secret. That is, the information cannot easily be discovered or computed by a third party. The first computer 30 then sends a stream of data packets to the second computer 32. The second computer 32 analyzes information contained in the stream of packets and, based on the analysis, attempts to construct a correct response to the stream of packets. The second computer 32 then transmits what it believes to be the correct response back to the first computer 30. If the response is correct, the first computer 30 deems the link 40 between the first computer 30 and the second computer 32 not to have any problems. In addition to the response, the second computer 32 informs the first computer 30 regarding the identity of the next computer on the way to the host, which, in this case, is the third computer 34. The first computer 30 repeats this procedure with each subsequent computer in FIG. 3, until it has