This application claims priority from European Patent Application No. 17305376.0, entitled “METHOD FOR MANAGING ACTIVE FLOWS IN A COMMUNICATION NETWORK BY A NETWORK ELEMENT, AND CORRESPONDING NETWORK ELEMENT”, filed on Mar. 30, 2017, the contents of which are hereby incorporated by reference in its entirety.
The present disclosure generally relates to the bandwidth and policy management, for instance, in the context of a domestic or business network.
This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present disclosure that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
In a home network, multiple users can run diverse applications using different devices to access a given set of services. In one hand, the number of networked devices at home and the bandwidth demand steadily increase, and in the other hand, the bandwidth of the downlink to the home network has remained roughly constant. As a result, application performance in home networks has become highly unpredictable with many home users suffering from poor Quality of Experience.
There is then a need of a mechanism for managing bandwidth in a communication network, such as a home or business network, to enhance user experience.
The disclosure concerns a method to be implemented at a network element adapted to be connected to a communication network comprising a set of devices, said devices being configured to receive one set of available services, wherein said method comprises:
In an embodiment of the present principles, a bandwidth for a flow associated with one of said couples can be obtained from a range of allowable bit-rates for said flow between the service and the device of said couple.
In an embodiment of the present principles, the range of allowable bit-rates for said flow between the service and the device of said couple (Si, Dj) can be defined by the range [Max (bs.mini, bd.minj); Min (bs.maxi, bd.maxj)], wherein:
In an embodiment of the present principles, the bandwidth for a flow associated with one of said couples, obtained from the range [Max (bs.mini, bd.minj); Min (bs.maxi, bd.maxj)], can depend on a bandwidth manager policy associated with said communication network.
In an embodiment of the present principles, said bandwidth manager policy associated with said communication network can belong to the following group of policies comprising:
In an embodiment of the present principles, allowing the identified one or more allowable flows can be performed periodically.
In an embodiment of the present principles, allowing the identified one or more allowable flows can be performed based on a network event.
In an embodiment of the present principles, said network event can belong to the following group of network events comprising:
In an embodiment of the present principles, a priority pi, for a flow between the service Si and the device Dj of said couples can be defined by:
where:
In an embodiment of the present principles, a priority pij for a flow between the service Si and the device Dj of said couples can be defined by:
p
ij
32 C1×psi+C2×pdj
where:
In an embodiment of the present principles, the priority psi associated with the service Si can be defined by:
where:
In an embodiment of the present principles, the priority pdj associated with the device DJ can be defined by:
where:
In an embodiment of the present principles, the network element can be arranged in a gateway.
Besides, the present disclosure further concerns a network element adapted to be connected to a communication network comprising a set of devices, said devices being configured to receive one set of available services,
wherein said network element comprises at least one memory and one or more processors configured to:
Besides, the present disclosure further concerns a network element adapted to be connected to a communication network comprising a set of devices, said devices being configured to receive one set of available services, wherein the network element is a bandwidth manager configured to:
In an embodiment of the present principles, a bandwidth for a flow associated with one of said couples can be obtained from a range of allowable bit-rates for said flow between the service and the device of said couple.
In an embodiment of the present principles, the range of allowable bit-rates for said flow between the service and the device of said couple (Si, Dj) can be defined by the range [Max (bs.mini, bd.minj); Min (bs.maxi, bd.maxj)], wherein:
In an embodiment of the present principles, the bandwidth for a flow associated with one of said couples, obtained from the range [Max (bs.mini, bd.minj); Min (bs.maxi, bd.maxj)], can depend on a bandwidth manager policy associated with said communication network.
In an embodiment of the present principles, said bandwidth manager policy associated with said communication network can belong to the following group of policies comprising:
In an embodiment of the present principles, the network element can be arranged in a gateway.
Besides, the present disclosure further concerns a non-transitory program storage device, readable by a computer, tangibly embodying a program of instructions executable by the computer to perform a method to be implemented at a network element adapted to be connected to a communication network comprising a set of devices, said devices being configured to receive one set of available services,
wherein said method comprises:
The present disclosure also concerns a computer program product stored on a non-transitory computer readable medium and comprising program code instructions executable by a processor for implementing a method to be implemented at a network element adapted to be connected to a communication network comprising a set of devices, said devices being configured to receive one set of available services,
wherein said method comprises:
The method according to the disclosure may be implemented in software on a programmable device. It may be implemented solely in hardware or in software, or in a combination thereof.
Some processes implemented by elements of the present disclosure may be computer implemented. Accordingly, such elements may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as “circuit”, “module” or “system”. Furthermore, such elements may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
Since elements of the present disclosure can be implemented in software, the present disclosure can be embodied as computer readable code for provision to a programmable apparatus on any suitable carrier medium. A tangible carrier medium may comprise a storage medium such as a floppy disk, a CD-ROM, a hard disk drive, a magnetic tape device or a solid state memory device and the like.
The disclosure thus provides a computer-readable program comprising computer-executable instructions to enable a computer to perform the method aforementioned.
Certain aspects commensurate in scope with the disclosed embodiments are set forth below. It should be understood that these aspects are presented merely to provide the reader with a brief summary of certain forms the disclosure might take and that these aspects are not intended to limit the scope of the disclosure. Indeed, the disclosure may encompass a variety of aspects that may not be set forth below.
The disclosure will be better understood and illustrated by means of the following embodiment and execution examples, in no way !imitative, with reference to the appended figures on which:
Wherever possible, the same reference numerals will be used throughout the figures to refer to the same or like parts.
The following description illustrates the principles of the present disclosure. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the disclosure and are included within its scope.
All examples and conditional language recited herein are intended for educational purposes to aid the reader in understanding the principles of the disclosure, and, are to be construed as being without limitation to such specifically recited examples and conditions.
Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes that may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
The functions of the various elements shown in the figures may be provided with dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and nonvolatile storage.
In the claims hereof, any element expressed as a means and/or module for performing a specified function is intended to encompass any way of performing that function including, for example, a) a combination of circuit elements that performs that function or b) software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.
In addition, it is to be understood that the figures and descriptions of the present disclosure have been simplified to illustrate elements that are relevant for a clear understanding of the present disclosure, while eliminating, for purposes of clarity, many other elements found in typical digital multimedia content delivery methods, devices and systems. However, because such elements are well known in the art, a detailed discussion of such elements is not provided herein. The disclosure herein is directed to all such variations and modifications known to those skilled in the art.
As shown in
The gateway can further comprise a bandwidth manager configured to determine a number of flows between the services Si delivered by the servers 40 and the devices 10 Dj, from the implementation of the method shown in
In particular, as shown in
Maximize: Σ(vi×zi),
subject to: Σ(wi×zi)≤W,
where {z0 . . . zn−1} is a set of n items where zi has a value vi and a weight wi, with zi ∈ {0,1},
Several algorithms are already known to solve the 0-1 Knapsack problem based on greedy, branch-and-bound, dynamic programming, or genetic approached as described, for instance, in the document “Different approaches to solve the 0/1 knapsack problem” from M. Hristakeva and D. Shrestha, in Proc. of 38th Midwest Instruction and Computing Symposium, April 2005, incorporated herein by reference.
In particular, the Dynamic Programming solution to the 0-1 Knapsack problem can be defined as follows:
m[0, w]=0
m[i,w]=m[i−1, w], if w,>w
m[i,w]=max (m[i−1, w]. m[i−1, w−w,]+vi), if wi≤w
The solution is obtained by computing m[n,W]. The computation time as well as the memory requirements (complexity) of the solution is O(n*W).
An example of pseudo code for the Dynamic Programming solution to the 0-1 Knapsack Problem is shown herein after:
Thus, in an embodiment compliant with the present principles, the bandwidth manager 160, running on the gateway 100, can be configured to activate the maximum number of downlink flows, taking into account the set of flow priorities (for instance given by a user), knowing that the sum of the bandwidths of the activated downlink flows needs to be lower than the available downlink bandwidth B associated with the communication network 20.
According to the present principles, the one or more steps of the method 300 can be performed periodically (such as every 30 seconds) or based on a network event, such as:
It should also be noted that the periodicity of the allocation can, for instance, depend, among other factors, on the processing resources available at the gateway 100.
In the following, it is considered that:
As above mentioned, the goal of the bandwidth manager 160 of the gateway 100 can be to activate the maximum number of downlink flows, taking into account the set of flow priorities (e.g. given by the user) and knowing that the sum of the bandwidths of the active flows needs to be lower than the available downlink bandwidth B. To that end, the bandwidth manager 160 needs to solve an optimization problem that can be mathematically defined as follows:
This bandwidth management optimization problem can be considered as the 0-1 Knapsack optimization problem as above described, so that a solution to the 0-1 Knapsack problem can provide a solution to said bandwidth management optimization problem.
To determine pij, it can further be considered that:
According to the present principles, a priority pij for a flow between a service Si and a device Dj of a couple (Si, Dj) is defined by the following equation:
wherein:
In a variant compliant with the present principles, a priority pij can be defined by the following equation:
p
ij=C1×psi+C2×pdj
wherein:
Besides, to determine psi, it can be further assigned to each service Si of a set of n services, a vector V containing a set of K priorities assigned to a set of K features of said service Si such that:
Vs
i
=[vs
i0
, vs
i1
, . . . , vs
ik
, . . . , vs
iK−1],
where the priority vsik ∈ {0,1 , . . . , 100} for example. Naturally, other values can be used.
As an illustrative but non limitative example, the set of features of the service to consider can be:
The priority psi for the service Si can be obtained from the following equation:
wherein:
The set of n priorities psj, corresponding to the n services, can be aggregated into the vector Ps of dimension n.
In the following numerical example showing the computation of priorities psi compliant with the present principles, it is considered that:
In a first moment t1, it is considered that Dad is watching Netflix (VOD service S0), whereas Son is playing a game in the TF1 WEB site (WEB service S1). In this case, the vectors of service priorities Vsi are:
Vs0=[vs00, vs01]=[100, 100] then ps0=100
Vs1=[vs10, vs11]=[10, 50] then ps1=30
In a second moment t2, it is considered that Dad and Mom are watching together Orange IPTV (IPTV service S0), whereas Son is receiving a stream from the TF1 WEB site (OTT service S1). In this case, the vectors of service priorities Vsi are:
Vs0=[vs00, vs01]=[100, 50] then ps0=75
Vs1=[vs10, vs11]=[50, 50] then ps1=50
Besides, to determine pdj, it can be further assigned to, each device Dj of the set of m devices, a vector V containing a set of K priorities assigned to a set of K attributes of said device Dj such that:
Vd
j
=[vd
j0
, vd
j1
, . . . , vd
jk
, . . . , vd
jK−1]
where the priority vdjk∈ {0,1 , . . . , 100} for example.
As an illustrative but non limitative example, the set of features of the devices to consider can be:
The priority pdj for the device Dj can be obtained from the following equation:
wherein:
The set of m priorities pdj, corresponding to the m services, can be aggregated into a vector Pd of dimension m.
In the following numerical example showing the computation of priorities pdj compliant with the present principles, it is considered that:
In a first moment t1, it is considered that Dad is in the Office using his PC (device D0), Mom is in the Kitchen using her Tablet (device D1), and Son is in the living room playing with the Game Console (device D2).). In this case, the vectors of device priorities Vdj are:
Vd0=[vd00, vd01, vd02]=[50, 100, 80] then pd0=76
Vd1=[vd10, vd11, vd12]=[50, 100, 80] then pd1=76
Vd2=[vd20, vd21, vd22]=[100, 50, 100] then pd2=83
In a second moment t2, it is considered that Dad is in the Office using his PC (device D0), Mom is in the Living room using her Tablet (device D1), and Son is in his bedroom watching TV (device D2). In this case, the vectors of device priorities Vdj are:
Vd0=[vd00, vd01, vd02]=[50, 100, 80] then pd0=76
Vd1=[vd10, vd11, vd12]=[80, 100, 100] then pd1=93
Vd2=[vd20, vd21, vd22]=[100, 50, 80] then pd2=76
Besides, to determine the bandwidth bij required for a downlink flow between a service Si and a device Dj, it can be considered that:
Thus, the bandwidth bij required for a downlink flow between a service Si and a device Dj can be obtained from the range of allowable bit-rates [Max (bs.mini, bd.minj) Min (bs.maxi, bd.maxj)] based, for instance, on a bandwidth manager policy associated with the LAN 20. Some examples of the bandwidth manager policy can be:
For the implementation of the present principles, the concept of Software Defined Multi-Tenant Network, as illustrated in
In addition, Software Defined Networking (SDN) is a paradigm that separates the control and data planes into two specific entities to bring flexibility and programmability to the networks and to ease the management of multi-tenant networks. In a SDN environment, the network applications communicate and send their network service requests to the controller via Northbound Application Programming Interfaces (NBIs). Accordingly, the controller (HNA, ISP, Tenant 1) translates the requests into low-level forwarding rules and installs them in the data plane network apparatuses via Southbound Application Programming Interfaces (SBIs).
In an example compliant with the present principles shown in
Since the HNA has no access to the Southbound API, the HNA communicates his preferences to the other controllers, e.g., the ISP controller, through a dedicated interface. For example, the HNA can use an application on his smart phone (or tablet, computer, etc.) to modify and configure his profile and preferences. In other words, the HNA tenant has a consultative role about the control of the slices assigned to each service the user has subscribed to but he does not have a direct control of the slices, the control of the slices is the service providers' responsibility.
In said example, a smart-phone application 501 can be implemented on a smart-phone 500 (belonging to the home network) to display to the HNA an ordered list 502 of icons 510 arranged in column, each icon 510 representing a distinct service as shown in
The smart-phone application can then convert the displayed ordered list of service icons into an Event-Condition-Action (ECA) policy rule, as follows:
In the example shown in
This ECA policy rule can be stored into a policy file that can be read by the ISP controller which needs to translate the ECA policy rule into a set of numerical priorities as previously described. The ISP controller can be embedded within the gateway 100.
Thus, when S0=Netflix, S1=Youtube, S2=Update of Windows OS, S3 =Facebook, and S4=Update of Ubuntu OS, the set of services S is:
S={S0, S1, S2S3, S4}.
For simplicity, in this example, it is considered that the priority of each service Si depends only on a single feature of the service. Therefore, the vector Vsi can be Vsi=[vsi0] and psi=vsi0. With an evenly distributed set of priorities Ps to the six available services, the set Ps of priorities assigned to the six available services is:
Ps={ps0=100, ps1=75, ps2=50, ps3=25, ps40=}
As shown in
As for the services, the smart-phone application can convert the displayed ordered list of device icons into an ECA policy rule, as follows:
Thus, when D0=Smart TV, D1=Smart Phone, D2=Portable PC, and D3 =Desktop PC, the set D of available devices is:
D={D0, D1, D2, D3}
For simplicity, in this example, it is considered that the priority of each device Di depends only on a single feature of the device. Therefore, the vector Vdj is Vdj=[vdj0] and pdj=vd0. With an evenly distributed set of priorities Pd to the four available devices, the set Pd of priorities assigned to the four available devices is:
Pd={pd0=100, pd1=67, pd2=34, pd3=0}
The right side of
In the initial priority status of the active flows, only Son and Daughter are at Home. Daughter is watching YouTube on the Smart TV, and at the same time browsing Facebook on her smart phone, and in the meantime, the Son's Desktop PC is receiving an Update of Windows OS.
Dad arrives at Home and wishes to watch a film from Netflix on the Smart TV. Daughter gives way the Smart TV to Dad and switches the YouTube stream to her smart phone.
In the final priority status of the active flows, Dad watches a Netflix film on the SmartTV, Daughter is watching YouTube stream on her smartphone and at the same time browsing Facebook on her smart phone, and the Son's Desktop PC is receiving an Update of Windows OS.
The sequence of events of
In another embodiment of the present principles, the HNA can have the possibility to modify on the fly the flow priorities of the solution produced by the bandwidth manager solving the bandwidth management optimization problem. This would mean that the sets of service and device priorities (Ps, Pd), used as input for solving the bandwidth management optimization problem, do not represent the user wishes in the present context.
In this embodiment, several solutions can be implemented:
Besides, in a variant compliant with the present principles, the HNA can be allowed to have direct access to the Southbound API as shown in
In a further variant compliant with the present principles, the HNA can get access to the Southbound API through the ISP controller. The difference with the previous variant is that the HNA has access only to the settings of the services provided by the ISP and has no direct access to the settings of the services provided by the other tenants.
Thus, thanks to the present principles, the bandwidth management method 300 can allow to activate the maximum number of flows, taking into account the set of flow priorities (for instance given by a user or by an operator), knowing that the sum of the bandwidths of the active flows needs to be lower than the available downlink bandwidth B.
In the Figures, it is to be appreciated that the illustrated blocks or modules can correspond to functional modules, which may or may not correspond to distinguishable physical units. For example, a plurality of such modules may be associated in a unique component or circuit, or correspond to software functionalities. Moreover, a module may potentially be composed of separate physical entities or software functionalities.
References disclosed in the description, the claims and the drawings might be provided independently or in any appropriate combination. Features may be, where appropriate, implemented in hardware, software, or a combination of the two.
Reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one implementation of the method and device described. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments.
Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.
Although certain embodiments only of the disclosure have been described herein, it will be understood by any person skilled in the art that other modifications, variations, and possibilities of the disclosure are possible. Such modifications, variations and possibilities are therefore to be considered as falling within the spirit and scope of the disclosure and hence forming part of the disclosure as herein described and/or exemplified.
The flowchart and/or block diagrams in the Figures illustrate the configuration, operation and functionality of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, or blocks may be executed in an alternative order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of the blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. While not explicitly described, the present embodiments may be employed in any combination or sub-combination.
Number | Date | Country | Kind |
---|---|---|---|
17305376.0 | Mar 2017 | EP | regional |