Traffic optimization in a communications network

A method for optimizing network traffic that is delivered to a client via a RAN is disclosed. The method includes: receiving, at a first node, a request for content transmitted by the client, including an indication pertaining to a first traffic optimization functionality into the request, and forwarding the modified request to a second node located upstream. At the second node, receiving the request and forwarding the request to a server. At the second node, receiving downlink traffic related to the request, optimizing the downlink traffic, and forwarding the downlink traffic to the first node. In optimizing the downlink traffic, the second node omits traffic optimization functionality corresponding to the first traffic optimization functionality. The first node then receives the downlink traffic, optimizes the downlink traffic, and forwards the optimized downlink traffic to the client.

CROSS REFERENCE TO RELATED APPLICATION(S)

This application is a 35 U.S.C. §371 National Phase Entry Application from PCT/SE2013/050688, filed Jun. 13, 2013, designating the United States, the disclosure of which is incorporated by reference.

TECHNICAL FIELD

The invention relates to methods of optimizing downlink traffic in a communications network, wherein the downlink traffic is delivered to a client of the communications network via a Radio Access Network (RAN), corresponding computer programs and computer program products, and corresponding network nodes.

BACKGROUND

Due to the increase in data traffic in mobile networks, such as Smart Mobile Broadband (SMBB) networks, optimization of network traffic has become increasingly important. In particular, this applies to downlink traffic which is delivered to clients of a RAN, i.e., User Equipment's (UEs) such as mobile phones, computers, tablet computers, media players, and the like. Such downlink traffic typically comprises data which is delivered from a server providing content, e.g., streamed media, web pages, or software for download, to a client which has request the content. In the present context, traffic optimization, sometimes also referred to as traffic shaping, refers to improving utilization of radio resources, e.g., control signaling and allocation of air interface resources for data transmission between a UE and an access node of the RAN, as well as reducing power consumption in the UE, thereby prolonging UE battery lifetime.

Traffic optimization is typically performed by a network node of a communications network through which a client retrieves content. For instance, traffic optimization may be performed by content providers, i.e., servers, or proxies, such as HyperText Transfer Protocol (HTTP) and Transmission Control Protocol (TCP) proxies, which are used for routing and processing traffic. In the present context, traffic optimization is to be understood to encompass, but is not limited to, pacing, de-pacing, throttling, content compression, video transcoding, video transrating, parental control, and the like. Typically, the type of traffic optimization which is performed is dependent on a type of traffic, i.e., whether the traffic relates to streamed media, software downloads, web browsing, time critical vs. non-time critical traffic, and so forth.

Network nodes performing traffic optimization, such as proxies, maybe placed at different locations in a communications network and may provide different kind of traffic optimization functionality, depending on whether a proxy is located downstream, i.e., close to the RAN or even integrated with the RAN, or upstream, i.e., further away from the RAN.

Proxies which are located close to, or integrated with, the RAN may perform traffic optimization which is based on effecting downswitching of radio states, such as Radio Resource Control (RRC) states in a Universal Mobile Telecommunications System (UMTS), during idle periods of transmission over the RAN air interface. Such traffic optimization functionality, sometimes referred to as radio-friendly pacing, may be based on signaling indications pertaining to idle transmission periods to a control node of the RAN, thereby enabling the RAN to switch to less resource consuming radio states directly at the onset of idle periods rather than in response to an inactivity timer triggering downswitching.

In scenarios where downlink traffic passes through a chain of proxies performing traffic optimization, or where traffic originates at a server performing traffic optimization and subsequently passes a traffic optimization proxy when being delivered to a client, problems may arise when traffic undergoes traffic optimization at several locations.

SUMMARY

It is an object of the invention to provide an improved alternative to the above techniques and prior art.

More specifically, it is an object of the invention to provide an improved optimization of network traffic which is delivered to a wireless client of a communications network, i.e., a client which receives the network traffic via a RAN.

These and other objects of the invention are achieved by means of different aspects of the invention, as defined by the independent claims. Embodiments of the invention are characterized by the dependent claims.

According to a first aspect of the invention, a method of optimizing downlink traffic in a communications network is provided. The downlink traffic is delivered to a client of the communications network. The downlink traffic is delivered via a RAN. The method comprises receiving from the client a request for content. The request is received at a first network node of the communications network. The first network node is arranged for optimizing downlink traffic. The method further comprises, at the first network node, including an indication into the request and forwarding the request to a second network node of the communications network. The indication pertains to a first traffic optimization functionality of the first network node. The second network node is located upstream with respect to the first network node. It is arranged for optimizing downlink traffic according to a second traffic optimization functionality. The second traffic optimization functionality corresponds at least in part to the first traffic optimization functionality. The method further comprises, at the second network node, receiving the request from the first network node and determining whether the request comprises the traffic optimization functionality indication. The method further comprises determining whether the downlink traffic relates to a request comprising the traffic optimization functionality indication, optimizing the downlink traffic, and forwarding the downlink traffic to the first network node. In optimizing the downlink traffic, traffic optimization functionality which corresponds to the first traffic optimization functionality is omitted if the downlink traffic relates to a request comprising the traffic optimization functionality indication. The method further comprises, at the first network node, receiving the downlink traffic from the second network node, optimizing the downlink traffic according to the first traffic optimization functionality, and forwarding the downlink traffic to the client.

According to a second aspect of the invention, a method of optimizing downlink traffic in a communications network is provided. The method is performed at a first network node of the communications network. The downlink traffic is delivered to a client of the communications network. The downlink traffic is delivered via a RAN. The method comprises receiving from the client a request for content, including an indication into the request, and forwarding the request to a second network node of the communications network. The indication pertains to a first traffic optimization functionality of the first network node. The second network node is located upstream with respect to the first network node. The method further comprises receiving the downlink traffic from the second network node, optimizing the downlink traffic according to the first traffic optimization functionality, and forwarding the downlink traffic to the client.

According to a third aspect of the invention, a computer program is provided. The computer program comprises computer program code. The computer program code is adapted, if executed on a processor, to implement the method according to the second aspect of the invention.

According to a fourth aspect of the invention, a computer program product is provided. The computer program product comprises a computer readable storage medium. The computer readable storage medium has the computer program according to the third aspect of the invention embodied therein.

According to a fifth aspect of the invention, a method of optimizing downlink traffic in a communications network is provided. The method is performed at a second network node of the communications network. The downlink traffic is delivered to a client of the communications network. The downlink traffic is delivered via a RAN. The method comprises receiving from a first network node of the communications network a request for content and determining whether the request comprises an indication. The first network node is located downstream with respect to the second network node. The indication pertains to a first traffic optimization functionality of the first network node. The method further comprises determining whether the downlink traffic relates to a request comprising the traffic optimization functionality indication, and optimizing the downlink traffic. In optimizing the downlink traffic, traffic optimization functionality which corresponds to the first traffic optimization functionality is omitted if the downlink traffic relates to a request comprising the traffic optimization functionality indication. The method further comprises forwarding the downlink traffic to the first network node.

According to a sixth aspect of the invention, a computer program is provided. The computer program comprises computer program code. The computer program code is adapted, if executed on a processor, to implement the method according to the fifth aspect of the invention.

According to a seventh aspect of the invention, a computer program product is provided. The computer program product comprises a computer readable storage medium. The computer readable storage medium has the computer program according to the sixth aspect of the invention embodied therein.

According to an eighth aspect of the invention, a first network node for optimizing downlink traffic in a communications network is provided. The downlink traffic is delivered to a client of the communications network via a RAN. The first network node comprises a processor and a memory. The memory comprises instructions executable by the processor, whereby the first network node is operative to receive from the client a request for content, include an indication into the request, and forward the request to a second network node of the communications network. The indication pertains to a first traffic optimization functionality of the first network node. The second network node is located upstream with respect to the first network node. The first network node is further operative to receive downlink traffic from the second network node, optimize the downlink traffic according to the first traffic optimization functionality, and forward the downlink traffic to the client.

According to a ninth aspect of the invention, a second network node for optimizing downlink traffic in a communications network is provided. The downlink traffic is delivered to a client of the communications network via a RAN. The second network node comprises a processor and a memory. The memory comprises instructions executable by the processor, whereby the second network node is operative to receive from a first network node of the communications network a request for content and determine whether the request comprises an indication. The first network node is located downstream with respect to the second network node. The indication pertains to a first traffic optimization functionality of the first network node. The second network node is further operative to determine whether the downlink traffic relates to a request comprising the traffic optimization functionality indication and optimize the downlink traffic. In optimizing the downlink traffic, the second network node is further operative to omit traffic optimization functionality which corresponds to the first traffic optimization functionality if the downlink traffic relates to a request comprising the traffic optimization functionality indication. The second network node is further operative to forward the downlink traffic to the first network node.

The invention makes use of an understanding that traffic optimization in a communications network can be improved by coordinating traffic optimization performed by separate entities, i.e., network nodes, in the communications network. In particular, this applies to situations where downlink traffic is delivered to a client of the communications network via a RAN, i.e., over a wireless link. The client may, e.g., be a UE such as a mobile phone, computer, tablet computer, media player, and the like. The separate entities for performing traffic optimization may, e.g., be a server from which the downlink traffic originates and which is also arranged for optimizing the downlink traffic according to certain policies or network conditions, and a proxy located downstream with respect to the server. As an alternative, the separate entities may also be two proxies through which the downlink traffic passes when being delivered to the client. The proxy or proxies may, e.g., be HTTP or TCP proxies which are arranged for performing traffic optimization and, optionally, other tasks such as routing, address translation, and so forth. The proxy which is located closer to the RAN, i.e., throughout this disclosure also referred to as the first network node, may also be integrated with the RAN and may be part of an access node, control node, or any other node of the RAN. The first network node may also be part of an SMBB. An embodiment of the invention may, with respect to the first network node, be arranged for optimizing traffic based on actions performed at the first network node and the RAN which are coordinated so as to perform traffic optimization in a radio-friendly manner.

Traffic optimization in accordance with an embodiment of the invention amounts to coordinating traffic optimization functionality which is performed at the separate entities, the first and the second network node of the communications network, such as two proxies. To this end, the first network node, which is located downstream, receives a request for content from the client and includes an indication into the request before forwarding the request to the second, upstream, network node. The indication comprises information pertaining to the first traffic optimization functionality which is performed by the first network node on downlink traffic which it expects to receive in response to the request. Upon receiving the response, the second network node determines whether the response comprises the indication. Subsequently, the second network node optimizes downlink traffic which is destined for the client. The downlink traffic may either originate from the second network node, in which case the second network node provides the request content, i.e., such as a media server, or from a server to which the second network node forwards the request for content and, subsequently, receives downlink traffic in response to the request. The second network node determines whether the downlink traffic relates to a request comprising the traffic optimization functionality indication and performs traffic optimization in accordance with the second traffic optimization functionality it provides. If the downlink traffic relates to a request comprising the indication, the second network node omits traffic optimization functionality which subsequently is performed by the first network node located downstream with respect to the second network node, i.e., the first traffic optimization functionality.

Traffic optimization in accordance with an embodiment of the invention is advantageous in that traffic optimization performed by separate entities of the communications network may be coordinated so as to avoid performing the same functionality twice, first in the second network node and subsequently in the first network node. This is achieved by the first network node informing the second network node about which traffic optimization functionality the first network node is about to apply to downlink traffic. Thereby, resource consumption and latency are reduced, and efficiency of the performed traffic optimization is improved. In addition, an embodiment of the invention is advantageous in that control of where certain traffic optimization functionality is performed is improved. For instance, certain traffic optimization functionality is preferably performed at a downstream proxy, such as the first network node, while other traffic optimization functionality may be performed at the upstream proxy, i.e., the second network node. Traffic optimization functionality which preferably is performed at the first network node may, e.g., be based on an interaction between the first network node and the RAN, in particular a control node of the RAN, and which serves to coordinate switching of RAN radio states with burst patterns of the optimized traffic.

The request may be a TCP request, an Internet Protocol (IP) request, or an HTTP request. Correspondingly, the downlink traffic may comprise one or more TCP responses, one or more IP responses, or one or more HTTP responses, respectively. Consequently, the communication session is a TCP session, an IP session, or an HTTP session, respectively.

According to an embodiment of the invention, each of the first and the second traffic optimization functionality comprises one or more traffic optimization functions. Further, the traffic optimization functionality indication comprises information pertaining to the one or more traffic optimization functions comprised in the first traffic optimization functionality. That is, the traffic optimization functionality, or capability, i.e., the type of traffic optimization a network node provides, is a set of functions such as pacing, de-pacing, throttling, content compression, video transcoding, video transrating, parental control, and the like. The first and the second traffic optimization functionality may comprise different traffic optimization functions, where at least one of the functions is provided by both the first and the second network node. In order to notify the second network node about which functions the first network node is about to apply to downlink traffic, the first traffic optimization functionality indication may comprise more detailed information about the functions comprised in the first traffic optimization functionality, i.e., the functions performed by the first network node. To this end, the indication may comprise one or more several information elements for conveying the information. This is advantageous in that the first and the second network node may perform different types of traffic optimization without performing the same kind of traffic optimization twice.

According to an embodiment of the invention, the method further comprises selecting the traffic optimization functions comprised in the first traffic optimization functionality based on a type of downlink traffic the request relates to. That is, if the first network node provides different traffic optimization functions, i.e., different types of traffic optimization, the first network node may be arranged for selecting one or more of the available traffic optimization functions. The selection may be dependent on a type of traffic to which the request relates. For instance, if the client request streamed media, such as video, the first network node may select a certain type or certain types of traffic optimization functions, while a different type or different types of traffic optimization functions may be selected if the client requests a web page. This is advantageous in that traffic optimization may be tailored according to the type of expected downlink traffic as well as, optionally, network conditions, policies, and the like.

According to an embodiment of the invention, at least one of the traffic optimization functions comprised in the first traffic optimization functionality relates to traffic shaping based on an interaction between the first network node and the RAN to effect switching of radio states in the RAN. For instance, such traffic optimization functionality may relate to radio-friendly pacing and may involve signaling information pertaining to the onset of idle transmission periods to a control node of the RAN. This is advantageous in that the RAN may use opportunities for downswitching of radio states, thereby improving utilization of radio resources and reducing UE power consumption.

According to an embodiment of the invention, the including a traffic optimization functionality indication into the request is dependent on a type of downlink traffic the request relates to. For instance, the indication is only included for traffic types which benefit from traffic optimization being performed at the first network node.

According to an embodiment of the invention, the method further comprises, at the second network node, in response to determining that the request comprises the traffic optimization functionality indication, saving information pertaining to a communication session to which the request relates. Further, the determining whether the downlink traffic relates to a request comprising the traffic optimization functionality indication is based on the saved information. That is, in order to subsequently be able to identify whether downlink traffic relates to a request comprising the traffic optimization functionality indication, the second network node is arranged for identifying a communication session to which the request relates and saving that information. When downlink traffic is received, or provided, by the second network node, the saved information may be used to determine if, and what kind of, traffic optimization is performed by the first network node.

According to an embodiment of the invention, the saving information pertaining to a communication session to which the request relates comprises saving an identifier of the communication session. Further, the determining whether the downlink traffic relates to a request comprising the traffic optimization functionality indication comprises looking up an identifier of a communication session to which the downlink traffic relates. To this end, the identifier may be saved in a list, or a database, such as a list comprising information about ongoing communication sessions, or a list of identifiers of communications sessions for which traffic optimization is performed by the first network node.

According to an embodiment of the invention, the method further comprises, at the second network node, forwarding the request to a server providing the requested content and receiving the downlink traffic. This embodiment relates to the case where the requested content is provided by a network node other than the second network node, e.g., a server, such as a media server, a web server, or the like.

According to an embodiment of the invention, the traffic optimization functionality indication is included into a header of the request. Signaling the traffic optimization functionality indication in the header of a request is advantageous in that is does not require additional signaling. Including information pertaining to the traffic optimization functions performed by the first network node in the header is an efficient way of conveying the information to the second network node. For instance, if the request is a TCP request, the traffic optimization functionality indication is included into a header of the TCP request. As an alternative, if the request is an IP request, the traffic optimization functionality indication is included into a header of the IP request. As a further alternative, if the request is an HTTP request, the traffic optimization functionality indication is included into a header of the HTTP request.

Even though advantages of the invention have in some cases been described with reference to embodiments of the first, second, or fifth, aspect of the invention, corresponding reasoning applies to embodiments of other aspects of the invention.

Further objectives of, features of, and advantages with, the invention will become apparent when studying the following detailed disclosure, the drawings and the appended claims. Those skilled in the art realize that different features of the invention can be combined to create embodiments other than those described in the following.

DETAILED DESCRIPTION

In the following, an embodiment of the invention is described with reference toFIG. 1, which schematically illustrates a communications network100for optimizing downlink traffic, i.e., network traffic which is transmitted from a server105to a client101via a RAN102. The client101may, e.g., be a UE, such as a mobile phone, computer, tablet computer, media player, or the like, accessing the communications network100via the RAN102. Thus, the UE101receives the downlink traffic over a wireless link110. The RAN102may, e.g., be a UMTS network, an LTE network, a Wireless local Area Network (WLAN), or the like. Typically, communications over the wireless link110are effected in up- and downlink, i.e., from the UE101to an access node of the RAN102and vice versa, respectively. In addition to the access node with which the UE101communicates, such as a Radio Base Station (RBS), NodeB, or eNodeB, the RAN102typically comprises a control node, such as a Radio Network Controller (RNC), eNodeB, or the like. The control node has, among others, the task of setting up, configuring, and releasing, radio links, such as the wireless link110, and allocating radio resources to UEs, i.e., frequency bands and time slots.

Further with reference toFIG. 1, and with reference to the sequence diagram200shown inFIG. 2, which illustrates the UE101requesting content from the server105of the communications network100, traffic optimization in accordance with an embodiment of the invention is described in the following.

The UE101may request content from a network node providing the requested content, such as the server105. The requested content may be any type of data which is transmitted, on request by the UE101, from the server105to the UE101. For instance, the requested content may be streamed media, such as audio or video, software for download, a web page, and so forth. The server105may be any kind of network node being arranged for providing such content on request by UE101, e.g., a media server, a web server, or the like.

More specifically, the UE101transmits a request211for content to an access node of the RAN102. The request may, e.g., be a TCP request, an IP request, or an HTTP request, as is known in the art. For the sake of simplicity, embodiments of the invention are in the following described as being based on TCP requests, but the invention is not limited to that. Rather, any type of protocol for requesting and retrieving content, and which allows including a traffic optimization functionality indication into the request, may be used.

The access node of the RAN102forwards the request212, optionally via other nodes of the RAN, such as a control node, to the first network node103, which is illustrated as a first proxy103providing traffic optimization (“Proxy #1” inFIGS. 1 and 2). The first proxy may, e.g., be a TCP or an HTTP proxy. The first proxy103may be integrated with the RAN102, e.g., with the control node of the RAN102, or may be arranged so as to form an SMBB.

In response to receiving the request212from the RAN102, the first proxy103includes an indication213into the request. More specifically, the indication is included213into a header of the TCP request. The indication pertains to a first traffic optimization functionality, i.e., it comprises information about traffic optimization functionality the first proxy103is about to apply to downlink traffic225which subsequently is received by the first proxy103in response to the request. For instance, the indication may simply indicate that the first proxy103is going to perform traffic optimization on the downlink traffic225. In the event that the first103proxy provides several traffic optimization functions, i.e., a set of different traffic optimization functions, the indication may comprise information pertaining to which of the provided traffic optimization functions the first proxy103is about to apply to downlink traffic225. Examples of traffic optimization functions are pacing, de-pacing, throttling, content compression, video transcoding, video transrating, parental control, and the like. Different ways of including the traffic optimization functionality indication into the TCP header, as well as information describing which traffic optimization functions are provided by the first proxy103, are described further below, with reference toFIG. 3.

The set of traffic optimization functions comprised in the first traffic optimization functionality may be predetermined, e.g., set by the manufacture of the first proxy103, or configured by an operator of the first proxy103or the RAN102. Alternatively, they may by selected dynamically, e.g., in response to a type of downlink traffic to which the request212relates, network conditions, policies, and so forth. In the latter case, the first proxy103selects the traffic optimization functions before including213the indication into the request and transmitting214the request to the second network node104, which is located upstream with respect to the first proxy103and which is illustrated as a second proxy104providing traffic optimization (“Proxy #2” inFIGS. 1 and 2). The second proxy may, e.g., be a TCP or an HTTP proxy.

Upon receiving the request214at the second proxy104, the second proxy104inspects215the header300of the TCP request, in particular the “Options” field, as is described further below with reference toFIG. 3. If a traffic optimization functionality indication is detected, the second proxy104analyses the information comprised in the indication, such as which traffic optimization functions are performed by the first proxy103on downlink traffic225which subsequently is delivered to the UE101. The second proxy104saves this information, together with an identifier of a communication session (“session ID” inFIG. 2) to which the request211relates. In the present context, a communication session is understood to be a sequence of related requests and responses. Since TCP packets, i.e., TCP requests and TCP responses, do not include a session identifier, network nodes involved in a TCP session may use address information which is comprised in TCP packets, such as the “Source port”, the “Destination port” (see TCP header300inFIG. 3), or a combination thereof, for identifying a session. Saving a session identifier and related information may, e.g., be accomplished by utilizing a list, a look-up table, or a database,706provided by the second proxy104, e.g., in a memory704of the second proxy104. In the event that the indication received with the request214does not comprise any further information regarding which type of traffic optimization functionality is performed by the first proxy103, the second proxy104may only save the session identifier.

Subsequently, the request is forwarded216to the server105providing the requested content. It will be appreciated that the request may pass other nodes of the communications network100not shown inFIGS. 1 and 2, and even other communications networks, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet. Alternatively, instead of forwarding216the request to the server105, the content may be provided by the second network node104, in which case the second network104node is a media server, a web server, or any other server providing the requested content, and which is further arranged for performing traffic optimization.

After transmitting the request216to the server105, the second proxy104receives downlink traffic221from the server105, i.e., one or more data packets. In response to receiving the downlink traffic221, the second proxy104determines whether the received downlink traffic221relates to a request comprising the traffic optimization functionality indication, such as the request from the client101forwarded216to the server105. This determination is based on determining the identifier of a communication session to which the downlink traffic221relates, e.g., by deriving a session identifier based on the “Source port” or the “Destination port” of the TCP header300(seeFIG. 3), or a combination thereof, and looking up the session identifier in the list, look-up table, or database,706provided by the second proxy104, as was described hereinbefore.

If the received downlink traffic221is a response to the request forwarded216to the server105, the second proxy104performs traffic optimization222on the received response221. The type of traffic optimization which is performed on the received downlink traffic221corresponds to a second traffic optimization functionality of the second proxy104, wherein functionality which corresponds to the first traffic optimization functionality is omitted. In other words, the second proxy104performs only traffic optimization functions which are not performed by the first proxy103once the downlink traffic is forwarded223to the first proxy103. That is, in terms of set theory, assuming that each of the first and the second traffic optimization functionality are a set of traffic optimization functions, wherein the intersection of the first traffic optimization functionality and the second traffic optimization functionality is non-empty, the second proxy104performs traffic optimization functions comprised in the set difference of the second traffic optimization functionality and the first traffic optimization functionality.

As an example, if the first proxy103has notified214the second proxy104that it will perform224traffic optimization functions “A”, “B”, and “C”, and the second proxy104is capable of performing traffic optimization functions “B”, “C”, and “D”, the second proxy104performs222traffic optimization functions “D” before forwarding the downlink traffic223to the first proxy103. In response to receiving the downlink traffic223, the first proxy optimizes the downlink traffic224according to the first traffic optimization functionality, i.e., in the present example traffic optimization functions “A”, “B”, and “C”, before forwarding the downlink traffic225to the RAN102which, in turn, transmits the downlink traffic226to the client101.

Further with reference toFIG. 2, the first proxy103may be arranged for providing traffic optimization functionality which is based on an interaction227between the first proxy103and the RAN102, in particular a control node of the RAN102which has the task controlling radio resources. For instance, if the first proxy103provides radio-friendly pacing to the received downlink traffic223, which amounts to shaping the downlink traffic223into a pattern, or sequence, of high-bitrate bursts and idle periods during which no data is transmitted, the first proxy103may signal an indication227of the onset of an idle period to the control node of the RAN102. Such an indication227is also referred to as End-of-Burst (EoB) signal. In response to receiving the EoB signal227, the control node of the RAN102may effect downswitching228of radio states, such as RRC states in a UMTS network, depending on load, network conditions, concurrent traffic which is transmitted to the client101, and so forth. This is advantageous since, as compared to downswitching in response to an expired inactivity timer, the duration of the UE101and the radio access node of the RAN102residing in a high radio state without any data transmission is reduced. Thereby, radio resources are made available to other UEs accessing the RAN102, and the power consumption of the UE101is reduced.

In the following, and with reference toFIG. 3, it is described how the traffic optimization functionality indication may be conveyed in the header of a TCP request, such as request214transmitted from the first proxy103to the second proxy104.

Among other information elements, TCP header300comprises an “Options” field of variable length (0-320 bits, divisible by 32). The length of this field is determined by the “Data offset” field of the TCP header. Options which are included in the “Options” fields may have up to three fields: Option-kind (one byte), Option-length (one byte), and Option-data (variable length). Typically, the Option-kind field indicates the type of option and may not be omitted. Depending on the kind option the next two fields may be set: the Option-length field indicates the total length of the option, and the Option-data field contains the value of the option, if any.

In accordance with an embodiment of the invention, the traffic optimization functionality indication, comprising information identifying the traffic optimization functions which the first proxy103provides, may be conveyed as a TCP option in the “Options” field of the TCP header300in different ways. As an example, the Option-kind field of such a TCP option may indicate that the present option carries information about traffic optimization functionality of a proxy which has routed the request. Further, the Option-length field may indicate the length of the Option-data field, which in turn is used to code information about which traffic optimization functions are performed by the first proxy103. For instance, the Option-data field may comprise a sequence of bits, wherein each bit corresponds to a certain traffic optimization function of a list of traffic optimization functions, and wherein the value of a certain bit, i.e., “0” or “1”, indicates whether the corresponding traffic optimization function is performed by the first proxy103or not. As an alternative, the Option-data field may carry a list of values, wherein each value is coded as a number of bits and represents a certain traffic optimization function of the list of traffic optimization functions and which is performed by the first proxy103.

The two alternatives described hereinbefore are illustrated inFIG. 3. Here it is assumed that the first proxy103is about to apply a second and a third traffic optimization function of a list comprising at least three traffic optimization functions, and the first proxy103includes a corresponding traffic optimization functionality indication into the header300of a TCP request. With reference to the first alternative, a TCP option310based on bit-wise coding of traffic optimization functions is shown inFIG. 3. The Option-kind field of TCP option310(the first field) indicates that this option is of type “kind_1”, which here is assumed to be a reserved type for the bit-coded traffic optimization functionality. The second field of TCP option310, Option-length, specifies the length of the third field of TCP option310, the Option-data field, to be one byte. The latter field specifies that, in accordance with the example, the second and third traffic optimization function of the list of are performed by the first proxy103(the second and third bits have value “1”, all other bits have value “0”).

The second alternative is illustrated by TCP option320. In TCP options320, the Option-kind field indicates that this option is of type “kind_2”, which here is assumed to be a reserved type for the value-coded traffic optimization functionality indication. The second field of TCP option320, Option-length, specifies the length of the third field of TCP option320, the Option-data field, to be one byte. Here, it is assumed that three bits are used for coding each value, thereby allowing to represent up to eight (23) values. In the Option-data field of TCP option320, the first three bits (“010”) indicate that the second traffic optimization function (0·20+1·21+0·22=2) is performed by the first proxy103, and the following three bits (“110”) indicate that the third traffic optimization function (1·20+1·21+0·22=3) is performed by the first proxy103. The remaining two bits are padded with zeros.

It will be appreciated that the signaling of the traffic optimization functionality indication by the first proxy103to the second proxy104in accordance with an embodiment of the invention requires both proxies103and104to us a common way of coding the information comprised in the traffic optimization functionality indication.

As an alternative, embodiments of the invention may be based on signaling the traffic optimization functionality indication in an IP header of an IP request. For instance, in an IPv4 header the traffic optimization functionality indication may be conveyed in the “Options” field of the IP header in a manner similar to what has been described with respect to TCP headers hereinbefore. In an IPv6 header, the traffic optimization functionality indication may be conveyed as one or more extension headers.

As a further alternative, embodiments of the invention may be based on signaling the traffic optimization functionality indication in an HTTP header of an HTTP request. For instance, information describing the traffic optimization functions which are performed by the first proxy may be signaled by including additional header fields into the HTTP request, e.g., non-standard header fields such as “X-Shaping: 010000” (i.e., bit-coded or value-coded) or “X-Shaping: pacing=true” (indicating that a function called “pacing” is performed by the first proxy).

In the following, embodiments of the methods of optimizing downlink traffic in a communications network are described.

InFIG. 4, an embodiment of the method400of optimizing downlink traffic in a communications network destined for a UE, such as UE101in communications network100, is shown. The downlink traffic is delivered to the client via a RAN. The method400is performed by a first network node which is arranged for providing traffic optimization of downlink traffic, e.g., the first proxy103, and which is located downstream with respect to a second network node providing traffic optimization of downlink traffic, e.g., the second proxy104. The method400comprises receiving401from the client a request for content, including403a traffic optimization functionality indication into the request, and forwarding404the request to the second network node. The method400further comprises receiving405the downlink traffic from the second network node, optimizing406the downlink traffic according to the first traffic optimization functionality, and forwarding407the downlink traffic to the client. Optionally, if the traffic optimization functionality provided by the first network node comprises several traffic optimization functions, the method400may further comprise selecting402the traffic optimization functions comprised in the first traffic optimization functionality based on a type of traffic the request relates to. That is, the first network node may, in accordance with method400, select one or more functions out of a list of traffic optimization functions provided by the first network node.

Further with reference toFIG. 4, an embodiment of the invention may be envisaged in which the method400is performed as two separate sequences, or processes, rather than one. That is, rather than performing the sequence of steps401to407repetitively, a sequence of steps401to404may be performed repetitively, and a sequence steps405to407may be performed repetitively and concurrently to, i.e., in parallel with, the sequence of steps401to404, as is indicated by arrows411and412inFIG. 4. To this end, steps401to404relate to processing uplink traffic, i.e., requests for content which are sent from the client and which are forwarded to the second network node after a traffic optimization indication is included, whereas steps405to407relate to processing downlink traffic, i.e., optimizing the downlink traffic.

InFIG. 5, an embodiment of the method500of optimizing downlink traffic in a communications network destined for a UE, such as UE101in communications network100, is shown. The downlink traffic is delivered to the client via a RAN. The method500is performed by a second network node which is arranged for providing traffic optimization of downlink traffic, e.g., the second proxy104, and which is located upstream with respect to the first network node, e.g., the first proxy103. The method500comprises receiving501from the first network node a request for content and determining502whether the request comprises a traffic optimization functionality indication. If the request comprises a traffic optimization functionality indication502(“YES” inFIG. 5), the method500continues with saving information503pertaining to a communication session to which the request relates and forwarding504the request to a server providing the requested content. In step503, an identifier of the communication session may be stored in a list, a look-up table, or a database,706. The method500further comprises receiving505the downlink traffic from the server, determining506whether the downlink traffic relates to a request comprising the traffic optimization functionality indication, e.g., by looking up a session identifier of a communication session to which the downlink traffic relates, determining507the second traffic optimization functionality, i.e., which type of traffic optimization is to be performed by the second network node, optimizing508the downlink traffic, and forwarding509the downlink traffic to the first network node. In determining507the second traffic optimization functionality, traffic optimization functionality which corresponds to the first traffic optimization functionality, as indicated in the traffic optimization functionality indication, is omitted.

In the event that the request does not comprise any traffic optimization functionality indication502(“NO” inFIG. 5), the method500continues with510forwarding the request to a server providing the content, receiving downlink traffic from the server, optimizing the downlink traffic, and forwarding the downlink traffic to the UE, optionally via the first network node. In other words, if no traffic optimization functionality indication is found, the second network node performs as is known in the art. It will also be appreciated that embodiments of the invention may be envisaged in which the second network node is arranged for receiving a request for content directly from the UE, rather than from the first network node. In this case, the request does not comprise any traffic optimization functionality indication, and the second network node may perform traffic shaping in accordance with what is known in the art.

Further with reference toFIG. 5, an embodiment of the invention may be envisaged in which the method500is performed as two separate sequences, or processes, rather than one. That is, rather than performing the sequence of steps501to509repetitively, a sequence of steps501to504may be performed repetitively, and a sequence of steps505to509may be performed repetitively and concurrently to, i.e., in parallel with, the sequence of steps501to504, as is indicated by arrows511and512inFIG. 5. To this end, steps501to504relate to processing uplink traffic, i.e., receiving requests for content from the first network node and inspecting the requests for a traffic optimization indication, whereas steps505to509relate to processing downlink traffic, i.e., looking up a session identifier and optimizing the downlink traffic.

In the following, embodiments of the network nodes for optimizing downlink traffic in a communications network are described.

InFIG. 6, an embodiment of the first network node600for optimizing downlink traffic in a communications network is shown, wherein the downlink traffic is delivered to a client of the communications network via a RAN. The first network node600may, e.g., be the first proxy103described hereinbefore, a TCP proxy, an HTTP proxy, or the like. The first network node600comprises a first network interface601and a second network interface602. The first network node600may be arranged for communicating with a RAN, such as RAN102of communications network100, by means of the first network interface601, and with a second network node located upstream with respect to the first network node, such as the second proxy104, by means of the second network interface602, or vice versa. It will also be appreciated that the first network node600may comprise a single network interface only, which is arranged for communicating with the RAN and the second network node. The first network node600further comprises a processor603and a memory604. The memory604comprises instructions605executable by the processor604, i.e., a computer program or software, whereby the first network node600is operative to perform an embodiment of the invention as described hereinbefore with reference toFIGS. 1 to 5.

In particular, the first network node600is operative to receive from the client a request for content, include an indication into the request, wherein the indication pertains to a first traffic optimization functionality of the first network node, forward the request to a second network node of the communications network, receive downlink traffic from the second network node, optimize the downlink traffic according to the first traffic optimization functionality, and forward the downlink traffic to the client.

As an alternative, an embodiment of the first network node may comprise means being arranged for receiving from the client a request for content, including an indication into the request, wherein the indication pertains to a first traffic optimization functionality of the first network node, forwarding the request to a second network node of the communications network, receiving downlink traffic from the second network node, optimizing the downlink traffic according to the first traffic optimization functionality, and forwarding the downlink traffic to the client.

As yet another alternative, an embodiment of the first network node may comprise means for receiving from the client a request for content, means for including an indication into the request, wherein the indication pertains to a first traffic optimization functionality of the first network node, means for forwarding the request to a second network node of the communications network, means for receiving downlink traffic from the second network node, means for optimizing the downlink traffic according to the first traffic optimization functionality, and means for forwarding the downlink traffic to the client.

InFIG. 7, an embodiment of the second network node700for optimizing downlink traffic in a communications network is shown, wherein the downlink traffic is delivered to a client of the communications network via a RAN. The second network node700may, e.g., be the second proxy104described hereinbefore, a TCP proxy, an HTTP proxy, or the like. The second network node700comprises a first network interface701and a second network interface702. The second network node700may be arranged for communicating with a first network node located downstream with respect to the second network node, such as the first proxy103, by means of the first network interface701, and with a server providing content which is requested by the client, such as the server105, by means of the second network interface702, or vice versa. It will also be appreciated that the second network node700may comprise a single network interface only, which is arranged for communicating with the first network node and the server. The second network node700further comprises a processor703and a memory704. The memory704comprises instructions705executable by the processor704, i.e., a computer program or software, whereby the second network node700is operative to perform an embodiment of the invention as described hereinbefore with reference toFIGS. 1 to 5.

In particular, the second network node700is operative to receive from the first network node a request for content, determine whether the request comprises an indication pertaining to a first traffic optimization functionality of the first network node, determine whether the downlink traffic relates to a request comprising the traffic optimization functionality indication, optimize the downlink traffic, wherein traffic optimization functionality which corresponds to the first traffic optimization functionality is omitted if the downlink traffic relates to a request comprising the traffic optimization functionality indication, and forward the downlink traffic to the first network node.

As an alternative, an embodiment of the second network node may comprise means being arranged for receiving from the first network node a request for content, determining whether the request comprises an indication pertaining to a first traffic optimization functionality of the first network node, determining whether the downlink traffic relates to a request comprising the traffic optimization functionality indication, optimizing the downlink traffic, wherein traffic optimization functionality which corresponds to the first traffic optimization functionality is omitted if the downlink traffic relates to a request comprising the traffic optimization functionality indication, and forwarding the downlink traffic to the first network node.

The person skilled in the art realizes that the invention by no means is limited to the embodiments described above. On the contrary, many modifications and variations are possible within the scope of the appended claims.