Method and apparatus for identifying a networked client modem

Information

  • Patent Grant
  • 6701379
  • Patent Number
    6,701,379
  • Date Filed
    Wednesday, May 31, 2000
    24 years ago
  • Date Issued
    Tuesday, March 2, 2004
    20 years ago
Abstract
A method and apparatus for identifying one or more characteristics of a networked device, such as a client modem, is disclosed. Values of one or more components of a signal from an unknown device are compared to values of the same components of signals from known devices. Matches determined by this comparison identify characteristics, such as the manufacturer, of the unknown devices to be the same as characteristics of the matched known devices. The comparison values are determined by receiving signals from known devices, and identifying and cataloging values of the one or more signal components in association with characteristics of the known devices. The identified characteristics are stored and later can be accessed or manipulated to derive additional information, such as statistical information based on the characteristics identified for multiple unknown devices.
Description




FIELD OF THE INVENTION




The present invention relates generally to management of computer networks. The invention relates more specifically to a method and apparatus for identifying characteristics of client modems in a managed network.




BACKGROUND OF THE INVENTION




A computer network typically includes one or more server elements that service client entities based upon requests or instructions from the client entities. In a dial-up network configuration, a client entity may include a client application that can communicate with the server entities through a client signal modulator-demodulator (“client modem”). A server entity can include, or have between it and the client entity, an access server which can perform one or more operations based upon signals being sent to the server entity, for example from the client entities. For example, in the process of communication between the client entity and the server entity, the client modem may send a signal that is received by the access server. The access server then utilizes information of the signal to facilitate communication between the client entity and the server entity.




In some instances, the communication between the client and server entities can fail. This may be due to one or more of several possible factors. For example, the communication failure can be due to characteristics of one of the devices in the signal path between the client and server, such as the client modem. However, a network manager cannot always determine why, where, or how the failure occurred. In this context, “network manager” refers broadly both to persons responsible for network management, and network management software or systems.




Even if the category of failed device (e.g., the client modem) is suspected or known to contribute to the failure, the specific type of device within that category may not be known. For example, in a distributed system where the client is not under the same control as is the server, it may be impossible to determine what type of modem failed, only that some modem failed. In internetworking, for example, certain Internet Service Providers (ISPs) may be unwilling to disclose what kind of modems are used in their facilities.




If a network manager could determine the specific manufacturer or model of a modem that has failed or contributed to a failure, then the network manager could target modems of that manufacturer or model for testing, repair, improvement, accommodation, or other management.




Modems that transmit data at 56 kilobits (Kb) per second using the V.90 standard are now widely used in network computing. V.90 is a standard, approved by the International Telecommunications Union (ITU), for transmitting data downstream to modems at 56 Kbps. However, presently, there is no practical way to determine what manufacturer is associated with a failed or failing client modem that is connected to a server using a V.90 connection.




Based on the foregoing, there is a clear need in this field for a method and system for identifying a network device.




In particular, there is a need for a method or apparatus that can identify the make or model of a modem in a network that has failed or is suspected of contributing to a failure. There is a specific need for such a method or apparatus that operates in conjunction with modems that interacted with access servers in managed networks. There is an additional need to provide such a method and system while minimizing complexity and maximizing efficiency.




SUMMARY OF THE INVENTION




The foregoing advantages, and other advantages that will become apparent from the following description, are achieved by the present invention, which comprises, in one aspect, a method and apparatus for identifying one or more characteristics of a networked device, such as a client modem. Values of one or more components, of a signal from an unknown device are compared to values of the same components of signals from known devices. Matches determined by this comparison identify characteristics, such as the manufacturer or model, of the unknown devices to be the same as characteristics of the matched known devices. The comparison values are determined by receiving signals from known devices, and identifying and cataloging values of the one or more signal components in association with characteristics of the known devices. The identified characteristics are stored and later can be accessed or manipulated to derive additional information, such as statistical information based on the characteristics identified for multiple unknown devices.




In one aspect, the invention provides a method of determining and storing a value of a characteristic of a device in a network, comprising the steps of receiving a signal from the device, wherein the signal is uniquely characterized by at least one signal parameter; identifying at least one value of at least one pre-selected signal parameter in the signal; and determining, based on a reference table that associates device characteristics with signal parameters, at least one characteristic of the device.




In another aspect, the invention provides a method of determining a manufacturer associated with an V.90 modem in a network, the method comprising the computer-implemented steps of receiving a message from the modem during a Training Phase of an V.90 session between the modem and a router; identifying a DIL descriptor in the message received from the modem; comparing a Sign Pattern value and a Training Pattern value of the DIL descriptor to a reference table that associates DIL descriptor values with manufacturer information; and determining the manufacturer associated with the V.90 modem based on matching manufacturer information in the reference table.




The foregoing should be understood as merely a brief summary of selected aspects and features of the invention that does not limit the scope of the invention. Many other features and aspects that are not summarized here will become apparent from the following detailed description.











BRIEF DESCRIPTION OF THE DRAWINGS




The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which:





FIG. 1

is a block diagram of a representative network with which an embodiment of the invention may be used;





FIG. 2

is a schematic of one aspect implemented in the physical layer of a router;





FIG. 3

is a block diagram of a method of determining and storing a characterization of a network device;





FIG. 4A

is a block diagram of a method of identifying a network device;





FIG. 4B

is a block diagram of an alternative method of identifying a V.90 modem in a network connection





FIG. 5

is a block diagram of a method


210


of providing information regarding one or more unknown devices;





FIG. 6

is a block diagram of a computer system with which an embodiment can be implemented.











DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT




A method and apparatus is described for identifying a networked client modem. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.




Structural Overview





FIG. 1

is a representative network configuration


90


with which an embodiment of the invention may be used.




Generally, network


100


is coupled, directly or indirectly, to a client


102


. Network


100


may be a local area network, wide area network, one or more internetworks, or the global, packet-switched internetworks known as the Internet. Client


102


is a network end station device such as a personal computer, workstation, etc., that receives services from one or more servers that logically separated from the client. Client


102


includes one or more client software applications


104


, and a client modem


106


for communicating with network


100


. The client application


104


can be any suitable application that uses a device, such as client modem


106


, to communicate through the network to acquire one or more services.




The client modem


106


can be any suitable device for facilitating communication between the client application


104


and the network


100


. For example, the client modem


106


can be any suitable device with operative components manufactured by, for example, Rockwell, U.S. Robotics/3Com, Lucent, and Pctel. Components or products of other than these four modem manufacturers may be used. In the preferred embodiment, client modem


106


conforms to the ITU V.90 standard.




One or more servers


107


A,


107


B and an Internet Service Provider (ISP)


108


, are also coupled to or accessible through network


100


. Between the network


100


and ISP


108


is connected an Access Server


110


. In a preferred embodiment, Access Server


110


is implemented in the form of a router having suitable application programs that implement access control features. Examples of commercial products that are suitable for use as Access Server


110


include Cisco 2500 Access Server Series, Cisco 6700 Series Integrated Access Devices, Cisco AS5300 Universal Access Server, etc., all available from Cisco Systems, Inc., San Jose, Calif. The network


100


, client


102


, ISP


108


, and Access Server


110


can be connected in any way suitable to facilitate desired communication between them. For example, the modes of connection, and thereby communication, described below with reference to

FIG. 6

, are applicable to the configuration


90


represented in FIG.


1


. In this configuration, Access Server


110


manages access of clients to ISP


108


.




Access Server


110


includes software elements that communicate with the ISP


108


at the network layer of the OSI network reference model and software elements that communicate with the network


100


at the data link layer and physical layer. Embodiments of the invention may be implemented through computer program code or software elements of Access Server


110


and operable at the physical layer.





FIG. 2

is a schematic of one aspect of the present invention as implemented in software elements operable at the physical layer of a network connection using Access Server


110


.




A software system


114


of

FIG. 2

includes a Data Collector


116


, storage


118


, and an Analyzer


120


, each of which is implemented in the form of one or more software elements that is callable or otherwise accessible by other software elements of Access Server


110


, as represented by block


117


of FIG.


2


. Optionally, system


114


includes an Analysis Retriever


122


.




Data Collector


116


is connected with the Analyzer


120


. The Data Collector


116


interacts with the network


100


, receiving and detecting signals received by the Access Server


110


of FIG.


1


. The Data Collector


116


also identifies and extracts components of such received signals according to pre-defined rules or instructions. Analyzer


120


performs operations using the signals or signal components identified or extracted by the Data Collector


116


. Both the Data Collector


116


and Analyzer


120


are connected with storage


118


. With these connections the Data Collector


116


can place the detected signals or signal components within storage


118


, or the analysis results of the Analyzer


120


can be placed in storage


118


.




In one preferred embodiment, storage


118


includes a reference table


119


that associates one or more modem make or model values with sets of Digital Impairment Learning (“DIL”) descriptor values. In this context, “modem make or model value” refers to one or more data values that uniquely identify a chipset, but not necessarily a brand name or manufacturer, of a particular V.90 modem. Each DIL descriptor consists of a plurality of fields of information that are unique to each modem manufacturer.




The DIL descriptor values are used to generate a test signal to characterize the digital impairments on the link between modem and server. In a V.90 session, upon receiving a DIL descriptor value, the access server decodes the descriptor, determines what data to send back to the modem, and sends a waveform back to the modem. The modem then compares the received data to what it expected to receive, in order to identify any problems in the line or connection. Accordingly, once appropriate values are stored in reference table


19


, the reference table


119


can be used to determine the make or model of a modem in a network connection based on a comparison of DIL descriptor values to columns of the reference table.




When Analysis Retriever


122


is included in system


114


, Analysis Retriever


122


can receive signals from either the network


100


of

FIG. 1

or the ISP


108


of

FIG. 1

to initiate analysis retrieval. In turn, the Analysis Retriever


122


can communicate with the Analyzer


120


to initiate analysis by the Analyzer


120


based on information stored within storage


118


. Alternatively or in addition, the Analysis Retriever


122


can retrieve one or more data stored within storage


118


. This data can include, for example, signals detected by Data Collector


116


, signal components extracted by Data Collector


116


, analysis based on a signal or extracted signal components, or analysis based upon signals or signal components from multiple signals.




Functional Overview





FIG. 3

is a block diagram of a method


150


of determining and storing a characterization of a network device. In one embodiment, method


150


may be used to create and store reference table


119


before the reference table is used in determining the make or model of a modem that is operating in a live connection.




In block


152


, a signal is received from a device, for example, a modem.




In block


154


, one or more values of pre-selected signal parameters of the signal received in block


152


are identified in block


154


. In an exemplary embodiment, the signal received in block


152


can be a signal received from a modem and conforming to the V.90 standard.




Transmission according to the V.90 standard generally occurs in a plurality of phases. Typically four (4) phases of negotiation are carried out between modem and server in order to arrive at a steady state in which data may be transmitted. The phases include V8bis/V.8 negotiation, line probing, half duplex training, full duplex training, and steady state. The third phase or half duplex training phase is of particular interest for purposes of this document.




In the past, traditional voiceband modem standards have required a modem to transmit a mandatory training pattern of bit values. Because the training pattern is the same for all modems of all manufacturers that conform to the standard, determining the manufacturer or type of modem during a call has been difficult, if not impossible. Under the V.90 standard, however, a modem vendor may uniquely design a portion of the training pattern to suit their needs, and many vendors have done so. During the training phase of a V.90 transaction, a V.90 modem sends a “Ja” signal to the access server. The “Ja” signal includes a DIL value.




Thus, as one specific example, in block


152


, the DIL descriptor is received from the modem. Although the DIL descriptor comprises a plurality of data values, a subset of the data values are sufficient to carry out modem identification. Thus, the pre-selected signal parameters can be, for example, the Training Pattern values, and the Sign Pattern values of a V.90 modem transaction. Generally, the Training Pattern and Sign Pattern values comprise up to eight (8) 16-bit word values. In a preferred embodiment, values of the first two (2) words of the Sign Pattern and the first two (2) words of the Training Pattern of a V.90 transaction are detected and used as keys to determine a manufacturer of a modem. These word values have been found in practice to represent a “signature” that generally uniquely indicates a particular modem manufacturer, because the values of such words do not vary as much among modem manufacturers as do other words in the DIL descriptor of an V.90 transaction.




The foregoing values are provided only as examples. Additional or alternative components of the DIL descriptor can be pre-selected as the signal parameters for which values are identified in block


154


. In particular, the signal parameters pre-selected can be any one or more signal parameters that can facilitate the unique identification of one or more device characteristics from which the device is received in block


152


.




In block


156


, the values identified in block


154


are stored. Block


156


may involve storing the values in a table of a database, in a scratchpad area of main memory, or any other suitable form of storage in which the values are available for subsequent use. The database can be of any suitable form for later retrieval of the values stored therein. For example, the database can be a relational database, or an object-oriented database, or any other suitable database configuration.




In block


158


, the values identified in block


154


are associated with at least one device characteristic. The characteristic referenced in block


158


is at least one characteristic of the device from which the signal is received in block


152


. In method


150


, the device and its characteristics are known in advance and are therefore available to be associated with the values identified in block


154


. Thus, block


158


may involve manually storing known values in reference table


119


, e.g., in a laboratory setting, configuration session, etc. Such device characteristics can include, for example, the manufacturer of one or more components of the modem, or the model identification number of the device. For example, the modem manufacturer can be identified as “Rockwell”, “USR/3Com”, “Lucent”, “PCtel,” etc. The type of device characteristics, as well as the various possibilities for each characteristic, depend on the type of signal received in block


152


, the pre-selected signal parameters, and the values that are identified in block


154


.





FIG. 4A

is a block diagram of a method


170


of identifying a network device. In one embodiment, using the method of

FIG. 4A

, a first device from among two communicating devices can identify the make or model of the second device, during a training phase, based on a unique signal that is sent by the second device. In a preferred embodiment, the second device is a modem.




A signal is received from a network device in block


172


. In this case of method


170


, the device is an unknown device, for example, a modem. The signal received in block


172


is any suitable signal for which method


170


has been configured. As an example, applicable to where the device is a modem, the signal can be a DIL descriptor value as described with reference to FIG.


3


.




In block


174


, the values of one or more pre-selected parameters of the signal received in block


172


are identified. As with the example discussed with reference to

FIG. 3

, the pre-selected parameters can be the training pattern and the sign pattern, but any one or more additional or alternative signal parameters (i.e., components) can be utilized.




In block


176


, it is determined whether the values desired to be identified in block


174


were, in fact, identified. If not, an analysis result indicating that no parameter was found is stored in block


178


. This analysis result can be stored in a database, such as storage


118


shown in FIG.


2


. In one embodiment, in block


176


it can be determined whether all of the intended values were identified. In such a case, method


170


would include block


178


, if any one of the intended values was not identified in block


174


. In such case, the analysis results stored in block


178


can, in some embodiments, identify for which parameter no value was found, or in other embodiments, can merely identify that not all the values were found.




Alternatively, in other embodiments, it can be determined in block


176


separately for each of the pre-selected signal parameters whether a value was identified. In such embodiments, if a value has not been identified for a pre-selected signal parameter, method


170


continues to block


178


for that pre-selected signal parameter, and then continues back to block


176


for each of the next and subsequent pre-selected signal parameters. In these embodiments, if it is determined in block


176


that a value has been determined for a pre-selected signal parameter, method


170


continues through block


186


and again returns to block


176


for evaluation of any remaining pre-selected signal parameters. This process can continue until the determination of block


176


has been made for each of the pre-selected signal parameters.




As a further alternative, some embodiments can include the identification of values in block


174


for only one pre-selected signal parameter at a time. In such a case, after block


178


,


184


, or


186


, method


170


would return to block


174


for the identification of the value of the next pre-selected signal parameter.




If it has been determined that one or more values have been identified in block


176


, the identified value or values are compared with one or more stored values in block


180


. These stored values can be those discussed above with respect to

FIG. 3

, in particular, block


156


. Thus, the values identified in block


154


can be used to calculate or generate one or more analysis values/comparison values that can then be compared in block


180


with like values using the mechanism described below. In particular, the values identified in block


154


can be compared to the information in reference table


119


using one or more table lookup operations. Based on the results of the table lookup operations, the make or model of the modem can be determined from the reference table. If no match is found, then the modem make or model is stored using a value that indicates “unknown.”




It is determined in block


182


whether a match was found in the comparison of block


180


. In some embodiments, a match is an exact equivalent between the two values. IN other embodiments, a match can include a difference of a pre-determined magnitude. For example, a tolerance, bandwidth, or range can be pre-determined to define a match between the identified values and a pre-determined value. In such instances, for example, block


182


can include a determination of the degree or type of match found, if any.




If no match is found in block


182


, an analysis result indicating that the device is unidentified is stored in block


184


. If the identification of block


176


has been performed for each of the pre-selected signal parameters, method


170


ends, and if the process of block


176


has not been completed for all pre-selected signal parameters, method


170


continues to block


174


or


176


according to the particular embodiment.




If a match is determined to have been found in block


182


, an analysis result indicating one or more device characteristics associated with the stored values are stored in block


186


. As with block


178


,


184


, method


170


ends, returns to block


174


, or returns to block


176


according to the particular embodiment.




The values identified in block


174


can be used to calculate or generated one or more analysis values or comparison values that may be compared, in block


180


, with like values.




If a make or model of a modem or chipset is found successfully, it may be used in a variety of ways by the access server or by the network manager. The make or model information may be stored in the access server, and provided to a network manager or other user in response to existing router commands. For example, a user may enter, at a router terminal using the standard command-line interface (CLI), a CLI command that requests statistics such as the “link stats” command or the “display modem operational status” command. In response, the access server may display the make or model information on the terminal.




The make or model information also may be stored in a modem log that is maintained by the access server for each modem that is managed by the access server. A CLI command, such as “show modem log,” can then be used to display the stored information. The modem log generally logs information associated with a connection when a pre-determined event occurs, such as retraining, disconnection, entering the steady state for the first time, etc. Access server software may be modified to cause the access server to store the modem make or model information in the appropriate modem log when the information is determined.





FIG. 4B

is a block diagram of an alternative embodiment of a method


190


of determining a manufacturer associated with a V.90 modem in a network.




In block


192


, a message is received from the modem during a Training Phase of a V.90 session between the modem and a router. Block


192


may involve causing Access Server


110


to receive a message from an active V.90 session as modem


108


is negotiating a V.90 connection with Access Server


110


.




In block


194


, a DIL descriptor is identified in the message received from the modem. Block


194


may involve using software elements of Access Server


110


to extract the DIL descriptor from the message that was received in block


192


.




In block


196


, a Sign Pattern value and a Training Pattern value of the DIL descriptor are compared to corresponding values in a reference table that associates DIL descriptor values with manufacturer information. Block


196


may involve extracting the Sign Pattern values and Training Pattern values, or only selected words from such values, from the DIL descriptor value, and then carrying out a table look-up in reference table


119


for corresponding values.




In block


198


, a manufacturer associated with the V.90 modem is determined, based on matching manufacturer information in the reference table. Thus, upon completing block


198


, a manufacturer associated with a V.90 modem may be determined based on unique values transmitted during V.90 connection negotiation between Access Server


110


and modem


108


.





FIG. 5

is a block diagram of a method


210


of providing information regarding one or more unknown devices, for example, statistical information regarding the manufacturer of one or more unknown devices, such as modems.




A request for information based on the analysis results of method


170


of

FIG. 4

is received in block


212


. The analysis results of method


170


are further analyzed in block


214


to produce the information requested in block


212


. For example, the analysis results can be analyzed by totaling the number of devices to be manufactured by each manufacturer. The requested information would then be the total number of unknown devices identified as being made by a first manufacturer, the total number identified as being made by a second manufacturer, etc. The requested information produced in block


214


is then sent in block


216


to an address based upon the request received in block


212


. For example, the requested information can be sent to the address from which the request was received in block


212


. The requested information can then be used as statistical information, for example, for future decision-making. As a specific example, if the unknown devices are modem devices, and the requested information is the total number of unknown devices identified to be manufactured by each of one or more manufacturers, such data can be correlated with, for example, transmission failure rates associated with the Access Server


110


. Other requested information regarding other signals and other devices can be used in other ways to maintain or improve the configuration such as configuration


90


of FIG.


1


.




By determining the make or model associated with a modem in a network, a network manager can predict or understand better the behavior of a V.90 modem connection. For example, if the call success rate for V.90 connections managed by an access server is unexpectedly low, the process described herein may be used to determine whether such performance is attributable to modems of a particular chipset, make or model. Various modems from different manufacturers perform differently, and knowing what type of manufacturer is in a connection improves the ability of the network manager to understand an unexpected situation and carry out remote debugging. Additionally, a network manager may use the modem information to determine what client code base is dialing into a remote access server, thereby permitting the network manager to compile usage statistics based on code base.




For example, the processes described herein enable a network manager to modify the configuration of an access server to be tailored to the client code base. By using this process, network managers have a good understanding of the V.90 client modem population accessing their ISPs and therefore provide a known configuration that best fits that particular population. The processes also may be used to provide feedback to the customer about one or more new code bases that are available for their client modems.




Hardware Overview





FIG. 6

is a block diagram that illustrates a computer system


800


upon which an embodiment of the invention may be implemented.




Computer system


800


includes a bus


802


or other communication mechanism for communicating information, and a processor


804


coupled with bus


802


for processing information. Computer system


800


also includes a main memory


806


, such as a random access memory (RAM) or other dynamic storage device, coupled to bus


802


for storing information and instructions to be executed by processor


804


. Main memory


806


also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor


804


. Computer system


800


further includes a read only memory (ROM)


808


or other static storage device coupled to bus


802


for storing static information and instructions for processor


804


. A storage device


810


, such as a magnetic disk or optical disk, is provided and coupled to bus


802


for storing information and instructions.




Computer system


800


may be coupled via bus


802


to a display


812


, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device


814


, including alphanumeric and other keys, is coupled to bus


802


for communicating information and command selections to processor


804


. Another type of user input device is cursor control


816


, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor


804


and for controlling cursor movement on display


812


. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.




The invention is related to the use of computer system


800


for identifying a networked client modem. According to one embodiment of the invention, identifying a networked client modem is provided by computer system


800


in response to processor


804


executing one or more sequences of one or more instructions contained in main memory


806


. Such instructions may be read into main memory


806


from another computer-readable medium, such as storage device


810


. Execution of the sequences of instructions contained in main memory


806


causes processor


804


to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.




The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to processor


804


for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device


810


. Volatile media includes dynamic memory, such as main memory


806


. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus


802


. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.




Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.




Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor


804


for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system


800


can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector can receive the data carried in the infrared signal and appropriate circuitry can place the data on bus


802


. Bus


802


carries the data to main memory


806


, from which processor


804


retrieves and executes the instructions. The instructions received by main memory


806


may optionally be stored on storage device


810


either before or after execution by processor


804


.




Computer system


800


also includes a communication interface


818


coupled to bus


802


. Communication interface


818


provides a two-way data communication coupling to a network link


820


that is connected to a local network


822


. For example, communication interface


818


may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface


818


may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface


818


sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.




Network link


820


typically provides data communication through one or more networks to other data devices. For example, network link


820


may provide a connection through local network


822


to a host computer


824


or to data equipment operated by an Internet Service Provider (ISP)


826


. ISP


826


in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the “Internet”


828


. Local network


822


and Internet


828


both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link


820


and through communication interface


818


, which carry the digital data to and from computer system


800


, are exemplary forms of carrier waves transporting the information.




Computer system


800


can send messages and receive data, including program code, through the network(s), network link


820


and communication interface


818


. In the Internet example, a server


830


might transmit a requested code for an application program through Internet


828


, ISP


826


, local network


822


and communication interface


818


. In accordance with the invention, one such downloaded application provides for identifying a networked client modem.




The received code may be executed by processor


804


as it is received, and/or stored in storage device


810


, or other non-volatile storage for later execution. In this manner, computer system


800


may obtain application code in the form of a carrier wave.




In summary, the present invention provides methods and apparatuses for identifying network devices such as networked client modems. The invention has been described herein in terms of several specific embodiments. Other embodiments of the invention, including alternatives, modifications, permutations and equivalents of the embodiments described herein, will be apparent to those skilled in the art from consideration of the specification, study of the drawings, and practice of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The embodiments and specific features described above in the specification and shown in the drawings should be considered exemplary rather than restrictive, with the invention being defined by the appended claims, which therefore include all such alternatives, modifications, permutations and equivalents as fall within the true spirit and scope of the present invention.



Claims
  • 1. A method of determining and storing a value of a characteristic of a device in a network, comprising:receiving a signal from the device, wherein the signal is uniquely characterized by at least one signal parameter; identifying at least one value of at least one pre-selected signal parameter in the signal; determining, based on a reference table that associates device characteristics with signal parameters, at least one characteristic of the device, wherein said signal parameters in the reference table specify characteristics of said signal.
  • 2. A method as recited in claim 1, wherein the device is associated with at least one device manufacturer; wherein the at least one device characteristic includes an associated manufacturer identity value; and wherein the determining step comprises determining the device manufacturer of the device in the network based on the reference table.
  • 3. A method as recited in claim 1, wherein the device is characterized by a model identification value, and the at least one device characteristic includes the model identification value.
  • 4. A method as recited in claim 1, wherein the device is a modem, and wherein the step of receiving the signal includes the step of receiving a DIL descriptor as part of the signal.
  • 5. A method as recited in claim 1, wherein the device is a modem, and wherein the step of receiving the signal includes the step of receiving a DIL descriptor that comprises a plurality of DIL descriptor field values as part of the signal during a training phase of a V.90 modem communication transaction.
  • 6. A method as recited in claim 4, wherein identifying at least one value of the pre-selected signal parameter includes identifying a Training Pattern value of the DIL descriptor and identifying a Sign Pattern value of the DIL descriptor.
  • 7. A method as recited in claim 4, further comprising the steps of:attempting to identify a value of at least one pre-selected signal parameter; storing an analysis result that indicates no value was found, when no value is identified; and when at least one value of at least one pre-selected signal parameter is identified: comparing the at least one value with at least one pre-stored value to determine a match; storing an analysis result based upon the comparing.
  • 8. A method of identifying a network device, comprising the computer-implemented steps of:receiving a signal from the network device, wherein the signal is characterized by at least one signal parameter; attempting to identify a value of at least one pre-selected signal parameter; storing an analysis result that indicates no value was found, when no value is identified; and when at least one value of at least one pre-selected signal parameter is identified: comparing the at least one value with at least one pre-stored value to determine a match; storing an analysis result based upon the comparing; determining, based on comparing the analysis result to a reference table that associates device characteristics with signal parameters, at least one characteristic of the device.
  • 9. A method as recited in claim 8, wherein the at least one pre-stored value is a value of one of the at least one pre-selected signal parameters of a signal that is associated with a known device, the pre-stored value being associated with a characteristic of the known device.
  • 10. A method as recited in claim 8, wherein a match is determined when the identified value is equivalent to the pre-stored value.
  • 11. A method as recited in claim 8, wherein if no match is determined, the analysis result based upon the comparing indicates the device is unidentified.
  • 12. A method as recited in claim 8, wherein if a match is determined, the analysis result based upon the comparing includes a characteristic of the device, wherein the device characteristic is based on the characteristic of the known device associated with the pre-stored value that is equivalent to the identified value.
  • 13. A method as recited in claim 12, wherein the device is associated with at least one manufacturer, and the characteristic of the device is an associated manufacturer.
  • 14. A method as recited in claim 12, wherein the device is characterized by a model identification, and the characteristic of the device is the model identification.
  • 15. A method as recited in claim 8, wherein the device is a modem, and receiving the signal includes receiving a DIL descriptor.
  • 16. A method as recited in claim 15, wherein attempting to identify a value includes the steps of identifying a value of a Training Pattern of the DIL descriptor and identifying a value of a Sign Pattern of the DIL descriptor.
  • 17. A method as recited in claim 15, wherein attempting to identify a value includes the steps of identifying a value of a first two (2) words of a Training Pattern of the DIL descriptor and identifying a value of a first two (2) words of a Sign Pattern of the DIL descriptor.
  • 18. A method of determining a manufacturer associated with a V.90 modem in a network, the method comprising the computer-implemented steps of:receiving a message from the modem during a Training Phase of a V.90 session between the modem and a router; identifying a DIL descriptor in the message received from the modem; comparing a Sign Pattern value and a Training Pattern value of the DIL descriptor to a reference table that associates DIL descriptor values with manufacturer information; and determining the manufacturer associated with the V.90 modem based on matching manufacturer information in the reference table.
  • 19. A computer readable medium containing program instructions for identifying a network device, wherein when the computer readable medium is read by a computer system having a processor and memory, the program instructions are configured to be executed by the processor, the computer readable medium comprising:program instructions for receiving a signal from a device, wherein the signal is characterized by at least one signal parameter; program instructions for attempting to identify a value of at least one pre-selected signal parameter; program instructions for storing an analysis result indicating no value was found, if no value is identified; program instructions for comparing the at least one value with at least one pre-stored value to determine a match if at least one value is identified; and program instructions for storing an analysis result based upon the comparing if at least one value is identified.
  • 20. A computer readable medium as recited in claim 19, wherein the program instructions for receiving a signal from a device include program instructions for receiving a signal from a modem, wherein the signal includes a DIL descriptor.
  • 21. A computer readable medium as recited in claim 20, wherein the program instructions for comparing include program instructions for reading a pre-stored value from a database, wherein the pre-stored value is a value of one of the at least one pre-selected signal parameters of a signal that is associated with a known device, the pre-stored value being associated with a characteristic of the known device.
  • 22. A computer readable medium as recited in claim 21, wherein the program instructions for comparing include:program instructions for determining a match when the identified value is equivalent to the pre-stored value; and program instructions for producing the analysis result to include a characteristic of the device based on the characteristic of the known device associated with the pre-stored value that is equivalent to the identified value.
  • 23. A computer readable medium as recited in claim 19, wherein the program instructions for receiving the signal include program instructions for receiving a DIL descriptor.
  • 24. A computer readable medium as recited in claim 23, wherein the program instructions for attempting to identify a value of at least one pre-selected signal parameter include program instructions identifying a Training Pattern of the DIL descriptor and identifying a Sign Pattern of the DIL descriptor.
  • 25. An apparatus for determining and storing a value of a characteristic of a device in a network, comprising:means for receiving a signal from the device, wherein the signal is uniquely characterized by at least one signal parameter; means for identifying at least one value of at least one pre-selected signal parameter in the signal; means for determining, based on a reference table that associates device characteristics with signal parameters, at least one characteristic of the device, wherein said signal parameters in the reference table specify characteristics of said signal.
  • 26. An apparatus as recited in claim 25, wherein the device is associated with at least one device manufacturer; wherein the at least one device characteristic includes an associated manufacturer identity value; and wherein the means for determining comprises means for determining the device manufacturer of the device in the network based on the reference table.
  • 27. An apparatus as recited in claim 25, wherein the device is characterized by a model identification value, and the at least one device characteristic includes the model identification value.
  • 28. An apparatus as recited in claim 25, wherein the device is a modem, and wherein the means for receiving the signal comprises means for receiving a DIL descriptor as part of the signal.
  • 29. An apparatus as recited in claim 25, wherein the device is a modem, and wherein the means for receiving the signal includes the step of receiving a DIL descriptor that comprises a plurality of DIL descriptor field values as part of the signal during a training phase of a V.90 modem communication transaction.
  • 30. An apparatus as recited in claim 28, wherein the means for identifying at least one value of the pre-selected signal parameter comprises means for identifying a Training Pattern value of the DIL descriptor and identifying a Sign Pattern value of the DIL descriptor.
  • 31. An apparatus as recited in claim 28, further comprising:means for attempting to identify a value of at least one pre-selected signal parameter; means for storing an analysis result that indicates no value was found, when no value is identified; means for comparing the at least one value with at least one pre-stored value to determine a match when at least one value of at least one pre-selected signal parameter is identified; and means for storing an analysis result based upon the comparing when at least one value of at least one pre-selected signal parameter is identified.
  • 32. An apparatus that can determine and store a value of a characteristic of a device in a network, comprising:a network interface; a processor coupled to the network interface and receiving a stream of data from the network; a memory coupled to the processor and comprising a plurality of sequences of program instructions which, when executed by the processor, cause the processor to carry out the steps of: receiving a signal from the device, wherein the signal is uniquely characterized by at least one signal parameter; identifying at least one value of at least one pre-selected signal parameter in the signal; determining, based on a reference table that associates device characteristics with signal parameters, at least one characteristic of the device, wherein said signal parameters in the reference table specify characteristics of said signal.
  • 33. An apparatus as recited in claim 32, wherein the device is associated with at least one device manufacturer; wherein the at least one device characteristic includes an associated manufacturer identity value; and wherein the determining step comprises determining the device manufacturer of the device in the network based on the reference table.
  • 34. An apparatus as recited in claim 32, wherein the device is characterized by a model identification value, and the at least one device characteristic includes the model identification value.
  • 35. An apparatus as recited in claim 32, wherein the device is a modem, and wherein the step of receiving the signal includes the step of receiving a DIL descriptor as part of the signal.
  • 36. An apparatus as recited in claim 32, wherein the device is a modem, and wherein the step of receiving the signal includes the step of receiving a DIL descriptor that comprises a plurality of DIL descriptor field values as part of the signal during a training phase of a V.90 modem communication transaction.
  • 37. An apparatus as recited in claim 36, wherein identifying at least one value of the pre-selected signal parameter includes identifying a Training Pattern value of the DIL descriptor and identifying a Sign Pattern value of the DIL descriptor.
  • 38. An apparatus as recited in claim 36, wherein the plurality of sequences of program instructions, when executed, further cause the processor to perform the steps of:attempting to identify a value of at least one pre-selected signal parameter; storing an analysis result that indicates no value was found, when no value is identified; and when at least one value of at least one pre-selected signal parameter is identified: comparing the at least one value with at least one pre-stored value to determine a match; storing an analysis result based upon the comparing.
  • 39. An apparatus that can determine and store a value of a characteristic of a device in a network, comprising:a network interface; a processor coupled to the network interface and receiving a stream of data from the network; means coupled to the processor for receiving a signal from the device, wherein the signal is uniquely characterized by at least one signal parameter; p1 means coupled to the processor for identifying at least one value of at least one pre-selected signal parameter in the signal; means coupled to the processor for determining, based on a reference table that associates device characteristics with signal parameters, at least one characteristic of the device, wherein said signal parameters in the reference table specify characteristics of said signal.
  • 40. A computer-readable medium carrying one or more sequences of instructions for determining and storing a value of a characteristic of a device in a network, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:receiving a signal from the device, wherein the signal is uniquely characterized by at least one signal parameter; identifying at least one value of at least one pre-selected signal parameter in the signal; determining, based on a reference table that associates device characteristics with signal parameters, at least one characteristic of the device, wherein said signal parameters in the reference table specify characteristics of said signal.
  • 41. A computer-readable medium as recited in claim 40, wherein the device is associated with at least one device manufacturer; wherein the at least one device characteristic includes an associated manufacturer identity value; and wherein the determining step comprises determining the device manufacturer of the device in the network based on the reference table.
  • 42. A computer-readable medium as recited in claim 40, wherein the device is characterized by a model identification value, and the at least one device characteristic includes the model identification value.
  • 43. A computer-readable medium as recited in claim 40, wherein the device is a modem, and wherein the step of receiving the signal includes the step of receiving a DIL descriptor as part of the signal.
  • 44. A computer-readable medium as recited in claim 43, wherein identifying at least one value of the pre-selected signal parameter includes identifying a Training Pattern value of the DIL descriptor and identifying a Sign Pattern value of the DIL descriptor.
  • 45. A computer-readable medium as recited in claim 43, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the further steps of:attempting to identify a value of at least one pre-selected signal parameter; storing an analysis result that indicates no value was found, when no value is identified; and when at least one value of at least one pre-selected signal parameter is identified: comparing the at least one value with at least one pre-stored value to determine a match; storing an analysis result based upon the comparing.
  • 46. A computer-readable medium as recited in claim 40, wherein the device is a modem, and wherein the step of receiving the signal includes the step of receiving a DIL descriptor that comprises a plurality of DIL descriptor field values as part of the signal during a training phase of a V.90 modem communication transaction.
  • 47. A computer-readable medium carrying one or more sequences of instructions for identifying a network device, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:receiving a signal from the network device, wherein the signal is characterized by at least one signal parameter; attempting to identify a value of at least one pre-selected signal parameter; storing an analysis result that indicates no value was found, when no value is identified; and when at least one value of at least one pre-selected signal parameter is identified: comparing the at least one value with at least one pre-stored value to determine a match; storing an analysis result based upon the comparing; determining, based on comparing the analysis result to a reference table that associates device characteristics with signal parameters, at least one characteristic of the device.
  • 48. A computer-readable medium as recited in claim 47, wherein the at least one pre-stored value is a value of one of the at least one pre-selected signal parameters of a signal that is associated with a known device, the pre-stored value being associated with a characteristic of the known device.
  • 49. A computer-readable medium as recited in claim 47, wherein a match is determined when the identified value is equivalent to the pre-stored value.
  • 50. A computer-readable medium as recited in claim 47, wherein if no match is determined, the analysis result based upon the comparing indicates the device is unidentified.
  • 51. A computer-readable medium as recited in claim 47, wherein if a match is determined, the analysis result based upon the comparing includes a characteristic of the device, wherein the device characteristic is based on the characteristic of the known device associated with the pre-stored value that is equivalent to the identified value.
  • 52. A computer-readable medium as recited in claim 51, wherein the device is associated with at least one manufacturer, and the characteristic of the device is an associated manufacturer.
  • 53. A computer-readable medium as recited in claim 51, wherein the device is characterized by a model identification, and the characteristic of the device is the model identification.
  • 54. A computer-readable medium as recited in claim 47, wherein the device is a modem, and receiving the signal includes receiving a DIL descriptor.
  • 55. A computer-readable medium as recited in claim 54, wherein attempting to identify a value includes the steps of identifying a value of a Training Pattern of the DIL descriptor and identifying a value of a Sign Pattern of the DIL descriptor.
  • 56. A computer-readable medium as recited in claim 54, wherein attempting to identify a value includes the steps of identifying a value of a first two (2) words of a Training Pattern of the DIL descriptor and identifying a value of a first two (2) words of a Sign Pattern of the DIL descriptor.
  • 57. A computer-readable medium carrying one or more sequences of instructions for determining a manufacturer associated with a V.90 modem in a network, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:receiving a message from the modem during a Training Phase of a V.90 session between the modem and a router; identifying a DIL descriptor in the message received from the modem; comparing a Sign Pattern value and a Training Pattern value of the DIL descriptor to a reference table that associates DIL descriptor values with manufacturer information; and determining the manufacturer associated with the V.90 modem based on matching manufacturer information in the reference table.
  • 58. An apparatus for identifying a network device, comprising:means for receiving a signal from the network device, wherein the signal is characterized by at least one signal parameter; means for identifying a value of at least one pre-selected signal parameter; means for storing an analysis result that indicates no value was found, when no value is identified; means for comparing the at least one value with at least one pre-stored value to determine a match when at least one value of at least one pre-selected signal parameter is identified; means for storing an analysis result based upon the comparing when at least one value of at least one pre-selected signal parameter is identified; and means for determining, based on comparing the analysis result to a reference table that associates device characteristics with signal parameters, at least one characteristic of the device.
  • 59. An apparatus as recited in claim 58, wherein the at least one pre-stored value is a value of one of the at least one pre-selected signal parameters of a signal that is associated with a known device, the pre-stored value being associated with a characteristic of the known device.
  • 60. An apparatus as recited in claim 58, wherein a match is determined when the identified value is equivalent to the pre-stored value.
  • 61. An apparatus as recited in claim 58, wherein if no match is determined, the analysis result based upon the comparing indicates the device is unidentified.
  • 62. An apparatus as recited in claim 58, wherein if a match is determined, the analysis result based upon the comparing includes a characteristic of the device, wherein the device characteristic is based on the characteristic of the known device associated with the pre-stored value that is equivalent to the identified value.
  • 63. An apparatus as recited in claim 62, wherein the device is associated with at least one manufacturer, and the characteristic of the device is an associated manufacturer.
  • 64. An apparatus as recited in claim 62, wherein the device is characterized by a model identification, and the characteristic of the device is the model identification.
  • 65. An apparatus as recited in claim 58, wherein the device is a modem, and receiving the signal includes receiving a DIL descriptor.
  • 66. An apparatus as recited in claim 65, wherein the means for identifying a value comprises means for identifying a value of a Training Pattern of the DIL descriptor and means for identifying a value of a Sign Pattern of the DIL descriptor.
  • 67. An apparatus as recited in claim 65, wherein the means for identifying a value comprises means for identifying a value of a first two (2) words of a Training Pattern of the DIL descriptor and means for identifying a value of a first two (2) words of a Sign Pattern of the DIL descriptor.
  • 68. An apparatus for determining a manufacturer associated with a V.90 modem in a network, comprising:means for receiving a message from the modem during a Training Phase of a V.90 session between the modem and a router; means for identifying a DIL descriptor in the message received from the modem; means for comparing a Sign Pattern value and a Training Pattern value of the DIL descriptor to a reference table that associates DIL descriptor values with manufacturer information; and means for determining the manufacturer associated with the V.90 modem based on matching manufacturer information in the reference table.
  • 69. An apparatus for identifying a network device, comprising:a network interface; a processor coupled to the network interface; and a memory, coupled to the processor, that comprises a plurality of sequences of instructions which, when executed by the processor, cause the processor to perform the steps of: receiving a signal from the network device, wherein the signal is characterized by at least one signal parameter; attempting to identify a value of at least one pre-selected signal parameter; storing an analysis result that indicates no value was found, when no value is identified; when at least one value of at least one pre-selected signal parameter is identified: comparing the at least one value with at least one pre-stored value to determine a match; storing an analysis result based upon the comparing; and determining, based on comparing the analysis result to a reference table that associates device characteristics with signal parameters, at least one characteristic of the device.
  • 70. An apparatus as recited in claim 69, wherein the at least one pre-stored value is a value of one of the at least one pre-selected signal parameters of a signal that is associated with a known device, the pre-stored value being associated with a characteristic of the known device.
  • 71. An apparatus as recited in claim 69, wherein a match is determined when the identified value is equivalent to the pre-stored value.
  • 72. An apparatus as recited in claim 69, wherein if no match is determined, the analysis result based upon the comparing indicates the device is unidentified.
  • 73. An apparatus as recited in claim 69, wherein if a match is determined, the analysis result based upon the comparing includes a characteristic of the device, wherein the device characteristic is based on the characteristic of the known device associated with the pre-stored value that is equivalent to the identified value.
  • 74. An apparatus as recited in claim 72, wherein the device is associated with at least one manufacturer, and the characteristic of the device is an associated manufacturer.
  • 75. An apparatus as recited in claim 72, wherein the device is characterized by a model identification, and the characteristic of the device is the model identification.
  • 76. An apparatus as recited in claim 69, wherein the device is a modem, and receiving the signal includes receiving a DIL descriptor.
  • 77. An apparatus as recited in claim 76, wherein attempting to identify a value includes the steps of identifying a value of a Training Pattern of the DIL descriptor and identifying a value of a Sign Pattern of the DIL descriptor.
  • 78. An apparatus as recited in claim 76, wherein attempting to identify a value includes the steps of identifying a value of a first two (2) words of a Training Pattern of the DIL descriptor and identifying a value of a first two (2) words of a Sign Pattern of the DIL descriptor.
  • 79. An apparatus for determining a manufacturer associated with a V.90 modem in a network, comprising:a network interface; a processor coupled to the network interface; and a memory, coupled to the processor, that comprises a plurality of sequences of instructions which, when executed by the processor, cause the processor to perform the steps of: receiving a message from the modem during a Training Phase of a V.90 session between the modem and a router; identifying a DIL descriptor in the message received from the modem; comparing a Sign Pattern value and a Training Pattern value of the DIL descriptor to a reference table that associates DIL descriptor values with manufacturer information; and determining the manufacturer associated with the V.90 modem based on matching manufacturer information in the reference table.
US Referenced Citations (8)
Number Name Date Kind
6076106 Hamner et al. Jun 2000 A
6098116 Nixon et al. Aug 2000 A
6122639 Babu et al. Sep 2000 A
6128662 Bolton et al. Oct 2000 A
6269481 Perlman et al. Jul 2001 B1
6351771 Craddock et al. Feb 2002 B1
6501750 Shaffer et al. Dec 2002 B1
6594707 Rubinstein et al. Jul 2003 B1