Efficient service discovery for peer-to-peer networking devices
First Claim
1. A method for providing information about a service in a first computing device, comprising:
- in the first computing device, performing operations for;
generating a first DNS packet based on the service, wherein the first DNS packet comprises at least one field in which at least one string is represented by a pointer that indicates an instance of the at least one string elsewhere in the first DNS packet;
generating a key/value pair that comprises a key and a value, each of the key and the value comprising information based on at least one corresponding field in the first DNS packet, wherein at least one of the key and the value comprise information from a field in which at least one string is represented by a pointer to an instance of the at least one string elsewhere in the first DNS packet;
adding, to the key, an identifier for generating a second DNS packet similar to the first DNS packet in the second computing device, the identifier identifying the first DNS packet as an in-memory DNS packet that was used in generating the key/value pair by the first computing device, and the identifier configured to be used by the second computing device to decompress the key back into a full DNS name; and
sending the key/value pair to a second computing device.
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques for discovering and/or advertising services are described herein. A first bitmask is received from a remote device over a wireless network, the first bitmask having one or more bits that have a predetermined logical value. Each bit represents a particular service provided by the remote device. A logical operation is performed between the first bitmask and a second bitmask locally generated within a local device, where the second bitmask represents a service being searched by the local device. It is determined whether the remote device is potentially capable of providing the service being searched by the local device based on a result of the logical operation.
61 Citations
17 Claims
-
1. A method for providing information about a service in a first computing device, comprising:
in the first computing device, performing operations for; generating a first DNS packet based on the service, wherein the first DNS packet comprises at least one field in which at least one string is represented by a pointer that indicates an instance of the at least one string elsewhere in the first DNS packet; generating a key/value pair that comprises a key and a value, each of the key and the value comprising information based on at least one corresponding field in the first DNS packet, wherein at least one of the key and the value comprise information from a field in which at least one string is represented by a pointer to an instance of the at least one string elsewhere in the first DNS packet; adding, to the key, an identifier for generating a second DNS packet similar to the first DNS packet in the second computing device, the identifier identifying the first DNS packet as an in-memory DNS packet that was used in generating the key/value pair by the first computing device, and the identifier configured to be used by the second computing device to decompress the key back into a full DNS name; and sending the key/value pair to a second computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A non-transitory computer-readable storage medium storing instructions that, when executed by a first computing device, cause the first computing device to perform a method for providing information about a service, the method comprising:
-
generating a first DNS packet based on the service, wherein the first DNS packet comprises at least one field in which at least one string is represented by a pointer that indicates an instance of the at least one string elsewhere in the first DNS packet; generating a key/value pair that comprises a key and a value, each of the key and the value comprising information based on at least one corresponding field in the first DNS packet, wherein at least one of the key and the value comprise information from a field in which at least one string is represented by a pointer to an instance of the at least one string elsewhere in the first DNS packet; adding, to the key, an identifier for generating a second DNS packet similar to the first DNS packet in the second computing device, the identifier identifying the first DNS packet as an in-memory DNS packet that was used in generating the key/value pair by the first computing device, and the identifier configured to be used by the second computing device to decompress the key back into a full DNS name; and sending the key/value pair to a second computing device. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computing device, comprising:
-
a processor; and a network interface; wherein the processor and the network interface are configured to perform operations for; generating a first DNS packet based on the service, wherein the first DNS packet comprises at least one field in which at least one string is represented by a pointer that indicates an instance of the at least one string elsewhere in the first DNS packet; generating a key/value pair that comprises a key and a value, each of the key and the value comprising information based on at least one corresponding field in the first DNS packet, wherein at least one of the key and the value comprise information from a field in which at least one string is represented by a pointer to an instance of the at least one string elsewhere in the first DNS packet; adding, to the key, an identifier for generating a second DNS packet similar to the first DNS packet in the second computing device, the identifier identifying the first DNS packet as an in-memory DNS packet that was used in generating the key/value pair by the first computing device, and the identifier configured to be used by the second computing device to decompress the key back into a full DNS name; and sending the key/value pair to a second computing device, wherein the key/value pair is configured to enable the second computing device to generate a second DNS packet similar to the first DNS packet in order to resolve the pointer in the at least one of the key and the value. - View Dependent Claims (15, 16, 17)
-
Specification