DETERMINING A LOCATION OF A TARGET WIRELESS DEVICE
Various techniques and systems are provided for determining a location of a target wireless device. Specifically, various techniques and systems are provided for determining a location of a wireless device using timestamps assigned to communications transmitted between the wireless device and one or more other wireless devices on a same WiFi channel as the wireless device. Implementations describe devices, computer-program products, and methods including transmitting a first frame by a network device on a channel of a radio frequency band, assigning a first timestamp to the frame, assigning a second timestamp to a second frame, determining a time difference between the first timestamp and the second timestamp, receiving an alternative time difference corresponding to an alternative network device, and determining a location of the client device using the time difference and the alternative time difference.
1 . A computer-implemented method, comprising:
transmitting a first frame by a network device on a channel of a radio frequency band;
assigning a first timestamp to the frame, wherein the first timestamp includes a time the frame is transmitted;
assigning a second timestamp to a second frame, wherein the second frame originates from a client device in response to the first frame and wherein the second timestamp indicates a time that the second frame is received at the network device;
determining a time difference between the first timestamp and the second timestamp;
receiving an alternative time difference corresponding to an alternative network device, wherein the alternative time difference is based on a time that the alternative network device received the first frame and a time that the alternative network device received the second frame; and
determining a location of the client device using the time difference and the alternative time difference.
2 . The method of claim 1 , further comprising:
receiving a second alternative time difference corresponding to a second alternative network device on the channel, wherein the second alternative time difference is based on a time that the second alternative network device receives the first frame and a time that the second alternative network device received the second frame; and
determining a location of the client device using the time difference, the alternative time difference, and the second alternative time difference.
3 . The method of claim 1 , further comprising:
transmitting, by the network device, channel information corresponding to the channel, wherein the channel information facilitates the alternative network device connecting to the channel.
4 . The method of claim 1 , further comprising:
determining that the network device and the alternative network device are connected to the same channel.
5 . The method of claim 1 , further comprising:
assigning the first timestamp to the first frame before the first frame is transmitted; and
storing the first timestamp.
6 . The method of claim 1 , further comprising:
transmitting a location query including the time difference and the alternative time difference; and
receiving a response to the location query including a location of the client device.
7 . The method of claim 1 , wherein the first frame facilitates the second frame connecting to the channel.
8 . The method of claim 1 , wherein the second frame includes an indication that the client device is connected to the channel.
9 . A network device, comprising:
one or more processors;
a non-transitory computer-readable medium containing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:
transmitting a first frame by a network device on a channel of a radio frequency band;
assigning a first timestamp to the frame, wherein the first timestamp includes a time the frame is transmitted;
assigning a second timestamp to a second frame, wherein the second frame originates from a client device in response to the first frame and wherein the second timestamp indicates a time that the second frame is received at the network device;
determining a time difference between the first timestamp and the second timestamp;
receiving an alternative time difference corresponding to an alternative network device, wherein the alternative time difference is based on a time that the alternative network device received the first frame and a time that the alternative network device received the second frame; and
determining a location of the client device using the time difference and the alternative time difference.
10 . The network device of claim 9 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:
receiving a second alternative time difference corresponding to a second alternative network device on the channel, wherein the second alternative time difference is based on a time that the second alternative network device receives the first frame and a time that the second alternative network device received the second frame; and
determining a location of the client device using the time difference, the alternative time difference, and the second alternative time difference.
11 . The network device of claim 9 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:
transmitting, by the network device, channel information corresponding to the channel, wherein the channel information facilitates the alternative network device connecting to the channel.
12 . The network device of claim 9 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:
determining that the network device and the alternative network device are connected to the same channel.
13 . The network device of claim 9 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:
assigning the first timestamp to the first frame before the first frame is transmitted; and
storing the first timestamp.
14 . The network device of claim 9 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:
transmitting a location query including the time difference and the alternative time difference; and
receiving a response to the location query including a location of the client device.
15 . The network device of claim 9 , wherein the first frame facilitates the second frame connecting to the channel.
16 . The network device of claim 9 , wherein the second frame includes an indication that the client device is connected to the channel.
17 . A computer-program product tangibly embodied in a non-transitory machine-readable storage medium of a computing device, including instructions that, when executed by one or more processors, cause the one or more processors to:
transmit a first frame by a network device on a channel of a radio frequency band;
assign a first timestamp to the frame, wherein the first timestamp includes a time the frame is transmitted;
assign a second timestamp to a second frame, wherein the second frame originates from a client device in response to the first frame and wherein the second timestamp indicates a time that the second frame is received at the network device;
determine a time difference between the first timestamp and the second timestamp;
receive an alternative time difference corresponding to an alternative network device, wherein the alternative time difference is based on a time that the alternative network device received the first frame and a time that the alternative network device received the second frame; and
determine a location of the client device using the time difference and the alternative time difference.
18 . The computer-program product of claim 17 , further comprising instructions that, when executed by one or more processors, cause the one or more processors to:
receive a second alternative time difference corresponding to a second alternative network device on the channel, wherein the second alternative time difference is based on a time that the second alternative network device receives the first frame and a time that the second alternative network device received the second frame; and
determine a location of the client device using the time difference, the alternative time difference, and the second alternative time difference.
19 . The computer-program product of claim 17 , further comprising instructions that, when executed by one or more processors, cause the one or more processors to:
transmit, by the network device, channel information corresponding to the channel, wherein the channel information facilitates the alternative network device connecting to the channel.
20 . The computer-program product of claim 17 , further comprising instructions that, when executed by one or more processors, cause the one or more processors to:
determine that the network device and the alternative network device are connected to the same channel.
21 . The computer-program product of claim 17 , further comprising instructions that, when executed by one or more processors, cause the one or more processors to:
assign the first timestamp to the first frame before the first frame is transmitted; and
store the first timestamp.
22 . The computer-program product of claim 17 , further comprising instructions that, when executed by one or more processors, cause the one or more processors to:
transmitting a location query including the time difference and the alternative time difference; and
receiving a response to the location query including a location of the client device.
23 . The computer-program product of claim 17 , wherein the first frame facilitates the second frame connecting to the channel.
24 . The computer-program product of claim 17 , wherein the second frame includes an indication that the client device is connected to the channel.