US20180152861A1 - Systems and methods for optimizing network traffic - Google Patents

Systems and methods for optimizing network traffic Download PDF

Info

Publication number
US20180152861A1
US20180152861A1 US15/628,138 US201715628138A US2018152861A1 US 20180152861 A1 US20180152861 A1 US 20180152861A1 US 201715628138 A US201715628138 A US 201715628138A US 2018152861 A1 US2018152861 A1 US 2018152861A1
Authority
US
United States
Prior art keywords
traffic steering
network
steering controller
terminal device
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US15/628,138
Other versions
US20180368025A9 (en
US10356660B2 (en
Inventor
Carlos Giraldo Rodriguez
Jorge Ernesto Fontenla Gonzalez
Felipe Jose Gil Castineira
Francisco Javier Gonzalez Castano
Carlos Perez Garrido
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/866,550 external-priority patent/US9749243B2/en
Application filed by Individual filed Critical Individual
Priority to US15/628,138 priority Critical patent/US10356660B2/en
Publication of US20180152861A1 publication Critical patent/US20180152861A1/en
Publication of US20180368025A9 publication Critical patent/US20180368025A9/en
Application granted granted Critical
Publication of US10356660B2 publication Critical patent/US10356660B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/08Load balancing or load distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W16/00Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
    • H04W16/22Traffic simulation tools or models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0226Traffic management, e.g. flow control or congestion control based on location or mobility
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/08Load balancing or load distribution
    • H04W28/09Management thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/10Scheduling measurement reports ; Arrangements for measurement reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/20Communication route or path selection, e.g. power-based or shortest path routing based on geographic position or location

Definitions

  • LTE cellular telephony
  • OFDMA orthogonal frequency division multiple access
  • ANDSF Access Network Discovery and Selection Function
  • SDN Software Defined Network
  • a system for optimizing the performance of a plurality of networks includes a first terminal device, a traffic steering controller, and a terminal traffic steering agent.
  • the first terminal device may be in electronic communication with the plurality of networks.
  • the traffic steering controller may be in electronic communication with the first terminal device.
  • the traffic steering controller may also be configured to receive user profiles and network performance metrics and create traffic steering rules based on the user profiles and network metrics.
  • the terminal traffic steering agent nay be configured to receive traffic steering rules from the traffic steering controller and direct a virtual network switch based on the traffic steering rules.
  • the terminal traffic steering agent may include a user profiling manager, a network metrics manager, and an access discovery and selection manager.
  • the user profiling manager may be configured to generate and update the user profiles and send them to the traffic steering controller.
  • the network metrics manager may be configured to collect the network performance metrics and send them to the traffic steering controller.
  • the access discovery and selection man ager may be configured to discover and identify the plurality of networks and, based thereon, report available network information to the traffic steering controller.
  • the virtual network switch may be configured to receive network traffic at a virtual network interface and, based on directions received from the traffic steering controller, forward the network traffic to a physical interface of at least one of the plurality of networks.
  • FIG. 1 is a schematic illustration of a first embodiment of a network traffic steering system.
  • FIG. 2 is a sequence diagram of a first example of a method of steering network traffic.
  • FIG. 3 is a schematic illustration of a second embodiment of a network traffic steering system.
  • FIG. 4 is a schematic illustration of a profiling manager of a terminal device.
  • FIG. 5 is a schematic illustration of one embodiment of a traffic steering controller.
  • FIG. 6 is a schematic illustration of a user profile manager.
  • FIG. 7 is a schematic illustration of a method of controlling the dataflow from one or more terminal devices over a plurality of networks.
  • FIG. 8 is a schematic illustration of one example of a terminal device.
  • FIG. 9 is a schematic illustration of one example of a mobile terminal device.
  • Network traffic steering system 10 includes a traffic steering controller 110 , a plurality of access networks 1 through N, and at least one terminal device 120 .
  • the access networks 1 through N may each be the same type of connection (e.g., WiFi).
  • the access networks 1 through N may include different types of networks utilizing different communication technologies (e.g. at least one WiFi network and at least one LTE network, among others).
  • Terminal device 120 may be connected to one or more of networks 1 through N via connections 102 through 104 .
  • terminal device 120 includes at least one network interface.
  • terminal device 120 includes a network interface for each different type of networks 1 through N.
  • Traffic steering controller 110 may communicate electronically with terminal device 120 via connection 101 .
  • traffic steering controller 110 may send OpenFlow commands to terminal device 120 via connection 101 .
  • the OpenFlow commands may instruct the terminal device 120 how to distribute the network traffic being sent by terminal device 120 through the plurality of access networks 1 through N.
  • the traffic steering controller 110 may instruct the terminal device 120 to send voice traffic through access network 1 , wherein access network 1 may provide less delay.
  • the traffic steering controller 110 may instruct the terminal device 120 to send elastic traffic through access network 2 .
  • connection 101 between terminal device 120 and traffic, steering controller 110 may be established via one or more of networks 1 through N.
  • terminal device 120 and traffic steering controller 110 may remain connected (via connection 101 ) throughout an entire session, despite terminal device 120 connecting and disconnecting from various one of networks 1 through N, so long as terminal device 120 is always connected to at least one network.
  • Traffic steering controller 110 may communicate electronically with one or more of networks 1 through N via, connections 105 to 107 .
  • traffic steering controller 110 may collect network metrics from the plurality of network devices (routers, switches, access points) of networks 1 though N via connections 105 to 107 .
  • the collected network metrics may include, but are not limited to, link occupancy, queue size, CPU load, and the throughput and number of connections of each type of traffic. It may be appreciated that traffic steering controller 110 may collect any other kind of relevant network metric in addition to those listed above.
  • Networks 1 though N may include access and backhaul networks.
  • Networks 1 though N include a plurality of network devices (routers, switches, access points).
  • Terminal device 120 may communicate electronically with traffic steering controller 110 via connection 108 .
  • terminal device 120 may send terminal device metrics regarding the access networks within range of terminal device 120 .
  • terminal device metrics include, but are not limited to, Service Set Identifier (SSID) of the networks within range, access technology implementation details of the networks, information about the quality of the connection, the radio access technologies available at the terminal device, the physical location of the terminal device, battery level of the terminal device, and/or the operating system of the terminal device.
  • SSID Service Set Identifier
  • connection 108 enables terminal device 120 to send one or more user profiles to the traffic steering controller 110 .
  • a “user profile” is a compilation of machine-readable information elated to the behavior of the user of a terminal device which can influence the quality of his/her experience or the performance of the network(s) connected to the terminal device. The user profile may be used to predict the future impact on the user's experience of the networks connected to the terminal device, based on the recent behavior of the user.
  • the traffic steering controller 110 may be configured to control traffic through each of networks 1 through N, based at least in part on the terminal metrics, network metrics, and/or together with the profile of the user.
  • Traffic steering system 20 includes many similar or identical features to traffic steering system 10 . Thus, for the sake of brevity, each feature of traffic steering system 10 will not be redundantly explained.
  • traffic steering system 20 includes a terminal device 230 , a first access network 240 , a second access network 250 , and a traffic steering controller 260 .
  • terminal device 230 may discover and connect to traffic steeling controller 260 managing two federated access networks 240 , 250 .
  • Terminal device 230 may send a data flow and close the connection with the traffic steering controller 260 and the networks.
  • both the first and the second access net corks, 240 , 250 may send network metrics 201 , 202 to traffic steering controller 260 .
  • Network metrics 201 , 202 may include metrics related to one or more network devices of access networks 240 , 250 .
  • network metrics 201 , 202 may include metrics related to routers, switches and/or access points of access networks 240 , 250 .
  • Network metrics 201 , 202 may be sent periodically as the conditions of the networks change over time.
  • Terminal device 230 may send a connection request 203 to first access network 240 .
  • First access network 240 replies with a message 204 containing an identifier of the traffic steering controller 260 via, for example, DHCPv4 option 43 or DHCPv6 option 17 .
  • terminal device 230 establishes a connection with traffic steering controller 260 .
  • Terminal device 230 sends terminal information 205 to the traffic steering controller 260 .
  • Terminal information 205 includes terminal metrics of terminal device 230 and a user profile of a user of terminal device 230 .
  • Traffic steering controller 260 collects information from the user profile and the terminal metrics, including the access network alternatives within the reach of the terminal (in this case, access network 240 and access network 250 ) as well as additional useful information.
  • Terminal 230 sends terminal information 205 periodically as the conditions and visibility of the available access networks change over time.
  • terminal 230 is ready to start generating traffic.
  • Terminal 230 may send a data flow 206 .
  • Traffic steering controller 260 based at least in part of the user profile, network metrics and/or terminal metrics may create traffic steering rules 207 in order to optimize the performance of access networks 240 , 250 .
  • Traffic steering controller 260 may then send traffic steering rules 207 to terminal device 230 .
  • Traffic steering rules 207 may include an instruction to route data flow 206 through second access network 250 .
  • traffic steering rules 207 may include instructions to terminal device 230 to connect to second access network 250 , and the required credentials to make the connection process transparent to the user. Therefore, the terminal establishes connection 208 to second access network 250 and, once the connection is established, sends data flow 209 to second access network 250 . The above described process may be repeated with addition a data flows.
  • traffic steering controller 260 may request terminal 230 to resend an expanded or updated version of the user profile.
  • the updated user profile may include additional or more recent information.
  • terminal device 230 may send disconnect notification 210 to traffic steering controller 260 . Additionally or alternatively, terminal device 230 may send disconnect instructions 212 , 211 to respective access networks 240 , 250 .
  • Traffic steering system 30 includes many similar or identical features to traffic steering system 10 and/or traffic steering system 20 . Thus, for the sake of brevity, each feature of traffic steering systems 10 and 20 will not be redundantly explained.
  • traffic steering system 30 includes a traffic steering controller 301 connected to a plurality of terminal devices 302 - 304 .
  • Exemplary first terminal 302 includes a protocol stack comprising data plane 305 and control plane 306 .
  • Data plane 305 includes layers 307 - 310 .
  • data plane includes an uppermost application layer 307 above a network layer 308 , a virtual interface 309 below the network layer 308 , a virtual switch 310 below the virtual interface 309 , and physical interfaces 1 through N below the virtual switch 310 .
  • Each layer of layers 307 - 310 serves the layer above it and is served by the layer below it.
  • virtual interface 309 rather than a physical network interface, is directly below the network layer 308 .
  • virtual interface 309 is configured to use the same L 2 network primitives as network layer 308 .
  • Virtual interface 309 routes network traffic to virtual switch 310 .
  • the virtual switch 310 forwards the network traffic from the virtual interface 309 through one or more physical interfaces 312 - 314 .
  • Virtual switch 310 is governed control plane 306 of terminal 302 .
  • Terminal traffic steering agent 311 programs virtual switch 310 with one or more traffic steering rules 322 to route the network traffic through the plurality of physical interfaces 312 - 314 .
  • these traffic steering rules are supplied from the traffic steering controller 301 to the Terminal traffic steering agent 311 .
  • the traffic steering controller 301 creates the traffic steering rules based at least in part on: 1) information from the network, such as network metrics and/or user profiles and 2) policies provided by a human administrator of the traffic steering controller 301 . Once created, the traffic steering rules are sent from the traffic steering controller 301 to terminals 302 - 304 via connections 315 - 317 .
  • the administrator may create traffic steering rules, via traffic steering controller 301 , with the goal of balancing network load.
  • the created traffic steering rules would spread the traffic of the terminals across available access points.
  • the administrator may create traffic steering rules, via traffic steering controller 301 , to discriminate delay-sensitive traffic from any other traffic.
  • the created traffic steering rules would forward delay-sensitive traffic to the least loaded access points, and non-delay-sensitive traffic to the rest of access point.
  • the traffic steering rules comprise a matching structure and an associated action.
  • the matching structure is merely a template to compare the packets against.
  • a matching structure is a template to identify Transmission Control Protocol (TCP) packets.
  • TCP Transmission Control Protocol
  • the action associated with the TCP packet matching structure is to forward the packet through physical interface 313 .
  • the TCP packet will be directed by virtual switch 310 through physical interface 313 .
  • the action associated with a traffic steering rule may be dropping the packet, changing some of the header fields of the packet, performing tunneling, and/or a combination thereof.
  • Terminal traffic steering agent 311 is responsible for the control plane of the terminal 306 . Specifically, terminal traffic steering agent 311 is configured to receive traffic steering rules from traffic steering controller 301 and, based thereon, program the virtual switch 310 via connection 322 .
  • Terminal traffic steering agent 311 comprises a profiling manager 318 , a metrics manager 319 and an access discovery and selection manager 320 .
  • the profiling manager 318 is responsible for collecting and updating user profiles including the user's behavior and activity, and for sending them to traffic steering controller 301 at the beginning of a session or when requested by traffic steering controller 301 .
  • Metrics manager 319 collects network metrics concerning ongoing connections and sends them to traffic steering controller 301 .
  • Such network metrics may include information from Layers 2 to 5 and even from the operating system itself.
  • the access discovery and selection manager 320 assists in the selection and connection to access networks.
  • This component sends information to the traffic steering controller 301 concerning the physical network interfaces available at terminal device 302 , and the access networks in the surroundings of terminal device 302 , along with the corresponding information about the quality of the link. The latter changes and therefore is updated periodically, as new access networks become available (for instance if the user is moving).
  • the access discovery and selection manager 320 also receives configuration parameters from the traffic steering controller 301 and sends the configuration parameters to be applied to network layer 308 via communication 321 and its physical interfaces 312 - 314 via communication 323 .
  • Configuration parameters may include credentials or IP addresses.
  • Terminal traffic steering agent 311 may install forwarding rules in virtual switch 310 via communication 322 .
  • the forwarding rules may allow virtual switch 310 to filter, block, transform or leave unaltered the traffic exchanged via physical interfaces 312 - 314 .
  • Terminal traffic steering agent 311 may configure physical interfaces 312 - 314 , via communication 323 , with the appropriate access signaling and security parameters to allow connection to a plurality of access networks, as decided by traffic steering controller 301 .
  • Exemplary profiling manager 4 includes an activity monitor 403 , a behavior database 405 , an application database 406 , a reasoner 407 , configuration rules 410 , an encoder 409 and a communication module 412 .
  • Profiling manager 401 is configured to create user profiles.
  • the user profiles are sent from profiling manager 401 to traffic steering controller 402 .
  • the user profiles may be useful for the network-planning tasks of the traffic steering controller 402 .
  • the activity monitor 403 monitors the actions of the user and the consequences thereof on the network.
  • the activity translates the action of the user into information 404 that is stored in the behavior database 405 .
  • the application database 406 stores an updated collection of patterns, heuristics and port numbers that can be used to identify applications.
  • the information gathered in the application database 406 may supplement the information gathered the behavior database 405 .
  • the application database 406 gathers information regarding running applications. Such information may be useful, for example, in the event the behavior database 405 gathers incomplete information due to hardware or software restrictions.
  • the reasoner 407 extracts the key features of the behavior of the user, based at least in part on the information 404 stored in the behavior database 405 , and the application database 406 .
  • These key features comprise any kind of information that may provide the traffic steering controller with useful insight about the behavior of the user related to network access and use.
  • Key features may be collected, at least in part, by the operating system of the terminal device or any of its sensors.
  • Key features may include the time evolution of the uplink and downlink throughput for each application, the operating system version, information from the terminal accelerometer and magnetometer, information from its geopositioning module, identifiers of the access networks the terminal connects to and of those within its reach, and/or information from the agenda of the user with his appointments and their location, among others.
  • Raw profile 408 may contain redundant information that may be suppressed in order to minimize the costs of its transmission to the traffic steering controller 402 .
  • Encoder 409 takes the raw profile 408 and transforms it into a lightweight profile 411 .
  • the operation of encoder 409 is controlled by configuration rules 410 .
  • Configuration rules 410 instruct encoder 409 which data processing techniques to apply to raw profile 408 .
  • These data processing techniques include, but are not limited to, sampling, compression, statistical characterization (such as statistical regression) and/or user classification. Data processing techniques can also specify which aspects of raw profile 408 should be removed and which ones should be kept.
  • the finished user profile is delivered to communication module 412 , which in turn forwards it to traffic steering controller 402 .
  • activity monitor 403 obtains key features by collecting the throughput of the applications used by the user and his location during 24 hours, and stores them 404 in the behavior database 405 .
  • a traffic steering enabled network reasoner 407 accesses the information from the last week from the behavior database 405 and combines it with the information from the application database 406 to get raw profile 408 .
  • the configuration rules 410 state that encoder 409 must calculate for each application the 90th percentile of the downlink throughput, the time that value was exceeded, and the location of the user at that moment. These results are collected in profile 411 that is delivered to the communication module 412 , which in turn forwards the profile to the traffic steering controller 402 .
  • the configuration rules 410 state that geopositioning information should not be part of the profile 411 due to the terminal privacy settings of the user, and only the 90th percentile of the downlink throughput of each application and the corresponding times of the day are kept.
  • Traffic steering controller 50 includes traffic steering controller platform 501 and southbound interface 502 .
  • Southbound interface comprises five communication protocols, specifically, a network metrics protocol 509 , a terminal metrics protocol 510 , a user profile protocol 511 , forwarding rules protocol 512 , and a terminal provisioning protocol 513 .
  • Network metrics protocol 509 a allows traffic steering controller 50 to get metrics from the network devices (switches, access points, routers) that build up both the federated access networks and the backhaul networks.
  • network devices switches, access points, routers
  • SNMP Simple Network Management Protocol
  • Terminal metrics protocol 510 allows traffic steering controller 50 to fetch metrics related to the activity of the terminal device.
  • the mobile nature of wireless terminal devices and the high variability of the propagation conditions may require a southbound protocol with different requirements than those of network metrics protocol 509 .
  • User profile protocol 511 is the protocol used by the terminal device to send the user profile from profiling manager 401 to traffic steering controller platform 501 at the beginning of the session. User profile protocol 511 is also configured to relay a traffic steering controller's request for a profile update at any moment of the session, and to transport the response of the terminal device back to the traffic steering controller.
  • the forwarding rules protocol 512 is responsible for carrying the traffic steering rules from the traffic steering controller to the terminal device(s) and to the network devices whose forwarding plane should be modified according to the decision of the traffic steering controller platform 501 .
  • Terminal provisioning protocol 513 carries L 1 , L 2 and L 3 information (e.g. WiFi passwords) from the traffic steering controller 50 to the terminal device(s) in order to assist in the configuration of the network interfaces of the latter.
  • L 1 , L 2 and L 3 information e.g. WiFi passwords
  • the traffic steering controller platform 501 comprises a plurality of modules that provide the necessary functionality to create traffic steering rules for all the connected terminal devices. Specifically, the traffic steering controller platform 501 includes a topology manager 503 , a network metrics manager 504 , a terminal metrics manager 505 , a user profile manager 506 , a forwarding rules manager 507 , and a terminal provisioning manager 508 .
  • Network metrics manager 504 stores, monitors and processes the network metrics from the plurality of network devices from the access and backhaul networks.
  • Terminal metrics manager 505 stores, monitors and processes the terminal metrics of the terminal devices connected to some of the federated networks.
  • Topology manager 503 keeps an updated network map including the topology, characteristics and performance of the network. Whenever a reconfiguration or modification in the network takes place, the changes must be reflected in the network map stored by this module. Topology manager 503 is also responsible for calculating the optimal path between two points of the network. Therefore, whenever traffic steering controller platform 501 creates traffic steering decisions for a particular terminal, the traffic steering controller uses the global view of the network of the topology manager 503 .
  • User profile manager 506 stores and processes the user profiles.
  • the virtual switch of a terminal device cannot match a packet according to the current set of traffic steering rules
  • the virtual switch sends the packet to the traffic steering controller platform 501 .
  • the forwarding rules manager 507 may create a rule for forwarding the packet.
  • the forwarding rules manager 507 uses the information managed by the topology manager 503 , the network metrics manager 504 , the terminal metrics manager 505 and the user profile manager 506 in order to create a set of traffic steering rules dictating to the terminal device how it should forward the flow.
  • the set of traffic steering rules may be created to maximize a figure of merit, for example, a set of traffic steering rules may be created to maximize the average throughout of the flow.
  • the terminal provisioning manager 508 supplies the required parameters that the terminal device needs in order to configure the new network interface (e.g., authentication credentials).
  • the application of a set of steering rules in one terminal may require the modification of the forwarding plane of other terminals and network devices according to global criteria.
  • the forwarding rules manager 507 may also create a set of rules to be applied to other terminals and devices.
  • the procedure followed by the forwarding rules manager 507 to combine the information from the topology manager 503 , the network metrics manager 504 , the terminal metrics manager 505 and the user profile manager 506 is defined by the network administrator depending on a plurality of criteria such as the characteristics of the network, the expected traffic characteristics and network load, the associated costs and revenues, and any other contextual information.
  • User profile manager 601 includes a user classifier 604 , a user classifier database 606 , configuration rules 603 , an encoder 605 , a traffic predictor 607 and a traffic prediction database 608 .
  • the user profile protocol 602 may forward the different profiling information created by the user to different modules depending on the kind and content of the user profiling information.
  • the encoder 605 transforms a raw profile into a lightweight profile by applying different data processing and statistical techniques.
  • the particular details of the calculations carried out by the encoder 605 are given by the configuration rules 603 .
  • the configuration rules 603 also govern the behavior of the encoder 605 when the lightweight profile has been created.
  • the result can be either sent to the traffic predictor 607 or to the user classifier 604 .
  • the user classifier 604 classifies the user to a specific category of users, where the categories are given by the configuration rules 603 .
  • the classification may be applied to a lightweight profile sent by the user profile protocol 602 or the encoder 605 , or to a partial classification carried out by the user terminal device.
  • the user terminal device performs a coarse user classification that is sent to the user classifier 604 for further refinement.
  • the user terminal performs no user classification and delegates the task to the user classifier 604 , which performs the aforementioned classification based on the lightweight profile sent by the user.
  • the result of the user classifier 604 is stored in the user classification database 606 .
  • Traffic predictor 607 is configured to predict the traffic generated by the user. Traffic predictor 607 operates using as input a classification previously made by the user classifier 604 and stored in the user classification database 606 , or directly a raw or a lightweight profile. Traffic predictor 607 may be provided with a raw profile when an accurate traffic prediction is required, and therefore no information on the behavior of the user must be discarded a priori. If such accuracy is not necessary, traffic predictor 607 may operate on profile or the data retrieved from the user classification database 606 . In these cases, the result of the operation of the traffic predictor 607 may be stored in the traffic prediction database 608 .
  • the method includes receiving data 701 at the traffic steering controller.
  • the data may relate to the state of a network and its connected terminal devices.
  • the data is evaluated 702 by the traffic steering controller.
  • the type of profile is determined 703 . If the profile is a lightweight profile, the traffic steering controller checks 704 if the classification has already been performed by the terminal itself and included in the lightweight profile. If not, the traffic steering controller will classify 707 the user via the user profile manager. If the user classification is already included in the profile, the user profile manager predicts 708 the traffic to be generated by the user. The prediction is subsequently 710 stored for future use.
  • time traffic steering controller determines 705 the traffic prediction accuracy required. If the accuracy level desired does not require working on raw profiles, the user profile manager may calculate 706 a lightweight profile from the raw profile, which in turn the user profile manager may use to classify 707 the user as described above.
  • the user profile manager may analyze 709 the raw profile to predict future traffic from the user's actual behavior, rather than from the predefined behavior of the category the user is allocated to.
  • the traffic prediction based either on the lightweight profile or on the raw profile, is based on an appropriate combination of data processing and statistical tools, which may involve terminal-side processing, traffic steering controller-side processing, or both. Once the prediction is calculated, it may be stored 710 as described above.
  • the traffic steering controller may then determine 711 whether the profiles were received due to an explicit request to have undated profile information. If not, the traffic steering controller waits to receive 701 new data. If the profiles were received due to an explicit request have updated profile information, the traffic steering controller may calculate 716 the optimal path via the topology manager.
  • the traffic steering controller may retrieve 712 the user traffic prediction from the user profile manager, where it had been previously stored 710 . If the received data is determined in step 702 to contain network metrics, the network metrics in be stored 713 via the network metrics manager in order to keep an updated estimate of the performance of the network.
  • the traffic steering controller may consider 714 whether an update of the profiles of a plurality of users is also required, in view of the new metrics. If this is the case, the traffic steering controller will request 715 profile updates from the terminal devices, and wait to receive 701 new data.
  • the traffic steering controller recalculates 716 optimal paths to and from the terminals with the topology manager.
  • the new metrics may imply that a previously optimal path is no longer optimal, for example because the former optimal path passes through a network node that is experiencing congestion. Therefore, the optimal paths may be recalculated 716 , and the result updated 717 in the topology manager.
  • the traffic steering controller may calculate 718 , via the forwarding rules manager, a set of forwarding rules for a plurality of terminals and a plurality of network devices. If the rules involve using new physical network interfaces at the terminal they may be configured accordingly. In that case, the terminal provisioning manager sends 719 interface configuration information to the plurality of terminals.
  • the forwarding rules are sent 720 to the plurality of terminals and the plurality of network devices. Then the traffic steering controller waits to receive 701 new data.
  • the network traffic management methods of the present application may be employed to control or interact with one or more computing devices, e.g., terminal devices.
  • computing devices e.g., terminal devices.
  • various disclosed examples may be implemented using electronic circuitry configured to perform one or more functions.
  • the disclosed examples may be implemented using one or more application-specific integrated circuits (ASICs).
  • ASICs application-specific integrated circuits
  • components of various examples of the invention will be implemented using a programmable computing device executing firmware or software instructions, or by some combination of purpose-specific electronic circuitry and firmware or software instructions executing on a programmable computing device.
  • FIG. 8 shows one illustrative example of a computing device, terminal device 801 , which can be used to implement various embodiments of the invention.
  • Terminal device 801 may be incorporated within a variety of consumer electronic devices, such as personal media players, cellular phones, smart phones, personal data assistants, global positioning system devices, smart eyewear, smart watches, other computer wearables, and the like.
  • terminal device 801 has a computing unit 803 .
  • Computing unit 803 typically includes a processing unit 805 and a system memory 807 .
  • Processing unit 805 may be any type of processing device for executing software instructions, but will conventionally be a microprocessor device.
  • System memory 807 may include both a read-only memory (ROM) 809 and a random access memory (RAM) 811 .
  • ROM read-only memory
  • RAM random access memory
  • both read-only memory (ROM) 809 and random access memory (RAM) 811 may store software instructions to be executed by processing unit 805 .
  • Processing unit 805 and system memory 807 are connected, either directly or indirectly, through a bus 113 or alternate communication structure to one or more peripheral devices.
  • processing unit 805 or system memory 807 may be directly or indirectly connected to additional memory storage, such as a hard disk drive 817 , a removable optical disk drive 819 , a removable ma disk drive 825 , and a flash memory card 827 .
  • processing unit 805 and system memory 807 also may be directly or indirectly connected to one or more input devices 821 and one or more output devices 823 .
  • Output devices 823 may include, for example, a monitor display, an integrated display 892 , television, printer, stereo, or speakers.
  • Input devices 821 may include, for example, a keyboard, touch screen, a remote control pad, a pointing device (such as a mouse, touchpad, stylus, trackball, or joystick), a scanner, a microphone, or a camera.
  • input devices 821 include at least a camera 822 (e.g., a light camera, a thermographic camera, etc.).
  • camera 822 is a visible light digital camera.
  • the visible light digital camera uses an optical system including a lens and a variable diaphragm to focus light onto an electronic image pickup device.
  • the visible light digital camera can be a compact digital camera, a bridge camera, a mirrorless interchangeable-lens camera, a modular camera, a digital single-lens reflex camera, digital single-lens translucent camera, line-scan camera, etc.
  • the visible light digital camera can be any known or yet to be discovered visible light digital camera.
  • camera 822 is integral to the terminal device 801 . In another embodiment, camera 822 is remote of the terminal device 801 .
  • camera 822 can additionally or alternatively be a thermographic camera or infrared (IR) camera.
  • the IR camera can detect heat radiation in a way similar to the way an ordinary camera detects visible light. This makes IR cameras useful for gesture recognition in “normal light”, “low light ”, and/or “no light” conditions.
  • computing unit 803 can be directly or indirectly connected to one or more network interfaces 815 for communicating with a network.
  • This type of network interface 815 also sometimes referred to as a network adapter or network interface card (NIC), translates data and control signals from computing unit 803 into network messages according to one or more communication protocols, such as the Transmission Control Protocol (TCP) the Internet Protocol (IP), and the User Datagram Protocol (UDP). These protocols are ell known in the art, and thus will not be discussed here in more detail.
  • An interface 815 may employ any suitable connection agent for connecting to a network, including, for example, a wireless transceiver, a power line adapter, a modem, or an Ethernet connection.
  • Terminal device 801 may be connected to or otherwise comprise one or more other peripheral devices.
  • terminal device 801 may comprise a telephone.
  • the telephone may for example, a wireless “smart phone,” such as those featuring the Android or iOS operating systems. As known in the art, this type of telephone communicates through a wireless network using radio frequency transmissions.
  • a “smart phone” may also provide a user with one or more data management functions, such as sending, receiving and viewing electronic messages (e.g., electronic mail messages, SMS text messages, etc.), recording or playing back sound files, recording or playing back image files (e.g., still picture or moving video image files), viewing and editing files with text (e.g., Microsoft Word or Excel files, or Adobe Acrobat files), etc.
  • electronic messages e.g., electronic mail messages, SMS text messages, etc.
  • recording or playing back sound files e.g., still picture or moving video image files
  • viewing and editing files with text e.g., Microsoft Word or Excel files, or Adobe Acrobat files
  • peripheral devices may be included with or otherwise connected to a terminal device 801 of the type illustrated in FIG. 8 , as is well known in the art.
  • a peripheral device may be permanently or send permanently connected to computing unit 803 .
  • computing unit 803 , hard disk drive 817 , removable optical disk drive 819 and a display are semi-permanently encased in a single housing.
  • Terminal device 801 may include, for example, one or more communication ports through which a peripheral device can be connected to computing unit 803 (either directly or indirectly through bus 113 ). These communication ports may thus include a parallel bus port or a serial bus port, such as a serial bus port using the Universal Serial Bus (USB) standard or the IEEE 1394 High Speed Serial Bus standard (e.g., a Firewire port). Alternately or additionally, terminal device 801 may include a wireless data “port,” such as a Bluetooth® interface, a Wi-Fi interface, an infrared data port, or the like.
  • USB Universal Serial Bus
  • IEEE 1394 High Speed Serial Bus standard e.g., a Firewire port
  • terminal device 801 may include a wireless data “port,” such as a Bluetooth® interface, a Wi-Fi interface, an infrared data port, or the like.
  • a computing device employed according various examples of the invention may include more components than terminal device 801 illustrated in FIG. 8 , fewer components than terminal device 801 , or a different combination of components than terminal device 801 .
  • Some implementations of the invention may employ one or more computing devices that are tended to have a very specific functionality, such as a server computer. These computing devices may thus omit unnecessary peripherals, such as the network interface 815 , removable optical disk drive 819 , printers, scanners, external hard drives, etc.
  • Some implementations of the invention may alternately or additionally employ computing devices that are intended to be capable of a wide variety of functions, such as a desktop or laptop personal computer, tablet and/or smartphone. These computing devices may have a any combination of peripheral devices or additional components as desired.
  • computing devices may comprise mobile electronic devices, such as smart phones, smart glasses, tablet computers, or portable music players, often operating the iOS, Sybian, Windows-based (including Windows Mobile and Windows 8), or Android operating systems.
  • mobile electronic devices such as smart phones, smart glasses, tablet computers, or portable music players, often operating the iOS, Sybian, Windows-based (including Windows Mobile and Windows 8), or Android operating systems.
  • mobile terminal device 900 may include similar or identical features to terminal device 801 .
  • mobile terminal device 900 may include a processor unit 903 (e.g., CPU) configured to execute instructions and to carry out operations associated with the mobile device. For example, using instructions retrieved from memory, the processor may control the reception and manipulation of input and output data between components of the mobile device.
  • the processor can be implemented on a single chip, multiple or multiple electrical components. For example, various architectures can be used for the processor, including dedicated or embedded processor, single purpose processor, ASIC, etc.
  • system memory 907 generally provides a place to store computer code and data that are used by the mobile device.
  • system memory 907 may include read-only memory (ROM) 909 , random-access memory (RAM) 911 .
  • ROM read-only memory
  • RAM random-access memory
  • storage units 994 may include a removable storage device such as an optical disc player that receives and plays DVDs, or card slots for receiving mediums such as memory cards (or memory sticks).
  • Mobile terminal device 900 also includes input devices 921 that are operatively coupled to processor unit 903 .
  • Input devices 921 are configured to transfer data from the outside world into mobile terminal device 900 .
  • input devices 921 may correspond to both data entry mechanisms and data capture mechanisms.
  • input devices 921 may include touch sensing devices 932 such as touch screens, touch pads and touch sensing surfaces, mechanical actuators 934 such as button or wheels or hold switches, motion sensing devices 936 such as accelerometers, location detecting devices 938 such as global positioning satellite transmitters, WiFi based location detection functionality, or cellular radio based location detection functionality, force sensing devices 940 such as force sensitive displays and housings, image sensors 942 such as light cameras and/or IR cameras, and microphones 944 .
  • Input devices 921 may also include a clickable display actuator.
  • input devices 921 include at least a camera 943 (one of image sensing devices 942 ).
  • Camera 943 can be a visible light camera and/or a thermographic camera, such as those described above in reference to camera 822 . Accordingly, camera 943 may have the same functions and capabilities as those described reference to camera 822 .
  • mobile terminal device 900 also includes various output devices 923 that are operatively coupled to processor unit 903 .
  • Output devices 923 are configured to transfer data from mobile terminal device 900 to the outside world.
  • Output devices 923 may include a display unit 992 such as an LCD, speakers or jacks, audio/tactile feedback devices, light indicators, and the like.
  • Mobile terminal device 900 also includes various communication devices 946 that are operatively coupled to the processor.
  • Communication devices 946 may, for example, include both an I/O connection 947 that may be wired or wirelessly connected to selected devices such as through IR, USB, or Firewire protocols, a global positioning satellite receiver 948 , and a radio receiver 950 which may configured to communicate over wireless phone and data connections.
  • Communication devices 946 may also include a network interface 952 configured to communicate with a computer network through various means which may include wireless connectivity to a local wireless network, a wireless data connection to a cellular data network, a wired connection to a local or wide area computer network, or other suitable means for transmitting data over a computer network.
  • Mobile terminal device 900 also includes a battery 954 and possibly a charging system.
  • Battery 954 may be charged through a transformer and power cord or through a host device or through a docking station. In the cases of the docking station, the charging may be transmitted through electrical ports or possibly through in inductance charging means that does not require a physical electrical connection to be made.
  • the various aspects, features, embodiments or implementations described above can be used alone or in various combinations with the gesture recognition methods disclosed herein.
  • the methods disclosed herein can be implemented by software, hardware or a combination of hardware and software.
  • the methods can also be embodied as computer readable code on a computer readable medium (e.g. a non-transitory computer readable-storage medium).
  • the computer readable medium is airy data storage device that can store data which can thereafter be read by a computer system, including both transfer and non-transfer devices as defined above. Examples of the computer readable medium include read-only memory, random access memory, CD-ROMs, flash memory cards, DVDs, magnetic tape, optical data storage devices, and carrier waves.
  • the computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
  • the present invention provides a novel paradigm to optimize a data network as a whole taking the Quality of Experience of the users into account as a constraint.
  • the common intelligence based on the deployment of a traffic steering controller which decides the best access network for each flow of each terminal assisted by user profiling is the key of the great flexibility of the invention and the support of multiple use cases.

Abstract

Systems and methods for optimizing network traffic are disclosed. In one embodiment, a system for optimizing the performance of a plurality of networks includes a first terminal device, a traffic steering controller, and a terminal traffic steering agent. The traffic steering controller may be configured to receive user profiles, terminal metrics and network performance metrics and create traffic steering rules based on the user profiles, terminal metrics, and network performance. The terminal traffic steering agent may be configured to receive traffic steering rules from the traffic steering controller and direct a virtual network switch based on the traffic steering rules. The virtual network switch may be configured to handle network traffic at a virtual network interface and, based on directions received from the traffic steering controller, exchange network traffic at least at a physical interface of at least one of the plurality of access networks.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application claims priority to and is a continuation-in-part of copending U.S. application Ser. No. 14/866,550, filed on Sep. 25, 2015, which is hereby incorporated by reference for all purposes.
  • BACKGROUND
  • The fourth generation of cellular telephony (LTE), based on OFDMA, is being deployed worldwide. LTE has significant improvements for end users like lower latency and higher average and peak downlink and uplink rates. Nevertheless, the adoption of mobile telephony is growing so fast that the operators' access and backhaul networks will soon become bottlenecks, and it is also expected that this problem will worsen with the emergence of ultra-dense cellular networks based on 5G. To alleviate this problem, operators are relying on as a complementary access technology to offload some traffic from their cellular networks. Thus, in densely populated areas there is currently a variety of access networks available and this trend is likely to continue in the future.
  • Some access networks (cellular, Wifi) may be better for certain kinds of traffic. To that end the 3GPP, the consortium behind LTE, has defined the Access Network Discovery and Selection Function (ANDSF). ANDSF assists LTE terminals in the discovery of non-3GPP access networks (e.g. WiFi and WiMAX). It consists of information on alternative access networks that is stored on a server and fetched by the terminal to assist it in its connection process. However, ANDSF rules are static in the sense that they will be applied for an entire traffic session regardless of the network dynamics, like the number of terminals connected to a specific access point.
  • Thus there is a need for proactive congestion control consisting of two complementary steps: on the one hand, it should provide the means to predict the future state of the network in order to anticipate potential problems; on the other hand, and depending on the prediction, it should allow to change the network configuration in a convenient way.
  • In the present invention we disclose systems and methods to integrate wireless user terminals with multihoming capabilities into Software Defined Network (SDN) architectures. This will allow SDN network controllers to issue access network selection commands to user terminals relying on predictions based on terminal-side info nation thus supporting global network optimization. In the present invention, unlike in previous work, wireless terminal interface configuration is an integral part of the architecture.
  • SUMMARY
  • The present disclosure is directed to systems and methods for optimizing network traffic. In one embodiment, a system for optimizing the performance of a plurality of networks includes a first terminal device, a traffic steering controller, and a terminal traffic steering agent. The first terminal device may be in electronic communication with the plurality of networks. The traffic steering controller may be in electronic communication with the first terminal device. The traffic steering controller may also be configured to receive user profiles and network performance metrics and create traffic steering rules based on the user profiles and network metrics. The terminal traffic steering agent nay be configured to receive traffic steering rules from the traffic steering controller and direct a virtual network switch based on the traffic steering rules. The terminal traffic steering agent may include a user profiling manager, a network metrics manager, and an access discovery and selection manager. The user profiling manager may be configured to generate and update the user profiles and send them to the traffic steering controller. The network metrics manager may be configured to collect the network performance metrics and send them to the traffic steering controller. The access discovery and selection man ager may be configured to discover and identify the plurality of networks and, based thereon, report available network information to the traffic steering controller. The virtual network switch may be configured to receive network traffic at a virtual network interface and, based on directions received from the traffic steering controller, forward the network traffic to a physical interface of at least one of the plurality of networks.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a schematic illustration of a first embodiment of a network traffic steering system.
  • FIG. 2 is a sequence diagram of a first example of a method of steering network traffic.
  • FIG. 3 is a schematic illustration of a second embodiment of a network traffic steering system.
  • FIG. 4 is a schematic illustration of a profiling manager of a terminal device.
  • FIG. 5 is a schematic illustration of one embodiment of a traffic steering controller.
  • FIG. 6 is a schematic illustration of a user profile manager.
  • FIG. 7 is a schematic illustration of a method of controlling the dataflow from one or more terminal devices over a plurality of networks.
  • FIG. 8 is a schematic illustration of one example of a terminal device.
  • FIG. 9 is a schematic illustration of one example of a mobile terminal device.
  • DETAILED DESCRIPTION
  • The disclosed network traffic management systems and methods will become better understood through review of the following detailed description in conjunction with the figures. The detailed description and figures provide merely examples of the various inventions described herein. Those skilled in the art will understand that the disclosed examples may be varied, modified, and altered without departing from the scope of the inventions described herein. Many variations are contemplated for different applications and design considerations; however, for the sake of brevity, each and every contemplated variation is not individually described in the following detailed description.
  • Throughout the following detailed description, a variety of network traffic management systems and methods examples are provided. Related features in the examples may be identical, similar, or dissimilar in different examples. For the sake of brevity, related features will not be redundantly explained in each example. Instead, the use of related feature names will cue the reader that the feature with a related feature name may be similar to the related feature in an example explained previously. Features specific to a given example will be described in that particular example. The reader should understand that a given feature need not be the same or similar to the specific portrayal of a related feature in any given figure or example.
  • A first example of a network traffic steering system 10 is shown in FIG. 1. Network traffic steering system 10 includes a traffic steering controller 110, a plurality of access networks 1 through N, and at least one terminal device 120. In some embodiments, the access networks 1 through N may each be the same type of connection (e.g., WiFi). In other embodiments, the access networks 1 through N may include different types of networks utilizing different communication technologies (e.g. at least one WiFi network and at least one LTE network, among others). Terminal device 120 may be connected to one or more of networks 1 through N via connections 102 through 104. In this regard, terminal device 120 includes at least one network interface. In some embodiments, terminal device 120 includes a network interface for each different type of networks 1 through N.
  • Traffic steering controller 110 may communicate electronically with terminal device 120 via connection 101. For example, in some embodiments, traffic steering controller 110 may send OpenFlow commands to terminal device 120 via connection 101. The OpenFlow commands may instruct the terminal device 120 how to distribute the network traffic being sent by terminal device 120 through the plurality of access networks 1 through N. In one example, the traffic steering controller 110 may instruct the terminal device 120 to send voice traffic through access network 1, wherein access network 1 may provide less delay. In another example, the traffic steering controller 110 may instruct the terminal device 120 to send elastic traffic through access network 2.
  • In some embodiments, connection 101 between terminal device 120 and traffic, steering controller 110 may be established via one or more of networks 1 through N. In this regard, terminal device 120 and traffic steering controller 110 may remain connected (via connection 101) throughout an entire session, despite terminal device 120 connecting and disconnecting from various one of networks 1 through N, so long as terminal device 120 is always connected to at least one network.
  • Traffic steering controller 110 may communicate electronically with one or more of networks 1 through N via, connections 105 to 107. Specifically, traffic steering controller 110 may collect network metrics from the plurality of network devices (routers, switches, access points) of networks 1 though N via connections 105 to 107. The collected network metrics may include, but are not limited to, link occupancy, queue size, CPU load, and the throughput and number of connections of each type of traffic. It may be appreciated that traffic steering controller 110 may collect any other kind of relevant network metric in addition to those listed above.
  • Networks 1 though N may include access and backhaul networks. Networks 1 though N include a plurality of network devices (routers, switches, access points).
  • Terminal device 120 may communicate electronically with traffic steering controller 110 via connection 108. In some embodiments, terminal device 120 may send terminal device metrics regarding the access networks within range of terminal device 120. Examples of terminal device metrics include, but are not limited to, Service Set Identifier (SSID) of the networks within range, access technology implementation details of the networks, information about the quality of the connection, the radio access technologies available at the terminal device, the physical location of the terminal device, battery level of the terminal device, and/or the operating system of the terminal device.
  • In some embodiments, connection 108 enables terminal device 120 to send one or more user profiles to the traffic steering controller 110. As used herein, a “user profile” is a compilation of machine-readable information elated to the behavior of the user of a terminal device which can influence the quality of his/her experience or the performance of the network(s) connected to the terminal device. The user profile may be used to predict the future impact on the user's experience of the networks connected to the terminal device, based on the recent behavior of the user.
  • The traffic steering controller 110 may be configured to control traffic through each of networks 1 through N, based at least in part on the terminal metrics, network metrics, and/or together with the profile of the user.
  • Turning now to FIG. 2, a second example of a traffic steering system 20 will now be described. Traffic steering system 20 includes many similar or identical features to traffic steering system 10. Thus, for the sake of brevity, each feature of traffic steering system 10 will not be redundantly explained.
  • As can be seen in FIG. 2, traffic steering system 20 includes a terminal device 230, a first access network 240, a second access network 250, and a traffic steering controller 260. In the illustrated embodiment of FIG. 2, terminal device 230 may discover and connect to traffic steeling controller 260 managing two federated access networks 240, 250. Terminal device 230 may send a data flow and close the connection with the traffic steering controller 260 and the networks.
  • Periodically, both the first and the second access net corks, 240, 250 may send network metrics 201, 202 to traffic steering controller 260. Network metrics 201, 202 may include metrics related to one or more network devices of access networks 240, 250. For example network metrics 201, 202 may include metrics related to routers, switches and/or access points of access networks 240, 250. Network metrics 201, 202 may be sent periodically as the conditions of the networks change over time.
  • Terminal device 230 may send a connection request 203 to first access network 240. First access network 240 replies with a message 204 containing an identifier of the traffic steering controller 260 via, for example, DHCPv4 option 43 or DHCPv6 option 17. After the identifier of traffic steering controller 260 has been received, terminal device 230 establishes a connection with traffic steering controller 260. Terminal device 230 sends terminal information 205 to the traffic steering controller 260. Terminal information 205 includes terminal metrics of terminal device 230 and a user profile of a user of terminal device 230.
  • Traffic steering controller 260 collects information from the user profile and the terminal metrics, including the access network alternatives within the reach of the terminal (in this case, access network 240 and access network 250) as well as additional useful information. Terminal 230 sends terminal information 205 periodically as the conditions and visibility of the available access networks change over time.
  • At this point, terminal 230 is ready to start generating traffic. Terminal 230 may send a data flow 206. Traffic steering controller 260, based at least in part of the user profile, network metrics and/or terminal metrics may create traffic steering rules 207 in order to optimize the performance of access networks 240, 250.
  • Traffic steering controller 260 may then send traffic steering rules 207 to terminal device 230. Traffic steering rules 207 may include an instruction to route data flow 206 through second access network 250. Specifically, traffic steering rules 207 may include instructions to terminal device 230 to connect to second access network 250, and the required credentials to make the connection process transparent to the user. Therefore, the terminal establishes connection 208 to second access network 250 and, once the connection is established, sends data flow 209 to second access network 250. The above described process may be repeated with addition a data flows.
  • At any point in the session, traffic steering controller 260 may request terminal 230 to resend an expanded or updated version of the user profile. In some embodiments, the updated user profile may include additional or more recent information.
  • Once the terminal device 230 has finished sending and receiving data, the connection with traffic steering controller 260 may be closed. To that end, terminal device 230 may send disconnect notification 210 to traffic steering controller 260. Additionally or alternatively, terminal device 230 may send disconnect instructions 212, 211 to respective access networks 240, 250.
  • Turning now to FIG. 3, a third example of a traffic steering system 30 will now be described. Traffic steering system 30 includes many similar or identical features to traffic steering system 10 and/or traffic steering system 20. Thus, for the sake of brevity, each feature of traffic steering systems 10 and 20 will not be redundantly explained.
  • As can be seen in FIG. 3, traffic steering system 30 includes a traffic steering controller 301 connected to a plurality of terminal devices 302-304. Exemplary first terminal 302 includes a protocol stack comprising data plane 305 and control plane 306. Data plane 305 includes layers 307-310. Specifically, data plane includes an uppermost application layer 307 above a network layer 308, a virtual interface 309 below the network layer 308, a virtual switch 310 below the virtual interface 309, and physical interfaces 1 through N below the virtual switch 310. Each layer of layers 307-310 serves the layer above it and is served by the layer below it. As can be seen, virtual interface 309, rather than a physical network interface, is directly below the network layer 308. Unlike a network interface, virtual interface 309 is configured to use the same L2 network primitives as network layer 308.
  • Virtual interface 309 routes network traffic to virtual switch 310. The virtual switch 310 forwards the network traffic from the virtual interface 309 through one or more physical interfaces 312-314.
  • Virtual switch 310 is governed control plane 306 of terminal 302. Specifically, Terminal traffic steering agent 311 programs virtual switch 310 with one or more traffic steering rules 322 to route the network traffic through the plurality of physical interfaces 312-314. Ultimately, these traffic steering rules are supplied from the traffic steering controller 301 to the Terminal traffic steering agent 311. The traffic steering controller 301 creates the traffic steering rules based at least in part on: 1) information from the network, such as network metrics and/or user profiles and 2) policies provided by a human administrator of the traffic steering controller 301. Once created, the traffic steering rules are sent from the traffic steering controller 301 to terminals 302-304 via connections 315-317.
  • In one embodiment, the administrator may create traffic steering rules, via traffic steering controller 301, with the goal of balancing network load. Thus, the created traffic steering rules would spread the traffic of the terminals across available access points.
  • In another embodiment, the administrator may create traffic steering rules, via traffic steering controller 301, to discriminate delay-sensitive traffic from any other traffic. The created traffic steering rules would forward delay-sensitive traffic to the least loaded access points, and non-delay-sensitive traffic to the rest of access point.
  • In some embodiments, the traffic steering rules comprise a matching structure and an associated action. The matching structure is merely a template to compare the packets against. In one example of a traffic steering rule, a matching structure is a template to identify Transmission Control Protocol (TCP) packets. In the example, the action associated with the TCP packet matching structure is to forward the packet through physical interface 313. Thus, if a TCP packet identified via the matching structure, the TCP packet will be directed by virtual switch 310 through physical interface 313.
  • In other embodiments, the action associated with a traffic steering rule may be dropping the packet, changing some of the header fields of the packet, performing tunneling, and/or a combination thereof.
  • Terminal traffic steering agent 311 is responsible for the control plane of the terminal 306. Specifically, terminal traffic steering agent 311 is configured to receive traffic steering rules from traffic steering controller 301 and, based thereon, program the virtual switch 310 via connection 322.
  • Terminal traffic steering agent 311 comprises a profiling manager 318, a metrics manager 319 and an access discovery and selection manager 320. The profiling manager 318 is responsible for collecting and updating user profiles including the user's behavior and activity, and for sending them to traffic steering controller 301 at the beginning of a session or when requested by traffic steering controller 301.
  • Metrics manager 319 collects network metrics concerning ongoing connections and sends them to traffic steering controller 301. Such network metrics may include information from Layers 2 to 5 and even from the operating system itself.
  • Finally, the access discovery and selection manager 320 assists in the selection and connection to access networks. This component sends information to the traffic steering controller 301 concerning the physical network interfaces available at terminal device 302, and the access networks in the surroundings of terminal device 302, along with the corresponding information about the quality of the link. The latter changes and therefore is updated periodically, as new access networks become available (for instance if the user is moving). The access discovery and selection manager 320 also receives configuration parameters from the traffic steering controller 301 and sends the configuration parameters to be applied to network layer 308 via communication 321 and its physical interfaces 312-314 via communication 323. Configuration parameters may include credentials or IP addresses.
  • Terminal traffic steering agent 311 may install forwarding rules in virtual switch 310 via communication 322. The forwarding rules may allow virtual switch 310 to filter, block, transform or leave unaltered the traffic exchanged via physical interfaces 312-314. Terminal traffic steering agent 311 may configure physical interfaces 312-314, via communication 323, with the appropriate access signaling and security parameters to allow connection to a plurality of access networks, as decided by traffic steering controller 301.
  • Turning now to FIG. 4, one embodiment of a profiling manager is shown. Exemplary profiling manager 4 includes an activity monitor 403, a behavior database 405, an application database 406, a reasoner 407, configuration rules 410, an encoder 409 and a communication module 412.
  • Profiling manager 401 is configured to create user profiles. The user profiles are sent from profiling manager 401 to traffic steering controller 402. The user profiles may be useful for the network-planning tasks of the traffic steering controller 402.
  • The activity monitor 403 monitors the actions of the user and the consequences thereof on the network. The activity translates the action of the user into information 404 that is stored in the behavior database 405.
  • The application database 406, stores an updated collection of patterns, heuristics and port numbers that can be used to identify applications. The information gathered in the application database 406 may supplement the information gathered the behavior database 405. Specifically, the application database 406 gathers information regarding running applications. Such information may be useful, for example, in the event the behavior database 405 gathers incomplete information due to hardware or software restrictions.
  • The reasoner 407 extracts the key features of the behavior of the user, based at least in part on the information 404 stored in the behavior database 405, and the application database 406. These key features comprise any kind of information that may provide the traffic steering controller with useful insight about the behavior of the user related to network access and use. Key features may be collected, at least in part, by the operating system of the terminal device or any of its sensors.
  • Key features may include the time evolution of the uplink and downlink throughput for each application, the operating system version, information from the terminal accelerometer and magnetometer, information from its geopositioning module, identifiers of the access networks the terminal connects to and of those within its reach, and/or information from the agenda of the user with his appointments and their location, among others.
  • All the key features are translated into a raw profile 408. Raw profile 408 may contain redundant information that may be suppressed in order to minimize the costs of its transmission to the traffic steering controller 402.
  • Encoder 409 takes the raw profile 408 and transforms it into a lightweight profile 411. The operation of encoder 409 is controlled by configuration rules 410. Configuration rules 410 instruct encoder 409 which data processing techniques to apply to raw profile 408. These data processing techniques include, but are not limited to, sampling, compression, statistical characterization (such as statistical regression) and/or user classification. Data processing techniques can also specify which aspects of raw profile 408 should be removed and which ones should be kept. Finally, the finished user profile is delivered to communication module 412, which in turn forwards it to traffic steering controller 402.
  • In one embodiment, activity monitor 403 obtains key features by collecting the throughput of the applications used by the user and his location during 24 hours, and stores them 404 in the behavior database 405. When the user connects to a traffic steering enabled network reasoner 407 accesses the information from the last week from the behavior database 405 and combines it with the information from the application database 406 to get raw profile 408. In this embodiment, the configuration rules 410 state that encoder 409 must calculate for each application the 90th percentile of the downlink throughput, the time that value was exceeded, and the location of the user at that moment. These results are collected in profile 411 that is delivered to the communication module 412, which in turn forwards the profile to the traffic steering controller 402.
  • In another embodiment, the configuration rules 410 state that geopositioning information should not be part of the profile 411 due to the terminal privacy settings of the user, and only the 90th percentile of the downlink throughput of each application and the corresponding times of the day are kept.
  • Turning now to FIG. 5, one embodiment of a traffic steering controller 50 is shown. Traffic steering controller 50 includes traffic steering controller platform 501 and southbound interface 502. Southbound interface comprises five communication protocols, specifically, a network metrics protocol 509, a terminal metrics protocol 510, a user profile protocol 511, forwarding rules protocol 512, and a terminal provisioning protocol 513.
  • Network metrics protocol 509 a allows traffic steering controller 50 to get metrics from the network devices (switches, access points, routers) that build up both the federated access networks and the backhaul networks. A broad variety of existing protocols can be used, such as Simple Network Management Protocol (SNMP).
  • Terminal metrics protocol 510 allows traffic steering controller 50 to fetch metrics related to the activity of the terminal device. The mobile nature of wireless terminal devices and the high variability of the propagation conditions may require a southbound protocol with different requirements than those of network metrics protocol 509.
  • User profile protocol 511 is the protocol used by the terminal device to send the user profile from profiling manager 401 to traffic steering controller platform 501 at the beginning of the session. User profile protocol 511 is also configured to relay a traffic steering controller's request for a profile update at any moment of the session, and to transport the response of the terminal device back to the traffic steering controller.
  • The forwarding rules protocol 512 is responsible for carrying the traffic steering rules from the traffic steering controller to the terminal device(s) and to the network devices whose forwarding plane should be modified according to the decision of the traffic steering controller platform 501.
  • Terminal provisioning protocol 513 carries L1, L2 and L3 information (e.g. WiFi passwords) from the traffic steering controller 50 to the terminal device(s) in order to assist in the configuration of the network interfaces of the latter.
  • The traffic steering controller platform 501 comprises a plurality of modules that provide the necessary functionality to create traffic steering rules for all the connected terminal devices. Specifically, the traffic steering controller platform 501 includes a topology manager 503, a network metrics manager 504, a terminal metrics manager 505, a user profile manager 506, a forwarding rules manager 507, and a terminal provisioning manager 508.
  • Network metrics manager 504 stores, monitors and processes the network metrics from the plurality of network devices from the access and backhaul networks.
  • Terminal metrics manager 505 stores, monitors and processes the terminal metrics of the terminal devices connected to some of the federated networks.
  • Topology manager 503 keeps an updated network map including the topology, characteristics and performance of the network. Whenever a reconfiguration or modification in the network takes place, the changes must be reflected in the network map stored by this module. Topology manager 503 is also responsible for calculating the optimal path between two points of the network. Therefore, whenever traffic steering controller platform 501 creates traffic steering decisions for a particular terminal, the traffic steering controller uses the global view of the network of the topology manager 503.
  • User profile manager 506 stores and processes the user profiles. When the virtual switch of a terminal device cannot match a packet according to the current set of traffic steering rules, the virtual switch sends the packet to the traffic steering controller platform 501. In response to receiving the packet, the forwarding rules manager 507 may create a rule for forwarding the packet. To that end, the forwarding rules manager 507 uses the information managed by the topology manager 503, the network metrics manager 504, the terminal metrics manager 505 and the user profile manager 506 in order to create a set of traffic steering rules dictating to the terminal device how it should forward the flow.
  • In some embodiments, the set of traffic steering rules may be created to maximize a figure of merit, for example, a set of traffic steering rules may be created to maximize the average throughout of the flow.
  • If the decision of the forwarding rules manager 507 dictates that the terminal must send the flow through another network interface, the terminal provisioning manager 508 supplies the required parameters that the terminal device needs in order to configure the new network interface (e.g., authentication credentials). The application of a set of steering rules in one terminal may require the modification of the forwarding plane of other terminals and network devices according to global criteria. In this case, the forwarding rules manager 507 may also create a set of rules to be applied to other terminals and devices.
  • The procedure followed by the forwarding rules manager 507 to combine the information from the topology manager 503, the network metrics manager 504, the terminal metrics manager 505 and the user profile manager 506 is defined by the network administrator depending on a plurality of criteria such as the characteristics of the network, the expected traffic characteristics and network load, the associated costs and revenues, and any other contextual information.
  • Turning now to FIG. 6, one embodiment of a user profile manager 601 is shown. User profile manager 601 includes a user classifier 604, a user classifier database 606, configuration rules 603, an encoder 605, a traffic predictor 607 and a traffic prediction database 608.
  • The user profile protocol 602 may forward the different profiling information created by the user to different modules depending on the kind and content of the user profiling information. The encoder 605 transforms a raw profile into a lightweight profile by applying different data processing and statistical techniques.
  • The particular details of the calculations carried out by the encoder 605 are given by the configuration rules 603. The configuration rules 603 also govern the behavior of the encoder 605 when the lightweight profile has been created. The result can be either sent to the traffic predictor 607 or to the user classifier 604.
  • The user classifier 604 classifies the user to a specific category of users, where the categories are given by the configuration rules 603. The classification may be applied to a lightweight profile sent by the user profile protocol 602 or the encoder 605, or to a partial classification carried out by the user terminal device.
  • In one example, the user terminal device performs a coarse user classification that is sent to the user classifier 604 for further refinement.
  • In another example the user terminal performs no user classification and delegates the task to the user classifier 604, which performs the aforementioned classification based on the lightweight profile sent by the user. The result of the user classifier 604 is stored in the user classification database 606.
  • Traffic predictor 607 is configured to predict the traffic generated by the user. Traffic predictor 607 operates using as input a classification previously made by the user classifier 604 and stored in the user classification database 606, or directly a raw or a lightweight profile. Traffic predictor 607 may be provided with a raw profile when an accurate traffic prediction is required, and therefore no information on the behavior of the user must be discarded a priori. If such accuracy is not necessary, traffic predictor 607 may operate on profile or the data retrieved from the user classification database 606. In these cases, the result of the operation of the traffic predictor 607 may be stored in the traffic prediction database 608.
  • Turning now to FIG. 7, one embodiment of a method of controlling the dataflow from one or more terminal devices over a plurality of networks is illustrated. The method includes receiving data 701 at the traffic steering controller. The data may relate to the state of a network and its connected terminal devices. The data is evaluated 702 by the traffic steering controller.
  • If the received data contains a user profile, the type of profile is determined 703. If the profile is a lightweight profile, the traffic steering controller checks 704 if the classification has already been performed by the terminal itself and included in the lightweight profile. If not, the traffic steering controller will classify 707 the user via the user profile manager. If the user classification is already included in the profile, the user profile manager predicts 708 the traffic to be generated by the user. The prediction is subsequently 710 stored for future use.
  • If the user profile is determined 703 to be a raw profile, time traffic steering controller determines 705 the traffic prediction accuracy required. If the accuracy level desired does not require working on raw profiles, the user profile manager may calculate 706 a lightweight profile from the raw profile, which in turn the user profile manager may use to classify 707 the user as described above.
  • If accuracy is a stringent requirement, the user profile manager may analyze 709 the raw profile to predict future traffic from the user's actual behavior, rather than from the predefined behavior of the category the user is allocated to. In any case the traffic prediction, based either on the lightweight profile or on the raw profile, is based on an appropriate combination of data processing and statistical tools, which may involve terminal-side processing, traffic steering controller-side processing, or both. Once the prediction is calculated, it may be stored 710 as described above.
  • The traffic steering controller may then determine 711 whether the profiles were received due to an explicit request to have undated profile information. If not, the traffic steering controller waits to receive 701 new data. If the profiles were received due to an explicit request have updated profile information, the traffic steering controller may calculate 716 the optimal path via the topology manager.
  • If the data received in step 701 is determined in step 702 to contain terminal metrics from a terminal device, the traffic steering controller may retrieve 712 the user traffic prediction from the user profile manager, where it had been previously stored 710. If the received data is determined in step 702 to contain network metrics, the network metrics in be stored 713 via the network metrics manager in order to keep an updated estimate of the performance of the network.
  • If the received data contains terminal metrics or network metrics, the traffic steering controller may consider 714 whether an update of the profiles of a plurality of users is also required, in view of the new metrics. If this is the case, the traffic steering controller will request 715 profile updates from the terminal devices, and wait to receive 701 new data.
  • Next, the traffic steering controller recalculates 716 optimal paths to and from the terminals with the topology manager. Indeed the new metrics may imply that a previously optimal path is no longer optimal, for example because the former optimal path passes through a network node that is experiencing congestion. Therefore, the optimal paths may be recalculated 716, and the result updated 717 in the topology manager.
  • With the new optimal paths the traffic steering controller may calculate 718, via the forwarding rules manager, a set of forwarding rules for a plurality of terminals and a plurality of network devices. If the rules involve using new physical network interfaces at the terminal they may be configured accordingly. In that case, the terminal provisioning manager sends 719 interface configuration information to the plurality of terminals.
  • Once the interfaces are properly configured, the forwarding rules are sent 720 to the plurality of terminals and the plurality of network devices. Then the traffic steering controller waits to receive 701 new data.
  • As described above, in some embodiments, the network traffic management methods of the present application may be employed to control or interact with one or more computing devices, e.g., terminal devices. in this regard, it will be appreciated that various disclosed examples may be implemented using electronic circuitry configured to perform one or more functions. For example, with some embodiments of the invention, the disclosed examples may be implemented using one or more application-specific integrated circuits (ASICs). More typically, however, components of various examples of the invention will be implemented using a programmable computing device executing firmware or software instructions, or by some combination of purpose-specific electronic circuitry and firmware or software instructions executing on a programmable computing device.
  • Accordingly, FIG. 8 shows one illustrative example of a computing device, terminal device 801, which can be used to implement various embodiments of the invention. Terminal device 801 may be incorporated within a variety of consumer electronic devices, such as personal media players, cellular phones, smart phones, personal data assistants, global positioning system devices, smart eyewear, smart watches, other computer wearables, and the like.
  • As seen in this figure, terminal device 801 has a computing unit 803. Computing unit 803 typically includes a processing unit 805 and a system memory 807. Processing unit 805 may be any type of processing device for executing software instructions, but will conventionally be a microprocessor device. System memory 807 may include both a read-only memory (ROM) 809 and a random access memory (RAM) 811. As will be appreciated by those of ordinary skill in the art, both read-only memory (ROM) 809 and random access memory (RAM) 811 may store software instructions to be executed by processing unit 805.
  • Processing unit 805 and system memory 807 are connected, either directly or indirectly, through a bus 113 or alternate communication structure to one or more peripheral devices. For example, processing unit 805 or system memory 807 may be directly or indirectly connected to additional memory storage, such as a hard disk drive 817, a removable optical disk drive 819, a removable ma disk drive 825, and a flash memory card 827. Processing unit 805 and system memory 807 also may be directly or indirectly connected to one or more input devices 821 and one or more output devices 823.
  • Output devices 823 may include, for example, a monitor display, an integrated display 892, television, printer, stereo, or speakers. Input devices 821 may include, for example, a keyboard, touch screen, a remote control pad, a pointing device (such as a mouse, touchpad, stylus, trackball, or joystick), a scanner, a microphone, or a camera.
  • More specifically in the presently described gesture recognition systems, input devices 821 include at least a camera 822 (e.g., a light camera, a thermographic camera, etc.). In one example, camera 822 is a visible light digital camera. The visible light digital camera uses an optical system including a lens and a variable diaphragm to focus light onto an electronic image pickup device. The visible light digital camera can be a compact digital camera, a bridge camera, a mirrorless interchangeable-lens camera, a modular camera, a digital single-lens reflex camera, digital single-lens translucent camera, line-scan camera, etc. Further, it will be appreciated that the visible light digital camera can be any known or yet to be discovered visible light digital camera.
  • In one embodiment, camera 822 is integral to the terminal device 801. In another embodiment, camera 822 is remote of the terminal device 801.
  • As mentioned above, camera 822 can additionally or alternatively be a thermographic camera or infrared (IR) camera. The IR camera can detect heat radiation in a way similar to the way an ordinary camera detects visible light. This makes IR cameras useful for gesture recognition in “normal light”, “low light ”, and/or “no light” conditions. The IR camera can include cooled infrared photodetectors (e.g., indium antimonide, indium arsenide, mercury cadmium telluride, lead sulfide, lead selenide, etc.) and/or cooled infrared photodetectors (e.g., vanadium oxide, lanthanum barium manganite, amorphous silicon, lead zirconate titanate, lanthanum doped lead zirconate titanate, lead scandium tantalate, lean lanthanum titanate, lead titanate, lead zinc niobate, lead strontium titanate, barium strontium titanate, antimony sulfoiodid, polyvinylidene difluoride, etc.). Further, it will be appreciated that the IR camera can be any known or yet to be discovered thermographic camera.
  • Returning to FIG. 8 computing unit 803 can be directly or indirectly connected to one or more network interfaces 815 for communicating with a network. This type of network interface 815, also sometimes referred to as a network adapter or network interface card (NIC), translates data and control signals from computing unit 803 into network messages according to one or more communication protocols, such as the Transmission Control Protocol (TCP) the Internet Protocol (IP), and the User Datagram Protocol (UDP). These protocols are ell known in the art, and thus will not be discussed here in more detail. An interface 815 may employ any suitable connection agent for connecting to a network, including, for example, a wireless transceiver, a power line adapter, a modem, or an Ethernet connection.
  • Terminal device 801 may be connected to or otherwise comprise one or more other peripheral devices. In one example, terminal device 801 may comprise a telephone. The telephone may for example, a wireless “smart phone,” such as those featuring the Android or iOS operating systems. As known in the art, this type of telephone communicates through a wireless network using radio frequency transmissions. In addition to simple communication functionality, a “smart phone” may also provide a user with one or more data management functions, such as sending, receiving and viewing electronic messages (e.g., electronic mail messages, SMS text messages, etc.), recording or playing back sound files, recording or playing back image files (e.g., still picture or moving video image files), viewing and editing files with text (e.g., Microsoft Word or Excel files, or Adobe Acrobat files), etc.
  • Of course, still other peripheral devices may be included with or otherwise connected to a terminal device 801 of the type illustrated in FIG. 8, as is well known in the art. In some cases, a peripheral device may be permanently or send permanently connected to computing unit 803. For example, with many terminal devices, computing unit 803, hard disk drive 817, removable optical disk drive 819 and a display are semi-permanently encased in a single housing.
  • Still other peripheral devices may be removably connected terminal device 801, he ever. Terminal device 801 may include, for example, one or more communication ports through which a peripheral device can be connected to computing unit 803 (either directly or indirectly through bus 113). These communication ports may thus include a parallel bus port or a serial bus port, such as a serial bus port using the Universal Serial Bus (USB) standard or the IEEE 1394 High Speed Serial Bus standard (e.g., a Firewire port). Alternately or additionally, terminal device 801 may include a wireless data “port,” such as a Bluetooth® interface, a Wi-Fi interface, an infrared data port, or the like.
  • It will be appreciated that a computing device employed according various examples of the invention may include more components than terminal device 801 illustrated in FIG. 8, fewer components than terminal device 801, or a different combination of components than terminal device 801. Some implementations of the invention, for example, may employ one or more computing devices that are tended to have a very specific functionality, such as a server computer. These computing devices may thus omit unnecessary peripherals, such as the network interface 815, removable optical disk drive 819, printers, scanners, external hard drives, etc. Some implementations of the invention may alternately or additionally employ computing devices that are intended to be capable of a wide variety of functions, such as a desktop or laptop personal computer, tablet and/or smartphone. These computing devices may have a any combination of peripheral devices or additional components as desired.
  • In many examples, computing devices may comprise mobile electronic devices, such as smart phones, smart glasses, tablet computers, or portable music players, often operating the iOS, Sybian, Windows-based (including Windows Mobile and Windows 8), or Android operating systems.
  • With reference to FIG. 9, an exemplary computing device, mobile terminal device 900 is shown. Thus, mobile terminal device 900 may include similar or identical features to terminal device 801. In one example, mobile terminal device 900 may include a processor unit 903 (e.g., CPU) configured to execute instructions and to carry out operations associated with the mobile device. For example, using instructions retrieved from memory, the processor may control the reception and manipulation of input and output data between components of the mobile device. The processor can be implemented on a single chip, multiple or multiple electrical components. For example, various architectures can be used for the processor, including dedicated or embedded processor, single purpose processor, ASIC, etc.
  • In most cases, the processor together with an operating system operates to execute computer code and produce and use data. The operating system may correspond to well-known operating systems such iOS, Symbian, Windows-based (including Windows Mobile and Windows 8), or Android operating systems, or alternatively to special purpose operating system, such as those used for limited purpose appliance-type devices. The operating system, other computer code and data may reside with in a system memory 907 that is operatively coupled to the processor. System memory 907 generally provides a place to store computer code and data that are used by the mobile device. By way of example, system memory 907 may include read-only memory (ROM) 909, random-access memory (RAM) 911. Further, system memory 907 may retrieve data from storage units 994, which may include a hard disk drive, flash memory, etc. In conjunction with system memory 907, storage units 994 may include a removable storage device such as an optical disc player that receives and plays DVDs, or card slots for receiving mediums such as memory cards (or memory sticks).
  • Mobile terminal device 900 also includes input devices 921 that are operatively coupled to processor unit 903. Input devices 921 are configured to transfer data from the outside world into mobile terminal device 900. As shown, input devices 921 may correspond to both data entry mechanisms and data capture mechanisms. In particular, input devices 921 may include touch sensing devices 932 such as touch screens, touch pads and touch sensing surfaces, mechanical actuators 934 such as button or wheels or hold switches, motion sensing devices 936 such as accelerometers, location detecting devices 938 such as global positioning satellite transmitters, WiFi based location detection functionality, or cellular radio based location detection functionality, force sensing devices 940 such as force sensitive displays and housings, image sensors 942 such as light cameras and/or IR cameras, and microphones 944. Input devices 921 may also include a clickable display actuator.
  • More specifically, in the presently described gesture recognition systems, input devices 921 include at least a camera 943 (one of image sensing devices 942). Camera 943 can be a visible light camera and/or a thermographic camera, such as those described above in reference to camera 822. Accordingly, camera 943 may have the same functions and capabilities as those described reference to camera 822.
  • Returning to FIG. 9, mobile terminal device 900 also includes various output devices 923 that are operatively coupled to processor unit 903. Output devices 923 are configured to transfer data from mobile terminal device 900 to the outside world. Output devices 923 may include a display unit 992 such as an LCD, speakers or jacks, audio/tactile feedback devices, light indicators, and the like.
  • Mobile terminal device 900 also includes various communication devices 946 that are operatively coupled to the processor. Communication devices 946 may, for example, include both an I/O connection 947 that may be wired or wirelessly connected to selected devices such as through IR, USB, or Firewire protocols, a global positioning satellite receiver 948, and a radio receiver 950 which may configured to communicate over wireless phone and data connections. Communication devices 946 may also include a network interface 952 configured to communicate with a computer network through various means which may include wireless connectivity to a local wireless network, a wireless data connection to a cellular data network, a wired connection to a local or wide area computer network, or other suitable means for transmitting data over a computer network.
  • Mobile terminal device 900 also includes a battery 954 and possibly a charging system. Battery 954 may be charged through a transformer and power cord or through a host device or through a docking station. In the cases of the docking station, the charging may be transmitted through electrical ports or possibly through in inductance charging means that does not require a physical electrical connection to be made.
  • The various aspects, features, embodiments or implementations described above can be used alone or in various combinations with the gesture recognition methods disclosed herein. The methods disclosed herein can be implemented by software, hardware or a combination of hardware and software. The methods can also be embodied as computer readable code on a computer readable medium (e.g. a non-transitory computer readable-storage medium). The computer readable medium is airy data storage device that can store data which can thereafter be read by a computer system, including both transfer and non-transfer devices as defined above. Examples of the computer readable medium include read-only memory, random access memory, CD-ROMs, flash memory cards, DVDs, magnetic tape, optical data storage devices, and carrier waves. The computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
  • It can thus be seen that the present invention provides a novel paradigm to optimize a data network as a whole taking the Quality of Experience of the users into account as a constraint. The common intelligence based on the deployment of a traffic steering controller which decides the best access network for each flow of each terminal assisted by user profiling is the key of the great flexibility of the invention and the support of multiple use cases.
  • The disclosure above encompasses multiple distinct inventions with independent utility. While each of these inventions has been disclosed in a particular form, the specific embodiments disclosed and illustrated above are not to be considered in a limiting sense as numerous variations are possible. The subject matter of the inventions includes all novel and non-obvious combinations and subcombinations of the various elements, features, functions and/or properties disclosed above and inherent to those skilled in the art pertaining to such inventions. Where the disclosure or subsequently filed claims recite “a” element, “a first” element, or any such equivalent term, the disclosure or claims should be understood to incorporate one or more such elements, neither requiring or excluding two or more such elements.
  • Applicant(s) reserves the right to submit claims directed to combinations and subcombinations of the disclosed inventions that are believed to be novel and non-obvious. Inventions embodied in other combinations and subcombinations of features, functions, elements and/or properties may be claimed through amendment of those claims or presentation of new claims in the present application or in a related application. Such amended or new claims, whether they are directed to the same invention or a different invention and whether they are different, broader, narrower or equal in scope to the original claims, are to be considered within the subject matter of the inventions described herein.

Claims (20)

1. system for optimizing the performance of a plurality of access networks, the system comprising:
a first terminal device in electronic communication with the plurality of access networks;
a traffic steering controller in electronic communication with the first terminal device and configured to receive user profiles, terminal metrics and network performance metrics and create traffic steering rules based on the user profiles, terminal metrics, and network performance; and
a terminal traffic steering agent associated with the first terminal device and configured to receive traffic steering rules from the traffic steering controller and direct a virtual network switch based on the traffic steering rules,
wherein the virtual network switch is configured to handle network traffic at a virtual network interface and based on directions received from the traffic steering controller, exchange network traffic at least at a physical interface of at least one of the plurality of access networks.
2. The system of claim 1 wherein the traffic steering controller is configured to receive network topology information and create the traffic steering rules based at least in part on the network topology information; wherein the network topology information includes information regarding the characteristics of access points and their locations.
3. The system of claim 1, wherein the traffic steering controller comprises a topology manager configured to collect, store and process network topology information.
4. The system of claim 1, wherein at least some of the access networks utilize different communication technologies.
5. The system of claim 1, wherein the traffic steering controller is configured to receive information regarding location of the first terminal device and create the traffic steering rules based at least in part on that information.
6. The system of claim 1, wherein the traffic steering controller comprises: a terminal metrics manager configured to monitor, store and process terminal metrics; wherein the term al metrics include information regarding the location of the first terminal device.
7. The system of claim 1, wherein the traffic steering controller is configured to receive information regarding the characteristics of the first terminal device and create the traffic steering rules based at least in part on that information.
8. The system of claim 1, wherein the traffic steering controller comprises: a terminal metrics manager configured to monitor, store and process terminal metrics; wherein the terminal metrics include information regarding the characteristics of the first terminal device.
9. The system of claim 1, wherein the traffic steering controller creates traffic steering rules based on the metrics captured by the first terminal device within a bounded time frame.
10. The system of claim 1, wherein the traffic steering controller is configured to receive information regarding the positions and characteristics of access points discovered by the first terminal device, and create the traffic steering rules based at least in part on that information.
11. The system of claim 1, wherein the traffic steering controller comprises: a terminal metrics manager configured to monitor, store and process the terminal metrics; wherein the terminal metrics include information regarding the positions and characteristics of access points discovered by the first terminal device.
12. The system of claim 1, wherein the traffic steering controller is configured to notify to the first terminal device of access networks available in its neighborhood.
13. The system of claim 1, wherein the traffic steering controller comprises a traffic steering controller user profile manager configure to store, update and generate the user profiles.
14. The system of claim 13, wherein the traffic steering controller user profile manager comprises a user classifier configured to classify a user into one of a set of categories of users.
15. The system of claim 13, wherein the traffic steering controller user profile manager comprises a traffic predictor configured to predict network that is generated by users.
16. The system of claim 1, wherein the traffic steering controller is configured to receive network performance information and create the traffic steering rules based at least in part on that information.
17. The system of claim 1, wherein the traffic steering controller comprises a network metrics manager configured to monitor, store and process the network performance information.
18. The system of claim 1, wherein the traffic steering controller is configured to receive information gathered by the first terminal device that is relevant to network performance optimization and create the traffic steering rules based at least in part on that information.
19. The system of claim 1, wherein the traffic steering controller comprises a terminal metrics manager configured to monitor, store and process information gathered by the first terminal device that is relevant to network performance optimization.
20. The system of claim 1 comprising at least a second terminal device in electronic communication with the plurality of access networks, wherein the second terminal device includes a second traffic steering agent.
US15/628,138 2015-09-25 2017-06-20 Systems and methods for optimizing network traffic Active US10356660B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/628,138 US10356660B2 (en) 2015-09-25 2017-06-20 Systems and methods for optimizing network traffic

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/866,550 US9749243B2 (en) 2015-09-25 2015-09-25 Systems and methods for optimizing network traffic
US15/628,138 US10356660B2 (en) 2015-09-25 2017-06-20 Systems and methods for optimizing network traffic

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/866,550 Continuation-In-Part US9749243B2 (en) 2015-09-25 2015-09-25 Systems and methods for optimizing network traffic

Publications (3)

Publication Number Publication Date
US20180152861A1 true US20180152861A1 (en) 2018-05-31
US20180368025A9 US20180368025A9 (en) 2018-12-20
US10356660B2 US10356660B2 (en) 2019-07-16

Family

ID=62190667

Family Applications (1)

Application Number Title Priority Date Filing Date
US15/628,138 Active US10356660B2 (en) 2015-09-25 2017-06-20 Systems and methods for optimizing network traffic

Country Status (1)

Country Link
US (1) US10356660B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200112505A1 (en) * 2018-10-03 2020-04-09 Hewlett Packard Enterprise Development Lp Flow rules
US11025553B2 (en) * 2015-09-04 2021-06-01 Dynamic Network Services, Inc. Methods and apparatus for real-time traffic steering using real-time user monitoring data
US20210410010A1 (en) * 2018-04-09 2021-12-30 Apostolis Salkintzis Data packet steering on a multi-access data connection
US20220020060A1 (en) * 2020-07-17 2022-01-20 Arris Enterprises Llc Client driven client steering
US11388577B2 (en) * 2018-08-28 2022-07-12 Arris Enterprises Llc Station steering profiles in a wireless network control system
US11652730B2 (en) * 2016-08-23 2023-05-16 Telefonaktiebolaget Lm Ericsson (Publ) Selective processing of traffic flows based on latency requirements

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140162629A1 (en) * 2012-12-10 2014-06-12 At&T Intellectual Property I, L.P. Dynamic steering of traffic across radio access networks
US20140344439A1 (en) * 2013-05-15 2014-11-20 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for providing network services orchestration
US20150124815A1 (en) * 2013-11-04 2015-05-07 Telefonaktiebolaget L M Ericsson (Publ) Service chaining in a cloud environment using software defined networking
US20150215835A1 (en) * 2014-01-30 2015-07-30 Intel IP Corporation Apparatus, system and method of controlling radio access technology (rat) communication managers
US20150263901A1 (en) * 2014-03-13 2015-09-17 Cisco Technology, Inc. Service node originated service chains in a network environment
US20160164787A1 (en) * 2014-06-05 2016-06-09 KEMP Technologies Inc. Methods for intelligent data traffic steering
US9650794B2 (en) * 2013-08-08 2017-05-16 Intel IP Corporation Apparatus, system and method of steering data radio bearer traffic to a wireless local area network link
US9853898B1 (en) * 2015-04-29 2017-12-26 Juniper Networks, Inc. Dynamic service chain provisioning

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140162629A1 (en) * 2012-12-10 2014-06-12 At&T Intellectual Property I, L.P. Dynamic steering of traffic across radio access networks
US20140344439A1 (en) * 2013-05-15 2014-11-20 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for providing network services orchestration
US9650794B2 (en) * 2013-08-08 2017-05-16 Intel IP Corporation Apparatus, system and method of steering data radio bearer traffic to a wireless local area network link
US20150124815A1 (en) * 2013-11-04 2015-05-07 Telefonaktiebolaget L M Ericsson (Publ) Service chaining in a cloud environment using software defined networking
US20150215835A1 (en) * 2014-01-30 2015-07-30 Intel IP Corporation Apparatus, system and method of controlling radio access technology (rat) communication managers
US20150263901A1 (en) * 2014-03-13 2015-09-17 Cisco Technology, Inc. Service node originated service chains in a network environment
US20160164787A1 (en) * 2014-06-05 2016-06-09 KEMP Technologies Inc. Methods for intelligent data traffic steering
US9853898B1 (en) * 2015-04-29 2017-12-26 Juniper Networks, Inc. Dynamic service chain provisioning

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11025553B2 (en) * 2015-09-04 2021-06-01 Dynamic Network Services, Inc. Methods and apparatus for real-time traffic steering using real-time user monitoring data
US11652730B2 (en) * 2016-08-23 2023-05-16 Telefonaktiebolaget Lm Ericsson (Publ) Selective processing of traffic flows based on latency requirements
US20210410010A1 (en) * 2018-04-09 2021-12-30 Apostolis Salkintzis Data packet steering on a multi-access data connection
US11388577B2 (en) * 2018-08-28 2022-07-12 Arris Enterprises Llc Station steering profiles in a wireless network control system
US20200112505A1 (en) * 2018-10-03 2020-04-09 Hewlett Packard Enterprise Development Lp Flow rules
US20220020060A1 (en) * 2020-07-17 2022-01-20 Arris Enterprises Llc Client driven client steering
US11593840B2 (en) * 2020-07-17 2023-02-28 Arris Enterprises Llc Client driven client steering

Also Published As

Publication number Publication date
US20180368025A9 (en) 2018-12-20
US10356660B2 (en) 2019-07-16

Similar Documents

Publication Publication Date Title
US10356660B2 (en) Systems and methods for optimizing network traffic
US9749243B2 (en) Systems and methods for optimizing network traffic
NL2033617B1 (en) Resilient radio resource provisioning for network slicing
KR102563790B1 (en) Electronic device for performing network cnnection base on data transmission of application and method thereof
US10602383B1 (en) Application of machine learning for building predictive models enabling smart fail over between different network media types
US20220109622A1 (en) Reliability enhancements for multi-access traffic management
US10924903B2 (en) Software defined IoT service network architecture
US9913148B2 (en) Data processing apparatus that discriminates a network formed by a normal access point from a network formed by a simple access point function
EP3624404A1 (en) Method and device for establishing wireless communication connection
US20190163530A1 (en) Computation apparatus, resource allocation method thereof, and communication system
CN103563444A (en) Intelligent P-GW relocation for SIPTO service continuity
KR102636658B1 (en) Electronic device for requesting nssai in wireless communication network and method thereof
US9961661B2 (en) Determination of a communication object
US9750070B2 (en) Method and apparatus for connecting to packet data networks in wireless communication system
WO2021000923A1 (en) Router configuration method, terminal, and router
JP2017535128A (en) Dynamic data management
US20150092764A1 (en) Communication apparatus, data processing apparatus, control method thereof, and recording medium
US10123152B2 (en) Smart load-based deployment and tuning of narrowband carriers
CN111431882A (en) Data processing method, device and storage medium
US20230344740A1 (en) Sla performance prediction method and related apparatus, and device
KR20210018051A (en) Image capturing apparatus of vehicle, server, user terminal apparatus and method for providing connected service using them
CN110351892B (en) Notification method and related equipment
US11902161B1 (en) Virtual network for virtual phone applications
US11722460B2 (en) Network manageability techniques for intelligent connectivity
US10067725B2 (en) Communication apparatus and control method of the same

Legal Events

Date Code Title Description
STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

FEPP Fee payment procedure

Free format text: SURCHARGE FOR LATE PAYMENT, SMALL ENTITY (ORIGINAL EVENT CODE: M2554); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 4