Enhanced wireless transmission system
Through wireless ad hoc networks, signal retransmission is solved by using out-of-band wireless protocols, and the problems of signal blocking and interference in wireless communication environments are improved, and communication reliability and real-time service stability are improved.
Patent Information
- Application Number
- CN202380041056.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-10
- Filing Date
- 2023-04-19
- Publication Date
- 2024-12-27
AI Technical Summary
In some wireless communication environments, especially internal urban environments, there are problems such as signal blocking, multipath interference and signal attenuation, which leads to packet loss and retransmission difficulties, especially causing lag and jitter to real-time services.
Retransmission is performed using out-of-band wireless protocols and channels through a wireless ad hoc network. The second wireless device receives signals of the first wireless protocol and retransmissions through different wireless protocols and channels, reducing delays and improving signal reliability.
Achieve more reliable communication in areas with inconsistent wireless signals, reduce packet loss and delay, and improve the stability of real-time services.
Smart Images

Figure CN119213718A_ABST
Abstract
Description
Technical Field
[0001] Embodiments are directed to enhancing the reliability of wireless communication systems.Some embodiments are directed to utilizing a wireless ad hoc network to retransmit, over a first wireless protocol, a packet originally sent over a second wireless protocol. Background Art
[0002] Wireless communications are ubiquitous in our lives. Various wireless transmissions from satellites orbiting the Earth, wireless cellular base stations, and Wi-Fi access points deliver data to users across the globe. Computing devices such as mobile phones can use these transmissions to provide voice and data services to users, no matter where they are. BRIEF DESCRIPTION OF THE DRAWINGS
[0003] In the drawings, which are not necessarily drawn to scale, similar reference numerals may describe similar components in different views. Similar numbers with different letter suffixes may represent different instances of similar components. The accompanying drawings generally illustrate various embodiments discussed in this document by way of example and not limitation.
[0004] Figure 1 and 2 Two examples of neighbor device groups according to some examples of the present disclosure are shown.
[0005] Figure 3 A diagram showing a series of data structures for storing neighbor information according to some examples of the present disclosure.
[0006] Figure 4 A logical diagram of an enhanced wireless transmission system according to some examples of the present disclosure is shown.
[0007] Figure 5 A logical diagram of a computing device according to some examples of the present disclosure is shown.
[0008] Figure 6 A diagram of a retransmission system according to some examples of the present disclosure is shown.
[0009] Figure 7 A flow chart of a method of retransmitting packets using an out-of-band wireless protocol according to some examples of the present disclosure is shown.
[0010] Figure 8 A flowchart of a method 800 of a first computing device receiving a retransmission from a second computing device according to some examples of the present disclosure is shown.
[0011] Fig. 9 is a block diagram illustrating an example of a machine upon which one or more embodiments may be implemented. DETAILED DESCRIPTION
[0012] One problem with wireless transmission is that the wireless environment in certain areas may be suboptimal. For example, inner urban environments are challenging for both cellular and satellite transmissions. Buildings in these environments may block wireless signals to create dead zones, reflect them to create multipath interference, or attenuate signals to create weaker received signals. These problems may cause packet loss, and retransmissions are necessary. For some wireless protocols such as satellite protocols, retransmissions may not be possible. In cases where retransmissions are possible, the distance between the transmitter and the receiver is typically large, so the latency is high. In addition, retransmission requests and the retransmissions themselves may be sent in the same suboptimal wireless environment as the original transmission. For real-time services, this can cause stuttering and jitter, which can destroy the immersive experience these real-time services are trying to create.
[0013] In some examples, methods, systems, devices, and machine-readable media are disclosed in which a self-organizing neighbor group of wireless devices provides a retransmission service to a first wireless computing device (hereinafter referred to as a receiving wireless computing device) in the neighbor group via an out-of-band wireless protocol. That is, a second wireless device in the neighbor group of wireless devices can receive a first transmission from a transmitter (hereinafter referred to as an original transmitter) to the first wireless device via a first wireless protocol. The second wireless device can then retransmit information (e.g., a packet) from the first transmission to the first wireless device via a second wireless protocol and / or channel. Thus, for example, the second wireless device can receive a satellite signal sent to the first wireless device and provide a retransmission of the signal or information from the signal to the first wireless device via a Wi-Fi Direct protocol.
[0014] Therefore, the present disclosure solves the technical problems of wireless interference and poor signal quality by using out-of-band wireless protocols and / or self-organized wireless retransmission on channels. This solution allows for more reliable wireless communications in areas where wireless signals may be inconsistent.
[0015] In some examples, computing devices in a neighbor group may receive the original transmission of a recipient wireless computing device and may temporarily store the original transmission based on the knowledge that the transmission is addressed or otherwise directed to a wireless device within a neighbor group of wireless devices. Upon receiving an explicit retransmission request, one or more neighbor devices may send a retransmission. Once the retransmission is sent, or once a specified time period has expired, the neighbor device may delete these buffered transmissions to free up additional memory. Thus, devices in a neighbor group may buffer packets sent to other wireless devices within the neighbor group and resend those packets on different wireless channels and / or with different wireless protocols.
[0016] In other examples, a neighbor device may receive an original transmission from a receiving wireless computing device and may automatically retransmit the original transmission based on the knowledge that the transmission was addressed or otherwise directed to a receiving wireless computing device within a neighbor group of wireless devices. The retransmission may be delayed by a random value to prevent overlapping retransmissions from other devices within the neighbor group. If the receiving wireless computing device receives the original transmission without error, the recipient may simply ignore the duplicate transmission from the neighbor group.
[0017] The neighbor device may always provide retransmissions; when the device is not actively sending or receiving its own data (e.g., the transmitter has been idle for a predetermined period of time or has sent or received less than a threshold amount of data within a predetermined period of time); when the device has sufficient battery capacity; when the device has sufficient battery capacity (e.g., within a threshold amount of battery life remaining) and when the device is not actively sending and receiving its own data; etc. Retransmissions may be provided, in some examples, using a connectionless protocol (e.g., User Datagram Protocol (UDP)) to reduce network traffic that would be caused by control data used by a connection-based protocol (e.g., Transmission Control Protocol (TCP)).
[0018] In some examples, devices within a neighbor group discover (e.g., via discovery messages) the wireless addresses of other devices for one or more wireless protocols. The devices within the neighbor group then scan for signals addressed to these addresses of each device within the neighbor group. If a first wireless device receives a signal from a second wireless device within the same neighbor group as the first wireless device, the first wireless device can retransmit the signal. In some examples, this occurs automatically. In other examples, the second wireless device can specify transmissions that other devices in the neighbor group should monitor and retransmit. For example, the second wireless device may have reception problems for a particular transmission, and therefore it may request other devices within the neighbor group that receive signals for that transmission addressed to it to retransmit them to the second wireless device (automatically or when a retransmission is requested).
[0019] In some examples, each neighbor device can scan and buffer the transmission addressed to all other devices in the group of neighbor devices. In other examples, one or more neighbor group devices can create a communication pair. Each device in the device pair listens to the packet of the other device in the pair and forwards the packet to the other device in the pair. Various devices in the neighbor group are paired in this way. These pairs can change as one or more devices leave the neighbor group or if one device in the pair is unable to receive the quality signal of the other device in the pair (e.g., as measured by the received signal strength, quality or other metrics). In some examples, pairs can be selected based on predicted stability (e.g., they may be in the same neighbor group for the longest time of all devices-as determined by their current location, motion information, etc.); based on the relative signal strength of the main transmission (e.g., one device in the pair may have a good signal from the main transmission-but may not actively receive from the main transmitter, while the other device may have a poor signal and actively receive), etc. As described, communication pairs can be used, but in other examples, three, four or other number of devices can be used in the communication group.
[0020] As described above, neighbor groups can be based on the relative locations of the devices to each other. In other examples, neighbor groups can be based on properties of one or more wireless channels or devices, such as the wireless transmission range of a second protocol for retransmission. In some examples, neighbor groups can be relative to a single device. That is, each device can have its own set of neighbor devices. Thus, a single device can be part of several neighbor groups, some of which can have overlapping devices. In other examples, each device can be grouped together in a single neighbor group.
[0021] Devices within the neighbor group can retransmit signals or packets within a signal received via a first wireless channel or protocol via a second wireless channel or protocol. Exemplary second protocols may include short-range wireless protocols, such as Wi-Fi, Bluetooth, or RFID protocols. In some examples, these short-range wireless protocols may have a wireless range in a typical environment and have typical hardware of about 100 meters or less. These short-range wireless protocols are in contrast to longer-range protocols such as typical cellular base stations, satellite transmitters, etc., which have the ability to communicate over a large area.
[0022] Figure 1 and Figure 2 Two examples of neighbor device groups according to some examples of the present disclosure are shown. Figure 1Computing devices 112, 114, 116, and 118 may be part of multiple neighbor groups. Each neighbor group may be developed relative to that particular computing device. For example, computing device 116 may have a neighbor group consisting of computing devices 114 and 118, marked by box 124. Similarly, computing device 114 may have a neighbor group consisting of computing devices 112 and 116, marked by box 122. Computing device 112 may have a neighbor group consisting of computing device 114 and potentially other devices (not shown), marked by box 120. Computing device 118 may have a neighbor group consisting of computing device 116 and potentially other devices (not shown), marked by box 126. Thus, computing device 116 may be part of three separate neighbor groups.
[0023] Figure 2 An example is shown where each computing device uses only a single neighbor group. Thus, computing device 212 is part of its own neighbor group shown in block 220 (possibly with other devices not shown), while computing devices 214, 216, and 218 are part of a single neighbor group shown in block 222.
[0024] One or more wireless messages utilizing one or more wireless protocols may be used to form a neighbor group. For example, one or more discovery messages may be broadcast by a first wireless device. Other wireless devices that receive the message (or receive the message at a power level exceeding a predetermined threshold power level) may respond with a discovery response message. These messages may include contact details, such as a wireless address of the first wireless device for a wireless protocol with which it can communicate. Other information included may include computing device location, etc. These messages may also include details such as wireless addresses and other contact information. In an additional example, the discovery message may include capability discovery. For example, a set of supported wireless protocols for each wireless device is discovered.
[0025] If devices respond to a discovery broadcast message, they may be considered within a neighbor group. In other examples, devices may be grouped together only if they are within a predetermined threshold distance of each other as determined by a global navigation satellite system (GNSS) or other location sensor. As described above, the discovery response message may include the location of the responding device.
[0026] In other examples, other algorithms for neighbor discovery may be used, such as Wi-Fi In EasyMesh, proximity can be established within a proximity radius determined by the device's transmitted RF power and spectrum. For example, for a larger radius, a lower spectrum such as 800MHz or 900MHz can be used.
[0027] In some examples, the neighbor group can utilize mesh networking and routing technology. Thus, a first wireless device that is not in direct wireless communication contact with a second wireless device can be part of a neighbor group, even if the first and second wireless devices are not in direct wireless communication. The first wireless device can route retransmissions through multiple wireless devices in the neighbor group. For example, a retransmission request can be sent by a second computing device to a third computing device, and the third computing device can forward it to the first computing device. Exemplary mesh protocols include Linux Wireless Extensions, Apple Multi-Peer Connect, and the like. Exemplary mesh network routing protocols include Association-Based Routing (ABR), Ad Hoc On-Demand Distance Vector (AODV), Best Practices for Mobile Ad Hoc Networking (BATMAN), and the like.
[0028] Figure 3 A diagram of a series of data structures for storing neighbor information according to some examples of the present disclosure is shown. A neighbor group data structure 310 may include a linked list 312 of neighbor group data structures 314. Each neighbor group data structure 314 includes a linked list 316 of device data structures 318 describing the devices within the neighbor group. The device data structure 318 may include a device location 320 indicating the location of the device determined based on a message from the device, a wireless protocol out-of-band identifier identifying a preferred out-of-band wireless protocol for sending retransmissions, and a linked list 324 of wireless protocol information data structures 326. The wireless protocol out-of-band identifier may be a pointer to the wireless protocol information data structure 326 of the linked list 324. The wireless protocol information data structure 326 may include a wireless protocol identifier 330 that may specify a wireless protocol (e.g., Wi-Fi, 3G, 4G, 5G cellular, satellite, Bluetooth, RFID, etc.). The device identifier 332 may include one or more device identifiers within the protocol. For example, an IP address, a wireless MAC address, a user device identifier, etc. These identifiers may be determined during a neighbor group discovery process and may allow a device to monitor communications to a particular device and send retransmissions across an out-of-band wireless protocol.
[0029] Figure 4A logical diagram of an enhanced wireless transmission system 400 according to some examples of the present disclosure is shown. Computing devices 414, 416, and 418 are within a neighbor group 422. The neighbor group is created using one or more discovery messages. Transmitter 410 is sending a signal with a packet (e.g., packet A) to computing device 416. Computing device 416 may be in an urban environment where line of sight with transmitter 410 is lost or multipath reflections cause interference, so that computing device 416 cannot receive packet A. Computing device 416 may use one or more wireless signal measurements (e.g., received signal strength, packet error rate, bit error rate, etc.) to recognize that the wireless signal meets a low quality standard. As a result, in some examples, computing device 416 may request assistance from one or more devices within neighbor group 422.
[0030] The computing devices 414 and / or 418 of the neighbor group 422 may be in a position that allows the successful reception of the signal from the transmitter 410. In these examples, one or both of the computing devices 414 and 418 may retransmit information from the signal (e.g., packet A) to the computing device 416 using an out-of-band wireless protocol. The out-of-band wireless protocol is out-of-band for the original wireless transmission because it uses a different wireless protocol and / or a different wireless channel. The computing device 412 is not in the neighbor group 422 (e.g., it may not be within the wireless protocol range of the out-of-band protocol), so it does not retransmit the packet to the computing device 416. Because the retransmission is out-of-band, and because different frequencies respond differently to interference, the out-of-band signal may more reliably send the retransmission. In addition, each wireless protocol is different, and some wireless protocols may be more suitable for certain environments than other wireless protocols. Finally, in some examples, the distance between the device being retransmitted and the receiving device may be less than the distance between the original transmitter and the receiving device. This reduced distance may allow the retransmission to succeed.
[0031] As described above, neighbor group 422 can be formed using one or more wireless messages exchanged between computing devices 416, 414, and 418. In some examples, the messages can be over a first wireless protocol and / or channel, and the transmission from transmitter 410 can be over a second wireless protocol and / or channel. In some examples, the retransmission can be over the first wireless protocol and / or channel; the second wireless protocol and / or channel; or a third wireless protocol and / or channel.
[0032] Although the present disclosure uses a decentralized self-organizing approach to forming neighbor groups, in other examples, one or more computing devices may provide a centralized neighbor group service. Computing devices may register with the neighbor group service and provide location updates. Based on the location of the computing device, the neighbor group service may assign each computing device to a neighbor group. These groups may then be transmitted to the device. Example group services may reside at cellular base stations, Wi-Fi access points, other computing devices, and the like.
[0033] Figure 5 A logical diagram of a computing device according to some examples of the present disclosure is shown. A first transceiver 512 can transmit and receive on a first wireless protocol. A second transceiver 514 can transmit and receive on a second wireless protocol that is different from the first wireless protocol. A neighbor group control component 518 can be responsible for discovering and maintaining one or more neighbor groups. For example, the neighbor group control component 518 can use the first transceiver 512 or the second transceiver 514 to send one or more discovery broadcast messages. A discovery response message can then be received by the transceiver and processed by the neighbor group control component 518. The discovery message may include information about the wireless protocols and capabilities supported by the computing device, how to reach the computing device on those protocols, and the like. The discovery response message may include information about the wireless protocols and capabilities supported by the responding computing device, and in some examples include the location of the responding computing device. These response messages can be used by the neighbor group control component to populate Figure 3 The data structure shown.
[0034] The retransmission control component 516 can control the retransmission of the packet to other computing devices in one or more neighbor groups. As described above, this can be done using the first transceiver 512 or the second transceiver 514, no matter which is an out-of-band wireless protocol. This can be done in response to a request from a device in the neighbor group, or it can be done as a result of a random delay. In addition, the retransmission control component 516 can control the request and reception of the retransmission from other computing devices. For example, if the packet in the data stream received by the first transceiver 512 is expected but not successful, the retransmission control component 516 can request the packet from other computing devices in the neighbor group from the second transceiver 514. Once received, the retransmission control component 516 can insert the packet into the data stream. In other examples where no retransmission request is made but the retransmission is automatically completed by other devices in the neighbor group, the retransmission control component 516 can receive all packets of a specific data stream and decide which packets (if any) are not received by the computing device. Those packets that have been received are ignored, and those packets that have not been received are processed and inserted into the appropriate data stream.
[0035] Figure 6A diagram 600 of a retransmission system according to some examples of the present disclosure is shown. The original transmission sent by the original transmitter 602 is decoded to produce a stream or set of packets 605. Packets A, B, D, E, F, H, and I are successfully received by the receiving computing device 614. Packets C and G are not successfully received. In some examples, the packets cannot be decoded, the packets may have errors (e.g., error correction code check failures), etc. The receiving computing device 614 uses the stream 605 that it successfully received from the original transmitter 602 and the retransmissions of packets C 610 and G 612 from the neighbor computing device 616 at 605 to reconstruct the complete data stream sent by the transmitter 602. This produces the entire packet stream. The retransmission of packets C 610 and G 612 can be done at the request of the receiving computing device 614, or can be automatically retransmitted by the receiving computing device 614.
[0036] Figure 7 A flow chart of a method 700 for retransmitting a packet using an out-of-band wireless protocol according to some examples of the present disclosure is shown. The method 700 may be performed by a first computing device acting as a retransmitter for a second computing device within a neighbor group. At operation 710, the computing device may determine that the second computing device is within the wireless range of the first computing device on a first wireless protocol (e.g., an out-of-band wireless protocol). For example, operation 710 may include forming one or more neighbor groups by exchanging wireless discovery and response messages. At operation 712, the computing device may receive a wireless transmission addressed to the second computing device for an address of a second wireless protocol and / or channel. The wireless transmission is a transmission sent to the second wireless device, but the first wireless device may receive the message (e.g., it is a broadcast). The address of the second computing device on the second wireless protocol and / or the second wireless channel may be exchanged during the neighbor group establishment, subsequent wireless messages, etc. of operation 710. The exchange may allow the first computing device to scan for messages addressed to the second computing device via the second wireless protocol and / or channel. The computing device may adjust or otherwise direct a transceiver of the computing device to detect and / or decode signals sent from a transmitter to the second wireless device over a second wireless protocol and / or second wireless channel based on identifying the second wireless device within the neighbor group of the first wireless device.
[0037] At operation 714, the first wireless computing device may retransmit information from the received wireless broadcast to the second computing device via the first wireless protocol. For example, a packet sent in the wireless broadcast. The retransmission may be in response to the second computing device being determined to be within the wireless communication range of the first computing device. The retransmission may be in response to a retransmission request, or may be automatically completed without an explicit retransmission request. In some examples, during neighbor group setup, devices may exchange one or more keys or codes for demodulating and / or receiving signals on one or more wireless protocols during neighbor group setup.
[0038] At operation 716, the first wireless computing device may determine that the second computing device is no longer within the wireless range of the first computing device. For example, messages sent to the second computing device via the first wireless protocol are no longer received by the first or second wireless computing devices. For example, a neighbor group having the first and second wireless devices may periodically send status messages to determine whether they are still within the wireless range of the first wireless protocol. Once the device is no longer within range, the second computing device may be removed from the neighbor group of the first wireless computing device.
[0039] In other examples, the wireless messages exchanged via the first protocol may include the location of each wireless device. Devices that exceed a threshold distance from each other may be dropped from the neighbor group. Other examples utilize signal attributes (e.g., signal strength, signal quality, etc.) of received status messages to determine whether to keep a particular wireless device in a neighbor group. For example, one or more of these signal attributes may be compared to one or more criteria to determine whether the criteria for keeping the device in the neighbor group are met. The criteria may include one or more thresholds, if-then rules, etc., specifying conditions under which a computing device may be added to a neighbor group, removed from a neighbor group, or retained in a neighbor group.
[0040] At operation 718, a second wireless broadcast transmission addressed to the second computing device may be received and decoded by the first computing device.At operation 720, since the second wireless device was removed from the neighbor group at operation 716, information from the second wireless broadcast transmission may not be sent to the second wireless device.
[0041] Figure 8 800 is a flowchart of a method 800 of receiving a retransmission from a second computing device by a first computing device according to some examples of the present disclosure. At operation 810, the first computing device may determine that the second computing device is within a wireless range of the first computing device. For example, using Figure 7 The same method of operation 710 may be used, for example, using a wireless message of the first wireless protocol. At operation 812, the first device may receive a wireless broadcast addressed to the first device via the second wireless protocol.
[0042] At operation 814, the first computing device may identify lost or damaged packets from the wireless broadcast. For example, the packet was not received, will not be decoded, cannot be demodulated, did not pass error checking, etc. At operation 816, the first wireless device may receive the lost packets from the second computing device via the first wireless protocol. In some examples, the lost packets may be received in response to a request to the second computing device, a broadcast or multicast request (e.g., to all members of a neighbor group), and the like. In other examples, one or more other members of the neighbor group may always send packets addressed to the first computing device that it receives via the first wireless protocol. At operation 818, the first computing device may use the retransmitted packets to supplement the lost packets in the packet stream of the wireless broadcast. For example, as Figure 6 shown.
[0043] Fig. 9 A block diagram of an exemplary machine 900 on which any one or more technologies (e.g., methods) discussed herein can be executed is shown. In alternative embodiments, the machine 900 can operate as a standalone device, or can be connected (e.g., networked) to other machines. In a networked deployment, the machine 900 can operate in a server-client network environment with the capabilities of a server machine, a client machine, or both. In an example, the machine 900 can act as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. The machine 900 can be a wireless computing device, a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a smart phone, a network device, a network router, a switch or a bridge, or the form of any machine capable of executing instructions (sequentially or otherwise) specifying the actions to be taken by the machine. In addition, although only a single machine is shown, the term "machine" should also be considered to include any machine collection that executes a set (or multiple sets) of instructions individually or jointly to execute any one or more methods discussed herein, such as cloud computing, software as a service (SaaS), and other computer cluster configurations. The machine 900 may be an example of a computing device 112, 114, 116, 118, 212, 214, 216, 218, 412, 414, 416, 418, 510, 614, 616; an example of a transmitter 410, 602; may create and / or store Figure 3 A data structure; configured to include Figure 5 Components of; implementation Figure 6 ; and is configured to implement Figure 7 and Figure 8 As used herein, a computing device may be a fixed computing device, a mobile device, etc.
[0044] Examples as described herein may include one or more logical units, components, or mechanisms (hereinafter referred to as "components"), or may operate on them. A component is a tangible entity (e.g., hardware) that is capable of performing a specified operation and may be configured or arranged in a certain manner. In an example, a circuit may be arranged as a component in a specified manner (e.g., internally or relative to an external entity such as other circuits). In an example, all or part of one or more computer systems (e.g., independent, client, or server computer systems) or one or more hardware processors may be configured by firmware or software (e.g., instructions, application parts, or applications) as a component that operates to perform a specified operation. In an example, the software may reside on a machine-readable medium. In an example, when executed by the underlying hardware of the component, the software causes the hardware to perform the specified operation of the component.
[0045] Thus, the term "component" is understood to encompass a tangible entity, an entity that is physically constructed, specifically configured (e.g., hardwired), or temporarily (e.g., temporarily) configured (e.g., programmed) to operate in a specified manner or to perform part or all of any operation described herein. Considering an example in which a component is temporarily configured, each component need not be instantiated at any one time. For example, where a component includes a general-purpose hardware processor configured using software, the general-purpose hardware processor can be configured as corresponding different components at different times. The software can configure the hardware processor accordingly, for example, to configure it to constitute a specific module at one time and to constitute different components at different times.
[0046] The machine (e.g., computer system) 900 may include one or more hardware processors, such as processor 902. Processor 902 may be a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof. The machine 900 may include a main memory 904 and a static memory 906, some or all of which may communicate with each other via an interconnect (e.g., bus) 908. An example of the main memory 904 may include a synchronous dynamic random access memory (SDRAM), such as a double data rate memory, such as DDR4 or DDR5. The interconnect 908 may be one or more different types of interconnects, such that one or more components may be connected using a first type of interconnect, and one or more components may be connected using a second type of interconnect. Exemplary interconnects may include a memory bus, a peripheral component interconnect (PCI), a peripheral component express interconnect (PCIe) bus, a universal serial bus (USB), and the like.
[0047] The machine 900 may also include a display unit 910, an alphanumeric input device 912 (e.g., a keyboard), and a user interface (UI) navigation device 914 (e.g., a mouse). In an example, the display unit 910, the input device 912, and the UI navigation device 914 may be a touch screen display. The machine 900 may additionally include a storage device (e.g., a drive unit) 916, a signal generating device 918 (e.g., a speaker), a network interface device 920, and one or more sensors 921, such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensors. The machine 900 may include an output controller 928, such as a serial (e.g., universal serial bus (USB), parallel or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate or control one or more peripheral devices (e.g., printers, card readers, etc.).
[0048] The storage device 916 may include a machine-readable medium 922 on which is stored one or more sets of data structures or instructions 924 (e.g., software) embodying or utilized by any one or more of the techniques or functions described herein. The instructions 924 may also reside, completely or at least partially, within the main memory 904, within the static memory 906, or within the hardware processor 902 during execution by the machine 900. In an example, one or any combination of the hardware processor 902, the main memory 904, the static memory 906, or the storage device 916 may constitute a machine-readable medium.
[0049] Although the machine-readable medium 922 is illustrated as a single medium, the term “machine-readable medium” may include a single medium or multiple media (eg, a centralized or distributed database and / or associated caches and servers) configured to store one or more instructions 924 .
[0050] The term "machine-readable medium" may include any medium capable of storing, encoding or carrying instructions for execution by the machine 900 and causing the machine 900 to perform any one or more of the techniques of the present disclosure, or any medium capable of storing, encoding or carrying data structures used by such instructions or associated with such instructions. Non-limiting machine-readable medium examples may include solid-state memory and optical and magnetic media. Specific examples of machine-readable media may include: non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; disks, such as internal hard disks and removable disks; magneto-optical disks; random access memory (RAM); solid-state drives (SSD); and CD-ROM and DVD-ROM disks. In some examples, the machine-readable medium may include non-temporary machine-readable media. In some examples, the machine-readable medium may include a machine-readable medium that is not a temporary propagation signal.
[0051] The instructions 924 may also be sent or received over a communication network 926 using a transmission medium via the network interface device 920. The machine 900 may communicate with one or more other machines by wire or wirelessly using any of a variety of transmission protocols, such as frame relay, Internet Protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc. Exemplary communication networks may include a local area network (LAN), a wide area network (WAN), a packet data network (such as the Internet), a mobile phone network (such as a cellular network), a plain old telephone (POTS) network, and a wireless data network, such as a wireless network known as a cellular network. The Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards, the IEEE 802.15.4 family of standards, the 5G New Radio (NR) family of standards, the Long Term Evolution (LTE) family of standards, the Universal Mobile Telecommunications System (UMTS) family of standards, peer-to-peer (P2P) networks, etc. In an example, the network interface device 920 may include one or more physical jacks (e.g., Ethernet, coaxial, or telephone jacks) or one or more antennas to connect to the communication network 926. In an example, the network interface device 920 may include multiple antennas to use at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technology for wireless communication. In some examples, the network interface device 920 may use multi-user MIMO technology for wireless communication.
[0052] Example 1 is a method for enhancing the reliability of wireless transmissions to a receiver, the method comprising: at a first computing device: determining that a second computing device is within a wireless communication range of the first computing device based on one or more wireless messages exchanged via a first wireless protocol; receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via a second wireless protocol, the wireless broadcast transmission including at least one packet, the wireless transmitter not being part of the first computing device or the second computing device; in response to the second computing device being determined to be within the wireless communication range of the first computing device, retransmitting the packet to the second computing device via the first wireless protocol; determining that the second computing device is no longer within the wireless communication range of the first computing device; receiving a second wireless broadcast transmission addressed to the second computing device from the wireless transmitter via a second wireless protocol, the second wireless broadcast transmission including at least one second packet; and based on the second computing device being determined to be not within the wireless communication range of the first computing device, not retransmitting the packet to the second computing device via the first wireless protocol.
[0053] In Example 2, the subject matter of Example 1 includes, wherein determining that the second computing device is within wireless communication range of the first computing device based on one or more wireless messages exchanged over the first wireless protocol includes sending a discovery message and receiving a discovery reply message.
[0054] In Example 3, the subject matter of Example 2 includes, wherein the discovery reply message includes an address of the second computing device on the second wireless protocol, and wherein receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via the second wireless protocol includes searching via the second wireless protocol for a signal addressed to the address of the second computing device on the second wireless protocol.
[0055] In Example 4, the subject matter of Examples 1-3 includes, wherein the method further comprises: receiving a retransmission request for the packet from the second computing device; and wherein retransmitting the packet to the second computing device is in response to the retransmission request.
[0056] In Example 5, the subject matter of Examples 1-4 includes, wherein retransmitting the packet to the second computing device is performed in response to receiving a wireless broadcast transmission addressed to the second computing device and without a request from the second computing device.
[0057] In Example 6, the subject matter of Example 5 includes, wherein retransmitting the packet comprises: waiting for a random delay period before retransmitting the packet.
[0058] In Example 7, the subject matter of Examples 1-6 includes, wherein determining that the second computing device is no longer within wireless communication range of the first computing device comprises determining that a signal property of a received communication from the second computing device no longer satisfies a specified threshold.
[0059] Example 8 is a computing device for enhancing the reliability of wireless transmissions to a receiver, the computing device comprising: a processor; a memory device storing instructions, the instructions causing the computing device to perform operations when executed by the processor, the operations comprising: determining that a second computing device is within a wireless communication range of the computing device based on one or more wireless messages exchanged via a first wireless protocol; receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via a second wireless protocol, the wireless broadcast transmission comprising at least one packet, the wireless transmitter not being part of the computing device or the second computing device; in response to the second computing device being determined to be within the wireless communication range of the computing device, retransmitting the packet to the second computing device via the first wireless protocol; determining that the second computing device is no longer within the wireless communication range of the computing device; receiving a second wireless broadcast transmission addressed to the second computing device from the wireless transmitter via a second wireless protocol, the second wireless broadcast transmission comprising at least one second packet; and based on the second computing device being determined to be not within the wireless communication range of the computing device, not retransmitting the packet to the second computing device via the first wireless protocol.
[0060] In Example 9, the subject matter of Example 8 includes, wherein determining that the second computing device is within wireless communication range of the computing device based on one or more wireless messages exchanged over the first wireless protocol includes sending a discovery message and receiving a discovery reply message.
[0061] In Example 10, the subject matter of Example 9 includes, wherein the discovery reply message includes an address of the second computing device on the second wireless protocol, and wherein the operation of receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via the second wireless protocol includes searching via the second wireless protocol for a signal addressed to the address of the second computing device on the second wireless protocol.
[0062] In Example 11, the subject matter of Examples 8-10 includes, wherein the operations further include: receiving a retransmission request for the packet from the second computing device; and wherein the operation of retransmitting the packet to the second computing device is in response to the retransmission request.
[0063] In Example 12, the subject matter of Examples 8-11 includes, wherein retransmitting the packet to the second computing device is performed in response to receiving a wireless broadcast transmission addressed to the second computing device and without a request from the second computing device.
[0064] In Example 13, the subject matter of Example 12 includes, wherein the operation of retransmitting the packet includes waiting for a random delay period before retransmitting the packet.
[0065] In Example 14, the subject matter of Examples 8-13 includes, wherein determining that the second computing device is no longer within wireless communication range of the computing device comprises determining that a signal property of a received communication from the second computing device no longer satisfies a specified threshold.
[0066] Example 15 is a machine-readable medium storing instructions for enhancing the reliability of wireless transmissions to a receiver, the instructions, when executed by a first computing device, causing the first computing device to perform operations, the operations comprising: determining that a second computing device is within a wireless communication range of the first computing device based on one or more wireless messages exchanged via a first wireless protocol; receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via a second wireless protocol, the wireless broadcast transmission including at least one packet, the wireless transmitter not being part of the first computing device or the second computing device; in response to the second computing device being determined to be within the wireless communication range of the first computing device, retransmitting the packet to the second computing device via the first wireless protocol; determining that the second computing device is no longer within the wireless communication range of the first computing device; receiving a second wireless broadcast transmission addressed to the second computing device from the wireless transmitter via a second wireless protocol, the second wireless broadcast transmission including at least one second packet; and based on the second computing device being determined to be not within the wireless communication range of the first computing device, not retransmitting the packet to the second computing device via the first wireless protocol.
[0067] In Example 16, the subject matter of Example 15 includes, wherein the operation of determining that the second computing device is within the wireless communication range of the first computing device based on one or more wireless messages exchanged via the first wireless protocol includes sending a discovery message and receiving a discovery reply message.
[0068] In Example 17, the subject matter of Example 16 includes, wherein the discovery reply message includes an address of the second computing device on the second wireless protocol, and wherein the operation of receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via the second wireless protocol includes searching via the second wireless protocol for a signal addressed to the address of the second computing device on the second wireless protocol.
[0069] In Example 18, the subject matter of Examples 15-17 includes, wherein the operations further include: receiving a retransmission request for the packet from the second computing device; and wherein the operation of retransmitting the packet to the second computing device is in response to the retransmission request.
[0070] In Example 19, the subject matter of Examples 15-18 includes, wherein retransmitting the packet to the second computing device is performed in response to receiving a wireless broadcast transmission addressed to the second computing device and without a request from the second computing device.
[0071] In Example 20, the subject matter of Example 19 includes, wherein the operation of retransmitting the packet includes waiting for a random delay period before retransmitting the packet.
[0072] In Example 21, the subject matter of Examples 15-20 includes, wherein determining that the second computing device is no longer within wireless communication range of the first computing device comprises determining that a signal property of a received communication from the second computing device no longer satisfies a specified threshold.
[0073] Example 22 is a device for enhancing the reliability of wireless transmissions to a receiver, the device comprising: a unit for determining that a second computing device is within a wireless communication range of a first computing device based on one or more wireless messages exchanged via a first wireless protocol; a unit for receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via a second wireless protocol, the wireless broadcast transmission including at least one packet, the wireless transmitter not being part of the first computing device or the second computing device; a unit for retransmitting the packet to the second computing device via the first wireless protocol in response to the second computing device being determined to be within the wireless communication range of the first computing device; a unit for determining that the second computing device is no longer within the wireless communication range of the first computing device; a unit for receiving a second wireless broadcast transmission addressed to the second computing device from a wireless transmitter via a second wireless protocol, the second wireless broadcast transmission including at least one second packet; and a unit for not retransmitting the packet to the second computing device via the first wireless protocol based on the second computing device being determined to be not within the wireless communication range of the first computing device.
[0074] In Example 23, the subject matter of Example 22 includes, wherein the device for determining that the second computing device is within the wireless communication range of the first computing device based on one or more wireless messages exchanged via the first wireless protocol includes: a unit for sending a discovery message and receiving a discovery reply message.
[0075] In Example 24, the subject matter of Example 23 includes, wherein the discovery reply message includes an address of the second computing device on the second wireless protocol, and wherein the unit for receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via the second wireless protocol includes: a unit for searching via the second wireless protocol for a signal addressed to the address of the second computing device on the second wireless protocol.
[0076] In Example 25, the subject matter of Examples 22-24 includes, wherein the device further comprises: means for receiving a retransmission request for the packet from the second computing device; and wherein retransmitting the packet to the second computing device is in response to the retransmission request.
[0077] In Example 26, the subject matter of Examples 22-25 includes, wherein retransmitting the packet to the second computing device is performed in response to receiving a wireless broadcast transmission addressed to the second computing device and without a request from the second computing device.
[0078] In Example 27, the subject matter of Example 26 includes, wherein the means for retransmitting the packet comprises: means for waiting a random delay period before retransmitting the packet.
[0079] In Example 28, the subject matter of Examples 22-27 includes, wherein the means for determining that the second computing device is no longer within wireless communication range of the first computing device includes means for determining that a signal property of a received communication from the second computing device no longer satisfies a specified threshold.
[0080] Example 29 is at least one machine-readable medium comprising instructions that, when executed by a processing circuit, cause the processing circuit to perform operations to implement any of Examples 1-28.
[0081] Example 30 is an apparatus comprising means for implementing any of Examples 1-28.
[0082] Example 31 is a system for implementing any of Examples 1-28.
[0083] Example 32 is a method for implementing any of Examples 1-28.
Claims
1. A method for enhancing the reliability of wireless transmissions to a receiver, the method comprising: At the first computing device: determining, based on one or more wireless messages exchanged via a first wireless protocol, that a second computing device is within wireless communication range of the first computing device; receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via a second wireless protocol, the wireless broadcast transmission comprising at least one packet, the wireless transmitter not being part of the first computing device or the second computing device; in response to the second computing device being determined to be within wireless communication range of the first computing device, retransmitting the packet to the second computing device via the first wireless protocol; determining that the second computing device is no longer within wireless communication range of the first computing device; receiving from the wireless transmitter via the second wireless protocol a second wireless broadcast transmission addressed to the second computing device, the second wireless broadcast transmission comprising at least one second packet; as well as Based on the second computing device being determined to be outside of the wireless communication range of the first computing device, the packet is not retransmitted to the second computing device via the first wireless protocol.
2. The method according to claim 1, wherein: Determining that the second computing device is within wireless communication range of the first computing device based on the one or more wireless messages exchanged via the first wireless protocol includes sending a discovery message and receiving a discovery reply message.
3. The method according to claim 2, wherein: The discovery reply message includes an address of the second computing device on the second wireless protocol, and wherein receiving the wireless broadcast transmission addressed to the second computing device from the wireless transmitter via the second wireless protocol includes searching via the second wireless protocol for a signal addressed to the address of the second computing device on the second wireless protocol.
4. The method according to claim 1, wherein: The method further comprises: A retransmission request for the packet is received from the second computing device; and wherein retransmitting the packet to the second computing device is responsive to the retransmission request.
5. The method according to claim 1, wherein: Retransmitting the packet to the second computing device is done in response to receiving the wireless broadcast transmission addressed to the second computing device and without a request from the second computing device.
6. The method according to claim 5, wherein: Retransmitting the packet includes waiting a random delay period before retransmitting the packet.
7. The method according to claim 1, wherein: Determining that the second computing device is no longer within wireless communication range of the first computing device includes determining that a signal property of a received communication from the second computing device no longer satisfies a specified threshold.
8. A computing device for enhancing the reliability of wireless transmissions to a receiver, the computing device comprising: processor; a memory device storing instructions that, when executed by the processor, cause the computing device to perform operations comprising: determining, based on one or more wireless messages exchanged via the first wireless protocol, that a second computing device is within wireless communication range of the computing device; receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via a second wireless protocol, the wireless broadcast transmission comprising at least one packet, the wireless transmitter not being part of the computing device or the second computing device; in response to the second computing device being determined to be within wireless communication range of the computing device, retransmitting the packet to the second computing device via the first wireless protocol; determining that the second computing device is no longer within wireless communication range of the computing device; receiving from the wireless transmitter via the second wireless protocol a second wireless broadcast transmission addressed to the second computing device, the second wireless broadcast transmission comprising at least one second packet; and Based on the second computing device being determined to be outside of the wireless communication range of the computing device, the packet is not retransmitted to the second computing device via the first wireless protocol.
9. The computing device of claim 8, wherein: Determining that the second computing device is within wireless communication range of the computing device based on the one or more wireless messages exchanged via the first wireless protocol includes sending a discovery message and receiving a discovery reply message.
10. The computing device of claim 9, wherein: The discovery reply message includes an address of the second computing device on the second wireless protocol, and wherein the operation of receiving the wireless broadcast transmission addressed to the second computing device from the wireless transmitter via the second wireless protocol includes searching via the second wireless protocol for a signal addressed to the address of the second computing device on the second wireless protocol.
11. The computing device of claim 8, wherein: The operations further include receiving a retransmission request for the packet from the second computing device; and wherein the retransmission of the packet to the second computing device is in response to the retransmission request.
12. The computing device of claim 8, wherein: Retransmitting the packet to the second computing device is performed in response to receiving the wireless broadcast transmission addressed to the second computing device and without a request from the second computing device.
13. An apparatus for enhancing the reliability of wireless transmissions to a receiver, the apparatus comprising: means for determining that a second computing device is within wireless communication range of the first computing device based on one or more wireless messages exchanged via a first wireless protocol; means for receiving a wireless broadcast transmission addressed to the second computing device from a wireless transmitter via a second wireless protocol, the wireless broadcast transmission comprising at least one packet, the wireless transmitter not being part of the first computing device or the second computing device; means for retransmitting the packet to the second computing device via the first wireless protocol in response to the second computing device being determined to be within wireless communication range of the first computing device; means for determining that the second computing device is no longer within wireless communication range of the first computing device; means for receiving, from the wireless transmitter via the second wireless protocol, a second wireless broadcast transmission addressed to the second computing device, the second wireless broadcast transmission comprising at least one second packet; as well as Means for not retransmitting the packet to the second computing device via the first wireless protocol based on the second computing device being determined to be outside of wireless communication range of the first computing device.
14. The device according to claim 13, wherein: Means for determining that the second computing device is within wireless communication range of the first computing device based on the one or more wireless messages exchanged via the first wireless protocol include means for sending a discovery message and receiving a discovery reply message.
15. The device according to claim 14, wherein: The discovery reply message includes an address of the second computing device on the second wireless protocol, and wherein the means for receiving the wireless broadcast transmission addressed to the second computing device from the wireless transmitter via the second wireless protocol includes means for searching via the second wireless protocol for a signal addressed to the address of the second computing device on the second wireless protocol.