Method and system for dynamic policy based traffic steering across multiple access networks

By implementing dynamic policy updates at both the communication terminal and the provider end, and adjusting routing policies based on user behavior and network conditions, the problem of inefficient communication across multiple access networks is solved, and efficient data transmission is achieved.

CN116192719BActive Publication Date: 2026-05-01VIASAT INC
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
VIASAT INC
Filing Date
2017-07-14
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

In existing technologies, communication management methods across multiple access networks fail to effectively adjust strategies dynamically based on user behavior and network conditions, resulting in low network communication efficiency.

Method used

By implementing dynamic policy updates at the communication terminal and the provider end, forward link and return link services are controlled separately. The routing policy is dynamically adjusted according to user behavior and network conditions. For example, when user usage exceeds the quota, the network routing policy is updated to prioritize routing latency-sensitive services through the low-latency network.

Benefits of technology

It enables dynamic adjustment of routing strategies based on user needs and network conditions, improving network communication efficiency and ensuring efficient data transmission between mobile and fixed-location communication terminals.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116192719B_ABST
    Figure CN116192719B_ABST
Patent Text Reader

Abstract

Methods and systems for separate forward link and return link policies for network communications are disclosed. In some aspects, the separate forward link and return link policies define how to route data between a client-side execution unit and a provider-side execution unit over multiple access networks. In some aspects, the separate policies can be based on metrics collected by the client-side execution unit and the provider-side execution unit, which can be located at each end of one or more access networks.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments generally relate to communication systems, and more specifically, to improved methods for routing communication across multiple access networks. Background Technology

[0002] Multiple access networks can be used to transmit data between a communication terminal and a destination accessible via the access network. Given the potentially different characteristics of these access networks, there is a need for improved methods and systems for managing communication with the communication terminal through these access networks. Summary of the Invention

[0003] A method and system for providing dynamic policy updates to provider-side execution units and client-side execution units are disclosed. These dynamic policy updates control forward and backlink traffic over multiple access networks, respectively. The policy updates control how network communication between a client communication terminal and a destination accessible via the access networks is routed from its source to its destination.

[0004] As discussed below, a communication terminal may include a device that provides connectivity to multiple access networks, which provide communication between the terminal and one or more destination networks. Many benefits can be achieved by dynamically routing data across multiple access networks using the techniques described herein. For example, a policy can be specific to an individual user compared to a network policy applicable to all users. Furthermore, policies can be dynamically modified over a period of time based on, for example, user behavior. For instance, in some embodiments, usage quotas can be set for individual users. A first policy may be effective when a user does not exceed their allocated quota, but when a user exceeds their quota, a second policy can be assigned to the user to change how user-generated network messages are routed. Additionally, in some aspects, the access network itself may have usage quotas. Therefore, when usage on a particular access network exceeds a predetermined usage limit, the network routing policy can be updated so that fewer network messages are routed through that access network. Furthermore, in some aspects, the client communication terminal may be mobile and thus move from one part of the access network to another, or from one access network to another. To maintain network service while the communication terminal is mobile, policies for the user and / or access terminal can be dynamically updated to accommodate changes in the access terminal's location. For example, when a user moves from the area covered by the first satellite beam to the second satellite beam, they can update their routing policy to prioritize routing their network messages through the second satellite beam.

[0005] In some respects, policies can be applied to communication terminals within a geographical area. For example, some areas may implement specific policies during peak demand periods, while access networks in other areas may implement different policies during the same peak demand periods. These peak demand policies may differ from non-peak service policies within the access network.

[0006] In the disclosed methods and systems, the client execution unit is located at the client of the access network, enabling it to route data generated by one or more network devices through one or more available access networks, and to ensure that data received from the access network can be properly transmitted. The client execution unit performs this routing function based on return link policy information provided by the policy management unit, which is also discussed below.

[0007] The disclosed methods and systems can also utilize a provider-side execution unit located at the other end of the aforementioned access network. The policy management unit can be configured to generate separate forward link policy information to be applied by the provider-side execution unit. In some cases, the return link policy information and the forward link policy information can enable each of the client-side and provider-side execution units to make different routing decisions for individual network sessions (e.g., TCP connections, UDP datagram exchanges between SSAP / DSAP, etc.). For example, in some aspects, forward link data for a specific network session may follow a first network path, while return link data for the same network session may follow a different second network path.

[0008] Furthermore, the forward and return link policies generated for the provider-side execution unit and the client-side execution unit can be dynamically updated. For example, the policies can be updated in response to one or more of the following: changes in the location of the client-side execution unit, changes in network conditions in one or more access networks available to the client communication terminal, the amount of data or network messages sent to and / or sent from the communication terminal, and other factors.

[0009] The policy management unit can also generate policies for client-side and provider-side execution units based on various factors, including the network conditions of one or more access networks. For example, latency, throughput, packet loss statistics, and other characteristics can vary among multiple access networks available to the client-side execution unit and its corresponding communication terminal. In some aspects, one or more metrics representing these network conditions can be generated in the client-side and / or provider-side execution units based on their use of the respective access networks.

[0010] These characteristics can affect the efficiency of network communication through each access network. In some respects, the policy management unit can determine that certain types of services (such as latency-sensitive services) will be sent through a first access network with a lower latency link, while less latency-sensitive services will be sent through a second access network with a higher latency link. For example, latency-sensitive services might include web browsing, while latency-insensitive services might include email and streaming.

[0011] After the policy management unit generates a return link policy based on the network conditions of the access network available to the client execution unit and the corresponding one or more communication terminals, the policy management unit sends the updated return link policy to the client execution unit. The client execution unit then routes the services generated by the one or more communication terminals through the available access network based on the received return link policy. Similarly, after the policy management unit generates a forward link policy based on the network conditions of the access network available to the provider execution unit, the policy management unit sends the updated forward link policy to the provider execution unit. The provider execution unit then routes the generated services to the one or more communication terminals through the available access network based on the received forward link policy. Attached Figure Description

[0012] This disclosure is described in conjunction with the accompanying drawings:

[0013] Figure 1 A simplified diagram of a first example of a communication system is shown.

[0014] Figure 2 This is a simplified diagram of a second example of a communication system.

[0015] Figure 3 yes Figure 1 A simplified diagram of an example communication system, including a block diagram of an exemplary client execution unit.

[0016] Figure 4A yes Figure 1 A simplified diagram of an example communication system, including a block diagram of an exemplary core network.

[0017] Figure 4B This is a simplified diagram of an exemplary communication system, including a block diagram of an exemplary policy management unit of the core network.

[0018] Figure 5 This is a diagram of a moving transport device. It shows the device moving between locations A, B, C, and D.

[0019] Figure 6 This is a flowchart of a method for dynamically updating the transmission routing strategy used by the execution unit.

[0020] Figure 7 This is a flowchart of a method for dynamically updating the transmission routing strategy used by the execution unit.

[0021] Figure 8 This is a flowchart of a method for routing user data in an execution unit.

[0022] In the accompanying drawings, similar parts and / or features may have the same reference numerals. Furthermore, various parts of the same type can be distinguished by using a second reference numeral after the first reference numeral to differentiate similar parts. If only the first reference numeral is used in the specification, the description applies to any similar part having the same first reference numeral, regardless of the second reference numeral. Detailed Implementation

[0023] Numerous specific details are set forth in the following description to provide a thorough understanding of this disclosure. However, those skilled in the art will recognize that this disclosure can be practiced without these specific details. In some instances, circuits, structures, and techniques have not been shown in detail to avoid obscuring this disclosure.

[0024] Figure 1 A simplified diagram of a first example of a communication system 100 is shown. Many other configurations may be more... Figure 1 The communication system 100 has more or fewer components. For example, although Figure 1 These are examples of mobile communication terminals discussed below; however, in some respects, the methods and systems disclosed herein can be applied to fixed-location communication terminals. More generally, the methods and systems described herein can be applied to systems that include fixed-location communication terminals and / or mobile communication terminals.

[0025] In the illustrated embodiment, the communication system 100 includes one or more transport devices (shown as aircraft 110) that communicate with a destination network 160 via a satellite access network (including satellite 105, gateway terminal 150, and network 152), an air-to-ground access network (including air-to-ground tower 154 and network 156), and a core network 180.

[0026] Although Figure 1 The diagram illustrates satellite-based and air-to-ground access networks as examples, but the disclosed methods and systems consider other types of access networks and are not limited to these. Figure 1 Those shown. For example, access networks can include drones, balloons, satellite networks (LEO, MEO, or GEO), terrestrial networks, or any other type of network that provides communication between two points. Furthermore, although... Figure 1 The diagram shows a single core network 180, but the functionality of the core network 180, as well as the computing and network resources therein, can be distributed across multiple physical locations.

[0027] In this example, transport device 110a may include a two-way communication terminal 112 to facilitate two-way communication with a satellite access network and an air-to-ground antenna access network. In the illustrated embodiment, the two-way communication terminal 112 includes two antenna systems 170a-b, two transceivers 172a-b, two modems 174a-b, a client execution unit 140, a wireless access point (WAP) 178, and one or more mobile network devices 120a-n. Other contemplated embodiments, in providing transport devices that simultaneously have two or more access networks or require special dedicated hardware to communicate through the available access networks of different types, may include three, four, five, six, seven, eight, nine, or ten antennas, transceivers, or modems, as needed to facilitate communication through the available access networks or types of available access networks.

[0028] The core network 180 can also communicate with transport equipment 110a via a satellite access network and an air-to-ground access network. In some aspects, the core network 180 can communicate with transport equipment 110a-b via other types of networks, with satellite access networks and air-to-ground networks shown as examples. See below. Figure 4B Further details of the core network 180 are discussed. The core network 180 can communicate with, for example, a client execution unit 140 installed within the transport device 110a.

[0029] The two-way communication terminal 112 installed in transport equipment 110a can provide: receiving forward link signals from a satellite access network (via network 152, gateway terminal 150, and satellite 105) and / or an air-to-ground access network (via network 156 and air-to-ground tower 154), and transmitting return link signals to the satellite access network and / or air-to-ground access network, thereby supporting two-way data communication between the mobile network device 120 within transport equipment 110a-b and the destination network 160. The mobile network device 120 may include mobile devices (e.g., smartphones, laptops, tablets, netbooks, etc.), such as personal electronic devices (PEDs) brought onto transport equipment 110a-b by passengers. As a further example, the mobile network device 120 may include a passenger seat back system or other devices on transport equipment 110a-b. The network device 120 can communicate with the client execution unit 140 via a communication link, which may be wired and / or wireless. The communication link can be, for example, part of a local area network, such as a wireless local area network (WLAN) supported by WAP 178. One or more WAP 178s can be distributed around transport equipment 110a-b and can provide service switching and routing functions together with client execution unit 140.

[0030] In operation, client execution unit 140 may provide uplink data received from mobile network device 120 to any one or both of modems 174a-b to generate modulated uplink data (e.g., transmit intermediate frequency (IF) signals) for transmission to corresponding transceivers 172a-b according to individual return link strategies (discussed in more detail below). The corresponding transceivers 172a-b may upconvert and then amplify the modulated uplink data to generate return link signals for transmission via corresponding antenna systems 170a-b to satellite 105 or air-to-ground tower 154. Similarly, the corresponding transceivers 172a-b may receive forward link signals from 105 and / or air-to-ground tower 154 via corresponding antenna systems 170a-b. The corresponding transceivers 172a-b may amplify and downconvert the forward link signals to generate modulated return link data (e.g., receive IF signals) for demodulation by the corresponding modems 174a-b. Demodulated return link data from modems 174a-b can be provided to client execution unit 140 for routing to mobile network device 120. One or more of modems 174a-b can be integrated with client execution unit 140, or in some examples can be separate components.

[0031] The core network 180 may include a policy management unit 182 and a provider execution unit 184. The policy management unit 182 can manage and control policies for data routing across multiple access networks (via client execution unit 140 and provider execution unit 184). Policies generated by the policy management unit 182 can be specific to a particular client execution unit or provider execution unit. For example, a first policy can be generated for client execution unit 140 within transport device 110, and a second policy can be generated for a second client execution unit within another transport device. Furthermore, policies generated by the policy management unit 182 may include forward link policies and separate return link policies. For example, policy information for transport device 110a may include a first forward link policy and a first return link policy, while policy information for another transport device may include a second forward link policy different from the first forward link policy and a second return link policy different from the first return link policy. Additionally, the first forward link policy and the second forward link policy may differ from the first return link policy and the second return link policy, respectively. The forward link strategy can be executed by the provider execution unit 184, while the return link strategy can be executed by the client execution unit 140 installed in the corresponding transport equipment 110a.

[0032] Furthermore, each policy discussed above can be dynamically updated. For example, policies can be updated as network conditions change and / or communication terminals (e.g., two-way communication terminal 112 on transport equipment 110a-b) move across geographical areas. The policy management unit 182 and the provider-side execution unit 184 are discussed in more detail below.

[0033] In the illustrated embodiment, transport device 110a is an aircraft. Alternatively, transport device 110a may not be an aircraft, but may be a train, bus, cruise ship, etc. As shown, destination network 160 can be any type of network and may include, for example, the Internet, IP network, intranet, wide area network (WAN), local area network (LAN), virtual private network (VPN), virtual LAN (VLAN), fiber optic network, wired network, public switched telephone network (PSTN), public switched data network (PSDN), public land mobile network, and / or any other type of network supporting the communications described herein. Destination network 160 may include wired and wireless connections as well as optical links.

[0034] The access networks discussed above can have different characteristics. For example, while satellite access networks can provide continuous access over large geographical areas, they offer high capacity and are relatively inexpensive to operate, while air-to-ground access networks can provide lower latency network communication. Air-to-ground access networks may also not be able to provide continuous access over the same geographical area as satellite access networks.

[0035] Furthermore, the performance of multiple access networks can vary, not only based on the inherent characteristics of the technologies upon which the access networks rely, but also on the current state of each access network. For example, if an aircraft communicates with a satellite via a specific spot beam (e.g., using a specific carrier frequency, polarization, etc.), the link capacity may be affected by the number of other users served by the spot beam (including other aircraft and / or other transportation equipment, mobile user terminals, fixed user terminals, etc.), weather (e.g., rain attenuation which may cause packet loss and / or other impacts), and communication schemes (e.g., modulation and / or coding schemes which may increase communication overhead).

[0036] Figure 2 This is a simplified diagram of the second communication system 101. Communication system 101 includes one or more network devices 220a-n that communicate with a destination network 160 via a satellite access network (including satellite 105, gateway terminal 150, and network 152), a terrestrial access network (including ground tower 230 and network 232), and a core network 180. (Refer to the above...) Figure 1 In contrast to the communication system 100 discussed, the two-way communication terminal 212 of the communication system 101 includes a two-way communication terminal 212 that operates from a fixed location (e.g., a residence or business premises). Similar to... Figure 1The two-way communication terminal 212 includes a client execution unit 140 that can determine how to route network messages generated by corresponding network devices 220a-220n via one or more available access networks for transmission to a destination network 160. For example, the client execution unit 140 can determine whether to route each network message generated by network devices 220a-220n via a satellite access network and / or a terrestrial access network. In the illustrated embodiment, the two-way communication terminal 212 wirelessly communicates with a ground tower 230. For example, the terrestrial access network may be a cellular network. In other embodiments, the terrestrial access network may communicate with the two-way communication terminal 212 via a wired connection. Similar to... Figure 1 The two-way communication terminal 112 and the two-way communication terminal 212 include devices (transceivers 272a-b, modems 274a-b and WAP 278) for facilitating communication with satellite access networks and terrestrial access networks.

[0037] Similar to Figure 1 The communication system 100 has a core network 180 located between the destination network 160 and the terrestrial access network and satellite access network, thereby routing network messages to one of the network devices 120a-n via multiple access networks. Figure 1 Similar to the situation described above, the core network 180 includes a policy management unit 184 and a provider-side execution unit 182. (Refer to the above text.) Figure 1 As discussed, the policy management unit 184 can be configured to generate individual return link policies for one or more of the client execution unit 140a and / or network devices 220a-n. The policy management unit 184 can also be configured to generate individual forward link policies for defining or addressing network messages to each network device 120a-n. The policy management unit 184 can then distribute these generated forward link and individual return link policies to the appropriate provider execution unit 182 and client execution unit 140, respectively. As described above, at least in some aspects, the forward link and return link policies can specify routing of a particular network session or network service 120 via a first network path and different second network paths, respectively. For example, TCP acknowledgments can be communicated via an air-to-ground access network, while the remainder of the TCP session is communicated via a satellite access network.

[0038] Figure 3 yes Figure 1 A simplified diagram of an example of a communication system 100, including a detailed block diagram of a client execution unit 140. Figure 2 The client execution unit 140 of the communication system 101 can communicate with Figure 3The same as shown. Many other configurations of the client execution unit 140 may have more or fewer components. Furthermore, the functions described herein may be distributed among the components in a manner different from that described herein. Figure 3 Some components of the core network 180, gateway terminal 150, networks 152 and 156, and bidirectional communication terminal 112 have been omitted to avoid making the attached diagrams too complex.

[0039] and Figure 1 and Figure 2 Consistent, the client execution unit 140 connects via a satellite access network and an air-to-ground access network (or other suitable access networks as described above) and other components of the two-way communication terminal 112 (in... Figure 3 (Not shown) communicates with the destination network 160. The client execution unit 140 also communicates with the network device 120. Figure 2 References to the preceding text have been omitted in the following discussion. Figure 1 Some components of the two-way communication terminal 112 (e.g., antenna system 170, transceiver 172, modem 174, WAP 178) are discussed to avoid overcomplication of the figures.

[0040] The illustrated aspects of the client execution unit 140 include an electronic hardware processor 305 and a network interface 310. The processor 305 can communicate with the network interface 310 via an electronic bus (not shown) within the client execution unit 140. The processor can communicate with the network interface 310 to send and / or receive packets via a network (e.g., a network providing connectivity to one or more network devices 120a-n). In some aspects, such connectivity can be described by reference above. Figure 1 The wireless access point 178 and / or modem 174 discussed are provided.

[0041] The client execution unit 140 also includes a policy executor 315 and a service classifier 320. The policy executor 315 and service classifier 320 may be part of volatile or stable memory, such as virtual or physical storage accessible to the processor 305. The policy executor 315 and service classifier 320 may include binary data defining instructions that configure the processor 305 to perform various functions. For example, the policy executor 315 may include instructions that configure the processor 320 to execute a policy that defines how data generated by one or more of the network devices 120a-n is sent to a destination network 160 via multiple access networks. For example, the policy executor 315 may determine, based on an applicable network policy, whether to route specific data generated by the network devices 120a-n to the destination network 160 via a satellite access network or an air-to-ground access network (or other access networks as described above). In some aspects, the policy executor 315 may make these routing decisions based on the policy and also on the characteristics of the specific message being routed. For example, in some aspects, the type of message may determine how the message is routed. In some respects, for example, latency-sensitive services can be routed via air-to-ground networks, while latency-insensitive services can be routed via satellite access networks. In other respects, the policy enforcer can make routing decisions based on the size of network messages. For example, in some respects, messages longer than a threshold can be routed through a first access network, while shorter messages shorter than the threshold can be routed through a second access network.

[0042] The service classifier 320 may include instructions to configure the processor 305 to classify messages received from network devices 120a-n. For example, the service classifier 320 may classify messages based on one or more of destination IP addresses, service access points (SAPs), application protocol signatures, etc., to determine whether the message is part of an email, web browsing, streaming media, or file transfer network session.

[0043] In some implementations, how services are classified can involve differences between multiple managed access networks. For example, in some aspects, if the first access network has higher latency than the second access network, the service classifier 320 can determine whether the network service is latency-sensitive or latency-insensitive. This information can then be used, at least in part, by the policy executor 315 to route the network service through either the first or second access network. In some aspects, the first access network may have different capacity or throughput than the second access network. In these aspects, the service classifier 320 can determine the amount of data that a particular network service (e.g., a network packet or a data stream as part of a network session) is attempting to transmit. The policy executor can then route the particular network service through either the first or second access network based on the data volume. For example, a network session with a relatively large amount of network data to be sent (i.e., a data volume above a threshold) can be routed through the higher-capacity access network, while a network session with a relatively small amount of data to be sent (i.e., a data volume below a threshold) can be routed through the lower-capacity access network.

[0044] In some respects, categorized services can associate one or more network messages with a specific network session. A network session can uniquely identify data exchange between two endpoints. For example, in some respects, a network session can correspond to a single Transmission Control Protocol (TCP) connection (a combination of source / destination IP addresses and source / destination service access points). In some respects, a network session can correspond to a unique combination of User Datagram Service Access Points and a combination of source / remote IP addresses. For example, data including the source IP address of IP1, the destination IP address of IP2, the source UDP service access point (SAP) of SAP1, and the destination UDP SAP of SAP2 can be the same network session as a message indicating the source IP address of IP2, the destination IP address of IP1, the source UDP SAP of SAP2, and the destination UDP SAP of SAP1.

[0045] Instructions in one or more of the policy executor 315 and service classifier 320 can configure the processor 305 to read data from the policy database 325. For example, in some aspects, the processor 305 can read data from the policy database 325 to determine which service policies to apply to network services generated by one or more network devices 120. Although Figure 3The client execution unit 140 is represented as a single physical device; however, in some implementations, the functions related to the client execution unit 140 discussed above and below may be implemented on multiple physical devices within the transport device 110. For example, in some aspects, the functions associated with each of the policy executor 315 and the business manager 320 may each be provided on a separate physical device with its own dedicated electronic hardware processor, memory, and network interface. Additionally, in some implementations, the policy database 325 may also be implemented on one or more separate devices from one or more of the policy executor 315 and the business classifier 320. How the functions discussed above and below are partitioned across one or more physical hardware devices does not substantially affect the methods and systems disclosed herein.

[0046] Figure 4A It shows Figure 1 A simplified diagram of an example communication system 100, including a block diagram of the core network 180. Figure 2 The core network 180 of the communication system 100 may be connected to Figure 4A The same as shown. Many other configurations of the core network 180 may have more or fewer components. Furthermore, the functions described herein may be distributed among the components in a manner different from that described herein.

[0047] Within the core network 180 is the provider-side execution unit 184, which, together with the transport equipment 110 and one or more network devices therein ( Figure 1 The network devices 120a-b) are shown communicating. In some aspects, the core network 180 communicates with the transport equipment 110a via a satellite access network and / or an air-to-ground access network 175. The core network 180 also communicates with the destination network 160. The provider execution unit 184 receives communications from the destination network 160 destined for the transport equipment 110 and / or the network devices 120a-n within the transport equipment 110. In some aspects, the provider execution unit 184 may communicate with the satellite access network and / or the air-to-ground access network via the network 160, or may use other networks and / or technologies to communicate with these access networks.

[0048] The illustrated aspects of provider execution unit 184 include an electronic hardware processor 410 and a network interface 415. Processor 410 can communicate with network interface 415 via an electronic bus (not shown) within provider execution unit 405. Processor 410 can communicate with network interface 415 to send and / or receive packets over a network (e.g., destination network 160).

[0049] The provider-side execution unit 184 also includes a policy executor 420, a policy manager 425, and a service classifier 430. The policy executor 420, policy manager 425, and service classifier 430 may be part of volatile or stable memory, such as virtual or physical memory accessible to the processor 410. The policy executor 420, policy manager 425, and service classifier 430 may include binary data defining instructions that configure the processor 410 to perform various functions. For example, the policy executor 420 may include instructions that instruct the processor 410 to execute a policy that defines how forward link data destined for one or more network devices 120a-n residing on the transport device 110 is sent to the transport device 110. For example, the policy executor 420 may determine, based on applicable network policies, whether to route specific data destined for network devices 120a-n to the transport device 110 via a satellite access network or an air-to-ground access network. These decisions by provider-side execution unit 184 can enforce forward link policies between destination network 160 and transport equipment 110, as these policies are implemented for traffic flowing from destination network 160 to network devices 120a-n and / or transport equipment 110. In some aspects, policy executor 420 can make these routing decisions based on policies and also on the characteristics of the specific messages being routed. For example, in some aspects, service classifier 430 can classify messages received by provider-side execution unit 184 to determine the type of each message. The type can determine how to route the message. In some aspects, for example, the type of latency-sensitive service can be routed through one access network while less latency-sensitive services are routed through a second access network. In some aspects, whether a service is latency-sensitive can be based on one or more of the following: whether the service uses User Database Protocol (UDP) (UDP services are often more latency-sensitive than TCP services), whether the service is inherently continuous (latency-sensitive services tend to exhibit continuity), and the amount of data sent (low data volumes are often used with latency-sensitive services).

[0050] Instructions in one or more of the policy executor 420, policy manager 425, and service classifier 430 can configure processor 410 to read data from policy database 435. For example, in some aspects, processor 410 can read data from policy database 435 to determine service policies for network services applied to one or more network devices 120 residing within transport equipment 110. Although Figure 4ABy referring to the provider-side execution unit 184 as a single physical device, those skilled in the art will understand that, in some aspects, the functions related to the provider-side execution unit 184 discussed above and below may be implemented on multiple physical devices in some implementations. For example, in some aspects, the functions associated with each of the policy executor 420, policy manager 425, and business classifier 430 may each be provided on a separate physical device having its own dedicated electronic hardware processor, memory, and network interface. Additionally, in some implementations, the policy database 435 may also be implemented on one or more devices separate from one or more of the policy executor 420, policy manager 425, and business classifier 430. How the functions discussed above and below are partitioned across one or more physical hardware devices does not substantially affect the methods and systems disclosed herein.

[0051] Figure 4B yes Figure 1 A simplified diagram of an example of a communication system 100, including a block diagram of the policy management unit 182 of the core network 180. Figure 2 The policy management unit 182 of the core network 180 can be connected with Figure 4B The same applies as shown. Many other configurations of the core network 180 may have more or fewer components. Furthermore, the functions described herein may be distributed among the components in a manner different from that described herein.

[0052] The policy management unit 182 within the core network 180 connects to other components of the two-way communication terminal 112 via satellite access network, air-to-ground access network, or other suitable access networks. Figure 4B (Not shown) communicates with one or more network devices 120a-n. Specifically, Figure 4B The policy management unit 182 is shown communicating with a client execution unit 140 located within a transport device (e.g., transport device 110). The policy management unit 182 also communicates with a provider execution unit 184.

[0053] The illustrated aspects of the policy management unit 182 include an electronic hardware processor 455 and a network interface 460. The processor 455 can communicate with the network interface 460 via an electronic bus (not shown) within the policy management unit 182. The processor 455 can communicate with the network interface 460 to send and / or receive packets over a network (e.g., any network providing connectivity to the client execution unit 140 and one or more network devices 120a-n).

[0054] The policy management unit 182 also includes a policy generator 465 and an access network state manager 470. The policy generator 465 and the access network state manager 470 may be part of volatile or stable memory, such as virtual or physical memory accessible to the processor 455. The policy generator 465 and the access network state manager 470 may include binary data defining instructions that configure the processor 405 to perform various functions. For example, the policy generator 465 may include instructions that configure the processor 455 to define how return link data generated by one or more of the network devices 120a-n is sent to the destination network 160 by controlling how the client execution unit 140 routes policies from devices 120a-n. For example, the policy generator 465 may configure the processor 455 to determine, based on state information from one or more access networks, whether the client execution unit 140 should route data to the destination network 160 via a satellite access network or an air-to-ground access network.

[0055] The policy generator 465 can also configure the processor 455 to generate specific policies for the provider-side execution unit 405. This policy can differ from the policy provided to the client-side execution unit 405. The policy of the provider-side execution unit 184 can control how forward link data is routed from the destination network 160 to the network devices 120a-120n. Specifically, the policy of the provider-side execution unit 184 can define how data destined for or addressed to the network devices 120a-n is routed via the first access network or the second access network, as referred to above. Figure 1 As stated above.

[0056] The access network status manager 470 may include instructions to configure the processor 455 to receive access network status information from the client execution unit 140 and / or the provider execution unit 184. For example, the access network status manager 470 may configure the processor 455 to receive status information regarding satellite access networks and / or air-to-ground access networks. The status information may include one or more of the following: congestion information, dropped packet information, latency information, throughput information, or other information characterizing the performance of the access network between the client execution unit 140 and the destination network 160.

[0057] Although Figure 4BWhile the policy management unit 182 is presented as a single physical device, those skilled in the art will understand that, in some aspects, the functions related to the policy management unit 182 discussed above and below may be implemented on multiple physical devices in some implementations. For example, in some aspects, the functions associated with each of the policy generator 245 and the access network state manager 470 may each be provided on a separate physical device with its own dedicated electronic hardware processor, memory, and network interface. How the functions discussed above and below are partitioned across one or more physical hardware devices does not substantially affect the methods and systems disclosed herein.

[0058] Figure 5 This is a diagram of a moving transport device 110. It shows the device 110 moving between locations A, B, C, and D. As the transport device 110 moves between the shown locations, different access networks may become available to it, while others may become unavailable. For example, at location A, device 110 communicates via a satellite access network including satellite 105a or an air-to-ground access network including air-to-ground tower 154a. At location B, device 110 communicates via an air-to-ground access network including air-to-ground tower 154b or a satellite access network including satellite 105a. At location C, device 110 communicates via an air-to-ground access network including air-to-ground tower 154b or a satellite access network including satellite 105b. At location D, device 110 communicates via an air-to-ground access network including air-to-ground tower 154b or a satellite access network including satellite 105b.

[0059] Figure 5 It is also shown that the device 110 and the corresponding client execution unit 140 included within the device 110 receive dynamic policy updates at each location A. The dynamic policy update received by the transport device 110 at location A can instruct the client execution unit 140 how it should route data among multiple access networks available for communication. For example, see reference below. Figure 6As discussed, policy management unit 182 can generate policies based on metrics related to the network performance of the first and second access networks. In some aspects, these metrics can be collected by client execution unit 140 residing on transport equipment 110 and sent to policy management unit 180. Policy management unit 182 can then generate policy updates based at least in part on the metrics provided to it. When policy updates are provided to transport equipment 110 at location A, policy management unit 182 can also provide corresponding policy updates to provider execution unit 184. Policy updates for client execution unit and provider execution unit ensure that the forward link (via provider execution unit 184) and return link (via client execution unit 140) work together to consistently route traffic between client execution unit 140 and destination network 160 (not shown). For example, in some aspects, network messages included in a single network session can be routed through a common access network, regardless of whether the traffic is forward link traffic or return link traffic. In some other respects, network messages within a single network session can be routed through different access networks, depending on whether the network message is part of a forward link or a reverse link service.

[0060] The policy update received by client execution unit 140 at location B can instruct client execution unit 140 how to route data between the satellite access network provided via satellite 105a and the air-to-ground access network provided via air-to-ground tower 154b. The policy update received by client execution unit 140 at location B on transport equipment 110 can also be based on one or more characteristics of the first and third access networks, such as their relative congestion, latency, throughput, and other characteristics. As discussed above with reference to the policy update at location A, when a policy update is provided to client execution unit 140 within the transport equipment at location B, policy management unit 182 can also provide a corresponding policy update to provider execution unit 184.

[0061] The policy update received by the client execution unit 140 within the transport equipment 110 at location C can instruct the client execution unit 140 on how to route data between the fourth access network provided via satellite 105b and the third access network provided via air-to-ground tower 154b. The policy update received by the client execution unit 140 within the transport equipment 110 at location C can also be based on one or more characteristics of the third and fourth access networks, such as their relative congestion, latency, throughput, and other characteristics. As discussed above with reference to policy updates at locations A and B, when a policy update is provided to the client execution unit 140 within the transport equipment at location C, the policy management unit 182 can also provide a corresponding policy update to the provider execution unit 184.

[0062] Policy updates received by the client execution unit 140 within transport equipment 110 at location D can instruct the client execution unit 140 on how to route data between the fourth access network provided via satellite 105b and the third access network provided via air-to-ground tower 154b. Policy updates received by the client execution unit 140 within transport equipment 110 at location D can also be based on one or more characteristics of the third and fourth access networks, such as their relative congestion, latency, throughput, and other characteristics.

[0063] Although in the illustrated example, the client execution unit 140 within transport device 110a has the same available access networks at locations C and D, the policy update provided at location D can be based on metrics characterizing the network performance of the third and fourth access networks, which differ from the metrics collected at location C, which also characterize the network performance of the third and fourth access networks. For example, in some aspects, the performance of the third and / or fourth access networks can change as the client execution unit 140 within transport device 110 moves from location C to location D. This change may reflect relative differences between metrics collected at or near each location. Therefore, the policy management unit 180 can be configured to generate a policy for the client execution unit 140 that differs at location D from that at location C, at least based on the change in the third and / or fourth access networks at location D relative to location C. As discussed above with reference to policy updates, when the client execution unit 140 within transport equipment 110 is located at location AC, the policy management unit 182 can also provide a corresponding policy update to the provider execution unit 184 when a policy update is provided to the client execution unit 140 within transport equipment at location D. The corresponding policy update ensures that the individual forward link policy and individual backlink policy for a specific client execution unit 140 within the transport equipment are consistent, ensuring that messages included in a specific network session using that specific client execution unit 140 within the transport equipment are routed through the same access network. However, in some aspects, the policy update can define different individual forward link and individual backlink policies, causing forward link network messages to be routed through different network paths than backlink network messages.

[0064] Figure 6 This is a flowchart of a method for dynamically updating individual routing policies used by an execution unit. In some aspects, the routing policy can control how one or more network messages are routed through one or more access networks. In some aspects, process 600 can... Figure 1 and 2The communication systems 100 and 101 shown are executed within this system. For example, in some aspects, the electronic hardware processor 455 of the policy management unit 182 can be configured by instructions stored in memory (e.g., represented by the policy generator 465 and the access network state manager 470) to perform one or more functions described below with reference to process 600.

[0065] In block 605, one or more first metrics related to network transmissions of the first execution unit through the first access network and the second access network are obtained. In some aspects, the first metrics may be obtained by... Figure 4B The policy management unit 182 shown receives data from the first execution unit. In some aspects, a first portion of the first metric may relate to the first execution unit transmitting and / or receiving data through a first access network, while a second portion of the first metric may relate to the first execution unit transmitting and / or receiving data through a second access network. The metric may include measurements of activity through the first or second access network, such as one or more of congestion level measurements, latency measurements, cost measurements, capacity measurements, packet drop measurements, or throughput measurements. In some aspects, one or more functions discussed above with reference to box 605 may be executed by processor 455, configured by instructions stored in access network state manager 470, as described above. Figure 4B The discussion.

[0066] In block 610, one or more second metrics relating to network transmissions of the second execution unit through the first and second access networks are received. In some aspects, policy management unit 182 may also receive the second metrics. A first portion of the second metric may relate to network transmissions of the second execution unit through the first access network, while a second portion of the second metric may relate to network transmissions of the second execution unit through the second access network. The second metric may include measurements of activity through the first or second access network, such as one or more of a congestion level measurement, latency measurement, cost measurement, capacity measurement, packet drop measurement, or throughput measurement. In some aspects, one or more functions discussed above with reference to block 610 may be executed by processor 455, configured by instructions stored in access network state manager 470, as described above. Figure 4B The discussion.

[0067] In some respects, the first and second execution units discussed above can be the client execution unit 140 and the provider execution unit 184.

[0068] In box 615, separate network routing policy information is determined for the first execution unit based on the first and second metrics. The network routing policy determined in box 615 is a policy separate from that of the first execution unit. In some aspects, the separate policy is a policy that has been customized based on one or more attributes of the first execution unit. For example, in some aspects, portions of the first and second metrics related to the first access network can be aggregated or summarized to generate one or more metrics characterizing the performance of the first access network based on data from at least the first and second execution units. Similarly, in some aspects, portions of the first and second metrics related to the second access network can be aggregated or summarized to generate one or more metrics characterizing the performance of the second access network.

[0069] The metrics characterizing the first access network and the metrics characterizing the second access network can then be evaluated to determine a network routing strategy. For example, in some aspects, if the determined metrics indicate that the first access network provides reduced latency relative to the second access network, the network routing strategy can be defined as sending a larger percentage of network data through the first access network compared to the second access network. Conversely, in this exemplary embodiment, if the determined metrics indicate that the first access network provides increased latency relative to the second access network, block 615 can generate or determine a network routing strategy that sends a larger percentage of network data through the second access network compared to the first access network.

[0070] In some respects, network routing policies can be generated to send latency-sensitive network messages through access networks that offer lower and / or more predictable latency (e.g., measured by latency variance or latency standard deviation). The execution unit can be configured to characterize one or more network messages generated by the communication terminal as latency-sensitive or latency-insensitive based on one or more of the following: application type, source or destination IP address, source or destination service access point, or other characteristics of the network message. In some respects, one or more functions discussed in reference box 615 above can be performed by the policy generator 465, as described above. Figure 4B The discussion.

[0071] In some aspects of box 615, network routing policies can be generated to define network routing policies for network messages based on the user or subscriber associated with the network message. For example, in some aspects, the policy management unit can generate a transmission policy based on the subscriber's network usage on the first access network and the second access network in a previous time period.

[0072] In some aspects of box 615, network routing policies can be generated based on the aggregated use of multiple execution units over a previous time period. These multiple execution units are not necessarily... Figure 1The system 100 may include all execution units, but may also include groups of execution units. For example, the plurality of execution units may consist of execution units residing in a particular group of transport equipment rather than in other transport equipment within the system 100.

[0073] For example, in some aspects, network routing policies can be based on the aggregation of multiple execution units from a specific geographic area. For instance, a first client execution unit can enter the first geographic area, generate a first set of network performance measurements, then move out of the first geographic area and generate a second set of network performance measurements. A second client execution unit can enter the first geographic area, generate a third set of network performance measurements, and then move out of the first geographic area. The second client execution unit can then generate a fourth set of network performance measurements. In some aspects, the first and third sets of performance measurements can be aggregated to determine an aggregated representation of the first area, excluding the second and fourth sets of performance measurements within the representation.

[0074] In some aspects of box 615, network routing policies for multiple execution units are determined. For example, in some aspects, network routing policies for groups of execution units may be determined. In some aspects, each execution unit is included in a group based on the type of communication terminal associated with it. For example, in some aspects, execution units associated with fixed-location communication terminals may be included in one group, while execution units associated with mobile communication terminals (e.g., airplanes, buses, trains, etc.) may be associated with a second group. In these aspects, execution units within the same group may use the same network policy, while execution units in different groups may use different network policies. In some aspects, a portion of the transmission policy for each execution unit in a group is generated as common, while a second portion of the transmission policy for each execution unit in a group may be different among members of the group.

[0075] In some aspects of box 615, a network routing policy is generated to define how the execution unit should route the received network messages based on the time when the data of the received network message is received. For example, the network routing policy may define that a first access network is used for transmission during a first time period, and a second access network is used for transmission during a second time period.

[0076] In some aspects, network routing policies are generated to define how the execution unit routes received network messages based on the type of device that generated the received network message. For example, in some aspects, the network routing policy may instruct the execution unit to use a first access network for a laptop and a second access network for a cellular phone and tablet computer.

[0077] In some aspects of box 615, network routing policies for one or more of the client execution unit and the provider execution unit can be determined based on a first metric and a second metric. The provider execution unit network routing policy can enforce forward link policies for network traffic destined for the client execution unit (and / or network devices residing on the same transport equipment as the client execution unit). The client execution unit network routing policy can enforce separate return link policies for network traffic destined for the provider execution unit (indirectly). For example, a service may be destined for one or more devices residing in destination network 160, but may need to flow through the provider execution unit to reach its destination. The provider execution unit network routing policy and / or separate client execution unit network routing policies can provide consistent routing for network sessions between the client execution unit and the provider execution unit. For example, if the client execution unit routes a particular session through a first access network, the provider execution unit also routes that session through the first access network. In some aspects, the generated provider execution unit network policy can route data for a particular network session through an access network different from that of the corresponding client execution unit.

[0078] In block 620, the determined network routing policy information is sent to the first execution unit. In some aspects, the first execution unit can then apply the network transport routing policy to determine whether the traffic it receives should be routed through a first access network or a second access network. In some aspects, one or more functions discussed above with reference to block 620 can be executed by processor 455, configured by instructions stored in policy generator 465, as described above. Figure 4B The discussion.

[0079] In some aspects, process 600 includes determining one or more access networks available to the first execution unit during a specific time period. For example, such as Figure 5 As shown, the transport equipment 110 can move across a geographical area. When the transport equipment moves, some previously accessible access networks may become inaccessible to those devices; while other previously inaccessible access networks may become accessible. Therefore, in some aspects, the apparatus of execution process 600 (e.g., policy management unit 450) can be configured to dynamically determine which access networks the client execution unit 140 can access when determining the network routing policy for the client execution unit. This information can be considered together with the first and / or second metrics described above to determine how a specific execution unit in a particular geographical area should route data to the available access networks.

[0080] Furthermore, in some aspects, changes to the available access network group for the client execution unit can lead to the execution of process 600. For example, when the transport equipment moves, one or more access networks may become unavailable to the corresponding client execution unit and / or one or more additional access networks may become available to the client execution unit. Process 600 can be executed in response to one or more of these changes. Similarly, process 600 can be executed in response to one or more aspects of the performance of one or more access networks. For example, if one or more available access networks go offline, or optionally experience reduced or increased network congestion, process 600 can be executed to adjust one or more of the client execution unit's individual forward link policy and / or individual back link policy, such that the routing of individual forward link data or individual back link data is adapted to the given network conditions of the available access networks.

[0081] To determine which access networks are available, in some aspects, the policy management unit 182 may receive information from a specific execution unit indicating the accessibility of an access network to that specific execution unit. For example, in some aspects, the execution unit may send status information to the policy management unit 182, for instance, via a network, indicating which access networks are currently available to it. In some aspects, the policy management unit 182 may read data storage (e.g., a database) that provides indications of accessible networks based on the geographical location of the communication terminal containing the execution unit. Therefore, in some aspects, the policy management unit 182 may generate network routing policies based at least in part on the geographical location of the corresponding communication terminal and / or data storage that maps geographical locations to accessible access networks. Figure 1 The system shown can dynamically update the transmission policies of one or more client execution units as the corresponding communication terminals containing the execution units move across a geographical area through the execution of process 600. Policy updates can change not only with the physical location of the transport equipment, and therefore with the execution units contained therein, but also based on the conditions of one or more networks accessible to the execution units at their physical locations. These conditions can be based on practical operational experience with specific execution units and one or more networks.

[0082] Figure 7 This is a flowchart of a method for dynamically updating individual routing policies used by execution units. In some aspects, process 700 can... Figure 1 -4. This is performed within the communication system shown in Figure 4. In some aspects, the electronic hardware processor 305 of the client execution unit 140 can perform one or more functions discussed below with reference to process 700. For example, the electronic hardware processor 305 can be configured by instructions in one or more of the policy executor 315 and / or the service classifier 320 to perform the functions described below with reference to process 700.

[0083] In some other aspects, process 700 may be executed by the electronic hardware processor 410 of the provider-side execution unit 184. For example, the electronic hardware processor 410 may be configured by instructions from one or more of the policy executor 420, policy manager 425, and / or business classifier 430 to perform the functions described below with reference to process 700.

[0084] Since process 700 can be implemented in various ways by either the client-side execution unit or the provider-side execution unit, process 700 can be used to implement a separate forward link strategy or a separate return link strategy, and is often referred to as... Figure 7 The "transmission routing policy" in process 700.

[0085] In block 708, individual transport routing policies are managed based on the received policy information. The received policy information is specific to the execution unit. For example, the received policy information may include an identifier that associates the policy information with the execution unit. Some aspects of process 700 include determining whether the identifier included in the policy information identifies the execution unit. If no identifier is found, the execution unit may not process the policy information further. For example, in this case, execution may not be performed. Figure 7 The frame below 708 in the middle frame.

[0086] In some aspects, the received policy information includes a separate backlink policy to be dynamically implemented by the client execution unit. In some aspects, the received policy information defines a separate forwardlink policy to be dynamically implemented by the provider execution unit. In some aspects, process 700 may include one or more of the following: the client execution unit dynamically executes the separate backlink policy, and the provider execution unit dynamically executes the separate backlink policy. In some aspects, the backlink policy and the forwardlink policy may provide inconsistent routing for network messages communicating with two network devices sharing the same communication terminal. For example, in some aspects, a first network message sent by a first network device may utilize a network path including a first access network (but not a second access network), while a second network message sent by a second network device may utilize a network path including a second access network (but not a first access network). In other aspects, both the first network message and the second network message may use the same network path.

[0087] In some respects, if the execution unit is a client execution unit, the received policy defines a separate return link policy because it controls how data generated by one or more network devices is routed through one or more access networks.

[0088] In some respects, if the execution unit is a provider-side execution unit, the received policy defines the forward link policy because it controls how data received from the destination network 160 and destined for or addressed to transport equipment (e.g., transport equipment 110) or network devices within the transport equipment (e.g., one or more of network devices 120a-n) is routed through one or more access devices to reach the destination device.

[0089] In some aspects, the received policy information is sent solely to the execution unit by another device (e.g., a device within the core network 180). In other aspects, the second device (e.g., policy management unit 182) may generate policy information specifically for a particular execution unit. For example, policy information may be generated based on the execution unit's current or expected location, and then sent directly or indirectly to the execution unit by the second device. In some aspects, the received individual policy information may be specifically generated based on the access network available to the execution unit at a specific time or at a specific location of the execution unit.

[0090] A separate transmission routing policy can define whether messages received by the execution unit (e.g., messages sent by or to network device 120a-n) are transmitted by the execution unit through a first access network or a second access network. In some aspects, the first access network and / or the second access network can have different characteristics. For example, in some aspects, the first access network and the second access network can have different congestion levels, latency, throughput, or other different network performance characteristics.

[0091] In block 716, the execution unit receives a first network message from a network service. The network service from which the first network message is received can be any means capable of providing messages for transmission over a network. The network means can be any type of means, such as an end-user device, equipment, etc. If the execution unit is a client execution unit, the means from which the first network message is received can be a network means used by passengers on transportation equipment, for example... Figure 1 One of the network services 120a-n shown, or Figure 2 One of the network devices 220a-n shown. This can include any of a mobile phone, tablet, laptop, or other computing device. If the execution unit is a provider-side execution unit, the network message can be sent by any device having network connectivity to the destination network 160. For example, the first network message can be sent by a web server or streaming media server to send data to passengers on transportation equipment (e.g., device 110).

[0092] The received messages are used to transmit to a destination accessible to the execution unit via a first access network and a second access network. For example, if the execution unit is a client execution unit, the received messages may include messages residing in... Figure 1-2 The destination address of the destination network 160 or a device accessible through it. Multiple available routing paths exist from the client execution unit to the destination network. In some aspects, the client execution unit may maintain or access routing information (e.g., an Internet Protocol routing table) indicating the destination address of the received message that can be accessed via a first routing path and a second routing path. For example, in embodiments utilizing Internet Protocol (IP) routing, the destination IP address included in the IP header of the received message can be accessed via multiple routes, such as using... Figure 1 The route for satellite access network or air-to-ground access network.

[0093] If the execution unit is a provider-side execution unit, the message is addressed to a destination device accessible via a first access network and a second access network. For example, a device on network 160 can send the first network message to a network device that can be accessed by provider-side execution unit 182 via multiple access networks. As described above, in some aspects, this accessibility can be based on the Internet Protocol address of the destination device and an IP routing table maintained by or accessible by the provider-side execution unit.

[0094] In block 720, the execution unit sends a first network message via at least one of a first access network and a second access network. In some aspects, the execution unit determines whether to send the first network message via the first access network or the second access network based on received policy information. In some embodiments, the received policy information may indicate whether the first access network or the second access network is preferred for the destination address of the first network message.

[0095] In some respects, the execution unit can classify the first network message, and routing decisions can be based on this classification. Classification can be performed based on one or more parts of the network message. For example, as... Figure 3 As shown, the service classifier 320 can analyze portions of the first network message to determine whether it is email data, streaming media, web browsing data, file transfer data, or other types of data. Based on this classification, a transmission strategy can indicate whether the first network message should be routed through a first access network or a second access network.

[0096] In some other aspects, the received policy information can define routing rules that, when executed, determine whether to send the first network message via a first access network or a second access network. For example, in some aspects, the received policy information can define routing rules instructing that email data be sent via the second access network while streaming media data is sent via the first access network. In some aspects, rules can be evaluated in a defined order, such that some rules defined by the received policy information take precedence over others defined by the received policy information.

[0097] In some respects, the received policy information may define that network messages generated by a first type of device (e.g., a laptop) are sent through a first access network, while network messages generated by a second type of device (e.g., a mobile phone or tablet) are sent through a second access network.

[0098] In block 726, the execution unit receives updated policy information, which is also specific to the execution unit. The updated policy information may be based on transmissions made by the execution unit through a first access network and / or a second access network.

[0099] In block 728, the execution unit updates the individual transport routing policy based on the received updated policy information. In some aspects, updating the individual transport routing policy may include overriding or integrating the transport policy of block 708 with the received updated policy information received in block 726.

[0100] In block 730, the execution unit receives a second network message. The second network message is used to transmit to a destination. For example, in the case of a client execution unit, the second network message may include a destination address (e.g., an IP address) that can be accessed via destination network 160 and can be routed via any access network. In the case of a provider execution unit, the network message may be sent to network service provider execution unit 184 via any access network.

[0101] In block 732, the execution unit sends a second network message through either the first or second access network based on an updated individual transport routing policy. As discussed above with reference to block 720, the updated individual transport routing policy may define whether the second network message is sent through at least one of the first and second access networks. For example, the updated individual transport routing policy may indicate that all messages should be sent through either the first or second access network. Alternatively, the updated individual transport policy may indicate that the transmission of the second network message through the first or second access network is conditional on one or more characteristics of the second network message, such as source and / or destination addresses, service access points, application protocol types (e.g., streaming media, email data, web browsing data, etc.). In some aspects, the updated transport routing policy received in block 728 may indicate that the second network message is sent through the same access network used in block 720 to send the first network message.

[0102] Figure 8 This is a flowchart of a method for routing user data within an execution unit. In some respects, see below. Figure 8 The method 800 discussed can be executed by one or more of the client execution unit 140 and the provider execution unit 182. For example, instructions in policy executor 315 and / or policy executor 420 can respectively configure processors 305 and 410 to execute the following (refer to the previous text). Figure 8 The discussed functions include one or more. Furthermore, the policy generator 465 can configure the processor 455 to generate policy information that configures one or more of the client-side execution units and / or provider-side execution units to execute process 800. For example, in some aspects, the policy generator 465 can generate rules that implement process 800 and send the rules to the appropriate execution units. Alternatively, the policy generator 465 can send data defining quota limits for one or more users to the appropriate execution units so that they can appropriately execute process 800.

[0103] Since process 800 can be implemented by either the provider-side execution unit or the client-side execution unit, the following text refers to... Figure 8 The described quotas may be specific to a single backlink policy or a single backlink policy, or specific to both in some aspects. In other words, in some aspects, separate quota values ​​may be implemented for both backlink data and forwardlink data. Alternatively, forwardlink data and backlink data may share quotas in other aspects.

[0104] In block 805, the execution unit receives data for transmission to the user. For example, in some aspects, the data received in block 805 can be provided by... Figure 1-2The network service 120a-n or 220a-n shown is generated (e.g., if the referenced execution unit is a client execution unit). Alternatively, the data received in block 805 may be generated by a device on destination network 160, which is destined for one of network devices 120a-n or 220a-n (e.g., if the referenced execution unit is a provider execution unit).

[0105] In block 810, a group of access networks available to the execution unit for transmitting user data is determined. This group of access networks includes a first access network and a second access network. The group of access networks determined in block 810 represents an access network that provides a network path to a destination node indicated by data from the execution unit (e.g., via a destination IP address).

[0106] Box 815 determines whether a user's quota for the first access network has been exceeded. In some aspects, user quotas can be maintained for one or more access networks in the access network group defined in Box 810. In some aspects, the aggregated sum of data transmitted on behalf of a user through the access network can be maintained for a period of time, such as a day, a week, a month, or any time period. In some aspects, when the sum exceeds the quota for that time period, the user's use of the network can be restricted or prevented. In some aspects, this time period can correspond to the user's / subscriber's contract period. In some aspects, this time period can be independent of the user's contract period.

[0107] In some respects, quotas may not be user-specific. For example, in these respects, if user data is transmitted via a first access network, decision block 815 can assess whether the maximum bandwidth for the time period will be exceeded. For example, in some respects, process 800 can aggregate all data sent via the first access network over a period of time. When the amount of such aggregated data from all users exceeds the quota, it can prevent... Figure 8 The user's network service referenced in the text sends additional data through the first access network.

[0108] In some respects, the quota may not be the amount of data sent through the access network, but rather the maximum number of concurrent users on the first access network. In these respects, box 815 can compare the current number of users on the first access network with the quota of the first access network. If the current number of users equals or exceeds the quota, then process 800 can move from box 815 to box 820.

[0109] As shown in box 820, if the quota is exceeded, the first access network is excluded from the group of access networks. In box 825, the remaining access networks in the group are used to determine how to send the user's data. For example, in some aspects, box 825 may utilize process 800 to determine how to send data through one of the multiple access networks (note, Figure 7 The first access network can be with Figure 8 (The first access network is different from the access network).

[0110] The methods disclosed herein include one or more actions for implementing the described methods. The methods and / or actions may be interchanged without departing from the scope of the claims. In other words, unless a specific order of actions is specified, the order and / or use of a particular action may be modified without departing from the scope of the claims.

[0111] The described functionality can be implemented using hardware, software, firmware, or any combination thereof. If implemented in software, the functionality can be stored as one or more instructions on a tangible computer-readable medium. The storage medium can be any available tangible medium accessible to a computer. By way of example and not limitation, such a computer-readable medium can include RAM, ROM, EEPROM, CD-ROM or other optical disc storage, disk storage or other magnetic storage devices, or any other tangible medium that can be used to carry or store the required program code in the form of instructions or data structures and is accessible to a computer. Disks and optical discs used herein include compact optical discs (CDs), laser discs, optical discs, digital versatile optical discs (DVDs), floppy disks, and Blu-ray discs. Optical discs, unlike magnetic disks which typically reproduce data magnetically, reproduce data optically using lasers.

[0112] Computer program products can perform certain operations presented herein. For example, such a computer program product can be a computer-readable tangible medium having instructions tangibly stored thereon (and / or encoded) that can be executed by one or more processors to perform the operations described herein. Computer program products may include packaging materials. Software or instructions can also be transmitted via transmission media. For example, software can be transmitted from a website, server, or other remote source using transmission media such as coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, or microwave.

[0113] Furthermore, modules and / or other suitable means for performing the methods and techniques described herein may be downloaded and / or otherwise obtained and / or coupled to servers, etc., via suitable terminals to facilitate the transmission of means for performing the methods described herein. Alternatively, the various methods described herein may be provided via storage devices (e.g., RAM, ROM, physical storage media such as CDs or floppy disks, etc.) such that user terminals and / or base stations can obtain the various methods when the storage device is coupled or provided to the device. Additionally, any other suitable techniques for providing the methods and techniques described herein to the device may be used. Features implementing the functionality may also be physically located in various locations, including being distributed such that different parts of the functionality are implemented in different physical locations.

[0114] In describing this invention, the following terms will be used: unless the context clearly specifies otherwise, the singular forms “a,” “an,” and “the” include plural indicators. Thus, for example, a reference to an item includes a reference to one or more items. The term “an” means one, two, or more, and is generally applicable to selecting some or all of a quantity. The term “a plurality” means two or more items. The term “about” indicates that quantities, dimensions, sizes, formulations, parameters, shapes, and other characteristics do not need to be precise, but may be approximated and / or larger or smaller as needed, reflecting acceptable tolerances, conversion factors, rounding, measurement errors, and other factors known to those skilled in the art. The term “substantially” means that the characteristic, parameter, or value does not need to be precisely achieved, but may vary or differ, including, for example, tolerances, measurement errors, measurement accuracy limitations, and other factors known to those skilled in the art, provided that it does not impede the effect that the characteristic is intended to provide. Numerical data may be expressed or presented in a range format. It should be understood that such range formatting is used merely for convenience and brevity, and therefore should be flexibly interpreted to include not only the values ​​explicitly listed as range limits, but also all individual values ​​or subranges contained within that range, as if each value and subrange were explicitly stated. For example, the range of values ​​“about 1 to 5” should be interpreted to include not only the explicitly listed values ​​of about 1 to about 5, but also the individual values ​​and subranges within the indicated range. Thus, included within that range are individual values ​​such as 2, 3, and 4, and subranges such as 1-3, 2-4, and 3-5. The same principle applies to ranges that describe only one value (e.g., “greater than about 1”), and should apply regardless of the width of the range or the characteristics described. For convenience, multiple items may be presented in a common list. However, these lists should be interpreted as if each member of the list were individually identified as a separate and unique member. Therefore, any individual member in such a list should not be understood as being substantially equivalent to any other member in the same list simply because they are presented in a common group without any other indication to the contrary. Furthermore, when the terms “and” and “or” are used in conjunction with a list of items, they should be interpreted broadly, meaning that any one or more of the listed items can be used alone or in combination with other listed items. Unless the context clearly indicates otherwise, the term “optionally” means selecting one of two or more alternatives and is not intended to limit the selection to those alternatives or to only one of the listed alternatives. The term “coupled” as used herein does not require that components be directly connected to each other. Rather, the term is intended to also include configurations with indirect connections, where one or more other components may be included between the coupled components. For example, such other components may include amplifiers, attenuators, isolators, directional couplers, redundant switches, etc.Furthermore, as used herein, the word "or" in a list of items containing "at least one" as described in the claims indicates a separate list, such as a list of "at least one of A, B, or C" indicating A or B or C or AB or AC or BC or ABC (i.e., A and B and C). Additionally, the term "exemplary" does not imply that the example is preferred or superior to other examples. As used herein, the term "set" of elements is intended to mean "one or more" of those elements unless explicitly required that the set has more than one element or explicitly permitted to be an empty set.

[0115] Various changes, substitutions, and modifications can be made to the technology described herein without departing from the teachings as defined in the appended claims. Furthermore, the scope of this disclosure and the claims is not limited to the specific aspects of the processes, machines, manufactures, compositions of matter, apparatuses, methods, and actions described above. Processes, machines, manufactures, compositions of matter, apparatuses, methods, or actions that are currently existing or developed later can be utilized to perform substantially the same function or achieve substantially the same result as the corresponding aspects described herein. Therefore, the appended claims include, within their scope, such processes, machines, manufactures, compositions of matter, apparatuses, methods, or actions.

Claims

1. A communication system, comprising: A satellite access network that provides a first network path between a client network device (220a) and a destination network (160); A terrestrial access network that provides a second network path between the client network device and the destination network (160), the terrestrial access network including a cellular network; as well as An execution unit is configured to determine, based on a network policy, whether to route services to the client network device via the satellite access network or the terrestrial access network; the network policy is dynamically updated based on state information associated with the satellite access network and / or the terrestrial access network, wherein the state information includes latency information of the satellite access network and / or the terrestrial access network.

2. The communication system as described in claim 1, wherein, The execution unit includes a provider execution unit (182) for routing forward link traffic from the destination network (160) to the client network device, or a client execution unit (140) for routing return link traffic from the client network device to the destination network (160).

3. The communication system as described in claim 2, wherein, The network policy is a forward link network policy and is executed by the provider-side execution unit, and / or the network policy is a back link policy and is executed by the client-side execution unit.

4. The communication system as described in any one of claims 1 to 3, wherein, The network policy is based, at least in part, on at least one data quota restriction associated with the satellite access network and / or the terrestrial access network and related to the user.

5. The communication system as described in claim 4, wherein, The execution unit is configured to route the service through the terrestrial access network in response to determining that the service is associated with a user who has exceeded the data quota limit associated with the satellite access network.

6. The communication system as described in claim 5, wherein, The execution unit is configured to aggregate the total amount of data sent by the user through the access network during the user's contract period to determine whether the user has exceeded the data quota limit associated with a specific access network.

7. The communication system as described in any one of claims 1 to 3, wherein, The network policy includes separate or shared data quota limits for backlink services and for forwardlink services.

8. The communication system as described in any one of claims 1 to 3, wherein, The routing is determined based on the latency of the satellite access network and the latency of the terrestrial access network.

9. The communication system as described in claim 8, wherein, The execution unit is configured to route latency-sensitive services through the terrestrial access network in response to the terrestrial access network having a lower latency than the satellite access network.

10. The communication system according to any one of claims 1 to 3, wherein, The routing is determined based on the size of the service.

11. The communication system as claimed in claim 10, wherein, The execution unit is configured to route the service through the satellite access network in response to the service exceeding a threshold size.

12. The communication system as claimed in claim 1, wherein, The status information includes congestion information of the satellite access network and / or the terrestrial access network.

13. The communication system as described in any one of claims 1 to 3, wherein, The client network device is located within a transport device, optionally wherein the transport device is an aircraft.

Citation Information

Patent Citations

  • Network mobility

    US20060159088A1