[go: up one dir, main page]

WO2015076791A1 - Service advertisement caching - Google Patents

Service advertisement caching Download PDF

Info

Publication number
WO2015076791A1
WO2015076791A1 PCT/US2013/070917 US2013070917W WO2015076791A1 WO 2015076791 A1 WO2015076791 A1 WO 2015076791A1 US 2013070917 W US2013070917 W US 2013070917W WO 2015076791 A1 WO2015076791 A1 WO 2015076791A1
Authority
WO
WIPO (PCT)
Prior art keywords
service
access point
service advertisement
advertisements
advertisement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2013/070917
Other languages
French (fr)
Inventor
John W. FLICK
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to PCT/US2013/070917 priority Critical patent/WO2015076791A1/en
Publication of WO2015076791A1 publication Critical patent/WO2015076791A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Definitions

  • Multicast Domain Name System also referred to as multicast DNS or mDNS
  • DNS-SD DNS-Based Service Discovery
  • computing systems can query and advertise services (i.e., functionalities, data, or combinations thereof) provided by those computing systems to other computing systems in a distributed manner without prior coordination.
  • Zeroconf can simplify accessing services such as printing services; file storing or sharing services; remote desktop services; application services; textual, audio, and/or video communications services.
  • multicast communications i.e., multicast communications or communications that emulate multicast communications
  • multiple computing systems or services hosted at those computing systems
  • information about services available within a network of computing systems can propagate quickly through the network.
  • FIG. 1 is a flowchart of a service advertisement caching process, according to an implementation.
  • FIGS. 2A, 2B and 2C are an illustration of an environment including an access point hosting a caching module and a service advertisement cache, according to an implementation.
  • FIG. 3 is a schematic block diagram of an access point hosting a caching module, according to an implementation.
  • FIG. 4 is a flowchart of a service advertisement caching process, according to another implementation.
  • mDNS and DNS-SD can simplify propagation of information about services available within a network of computing systems (also referred to simply as a network)
  • the multicast methodologies used by mDNS can negatively affect some networks.
  • wireless networks can be particularly susceptible to negative effects of multicast communications.
  • multicast communications can result in increased physical channel collisions (i.e., data packet collisions due to multiple computing systems transmitting simultaneously) as multiple computing systems attempt to acknowledge a multicast communication.
  • Acknowledgements can be disabled for multicast communications to avoid such collisions, but the computing system transmitting a multicast communication (e.g., an access point) is then unable to determine whether the intended recipients actually received the multicast communication.
  • a multicast communication e.g., an access point
  • multicast communications are typically transmitted within a wireless network at a lowest data rate or converted to multiple unicast communications because different computing systems can communicate with a single access point at different data rates.
  • multicast communications often result in increased utilization of the physical channel, reducing the availability of the physical channel for other communications.
  • mDNS and DNS-SD can simplify discovery of services within a wireless network, the use of multicast communications within a wireless network can degrade the performance of such networks.
  • mDNS and DNS-SD use expiration values such as time-to-live (TTL) values to indicate a period of time for which a service advertisement is valid (e.g., a time during which a service announced by a service advertisement is accessible). That is, a service advertisement typically includes an associated expiration value that identifies the period during which the service advertised by that service advertisement can be assumed to be active.
  • An expiration value can indicate a period of time or a number of events during which a service advertisement should be considered valid or a time after which a service advertisement should be considered invalid.
  • an expiration value can be relative (e.g., based on a current time such as when an expiration value is received) or absolute (e.g., a uniquely identified time).
  • This disclosure describes service advertisement caching systems and methods that reduce communication in a wireless network.
  • service advertisement caching systems and methods described herein rely on the
  • computing systems e.g., physical computing systems such as servers, desktop computers, notebook computers, tablets, and smartphones and virtual computing systems such as virtual machines
  • computing systems e.g., physical computing systems such as servers, desktop computers, notebook computers, tablets, and smartphones and virtual computing systems such as virtual machines
  • computing systems e.g., physical computing systems such as servers, desktop computers, notebook computers, tablets, and smartphones and virtual computing systems such as virtual machines
  • access points e.g., physical computing systems such as servers, desktop computers, notebook computers, tablets, and smartphones and virtual computing systems such as virtual machines
  • service advertisements are cached within a service advertisement cache at an access point or other network device (e.g., switch, gateway, router, or bridge).
  • an access point or other network device e.g., switch, gateway, router, or bridge.
  • each computing system within a network typically maintains its own information about services available within the network. Although such an approach decentralizes the service information and allows each computing system to manage the service information according to its policies, each computing system independently refreshes the service information. Such refreshing can negatively affect the network, for example, by increasing the utilization of the physical channel as discussed above.
  • the access point can cache service advertisements within a memory of the access point.
  • the access point can forward (or transmit) the service query to a computing system or computing systems from which the access point has previously received one or more service advertisements matched or satisfied by that service query using unicast communications rather than forwarding the service query to other computing systems as a multicast communication.
  • the access point when the access point receives a service query, the access point can respond to the service query by transmitting service advertisements matching or satisfying that service query rather than forwarding the service query to other computing systems as a multicast communication.
  • Each such service advertisement can identify the computing system from which it was originally transmitted (i.e., the computing system hosting the service advertised or announced by that service advertisement) as the location of the service, and can be sent as a multicast communication or unicast communication.
  • the access point can avoid distributing the service query through the network as a multicast communication.
  • the access point can disregard expiration values associated with the cached service advertisements.
  • the access point can operate without refreshing the cached service advertisements according to their associated expiration values.
  • the access point can treat information about services as valid until the computing devices from which this information was originally transmitted disassociate from the access point.
  • the access point can manage or maintain a cache of service advertisements (a service advertisement cache) independent of the expiration values of those service advertisements.
  • a computing device can transmit a service advertisement with a predefined expiration value to indicate that a cached service advertisement corresponding to that service advertisement should be invalidated (e.g., removed or marked as invalid) within the cache.
  • a service advertisement can identify the same service and location (e.g., computing device at which the service is hosted or provided) as the cached service
  • an access point can identify and invalidate the corresponding cached service advertisement, after which the access point will not transmit the invalid service advertisement (i.e., the service advertisement that was previously cached).
  • FIG. 1 is a flowchart of a service advertisement caching process, according to an implementation.
  • Service advertisement caching process 100 can be
  • process 100 can be implemented or realized at a variety of hosts (i.e., computing systems).
  • process 100 can be implemented at a network controller such as a wireless controller or a software-defined networking (SDN) controller within a network.
  • process 100 can be implemented at an access point or other network device within a network.
  • process 100 can be implemented at clients of a network (e.g., computing systems that communicate one with another via one or more networks) such as servers, desktop computers, notebook computers, tablets, or smartphones.
  • a network e.g., computing systems that communicate one with another via one or more networks
  • process 100 includes two sequences that are executable in parallel one with another (i.e., blocks 1 10, 120, and 130 can operate in parallel with blocks 140 and 150).
  • a service advertisement caching process can include blocks (or steps) that are executed serially.
  • a service advertisement is received at block 1 10.
  • a service advertisement is a data set that describes availability of a service.
  • a service advertisement can include an identifier of a service (e.g., a class, type, or name of a service), a location at which that service is available (e.g., an identifier such as a hostname or Internet Protocol (IP) address of a computing system hosting that service), and/or an expiration value for that service or service advertisement.
  • IP Internet Protocol
  • a service advertisement can be associated with a service (e.g., based on an identifier of that service), with a location such as a computing system at which a service advertised or announced by the service advertisement is hosted or accessible, and/or with an expiration value.
  • a service advertisement can be received under a variety of circumstances and at various times.
  • a computing system can transmit (or send) a service advertisement for each service provided by that computing system when it connects to or associates with a network or at other times to notify the network (e.g., network devices and other clients of the network) of the services provided by that computing device.
  • the network e.g., network devices and other clients of the network
  • service advertisements can be transmitted when a property, attribute, or characteristic of a service changes (e.g., a change of identifier or location of a service such as IP address, host name, or port number or a change of other properties, attributes, or characteristics); to provide a new expiration value for a previously transmitted service advertisement (e.g., a withdrawal value such as a zero or a negative expiration value to indicate a service is no longer or soon will not be available or accessible); or periodically to refresh information included in a previous service advertisement.
  • a host implementing process 100 can receive such transmitted service advertisements.
  • a computing system can transmit service queries for services that computing system is configured or programmed to use when it connects to or associates with a network or at some other time (e.g., to refresh information about a service based on an expiration value or input from a user).
  • Service queries are data sets that describe a desired, requested, or queried service.
  • a service query can include an identifier of a service (e.g., a class, type, or name of a service).
  • a service query can include an identifier such as a hostname or Internet Protocol (IP) address of a computing system querying a service (i.e., the computing system from which the service query was transmitted).
  • IP Internet Protocol
  • other computing systems can receive those service queries and transmit service advertisements for corresponding services provided by those computing systems.
  • a host implementing process 100 can also receive such transmitted service
  • a host implementing process 100 can receive such multicast service advertisements via, for example, a multicast address or interface or other multicast mechanism of that host even if that host did not transmit a corresponding service query.
  • a host implementing process 100 can receive service
  • the service advertisements received at block 1 10 are then stored within a memory of a host implementing process 100 at block 120. That is, the service advertisements (or portions or representations thereof) are stored at memory locations of a memory within a host implementing process 100.
  • the service advertisements can be cached within the memory.
  • a host implementing process 100 can include a service advertisement cache (i.e., a portion of a memory at which service advertisement are stored for later access).
  • an expiration value associated with the service advertisement received at block 1 10 is disregarded.
  • a host implementing process 100 can disregard expiration values of service advertisements in a variety of ways. For example, such a host can not store expiration values in a memory with other portions of service advertisements. As another example, such a host can not initialize a timer or other timing mechanism to monitor whether a time condition associated with an expiration value is or will soon be satisfied. As yet another example, such a host can not perform an action that is associated with an expiration value. More specifically, for example, such a host can disregard an expiration value associated with a service advertisement for a service by not sending a service query for the service when that service advertisement has or will soon expire based on the expiration value. Said differently, an expiration value can be disregarded by discarding or ignoring the expiration value, by not monitoring the expiration value or an event associated with the expiration value, and/or by not performing an action associated with the expiration value.
  • the expiration value associated with the service advertisement received at block 1 10 is disregarded at block 130 and process 100 then proceeds again to block 1 10.
  • the expiration value can be discarded or a timer can not be started to avoid or prevent monitoring of the expiration value.
  • a host implementing process 100 can avoid sending a service query associated with the service announced by a service advertisement received at block 1 10 despite an expiration value associated with the service advertisement that indicates a time at which a service query associated with the service should be sent.
  • a host implementing process 100 begins disregarding the expiration value at block 130 and continues to disregard the expiration value as blocks 1 10 - 150 are subsequently performed. For example, a host implementing process 100 can continually not perform or prevent
  • Disregarding the expiration values of service advertisements received at block 1 10 can substantially enhance performance of a wireless network.
  • an access point implementing process 100 to maintain a service advertisement cache at the access point can avoid consuming wireless bandwidth by not periodically sending service queries associated with the services announced by service advertisements within the service advertisement cache despite expiration values associated with those service advertisements that indicate when such service queries should be sent.
  • an access point can determine when a wireless client has disassociated from the access point, an access point implementing process 100 can rely on a disassociation signal to trigger invalidation of a service advertisement rather than an event such as a time associated with an expiration value.
  • the access point can assume that services provided by a wireless client will remain accessible until the wireless client disassociates from the access point or an associated service advertisement indicating that the service is no longer accessible (e.g., a service advertisement with a predefined expiration value such as a zero or negative expiration value) is received for that service at the access point.
  • the access point disregards expiration values to enhance performance of a wireless network.
  • event E10 can occur asynchronously with receiving service advertisements at block 1 10, storing those service advertisements within a memory at block 120, and disregarding expiration values of service advertisements at block 130. That is, event E10 represents that a client has disassociated (e.g., become disconnected or disassociated, is performing a disconnection or disassociation process, or indicating that it will disconnect disassociate) from a network or network device of a network to which a host implementing process 100 is communicatively coupled.
  • disassociated e.g., become disconnected or disassociated, is performing a disconnection or disassociation process, or indicating that it will disconnect disassociate
  • a host implementing process 100 determines that the client is disassociated from the network at block 140.
  • a host implementing process 100 can determine that a client is disassociated from the network in response to a variety of disassociation signals.
  • a disassociation signal is a signal such as a data set, a logic value, or a condition or set of conditions associated with disassociation or disconnection from a network or from a network device of a network.
  • the client can transmit a disassociation message (i.e., a data set indicating that a client is or intends to disassociate from a network) via the network, and a host implementing process 100 can receive and interpret that disassociation message as a disassociation signal.
  • a network controller or network device can receive a
  • disassociation message from the client and can provide a disassociation signal to a host implementing process 100 in response to that disassociation message. That host can determine that the client is disconnected from the network based on such disassociation signals.
  • an access point can implement process 100, and that access point can determine that the client is disassociated from the network (or from that network device) in response to detecting that the client has disassociated from that access point.
  • the access point can determine that the client is disassociated from the network (or from that network device) in response to detecting that an association between the client and the access point has been, should be, or will be severed.
  • the access point can detect that the client has not responded to a request or has been inactive for a period of time, and can generate a disassociation signal for process 100 in response.
  • the access point can generate a disassociation signal for process 100 in response to a disassociation message from the client or as part of a disassociation process with the client.
  • Service advertisements associated with that client are invalidated at the memory of that host at block 150 in response to determining that the client is disassociated from the network (or network device of that network).
  • Service advertisements can be invalidated within a memory (or cache) by, for example, deleting or removing those service advertisements from the memory, overwriting those service advertisements within the memory, marking or flagging portions of the memory (e.g., memory locations) at which those service advertisements are stored as free or available for use, marking or flagging those service advertisements as invalid or inactive within the memory, and/or otherwise indicating that those service advertisements are no longer valid.
  • Process 100 illustrated in FIG. 1 is an example implementation of a service advertisement caching process.
  • a service advertisement caching process can include additional, fewer, or rearranged blocks or steps.
  • blocks of a service advertisement caching process can be implemented serially or sequentially rather than in parallel.
  • a service advertisement caching process can include a block (e.g., between blocks 140 and 150) at which service advertisements associated with a client that has disassociated from a network (or network device thereof) are identified.
  • service advertisements can include a identifier of the client (e.g., a computing system) at which the service is hosted or accessible, and a host implementing a service advertisement caching process can identify service advertisements associated with a client that has disassociated from a network based on an identifier of the client that has
  • FIGS. 2A, 2B, and 2C are an illustration of an environment including an access point hosting a caching module and a service advertisement cache, according to an implementation.
  • Environment 200 includes access point 210, computing systems 221 -223, network resources 254 and 255, and communications link 290. Collectively, access point 210 and communications link 290 can be referred to as a network.
  • Computing systems 221 -223 and network resources 254 and 255 can be referred to as clients of that network.
  • Network resources 254 are resources available via the network.
  • network resources 254 and 255 can be physical computing systems or logical computing systems connected to (or associated with) the network and provide resources to other clients of the network.
  • network resources 254 and 255 can host a system providing a service (also referred to itself as a service) such as a database, a web server, an application server, a file server, a virtual desktop, or some other service.
  • a service also referred to itself as a service
  • a service such as a database, a web server, an application server, a file server, a virtual desktop, or some other service.
  • Access point 210 is a network device via which wireless clients of a network can connect to that network to communicate with other clients of the network.
  • wireless clients of a network are coupled (or associated) wirelessly to a network via an access point.
  • Wireless clients of a network are clients of that network that are wirelessly coupled with an access point of that network.
  • a wireless client of a network is said to be associated with the access point via which it is
  • a wireless client of a network is said to be disassociated from an access point when it ceases to communicate via that access point.
  • a mobile wireless client associated from a first access point can disassociate from the first access point in response to movement of the mobile wireless client toward a second access point and a determination that a more robust wireless communications channel exists between the mobile wireless client and the second access point than between the mobile wireless client and the first access point.
  • the mobile wireless client can associate with the second access point.
  • the mobile wireless client would be associated with the second access point and disassociated from the first access point.
  • Computing systems 221 -223 are wireless clients of the network that are associated with access point 210 and can communicate with other clients and network devices of the network via access point 210.
  • computing systems 221 -223 each include (or access) a wireless communications interface (not shown) to establish a wireless communications link (e.g., radio-frequency link, free- space optical link, or sonic link) with a wireless communications interface of access point 210 (not shown).
  • a wireless communications link e.g., radio-frequency link, free- space optical link, or sonic link
  • Communications link 290 includes devices, systems, services, or
  • communications link 290 can include one or more of a cable (e.g., twisted-pair cable, coaxial cable, or fiber optic cable), a wireless communications link, or any other connectors or systems that transmit or support transmission of signals.
  • communications link 290 can include communications networks such as a switch fabric, an intranet, the Internet, telecommunications networks, or a combination thereof.
  • communications link 290 can include proxies, routers, switches, gateways, bridges, load balancers, and similar communications devices.
  • the connections or communications paths illustrated in FIG. 2A and discussed herein can be logical or physical.
  • network resource 255 may not be physically connected to communications link 290, but may be accessible via communications link 290 and a server and/or additional
  • service 232 is accessible at computing system 222
  • service 233 is accessible at computing system 22
  • service 234 is accessible at network resource 254.
  • Services 232-234 provide service advertisements (labeled "SERV. ADV.” in FIG. 2A) to announce or describe their availability via the network including access point 210 and communications link 290.
  • service advertisements are transmitted as multicast communications.
  • service advertisements can be transmitted as mDNS messages. That is, such service advertisements can be transmitted using multicast
  • these service advertisements may also be received at other clients of the network.
  • Caching module 21 1 is a combination of hardware and software that receives service advertisements and service queries and applies a service advertisement caching process to those service advertisements and service queries. For example, caching module 21 1 can determine which service advertisements to store in service advertisement cache 212 (a portion of a memory of access point 210), whether to invalidate service advertisements stored in service advertisement cache 212 (cached service advertisements), and/or whether to drop a service query and respond to that service query with a service advertisement from service advertisement cache 212 according to various implementations.
  • caching module 21 1 stores the received service advertisements from computing systems 222 and 223 and network resource 254 in service advertisement cache 212.
  • caching module 21 1 drops (or causes access point 210 to drop) service advertisements entirely or relative to one or more network interfaces.
  • caching module 21 1 can cause access point 210 to not forward or further transmit service advertisements via one or more communications interfaces of access point 210.
  • access point 210 can include a wireless communications interface (not shown) via which it communicates with computing systems 221 - 223 and a wired communications interface (not shown) via which it communicates with communications link 290 and network resources 254 and 255.
  • access point 210 can forward the service advertisement via the wired communications interface and drop the service advertisement relative to the wireless communications interface (i.e., the service advertisement is not forwarded via the wireless communications interface).
  • caching module 21 1 receives a service query (labeled "SERV. QRY.” in FIG. 2A) from computing system 221 associated with (or for) service 232 provided by (e.g., accessible or hosted at) computing system 222.
  • Caching module 21 1 determines, for example, based on a service identifier included in the service query and the service advertisement from service 232, that the service associated with the service query is associated with a service advertisement in service advertisement cache 212 (i.e., the service advertisement from service 232).
  • service advertisement cache 212 i.e., the service advertisement from service 232
  • caching module 21 1 drops the service query (i.e., does not forward or further transmit the service query via one or more communications interfaces) and provides the service advertisement from service 232 stored in service advertisement cache 212 to computing system 21 1 .
  • caching module 21 1 disregards expiration values of service advertisements stored in service advertisement cache 212. In other words, caching module 21 1 does not invalidate service advertisements or transmit service queries to refresh information about services according to expiration values of service advertisements stored in service advertisement cache 212. Rather, caching module 21 1 invalidates service advertisements stored in service advertisement cache 212 in response to determination that a client associated with such service advertisements has disassociated with access point 210. Said another way, caching module 21 1 manages service advertisement cache 212 (e.g., invalidates service advertisements within service advertisement cache 212) independent of expiration values associated with those service advertisements.
  • FIG. 2B illustrates another example of operation of access point 210.
  • service advertisements are received from computing systems 222 and 223 and network resource 254, for example as discussed above.
  • Caching module 21 1 then receives, at a time designated T1 in this example, a service query (labeled "SERV. QRY.” in FIG. 2B) from computing system 221 associated with (or for) one or more services.
  • Caching module 21 1 determines, for example, based on a service identifier included in the service query and the service advertisements within service advertisement cache 212, whether the service associated with the service query is associated with one or more service
  • caching module 21 1 provides (e.g., forwards) the service query to the services (or computing systems hosting services) advertised by the corresponding (or matching) service advertisements in service advertisement cache 212.
  • the service query can be forwarded using non-multicast communications such as unicast communications to avoid inefficiencies of multicast communications in wireless communications links.
  • the service query can be provided to the services advertised by service advertisements in a service advertisement cache that correspond to the service query and not be provided to the services advertised by service advertisements in a service advertisement cache that do not correspond to the service query.
  • caching module 21 1 can drop the service query or provide the service query to computing devices and/or network resources, for example, via multicast communications.
  • caching module can drop the service query with respect to one communications interface (e.g., a wireless communications interface) and provide the service query to computing devices and/or network resources via another communications interface (e.g., a wired communications interface).
  • the services (or computing systems hosting the services) to which the service query is provided respond to the service query by sending service advertisements.
  • service advertisements can be sent via multicast communications or unicast communications.
  • service advertisements can be addressed to a multicast address or to a unicast address of the computing system that sent the service query.
  • the service advertisement from service 232 corresponds to (or matches) the service query sent by computing system 221 .
  • caching module 21 1 provides the service query sent by computing system 221 to computing system 222 using unicast communications, at a time after T1 designated T2 in FIG. 2B.
  • Computing system 222 responds to the service query by transmitting a service advertisement, at a time after T2 designated T3 in FIG. 2B, which is provided to computing system 221 .
  • a caching module manages service queries relative to one communications interface and not another communications interface.
  • the service query provided by computing system 221 at time T1 can be forwarded via a wired communications interface of access point 210 (not shown) independent of caching module 21 1 and/or whether a corresponding service advertisement exists in service advertisement cache 212.
  • the service query can be transmitted as a multicast communication via that wired communications interface.
  • caching module 21 1 can manage service queries differently with respect to different communications interfaces (i.e., communications interfaces of different types or classes or with different properties or attributes).
  • FIG. 2C illustrates environment 200 after computing system 223 disassociates with access point 210.
  • computing system 223 can be a notebook computer with a WiFi® wireless communications interface that communicates with a WiFi® wireless communications interface of access point 210 via one or more of the IEEE 802.1 1 protocols.
  • computing system 223 enters a sleep state or is powered down, its wireless communications interface disassociates with the wireless communications interface of access point.
  • access point 210 provides a disassociation signal to caching module 21 1 .
  • the disassociation signal can include an identifier of computing system 223 such as a hostname or IP address and a status value indicating that computing system 223 is disassociated (e.g., has become disassociated, will become disassociated, should become disassociated, or is in a disassociation process) with access point 210 (or the network including access point 210).
  • Caching module 21 1 identifies service advertisements associated with computing system 223 (i.e., the disassociated client), and invalidates those service advertisements stored in service advertisement cache 212. In FIG. 2C, the lines through the service advertisement received from computing system 223 indicate that this service advertisement has been invalidated.
  • caching module 21 1 (or access point 210) functions as though that service advertisement is not in service advertisement cache 212. As an example, with reference to the example illustrated in FIG. 2A, caching module 21 1 does not forward an invalidated service advertisement in response to a service query corresponding to (or matching or satisfying) that invalidated service advertisement. As another example, with reference to the example illustrated in FIG. 2B, caching module 21 1 does not forward service queries based on an invalidated service advertisement corresponding to (or matched or satisfied by) that service query.
  • caching module 21 1 drops such a service query or transmits that service query using multicast communications.
  • FIG. 3 is a schematic block diagram of an access point hosting a caching module, according to an implementation.
  • access point 300 includes processor 310, wireless communications interface 320, and memory 330.
  • Processor 310 is any combination of hardware and software that executes or interprets instructions, codes, or signals.
  • processor 310 can be a microprocessor, an application-specific integrated circuit (ASIC), a graphics processing unit (GPU) such as a general-purpose GPU (GPGPU), a distributed processor such as a cluster or network of processors or computing systems, a multi- core or multi-processor processor, a virtual or logical processor, or some combination of processors or 310.
  • ASIC application-specific integrated circuit
  • GPU graphics processing unit
  • GPU general-purpose GPU
  • a distributed processor such as a cluster or network of processors or computing systems, a multi- core or multi-processor processor, a virtual or logical processor, or some
  • processor 310 can include multiple processors such as one or more general purpose processors and one or more ASICs.
  • Wireless communications interface 320 is a module via which processor 310 can communicate with other processors or computing systems via a wireless communications link.
  • communications interface 320 can include a wireless network interface card and a communications protocol stack hosted at processor 310 (e.g., instructions or code stored at memory 330 and executed or interpreted at processor 310 to implement a network protocol) to receive data from and send data to resource authorities.
  • wireless communications interface 320 can an IEEE 802.1 1 or WiFi® interface, a Bluetooth® interface, a ZigBee® interface, or some other wireless communications interface via which processor 310 can exchange signals or symbols representing data to communicate with other processors or computing systems.
  • access point 300 also includes one or more additional communications interfaces (not shown).
  • access point 300 can include one or more wired communications interfaces via which access point 300 can be communicatively coupled to other computing systems or network devices.
  • access point 300 can include instructions within memory 330 that can be executed at processor 310 to implement one or more modules that bridge or connect two or more communications interfaces of access point 300.
  • access point includes circuitry to bridge or connect two or more communications interfaces of access point 300.
  • Memory 330 is one or more processor-readable media that store instructions, codes, data, or other information.
  • a processor-readable medium is any medium that stores instructions, codes, data, or other information non-transitorily and is directly or indirectly accessible to a processor. Said differently, a processor- readable medium is a non-transitory medium at which a processor can access instructions, codes, data, or other information.
  • memory 330 can be a volatile random access memory (RAM), a persistent data store such as a hard-disk drive or a solid-state drive, a compact disc (CD), a digital versatile disc (DVD), a Secure DigitalTM (SD) card, a MultiMediaCard (MMC) card, a CompactFlashTM (CF) card, or a combination thereof or of other memories.
  • RAM volatile random access memory
  • CD compact disc
  • DVD digital versatile disc
  • SD Secure DigitalTM
  • MMC MultiMediaCard
  • CF CompactFlashTM
  • memory 330 can represent multiple processor-readable media.
  • memory 330 (or some portion thereof) can be integrated with processor 310, separate from processor 310, or external to access point 300.
  • Memory 330 includes instructions or codes that when executed at processor 310 implement operating system 331 and other modules such as caching module 332.
  • a processor implements a module by performing functionalities, processes, or actions associated with a module.
  • instructions or codes stored at memory 330 and/or executed (or interpreted) by processor 310 can be referred to as modules.
  • Memory 330 is also operable to store additional codes or instructions to implement other modules not illustrated in FIG. 3 and/or other data sets such as service advertisement cache 333.
  • Caching module 332 can be accessed or installed at access point 300 from a variety of memories or processor-readable media or via a communications network.
  • access point 300 can access caching module 332 at a remote processor-readable medium via a communications interface other than wireless communications interface 320 (not shown).
  • access point 300 can be a network-boot device that accesses operating system 331 and caching module 332 during a boot process (or sequence).
  • access point 300 can include (not illustrated in FIG. 3) a processor-readable medium access device (e.g., a CD or DVD drive or a CF or SD card reader) to access a processor- readable medium storing caching module 332.
  • a processor-readable medium access device e.g., a CD or DVD drive or a CF or SD card reader
  • FIG. 4 is a flowchart of a service advertisement caching process, according to another implementation.
  • Service advertisement caching process 400 illustrated in FIG. 4 can be implemented, for example, at a caching module within an access point. Additionally, functionalities or actions described herein as being performed by process 400 should be understood to be performed by a host (e.g., an access point or caching module at an access point) of or implementing process 400.
  • a host e.g., an access point or caching module at an access point
  • process 400 monitors signals or data provided to process 400. After receiving a service advertisement at block 410, process 400 determines whether that service advertisement has a predefined value at block 420. In other words, process 400 compares an expiration value of that service advertisement with a predefined value to determine whether that expiration value satisfies or matches the predefined value at block 420.
  • the predefined value can be an expiration value that signals or indicates that a service for which a service advertisement was previously transmitted is no longer accessible or will become inaccessible.
  • the predefined value can be, for example, a zero value.
  • process 400 proceeds to block 430 at which the service advertisement is stored in a memory as discussed above, for example. Process 400 then returns to block 410 at which signals are again monitored.
  • Corresponding service advertisements can be identified based on, for example, a location (e.g., hostname or IP address of a computing system at which a service associated with a service advertisement is accessible) of that service advertisement and service advertisements in the memory.
  • corresponding service advertisements can be identified based on, for example, a location and service identifier (e.g., name, type, or class of a service) of that service advertisement and service advertisements in the memory.
  • service advertisements in the memory that have a common location or a common location and a common service identifier with that service advertisement can be identified as corresponding to that service advertisement.
  • Process 400 can then proceed to block 450 at which the corresponding service advertisements identified at block 440 are invalidated within the memory as discussed above, for example. Process 400 then returns to block 410 at which signals are again monitored.
  • process 400 proceeds to block 440 at which one or more service advertisements associated with (or corresponding to) that client are identified in the memory.
  • Corresponding service advertisements can be identified based on, for example, an identifier (e.g., hostname or IP address) of that client and locations of service advertisements in the memory.
  • identifier e.g., hostname or IP address
  • service advertisements for which an associated location matches the identifier of that client can be identified as corresponding to (or associated with) that client.
  • Process 400 can then proceed to block 450 at which the corresponding service advertisements identified at block 440 are invalidated within the memory as discussed above, for example. Process 400 then returns to block 410 at which signals are again monitored.
  • Process 400 illustrated in FIG. 4 is an example implementation of a service advertisement caching process.
  • a service advertisement caching process can include additional, fewer, or rearranged blocks or steps.
  • blocks of a service advertisement caching process can be implemented to execute in parallel rather than serially as illustrated in FIG. 4.
  • FIG. 4 While certain implementations have been shown and described above, various changes in form and details may be made. For example, some features that have been described in relation to one implementation and/or process can be related to other implementations. In other words, processes, features, components, and/or properties described in relation to one implementation can be useful in other implementations. As another example, functionalities discussed above in relation to specific modules or elements can be included at different modules, engines, or components in other implementations. Furthermore, it should be understood that the systems, apparatus, and methods described herein can include various
  • module refers to a combination of hardware (e.g., a processor such as an integrated circuit or other circuitry) and software (e.g., programming such as machine- or processor-executable instructions, commands, or code such as firmware, programming, or object code).
  • a combination of hardware and software includes hardware only (i.e., a hardware element with no software elements such as an ASIC), software hosted at hardware (e.g., software that is stored at a memory such as RAM, a hard-disk or solid-state drive, resistive memory, or optical media such as a DVD and/or executed or interpreted at a processor), or hardware and software hosted at hardware.
  • the singular forms "a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise.
  • the term “module” is intended to mean one or more modules or a combination of modules.
  • the term “provide” as used herein includes push mechanisms (e.g., sending data to a computing system or agent via a communications path or channel), pull mechanisms (e.g., delivering data to a computing system or agent in response to a request from the computing system or agent), and store mechanisms (e.g., storing data at a data store or service at which a computing system or agent can access the data).
  • the term “based on” means “based at least in part on.” Thus, a feature that is described as based on some cause, can be based only on the cause, or based on that cause and on one or more other causes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

In one implementation, service advertisement caching method stores a plurality of service advertisements received from a plurality of wireless clients at a memory and disregards an expiration value associated with each service advertisement from the plurality of service advertisements. The service advertisement caching method further determines that a wireless client from the plurality of wireless clients has disassociated from an access point, and invalidates service advertisements from the plurality of service advertisements associated with the wireless client within the memory in response to determining that the wireless client from the plurality of wireless clients has disassociated from the access point.

Description

SERVICE ADVERTISEMENT CACHING
BACKGROUND
[1001 ] Multicast Domain Name System (also referred to as multicast DNS or mDNS) and DNS-Based Service Discovery (also referred to as DNS-SD) can be used by computing systems to provide zero-configuration networking (also referred to as zeroconf). For example, physical and virtual computing systems hosting mDNS and DNS-SD modules can query and advertise services (i.e., functionalities, data, or combinations thereof) provided by those computing systems to other computing systems in a distributed manner without prior coordination. Zeroconf can simplify accessing services such as printing services; file storing or sharing services; remote desktop services; application services; textual, audio, and/or video communications services.
[1002] Typically, computing systems that support mDNS and DNS-SD issue multicast service queries and observe multicast service advertisements (also referred to as service responses) to determine which services are available within a network. Because such service queries and service advertisements are
communicated using multicast communications (i.e., multicast communications or communications that emulate multicast communications), multiple computing systems (or services hosted at those computing systems) can respond to a single service query and multiple computing systems can receive a single service advertisement. Thus, information about services available within a network of computing systems can propagate quickly through the network.
BRIEF DESCRIPTION OF THE DRAWINGS
[1003] FIG. 1 is a flowchart of a service advertisement caching process, according to an implementation.
[1004] FIGS. 2A, 2B and 2C are an illustration of an environment including an access point hosting a caching module and a service advertisement cache, according to an implementation. [1005] FIG. 3 is a schematic block diagram of an access point hosting a caching module, according to an implementation.
[1006] FIG. 4 is a flowchart of a service advertisement caching process, according to another implementation.
DETAILED DESCRIPTION
[1007] Although mDNS and DNS-SD can simplify propagation of information about services available within a network of computing systems (also referred to simply as a network), the multicast methodologies used by mDNS can negatively affect some networks. For example, wireless networks can be particularly susceptible to negative effects of multicast communications. As a specific example, multicast communications can result in increased physical channel collisions (i.e., data packet collisions due to multiple computing systems transmitting simultaneously) as multiple computing systems attempt to acknowledge a multicast communication.
Acknowledgements can be disabled for multicast communications to avoid such collisions, but the computing system transmitting a multicast communication (e.g., an access point) is then unable to determine whether the intended recipients actually received the multicast communication.
[1008] As another specific example of the negative effects of multicast
communications in wireless networks, multicast communications are typically transmitted within a wireless network at a lowest data rate or converted to multiple unicast communications because different computing systems can communicate with a single access point at different data rates. Thus, multicast communications often result in increased utilization of the physical channel, reducing the availability of the physical channel for other communications. In other words, although mDNS and DNS-SD can simplify discovery of services within a wireless network, the use of multicast communications within a wireless network can degrade the performance of such networks.
[1009] Typically, mDNS and DNS-SD use expiration values such as time-to-live (TTL) values to indicate a period of time for which a service advertisement is valid (e.g., a time during which a service announced by a service advertisement is accessible). That is, a service advertisement typically includes an associated expiration value that identifies the period during which the service advertised by that service advertisement can be assumed to be active. An expiration value can indicate a period of time or a number of events during which a service advertisement should be considered valid or a time after which a service advertisement should be considered invalid. In other words, an expiration value can be relative (e.g., based on a current time such as when an expiration value is received) or absolute (e.g., a uniquely identified time).
[1010] After receiving such service advertisements, conventional approaches dictate that a computing system track or monitor the associated expiration values and send a new service query for a service when the service advertisement for that service will soon be deemed invalid based on its expiration value to refresh its information about that service. This service query is transmitted as a multicast communication and responses to it are also transmitted as multicast communications. As a result, a significant amount of communication capacity of a wireless network can be consumed as computing systems within the wireless network refresh their information about services available within (or via) the wireless network.
[101 1 ] This disclosure describes service advertisement caching systems and methods that reduce communication in a wireless network. For example, service advertisement caching systems and methods described herein rely on the
connectivity or association of computing systems (e.g., physical computing systems such as servers, desktop computers, notebook computers, tablets, and smartphones and virtual computing systems such as virtual machines) with access points to determine that a service advertisement is invalid. In other words, rather than periodically refresh information about a service (e.g., send a service query associated with that service) based on an expiration value associated with a service advertisement for that service to determine whether that service is available, that expiration value can be disregarded and that service can be assumed to be available until a computing system hosting that service becomes disconnected (e.g., disassociates) from an access point.
[1012] Moreover, in some implementations, service advertisements are cached within a service advertisement cache at an access point or other network device (e.g., switch, gateway, router, or bridge). As discussed above, each computing system within a network typically maintains its own information about services available within the network. Although such an approach decentralizes the service information and allows each computing system to manage the service information according to its policies, each computing system independently refreshes the service information. Such refreshing can negatively affect the network, for example, by increasing the utilization of the physical channel as discussed above.
[1013] In contrast, implementations discussed herein in which service
advertisements are cached within a service advertisement cache at an access point can reduce utilization of the physical channel within a network such as a wireless network. For example, the access point can cache service advertisements within a memory of the access point. In some implementations, after the access point receives a service query, the access point can forward (or transmit) the service query to a computing system or computing systems from which the access point has previously received one or more service advertisements matched or satisfied by that service query using unicast communications rather than forwarding the service query to other computing systems as a multicast communication. In other
implementations, when the access point receives a service query, the access point can respond to the service query by transmitting service advertisements matching or satisfying that service query rather than forwarding the service query to other computing systems as a multicast communication. Each such service advertisement can identify the computing system from which it was originally transmitted (i.e., the computing system hosting the service advertised or announced by that service advertisement) as the location of the service, and can be sent as a multicast communication or unicast communication. Thus, the access point can avoid distributing the service query through the network as a multicast communication.
[1014] Moreover, the access point can disregard expiration values associated with the cached service advertisements. In other words, the access point can operate without refreshing the cached service advertisements according to their associated expiration values. Rather than periodically refresh information about services (e.g., cached service advertisements), the access point can treat information about services as valid until the computing devices from which this information was originally transmitted disassociate from the access point. Said differently, the access point can manage or maintain a cache of service advertisements (a service advertisement cache) independent of the expiration values of those service advertisements.
[1015] Furthermore, in some implementations, a computing device can transmit a service advertisement with a predefined expiration value to indicate that a cached service advertisement corresponding to that service advertisement should be invalidated (e.g., removed or marked as invalid) within the cache. For example, such a service advertisement can identify the same service and location (e.g., computing device at which the service is hosted or provided) as the cached service
advertisement, and can include an expiration value of zero. In response to such a service advertisement, an access point can identify and invalidate the corresponding cached service advertisement, after which the access point will not transmit the invalid service advertisement (i.e., the service advertisement that was previously cached).
[1016] FIG. 1 is a flowchart of a service advertisement caching process, according to an implementation. Service advertisement caching process 100 can be
implemented or realized at a variety of hosts (i.e., computing systems). For example, process 100 can be implemented at a network controller such as a wireless controller or a software-defined networking (SDN) controller within a network. As another example, process 100 can be implemented at an access point or other network device within a network. As yet another example, process 100 can be implemented at clients of a network (e.g., computing systems that communicate one with another via one or more networks) such as servers, desktop computers, notebook computers, tablets, or smartphones.
[1017] As illustrated in FIG. 1 , process 100 includes two sequences that are executable in parallel one with another (i.e., blocks 1 10, 120, and 130 can operate in parallel with blocks 140 and 150). In other implementations, a service advertisement caching process can include blocks (or steps) that are executed serially.
[1018] A service advertisement is received at block 1 10. A service advertisement is a data set that describes availability of a service. As an example, a service advertisement can include an identifier of a service (e.g., a class, type, or name of a service), a location at which that service is available (e.g., an identifier such as a hostname or Internet Protocol (IP) address of a computing system hosting that service), and/or an expiration value for that service or service advertisement. In other words, a service advertisement can be associated with a service (e.g., based on an identifier of that service), with a location such as a computing system at which a service advertised or announced by the service advertisement is hosted or accessible, and/or with an expiration value.
[1019] A service advertisement can be received under a variety of circumstances and at various times. For example, a computing system can transmit (or send) a service advertisement for each service provided by that computing system when it connects to or associates with a network or at other times to notify the network (e.g., network devices and other clients of the network) of the services provided by that computing device. As examples, service advertisements can be transmitted when a property, attribute, or characteristic of a service changes (e.g., a change of identifier or location of a service such as IP address, host name, or port number or a change of other properties, attributes, or characteristics); to provide a new expiration value for a previously transmitted service advertisement (e.g., a withdrawal value such as a zero or a negative expiration value to indicate a service is no longer or soon will not be available or accessible); or periodically to refresh information included in a previous service advertisement. A host implementing process 100 can receive such transmitted service advertisements.
[1020] As another example, a computing system can transmit service queries for services that computing system is configured or programmed to use when it connects to or associates with a network or at some other time (e.g., to refresh information about a service based on an expiration value or input from a user).
Service queries are data sets that describe a desired, requested, or queried service. For example, a service query can include an identifier of a service (e.g., a class, type, or name of a service). In some implementations, a service query can include an identifier such as a hostname or Internet Protocol (IP) address of a computing system querying a service (i.e., the computing system from which the service query was transmitted). In response to service queries transmitted by a computing system, other computing systems can receive those service queries and transmit service advertisements for corresponding services provided by those computing systems. A host implementing process 100 can also receive such transmitted service
advertisements. [1021 ] Moreover, as discussed above, such service advertisements can be transmitted using multicast communications. Accordingly, a host implementing process 100 can receive such multicast service advertisements via, for example, a multicast address or interface or other multicast mechanism of that host even if that host did not transmit a corresponding service query. In other words, in some implementations a host implementing process 100 can receive service
advertisements by passively monitoring a multicast address.
[1022] The service advertisements received at block 1 10 are then stored within a memory of a host implementing process 100 at block 120. That is, the service advertisements (or portions or representations thereof) are stored at memory locations of a memory within a host implementing process 100. For example, the service advertisements can be cached within the memory. Said differently, a host implementing process 100 can include a service advertisement cache (i.e., a portion of a memory at which service advertisement are stored for later access).
[1023] At block 130, an expiration value associated with the service advertisement received at block 1 10 is disregarded. A host implementing process 100 can disregard expiration values of service advertisements in a variety of ways. For example, such a host can not store expiration values in a memory with other portions of service advertisements. As another example, such a host can not initialize a timer or other timing mechanism to monitor whether a time condition associated with an expiration value is or will soon be satisfied. As yet another example, such a host can not perform an action that is associated with an expiration value. More specifically, for example, such a host can disregard an expiration value associated with a service advertisement for a service by not sending a service query for the service when that service advertisement has or will soon expire based on the expiration value. Said differently, an expiration value can be disregarded by discarding or ignoring the expiration value, by not monitoring the expiration value or an event associated with the expiration value, and/or by not performing an action associated with the expiration value.
[1024] In the example illustrated in FIG. 1 , the expiration value associated with the service advertisement received at block 1 10 is disregarded at block 130 and process 100 then proceeds again to block 1 10. For example, the expiration value can be discarded or a timer can not be started to avoid or prevent monitoring of the expiration value. In such a manner, a host implementing process 100 can avoid sending a service query associated with the service announced by a service advertisement received at block 1 10 despite an expiration value associated with the service advertisement that indicates a time at which a service query associated with the service should be sent. In some implementations, a host implementing process 100 begins disregarding the expiration value at block 130 and continues to disregard the expiration value as blocks 1 10 - 150 are subsequently performed. For example, a host implementing process 100 can continually not perform or prevent
performance of an action associated with the expiration value such as sending a service query associated with the service announced by a service advertisement received at block 1 10.
[1025] Disregarding the expiration values of service advertisements received at block 1 10 can substantially enhance performance of a wireless network. For example, an access point implementing process 100 to maintain a service advertisement cache at the access point can avoid consuming wireless bandwidth by not periodically sending service queries associated with the services announced by service advertisements within the service advertisement cache despite expiration values associated with those service advertisements that indicate when such service queries should be sent.
[1026] Many services provided by wireless clients of access points are announced by service advertisements that have short expirations values such as 1 -2 minutes. An access point would typically frequently send service queries to maintain a service advertisement cache including those service advertisements if the expiration values were not disregarded. Due to the inefficiencies of multicast communications in wireless networks, such frequent sending of service queries can substantially degrade network performance by decreasing available bandwidth for other communications.
[1027] However, because an access point can determine when a wireless client has disassociated from the access point, an access point implementing process 100 can rely on a disassociation signal to trigger invalidation of a service advertisement rather than an event such as a time associated with an expiration value. In other words, the access point can assume that services provided by a wireless client will remain accessible until the wireless client disassociates from the access point or an associated service advertisement indicating that the service is no longer accessible (e.g., a service advertisement with a predefined expiration value such as a zero or negative expiration value) is received for that service at the access point.
Accordingly, the access point disregards expiration values to enhance performance of a wireless network.
[1028] As illustrated in FIG. 1 , additional service advertisements can be received at block 1 10 after a service advertisement is stored within a memory at block 120. In the implementation illustrated in FIG. 1 , event E10 can occur asynchronously with receiving service advertisements at block 1 10, storing those service advertisements within a memory at block 120, and disregarding expiration values of service advertisements at block 130. That is, event E10 represents that a client has disassociated (e.g., become disconnected or disassociated, is performing a disconnection or disassociation process, or indicating that it will disconnect disassociate) from a network or network device of a network to which a host implementing process 100 is communicatively coupled.
[1029] A host implementing process 100 determines that the client is disassociated from the network at block 140. A host implementing process 100 can determine that a client is disassociated from the network in response to a variety of disassociation signals. A disassociation signal is a signal such as a data set, a logic value, or a condition or set of conditions associated with disassociation or disconnection from a network or from a network device of a network. For example, the client can transmit a disassociation message (i.e., a data set indicating that a client is or intends to disassociate from a network) via the network, and a host implementing process 100 can receive and interpret that disassociation message as a disassociation signal. As another example, a network controller or network device can receive a
disassociation message from the client and can provide a disassociation signal to a host implementing process 100 in response to that disassociation message. That host can determine that the client is disconnected from the network based on such disassociation signals.
[1030] As another example, an access point (other network device) can implement process 100, and that access point can determine that the client is disassociated from the network (or from that network device) in response to detecting that the client has disassociated from that access point. In other words, the access point can determine that the client is disassociated from the network (or from that network device) in response to detecting that an association between the client and the access point has been, should be, or will be severed. For example, the access point can detect that the client has not responded to a request or has been inactive for a period of time, and can generate a disassociation signal for process 100 in response. As another example, the access point can generate a disassociation signal for process 100 in response to a disassociation message from the client or as part of a disassociation process with the client.
[1031 ] After a host implementing process 100 determines that a client is
disassociated from a network (or network device of that network), service
advertisements associated with that client are invalidated at the memory of that host at block 150 in response to determining that the client is disassociated from the network (or network device of that network). Service advertisements can be invalidated within a memory (or cache) by, for example, deleting or removing those service advertisements from the memory, overwriting those service advertisements within the memory, marking or flagging portions of the memory (e.g., memory locations) at which those service advertisements are stored as free or available for use, marking or flagging those service advertisements as invalid or inactive within the memory, and/or otherwise indicating that those service advertisements are no longer valid.
[1032] Process 100 illustrated in FIG. 1 is an example implementation of a service advertisement caching process. In other implementations, a service advertisement caching process can include additional, fewer, or rearranged blocks or steps. For example, in some implementations, blocks of a service advertisement caching process can be implemented serially or sequentially rather than in parallel. As another example, in some implementations, a service advertisement caching process can include a block (e.g., between blocks 140 and 150) at which service advertisements associated with a client that has disassociated from a network (or network device thereof) are identified. As an example, service advertisements can include a identifier of the client (e.g., a computing system) at which the service is hosted or accessible, and a host implementing a service advertisement caching process can identify service advertisements associated with a client that has disassociated from a network based on an identifier of the client that has
disassociated from the network.
[1033] FIGS. 2A, 2B, and 2C are an illustration of an environment including an access point hosting a caching module and a service advertisement cache, according to an implementation. Environment 200 includes access point 210, computing systems 221 -223, network resources 254 and 255, and communications link 290. Collectively, access point 210 and communications link 290 can be referred to as a network. Computing systems 221 -223 and network resources 254 and 255 can be referred to as clients of that network.
[1034] Network resources 254 are resources available via the network. For example, network resources 254 and 255 can be physical computing systems or logical computing systems connected to (or associated with) the network and provide resources to other clients of the network. As specific examples, network resources 254 and 255 can host a system providing a service (also referred to itself as a service) such as a database, a web server, an application server, a file server, a virtual desktop, or some other service.
[1035] Access point 210 is a network device via which wireless clients of a network can connect to that network to communicate with other clients of the network. In other words, wireless clients of a network are coupled (or associated) wirelessly to a network via an access point. Wireless clients of a network are clients of that network that are wirelessly coupled with an access point of that network. A wireless client of a network is said to be associated with the access point via which it is
communicatively coupled to the network and other clients of the network. Similarly, a wireless client of a network is said to be disassociated from an access point when it ceases to communicate via that access point. For example, a mobile wireless client associated from a first access point can disassociate from the first access point in response to movement of the mobile wireless client toward a second access point and a determination that a more robust wireless communications channel exists between the mobile wireless client and the second access point than between the mobile wireless client and the first access point. After disassociating from the first access point, the mobile wireless client can associate with the second access point. Thus, the mobile wireless client would be associated with the second access point and disassociated from the first access point. [1036] Computing systems 221 -223 are wireless clients of the network that are associated with access point 210 and can communicate with other clients and network devices of the network via access point 210. In other words, computing systems 221 -223 each include (or access) a wireless communications interface (not shown) to establish a wireless communications link (e.g., radio-frequency link, free- space optical link, or sonic link) with a wireless communications interface of access point 210 (not shown).
[1037] Communications link 290 includes devices, systems, services, or
combinations thereof that define communications paths between access point 210, network resources 254 and 255, and/or other devices or services. For example, communications link 290 can include one or more of a cable (e.g., twisted-pair cable, coaxial cable, or fiber optic cable), a wireless communications link, or any other connectors or systems that transmit or support transmission of signals. Moreover, communications link 290 can include communications networks such as a switch fabric, an intranet, the Internet, telecommunications networks, or a combination thereof. Additionally, communications link 290 can include proxies, routers, switches, gateways, bridges, load balancers, and similar communications devices. Furthermore, the connections or communications paths illustrated in FIG. 2A and discussed herein can be logical or physical. Thus, for example, network resource 255 may not be physically connected to communications link 290, but may be accessible via communications link 290 and a server and/or additional
communications links.
[1038] As illustrated in FIG. 2A, service 232 is accessible at computing system 222, service 233 is accessible at computing system 223, and service 234 is accessible at network resource 254. Services 232-234 provide service advertisements (labeled "SERV. ADV." in FIG. 2A) to announce or describe their availability via the network including access point 210 and communications link 290. In some implementations, these service advertisements are transmitted as multicast communications. For example, such service advertisements can be transmitted as mDNS messages. That is, such service advertisements can be transmitted using multicast
communications and mDNS formats and/or protocols. Accordingly, although logical communications paths of these service advertisements to access point 210 are illustrated, these service advertisements may also be received at other clients of the network.
[1039] These service advertisements are received at caching module 21 1 of access point 210. Caching module 21 1 is a combination of hardware and software that receives service advertisements and service queries and applies a service advertisement caching process to those service advertisements and service queries. For example, caching module 21 1 can determine which service advertisements to store in service advertisement cache 212 (a portion of a memory of access point 210), whether to invalidate service advertisements stored in service advertisement cache 212 (cached service advertisements), and/or whether to drop a service query and respond to that service query with a service advertisement from service advertisement cache 212 according to various implementations.
[1040] As illustrated in FIG. 2A, caching module 21 1 stores the received service advertisements from computing systems 222 and 223 and network resource 254 in service advertisement cache 212. In some implementations, caching module 21 1 drops (or causes access point 210 to drop) service advertisements entirely or relative to one or more network interfaces. As an example of the latter, caching module 21 1 can cause access point 210 to not forward or further transmit service advertisements via one or more communications interfaces of access point 210. As a specific example, access point 210 can include a wireless communications interface (not shown) via which it communicates with computing systems 221 - 223 and a wired communications interface (not shown) via which it communicates with communications link 290 and network resources 254 and 255. In response to receiving a service advertisement from computing system 223 (or from service 233 hosted or accessible at computing system 223) via the wireless communications interface, access point 210 can forward the service advertisement via the wired communications interface and drop the service advertisement relative to the wireless communications interface (i.e., the service advertisement is not forwarded via the wireless communications interface).
[1041 ] In the example illustrated in FIG. 2A, caching module 21 1 receives a service query (labeled "SERV. QRY." in FIG. 2A) from computing system 221 associated with (or for) service 232 provided by (e.g., accessible or hosted at) computing system 222. Caching module 21 1 determines, for example, based on a service identifier included in the service query and the service advertisement from service 232, that the service associated with the service query is associated with a service advertisement in service advertisement cache 212 (i.e., the service advertisement from service 232). In the example illustrated in FIG. 2A, in response to this determination, caching module 21 1 drops the service query (i.e., does not forward or further transmit the service query via one or more communications interfaces) and provides the service advertisement from service 232 stored in service advertisement cache 212 to computing system 21 1 .
[1042] As discussed above, caching module 21 1 disregards expiration values of service advertisements stored in service advertisement cache 212. In other words, caching module 21 1 does not invalidate service advertisements or transmit service queries to refresh information about services according to expiration values of service advertisements stored in service advertisement cache 212. Rather, caching module 21 1 invalidates service advertisements stored in service advertisement cache 212 in response to determination that a client associated with such service advertisements has disassociated with access point 210. Said another way, caching module 21 1 manages service advertisement cache 212 (e.g., invalidates service advertisements within service advertisement cache 212) independent of expiration values associated with those service advertisements.
[1043] FIG. 2B illustrates another example of operation of access point 210. In the example illustrated in FIG. 2B, service advertisements are received from computing systems 222 and 223 and network resource 254, for example as discussed above. Caching module 21 1 then receives, at a time designated T1 in this example, a service query (labeled "SERV. QRY." in FIG. 2B) from computing system 221 associated with (or for) one or more services. Caching module 21 1 determines, for example, based on a service identifier included in the service query and the service advertisements within service advertisement cache 212, whether the service associated with the service query is associated with one or more service
advertisements in service advertisement cache 212. If the service query is associated with one or more service advertisements in service advertisement cache 212, caching module 21 1 (or some other module or component of access point 210) provides (e.g., forwards) the service query to the services (or computing systems hosting services) advertised by the corresponding (or matching) service advertisements in service advertisement cache 212. The service query can be forwarded using non-multicast communications such as unicast communications to avoid inefficiencies of multicast communications in wireless communications links. Thus, the service query can be provided to the services advertised by service advertisements in a service advertisement cache that correspond to the service query and not be provided to the services advertised by service advertisements in a service advertisement cache that do not correspond to the service query.
[1044] If, however, the service query is not associated with one or more service advertisements in service advertisement cache 212, caching module 21 1 (or some other module or component of access point 210) can drop the service query or provide the service query to computing devices and/or network resources, for example, via multicast communications. In some implementations, if the service query is not associated with one or more service advertisements in service advertisement cache 212, caching module can drop the service query with respect to one communications interface (e.g., a wireless communications interface) and provide the service query to computing devices and/or network resources via another communications interface (e.g., a wired communications interface).
[1045] The services (or computing systems hosting the services) to which the service query is provided respond to the service query by sending service advertisements. Such service advertisements can be sent via multicast communications or unicast communications. For example, such service advertisements can be addressed to a multicast address or to a unicast address of the computing system that sent the service query.
[1046] In the example illustrated in FIG. 2B, the service advertisement from service 232 corresponds to (or matches) the service query sent by computing system 221 . Accordingly, caching module 21 1 provides the service query sent by computing system 221 to computing system 222 using unicast communications, at a time after T1 designated T2 in FIG. 2B. Computing system 222 responds to the service query by transmitting a service advertisement, at a time after T2 designated T3 in FIG. 2B, which is provided to computing system 221 .
[1047] In some implementations, a caching module manages service queries relative to one communications interface and not another communications interface. For example, the service query provided by computing system 221 at time T1 can be forwarded via a wired communications interface of access point 210 (not shown) independent of caching module 21 1 and/or whether a corresponding service advertisement exists in service advertisement cache 212. Indeed, in some implementations, the service query can be transmitted as a multicast communication via that wired communications interface.
[1048] However, in this example, that service query is sent via a wireless
communications interface (e.g., as a unicast communication) to only those computing systems for which a corresponding service advertisement exists in a service advertisement cache. More specifically with reference to FIG. 2B, the service query is provided to computing system 222 at time T2 and not to computing system 223 via a wireless communications interface (not shown) because the service advertisement provided by computing system 222 corresponds to the service query and the service advertisement provided by computing system 223 does not correspond to the service query. In other words, caching module 21 1 can manage service queries differently with respect to different communications interfaces (i.e., communications interfaces of different types or classes or with different properties or attributes).
[1049] FIG. 2C illustrates environment 200 after computing system 223 disassociates with access point 210. For example, computing system 223 can be a notebook computer with a WiFi® wireless communications interface that communicates with a WiFi® wireless communications interface of access point 210 via one or more of the IEEE 802.1 1 protocols. When computing system 223 enters a sleep state or is powered down, its wireless communications interface disassociates with the wireless communications interface of access point. In response to this disassociation, access point 210 provides a disassociation signal to caching module 21 1 . For example, the disassociation signal can include an identifier of computing system 223 such as a hostname or IP address and a status value indicating that computing system 223 is disassociated (e.g., has become disassociated, will become disassociated, should become disassociated, or is in a disassociation process) with access point 210 (or the network including access point 210). Caching module 21 1 then identifies service advertisements associated with computing system 223 (i.e., the disassociated client), and invalidates those service advertisements stored in service advertisement cache 212. In FIG. 2C, the lines through the service advertisement received from computing system 223 indicate that this service advertisement has been invalidated.
[1050] After a service advertisement in service advertisement cache 212 is invalidated, caching module 21 1 (or access point 210) functions as though that service advertisement is not in service advertisement cache 212. As an example, with reference to the example illustrated in FIG. 2A, caching module 21 1 does not forward an invalidated service advertisement in response to a service query corresponding to (or matching or satisfying) that invalidated service advertisement. As another example, with reference to the example illustrated in FIG. 2B, caching module 21 1 does not forward service queries based on an invalidated service advertisement corresponding to (or matched or satisfied by) that service query.
Rather, in some implementations, caching module 21 1 drops such a service query or transmits that service query using multicast communications.
[1051 ] FIG. 3 is a schematic block diagram of an access point hosting a caching module, according to an implementation. As illustrated in FIG. 3, access point 300 includes processor 310, wireless communications interface 320, and memory 330. Processor 310 is any combination of hardware and software that executes or interprets instructions, codes, or signals. For example, processor 310 can be a microprocessor, an application-specific integrated circuit (ASIC), a graphics processing unit (GPU) such as a general-purpose GPU (GPGPU), a distributed processor such as a cluster or network of processors or computing systems, a multi- core or multi-processor processor, a virtual or logical processor, or some
combination thereof. As a specific example, in some implementations, processor 310 can include multiple processors such as one or more general purpose processors and one or more ASICs.
[1052] Wireless communications interface 320 is a module via which processor 310 can communicate with other processors or computing systems via a wireless communications link. As a specific example, communications interface 320 can include a wireless network interface card and a communications protocol stack hosted at processor 310 (e.g., instructions or code stored at memory 330 and executed or interpreted at processor 310 to implement a network protocol) to receive data from and send data to resource authorities. As specific examples, wireless communications interface 320 can an IEEE 802.1 1 or WiFi® interface, a Bluetooth® interface, a ZigBee® interface, or some other wireless communications interface via which processor 310 can exchange signals or symbols representing data to communicate with other processors or computing systems.
[1053] In some implementations, access point 300 also includes one or more additional communications interfaces (not shown). For example, access point 300 can include one or more wired communications interfaces via which access point 300 can be communicatively coupled to other computing systems or network devices. Moreover, in some implementations, access point 300 can include instructions within memory 330 that can be executed at processor 310 to implement one or more modules that bridge or connect two or more communications interfaces of access point 300. In some implementations, access point includes circuitry to bridge or connect two or more communications interfaces of access point 300.
[1054] Memory 330 is one or more processor-readable media that store instructions, codes, data, or other information. As used herein, a processor-readable medium is any medium that stores instructions, codes, data, or other information non-transitorily and is directly or indirectly accessible to a processor. Said differently, a processor- readable medium is a non-transitory medium at which a processor can access instructions, codes, data, or other information. For example, memory 330 can be a volatile random access memory (RAM), a persistent data store such as a hard-disk drive or a solid-state drive, a compact disc (CD), a digital versatile disc (DVD), a Secure Digital™ (SD) card, a MultiMediaCard (MMC) card, a CompactFlash™ (CF) card, or a combination thereof or of other memories. In other words, memory 330 can represent multiple processor-readable media. In some implementations, memory 330 (or some portion thereof) can be integrated with processor 310, separate from processor 310, or external to access point 300.
[1055] Memory 330 includes instructions or codes that when executed at processor 310 implement operating system 331 and other modules such as caching module 332. A processor implements a module by performing functionalities, processes, or actions associated with a module. Thus, instructions or codes stored at memory 330 and/or executed (or interpreted) by processor 310 can be referred to as modules. Memory 330 is also operable to store additional codes or instructions to implement other modules not illustrated in FIG. 3 and/or other data sets such as service advertisement cache 333. [1056] Caching module 332 can be accessed or installed at access point 300 from a variety of memories or processor-readable media or via a communications network. For example, access point 300 can access caching module 332 at a remote processor-readable medium via a communications interface other than wireless communications interface 320 (not shown). As a specific example, access point 300 can be a network-boot device that accesses operating system 331 and caching module 332 during a boot process (or sequence). As yet another example, access point 300 can include (not illustrated in FIG. 3) a processor-readable medium access device (e.g., a CD or DVD drive or a CF or SD card reader) to access a processor- readable medium storing caching module 332.
[1057] FIG. 4 is a flowchart of a service advertisement caching process, according to another implementation. Service advertisement caching process 400 illustrated in FIG. 4 can be implemented, for example, at a caching module within an access point. Additionally, functionalities or actions described herein as being performed by process 400 should be understood to be performed by a host (e.g., an access point or caching module at an access point) of or implementing process 400.
[1058] At block 410, process 400 monitors signals or data provided to process 400. After receiving a service advertisement at block 410, process 400 determines whether that service advertisement has a predefined value at block 420. In other words, process 400 compares an expiration value of that service advertisement with a predefined value to determine whether that expiration value satisfies or matches the predefined value at block 420. The predefined value can be an expiration value that signals or indicates that a service for which a service advertisement was previously transmitted is no longer accessible or will become inaccessible. The predefined value can be, for example, a zero value.
[1059] If the service advertisement received at block 410 does not have an expiration value with the predefined value, process 400 proceeds to block 430 at which the service advertisement is stored in a memory as discussed above, for example. Process 400 then returns to block 410 at which signals are again monitored.
However, if the service advertisement received at block 410 does have an expiration value with the predefined value, process 400 proceeds to block 440 at which one or more service advertisements corresponding to that service advertisement are identified in the memory. [1060] Corresponding service advertisements can be identified based on, for example, a location (e.g., hostname or IP address of a computing system at which a service associated with a service advertisement is accessible) of that service advertisement and service advertisements in the memory. As another example, corresponding service advertisements can be identified based on, for example, a location and service identifier (e.g., name, type, or class of a service) of that service advertisement and service advertisements in the memory. In other words, service advertisements in the memory that have a common location or a common location and a common service identifier with that service advertisement can be identified as corresponding to that service advertisement.
[1061 ] Process 400 can then proceed to block 450 at which the corresponding service advertisements identified at block 440 are invalidated within the memory as discussed above, for example. Process 400 then returns to block 410 at which signals are again monitored.
[1062] Referring again to block 410, if a disassociation signal associated with a client is received or detected at block 410, process 400 proceeds to block 440 at which one or more service advertisements associated with (or corresponding to) that client are identified in the memory. Corresponding service advertisements can be identified based on, for example, an identifier (e.g., hostname or IP address) of that client and locations of service advertisements in the memory. In other words, service advertisements for which an associated location matches the identifier of that client can be identified as corresponding to (or associated with) that client.
[1063] Process 400 can then proceed to block 450 at which the corresponding service advertisements identified at block 440 are invalidated within the memory as discussed above, for example. Process 400 then returns to block 410 at which signals are again monitored.
[1064] Process 400 illustrated in FIG. 4 is an example implementation of a service advertisement caching process. In other implementations, a service advertisement caching process can include additional, fewer, or rearranged blocks or steps. For example, in some implementations, blocks of a service advertisement caching process can be implemented to execute in parallel rather than serially as illustrated in FIG. 4. [1065] While certain implementations have been shown and described above, various changes in form and details may be made. For example, some features that have been described in relation to one implementation and/or process can be related to other implementations. In other words, processes, features, components, and/or properties described in relation to one implementation can be useful in other implementations. As another example, functionalities discussed above in relation to specific modules or elements can be included at different modules, engines, or components in other implementations. Furthermore, it should be understood that the systems, apparatus, and methods described herein can include various
combinations and/or sub-combinations of the components and/or features of the different implementations described. Thus, features described with reference to one or more implementations can be combined with other implementations described herein.
[1066] As used herein, the term "module" refers to a combination of hardware (e.g., a processor such as an integrated circuit or other circuitry) and software (e.g., programming such as machine- or processor-executable instructions, commands, or code such as firmware, programming, or object code). A combination of hardware and software includes hardware only (i.e., a hardware element with no software elements such as an ASIC), software hosted at hardware (e.g., software that is stored at a memory such as RAM, a hard-disk or solid-state drive, resistive memory, or optical media such as a DVD and/or executed or interpreted at a processor), or hardware and software hosted at hardware.
[1067] Additionally, as used herein, the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. Thus, for example, the term "module" is intended to mean one or more modules or a combination of modules. Moreover, the term "provide" as used herein includes push mechanisms (e.g., sending data to a computing system or agent via a communications path or channel), pull mechanisms (e.g., delivering data to a computing system or agent in response to a request from the computing system or agent), and store mechanisms (e.g., storing data at a data store or service at which a computing system or agent can access the data). Furthermore, as used herein, the term "based on" means "based at least in part on." Thus, a feature that is described as based on some cause, can be based only on the cause, or based on that cause and on one or more other causes.

Claims

What is claimed is:
1 . A processor-readable medium storing code representing instructions that when executed at a processor cause the processor to:
store a plurality of service advertisements received from a plurality of wireless clients at a memory, each service advertisement from the plurality of service advertisements associated with an expiration value and a wireless client from the plurality of wireless clients;
disregard the expiration value associated with each service advertisement from the plurality of service advertisements;
determine that a wireless client from the plurality of wireless clients has disassociated from an access point; and
invalidate service advertisements from the plurality of service advertisements associated with the wireless client within the memory in response to determining that the wireless client from the plurality of wireless clients has disassociated from the access point.
2. The processor-readable medium of claim 1 , wherein the memory is included within the access point.
3. The processor-readable medium of claim 1 , wherein:
the service advertisements associated with the wireless client are invalidated independent of the expiration value associated with each service advertisement from the service advertisements associated with the wireless client.
4. The processor-readable medium of claim 1 , further storing code representing instructions that when executed at the processor cause the processor to:
receive a disassociation message from the wireless client, determining that the wireless client from the plurality of wireless clients has disassociated from an access point being in response to receiving the disassociation message.
5. The processor-readable medium of claim 1 , further storing code representing instructions that when executed at the processor cause the processor to for each service advertisement from the plurality of service advertisements: determine whether the expiration value included in that service advertisement has a predetermined value, the expiration value associated with that service advertisement is disregarded if the expiration value for that service advertisement does not have the predetermined value.
6. An access point, comprising:
a wireless communications interface to communicate with a plurality of computing systems associated with the access point;
a memory to store a plurality of service advertisements; and
a caching module to receive the plurality of service advertisements from the plurality of computing systems via the wireless communications interface, to disregard an expiration value associated with each service advertisement from the plurality of service advertisements, and to invalidate service advertisements within the memory from the plurality of service advertisements associated with a computing system from the plurality of computing systems in response to a disassociation signal for that computing system.
7. The access point of claim 6, further comprising:
a processor, the memory storing code representing instructions that when executed at the processor cause the processor to implement the caching module.
8. The access point of claim 6, wherein the caching module is to generate the disassociation signal in response to determining that the computing system is disassociated from the access point.
9. The access point of claim 6, wherein:
the caching module is to determine whether the expiration value associated with each service advertisement from the plurality of service advertisements has a predetermined value and to disregard the expiration value for that service
advertisement if the expiration value for that service advertisement does not have the predetermined value.
10. The access point of claim 6, wherein the caching module is to: drop each service advertisement from the plurality of service advertisements after storing that service advertisement within the memory.
1 1 . A service advertisement caching method, comprising:
receiving a plurality of service advertisements from a plurality of wireless clients at an access point, each service advertisement from the plurality of service advertisements associated with a wireless client from the plurality of wireless clients and having an expiration value; and
for each service advertisement from the plurality of service advertisements: determining whether the expiration value of that service advertisement has a predetermined value;
if the expiration value of that service advertisement has the predetermined value, invalidate that service advertisement within a memory of the access point; and
if the expiration value of that service advertisement does not have the predetermined value, disregard the expiration value of that service advertisement and invalidate that service advertisement within the memory of the access point in response to determining that the wireless client from the plurality of wireless clients associated with the service advertisement is disassociated from the access point.
12. The method of claim 1 1 , further comprising:
receiving a disassociation message from a wireless client, determining that the wireless client from the plurality of wireless clients is disassociated from the access point being in response to receiving the disassociation message.
13. The method of claim 1 1 , further comprising for each service advertisement from the plurality of service advertisements:
storing that service advertisement within the memory of the access point if the expiration value of that service advertisement does not have the predetermined value.
14. The method of claim 1 1 , further comprising for each service advertisement from the plurality of service advertisements: storing that service advertisement within the memory of the access point and dropping that service advertisement if the expiration value of that service advertisement does not have the predetermined value.
15. The method of claim 1 1 , further comprising:
receiving a service query;
determining that the service query corresponds to a first service
advertisement from the plurality of service advertisements and does not correspond to a second service advertisement from the plurality of service advertisements; and providing the service query to the wireless client from the plurality of wireless clients from which the first service advertisement was received without providing the service query to the wireless client from the plurality of wireless clients from which the second service advertisement was received.
PCT/US2013/070917 2013-11-20 2013-11-20 Service advertisement caching Ceased WO2015076791A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2013/070917 WO2015076791A1 (en) 2013-11-20 2013-11-20 Service advertisement caching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/070917 WO2015076791A1 (en) 2013-11-20 2013-11-20 Service advertisement caching

Publications (1)

Publication Number Publication Date
WO2015076791A1 true WO2015076791A1 (en) 2015-05-28

Family

ID=53179927

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2013/070917 Ceased WO2015076791A1 (en) 2013-11-20 2013-11-20 Service advertisement caching

Country Status (1)

Country Link
WO (1) WO2015076791A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131452A (en) * 2019-12-24 2020-05-08 杭州迪普科技股份有限公司 Method and device for updating service state of mDNS gateway

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128345A1 (en) * 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
US20060002320A1 (en) * 2004-07-01 2006-01-05 Jose Costa-Requena Multicast relay for mobile devices
KR20090058881A (en) * 2007-12-05 2009-06-10 한국전자통신연구원 Network-based terminal mobility management device and method
US7656822B1 (en) * 2003-12-22 2010-02-02 Sun Microsystems, Inc. Method and apparatus for decentralized device and service description and discovery
US20120099507A1 (en) * 2007-01-12 2012-04-26 Huawei Technologies Co., Ltd. Method and system for determining the existence of broadcast and multicast frames buffered in an access point

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128345A1 (en) * 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
US7656822B1 (en) * 2003-12-22 2010-02-02 Sun Microsystems, Inc. Method and apparatus for decentralized device and service description and discovery
US20060002320A1 (en) * 2004-07-01 2006-01-05 Jose Costa-Requena Multicast relay for mobile devices
US20120099507A1 (en) * 2007-01-12 2012-04-26 Huawei Technologies Co., Ltd. Method and system for determining the existence of broadcast and multicast frames buffered in an access point
KR20090058881A (en) * 2007-12-05 2009-06-10 한국전자통신연구원 Network-based terminal mobility management device and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131452A (en) * 2019-12-24 2020-05-08 杭州迪普科技股份有限公司 Method and device for updating service state of mDNS gateway
CN111131452B (en) * 2019-12-24 2023-06-30 杭州迪普科技股份有限公司 Method and device for updating service state of mDNS gateway

Similar Documents

Publication Publication Date Title
US20050108331A1 (en) Presence tracking for datagram based protocols with search
TWI535255B (en) Method and device for transmitting service request message
CN108512885A (en) Network packet to being identified as message queue telemetering transmission packet executes specific action
US20150055509A1 (en) Communications device utilizing a central discovery mechanism, and respective method
CN109379291B (en) Method and device for processing service request in networking
US9900385B2 (en) Connection management device, communication system, connection management method, and computer program product
CN109962836A (en) A robot control method, server and robot
CN108667952A (en) Communication equipment and smart terminals
CN104202212A (en) System and method for obtaining distributed cluster system alarm
CN109040295B (en) Method and device for determining abnormal disconnection, terminal and storage medium
CN114374705A (en) Service cluster and message push method
WO2014067314A1 (en) Address processing
US20150058491A1 (en) Information processing apparatus, information processing method, and program
CN106230667B (en) VTEP keep-alive detection method and device
US20080285557A1 (en) Method, System and Relay Device for Transmitting Packet
WO2013159492A1 (en) Method and system for reporting and downloading information
CN102349271B (en) Multicast protocol message monitoring method, device and switch
CN106572184B (en) A kind of serial equipment means of communication and system
CN118921397B (en) Communication connection method, device, storage device and program product
WO2015076791A1 (en) Service advertisement caching
CN118075278B (en) Data transmission method, device, equipment and medium
CN106612307B (en) Method and device for realizing always-on service
CN104683491B (en) A kind of method and system for the Internet Protocol address for obtaining virtual machine
CN102195881A (en) Method, device and system for updating port information
US20140079067A1 (en) Information centric network (icn) node based on switch and network process using the node

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13897791

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13897791

Country of ref document: EP

Kind code of ref document: A1