The fast growth of the Internet has stimulated the development of IP networks. At present there is a clear trend to use IP networks not only for traditional Internet traffic but to provide all telecommunication services using this infrastructure. One of these applications is transmission of telephony traffic over IP networks by converting the different types of media traffic (such as video, audio, voice, etc.) to IP packets.
Unfortunately, video and voice communications, when carried over the Internet which is a best effort type of network, may fail to deliver PSTN like quality. The standard Internet Protocol (IP) developed to govern communications over public and private Internet backbones does not guarantee any quality of service (QoS). IP communications continue to suffer from delay related problems, delay jitter and packet loss, all associated with bandwidth availability. Low QoS can be tolerated with certain types of data such as Email and data downloads from remote Web sites since these communications may be repeated several times until the information has correctly been transferred. However, with real-time video, voice or data communications, such as telephone or video conference conversations or even dial-up modems sessions, reliability and QoS become significant issues. In other words, delays, delay jitter and loss can significantly impact the user's ability to receive and comprehend voice or video communications.
One of the major concerns in transmitting such real-time communications is, that data packets can be lost while conveying them along the transmission path, consequently, leaving gaps in the communication session. Typically, IP and UDP environments provide unreliable networks. Data packets can be lost or delayed for a variety of reasons, such as bandwidth congestion, unavailable routes, defective Internet engines, etc. If the data packet is lost, the only way to retrieve it is if the destination gateway receives a copy of the lost data packet. Particularly in cases where the receiving of such a copy requires transmitting a request to receive that copy which is sent from the destination gateway to the originating gateway, such a process adds substantial delays to receiving the message, thus degrading the quality of the voice communication to such an extent that the medium becomes unsuitable for real-time communications.
One approach that has been adopted to overcome at least to a certain extent this problem is, by having constant a priori re-transmission of packets in the attempt to ensure that at least one the packet's copies will reach its destination, thereby allowing the receiving side to obtain all information that has been transmitted.
In packetized networks, the communication signals are converted into IP packets using Real-time Transport Protocol (“RTP”)/User Datagram Protocol (“UDP”)/Internet Protocol (“IP”), RTP/UDP/IP connection. RTP is an Internet protocol for transmitting real-time data such as voice, audio and video. RTP itself does not guarantee real-time delivery of data, e.g. retransmission of undelivered packets, but it does provide mechanisms for the sending applications to support streaming data including a mechanism for iterative re-transmission of packets named RTP redundancy by which, each communication packet is retransmitted several times. However, in order to reduce the number of communication packets and the overhead associated therewith, each such communication packet comprises the current data frame and N previous data frames. The main drawback of this method is the gaps between the re-transmitted packets, which are a product of the basic packet duration. Therefore, when the first m replicas of the data packet are lost, the accumulative delay might reach m*packet duration (e.g. ˜3*20 msec). Typically, RTP runs on top of the UDP protocol. UDP is a connectionless protocol that, like TCP, runs on top of IP networks. Unlike TCP/IP, the UDP/IP provides no error recovery services, offering instead a direct way to send and receive datagrams over an IP network. In addition to RTP carrying VoIP packets, UDP is used to transmit other telephony signals such as demodulated facsimile signals according to ITU Recommendation T.38, and or demodulated dial modems transmissions (e.g. transmissions that are compatible with ITU-T v.15 Recommendation.
VoIP media-gateways provide an interface between existing TDM based networks packet switched IP data networks. For example, in a VoIP application the voice samples are compressed using a compression algorithm such as G.729. This algorithm is operative to convert a block of 80 voice samples (10 msec) into a compressed signal of 10 bytes. Typically, two consecutive frames of compressed voice (20 bytes) are transmitted in one IP packet every msec interval. As will be appreciated, small size communication packets are subjected to large overhead when transferred using the Real time Transport Protocol (RTP), as the RTP/UDP/IP overhead is 40 bytes (12+8+20) for a simple speech packet. For example, for a 20 byte packet transferred via RTP/UDP/IP the overhead presents 67% of the packet (40 byte overhead/(40+20) byte in a packet). In addition, for each voice channel, a single UDP/IP connection (a pair of UDP ports) is established between the media-gateways. This requires significant resources at the media-gateway and generates many small size packets on the IP network that may cause congestion at the network routers.
In the attempt to address the problem of the overhead associated with the communication packets being transmitted, one of the suggested approaches of conveying IP traffic in packetized networks is by tunneling. Tunneling, also known as encapsulation or channel multiplexing, refers to the practice of encapsulating a message from one protocol in a second, and using the facilities of the second protocol to traverse some number of network hops. In other words, the communication packets are “wrapped” with another protocol while they are being conveyed towards their destinations, and once they reach their respective destinations, they may be “unwrapped”. Typically, many users use the same tunnel, which in turn might affect the service of many users.
In order to reduce some of the header overload when a session such as a VoIP session takes place, the channel carrying all the packets associated with the packets transmitted from one side to the other will be forwarded together with other channels within a single tunnel, ensuring that the packets are sent consecutively as well as their respective copies, to their destination. Tunneling should be associated with certain type of mini-headers that replace the original headers used to identify each of the sessions and achieve better efficiency.
The introduction of the RTP redundancy method into the “tunnel” concept might introduce more delays and might lead to reduced protection capabilities. When the session involves transmitting data for applications such as Email or WEB browsing, the receiver may tolerate delays in receiving the data packets without sacrificing the perceived service quality. However, for interactive real-time applications such as conversational voice and video over IP services, delays in delivering communication packets can significantly impair the parties' ability to communicate with each other in a satisfactory fashion. In addition, since the originating gateway must wait until a minimal required number of frames are aggregated into a communication packet is achieved, it is likely that the original frame is transmitted in one packet while its copy is transmitted in a proceeding (or even a later) packet. In such a case, the latency may be further increased.
A number of protocols have been developed over the years to assist in improving the efficiency at which the available bandwidth is used for transmitting packets and for providing protection for data contained in these packets. Among these protocols are the following ones:
Examples for Mux/Tunneled IP Protocols:                TCRTP        GRE IP tunnel        
Examples for Header Compression Protocols:                IETF RFC 1144 (CTCP) header compression standard was developed by V. Jacobson in 1990. It is commonly known as VJ compression. It describes a basic method for compressing the headers of IPv4/TCP packets to improve performance over low speed serial links. VJ compression is the most commonly used header compression scheme in IP protocol stacks today. However, the evolution towards all IP networks has created new demands on header compression. Consequently, newer standards have developed with superior error recovery mechanisms, which work well on links that exhibit both non-trivial round-trip times and significant loss.        IETF RFC 2507 (IPHC). This technique compresses on a hop-by-hop basis, multiple IP headers including IPv4 and IPv6, TCP, UDP, ESP headers. The compression algorithms are specifically designed to work well over links with non-trivial packet-loss rates.        IETF RFC 2508 (CRTP) standard, developed in 1999, was justified primarily by the specific problem of sending audio and video over low speed serial links. CRTP compresses the headers of IP/UDP/RTP packets used for audio and video, reducing overhead on a hop-by-hop basis. CRTP performs best on local links with low round-trip times.        IETF RFC 3095 (ROHC) was developed in 2001. This standard can compress IP/UDP/RTP headers to just over one byte, even in the presence of severe channel impairments. This compression scheme can also compress IP/UDP and IP/ESP packet flows. ROHC is intended for use in wireless radio network equipment and mobile terminals to decrease header overhead, reduce packet loss, improve interactive response, and increase security over low-speed, noisy wireless links. ROHC has been adapted to work with link layer characteristics like those of GSM and CDMA and is known as Link Layer Assisted-ROHC (ROHC-LLA) Mux (tunneling):Examples of Redundancy Schemes:        RTP redundancy (voice audio & video)—RFC 2198 (IETF)        ITU-T T.38 redundancy        ITU-T V.150 (SPRT) redundancy.        
US 2006209796 describes a method for reducing voice and data over IP (VoIP) packet overhead in an Internet telephony system, and for regenerating missing or damaged data in a data packet. A media framer aggregates packets from multiple concurrent calls from several channels into a larger data packet. A transmission control module defines the format for each data packet, and updates and synchronizes header information in the data packets. A single virtual connection transmits data packets and other signals between originating and destination gateways located in the service areas for a caller and called party. System redundancy improves the quality of service by regenerating missing or damaged data in the packets.
The underlying assumption of the prior art solutions for the provisioning of protecting packets in a multiplexed traffic, is that the gap between two consecutive multiplexed frames is substantially less than the gap existing between the arrival of a packet and the arrival of its corresponding protecting packet. However, when the multiplexed frames are relatively long, it could well happen that both the original packet as well as its duplication, i.e. its protecting packet, may be comprised within a single frame. In such a case, if the original packet is lost or delayed, so will its protecting packet. Therefore, for such a case no protection is adequately provided to the original packet.
The disclosure of the references mentioned throughout the present specification is hereby incorporated by reference.
Thus, a method and a device are needed to solve the above-described problems and to provide an efficient and cost-effective solution for real-time bidirectional communication of multimedia while mitigating call latency.