The desire to use the internet to transport time sensitive information, such as video streams, is ever increasing. However, the internet operates using best effort protocols, and therefore, the time between the sender beginning transmission of a packet and the receipt of that packet by the destination is variable. In addition to uncertainty in the transmission time, there is also the possibility of lost or damaged packets, which require retransmission and/or error correction.
To address these issues, some applications introduce a large amount of buffering at the destination. In other words, if the data is a video stream, the destination may buffer many seconds of the video before beginning the presentation of this video stream. By introducing a large buffer, it may be possible to accommodate more jitter and more errors in the transmission.
However, there are issues associated with increasing the buffering at the destination. First, in the case of video playback, such as YouTube or other similar applications, users may grow impatient waiting for the video stream to buffer. Second, in applications that are bidirectional or interactive, such as FaceTime or Skype, for example, larger buffering increases the delay between the two parties, often frustrating the users participating in the call.
Therefore, it would be beneficial if there were a system and method to transmit and present time sensitive information without resorting to overly large buffers. Further, it would be beneficial if this system and method also allowed for typical retransmission delays.