RELATED APPLICATION This application is a continuation of U.S. application Ser. No. 10/166,576, filed Jun. 10, 2002. The entire teachings of the above application are incorporated herein by reference.
BACKGROUND OF THE INVENTION In a networked computing environment, session services are often employed to apply specific processing to an exchange of data between processes. Such an exchange, or session, usually includes a sequence of packets, also called a packet flow, which share a common context, and which can collectively benefit from the application of one or more session services. Packet flows are typically employed between processes communicating via the network, often in a client/server arrangement. A session service may include, for example, different types of protocol conversion or protocol optimizations, such as proxy services and header compression, and may be transparent to an end user.
Often, a single physical connection, such as a dialup modem line, carries many packets corresponding to a plurality of packet flows. However, a session service is typically applied to the physical connection as a whole. Accordingly, a particular session service is applied to all packets transmitted via the physical connection. Application of the session service does not distinguish among different packet flows carried over the connection. Individual flows, therefore, and the associated processes, may incur the processing overhead associated with a particular session service regardless of whether the session service is needed or desired for the packet flow in question.
In a wireless communication network, a wireless link is typically shared among multiple users through wireless channels, which are allocated and switched among the users on a demand basis by a scheduler. Packets sent over the wireless link need to be signaled and tagged accordingly to initiate and employ the session service for the intended packets which comprise the packet flow. Accordingly, it would be beneficial to provide a mechanism for signaling initiation of a particular session service by the sender and receiver over the wireless link, and for tagging affected packets to indicate which session service to apply to each packet.
SUMMARY OF THE INVENTION In a wireless communication system, a method for identifying and applying session services to a wireless link comprises establishing a connection including the wireless link and receiving a message for transmission via the connection. A packet flow is identified or established over the wireless link corresponding to the received message by employing a flow identifier and a transmission profile filter. The packet flow corresponds to a session, and is mapped to at least one session service. The mapped session service is then applied to the received message. In this manner, a session service may be transparently applied to a packet flow over the wireless link independently of the other packet flows which may also be transmitted over the same wireless link.
A particular packet flow (flow) is associated with one or more session services to be applied to packets (messages) sent via the flow. The flow is identified either by a flow ID in the message itself, or by matching the message to a transmission profile indicative of characteristics of the flow. The characteristics of the flow establish a packet stream context, or common denominator, of the packets comprising the flow. For example, packets comprising streaming audio information are typically large, while http packets including ACK (acknowledgment) notifications are relatively small. Identification of the packet flow allows complementary session services to be applied at each endpoint of the wireless link, i.e. header compression applied when sending via the wireless link must be decompressed upon receipt.
A traffic flow mapping message is employed to initiate the flow and associate the session service(s) with the flow. Therefore, both endpoints of the wireless link, typically a base station processor (base station) and a subscriber access unit (subscriber) can identify the flow and related session service.
The session services may be identified by reference to a table of applicable session services. Once established, the session service is applied to all packets in the flow. In alternate embodiments, such a table may be stored in a common repository, and thus downloaded from a remote source in a standardized form. Standardization of the session services table would allow widespread dissemination and recognition of the session service identifiers.
BRIEF DESCRIPTION OF THE DRAWINGS The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
FIG. 1 shows a wireless communication system employing wireless communication links operable for use with the present invention;
FIG. 2 shows wireless packet flows over a wireless link between a subscriber access unit and a base station processor;
FIG. 3 shows mapping of packet flows to session services in the flow mapper;
FIG. 4 shows a flowchart for mapping packet flows to session services;
FIGS. 5aand5bshow an example of a process instantiating a new packet flow; and
FIG. 6 shows downloading of session service identifiers from a common global repository.
DETAILED DESCRIPTION OF THE INVENTION A description of preferred embodiments of the invention follows.
In a wireless communication network, a wireless link provides a connection between sending process and receiving processes. The wireless link is typically a portion of the entire connection between the sending and receiving process, which also includes wired links on each side of the wireless link. A connection between sending and receiving processes comprises a packet flow. Each packet flow, represents a particular packet flow context indicative of the type of data carried between the processes, such as Internet web pages or streaming audio. There may be multiple connections, and hence, multiple packet flows, between a sending process and a receiving process. Further, each flow may include packets of different sessions between multiple peer processes. Since each flow has a particular packet flow context, indicative of a substantive characteristic of the type of data carried, it may be beneficial to apply a particular session service to each flow.
A session service is a dual ended or peer to peer mechanism that either adds functionality to an existing user data session or provides a new application capability. A session service, therefore, results in an additional processing step applied to or performed on a packet. A session service may provide a protocol optimization, such as header compression, a protocol conversion, such as a TCP proxy service, or a separate application for additional processing, such as QOS (Quality Of Service) processing and verification, or encryption. Other session services may be applied in accordance with the present invention. In a particular embodiment, the TCP proxy service is as defined in copending U.S. patent application Ser. No. 09/850,531, filed May 7, 2001, entitled “Dual Proxy Approach to TCP Performance Improvements Over a Wireless Interface,” which was published on Dec. 25, 2003 as U.S. patent application Publication No. 2003/0235206 and incorporated herein by reference. In a wireless communications network, the session service may be applicable only to the flow over the wireless link, or may be applicable to the entire connection, and carried through (continuous) from the wired links over the wireless link.
FIG. 1 shows awireless communication system10 employing wireless communication links operable for use with the present invention. Referring toFIG. 1, a plurality ofsubscriber access units14a-14care in wireless communication with a base station processor16 (base station) viawireless links22. Thebase station16 is also in communication with a data network such as the Internet18 via awired link20. Thesubscribers14 provide wireless Internet access to customer premises equipment (CPE)32 generally, such asdesktop PCs32a,32c, personal digital assistants (PDAs)32bandwireless phones32dthroughwired links24. It should be noted that the wireless functionality provided by thesubscriber access unit14 may be in a stand alone device or embedded in theCPE32 unit invoked by auser32′. In either case theCPE32 is operable to communicate with the Internet18, and thus withremote nodes26, via thebase station16 by employing thewired links20,24 and thewireless links22.
FIG. 2 shows wireless packet flows over a communication link between asubscriber14 and abase station16. Referring toFIG. 2 and also toFIG. 1, thewireless link22 between thesubscriber14 and thebase station16 further comprise packet flows28. Apacket flow28 corresponds to one or more sessions over thewireless link22, and is part of the connection (session) between processes which includes thewired links20,24. Each of the sessions in the packet flows28 corresponds to a process P1, P2, or P3 at thesubscriber14. A complementary process P1′, P2′ and P3′, either a sender or receiver, resides at a remote end of the connection on one of theremote nodes26. Aflow mapper30 resides in thesubscriber14 and in thebase station16, at each endpoint of thewireless link22, for assigning and determining the packet flow corresponding to each message packet, and for applying the respective session service, both described further below.
It should be noted that a packet flow includes packets that are related due to sharing a common denominator, such as a particular type of content. A packet flow, as described above, therefore may include packets corresponding to one or more sessions between peer processes. The term “session” denotes a connection between two application processes, between which packets are related because of a common source and destination. The correspondence between sessions and packet flows is typically dependent on the protocol and processes so communicating, and includes parameters such as source address, destination address, source port, destination port, and protocol in a TCP connection, for example (sometimes called a 5-tuple). Other packet flow/session mappings may be known to those skilled in the art. Accordingly, the packets sent in conjunction with the session may fall into one or more of the packet flows, as described further below with respect to applying session services to the flow.
Therefore, connections are established between each of the processes and their complementary counterparts: P1-P1′, P2-P2′, and P3-P3′, employing the wired20,24 andwireless22 links. Message packets sent over thewireless link22 from one process to another are assigned to aflow28 by theflow mapper30 on the sending side of thewireless link22, and identified as belonging to thatflow28 by theflow mapper30′ on the receiving side. Theflow mapper30 on the sending side applies the session service(s) associated with the assigned (determined) flow, and theflow mapper30′ on the receiving side also applies the session service(s) associated with the determined flow.
As described above, theflow mapper30,30′ resides on both endpoints of the wireless link, at thesubscriber14 and thebase station16, and identifies packets as received from thewired link20,24 or thewireless link22. When a packet is received from thewireless link22, it already has a flow ID appended to it by the sender, either thesubscriber14 orbase station16. The received flow ID is mapped to a list of known flow IDs to determine the flow, and hence determines the session services associated with that flow.
If the packet is received from the wired side, the corresponding flow must be determined. A flow profile table, described further below, is employed to match the characteristics of the message to a known profile of packet flows using a filter. Factors such as originator IP address, destination IP address, TCP/IP port number, proxy ID, and others may be employed to match the packet to a flow via the filter. If the flow is determined, the corresponding flow ID is appended to the packet, in addition to applying the session services associated with the flow.
Flows requiring special processing provided by the session services are therefore enumerated in the flow table. Packets not matching a particular flow are deemed not to require special processing and therefore will not trigger application of session services. However, such packets will nonetheless be delivered to the proper destination via packet routing independently of application of session services as defined herein. Alternatively, a wildcard, or “catch all” entry (filter) may be added to the transmission profile table to cover packets which do not trigger other entries.
New flows may instantiated by a variety of ways. A particular application may have a need for a specific type of processing. Session service tables and the corresponding transmission profile table entries may be downloaded from an external source, described further below. Alternatively, failure to find a match in the transmission profile table would be employed to initiate creation of a new transmission profile entry. If a new flow is instantiated, the flow ID is determined from the new flow, and a traffic flow signaling message is employed to transmit the new flow information across thewireless link22 to the receivingflow mapper30′.
FIG. 3 shows mapping of packet flows to session services in theflow mapper30. Referring toFIG. 3, the tables included in the flow mapper are shown. Theflow mapper30 includes a flow table200, a transmission profile table202, and a session services table204. The flow table200 identifies the packet flows byflow ID206. Aprocess field208 may be employed to identify the local process or processes to which it corresponds, however the packet routing information such as the port number is actually used for delivery. Also indicated are thefilter210 describing the packet flow. The transmission profile table204 hastransmission parameters212 which describe each packet flow. Thetransmission parameters212 describe the profile of each packet flow so that the packets in the flow may be identified by content, and includes aprofile entry216 for each packet flow. The transmission parameters illustrated include filter ID (FID)214a,type214b, source IP address214c, destination IP address214d, Port ID214e, TCP/IP transmission flags214f, and flow direction214g. The transmission parameters shown are illustrative; alternate embodiments may employ filters with alternative fields and/or information. Eachprofile entry216 also includes alist218 of session services to be applied to theflow206. Each element in thelist218 contains asession service index220 into the session services table204, which indicates theapplicable session service222. The session service table204 containssession service entries224, referenced bysession service index220, described further below. Note that thesession service index220 in thesession service list218 is shown as illustrative. Other mechanisms for associating thesession services222 to aprofile entry216 can be implemented and will be apparent to those skilled in the art, such as inclusion ofsession services222 directly in the transmission profile table202 or alternate pointer or array referencing, depending on a particular implementation.
Therefore, theapplicable session service222 to be applied to a particular message packet is determined in theflow mapper30 by identifying the flow through either theflow ID206 orprofile entry216, and mapping from theprofile entry216 to the correspondingsession service entries224, indicative of the session service(s)222 to be applied. As indicated above, the message packets mapped by theflow mapper30 include incoming and outgoing message packets. Message packets received over the wireless link (22,FIG. 2) from aremote flow mapper30 have aflow ID206 identified and append to the message packet, allowing a lookup in the flow table200. Message packets received from thewired link20,24 for transmission over thewireless link22 are identified by matching aprofile entry216 in the transmission profile table202. Theflow mapper30 illustrated is shown from the perspective of thesubscriber14 for illustrative purposes, and is equally applicable to either endpoint of thewireless link22.
FIG. 4 shows a flowchart for mapping packet flows to session services. Referring toFIGS. 4 and 2, an incoming packet is detected by theflow mapper30, as depicted atstep100. A check is performed to determine if the incoming packet was received from thewireless link22 or awired link20,24, as shown atstep102. As described above, theflow mapper30 resides on both endpoints of thewireless link22. If the packet was received from thewireless link22, then the flow ID was appended to the message prior to transmission. A lookup is performed in a flow table to match the packet to a packet flow, as disclosed atstep104. The flow ID is indexed into the session service table, as shown atstep120. The corresponding session service is determined, as shown atstep122, and applied to the message packet, as shown atstep124. The packet is then sent to the corresponding process P1-P3 via thewired link24, as shown atstep126.
If the packet was received from thewired link20,24, then a comparison is performed with the message packet characteristics in a transmission profile table, as depicted atstep106, also described further below. A check is performed to determine if a match was found in the transmission profile table, as shown atstep108. If a match was not found, then either session services are not required for this packet, or a new flow entry is created, through an exchange of traffic flow signaling messages, as depicted atstep110 and described above with respect toFIG. 3. If a match was found, the flow ID is read from the transmission profile table, as depicted at step111. In either case, the newly created or found flow ID is appended to the message, as disclosed atstep112. The corresponding session service is indexed in the session service table, as shown atstep114, and applied to the message packet, as depicted atstep116. The message is then sent over thewireless link22 as a packet of the determined flow, as shown atstep118, for receipt by theremote flow mapper30.
It should be noted that the flow ID determined prior to sending the wireless transmission is determined as described above and appended to the message prior to transmission. The flow Id may be appended in a variety of ways known to those skilled in the art. In a particular embodiment, the flow ID is encapsulated in an additional packet header which includes the flow ID. Other implementation protocols may be employed. Upon receipt of the wireless transmission, the flow ID is stripped off to yield the packet in it's form prior to wireless transmission. In this manner, the flow ID may be appended and removed from the message packet without interfering with the other delivery and data fields in the packet.
FIGS. 5aand5bshow an example of a process instantiating a new packet flow. Referring toFIGS. 5a,5b, and again to 2, process P1 desires to initiate a streaming video request. Process P1 generates amessage packet300 indicative of the request, and forwards it via thewired link24 to thesubscriber14. Theflow mapper30 receives themessage packet300 and attempts to find acorresponding profile entry216 in the transmission profile table202. No match is found, so theflow mapper30 determines it will instantiate a new packet flow in theflow mapper30. A newflow profile entry226 is generated for the streaming video requests, indicative of the remote destination in field214d′, and is assignedfilter FID106. As these requests are deemed to be relatively small, the header compression system service is selected. Asystem service index218ais created to indicate thesystem service222 for header compression, as shown bysystem service index218 SS3.
A newflow profile entry228 is also created for the return streaming video message packets which will be received, having filter FID107 has a source ID field214c′ of the streaming video source matching214d′. A system service for RT QOS (Quality of Service) processing is selected. As there is nosystem service222 entry for RT QOS yet, anew entry224 is created for system service index218bfor SS4, and is associated with theflow profile entry228. The RT QOS system service is exemplary; alternative system services for applying flow specific processing or operations could likewise be employed.
Theflow mapper30 generates a trafficflow signaling message302 to send to thebase station16 indicative of the new flows F4 and F5. Following the traffic flow signaling message, which establishes the complementary system service processing at theremote flow mapper30′, the streamingvideo request message300 is framed fortransmission304 via the wireless link. After processing via the remote destination214d′, astreaming video packet306 is received by thebase station16. The base station, consistent with the traffic flow signaling, matches the source of the message with theflow profile entry228. Theflow mapper30′ appends the flow ID F5 to themessage308, and sends it over thewireless link22 to thesubscriber14. Theflow mapper30 in thesubscriber14 reads the flow ID F5, finds thecorresponding flow ID206 in the flow table200, and maps it to system service index SS5 for RT QOS processing.
Anotherstreaming video request310 is sent from process P1, and a corresponding match found forFID106 in the in the transmission profile table. Accordingly,system service index218ais found to indicate header compression, applied to the request, and sent asmessage packet312 via flow F4. System service flow mapping continues in this manner until the flow is no longer needed and the corresponding entries updated with another sequence of traffic flow signaling messages.
In an alternate embodiment, shown inFIG. 6, thesystem service indices220 are standardized in a system service table204 stored in acommon repository230. The common repository is accessible via theInternet18, and is employed to download a current version of the system service table204 and versions of the system services themselves on a periodic basis. The common repository could be a Wireless Internet Facility (WIF), LDAP directory, or other web service accessible by thesubscribers14 and thebase stations16. Aplurality16a-16nof base stations may access and download the system service table204 from thecommon repository230. Thebase stations16a-16neach transmit the downloaded system service table204 and related files to each of thesubscribers14a-14nwhich they are in communication with. In this manner, a standardized index for each of the applicable system services is maintained across thewireless communication system10.
System services may vary in complexity and depth of implementation. Accordingly, executable files and other implementation details may undergo revisions and modifications for the same session service. Periodic downloads from a common repository to upgrade and or add system services may occur. Further, additional flow profile entries (filters) may also be added to correspond to or identify a new session service or new need for a session service. In this instance, the flow profile table may be downloaded from the common repository as well. For a large service provider, there may bemany flow mapper30,30′ implementations deployed among many sites. Automatic, periodic downloading of a current state of system services therefore provides timely consistency among themany flow mappers30,30′ which employ the system services.
The method of applying system services as described herein associates incoming packets to packet flows. The matching of message packets to flow profiles need not exactly match every packet in the flow to avoid disrupting the flow. Other mechanisms ensure delivery of the message packets to the intended recipients. Application of session services is intended to improve throughput by applying operations which tend to reduce overhead and increase the speed at which a packet is routed. If, for example, a packet between two processes which should have triggered a profile for header compression did not conform to the profile, that message packet would still be delivered, albeit without the benefit of header compression. If, however, a session service is applied at the sending side of the wireless link, then the flow ID would be appended and the complementary session service, such as decompressing the header, would be applied. Accordingly, while not all packets between two processes may necessarily be matched to a particular flow profile for sending over the wireless link, the packets that were matched, and thus processed in accordance with the system service at the sending side of the wireless link, would receive the complementary treatment at the receiving side of the wireless link. Therefore, the session services as defined herein are applied consistently at both endpoints of the wireless link. Further such services may be unilateral, and performed at one point along a wireless link, or bilateral, and applied in a complementary manner at both endpoints of the wireless link.
Those skilled in the art should readily appreciate that the system and methods for applying system services as defined herein are deliverable to a wireless device in many forms, including but not limited to a) information permanently stored on non-writeable storage media such as ROM devices, b) information alterably stored on writeable storage media such as floppy disks, magnetic tapes, CDs, RAM devices, and other magnetic and optical media, or c) information conveyed to a computer through communication media, for example using baseband signaling or broadband signaling techniques, as in an electronic network such as the Internet or telephone modem lines. The operations and methods may be implemented in a software executable by a processor or as a set of instructions embedded in a carrier wave. Alternatively, the operations and methods may be embodied in whole or in part using hardware components, such as Application Specific Integrated Circuits (ASICs), state machines, controllers or other hardware components or devices, or a combination of hardware, software, and firmware components.
While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.