Patent Publication Number: US-2003225864-A1

Title: Host-based automatic negotiation of an internet protocol address for a network connected device

Description:
BACKGROUND OF THE INVENTION  
       [0001] 1. Field of the Invention  
       [0002] The present invention relates to a method of negotiating Internet Protocol (IP) addresses, and, more particularly, to automatically negotiating an IP address for a non-host network-connected device, such as a peripheral device connected to the network via networking hardware, wherein the negotiation is effected by a network-connected host device. Such automatic negotiation can include, for example, the automatic assignment of an IP address for use by the non-host network-connected device.  
       [0003] 2. Description of the Related Art  
       [0004] It is known for a peripheral device, such as a printer, to be connected to a network, such as an Ethernet Local Area Network (LAN) operating with TCP/IP as a network protocol, in order to allow a number of network connected appliances, such as servers, computers or hosts, to each have access to the shared peripheral device, all devices connected to the network must adhere to a common standard for transporting data on the network. For example, DIX or Institute of Electrical and Electronic Engineers (IEEE) 802.3 define the standard for Ethernet. In adhering to the Ethernet standard, each device connected to the network will have a universally administered address (UAA). Also, in order to function over the network, the shared peripheral device connected to the network must have an Internet Protocol (IP) address that the network connected appliances use to direct communications to the shared peripheral device.  
       [0005] In smaller TCP/IP networks, for example, the host software may automatically configure a printer&#39;s IP address in the address ranges predefined for Internet Connection Sharing (ICS) (192.168.XXX.XXX) or Universal Plug and Play (UpnP) (169.254.XXX.XXX) networks. Manual assignment of the printer IP address is required in other types of networks. Medium to large networks typically use Dynamic Host Configuration Protocol (DHCP) to automatically configure computing devices on the network.  
       [0006] DHCP is a protocol for assigning dynamic IP addresses to devices on a TCP/IP network. DHCP is well defined by RFC 2131, a document issued by the Internet Engineering Task Force (IETF). With dynamic addressing, a device can have a different IP address every time it connects to the network. In some systems, the device&#39;s IP address can even change while it is still connected. DHCP also supports a mix of static and dynamic IP addresses. DHCP simplifies network administration because software keeps track of IP addresses rather than requiring an administrator to manage the task. This means that, for example, a new computer can be added to a network without the additional task of manually assigning a unique IP address to the new computer.  
       [0007] Through DHCP, a device connected to a network requests an IP address from a DHCP server that also is connected to the network. The DHCP server can then assign an IP address to the device for a specified lease period. The device is then responsible for renewing that lease if it wishes to continue using that IP address after the expiration of the lease. The DHCP protocol requires considerable processing power to create DHCP network packets, choose offers from the DHCP servers, and keep track of lease time periods.  
       [0008] Typically, DHCP only allows a computing device to negotiate an address for itself This is because the DHCP server links its allocated IP addresses to the Universally Administered Address (UAA) of the negotiating device. Therefore, typically one network-connected device cannot obtain an IP address from a DHCP server for another network-connected device. However, DHCP has the capability to work across routers, using a field for the IP address of a “relay agent”. Typically a router, as it forwards the packet to a separate subnet, will insert its IP address in that field, which lets the DHCP server know the DHCP negotiation packets are not coming directly from the negotiating host, but rather, from the router.  
       [0009] Alternative methods exist to find a free IP address in DHCP environments, but they are problematic. For instance, a host could find an unused IP address on the subnet using the Internet Control Message Protocol (ICMP) ping command. Different addresses are “pinged”, and if no response is received, it&#39;s assumed the address is unused, even though a device that uses that address might simply be turned off at the time the ping was sent. This creates a situation where IP addresses could be duplicated, which can cause communication problems and seriously degrade network performance.  
       [0010] A reduced feature network adapter can be used to connect a printer to a network, such as an Ethernet LAN. Such reduced feature network adapters possess minimal hardware and processing capability. As such, the cost of adding networking capability to printers is greatly reduced. In order to keep the cost of the reduced feature network adapter low, some features that facilitate network connectivity and that save time and effort for the network user are not provided. Such features not currently available in association with a reduced feature network adapter include, for example, the automatic assignment of IP addresses using DHCP, i.e., using DHCP to obtain and use an IP address. In lieu of automatic assignment of IP addresses, the reduced feature network adapter utilizes a proprietary networking protocol to assign an IP address in specific networking environments, but requires the user to manually assign IP addresses in all other cases.  
       [0011] What is needed in the art is a method for automatically negotiating an IP address for a non-host network-connected device, such as a peripheral device connected to the network via networking hardware, wherein the negotiation is conducted by a network-connected host.  
       SUMMARY OF THE INVENTION  
       [0012] In one embodiment, the present invention provides a method that allows automatic negotiation of IP addresses for a non-host network-connected device, such as a peripheral device connected to a network via networking hardware, wherein the negotiation of IP addresses is conducted by a network-connected host, such as a personal computer.  
       [0013] In one form thereof, the present invention relates to a method for negotiating a device IP address for a device connected to a network. The method includes the steps of configuring a host computer connected to the network to serve as a proxy IP address negotiator; the host computer constructing a first network packet for communicating with an IP address server connected to the network; the host computer sending the first network packet over the network; the IP address server responding to the host computer with a second network packet including a first IP address; the host computer retrieving the first IP address from the second network packet; and the host computer sending the first IP address to the device for adoption by the device as the device IP address.  
       [0014] In another form thereof, the present invention relates to a networked system. The networked system includes a network, a device connected to the network, an IP address server connected to the network and a host connected to the network. The host has a host Internet Protocol (IP) address. The host negotiates a device IP address for the device by executing computer instructions for performing the steps of determining a universally administered address (UAA) of the device; constructing a Dynamic Host Configuration Protocol (DHCP) discover packet, the host inserting the host IP address in a relay agent field of the DHCP discover packet, and including the UAA of the device; sending the DHCP discover packet over the network; retrieving a first IP address from the IP server; and sending the first IP address to the device for adoption by the device as the device IP address.  
       [0015] In still another form thereof, the present invention relates to a non-volatile memory configured with computer program instructions for loading on a host computer. The computer program instructions are adapted to configure the host computer to serve as a proxy IP address negotiator for negotiating a device IP address for a device connected to the network other than the host computer.  
       [0016] In still another form thereof, the present invention relates, in a system including a device connected to a network, an IP address server connected to the network and a host connected to the network, the host having a host Internet Protocol (IP) address, to a method for negotiating a device IP address for the device. The host performs the steps of determining a universally administered address (UAA) of the device; constructing a Dynamic Host Configuration Protocol (DHCP) discover packet by inserting the host IP address in a relay agent field of the DHCP discover packet, and by including the UAA of the device; sending the DHCP discover packet over the network; retrieving a first IP address from the IP address server; and sending the first IP address to the device for adoption by the device as the device IP address.  
       [0017] An advantage of certain embodiments of the present invention is that a networked device utilizing a reduced feature network adapter can benefit from DHCP IP address negotiation when a host serves as a proxy IP address negotiator to negotiate an IP address on behalf of the networked device.  
       [0018] Another advantage of certain embodiments of the present invention is that the low cost of networking hardware having reduced networking features can be preserved while allowing the networking hardware to benefit from automatic IP address negotiation. 
     
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
     [0019] The above-mentioned and other features and advantages of this invention, and the manner of attaining them, will become more apparent and the invention will be better understood by reference to the following description of an embodiment of the invention taken in conjunction with the accompanying drawings, wherein:  
     [0020]FIG. 1 is a block diagram of an exemplary network system embodying the present invention; and  
     [0021]FIGS. 2A and 2B are flow charts which describe the automatic IP address negotiation aspects of one embodiment of the invention. 
    
    
     [0022] Corresponding reference characters indicate corresponding parts throughout the several views. The exemplification set out herein illustrates one exemplary embodiment of the invention, in one form, and such exemplification is not to be construed as limiting the scope of the invention in any manner.  
     DETAILED DESCRIPTION OF THE INVENTION  
     [0023] Referring now to the drawings, there is shown in FIG. 1 a network system  4  including a host  6 , an IP Address server  8 , an imaging apparatus  10  and a network  12 , such as an Ethernet local area network (LAN). All devices connected to network  12  adhere to a common standard, e.g., Ethernet, for transporting data on network  12 . In the present embodiment, host  6  will serve as a proxy IP address negotiator to negotiate an IP address for imaging apparatus  10 .  
     [0024] Host  6 , such as a personal computer, is communicatively coupled to network  12  via a bi-directional communications link  7 . IP Address server  8 , such as a DHCP server, is communicatively coupled to network  12  via a bi-directional communications link  9 . Imaging apparatus  10 , such as a printer, is connected to network  12  via a bi-directional communications link  11 .  
     [0025] In the embodiment shown, host  6  is a personal computer that includes networking hardware  14 , a host processor  16  and non-volatile memory  18 , interconnected and communicating in a manner well known in the art. Networking hardware  14  is full-featured networking hardware, and is connected to network  12  via bi-directional communications link  7  to facilitate communications over specific types of networks, such as for example, Ethernet, and including communications with IP address server  8 , such as a DHCP server. Host processor  16  includes a microprocessor and associated RAM and ROM. Non-volatile memory  18  may be, for example, one or more of a magnetic or optical data storage medium (read only or read/write) with an associated reader, read only memory (ROM), flash memory, or electrically erasable programmable ROM (EEPROM). Through software loaded in non-volatile memory  18 , host processor  16  retrieves and executes computer program instructions that perform the functions depicted in FIGS. 2A and 2B, as discussed more fully below, to automatically negotiate on behalf of imaging apparatus  10  an IP address for use by imaging apparatus  10  and/or networking hardware  22 . Thus, not only can host  6  automatically negotiate for itself its own IP address, but in accordance with the present invention, host  6  serves as a proxy IP address negotiator for imaging apparatus  10 .  
     [0026] IP address server  8 , when operating for example as a DHCP server, typically links its allocated IP addresses to the UAA (Universally Administered Address) of the negotiating device. Therefore, it is not straightforward for one computing device, such as host  6 , to obtain an IP address from IP address server  8  for another device, such as imaging apparatus  10  or other networked hardware.  
     [0027] Imaging apparatus  10 , which serves as a shared networking appliance, includes an imaging engine  20  communicatively coupled to networking hardware  22 . Imaging engine  20  includes an imaging data buffer  24 , imaging apparatus firmware  26 , an imaging processor  28  and imaging hardware  30 . Imaging data buffer  24  includes random access memory (RAM) used to temporarily store image data and associated imaging commands. Imaging apparatus firmware  26  includes non-volatile memory, such as for example read only memory (ROM), flash memory, or electrically erasable programmable ROM (EEPROM), and defines logic and processing functions executed by imaging processor  28 . Imaging processor  28  includes a microprocessor and associated RAM and ROM. Imaging hardware  30  can be, for example, the hardware mechanisms of an ink jet printer or laser printer, which are well known in the art.  
     [0028] Networking hardware  22 , which may be for example a reduced feature network adapter, includes a media access controller  32 , status and command control logic  34  and a hardware filter  36 . Media access controller  32  is connected to network  12  via bi-directional communications link  11  and facilitates communications over specific types of networks, such as, for example, Ethernet. Media access controller  32  also is connected to receive status information regarding imaging apparatus  10  from status and command control logic  34  via a communications path  40 . Media access controller  32  is connected to provide data received from network  12  in the form of network packets to hardware filter  36  via a communications path  42 . Status and command control logic  34  is connected to receive imaging apparatus status information from imaging apparatus firmware  26  via a communications path  46 .  
     [0029] Hardware filter  36  is connected to provide received network packets including image data and associated imaging commands to imaging data buffer  24  via a data channel  48 . Hardware filter  36  is connected to deliver instructions to status and command control logic  34  via command channel  50 .  
     [0030] Data channel  48  is used to send print objects from a workstation host-based printing driver of host  6  to imaging apparatus  10  using a “payload” field in a frame of a imaging network packet, such as in a packet associated with a proprietary protocol having predefined commands. To minimize complexity and thus minimize cost of networking hardware  22 , in one embodiment, hardware filter  36  only permits one workstation, such as host  6 , to “own” data channel  48  at any given point in time. Any information destined for data channel  48  that does not originate from the host “owner” is immediately discarded by hardware filter  36 .  
     [0031] Command channel  50  is used to signal the networking hardware  22  of command activity. Any host-based networking appliance can send commands via network packets to networking hardware  22  which are processed by media access controller  32  and hardware filter  36 . Various command signals can be defined. For example, the signals “connect”, “close”, “terminate” and “status” can be defined as follows. “Connect” is a request to acquire data channel  48  with a desire to send data. “Close” is a request to release data channel  48 . “Terminate” is a request to release data channel  48  and abort a print job. In this scenario, according to one embodiment of the present invention, only a host-based network appliance, such as host  6 , that is the owner of data channel  48  can send a “close” command. “Status” is a request for printer status with no desire to send data. Networking hardware  22  will respond with a status response to a status request command destined for command channel  50  received from any user while imaging apparatus  10  is in an imaging state.  
     [0032] To facilitate printing, the print driver loaded in a workstation, such as host  6 , creates host-based networking printer specific data packets in a format compliant with the predefined protocol and delivers the data packets in order and unaltered to a host-based networking printer, such as imaging apparatus  10 . Workstation host-based networking print drivers are designed to cooperate in order to facilitate the “fair-sharing” of the host-based networking printer amongst a number of workstations. In adhering to the communication standard for network  12 , each networked-connected device will have a universally administered address (UAA), which in the case of imaging apparatus  10  is a media access controller (MAC) address. Also, to communicate on TCP/IP networks, each network-connected device will have a unique IP address. Further adherence dictates that the host-based networking appliances will use these addresses to exchange basic units of data (frames) in networking packets. The addresses are used by networking hardware  14 , for example, to deliver frames to an intended destination.  
     [0033] As a simplified example, and assuming that imaging apparatus  10  already has an IP address, communications is initiated by host  6  with imaging apparatus  10  via network  12  and communications links  7  and  11 . Host  6  obtains ownership of data channel  48  and provides image data and associated imaging commands in the form of network packets to imaging apparatus  10 , which is processed and stored in imaging data buffer  24 . During image formation, imaging processor  28  executes imaging instructions stored in imaging apparatus firmware  26  to retrieve the image data and associated imaging commands that are stored in imaging data buffer  24 . Imaging processor  28  then processes the retrieved image data and associated imaging commands to generate signals to control the operation of imaging hardware  30  to form a printed image.  
     [0034] It is known that in some networking environments the IP address of a network-connected device can be statically assigned, or may be dynamically assigned. However, in accordance with one embodiment of the present invention, in order for imaging apparatus  10 , or networking hardware  22 , to utilize dynamic IP address assignment, such as by utilizing DHCP, host  6  serves as a proxy IP address negotiator for imaging apparatus  10 , and as such host  6  is capable of handling the associated automatic IP address negotiation network packets, such as DHCP packets. In general, with one embodiment of the present invention, by processing automatic IP address negotiation network packets by host software executing on host processor  16 , while using networking hardware  22  to perform many of the rudimentary networking protocol functions, such as for example those associated with any proprietary protocol, the cost of providing an automatic IP address negotiation capability, such as through DHCP, to imaging apparatus  10  is minimized.  
     [0035] A method according to one embodiment of the present invention is described in further detail below with reference to FIGS. 2A and 2B. To simplify the discussion, the method that follows will be described with respect to a DHCP environment, however, those skilled in the art will recognize that the principles of the invention may be applied to other automatic IP address negotiation protocols without departing from the spirit of the invention.  
     [0036] In the present embodiment, the method of the present invention is implemented through computer program instructions loaded in non-volatile memory  18  and executed by host processor  16 , which controls interaction between host  6  and imaging apparatus  10  and controls interaction between host  6  and IP address server  8 .  
     [0037] At step S 102 , host  6  sends a proprietary discover broadcast over network  12  to determine, at step S 104 , whether any device connected to network  12  that can interpret the proprietary discover broadcast packet does not have a valid IP address.  
     [0038] At step S 104 , if the decision is NO, then the process returns to step S 102 . If the decision is YES, then the process proceeds to step S 106 .  
     [0039] At step S 106 , host  6  broadcasts a DHCP discover packet using the UAA of the device for which an IP address is desired. In this example, it will be assumed that the device for which an IP address is desired is imaging apparatus  10 . More specifically, host  6  inserts the IP address of host  6  into the “relay agent” field of the DHCP discover packet, and includes the UAA of imaging apparatus  10  in the DHCP discover packet. In this example, the UAA will be the media access controller (MAC) address of networking hardware  22  of imaging apparatus  10 . In this way, the host  6  informs any DHCP server on network  12  of a client in need of an IP address. In this example, it will be assumed that IP address sever  8  is a DHCP server. IP address server  8  assumes that host  6  is a router device and will send DHCP negotiation packets to host  6 , and allocate an IP address for networking hardware  22 , and as such, for imaging apparatus  10 .  
     [0040] At step S 108 , host  6  determines whether any DHCP offer has been received.  
     [0041] If the result of step S 108  is NO, then the process proceeds to step S 110  to determine whether the maximum number of attempts, for example five, have been exceeded. If at step S 110  the determination is NO, then the process returns to step S 106  to resend the broadcasted DHCP discover packet. If at step S 110  the determination is YES, then an error condition is declared and the process returns to the beginning at step S 102 .  
     [0042] If the result of step S 108  is YES, the process proceeds to step S 112 .  
     [0043] At step S 112 , host  6  chooses one of the DHCP offer packets, assuming multiple DHCP offer packets were received. In this example, it is assumed that host  6  has selected to respond to an offer packet from IP address server  8 . Such a selection can be, for example, a random selection.  
     [0044] At step S 114 , host  6  constructs and broadcasts a DHCP request packet. The process then proceeds to step S 116  (FIG. 2B).  
     [0045] At step S 116 , host  6  determines whether any DHCP ACK or NACK packets were received.  
     [0046] If, at step S 116 , at least one NACK packet was received and no ACK packet was received, then at step S 118 , host  6  constructs a DHCP release packet. Host  6  then sends the DHCP release packet over network  12 . Then, following step S 118 , the process proceeds to step S 130 , and returns to step S 102  to again start the automatic IP address negotiation routine.  
     [0047] If, at step S 116 , neither an ACK nor a NACK was received, an error condition is declared, and the process proceeds to step S 130 , which in turn directs the process to return to step S 102 .  
     [0048] If, at step S 116 , it is determined that an ACK packet was received, then the process proceeds to step S 119 .  
     [0049] At step S 119 , it is determined whether the IP address in the ACK packet is available. In particular, at step S 119 , host  6  constructs an Address Resolution Protocol (ARP) request packet using the IP address specified in the ACK packet. Host  6  then sends the ARP request packet over network  12 . Host  6  then determines whether any ARP reply packet has been received. If an ARP reply packet was received, then host  6  judges that the IP address in the ACK packet is not available. If no ARP reply packet was received, then host  6  judges that the IP address in the ACK packet is available.  
     [0050] Thus, if the decision at step S 119  is NO, then the process proceeds to step S 126 , wherein host  6  constructs and sends a DHCP decline packet over network  12 , and thereafter at step S 130  the process returns to step S 102 .  
     [0051] However, if the decision at step S 119  is YES, then the process proceeds to step S 120 . At step S 120 , host  6  retrieves from the DHCP ACK packet the IP address for use by imaging apparatus  10  and the associated IP address lease time. Host  6  stores the IP address lease time in RAM in host processor  16 . The process then proceeds to step S 122 .  
     [0052] At step S 122 , host  6  constructs a proprietary device IP configuration packet including the IP address retrieved from the DHCP ACK packet, and host  6  sends the device IP configuration packet to networking hardware  22  of imaging apparatus  10 .  
     [0053] At step S 124 , it is determined whether the IP address was accepted by imaging apparatus  10 . This determination can be made, for example, by sending a query packet using the IP address assigned to imaging apparatus, and awaiting a reply. If imaging apparatus  10  does not reply, then host  6  will assume that the IP address was not accepted.  
     [0054] If the determination at step S 124  is NO, then at step S 126  host  6  constructs and sends a DHCP decline packet over network  12 , and thereafter the process returns to step S 102 . If the determination at step S 124  is YES, then the process proceeds to step S 128 .  
     [0055] At step S 128 , host  6  executes software that monitors the IP address lease time on behalf of imaging apparatus  10 . When the host software&#39;s lease algorithm indicates a new lease needs to be negotiated, i.e., the lease time is about to expire, host  6  negotiates the new lease time using the UAA of imaging apparatus  10 , i.e., the MAC address of networking hardware  22 , and using the IP address of host  6  in the “relay agent” field of the DHCP request packet. Thus, host  6  determines when to renegotiate the IP address to extend the lease of the IP address assigned to imaging apparatus  10 . This lease renewal process, however, is transparent to imaging apparatus  10 .  
     [0056] Following initiation of lease time monitoring at step S 128 , the process proceeds to step S 130 , and in turn the process returns to step S 102 .  
     [0057] Thus, the exemplary embodiment of the present invention as described herein provides a method that allows automatic negotiation of IP addresses for a non-host network-connected device, such as a peripheral device connected to a network via networking hardware, wherein the negotiation is conducted by a proxy IP address negotiator, such as host  6 , rather than by the non-host based network-connected device itself.  
     [0058] It is contemplated that embodiments of the present invention may be implemented in a host, such as host  6 , as either a primary automatic IP address negotiation utility for non-host network-connected devices, or as an optional or an auxiliary automatic IP address negotiation utility for non-host network-connected devices.  
     [0059] While this invention has been described as having an exemplary design, the present invention can be further modified within the spirit and scope of this disclosure. This application is therefore intended to cover any variations, uses, or adaptations of the invention using its general principles. Further, this application is intended to cover such departures from the present disclosure as come within known or customary practice in the art to which this invention pertains and which fall within the limits of the appended claims.