METHOD AND APPARATUS FOR PROVIDING A CONNECT-ON-DEMAND
SERVER IN A DATA PROCESSING NETWORK
BACKGROUND OF THE INVENTION Field of the invention:
The invention relates to the field of computer networking. More specifically, the invention relates to servers which provide services to clients or other systems in a data processing network.
Background information:
Computer networking generally involves a collection of computers, terminals, connecting/switching/routing devices, etc., which may be interconnected through various types of communication media to allow data communication between various data processing devices which may have access to the network. For example, local area networks (LANs) are typically limited to a relatively small geographical area, such as an office, university, etc., wherein a number of data processing devices are hard- wired and/or accessible via a telephone or similar type of communication medium. In contrast, wide area networks (WANs) span relatively larger areas, and may include a number of interconnected LANs and data processing devices. The Internet is an example of a WAN. The interconnectivity in computer networks may be provided by one or combination of telephone lines, various types of wiring, wireless media (e.g., microwaves, cellular, etc.), satellite, etc.
One fundamental relationship in computer networks is that which exists between clients and servers. In general, a client refers to various types of computers, terminals, portable, and/or other data processing system which may request a service from another data processing system which provides the service, and which is referred to as a server. For example, a client may be a desktop computer which may connect to a computer network via a modem or other data communication interface to request information, for example, for a particular Web page, from a server. Such a request may be routed from an Internet Service Provider (ISP) to the appropriate server having the address indicated by the request. The server may then provide the Web page and/or other services to the requesting client system. Typically, clients "connect" to a network on a need basis (e.g., by dialing-in via a telephone line or other interface to the
network) to make a request. On the other hand, servers are generally connected to the network in order to process client requests at any time.
Figure 1 is a diagram of a typical computer network in which data may be exchanged between various data processing systems. As shown in Figure 1, a number of client computer system are coupled together through the Internet 102. It will be appreciated that the term "Internet" often refers to a network of networks. Such networks may use a variety of protocols to regulate the exchange of information, such as TCP/IP, ATM, etc. Users typically obtain access to the Internet through a client data processing system, such as the client computer systems 104, 106, 120, and 122. Such Internet access is typically granted to client computer systems by Internet service providers (ISPs). Access to the Internet may facilitate transfer of information (e.g., email, data files, programs, media, etc.) between two or more digital processing systems, such as the client computer systems 104, 106, 120, and 122. Moreover, such client computer systems may obtain information from a server 118, which may be accessed at any time by a number of systems.
As shown in Figure 1, client computer systems, such as the client computer systems 104 and 106, may be connected to a LAN bus 108, which provides Internet interconnectivity through a gateway 110, which in turn is coupled to the ISP 112. On the other hand, the client computer systems 120 and 122, which may not be coupled to the Internet at all times, may, however, establish a more direct connection to the Internet at any time through the ISPs 114 and 116 (e.g., by dialing-in through a modem). In contrast to client computer systems, which typically establish a connection to the Internet on a need-basis, the server 118 is typically always connected to the Internet to service access requests by client computer systems. Such requests may involve information from a Web page, Internet commerce, downloading of programs, etc.
As the number of clients accessing the Internet has grown, the client-server relationship has provided a relatively significant business tool. In particular, many businesses utilize servers to promote their products, conduct Internet access, release company information, advertise, provide advertising space for others, etc. However, as mentioned above, servers which provide such information/services to clients generally need to be continually connected (e.g., through a telephone line or other communication medium) to a network such as the Internet, so that the servers may service a request by a client at any time. Unfortunately, such a need for servers to be continually connected
to the network(s) entails relatively substantial cost, for example, as may be associated with (metered) telephone company circuit charges. As a result, some businesses may not be able to maintain their own servers, and thus, may not be able to take advantage of the services and business tools that such systems may provide.
Thus, what is needed is a system and method for providing a relatively low cost server that does not suffer from the above-mentioned and/or other limitations of conventional servers for use in a data processing network.
SUMMARY OF THE INVENTION The present invention provides methods and apparatuses for providing a connect-on-demand server. In one embodiment of the invention, a server remains disconnected from a computer network until a request is made to access the server by a device coupled to the computer network. In response to the request, the server is caused to establish a connection with the computer network.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a diagram of a typical computer network in which data may be exchanged between various data processing systems.
Figure 2A is a diagram of a computer network for providing a connect-on- demand server, according to one embodiment of the invention.
Figure 2B is a diagram of a computer network for providing a connect-on- demand server, according to one embodiment of the invention.
Figure 3 is a block diagram of a data processing system which may be utilized in a data communication network, according to one embodiment of the invention.
Figure 4 is a flow diagram of a method for providing a connect-on-demand server, according to one embodiment of the invention.
Figure 5 is a flow diagram of a method for caching information from a connect- on-demand server, according to one embodiment of the invention.
Figure 6 is a flow diagram of a method for selectively flushing information associated with a connect-on-demand server, according to one embodiment of the invention.
Figure 7 is a flow diagram of a method for reverse address-name mapping, according to one embodiment of the invention.
DETAILED DESCRIPTION
The present invention provides apparatuses and methods for providing a connect-on-demand server, i.e., a server that establishes a connection to a data communication network in response to another device requesting service therefrom.
In the following description, numerous specific details are set forth to provide a thorough understanding of the invention. However, it is understood that the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the invention.
Figure 2A is a diagram of a computer network for providing a connect-on- demand server, according to one embodiment of the invention. As shown in Figure 2A, a network device(s) 200 is coupled to the Internet 102. The network device 200, in one embodiment of the invention, represents a multi-purpose server for facilitating data communication with a connect-on-demand server 218 (and/or other connect-on-demand servers) in response to a request issued, for example, by a client data processing system 216. Alternatively, in another embodiment of the invention, the network device 200 represents a number of systems, which may include one or more servers, for facilitating data communication with the connect-on-demand server 218 (and/or other connect-on- demand servers) in response to a request issued, for example, by the client data processing system 216. As such, the network device 200 may represent a single computer system (e.g., a server) or a distributed system, which may span a LAN or WAN, and include several devices, each for performing one or more various operations to facilitate data communication with a connect-on-demand server, according to one or a combination of the techniques of the present invention, for example, as described below.
The network device 200 includes a bus 202, which represents one or a combination of various types of media for providing coupling for data/signal exchange between various mechanisms or devices. As shown, a number of mechanisms are coupled to the bus 202, including a tickling mechanism 204, an access mechanism 206, a caching mechanism 208, a routing mechanism 210, an addressing mechanism 212, and a data communication interface 214. Each of the mechanisms may represent hardware, software, or a combination thereof. Furthermore, one or more of the mechanisms may be integrated into one system, such as a server.
Operation of the system shown in Figure 2A, according to one embodiment of the invention, is described below with reference to a method shown in Figure 4.
Figure 4 is a flow diagram of a method for providing a connect-on-demand server, according to one embodiment of the invention. At block 402, a client, such as the client data processing system 216 of Figure 2 A, issues a request to access information from a connect-on-demand server, such as the connect-on-demand server 218. In one embodiment, the access request is associated with a name that, in turn, is associated with the connect-on-demand server 214, such as "host.encanto.com." For example, the client system may request a Web page from the connect-on-demand server 214, which may be assigned the text name, "host.encanto.com." As shown in Figure 2A, the client data processing system 216 may connect to the Internet (e.g., through an ISP, LAN gateway, etc.), wherein the request is routed according to known protocols, such as BGP, IGRP, RIP, etc.
At block 404, a network device, such as the network device 200, determines that the connect-on-demand server 218 is currently not in a connected state (i.e., the connect-on-demand server is not on-line— i.e., coupled to the network device, Internet, etc.). For example, an associated domain name system (DNS) server or other device may not contain a valid or current IP address for the connect-on-demand server, thereby indicating that the connect-on-demand server is not in a connected state. In one embodiment, the client request is temporarily resolved with the IP address of a caching device which provides information previously cached from the connect-on-demand server to the client until data communication is established between the client and the connect-on-demand server.
Several methods may also be utlized to determine whether the connect-on- demand server is in a connected state. For example, in one embodiment, a device coupled to the network may store a status record, which may be accessed in response to
the client request, and which indicates the status of the connect-on-demand server as being on-line or off-line. In another embodiment, a network device may poll the connect-on-demand server, and depending on a response (or non-response), determine that the connect-on-demand server is not in a connected state. Other known techniques for locating devices in a network may be utilized in various embodiments of the invention to determine whether the connect-on-demand server is in a connected state.
As described above with reference to Figure 2A, the network device may represent one or more mechanisms and/or systems for providing data communication between the connect-on-demand server and one or more other systems. Such mechanisms/systems may be integrated into one system (e.g., a stand-alone server) or distributed between a number of systems, such as shown in and described below with reference to Figure 2B.
It will be appreciated that instances wherein the connect-on-demand server 218 is in a connected state—for example, if the connect-on-demand server is currently in communication with another client system—known operations may be performed to establish data communication between the connect-on-demand server and the requesting client. Such known operations may be performed by the network device 200 and/or other devices, including, for example, a remote authentication dial-in user service or RADIUS server, a domain name system or DNS server, a router, etc. For example, address-name resolution may be performed, and a resolution response issued to the requesting client system to establish data communication therewith.
At block 406, in response to determining that the connect-on-demand server toward which the client request is directed is not in a connected state, the network device, and in particular, the tickling mechanism 204, will "tickle" the connect-on- demand server. Tickling involves causing the connect-on-demand server, which is in a disconnected state, to establish a data communication link with a network at a point-of- presence (POP). In one embodiment of the invention, the POP may be provided by an ISP. The POP may or may not be part of the network device 200. As shown in Figure 2A, a data communication interface 214, which may include one or more modems, may represent the POP. The tickling mechanism 204 may represent a remote device or be part of a LAN or WAN associated with the network device 200.
In one embodiment of the invention, the tickling mechanism 204 is associated with DNS mechanism to tickle the connect-on-demand server to establish a connection with the network by transmitting a signal to the connect-on-demand server, for
example, to cause the connect-on-demand server to dial-in to its POP. For example, in one embodiment of the invention, the tickling operation involves a DNS server calling the connect-on-demand server, allowing a predetermined number of rings to occur or time to pass, and then terminating the call. In response to such a call, the connect-on- demand server calls its POP, which may include the data communication interface 214, to establish a data communication link with the Internet 102 or other network or system. As such, tickling may provide a relatively low-cost and flexible method for allowing a remote client to access a remote connect-on-demand server via any ISP, network connection, etc.
It will be appreciated that while placing a telephone call is one method for tickling the connect-on-demand server, other techniques may be utilized in alternative embodiments to induce an off-line connect-on-demand server to establish a connection with a network, in response to a client system coupled to the network issuing a request to access the connect-on-demand server. For example, in one embodiment, the connect-on-demand server is paged, and in response to a page, the connect-on-demand server establishes a connection with a network. Furthermore, tickling may be performed by one or a combination of various types of mechanisms/systems associated with a data communication network. As such, it will be appreciated that the tickling mechanism 204 may not necessarily involve a DNS server or may involve a DNS mechanism (e.g., a DNS server(s)) in combination with other mechanisms.
In an alternative embodiment of the invention, a network device may directly establish a connection with the connect-on-demand server, and thus, tickling may not be performed. In this embodiment, in response to a client issuing a request to access a connect-on-demand server, the network device itself may establish a connection with the connect-on-demand server, for example, by completing a call to the connect-on- demand server via a wired or wireless modem.
Also at block 406, in response to determining that the connect-on-demand server toward which the client request is directed is not in a connected state, a caching device, which may be the caching mechanism 208, provides information previously cached from the connect-on-demand server 214 to the requesting client. In one embodiment of the invention, the information is provided by the caching mechanism until establishment of a data communication link between the connect-on-demand server and the requesting client is completed. For example, the caching mechanism may provide a Web page(s) obtained previously from the connect-on-demand server
218 and stored by the caching mechanism to be provided from the caching mechanism to the client, while the process of establishing a data communication link between the connect-on-demand server and client is being completed.
Thus, in one embodiment of the invention, the requesting client may receive information associated with the connect-on-demand server from the caching device, and the client may not "know" that a connection has not yet been established with the connect-on-demand server. Thus, information may be provided to the requesting client with a relatively small time delay following a request by the client to access an off-line connect-on-demand server. In one embodiment, once data communication between the client and the connect-on-demand server is established, the caching device ceases to provide information to the client, and the connect-on-demand server takes over the process of servicing the client. In one embodiment, a caching mechanism is not utilized. As such, information other than that obtained cached from the connect-on- demand server may be provided to the client during a time interval that the connect-on- demand server is establishing a connection with the network, and in particular, the client. Such information may include advertising, news, media (e.g., audio, video), and/or other information. In yet another embodiment, no information is provided to the client in response to the request until the connect-on-demand server is in communication with the client.
At block 408, the network device performs authentication of the connect-on- demand server, and assigns a dynamic address to the connect-on demand server. For example, the addressing mechanism 212 of the network device 200, which may be associated with a DNS server in one embodiment, may assign the dynamic address and the access mechanism 206 may perform authentication (e.g., request and verify login, password, etc. from the connect-on-demand server). In one embodiment, authentication is performed by one or more RADIUS servers. As such, the connect-on-demand server may provide the RADIUS server 202 with one or a combination of a login, password, RADIUS server identification (ID), etc. Once/if the connect-on-demand server is authenticated, the network device 200 and/or other POP assigns a dynamic (i.e., temporary) IP address to the connect-on-demand server which is valid for the current session (i.e., duration that connect-on-demand server is in a connected state/on-line). The POP or other entity may also initiate recordation of a billing or other accounting record for a session in which the connect-on-demand server is on-line. Such a record
may be identified by a login, and include information such as session start time, session end time, voluntary/valid or non-voluntary/invalid session termination, etc.
At block 410, the dynamic IP address assigned to the connect-on-demand server is resolved with further requests that may be issued by the client (or other clients requesting to access the connect-on-demand server during the session), and data communication is established between the client and the connect-on-demand server. In one embodiment, the dynamic IP address is provided to a DNS server, which in turn resolves the request issued by the client with the dynamic address, and provides the client with a resolution message. As such, the client system will be provided with a data communication link with the connect-on-demand server, and known IP addressing techniques may be performed henceforth. Furthermore, for the duration that the connect-on-demand server remains in a connected state to the client, any other requests for the connect-on-demand server from other client systems may be resolved via known DNS or other addressing processing techniques using the dynamic IP address assigned to the connect-on-demand server for that session.
In one embodiment of the invention, when the session is ended and the connect- on-demand server disconnects from its POP and the network (e.g., the Internet), the network device, e.g., the addressing mechanism 212, will indicate that the connect-on- demand server is in a disconnected state and the dynamic IP address may be flushed therefrom. The connect-on-demand server and/or a device coupled to the network may indicate the ending of a session and/or instruct a flush of information associated with the session. The access mechanism 206, a RADIUS server, or other mechanism/device may also create or update an accounting and/or other records. In one embodiment, in response to detecting that the connect-on-demand server has gone off-line for any number of reasons (e.g. an indication of such provided by the connect-on-demand server, a disruption in a communication line, etc.), information associated with the session in which the connect-on-demand server may be selectively flushed (i.e., deleted or marked as invalid/stale or replaced or updated, etc.). For example, one or a combination of the dynamic IP address, a routing table entry that may be provided by the routing mechanism 210, a route established between the caching device and the client, and/or other information may be flushed. It will be appreciated that in alternative embodiments of the invention, a dynamic address is not necessarily assigned to the connect-on-demand server, and instead, the connect-on-demand may be assigned a static or permanent address, which remains the same for every session. Thus, some
information (e.g., a session accounting record, a static IP address if used, etc.) may not be flushed in response to an end of a session in which the connect-on-demand server is connected to the network device.
In one embodiment of the invention, a dynamic TCP IP tunnel— one which is used temporarily and typically only utilized for one session— is provided to the connect- on-demand server for transferring information with the requesting client. A tunnel, which sometimes refers to a component of a virtual private network (VPN), represents a relatively secure path for transferring data in a network of computers and other data processing systems. In some implementations, a tunnel represents a distinct, specified route for exchanging data. In some implementations, tunnels represent encrypted connections for providing data communication.
Data packets associated with tunnels are typically encapsulated, such that original routing information will not be overrided by new routing information. As such, tunnels may provide a guaranteed level of bandwidth, as well as improved security for data communication. Since in one embodiment of the invention the tunnel is dynamic, a different tunnel may be assigned for each session that the connect-on- demand server is on-line. As such, greater flexibility and cost-savings may be provided relative to static tunnels. However, it will be appreciated that the invention, in alternative embodiments, may use static tunnels or may not even use tunnels.
Figure 2B is a diagram of a computer network for providing a connect-on- demand server, according to one embodiment of the invention. In Figure 2B, a bus 234 couples a remote authentication dial-in user service or RADIUS server 222, a domain name system or DNS server 224, each of which may represent one or more servers, a router 226, a caching device 228, and modems 230. The router 236 is further coupled to the Internet 102 to facilitate exchange of information over the Internet.
The DNS server 224, which may represent one or more DNS servers, is typically operable to resolve names to addresses. For example, a text name, such as "host.encanto.com" may be resolved into a numerical address corresponding thereto, such as 542.45.28.2. As such, the DNS server 224 typically stores a database or fιle(s) of names and corresponding addresses for resolving access requests and information transfer in computer networks. In one embodiment of the invention, the DNS server 224 provides dynamic (i.e., non-permanent) addresses to a connect-on demand server, such as the connect-on-demand servers 218 and 232 shown in Figure 2B.
The RADIUS server 222 may perform a number of different functions which are known by those having skill in the art. For example, the RADIUS server 222 may perform authentication of the connect-on-demand servers 218 and 232, track session start-end times for the connect-on-demand servers 218 and 232, perform various other accounting and access authorization operations, etc.
It will be appreciated that the methods of the present invention may be performed by one or a combination of network devices, and thus, should not be limited to a DNS server, router, RADIUS server, etc. For example, in one embodiment, one network device (e.g., the network device 200) is operable to perform addressing, authentication, routing, and/or other functions, such as those described with reference to Figures 4-7, for a connect-on-demand server. In alternative embodiments, various functions corresponding to the method(s) described below may be distributed among various devices/systems (e.g., a DNS server, router, RADIUS server, Web server, etc.), which may include, but are not necessarily limited to, one or more of the devices shown in and described with reference to Figure 2B.
Figure 3 is a block diagram of a data processing system which may be utilized in a data communication network, according to one embodiment of the invention. For example, the data processing system 300 shown in Figure 3 may represent a client computer system, a connect-on-demand server, a caching server, a RADIUS server, and/or other device, including those shown in Figures 1 and 2B. The data processing system may also represent the network device 200 shown in Figure 2A or one or more of the mechanisms shown therein. As shown in Figure 3, a data processing system 300 includes a bus 316, which couples a processor 302, a storage area 304, a data communication interface 306, and an input/output (I/O) controller 308. The digital processing system 300 may be interfaced to other systems through a data communication interface 306, which may include a modem, network (e.g., Ethernet) card, etc.). As such, the data communication interface 306 may be an analog modem, an ISDN modem, a cable modem, a token ring interface, a satellite transmission interface, a wireless interface, or other interface(s) for providing a data communication link between two or more data processing systems.
The data processing system 300 includes a processor 302, which may represent one or more processors and may include one or more conventional types of such processors, such as RISC, CISC, or other microprocessor. The storage area 304 represents one or a combination of devices/media for storing data. As such, the storage
area 304 may include a dynamic random access memory (DRAM), static RAM (SRAM), a high-speed cache, Flash memory, magnetic disk, optical storage (e.g., CD ROM, DVD, etc.), etc. The storage area 304 typically stores data and/or machine- executable instructions (e.g., routines/programs). Such instructions, when executed by the processor 302 and/or other processors, may cause the processor(s) to perform one or a combination of the methods of the present invention. For example, the storage area 304 may store a routine for tickling a connect-on-demand server. In an embodiment where the data processing system 300 represents a connect-on-demand server, the storage area 304 may store a routine to dial-in to a POP in response to a predetermined event, such as a call or other signal to cause the connect-on-demand server to establish a connection with the POP. Thus, it will be appreciated that the storage area 304 may represent various types and combinations of storage devices/media, and may store data and/or instructions, which when processed by a processor, cause the processor to perform one or a combination of the methods of the present invention.
The I/O controller 308 is shown coupled to a display 310, a keyboard 312, and a mouse/trackball 314. However, the system may include other types of I/O devices in lieu of or in combination with those shown in Figure 3.
It will be appreciated that the data processing system 300 represents only one example of a system, which may have various configurations and architectures, and which may be employed with the present invention. As such, the system 300 may include various other devices or may not include some of those shown in Figure 3. For example, a portable communication and data processing system, which may employ a cellular telephone and/or paging capabilities, may be considered a data processing system which may be used with the present invention.
Figure 5 is a flow diagram of a method for caching information from a connect- on-demand server, according to one embodiment of the invention.
At block 502, a connection is established between a connect-on-demand server and a caching mechanism. Establishment of the connection may be performed according one or more of the methods described above, for example, with reference to Figures 2 A, 2B and 4. In one embodiment, the caching mechanism or other device causes the connect-on-demand server to establish a connection with its POP, which may include, for example, the network device 200, to provide data communication between the caching mechanism and the connect-on-demand server. Alternatively, the connect-on-demand server may also connect to its POP without inducement from a
network device. For example, the first time a connect-on-demand server connects to its POP for registration or other purposes, a connection may also be established with the caching mechanism. In one embodiment, in response to predetermined conditions, the connect-on-demand server may establish connection with the caching mechanism (or visa versa). For instance, at a predetermined time or time interval(s), such a connection may be established. In one embodiment, in response to information being updated in the connect-on-demand server (e.g., a Web page or other information is added, updated, etc.), a connection may be established between the connect-on-demand server and the caching mechanism to also update information therein.
At block 504, the caching mechanism obtains and stores new/updated information from the connect-on-demand server. For example, if the caching mechanism currently does not have stored therein any information from the connect-on- demand server, several or all files may be downloaded from the connect-on-demand server to the caching mechanism. On the other hand, the caching mechanism may determine that only a select number of new files and/or updated versions of previously cached files should be downloaded.
At block 506, the data communication between the caching mechanism and the connect-on-demand server is terminated. In one embodiment, the connection is terminated in response to the caching mechanism having obtained and stored new and/or updated information from the connect-on-demand server.
Figure 6 is a flow diagram of a method for selectively flushing information associated with a connect-on-demand server, according to one embodiment of the invention.
At block 602, a connect-on-demand server establishes data communication with a network device(s) to begin a session. One or a combination of the above-described techniques may be performed for establishing data communication with the connect-on- demand server.
As a result, at block 604, information associated with the session is stored and the session is ended. For example, the information may be associated with a route used by a caching mechanism to provide cached information to a client; a dynamic IP address assigned to the connect-on-demand server and/or other name or addressing records, which may be dynamic; an accounting record associated with the session, which record, for example, may include information related to connection and disconnection of the connect-on-demand server (e.g., session start-end time, valid
connection/disconnection, etc.); tunnel information for the session; and/or a routing table entry for the session.
In one embodiment, an access mechanism (e.g., an access server) for the connect-on-demand server may provide an indication to one or more systems/mechanisms that the session has been terminated and the connect-on-demand server has gone/is going off-line. In another embodiment, the connect-on-demand server itself provides an indication to its POP, which may be associated with the network device(s), an ISP, or other system, to indicate that the connect-on-demand server is going off-line and to instruct a flush, as described below with reference to block 606.
At block 604, in response to termination of the session (e.g., the connect-on- demand server becomes off-line/disconnected from the network connection device and an indication of the same is detected by the network device(s)), at least a portion of the information associated with the session is selectively flushed from one or more mechanisms of the network device.
For example, a caching mechanism, in one embodiment, may flush one or more files/records associated with the connect-on-demand server. Flushing of the caching mechanism may be performed, for example, in response to a predetermined criteria. For example, age of a file cached by the caching mechanism may be one predetermined criteria, such that if a file (e.g., a Web page) from the connect-on-demand server has not been updated in a predefined period of time, the file is flushed from the caching mechanism. As such, the caching mechanism may be able to selectively prevent old or stale information from being stored. As such, storage space may be conserved. Furthermore, if the connect-on-demand server becomes disconnected in an abnormal/invalid manner in a session (e.g., disruption of a communication line), the caching mechanism may flush certain files associated with the session to prevent corrupted or incomplete information from being stored therein. In addition, the caching mechanism may flush route information associated with the caching mechanism providing information to a requesting client during a time interval that the connect-on- demand server is establishing data communication to begin a session.
Similarly, other devices may selectively flush information associated with the connect-on-demand server or a particular session, for example, in response to ending of the session. For example, an addressing mechanism, e.g., a DNS server, in the case where a dynamic IP address is assigned to the connect-on-demand server, may flush the
dynamic IP address upon disconnection of the connect-on-demand server, and a new dynamic IP address may be assigned for each subsequent session wherein the connect- on-demand server establishes a connection to the network. A routing mechanism may flush a route table entry associated with the session, and which may have been utilized for establishing data communication between the connect-on-demand server, the caching mechanism, and/or a requesting client. In addition, a name-address pointer record, tunnel information, etc., may be flushed from one or more mechanisms in response to the connect-on-demand server terminating data communication with the network.
In one embodiment, the connect-on-demand server stores an executable routine for providing selective flushing of information associated with a session. The routine may be stored at the operating system level for the connect-on-demand server and/or other program levels. In one embodiment, the routine, when executed by a processor of the connect-on-demand server, causes the connect-on-demand server to obtain an address (e.g., a dynamic IP address) assigned to the connect-on-demand server for a session. This may be performed during or after PPP negotiations with its POP when initially attempting to establish a connection with a network. The connect-on-demand server may then notify a particular network/device(s) of this address. In one embodiment, the routine also causes the connect-on-demand server to periodically send status messages to a specific monitoring server or set of devices, which status messages indicate its on-line/off-line status. In one embodiment, if a status message is not received by the monitoring device(s) in a predetermined time period, it will be assumed that the connect-on-demand server is off-line, and information associated with the session (e.g., dynamic address, route information, etc.) may be selectively flushed from one or more devices coupled to the network in response thereto. Moreover, the connect-on-demand server may transmit an off-line message prior to disconnecting from the network, in response to which information about the session is flushed from one or more devices. In one embodiment, the monitoring device(s) may send a message to one or more mechanisms to cause a flush therefrom. In one embodiment, the monitoring device includes a dynamic DNS server which stores an executable routine to monitor status messages and to take appropriate actions (e.g., flushing/storing dynamic information, such as address, tunnel, route, etc.) in response to the status messages or in response to not receiving a status message. In an alternative
embodiment, the monitoring device may poll the connect-on-demand server to obtain status information therefrom.
Figure 7 is a flow diagram of a method for performing reverse name-address mapping, according to one embodiment of the invention. In Figure 7, a DNS server (or other addressing mechanism) receives an address resolution request from a client system at block 702. For example, the address resolution request is typically associated with a name, such as the text name, "host.encanto.com," for which an address is to be determined. The name, according to one embodiment of the invention, is associated with a connect-on-demand server.
At block 704, the DNS server resolves the name (e.g., host.encanto.com) into an address and provides the address to the client.
At block 706, the client uses the address to determine an authoritative system for the network portion of the address. Typically, a request is made to the network that is indicated by the address.
At block 708, an authoritative server (e.g., a DNS server, a root server, or other system) replies to the request of the client at block 706, indicating that it is the authoritative server. At the request of the client, the authoritative server maps an address (e.g., the address provided by the DNS server at block 704) to a name (e.g., host.encanto.com), and provides the name to the client.
At block 710, the client determines whether the name associated with the address resolution request of block 702 matches the name provided by the authoritative server at block 708.
It will be appreciated that while the method of Figure 7 is described above with reference to DNS and authoritative servers, the method is not limited to a particular type(s) of server or device. Thus, various types of systems may be used to perform the method depicted in Figure 7.
ALTERNATIVE EMBODIMENTS While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described. In particular, the invention can be practiced in several alternative embodiments that provide methods and apparatuses for a connect-on-demand server and/or a network device(s) for supporting the same.
Therefore, it should be understood that the method and apparatus of the invention can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting on the invention.