US20090063686A1 - Automated service discovery and dynamic connection management - Google Patents

Automated service discovery and dynamic connection management Download PDF

Info

Publication number
US20090063686A1
US20090063686A1 US11848147 US84814707A US2009063686A1 US 20090063686 A1 US20090063686 A1 US 20090063686A1 US 11848147 US11848147 US 11848147 US 84814707 A US84814707 A US 84814707A US 2009063686 A1 US2009063686 A1 US 2009063686A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
service
network
connection
device
embodiments
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.)
Abandoned
Application number
US11848147
Inventor
Brian K. Schmidt
James G. Hanko
J. Duane Northcutt
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.)
Silicon Image Inc
Original Assignee
Silicon Image Inc
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

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/16Service discovery or service management, e.g. service location protocol [SLP] or Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. local area networks [LAN], wide area networks [WAN]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/24Presence management

Abstract

In some embodiments, an apparatus includes device functional circuitry to perform at least one service; and network interface control circuitry to control interaction between the apparatus and a network. The network interface control circuitry includes a service discovery module to (1) send a presence announcement message to be transmitted outside the device to let other devices outside the device know of services the device may perform and (2) to receive presence announcement messages from the other devices outside the device to learn what services to the other devices may perform. In some embodiments, the network interface control circuitry includes a dynamic connection management module. Other embodiments are described and claimed.

Description

    FIELD
  • [0001]
    Embodiments relate generally to networks. Some embodiments relate more particularly to automatic service discovery and dynamic connection management in a service network.
  • BACKGROUND
  • [0002]
    A local area network (LAN) is a network in which a relatively small number of devices are networked together, such as in a house or small business. A LAN can connect to a wider network, including the Internet. A local service network is an interconnection network on which a variety of user-level services wish to advertise their presence and establish communication without the need for managed network services. Examples of network management services include: Dynamic Host Configuration Protocol (DHCP), which is used for assigning dynamic Internet Protocol (IP) addresses to devices on a network; Domain Name System (DNS) used for translating domain names to IP addresses; and Jini, which is software from Sun Microsystems to simplify a connection and sharing of devices on a network. A lightweight protocol is desired in order to enable services to be delivered in the form of low-cost, low-resource devices, such as a single-chip solution.
  • [0003]
    Zero Configuration Networking (ZeroConf) (Internet Engineering Task Force (ETF) Request for Comment (RFC) 3927) includes techniques to automatically create a usable IP network without configuration and special servers. Multicast DNS (mDNS) is a protocol used to identify which network items has a particular name. Devices on an mDNS based LAN store a list of DNS records. When an mDNS client wants to know the IP address of a device given its name, the device with the corresponding record replies with its IP address. DNS based Service Discovery (DNS-SD) is built on top of DNS. Multicast DNS and DNS-SD are attributed to Apple Inc. Microsoft Inc.'s Link-Local Multicast Name Resolution (LLNMR) is also used to identify which networked item has a particular name. A Media Access Control (MAC) address is a hardware address that uniquely identifies each node of a network. For example, in an Ethernet network, each device has a globally unique 48 bit global MAC address. Multicasting refers to sending a message to multiple (or all) devices on a network, including circumstances in which the message typically would not be intended for all the devices receiving the message. An Internet multicast refers to a similar activity using the Internet. Transmission Control Protocol (TCP or TCP/IP) and User Datagram Protocol (UDP or UDP/IP) are protocols that have been used in networks including the Internet.
  • [0004]
    Encryption is sometimes used in networks, and many different encryption formats and processes may be used in a network. Some prior art techniques are based on an active connection (for example, security sockets layer (SSL)) and append cryptographic state to a connection record.
  • [0005]
    Services may join and leave the network at will or unexpectedly, and so it is desirable for other services to quickly learn of new or unreachable services. In addition, services may be assigned different network addresses during active communication, and so a dynamic connection management technique is desired. In a low-resource setting, connection records are themselves scarce resources, and so it is useful to provide means of supporting more active connections than can be simultaneously open across the network. Further, encryption may be used in the communication between services, which adds additional complexity to the management of connections between services.
  • [0006]
    Although services may be intermittently active or attached to the network, they may maintain permanent state, for example, a set of preferences that name other services. Services may be active on a device whose network address changes, perhaps while actively attached to the network, for example, through IP address re-assignment. For these reasons, services use a globally unique and non-volatile identifier to distinguish the service when it is present on the network. A wide variety of techniques for assigning identifiers are possible. For example, a service identifier assignment authority could manage identifiers worldwide. Leveraging an existing globally unique identifier (for example, an Ethernet MAC address) and salting it with a local non-volatile sequence number represents another possibility.
  • SUMMARY
  • [0007]
    In some embodiments, a device includes device functional circuitry to perform at least one service; and network interface control circuitry to control interaction between the device and a network. The network interface control circuitry includes a service discovery module to (1) send a presence announcement message to be transmitted outside the device to let other devices outside the device know of services the device may perform and (2) to receive presence announcement messages from the other devices outside the device to learn what services the other devices may perform.
  • [0008]
    In some embodiments, the network interface control circuitry includes a dynamic connection management module.
  • [0009]
    Other embodiments are described and claimed.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0010]
    Embodiments of the inventions may be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments. However, embodiments of the invention are not limited to the details of these drawings.
  • [0011]
    FIG. 1 is a block diagram representation of devices attached to a network according to some embodiments.
  • [0012]
    FIG. 2 is a block diagram representation of devices attached to a network according to some embodiments.
  • [0013]
    FIG. 3 is a block diagram representation of details of a network device according to some embodiments.
  • [0014]
    FIG. 4 is a block diagram representation of details of a network device according to some embodiments.
  • [0015]
    FIG. 5 is a block diagram representation of details of a network device according to some embodiments.
  • [0016]
    FIG. 6 is a block diagram representation of details of a service discovery module and a dynamic connection management module according to some embodiments.
  • [0017]
    FIG. 7 is a block diagram representation of details of a service discovery module and a dynamic connection management module according to some embodiments.
  • [0018]
    FIG. 8 is a representation of a presence announcement message according to some embodiments.
  • DETAILED DESCRIPTION
  • [0019]
    FIG. 1 illustrates a network 10 including devices D1, D2, D3, and D4 coupled to a network infrastructure 30 through conductors 24-1, 24-2, 24-3, and 24-4. As an example, network infrastructure 30 may be an Ethernet based network, but other types of networks may be used in replace of or in addition to an Ethernet based network. As long as they are connected to the network, devices D1-D4 are considered part of the network, but when physically or operationally removed, the devices are no longer part of the network. In practice, there may be more or less than four devices on the network. Device D1-D4 may perform a variety of services including providing video signals, displaying video, and printing. Devices D1, D2, D3, and D4 include network interface control circuitry 20-1, 20-2, 20-3, and 20-4, respectively. As an example, network 30 may be a home entertainment network that may include access to the Internet. Some or all of devices D1, D2, D3, and D4 may be entertainment devices such as televisions, DVD players, set top boxes, computers, video game systems, etc. Some of the devices may be more limited devices such as printers. System 30 can be a service network in that at least some of devices D1-D4 involve services and at least some of the devices wish to advertise their presence on the network and establish communication. Network interface control circuitry 20-1, 20-2, 20-3, and 20-4 may be identical for each device or one or more of the network interface control circuitry may be slightly different. For example, the network interface control circuitry for a printer may have less capability than network interface control circuitry for a television.
  • [0020]
    In some embodiments, devices may include one or more agents. In some circumstances, there may be a one-to-one relationship between agents and hardware resources the agents manage. For example, a single agent may manage a single broadcast tuner device and support a single active session. However, in some embodiments other resources may support multiple active sessions. For example, a video server may allow several active streams to be served from a single disk. In some embodiments, multiple agents provide identical service in providing access to the single media repository. These agents are equivalent in functionality and behavior, contend for the same resources, and have access to the same content, and such a collection of interchangeable agents may be termed an agent equivalence class.
  • [0021]
    Equivalence classes are useful for consolidating information concerning available resources and capabilities, thereby reducing storage and transmission requirements. Additionally, they enable remote agents to determine meaningful relationships between collections of agents. For example, if a video server is completely busy with active sessions, the equivalence class exposes the set of agents that could be contacted to free resources in order to enable a new session to be started.
  • [0022]
    In some embodiments, an agent may be identified by the assignment of a unique identifier. In one example, a 64-bit numerical identifier may be assigned to each agent. The agent identifiers are persistent and globally unique for each agent. In this example, the value zero is reserved and indicates an invalid or unspecified agent identity, and the value of all ones (hex 0xFFFFFFFFFFFFFFFF) is reserved as a wildcard to indicate all agents. The format of the agent identifier is depicted in Table 1.
  • [0000]
    TABLE 1
    Format of an Agent Identifier.
    Byte
    0 1 2 3 4 5 6 7
    Type Instance Group Globally Unique Value
  • [0023]
    In this example, the six-byte Globally Unique Value field is unique across all devices. The manner in which this value is selected may be left unspecified, but in one example the value may be the 48-bit Ethernet MAC address of the network interface, which are assigned by a central authority and thus are globally unique. In an embodiment, the value chosen may be required to interoperate with the Ethernet MAC address scheme, and thus not produce a valid MAC address. The Instance and Group fields of the agent identifier may, for example, be assigned locally by the designer of a device. Together, the group field and the unique value field identify an agent equivalence class. In an example, the group field may be interpreted as an unsigned integer value, which enables a device to create up to 256 equivalence classes. The instance field may be interpreted as an unsigned integer. The instance field identifies a particular agent within an equivalence class. Instance values for a given equivalence class must occupy a consecutive range. Thus, a single device may support up to 65536 agents in groups of 256.
  • [0024]
    FIG. 2 is similar to FIG. 1, except that in FIG. 2, a network 40 includes a network infrastructure 42 that is made up of two sub-network infrastructures 44 and 46. Further, device D3 is coupled to sub-network infrastructure 46 through a wireless connection including access points/antennas 50 and 52. FIG. 2 provides one example of a network having four devices attached, but embodiments are not limited to any particular number of elements. There may be more or less than four devices coupled to network 42.
  • [0025]
    FIG. 3 illustrates network interface control circuitry 20-1 according to some embodiments. In other embodiments, the network interface control circuitry may vary. Further, as noted above, the network interface control circuitry may vary depending on, among other factors, the device it is used with. Transmitters and receivers 72 are coupled between conductors 24-1 and a network security module 76. Conductors 24-1 may be a single set of conductors on which signals are conducted bi-directionally. Alternatively, conductors 24-1 may comprise multiple sets of conductors in which signals are passed in different directions. The various signals on the conductors may be multiplexed, packetized, or otherwise carried on the conductors. Various types of signaling may be used.
  • [0026]
    Network security module 76 is intended to ensure that communications from conductors 24-1 are allowed to pass to other portions of device D1. In some embodiments, network security module 76 will only pass signals from devices that have been authenticated. For example, in some embodiments or situations, security module 76 will only pass signals that have a particular token or key in a header. Further, in some embodiments, network security module 76 or some other module in device D1 makes sure signals from device D1 have proper identifiers (such as in a header) so they are accepted by other devices. Other security functions are described below. In some embodiments, network security module 76 is not included or has reduced capability as compared to what is described herein. Service discovery module 80 performs automatic service discovery, described below. Dynamic connection management module 84 performs dynamic connection management, described below.
  • [0027]
    Conductors 88 carry signals to other components referred to as device functional circuitry 92 of device D1. The services provided by a device include the services performable by the device functional circuitry 92. The device functional circuitry is different in different devices. Examples of the device functional circuitry 92 include video processing, video displaying, video transmitting, and various other functions. FIG. 4 shows details of a device D1 that may be characterized as a television in which the device functional circuitry 92 includes video processing circuitry 94, display driving circuitry 96, and a display 102 including a screen 104. FIG. 5 shows details of a device D1 that may be characterized as a set top box in which the device functional circuitry 92 includes video reception circuitry 110 that receives video signals (as well as audio and control signals) from, for example, a cable outlet or satellite receiver through conductors 108. Video reception circuitry 110 provides video signals (and perhaps also audio and control signals) to video processing circuitry 112, which provides video signals to network interface control circuitry 20-1. Video reception circuitry 110 may include some form of network interface control circuitry, but such circuitry is not required in embodiments.
  • [0028]
    FIG. 6 illustrates either service discovery module 80 or dynamic connection management module 84 according to some embodiments. Referring to FIG. 6, a dedicated or shared processor 124 operates on instructions received from dedicated or shared memory 126, and uses dedicated or shared memory 126 for storing data. In this context, dedicated or shared means the processor or memory may be dedicated just to the particular module or the module may share the processor or memory with other components. Dedicated or shared memory 126 may keep instructions and data separate or together. Dedicated or shared memory 126 may include lists or tables such as a contact table, a list of discovered services, and a service location table. Hardware circuits 120 interface with dedicated or shared processor 124 and perhaps with other components in or outside the module.
  • [0029]
    FIG. 7 illustrates either service discovery module 80 or dynamic connection management module 84 according to some embodiments. Referring to FIG. 6, hardware circuits 130 performs the functions of the module. Hardware circuits 130 may include lists or tables such as a contact table, a list of discovered services, and a service location table. FIG. 8 represents a presence announcement message according to some embodiments. Other embodiments include a somewhat different presence announcement message or the same function performed quite differently. Referring to FIG. 8, a descriptor header 810 of a message 800 includes type and length fields. The body 820 of the message may include a variety of information including an identifier for the service (which may be a globally unique service identifier), a network address, a port number, expiration time value, and other information. This is described in greater detail below.
  • [0030]
    Automatic Service Discovery
  • [0031]
    The following describes details of automatic service discovery according to some embodiments. Other embodiments include different details. Service discovery involves a device learning what services are available on the network. From the perspective of a particular device, a service of another device may join or leave the network at any time. When a service network is defined to be a local area network, broadcast communication is possible. When the service network is routed, Internet multicast can be used. Leveraging these communication techniques, messages can be transmitted to all potential services attached to the network without knowing their addresses. Such a mechanism is most useful in the local area when the number of services relative to the network bisection bandwidth is low.
  • [0032]
    In this environment, a simple system becomes possible. In some embodiments, services are responsible for periodically announcing their presence. In some embodiments, periodically means at substantially but not necessarily exactly regular intervals, and in other embodiments, periodically means at exactly regular intervals. The length of the intervals may vary and may change over time. In some embodiments, such a presence announcement message includes at least the following information: the identifier of the service, the network address and port number at which the service can currently be contacted, and a expiration time (ET) value to indicate how long this announcement message is considered valid. In other embodiments, some of this information might not be included and additional information may be included. Services that receive such announcement messages can construct a contact table for the services that are currently available. If a receiver (such as a service discovery module) of the device does not receive another announcement message from a given service before some multiple of its ET expires, that service can be considered to have departed the network.
  • [0033]
    By tuning the ET value, a service can control the frequency of its announcements. The ET can be set by the device that performs the service, or by another device. Greater frequency (a shorter ET value) improves robustness and detection latency. This helps with dealing with the loss of announcement messages, as well as enabling faster detection that services that have become detached from the network (for example, due to cable removal). The receiver can also adjust or tune its sensitivity to the ET expiration. The longer it waits beyond the ET expiration, the less quickly it is able to determine that a service has become detached from the network. If the wait beyond ET expiration is too short, a receiver may determine that a service is unavailable when in fact, for example, its announcement message was dropped by the network. In some embodiments, each service can adjust or tune these parameters based on the environment and application domain.
  • [0034]
    In some embodiments, a service discovery module sends out its own presence announcement message to other devices on the network and also receives presence announcement messages from other devices on the network. In different embodiments the presence announcement message may, for example, be provided by the service discovery module or may be transmitted by the transmitters, and it may be received by the transmitters or may be provided to the service discovery module. In various embodiments, the service announcement may be packetized or may not be packetized.
  • [0035]
    Sometimes it is desirable to get an immediate notice from all active services. For example, a device may wish to display a list of available printers on the network and wants to ensure that its list of available services is as up-to-date as possible. In some embodiments, a presence request message can be sent. When a service receives a presence request message, it immediately responds by transmitting an announcement message. The announcement response could be, for example, unicast to the requester or multicast to all potential services.
  • [0036]
    In some embodiments, this system differs from conventional multicast DNS/DNS-SD and LLMNR in several respects. The announcements may serve the dual purpose of specifying the service location and acting as a keep-alive notice. The conventional approaches may involve two levels of name resolution to discover the location of a service. The first level matches the name of a service with the network name of the device on which it is located. The second level matches the device name to the network address. This adds unnecessary complexity that may not be practical for low-resource environments. Further, in conventional approaches additional information cannot be easily conveyed as part of the discovery process.
  • [0037]
    Enhanced Service Announcement
  • [0038]
    The following describes details of an enhanced service announcement according to some embodiments. Other embodiments include different details. The basic service announcement message described above provides a minimum mechanism for discovering services and detecting when such services are active. To discover further information about the capabilities and status of the service, the service is contacted and queried, which is an approach adopted by conventional mechanisms. However, in some embodiments the announcement scheme enables a service to include commonly requested information in the announcement itself.
  • [0039]
    In some embodiments, a descriptor to identify the type or class of service can be included in the announcement. This enables receivers to be more selective in what information they retain about remote services. For example, a video display service may wish to maintain a list of video source services. Without the type field in the announcement message, the video display service may have to cache all service locations or contact each in turn to determine the service class. In some embodiments with the service type field included, the video display service may maintain a list of only the video source services and contact only those services, saving resources and time.
  • [0040]
    In some embodiments, the format and interpretation of a service type field is well-known and may be a standard part of the announcement protocol. Otherwise, remote services might not be able to utilize the type field. However, for each type of service, the remainder of the announcement message can be defined in a service-specific fashion—that is, only services interested in a particular service are required to understand any additional information conveyed in the announcement.
  • [0041]
    Services may wish to include other commonly useful information in announcements, as deemed meaningful by the service type. For example, services may include general information, such as the running time, an indication that an interesting event has occurred (for example, via a timestamp or generation count and an event designator), busy/available status, the number of items managed by the service (for example, number of songs in a music service), etc. Service-specific information is also possible. For example, a digital media repository may include the amount of free space available, the number of streams the repository can support, the number of active streams, the list of capabilities the repository supports (for example, recording, trick play), etc. A wide array of possible attributes may be included, but a protocol designer may balance when to include information in all announcements (at the cost of increased bandwidth usage) and when to require a query for the information (at the cost of increased latency).
  • [0042]
    An embodiment for a personal entertainment network (for example, a network for carrying digital media content within a home) could include top-level service types: media source, media sink. A media source or sink could include an attribute to designate the type of content it supports: movies (combined audio/video), music (audio only), photos (images), user interface and control, 2D graphics, 3D graphics, etc. A media source may include an additional attribute to indicate whether the media source supports time shifting, while a media sink may include an attribute to indicate whether the media sink supports storage (recording) or display. Dynamic state may also be included to indicate whether the service is busy or free and the amount of used and free space for a storage service.
  • [0043]
    Dynamic Connection Management Module
  • [0044]
    The following describes details of dynamic connection management according to some embodiments. Other embodiments include different details. Within the service discovery system outlined above, services can determine the network address at which to contact a remote service. This address can change dynamically, and the remote service can spontaneously detach from the network. Multiple services may be hosted on a single device, which potentially may burden each service with maintaining connection state and perhaps exchanging information with other local services in order to manage a single connection record, thereby adding more complexity than is often practical. Therefore, in some embodiments a shared connection management system may be employed.
  • [0045]
    By addressing a message using a globally unique service identifier, a dynamic connection management module can be centralized within a device, and the module can manage fewer connection records than there are active communication sessions. For example, a service may be simultaneously communicating with several remote services while the connection management module utilizes a single connection record. In a low-resource environment, such dynamic connection management allows for conserving resources and enabling lower cost solutions.
  • [0046]
    In some embodiments, a dynamic connection management module may operate as follows: Services register interest in classes of remote services with the connection management module, which then maintains a cache of discovered service locations that match the registered criteria. Services can query the dynamic connection management module to iterate over the list of discovered services. When a service has a message the service wishes to send to a remote service, it passes the message data, message length, and service identifier to the connection management module. The connection management module searches for the service identifier in its list of discovered services—that is, those for which the connection management module has received announcement messages and recorded the network address. The connection management module checks to see if it has an open connection to the remote service. If not, the connection management module opens a connection and delivers the message. In this process, the network address of the remote service can change at any time. In some embodiments, if there is no free connection record available, the least recently used connection record can be reclaimed by closing the connection first. In some embodiments, other policies may also be implemented to address the availability of connection records, including the use of priorities.
  • [0047]
    A receiver of another device may follow the same flow in reverse, using the service location table to determine the destination service for an incoming message.
  • [0048]
    A connection to a remote service could be over an unreliable protocol (for example, UDP), but this adds burden to each service to implement a reliability scheme. Instead, the dynamic connection management module can handle the reliability requirement by either wrapping the service messages to provide reliability (for example, adding sequence numbers and re-transmissions on top of UDP) or by using a reliable protocol (such as TCP) for transmission. The state for such reliable connections can be quite large, hence the desire to allow more connections than connection records. There is added latency each time a connection must be opened, but in some embodiments a design may support a number of connection records that minimizes thrashing the connection records.
  • [0049]
    In this way, a low-resource device can maintain active communication between a larger set of services than the number of connection records the device can maintain. For example, on the order of sixteen bytes are required to record the location of a service, but 512 bytes may be needed for a connection record.
  • [0050]
    Supporting Encryption
  • [0051]
    The following describes details of supporting encryption according to some embodiments. Other embodiments include different details. In order to safeguard communication between services, it is often desirable to encrypt the message content. Contemporary schemes are based on an active connection (for example, SSL) and append cryptographic state to the connection record. In some embodiments, in order to use fewer connection records than active communication paths and reduce authentication latency, the cryptographic state is stored outside of the connection record. This state includes the current session key. If counter mode encryption with a block cipher is used, only the current counter value is also required, and each block of data can be encrypted independently.
  • [0052]
    Encryption support can be implemented in the following manner. When a service wishes to send a message to a remote service, the service passes the message data, message length, remote service identifier, and cryptography flag to the dynamic connection management module. When the dynamic connection management module is requested to deliver a message, it will open a new connection as above, if necessary. In certain instances, it may be necessary to close an existing connection in order to open the new connection. If there is no active cryptography session, an authentication exchange is made with the remote endpoint in order to generate a session key. The message data is encrypted with the key and delivered to the remote endpoint. If the connection is closed and re-opened, the session key can be re-used (provided it meets the requirements of the cryptography algorithm with respect to susceptibility to attack).
  • [0053]
    The above approach may be considered inadequate protection, since the key may be used for an extended period of time. The key may be “rolled”, meaning that a new key is generated by salting it with a counter value derived from the stream. If the sender and receiver remain synchronized, the number of bytes transmitted can serve as the counter. However, when the connection is transient, this synchronization requirement may not be met. To enable the rolling of keys, the following system is adopted.
  • [0054]
    In some embodiments, a secure connection can be viewed as a reliable byte stream or a reliable message stream. A simple wrapper protocol is introduced. This protocol includes a header with type and length fields, indicating that length bytes of data of class type follow. Message types include authentication, key roll, application data, and perhaps combinations of two or more types in a single message. This adds little overhead (for example, using an 8-bit type and a 24-bit count), while enabling the dynamic connection management module to interpose security-related messages within the service message stream.
  • [0055]
    Using this wrapper protocol, when opening a connection for the first time, the dynamic connection management module would exchange authentication messages as before, pre-pending a header with the appropriate type field. Next, it would send a key message to indicate the counter value with which to salt the key. The cipher engine is then loaded with the new key, so that all subsequent messages are encrypted with the new key. Then, the service messages can be encrypted and delivered, pre-pending with the appropriate header to indicate application data. If the connection is closed and re-opened, the dynamic connection management module can forego the authentication step (if it does not introduce cryptographic weakness) and commence communication by first delivering a key roll message. Then, communication then may continue as before.
  • [0056]
    In this way, the local services can communicate securely while dynamically managing fewer connection records than active communication sessions and limiting the frequency of performing secure authentication.
  • ADDITIONAL INFORMATION AND EMBODIMENTS
  • [0057]
    The various modules described herein may be provided in hardware, software, firmware, or in any combination of hardware, software, and firmware.
  • [0058]
    There may be intermediate structure between the illustrated components. The various components described or illustrated herein may have additional inputs or outputs which are not illustrated or described. In actual implementations of the systems of the figures, there would be additional circuitry, control lines, and perhaps interconnects which are not illustrated. When the figures show two blocks connected through conductors, there may be intermediate circuitry that is not illustrated. The conductors mentioned herein do not have to be of continuous material. For example, they may include vias or other connection structures. The shape and relative sizes of the blocks is not intended to relate to actual shapes and relative sizes. The fact that an arrow between blocks is shown in only one direction does not mean that there is not communication in the other direction. A single line between blocks does not mean there are not other conductors between the blocks.
  • [0059]
    An embodiment is an implementation or example of the invention. Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.
  • [0060]
    When it is said that element “A” is coupled to element “B,” element A may be directly coupled to element B or be indirectly coupled through, for example, element C. When the specification or claims state that a component, feature, structure, process, or characteristic A “causes” a component, feature, structure, process, or characteristic B, it means that “A” is at least a partial cause of “B” but that there may also be at least one other component, feature, structure, process, or characteristic that assists in causing “B.” Likewise, when it is said that A is in response to B, A may be in response to the combination of B and C.
  • [0061]
    If the specification states a component, feature, structure, process, or characteristic “may”, “might”, or “could” be included, that particular component, feature, structure, process, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, that does not mean there is only one of the element.
  • [0062]
    The invention is not restricted to the particular details described herein. Indeed, many other variations of the foregoing description and drawings may be made within the scope of the present invention. Accordingly, it is the following claims, including any amendments thereto, and not the above description, that define the scope of the invention.

Claims (25)

  1. 1. An apparatus comprising:
    device functional circuitry to perform at least one service; and
    network interface control circuitry to control interaction between the apparatus and a network, wherein the network interface control circuitry includes a service discovery module to (1) send a presence announcement message to be transmitted outside the device to let other devices outside the device know of services the device may perform and (2) to receive presence announcement messages from the other devices outside the device to learn what services the other devices may perform.
  2. 2. The apparatus of claim 1, wherein each service is associated with an agent, with each agent being a member of an equivalence class.
  3. 3. The apparatus of claim 2, wherein each agent has a unique identifier.
  4. 4. The apparatus of claim 1, wherein services that receive a presence announcement can construct a contact table for the services that are currently available.
  5. 5. The apparatus of claim 1, wherein if device does not receive another presence announcement message from a first service before a certain time period expires, the device determines that the service has departed from the network.
  6. 6. The apparatus of claim 1, wherein the service discovery module is to adjust factors including an expiration time (ET) to control the frequency of announcements the service discovery module sends; or a sensitivity to ET expiration for received announcements.
  7. 7. The apparatus of claim 1, wherein services of the device are responsible for periodically announcing their presence.
  8. 8. The apparatus of claim 1, wherein the device may use a presence request message to request an immediate notice from all active services as to their available services.
  9. 9. The apparatus of claim 1, wherein the presence announcement message sent by the device includes at least the following information: the identifier of the service, the network address and port number at which the service can currently be contacted, and an expiration time (ET) value to indicate how long this announcement message is considered valid.
  10. 10. The apparatus of claim 1, wherein the network interface control circuitry includes a network security module to disallow unauthorized signals past the network interface control circuitry.
  11. 11. The apparatus of claim 1, wherein the service announcement message includes a descriptor to identify the type or class of service included in the announcement.
  12. 12. The apparatus of claim 1, wherein the network interface control circuitry includes a dynamic connection management module to perform dynamic connection management.
  13. 13. An apparatus comprising:
    device functional circuitry to perform at least one service; and
    network interface control circuitry to control interaction between the device and a network, wherein the network interface control circuitry includes a dynamic connection management module to manage connections with other devices outside the device, and wherein a message uses the globally unique service identifier and the connection management is centralized within the device, such that a service may be simultaneously communicating with several remote services while the connection management module utilizes a single connection record.
  14. 14. The apparatus of claim 13, wherein a service registers interest in classes of remote services with the connection management module, and wherein the connection management module maintains a cache of discovered service locations that match the register criteria.
  15. 15. The apparatus of claim 14, wherein services can query the dynamic connection management module to iterate over the cache of discovered services.
  16. 16. The apparatus of claim 14, wherein if a service has a message the service wishes to send to a remote service the service provides a request to the dynamic connection module, the request including message data, message length, and service identifier.
  17. 17. The apparatus of claim 16, wherein, upon receiving a request from a service, the dynamic connection management module searches for the service identifier in its cache of discovered services, and checks to see if the dynamic connection management module has an open connection to the remote service, and wherein, if no open connection exists, the dynamic connection management module opens a connection to the remote service.
  18. 18. The apparatus of claim 13, wherein the dynamic connection management module provides a reliability requirement by either wrapping the service messages to provide reliability or by using a reliable protocol for transmission.
  19. 19. A system comprising:
    a network infrastructure;
    a first device and a second device;
    wherein the first and second devices each include:
    device functional circuitry to perform at least one service; and
    network interface control circuitry to control interaction between the device and a network, wherein the network interface control circuitry includes a service discovery module to (1) send a presence announcement message to be transmitted outside the device to let other devices outside the device know of services the device may perform and (2) to receive presence announcement messages from the other devices outside the device to learn what services to the other devices may perform, and a dynamic connection management module to manage connections with other devices outside the device.
  20. 20. The system of claim 19, wherein a service may simultaneously communicate with several remote services while the connection management module utilizes a single connection record.
  21. 21. The system of claim 20, wherein multiple services may be hosted on a single device.
  22. 22. The system of claim 19, wherein the service network is a local area network and broadcast communication is used.
  23. 23. The system of claim 19, wherein the service network includes routing of messages and Internet multicast.
  24. 24. The system of claim 18, wherein encryption is used in the system, and wherein a cryptographic state is stored outside of the connection record.
  25. 25. The system of claim 24, wherein when a service wishes to send a message to a remote service, the service passes message data, message length, remote service identifier, and cryptography flag to the connection manager, and when the connection manager is requested to deliver a message, it will open a new connection if necessary.
US11848147 2007-08-30 2007-08-30 Automated service discovery and dynamic connection management Abandoned US20090063686A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11848147 US20090063686A1 (en) 2007-08-30 2007-08-30 Automated service discovery and dynamic connection management

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US11848147 US20090063686A1 (en) 2007-08-30 2007-08-30 Automated service discovery and dynamic connection management
CN 200880105183 CN101785281B (en) 2007-08-30 2008-07-07 Automatic service discovery and dynamic connection management
PCT/US2008/069364 WO2009032396A3 (en) 2007-08-30 2008-07-07 Automated service discovery and dynamic connection management
KR20107006865A KR101488833B1 (en) 2007-08-30 2008-07-07 Automated service discovery and dynamic connection management
JP2010522990A JP5325219B2 (en) 2007-08-30 2008-07-07 Service discovery and dynamic connection management Automated
EP20080772439 EP2186302B1 (en) 2007-08-30 2008-07-07 Automated service discovery and dynamic connection management
US13541390 US8924509B2 (en) 2007-08-30 2012-07-03 Automated service discovery and dynamic connection management
JP2013150733A JP5643881B2 (en) 2007-08-30 2013-07-19 Service discovery and dynamic connection management Automated

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13541390 Continuation US8924509B2 (en) 2007-08-30 2012-07-03 Automated service discovery and dynamic connection management

Publications (1)

Publication Number Publication Date
US20090063686A1 true true US20090063686A1 (en) 2009-03-05

Family

ID=40175376

Family Applications (2)

Application Number Title Priority Date Filing Date
US11848147 Abandoned US20090063686A1 (en) 2007-08-30 2007-08-30 Automated service discovery and dynamic connection management
US13541390 Active US8924509B2 (en) 2007-08-30 2012-07-03 Automated service discovery and dynamic connection management

Family Applications After (1)

Application Number Title Priority Date Filing Date
US13541390 Active US8924509B2 (en) 2007-08-30 2012-07-03 Automated service discovery and dynamic connection management

Country Status (6)

Country Link
US (2) US20090063686A1 (en)
EP (1) EP2186302B1 (en)
JP (2) JP5325219B2 (en)
KR (1) KR101488833B1 (en)
CN (1) CN101785281B (en)
WO (1) WO2009032396A3 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100235525A1 (en) * 2009-03-16 2010-09-16 Apple Inc. Efficient service discovery for peer-to-peer networking devices
US20100233960A1 (en) * 2009-03-16 2010-09-16 Brian Tucker Service discovery functionality utilizing personal area network protocols
US20100235523A1 (en) * 2009-03-16 2010-09-16 Robert Garcia Framework for supporting multi-device collaboration
US20120131153A1 (en) * 2010-11-19 2012-05-24 Silicon Image, Inc. Discovery of electronic devices in a combined network
US20120136944A1 (en) * 2010-04-05 2012-05-31 Futurewei Technologies, Inc. Method For Dynamic Discovery of Control Plane Resources and Services
US20140016227A1 (en) * 2012-07-12 2014-01-16 Oracle International Corporation Tape library string request management
US8730328B2 (en) 2011-10-06 2014-05-20 Qualcomm Incorporated Frame buffer format detection
US8797874B2 (en) 2011-09-09 2014-08-05 Futurewei Technologies, Inc. Apparatus and system for packet routing and forwarding in an interior network
US20160119964A1 (en) * 2013-05-20 2016-04-28 Samsung Electronics Co., Ltd. Discovery method and apparatus
US9363320B2 (en) 2012-12-05 2016-06-07 Microsoft Technology Licensing, Llc Persistent connection between network devices
US9432917B2 (en) 2009-10-30 2016-08-30 Qualcomm Incorporated Methods and systems for peer-to-peer network discovery using multi-user diversity
US9692733B2 (en) * 2015-02-10 2017-06-27 Red Hat, Inc. Key establishment and management protocol optimizations in view of channel reliability
US9774563B2 (en) 2013-07-11 2017-09-26 Huawei Technologies Co., Ltd. Packet transmission method, apparatus, and system in multicast domain name system

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6057565B2 (en) * 2012-07-04 2017-01-11 キヤノン株式会社 Image processing apparatus, a control method for an image processing apparatus, and program
US9007945B2 (en) * 2013-01-23 2015-04-14 Dell Products L.P. Automated network service discovery and communication
EP2984811A1 (en) * 2013-04-09 2016-02-17 Robert Bosch GmbH Method for network change tolerant service discovery in a computer network
US9432472B2 (en) 2014-02-24 2016-08-30 Microsoft Technology Licensing, Llc Accelerated training of personal daemons
US9218497B2 (en) 2014-02-24 2015-12-22 Microsoft Technology Licensing, Llc Incentive-based app execution
US9473944B2 (en) 2014-02-24 2016-10-18 Microsoft Technology Licensing, Llc Local personal daemon
US9417831B2 (en) 2014-03-05 2016-08-16 Tricerat Method and system of providing computer network based limited visibility service discovery
US9560055B2 (en) 2014-04-30 2017-01-31 Microsoft Technology Licensing, Llc Client-side integration framework of services
US20150341308A1 (en) * 2014-05-23 2015-11-26 Toshiba Tec Kabushiki Kaisha mDNS REPLICATOR USING DEVICE DISCOVERY
JP2016063355A (en) * 2014-09-17 2016-04-25 株式会社東芝 Distribution information generating device

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862335A (en) * 1993-04-01 1999-01-19 Intel Corp. Method and apparatus for monitoring file transfers and logical connections in a computer network
US6484174B1 (en) * 1998-04-20 2002-11-19 Sun Microsystems, Inc. Method and apparatus for session management and user authentication
US20020188714A1 (en) * 2001-04-05 2002-12-12 Nicolas Bouthors State of activity management method for a radio communications terminal
US6532368B1 (en) * 1999-01-25 2003-03-11 International Business Machines Corporation Service advertisements in wireless local networks
EP1320229A2 (en) * 2001-12-14 2003-06-18 Openwave Systems Inc. Method and device for messaging
US20030195934A1 (en) * 2002-04-15 2003-10-16 Peterson Neil J. Web services-based communications for use with process control systems
US6665705B1 (en) * 1999-10-19 2003-12-16 International Business Machines Corporation Method and apparatus for proxy replication
US20040059722A1 (en) * 2002-09-24 2004-03-25 Yeh Danny Lo-Tien Method and apparatus for discovery of dynamic network services
US20040148334A1 (en) * 2003-01-28 2004-07-29 Sbc Properties, L.P. Coordination platform and method for dynamic aggregation of services
US20050108389A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Network endpoint health check
US6961560B2 (en) * 2001-05-23 2005-11-01 International Business Machines Corporation Method and device for prompt and efficient service discovery in wireless networks
US20060018264A1 (en) * 2004-07-21 2006-01-26 Fujitsu Limited Opened network connection control method, opened network connection control system, connection control unit and recording medium
US20060064496A1 (en) * 2003-09-25 2006-03-23 Microsoft Corporation System and method for computing concurrent network connection information
US20060107287A1 (en) * 2002-08-15 2006-05-18 Kook-Heui Lee Multimedia broadcast/multicast service announcement and notification
US7065579B2 (en) * 2001-01-22 2006-06-20 Sun Microsystems, Inc. System using peer discovery and peer membership protocols for accessing peer-to-peer platform resources on a network
US20060277275A1 (en) * 2005-04-02 2006-12-07 Glaenzer Eric F Dynamic management of communication ports, devices, and logical connections
US20070143449A1 (en) * 2005-10-14 2007-06-21 Julian Wray West Discovering network services
US7290054B2 (en) * 2002-04-26 2007-10-30 Redback Networks Inc. Dynamic modification of a subscriber connection
US7426393B2 (en) * 2001-11-19 2008-09-16 Nokia Corporation Method and system of identifying network services
US7444409B2 (en) * 2005-01-21 2008-10-28 Research In Motion Limited System and method for determining a designated connection between components of computing devices

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465359A (en) * 1993-11-01 1995-11-07 International Business Machines Corporation Method and system for managing data and users of data in a data processing system
US5764645A (en) * 1996-06-12 1998-06-09 Microsoft Corporation IP/ATM network adaptation
US6571277B1 (en) * 1999-10-19 2003-05-27 International Business Machines Corporation Method and apparatus for scaling universal plug and play networks using atomic proxy replication
CA2427585A1 (en) 2000-11-17 2002-05-23 Motorola, Inc. Multiple service subflows within a cable modem service flow
US7849140B2 (en) * 2002-08-29 2010-12-07 Oracle America, Inc. Peer-to-peer email messaging
US8145759B2 (en) * 2002-11-04 2012-03-27 Oracle America, Inc. Dynamically configurable resource pool
GB0322770D0 (en) 2003-09-29 2003-10-29 British Telecomm Bandwith allocation
CN100338920C (en) 2005-01-27 2007-09-19 中国科学院计算技术研究所 Method for building emergent communicating system by hierarchical self-organized network
US7613426B2 (en) 2005-12-20 2009-11-03 Microsoft Corporation Proximity service discovery in wireless networks
US20080253383A1 (en) * 2007-04-13 2008-10-16 Microsoft Corporation Communicating using the port-preserving nature of symmetric network address translators
CN101334778B (en) * 2007-06-29 2011-08-03 国际商业机器公司 Management database connecting method and system

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862335A (en) * 1993-04-01 1999-01-19 Intel Corp. Method and apparatus for monitoring file transfers and logical connections in a computer network
US6484174B1 (en) * 1998-04-20 2002-11-19 Sun Microsystems, Inc. Method and apparatus for session management and user authentication
US6532368B1 (en) * 1999-01-25 2003-03-11 International Business Machines Corporation Service advertisements in wireless local networks
US6665705B1 (en) * 1999-10-19 2003-12-16 International Business Machines Corporation Method and apparatus for proxy replication
US7065579B2 (en) * 2001-01-22 2006-06-20 Sun Microsystems, Inc. System using peer discovery and peer membership protocols for accessing peer-to-peer platform resources on a network
US20020188714A1 (en) * 2001-04-05 2002-12-12 Nicolas Bouthors State of activity management method for a radio communications terminal
US6961560B2 (en) * 2001-05-23 2005-11-01 International Business Machines Corporation Method and device for prompt and efficient service discovery in wireless networks
US7426393B2 (en) * 2001-11-19 2008-09-16 Nokia Corporation Method and system of identifying network services
EP1320229A2 (en) * 2001-12-14 2003-06-18 Openwave Systems Inc. Method and device for messaging
US20030195934A1 (en) * 2002-04-15 2003-10-16 Peterson Neil J. Web services-based communications for use with process control systems
US7290054B2 (en) * 2002-04-26 2007-10-30 Redback Networks Inc. Dynamic modification of a subscriber connection
US20060107287A1 (en) * 2002-08-15 2006-05-18 Kook-Heui Lee Multimedia broadcast/multicast service announcement and notification
US20040059722A1 (en) * 2002-09-24 2004-03-25 Yeh Danny Lo-Tien Method and apparatus for discovery of dynamic network services
US20040148334A1 (en) * 2003-01-28 2004-07-29 Sbc Properties, L.P. Coordination platform and method for dynamic aggregation of services
US20060064496A1 (en) * 2003-09-25 2006-03-23 Microsoft Corporation System and method for computing concurrent network connection information
US20050108389A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Network endpoint health check
US20060018264A1 (en) * 2004-07-21 2006-01-26 Fujitsu Limited Opened network connection control method, opened network connection control system, connection control unit and recording medium
US7444409B2 (en) * 2005-01-21 2008-10-28 Research In Motion Limited System and method for determining a designated connection between components of computing devices
US20060277275A1 (en) * 2005-04-02 2006-12-07 Glaenzer Eric F Dynamic management of communication ports, devices, and logical connections
US20070143449A1 (en) * 2005-10-14 2007-06-21 Julian Wray West Discovering network services

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285860B2 (en) 2009-03-16 2012-10-09 Apple Inc. Efficient service discovery for peer-to-peer networking devices
US20100233960A1 (en) * 2009-03-16 2010-09-16 Brian Tucker Service discovery functionality utilizing personal area network protocols
US20100235523A1 (en) * 2009-03-16 2010-09-16 Robert Garcia Framework for supporting multi-device collaboration
CN101841443A (en) * 2009-03-16 2010-09-22 苹果公司 Service discovery funtionality utilizing personal area network protocols
EP2230820A1 (en) * 2009-03-16 2010-09-22 Apple Inc. Service discovery funtionality utilizing personal area network protocols
WO2010107565A1 (en) * 2009-03-16 2010-09-23 Apple Inc. Service discovery functionality utilizing personal area network protocols
US8572248B2 (en) 2009-03-16 2013-10-29 Apple Inc. Efficient service discovery for peer-to-peer networking devices
US20100235525A1 (en) * 2009-03-16 2010-09-16 Apple Inc. Efficient service discovery for peer-to-peer networking devices
US9344339B2 (en) 2009-03-16 2016-05-17 Apple Inc. Efficient service discovery for peer-to-peer networking devices
US9432917B2 (en) 2009-10-30 2016-08-30 Qualcomm Incorporated Methods and systems for peer-to-peer network discovery using multi-user diversity
US20120209989A1 (en) * 2010-04-05 2012-08-16 Futurewei Technologies, Inc. Method for Dynamic Migration of a Process or Services from One Control Plane Processor to Another
US20120137012A1 (en) * 2010-04-05 2012-05-31 Futurewei Technologies, Inc. Method for Dynamic On Demand Startup of a Process or Resource
US9116749B2 (en) * 2010-04-05 2015-08-25 Futurewei Technologies, Inc. Method for dynamic on demand startup of a process or resource
US9158589B2 (en) * 2010-04-05 2015-10-13 Futurewei Technologies, Inc. Method for dynamic migration of a process or services from one control plane processor to another
US20120136944A1 (en) * 2010-04-05 2012-05-31 Futurewei Technologies, Inc. Method For Dynamic Discovery of Control Plane Resources and Services
US8504672B2 (en) * 2010-11-19 2013-08-06 Silicon Image, Inc. Discovery of electronic devices in a combined network
US20130326030A1 (en) * 2010-11-19 2013-12-05 Silicon Image, Inc. Discovery of electronic devices in a combined network
US8799443B2 (en) * 2010-11-19 2014-08-05 Silicon Image, Inc. Discovery of electronic devices in a combined network
US20120131153A1 (en) * 2010-11-19 2012-05-24 Silicon Image, Inc. Discovery of electronic devices in a combined network
US8797874B2 (en) 2011-09-09 2014-08-05 Futurewei Technologies, Inc. Apparatus and system for packet routing and forwarding in an interior network
US8730328B2 (en) 2011-10-06 2014-05-20 Qualcomm Incorporated Frame buffer format detection
US9330709B2 (en) * 2012-07-12 2016-05-03 Oracle International Corporation Tape library string request management
US20140016227A1 (en) * 2012-07-12 2014-01-16 Oracle International Corporation Tape library string request management
US9363320B2 (en) 2012-12-05 2016-06-07 Microsoft Technology Licensing, Llc Persistent connection between network devices
US20160119964A1 (en) * 2013-05-20 2016-04-28 Samsung Electronics Co., Ltd. Discovery method and apparatus
US9839059B2 (en) * 2013-05-20 2017-12-05 Samsung Electronics Co., Ltd. Discovery method and apparatus
US9774563B2 (en) 2013-07-11 2017-09-26 Huawei Technologies Co., Ltd. Packet transmission method, apparatus, and system in multicast domain name system
US9692733B2 (en) * 2015-02-10 2017-06-27 Red Hat, Inc. Key establishment and management protocol optimizations in view of channel reliability

Also Published As

Publication number Publication date Type
EP2186302B1 (en) 2017-04-19 grant
WO2009032396A3 (en) 2009-06-11 application
CN101785281A (en) 2010-07-21 application
JP2013215008A (en) 2013-10-17 application
KR20100066526A (en) 2010-06-17 application
WO2009032396A2 (en) 2009-03-12 application
EP2186302A2 (en) 2010-05-19 application
JP5643881B2 (en) 2014-12-17 grant
KR101488833B1 (en) 2015-02-02 grant
JP5325219B2 (en) 2013-10-23 grant
US8924509B2 (en) 2014-12-30 grant
US20120296955A1 (en) 2012-11-22 application
JP2010538537A (en) 2010-12-09 application
CN101785281B (en) 2014-10-29 grant

Similar Documents

Publication Publication Date Title
US7366894B1 (en) Method and apparatus for dynamically securing voice and other delay-sensitive network traffic
US6704293B1 (en) Broadcast as a triggering mechanism for route discovery in ad-hoc networks
US6542935B1 (en) Method for obtaining a second address free from association with multiple devices
US7068646B2 (en) System and method for performing IP telephony including internal and external call sessions
US7225243B1 (en) Device discovery methods and systems implementing the same
US20040071148A1 (en) Information device, gateway device and control method
US6856621B1 (en) Method of transmission of data in cluster environment
US20030084162A1 (en) Managing peer-to-peer access to a device behind a firewall
US20130136126A1 (en) Data center network system and packet forwarding method thereof
US20050220137A1 (en) Method for the discovery of devices connected to an IP network and device to carry out said method
US8683023B1 (en) Managing communications involving external nodes of provided computer networks
US20060070115A1 (en) Server, VPN client, VPN system, and software
US20090094317A1 (en) Method, apparatus and system for sharing multimedia content within a peer-to-peer network
US20050066197A1 (en) Communication apparatus and method, and program for applying security policy
US6618398B1 (en) Address resolution for internet protocol sub-networks in asymmetric wireless networks
US7042879B2 (en) Method and apparatus for transferring a communication session
US20070160200A1 (en) Encryption communication system
US20040028391A1 (en) Internet video surveillance camera system and method
US20040174824A1 (en) Content distribution system
US7330906B2 (en) Method and system for multiple hosts anycast routing
US20030088765A1 (en) Method and apparatus for transferring a communication session
US7978631B1 (en) Method and apparatus for encoding and mapping of virtual addresses for clusters
US6631415B1 (en) Method and system for providing a communication connection using stream identifiers
US20030088676A1 (en) Method and apparatus for transferring a communication session
Wimer Clarifications and extensions for the bootstrap protocol

Legal Events

Date Code Title Description
AS Assignment

Owner name: SILICON IMAGE, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHMIDT, BRIAN K.;HANKO, JAMES G.;NORTHCUTT, J. DUANE;REEL/FRAME:019785/0979

Effective date: 20070830