One feature provides a method for encoding geolocation information into a next-generation internet protocol (IP) address, such as IPv6, to facilitate distribution of geolocation information among networked devices. A request for an IP address assignment is received from a network device. The geographical location for the network device is obtained. An IP address is assigned or generated that includes the geographical location. The assigned IP address is then provided to the network device. By encoding the geolocation information of a first network device into the IP address assigned to the first network device, other network devices are able to readily obtain the geographical location of the first network device. This method propagates geolocation information for network devices as part of the IP address, thus avoiding the need for separate geolocation distribution messaging. As the network device moves, its IP address is changed to update its geographical location information.
The planet Earth may be divided into regions based on latitudes, longitudes, and/or altitudes to encode geolocation information into an IPv6 address. Geographical locations may be represented in terms of global coordinates, such as longitudes 102 and latitudes 104. Latitudes 104 are horizontal mapping lines that run parallel to Earth's equator and are represented in degrees, minutes (′) and seconds (″) from plus ninety (+90°) degrees to minus ninety (−90°) degrees. Longitudes 102 are mapping lines on Earth that are vertically positioned with one end at the North Pole and the other at the South Pole, each having degrees, minutes, and seconds from +180° degrees to −180° degrees. Degrees of latitude and longitude are divided into minutes and seconds. There are sixty (60) minutes in each degree, and sixty (60) seconds in each minute. Seconds may be further divided into tenths, hundredths, or even thousandths. Every location on Earth, to the resolution of seconds, can be represented as latitude (e.g., 360°×60′×60″) by longitude (e.g., 180°×60′×60″) or 8.398×1011 distinct values. Such resolution of seconds provides geographical locations to within approximately one hundred feet (at the equator) or less. Note that the distance for longitude per degree decreases from the equator to the polar point, potentially increasing the attainable resolution as geographical locations approach the poles. Greater accuracy may also be attained by using smaller units of resolution. For example, using a resolution of tenths of a second would take approximately 8.398×1013 distinct values and provide an accuracy of approximately ten feet or less.
A method is provided for assigning an IP address to a network device encoded with the geolocation information of the network device. A request for an IP address assignment is received from a network device. The geographical location for the network device is obtained and an IP address that includes the geographical location is assigned and provided to the requesting network device. The geographical location may be obtained by determining a distance from a network router having a known geographical location to the network device. Alternatively, the geographical location is obtained from one or more other infrastructure devices or from the requesting network device. In some implementations, the IP address requested is a 128-bit IPv6 address and may be assigned by encoding the geographical location into the IP address. The geographical location may include at least one of a latitude, longitude, or altitude. Additionally, a timestamp may be encoded as part of the IP address, the timestamp indicating the time in which the geographical location was obtained.
The method may further track a movement of the network device to obtain a new geographical location and update the IP address of the network device to reflect its new geographical location. In some embodiments, a Media Access Control (MAC) address of the network device into the IP address.
An apparatus is also provided comprising a network interface to couple the apparatus to a communication network and a processing circuit coupled to the communication interface. The processing unit is configured to (1) receive a request for an IP address assignment from a network device through the network interface, (2) obtain a geographical location for the network device, (3) assign an IP address that includes the geographical location, and (4) provide the assigned IP address to the network device through the network interface.
Another implementation provides a machine-readable medium having one or more instructions for assigning an IP address having an encoded geographical location of a network device, which when executed by a processor causes the processor to: (1) receive a request for an IP address assignment from a network device, (2) obtain a geographical location for the network device, (3) assign an IP address that includes the geographical location, and (4) provide the assigned IP address to the network device.
Yet another feature provides a method for obtaining a geographical location for a network device from an IP address. The IP address of a network device is received and a geographical location is extracted from the IP address. The geographic location in the IP address is then associated with the network device.
An apparatus is also provided comprising: (1) a network interface to couple the apparatus to a communication network, and (2) a processing circuit coupled to the communication interface. The processing circuit may be configured to (1) receive an IP address of a network device, (2) extract a geographical location from the IP address, and (3) associate the geographic location in the IP address with the network device.
Another feature provides an apparatus having capabilities to self-assign an IP address encoded with geolocation information and propagate that address to other network devices. The network device may comprise: (1) a network interface to couple the network device to a communication network, (2) a geolocation interface that provides a geographical location for the network device, and (3) a processing circuit coupled to the communication interface and geolocation interface. The processing circuit may be configured to (1) obtain the geographical location for the network device from the geolocation interface, (2) generate an IP address for the network device that includes the geographical location of the network device, and (3) propagate the IP address of the network device to other network devices via the network interface.
IPv6 is a next-generation IP addressing scheme that increases the IP address length to 128 bits from the 32 bits used in IPv4. IPv6 addresses are represented as eight (8), sixteen bit integers in hexadecimal format (e.g., X:X:X:X:X:X:X:X, where each X represents a 16 bit integer). The IPv6 address is typically divided into a Network ID segment and a Host ID segment. For example, for the IPv6 address N:N:N:N:H:H:H:H, the N:N:N:N integers (64 bits) represent a Network ID while the H:H:H:H integers (64 bits) represent a Host ID. One implementation uses the Network ID integers to encode the geographical location of network devices. The 64-bit Network ID may represent 264 (18.446×1018) distinct values. Other implementations may instead use the Host ID segment, or a combination of the Network ID and Host ID, of an IPv6 address to encode the geographical location of network devices. The choice of which segments or bits within an IPv6 address are used for encoding geographical location information may depend on the availability of addresses among other factors. For instance, in one implementation, the Network ID 010xxxxxxxxxxxxx:N:N:N (where x represents one bit and N represents a 16 bit integer and is typically written as a 1 to 4 hexadecimal digit string, e.g X=0 or A1 or CA09 where leading zeros are omitted) may be reserved for geolocation-specific applications, thereby providing up to sixty-one (61) bits to encode geographical locations. Alternatively, other segments or bits of the Network ID and/or Host ID may be reserved for this purpose.