In the following description, specific details are given to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams, or not be shown at all, in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, structures and techniques may not be shown in detail in order not to obscure the embodiments.
Also, it is noted that the embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
Moreover, a storage medium may represent one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices, and/or other machine readable mediums for storing information. The term “machine readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels, and various other mediums capable of storing, containing, or carrying instruction(s) and/or data.
Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, or a combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium or other storage means. A processor may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or a combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, and the like, may be passed, forwarded, or transmitted via a suitable means including memory sharing, message passing, token passing, and network transmission, among others.
One aspect provides a link-layer assisted header compression from a mobile terminal to a network gateway to reduce the overhead being transmitted. Additionally, the overheads introduced link layer protocol layers are eliminated or reduced. The reduction in overhead reduces packet sizes and enables a mobile terminal to have sufficient power to communicate over a low-rate communication link (e.g., 2.4 Kbps RL rates) to a satellite. The service between a mobile terminal and satellite is often referred to as mobile satellite service (MSS) with ancillary terrestrial component (ATC).
In some examples described herein, a specific communication standard may be described. One such standard is known as Evolution-Data Optimize (1xEV-DO, EV-DO or EVDO) and provides fast packet establishment on both the forward and reverse links along with air interface enhancements that reduce latency and improve data rates. EVDO is a telecommunications standard for the wireless transmission of data through radio signals. It may employ multiplexing techniques such as CDMA (Code division multiple access) as well as Frequency division duplex (FDD) to maximize the amount of data transmitted.
However, the novel features described herein may also be applied to other communication standards and/or communication protocols.
When the mobile terminal 102 is not within reach of an access point, it may be configured to use one or more satellites 114 and 116 to reach a gateway 104 to the IP-based network 112. For example, as illustrated, the mobile terminal 102 utilizes a first satellite 114 to reach the gateway 104 that is communicatively coupled to the IP-based network 112. In this manner, the mobile terminal 102 may reach other devices (such as the second mobile terminal 110) even when it is not within reach of an access point. In some applications, the mobile terminal 102 may be configured to utilize the satellite-based communication link as a preferred mode of operation instead of an access point.
Because of the distance from a mobile terminal to an orbiting satellite is often thousands of miles, the power available to a conventional mobile terminal may be insufficient to achieve reliable communications through a satellite. Thus, one feature provides for compressing and/or removing link layer overhead to allow of the mobile terminal to communicate over a low-rate communication link (e.g., 2.4 Kbps RL rates) to the satellite. This is particularly challenging when transmitting time-sensitive data, such as voice-over-IP (VoIP) packets where both reliability and minimum delays are important.
One technique for reducing the overhead of packets transmitted between a mobile terminal and a satellite is to apply robust header compression to such packets.
Robust Header Compression (ROHC) offers one such techniques to reduce the large Real-time Transport Protocol (RTP)/ User Datagram Protocol (UDP)/Internet Protocol (IP) header overheads on a VoIP payload. ROHC implementation compresses the header overheads from forty (40) bytes (12 byte RTP header+ 8 byte UDP header+20 bytes for an IPv4 header) to one to two (1-2) bytes overhead. However, even this overhead is too high for the satellite application given the low-rate communication link. For example,
A zero-header overhead for header compression would be best. One technique to accomplish a zero-header overhead is Link-Layer Assisted (LLA) header compression for VoIP, where the gateway (e.g., access point receiving communication from satellite, Packet Data Serving Node (PDSN)) to the IP-based network act as proxy to the mobile terminal to insert the RTP/UDP/IP overhead before sending the VoIP packets over the IP-based network. Software techniques need to be designed and implemented at the handset and the gateway/PDSN to support the LLA header compression method.
In one implementation, the LLA header compression technique may implemented by a compression module, executing in the transmit side (where the VoIP RTP/UDP/IP packets emanate), and a decompression module, executing in the receive side (where the compressed VoIP packets are received).
VoIP call sessions may be established between two parties based on different call setup signaling procedures, e.g. Session Initiation Protocol (SIP) or H.323 procedures. Such signaling procedures negotiate an RTP stream to carry the actual VoIP traffic. An RTP stream for a new call setup is uniquely identified by its SSRC field in the RTP header, and further the source/destination UDP ports and source/destination IP addresses. These fields constitute the unique signature of the RTP stream. At the start of an RTP session during a VoIP call, the sender starts transmitting the RTP packets (VoIP payloads with RTP/JUDP/IP headers) and these packets are presented to the compression module 202 in the transmit side. The compression module state machine has procedures to identify that the presented RTP stream has a unique signature and initiates procedures to setup a new context for this call and send signaling information to the decompression module 204 to aid it to create a context for the new RTP session. The compression module 202 sends the complete context information regarding the new RTP stream in a signaling message (e.g., “Initial Context Info” message 210) to the decompression module 204. It may be noted that the compression module 202 may not need to send the entire RTP/UDP/IP header information in the initial context signaling packet (as is done in ROHC), but only such information from the RTP/UDP/IP header that are absolutely necessary to be conveyed to the decompression module 204 in order to aid it to recreate complete RTP/UDP/IP headers for zero-header VoIP packets. This may reduce the signaling bandwidth overhead over 50% from traditional header compression techniques such as Robust Header Compression (ROHC) and the savings are especially important when there is low rate link (e.g. 2.4 or 4.8 kbps link) between the two ends of the VoIP call. The decompression module 204 receives the new context signaling message from the compression module 202, and creates a new context for the RTP stream and saves the context information for subsequent reconstruction of RTP packets. The decompression module 204 may send an acknowledgement (ACK) signaling packet to the compression module 202 to acknowledge the receipt of a new context signaling packet. On receiving the ACK signaling packet from the decompression module 204, the compression module 202 starts stripping the RTP/UDP/IP header from the VoIP packets and transmits only the VoIP payload to the decompression module 204. The decompression module 204 reconstructs the header based on the context info and information provided by the lower layers (Physical layer/MAC layer).
Once the context is established between the compression and decompression modules, the compression module removes the RTP/UDP/IP headers from incoming VoIP packets to transmit a compressed zero-header VoIP packet to the decompression. Upon receiving the zero-header VoIP packet, the decompression module reconstructs the RTP/UDP/IP headers back from the shared context information and (possibly) link layer-assisted procedures described below.
RTP Sequence Number (SN) is reconstructed using link layer-assistance from the RLP layer. The decompression module increments the sequence number for every new packet (both good and error packets) received, with the initial RTP sequence number obtained from the Initial Context message sent by the compression module. The RLP layer also provides an indication when a packet is received in error. The decompression module uses the error indication to increment the RTP sequence number, but no packet is sent to the higher layer. This is done to maintain the sequence number synchronization.
IP-ID is filled with the same value as the RTP sequence number. This field is used by the IP protocol to identify the fragments of one datagram from those of another. Since the payload size of VoIP packets generated by a 4 GV half-rate max vocoder (for example) is eighty (80) bits, there is no IP fragmentation done on a VoIP packet and the IP-ID field can be set to any unique value for each packet. In particular, it can be set to the same value as the RTP sequence number reconstructed before.
RTP Time Stamp(TS) may be reconstructed using the timestamp received in the Initial Context message, sequence number of the current packet and the sequence number (SN) of the previous packet. For example, VoIP packets are generated for every twenty milliseconds (20 ms) by a 3GPP2-compliant 4 GV half-rate max vocoder. This implies the RTP timestamp increases by 160(8 K samples/sec*20 ms) for consecutive packets.
If the VoIP vocoder is also doing DTX (Discontinuous Transmission), then RTP TS may not increment in sync with RTP SN. In this case, an easy way to reconstruct the RTP TS would be to increment it by (for example) 160 every 20 msec. This does not require any reliance on RTP SN.
Type of Service (TOS) field may be filled with the value (0xb8) for Expedited Flow (EF). It is assumed that VoIP flow has characteristics of EF.
The rest of the fields are determined using the initial context information or computed from the other fields (e.g. length, checksum, etc.).
To further illustrate the operation of the compression and decompression modules in providing zero-header compression to a VoIP packet,
At the mobile terminal 902, the VoIP packets to be transmitted are first presented to the PPP layer from the RTP/UDP/IP layer. However, unlike other data packets, the PPP layer 906 does not frame the VoIP packets because IP packets are presented as-is, without PPP encapsulation, to the lower layers that do the header removal. The IP packet is then presented to the 1xEV-DO protocol stack 908 (data packets) and 910 (VoIP packets), where it gets through the Flow Protocol and is passed to the Route Protocol that performs the RTP/JUDP/IP header removal. For VoIP packets, the Route Protocol in the current 1xEV-DO stack 910 may include zero-header header compression procedures which completely eliminate the header overheads. Upon header removal, the VoIP packet is then passed onto the RLP layer (which is specifically configured for EF flows, viz. NAK disabled, etc.) which then adds the RLP header (sequence number, etc.) and then passes it on to the RL MAC 912 for transmission on the RL traffic channel. It is noted that the MAC layer overheads (2 bytes) and the physical layer CRC overheads are added to the VoIP packets. However, the RTP/UDP/IP headers are completely removed.
The path taken by data (non-VoIP) packets is the same as existing 1xEV-DO data packets, i.e. the IP packets are encapsulated as PPP frames, presented to the 1xEV-DO stack 908 which adds the MAC overheads, passed on to RLP flow configured for Best Effort (BE) traffic, and finally passed on to RL MAC 912 for transmission on RL traffic channel.
At the gateway 904, the received VoIP packets are demodulated and decoded and passed on to the 1xEV-DO stack 914 starting at the RLP stack for EF flow. The MAC packets are then presented to the Route Protocol that performs header insertion by regenerating the RTP/JUDP/IP headers from an initial context message from the mobile terminal 902. The current 1xEV-DO Route Protocol decompression stack regenerates these headers using link-layer assist and previously exchanged static context information received in the initial context message as discussed above. For instance, the decompression procedures may use RLP and lower layers to regenerate the RTP timestamps and RTP sequence numbers).
The header-regenerated IP packet is then passed onto the PDSN through the A10 micro-tunnel (GRE) between the gateway 904 and the Packet Data Serving Node (PDSN) 918. The PDSN 918 recognizes that VoIP packets arriving on the A10 micro-tunnel 916 for EF flow are not PPP-framed, and these IP packets (VoIP packets) bypass the PPP stack 920 on the PDSN and are routed to the external IP network 922.
The path taken by other data packets (non-VoIP packets) is conventional as per data packet path for 1xEV-DO. Namely, the RL MAC 924 protocol forwards the demodulated/decoded data packets to an EV-DO stack 926 that includes an RLP layer (with BE characterization) which then presents the packets to Route Protocol/Flow Protocol that de-capsulate the MAC headers, and forward the PPP frames on A10 tunnel 916 (GRE) between the gateway 904 and PDSN 918 meant for BE traffic. The PDSN 918 recognizes that the A10 tunnel 916 for BE traffic contains PPP-encapsulated frames, and passes these packets to the PPP stack 920, which then removes the PPP framing and puts out the IP packets to be routed to the external IP network 922.
It is noted that the Enhanced Multiflow Packet Application (EMPA) feature of 1×EV-DO air interface provides the framework for VoIP header compression and subsequent VoIP packet framing at the 1xEV-DO protocol layers (and not PPP-framed).
Besides eliminating the RTP/UDP/IP overhead for VoIP packets and reducing TCP/IP overheads for other data application packets, it is also desirable to reduce/eliminate the Radio Link Protocol (RLP) overheads introduced by 1xEV-DO link layer (e.g. link layer overheads such as RLP sequence number, among others). In fact, this reduction in RLP headers is important where small payloads of 48 bits are envisioned to be sent over 20 millisecond physical layer frames (2.4 Kbps RL rates), leaving no additional bits for link layer or upper layer overheads. Eliminating EV-DO link layer headers has significant implications since it eliminates the Enhanced Multiflow Packet Application (EMPA)/QoS bits, which are necessary to distinguish application types with different Quality of Service (QoS) requirements. Therefore, in order to avoid including additional bits for QoS, the QoS are tied to the application. At the mobile terminal, the processor schedules the different services based on the application being used. The gateway adds QoS bits to the packets received from the mobile terminal (via a satellite) before sending to the IP-network side. The QoS bits are determined based on the application. At the gateway side the forward link (FL) scheduler may determine priority based on the QoS bits received in the packets from the IP network side.
One method to regenerate the missing QoS information at the receiver provides for defining multiple physical layer packet formats (e.g. 48 bit frames over 20 msec, 192 bit frames over 80 msec, and so on), and use the 48 bit frames exclusively for VoIP traffic, and use the other frame structures for signaling/data traffic. By this technique, the receiving end can distinguish VoIP versus non-VoIP traffic, and for the non-VoIP traffic, the 1xEV-DO link layer header need not be stripped, thus preserving the multi-flow packet application/QoS distinction capabilities to distinguish QoS requirements of different flows and RLP sequence numbers for detecting missing data packets.
At the receiving gateway, the VoIP packets are demodulated and decoded and passed onto the demultiplexing layer, which then separates packets for different RLP flows. Based on the fact that VoIP packets are uniquely carried over 48-bit physical layer frames, the demultiplexer concludes that any 48-bit physical layer packet must contain a VoIP packet, and hands over such packets to the Route Protocol layer for header insertion, thereby bypassing the RLP layer 1028. As in the transmit side, the bypassing of the RLP layer is an improvement over conventional 1xEV-DO system.
In the absence of RLP to assist the Route Protocol decompression layer in reconstructing the RLP/UDP/IP header (especially the dynamic contents like RTP timestamp and RTP sequence number), decompression is dependent on lower layers (1xEV-DO physical layer) to indicate whether it received a 48-bit physical layer packet, and if so, whether the CRC passed or failed. The Reverse Rate Indication (RRI) channel on the RL may assist in finding out the data rate being transmitted on the RL. For a fixed rate case, it is either 2.4 Kbps rate or NULL rate, i.e. no packet transmitted. This helps to identify DTX condition, i.e. silence between talkspurts.
Similarly, the physical layer also notifies the Route Protocol decompression layer if the decoded physical layer frames fail CRC. Assuming a) the physical layer passes on successfully decoded packets to the Route Protocol decompression layer, b) notifies whether decoded packets failed CRC, c) notifies the DTX condition (NULL rate RRI channel) to the Route Protocol decompression, d) VoIP frames are delivered in order over the satellite link every ‘x’ seconds (e.g., 20 msec), then the Route Protocol decompression can successfully reconstruct the dynamic context (e.g., RTP time stamp and RTP sequence number) for each successfully received VoIP packet and further regenerate the complete RTP/UDP/IP header using the static context exchanged previously. This constitutes a significant change and improvement over the conventional 1xEV-DO header decompression procedures.
As with the system described in
One or more of the components, steps, and/or functions illustrated in
Those of skill in the art would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.
The description of the embodiments is intended to be illustrative, and not to limit the scope of the claims. As such, the present teachings can be readily applied to other types of apparatuses and many alternatives, modifications, and variations will be apparent to those skilled in the art.
The present Application for Patent claims priority to Provisional Application No. 60/820,775 entitled “Satellite Based Communication”, filed Jul. 28, 2006 and assigned to the assignee hereof and hereby expressly incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
60820775 | Jul 2006 | US |