CA2397687C - System and method for achieving robust ip/udp/rtp header compression in the presence of unreliable networks - Google Patents
System and method for achieving robust ip/udp/rtp header compression in the presence of unreliable networks Download PDFInfo
- Publication number
- CA2397687C CA2397687C CA002397687A CA2397687A CA2397687C CA 2397687 C CA2397687 C CA 2397687C CA 002397687 A CA002397687 A CA 002397687A CA 2397687 A CA2397687 A CA 2397687A CA 2397687 C CA2397687 C CA 2397687C
- Authority
- CA
- Canada
- Prior art keywords
- compressor
- order difference
- packet
- network
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
A robust IP/UDP/RTP header compression mechanism is provided to correctly reconstruct IP/UDP/RTP headers in the presence of packet losses and errors of unreliable networks. The header compression mechanism may include a compressor/decompressor implemented for operation similarly to RFC 2508 but designed specifically to address robustness when employed in lossy and error-prone networks. The robust header compression scheme requires that, when a second-order difference of a field is non-zero, not only a particular RTP packet whose second-order difference is non-zero is sent with the new first-order difference, but also those following packets are also sent with the new first-order difference as long as: (a) a pediod pre-determined by factors such as channel characteristics (e.g., link round-trip time RTT/inter-packet separation); or (b) a positive confirmation is received by the compressor that the new first-order difference has been correctly received. In addition, during a period of communicating with the new first-order difference, if the corresponding RTP field changes again with non-zero second-order difference, the "new" first-order difference is combined with the original first-order difference such that the two first-order differences may be appended together as a simple means of communicating the two-order differences reliably.
Description
SYSTEM AND METHOD FOR ACHIEVING
ROBUST IP/UDP/RTP HEADER COMPRESSION IN THE PRESENCE
OF UNRELIABLE NETWORKS
TECHNICAL FIELD
S The present invention relates to data compression and decompression in a data network and more particularly, relates to a system and method for achieving robust IP/UDP/RTP header compression in the presence of unreliable networks.
RELATED ART
In recent years, increased usage of the Internet has resulted in scarcity of network capacity, and compromised performance of traditional applications. At the same time, new applications such as interactive audio andlor video, including video-conferencing or Voice over IP (VoIP) have emerged which demand timely data delivery and much improved quality of service. Real-Time Transfer Protocol (RTP) has been used to obtain inter-operability among different implementations of network real-time applications such as video-conferencing and Voice over IP. For Internet Protocol (IP) based real-time multimedia, RTP may be used on top of User Datagram Protocol (ITDP/IP) to make use of multiplexing and checksum services as described in the "RTP: A Trafzsport Protocol~For Real-Time Applicatiofzs" by Henning Schulzrinne, Stephen L. Casner, Ron Frederick, and Van Jacobson, Request For Comments (RFC) 1889, January 1996. However, there is concern that RTP headers may be too large for acceptable interactive response and line efficiency, when operating over Iow speed lines such as dial-up modems. For example, in the Internet Protocol version 4 (IPv4), header fields including IP/LTDP/RTP may occupy 40 bytes per packet. Likewise, such header f elds may occupy 60 bytes per packet in the Internet Protocol version 6 (IPv6). This header-overhead is quite considerable in real-time applications such as conversational voice where the actual voice payload may be as little as 36 bytes (corresponding to 20 ms of GSM coded voice). As a result, such header-overhead needs to be significantly reduced for real-time applications.
Currently, there are few header compression techniques available to compress headers of IP/LTDP/RTP datagrams in order to reduce the header-overhead and allow efficient use of bandwidth on low and medium speed links. Most recent example of such header compression I O techniques is described in the "Compressing IPlUDPlRTP Headers For Low-Speed Serial Links"
by Stephen L. Casner, and Van Jacobson, RFC 2508, February 1999. A header compression mechanism is provided with a compressor/de-compressor for compressing headers of IP/UDP/RTP datagrams to reduce header-overhead to 2 - 4 bytes. The header compression scheme is based on the observation that most fields of the IP headers remain constant in a packet I S stream over the life of the connection (i.e., length of a session).
Therefore, header compression may be achieved by maintaining a compression state at the de-compressor and by simply transporting a minimal amount of header-overhead (such as a session context identifier and a small sequence number used for error and packet loss detection) from the compressor to the de-compressor. According to RFC 2508, the compression state at the de-compressor may 20 correspond to uncompressed header fields including those that change in every packet and those that do not change in every packet. For the non-changing fields (such as source and destination IP addresses and port numbers), the de-compressor may simply add the corresponding fields stored in the compression state. For the changing fields, however, the de-compressor may rely on the information sent in the compressed packet header. Typically, the information contained in the compressed packet header includes the difference in change with respect to the value of the field in the previous packet (i.e., only non-zero second-order differences of changing fields), and does not include the changed field itself.
For general operation, the compressor starts off by sending full IP/UDP/RTP
headers to the de-compressor until the de-compressor establishes a context state for the non-changing fields as well as the first-order differences) for the changing fields. Once the context state is established, the compressor need not send the first-order differences (especially those corresponding to RTP header fields such as RTP timestamp and RTP sequence number) unless the second-order difference (delta) is non-zero. When the second-order difference (delta) of the RTP header from packet to packet is zero, the de-compressor can reconstruct a packet without any loss of information by simply adding the first-order differences to the saved uncompressed header representing the previous packet as each compressed packet is received.
All that needs to be communicated is a session context identifier (ID) and a small sequence number (not related to the RTP sequence number) in order to maintain synchronization and detect packet loss between the compressor and de-compressor. For example, if the RTP timestamp changes from 20 to 40 to 60 for packets # 1, #2 and #3, the first-order difference between 20 and 40 and between 40 and 60 is 20. When the initial value of 20 is known, the de-compressor may simply add the correct increment for packet #3 if an appropriate field in the compressed header indicates that the second-order difference is zero.
On the other hand, if the second-order difference (delta) of the RTP header is not zero for some fields, the new first-order difference for just those fields must be communicated using a compact encoding. The new first-order difference values are added to the corresponding f elds in the uncompressed header in the session context of the de-compressor, and are also stored explicitly in the session context to be added to the corresponding fields again on each subsequent packet in which the second-order difference (delta) is zero. Each time the first-order difference changes on subsequent packets, that difference is transmitted and used to update the session context.
However, the header compression scheme as described in RFC 2508 and other RFC
documents which contain Internet Standard protocols available to the Internet community are not suitable for operation in environments (such as cellular wireless networks) where bandwidth is at a premium and there are high Link errors and high link latencies. The Loss of a packet can force the de-compressor to append incorrect header information, such as RTP
timestamp and RTP
sequence number, to the next successfully received packet. Similarly, if a compressed packet header is in error, similar incorrect reconstruction of an RTP packet can result. For instance, if a packet containing the new first-order difference for a field (or multiple fields) is considered lost (perhaps due to errors), the headers for the subsequent packets cannot be correctly reconstructed until the de-compressor has notified the compressor, and the compressor has successfully re-transmitted the required first-order difference. During this recovery phase, the packets already transmitted and in transit cannot be operated upon for header reconstructions.
For real-time applications, such as Voice over IP (VoIP) and Video Conferencing, those packets may be discarded due to the expiration of play-out deadlines. For example, consider a cellular link that has a 60 ms one way delay from the radio access point (such as a base station) to a mobile station (or 120 ms round-trip delay from base station to mobile station and back to base station), and an inter-packet separation between voice packets is 20 ms during a talkspurt. At the start a talkspurt, the RTP timestamp of the very first packet usually increments such that its second-order difference is non-zero due to the silence interval. Therefore, a new first-order difference has to be communicated to the de-compressor in this very first packet. If the packet is somehow lost due to errors, the following three packets (60 ms / 20 ms) cannot be reconstructed until the de-compressor informs the compressor about the failure, during which time another three packets would have been transmitted by the compressor (assuming that a talkspurt lasts for at least six packets). All these six packets have to wait until the correct first-order difference is received by the de-compressor, and as a result, may be discarded due to play-out deadline expiration.
Accordingly, there is a need for a robust IP/UDP/RTP header compression scheme in the presence of unreliable networks. In addition, needed is a scheme that can correctly reconstruct headers in the presence of packet losses and errors.
DISCLOSURE OF INVENTION
Accordingly, various embodiments of the present invention are directed to a robust IP/UDPlRTP header compression mechanism and technique that can correctly reconstruct IP/U1~P/RTP headers in the presence of packet losses and errors. The header compression mechanism includes a compressor/de-compressor implemented for operation similarly to RFC
2508 but designed specifically to address robustness when employed in lossy and error-prone networks to correctly reconstruct headers in the presence of packet losses and errors.
In accordance with one aspect of the present invention, the robust header S compression scheme requires that, when a second-order difference of a field is non-zero, not only a particular RTP packet whose second-order difference is non-zero is sent with the new first-order difference, but also those following packets are also sent with the new first-order difference as long as: (a) a period pre-determined by factors such as channel characteristics (e.g., link round-trip time RTP / inter-packet separation); or (b) a positive confirmation is received by the compressor that the new first-order difference has been correctly received. This will ensure that even if the packet that caused the second-order difference to be non-zero is lost, the following packets are "self contained" so that the de-compressor can correctly reconstruct their headers.
In accordance with another aspect of the present invention, the robust header compression scheme requires that, if the corresponding RTP field changes again with non-zero second-order difference during the period of communicating the first-order difference, the "new" first-order difference is combined with the original first-order difference such that the two first-order differences may be appended together as a simple means of communicating the two first-order differences reliably.
However, the present invention does not preclude other means of combining the first-order differences for efficiency purposes.
In accordance with another aspect of the present invention, there is provided a data network, comprising:
a first node comprising a header compressor/de-compressor for compressing/de-compressing headers of data packets for transmission via a bandwidth-limited link; and a second node comprising a header compressor/de-compressor for compressing/de-compressing headers of data packets for transmission via said bandwidth-limited link, wherein header compression and reconstruction are obtained by first establishing a context state for non-changing fields as well as first-order differences for changing fields between a compressor of one of said first node and said second node and a de-compressor of another one of said first node and said second node, and then when a second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received by the compressor that the new first-order difference has been received or until expiration of a predetermined period.
In accordance with another aspect of the present invention, there is provided a packet network, comprising:
a source terminal providing a plurality of packets each packet including a header field;
a destination terminal;
a bandwidth-limited link providing connection between the source terminal and the destination terminal; and at least one network interface controller of the source terminal or the destination terminal comprises a header compression mechanism installed therein for header compression and so reconstruction, said header compression mechanism establishing a context state for non-changing fields as well as first-order differences 6a for changing fields, and then when a second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
In accordance with another aspect of the present invention, there is provided a method for achieving robust header compression between a compressor and a de-compressor in the presence of an unreliable network, comprising:
sending headers of data packets, from said compressor to said de-compressor via a bandwidth-limited link until said de-compressor establishes a context state for non-changing fields of said data packets as well as first-order differences for changing fields;
when the context state has been established between said compressor and said de-compressor, determining whether a second-order difference of any field is non-zero; and when the second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
In accordance with another aspect of the present invention, there is provided a host readable medium comprising instructions that, when executed by a host system including a compressor/de-compressor, cause the host system to obtain robust header compression between a compressor and a de-compressor of a remote system by:
sending headers of data packets, from said compressor to said de-compressor 6b via a bandwidth-limited link until said de-compressor establishes a context state for non-changing fields of said data packets as well as first-order differences for changing fields;
when the context state has been established between said compressor and said de-compressor, determining whether a second-order difference of any field is non-zero; and when the second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
The present invention is more specifically described in the following paragraphs by reference to the drawings attached only by way of example.
6c BRIEF DESCRIPTION OF THE DRAWINGS
A more complete appreciation of the present invention, and many of the attendant advantages thereof, will become readily apparent as the same becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings in which like reference symbols indicate the same or similar components, wherein:
FIG. 1 illustrates an example data network of a source terminal and a destination terminal including a header compressor mechanism provided for header compression and for data communications via a bandwidth-limited link according to an embodiment of the present invention;
FIGS. 2A-2B illustrate an example data packet for use in an example data network according to an embodiment of the present invention;
FIG. 3 illustrates an example RTP header segment of the data packet in an uncompressed format according to an embodiment of the present invention;
FIGs. 4A-4B illustrate operations of a compressor of source terminal and a de-compressor of destination terminal for a changing field according to an embodiment of the present invention;
FIGS. SA-SD illustrate different packet header formats of a data packet according to an embodiment of the present invention; and FIG. 6 illustrates one preferred usage implementation of an IP-based network of a source terminal and a destination terminal including a header compression mechanism provided for header compression and for data communications via a cellular link according to an embodiment of the present invention.
BEST MODE FOR CARRYING OUT THE INVENTION
The present invention is applicable for use with all types of data networks and real-time communication services. For example, data networks may be packet networks, including Ethernet Iocal area networks (LANs), Asynchronous Transfer Mode (ATM), Frame Relay, and Internet used for real-time applications such as Voice over IP and Video conferencing (Video over IP). Alternatively, such data networks may also be private or public networks, including a plain old telephone service (POTS), a public switched telephone network (PSTN), an integrated services digital network (ISDN), a mobile network, a satellite network, and networks such as terrestrial digital TV or radio, cellular, short-range radio (Bluetooth, RF
protocol, wireless LAN) networks. However, for the sake of simplicity, discussions will concentrate mainly on a simple data network of different configurations for real-time applications such as Voice over IP (VoIP) and Video conferencing (Video over IP), although the scope and implementation of the present invention is not limited thereto.
Attention now is directed to the drawings and particularly to FIG. l, a simple data network of a source terminal 20 and a destination terminal 30 according to an embodiment of the present invention. As shown in FIG. l, a bandwidth-limited link 10 may be utilized to connect a source terminal 20 to a destination terminal 30. The bandwidth-limited link 10 may represent Iow speed lines such as dial-up modems, or radio-frequency (RF) wireless links (cellular links).
Alternatively, the bandwidth-limited Iink 10 may include an 1P-based network of an Internet _g_ Service Provider (ISP), an Internet and different source and destination networks, including, for example, a public switched telephone network (PSTl~, an integrated services digital network (ISDN) and other access network infrastructures (AhlI) for enabling communications between the source terminal 20 and the destination terminal 30. If the bandwidth-limited link 10 corresponds to cellular links, the source terminal 20 and the destination terminal 30 may correspond to a mobile terminal and a base station respectively and vice versa.
The source terminal 20 includes, for example, at least host 22 and a network interface controller (hTIC) 24. Likewise, the destination terminal 30 includes, for example, at least a host 32 and a network interface controller (NIC) 34. Multiple hosts may be included in the source terminal 20 and the destination terminal 30. Each host may correspond to an IP
phone or a stand-alone PC for sending data packets from the source terminal 20 to the destination terminal 30 via the bandwidth-limited link 10.
In the source terminal 20, the host 22 generates data which is forwarded to the network interface controller (hTIC) 24. The NIC 24 of the source terminal 20 transforms incoming data from host 22 into data packets using, for example, Real-Time Transfer Protocol (RTP) used on top of User Datagram Protocol (LTDP/IP), and inj ects the data packets via the bandwidth-limited link 10. If the bandwidth-limited link 10 is an IP-based network, the rate of that data packets are injected via the IP-based network 10 and the outward flow of data packets are controlled and managed by the IVIC 24 to avoid congestion and to limit bandwidth usage of data packets in the IP-based network 10. The IP-based network 10 accepts incoming data packets and forwards the same to destination terminal 30 according to the information contained in the header. The 1VIC
_g_ 34 of the destination terminal 30 receives the data packets from the IP-based network 10, transforms the same into data and forwards the data to the host 32.
FIGs. ZA-2B illustrate an example data packet for use in a simple data network according to an embodiment of the present invention. As shown in FIG. 2A, an example data packet 100 consists of a segment of data payload 130 and a small header 120 prepended to the data payload 130. The packet 100 may represent, but may not be limited to, real-time traffic of Voice over IP
(VoIP) or Video over IP. The header segment 120 contains, for example, IP
addresses fields (32-bit global Internet address, generally consisting of a network identif er and a host identif er), a version field used to specify which version of the IP is represented in the IP
packet (for example, IP Version 4 and IP Version 6), a type of service field used to specify how the IP packet is to be handled in IP-based networks which offer various service qualities, and a header checksum field used to verify transmission error. Other IP fields such as flags and fragment offset fields, a total length field, an ID field, a time to live field and a protocol field may also be included in such a header. In the Internet Protocol version 4 (IPv4), header fields including IP/LTDP/RTP may occupy 40 bytes per packet, and 60 bytes per packet for Internet Protocol version 6 (IPv6). The header-overhead is typically sizable relative to the data payload, particularly for real-time applications using Real-Time Transfer Protocol (RTP) used on top of User Datagram Protocol (ITDP/IP) such as conversational voice where the actual voice payload may be as little as 36 bytes (corresponding to 20 ms of GSM coded voice).
FIG. 2B illustrates an example header segment 120 which includes the combination of an IP header 122, an UDP header 124 and an RTP header 126, and the data payload 130 which contains, for example, voice samples shown in FIG. 2A.
FIG. 3 illustrates an example RTP header 126 in an uncompressed format according to an embodiment of the present invention. As shown in FIG. 3, the uncompressed RTP
header 126 includes a timestamp (T) 310, a sequence number (Sn) 312, and other fields 314. Due to the packet-switched nature of IP network (see FIG. 1), RTP packets may arrive out of order. The sequence number 312 may be used at a destination terminal 30 to assemble RTP
voice samples in the correct order. However, the sequence numbers in the RTP packets may not reflect any non-linear change in the field (e.g., intervals of silence of the voice signal). Therefore, a timestamp (T) 310 may be provided to indicate the relative timing of each packet.
As described previously, the 40-60 byte header-overhead supplied by the IP/UDP/RTP
headers in each RTP packet may be too large. In particular, RTP timestamp may be too burdensome for RTP packets to transport via low speed lines such as dial-up modems or bandwidth-limited links. Accordingly, included in the NIC 24 of source terminal 20 of the data network shown in FIG. 1 (also in the 1'TIC 34 of destination terminal 20 for bidirectional communications on an end-to-end basis) is typically a header compression mechanism 26 and 36 for header compression at source terminal 20 and destination terminal 30 to reduce header-overhead for acceptable interactive response and line efficiency, when operating over low speed lines such as dial-up modems or bandwidth-limited links. The header compression mechanism 26 and 36 may be provided with a compressorlde-compressor for compressing headers of IPlLJDP/RTP datagrams to reduce header-overhead to 2 - 4 bytes. The header compression mechanism 26 and 36 may be implemented by hardware and/or software configured by standard programming methods using high level program languages such as C or C++ and a general purpose computer to achieve header compression. If the header compression mechanism 26 and 36 is implemented by a software module, such a software module may be provided on a tangible medium, including, but not limited to: semiconductor memory devices such as EPROM, S EEPROM, and flash devices; magnetic disks (fixed, floppy, and removable);
other magnetic media such as tape; and optical media such as CD-ROM disks. Such software module may also be bundled with the host network interface card. Alternatively, the header compression mechanism 26 and 36 may also be available as a firmware module or a comprehensive hardware/software module which may be built-in the host. In addition, the header compressor mechanism 26 and 36 may be implemented for operation similarly to RFC 2508 but designed specifically to address robustness when employed in lossy and error-prone network environments characterized by high link errors and high latencies such as cellular networks in order to correctly reconstruct headers in the presence of packet losses and errors.
The specific number and arrangement of source and destination terminals and links shown in FIG. 1 is provided simply as an example data network using a header compression scheme for header compression and transmission of data packets via a data link where bandwidth is at a premium and errors may not be uncommon. A wide variety of implementations and arrangements of any number of terminals, switches and links in all types of data networks may be possible.
For header compression operation, the compressor 26 of source terminal 20 starts off by sending full IP/LJDPIRTP headers to the de-compressor 36 of destination terminal 30 until the de-compressor 36 establishes a context state for the non-changing fields as well as the first-order differences) for the changing fields in the same manner described in RFC 2508.
That is, when the context state is established, the compressor 26 of source terminal 20 need not send the first-order differences (especially those corresponding to RTP header fields, for example, such as RTP
timestamp and RTP sequence number) unless the second-order difference (delta) is non-zero.
When the second-order difference (delta) of the RTP header (or IP/LTDP header of a data packet) from packet to packet is zero, the de-compressor 36 of destination terminal 30 may reconstruct a packet without any loss of information by simply adding the first-order differences to the saved uncompressed header representing the previous packet as each compressed packet is received.
When the second-order difference (delta) of the RTP header of any field is non-zero, the compressor 26 of source terminal 20 operates to send the new first-order difference of the corresponding field in the manner described in RFC 2508. However, in addition to RFC 2508, the header compression mechanism 26 and 36 is specifically designed and implemented to address robustness when employed in lossy, error-prone and unreliable networks (such as cellular or wireless networks where bandwidth is a premium and there may be high link errors and high latencies) to correctly reconstruct headers in the presence of packet losses and errors.
Generally, the header compression scheme of the present invention requires that, when a second-order difference of a field is non-zero, not only a particular RTP
packet whose second-order difference is non-zero is sent with the new first-order difference, but also those following packets are also sent from the compressor 26 of souxce terminal 20 with the new first-order difference as long as: (a) a period pre-determined by factors such as channel characteristics (e.g., link round-trip time RTT / inter-packet separation; round-trip time RTT is an estimate of how long a data packet or frame to travel from the source terminal 20 to the destination terminal 30 and for an acknowledgment to be returned to the source terminal 20), or (b) a positive confirmation is received by the compressor 26 of source terminal 20 that the new first-order difference has been correctly received. This requirement will ensure that even if the packet that caused the second-order difference to be non-zero is lost, the following packets are "self contained" so that the de-compressor 36 of destination terminal 30 can correctly reconstruct their headers.
In accordance with another aspect of the present invention, if the corresponding RTP
field changes again with a non-zero second-order difference during the period of communicating the first-order difference, the "new" first-order difference may be combined with the original first-order difference such that the two first-order differences may be appended together as a simple means of communicating the two first-order differences reliably.
However, the present invention does not preclude other means of combining the first-order differences for efficiency purposes.
Turning now to FIGS. 4A-4B, the operations of a compressor 26 of source terminal 20 and a de-compressor 36 of destination terminal 30 far a changing field and examples of how IP/UDP/RTP headers can be reconstructed in the presence of packet losses and errors according to an embodiment of the present invention will be described hereinbelow.
For a single changing field, let x" be the first-order differential encoding (i.e., encoded value of first-order difference) of a field g" which has to be transmitted by the compressor 26 of source terminal 20 because it has changed by an amount other than the normal expected value in a packet p" and it has not been successfully received by the de-compressor 36 of destination terminal 30.
Define X" = x~"_l~ . f(n-1, n) . x", and X~n+~~ = x" . f(n, n+1) . x~"+;~, where f(i~) is such that x" (the common input) can be computed from X" and X~"+~~, and given X" and x", x~"_~~ can be uniquely computed. Furthermore, f(i,j) is such that if either one of the inputs x" or x~"_~~ is zero, define X" = the non-zero input.
The simplest form of f(i~j) is the "append" function, which simply adds redundancy to an existing field. For example, X" above can consist of both x~"_t~ and x". More sophisticated functions may be used; however, a tradeoff exists between the complexity of the function and the reduction in bits needed to represent X".
The compressor 26 of source terminal 20 may compute X" for packet p", and X~n+n for p~"+~~ even if the corresponding field g~"+;> does not change by an amount other than the expected amount (in which case x~n+1~ will be zero). The compressor 26 of source terminal 20 sends X" in p", rather than x", and X~"+1> m p~"+y rather than x~n+1>.
If packet p" is lost, but p~"+1) and p~"+2~ are received, then x~"+,~ can be computed, and knowing X~"+~>, x" can also be computed. Hence the loss of packet p" does not affect the correct reconstruction of headers. As a result, protection can be achieved against single packet losses.
When f(i,j) is other than an "append" function, the computation of Xn need not be limited to xn and x~"_I~ alone. Xn can be a function of all those x; such that i = i, i-1, i-2, .. i j for any suitable value of i j as long as the corresponding function f(i, i-j) exists such that from any two X;
and X~;+Ij, the common inputs x;, x~;_j~, x~;_Zy, ..,x~; J~ can be distinctly computed from X; and X~;~,~.
In such a case, the compressor 26 of source terminal 20 has to compute X;
values up to X~; ~~ when a field changes for purposes of providing protection against burst of packet losses.
When f(i,j) is an "append" function, protection against burst packet losses is achieved by the requirement set forth as one aspect of the present invenfiion, that is, when a second-order difference of a field is non-zero, not only a particular RTP packet whose second-order difference is non-zero is sent with the new first-order difference, but also those following packets are also sent with the new first-order difference as long as: (a) a period pre-determined by factors such as channel characteristics (e.g., link round-trip time RTP / inter-packet separation); or (b) a positive confirmation is received by the compressor that the new first-order difference has been correctly received.
As shown in FIGS. 4A-4B, the operations of the compressor 26 of source terminal 20 and the de-compressor 36 of destination terminal 30 for a changing field will be described as follows.
In FIG. 4A, an example RTP packet 100 in a compressed format according to an embodiment of the present invention may include a context identifier (ID) field, a timestamp (T) field shown by flag "T" which indicates whether the timestamp (T) field is changing, and a sequence number (Sn). The rest of the fields are not shown for clarity.
Let T be the bit used to indicate whether the RTP timestamp field changes by a value other than the expected value (as described in RFC 2508).
Let delta timestamp (i.e., encoded value of first-order difference of RTP
timestamp) = x"
for packet p" with a sequence number s", and T =1 in the compressed header.
Assume that packet pn is lost from the de-compressor 36 of destination terminal 30, which can be detected by the de-compressor 36 of destination terminal 30 when the next packet pin+y with sequence number s~"+1> arrives.
If T = 0 in pin+l~, then the de-compressor 36 of destination terminal 30 still searches (because the previous packet was Lost) for the delta-timestamp field, which the compressor 26 of source terminal 20 would have placed according to the methodology above. The delta-timestamp field would contain x". The de-compressor 36 obtains x" from X("+i>.
Next, as shown in FIG. 4B, if T =1, the de-compressor 36 of destination terminal 30 is required to search for delta-timestamp field. However, the de-compressor 36 of destination terminal 30 cannot compute the actual value of delta-timestamp (x") if the "f(i,j)" function is other than an "append" function, since the value contained in that field would be X~"+n. When f(i,j) is other than the "append" function, the de-compressor 36 of destination terminal 30 is forced to wait for an additional packet time. Note that waiting is not essential if the "f(i,j)"
function is an "append" function that simply concatentates the two first-order differences.
1 S When f(i.j) is other than an "append" function, and assuming that the following packet pin+z~ awes successfully, the de-compressor 36 of destination terminal 30 can decode the common input x~"+n (in X~n+I~ and Xf"+z~). Since X~"+i~ is known, the de-compressor 36 of destination terminal 30 can also compute the delta-timestamp x", as well as x~"+z~. As shown in FIG. 4B, the de-compressor 36 of destination terminal 30 has to wait for the arrival of an additional packet before the field information can be successfully reconstructed. This wait time is the same (and constant) for the case involving bursty packet losses as well.
FIGs. SA-SD illustrate different packet header formats of a data packet according to operations of a compressor 26 of source terminal 20 and a de-compressor 36 of destination terminal 30 shown in FIGS. 4A-4B. These packet header formats are shown assuming that f(i,j) is an "append" function. In particular, FIG. 5A illustrates a header format of a data packet when a second-order (SO) difference is zero. The header segment 120 of a data packet 100 (see FIG.
2A) may include a 4-bit context identifier (ID) field (which is the same as described in RFC 2508 and may be implicit and optional in certain networks such as cellular networks) and a 4-bit sequence number field. The header format shown in FIG. 5A is normally sent from the compressor 26 of source terminal 20 to the de-compressor 36 of destination terminal 30 in the manner described in RFC 2508, when the second-order (SO) difference is zero.
FIG. 5B illustrates a header format of a data packet when a second-order (SO) for packet "n" is non-zero. As shown in FIG. 5B, the header segment 120 of a data packet 100 may include a 4-bit context identifier (ID) field, a 4-bit sequence number (n) field for packet "n", a 3-bit packet type field which identifies the type of the packet (e.g., RTP
compressed header, full header etc.), a 1-bit retransmit (ReTx =0) bit which indicates if the first-order (FO) difference being sent is for the packet with non-zero second-order (SO) difference or is for packets that follow it, a 4-bit combination (MSTI: marker bit, sequence number, timestamp and IP-ID) field as described in RFC 2508 which identifies the fields) being changed, and a variable length field which includes the first-order (FO) difference of RTP field whose second-order (SO) difference is non-zero. 'The header format as shown in FIG. 5B is sent from the compressor 26 of source terminal 20 to the de-compressor 36 of destination terminal 30, when for example, the timestamp (T=1 ) has changed as shown in FIG. 4A.
FIG. SC illustrates a header format when repeating the first-order (FO) in packet following packet "n" shown in FIG. 5B (e.g., in packet "n+1"). As shown in FIG. SC, the header segment 120 of a data packet 100 may include a context identifier (ID) field, a sequence number (n+1) field fox packet "n+1", a packet type field which identifies the type of the packet (e.g., RTP
compressed header, full header etc.), a retransmit (ReTx =1) bit which indicates if the first-order (FO) difference being sent is for the packet with non-zero second-order (SO) difference or is for packets that follow it, a MSTI field as described in RFC 250$ which identifies the fields) being changed, a sequence number (n) field for packet "n", and a variable length field which indicates the first-order (FO) difference of RTP field of packet "n". The header format as shown in FIG.
SC is sent from the compressor 26 of source terminal 20 to the de-compressor 36 of destination terminal 30 with respect to a next packet (n+1) or (n+2), when for example, the timestamp (T=0) has not changed as shown in FIGS. 4A and 4B.
FIG. SD illustrates a header format when a second-order (SO) difference for packet "n+k"
I S (or "n+1" as described with reference to FIG. 4B) is non-zero while a first-order (FO) difference for paclcet "n" is being communicated (e.g., combination of FTGs. 5B and SC).
As shown in FIG.
SD, the header segment 120 of a data packet 100 may include a context identifier (ID) field; a sequence number (n+k) field for packet "n+k" (or "n+1" field for packet "n+1"
as described with reference to FIG. 4B); a packet type field which identifies the type of the packet (e.g., RTP
compressed header, full header etc.); a retransmit (ReTx =0) bit which indicates that the first-order (FO) difference being sent is for the packet "n+k" (or "n+1" as described with reference to FIG. 4B) with non-zero second-order (SO) difference or is for packefs that follow it; a bit combination (MSTI) field as described in RFC 2508 which identifies the fields) being changed;
a field which indicates a first-order (FO) difference for packet (n+k) (or packet "n+1" as described with reference to FIG. 4B), a sequence number (n) field for packet "n"; another packet type field which identifies the type of the packet "n", a retransmit (ReTx =1) bit which indicates that the first-order (FO) difference being sent is for the packet "n" with non-zero second-order (SO) difference; and another bit combination (MSTI) field as described in RFC
2508 which identifies the fields) being changed; and a field which indicates a first-order (FO) difference for packet (n). The header format as shown in FIG. SD is sent from the compressor 26 of source terminal 20 to the de-compressor 36 of destination terminal 30 with respect to a next packet (n+1), when for example, the timestamp (T=1) has changed as shown in FIG. 4B.
As described previously, the source terminal 20 and the destination terminal 30 shown in FIG. 1 is provided simply as an example data network. A wide variety of implementations and arrangements of any number of terminals, switches and links in all types of data networks may be possible. For example, one preferred usage implementation of such a data network of a source terminal and a destination terminal including a header compression mechanism provided for header compression may be a cellular network for real-time applications such as Voice over IP and Video conferencing as shown in FIG. 6. The bandwidth-limited link 10 may be a combination of an IP network 12 and an access network infrastructures AI~I 14 and ANI 16 for providing cellular communications. The source terminal 20 may be a host PC or the Iike running RTP/UDP/IP, and providing packetized voice samples in RTP packets for transmission over IP
network 12 and ANIs 14 and 16. The destination terminal 30 may be a mobile terminal for cellular communications with the ANI 14. Each terminal 20 and 30 may either be a source or destination terminal for RTP packets.
The terminal 20 may include a RTP endpoint 22 which identifies this terminal (e.g., including IP address, port number, etc.) as either a source or destination for RTP packets. IP
network is provided as an example, however, other types of packet switched networks or the like can be used instead. Terminal 20 also includes a local timer 24 for generating a time stamp.
An access network infrastructure (AI'TI) 14 may be connected to IP network 12.
A mobile terminal 30 may be coupled to ANI 14 via radio frequency (RF) link 50. RF link 50 includes an uplink 52 (from terminal 30 to AI'II 14) and a downlink 54 (from AI~I 14 to terminal 30). ANI
14 may interface one or more wireless (or radio frequency) terminals (including terminal 30) in a region to IP network 12, including converting between wireline signals (provided from IP
network 12) and wireless or RF signals (provided to or from terminal 30).
Thus, ANI 14 allows RTP packets received from IP network 12 to be sent over RF link 50 tv the mobile terminal 30, and allows RTP packets from the mobile terminal 30 to be sent over IP network 12 to another terminal, such as terminal 20.
According to an embodiment of the present invention, AIVI 14 may include one or more ANI adapters (AI\II AD) 40 each of which preferably includes a timer 42. Each may be configured and implemented with a robust IP/LTDP/RTP header compression scheme according to an embodiment of the present invention for header compression operation similarly to RFC 2508 but addressing robustness when employed in lossy and error-prone networks as described with reference to FIGS. 1-4 for correctly reconstructing headers in the presence of packet losses and errors. The ANI AD 40 may perform header compression (prior to downlink transmission) and decompression (after uplink transmission). Headers (or one or more header fields, such as a time stamp) for RTP packets received from IP network I2 are compressed by ANI AD 40 prior to transmission to mobile terminal 30 over downlink 54, and packet headers received from mobile terminal 30 are decompressed by ANI AD 40 before transmission to IP
network I2. Therefore, each ANI AD 40 may be considered as a header compressor/de-compressor. Each ANI AD 40 may also interface terminals located in a specific or different area within the region to IP network 12.
I O AIVI AD 40 may include a timer 42 fox implementing a timer-based decompression technique. Additional AlVIs may also be provided for interfacing other terminals located in additional regions to IP network 12.
Mobile terminal 30 may include an RTP endpoint 132 which is a source and/or destination (receiver) for RTP packets. Mobile terminal 30 may include a terminal adapter (term AD) 36 which performs header compression (for packets to be transmitted uplink 52) and decompression (on packets received over downlink 54). Thus, terminal adapter (term AD) may be considered to be a header compressorldecompressor, similar to the ANI AD.
The terminal adapter (term AD) 36 also includes a timer 34 for calculating an approximation (or estimate) of a RTP time stamp of a current header. The terminal adapter (term AD) 36 then uses additional information in the RTP header to refine or correct the time stamp approximation. Local timer and compressed time stamp can be used to regenerate the correct time stamp for each RTP header. Other terminals may also be provided, each including its own RTP endpoint, terminal adapter and timer.
As described from the foregoing, the present invention advantageously provides a robust header compression scheme for achieving robust IP header compression in the presence of unreliable networks. The proposed scheme can also be applied flexibly based on the desired protection needed against packet losses. The protection against bit errors may be achieved by using techniques similar to that used in voice coding for example that provide uneven bit protection (but, in this case for the headers as opposed to payload).
While there have been illustrated and described what are considered to be preferred embodiments of the present invention, it will be understood by those skilled in the art that various changes and modifications may be made, and equivalents may be substituted for elements thereof without departing from the true scope of the present invention. Further, many modifications may be made to adapt a particular situation to the teachings of the present invention without departing from the central scope of the present invention.
Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed as the best mode contemplated for carrying out the present invention, but that the present invention includes all embodiments falling within the scope of the appended claims.
ROBUST IP/UDP/RTP HEADER COMPRESSION IN THE PRESENCE
OF UNRELIABLE NETWORKS
TECHNICAL FIELD
S The present invention relates to data compression and decompression in a data network and more particularly, relates to a system and method for achieving robust IP/UDP/RTP header compression in the presence of unreliable networks.
RELATED ART
In recent years, increased usage of the Internet has resulted in scarcity of network capacity, and compromised performance of traditional applications. At the same time, new applications such as interactive audio andlor video, including video-conferencing or Voice over IP (VoIP) have emerged which demand timely data delivery and much improved quality of service. Real-Time Transfer Protocol (RTP) has been used to obtain inter-operability among different implementations of network real-time applications such as video-conferencing and Voice over IP. For Internet Protocol (IP) based real-time multimedia, RTP may be used on top of User Datagram Protocol (ITDP/IP) to make use of multiplexing and checksum services as described in the "RTP: A Trafzsport Protocol~For Real-Time Applicatiofzs" by Henning Schulzrinne, Stephen L. Casner, Ron Frederick, and Van Jacobson, Request For Comments (RFC) 1889, January 1996. However, there is concern that RTP headers may be too large for acceptable interactive response and line efficiency, when operating over Iow speed lines such as dial-up modems. For example, in the Internet Protocol version 4 (IPv4), header fields including IP/LTDP/RTP may occupy 40 bytes per packet. Likewise, such header f elds may occupy 60 bytes per packet in the Internet Protocol version 6 (IPv6). This header-overhead is quite considerable in real-time applications such as conversational voice where the actual voice payload may be as little as 36 bytes (corresponding to 20 ms of GSM coded voice). As a result, such header-overhead needs to be significantly reduced for real-time applications.
Currently, there are few header compression techniques available to compress headers of IP/LTDP/RTP datagrams in order to reduce the header-overhead and allow efficient use of bandwidth on low and medium speed links. Most recent example of such header compression I O techniques is described in the "Compressing IPlUDPlRTP Headers For Low-Speed Serial Links"
by Stephen L. Casner, and Van Jacobson, RFC 2508, February 1999. A header compression mechanism is provided with a compressor/de-compressor for compressing headers of IP/UDP/RTP datagrams to reduce header-overhead to 2 - 4 bytes. The header compression scheme is based on the observation that most fields of the IP headers remain constant in a packet I S stream over the life of the connection (i.e., length of a session).
Therefore, header compression may be achieved by maintaining a compression state at the de-compressor and by simply transporting a minimal amount of header-overhead (such as a session context identifier and a small sequence number used for error and packet loss detection) from the compressor to the de-compressor. According to RFC 2508, the compression state at the de-compressor may 20 correspond to uncompressed header fields including those that change in every packet and those that do not change in every packet. For the non-changing fields (such as source and destination IP addresses and port numbers), the de-compressor may simply add the corresponding fields stored in the compression state. For the changing fields, however, the de-compressor may rely on the information sent in the compressed packet header. Typically, the information contained in the compressed packet header includes the difference in change with respect to the value of the field in the previous packet (i.e., only non-zero second-order differences of changing fields), and does not include the changed field itself.
For general operation, the compressor starts off by sending full IP/UDP/RTP
headers to the de-compressor until the de-compressor establishes a context state for the non-changing fields as well as the first-order differences) for the changing fields. Once the context state is established, the compressor need not send the first-order differences (especially those corresponding to RTP header fields such as RTP timestamp and RTP sequence number) unless the second-order difference (delta) is non-zero. When the second-order difference (delta) of the RTP header from packet to packet is zero, the de-compressor can reconstruct a packet without any loss of information by simply adding the first-order differences to the saved uncompressed header representing the previous packet as each compressed packet is received.
All that needs to be communicated is a session context identifier (ID) and a small sequence number (not related to the RTP sequence number) in order to maintain synchronization and detect packet loss between the compressor and de-compressor. For example, if the RTP timestamp changes from 20 to 40 to 60 for packets # 1, #2 and #3, the first-order difference between 20 and 40 and between 40 and 60 is 20. When the initial value of 20 is known, the de-compressor may simply add the correct increment for packet #3 if an appropriate field in the compressed header indicates that the second-order difference is zero.
On the other hand, if the second-order difference (delta) of the RTP header is not zero for some fields, the new first-order difference for just those fields must be communicated using a compact encoding. The new first-order difference values are added to the corresponding f elds in the uncompressed header in the session context of the de-compressor, and are also stored explicitly in the session context to be added to the corresponding fields again on each subsequent packet in which the second-order difference (delta) is zero. Each time the first-order difference changes on subsequent packets, that difference is transmitted and used to update the session context.
However, the header compression scheme as described in RFC 2508 and other RFC
documents which contain Internet Standard protocols available to the Internet community are not suitable for operation in environments (such as cellular wireless networks) where bandwidth is at a premium and there are high Link errors and high link latencies. The Loss of a packet can force the de-compressor to append incorrect header information, such as RTP
timestamp and RTP
sequence number, to the next successfully received packet. Similarly, if a compressed packet header is in error, similar incorrect reconstruction of an RTP packet can result. For instance, if a packet containing the new first-order difference for a field (or multiple fields) is considered lost (perhaps due to errors), the headers for the subsequent packets cannot be correctly reconstructed until the de-compressor has notified the compressor, and the compressor has successfully re-transmitted the required first-order difference. During this recovery phase, the packets already transmitted and in transit cannot be operated upon for header reconstructions.
For real-time applications, such as Voice over IP (VoIP) and Video Conferencing, those packets may be discarded due to the expiration of play-out deadlines. For example, consider a cellular link that has a 60 ms one way delay from the radio access point (such as a base station) to a mobile station (or 120 ms round-trip delay from base station to mobile station and back to base station), and an inter-packet separation between voice packets is 20 ms during a talkspurt. At the start a talkspurt, the RTP timestamp of the very first packet usually increments such that its second-order difference is non-zero due to the silence interval. Therefore, a new first-order difference has to be communicated to the de-compressor in this very first packet. If the packet is somehow lost due to errors, the following three packets (60 ms / 20 ms) cannot be reconstructed until the de-compressor informs the compressor about the failure, during which time another three packets would have been transmitted by the compressor (assuming that a talkspurt lasts for at least six packets). All these six packets have to wait until the correct first-order difference is received by the de-compressor, and as a result, may be discarded due to play-out deadline expiration.
Accordingly, there is a need for a robust IP/UDP/RTP header compression scheme in the presence of unreliable networks. In addition, needed is a scheme that can correctly reconstruct headers in the presence of packet losses and errors.
DISCLOSURE OF INVENTION
Accordingly, various embodiments of the present invention are directed to a robust IP/UDPlRTP header compression mechanism and technique that can correctly reconstruct IP/U1~P/RTP headers in the presence of packet losses and errors. The header compression mechanism includes a compressor/de-compressor implemented for operation similarly to RFC
2508 but designed specifically to address robustness when employed in lossy and error-prone networks to correctly reconstruct headers in the presence of packet losses and errors.
In accordance with one aspect of the present invention, the robust header S compression scheme requires that, when a second-order difference of a field is non-zero, not only a particular RTP packet whose second-order difference is non-zero is sent with the new first-order difference, but also those following packets are also sent with the new first-order difference as long as: (a) a period pre-determined by factors such as channel characteristics (e.g., link round-trip time RTP / inter-packet separation); or (b) a positive confirmation is received by the compressor that the new first-order difference has been correctly received. This will ensure that even if the packet that caused the second-order difference to be non-zero is lost, the following packets are "self contained" so that the de-compressor can correctly reconstruct their headers.
In accordance with another aspect of the present invention, the robust header compression scheme requires that, if the corresponding RTP field changes again with non-zero second-order difference during the period of communicating the first-order difference, the "new" first-order difference is combined with the original first-order difference such that the two first-order differences may be appended together as a simple means of communicating the two first-order differences reliably.
However, the present invention does not preclude other means of combining the first-order differences for efficiency purposes.
In accordance with another aspect of the present invention, there is provided a data network, comprising:
a first node comprising a header compressor/de-compressor for compressing/de-compressing headers of data packets for transmission via a bandwidth-limited link; and a second node comprising a header compressor/de-compressor for compressing/de-compressing headers of data packets for transmission via said bandwidth-limited link, wherein header compression and reconstruction are obtained by first establishing a context state for non-changing fields as well as first-order differences for changing fields between a compressor of one of said first node and said second node and a de-compressor of another one of said first node and said second node, and then when a second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received by the compressor that the new first-order difference has been received or until expiration of a predetermined period.
In accordance with another aspect of the present invention, there is provided a packet network, comprising:
a source terminal providing a plurality of packets each packet including a header field;
a destination terminal;
a bandwidth-limited link providing connection between the source terminal and the destination terminal; and at least one network interface controller of the source terminal or the destination terminal comprises a header compression mechanism installed therein for header compression and so reconstruction, said header compression mechanism establishing a context state for non-changing fields as well as first-order differences 6a for changing fields, and then when a second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
In accordance with another aspect of the present invention, there is provided a method for achieving robust header compression between a compressor and a de-compressor in the presence of an unreliable network, comprising:
sending headers of data packets, from said compressor to said de-compressor via a bandwidth-limited link until said de-compressor establishes a context state for non-changing fields of said data packets as well as first-order differences for changing fields;
when the context state has been established between said compressor and said de-compressor, determining whether a second-order difference of any field is non-zero; and when the second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
In accordance with another aspect of the present invention, there is provided a host readable medium comprising instructions that, when executed by a host system including a compressor/de-compressor, cause the host system to obtain robust header compression between a compressor and a de-compressor of a remote system by:
sending headers of data packets, from said compressor to said de-compressor 6b via a bandwidth-limited link until said de-compressor establishes a context state for non-changing fields of said data packets as well as first-order differences for changing fields;
when the context state has been established between said compressor and said de-compressor, determining whether a second-order difference of any field is non-zero; and when the second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
The present invention is more specifically described in the following paragraphs by reference to the drawings attached only by way of example.
6c BRIEF DESCRIPTION OF THE DRAWINGS
A more complete appreciation of the present invention, and many of the attendant advantages thereof, will become readily apparent as the same becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings in which like reference symbols indicate the same or similar components, wherein:
FIG. 1 illustrates an example data network of a source terminal and a destination terminal including a header compressor mechanism provided for header compression and for data communications via a bandwidth-limited link according to an embodiment of the present invention;
FIGS. 2A-2B illustrate an example data packet for use in an example data network according to an embodiment of the present invention;
FIG. 3 illustrates an example RTP header segment of the data packet in an uncompressed format according to an embodiment of the present invention;
FIGs. 4A-4B illustrate operations of a compressor of source terminal and a de-compressor of destination terminal for a changing field according to an embodiment of the present invention;
FIGS. SA-SD illustrate different packet header formats of a data packet according to an embodiment of the present invention; and FIG. 6 illustrates one preferred usage implementation of an IP-based network of a source terminal and a destination terminal including a header compression mechanism provided for header compression and for data communications via a cellular link according to an embodiment of the present invention.
BEST MODE FOR CARRYING OUT THE INVENTION
The present invention is applicable for use with all types of data networks and real-time communication services. For example, data networks may be packet networks, including Ethernet Iocal area networks (LANs), Asynchronous Transfer Mode (ATM), Frame Relay, and Internet used for real-time applications such as Voice over IP and Video conferencing (Video over IP). Alternatively, such data networks may also be private or public networks, including a plain old telephone service (POTS), a public switched telephone network (PSTN), an integrated services digital network (ISDN), a mobile network, a satellite network, and networks such as terrestrial digital TV or radio, cellular, short-range radio (Bluetooth, RF
protocol, wireless LAN) networks. However, for the sake of simplicity, discussions will concentrate mainly on a simple data network of different configurations for real-time applications such as Voice over IP (VoIP) and Video conferencing (Video over IP), although the scope and implementation of the present invention is not limited thereto.
Attention now is directed to the drawings and particularly to FIG. l, a simple data network of a source terminal 20 and a destination terminal 30 according to an embodiment of the present invention. As shown in FIG. l, a bandwidth-limited link 10 may be utilized to connect a source terminal 20 to a destination terminal 30. The bandwidth-limited link 10 may represent Iow speed lines such as dial-up modems, or radio-frequency (RF) wireless links (cellular links).
Alternatively, the bandwidth-limited Iink 10 may include an 1P-based network of an Internet _g_ Service Provider (ISP), an Internet and different source and destination networks, including, for example, a public switched telephone network (PSTl~, an integrated services digital network (ISDN) and other access network infrastructures (AhlI) for enabling communications between the source terminal 20 and the destination terminal 30. If the bandwidth-limited link 10 corresponds to cellular links, the source terminal 20 and the destination terminal 30 may correspond to a mobile terminal and a base station respectively and vice versa.
The source terminal 20 includes, for example, at least host 22 and a network interface controller (hTIC) 24. Likewise, the destination terminal 30 includes, for example, at least a host 32 and a network interface controller (NIC) 34. Multiple hosts may be included in the source terminal 20 and the destination terminal 30. Each host may correspond to an IP
phone or a stand-alone PC for sending data packets from the source terminal 20 to the destination terminal 30 via the bandwidth-limited link 10.
In the source terminal 20, the host 22 generates data which is forwarded to the network interface controller (hTIC) 24. The NIC 24 of the source terminal 20 transforms incoming data from host 22 into data packets using, for example, Real-Time Transfer Protocol (RTP) used on top of User Datagram Protocol (LTDP/IP), and inj ects the data packets via the bandwidth-limited link 10. If the bandwidth-limited link 10 is an IP-based network, the rate of that data packets are injected via the IP-based network 10 and the outward flow of data packets are controlled and managed by the IVIC 24 to avoid congestion and to limit bandwidth usage of data packets in the IP-based network 10. The IP-based network 10 accepts incoming data packets and forwards the same to destination terminal 30 according to the information contained in the header. The 1VIC
_g_ 34 of the destination terminal 30 receives the data packets from the IP-based network 10, transforms the same into data and forwards the data to the host 32.
FIGs. ZA-2B illustrate an example data packet for use in a simple data network according to an embodiment of the present invention. As shown in FIG. 2A, an example data packet 100 consists of a segment of data payload 130 and a small header 120 prepended to the data payload 130. The packet 100 may represent, but may not be limited to, real-time traffic of Voice over IP
(VoIP) or Video over IP. The header segment 120 contains, for example, IP
addresses fields (32-bit global Internet address, generally consisting of a network identif er and a host identif er), a version field used to specify which version of the IP is represented in the IP
packet (for example, IP Version 4 and IP Version 6), a type of service field used to specify how the IP packet is to be handled in IP-based networks which offer various service qualities, and a header checksum field used to verify transmission error. Other IP fields such as flags and fragment offset fields, a total length field, an ID field, a time to live field and a protocol field may also be included in such a header. In the Internet Protocol version 4 (IPv4), header fields including IP/LTDP/RTP may occupy 40 bytes per packet, and 60 bytes per packet for Internet Protocol version 6 (IPv6). The header-overhead is typically sizable relative to the data payload, particularly for real-time applications using Real-Time Transfer Protocol (RTP) used on top of User Datagram Protocol (ITDP/IP) such as conversational voice where the actual voice payload may be as little as 36 bytes (corresponding to 20 ms of GSM coded voice).
FIG. 2B illustrates an example header segment 120 which includes the combination of an IP header 122, an UDP header 124 and an RTP header 126, and the data payload 130 which contains, for example, voice samples shown in FIG. 2A.
FIG. 3 illustrates an example RTP header 126 in an uncompressed format according to an embodiment of the present invention. As shown in FIG. 3, the uncompressed RTP
header 126 includes a timestamp (T) 310, a sequence number (Sn) 312, and other fields 314. Due to the packet-switched nature of IP network (see FIG. 1), RTP packets may arrive out of order. The sequence number 312 may be used at a destination terminal 30 to assemble RTP
voice samples in the correct order. However, the sequence numbers in the RTP packets may not reflect any non-linear change in the field (e.g., intervals of silence of the voice signal). Therefore, a timestamp (T) 310 may be provided to indicate the relative timing of each packet.
As described previously, the 40-60 byte header-overhead supplied by the IP/UDP/RTP
headers in each RTP packet may be too large. In particular, RTP timestamp may be too burdensome for RTP packets to transport via low speed lines such as dial-up modems or bandwidth-limited links. Accordingly, included in the NIC 24 of source terminal 20 of the data network shown in FIG. 1 (also in the 1'TIC 34 of destination terminal 20 for bidirectional communications on an end-to-end basis) is typically a header compression mechanism 26 and 36 for header compression at source terminal 20 and destination terminal 30 to reduce header-overhead for acceptable interactive response and line efficiency, when operating over low speed lines such as dial-up modems or bandwidth-limited links. The header compression mechanism 26 and 36 may be provided with a compressorlde-compressor for compressing headers of IPlLJDP/RTP datagrams to reduce header-overhead to 2 - 4 bytes. The header compression mechanism 26 and 36 may be implemented by hardware and/or software configured by standard programming methods using high level program languages such as C or C++ and a general purpose computer to achieve header compression. If the header compression mechanism 26 and 36 is implemented by a software module, such a software module may be provided on a tangible medium, including, but not limited to: semiconductor memory devices such as EPROM, S EEPROM, and flash devices; magnetic disks (fixed, floppy, and removable);
other magnetic media such as tape; and optical media such as CD-ROM disks. Such software module may also be bundled with the host network interface card. Alternatively, the header compression mechanism 26 and 36 may also be available as a firmware module or a comprehensive hardware/software module which may be built-in the host. In addition, the header compressor mechanism 26 and 36 may be implemented for operation similarly to RFC 2508 but designed specifically to address robustness when employed in lossy and error-prone network environments characterized by high link errors and high latencies such as cellular networks in order to correctly reconstruct headers in the presence of packet losses and errors.
The specific number and arrangement of source and destination terminals and links shown in FIG. 1 is provided simply as an example data network using a header compression scheme for header compression and transmission of data packets via a data link where bandwidth is at a premium and errors may not be uncommon. A wide variety of implementations and arrangements of any number of terminals, switches and links in all types of data networks may be possible.
For header compression operation, the compressor 26 of source terminal 20 starts off by sending full IP/LJDPIRTP headers to the de-compressor 36 of destination terminal 30 until the de-compressor 36 establishes a context state for the non-changing fields as well as the first-order differences) for the changing fields in the same manner described in RFC 2508.
That is, when the context state is established, the compressor 26 of source terminal 20 need not send the first-order differences (especially those corresponding to RTP header fields, for example, such as RTP
timestamp and RTP sequence number) unless the second-order difference (delta) is non-zero.
When the second-order difference (delta) of the RTP header (or IP/LTDP header of a data packet) from packet to packet is zero, the de-compressor 36 of destination terminal 30 may reconstruct a packet without any loss of information by simply adding the first-order differences to the saved uncompressed header representing the previous packet as each compressed packet is received.
When the second-order difference (delta) of the RTP header of any field is non-zero, the compressor 26 of source terminal 20 operates to send the new first-order difference of the corresponding field in the manner described in RFC 2508. However, in addition to RFC 2508, the header compression mechanism 26 and 36 is specifically designed and implemented to address robustness when employed in lossy, error-prone and unreliable networks (such as cellular or wireless networks where bandwidth is a premium and there may be high link errors and high latencies) to correctly reconstruct headers in the presence of packet losses and errors.
Generally, the header compression scheme of the present invention requires that, when a second-order difference of a field is non-zero, not only a particular RTP
packet whose second-order difference is non-zero is sent with the new first-order difference, but also those following packets are also sent from the compressor 26 of souxce terminal 20 with the new first-order difference as long as: (a) a period pre-determined by factors such as channel characteristics (e.g., link round-trip time RTT / inter-packet separation; round-trip time RTT is an estimate of how long a data packet or frame to travel from the source terminal 20 to the destination terminal 30 and for an acknowledgment to be returned to the source terminal 20), or (b) a positive confirmation is received by the compressor 26 of source terminal 20 that the new first-order difference has been correctly received. This requirement will ensure that even if the packet that caused the second-order difference to be non-zero is lost, the following packets are "self contained" so that the de-compressor 36 of destination terminal 30 can correctly reconstruct their headers.
In accordance with another aspect of the present invention, if the corresponding RTP
field changes again with a non-zero second-order difference during the period of communicating the first-order difference, the "new" first-order difference may be combined with the original first-order difference such that the two first-order differences may be appended together as a simple means of communicating the two first-order differences reliably.
However, the present invention does not preclude other means of combining the first-order differences for efficiency purposes.
Turning now to FIGS. 4A-4B, the operations of a compressor 26 of source terminal 20 and a de-compressor 36 of destination terminal 30 far a changing field and examples of how IP/UDP/RTP headers can be reconstructed in the presence of packet losses and errors according to an embodiment of the present invention will be described hereinbelow.
For a single changing field, let x" be the first-order differential encoding (i.e., encoded value of first-order difference) of a field g" which has to be transmitted by the compressor 26 of source terminal 20 because it has changed by an amount other than the normal expected value in a packet p" and it has not been successfully received by the de-compressor 36 of destination terminal 30.
Define X" = x~"_l~ . f(n-1, n) . x", and X~n+~~ = x" . f(n, n+1) . x~"+;~, where f(i~) is such that x" (the common input) can be computed from X" and X~"+~~, and given X" and x", x~"_~~ can be uniquely computed. Furthermore, f(i,j) is such that if either one of the inputs x" or x~"_~~ is zero, define X" = the non-zero input.
The simplest form of f(i~j) is the "append" function, which simply adds redundancy to an existing field. For example, X" above can consist of both x~"_t~ and x". More sophisticated functions may be used; however, a tradeoff exists between the complexity of the function and the reduction in bits needed to represent X".
The compressor 26 of source terminal 20 may compute X" for packet p", and X~n+n for p~"+~~ even if the corresponding field g~"+;> does not change by an amount other than the expected amount (in which case x~n+1~ will be zero). The compressor 26 of source terminal 20 sends X" in p", rather than x", and X~"+1> m p~"+y rather than x~n+1>.
If packet p" is lost, but p~"+1) and p~"+2~ are received, then x~"+,~ can be computed, and knowing X~"+~>, x" can also be computed. Hence the loss of packet p" does not affect the correct reconstruction of headers. As a result, protection can be achieved against single packet losses.
When f(i,j) is other than an "append" function, the computation of Xn need not be limited to xn and x~"_I~ alone. Xn can be a function of all those x; such that i = i, i-1, i-2, .. i j for any suitable value of i j as long as the corresponding function f(i, i-j) exists such that from any two X;
and X~;+Ij, the common inputs x;, x~;_j~, x~;_Zy, ..,x~; J~ can be distinctly computed from X; and X~;~,~.
In such a case, the compressor 26 of source terminal 20 has to compute X;
values up to X~; ~~ when a field changes for purposes of providing protection against burst of packet losses.
When f(i,j) is an "append" function, protection against burst packet losses is achieved by the requirement set forth as one aspect of the present invenfiion, that is, when a second-order difference of a field is non-zero, not only a particular RTP packet whose second-order difference is non-zero is sent with the new first-order difference, but also those following packets are also sent with the new first-order difference as long as: (a) a period pre-determined by factors such as channel characteristics (e.g., link round-trip time RTP / inter-packet separation); or (b) a positive confirmation is received by the compressor that the new first-order difference has been correctly received.
As shown in FIGS. 4A-4B, the operations of the compressor 26 of source terminal 20 and the de-compressor 36 of destination terminal 30 for a changing field will be described as follows.
In FIG. 4A, an example RTP packet 100 in a compressed format according to an embodiment of the present invention may include a context identifier (ID) field, a timestamp (T) field shown by flag "T" which indicates whether the timestamp (T) field is changing, and a sequence number (Sn). The rest of the fields are not shown for clarity.
Let T be the bit used to indicate whether the RTP timestamp field changes by a value other than the expected value (as described in RFC 2508).
Let delta timestamp (i.e., encoded value of first-order difference of RTP
timestamp) = x"
for packet p" with a sequence number s", and T =1 in the compressed header.
Assume that packet pn is lost from the de-compressor 36 of destination terminal 30, which can be detected by the de-compressor 36 of destination terminal 30 when the next packet pin+y with sequence number s~"+1> arrives.
If T = 0 in pin+l~, then the de-compressor 36 of destination terminal 30 still searches (because the previous packet was Lost) for the delta-timestamp field, which the compressor 26 of source terminal 20 would have placed according to the methodology above. The delta-timestamp field would contain x". The de-compressor 36 obtains x" from X("+i>.
Next, as shown in FIG. 4B, if T =1, the de-compressor 36 of destination terminal 30 is required to search for delta-timestamp field. However, the de-compressor 36 of destination terminal 30 cannot compute the actual value of delta-timestamp (x") if the "f(i,j)" function is other than an "append" function, since the value contained in that field would be X~"+n. When f(i,j) is other than the "append" function, the de-compressor 36 of destination terminal 30 is forced to wait for an additional packet time. Note that waiting is not essential if the "f(i,j)"
function is an "append" function that simply concatentates the two first-order differences.
1 S When f(i.j) is other than an "append" function, and assuming that the following packet pin+z~ awes successfully, the de-compressor 36 of destination terminal 30 can decode the common input x~"+n (in X~n+I~ and Xf"+z~). Since X~"+i~ is known, the de-compressor 36 of destination terminal 30 can also compute the delta-timestamp x", as well as x~"+z~. As shown in FIG. 4B, the de-compressor 36 of destination terminal 30 has to wait for the arrival of an additional packet before the field information can be successfully reconstructed. This wait time is the same (and constant) for the case involving bursty packet losses as well.
FIGs. SA-SD illustrate different packet header formats of a data packet according to operations of a compressor 26 of source terminal 20 and a de-compressor 36 of destination terminal 30 shown in FIGS. 4A-4B. These packet header formats are shown assuming that f(i,j) is an "append" function. In particular, FIG. 5A illustrates a header format of a data packet when a second-order (SO) difference is zero. The header segment 120 of a data packet 100 (see FIG.
2A) may include a 4-bit context identifier (ID) field (which is the same as described in RFC 2508 and may be implicit and optional in certain networks such as cellular networks) and a 4-bit sequence number field. The header format shown in FIG. 5A is normally sent from the compressor 26 of source terminal 20 to the de-compressor 36 of destination terminal 30 in the manner described in RFC 2508, when the second-order (SO) difference is zero.
FIG. 5B illustrates a header format of a data packet when a second-order (SO) for packet "n" is non-zero. As shown in FIG. 5B, the header segment 120 of a data packet 100 may include a 4-bit context identifier (ID) field, a 4-bit sequence number (n) field for packet "n", a 3-bit packet type field which identifies the type of the packet (e.g., RTP
compressed header, full header etc.), a 1-bit retransmit (ReTx =0) bit which indicates if the first-order (FO) difference being sent is for the packet with non-zero second-order (SO) difference or is for packets that follow it, a 4-bit combination (MSTI: marker bit, sequence number, timestamp and IP-ID) field as described in RFC 2508 which identifies the fields) being changed, and a variable length field which includes the first-order (FO) difference of RTP field whose second-order (SO) difference is non-zero. 'The header format as shown in FIG. 5B is sent from the compressor 26 of source terminal 20 to the de-compressor 36 of destination terminal 30, when for example, the timestamp (T=1 ) has changed as shown in FIG. 4A.
FIG. SC illustrates a header format when repeating the first-order (FO) in packet following packet "n" shown in FIG. 5B (e.g., in packet "n+1"). As shown in FIG. SC, the header segment 120 of a data packet 100 may include a context identifier (ID) field, a sequence number (n+1) field fox packet "n+1", a packet type field which identifies the type of the packet (e.g., RTP
compressed header, full header etc.), a retransmit (ReTx =1) bit which indicates if the first-order (FO) difference being sent is for the packet with non-zero second-order (SO) difference or is for packets that follow it, a MSTI field as described in RFC 250$ which identifies the fields) being changed, a sequence number (n) field for packet "n", and a variable length field which indicates the first-order (FO) difference of RTP field of packet "n". The header format as shown in FIG.
SC is sent from the compressor 26 of source terminal 20 to the de-compressor 36 of destination terminal 30 with respect to a next packet (n+1) or (n+2), when for example, the timestamp (T=0) has not changed as shown in FIGS. 4A and 4B.
FIG. SD illustrates a header format when a second-order (SO) difference for packet "n+k"
I S (or "n+1" as described with reference to FIG. 4B) is non-zero while a first-order (FO) difference for paclcet "n" is being communicated (e.g., combination of FTGs. 5B and SC).
As shown in FIG.
SD, the header segment 120 of a data packet 100 may include a context identifier (ID) field; a sequence number (n+k) field for packet "n+k" (or "n+1" field for packet "n+1"
as described with reference to FIG. 4B); a packet type field which identifies the type of the packet (e.g., RTP
compressed header, full header etc.); a retransmit (ReTx =0) bit which indicates that the first-order (FO) difference being sent is for the packet "n+k" (or "n+1" as described with reference to FIG. 4B) with non-zero second-order (SO) difference or is for packefs that follow it; a bit combination (MSTI) field as described in RFC 2508 which identifies the fields) being changed;
a field which indicates a first-order (FO) difference for packet (n+k) (or packet "n+1" as described with reference to FIG. 4B), a sequence number (n) field for packet "n"; another packet type field which identifies the type of the packet "n", a retransmit (ReTx =1) bit which indicates that the first-order (FO) difference being sent is for the packet "n" with non-zero second-order (SO) difference; and another bit combination (MSTI) field as described in RFC
2508 which identifies the fields) being changed; and a field which indicates a first-order (FO) difference for packet (n). The header format as shown in FIG. SD is sent from the compressor 26 of source terminal 20 to the de-compressor 36 of destination terminal 30 with respect to a next packet (n+1), when for example, the timestamp (T=1) has changed as shown in FIG. 4B.
As described previously, the source terminal 20 and the destination terminal 30 shown in FIG. 1 is provided simply as an example data network. A wide variety of implementations and arrangements of any number of terminals, switches and links in all types of data networks may be possible. For example, one preferred usage implementation of such a data network of a source terminal and a destination terminal including a header compression mechanism provided for header compression may be a cellular network for real-time applications such as Voice over IP and Video conferencing as shown in FIG. 6. The bandwidth-limited link 10 may be a combination of an IP network 12 and an access network infrastructures AI~I 14 and ANI 16 for providing cellular communications. The source terminal 20 may be a host PC or the Iike running RTP/UDP/IP, and providing packetized voice samples in RTP packets for transmission over IP
network 12 and ANIs 14 and 16. The destination terminal 30 may be a mobile terminal for cellular communications with the ANI 14. Each terminal 20 and 30 may either be a source or destination terminal for RTP packets.
The terminal 20 may include a RTP endpoint 22 which identifies this terminal (e.g., including IP address, port number, etc.) as either a source or destination for RTP packets. IP
network is provided as an example, however, other types of packet switched networks or the like can be used instead. Terminal 20 also includes a local timer 24 for generating a time stamp.
An access network infrastructure (AI'TI) 14 may be connected to IP network 12.
A mobile terminal 30 may be coupled to ANI 14 via radio frequency (RF) link 50. RF link 50 includes an uplink 52 (from terminal 30 to AI'II 14) and a downlink 54 (from AI~I 14 to terminal 30). ANI
14 may interface one or more wireless (or radio frequency) terminals (including terminal 30) in a region to IP network 12, including converting between wireline signals (provided from IP
network 12) and wireless or RF signals (provided to or from terminal 30).
Thus, ANI 14 allows RTP packets received from IP network 12 to be sent over RF link 50 tv the mobile terminal 30, and allows RTP packets from the mobile terminal 30 to be sent over IP network 12 to another terminal, such as terminal 20.
According to an embodiment of the present invention, AIVI 14 may include one or more ANI adapters (AI\II AD) 40 each of which preferably includes a timer 42. Each may be configured and implemented with a robust IP/LTDP/RTP header compression scheme according to an embodiment of the present invention for header compression operation similarly to RFC 2508 but addressing robustness when employed in lossy and error-prone networks as described with reference to FIGS. 1-4 for correctly reconstructing headers in the presence of packet losses and errors. The ANI AD 40 may perform header compression (prior to downlink transmission) and decompression (after uplink transmission). Headers (or one or more header fields, such as a time stamp) for RTP packets received from IP network I2 are compressed by ANI AD 40 prior to transmission to mobile terminal 30 over downlink 54, and packet headers received from mobile terminal 30 are decompressed by ANI AD 40 before transmission to IP
network I2. Therefore, each ANI AD 40 may be considered as a header compressor/de-compressor. Each ANI AD 40 may also interface terminals located in a specific or different area within the region to IP network 12.
I O AIVI AD 40 may include a timer 42 fox implementing a timer-based decompression technique. Additional AlVIs may also be provided for interfacing other terminals located in additional regions to IP network 12.
Mobile terminal 30 may include an RTP endpoint 132 which is a source and/or destination (receiver) for RTP packets. Mobile terminal 30 may include a terminal adapter (term AD) 36 which performs header compression (for packets to be transmitted uplink 52) and decompression (on packets received over downlink 54). Thus, terminal adapter (term AD) may be considered to be a header compressorldecompressor, similar to the ANI AD.
The terminal adapter (term AD) 36 also includes a timer 34 for calculating an approximation (or estimate) of a RTP time stamp of a current header. The terminal adapter (term AD) 36 then uses additional information in the RTP header to refine or correct the time stamp approximation. Local timer and compressed time stamp can be used to regenerate the correct time stamp for each RTP header. Other terminals may also be provided, each including its own RTP endpoint, terminal adapter and timer.
As described from the foregoing, the present invention advantageously provides a robust header compression scheme for achieving robust IP header compression in the presence of unreliable networks. The proposed scheme can also be applied flexibly based on the desired protection needed against packet losses. The protection against bit errors may be achieved by using techniques similar to that used in voice coding for example that provide uneven bit protection (but, in this case for the headers as opposed to payload).
While there have been illustrated and described what are considered to be preferred embodiments of the present invention, it will be understood by those skilled in the art that various changes and modifications may be made, and equivalents may be substituted for elements thereof without departing from the true scope of the present invention. Further, many modifications may be made to adapt a particular situation to the teachings of the present invention without departing from the central scope of the present invention.
Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed as the best mode contemplated for carrying out the present invention, but that the present invention includes all embodiments falling within the scope of the appended claims.
Claims (33)
1. A data network, comprising:
a first node comprising a header compressor/de-compressor for compressing/de-compressing headers of data packets for transmission via a bandwidth-limited link; and a second node comprising a header compressor/de-compressor for compressing/de-compressing headers of data packets for transmission via said bandwidth-limited link, wherein header compression and reconstruction are obtained by first establishing a context state for non-changing fields as well as first-order differences for changing fields between a compressor of one of said first node and said second node and a de-compressor of another one of said first node and said second node, and then when a second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received by the compressor that the new first-order difference has been received or until expiration of a predetermined period.
a first node comprising a header compressor/de-compressor for compressing/de-compressing headers of data packets for transmission via a bandwidth-limited link; and a second node comprising a header compressor/de-compressor for compressing/de-compressing headers of data packets for transmission via said bandwidth-limited link, wherein header compression and reconstruction are obtained by first establishing a context state for non-changing fields as well as first-order differences for changing fields between a compressor of one of said first node and said second node and a de-compressor of another one of said first node and said second node, and then when a second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received by the compressor that the new first-order difference has been received or until expiration of a predetermined period.
2. The data network as claimed in claim 1, wherein said predetermined period is set as a quotient of a round-trip time of a data packet and an inter-packet separation time.
3. The data network as claimed in claim 1, wherein said bandwidth-limited link provided to connect said first node to said second node corresponds to low-speed lines such as dial-up modems.
4. The data network as claimed in claim 1, wherein said bandwidth-limited link provided to connect said first node to said second node corresponds to cellular links.
5. The data network as claimed in claim 1, wherein said bandwidth-limited link provided to connect said first node to said second node corresponds to an IP-based network of an Internet Service Provider (ISP), an Internet and different source and destination networks, including, for example, a public switched telephone network (PSTN), an integrated services digital network (ISDN) and other access network infrastructures (ANI) for enabling communications between said first node and said second node.
6. The data network as claimed in claim 1, wherein the compressor combines the new first-order difference with the original first-order difference for transmission to the de-compressor, when the corresponding field changes again with non-zero second-order difference during a period of communicating the first-order difference.
7. The data network as claimed in claim 1, wherein said data packets each includes at least a header field comprising a time stamp and a packet sequence number.
8. The data network as claimed in claim 7, wherein said header compression mechanism is implemented to correctly reconstruct headers of said data packets in the presence of packet losses and errors.
9. The data network as claimed in claim 7, wherein said headers are IP/UDP/RTP
headers used for real-time communications on the Internet and for applications such as Voice over IP and Video conferencing.
headers used for real-time communications on the Internet and for applications such as Voice over IP and Video conferencing.
10. The data network as claimed in claim 8, wherein said header compression mechanism is implemented to terminate sending the first-order difference for changing fields unless the corresponding second-order difference is non-zero, after the context state has been established.
11. A packet network, comprising:
a source terminal providing a plurality of packets each packet including a header field;
a destination terminal;
a bandwidth-limited link providing connection between the source terminal and the destination terminal; and at least one network interface controller of the source terminal or the destination terminal comprises a header compression mechanism installed therein for header compression and reconstruction, said header compression mechanism establishing a context state for non-changing fields as well as first-order differences for changing fields, and then when a second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period .
a source terminal providing a plurality of packets each packet including a header field;
a destination terminal;
a bandwidth-limited link providing connection between the source terminal and the destination terminal; and at least one network interface controller of the source terminal or the destination terminal comprises a header compression mechanism installed therein for header compression and reconstruction, said header compression mechanism establishing a context state for non-changing fields as well as first-order differences for changing fields, and then when a second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period .
12. The packet network as claimed in claim 11, wherein said predetermined period is set as a quotient of a round-trip time of a data packet and an inter-packet separation time.
13. The packet network as claimed in claim 11, wherein said bandwidth-limited link provided to connect said first node to said second node corresponds to low-speed lines such as dial-up modems.
14. The packet network as claimed in claim 11, wherein said bandwidth-limited link provided to connect said first node to said second node corresponds to cellular links.
15. The packet network as claimed in claim 11, wherein said bandwidth-limited link provided to connect said first node to said second node corresponds to an IP-based network of an Internet Service Provider (ISP), an Internet and different source and destination networks, including, for example, a public switched telephone network (PSTN), an integrated services digital network (ISDN) and other access network infrastructures (ANI) for enabling communications between said first node and said second node.
16. The packet network as claimed in claim 11, wherein the compressor combines the new first-order difference with the original first-order difference for transmission to the de-compressor, when the corresponding field changes again with non-zero second-order difference during a period of communicating the first-order difference.
17. The packet network as claimed in claim 11, wherein said header field comprises a time stamp and a packet sequence number.
18. The packet network as claimed in claim 11, wherein said header compression mechanism is implemented to correctly reconstruct headers of said packets in the presence of packet losses and errors.
19. The packet network as claimed in claim 11, wherein said headers are IP/UDP/RTP headers used for real-time communications on the Internet and for applications such as Voice over IP and Video conferencing.
20. The packet network as claimed in claim 11, wherein said header compression mechanism is implemented to terminate sending the first-order difference for changing fields unless the corresponding second-order difference is non-zero, after the context state has been established.
21. A method for achieving robust header compression between a compressor and a de-compressor in the presence of an unreliable network, comprising:
sending headers of data packets, from said compressor to said de-compressor via a bandwidth-limited link until said de-compressor establishes a context state for non-changing fields of said data packets as well as first-order differences for changing fields;
when the context state has been established between said compressor and said de-compressor, determining whether a second-order difference of any field is non-zero; and when the second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
sending headers of data packets, from said compressor to said de-compressor via a bandwidth-limited link until said de-compressor establishes a context state for non-changing fields of said data packets as well as first-order differences for changing fields;
when the context state has been established between said compressor and said de-compressor, determining whether a second-order difference of any field is non-zero; and when the second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
22. The method as claimed in claim 21, wherein said predetermined period is set as a product of a round-trip time of a data packet and an inter-packet separation time.
23. The method as claimed in claim 21, wherein said bandwidth-limited link provided to connect said compressor and said de-compressor corresponds to low-speed lines such as dial-up modems.
24. The method as claimed in claim 21, wherein said bandwidth-limited link provided to connect said compressor and said de-compressor corresponds to cellular links.
25. The method as claimed in claim 21, wherein said bandwidth-limited link provided to connect said compressor and said de-compressor corresponds to an IP-based network of an Internet Service Provider (ISP), an Internet and different source and destination networks, including, for example, a public switched telephone network (PSTN), an integrated services digital network (ISDN) and other access network infrastructures (ANI) for enabling communications between said first node and said second node.
26. The method as claimed in claim 21, wherein the new first-order difference is combined with the original first-order difference for transmission to the de-compressor, when the corresponding field changes again with non-zero second-order difference during a period of communicating the first-order difference.
27. The method as claimed in claim 21, wherein said data packets each includes a header field comprising a time stamp and a packet sequence number.
28. The method as claimed in claim 21, wherein said headers are IP/UDP/RTP
headers used for real-time communications on the Internet and for applications such as Voice over IP and Video conferencing.
headers used for real-time communications on the Internet and for applications such as Voice over IP and Video conferencing.
29. A host readable medium comprising instructions that, when executed by a host system including a compressor/de-compressor, cause the host system to obtain robust header compression between a compressor and a de-compressor of a remote system by:
sending headers of data packets, from said compressor to said de-compressor via a bandwidth-limited link until said de-compressor establishes a context state for non-changing fields of said data packets as well as first-order differences for changing fields;
when the context state has been established between said compressor and said de-compressor, determining whether a second-order difference of any field is non-zero;
and when the second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
sending headers of data packets, from said compressor to said de-compressor via a bandwidth-limited link until said de-compressor establishes a context state for non-changing fields of said data packets as well as first-order differences for changing fields;
when the context state has been established between said compressor and said de-compressor, determining whether a second-order difference of any field is non-zero;
and when the second-order difference of any field is non-zero, sending a particular packet whose second-order difference is non-zero with a new first-order difference along with those following packets with the new first-order difference until a positive confirmation is received indicating that the new first-order difference has been received or until expiration of a predetermined period.
30. The host readable medium as claimed in claim 29, wherein said predetermined period is set as a quotient of a round-trip time of a data packet and an inter-packet separation time.
31. The host readable medium as claimed in claim 29, wherein said bandwidth-limited link provided to connect said first node to said second node corresponds to either low-speed lines or cellular links.
32. The host readable medium as claimed in claim 29, wherein the compressor combines the new first-order difference with the original first-order difference for transmission to the de-compressor, when the corresponding field changes again with non-zero second-order difference during a period of communicating the first-order difference.
33. The host readable medium as claimed in claim 29, wherein said header field comprises a time stamp and a packet sequence number, and said headers are IP/LTDP/RTP headers used for real-time communications on the Internet and for applications such as Voice over IP and Video conferencing.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/476,205 US6608841B1 (en) | 1999-12-30 | 1999-12-30 | System and method for achieving robust IP/UDP/RTP header compression in the presence of unreliable networks |
US09/476,205 | 1999-12-30 | ||
PCT/US2000/035088 WO2001050705A2 (en) | 1999-12-30 | 2000-12-22 | System and method for robust ip/udp/rtp header compression in unreliable networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2397687A1 CA2397687A1 (en) | 2001-07-12 |
CA2397687C true CA2397687C (en) | 2006-08-01 |
Family
ID=23890932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002397687A Expired - Fee Related CA2397687C (en) | 1999-12-30 | 2000-12-22 | System and method for achieving robust ip/udp/rtp header compression in the presence of unreliable networks |
Country Status (7)
Country | Link |
---|---|
US (1) | US6608841B1 (en) |
EP (1) | EP1243118B1 (en) |
JP (1) | JP3559019B2 (en) |
AU (1) | AU2912201A (en) |
CA (1) | CA2397687C (en) |
DE (1) | DE60022391T2 (en) |
WO (1) | WO2001050705A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8837471B2 (en) | 2001-08-01 | 2014-09-16 | Certicom Corp. | Disabling header compression over point-to-point protocol (PPP) |
Families Citing this family (155)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6804211B1 (en) * | 1999-08-03 | 2004-10-12 | Wi-Lan Inc. | Frame structure for an adaptive modulation wireless communication system |
EP1411699B8 (en) * | 1999-08-06 | 2006-10-18 | Matsushita Electric Industrial Co., Ltd. | Data transmission method, data transmission apparatus, and data reception apparatus |
US7058728B1 (en) * | 1999-10-29 | 2006-06-06 | Nokia Corporation | Method and apparatus for initiating compression of headers of packets and refreshing the context related to the packets |
JP3423930B2 (en) * | 1999-12-27 | 2003-07-07 | 富士通株式会社 | Bump forming method, electronic component, and solder paste |
US6839339B1 (en) * | 2000-02-02 | 2005-01-04 | Lucent Technologies Inc. | Header compression for general packet radio service tunneling protocol (GTP)-encapsulated packets |
US6999429B1 (en) * | 2000-03-03 | 2006-02-14 | Telefonaktiebolaget Lm Ericsson | Access technology integrated header compression |
EP1146713B1 (en) * | 2000-03-03 | 2005-04-27 | NTT DoCoMo, Inc. | Method and apparatus for packet transmission with header compression |
US6970476B1 (en) * | 2000-03-07 | 2005-11-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient header compression context update in packet communications |
US20020001315A1 (en) * | 2000-03-21 | 2002-01-03 | Tran Hung V. | Method and apparatus for compressing IP/UDP/RTP headers in a lossy environment |
US7539130B2 (en) * | 2000-03-28 | 2009-05-26 | Nokia Corporation | Method and system for transmitting and receiving packets |
US20020031103A1 (en) * | 2000-05-02 | 2002-03-14 | Globalstar L.P. | User terminal employing quality of service path determination and bandwidth saving mode for a satellite ISP system using non-geosynchronous orbit satellites |
US20010054060A1 (en) * | 2000-06-16 | 2001-12-20 | Fillebrown Lisa A. | Personal wireless network |
US20010053134A1 (en) * | 2000-06-16 | 2001-12-20 | Fillebrown Lisa A. | Router for a personal wireless network |
US8386557B2 (en) * | 2000-06-16 | 2013-02-26 | Enfora, Inc. | Method for supporting a personal wireless network |
FR2810484B1 (en) * | 2000-06-19 | 2002-09-06 | Cit Alcatel | MANAGEMENT METHOD AND CONFERENCE ARRANGEMENT FOR A COMMUNICATION SYSTEM COMPRISING USER TERMINALS COMMUNICATING UNDER IP PROTOCOL |
US7136577B1 (en) * | 2000-06-29 | 2006-11-14 | Tandberg Telecom As | RTP-formated media clips |
ATE305199T1 (en) * | 2000-07-25 | 2005-10-15 | Siemens Ag | HEADER COMPRESSION METHOD FOR NETWORK PROTOCOLS |
US20020018471A1 (en) * | 2000-08-09 | 2002-02-14 | Lucid V.O.N. Ltd. | Method and system for voice-over-IP communication |
US7586899B1 (en) | 2000-08-18 | 2009-09-08 | Juniper Networks, Inc. | Methods and apparatus providing an overlay network for voice over internet protocol applications |
US7002993B1 (en) * | 2000-08-18 | 2006-02-21 | Juniper Networks, Inc. | Method and apparatus providing media aggregation in a packet-switched network |
US7209473B1 (en) | 2000-08-18 | 2007-04-24 | Juniper Networks, Inc. | Method and apparatus for monitoring and processing voice over internet protocol packets |
JP3889919B2 (en) * | 2000-08-31 | 2007-03-07 | 株式会社日立製作所 | Information distribution method, information reception method, information distribution system, information distribution apparatus, reception terminal, and storage medium |
EP1187417B1 (en) * | 2000-09-07 | 2005-05-11 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for transmitting data packets |
DE60018927T2 (en) * | 2000-09-07 | 2005-07-28 | Matsushita Electric Industrial Co. Ltd., Kadoma | Method and apparatus for data packet transmission |
JP3323483B2 (en) * | 2000-09-12 | 2002-09-09 | 松下電器産業株式会社 | Packet transmission device and packet transmission method |
US6845105B1 (en) * | 2000-09-28 | 2005-01-18 | Telefonaktiebolaget Lm Ericsson | Method and apparatus for maintaining sequence numbering in header compressed packets |
GB2367459A (en) | 2000-09-28 | 2002-04-03 | Roke Manor Research | Method of compressing data packets |
US6967964B1 (en) * | 2000-10-03 | 2005-11-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Context identification using header compression key at link layer |
DE60118609T2 (en) * | 2000-10-11 | 2007-05-03 | Broadcom Corp., Irvine | Cable modem system and method for supporting extended protocols |
US7349994B2 (en) | 2000-10-17 | 2008-03-25 | Avaya Technology Corp. | Method and apparatus for coordinating routing parameters via a back-channel communication medium |
US8023421B2 (en) | 2002-07-25 | 2011-09-20 | Avaya Inc. | Method and apparatus for the assessment and optimization of network traffic |
US7756032B2 (en) | 2000-10-17 | 2010-07-13 | Avaya Inc. | Method and apparatus for communicating data within measurement traffic |
US7720959B2 (en) | 2000-10-17 | 2010-05-18 | Avaya Inc. | Method and apparatus for characterizing the quality of a network path |
WO2002033894A2 (en) | 2000-10-17 | 2002-04-25 | Routescience Technologies, Inc. | Method and apparatus for performance and cost optimization in an internetwork |
US7080161B2 (en) | 2000-10-17 | 2006-07-18 | Avaya Technology Corp. | Routing information exchange |
US7406539B2 (en) * | 2000-10-17 | 2008-07-29 | Avaya Technology Corp. | Method and apparatus for performance and cost optimization in an internetwork |
US7363367B2 (en) | 2000-10-17 | 2008-04-22 | Avaya Technology Corp. | Systems and methods for robust, real-time measurement of network performance |
US7289433B1 (en) * | 2000-10-24 | 2007-10-30 | Nortel Networks Limited | Method and system for providing robust connections in networking applications |
US7069495B2 (en) * | 2000-10-30 | 2006-06-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Bit error resilience for an internet protocol stack |
CA2467700C (en) * | 2000-11-15 | 2012-03-20 | Ensemble Communications, Inc. | Improved frame structure for a communication system using adaptive modulation |
US7046672B2 (en) * | 2000-11-16 | 2006-05-16 | Microsoft Corporation | Robust, inferentially synchronized transmission of compressed transport-layer-protocol headers |
US8009667B1 (en) | 2001-01-16 | 2011-08-30 | Wi—LAN, Inc. | Packing source data packets into transporting packets with fragmentation |
EP1233595A1 (en) * | 2001-02-15 | 2002-08-21 | Siemens Aktiengesellschaft | Processing of an IP address on system level |
US7693508B2 (en) * | 2001-03-28 | 2010-04-06 | Qualcomm Incorporated | Method and apparatus for broadcast signaling in a wireless communication system |
US9100457B2 (en) | 2001-03-28 | 2015-08-04 | Qualcomm Incorporated | Method and apparatus for transmission framing in a wireless communication system |
US7031666B2 (en) * | 2001-03-28 | 2006-04-18 | Qualcomm Incorporated. | Method and apparatus for header compression in a wireless communication system |
US8121296B2 (en) | 2001-03-28 | 2012-02-21 | Qualcomm Incorporated | Method and apparatus for security in a data processing system |
US8077679B2 (en) | 2001-03-28 | 2011-12-13 | Qualcomm Incorporated | Method and apparatus for providing protocol options in a wireless communication system |
SE0101295D0 (en) * | 2001-04-10 | 2001-04-10 | Ericsson Telefon Ab L M | A method and network for delivering streaming data |
US20020191691A1 (en) * | 2001-05-10 | 2002-12-19 | Holborow Clive Eric | Payload header suppression including removal of fields that vary in known patterns |
JP3600189B2 (en) * | 2001-06-19 | 2004-12-08 | 松下電器産業株式会社 | Packet transmitting / receiving apparatus and packet transmitting method |
US7170896B2 (en) * | 2001-06-20 | 2007-01-30 | Motorola, Inc. | Communication infrastructure and method to preserve communication link bandwidth in a packet communication session |
US20030028611A1 (en) * | 2001-07-23 | 2003-02-06 | Kenny John G. | Multi-task, multi-location networking system |
US7362707B2 (en) * | 2001-07-23 | 2008-04-22 | Acme Packet, Inc. | System and method for determining flow quality statistics for real-time transport protocol data flows |
CN1225883C (en) * | 2001-07-27 | 2005-11-02 | 华为技术有限公司 | Bandwidth-saving phonetic transmission method |
US7010613B2 (en) * | 2001-09-07 | 2006-03-07 | Intel Corporation | Methods and apparatus for reducing frame overhead on local area networks |
US6954460B2 (en) | 2001-10-05 | 2005-10-11 | Ericsson Inc. | Method and apparatus for compressing packet headers |
US7352868B2 (en) | 2001-10-09 | 2008-04-01 | Philip Hawkes | Method and apparatus for security in a data processing system |
US7649829B2 (en) | 2001-10-12 | 2010-01-19 | Qualcomm Incorporated | Method and system for reduction of decoding complexity in a communication system |
JP2005509381A (en) * | 2001-11-06 | 2005-04-07 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Wireless communication device for header compression |
US7088739B2 (en) * | 2001-11-09 | 2006-08-08 | Ericsson Inc. | Method and apparatus for creating a packet using a digital signal processor |
DE60229482D1 (en) * | 2001-11-24 | 2008-12-04 | Lg Electronics Inc | Method for transmitting packet data in compressed form in a communication system |
FI113324B (en) * | 2001-12-21 | 2004-03-31 | Nokia Corp | Enhanced Device Arrangement, Terminal and Method for Audio Signal Transmission in Packet Switched Data Network |
JP2003338830A (en) * | 2002-03-12 | 2003-11-28 | Matsushita Electric Ind Co Ltd | Media transmitting method, media receiving method, media transmitter and media receiver |
US7106733B2 (en) * | 2002-03-20 | 2006-09-12 | Intel Corporation | Method and apparatus for network header compression |
GB2386805B (en) * | 2002-03-22 | 2004-05-26 | Roke Manor Research | Apparatus and method for compression of a signalling portion of a communications packet |
US8619592B2 (en) * | 2002-06-12 | 2013-12-31 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for increased internet protocol (IP) headers compression performance by reporting cause of missing packets |
KR100497357B1 (en) * | 2002-06-26 | 2005-06-23 | 삼성전자주식회사 | Header compressed and packet multiplexed apparatus and method in the network environment based on IP |
US7920590B2 (en) * | 2002-07-12 | 2011-04-05 | Spyder Navigations L.L.C. | Wireless communications system having built-in packet data compression and support for enabling non-standard features between network elements |
JP4317403B2 (en) * | 2002-08-09 | 2009-08-19 | パナソニック株式会社 | Header compression apparatus and header compression method |
KR100889864B1 (en) * | 2002-08-14 | 2009-03-24 | 엘지전자 주식회사 | Method and system for compressing and transmitting multimedia data |
KR100884956B1 (en) | 2002-08-14 | 2009-02-23 | 엘지전자 주식회사 | Method and system for tansmitting/receiving asymmetric two-way packet data |
JP3792631B2 (en) | 2002-09-30 | 2006-07-05 | Necインフロンティア株式会社 | Packet transmission method and apparatus, base station apparatus, wireless LAN terminal apparatus, and wireless LAN system using the same |
TWI250724B (en) * | 2002-10-11 | 2006-03-01 | Ericsson Telefon Ab L M | Method and communication system for packeting messaging, and header compressor unit |
US7599655B2 (en) | 2003-01-02 | 2009-10-06 | Qualcomm Incorporated | Method and apparatus for broadcast services in a communication system |
US20040136476A1 (en) * | 2003-01-10 | 2004-07-15 | Rosen Eric C. | Method and apparatus for compressing header information for short data burst messaging |
US7333479B2 (en) * | 2003-06-30 | 2008-02-19 | Nokia Corporation | RFID system with packetized data storage in a mobile environment: methods, systems and program products |
US8098818B2 (en) | 2003-07-07 | 2012-01-17 | Qualcomm Incorporated | Secure registration for a multicast-broadcast-multimedia system (MBMS) |
CN1802567B (en) * | 2003-07-08 | 2012-04-25 | 思科技术公司 | Performing compression of user datagram protocol packets |
US7065087B2 (en) * | 2003-07-08 | 2006-06-20 | Cisco Technology, Inc. | Performing compression of user datagram protocol packets |
US7317724B2 (en) * | 2003-07-08 | 2008-01-08 | Cisco Technology, Inc. | Performing compression of user datagram protocol packets |
US8718279B2 (en) | 2003-07-08 | 2014-05-06 | Qualcomm Incorporated | Apparatus and method for a secure broadcast system |
KR100594115B1 (en) * | 2003-07-30 | 2006-06-28 | 삼성전자주식회사 | Apparatus and method for configuring header compression context according to channel type change of packet data service |
US8724803B2 (en) | 2003-09-02 | 2014-05-13 | Qualcomm Incorporated | Method and apparatus for providing authenticated challenges for broadcast-multicast communications in a communication system |
US8767704B2 (en) * | 2003-10-17 | 2014-07-01 | Nokia Solutions And Networks Oy | Compressing header data |
CN100505729C (en) * | 2003-10-30 | 2009-06-24 | Ut斯达康(中国)有限公司 | Real-time IP packet wireless transmission apparatus and method applying head-compression technique |
US7129853B2 (en) * | 2003-11-18 | 2006-10-31 | Kyocera Wireless Corp. | System and method for remote control of a wireless handset |
US20050144311A1 (en) * | 2003-12-09 | 2005-06-30 | International Business Machines Corporation | Communications network for transmitting packets of data via a plurality of sequential routers from a transmitting station to a receiving station with packet header coding for maximizing transmission efficiency |
US7430617B2 (en) * | 2003-12-19 | 2008-09-30 | Nokia Corporation | Method and system for header compression |
US8327026B1 (en) * | 2004-07-01 | 2012-12-04 | Hewlett-Packard Development Company, L.P. | Method and system for selecting a data compression technique for data transfer through a data network |
CN100407692C (en) * | 2004-08-11 | 2008-07-30 | 华为技术有限公司 | System and method for realizing IP header compression |
CN100428733C (en) * | 2004-08-11 | 2008-10-22 | 华为技术有限公司 | Error recovery method and device for IP header compression in mobile communication network |
US7411975B1 (en) | 2004-08-26 | 2008-08-12 | Juniper Networks, Inc. | Multimedia over internet protocol border controller for network-based virtual private networks |
JP4661373B2 (en) * | 2004-10-15 | 2011-03-30 | Kddi株式会社 | Transmission device and transmission program for controlling discard of specific media data |
US7680105B2 (en) * | 2004-12-03 | 2010-03-16 | Cisco Technology, Inc. | Voice over internet protocol (VOIP) subcell multiplexing |
US20060262788A1 (en) * | 2005-05-23 | 2006-11-23 | Broadcom Corporation | Dynamic payload header suppression extensions for IPV6 |
US8804765B2 (en) * | 2005-06-21 | 2014-08-12 | Optis Wireless Technology, Llc | Dynamic robust header compression |
US7620870B2 (en) * | 2005-11-22 | 2009-11-17 | Cisco Technology, Inc. | Data compression method and system |
US7965771B2 (en) | 2006-02-27 | 2011-06-21 | Cisco Technology, Inc. | Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network |
US7876695B2 (en) * | 2006-03-07 | 2011-01-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Communication station and method providing flexible compression of data packets |
US8218654B2 (en) * | 2006-03-08 | 2012-07-10 | Cisco Technology, Inc. | Method for reducing channel change startup delays for multicast digital video streams |
US9198084B2 (en) | 2006-05-26 | 2015-11-24 | Qualcomm Incorporated | Wireless architecture for a traditional wire-based protocol |
US8031701B2 (en) * | 2006-09-11 | 2011-10-04 | Cisco Technology, Inc. | Retransmission-based stream repair and stream join |
US20080101421A1 (en) * | 2006-10-30 | 2008-05-01 | Stephen Gordon | Fast audio and angle switching via multiple demux buffers |
US7937531B2 (en) * | 2007-02-01 | 2011-05-03 | Cisco Technology, Inc. | Regularly occurring write back scheme for cache soft error reduction |
US8769591B2 (en) | 2007-02-12 | 2014-07-01 | Cisco Technology, Inc. | Fast channel change on a bandwidth constrained network |
US7940644B2 (en) * | 2007-03-14 | 2011-05-10 | Cisco Technology, Inc. | Unified transmission scheme for media stream redundancy |
US20080253369A1 (en) * | 2007-04-16 | 2008-10-16 | Cisco Technology, Inc. | Monitoring and correcting upstream packet loss |
US8356331B2 (en) * | 2007-05-08 | 2013-01-15 | Qualcomm Incorporated | Packet structure for a mobile display digital interface |
US8711851B1 (en) * | 2007-07-19 | 2014-04-29 | American Megatrends, Inc. | Multi-protocol data transfers |
US20090080422A1 (en) * | 2007-09-21 | 2009-03-26 | Posdata Co., Ltd. | Header-compression packet processing method, mobile station, base station, and control station in wireless communication system |
US8001278B2 (en) * | 2007-09-28 | 2011-08-16 | Intel Corporation | Network packet payload compression |
US8787153B2 (en) | 2008-02-10 | 2014-07-22 | Cisco Technology, Inc. | Forward error correction based data recovery with path diversity |
US9600261B2 (en) * | 2008-03-25 | 2017-03-21 | Qualcomm Incorporated | Apparatus and methods for widget update scheduling |
US9110685B2 (en) | 2008-03-25 | 2015-08-18 | Qualcomm, Incorporated | Apparatus and methods for managing widgets in a wireless communication environment |
US9747141B2 (en) * | 2008-03-25 | 2017-08-29 | Qualcomm Incorporated | Apparatus and methods for widget intercommunication in a wireless communication environment |
US9269059B2 (en) * | 2008-03-25 | 2016-02-23 | Qualcomm Incorporated | Apparatus and methods for transport optimization for widget content delivery |
US9069575B2 (en) | 2008-03-25 | 2015-06-30 | Qualcomm Incorporated | Apparatus and methods for widget-related memory management |
US8811294B2 (en) | 2008-04-04 | 2014-08-19 | Qualcomm Incorporated | Apparatus and methods for establishing client-host associations within a wireless network |
MX2010011822A (en) * | 2008-04-28 | 2011-02-18 | Xg Technology Inc | Header compression mechanism for transmitting rtp packets over wireless links. |
US8902805B2 (en) | 2008-10-24 | 2014-12-02 | Qualcomm Incorporated | Cell relay packet routing |
US9398089B2 (en) * | 2008-12-11 | 2016-07-19 | Qualcomm Incorporated | Dynamic resource sharing among multiple wireless devices |
US20100205321A1 (en) * | 2009-02-12 | 2010-08-12 | Qualcomm Incorporated | Negotiable and adaptable periodic link status monitoring |
US9264248B2 (en) * | 2009-07-02 | 2016-02-16 | Qualcomm Incorporated | System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment |
US8140709B2 (en) * | 2009-08-07 | 2012-03-20 | Alcatel Lucent | Two stage internet protocol header compression |
CN102056235B (en) * | 2009-11-09 | 2017-04-26 | 华为技术有限公司 | Data transmission method, equipment and system |
US9582238B2 (en) | 2009-12-14 | 2017-02-28 | Qualcomm Incorporated | Decomposed multi-stream (DMS) techniques for video display systems |
US9168946B2 (en) * | 2010-03-19 | 2015-10-27 | Javad Gnss, Inc. | Method for generating offset paths for ground vehicles |
US8964783B2 (en) | 2011-01-21 | 2015-02-24 | Qualcomm Incorporated | User input back channel for wireless displays |
US9787725B2 (en) | 2011-01-21 | 2017-10-10 | Qualcomm Incorporated | User input back channel for wireless displays |
US9065876B2 (en) | 2011-01-21 | 2015-06-23 | Qualcomm Incorporated | User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays |
US9582239B2 (en) | 2011-01-21 | 2017-02-28 | Qualcomm Incorporated | User input back channel for wireless displays |
US10135900B2 (en) | 2011-01-21 | 2018-11-20 | Qualcomm Incorporated | User input back channel for wireless displays |
US9413803B2 (en) | 2011-01-21 | 2016-08-09 | Qualcomm Incorporated | User input back channel for wireless displays |
US8674957B2 (en) | 2011-02-04 | 2014-03-18 | Qualcomm Incorporated | User input device for wireless back channel |
US10108386B2 (en) | 2011-02-04 | 2018-10-23 | Qualcomm Incorporated | Content provisioning for wireless back channel |
US9503771B2 (en) | 2011-02-04 | 2016-11-22 | Qualcomm Incorporated | Low latency wireless display for graphics |
JP2013031087A (en) * | 2011-07-29 | 2013-02-07 | D & M Holdings Inc | Content data transmission system and content data transmission method |
JP2013085224A (en) | 2011-07-29 | 2013-05-09 | D & M Holdings Inc | Content data transmission system and content data transmission method |
US20140022969A1 (en) * | 2012-07-17 | 2014-01-23 | Cubic Corporation | Application and method of inter-frame gap reduction in low-power time-synchronized networks |
WO2013072765A2 (en) * | 2011-11-18 | 2013-05-23 | Dialogic Networks (Israel) Ltd. | Method and apparatus for compressing communication packets |
US9525998B2 (en) | 2012-01-06 | 2016-12-20 | Qualcomm Incorporated | Wireless display with multiscreen service |
US9270109B2 (en) | 2013-03-15 | 2016-02-23 | Schweitzer Engineering Laboratories, Inc. | Exchange of messages between devices in an electrical power system |
US9065763B2 (en) | 2013-03-15 | 2015-06-23 | Schweitzer Engineering Laboratories, Inc. | Transmission of data over a low-bandwidth communication channel |
US9620955B2 (en) | 2013-03-15 | 2017-04-11 | Schweitzer Engineering Laboratories, Inc. | Systems and methods for communicating data state change information between devices in an electrical power system |
FR3006534B1 (en) * | 2013-05-31 | 2015-05-22 | Thales Sa | METHODS OF TRANSMITTING AND RECEIVING DATA BETWEEN A TERMINAL AND A GATEWAY, IN PARTICULAR THROUGH A SATELLITE LINK |
US9374443B2 (en) * | 2013-07-11 | 2016-06-21 | Qualcomm Incorporated | Method and apparatus for efficient packet compression |
KR101754285B1 (en) * | 2013-08-19 | 2017-07-06 | 엘지전자 주식회사 | Broadcast transmitting device, broadcast receiving device, operating method of the broadcast transmitting device, and operating method of the broadcast receiving device |
US9674803B2 (en) | 2013-09-23 | 2017-06-06 | Qualcomm Incorporated | Out-of synchronization detection and correction during compression |
US20160378630A1 (en) * | 2015-06-25 | 2016-12-29 | Dell Products L.P. | Port monitoring system |
US9924000B2 (en) * | 2016-03-14 | 2018-03-20 | Sprint Communications Company L.P. | Communication packet header data compression |
EP3264779B1 (en) * | 2016-06-30 | 2022-04-13 | Apple Inc. | Apparatus adapted for maintaining receiving data quality and method for receiving data |
EP3766219B1 (en) * | 2018-03-16 | 2023-02-15 | Acklio | Method and apparatus for processing message data |
US10819727B2 (en) | 2018-10-15 | 2020-10-27 | Schweitzer Engineering Laboratories, Inc. | Detecting and deterring network attacks |
JP2020205531A (en) * | 2019-06-17 | 2020-12-24 | 富士通株式会社 | Network monitoring device, transmission device, and network monitoring method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5148272A (en) * | 1991-02-27 | 1992-09-15 | Rca Thomson Licensing Corporation | Apparatus for recombining prioritized video data |
US5246779A (en) * | 1992-08-10 | 1993-09-21 | Quantum Chemical Corporation | Microfine propylene polymer powders and process for their preparation |
US5742773A (en) * | 1996-04-18 | 1998-04-21 | Microsoft Corporation | Method and system for audio compression negotiation for multiple channels |
US5987022A (en) * | 1996-12-27 | 1999-11-16 | Motorola, Inc. | Method for transmitting multiple-protocol packetized data |
US6032197A (en) * | 1997-09-25 | 2000-02-29 | Microsoft Corporation | Data packet header compression for unidirectional transmission |
US6125348A (en) * | 1998-03-12 | 2000-09-26 | Liquid Audio Inc. | Lossless data compression with low complexity |
US6519223B1 (en) * | 1999-04-06 | 2003-02-11 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for implementing a semi reliable retransmission protocol |
US6198735B1 (en) * | 1999-05-20 | 2001-03-06 | Motorola, Inc. | Method for retransmitting a data packet in a packet network |
US6300887B1 (en) * | 1999-11-09 | 2001-10-09 | Nokia Networks Oy | Efficient handoff procedure for header compression |
-
1999
- 1999-12-30 US US09/476,205 patent/US6608841B1/en not_active Expired - Lifetime
-
2000
- 2000-12-22 EP EP00993761A patent/EP1243118B1/en not_active Expired - Lifetime
- 2000-12-22 AU AU29122/01A patent/AU2912201A/en not_active Abandoned
- 2000-12-22 WO PCT/US2000/035088 patent/WO2001050705A2/en active IP Right Grant
- 2000-12-22 DE DE60022391T patent/DE60022391T2/en not_active Expired - Lifetime
- 2000-12-22 JP JP2001550961A patent/JP3559019B2/en not_active Expired - Fee Related
- 2000-12-22 CA CA002397687A patent/CA2397687C/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8837471B2 (en) | 2001-08-01 | 2014-09-16 | Certicom Corp. | Disabling header compression over point-to-point protocol (PPP) |
US9629024B2 (en) | 2001-08-01 | 2017-04-18 | Certicom Corp. | Disabling header compression over point-to-point protocol (PPP) |
Also Published As
Publication number | Publication date |
---|---|
JP3559019B2 (en) | 2004-08-25 |
US6608841B1 (en) | 2003-08-19 |
DE60022391T2 (en) | 2006-05-18 |
EP1243118A2 (en) | 2002-09-25 |
WO2001050705A2 (en) | 2001-07-12 |
WO2001050705A3 (en) | 2002-01-03 |
EP1243118B1 (en) | 2005-08-31 |
JP2003519965A (en) | 2003-06-24 |
DE60022391D1 (en) | 2005-10-06 |
AU2912201A (en) | 2001-07-16 |
CA2397687A1 (en) | 2001-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2397687C (en) | System and method for achieving robust ip/udp/rtp header compression in the presence of unreliable networks | |
US6839339B1 (en) | Header compression for general packet radio service tunneling protocol (GTP)-encapsulated packets | |
RU2424627C2 (en) | Dynamic robust header compression | |
JP4582565B2 (en) | Robust header compression in packet communication | |
JP3694241B2 (en) | Method and apparatus for telecommunications using Internet protocols | |
US20040037317A1 (en) | Multimedia communications over power lines | |
EP1045562A2 (en) | A Light-weight Internet Protocol Encapsulation (LIPE) scheme for multimedia traffic transport | |
EP1226676B1 (en) | Sparse feedback in high delay- low bandwidth wireless systems | |
JP2002026963A (en) | Packet transmission method, repeater and data terminal | |
WO2002028107A2 (en) | Enhanced header compression profile | |
EP1187417B1 (en) | Method and apparatus for transmitting data packets | |
EP1187416B1 (en) | Method and apparatus for transmitting data packets | |
US7995590B2 (en) | Method and system for communicating H.263 macroblock boundaries using H.221 BAS for RFC2190-compliant fragmentation | |
JP4875076B2 (en) | Efficient encoding of out-of-order data packets in the network | |
KR100689473B1 (en) | Apparatus and method for compressing protocol header in communication system | |
US7450586B2 (en) | Network header compression arrangement | |
US20040034826A1 (en) | Transport protocol checksum recalculation | |
Le et al. | Efficient and robust header compression for real-time services | |
JP2009501500A5 (en) | ||
CN100428733C (en) | Error recovery method and device for IP header compression in mobile communication network | |
Naidu et al. | Implementation of header compression in 3GPP LTE | |
Ang et al. | Performance evaluation of robust header compression (ROHC) over unidirectional links using DVB-S testbed | |
Zhang | WLC04-2: Performance of Robust Header Compression for VoIP in 1xEV-DO Revision A System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKLA | Lapsed |
Effective date: 20141222 |