Radio Transmitter Identification and Congestion Control

A system and a method are disclosed for transmitting and receiving wireless signals in a shared communication channel. Embodiments include sending, by a client device, a request to connect with a base station and receiving, in response to the request, a message including a radio transmission slot and a digital identifier. The radio transmission slot identifies a frequency channel and a time slot for transmitting a wireless signal. The client device can then transmit wireless signals using the frequency channel identified by the radio transmission slot during the time slot identified by the radio transmission slot. The client device encodes the digital identifier in the transmitted wireless signal.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/999,821, filed Aug. 7, 2014, and U.S. Provisional Application No. 61/999,818, filed Aug. 7, 2014, both of which are incorporated by reference in their entirety.

BACKGROUND

1. Field of Art

The disclosure generally relates to the field of wireless communications, and more specifically to controlling the congestion in a wireless communication channel.

2. Description of the Related Art

Conventionally, in a wireless communication system, multiple client devices send and receive wireless signals using a shared communication channel. For instance, multiple client devices (such as smartphones) may transmit and receive wireless signals to and from a base station (e.g., a cellular base station, a wireless router) using a preset base frequency (e.g., 2.4 GHz). In such system, each client device may try to utilize the shared spectrum as much as possible with the assumption that other will do the same. Oftentimes, this results in a Nash Equilibrium, where the participants do not cooperate with each other.

Therefore, there is a need for a mechanism to increase the efficiency of the utilization of a shared communication channel.

BRIEF DESCRIPTION OF DRAWINGS

The disclosed embodiments have other advantages and features which will be more readily apparent from the detailed description, the appended claims, and the accompanying figures (or drawings). A brief introduction of the figures is below.

FIG. 1 illustrates one embodiment of components of an example machine able to read instructions from a machine-readable medium and execute them in a processor (or controller).

FIG. 2 illustrates one embodiment of a wireless data transmission system environment.

FIG. 3A illustrates a graph showing multiple radio transmission slots, according to one embodiment.

FIG. 3B illustrates a graph showing multiple radio transmission slots with different time lengths, according to one embodiment.

FIG. 4A illustrates a flow diagram of a process for transmitting data in a wireless communication channel, according to one embodiment.

FIG. 4B illustrates a flow diagram of a process for transmitting data in a wireless communication channel that is oversubscribed, according to one embodiment.

DETAILED DESCRIPTION

The Figures (FIGS.) and the following description relate to preferred embodiments by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of what is claimed.

Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the disclosed system (or method) for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.

Configuration Overview

One embodiment of a disclosed system, method, and computer readable storage medium for transmitting and receiving wireless signals in a shared communication channel. Embodiments include sending, by a client device, a request to connect with a base station and receiving, in response to the request, a message including a radio transmission slot and a digital identifier. The radio transmission slot identifies a frequency channel and a time slot for transmitting a wireless signal. The client device can then transmit wireless signals using the frequency channel identified by the radio transmission slot during the time slot identified by the radio transmission slot. The client device encodes the digital identifier in the transmitted wireless signals.

Computing Machine Architecture

FIG. 1 is a block diagram illustrating components of an example machine able to read instructions from a machine-readable medium and execute them in a processor (or controller). Specifically, FIG. 1 shows a diagrammatic representation of a machine in the example form of a computer system 100 within which instructions 124 (e.g., software) for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.

The machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, a smartphone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions 124 (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute instructions 124 to perform any one or more of the methodologies discussed herein.

The example computer system 100 includes a processor 102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), one or more application specific integrated circuits (ASICs), one or more radio-frequency integrated circuits (RFICs), or any combination of these), a main memory 104, and a static memory 106, which are configured to communicate with each other via a bus 108. The computer system 100 may further include graphics display unit 110 (e.g., a plasma display panel (PDP), a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)). The computer system 100 may also include alphanumeric input device 112 (e.g., a keyboard), a cursor control device 114 (e.g., a mouse, a trackball, a joystick, a motion sensor, or other pointing instrument), a storage unit 116, a signal generation device 118 (e.g., a speaker), and a network interface device 120, which also are configured to communicate via the bus 108.

The storage unit 116 includes a machine-readable medium 122 on which is stored instructions 124 (e.g., software) embodying any one or more of the methodologies or functions described herein. The instructions 124 (e.g., software) may also reside, completely or at least partially, within the main memory 104 or within the processor 102 (e.g., within a processor's cache memory) during execution thereof by the computer system 100, the main memory 104 and the processor 102 also constituting machine-readable media. The instructions 124 (e.g., software) may be transmitted or received over a network 126 via the network interface device 120.

While machine-readable medium 122 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions (e.g., instructions 124). The term “machine-readable medium” shall also be taken to include any medium that is capable of storing instructions (e.g., instructions 124) for execution by the machine and that cause the machine to perform any one or more of the methodologies disclosed herein. The term “machine-readable medium” includes, but not be limited to, data repositories in the form of solid-state memories, optical media, and magnetic media.

System Environment

FIG. 2 illustrates a system environment for wireless data transmission, according to one embodiment. The system environment 200 includes multiple client devices 201, a base station 210, a network 220, and a domain authority 230. In alternative configurations, different and/or additional components may be included in the system environment 200. Each client devices 201, the base station 210, or the domain authority 230 may be comprised of components as described with the example computer system 100.

A client device 201 is one or more computing devices capable of receiving user input as well as transmitting and/or receiving data via the network 220. In one embodiment, the client device 201 is a conventional computer system, such as a desktop computer or a laptop computer. Alternatively, the client device 201 may be a device having computer functionality, such as a personal digital assistant (PDA), a mobile telephone, a smartphone or another suitable device. A client device 201 is configured to communicate with other devices via the network 220.

Client device 201 may connect to the network 220 via a base station 210. For instance, client devices 201A, 201B, and 201C send data wirelessly to the base station (e.g., a cellular base station, or a wireless router) and the base station forwards the data to the network to be sent to their corresponding recipient. Additionally, the base station receives data addressed to client devices 201A, 201B, and/or 201C and sends the data wirelessly to the corresponding client device.

In some embodiments, client devices 201 subscribe with the base station prior to sending or receiving data via the base station 210. For instance, client devices 201 may send a request to the base station 210 to subscribe with the base station. The base station 210 may grant or deny the request. The base station 210 may additionally send an identifier to the client device 201 requesting to subscribe with the base station 210.

In some embodiments, a domain authority 230 handles the subscription of a client device 201 with the base station 210. For instance, a client device 201 may request to subscribe with the base station 210. The base station 210 forwards the request to the domain authority 230 and the domain authority grants or denies the request and generates an identifier for the client device 201. The domain authority 230 sends the generated identifier for the client device 201 to the base station 210, and the base station 210 sends a response to the client device 201 that includes the identifier generated by the domain authority 230.

The network 220 may comprise any combination of local area and/or wide area networks, using both wired and/or wireless communication systems. In one embodiment, the network 220 uses standard communications technologies and/or protocols. For example, the network 220 includes communication links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 3G, 4G, code division multiple access (CDMA), digital subscriber line (DSL), etc. Examples of networking protocols used for communicating via the network 220 include multiprotocol label switching (MPLS), transmission control protocol/Internet protocol (TCP/IP), user datagram protocol (UDP), hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP), and file transfer protocol (FTP). Data exchanged over the network 220 may be represented using any suitable format, such as hypertext markup language (HTML), extensible markup language (XML) or JavaScript Object Notation (JSON). In some embodiments, all or some of the communication links of the network 220 may be encrypted using any suitable technique or techniques.

Radio Transmitter Identification

FIG. 3A illustrates a graph showing multiple radio transmission slots to be used by client devices to connect to the network via a base station, according to one embodiment. The graph of FIG. 3A has a first axis with multiple time slots, and a second axis with multiple frequency slots. As used herein, a radio transmission slot is characterized by a time slot and a frequency channel. For instance, radio transmission slot 310A is characterized by time slot T10 and frequency channel F7. That is, a client device 201 that is assigned to radio transmission slot 310A can transmit data during time T10 using a frequency of F7. Similarly, radio transmission slot 310B is characterized by time slot T6 and frequency channel F5; and radio transmission slot 310C is characterized by time slot T13 and frequency channel F2. The radio transmission slot repeats periodically, and thus, in the example of FIG. 3A a client device 201 that is assigned to a specific radio transmission slot 310 may wirelessly transmit data using the allocated frequency every 16 time slots. In some embodiments, the base station assigns a radio transmission slot to a client device that sends a connection request to the base station.

FIG. 4A illustrates a flow diagram of a process for transmitting data, by a client device, in a wireless communication channel, according to one embodiment. Each client device 201 may be configured to include components of the computer system of FIG. 1 and execute the process steps as instructions as further described herein. A client device 201 sends a subscription request to the base station 210 and receives 410 a radio transmission slot 310 from the base station 210. Based on the received radio transmission slot 310, the client device 201 identifies 420 a time slot and a frequency channel. The client device receives 430 data to be wirelessly transmitted. For instance, client device 201 may receive a message from a user to be sent to a second user using a second client device. The client device 201 then transmits 440 the data during the identified time slot using the identified frequency.

In some embodiments, alternative time slots may be reserved for reversed traffic. That is, a client device 201 assigned to radio transmission slot 310C may transmit data using frequency F2 during time slot T13 and may receive incoming data in response to the data transmission during time slot T14.

If there is at most only one client device subscribed (i.e., a subscriber) per radio transmission slot, the radio transmission slot identifies the transmitter. For instance, if client device 201A is assigned to radio transmission slot 310A, and a wireless transmission is received at frequency F7 during time slot T10, the receiver of the wireless transmission can identify the transmitter of the wireless signal as client device 201, without client device 201 having to transmit identification information together with the transmitted data. This beneficially reduces the amount of data transmitted during each wireless transmission and thus, reducing the bandwidth utilization of the wireless transmission channels.

In some embodiments, it is beneficial to have multiple client devices 201 subscribed to a single radio transmission slot 310. For instance, in the example of FIG. 3A, if only one client device 201 is subscribed to each radio transmission slot 310, at most 112 distinct client devices are able to transmit data. Since client devices may not always have data to transmit, each radio transmission slot 310 can be shared by two or more client device. In this embodiment, each client device may be assigned a digital identifier to identify the different client devices subscribed to a single radio transmission slot 310. For instance, if a 10-bit digital identifier is assigned to client devices subscribed to a specific radio transmission slot 310, 1024 client devices may be able to subscribe to the specific radio transmission slot 310, thus increasing the maximum total number of subscribers from 112 to 114,688.

When receiving a transmission, the receiver may identify the transmitter based on the radio transmission slot 310 at which the transmission was received and the digital identifier included in with the received transmission. That is, the digital identifier is encoded together with a message in a wireless signal transmitted by client devices. In some embodiments, the digital identifier assigned to a client device is not related to the identity of the client device. For instance, the base station 210 may randomly assign a unique digital identifier for a radio transmission slot 310 to client devices 201 subscribing with the base station. In some embodiments, the same digital identifier may be used for different client devices 201 transmitting in different radio transmission slots 310. Additionally, for a single radio transmission slot 310, each client device 201 is assigned a unique digital identifier. For instance, client device 201A subscribed to radio transmission slot 310A and client device 201B subscribed to radio transmission slot 310B may both have the same digital identifier, but client device 201C subscribed to radio transmission slot 310A has a digital identifier different than the digital identifier of client device 201A also subscribed to radio transmission slot 310A.

In some embodiments, the number of subscribers per radio transmission slot 310 is controlled based on the number of client devices trying to connect to the network via the base station. For instance, during a rush hour, where more client devices are trying to connect to the network via the base station, the length of the digital identifier may be increased to allow for additional client devices to subscribe to a radio transmission slot 310, and during non-rush hours, the length of the digital identifier may be decreased to save bandwidth. In other embodiments, the length of the digital identifier is kept constant (e.g., 10-bits) but the number of digital identifiers used is controlled to increase or decrease oversubscription of a radio transmission slot 310.

For radio transmission slots 310 that are oversubscribed, client devices 201 subscribed to the radio transmission slot 310 may use a collision avoidance technique such as random back-off. FIG. 4B illustrates a flow diagram of a process for transmitting data, by a client device, in a wireless communication channel that is oversubscribed. Each client device 201 may be configured to include components of the computer system of FIG. 1 and execute the process steps as instructions as further described herein. A client device 201 may attempt to transmit during a radio transmission slot assigned to the client device. The client device 201 determines 455 whether a collision has occurred in the transmission. If a collision did not occur in the transmission, the data is sent 465. Otherwise, if a collision did occur in the transmission, the client device 201 waits 460 a random number of cycles 460 before attempting 450 to re-transmit the data. In some embodiments, the random number of cycles to wait before a re-transmission attempt is an integer number between 0 and 2C−1, where C is the number of collisions of the client device 201. That is, after the first collision, the client device 201 waits either 0 or 1 cycle before attempting to re-transmit the data. After the second collision, the client device 201 waits anywhere between 0 and 3 cycles before attempting to re-transmit. After the third collision, the client device 201 waits anywhere between 0 and 7 cycles before attempting to re-transmit.

FIG. 3B illustrates a graph showing multiple radio transmission slots with different time lengths, according to one embodiment. In the exemplary embodiment of FIG. 3, the frequency channels are divided into slow switching speed channels (F1 and F2), medium switching speed channels (F3 and F4) and fast switching speed channels (F5, F6, and F7). Radio transmission slots 310 in the slow switching speed channels F1 and F2 are four times as long as a single time slot. For instance, time slot 310C is characterized by frequency F2 and time slots T9, T10, T11, and T12. That is, a client device that is assigned to radio transmission slot 310C can transmit data during times T9, T10, T11, and T12. Radio transmission slots 310 in the medium switching speed channels F4 and F4 include two time slots. For instance, radio transmission slot 310B is characterized by frequency F4 and time slots T5 and T6. Radio transmission slots 310 in the fast switching channels F5, F6, and F7 include one time slot. For instance, radio transmission slot 310A is characterized by frequency F7 and time slot T10.

The type of channel assigned to a client device 201 may be selected based on the type of client device requesting to connect to the base station. For instance, a radio transmission slot in a fast switching channel may be assigned to a client device for which low latency is important. Conversely, a radio transmission slot in a slow switching channel may be assigned to a client device for which throughput is important. For instance, client devices transmitting VoIP messages, real time sensor data, or web browsing traffic may be assigned to a fast switching speed channel, whereas a client devices transmitting bulk files, video images, or still images may be assigned to a slow switching speed channel.

Additional Configuration Considerations

The disclosed embodiments beneficially allow for improved utilization of the bandwidth of a communication channel. Additionally, since the identity of the transmitting client device is not sent with the message, the disclosed embodiments also improve the security of the wireless transmission system.

Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.

Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware modules. A hardware module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein. For instance, the processes described in FIGS. 4A and 4B may be executable by the machine illustrated in FIG. 1.

In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.

The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules.

The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs).)

The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.

Some portions of this specification are presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a machine memory (e.g., a computer memory). These algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.

Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, transmit, or display information.

As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.

Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. For example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context.

As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).

In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.

Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.

Claims

1. A method for wireless transmission of a message by a client device, the method comprising:

sending a request to a base station to connect with the base station;
receiving, from the base station in response to the request, a radio transmission slot and a digital identifier, the radio transmission slot identifying a frequency channel and a time slot to transmit a wireless signal; and
transmitting the message to the base station using the frequency channel and time slot identified by the radio transmission slot, the message including the received digital identifier.

2. The method of claim 1, wherein transmitting the message further comprises transmitting the message without an identification of the client device.

3. The method of claim 1, wherein different client devices assigned to a same radio transmission slot receive different digital identifiers from the base station.

4. The method of claim 1, wherein a length of the received digital identifier is based on a number of client devices connected to the base station.

5. The method of claim 1, further comprising retransmitting responsive to determining that a second client device transmitted a wireless signal using the frequency channel and the time slot identified by the radio transmission slot, the message to the base station using the frequency channel and time slot identified by the radio transmission slot after a random number of cycles.

6. A non-transitory computer readable storage medium configured to store instructions for wireless transmission of a message by a client device, the instructions when executed by a processor cause the processor to:

send a request to a base station to connect with the base station;
receive, from the base station in response to the request, a radio transmission slot and a digital identifier, the radio transmission slot identifying a frequency channel and a time slot to transmit a wireless signal; and
transmit the message to the base station using the frequency channel and time slot identified by the radio transmission slot, the message including the received digital identifier.

7. The non-transitory computer readable storage medium of claim 6, wherein the instructions to transmit the message further comprises instruction that when executed by the processor cause the processor to transmit the message without an identification of the client device.

8. The non-transitory computer readable storage medium of claim 6, wherein different client devices assigned to a same radio transmission slot receive different digital identifiers from the base station.

9. The non-transitory computer readable storage medium of claim 6, wherein a length of the received digital identifier is based on a number of client devices connected to the base station.

10. The non-transitory computer readable storage medium of claim 6, further comprising instructions that when executed by the processor cause the processor to retransmit responsive to determining that a second client device transmitted a wireless signal using the frequency channel and the time slot identified by the radio transmission slot, the message to the base station using the frequency channel and time slot identified by the radio transmission slot after a random number of cycles.

11. A method for wirelessly communicating with a client device, the method comprising:

receiving, from a client device, a request to transmit data;
sending, to the client device, response message including a radio transmission slot, the radio transmission slot identifying a frequency channel and a time slot to transmit a wireless signal;
receiving a wireless signal;
identifying a frequency channel and a time slot at which the wireless signal was received; and
determining that a sender of the wireless signal is the client device based on the identified frequency channel and time slot at which the wireless signal was received.

12. The method of claim 11, wherein the wireless signal encodes a message, and wherein the message does not include an identification of the sender.

13. The method of claim 12, further comprising:

sending, to the client device, a digital identifier; and
wherein the message encoded in the wireless signal includes the digital identifier.

14. The method of claim 13, wherein the determination that the sender of the wireless signal is the client device is further based on the digital identifier encoded in the wireless signal.

15. The method of claim 13, further comprising:

receiving, from a second client device, a second request to transmit data;
sending, to the second client device, a second response message including the radio transmission slot and a second digital identifier, wherein the radio transmission slot sent to the second client device is the same radio transmission slot sent to the client device, and wherein the second digital identifier sent to the second client device is different from the digital identifier sent to the client device.

16. The method of claim 13, further comprising:

receiving, from a second client device, a second request to transmit data;
sending, to the second client device, a second response message including a second radio transmission slot and the digital identifier, wherein the second radio transmission slot sent to the second client device is different than the radio transmission slot sent to the client device, and wherein the digital identifier sent to the second client device is the same digital identifier sent to the client device.

17. The method of claim 13, wherein a length of the digital identifier is based on a number of client devices connected.

18. A non-transitory computer readable storage medium configured to store instruction for wirelessly communicating with a client device, the instructions when executed by a processor cause the processor to:

receive, from a client device, a request to transmit data;
send, to the client device, response message including a radio transmission slot, the radio transmission slot identifying a frequency channel and a time slot to transmit a wireless signal;
receive a wireless signal;
identify a frequency channel and a time slot at which the wireless signal was received; and
determine that a sender of the wireless signal is the client device based on the identified frequency channel and time slot at which the wireless signal was received.

19. The non-transitory computer readable storage medium of claim 18, further comprising instruction that when executed by the processor cause the processor to send, to the client device, a digital identifier; and wherein the signal encodes a message, the message encoded in the wireless signal includes the digital identifier and does not include an identification of the sender, and wherein the determination that the sender of the wireless signal is the client device is further based on the digital identifier encoded in the wireless signal.

20. The non-transitory computer readable storage medium of claim 19, further comprising instruction that when executed by the processor cause the processor to:

receive, from a second client device, a second request to transmit data;
send, to the second client device, a second response message including the radio transmission slot and a second digital identifier, wherein the radio transmission slot sent to the second client device is the same radio transmission slot sent to the client device, and wherein the second digital identifier sent to the second client device is different from the digital identifier sent to the client device;
receive, from a third client device, a second request to transmit data;
send, to the third client device, a third response message including a third radio transmission slot and the digital identifier, wherein the third radio transmission slot sent to the third client device is different than the radio transmission slot sent to the client device, and wherein the digital identifier sent to the third client device is the same digital identifier sent to the client device.
Patent History
Publication number: 20160044682
Type: Application
Filed: Aug 7, 2015
Publication Date: Feb 11, 2016
Inventors: Vladan Djakovic (San Francisco, CA), Joel Daniel Brinton (Redwood City, CA), Benjamin Joseph Vivaldi Morse (Redwood City, CA)
Application Number: 14/821,646
Classifications
International Classification: H04W 72/04 (20060101); H04W 28/02 (20060101);