Dynamic routing and policy shaping for aggregated networks
By employing deep packet inspection engines and technologies such as ECN bits and IP option messages, the complexity of data flow routing and policy application in multi-modem solutions on vehicles is resolved, enabling efficient data flow management and resource optimization under different communication protocol switching conditions.
Patent Information
- Application Number
- CN202480026873.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-02-22
- Filing Date
- 2024-02-21
- Publication Date
- 2025-11-18
AI Technical Summary
When using multi-modem solutions in vehicles, the challenge of identifying and routing each onboard unit's switching between different communication protocols complicates the strategic application of data streams.
The Deep Packet Inspection (DPI) engine connects multiple devices through multiple data tunnels, identifies communication protocols, and applies corresponding policy shaping systems, including tagging techniques based on ECN bits, IP option messages, and VLAN classifiers, to achieve differentiated processing of forward data streams.
It simplifies data flow management for multi-mode solutions in vehicles, improves data transmission efficiency and reliability, adapts to switching between different communication protocols, and optimizes network resource utilization.
Smart Images

Figure CN120982076A_ABST
Abstract
Description
[0001] Cross-reference to related applications This application claims priority and benefit to U.S. Application No. 18 / 172,470, filed February 22, 2023, entitled “Dynamic Routing and Policy Shaping for Aggregated Network,” the entire disclosure of which is expressly incorporated herein by reference. Technical Field
[0002] This disclosure generally relates to delivering communications to and from devices carried by vehicles via an aggregation network, and more particularly to systems for routing traffic from said devices and applying various strategies. Background Technology
[0003] Some existing airlines and other transportation companies provide services, such as Wi-Fi or other data delivery services, to devices on board a vehicle while it is en route to its destination. For example, the onboard device can be a device permanently attached to the vehicle (e.g., a device included in a Line-Swap Unit (LRU) on an aircraft), or it can be a mobile computing device, such as a smartphone, tablet, or laptop, temporarily transported by the vehicle. To establish communication to such onboard devices, providers typically utilize wireless communication links, such as direct air-to-ground (ATG) links or satellite links, to deliver communications or data to and from the vehicle. Wireless communication links are typically bidirectional, through which all forward data (i.e., data delivered to the vehicle) and all reverse data (i.e., data sent from the vehicle) are transmitted and received.
[0004] Multi-modem solutions are typically implemented in vehicles to improve Wi-Fi performance and reliability compared to single-modem solutions. For example, 5G solutions (ATG, satellite, or other suitable means) can be combined with 4G solutions. While 5G availability is expanding in coverage areas, it is not yet fully available across the United States; whereas 4G coverage is fully available throughout the country. As vehicles travel through different coverage areas, onboard devices can switch between communication protocols such as telecommunications standards (e.g., switching between 4G+5G coverage and 4G-only coverage). Therefore, implementing multiple communication protocols using multi-modem solutions on vehicles presents certain challenges in identifying which communication protocol (and modem) each onboard device uses at any given time. This identification can be important for routing data streams from a given device or applying individual strategies based on the communication protocol used by that device. SUMMARY
[0005] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the DETAILED DESCRIPTION. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
[0006] Aspects of the disclosure provide a policy shaping system for a converged network, comprising a deep packet inspection (DPI) engine communicatively connected to a plurality of devices being transported by a vehicle via a plurality of data tunnels, the DPI engine comprising: one or more processors; and one or more non-transitory, tangible computer-readable storage media storing computer-executable instructions that, when executed by the one or more processors, cause the DPI engine to: (A) receive, via a first data tunnel of the plurality of data tunnels, a first request to deliver first content to a first one or more devices of the plurality of devices being transported by the vehicle; (B) receive, via a second data tunnel of the plurality of data tunnels, a second request to deliver second content to a second one or more devices of the plurality of devices being transported by the vehicle; (C) determine (i) a first communication protocol corresponding to the first request and (ii) a second communication protocol corresponding to the second request; (D) determine (i) a first count corresponding to a first data size of the first content and (ii) a second count corresponding to a second data size of the second content; and (E) apply (i) a first policy to a first forward data flow to be sent to the vehicle based on the first communication protocol and the first count, wherein the first forward data flow comprises the first content, and (ii) a second policy to a second forward data flow to be sent to the vehicle based on the second communication protocol and the second count, wherein the second forward data flow comprises the second content.
[0007] In some aspects, the one or more non-transitory, tangible computer-readable storage media store computer-executable instructions that, when executed by the one or more processors, further cause the DPI engine to: (A) detect a first condition indicating that the first tunnel is not in operation or is degraded; (B) receive, via a second data tunnel of the plurality of data tunnels, an additional first request to deliver additional first content to at least one of the first one or more devices of the plurality of devices being transported by the vehicle; (C) determine, in response to detecting the first condition, that the second communication protocol corresponds to the additional first request; (D) adjust the second count based on an additional first data size of the additional first content; and (E) apply the second policy to an additional first forward data flow to be sent to the vehicle based on the second communication protocol and the adjusted second count, wherein the additional first forward data flow comprises the additional first content.
[0008] In some aspects, (i) the first communication protocol is determined to correspond to the first request based on a first marking included in first ECN bits of the first request, and (ii) the second communication protocol is determined to correspond to the second request based on a second marking included in second ECN bits of the second request.
[0009] In some aspects, (i) the first communication protocol is determined to correspond to the first request based on a first marking included in first IP option messages of the first request, and (ii) the second communication protocol is determined to correspond to the second request based on a second marking included in second IP option messages of the second request.
[0010] In some aspects, (i) the first communication protocol is determined to correspond to the first request based on a first VLAN classifier of the first request, and (ii) the second communication protocol is determined to correspond to the second request based on a second marking included in a second VLAN classifier of the second request.
[0011] In some aspects, wherein the first data tunnel and the first communication protocol both correspond to a 4G protocol, and the second data tunnel and the second communication protocol both correspond to a 5G protocol. In yet other aspects, the first throughput limit of the first policy is lower than the second throughput limit of the second policy.
[0012] Another aspect of the disclosure provides a method for policy shaping of an aggregated network, comprising: (A) receiving, at a deep packet inspection (DPI) engine, via a first data tunnel of a plurality of data tunnels communicatively connected to a plurality of devices being transported by a vehicle, a first request to deliver first content to a first one or more devices of the plurality of devices being transported by the vehicle; (B) receiving, at the DPI engine, via a second data tunnel of the plurality of data tunnels, a second request to deliver second content to a second one or more devices of the plurality of devices being transported by the vehicle; (C) determining, by the DPI engine, (i) a first communication protocol corresponding to the first request and (ii) a second communication protocol corresponding to the second request; (D) determining, by the DPI engine, (i) a first count corresponding to a first data size of the first content and (ii) a second count corresponding to a second data size of the second content; and (E) applying, by the DPI engine, (i) a first policy to a first forward data flow to be sent to the vehicle based on the first communication protocol and the first count, wherein the first forward data flow includes the first content, and (ii) a second policy to a second forward data flow to be sent to the vehicle based on the second communication protocol and the second count, wherein the second forward data flow includes the second content. BRIEF DESCRIPTION OF DRAWINGS
[0013] Those skilled in the art will appreciate that the figures shown herein are included to illustrate certain aspects in a non-limiting fashion. The figures are not necessarily drawn to scale, with emphasis instead placed on illustrating the principles of the present disclosure. It is to be understood that, in some instances, various aspects of the implementations described can be shown exaggerated or enlarged to facilitate an understanding of the described implementations. In the drawings, like reference characters generally refer to functionally similar or structurally similar components throughout the various figures.
[0014] Figure 1 An exemplary aggregation network system for delivering data to and from devices carried by vehicles is shown.
[0015] Figure 2A An exemplary system for policy shaping using ECN bit marking when delivering data to and from devices carried by vehicles over an aggregation network is shown.
[0016] Figure 2A An exemplary system for policy shaping using IP options message marking when delivering data to and from devices carried by vehicles over an aggregation network is shown.
[0017] Figure 2A An exemplary system for policy shaping using VLAN classifier when delivering data to and from devices carried by vehicles over an aggregation network is shown.
[0018] Figure 3A is a flowchart depicting an exemplary method for policy shaping using ECN bit marking when delivering data to and from devices carried by vehicles over an aggregation network.
[0019] Figure 3B is a flowchart depicting an exemplary method for policy shaping using IP options message marking when delivering data to and from devices carried by vehicles over an aggregation network.
[0020] Figure 3C is a flowchart depicting an exemplary method for policy shaping using VLAN classifier marking when delivering data to and from devices carried by vehicles over an aggregation network. DETAILED DESCRIPTION
[0021] While the following disclosure presents detailed descriptions of example methods, devices and / or articles of manufacture, it should be understood that the legal scope of protection is defined by the literal words of the claims set forth at the end of this patent. Accordingly, the following detailed description is to be interpreted only as illustration, and not as a description of every possible example, since describing every possible example would be impractical, if not impossible. Numerous alternatives that have not been described can be devised by those of ordinary skill in the art without departing from the scope of the claims. It is anticipated that such alternatives will still fall within the scope of the claims.
[0022] Exemplary aggregated network system Figure 1 An example system 100 is shown for marking internal data packets communicated to / from electronic devices 110 being transported on an aircraft 102 to indicate a communication protocol corresponding to each packet to enable policy shaping in an aggregated network, according to an embodiment. The aircraft 102 can be associated with one or more communication networks and / or links, such as (i) a communication network 106 that provides communication services to the electronic devices 110 when the electronic devices 110 are deployed within the aircraft 102, and / or (ii) a communication link 130 between the aircraft 102 and a ground base station 140 connected to a data center 150.
[0023] The aircraft 102 can be a private, commercial, business, cargo, recreational, and / or other type of aircraft. The aircraft 102 can be owned and / or operated by a particular individual. In some cases, the aircraft 102 can be owned and / or operated by a company, organization, or government entity. In some cases, the aircraft 102 can be included in a fleet of vehicles used to transport passengers who pay for or are otherwise granted passage on one of the vehicles in the fleet. In some cases, the aircraft 102 can be used by an organization to transport employees and their guests. The aircraft 102 can be used to transport living or inanimate cargo, packages, mail, and / or other types of cargo. It is noted that although the aircraft 102 is depicted, the techniques and principles described herein are equally applicable to other types of vehicles, such as trucks, cars, buses, trains, boats, ships, barges, subway cars, helicopters, and / or other types of aircraft, ambulances and / or other emergency vehicles, military vehicles, other airborne, waterborne, or land-based vehicles, and / or vehicles suitable for space travel. Although not shown in the figures for clarity of illustration, the aircraft 102 can include electronic systems, such as avionics systems (or equivalents for vehicles that are not aircraft), such as communication systems, navigation systems, instruments, flight control systems, or collision avoidance systems. The electronic systems can also include non-avionics systems (e.g., electronics that are not specifically designed for aircraft), such as control systems, data distribution devices, etc. Figure 1 The aircraft 102 can be a private, commercial, business, cargo, recreational, and / or other type of aircraft. The aircraft 102 can be owned and / or operated by a particular individual. In some cases, the aircraft 102 can be owned and / or operated by a company, organization, or government entity. In some cases, the aircraft 102 can be included in a fleet of vehicles used to transport passengers who pay for or are otherwise granted passage on one of the vehicles in the fleet. In some cases, the aircraft 102 can be used by an organization to transport employees and their guests. The aircraft 102 can be used to transport living or inanimate cargo, packages, mail, and / or other types of cargo. It is noted that although the aircraft 102 is depicted, the techniques and principles described herein are equally applicable to other types of vehicles, such as trucks, cars, buses, trains, boats, ships, barges, subway cars, helicopters, and / or other types of aircraft, ambulances and / or other emergency vehicles, military vehicles, other airborne, waterborne, or land-based vehicles, and / or vehicles suitable for space travel. Although not shown in the figures for clarity of illustration, the aircraft 102 can include electronic systems, such as avionics systems (or equivalents for vehicles that are not aircraft), such as communication systems, navigation systems, instruments, flight control systems, or collision avoidance systems. The electronic systems can also include non-avionics systems (e.g., electronics that are not specifically designed for aircraft), such as control systems, data distribution devices, etc. Figure 1 The aircraft 102 can be a private, commercial, business, cargo, recreational, and / or other type of aircraft. The aircraft 102 can be owned and / or operated by a particular individual. In some cases, the aircraft 102 can be owned and / or operated by a company, organization, or government entity. In some cases, the aircraft 102 can be included in a fleet of vehicles used to transport passengers who pay for or are otherwise granted passage on one of the vehicles in the fleet. In some cases, the aircraft 102 can be used by an organization to transport employees and their guests. The aircraft 102 can be used to transport living or inanimate cargo, packages, mail, and / or other types of cargo. It is noted that although the aircraft 102 is depicted, the techniques and principles described herein are equally applicable to other types of vehicles, such as trucks, cars, buses, trains, boats, ships, barges, subway cars, helicopters, and / or other types of aircraft, ambulances and / or other emergency vehicles, military vehicles, other airborne, waterborne, or land-based vehicles, and / or vehicles suitable for space travel. Although not shown in the figures for clarity of illustration, the aircraft 102 can include electronic systems, such as avionics systems (or equivalents for vehicles that are not aircraft), such as communication systems, navigation systems, instruments, flight control systems, or collision avoidance systems. The electronic systems can also include non-avionics systems (e.g., electronics that are not specifically designed for aircraft), such as control systems, data distribution devices, etc.
[0024] As many of the electronic systems of the aircraft 102 can require some degree of stability and / or secure attachment during transport, at least some of the electronic systems can be included in line replaceable units (LRUs) 120 that are fixed or rigidly attached to the aircraft 102. The LRUs 120 can be composed of modular components, which can be a sealed unit of the aircraft designed to be replaced in a short time without the use of specialized tools, thereby enabling the aircraft 102 to quickly resume service while the LRUs 120 are tested and repaired. Typically, the LRUs 120 are electronic assemblies that perform a specific function in the aircraft 102 and can be removed or replaced as a unit and maintained at a vehicle maintenance center. Some of the electronic systems of the aircraft 102 can not be included in the LRUs 120. For example, instead of being fixedly connected to the aircraft 102 via the LRUs 120, some of the electronic systems can be fixedly connected to the aircraft 102 using some other means, such as a bracket or other attachment device. As shown, the LRUs 120 include modems 122, a content delivery system 124, and a content library 126.
[0025] The one or more modems 122 can be configured to be compatible with a variety of different communication standards utilized by the ATG communication link 130 (or other possible links, such as satellite-based communication link(s)). For example, the communication link 130 can utilize communication protocols associated with terrestrial communications (e.g., TDMA, GSM, CDMA, LTE, WiMAX, Wi-Fi, 4G, 5G, etc.) and / or frequencies in the K a band, Ku-band, L-band, and / or any other suitable wireless communication band. Each of the plurality of modems 122 can be connected (wired or wirelessly) to at least one respective antenna 104. Each of the modems 122 can operate on one or more frequency bands, and the aircraft 102 can utilize the modems 122 to receive data from or transmit data to the aircraft 102. For example, the aircraft 102 can include one of the modems 122 thereon that is tuned to a frequency band allocated for direct communications between the aircraft 102 and a ground station, or that supports a direct air-to-ground (ATG) communication link (e.g., 849-851 MHz and 894-896 MHz). The aircraft 102 can additionally or alternatively include one of the modems 122 thereon that is tuned to a frequency band allocated for satellite communications, such as the L-band (e.g., 40 to 60 GHz or 1 to 2 GHz), the Ku-band (e.g., 10.7 to 12.7 GHz), the C-band (e.g., 4 to 8 GHz), the Ka-band (e.g., 17.7 to 21.2 GHz), the X-band (e.g., 7.9 to 8.4 GHz), the S-band (e.g., 2.5 to 3.5 GHz), the VHF-band (e.g., 30 to 300 MHz), the UHF-band (e.g., 225 to 1000 MHz), and / or any other suitable wireless communication band. ufrequency bands (e.g., 12 to 18 GHz), Ka frequency bands (e.g., 26.5 to 40 GHz), and / or other spectrums allocated for satellite communications. Further, each modem 122 can operate according to a particular communication protocol. For example, at least one modem 122 can operate according to a 4G communication protocol, and at least one modem 122 can operate according to a 5G communication protocol.
[0026] The content delivery system 124 is configured to deliver content from the content library 126 to the electronic devices 110, among other things, via the communication network 106. The electronic devices 110 can include any mobile computing device, such as a smartphone, a tablet, a laptop computer, a personal digital assistant, an e-reader, smart glasses, a smart watch, and / or any other mobile computing device capable of wireless communication. The electronic devices 110 can initiate a request, e.g., a request for content, in response to a user input. The content delivery system 124 can deliver content to the electronic devices 110 regardless of whether it is connected to an external network, such as the Internet 160. The content delivery system 124 can be configured to provide an interface to the electronic devices 110 via the communication network 106 to view a list of content, select content, view content, download content, or purchase content or access content, such as via the Internet 160 or the content library 126.
[0027] As used herein, content includes, but is not limited to, media content that can include audio and / or visual information. The content can be presented on a user interface of one or more electronic devices 110 in response to one or more requests, e.g., from the one or more electronic devices 110, to deliver content to the one or more electronic devices 110. Some examples of media content include a movie, a television program, a song, a video game, a digital magazine, a news feed, web data, an application, a message, or any other content involving a textual, audio, and / or visual presentation. In other words, content can include anything that can be provided as output to a display component (e.g., a screen) and / or an audio component (e.g., a speaker) of an electronic device (e.g., the electronic devices 110). Content can also include software, configuration data, files, etc., which can be made available (e.g., as a file server), applied to, installed in, etc., by a maintenance personnel via the aircraft 102 or a system (e.g., the LRUs 120) of the aircraft 102, for example.
[0028] A local communication network 106 (e.g., a Wi-Fi network) is implemented on the aircraft 102 to provide communication services (e.g., Internet access, cellular calling capability, etc.) to electronic devices 110 while the electronic devices 110 are on the aircraft 102 during a flight (and in some cases before or after the flight). For example, the local communication network 106 can provide communication services to the electronic devices 110 in response to requests initiated at the electronic devices 110. In general, the communication network 106 can be a network or group of networks deployed, managed, and / or hosted on the aircraft 102. The communication network 106 can include various nodes and links for the exchange of data and / or communications between nodes. In an embodiment, the nodes of the communication network 106 can also communicate with nodes external to the communication network 106 (e.g., via the Internet 160). In an embodiment, the communication network 106 includes one or more access points that allow some or all of the electronic devices 110 to connect to the communication network 106. For example, the communication network 106 can include networking devices such as routers, hubs, switches, repeaters, bridges, and / or gateway devices. Some of the networking devices can utilize a spread-spectrum paradigm and / or one or more RF bands (e.g., ISM bands such as a 900 MHz band, a 2.4 GHz band, or a 5 GHz band) to facilitate communications.
[0029] Although the communication link 130 is depicted as part of an ATG network and is referred to herein in the singular, it is understood that other network configurations are contemplated. For example, the communication link 130 can be a satellite-based communication link, etc. Moreover, in some embodiments, multiple communication links 130 can be associated with the aircraft 102, e.g., the aircraft 102 can be communicatively connected to an ATG communication link 130 and a satellite-based communication link (not shown). The communication link 130 can be commonly supported by multiple radio frequency (RF) bands. In general, a particular band or portion of the RF spectrum supporting the communication link 130 is allocated (e.g., by a government or regulatory entity) for a particular type of wireless communication, such as satellite communication, amateur radio communication, terrestrial cellular communication, near-field wireless communication, or the like. In some allocated bands, wireless communications can be communicated on a forward link and a corresponding reverse link using a respective wireless communication protocol defined, designated, or otherwise indicated by a standards association and / or a government or other regulatory entity. For example, a particular band can support a point-to-point wireless protocol and / or can support a wideband wireless protocol.
[0030] As shown, each of the communication links 130 can represent a tunnel (e.g., a UDP tunnel). Each of these tunnels can correspond to a particular communication protocol; for example, at least one of these tunnels can operate according to a 4G communication protocol, and at least one of these tunnels can operate according to a 5G communication protocol. These tunnels can be formed, defined, or allocated through frequency division, time division, code division, some other suitable channel division, or some combination of divisions. Signals carried over the tunnels can or can not be multiplexed. Any one or more of the tunnels included in a frequency band can support (or can be designated to support) a forward link and / or a reverse link for wireless communication. Further, any one or more of the tunnels included in a frequency band can be used to deliver signaling, a data payload, or a combination of signaling and a data payload. For example, a particular frequency band can support an in-band protocol, in which signaling and a payload are delivered on the same tunnel within the band, and / or a particular frequency band can support an out-of-band protocol, in which signaling and a payload are delivered on different tunnels within the band, respectively.
[0031] As previously mentioned, the communication links 130 can connect the aircraft 102 and the ground base stations 140 to the data center 150 via one or more tunnels. As shown, the data center 150 includes a server 152, a deep packet inspection (DPI) engine 154, and an Internet gateway 156. The system 100 is configured to deliver data or information from the data center 150 or from the server 152 (e.g., a global network management server or “GNMS”) included in the data center 150 to the electronic devices 110 carried by the aircraft 102. In some implementations, the system 100 is configured to deliver feedback information from the aircraft 102 to the data center 150 or the server 152, and the data center 150 or the server 152 can use the feedback information to inform subsequent data deliveries to the electronic devices 110. It should be appreciated that while the data center 150 is shown to include the components of the server 152, the DPI engine 154, and the Internet gateway 156, one or more of these components can be located outside of the data center 150. For example, the Internet gateway 156 can be located outside of the data center 150, while the server 152 and the DPI engine 154 are co-located within the data center 150. In some aspects, one or more of the components of the data center 150 can be omitted. In some aspects, the data center 150 can be omitted, and one or more of the components of the server 152, the DPI engine 154, and the Internet gateway 156 can be physically independent while still communicatively coupled.
[0032] In an embodiment, the servers 152 included in the data center 150 of the system 100 can include a set of computer-executable instructions stored on one or more non-transitory, tangible computer-readable storage media (e.g., one or more memories or data storage entities) and executable by one or more processors of the data center 150 (the data center 150 typically includes one or more computing devices having processors). The servers 152 can manage the delivery of data or information to and from the aircraft 102, e.g., over the communication link 130. More specifically, the servers 152 can be used to tag internal data packets transmitted to / from the electronic devices 110 being transported on the aircraft 102 to indicate the communication protocol corresponding to each packet, enabling policy shaping in the system 100 having an aggregated network.
[0033] The DPI engine 154 included in the data center 150 can be communicatively coupled with the servers 152. At a high level, deep packet inspection (DPI) is an advanced method of inspecting and managing network traffic. The DPI method is typically a form of packet filtering that locates, identifies, classifies, and re-routes or blocks packets having specific data or code payloads that traditional packet filtering cannot detect by inspecting only the packet header. The DPI method can inspect the contents of packets passing through a given checkpoint and make real-time decisions based on the contents of the packets or rules assigned by an enterprise, Internet service provider, or network administrator. The DPI method can also be useful for network management and content policy enforcement, such as stopping data leaks or simplifying or modifying network traffic flows according to specific use cases (e.g., messages tagged as high priority can be routed to their destinations ahead of less important or lower priority messages or packets). The DPI method can also be used to throttle data transmissions to prevent peer-to-peer abuse and thereby improve network performance. In contrast to traditional packet filtering, which can only read the header of each data packet, the DPI method enables extraction or filtering of information beyond the packet header to enable more active and advanced network monitoring and protection, which the header provides basic information about its sender, intended recipient, and time it was sent. As shown, the DPI engine 154 implements one or more techniques of the DPI method and can read and interpret tags in internal data packets transmitted to / from the electronic devices 110 being transported on the aircraft 102 to indicate the communication protocol corresponding to each packet, enabling policy shaping in the system 100 having an aggregated network. Further, the DPI engine 154 can apply various policies to the internal data packets of the data stream based on the reading of the tags.
[0034] The data center 150 can be communicatively connected to the Internet 160 (or possibly to other networks in some aspects) via an Internet gateway 156. Generally, the Internet gateway 156 can include one or more computing devices in communicative connection, and can act as a boundary between the system 100 and the Internet 160. In some embodiments, at least some of the computing devices included in the Internet gateway 156 can also be included in the data center 150. The Internet gateway 156 can be in communicative connection with the PSTN (Public Switched Telephone Network), one or more other public networks, or one or more private networks, instead of or in addition to the Internet 160. Although Figure 1 Although the data center 150 is shown as being connected to the Internet 160 via the Internet gateway 156, the techniques and principles described herein are equally applicable to a data center 150 that has and / or is in communicative connection with any desired number of other networks besides the Internet 160 via any number of gateways. The Internet gateway 156 can be omitted in some embodiments of the system 100.
[0035] Exemplary system using ECN bit marking Figure 2A An example system 200A is shown that uses Explicit Congestion Notification (ECN) bit marking for marking internal data packets of data flows delivered to and from a device carried by a vehicle. At a high level, the system 200A utilizes ECN bits of data flows to mark internal data packets communicated to / from a device (e.g., the electronic device 110) being transported on an aircraft (e.g., the aircraft 102) in response to one or more requests for delivery of content to the electronic device 110 to indicate a communication protocol corresponding to each packet, enabling policy shaping in the aggregation network.
[0036] ECN is an extension of the Internet Protocol and Transmission Control Protocol and is defined in RFC 3168 (2001). ECN informs the network of congestion with the goal of reducing packet loss and delay by having the sending device reduce the transmission rate until the congestion is eliminated, without discarding data packets. ECN communicates whether congestion is encountered by marking two least significant bits in the Differentiated Services (DiffServ) field of the IP header. The six most significant bits in the DiffServ field contain the Differentiated Services Code Point (DSCP) bits. The two ECN bits in the DiffServ field provide four codes that determine whether the packet is marked as an ECN-capable transport (ECT) packet (which means that both endpoints of the transport protocol are ECN-capable) and whether congestion is encountered (CE). The ECN bit codes mean the following: (00) means not ECT - the packet is marked as not ECN-capable; (01) means ECT(l) - the endpoints of the transport protocol are ECN-capable; (10) means ECT(0) - the endpoints of the transport protocol support ECN; and (11) means CE - congestion is encountered. While these discussed ECN techniques are how ECN bits are traditionally used, in some aspects, the present inventive techniques can use the ECN bits to not indicate ECT or congestion, but rather as a flag to indicate the communication protocol corresponding to each packet to implement policy shaping.
[0037] System 200A includes components: a cabin network 210A, a wireless access point 220A, LRUs 230A, a server 240A, a DPI engine 250A, an Internet gateway 260A, and the Internet 270A. Various components or techniques of or associated with system 200A can be the same as or similar to components or techniques of or associated with system 100.
[0038] The cabin network 210A of system 200A can be the same as or similar to the communication network 106 of system 100 and can similarly be used to provide communication services (e.g., Internet access, cellular calling capability, etc.) to electronic devices when the electronic devices are on an aircraft (e.g., aircraft 102) in flight (and in some cases, pre-flight or post-flight). As shown, the cabin network 210A includes electronic devices (as shown, two laptops and one cell phone) that can be the same as or similar to electronic devices 110 of system 100. The electronic devices can be used to access media content, which can include audio and / or visual information.
[0039] Devices in the cabin network 210A are illustrated as communicatively connected with the LRUs 230A via wireless access points 220A. The LRUs 230A, which can be the same as or similar to the LRUs 120 of the system 100, can be composed of modular components, which can be sealed units of an aircraft (e.g., the aircraft 102), designed to be replaced in a short amount of time without the need for specialized tools, enabling the aircraft to quickly resume service while the LRUs 230A are being tested and repaired. As shown, a load balancer 232A and modems 234A and 236A are included in the LRUs 230A.
[0040] The load balancer 232A can reduce network congestion by preventing high-performance communication links from becoming overloaded. To determine free capacity, the load balancer 232A can first determine a bandwidth estimate for a communication link. In some embodiments, the bandwidth estimate can be inferred based on measured characteristics of the communication link (e.g., SNR, CNR, Tx power, Rx power, RSSI, etc.). Generally, the higher the quality of the measured characteristics, the greater the bandwidth that the communication link can support. In addition, the load balancer 232A can determine the amount of traffic scheduled to be routed over the communication link. To do so, the network can route all traffic to the load balancer 232A. The load balancer 232A can then assign the traffic among one or more queues based on a traffic scheduling scheme. For example, higher priority traffic can be routed to a first queue, while lower priority traffic can be routed to a second queue. Based on the amount of traffic in the queues, the load balancer 232A can determine the amount of traffic scheduled for each communication link. Although a load balancer the same as or similar to the load balancer 232A is not shown as being included in the system 100, in some aspects, a load balancer the same as or similar to the load balancer 232A is included in the system 100, such as in the LRUs 120.
[0041] The modems 234A and 236A, which can be the same as or similar to the modems 122 of the system 100, can operate on one or more frequency bands and can enable receiving or transmitting data from an aircraft (e.g., the aircraft 102). As shown, the modem 234A is an EVDO (Evolution-Data Optimized, also known as 4G) modem, while the modem 236A is a 5G modem. Data streams flowing through the modem 234A are referred to as “Path 1” or “Path 2” in Figure 2A , while data streams flowing through the modem 236A are referred to as “Path 3” or “Path 4” in Figure 2Ais referred to as“Path 3.” As further shown with respect to modems 234A and 236A, to implement marking of the ECN bits of the data stream of the internal data packets being communicated to / from electronic devices being transported on the aircraft, the ECN bits of the data stream flowing through modems 234A and 236A are reset to 00.
[0042] LRU 230A is illustrated as communicatively connected with a server 240A. Server 240A, which can be the same as or similar to server 152 of system 100, can manage the delivery of data or information to and from the aircraft (e.g., aircraft 102) via a communication link (e.g., link 130). Server 240A can include tunnels 242A-246A. As shown, data streams flowing through Path 1 flow through tunnel 242A, data streams flowing through Path 2 flow through tunnel 244A, and data streams flowing through Path 3 flow through tunnel 246A. For each tunnel corresponding to modem 234A or modem 236A, if the performance of one of the two modems 234A or 236A degrades (or stops operating altogether), the tunnel can move to the other modem (e.g., via load balancer 232A, via modem 234A or 236A, etc.). As further shown, server 240A can mark the internal packets of user data to indicate the particular path through which the data stream is flowing. Using this technique, the internal packets of the data stream flowing through Path 3 are marked with ECN bits (01). In not using the already existing ECN bits to indicate the path of the data stream, minimal changes can have to be made to legacy products (e.g., software, hardware, standard operating procedures, etc.). Of course, the illustrated example of changing the ECN bits of the data stream on Path 3 to (01) is merely exemplary; it should be understood that the ECN bits can be changed to any of (00), (01), (10), or (11) to indicate any type of path corresponding to any type of communication protocol. For example, in some embodiments, data streams corresponding to 5G can be marked with ECN bits (11), while data streams corresponding to 4G can be marked with ECN bits (10).
[0043] Server 240A is illustrated as communicatively connected with a DPI engine 250A. DPI engine 250A, which can be the same as or similar to DPI engine 154 of system 100, can (i) read and interpret the markings in the internal data packets (ECN bit markings, as described above, or other markings), (ii) determine the type of path (e.g., 4G, 5G, etc.) corresponding to the data stream, and (iii) apply the appropriate QoS to the data stream. DPI engine 250A can be implemented using any of the DPI engines described above with respect to system 100. Figure 2Aindicate which implementation policy shaping, and (ii) based on the reading of the markings, apply various policies to the internal data packets of the data flow. In the illustrated embodiment where the ECN bits of the data flow corresponding to path 3 are marked as (01), the DPI engine 250A will interpret that the data flow with ECN bits marked as (01) is coming over the 5G physical link. Using this unique identification method, the DPI engine 250A will apply different policies to the data flow depending on which physical path the data flow belongs to. It should be appreciated that there are many different types of policies that can be applied to the data flow depending on the communication protocol corresponding to the data flow; however, a set of exemplary policies are included in Table 1. As shown in Table 1, the policies applied to the data flow can depend on the data size (e.g., the number of bytes of the data flow for a given user, the number of bytes of the data flow for a set of users, etc.). Accordingly, a counter 252A can be implemented in the DPI engine 250A in order to determine a count corresponding to the data size of the data flow and to enable capping the bandwidth of a user by capping the data flow based on the communication protocol corresponding to the data flow of the user.
[0044] Table 1 Same policy on 4G Same policy on 5G Protocol X: 100 bytes in 1 hour (then block) Protocol X: 2000 bytes in 1 hour (then block) Protocol Y: 100 bytes in 1 hour (then shape) Protocol Y: 2000 bytes in 1 hour (then shape) Protocol Z: Block Protocol Z: 2000 bytes in 1 hour (then shape) The DPI engine 250A is illustrated as being communicatively connected with an internet gateway 260A. The internet gateway 260A, which can be the same as or similar to the internet gateway 156 of the system 100, can include one or more communicatively connected computing devices and can act as a boundary between the system 100 and the internet 270A (which can be the same as or similar to the internet 160 of the system 100). The internet gateway 260A can be communicatively connected with the PSTN (public switched telephone network), one or more other public networks, or one or more private networks, in the alternative or in addition to the internet 270A. In some embodiments of the system 100, the internet gateway 260A can be omitted.
[0045] In some embodiments, system 200A can further include an analytics engine or component 282A, e.g., within LRU 230A. Analytics engine or component 282A can be configured to collect and / or analyze network performance characteristics, location attributes, and / or other data associated with operation of system 200A. In some embodiments, analytics engine or component 282A can be configured to provide network performance characteristics, location attributes, and / or other data to a ground-based analytics engine 284A via one or more modems, which can be configured to collect and analyze network performance characteristics, location attributes, and / or other data in a manner that will be described in subsequent portions of this specification. Generally speaking, the output of the ground-based analytics engine can be used to assist the DPI engine 250A in policy shaping (e.g., the output of the ground-based analytics system 284A can be provided to the DPI engine 250A to be used as a factor in selecting a policy).
[0046] Exemplary system using IP option message marking Figure 2B An exemplary system 200B is shown that uses Internet Protocol (IP) option message markings for marking internal data packets of data streams delivered over an aggregation network to and from vehicle on-board devices. At a high level, system 200B utilizes IP option messages of data streams to mark internal data packets communicated to / from devices being transported on an aircraft (e.g., aircraft 102) to indicate the communication protocol corresponding to each packet, enabling policy shaping in the aggregation network.
[0047] At a high level, an IP header is the header information at the beginning of an IP packet. IP packets are, in regular cases, the smallest message entity exchanged on an IP network and can include a header for addressing and routing and a payload for user data. The header can include information about the IP version, source IP address, destination IP address, time to live, etc. The payload of an IP packet can include datagrams or segments of higher level transport layer protocols, but can also be data for the internet layer (e.g., ICMP or ICMPv6) or link layer (e.g., OSPF). Currently, two different versions of IP are in practical use: IPv4 and IPv6. The IPv6 header uses IPv6 addresses, thus providing a larger address space, but is not backward compatible with IPv4. The header of an IP datagram is typically composed of a fixed part and a variable part. For example, for IPv4, the fixed part is 20 bytes, while the options field in the IPv4 header is 40 bytes. While these discussed IP options fields can be used in some examples in a regular way to log IP addresses, the present inventive technology can use the IP option message to include markings to indicate the communication protocol corresponding to each packet, enabling policy shaping.
[0048] System 200B includes components of a cabin network 210B, wireless access point 220B, LRUs 230B, server 240B, DPI engine 250B, Internet gateway 260B, and Internet 270B, one or more of which can be the same as or similar to cabin network 210A, wireless access point 220A, LRUs 230A, server 240A, DPI engine 250A, Internet gateway 260A, and Internet 270A of system 200A, respectively. Various components of or associated with system 200B can be the same as or similar to components of or associated with system 100 or system 200A.
[0049] While system 200B shares many similarities with system 200A, system 200B represents an example embodiment in which system 200B marks IP options messages, rather than marking internal data packets based on their respective communication protocols using ECN bits. Similar to that described with respect to system 200A, server 240B can be used to mark individual values in IP options messages, where each value is unique to a different path (as shown, path 1, path 2, and path 3). Based on the marking in the IP options messages of the internal data packets of a data flow, DPI engine 250B can distinguish the path of the data flow, and using counter 252B (which can be the same as or similar to counter 252A), can apply various policies to the data flow based on the communication protocol corresponding to the data flow. For example, DPI engine 250B can identify a particular data flow as corresponding to path 1, and thus to a 4G communication protocol, based on the IP options message of the particular data flow. Based on a count corresponding to the data size of the particular data flow as determined by the EVDO quota bucket included in counter 252B, DPI engine 250B can apply policy Z of Table 1 and block the particular data flow.
[0050] In some embodiments, similar to Figure 2ASystem 200B can further include an analytics engine or component 282B, e.g., within LRU 230B. Analytics engine or component 282B can be configured to collect and / or analyze network performance characteristics, location attributes, and / or other data associated with operation of system 200B. In some embodiments, analytics engine or component 282B can be configured to provide network performance characteristics, location attributes, and / or other data to a ground-based analytics engine 284B via one or more modems, which can be configured to collect and analyze network performance characteristics, location attributes, and / or other data in manners that will be described in subsequent portions of this specification. Generally speaking, the output of the ground-based analytics engine can be used by DPI engine 250B to help policy shaping (e.g., the output of ground-based analytics system 284B can be provided to DPI engine 250B to be used as a factor in selecting a policy).
[0051] Exemplary system using VLAN classifier Figure 2C An example system 200C is shown for marking internal data packets of data streams delivered to and from devices carried by vehicles using IP options message marking. At a high level, system 200C utilizes a separate virtual local area network (VLAN) classifier to separate (e.g., via marking) internal data packets being communicated to / from a device (e.g., electronic device 110) being transported on an aircraft (e.g., aircraft 102) based on a communication protocol corresponding to each packet to enable policy shaping in an aggregated network.
[0052] System 200C includes components of a cabin network 210C, wireless access point 220C, LRU 230C, server 240C, DPI engine 250C, internet gateway 260C, and internet 270C, one or more of which can be the same as or similar to cabin network 210A / B, wireless access point 220A / B, LRU 230A / B, server 240A / B, DPI engine 250A / B, internet gateway 260A / B, and internet 270A / B of system 200A / B, respectively. Various components or techniques of or associated with system 200C can be the same as or similar to components or techniques of or associated with system 100 or system 200A / B.
[0053] While the system 200C shares many similarities with the system 200A / B, the system 200C represents an example embodiment in which the system 200C utilizes separate virtual local area network (VLAN) classifiers to separate (e.g., via tagging) internal data packets, rather than using ECN bits or IP options messages to tag internal data packets based on their respective communication protocols. Similar to that described with respect to the system 200A / B, the server 240C can be used to implement multiple VLAN classifiers, with each VLAN classifier being unique to a different path (as shown, path 1, path 2, and path 3). Based on the VLAN classifier corresponding to a data flow, the DPI engine 250C can distinguish the path of the data flow, and using the counter 252C (which can be the same or similar to the counter 252A / B) can apply various policies to the data flow based on the communication protocol corresponding to the data flow. For example, the DPI engine 250C can identify a particular data flow as corresponding to path 3, and accordingly to the 5G communication protocol, based on the VLAN classifier corresponding to the particular data flow. Based on the count corresponding to the data size of the particular data flow determined by the 5G quota bucket included in the counter 252C, the DPI engine 250C can apply policy X of Table 1, and allow 2000 bytes of the particular user data within 1 hour, and then block the particular data flow.
[0054] In some embodiments, similar to the system 200A of Figure 2A and / or the system 200B of Figure 2B the system 200C can further include an analytics engine or component 282C, e.g., within the LRU 230C. The analytics engine or component 282C can be configured to collect and / or analyze network performance characteristics, location attributes, and / or other data associated with the operation of the system 200C. In some embodiments, the analytics engine or component 282C can be configured to provide network performance characteristics, location attributes, and / or other data to a ground-based analytics engine 284C via one or more modems, which can be configured to collect and analyze network performance characteristics, location attributes, and / or other data in a manner that will be described in subsequent portions of this specification. Generally speaking, the output of the ground-based analytics engine can be used by the DPI engine 250C to help policy shaping (e.g., the output of the ground-based analytics system 284B can be provided to the DPI engine 250C to be used as a factor in selecting a policy).
[0055] Exemplary system using other network performance parameters to select / apply policy As an addition to or alternative to selecting and applying network strategies based on communication protocols associated with vehicles and onboard devices (e.g., communication protocols for reverse link requests from onboard devices, as described in the foregoing sections), the systems and methods of this disclosure can still select and apply network strategies based on other network performance parameters.
[0056] Specifically, terrestrial analytics systems can collect real-time or near-real-time network performance characteristics, location attributes, and / or other data related to communication between vehicles / vehicle-mounted devices and terrestrial networks. (Reference) Figure 1 Ground-based analysis systems can be located in, for example... Figure 1 Within data center 150 (e.g., within server 152) and / or within one or more other servers (e.g., one or more cloud servers). A ground-based analytics engine can collect network performance characteristics, location attributes, and / or other data (e.g., from Line Replaceable Units (LRUs) 120 on each aircraft 102), and / or directly measure or observe network performance characteristic data and / or location attributes via the ground-based analytics engine or other aspects of the ground-based system. Network performance characteristics for each respective aircraft 102 may include, for example, reverse link traffic, utilization, and / or expected throughput from aircraft 102; forward link traffic, utilization, and / or expected throughput from the ground to aircraft 102; reverse link and / or forward link communication latency; forward link and / or reverse link bandwidth; reverse link and / or forward link packet loss; and / or the corresponding usage of each of one or more modems on aircraft 102 (e.g., two or more modems 122 using different corresponding communication protocols to implement different corresponding data tunnels, such as those described in the foregoing sections of this disclosure).
[0057] Based on collected information associated with communications involving each respective aircraft 102, a ground-based analysis system can calculate an estimate of the aggregated network performance of each respective aircraft 102. In embodiments, the aggregated network performance may generally be related to the Quality of Service (QoS) experienced by each onboard device on each aircraft 102. In some embodiments, the aggregated network performance is an instantaneous aggregated network performance, for example, based on real-time, instantaneous network performance characteristics. Alternatively, the aggregated network performance is based on a moving average of network performance characteristics and / or other data, for example, from a rolling time window corresponding to a period of time prior to the estimation of the aggregated network performance.
[0058] Based on the estimated aggregate network performance for each respective aircraft 102, the ground-based analytics system can dynamically apply network policies for each respective aircraft 102. In an embodiment, for each respective aircraft 102, the ground-based analytics system can repeatedly or continuously recalculate the respective aggregate network performance, and can dynamically modify the network policy for the respective aircraft 102 each time the ground-based analytics system determines that the aggregate network performance exceeds the existing (prior) estimate for the same aircraft 102 (e.g., via Figure 1 DPI engine 154) of the system 100.
[0059] In an embodiment, different pools of network policies can be established for respective communication protocols that can be potentially used by the aircraft 102 (e.g., the communication protocols described with respect to the foregoing features, where each communication protocol can use different modems and / or data tunnels than the communications corresponding to other communication protocols). For example, for a first aircraft from which communications utilize a first communication protocol, the ground-based analytics system can select a network policy for the first aircraft from a first set of network policies. For a second aircraft from which communications utilize a second communication protocol that is different than the first communication protocol, the ground-based analytics system can select a network policy for the first aircraft from a second set of network policies, the second set of network policies being partially or completely different than the first set of network policies. In an embodiment, the selection of the network policy for each respective aircraft 102 can be based at least in part on the relative locations of each respective aircraft 102 and the respective ATG tower / other infrastructure serving the respective aircraft 102, thereby accounting for variations in performance characteristics due to geographic attributes.
[0060] Exemplary method using ECN bit marking Figure 3A An example method 300A for providing communications to and from devices being transported by a vehicle is shown. In an embodiment, the method 300A is performed at least in part by one or more of the system 100, the system 200A, the system 200B, or the system 200C of the system 100. Figure 1 More specifically, in an embodiment, at least a portion of the method 300A can be performed by one or more of the data center 150, the server 240A / B / C, or the DPI engine 250A / B / C. For ease of discussion, the following simultaneously refer to the system 100, the system 200A, the system 200B, or the system 200C of the system 100. Figure 1Method 300A will be described in the context of system 100, however, this is only one of many embodiments and should be understood as non-limiting. Example method 300A can include one or more of the following elements: (1) receiving, via a first data tunnel, a first request to deliver first content to a first device being transported by a vehicle (block 305A), (2) receiving, via a second data tunnel, a second request to deliver second content to a second device being transported by the vehicle (block 310A), (3) determining (i) a first communication protocol corresponding to the first request based on a first marking included in a first ECN bit, and (ii) a second communication protocol corresponding to the second request based on a second marking included in a second ECN bit (block 315A), (4) determining (i) a first count corresponding to a first data size of the first content and (ii) a second count corresponding to a second data size of the second content (block 320A), and / or (5) applying (i) a first policy to a first forward data flow including the first content based on the first communication protocol and the first count, and (ii) a second policy to a second forward data flow including the second content based on the second communication protocol and the second count (block 325A).
[0061] As previously mentioned, the receiving device of data or information included in the communication can be a computing device fixedly connected to the vehicle (e.g., a component / device included in LRU 120 on aircraft 102), or the device can be a mobile computing device, such as a smartphone, tablet, or laptop, being temporarily transported by the vehicle (e.g., an aircraft). In fact, the device can be any device connected to any on-board communication network that is communicatively connected to an on-board node via which data is received onto and / or delivered from the vehicle. However, for ease of discussion, and not for purposes of limitation, method 300A is described below in the context of an example scenario in which the device is being transported by the vehicle.
[0062] Block 305 A can include receiving (e.g., at data center 150, or more specifically, at server 152 or DPI engine 154) a first request to deliver first content to a first one or more of a plurality of devices being transported by a vehicle via a first data tunnel of a plurality of data tunnels communicatively connected with the plurality of devices (e.g., electronic devices 110). The first data tunnel can enable the first device to transmit the first request and receive a first data stream including the first content. The first tunnel can utilize a first modem (e.g., one of modems 122). The first request can be generated in response to user input provided by a user of the first device to the first device or by some other suitable means. The first content can include media content, which can include audio and / or visual information.
[0063] Block 310A can include receiving (e.g., at data center 150, or more specifically, at server 152 or DPI engine 154) a second request to deliver second content to a second one or more of the plurality of devices being transported by the vehicle via a second data tunnel of the plurality of data tunnels communicatively connected with the plurality of devices. The second data tunnel can enable the second device to transmit the second request and receive a second data stream including the second content. The second tunnel can utilize a second modem (e.g., one of modems 122). The second request can be generated in response to user input provided by a user of the second device to the second device or by some other suitable means. The second content can include media content, which can include audio and / or visual information. In some aspects, the second content can be a different type of content than the first content. For example, the first content can include an email message that can have a lower data size than the second content, which includes a video. In this example, where the second content has a greater data size than the first content, the second modem of the second tunnel can correspond to a second communication protocol having a higher throughput than a first communication protocol corresponding to the first modem of the first tunnel.
[0064] Block 315A can include determining (e.g., at data center 150, or more specifically, at server 152 or DPI engine 154) (i) a first communication protocol corresponding to the first request and (ii) a second communication protocol corresponding to the second request. In some aspects, the first and second communication protocols can be telecommunication standards. For example, the first communication protocol can be 4G (EVDO) and the second communication protocol can be 5G. More specifically, in some aspects, (i) the first communication protocol is determined to correspond to the first request based on a first marking included in a first ECN bit of the first request, and (ii) the second communication protocol is determined to correspond to the second request based on a second marking included in a second ECN bit of the second request. DPI engine 250A, which can be the same as or similar to DPI engine 154 of system 100, can read and interpret the ECN bit markings in internal data packets to determine the communication protocol corresponding to each packet. For example, as shown with respect to system 200A, the ECN bit marking (01) in the internal packet indicates 5G, while the ECN bit marking (00) indicates 4G.
[0065] Block 320A can include determining (e.g., at data center 150, or more specifically, at server 152 or DPI engine 154) (i) a first count corresponding to a first data size of the first content and (ii) a second count corresponding to a second data size of the second content. A counter, such as counter 252A, can be implemented to determine the first count and the second count. The counter can determine the first count and the second count so as to be able to limit the bandwidth of the first data stream including the first content and the second data stream including the second content according to various policies.
[0066] Block 325A can include (e.g., at data center 150, or more specifically, at server 152 or DPI engine 154) (i) applying a first policy to a first forward data stream to be transmitted to the vehicle based on the first communication protocol and the first count, where the first forward data stream includes the first content, and (ii) applying a second policy to a second forward data stream to be transmitted to the vehicle based on the second communication protocol and the second count, where the second forward data stream includes the second content. It should be appreciated that there are many different types of policies that can be applied to a data stream depending on the communication protocol corresponding to the data stream; however, a set of exemplary policies are included in Table 1. Referring to the example where the first data tunnel and the first communication protocol both correspond to a 4G protocol and the second data tunnel and the second communication protocol both correspond to a 5G protocol, the first throughput limit of the first policy can be lower than the second throughput limit of the second policy. In this example, the first count can be lower than the second count because the first data size of the first content is smaller than the second data size of the second content (e.g., the first content is a song and the second content is a music video).
[0067] Exemplary method using IP option marking Figure 3B An example method 300B for providing communication to and from a device being transported by a vehicle is shown. In one embodiment, method 300B is at least partially comprised of... Figure 1 The method 300B may be executed by one or more of systems 100, 200A, 200B, or 200C. More specifically, in one embodiment, at least a portion of method 300B may be executed by one or more of data center 150, servers 240A / B / C, or DPI engines 250A / B / C. For ease of discussion, reference is also made below. Figure 1 The method 300B is described using system 100; however, this is only one of many embodiments and should be understood as non-limiting. Example method 300B may include one or more of the following elements: (1) receiving a first request via a first data tunnel to deliver first content to a first device being transported by a vehicle (box 305B); (2) receiving a second request via a second data tunnel to deliver second content to a second device being transported by a vehicle (box 310B); (3) determining (i) a first communication protocol corresponding to the first request based on a first tag included in a first IP option message; and determining (ii) a second communication protocol corresponding to the second request based on a second tag included in a second IP option message (box 315B); (4) determining (i) a first count corresponding to a first data size of the first content and (ii) a second count corresponding to a second data size of the second content (box 320B); and / or (5) applying (i) a first strategy to a first forward data stream including the first content based on the first communication protocol and the first count, and applying (ii) a second strategy to a second forward data stream including the second content based on the second communication protocol and the second count (box 325B).
[0068] One or more of block 305B, block 310B, block 315B, block 320B, and block 325B can be similar to or identical to each of block 305A, block 310A, block 315A, block 320A, and block 325A, respectively. However, in some aspects, method 300B utilizes IP options messages of data flows (rather than ECN bits as done in method 300A) to mark internal data packets communicated to / from a device (e.g., electronic device 110) being transported on a vehicle (e.g., aircraft 102) to indicate a communication protocol corresponding to each packet, enabling policy shaping in an aggregated network. More specifically, a DPI engine 250B, which can be the same as or similar to DPI engine 154 of system 100, can read and interpret IP options messages to determine a communication protocol corresponding to each packet, where the IP options messages include a marking that indicates a communication protocol corresponding to each packet.
[0069] Exemplary method using VLAN classifier Figure 3C An example method 300C for providing communications to and from devices being transported by a vehicle is shown. In an embodiment, method 300C is performed at least in part by one or more of system 100, system 200A, system 200B, or system 200C of Figure 1 More specifically, in an embodiment, at least a portion of method 300C can be performed by one or more of data center 150, server 240A / B / C, or DPI engine 250A / B / C. For ease of discussion, method 300C is described below with simultaneous reference to system 100 of Figure 1 However, this is merely one of many embodiments, and should be understood as non-limiting. Example method 300C can include one or more of the following elements: (1) receiving, via a first data tunnel, a first request to deliver first content to a first device being transported by a vehicle (block 305C), (2) receiving, via a second data tunnel, a second request to deliver second content to a second device being transported by the vehicle (block 310C), (3) determining (i) a first communication protocol corresponding to the first request based on a first VLAN classifier of the first request, and (ii) a second communication protocol corresponding to the second request based on a second VLAN classifier of the second request (block 315C), (4) determining (i) a first count corresponding to a first data size of the first content and (ii) a second count corresponding to a second data size of the second content (block 320C), and / or (5) applying (i) a first policy to a first forward data flow including the first content based on the first communication protocol and the first count, and (ii) a second policy to a second forward data flow including the second content based on the second communication protocol and the second count (block 325C).
[0070] One or more of block 305C, block 310C, block 315C, block 320C, and block 325C can be similar to or identical to each of block 305A / B, block 310A / B, block 315A / B, block 320A / B, and block 325A / B, respectively. However, in some aspects, method 300C utilizes VLAN classifier option messages of the data flows (rather than ECN bits or IP option messages as done in methods 300A / B) to distinguish the communication protocols of internal data packets transmitted to / from devices (e.g., electronic devices 110) being transported on a vehicle (e.g., aircraft 102). The VLAN classifiers can each be unique for different paths. Thus, a DPI engine 250B, which can be the same as or similar to DPI engine 154 of system 100, can distinguish the communication protocols corresponding to each data flow based on the individual VLAN classifiers to isolate (e.g., via tagging) the internal data packets.
[0071] Any or all of the methods 300A / B / C can be performed when the vehicle (e.g., aircraft 102) is in any state that indicates dynamic motion of the vehicle or that indicates the vehicle is en route or between a departure location and a destination location. For example, the vehicle can be an aircraft, and at least a portion of the methods 300A / B / C can be performed while the vehicle is in any of a plurality of flight states (e.g., in-flight, climbing, descending, weight-on-wheels), or in any of a plurality of possible port states. With respect to "port states," generally, as used herein, a "port" can be a designated location that the vehicle can depart from and that the vehicle can arrive at. Examples of ports can include an airport, a seaport, a train station, a hospital, a shipping dock, a bus station, a gas station, a vehicle maintenance or service area, a military base, an aircraft carrier, etc. As such, a "port state" of the vehicle, as used herein, generally refers to a state of the vehicle that indicates the vehicle is in the vicinity (or close proximity) of a port of the vehicle, e.g., the vehicle is taking off, landing, taxiing, parked, docked, at a harbor, at a cargo yard, etc. The port state can indicate whether the vehicle is stationary or non-stationary. For example, the port state can be determined by determining that the vehicle is within a particular distance of the port, e.g., by using a geospatial position of the vehicle (e.g., determined by a global positioning system) and / or by detecting the presence and / or signal strength of a beacon signal transmitted by a transceiver of the port. Of course, vehicles that are not aircraft can still have the ability to be in a port state, e.g., when a boat is within a harbor or docked at a port, when a truck is at a gas station or weigh station, or any time the vehicle is not traveling en route between ports. In an embodiment, the methods 300A / B / C are performed in their entirety when the vehicle is in a port state. In an embodiment, the methods 300A / B / C are performed in their entirety when the vehicle is in a dynamic motion state (e.g., in-flight, sailing, or moving along a highway). In an embodiment, the methods 300A / B / C are performed in their entirety when the vehicle is in a stationary state (e.g., parked at a gate, parked at a rest stop, or parked on a taxiway).
[0072] Additional considerations Throughout this specification, plural instances can implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations can be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations can be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component can be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter of this document.
[0073] Furthermore, certain embodiments are described herein as comprising, consisting of, consisting essentially of, or as including, a plurality of elements or steps. The term "comprising" is used herein to mean that the named element or step can or can not be present, but that the elements or steps are present in the embodiment. The term "consisting essentially of" is used herein to mean that the named element or step can or can not be present, but that the elements or steps are present in the embodiment, and that no other elements or steps are present. The term "consisting of" is used herein to mean that the named element or step is present in the embodiment, and that no other elements or steps are present. The term "including" is used herein to mean that the named element or step is present in the embodiment, and that no other elements or steps are present, unless the context indicates otherwise. The term "plurality" is used herein to mean two or more.
[0074] In various embodiments, a hardware module can be implemented mechanically or electronically. For example, a hardware module can include dedicated circuitry or logic that is permanently configured to perform certain operations. Such a hardware module may, for example, be a special-purpose processor, such as a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). A hardware module can also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. Such a hardware module may, for example, be a general-purpose processor configured by software to become a special-purpose processor.
[0075] Accordingly, the term "hardware module" should be understood to encompass a tangible entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner and / or to perform certain operations described herein. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor can be configured as
[0076] Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules can be regarded as being communicatively coupled. Where multiple of such hardware modules exist contemporaneously, communications can be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules can be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module can perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module can then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules can also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
[0077] Various operations of example methods described herein can be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute processor-implemented modules that operate to perform one or more operations or functions. In some example embodiments, the modules referred to herein may
[0078] Similarly, the methods or routines described herein can be at least partially processor- implemented. For example, at least some of the operations of a method can be performed by one or more processors or processor-implemented hardware modules. The performance of particular operations by the one or more processors or processor-implemented hardware modules can be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented hardware modules can be located in a single location (e.g., within a home environment, an office environment, or as a server farm), while in other embodiments the one or more processors or processor-implemented hardware modules can be distributed across multiple locations.
[0079] The performance of certain of the operations can be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules can be located in a single location (e.g., within a home environment, an office environment, or as a server farm), while in other embodiments the one or more processors or processor-implemented modules can be distributed across multiple locations.
[0080] Unless specifically stated otherwise, discussions herein using terms such as "processing," "computing," "calculating," "determining," "presenting," "displaying," or the like can refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers or other machine component(s), regardless of the specific type of computation or transformation.
[0081] Any reference to "one implementation" or "an implementation" herein means that a particular element, feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. The appearances of the phrase "in one implementation" in various places in the specification are not necessarily all referring to the same implementation.
[0082] The expressions "coupled" and "connected," along with their derivatives, can be used herein to describe some implementations. For example, some implementations can be described using the term "coupled" to refer to two or more elements that are in direct physical or electrical contact. However, the term "coupled" can also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The implementations are not limited in this context.
[0083] Those of ordinary skill in the art will realize and understand that various modifications, changes, and combinations can be made with respect to the above-described implementations without departing from the scope of the invention, and that such modifications, changes, and combinations are to be viewed as being within the ambit of the present inventive concepts.
[0084] As used herein, the singular terms "a," "an," and "the" can include the plural reference unless the context clearly indicates otherwise. The description and the following claims should be understood to include one or at least one and plural references unless specified otherwise by the context. The use of the term "comprise" or "comprising" or "comprises" or "comprising" or "include" or "including" or "includes" or "including" or "has" or "having" or "have" or "having" or "contain" or "containing" or "contains" or "containing" is to be construed as non-exclusive, unless explicitly stated otherwise. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but can include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, "or" refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
[0085] The terms "approximately," "substantially," "essentially," "generally," and "about" as used herein are used to describe and account for small variations in, e.g., measurements, temperatures, etc. When used in connection with a description of an event or environment, these terms can refer to the exact occurrence of the event or environment as well as an event or environment that closely approximates the occurrence. For example, when used in connection with a numerical value, the terms can refer to a range of variation less than or equal to ±10% of that numerical value, such as less than or equal to ±5%, less than or equal to ±4%, less than or equal to ±3%, less than or equal to ±2%, less than or equal to ±1%, less than or equal to ±0.5%, less than or equal to ±0.1%, or less than or equal to ±0.05%. For example, two numerical values can be considered "essentially" the same if the difference between them is less than or equal to ±10% of the average of those values, such as less than or equal to ±5%, less than or equal to ±4%, less than or equal to ±3%, less than or equal to ±2%, less than or equal to ±1%, less than or equal to ±0.5%, less than or equal to ±0.1%, or less than or equal to ±0.05%.
[0086] While the application has been described with reference to particular examples, these examples are intended to be illustrative, not limiting. Various modifications, additions and / or deletions can be made to the disclosed embodiments without departing from the spirit and scope of the application.
[0087] The preceding description is given for the sake of clarity to non-essential elements of the application and that the modification within the scope of the application will be apparent to those skilled in the art from this disclosure.
Claims
1. A policy shaping system for aggregation networks, comprising: A deep group inspection (DPI) engine, communicatively connected via multiple data tunnels to multiple devices being transported by a vehicle, the DPI engine comprising: One or more processors; and One or more non-transitory tangible computer-readable storage media storing computer-executable instructions, which, when executed by the one or more processors, cause the DPI engine to: A first request to deliver first content to one or more of the plurality of devices being transported by the vehicle is received via a first data tunnel of the plurality of data tunnels; A second request to deliver second content to one or more of the plurality of devices being transported by the vehicle is received via a second data tunnel of the plurality of data tunnels; Determine (i) a first communication protocol corresponding to the first request and (ii) a second communication protocol corresponding to the second request; Determine (i) a first count corresponding to a first data size of the first content, and (ii) a second count corresponding to a second data size of the second content; and (i) A first strategy is applied to a first forward data stream to be sent to the vehicle based on the first communication protocol and the first count, wherein the first forward data stream includes the first content; and (ii) a second strategy is applied to a second forward data stream to be sent to the vehicle based on the second communication protocol and the second count, wherein the second forward data stream includes the second content.
2. The system as claimed in claim 1, wherein, The one or more non-transitory tangible computer-readable storage media store computer-executable instructions, which, when executed by the one or more processors, also cause the DPI engine to: The detection indicates a first condition where the first tunnel is not in operation or has been degraded. Receive an additional first request via a second data tunnel of the plurality of data tunnels to deliver additional first content to at least one of the first one or more devices of the plurality of devices being transported by the vehicle; In response to detecting the first situation, it is determined that the second communication protocol corresponds to the additional first request; The second count is adjusted based on the size of the additional first data based on the additional first content; as well as Based on the second communication protocol and the adjusted second count, the second strategy is applied to an additional first forward data stream to be sent to the vehicle, wherein the additional first forward data stream includes the additional first content.
3. The system as claimed in claim 1 or claim 2, wherein: (i) Based on a first tag included in the first ECN bit of the first request, determine that the first communication protocol corresponds to the first request, and (ii) Based on the second tag included in the second ECN bit of the second request, determine that the second communication protocol corresponds to the second request.
4. The system as described in any one of claims 1-3, wherein: (i) Based on a first tag included in the first IP options message of the first request, determine that the first communication protocol corresponds to the first request, and (ii) Based on the second tag included in the second IP option message of the second request, determine that the second communication protocol corresponds to the second request.
5. The system as described in any one of claims 1-4, wherein: (i) Based on the first VLAN classifier of the first request, determine that the first communication protocol corresponds to the first request, and (ii) Based on the second tag included in the second VLAN classifier of the second request, determine that the second communication protocol corresponds to the second request.
6. The system as described in any one of claims 1-5, wherein, The first data tunnel and the first communication protocol both correspond to the 4G protocol, and the second data tunnel and the second communication protocol both correspond to the 5G protocol.
7. The system of claim 6, wherein, The first throughput limit of the first strategy is lower than the second throughput limit of the second strategy.
8. The system as claimed in any one of claims 1-7, wherein, The application of the first or second strategy is also based on the determination of one or more network performance characteristics via the DPI engine, the one or more network performance characteristics corresponding to the use of the plurality of data tunnels that communicatively connect the DPI engine to the plurality of devices being transported by the vehicle.
9. A method for policy shaping in aggregation networks, comprising: At the Deep Packet Inspection (DPI) engine, a first request to deliver first content to one or more of the multiple devices being transported by the vehicle is received via a first data tunnel that is communicatively connected to multiple devices being transported by the vehicle. At the DPI engine, a second request to deliver second content to one or more of the plurality of devices being transported by the vehicle is received via a second data tunnel among the plurality of data tunnels; The DPI engine determines (i) a first communication protocol corresponding to the first request and (ii) a second communication protocol corresponding to the second request; The DPI engine determines (i) a first count corresponding to the first data size of the first content, and (ii) a second count corresponding to the second data size of the second content; as well as The DPI engine applies (i) a first strategy to a first forward data stream to be sent to the vehicle based on the first communication protocol and the first count, wherein the first forward data stream includes the first content, and applies (ii) a second strategy to a second forward data stream to be sent to the vehicle based on the second communication protocol and the second count, wherein the second forward data stream includes the second content.
10. The method of claim 9, further comprising: The DPI engine detects a first condition, which indicates that the first tunnel is not in operation or has been downgraded; At the DPI engine, an additional first request is received via a second data tunnel among the plurality of data tunnels to deliver additional first content to at least one of the first or more devices among the plurality of devices being transported by the vehicle. In response to detecting the first situation, the DPI engine determines that the second communication protocol corresponds to the additional first request; The DPI engine adjusts the second count based on the size of the additional first data of the additional first content; as well as The DPI engine applies the second strategy to an additional first forward data stream to be sent to the vehicle based on the second communication protocol and an adjusted second count, wherein the additional first forward data stream includes the additional first content.
11. The method of claim 9 or claim 10, wherein: (i) Based on a first tag included in the first ECN bit of the first request, determine that the first communication protocol corresponds to the first request, and (ii) Based on the second tag included in the second ECN bit of the second request, determine that the second communication protocol corresponds to the second request.
12. The method according to any one of claims 9-11, wherein: (i) Based on a first tag included in the first IP options message of the first request, determine that the first communication protocol corresponds to the first request, and (ii) Based on the second tag included in the second IP option message of the second request, determine that the second communication protocol corresponds to the second request.
13. The method according to any one of claims 9-12, wherein: (i) Based on the first VLAN classifier of the first request, determine that the first communication protocol corresponds to the first request, and (ii) Based on the second tag included in the second VLAN classifier of the second request, determine that the second communication protocol corresponds to the second request.
14. The method according to any one of claims 9-13, wherein, The first data tunnel and the first communication protocol both correspond to the 4G protocol, and the second data tunnel and the second communication protocol both correspond to the 5G protocol.
15. The method of claim 14, wherein, The first throughput limit of the first strategy is lower than the second throughput limit of the second strategy.
16. The method according to any one of claims 9-15, wherein, Applying the first strategy or the second strategy includes: The DPI engine determines one or more network performance characteristics, which correspond to the use of multiple data tunnels that communicatively connect the DPI engine to the multiple devices being transported by the vehicle; and The first strategy or the second strategy is applied based on one or more network performance characteristics.