Devices connected to wired or wireless networks often communicate with each other to exchange, collect, or share various forms of information. In many situations the method of transmitting the information or the information itself may be dependent upon the physical location of the various network devices. Because many network devices are mobile, wireless, or otherwise transitory in nature however, the physical location of these devices is often not known or not shared with other network devices. This lack of location awareness among network devices may reduce the effectiveness of network communications and prevent the utilization of location-dependent features and functions.
Some embodiments described herein are associated with a “Dynamic Host Configuration Protocol” or “DHCP”. As used herein, the terms “Dynamic Host Configuration Protocol” and “DHCP” may be used interchangeably and generally refer to a framework, protocol, and/or method for automating, managing, and/or conducting the configuration of network devices. An example of such a protocol is that defined by the Internet Engineering Task Force (IETF) Dynamic Host Configuration Protocol for IPv6 (DHCPv6), RFC 3315, Droms et al., July, 2003. Other versions of DHCP and other configuration protocols may be used in accordance with some embodiments.
By way of example, a network client and a network server operating on a network may exchange DHCP messages to assign an Internet Protocol (IP) address to the network client upon connection of the network client to the network. As used herein, the term “DHCP message” generally refers to any string, code, command, signal, packet, datagram, information, and/or other communication associated with the configuration of a network device. Examples of DHCP messages and message formats may be found in the specifications for DHCPv6 as cited above, and are also briefly described herein. Formats other than those referenced and/or described herein may also be used without deviating from the scope and purpose of the presented embodiments.
Some embodiments are associated with “locations”, “physical locations”, or “location information”. As used herein, the phrases “location” or “physical location” may be used interchangeably and may refer to any site, spot, point, place, and/or locale where an object or other device resides, occupies, exists, or can otherwise be associated with. As used herein, the term “location information” may refer to any data, string, coordinate, reference, identifier, and/or other information related to the location of a particular object, device, and/or grouping or other combination of objects and/or devices. Examples of location information include, but are not limited to, planar, cylindrical, polar, geodetic, and/or other coordinates, location descriptions or other identifiers, and/or any combination thereof.
In addition, some embodiments are associated with a “network device”. As used herein, the phrase “network device” may refer to any device that can communicate via a network. Examples of network devices include a Personal Computer (PC), a workstation, a server, a printer, a scanner, a facsimile machine, a copier, a Personal Digital Assistant (PDA), a storage device (e.g., a disk drive), a hub, a router, a switch, and a communication device (e.g., a modem, a wireless phone, etc.). Network devices may comprise one or more network components. As used herein, the term “network component” may refer to a network device, or a component, piece, portion, or combination of network devices. Examples of network components may include a Static Random Access Memory (SRAM) device or module, a network processor, and a network communication path, connection, port, or cable.
Referring first to
System 100 may comprise, for example, one or more network nodes 102a-102n connected to a DHCP server 104 via a network 106. The nodes 102a-102n may be or include any type or configuration of network devices including, for example, client computers such as corporate workstations. In some embodiments, the nodes 102a-102n may be or include one or more components of a network device. For example, a node 102 may be a network interface card (NIC) connected to a corporate workstation or other client computer. According to some embodiments, a node 102 may be or include a network cable, port, and/or other type of network connection or path. One or more network nodes 102a-102n may, according to some embodiments, be directly connected and/or otherwise in direct communication with each other (i.e., without using the network 106, for example).
The DHCP server 104 may be or include a network server or other network device capable of managing, sending, and/or receiving DHCP messages. In some embodiments, the DHCP server 104 may be a central server such as a corporate or internet service provider (ISP) server operating a DHCP system to manage and distribute IP addresses to network client devices such as network nodes 102a-102n. The DHCP server 104 may be a single server or other computing device or may be or include multiple and/or various network devices and components. In some embodiments, the DHCP server 104 may be or include a node 102. The system 100 may, for example, function without a separate, distinct, and/or dedicated DHCP server 104 (e.g., one or more of the nodes 102a-102n may manage and/or operate the system 100).
The network 106 may be any known or available type of wired or wireless network, and may also be or include a combination of networks of similar or varying types. The network 106 may be or include, for example, a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a proprietary network, a wireless network, and/or an Internet Protocol (IP) network (e.g., an intranet or the Internet). According to some embodiments, the DHCP server 104 and one or more network nodes 102a-102n may exchange information over network 106 in accordance with the Fast Ethernet LAN transmission standard 802.3-2002® published by the Institute of Electrical and Electronics Engineers (IEEE).
By way of example, a node 102 may connect to the network 106 and transmit a DHCP message (such as a DHCP “SOLICIT” message) in an attempt to search for network servers capable of providing network configuration information. The DCHP server 104 may receive the message from the node 102 and send a reply DHCP message (e.g., an “ADVERTISE” or “REPLY” message type). The reply DHCP message may contain, for example, configuration and other information such as an available IP address that the node 102 may use to operate on the network 106. The DHCP server 104 and the node 102 may exchange other DCHP messages and/or message types relating to various procedures, protocols, and other necessary or desirable communications.
The variable-length option field 120 may contain information associated with various option types and option parameters. Options may be or include information relating to and/or associated with various configuration, identification, and other communication related data. In the DHCP message described above where the DHCP server 104 sends the reply to the node 102 for example, the option field 120 may contain the IP address information intended for use by the node 102.
In
Turning now to
In some embodiments (as shown in
At 154, a DHCP message that contains location information may be sent from one network device to another. In some embodiments, the location information may be included as an option within a standard DHCP message type. The DHCP message may also, for example, be a special DHCP message created specifically to facilitate the exchange of location information. By way of example, a server having access to network access point location information may respond to a DHCP message sent over a network by a computer workstation. Assuming that the computer workstation is connected to a network access point having accessible location information, the server may, for example, send a DHCP message including the location information to the workstation. According to some embodiments, the server may send the location information associated with the server to the workstation in a DHCP message. Also in some embodiments, a network device such as a portable computer with a GPS component may connect to a wireless network and send a server (or other network device) a DHCP message containing the GPS and/or other coordinates associated with the portable device. In some embodiments, the network device that receives the DHCP message with location information may request such a message from the sending device.
By way of example, a computer workstation may send a DHCP “SOLICIT” message over a network to identify and/or locate DHCP-enabled servers. In some embodiments, the “SOLICIT” message may contain and/or be indicative of a request for location information. Also in some embodiments, the request for location information may specify and/or otherwise indicate a particular network device (or set or group of network devices) for which the location information is requested. The message may be received by a DHCP server and the DHCP server may lookup, access, and/or otherwise determine the appropriate location information associated with the computer workstation. The DHCP server may create and send a DHCP message containing the location information to the computer workstation. The message may, according to some embodiments, have a format as shown in
For location information exchange purposes in accordance with some embodiments, the option code field 122 may contain, for example, the identifier “OPTION_SERVER_LOCATION” (or a possible corresponding integer identifier such as fourteen). The option length field 124 may, for example, represent the number of octets that the location information comprises. As shown in
Turning now to
By way of example, a DHCP server may receive a DHCP message from a network device. The network device may, in some embodiments, be location aware, and may provide the device's location information to the server via the DHCP message. As an example, a portable device with GPS capability may communicate with a DHCP server over a network. The portable device may continuously or intermittently transmit location information (e.g., GPS coordinates) to the DHCP server via DCHP messages. The DHCP server may receive the location information-laden DHCP message at 172.
At 174, the location information may be stored and/or otherwise recorded. Continuing the example from above, the DHCP server may store the location information associated with the portable device. The stored location information may be useful, for example, for tracking the portable device, enhancing communications and/or communications performance (e.g., directing communications through devices most proximate to the portable device's current location), and/or for various other processing or communications purposes. The information may be stored, as described elsewhere herein, in various locations accessible to the DHCP server and/or other network devices or components.
Referring now to
Turning now to
The database 202 may be or include any known or available type of data storage medium including, but not limited to, a hard disk drive, physical memory, virtual memory, Random-Access Memory (RAM), a Digital Video Disk (DVD), and/or a Compact Disc (CD). The database 202 may store any information associated with the server 104, the network 106, and/or one or more network devices 102a-102n, including location information associated with network devices 102a-102n. In some embodiments the database 202 may reside within, attached, and/or adjacent to the server 104. The database 202 may also be or include multiple databases, be a part or component of a separate network device 102a-102n, and/or may itself be a network device 102a-102n. In some embodiments, fewer or more databases 202 may be employed in system 200.
The lookup table 220 may be or include any type or configuration of data storage medium and/or device including, but not limited to, a memory module, a database table, a spreadsheet, and/or any other type or form of data file or repository. In some embodiments the lookup table 220 may reside within the server 104 or other network device 102a-102n. The lookup table 220 may also reside separately from and/or be independent from database 202.
In some embodiments, the server 104 may be a corporate enterprise server that performs various tasks related to network administration. The network 106 may be an intranet or other IP-based network that connects various resources within a corporation. The network devices 102a-102n may include, for example, multiple corporate workstations, printers, facsimile machines, and other network or Web servers located in, connected to, or otherwise associated with the corporate network 106. As shown in
By way of example, when a particular network device 102b such as a laptop computer attempts to connect to the network 106, the network device 102b may send a DHCP message through the network to search for available DHCP-enabled servers. This may occur, for example, when a corporate employee attempts to connect their laptop and logon to a network in a branch office that the employee does not usually work from. The server 104 may receive the DHCP message and may reply to the network device 102b with a DCHP message containing and/or indicating an IP address that the network device 102b may use to operate on the corporate network 106.
Continuing the example, assuming that the network device 102b (the laptop) is operating from a physical location that is different from where it usual operates, it is most likely not location aware. In other words, the laptop 102b does not contain or have access to information relating to the physical position of the laptop in relation to any fixed or known point of reference. In some embodiments however, the laptop 102b may be connected through a network cable or other wired connection device to the network 106. For example, the laptop 102b may be connected via a Category 5, 5e, or 6 network cable to a wall receptacle 102c in an office or cubicle at the corporate branch office. The wall receptacle or jack 102c may be labeled, for example, “3N22a”, an identifier representing the wall jack 102c as being located on the north side of the third floor in room (or cubicle) number twenty-two, jack ‘a’.
In some embodiments, the server 104 may have access to physical location information associated with the various network connection points (such as wall jack 102c) located throughout the corporate branch office. By way of example, the server 104 may store or otherwise have access to location information associated with the wall jack 102c identified as “3N22a”, described above. In some embodiments, the location information for the wall jack 102c may include the latitude and longitude coordinates for that particular wall jack 102c. For example, the server 104 may be in connection with a database 202 that contains a lookup table 220 (as shown in
According to some embodiments, the server 104 may lookup the location information associated with the wall jack 102c. This may be performed, for example, when the laptop 102b connects to the jack 102c and solicits the network with a DHCP message. In some embodiments, the server 104 may detect the connection of the laptop 102b to the network 106. According to some embodiments, the server 104 may access, lookup, and/or otherwise determine the available location information when the server 104 receives a DHCP message from the laptop 102b. The server 104 may then send the location information to the laptop 102b, making the laptop 102b location aware. The server 104 may also, according to some embodiments, make the laptop 102b location aware in response to the server 104 having detected the connection of the laptop 102b to the network 106. By way of example, the server 104 may respond to the laptop 102b with a DHCP message that includes the location information associated with wall jack 102c. The location information may be included in the DHCP message, for example, as and/or within a DHCP option. In some embodiments the laptop 102b may use the location information to update and/or otherwise configure various settings and/or parameters of the laptop 120b.
For example, the laptop 102b may connect to a wall jack 102c in a branch office as described above. The laptop 102b may solicit the network 106 by sending a DHCP message (through the wall jack 102c to network 106, for example). The server 104 may receive the DHCP message, lookup the location information associated with the wall jack 102c that the laptop 102b is communicating from, and send the location information to the laptop 102b as an option in a DHCP reply message. The laptop 102b may then, for example, automatically update the clock and/or regional settings of the laptop 102b to reflect the appropriate time zone (possibly including daylight savings time, etc.) determined by the received location information.
Referring now to
Multiple tables and/or databases may be used to store the information shown in
The several embodiments described herein are solely for the purpose of illustration. Persons skilled in the art will recognize from this description that other embodiments may be practiced with modifications and alterations limited only by the claims.