The present application relates to a method in a node of a communications network, a node in a communications network, an apparatus for charging network traffic, and a computer-readable medium.
With the increased use of personal communications devices such as smart phones, tablets, laptops, and portable WiFi hotspots to name but a few, there is a surge in mobile data traffic. Operators of the networks to which these devices connect determine how to charge data traffic via basic charging rules.
The Open Systems Interconnection (OSI) model (ISO/IEC 7498-1) is a conceptual model that characterizes and standardizes the internal functions of a communication system by partitioning it into abstraction layers. The model separates communication functions into one of seven logical layers. Each layer interacts directly only with the layer immediately beneath it, and provided facilities for use by the layer above it. In this model there are seven layers. At the bottom is layer 1, the physical layer. Layer 2 is the data link layer. Layer 3 is the network layer. Layers 1 to 3 are media layers. Layer 4 is the transport layer. Layer 5 is the session layer. Layer 6 is the Presentation layer. Layer 7 is the Application layer. Layers 4 to 7 are the host layers.
In a wireless communications network, charging is based merely on the amount of traffic carried over the network. This determination is made in the network layer (layer 3). This is because charging is based upon the volume of data transported at the network layer, as reported by the Gateway (GGSN/PGW). This volume is known at layer 3 but is not apparent to the other layers.
As usage of communications networks evolves, the need arises for more complex charging schemes. Charging can be based upon the services used, so the network traffic generated by different applications can be charged differently. However, in known systems this is done by performing an offline correlation of services and network traffic.
This requires potentially sensitive information to be transmitted and stored within the network. This not only increases the burden on network resources, but also increases the risk of the security of such information being compromised.
Although application data is carried through packets in the network layer, the network layer is not able to determine the content of the packets—such activity is the preserve of the host layers. Thus, in order for data charging by application or by service to be implemented, the packet information in the network layer must be tied to the application level payloads in a host layer.
Accordingly there is provided a method in a node of a communications network, the method comprising logging packet information for network traffic related to a client. The method further comprises sending the logged packet information for network traffic related to the client from a network layer to a host layer within the node. The method further comprises identifying application level payloads for network traffic related to the client at a host layer within the node. The method further still comprises correlating the packet information with the application level payloads for network traffic related to the client.
The network layer handles the packets of application data but has no way of reading the contents; that is done in a host layer. By passing the packet information from the network layer to a host layer, a host layer in the node then has access to both packet information and application level payload information, which allows for correlation of the packet information for network traffic with application level payloads for the client. This correlation allows for the determination of which services in a host layer the packets in the network traffic are servicing. This allows network traffic to be charged according to the application that generated it.
The host layer may be one of: a transport layer, a session layer, a presentation layer, and an application layer.
The method may further comprise checking with a charging system before allowing data to pass to or from the client. The method may further comprise passing the correlation result to a charging system. The charging system may be arranged to determine if there is sufficient credit or allowance remaining for the data to be carried. The method may further comprise charging a user account registered to the client for the network traffic according to the application level payloads carried by the network traffic.
There is further provided a node in a communications network. The node is arranged to operate as a gateway between a client and the internet. The node logs packet information for network traffic related to a client, and transfers the logged packet information for network traffic related to the client from a network layer to a host layer within the node. The node identifies application level payloads for network traffic related to the client at a host layer within the node; and correlates network packet data with application level payloads initiated by the client.
The node may, instead of operating as a gateway between a client and the internet, alternatively operate as a reverse proxy between a server and at least one client. The following optional features equally apply to either embodiment.
The logged packet information may be processed in a host layer of the node, said processing comprising sorting packet information suitable for correlating with application level payloads.
The node may further comprise a traffic detection entity to identify application level payloads in network traffic related to the client. The traffic detection entity may query a charging entity to determine if there is sufficient credit or allowance remaining at a user account associated with the client before allowing data for the client to pass. The traffic detection entity may hold the network traffic for the client and send a request to an online charging system (OCS). The OCS may return a remaining data quota back to the traffic detection entity. If the OCS responds with zero quota then network traffic for the client is blocked.
The node may pass the correlation result to a charging system. The charging system may be an online charging system (OCS). The node may further comprise triggering a charge item to be recorded against a user account registered to the client, the charge item corresponding to the volume of network traffic related to the client and what application level payloads that network traffic carried.
There is further provided an apparatus for charging network traffic comprising processing circuitry and a memory, said memory containing instructions executable by said processing circuitry whereby said apparatus is operative to perform a method described herein.
There is further provided an apparatus for charging network traffic comprising processing circuitry and a memory, said memory containing instructions executable by said processing circuitry whereby said apparatus comprises a module for logging packet information for network traffic related to a client and for transferring the logged packet information for network traffic related to the client from a network layer to a host layer within the apparatus. Said apparatus further comprises a module for identifying application level payloads for network traffic related to the client at a host layer within the apparatus. Said apparatus further still comprising a module for correlating network packet data with application level payloads initiated by the client.
There is further provided a computer-readable medium, carrying instructions, which, when executed by computer logic, causes said computer logic to carry out any of the methods defined herein.
There is further provided a computer-readable storage medium, storing instructions, which, when executed by computer logic, causes said computer logic to carry out any of the methods defined herein. The computer program product may be in the form of a non-volatile memory or volatile memory, e.g. an EEPROM (Electrically Erasable Programmable Read-only Memory), a flash memory, a disk drive or a RAM (Random-access memory).
An improved data charging system in a communications network will now be described, by way of example only, with reference to the accompanying drawings, in which:
Although application data is carried through packets in the network layer, the network layer is not able to determine the content of the packets—such activity is the preserve of the host layers. Thus, in order for data charging by application to be implemented, the packet information in the network layer must be tied to the application level payloads in a host layer.
Gateway 110 comprises a Netfilter Hook 114, which is a hook for intercepting packets belonging to a request/response. It logs packet information into a shared memory 116.
Gateway 110 further comprises a Driver 118. The driver 118 is for ‘read only’ character devices, one each for uplink device and downlink device. When the user space process reads from this device, the Driver 118 copies the packet information into user space and subsequently removes it from kernel memory.
Character special files or character devices relate to devices through which the system transmits data one character at a time by, for example, getchar. These device modules often serve fore stream communication with devices such as mice, keyboards, virtual terminals, and serial modems, and usually do not support random access to data. In most implementations, character devices use unbuffered input and output routines. The system reads each character from the device immediately or writes each character to the device immediately.
Gateway 110 further comprises an uplink packet queue 122 and a downlink payload queue 140. The uplink packet queue is a connection level queue which stores packet information from the Driver prior to the charging process. The downlink payload queue 140 is a FIFO queue which stores the ‘uncharged’ payload in order. Entries in the downlink payload queue 140 are removed after the payload is charged.
In operation, the system works as follows.
Calculating the service type for a downlink response may be trickier than for the uplink request as there is no URL in the HTTP response. However, the request URL is remembered when the user space process handles the request, and this can be used in identifying the service type of the response. Still, in the absence of such mapping, there remains important information within the response, such as ‘Content-Type’ which indicates the content is image or video, and this can also be used as input into the charging rules.
The network layer handles the packets of application data but has no way of reading the contents. The contents of the packets could be accessed by deep packet inspection, but this requires a lot of processing power and/or additional network resources. The content of the packets, and thus their application level payload information, is already available in a host layer. By passing the packet information from the network layer to a host layer, the host layer then has access to both packet information and application level payload information. This allows the node to efficiently perform correlation of the packet information for network traffic with application level payloads for the client, and so the node can determine which services in the host layer the packets in the network traffic are servicing. This allows network traffic to be charged according to the application that generated it. Further, this correlation is carried out by the node handling the traffic without using additional processing resources in other parts of the network.
A benefit of this process is that neither the packet information nor the application level payload information needs to leave the node for correlation. Obviously, the application level payload leaves the node in the packets that are transmitted and received, but the information about this communication, the metadata, does not need to leave the node. Compared to known methods, the described process is thus more efficient in terms of intra-network communication, and is also likely to have fewer security vulnerabilities.
Where the client being served uses a pre-pay service, the charging system 134 may implement a credit control procedure. Here, the method further comprises checking with the charging system 134 that there is sufficient credit on the associated user account before allowing data to pass to or from the client 102.
Where the client being served is associated with a user account that pays in arrears, a charge is recorded 360 on the appropriate user account registered to the client for the network traffic according to what application level payloads the network traffic carried.
In operation, the gateway 410 is arranged to log packet information for network traffic related to a client, and transfers the logged packet information for network traffic related to the client from the network layer 413 to an application layer 417 within the node. The node identifies application level payloads for network traffic related to the client in one of the host layers 420 within the node; and correlates network packet data with application level payloads initiated by the client.
The node 410 may, instead of operating as a gateway between a client and the internet, alternatively operate as a reverse proxy between a server and at least one client. The optional features described herein equally apply to either embodiment.
Node 510 further comprises a communication interface 530 for sending and receiving communications between at least one client and the internet.
The node 510 may further comprise a device driver 518 that exchanges packet logs between kernel memory and application memory. The node may further comprise a netfilter hook 514 to log packet information for client traffic. The netfilter hook 514 may reside in a network layer of the node. The packet information may be logged into a kernel portion of shared memory 525. The logged packet information may comprise SYN messages and ACK messages.
The logged packet information may be processed in the host layers of the node 510, said processing comprising sorting packet information suitable for correlating with application level payloads.
The node 510 may further comprise a traffic detection entity 550 to identify application level payloads in network traffic related to the client. The traffic detection entity 550 may query a charging entity to determine if there is sufficient credit or allowance remaining at a user account associated with the client before allowing data for the client to pass. The traffic detection entity 550 may hold the network traffic for the client and send a request to an online charging system (OCS). The OCS may return a remaining data quota back to the traffic detection entity 550. If the OCS responds with zero quota then network traffic for the client is blocked. The node 510 may further trigger a charge item to be recorded against a user account registered to the client, the charge item corresponding to the volume of network traffic related to the client and what application level payloads that network traffic carried.
There is further provided an apparatus for charging network traffic comprising processing circuitry and a memory, said memory containing instructions executable by said processing circuitry whereby said apparatus comprises a module for logging packet information for network traffic related to a client and for transferring the logged packet information for network traffic related to the client from a network layer to an host layer within the apparatus. Said apparatus further comprises a module for identifying application level payloads for network traffic related to the client at a host layer within the apparatus. Said apparatus further still comprising a module for correlating network packet data with application level payloads initiated by the client.
There is further provided a computer-readable medium, carrying instructions, which, when executed by computer logic, causes said computer logic to carry out any of the methods defined herein.
There is further provided a computer-readable storage medium, storing instructions, which, when executed by computer logic, causes said computer logic to carry out any of the methods defined herein. The computer program product may be in the form of a non-volatile memory or volatile memory, e.g. an EEPROM (Electrically Erasable Programmable Read-only Memory), a flash memory, a disk drive or a RAM (Random-access memory).
The methods and apparatus described herein may be used to support one or more of the following features.
Further, the methods and apparatus described herein may be used by a network operator to offer services to particular Content Providers. Such services may comprise: free customer access to network resources for access to particular content; differentiated network capabilities (such as bandwidth/QoS, targeted advertising etc.); and/or connections to premium content.
It will be apparent to the skilled person that the exact order and content of the actions carried out in the method described herein may be altered according to the requirements of a particular set of execution parameters. Accordingly, the order in which actions are described and/or claimed is not to be construed as a strict limitation on order in which actions are to be performed.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim, “a” or “an” does not exclude a plurality, and a single processor or other unit may fulfil the functions of several units recited in the claims. Any reference signs in the claims shall not be construed so as to limit their scope
The application level payload data relates to information in any of the host layers, that is layers 4 to 7 (the transport layer, the session layer, the presentation layer and the application layer). In so far as the packet information that is sent from the network layer to a host layer is information about the packets, this comprises packet metadata. Similarly, the application level payload information used for correlation may comprise data about the application level payload, or application level payload metadata. Thus the correlation performed in the host layer may comprise a correlation between the packet metadata and the application level payload metadata.
According to the definition of the OSI model used herein, where a node accesses the application level payload of a communication, that communication has moved into a host layer of the node. That is, a layer of the node is defined by the information layer of the communication that is being accessed.
The client may be a client device such as a user apparatus. The client device may be any kind of personal computer such as a television, a smart television, a set-top box, a games-console, a home-theatre personal computer, a tablet, a smartphone, a laptop, or even a desktop PC. The client may be a wireless device, or connected to a network via a cable.
The network traffic or packet information that is correlated with application level payloads may comprise a correlation result. An application level payload may be a service payload. Network traffic related to a client may comprise network traffic to and/or from the client.
While examples have been given in the context of the HTTP communication protocol, these examples are not intended to be the limit of the communication protocols to which the disclosed method and apparatus may be applied. The principles disclosed herein can be applied to any communication protocol used in a communications network which carries data to and from a client device
Further, while examples have been given in the context of a particular communications network, these examples are not intended to be the limit of the communications networks to which the disclosed method and apparatus may be applied. The principles disclosed herein can be applied to any communications network which carries data to and from a client device, including both wired IP networks and wireless communications networks such as LTE and 3G networks.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2014/055343 | 3/17/2014 | WO | 00 |