A system for correcting errors in the transmission of data packets between a source and a receiver. The source sends data packets to the client unit and server unit. The system uses the client unit and the server unit to send a repaired packet stream to a receiver when an error is detected. The client unit detects errors in the packet stream and sends retransmission requests of the lost data packets to the server unit. The server unit retransmits the lost data packet to the client unit, which then corrects the packet stream by inserting the lost packet into the proper time order and transmitting the repaired packet stream to the receiver.

Patent
   6031818
Priority
Mar 19 1997
Filed
Mar 19 1997
Issued
Feb 29 2000
Expiry
Mar 19 2017
Assg.orig
Entity
Large
453
5
all paid
11. A method for retransmitting data packets, said method comprising the steps of:
transmitting data packets from a source to at least one client and to at least one server using a real-time transport protocol, said data packets representing real-time audio or video, said client unit associated with at least one destination and operable for receiving said data packets on behalf of said at least one destination; and
responding to a received packet being indicative of an error, by having said client request retransmission of said data packets from said server, rather than said source, that will correct said error;
wherein said at least one client and said at least one server operate independently of said source and said at least one destination.
21. A system for transmission of packet streams between at least one source and at least one receiver using a real-time transport protocol, said data packets representing real-time audio or video, said system comprising:
at least one server unit being operable to receive a packet stream from said source; and
at least one client unit being operable to detect an error in said packet stream from said source and request retransmission of a lost packet from said server, rather than from said source;
said client unit being further operable to send a repaired packet stream to said receiver, said repaired packet stream including said lost packet;
wherein said at least one client unit and said at least one server unit operate independently of said source and said receiver.
1. A data packet retransmission arrangement comprising:
at least one client unit associated with at least one destination;
a source of data packets, said source transmitting the data packets to said at least one client unit using a real-time transport protocol, said data packets representing real-time audio or video, said client unit operable for receiving said data packets on behalf of said at least one destination; and
at least one server unit operable to receive a copy of each said data packet that said source transmits to said client unit;
said client unit being further operable, responsive to a received packet being indicative of an error, for sending to said server, rather than to said source, a request to retransmit that one of the data packets that said server received from said source that will correct said error;
wherein said at least one client unit and said at least one server unit operate independently of said source and said at least one destination.
16. An apparatus for retransmitting data packets, said apparatus comprising:
a playback register associated with at least one destination;
a source of data packets, said source transmitting the data packets to said playback register using a real-time transport protocol, said data packets representing real-time audio or video, said playback register operable for receiving said data packets on behalf of said at least one destination; and
a retransmit register for receiving a copy of each said data packets that said source transmits to said playback register;
said playback register being further operable, responsive to a received packet indicative of an error, for sending to said retransmit buffer, rather than to said source, a request to retransmit that one of the data packets that said retransmit register received from said source that will correct said error;
wherein said playback register and said retransmit register operate independently of said source and said at least one destination.
2. The arrangement according to claim 1, wherein said client unit includes:
a detector for determining if an incoming data packet is in a proper sequence;
a playback buffer for storing each said incoming data packet in a time order; and
means for generating said request to retransmit to said server unit if said incoming data packet is out of sequence.
3. The arrangement according to claim 2, wherein said detector calculates an inter-packet delay if said incoming data packet is out of sequence and inserts each said out of sequence incoming data packet in said playback buffer to form a repaired packet stream.
4. The arrangement according to claim 3, wherein a repaired packet stream is sent from said playback buffer to said at least one destination in said time order.
5. The arrangement according to claim 1, wherein said client unit sends out at least another request to retransmit after a given interval.
6. The arrangement according to claim 5, wherein said given interval is a multiple of an average round trip time between said client unit and said server unit.
7. The arrangement according to claim 1, wherein said server unit responds to said request to retransmit by retransmitting a lost data packet to said client unit.
8. The arrangement according to claim 7, wherein said request to retransmit includes a sequence number, a retransmission request number and a requesting client unit number.
9. The arrangement according to claim 7, wherein said server unit includes a retransmit buffer for storing a given number of data packets.
10. The arrangement according to claim 1, wherein said data packets are sent using a real time transport protocol, further wherein:
said client unit is operable to determine if an incoming data packet is out of sequence and is further operable to generate said request to retransmit for a lost data packet if said incoming data packet is out of sequence;
said server unit being responsive to said request by sending said copy of said lost data packet to said client unit; and
said client unit being further operable to send said lost data packet in a time order to said destination.
12. The method according to claim 11, wherein said step of responding includes the step of correcting said error in said client unit by forming a repaired packet stream.
13. The method according to claim 11, wherein said step of responding further includes the steps of:
determining if an incoming data packet is in a proper sequence;
buffering a given set of said data packets in said client unit in a given time order in response to whether said incoming data packet is out of sequence;
generating a retransmission request with a set of identification parameters if said incoming data packet is out of sequence and is a lost data packet;
transporting a copy of said lost data packet from said server unit to said client unit; and
inserting said copy of said lost data packet in said time order to form a repaired packet stream.
14. The method according to claim 11, wherein said step of responding includes the step of sending another retransmission request after waiting a given duration for a copy of a lost data packet from said server unit.
15. The method according to claim 11, further including the step of generating at least one lost data packet indicator corresponding to each said error.
17. The apparatus according to claim 16, wherein:
said playback register is operable to determine an out of sequence incoming packet and hold a given set of packets;
said retransmit register is operable to send a copy of a lost data packet to said playback register; and
said playback register is further operable to insert said copy of said lost data packet from said retransmit register into said set of packets in a time order to form a repaired packet stream.
18. The apparatus according to claim 16, wherein said data packets are sent over a real time transport protocol and said playback register uses said protocol format to place a set of identifying information regarding a lost packet.
19. The apparatus of claim 16, wherein said playback register is a circular register and has an active region.
20. The apparatus of claim 16, wherein said playback register maintains a time order of said data packets and transmits said data packets at a given inter-packet interval.
22. The system according to claim 21, wherein:
said client unit being further operable to determine if a packet is out of sequence; and
said client unit being further operable to store said packet and mark an intermediate set of packets as lost if said packet is out of sequence.
23. The system according to claim 21, wherein:
said client unit being operable to insert a retransmitted lost packet in a time order to form said repaired packet stream; and
said client unit being further operable to send said repaired packet stream in said time order to said receiver.
24. The system according to claim 21, wherein:
said server unit being further operable to store M number of packets, each said packet having a sequence number; and
said server unit being further operable to retrieve said packet by locating said packet by said sequence number modulo M.
25. The system according to claim 24, wherein said M is a power of 2.

This invention relates to the field of packet switching networks, and more particularly to a system for correcting errors in the network.

The Internet Multicast Backbone ("MBone"), is a virtual network on the Internet, which has been in existence beginning as a research tool since the early 1990s. In the last few years, this same network has become more widely used as the medium for large scale live video broadcasts and their distribution to Internet subscribers. Additionally, Internet phone applications for PC platforms have spurred a tremendous increase in traffic and interest in the Internet for audio and video telephone applications.

It is a widely held belief that this medium has great potential for use by corporate Intranets as well as by private users. However, a major drawback with this medium is that groups of transmission signals, called packets, which in combination comprise the entire signal, are frequently lost by the medium, seriously degrading the video picture and sound quality, and making the medium currently unacceptable for expanding business applications.

To resolve this degradation problem, for example, in data applications, sophisticated retransmission based error recovery schemes have been previously proposed. However, unlike data transmissions which require 100% reliability in signal transmission, systems on the Internet can operate in virtual time allowing for signal error detection and correction without signal loss. One recent proposal for solving degradation in real-time multimedia transmission modifies the source and receiver applications to conform to a new protocol which then incorporates the retransmission of packets in the new protocol. Assembly and disassembly of video frames is done as part of the protocol. However, no request for retransmission is sent out if the current round trip delay is greater than an inter-frame period, which is assumed to be constant in this scheme. A major disadvantage is that the system requires frame level information and requires modification to the internal workings of the specific applications being used.

Accordingly, there is a need to provide a system and method which can retransmit lost packets without requiring any modifications of existing applications, sources and receivers.

In accordance with the present invention, a system and method is provided which, upon the detection of a lost packet, requests the retransmission of the lost packet, inserts the correct packet where it belongs in a packet stream and transmits a repaired packet stream to the receiver. One exemplary embodiment of the present invention system uses client and server units, which can be connected in a variety of configurations to detect and repair packet losses and thereby result in improved communications between a source and receiver.

In the invention, a packet stream is transported from a source to a client unit, which in turn forwards the packet stream to an associated destination. The client unit receives a packet stream from the source which, normally, the client unit forwards to one or more receivers. However if the client unit detects an error in the packet stream, the client unit will instead, after correction, send a repaired packet stream to those receivers. The receiver applications at the intended destinations will accept this repaired packet stream from the client unit, rather than the original packet stream sent from the source, since the repaired packet streams containing the audio and video information have fewer losses than the original transmission. Advantageously, the client unit detects the error or lost packets, corrects the error by requesting a retransmission of the lost packets from the server unit rather than the source. The client then inserts a copy of the lost packet into the proper time order to form the repaired packet stream. As such, the system permits high quality video and audio communications between the source and receiver. In one exemplary embodiment, the system is versatile enough to be used in a variety of applications ranging from video telephony, two person video and audio telephony, to distributive video programming on the Internet and corporate Intranets.

The client and server units work independently from one another and are decoupled from the internal workings of the source and receiver applications. Accordingly, the present invention works solely at the packet level and does not require any frame level information. As such, the present invention is easily and immediately deployable in existing telecommunication systems, such as those which support Internet and corporate Intranet communications.

A more complete understanding of the present invention may be obtained from consideration of the following description in conjunction with the drawings in which:

FIG. 1 shows an illustrative embodiment of the present invention;

FIG. 2 shows an exemplary embodiment of a playback buffer in accordance with the present invention;

FIG. 3 shows an alternative embodiment of a playback buffer;

FIGS. 4 (a) and 4(b) show graphs which depict the improvements achieved in packet loss rates in an embodiment in accordance with the present invention;

FIGS. 5(a) and 5(b) depict alternate configurations in which the present invention can be deployed;

FIG. 6 is a graph which demonstrates the effect of retransmission requests at the receiver;

FIG. 7 is a graph which demonstrates the effect of various spacings of retransmission requests; and

FIG. 8 is a graph which demonstrates the effect of various moving average distances.

A system and method is provided which minimizes the effects of packet losses by requesting retransmission of lost packets upon their detection. The system uses a client unit and a server unit to detect an error or lost data packet, request retransmission of the lost data packet and send a repaired packet stream to the receiver, thereby providing high quality video and audio communication between the source and the receiver. The units are versatile enough to be used in a variety of applications ranging from video telephony to distributive video programming and can be used in any packet communication networks. In addition, since the present invention client and server units do not require any modifications to the existing sources and receivers (e.g., those existing on the Internet), they can be incorporated immediately with the receivers thereby obtaining a higher quality transmission from a client unit located in close proximity to the receiver. In contrast to prior art systems, the client-server retransmission strategy is decoupled from the internal workings of the applications, and works solely at the packet level. In addition, at least one retransmission request is always sent out for a missing packet, and the playback buffer size and delay naturally grow to reflect the current network conditions.

In general, the receiver applications contemplated for use with the present invention listen to the client unit for their video and audio transmission, which is a repaired packet stream with much fewer packet losses than the original transmission. The client unit can accomplish this by obtaining missing packets from the server unit as soon as the missing packets are detected. The characteristics of the transmission (interactive conversation or distributive programming) determine how much delay can be tolerated and the subsequent extent of the repair. It is noted and demonstrated below, that the perceptual tolerance limit of a few hundred milliseconds delay on interactive communication permits a significant amount of repair and improvement in packet reception. For distributive programming, such as seminars, much higher delays can be tolerated, leading to near-perfect reception at the receivers.

Referring to FIG. 1, there is shown an exemplary configuration of a telecommunications system 100 which incorporates the client and server units of the present invention. System 100 consists of a multimedia source 110 at a first location, which multicasts the packets out to several destination locations, including a server unit 120 and a client unit 130. Client unit 130 also receives packets from server unit 120. As a result, receivers 140 at the destination locations may receive in a subsequent multicast from client unit 130, an original packet stream 150 or a repaired packet stream 160. As a result, a packet stream received utilizing the present invention has much fewer losses than the original packet stream 150 if the original packet stream is faulty. The instant configuration adds an evaluation capability to system 100, to determine the improvement in video and audio reception quality for viewers at the destination locations.

The client and server units 130, 120 operate on packet streams in the Real time Transport Protocol ("RTP") format (encapsulated in the User Datagram Protocol ("UDP")). UDP is a transport layer connectionless mode protocol providing a datagram mode of communication for delivery of packets to a remote or a local user. RTP, a draft Internet standard, is an end-to-end application level protocol for real time data, such as audio or video, in multicast or unicast modes. Many of the real time multimedia applications on the Internet are based on RTP and the present system will work with any such application. An important feature of the RTP packet format for the purposes of the present invention is the incorporation of a 16-bit sequence number field in the packet header. This field is used by each client unit and server unit 130, 120 to detect lost or out of-order packet arrivals, as well as to store and retrieve packets in the playback and retransmit buffers present in the client and server units 130, 120, respectively. RTP packets can be of variable length (determined by the application), and typically one UDP packet encapsulates one RTP packet.

In addition to the data delivery protocol, RTP also consists of a Real time Transport Control Protocol ("RTCP") control packet which handles control information to monitor the quality of service and provides participant information on a session. RTCP packets are not sequence number equipped, are typically limited to a small fraction of the bandwidth for a session, and the loss of individual RTCP packets does not affect the audio or video output. Accordingly, the present system does not attempt to compensate for lost RTCP packets.

Client units 130 act as a front end to one or more audio and video applications. Client units will listen to up to two transmission sources 110, typically one for audio and one for video (unicast or multicast). Client unit 130 also repairs any gaps in the packet stream by communicating with a specified retransmission server unit (unicast), and supply the repaired data streams to one or more audio/video applications (unicast or multicast). Referring to FIG. 2, an exemplary structure of a playback buffer 200 used by the client unit is shown, which can be implemented using various memory devices, shift registers and other commercially available devices. Playback buffer 200 provides storage for packets arriving while a lost packet is being retrieved by retransmission. Two associated tables 210 and 220, one each for audio and video packets, keep track of pending retransmission requests and the associated empty slots in playback buffer 200. As above, audio table 210 and video table 220 may be implemented using software, standard hardware devices, or combinations thereof.

In the shown embodiment of FIG. 2, playback buffer 200 is a circular buffer having a sufficient number of memory locations to store up to β packets, where each packet consists of a payload field as well as several header fields, where β>1. The payload field 201, when filled, contains an entire RTP or RTCP packet, and the different header fields 202 indicate the state of the packet as described below. The active part of the buffer is demarcated by top-of-queue (toq) and bottom-of-queue (boq) pointers, and it is only the slots in this active region that are of concern in the present invention. A valid-- tag indicates whether the slot has a packet or a "hole" corresponding to a lost and as yet unretried packet. The field pkt-- type indicates the nature of the packet. In the present system, pkt-- type could be video data, audio data or control packets. All packet types (only two of which may be present) are serialized through the buffer to preserve their arrival sequence, before being written out to the associated UDP ports. The field seqno is the RTP sequence number of the audio or video packet In the case of a hole this corresponds to the sequence number of the missing packet.

The field pkt-- delay specifies the time delay between the current packet and previous packet in the buffer. This timing information is necessary since many video applications do not implement a playback point algorithm, and render frames on the display as soon as an end-of-frame packet arrives. For these applications, if the packets are supplied out of the buffer as they become available, there will be a freeze-frame at each lost point (while waiting for the retransmission) followed by a fast-forward action as the packets buffered behind the hole are sent to the application in a burst. Since a goal of the system is to avoid any frame level manipulations, thus making it easily implementable, the system only preserves the inter-packet times of the packets while playing them out to the application. Experimental results, as detailed below, indicate that the motion quality rendered by this timing is virtually indistinguishable from that when the application directly receives the source packets.

The field retry-- count records the number of retransmission requests that have been sent out for a lost packet. The system permits up to a retry-- limit number of retransmission requests to be sent out before the system times out the lost packet. The field last-- req-- time records the time when the last retransmission request for a lost packet was sent out. This field is used to determine when to send out another request for the lost packet, if necessary. Finally, the field pkt-- length specifies the length of the payload, which contains the RTh or RTCP packet.

The size of the playback buffer, β, is the maximum number of packets that need to be stored, and is determined mainly by the maximum playback delay. As will be described, the size of the active part of this buffer will vary based on the client-server round trip delays, and should often be much less than β. Burstiness in the traffic will also cause the size of the buffer to increase and decrease. For example, utilizing vic, an application for transmitting packet video, operating at 128 Kbps (the default rate), the interpacket time is about 65 ms if the packet size is around 1024 bytes (the default setting for the maximum transmission unit). If β=4096, the system is able to store about 4 minutes worth of packets, which is not only orders of magnitude greater than a cross country round trip delay (about a few hundred ms), but is also about the maximum acceptable delay for a distributive video program. For a 1 Mbps video transmissions over a corporate Intranet, for example, this reduces to about 30 seconds worth of buffering. For a 71 Kbps audio session in the default pcm2 mode of the Visual Audio Tool application, the interpacket time is about 40 ms, and a 4K buffer size will provide up to 2.5 minutes of delay. The maximum playback buffer size is a parameter in the system, with a default value of 4K packets.

As indicated, video table 220 and audio table 210, are maintained by the client unit for fast access to information about outstanding retransmission requests. They comprise, for example, of 64K entries, one per sequence number. Each entry indicates if a retransmission request is pending for that sequence number, as well as the location of the corresponding hole in playback buffer 200. When the retransmitted copy does arrive, it can be stored in the proper location with a single lookup to one of these tables.

Functionally, the client unit operates by repeatedly servicing input ports (from the network) and output ports (to the audio/video applications), updating playback buffer 200 in the process. An exemplary pseudo code of the system functions is shown in Appendix A. As would be understood, alternative embodiments accomplishing the same are possible in view of the present invention. For instance, the client unit's functionality is described as two processes, an input and an output process, although other representations are possible.

With respect to the embodiment of FIG. 1 and in conjunction with Appendix A, the input-- process polls, for example, in a round robin fashion the ports associated with the video source, the audio source, and the retransmission server unit. RTCP control packets are directly inserted into the end of the buffer with the appropriate playback delay. As mentioned above, such processing applies only to incoming data packets and not control packets.

If a missing packet is received (determined by checking video table 220 and audio table 210), the function receive-- copy is called, and the entry voided in either video table 220 or audio table 210. This can be the original packet arriving out of order or a retransmitted copy from the server unit. Note that a round trip moving average, avg-- rt, can be updated only if this copy corresponds to the last retransmission request sent out for this packet. As shown below, the moving average has a significant effect on system performance.

If the sequence number of the incoming packet, in-- seqno, is not in either video table 220 or audio table 210, then the gap between in-- seqno and curr-- seqno (the value of the current sequence number) is determined. If this value, loss-- cnt, is less than a parameter loss-- limit (the maximum value for the gap size), then the function receive-- orig is called. This function sends out loss-- cnt retransmission requests to the server unit, and inserts the incoming packet into playback buffer 200 at the location (boq+loss-- cnt+1) mod β, marking the intermediate locations as holes. That is, an error has been detected in the packet stream, where each hole represents a lost or missing packet. Inter-packet delay is interpolated uniformly, if loss-- cnt is non-zero. If the gap in sequence numbers is greater than loss-- limit, no attempt is made to recover the packet loss burst. The default value for loss-- limit is 50 packets.

The output-- process has two major functions. The first is to send out additional retransmission requests (up to a limit of retry-- limit) for holes (slots corresponding to lost and as yet unretrieved packets) that may exist in the playback buffer. The retransmission request is an important function in the client unit in terms of the computational overhead, the retransmission packet overhead, and the effective loss rate seen by the receiver, all of which would be desirable to minimize simultaneously. An exemplary system maintains a moving average, avg-- rt, of the client-server round trip times for the last κ matching retransmitted copies, and uses a multiple (T) of that as a threshold to determine when to send the next request for each hole in the buffer. Note that round trip times can only be computed from last-- req-- time if the copy that comes back corresponds to the last request sent out and not an earlier one. The function retry-- request accomplishes this for each hole in the system, and is called when a timer expires with the threshold for the earliest outstanding request All of the parameters involved in this system--the moving average distance for avg-- rt, the round trip delay multiple used to compute the threshold, and the retry-- limit are user definable. Default values for these parameters, for example, are 2 retransmit requests, threshold T=2×avg-- rt, and a moving average distance of 15. For the instant exemplary configuration, the initial value of avg-- rt is set to 100 ms for the Intranet environment. The effect of some of these parameters on the efficiency of the client unit operation are discussed below.

The second function of the output-- process is to send packets to the audio and video applications in the correct time sequence. The pkt-- delay field (shown in FIG. 2) of the top of the buffer is used to determine when to send the packet out relative to the previous packet, where a packet is sent by calling a function output-- packet. If the toq slot is empty, and retry-- limit retransmission requests have been sent out without response, then that packet is ignored and the next packet is processed at the appropriate time.

Note that in the system of the present invention, the playback buffer builds up naturally to account for round trip times to the server unit, as a result of the first few retransmission requests. The system does not delay sending out the first packet from the buffer, to force the queue to grow. If the burstiness is ignored in the packet arrivals, the buffer will build up to a size of about (max(retry-- count) +1)×T×avg-- rt/mean inter-packet time), where max(retry-- count) is the maximum number of retransmission requests that have been made for a missing packet. If any missing packet could not be retrieved from the server unit, this maximum value will be retry-- limit.

Referring to FIG. 3, an alternate retransmission request and time-out scheme is illustrated which is based on buffer windows and buffer length rather than round trip times. In this arrangement, no last req-- time or retry-- count fields need to be maintained in the buffer slots. Basically, if the top of buffer is empty, the system times out when the buffer length reaches a threshold. Similarly, to decide if another request needs to be sent out for missing packets, the system scans non-overlapping windows in the buffer, starting from the bottom. The idea in both cases is that the number of packets behind a hole is an indication of the time spent waiting since the last retransmission request. Thus, window I starts n packets from the bottom to allow sufficient time for the first retransmission request to come back. Similarly, window 2 is spaced sufficiently away from window I to allow time for the second request to come back. This scheme works very well if the packets arrive uniformly or at least nearly so. However, studies indicate that even if the packets are generated uniformly at the source, their arrival can be quite bursty even after a couple of hops to different switching nodes. In this scenario, buffer growth is not a good predictor of elapsed time, and so a large fraction of the multiple retransmission requests are generated too early and all but the first copy discarded. As such, the former method is preferred.

Regardless of which of the above schemes is implemented, a retransmission request from the client unit to the server unit needs to identify two parameters: the source number (audio or video, e.g., --0 or 1), and the sequence number of the packet. In addition, the retransmission request number also needs to be a part of the request, so that the server unit can append the retransmission request number to the copy of the packet that is sent to the client. The client unit in turn can use the retransmission request number to determine if a copy matches the last request the client unit sent out and whether the received packet can be used to update the average round trip time. The retransmission requests have the same format as RTP messages, with the missing sequence number in the sequence number field of the RTP packet, and the source number and retransmission request number encoded in the payload type ("PT") field. The requesting client unit address is inserted in the SSRC field.

Copies retransmitted from the server unit to the client unit consist of the requested RTP packet with an added field in front containing the source number and the retransmission number. Once this field is extracted, the rest of the packet is identical to what the client unit would have received from the video or audio port. Since client units could be instantiated dynamically when the first retransmission request arrives from a client unit, the server unit sets up a socket for it and updates its client unit list. If the server unit cannot handle any more client units, it responds with all 1's, for example, in the added field. The client unit will then try another server unit at that point, if one exists. Since a single retransmission server unit services both audio and video packets in this configuration, a single UDP port can be used for communication between the server unit and the client unit.

As discussed, the server unit listens to up to two unicast or multicast sources for audio and video, stores the last M incoming packets from each source in a separate buffer and responds (by unicast or multicast) to requests (unicast) from one or more client units for retransmissions. Only RTP data packets are stored and retransmitted, and the server unit ignores RTCP control packets. Since RTP has a 16 bit sequence number field, at most 64K packets need to be stored for each source. However, following the previous discussion of the playback buffer architecture, a 4K packet buffer provides about 4 minutes of video storage at 128 kbps, and is the default retransmit buffer size in the present invention system.

Unlike the client unit's playback buffer, no circular buffer is needed for the server unit because the buffer will be read from random locations based on the client unit requests. As such, packets are stored and retrieved from the location given by their sequence number modulo M, an extremely fast and simple process when M is a power of 2, which is critical to being able to service more than just a few client units. Here, the assumption is that the client unit and server unit will not be off by more than M packets. In fact, this asynchrony between the two is a user-defined parameter in the present invention system--if a request is off by more than out-- of-- sync (<=M) packets, it will be ignored. The default value for this parameter is 512 packets.

For multicast sessions with multiple client units, the server unit maintains a list of client units that are currently active. This list is added to when new client units make their first request for a missing packet. The address of the client unit is retrieved from the SSRC field of the retransmission request, and if retransmissions are being transmitted in a unicast mode, a UDP socket is opened for that client unit address.

The present invention client/server architecture was employed for Mbone video (384 Kbps) and audio (64 Kbps) transmissions between two test site locations, one at Indian Hill ("IH"), Ill., and the other at Murray Hill ("MH"), N.J. A live weekly program was originated at Indian Hill, with the main goal for implementation of the present invention being to improve the reception for viewers in Murray Hill, who often encountered packet losses that average 6-15% over a 60 minute session, with short term losses as high a 30-40%. The network represents an implementation of what is termed a hub and spoke configuration, with one hub and one spoke. Most of the viewers at Murray Hill are on a single physical net, and in this case the exemplary configuration shown in FIG. 1 is a natural and very efficient mechanism for compensating for losses on the IH-MH link. A server unit is located on the same net as the source at IH, and a single client unit located at Murray Hill receives the original transmissions from the source. The client unit repairs the audio and video packet streams by requesting unicast retransmissions from the server unit. The client unit then multicasts the repaired stream on a different address with a very small time-to-live field. Viewers in Murray Hill tune in to this second multicast address to receive the high quality repaired audio and video programs. FIG. 4(a) and FIG. 4(b) are graphs which illustrate the effectiveness of this arrangement over one session. The graphs show the number of losses per thousand packets seen by a receiver over 20 minutes, for the original transmission (FIG. 4(a)) and for the present architecture (FIG. 4(b)). The data reveals that a maximum of two retransmission requests are sent out for a lost packet, though most of the lost packets are retrieved by just one retransmission requests. A more detailed analysis of the efficiency of this architecture is discussed below.

The present invention architecture also extends to a multi-spoke configuration 400 as shown in FIG. 5(a), which is limited only by the number of client units 410 that a single server unit 420 can handle. The exemplary server unit implementation is capable of handling approximately ten client units, which translates to a few hundred viewers in a well balanced system. The configuration would seem quite reasonable in a corporate Intranet environment, with a small number of client units (one or two at each site) and many hosts served by each client unit. An important issue here is the second multicast address that each client unit uses to broadcast the repaired stream to its subset of listeners. If the time-to-live fields of this local multicast (say 1 or 2) are small enough that the multicast trees from two client units will not overlap, then all the client units can use the same address for this purpose, and the entire high quality multicast can be achieved with just two addresses.

Referring now to FIG. 5(b), it can be seen in another exemplary multi-spoke configuration 450, that if the number of spokes is large at a hub, it may be more efficient for a server 460 to multicast the retransmission to all the client units 480, instead of dealing with unicast replies. Recall that the sever unit 460 can send retransmissions out to a unicast address. This would work particularly well if all the spokes experience roughly the same loss behavior. However, this is not always the case, and therefore there is the added disadvantage that during any interval the most lossy spoke would generate retransmission traffic on all the spokes. There are, however, more sophisticated ways of dealing with this situation as explained below.

The effectiveness of the present system client-server architecture in repairing incoming packet streams by retransmissions, is determined by the choice of the design parameters specified above, some of which may have to be adjusted dynamically as the network conditions change. The effect of altering three of these key parameters in terms of the performance of the system is discussed below. A single client-server pair as in FIG. 1 is used for these measurements.

FIG. 6 shows the effect that the maximum number of retransmit requests made by the client unit for a lost packet (retry-- limit) had on the effective loss rate seen by the receiving applications. This represents the fraction of the original transmission that could not be repaired. Since the loss rate on the network needed to be controlled for simulation purposes, it was performed on the Bell Labs Network Emulator, a hardware testbed for real time emulation of network architectures and operating conditions. An on-off burst model is assumed for the losses, with a geometric distribution within each loss or packet burst; the same loss rate is assumed present in both directions. A mean burst loss of three packets is used for this simulation; however the burst loss length does not seem to have a noticeable effect on the effective reception rate at the receivers after repair. The mean burst loss rate has a significant effect on the original audio or video quality though, and in that sense on the subjective improvement in quality. The key point to note is that the effective loss rate does drop almost exponentially with the number of retransmission requests, therefore very few (fewer than three) requests need be made for an acceptable reception rate (better than 95%).

While it is the case that the improvement in reception rate is determined almost entirely by the maximum number of retransmit requests, there are other factors that affect how efficiently this improvement is brought about. Chief among these factors is the spacing between consecutive requests for a lost packet, e.g., how long a client unit waits for a retransmit copy to arrive before making an additional request. One measure of efficiency is the fraction of retransmit requests that are wasteful, e.g., requests whose responses have to be discarded because of a previous retransmitted copy reached the client unit after this request was generated. Recall that the threshold used to general another request is T×avg-- rt, where avg-- rt is the moving average of the last K round-trip delays and T is a multiple. (k=15 by default.) Note that this threshold varies dynamically with the network conditions.

FIG. 7 shows the effect that this threshold had on the fraction of requests that are wasted. This figure is obtained from an actual multicast test session between Indian Hill and Murray on the corporate Intranet The test session had the following characteristics: Loss rate=12%, Mean round trip delay=77 ms, and Standard deviation of round trip delays=30 ms. As can be clearly seen, the longer a client unit waits before sending out another request for a missing packet, the greater are the chances that the response to a previous request is not on its way. FIG. 7 also shows that a threshold of one round trip delay is undesirable because of the variation in packet delays. Waiting for two round trip delays reduces the wasteful request to about 3% and for three round trip delays, to about 1%. Recall from the previous discussion that the mean buffer size will be around (max(retry-- count)+1)×T×avg-- rt/(mean inter-packet time). The disadvantage of waiting too long is that the buffer size and the playback delay will grow correspondingly. The default value for this parameter in the present system is 2×avg-- rt. For conversational transmissions such as in video phone applications, the system takes an absolute bound on this delay as an input parameter.

A second parameter in the dynamic threshold used to determine spacing between multiple retransmission requests is the number of previous retransmissions over which the moving average of the round trip delays (avg-- rt) is computed. FIG. 8 shows the effect that different moving average distances had on the fraction of retransmission requests that are wasteful. The threshold is 2×avg-- rt. This data was obtained from the same test session as discussed above. The graph illustrates that because of the tremendous variation in packet delays, it is desirable to smooth the avg-- rt out by averaging over the last 10-15 packets. While it is desirable to use a longer moving average distance for a higher rate transmission, there does not seem to be an advantage in smoothing over a very large interval. The default value in the system for this parameter is the last 15 round trip delays between the client unit and the server unit.

A unique characteristic of the present invention system is that it can be implemented on the current Internet without modifying the other receivers and transmitters that take part in the multicast session. Receivers that receive transmissions from these client units would see a much lower effective loss rate than those that listen directly to the source. A set of client and server units can be placed and connected together in a multitude of configurations to improve applications ranging from distributive video programming to point to point video telephony. The present invention is especially useful for corporate Intranet environments, where picture and sound quality is of prime concern, and to Internet Service Providers, who can use the system to provide superior service to their subscribers.

Numerous modifications and alternative embodiments of the invention will be apparent to those skilled in the art in view of the foregoing description. Accordingly, this description is to be construed as illustrative only and is for the purpose of teaching those skilled in the art the best mode of carrying out the invention. Details of the structure may be varied substantially without departing from the spirit of the invention and the exclusive use of all modifications which come within the scope of the appended claim is reserved.

APPENDIX A
__________________________________________________________________________
input-- process
receive-- copy
{
insert-- packet (vid-- req-- table{in-- seqno].buffe
r-- loc);
if (vid-- request-- table[in-- seqno].retry-- count
== in-- retry-- count)
update avg--
rt;
}
receive-- orig
{
while (curr-- seqno < i < in-- seqno)
{
playback-- buffer[boq].valid-- tag = 0;
playback-- buffer[boq].pkt-- type = in-- type;
playback-- buffer[boq].seqno = i;
playback-- buffer[boq].pkt-- delay =
curr-- time - prev-- input-- time/loss-- cnt+1);
playback-- buffer[boq].last-- req-- time = curr--
time;
boq++;
generate retransmission request with
type=in-- type, retry-- count=1 and seqno=i;
}
playback-- buffer[boq].pkt-- type = in-- type;
playback-- buffer[boq].seqno = in-- seqno;
playback-- buffer[boq].pkt-- delay =
(curr-- time - prev-- input-- time/loss-- cnt+1);
insert-- packet[boq]; boq++;
curr-- seqno - in-- seqno;
}
insert-- packet(buf-- loc)
{
playback-- buffer[buf-- loc].valid-- tag = 1;
playback-- buffer[buf-- loc].pkt-- length = in--
length;
playback-- buffer[buf-- loc].payload = in-- packet;
}
__________________________________________________________________________
APPENDIX B
__________________________________________________________________________
Output Process
retry-- request
{
if ((playback-- buffer[hole-- loc].retry-- count <
retry-- limit) &&
(curr-- time-playback-- buffer[hole-- loc].last--
req-- time)>T*avg-- rt))
{
playback-- buffer[hole-- loc].last-- req-- time =
curr-- time;
playback-- buffer[hole-- loc].retry-- count++;
generate a retransmission request with
type=playback-- buffer[hole-- loc].pkt-- type,
retry-- count=playback-- buffer[hole-- loc].retry--
count, and
seqno=playback-- buffer[hole-- loc].seqno;
}
}
output-- packet
{
if (playback-- buffer[toq].valid-- tag = 1)
{
output packet to appropriate port based on
playback-- buffer[toq].pkt-- type;
playback-- buffer[toq].valid-- taq = 0;
playback-- buffer[toq].retry = 0;
toq++
}
else
if (playback-- buffer[toq].retry-- count>retry-- limit)
{
*-- req-- table[playback-- buffer[toq].seqno].valid=0;
playback-- buffer[toq].retry = 0;
toq++;
}
}
__________________________________________________________________________

Lo, W. Steven, Padmanabhan, Krishnan

Patent Priority Assignee Title
10027745, Feb 15 2010 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
10028056, Sep 12 2006 Sonos, Inc. Multi-channel pairing in a media system
10031715, Jul 28 2003 Sonos, Inc. Method and apparatus for dynamic master device switching in a synchrony group
10033806, Mar 29 2010 Damaka, Inc. System and method for session sweeping between devices
10050872, Feb 15 2010 Damaka, Inc. System and method for strategic routing in a peer-to-peer environment
10055003, Sep 30 2013 Sonos, Inc. Playback device operations based on battery level
10063202, Apr 27 2012 Sonos, Inc. Intelligently modifying the gain parameter of a playback device
10091025, Mar 31 2016 DAMAKA, INC System and method for enabling use of a single user identifier across incompatible networks for UCC functionality
10091548, Sep 30 2013 Sonos, Inc. Group coordinator selection based on network performance metrics
10097423, Jun 05 2004 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
10097638, Apr 04 2011 Damaka, Inc. System and method for sharing unsupported document types between communication devices
10097893, Jan 23 2013 Sonos, Inc. Media experience social interface
10120638, Jul 28 2003 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
10126916, Aug 08 2014 Sonos, Inc. Social playback queues
10133536, Jul 28 2003 Sonos, Inc. Method and apparatus for adjusting volume in a synchrony group
10136218, Sep 12 2006 Sonos, Inc. Playback device pairing
10140085, Jul 28 2003 Sonos, Inc. Playback device operating states
10142688, Sep 30 2013 Sonos, Inc. Group coordinator selection
10146498, Jul 28 2003 Sonos, Inc. Disengaging and engaging zone players
10148628, Jun 23 2010 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
10157033, Jul 28 2003 Sonos, Inc. Method and apparatus for switching between a directly connected and a networked audio source
10157034, Jul 28 2003 Sonos, Inc. Clock rate adjustment in a multi-zone system
10157035, Jul 28 2003 Sonos, Inc Switching between a directly connected and a networked audio source
10164736, Oct 18 2006 KENCAST, INC Systems, methods, apparatus, and computer program products for providing forward error correction with low latency
10175930, Jul 28 2003 Sonos, Inc. Method and apparatus for playback by a synchrony group
10175932, Jul 28 2003 Sonos, Inc Obtaining content from direct source and remote source
10181902, Jul 03 2012 SmartLabs, Inc. Multi-media communication device
10185540, Jul 28 2003 Sonos, Inc. Playback device
10185541, Jul 28 2003 Sonos, Inc. Playback device
10193726, Mar 02 1999 Godo Kaisha IP Bridge 1 OFDM-CDMA equipment and method
10209953, Jul 28 2003 Sonos, Inc. Playback device
10216473, Jul 28 2003 Sonos, Inc. Playback device synchrony group states
10228898, Sep 12 2006 Sonos, Inc. Identification of playback device and stereo pair names
10228902, Jul 28 2003 Sonos, Inc. Playback device
10282164, Jul 28 2003 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
10284483, Feb 07 2007 VALENS SEMICONDUCTOR LTD Indicating delays added to packets due to retransmission
10289380, Jul 28 2003 Sonos, Inc. Playback device
10296283, Jul 28 2003 Sonos, Inc. Directing synchronous playback between zone players
10296288, Jan 28 2016 Sonos, Inc. Systems and methods of distributing audio to one or more playback devices
10303431, Jul 28 2003 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
10303432, Jul 28 2003 Sonos, Inc Playback device
10306364, Sep 28 2012 Sonos, Inc. Audio processing adjustments for playback devices based on determined characteristics of audio content
10306365, Sep 12 2006 Sonos, Inc. Playback device pairing
10320888, Sep 30 2013 Sonos, Inc. Group coordinator selection based on communication parameters
10324684, Jul 28 2003 Sonos, Inc. Playback device synchrony group states
10341736, Jan 23 2013 Sonos, Inc. Multiple household management interface
10355882, Aug 05 2014 DAMAKA, INC System and method for providing unified communications and collaboration (UCC) connectivity between incompatible systems
10359987, Jul 28 2003 Sonos, Inc. Adjusting volume levels
10360290, Feb 05 2014 Sonos, Inc. Remote creation of a playback queue for a future event
10365884, Jul 28 2003 Sonos, Inc. Group volume control
10387102, Jul 28 2003 Sonos, Inc. Playback device grouping
10387220, Jul 16 2013 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
10439896, Jun 05 2004 Sonos, Inc. Playback device connection
10445054, Jul 28 2003 Sonos, Inc Method and apparatus for switching between a directly connected and a networked audio source
10448159, Sep 12 2006 Sonos, Inc. Playback device pairing
10452342, Jan 15 2014 Sonos, Inc. Software application and zones
10462570, Sep 12 2006 Sonos, Inc. Playback device pairing
10469966, Sep 12 2006 Sonos, Inc. Zone scene management
10484807, Sep 12 2006 Sonos, Inc. Zone scene management
10506036, Aug 25 2010 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
10506062, Dec 27 2007 AT&T Intellectual Property I, L.P. Network-optimized content delivery for high demand non-live contents
10541883, Jun 05 2004 Sonos, Inc. Playback device connection
10545723, Jul 28 2003 Sonos, Inc. Playback device
10555082, Sep 12 2006 Sonos, Inc. Playback device pairing
10582464, Apr 29 2013 Google Technology Holdings LLC Systems and methods for synchronizing multiple electronic devices
10587693, Apr 01 2014 Sonos, Inc Mirrored queues
10587928, Jan 23 2013 Sonos, Inc. Multiple household management
10592200, Jan 28 2016 Sonos, Inc. Systems and methods of distributing audio to one or more playback devices
10594398, Jul 03 2012 SmartLabs, Inc. Multi-media communication device
10606552, Jul 28 2003 Sonos, Inc. Playback device volume control
10613817, Jul 28 2003 Sonos, Inc Method and apparatus for displaying a list of tracks scheduled for playback by a synchrony group
10613822, Jul 28 2003 Sonos, Inc. Playback device
10613824, Jul 28 2003 Sonos, Inc. Playback device
10621310, May 12 2014 Sonos, Inc. Share restriction for curated playlists
10635390, Jul 28 2003 Sonos, Inc. Audio master selection
10645130, Sep 24 2014 Sonos, Inc Playback updates
10673568, Jun 29 2004 Damaka, Inc. System and method for data transfer in a peer-to-peer hybrid communication network
10686704, Aug 27 2015 CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD Method and apparatus for providing a low latency transmission system using adaptive buffering estimation
10687110, Sep 30 2013 Sonos, Inc. Forwarding audio content based on network performance metrics
10720896, Apr 27 2012 Sonos, Inc. Intelligently modifying the gain parameter of a playback device
10743270, Apr 29 2013 Google Technology Holdings LLC Systems and methods for syncronizing multiple electronic devices
10743271, Apr 29 2013 Google Technology Holdings LLC Systems and methods for syncronizing multiple electronic devices
10747496, Jul 28 2003 Sonos, Inc. Playback device
10749642, Feb 07 2007 VALENS SEMICONDUCTOR LTD Dynamic retransmissions with fixed and minimum delays
10754612, Jul 28 2003 Sonos, Inc. Playback device volume control
10754613, Jul 28 2003 Sonos, Inc. Audio master selection
10762129, Mar 05 2014 Sonos, Inc. Webpage media playback
10775973, Sep 30 2013 Sonos, Inc. Controlling and displaying zones in a multi-zone system
10813066, Apr 29 2013 Google Technology Holdings LLC Systems and methods for synchronizing multiple electronic devices
10820289, Apr 29 2013 Google Technology Holdings LLC Systems and methods for syncronizing multiple electronic devices
10846046, Sep 24 2014 Sonos, Inc. Media item context in social media posts
10848885, Sep 12 2006 Sonos, Inc. Zone scene management
10863357, Jul 16 2013 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
10866698, Aug 08 2014 Sonos, Inc. Social playback queues
10871817, Sep 30 2013 Sonos, Inc. Synchronous playback with battery-powered playback device
10872194, Feb 05 2014 Sonos, Inc. Remote creation of a playback queue for a future event
10873612, Sep 24 2014 Sonos, Inc. Indicating an association between a social-media account and a media playback system
10897679, Sep 12 2006 Sonos, Inc. Zone scene management
10908871, Jul 28 2003 Sonos, Inc. Playback device
10908872, Jul 28 2003 Sonos, Inc. Playback device
10911322, Jun 05 2004 Sonos, Inc. Playback device connection
10911325, Jun 05 2004 Sonos, Inc. Playback device connection
10949163, Jul 28 2003 Sonos, Inc. Playback device
10952170, Apr 29 2013 Google Technology Holdings LLC Systems and methods for synchronizing multiple electronic devices
10956119, Jul 28 2003 Sonos, Inc. Playback device
10963215, Jul 28 2003 Sonos, Inc. Media playback device and system
10965545, Jun 05 2004 Sonos, Inc. Playback device connection
10966025, Sep 12 2006 Sonos, Inc. Playback device pairing
10970034, Jul 28 2003 Sonos, Inc. Audio distributor selection
10979310, Jun 05 2004 Sonos, Inc. Playback device connection
10983750, Apr 01 2004 Sonos, Inc. Guest access to a media playback system
11025509, Jun 05 2004 Sonos, Inc. Playback device connection
11032617, Jan 23 2013 Sonos, Inc. Multiple household management
11055058, Jan 15 2014 Sonos, Inc. Playback queue with software components
11057458, Sep 30 2013 Sonos, Inc. Group coordinator selection
11080001, Jul 28 2003 Sonos, Inc. Concurrent transmission and playback of audio information
11082770, Sep 12 2006 Sonos, Inc. Multi-channel pairing in a media system
11106424, May 09 2007 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
11106425, Jul 28 2003 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
11132170, Jul 28 2003 Sonos, Inc. Adjusting volume levels
11134291, Sep 24 2014 Sonos, Inc. Social media queue
11175805, Sep 30 2013 Sonos, Inc. Controlling and displaying zones in a multi-zone system
11182534, Feb 05 2014 Sonos, Inc. Remote creation of a playback queue for an event
11188621, May 12 2014 Sonos, Inc. Share restriction for curated playlists
11190564, Jun 05 2014 Sonos, Inc Multimedia content distribution system and method
11194541, Jan 28 2016 Sonos, Inc. Systems and methods of distributing audio to one or more playback devices
11200025, Jul 28 2003 Sonos, Inc. Playback device
11223661, Sep 24 2014 Sonos, Inc. Social media connection recommendations based on playback information
11223901, Jan 25 2011 Sonos, Inc. Playback device pairing
11265652, Jan 25 2011 Sonos, Inc. Playback device pairing
11294618, Jul 28 2003 Sonos, Inc. Media player system
11301207, Jul 28 2003 Sonos, Inc. Playback device
11314479, Sep 12 2006 Sonos, Inc. Predefined multi-channel listening environment
11317149, Sep 30 2013 Sonos, Inc. Group coordinator selection
11317226, Sep 12 2006 Sonos, Inc. Zone scene activation
11347469, Sep 12 2006 Sonos, Inc. Predefined multi-channel listening environment
11360643, Aug 08 2014 Sonos, Inc. Social playback queues
11385858, Sep 12 2006 Sonos, Inc. Predefined multi-channel listening environment
11388532, Sep 12 2006 Sonos, Inc. Zone scene activation
11403062, Jun 11 2015 Sonos, Inc. Multiple groupings in a playback system
11418408, Jun 05 2004 Sonos, Inc. Playback device connection
11429343, Jan 25 2011 Sonos, Inc. Stereo playback configuration and control
11431771, Sep 24 2014 Sonos, Inc. Indicating an association between a social-media account and a media playback system
11431804, Apr 01 2014 Sonos, Inc. Mirrored queues
11445261, Jan 23 2013 Sonos, Inc. Multiple household management
11451597, Sep 24 2014 Sonos, Inc. Playback updates
11456928, Jun 05 2004 Sonos, Inc. Playback device connection
11467799, Apr 01 2004 Sonos, Inc. Guest access to a media playback system
11481182, Oct 17 2016 Sonos, Inc. Room association based on name
11494063, Sep 30 2013 Sonos, Inc. Controlling and displaying zones in a multi-zone system
11526326, Jan 28 2016 Sonos, Inc. Systems and methods of distributing audio to one or more playback devices
11539767, Sep 24 2014 Sonos, Inc. Social media connection recommendations based on playback information
11540050, Sep 12 2006 Sonos, Inc. Playback device pairing
11543876, Sep 30 2013 Sonos, Inc. Synchronous playback with battery-powered playback device
11550536, Jul 28 2003 Sonos, Inc. Adjusting volume levels
11550539, Jul 28 2003 Sonos, Inc. Playback device
11556305, Jul 28 2003 Sonos, Inc. Synchronizing playback by media playback devices
11576046, Jul 16 2013 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
11625221, May 09 2007 Sonos, Inc Synchronizing playback by media playback devices
11635935, Jul 28 2003 Sonos, Inc. Adjusting volume levels
11650784, Jul 28 2003 Sonos, Inc. Adjusting volume levels
11720319, Jan 15 2014 Sonos, Inc. Playback queue with software components
11734494, Feb 05 2014 Sonos, Inc. Remote creation of a playback queue for an event
11736567, Jul 11 2019 Advanced New Technologies Co., Ltd. Data transmission and network interface controller
11740774, Sep 30 2013 Sonos, Inc. Controlling and displaying zones in a multi-zone system
11743849, Apr 29 2013 Google Technology Holdings LLC Systems and methods for syncronizing multiple electronic devices
11757980, Sep 30 2013 Sonos, Inc. Group coordinator selection
11758327, Jan 25 2011 Sonos, Inc. Playback device pairing
11770584, May 23 2021 DAMAKA, INC System and method for optimizing video communications based on device capabilities
11782977, Mar 05 2014 Sonos, Inc. Webpage media playback
11818430, Sep 30 2013 Sonos, Inc. Group coordinator selection
11831721, Apr 01 2014 Sonos, Inc. Mirrored queues
11889160, Jan 23 2013 Sonos, Inc. Multiple household management
11894975, Jun 05 2004 Sonos, Inc. Playback device connection
11899708, Jun 05 2014 Sonos, Inc. Multimedia content distribution system and method
11902343, Apr 19 2021 DAMAKA, INC System and method for highly scalable browser-based audio/video conferencing
11907610, Apr 01 2004 Sonos, Inc. Guess access to a media playback system
11909588, Jun 05 2004 Sonos, Inc. Wireless device connection
6118765, Jan 13 1998 Qualcomm Inc. System method and computer program product for eliminating unnecessary retransmissions
6275471, May 12 1998 Matsushita Electric Corporation of America Method for reliable real-time multimedia streaming
6404739, Apr 30 1997 Sony Corporation Transmitter and transmitting method, receiver and receiving method, and transceiver and transmitting/receiving method
6411998, Sep 08 1997 International Business Machines Corporation World wide web internet delay monitor
6430620, Mar 25 1997 SUN PATENT TRUST System and method for locating and retransferring lost data through the use of position number within a file
6445681, Sep 15 1999 OL SECURITY LIMITED LIABILITY COMPANY Method for measuring delay parameters in a network
6532562, May 21 1999 Rovi Technologies Corporation Receiver-driven layered error correction multicast over heterogeneous packet networks
6567929, Jul 13 1999 AT&T Corp. Network-based service for recipient-initiated automatic repair of IP multicast sessions
6580722, Aug 21 1998 Oracle America, Inc Bypassing topological restrictions with tunnels
6594798, May 21 1999 Rovi Technologies Corporation Receiver-driven layered error correction multicast over heterogeneous packet networks
6618373, Nov 10 1999 Cisco Technology, Inc. Method and system for reliable in-order distribution of events
6629318, Nov 18 1998 VIDEO STREAMING SOLUTIONS LLC Decoder buffer for streaming video receiver and method of operation
6651103, Apr 20 1999 AT&T Corp. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
6684354, Nov 30 1998 Matsushita Electric Industrial Co., Ltd. Data transmission method, data transmission apparatus, data receiving apparatus, and packet data structure
6693907, Apr 11 2000 Oracle America, Inc Method and system for measuring reception characteristics in a multicast data distribution group
6700893, Nov 15 1999 Koninklijke Philips Electronics N V System and method for controlling the delay budget of a decoder buffer in a streaming data receiver
6732313, Nov 30 1998 Matsushita Electric Industrial Co., Ltd. Data transmission method
6782490, Mar 17 1999 AT&T Corp. Network-based service for the repair of IP multicast sessions
6854012, Mar 16 2000 Sony Interactive Entertainment LLC Data transmission protocol and visual display for a networked computer system
6904464, Nov 16 1999 KONINKLIJKE PHILIPS ELECTRONICS, N V Transmission system for multicasting data using station error status feedback information
6918077, Nov 30 1998 Matsushita Electric Industrial Co., Ltd. Data transmission method and data transmission apparatus
6959323, Aug 27 1998 WSOU Investments, LLC Scalable atomic multicast
6965916, Dec 14 2000 BellSouth Intellectual Property Corp System and method for data distribution and recovery
7024609, Apr 20 2001 KENCAST, INC System for protecting the transmission of live data streams, and upon reception, for reconstructing the live data streams and recording them into files
7035217, Oct 20 2000 Cisco Technology, Inc. Router-assisted multicast congestion control
7039674, Jul 14 1999 Samsung Electronics Co., Ltd; SAMSUNG ELECTRONICS CO , LTD Method of changing program of network node remote from network management system
7054941, Sep 21 2001 VIA Technologies Inc. Method and network system for transferring programs
7092355, Jun 30 1999 K MIZRA LLC Method for controlling congested network flow
7124333, Nov 30 1998 Matsushita Electric Industrial Co., Ltd. Retransmission packet structure having multiple sequence numbers
7133364, Nov 10 2000 LG-ERICSSON CO , LTD Apparatus and method for internet telephone communication
7177312, Jul 25 2001 VectorMAX Corporation Server arbitrated reliable multicast system and a process for accessing the same
7240121, Aug 15 2001 Sony Corporation Content providing apparatus and content providing method
7296081, May 29 2001 Panasonic Intellectual Property Corporation of America Packet reception apparatus and packet reception method
7305475, Sep 17 2003 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT System and method for enabling a client application to operate offline from a server
7305585, May 23 2002 EXLUDUS TECHNOLOGIES INC Asynchronous and autonomous data replication
7345998, Dec 15 2004 SMARTLABS, INC Mesh network of intelligent devices communicating via powerline and radio frequency
7356750, Nov 30 1998 Matsushita Electric Industrial Co., Ltd Data transmission method and data transmission apparatus
7406497, Apr 20 1999 AT&T Corporation Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
7512630, Aug 12 2005 AT&T Intellectual Property I, L.P. System and method for archiving process component is adapted to listen for a query for a missing data packet from a requesting client computer to read, retrieve and return the data packet corresponding to the referenced sequence number to the requesting client computer
7519905, Oct 12 1999 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT Automatic formatting and validating of text for a markup language graphical user interface
7529235, Dec 06 2000 Internet based time distributed message network system and personal mobile access device
7533324, Sep 22 2004 KENCAST, INC System, method and apparatus for FEC encoding and decoding
7536622, Mar 29 2004 Nokia Technologies Oy Data repair enhancements for multicast/broadcast data distribution
7565415, Apr 20 1999 AT&T Intellectual Property, II L.P. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
7570636, Jun 29 2004 DAMAKA, INC System and method for traversing a NAT device for peer-to-peer hybrid communications
7574629, Mar 02 2004 QUALCOMM TECHNOLOGIES, INC Method and device for switching between agents
7623476, Jun 29 2004 Damaka, Inc. System and method for conferencing in a peer-to-peer hybrid communications network
7623516, Jun 29 2004 DAMAKA, INC System and method for deterministic routing in a peer-to-peer hybrid communications network
7707457, May 23 2002 eXludus Technologies, Inc. Completing an interrupted data replication operation
7707600, Aug 21 1998 Intel Corporation Confirming video transmissions
7725331, Dec 01 1999 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT System and method for implementing a global master patient index
7739580, Feb 17 2005 KENCAST, INC System, method and apparatus for reducing blockage losses on information distribution networks
7747894, Jun 06 2005 Microsoft Technology Licensing, LLC Transport-neutral in-order delivery in a distributed system
7778187, Jun 29 2004 DAMAKA, INC System and method for dynamic stability in a peer-to-peer hybrid communications network
7822869, Oct 15 2008 Xenogenic Development Limited Liability Company Adaptation of data centers' bandwidth contribution to distributed streaming operations
7831730, Apr 20 1999 AT & T Intellectual Property II, L.P. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
7840691, Sep 07 2000 DEDICATED LICENSING LLC Personal broadcast server system for providing a customized broadcast
7877492, Oct 12 1999 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT System and method for delegating a user authentication process for a networked application to an authentication agent
7881205, Jan 24 2007 Viasat, Inc Configurable delay limit for error control communications
7881242, Sep 14 2005 Qualcomm Incorporated System and method for frame re-transmission in a broadcast communication system
7904577, Mar 16 2000 Sony Interactive Entertainment LLC Data transmission protocol and visual display for a networked computer system
7920477, Jan 24 2007 Viasat, Inc Network layer error control systems and methods
7933260, Jun 29 2004 Damaka, Inc. System and method for routing and communicating in a heterogeneous network environment
7936664, May 05 1997 Nokia Technologies Oy Multi-carrier radio link protocol supervision in a radio communication system
7949778, Mar 27 2007 Kencast, Inc.; KENCAST, INC Systems, methods, apparatus and computer program products for providing packet-level FEC with higher throughput using user datagram protocol (UDP)
7962482, May 16 2001 Pandora Media, LLC Methods and systems for utilizing contextual feedback to generate and modify playlists
8000325, Jun 29 2004 Damaka, Inc. System and method for peer-to-peer hybrid communications
8009586, Jun 29 2004 Damaka, Inc. System and method for data transfer in a peer-to peer hybrid communication network
8032904, Aug 21 1998 Intel Corporation Confirming video transmissions
8050272, Jun 29 2004 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
8064343, Nov 25 2008 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Utilizing a replacement pathway for lost packet delivery during media reception in a set-top box (STB)
8081649, Dec 15 2004 SMARTLABS, INC Network of intelligent devices communicating via powerline and radio frequency
8102778, Dec 13 2007 Alcatel Lucent Network management system and method for performing scalable loss measurements within an access network
8139578, Jun 29 2004 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
8154988, Dec 06 2007 Cisco Technology, Inc Delivery of streams to repair errored media streams in periods of insufficient resources
8175097, Apr 30 2004 Microsoft Technology Licensing, LLC Embedding a session description message in a real-time control protocol (RTCP) message
8179776, Feb 24 2000 Godo Kaisha IP Bridge 1 OFDM transmission/reception apparatus
8185143, Feb 26 2004 Smith Micro Software, Inc Selectively buffering voice data at a server during a voice communication session
8214855, Dec 06 2007 TECH 5 SAS Delivery of streams to repair errored media streams in periods of unrecoverable errors
8218444, Jun 29 2004 Damaka, Inc. System and method for data transfer in a peer-to-peer hybrid communication network
8223643, Sep 06 2005 KENCAST, INC Method for packet-level FEC encoding a stream of source packets using shifted interleaving
8234395, Jul 28 2003 Sonos, Inc System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
8245096, Sep 22 2004 KENCAST, INC System, method and apparatus for FEC encoding and decoding
8260935, Jan 24 2007 Viasat, Inc Error control terminal discovery and updating
8261147, Nov 30 1998 Panasonic Corporation Data transmission method and data transmission apparatus
8285209, May 08 2009 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED Short range FM modulator/transmitter and system incorporating same
8291105, Dec 28 2000 ABB Research LTD Method for synchronization in a local area network including a store-and-forward device
8296162, Feb 01 2005 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT Systems, devices, and methods for providing healthcare information
8306976, May 16 2001 Pandora Media, LLC Methods and systems for utilizing contextual feedback to generate and modify playlists
8327213, Sep 23 2009 SILICON MOTION INC. Data receiving method, electronic apparatus and storage system having data receiving mechanism
8352563, Apr 29 2010 Damaka, Inc.; DAMAKA, INC System and method for peer-to-peer media routing using a third party instant messaging system for signaling
8375277, Dec 15 2008 Koninklijke KPN N.V. Multicast with UDP using packet identifier in MPEG payload
8380530, Feb 02 2007 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT Personalized health records with associative relationships
8380859, Nov 28 2007 DAMAKA, INC System and method for endpoint handoff in a hybrid peer-to-peer networking environment
8402350, Feb 17 2005 KENCAST, INC System, method and apparatus for reducing blockage losses on information distribution networks
8406229, Jun 29 2004 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
8406801, Feb 26 2004 Smith Micro Software, Inc Communication systems and methods
8407314, Apr 04 2011 Damaka, Inc.; DAMAKA, INC System and method for sharing unsupported document types between communication devices
8418034, Feb 08 2008 Kencast, Inc.; KENCAST, INC Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
8432917, Jun 29 2004 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
8437307, Sep 03 2007 DAMAKA, INC Device and method for maintaining a communication session during a network transition
8446900, Jun 18 2010 Damaka, Inc.; DAMAKA, INC System and method for transferring a call between endpoints in a hybrid peer-to-peer network
8462847, Feb 27 2006 SYNAMEDIA LIMITED Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network
8467387, Jun 29 2004 Damaka, Inc. System and method for peer-to-peer hybrid communications
8468010, Sep 24 2010 Damaka, Inc. System and method for language translation in a hybrid peer-to-peer environment
8478890, Jul 15 2011 Damaka, Inc. System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability
8516326, Nov 30 1998 Panasonic Corporation Data transmission method and data transmission apparatus
8526297, Mar 02 1999 Godo Kaisha IP Bridge 1 OFDM transmission/reception apparatus
8542680, Jul 25 2001 VectorMAX Corporation Server arbitrated reliable multicast system and process for accessing the same
8572205, Apr 20 1999 AT&T Properties, LLC; AT&T INTELLECTUAL PROPERTY II, L P Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
8588077, Sep 11 2006 Cisco Technology, Inc. Retransmission-based stream repair and stream join
8588949, Jul 28 2003 Sonos, Inc. Method and apparatus for adjusting volume levels in a multi-zone system
8593937, Mar 02 1999 Godo Kaisha IP Bridge 1 OFDM-CDMA equipment and method
8595762, Aug 21 1998 Intel Corporation Confirming video transmissions
8611540, Jun 23 2010 Damaka, Inc.; DAMAKA, INC System and method for secure messaging in a hybrid peer-to-peer network
8612245, Feb 24 2000 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT Personalized health history system with accommodation for consumer health terminology
8655351, Nov 23 2006 Nokia Technologies Oy Method and device for maintaining continuity of radio transmissions
8667161, Sep 07 2000 DEDICATED LICENSING LLC Personal broadcast server system for providing a customized broadcast
8689036, Jul 28 2003 Sonos, Inc Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices without a voltage controlled crystal oscillator
8689307, Mar 19 2010 DAMAKA, INC ; Damaka, Inc. System and method for providing a virtual peer-to-peer environment
8694336, Feb 01 2005 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT Systems, devices, and methods for providing healthcare information
8694587, May 17 2011 DAMAKA, INC ; Damaka, Inc. System and method for transferring a call bridge between communication devices
8707139, Oct 18 2006 KENCAST, INC Systems, methods, apparatus, and computer program products for providing forward error correction with low latency
8711854, Apr 16 2007 Cisco Technology, Inc. Monitoring and correcting upstream packet loss
8712792, Feb 24 2000 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT Personalized health communication system
8725895, Feb 15 2010 Damaka, Inc.; DAMAKA, INC NAT traversal by concurrently probing multiple candidates
8726136, Feb 08 2008 KENCAST, INC Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
8743781, Oct 11 2010 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
8751865, Mar 17 1999 AT&T Intellectual Property II, L.P. Network-based service for the repair of IP multicast sessions
8752102, Jan 03 2008 Microsoft Technology Licensing, LLC Intelligent retransmission of data stream segments
8756077, Feb 02 2007 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT Personalized health records with associative relationships
8769591, Feb 12 2007 Cisco Technology, Inc.; Cisco Technology, Inc Fast channel change on a bandwidth constrained network
8774602, Feb 10 2006 TP Lab, Inc.; TP Lab Method to record a media file
8774860, Apr 05 2005 WSOU Investments, LLC Method and device for low-power FM transmission of audio data to RDS capable FM radio receiver
8775197, Feb 24 2000 ROYAL BANK OF CANADA, AS SUCCESSOR COLLATERAL AGENT Personalized health history system with accommodation for consumer health terminology
8775546, Nov 22 2006 Sonos, Inc Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
8787153, Feb 10 2008 Cisco Technology, Inc. Forward error correction based data recovery with path diversity
8817637, Oct 31 2002 Nokia Technologies Oy Apparatus, and associated method, for requesting data retransmission in a packet radio communication system
8819259, Oct 15 2008 Xenogenic Development Limited Liability Company Fast retrieval and progressive retransmission of content
8819260, Oct 15 2008 Xenogenic Development Limited Liability Company Random server selection for retrieving fragments under changing network conditions
8819261, Oct 15 2008 Xenogenic Development Limited Liability Company Load-balancing an asymmetrical distributed erasure-coded system
8825894, Oct 15 2008 Xenogenic Development Limited Liability Company Receiving streaming content from servers located around the globe
8832292, Oct 15 2008 Xenogenic Development Limited Liability Company Source-selection based internet backbone traffic shaping
8832295, Oct 15 2008 Xenogenic Development Limited Liability Company Peer-assisted fractional-storage streaming servers
8862164, Sep 28 2007 DAMAKA, INC System and method for transitioning a communication session between networks that are not commonly controlled
8867549, Jun 29 2004 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
8874774, Oct 15 2008 Xenogenic Development Limited Liability Company Fault tolerance in a distributed streaming system
8874775, Oct 15 2008 Xenogenic Development Limited Liability Company Balancing a distributed system by replacing overloaded servers
8874785, Feb 15 2010 Damaka, Inc.; DAMAKA, INC System and method for signaling and data tunneling in a peer-to-peer environment
8892146, Feb 26 2004 Smith Micro Software, Inc. Selectively buffering voice data at a server during a voice communication session
8892646, Aug 25 2010 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
8908508, Nov 25 2008 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED Utilizing a replacement pathway for lost packet delivery during media reception in a set-top box (STB)
8938549, Oct 15 2008 Xenogenic Development Limited Liability Company Reduction of peak-to-average traffic ratio in distributed streaming systems
8938637, Jul 28 2003 Sonos, Inc Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices without a voltage controlled crystal oscillator
8948132, Sep 03 2007 Damaka, Inc.; DAMAKA, INC Device and method for maintaining a communication session during a network transition
8949449, Oct 15 2008 Xenogenic Development Limited Liability Company Methods and systems for controlling fragment load on shared links
8996944, Dec 28 2011 NIVAL, INC FORMERLY KNOWN AS ZZIMA, INC Client-server gaming
9015258, Apr 29 2010 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
9026878, Nov 13 2007 Thomson Licensing Apparatus and method for fast retransmission in a power line communication network
9027032, Jul 16 2013 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
9031005, Oct 11 2010 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
9043488, Mar 29 2010 Damaka, Inc.; DAMAKA, INC System and method for session sweeping between devices
9071274, Feb 08 2008 Kencast, Inc. Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
9077600, Mar 02 1999 Godo Kaisha IP Bridge 1 OFDM-CDMA equipment and method
9083585, Sep 11 2006 Cisco Technology, Inc. Retransmission-based stream repair and stream join
9094248, Mar 06 2002 Intel Corporation Wireless system with hybrid automatic retransmission request in interference-limited communications
9106509, Jun 29 2004 Damaka, Inc. System and method for data transfer in a peer-to-peer hybrid communication network
9128927, Sep 24 2010 Damaka, Inc. System and method for language translation in a hybrid peer-to-peer environment
9141645, Jul 28 2003 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
9143270, Oct 09 2009 INTERDIGITAL CE PATENT HOLDINGS Digital receiver and corresponding digital transmission system server
9143489, Jun 23 2010 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
9158327, Jul 28 2003 Sonos, Inc. Method and apparatus for skipping tracks in a multi-zone system
9164531, Jul 28 2003 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
9164532, Jul 28 2003 Sonos, Inc. Method and apparatus for displaying zones in a multi-zone system
9164533, Jul 28 2003 Sonos, Inc. Method and apparatus for obtaining audio content and providing the audio content to a plurality of audio devices in a multi-zone system
9170600, Jul 28 2003 Sonos, Inc. Method and apparatus for providing synchrony group status information
9172702, Jun 29 2004 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
9172703, Jun 29 2004 Damaka, Inc. System and method for peer-to-peer hybrid communications
9176519, Jul 28 2003 Sonos, Inc. Method and apparatus for causing a device to join a synchrony group
9176520, Jul 28 2003 Sonos, Inc Obtaining and transmitting audio
9182777, Jul 28 2003 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
9185228, Sep 25 2003 Smith Micro Software, Inc Buffering voice data in network-based instant connect communication
9189010, Jul 28 2003 Sonos, Inc. Method and apparatus to receive, play, and provide audio content in a multi-zone system
9189011, Jul 28 2003 Sonos, Inc. Method and apparatus for providing audio and playback timing information to a plurality of networked audio devices
9191416, Apr 16 2010 Damaka, Inc.; DAMAKA, INC System and method for providing enterprise voice call continuity
9195258, Jul 28 2003 Sonos, Inc System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
9207905, Jul 28 2003 Sonos, Inc Method and apparatus for providing synchrony group status information
9210268, May 17 2011 Damaka, Inc. System and method for transferring a call bridge between communication devices
9213356, Jul 28 2003 Sonos, Inc. Method and apparatus for synchrony group control via one or more independent controllers
9213357, Jul 28 2003 Sonos, Inc Obtaining content from remote source for playback
9218017, Jul 28 2003 Sonos, Inc Systems and methods for controlling media players in a synchrony group
9232615, Jul 03 2012 SMARTLABS, INC Simulcast mesh dimmable illumination source
9264458, Nov 28 2007 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
9268775, Sep 07 2000 DEDICATED LICENSING LLC Method and system for providing an audio element cache in a customized personal radio broadcast
9270475, Mar 17 1999 AT&T Intellectual Property II, L.P. Network-based service for the repair of IP multicast sessions
9270511, Mar 02 1999 Godo Kaisha IP Bridge 1 OFDM-CDMA equipment and method
9288596, Sep 30 2013 Sonos, Inc Coordinator device for paired or consolidated players
9300647, Jan 15 2014 Sonos, Inc. Software application and zones
9313591, Jan 27 2014 Sonos, Inc Audio synchronization among playback devices using offset information
9348354, Jul 28 2003 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices without a voltage controlled crystal oscillator
9354656, Jul 28 2003 Sonos, Inc. Method and apparatus for dynamic channelization device switching in a synchrony group
9356972, Apr 16 2010 Damaka, Inc. System and method for providing enterprise voice call continuity
9356997, Apr 04 2011 Damaka, Inc. System and method for sharing unsupported document types between communication devices
9357016, Oct 18 2013 Damaka, Inc.; DAMAKA, INC System and method for virtual parallel resource management
9374607, Jun 26 2012 Sonos, Inc. Media playback system with guest access
9397783, Oct 18 2006 KENCAST, INC Systems, methods, apparatus, and computer program products for providing forward error correction with low latency
9401763, Jul 03 2012 SmartLabs, Inc. Simulcast mesh dimmable illumination source
9432412, Jun 29 2004 Damaka, Inc. System and method for routing and communicating in a heterogeneous network environment
9479377, Mar 02 1999 Godo Kaisha IP Bridge 1 OFDM-CDMA equipment and method
9491233, Jul 16 2013 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
9497127, Oct 11 2010 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
9497181, Jun 29 2004 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
9513868, Jan 15 2014 Sonos, Inc. Software application and zones
9537919, Apr 20 1999 AT&T Intellectual Property II, L.P. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
9538300, Jan 27 2014 Sonos, Inc. Audio synchronization among playback devices using offset information
9549020, Sep 30 2013 Sonos, Inc. Group coordinator device selection
9563394, Jul 28 2003 Sonos, Inc. Obtaining content from remote source for playback
9569170, Jul 28 2003 Sonos, Inc. Obtaining content from multiple remote sources for playback
9569171, Jul 28 2003 Sonos, Inc. Obtaining content from local and remote sources for playback
9569172, Jul 28 2003 Sonos, Inc. Resuming synchronous playback of content
9578092, Jul 16 2013 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
9628422, Jul 12 2013 SmartLabs, Inc. Acknowledgement as a propagation of messages in a simulcast mesh network
9648051, Sep 28 2007 Damaka, Inc. System and method for transitioning a communication session between networks that are not commonly controlled
9654545, Sep 30 2013 Sonos, Inc Group coordinator device selection
9654568, Nov 28 2007 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
9658820, Jul 28 2003 Sonos, Inc. Resuming synchronous playback of content
9665343, Jul 28 2003 Sonos, Inc. Obtaining content based on control by multiple controllers
9679054, Mar 05 2014 Sonos, Inc Webpage media playback
9686351, Sep 30 2013 Sonos, Inc. Group coordinator selection based on communication parameters
9690540, Sep 24 2014 Sonos, Inc Social media queue
9712507, Jun 23 2010 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
9720576, Sep 30 2013 Sonos, Inc Controlling and displaying zones in a multi-zone system
9722763, Feb 07 2007 VALENS SEMICONDUCTOR LTD Highly utilized communication channel with order and retransmissions
9723038, Sep 24 2014 Sonos, Inc Social media connection recommendations based on playback information
9727302, Jul 28 2003 Sonos, Inc. Obtaining content from remote source for playback
9727303, Jul 28 2003 Sonos, Inc. Resuming synchronous playback of content
9727304, Jul 28 2003 Sonos, Inc. Obtaining content from direct source and other source
9729115, Apr 27 2012 Sonos, Inc Intelligently increasing the sound level of player
9733891, Jul 28 2003 Sonos, Inc. Obtaining content from local and remote sources for playback
9733892, Jul 28 2003 Sonos, Inc. Obtaining content based on control by multiple controllers
9733893, Jul 28 2003 Sonos, Inc. Obtaining and transmitting audio
9734242, Jul 28 2003 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
9740453, Jul 28 2003 Sonos, Inc. Obtaining content from multiple remote sources for playback
9742846, Apr 04 2011 Damaka, Inc. System and method for sharing unsupported document types between communication devices
9749760, Sep 12 2006 Sonos, Inc. Updating zone configuration in a multi-zone media system
9755744, Jul 03 2012 SmartLabs, Inc. Simulcast mesh dimmable illumination source
9756424, Sep 12 2006 Sonos, Inc. Multi-channel pairing in a media system
9766853, Sep 12 2006 Sonos, Inc. Pair volume control
9778897, Jul 28 2003 Sonos, Inc. Ceasing playback among a plurality of playback devices
9778898, Jul 28 2003 Sonos, Inc. Resynchronization of playback devices
9778900, Jul 28 2003 Sonos, Inc. Causing a device to join a synchrony group
9780982, Mar 02 1999 Godo Kaisha IP Bridge 1 OFDM-CDMA equipment and method
9781173, Apr 16 2010 Damaka, Inc. System and method for providing enterprise voice call continuity
9781258, Apr 29 2010 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
9781513, Feb 06 2014 Sonos, Inc. Audio output balancing
9787550, Jun 05 2004 Sonos, Inc. Establishing a secure wireless network with a minimum human intervention
9794707, Feb 06 2014 Sonos, Inc. Audio output balancing
9813827, Sep 12 2006 Sonos, Inc. Zone configuration based on playback selections
9813829, Jan 27 2014 Sonos, Inc. Audio synchronization among playback devices using offset information
9825876, Oct 18 2013 Damaka, Inc. System and method for virtual parallel resource management
9860286, Sep 24 2014 Sonos, Inc Associating a captured image with a media item
9860657, Sep 12 2006 Sonos, Inc. Zone configurations maintained by playback device
9866447, Jun 05 2004 Sonos, Inc. Indicator on a network device
9866629, Aug 25 2010 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
9874997, Aug 08 2014 Sonos, Inc Social playback queues
9886234, Jan 28 2016 Sonos, Inc Systems and methods of distributing audio to one or more playback devices
9928026, Sep 12 2006 Sonos, Inc. Making and indicating a stereo pair
9954759, Jul 29 2015 International Business Machines Corporation Detecting proxy-based communications
9959087, Sep 24 2014 Sonos, Inc Media item context from social media
9960969, Jun 05 2004 Sonos, Inc. Playback device connection
9961656, Apr 29 2013 Google Technology Holdings LLC Systems and methods for syncronizing multiple electronic devices
9967847, Apr 29 2013 Google Technology Holdings LLC Systems and methods for synchronizing multiple electronic devices
9967848, Apr 29 2013 Google Technology Holdings LLC Systems and methods for synchronizing multiple electronic devices
9977561, Apr 01 2004 Sonos, Inc Systems, methods, apparatus, and articles of manufacture to provide guest access
9985865, Jul 29 2015 International Business Machines Corporation Detecting proxy-based communications
Patent Priority Assignee Title
4439859, Aug 26 1980 International Business Machines Corp. Method and system for retransmitting incorrectly received numbered frames in a data transmission system
4807224, Aug 21 1987 International Business Machines Corporation Multicast data distribution system and method
5410536, Dec 04 1990 International Business Machines Corporation Method of error recovery in a data communication system
5459725, Mar 22 1994 INTERGRAPH HARDWARE TECHNOLOGIES COMPANY INC Reliable multicasting over spanning trees in packet communications networks
5515508, Dec 17 1993 Apple Inc Client server system and method of operation including a dynamically configurable protocol stack
/////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Jan 27 1997LO, W STEVENLucent Technologies, INCASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0084570967 pdf
Jan 27 1997PADMANABNAN, KRISHNANLucent Technologies, INCASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0084570967 pdf
Mar 19 1997Lucent Technologies Inc.(assignment on the face of the patent)
Feb 22 2001LUCENT TECHNOLOGIES INC DE CORPORATION THE CHASE MANHATTAN BANK, AS COLLATERAL AGENTCONDITIONAL ASSIGNMENT OF AND SECURITY INTEREST IN PATENT RIGHTS0117220048 pdf
Nov 30 2006JPMORGAN CHASE BANK, N A FORMERLY KNOWN AS THE CHASE MANHATTAN BANK , AS ADMINISTRATIVE AGENTLucent Technologies IncTERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS0185900047 pdf
Date Maintenance Fee Events
Dec 26 2000ASPN: Payor Number Assigned.
Jul 11 2003M1551: Payment of Maintenance Fee, 4th Year, Large Entity.
Aug 18 2003ASPN: Payor Number Assigned.
Aug 18 2003RMPN: Payer Number De-assigned.
Aug 24 2007M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
Aug 25 2011M1553: Payment of Maintenance Fee, 12th Year, Large Entity.


Date Maintenance Schedule
Mar 01 20034 years fee payment window open
Aug 29 20036 months grace period start (w surcharge)
Feb 29 2004patent expiry (for year 4)
Mar 01 20062 years to revive unintentionally abandoned end. (for year 4)
Mar 01 20078 years fee payment window open
Aug 29 20076 months grace period start (w surcharge)
Feb 29 2008patent expiry (for year 8)
Mar 01 20102 years to revive unintentionally abandoned end. (for year 8)
Mar 01 201112 years fee payment window open
Aug 29 20116 months grace period start (w surcharge)
Feb 29 2012patent expiry (for year 12)
Mar 01 20142 years to revive unintentionally abandoned end. (for year 12)