-
2024-03-19
18/131,700
2023-04-06
US 11,937,120 B1
2024-03-19
-
-
Andre Tacdiran
Momentum IP | Marc Van Dyke
2043-04-06
A method of regulating transmission of data-packets from a wireless terminal device (WTD) and a WTD configured for the same are disclosed herein. In some embodiments, the WTD operates in a first or second or third mode. Specific properties of each of the modes according to various embodiments, as well as mode-transitionings therebetween according to different embodiments are described herein.
Get notified when new applications in this technology area are published.
H04W28/0268 » CPC main
Network traffic or resource management; Traffic management, e.g. flow control or congestion control using specific QoS parameters for wireless networks, e.g. QoS class identifier [QCI] or guaranteed bit rate [GBR]
H04L47/2416 » CPC further
Traffic control in data switching networks; Flow control; Congestion control; Traffic characterised by specific attributes, e.g. priority or QoS Real-time traffic
H04W28/0236 » CPC further
Network traffic or resource management; Traffic management, e.g. flow control or congestion control based on communication conditions radio quality, e.g. interference, losses or delay
H04W48/18 » CPC further
Access restriction ; Network selection; Access point selection Selecting a network or a communication service
H04W28/02 IPC
Network traffic or resource management Traffic management, e.g. flow control or congestion control
In order to stress that fact that no specific âuserâ (human or otherwise) is required, the present document will usually refer to âwireless terminal devicesâ WTD 150 rather than user equipment.
Different wireless terminal devices WTD 150 are enabled to wireless communicate using various wireless network protocols such as Wi-Fi, BlueTooth or even satellite internet.
It is known for Wireless Terminal Devices (WTD 150) to wirelessly connect to the Internet via a wireless Internet gateway (e.g. a wireless residential gateway and/or a suitable wireless device including a modem (e.g. a cable modem) connected to the internet and a router). The WTD 150 wirelessly (e.g. wirelessly and often locally) communicates with the wireless Internet gateway using a suitable protocol such as a IEEE 802 protocol and/or a Wifi protocol and/or a BlueTooth protocol (or any other suitable tethering protocol) and/or a cellular-internet protocol and/or a suitable satellite-internet protocol.
In theory, a WTD 150 device (e.g. equipped with multiple onboard modems) can connect connected to the Internet simultaneously via multiple internet gateways (i.e. multiplex for increased connectivity). In practice, almost all WTD 150 commercially available today and in the foreseeable future (e.g. for cost-considerations, simplicity of architecture and/or battery life) have a âat most one Internet Gateway at a time policyâ whereby the WTD 150 wirelessly connects to Internet via only a single/exclusive Wireless Internet-Access gateway (WIAG 100). This at most one Internet Gateway at a time policyâ is common and well-known in the art. As will be discussed below, when a WTD 150 is connected to the internet via a first WIAG 100, in order to subsequently connect to the internet via a second/different WIAG 100, it is required for the WTD 150 to disconnect from the first WIAG 100 and only afterwards can the WTD 150 connect to the second/different WIAG 100âi.e. âone at a time.â
FIG. 1B schematically illustrates a Wireless Internet-Access gateway (WIAG 100)âfor example, a Bluetooth gateway, a satellite internet gateway, or a Wifi internet gateway.
FIG. 1C illustrates a Wireless Terminal Device 150 in communication (e.g. one-way or two-way) with a âremote device 160 via WIAG 100 (which provides Internet access) via the Internet and the WIAG 100 (e.g. which functions as an internet gateway for WTD 150).
For the present document, the terms âlocalâ and âremoteâ are understood in the context of the field of networking technology, rather than based on geographical distance. Thus, while the geographical Bluetooth range is usually very limited, for other protocols (e.g. cellular or satellite), WTD 150 and WIAG 100 might be local to each other (e.g. even on the same LAN) even if they are separated by considerable distance including many kilometers or more.
In FIG. 1C, WTD 150 and WIAG 100 are in communication with each other (i.e. can exchange wireless communication) but not connected to each other.
In contrast, in FIG. 1D, WTD 150 and WIAG 100 are both in communication with each other and connected to each otherâtypically, the various wireless protocols provide the appropriate handshake for two devices to connect to each other. At this time (i.e. time of FIG. 1D), all communications (i.e. text communications or streaming communications such as video and audio streams) between WTD 150 and any remote device 160 via the Internet are via WIAG 100D which provides Internet access.
FIGS. 2A-2D, and 3E relates to a specific non-limiting prior art scenario where a WTD 150 is disposed in a physical location that is in local wireless-communication range (e.g. in âWIFI rangeâ or other tethering-range (e.g. Bluerooth range) or other wireless protocol) of a plurality of WIAGs 100A-100J. Each WIAG 100 is connected to the Internet via its respective Internet Service Provider (ISP) (e.g. broadband providers such as AT&T, Comcast, and Charter and Verizon).
FIGS. 2A-2B show the same configuration, where FIG. 2B is more schematic.
In the example of FIGS. 2A-2B, three different ISPs are represented by the 10 of WIAGs 100A-100Jâi.e. WIAGs 100A-100J can be divided into 3 groups based on Internet Service Provider (ISP):
It is common in the art for a WTD 150 to list (e.g. by SSIDâsee FIG. 2C) the various WIAGs that are in currently in communication (or historically in communication, depending on the specific OS or how its configured)âe.g. by SSID. FIG. 2D illustrate a non-limiting GUI listing of the various networks.
FIGS. 2B and 3A-3E show a prior art scenario related to âone WIAG at a time.â At time t0, WTD 150 is in communication with 10 WIAGs but connected to none of them (see FIG. 2B).
Later, at time t1, WTD 150 is connected to WIAG 100C (FIGS. 3B-3C) .
Later, at time t2, WTD 150 is in communication with 10 WIAGs but connected to none of them (see FIG. 3D).
Later, at time t3, WTD 150 is connected to WIAG 100JK (FIG. 3E). Detecting ISP of a given WIAGâIt is possible to detect the IP (e.g. IPc4 or IPc6) address of the first-hop router in the ISP's network. For IPv4, this should be provided by DHCP as a âdefault gatewayâ. For IPv6, this may be provided by Neighbor Discovery. It is possible to maintain (e.g. in memory of WTD 150) a table (or other data structure) mapping IP addresses (e.g. of the first-hope router) to the identity of the ISPâby measuring the address of the first-hop router, it is possible to detect the identify of the ISP which provides Internet-access to a given WIAG.
Reference is now made to FIGS. 3A-3E where, once again, Wireless Terminal Device (WTD) 150 is disposed in the vicinity of the plurality of WIAGs 100A-100J. This may represent a system where a user holding a WTD 150 is walking in an indoor shopping mall, and each store (or eatery) in this indoor mall has its own wireless local area network (WLAN) including a wireless router 100 connected to the Internet using its respective ISP. Thus, one example related to FIGS. 3A-3E, each of WIAGs 100A-100J resides in a different respective WLAN (wireless local area network).
FIG. 4 is a schematic block diagram an exemplary WTD 150âe.g. a mobile phone, a cellular phone, a tablet, a laptop, drone devices, wearable digital health devices, home-appliances (e.g. refrigerators, washing machines, dryers), fitness trackers, and security-cameras (e.g. CCV cameras)âeach having suitable wireless communications capability.
Any element of FIG. 4 may be implemented by any suitable combination of software, electronic circuitry (e.g. analog or digital circuitryâincluding but not limited to volatile or non-volatile memory, modems, microprocessors, CPU, GPU, FPGA) or firmware.
Illustrated in FIG. 4 are:
In the example of FIG. 4, WTD 150 provides at least 3 services (e.g. in one non-limiting example, provided by operating-system OS software executing on WTD 150).:
Any onboard device-service may, for example, by performed by any combination of execution of software (e.g. onboard operating system (OS) software) or by firmware or by hardware (FPGA).
In the 21th century two trends may be observedâwhile the population at large has become more dependent upon Internet access, the number of threats to such access, and even to portions of the Internet, is ever increasing. Such potential threats include but are not limited to the potential for war (e.g. nuclear war), potential for Climate Events (e.g. more powerful hurricanes) software bugs in critical Infrastructure, terrorism, and power outages (e.g. rolling brownouts or blackouts or sabotaged power-networks).
Such threats may be extremely localized (e.g. a power outage in a single buildingâa building configured as a Faraday cage) , or may have a wider geographical scope (e.g. affecting significant portions of a city or even metropolitan area or an entire state or states).
There is an ongoing need for apparatus, systems and methods for providing Wireless Terminal Devices 150 (e.g. cell phones, tablets, laptops) internet access, even when cell phone access (or satellite access) is not available, and when local WIAGs 100 lose (e.g. entirely, or to a great extent) access to the Internet.
The following US pre-grant publications are each incorporated herein by reference in their entireties:
Non-media-stream data (NMSD) or simply non-media-stream (NMS) refers to all data other than data of an audio stream or video stream. The term ânon-media-streamâ refers to data other than data of a media stream, and encompasses non-stream data. NMS could include text, a Microsoft ExcelÂź file, a pdf file, etc.
Embodiments of the invention relate to the using a WTD 150 to communicates (e.g. employing presently disclosed methods and/or systems) with the ââoutside worldâ (e.g. a remote device 160 via the Internet) in situations of âInternet outage.â
The present inventor has observed that even when there is a perceived âcomplete Internet outageâ conventionally wiping out the ability to access the Internet, it is possible to utility this âresidual Internet access,â even (i.e. under these conditions) to provide different (i) non-media-stream NMS data (see the end of the background section for the definition of NMS data), (ii) audio and (iii) video channels between WTD 150 and one or more remote devices 160 disposed âremotelyâ via the Internet.
Switching between these channels entails disconnecting from one WIAG then subsequently connecting the same WIAG or (more typically) to another WIAG.
It is possible to âcycle throughâ these channels at a certain frequency (e.g. through all channels within a time period whose duration is at most 5 minutes or 3 minutes or 2 minutes or shorter) to provide âvirtual simultaneous channelsâ segregated by (i) NMS data; (ii) audio data; and (iii) video data.
For the present document, audio refers to an audio stream and video refers to a video stream
In one example of âresidual Internet access,â different WIAGs connect to the internet via different cellular networks (e.g. GSM). During a âdisaster event,â most but not all cellular towers go down. In this situation, the cellular network would not have the capacity to handle its load, and the load might be increased as more and more people attempt to communicate during a âstressful time.â For example, the amount of multiplexing required might skyrocket and the network might âcrashâ or nearly crash. Nevertheless, some capacity might remain.
In another example, there is intermittent GSM access between a WIAG and a cellular tower(s) due to manmade or nature factors
In this situation (i.e. where there is only âresidual Internet access collectively provided by the WIAGs), the portions of any network with such residual capacity (and the amount of capacity) might fluctuate within a network (and/or between networks) over time. Thus, in one example, between 2 PM and 2:03 PM, the Verizon network is capable of providing more bandwidth and/or lower bandwidth than the AT&T network, while between 2:05 PM and 2:15 PM the AT&T network is capable of providing more bandwidth and/or lower bandwidth than the Verizon network
In another example, the QOS available for/provided by a first WIAG on the AT&T network is better than that of a second WIAG on the AT&T network between 4 PM and 4:05 PM, while the situation is reversed between 5 PM and 5:45 PM.
The present inventors now disclose that ânot all packets are created equallyâ and is useful to segregate as follows: (i) packets derived from NMS data are sent (e.g. exclusively) via a first WIAG; (ii) packets derived from audio data are sent (e.g. exclusively) via a second WIAG; and (iii) packets derived from video data are sent (e.g. exclusively) via a third WIAG.
Even though this may impose a switching cost (i.e. disconnecting from a WIAG and connecting to another WIAG including the handshake overhead, etc) and may delay packets (i.e. there may be a need to âartificiallyâ hold back packets that would have otherwise been sent), the present inventors believe that in specific circumstances (e.g. related to Internet outages) this gives a better overall QOS.
For example, various candidate WIAGs are probed and evaluated (e.g. scored and/or rated) in terms of media-type specific ability to provide QOSâi.e. a good QOS for text data (e.g. low ping) may not be the same as a QOS for audio stream data (e.g. based on retaining packet-orderâe.g. measured by jitterbuffer).
The present inventors have analyzed commercially available WTDs and operating systems OS thereof and have noticed that: (i) even if the generated packets are encrypted, it is possible to eavesdrop (even on secure OSs) on packets generated by an onboard packet-generation service and to detect the existence of individual packets, detect properties thereof, and to use this to advantage to classify a packet (even encrypted) as being derived from NMS or audio or video.
Furthermore, it is possible to override (i.e. even introducing delay)the packet-sending service, and thus to segregate between packets derived from different data/media types to provide: (i) a first mode where only packets derived from NMS are sentâand these packets may be sent via a WIAD 100 which is/was âcustom-analyzedâ based on ability to specifically provide QOS for NMS; (ii) a second mode where only packets derived from audio are sentâand these packets may be sent via a WIAD 100 which is/was âcustom-analyzedâ based on ability to specifically provide QOS for audio; (iii) a third mode where only packets derived from video are sentâand these packets may be sent via a WIAD 100 which is/was âcustom-analyzedâ based on ability to specifically provide QOS for video.
A method of operating a wireless terminal device (WTD) which enforces an âat most one Internet Gateway at a time policyâ such that the WTD is wirelessly connected to at most one Wireless Internet-Access gateway at a time, terminal device (WTD) is configured to provide at least the following onboard device-services: (i) an encode-into-packet service; and (ii) a send-packet(s)-to-remote-destination service, the wireless terminal device (WTD) being disposed for wireless communication with a plurality of candidate Wireless Internet-Access gateways (WIAGs), the method comprising:
a. eavesdropping on the packets which are encoded by the WTD in the context of the encode-into-packet service provided by the WTD;
b. respectively classifying each eavesdropped packet as one of: (i) a packet encoding audio; (ii) a packet encoding video; and (iii) a packet encoding non-media-stream (NMS) data;
c. probing each of the candidate Wireless Internet-Access gateways (WIAGs) of a plurality of candidate Wireless Internet-Access gateways (WIAGs), to respectively measure a set of internet connective parameters for each candidate Internet gateway;
d. based on analysis of internet connectivity parameters, and in accordance with optimizing QOS, designating a first of the candidate WIAGs as NMS-preferred, a second of the candidate WIAGs as audio-preferred, and a third of the candidate WIAGs as video-preferred, the first, second and third WIAGs being distinct from each other;
e. causing the wireless terminal device (WTD) to operate either in a first mode, a second mode or a third mode, one mode exclusively at a time, such that:
(i) when the wireless terminal device (WTD) is in the first mode, the wireless terminal device (WTD) is exclusively wirelessly connected to the NMS-preferred WIAG;
(ii) when the wireless terminal device (WTD) is in the first mode, the send-packet(s)-to-remote-destination service is partially overridden so as to: (A) block-and-cache outgoing packets (e.g. block and cache all such packets) that were classified as encoding audio; (B) block-and-cache outgoing packets (e.g. block and cache all such packets) that were classified as encoding video; and (C) allow outgoing packets that were classified as encoding non-media-stream (NMS) data to be wirelessly transmitted, to the NMS preferred WIAG in the context of the send-packet(s)-to-remote-destination service;
(iii) when the wireless terminal device (WTD) is in the second mode, the wireless terminal device (WTD) is exclusively wirelessly connected to the audio-preferred WIAG;
(iv) when the wireless terminal device (WTD) is in the second mode, the send-packet(s)-to-remote-destination service is partially overridden so as to: (A) block-and-cache outgoing packets (e.g. block and cache all such packets) that were classified as encoding NMS data; (B) block-and-cache outgoing packets (e.g. block and cache all such packets) that were classified as encoding video; and (C) allow outgoing packets that were classified as encoding audio to be wirelessly transmitted, to the audio preferred WIAG in the context of the send-packet(s)-to-remote-destination service;
(v) when the wireless terminal device (WTD) is in the third mode, the wireless terminal device (WTD) is exclusively wirelessly connected to the video-preferred WIAG; and
(vi) when the wireless terminal device (WTD) is in the third mode, the send-packet(s)-to-remote-destination service is partially overridden so as to: (A) block-and-cache outgoing packets (e.g. block and cache all such packets) that were classified as encoding NMS data; (B) block-and-cache outgoing packets (e.g. block and cache all such packets) that were classified as encoding audio; and (C) allow outgoing packets that were classified as encoding video to be wirelessly transmitted, to the video preferred WIAG gateway in the context of the send-packet(s)-to-remote-destination service,
In some embodiments, the method further requires the wireless terminal device (WTD) to operate in each of the first, second and third modes, sequentially in any order and one at a time, and wherein steps c and d are performed more than once to respectively change identifies of each of the NMS-preferred, audio-preferred and video-preferred WIAGs.
In some embodiments, mode transition requires disconnect from the old gateway followed by connect to the new gateway. For example, a mode-set may be defined as {first mode, second mode, third mode} and every transition from one member of the mode-set to another member of the mode-set requires disconnecting from an earlier-time WIAG and subsequently connecting to a later-time WIAG, and wherein: (i) if the transition is away from the first mode the earlier-time WIAG is the NSM-preferred WIAG, (ii) if the transition is away from the second mode the earlier-time WIAG is the audio-preferred WIAG, (iii) if the transition is away from the third mode the earlier-time WIAG is the video-preferred WIAG, (iv) if the transition is into the first mode the later-time WIAG is the NSM-preferred WIAG, (v) if the transition is into the second mode the later-time WIAG is the audio-preferred WIAG, (vi) if the transition is into the third mode the later-time WIAG is the video-preferred WIAG.
In some embodiments, carried out to perform at least one of the following, at least once: (i) the WTD is operating in the first mode, at least one packet-event selected from a packet-event-set named 1-to-2_PACKET_EVENT_SET triggers a first-to-second-mode mode-transition which requires disconnecting from the NSM-preferred WIAG and then connecting to the audio-preferred WIAG, 1-to-2_PACKET_EVENT_SET having 3 members and being defined as follows: {a detected generation of audio packets, a predicted generation of audio packets, an increase in a ratio between: (A) an aggregate packet-payload of encoded but unsent audio packets; and (B) an aggregate packet-payload of encoded but unsent NSM packets (e.g. if we are âdwellingâ in the first mode and there is an audio burst (e.g. a sound on the usually-quiet microphone), we disconnect and connect to the audio-designated gateway) (ii) the WTD is operating in the first mode, at least one packet-event selected from a packet-event-set named 1-to-3_PACKET_EVENT_SET triggers a first-to-third-mode mode-transition which requires disconnecting from the NSM-preferred WIAG and then connecting to the video-preferred WIAG, 1-to-3_PACKET_EVENT_SET having 3 members and being defined as follows: {a detected generation of video packets, a predicted generation of video packets, an increase in a ratio between: (A) an aggregate packet-payload of encoded but unsent video packets; and (B) an aggregate packet-payload of encoded but unsent NSM packets (e.g. if we are âdwellingâ in the first mode and there is an video burst (e.g. security camera detect motion), we disconnect and connect to the video-designated gateway)
In some embodiments, carried out to perform the following, at least once: the WTD is operating in the second mode, at least one packet-event selected a packet-event-set named 2-to-3_PACKET_EVENT_SET triggers a second-to-third-mode mode-transition which requires disconnecting from the audio-preferred WIAG and then connecting to the video-preferred WIAG, 2-to-3_PACKET_EVENT_SET having 3 members and being defined as follows: {a detected generation of video packets, a predicted generation of video packets, an increase in a ratio between: (A) an aggregate packet-payload of encoded but unsent video packets; and (B) an aggregate packet-payload of encoded but unsent audio packets. For example, if we are âdwellingâ in the first mode and there is an video burst (e.g. security camera detect motion), we disconnect and connect to the video-designated gateway.
(i) an earlier-time mode-transitioning into the first mode and subsequently a later-time mode-transitioning into the first mode such the NSM-preferred WIAG at a time of the earlier mode-transitioning into the first mode is different from the NSM-preferred WIAG at a time of the later mode-transitioning into the first mode;
(ii) an earlier-time mode-transitioning into the second mode and subsequently a later-time mode-transitioning into the second mode such the audio-preferred WIAG at a time of the earlier mode-transitioning into the second mode is different from the audio-preferred WIAG at a time of the later mode-transitioning into the second mode; and
(iii) an earlier-time mode-transitioning into the third mode and subsequently a later-time mode-transitioning into the third mode such the video-preferred WIAG at a time of the earlier mode-transitioning into the third mode is different from the video-preferred WIAG at a time of the later mode-transitioning into the third mode.
prior to performance of step (e), operating the WTD is a prior mode that is (i) not a multi-cast mode and (ii) not the first mode and (iii) not the second mode and (iv) not the third mode.
a processor; and
a non-transitory computer readable storage medium for instructions execution by the processor,
the non-transitory computer readable storage medium having stored:
A method of operating a wireless terminal device (WTD) (e.g. 150) is disclosed herein. The WTD may enforce an âat most one Internet Gateway at a time policyâ such that the WTD is wirelessly connected to (e.g. Wifi-connected or Bluetooth-connected or Satellite connected) with at most one Wireless Internet-Access gateway (WIAG 150) at a time via which (i.e. via this at most one WIAG) the WTD âconnects to the Internet.â
For the present document, non-media-stream data (NMSD) or simply non-media-stream (NMS) refers to all data other than data of an audio stream or video stream. The term ânon-media-streamâ refers to data other than data of a media stream, and encompasses non-stream data. NMS could include text, a Microsoft ExcelÂź file, a pdf file, etc.
In embodiments of the invention, the wireless terminal device (WTD) is configured to provide at least the following onboard device-services: (i) an encode-into-packet service (see âService Câ of FIG. 4) and (ii) a send-packet(s)-to-remote-destination service (see âService B âof FIG. 4). Any onboard device-service may, for example, by performed by any combination of execution of software (e.g. onboard operating system (OS) software) or by firmware or by hardware (FPGA).
While the method is performed, the wireless terminal device (WTD) is disposed for wireless communication with a plurality of candidate Wireless Internet-Access gateways (WIAGs). The WTD may, during the performance of the network, connect to and disconnect from the set of plurality of candidate Wireless Internet-Access gateways (WIAGs) {WIAG1, WIAG2 . . . LWA-WIAGN} (Nâ„3) which are disposed to be in communication with the WTD. In embodiments of the invention, the method comprises:
a. eavesdropping on the packets (e.g. inspecting the packet contents and/or descriptive data (e.g. metadata) about the packet) which are encoded by the WTD in the context of the encode-into-packet service provided by the WTD;
b. respectively classifying each eavesdropped packet as one of: (i) a packet encoding audio (i.e. audio-stream data); (ii) a packet encoding video (i.e. video-stream data); and (iii) a packet encoding non-media-stream data (NMSDâi.e. data other than audio-stream or media-stream data) such as text;
c. probing each of the candidate Wireless Internet-Access gateways (WIAGs) of a plurality of candidate Wireless Internet-Access gateways (WIAGs), to respectively measure a set of internet connective parameters for each candidate Internet gateway;
d. based on analysis of internet connectivity parameters, and in accordance with optimizing QOS (e.g. QOS on an absolute level or relative QOS), designating a first of the candidate WIAGs as NMSD-preferred, a second of the candidate WIAGs as audio-preferred, and a third of the candidate WIAGs as video-preferred, the first, second and third WIAGs being distinct from each other;
e. causing the wireless terminal device (WTD) to operate either in a first mode, a second mode or a third mode, one mode exclusively at a time, such that:
wherein the method further requires the wireless terminal device (WTD) to operate in each of the first, second and third modes, sequentially and one at a time, and wherein steps c and d are performed more than once to respectively change identifies of each of the NMS-preferred, audio-preferred and video-preferred WIAGs.
FIG. 5 shows a wireless terminal device (WTD) and elements thereof and/or in accordance with some embodiments of the invention.
In one non-limiting example, one or more (e.g. most or all) additional elements present in FIG. 5 but not present in FIG. 4 are installed as part of a software development kit (SDK)âe.g. allowable under iPhoneÂź or Android Âź envinroments.
For example, FIG. 4 illustrated Service A, Service B and Service C. Element(s) of FIG. 5 may either: (i) feed input data to one or more of the services; and (ii) eavesdrop on (e.g. inspect) output of one of more of the services (e.g. inspect actual packets or properties thereof).
Any element of FIG. 5 may be implemented by any suitable combination of software, electronic circuitry (e.g. analog or digital circuitryâincluding but not limited to volatile or non-volatile memory, modems, microprocessors, CPU, GPU, FPGA) or firmware.
In addition to the elements of FIG. 4, FIG. 5 shows the following elements related to packet inspection and/or analysis:
(i) Packet eavesdropper 430âthis may inspect content of and/or data about internet packets generated on WTD 150âe.g. inspect their the packet's content (e.g. for unencrypted packets) and/or data about the packets (e.g. their size, the time the packets are generated, header data, identifier data for each packet);
(ii) Packet classifier 440âit is possible to classify (e.g. on a per-packet-ID basis) packets (e.g. not necessarily ever packet ever generated on 150) as one of: A. packet derived from NMS data such as text; B. packet derived from audio; C. packet derived from video. This may be performed, e.g. according to one or more of an identify of the application which generated the packet (e.g. a camera app which would generate video), a CPU usage at the time the packets was generated (e.g. if a camera app uses a lot of CPU, this is likely to be the culprit), packet size, packet content (e.g. for unencrypted data). For example, a data structure such a table mapping packet identifier and packet type may be stored on 150 (e.g. in volatile and/or non-volatile memory thereof).
In embodiments of the invention, the WTD may provide 3 operating modes:
(i) A first operating mode for sending NMS packets (e.g. only NMS-classified packets are permitted to be wirelessly sent and/or the sending of non-NMS-classified packets are intentionally delayed);
(ii) A second operating mode for sending audio packets (e.g. only audio-classified packets are permitted to be wirelessly sent and/or the sending of non-audio-classified packets are intentionally delayed);
(iii) A third operating mode for sending video packets (e.g. only video-classified packets are permitted to be wirelessly sent and/or the sending of non-video-classified packets are intentionally delayed);
Towards this end, a record may be kept of the âpreferredâ WIAG 100 for the first, second and third modesâfor example, in preferred WIAD data storage 530 (e.g. volatile and/or non-volatile memory) showing: (i) NMSP_WIAG value 492âe.g. the value may be the identifier (e.g. IP address or in any other form) of the WIAG 100 which is âpreferredâ for operating when in the first mode (NMSP is an abbreviation of non-media-stream preferred); (ii) AP_WIAG value 494âe.g. the identifier (e.g. IP address or in any other form) of the WIAG 100 which is âpreferredâ for operating when in the second mode (AP is an abbreviation of audio preferred); and (iii) VP_WIAG value 496âe.g. the identifier (e.g. IP address or in any other form) of the WIAG 100 which is âpreferredâ for operating when in the third mode (VP is an abbreviation of video preferred).
These values may be updated over timeâe.g. the QOS or related abilities of WIAGs in communication with WTD 150 may change, various WIAGs may go on or off-line, etc.
In order to compute or update NMSP_WIAG value 492 and/or AP_WIAG value 494 and/or AP_WIAG value 494, one or more of the following elements may be used:
(i) Candidate WIAG prober 430âe.g. instructing 310 to connect to (and then disconnect from) different candidate WIAGsâe.g. for the purpose of measuring QOS-related parametersâe.g. this may include connect/disconnect instructions, identifier (e.g. IP address) of different candidate WIAGs, and the like. Candidate WIAG prober may also send out probe dataâe.g. a âpingâ or âjitterbufferâ or âtracerouteâ command or requestâe.g. via 310;
(ii) Candidate WIAGs visitation-manager 540âe.g. a list (or other data structure) of various candidate WIAGs may be kept (e.g. along with probe data and/or elapsed time since each WIAG was âvisited.ââfor the present disclosure, to âvisitâ WIAG is to connect thereto and to probe it (e.g. obtain internet connectivity data therefrom). Candidate WIAGs visitation-manager 540 may decide which candidate WIAG to visit next, or may generate a command to interrupt transmission of audio and/or video and/or NMS originated packets for the purposes of probing (e.g. disconnecting from the current WIAG and connecting to a new one) a candidate WIAG;
(iii) Candidate WIAS-Set relative-0QOS analyzer 540âbased on the probing data, the QOS (absolute QOS or âspecific-function-relatedâ QOSâ(A)_ the relative ability for transmitting NMS relative to audio and/or video and/or (B) the relative ability for transmitting audio relative to NMR and/or video; and/or (C) the relative ability for transmitting video relative to NMS and/or audio.
For example, in accordance with the output of 540, the contents of preferred WIAD data storage 530 may be updated. For example, if probing data indicated that a specific candidate WIAG is more suitable for NMS than the current preferred NSM-specific WIAG (i.e. whose value is in 492) then the value of 492 may be updated. Similar for 492 or 494.
Embodiments of the present invention relate methods for selectively blocking and/or delaying packets of the âwrong typeâ that does not match a current mode (e.g. stored in 530) while allowing packets of the âright typeâ to be wirelessly transmitted outside of WTD 150.
Wrong type (not matching current mode)âif we are in the first mode, audio and video packets are the wrong type. If we are in the second mode, NMR and video packets are the wrong type. If we are in the third mode, NMS and audio packets are the wrong type.
Right type (matching current mode)âif we are in the first mode, NMS packets are the right type. If we are in the second mode, audio packets are the right type. If we are in the third mode, video packets are the right type.
In non-limiting embodiments, one or more of (any combination of) the following elements are provided:
(i) Packet-send overrider 420. For example, to delay the sending of packets which otherwise would have been sent (e.g. wrong type packets which do not match the current mode). In one non-limiting example, the operating system may maintain a queue with packet ID and timestamp and transmit packets on a FIFO basis. In some embodiments, Packet-send overrider 420 accesses OS data structure to âincorrectlyâ change a timestamp (e.g. to change the value to a time in the future) to cause the OS to not transmit a blocked packet. Subsequently, if there is a need to transmit the blocked packet (e.g. after a mode-transition), it is possible to again change the timestamp of the previously-blocked packet;
(ii) Blocked and/or packet buffer 450âmay be part of the OS's packet buffer or a separate buffer in any combination of volatile and/or non-volatile memory. May also include a list of blocked packets and their clarification type;
(iii) Packet-buffer content analyzer 480âe.g. in some embodiments, the backlog of blocked packets may be analyzedâe.g. on a per-packet-type basisâe.g. the number and/or size and/or type of blocked packets. For example, it may be possible to perform a mode-transition according to the contents of the blocked-packet buffer 450âe.g. if the ratio of the aggregate size of blocked video packets to the ratio of the aggregate size of blocked audio packets increases or exceeds a threshold, this may trigger a transition from the third to the second mode;
(iv) Blocked and/or delayed packet dispatcher 460âto cause previously blocked packets to now be transmitted from the WTD 150. For example, an audio packet blocked when WTD 150 was in the third mode, gets unblocked/dispatched upon transitioning into the second mode. E.g. the time-stamp of an OS packet-queue might be updated from a âfuture timeâ to a current time, causing the OS to transmitted it.
(v) (e.g. NMS-send vs. Audio-send vs. Video-send) Mode Manager 490âfor causing the WTD 150 to stay in a current mode and/or instructing a mode-transition
For the present disclosure, âblocking a packetâ while the WTD is in a particular âcurrentâ mode means preventing the packet from being transmitted out of the WTD as long as the WTD remains in that particular âcurrentâ mode and as long it there is no mode transition out of that particular âcurrentâ mode.
The term âcachingâ in the context of âblocking and cachingâ does not require the element to be âexplicitlyâ stored (e.g. copied) in any particular storage though this is one possibility. Thus, we note that the term âcachingâ of âblocking and cachingâ means ensuring that the packet stays stored (e.g. even in a âpre-existingâ volatile and/or non-volatile storage used by the OS and/or in an OS data structure) until a later time when the packet is eventually (i.e. after mode-transition out of the current mode) wirelessly transmitted from the WTD.
An âoutgoing packetâ is any packet which explicitly or implicitly is designated to be transmitted out of the WTD.
As stated above, and without limitation, embodiments of the invention may relate to situations (e.g. emergency situations) where despite the overhead (and anticipated reduction of QOS) of switching between WIAGs, it may be optimal to switch there-between in the specific manner as disclosed herein.
According to embodiments of the invention, instead of relying only on a âstatic connectionâ to the internet via a pre-set WIAG (as is done in the prior art today and is ubiquitous), it is possible to repeatedly to:
I. repeatedly âpollâ and/or measure properties of a plurality of WIAGs to measure performance and/or Internet connectivity parameters of each WIAG (and/or of associated ISPs) (see step S601 of FIG. 6)âthis may be performed by any combination of FIG. 5 elements 410, 510, 430;
II. based on the results of the polling and/or measuring, score (e.g. by element 540) each of the plurality of WIAGs based on their predicted ability to successfully carry Internet communications and/or specify types of communications (e.g. score on a per-type basisâwhere every given WIAG's respective suitability for NMS, video streaming and audio streaming are each respectively scored) (e.g. see step S605);
III. based on the scoring and/or clustering and/or rating, route packets via different content-specific (e.g. NMS vs. audio vs. video)âthe routing may be enforced by the modes and mode-transitions therebetween (e.g. see step S701 of FIG. 6)âe.g. performed by 440, 460, 480 and/or 490).
FIGS. 7A-7B showing steps S621, S625, S629, S641, S645 are related methods e.g. for obtaining data for determining an operating mode.
The content of e.g. 530 may be update in step S709 of FIG. 6 or step S629 of FIG. 7A.
The âswitching of WIAGâ and/or re-rerouting may be done based on scoring of WIAG 100 and/or classification of an WIAG as most suitable for NMS or video stream or audio stream (e.g. responsively in response to update scoring and/or classifying. Input data for scoring and/or classifying and/or clustering WIAGs (e.g. see step S605 of FIG. 6 and element 540 of FIG. 5)â
FIG. 8A shows a method including steps S821, S825, S827 and S829 for enforcing the first mode.
FIG. 8B shows a method including steps S821, S825, S827 and S829 for enforcing the second mode.
FIG. 8C shows a method including steps S821, S825, S827 and S829 for enforcing the third mode.
FIG. 9 showing steps S861, S863, and S865 relate to operating in the different modes and transitions therebetween.
As shown in FIGS. 10 (including steps S871 and S875) and 11B, mode transitions can be performedâe.g. in response to different triggers.
FIGS. 12, 13A-13B and 14A-14B show different examplesâe.g. at least one example related to maintaining virtual simultaneous channels.
1. A method of operating a wireless terminal device (WTD) which enforces an âat most one Internet Gateway at a time policyâ such that the WTD is wirelessly connected to at most one Wireless Internet-Access gateway at a time, terminal device (WTD) is configured to provide at least the following onboard device-services: (i) an encode-into-packet service; and (ii) a send-packet(s)-to-remote-destination service, the wireless terminal device (WTD) being disposed for wireless communication with a plurality of candidate Wireless Internet-Access gateways (WIAGs), the method comprising:
a. eavesdropping on the packets which are encoded by the WTD in the context of the encode-into-packet service provided by the WTD;
b. respectively classifying each eavesdropped packet as one of: (i) a packet encoding audio; (ii) a packet encoding video; and (iii) a packet encoding non-media-stream (NMS) data;
c. probing each of the candidate Wireless Internet-Access gateways (WIAGs) of a plurality of candidate Wireless Internet-Access gateways (WIAGs), to respectively measure a set of internet connective parameters for each candidate Internet gateway;
d. based on analysis of internet connectivity parameters, and in accordance with optimizing QOS, designating a first of the candidate WIAGs as NMS-preferred, a second of the candidate WIAGs as audio-preferred, and a third of the candidate WIAGs as video-preferred, the first, second and third WIAGs being distinct from each other;
e. causing the wireless terminal device (WTD) to operate either in a first mode, a second mode or a third mode, one mode exclusively at a time, such that:
(i) when the wireless terminal device (WTD) is in the first mode, the wireless terminal device (WTD) is exclusively wirelessly connected to the NMS-preferred WIAG;
(ii) when the wireless terminal device (WTD) is in the first mode, the send-packet(s)-to-remote-destination service is partially overridden so as to: (A) block-and-cache outgoing packets that were classified as encoding audio; (B) block-and-cache outgoing packets that were classified as encoding video; and (C) allow outgoing packets that were classified as encoding non-media-stream (NMS) data to be wirelessly transmitted, to the NMS preferred WIAG in the context of the send-packet(s)-to-remote-destination service;
(iii) when the wireless terminal device (WTD) is in the second mode, the wireless terminal device (WTD) is exclusively wirelessly connected to the audio-preferred WIAG;
(iv) when the wireless terminal device (WTD) is in the second mode, the send-packet(s)-to-remote-destination service is partially overridden so as to: (A) block-and-cache outgoing packets that were classified as encoding NMS data; (B) block-and-cache outgoing packets that were classified as encoding video; and (C) allow outgoing packets that were classified as encoding audio to be wirelessly transmitted, to the audio preferred WIAG in the context of the send-packet(s)-to-remote-destination service;
(v) when the wireless terminal device (WTD) is in the third mode, the wireless terminal device (WTD) is exclusively wirelessly connected to the video-preferred WIAG; and
(v) when the wireless terminal device (WTD) is in the third mode, the send-packet(s)-to-remote-destination service is partially overridden so as to: (A) block-and-cache outgoing packets that were classified as encoding NMS data; (B) block-and-cache outgoing packets that were classified as encoding audio; and (C) allow outgoing packets that were classified as encoding video to be wirelessly transmitted, to the video preferred WIAG gateway in the context of the send-packet(s)-to-remote-destination service,
wherein the method further requires the wireless terminal device (WTD) to operate in each of the first, second and third modes, sequentially in any order and one at a time, and wherein steps c and d are performed multiple times so that an identity of the NMS-preferred WIAG is changed at least once, an identity of the audio-preferred WIAG is changed at least once, and
an identity of the video-preferred WIAG is changed at least once.
2. The method of claim 1 wherein a mode-set is defined as {first mode, second mode, third mode} and every transition from one member of the mode-set to another member of the mode-set requires disconnecting from an earlier-time WIAG and subsequently connecting to a later-time WIAG, and wherein: (i) if the transition is away from the first mode the earlier-time WIAG is the NSM-preferred WIAG, (ii) if the transition is away from the second mode the earlier-time WIAG is the audio-preferred WIAG, (iii) if the transition is away from the third mode the earlier-time WIAG is the video-preferred WIAG, (iv) if the transition is into the first mode the later-time WIAG is the NSM-preferred WIAG, (v) if the transition is into the second mode the later-time WIAG is the audio-preferred WIAG, (vi) if the transition is into the third mode the later-time WIAG is the video-preferred WIAG.
3. The method of claim 1 performed so that, during a period of time when the WTD is operating in a given mode selected from the group consisting of the first mode, the second mode and the third mode, the WTD operates such that:
A. newer internet packets of a media-type which matches the given mode are transmitted out of the WTD before older internet packets of a media-type which does not match the given mode, and
B. the older internet packets are held until the WTD transitions out of the given mode.
4. The method of claim 1 wherein one Internet connectivity parameters is âpingâ which is used to measure latency, and a lower ping value increases a relative suitability of a candidate WIAG as NMS-preferred relative to a suitability of the candidate WIAG as audio or video-preferred.
5. The method of claim 1 wherein one Internet connectivity parameters is âjitterbufferâ which is used to measure the ability to retain order of remotely-transmitted power, and a better packet-order-retaining ability a relative suitability of a candidate WIAG as audio-preferred relative to a suitability of the candidate WIAG as NMS or video-preferred.
6. The method of claim 1 wherein the classified packets are unencrypted wherein and content of the unencrypted and classified packets is inspected as an input to the classifying.
7. The method of claim 1 wherein the classified packets are encrypted, and wherein content of the encrypted and classified packets is not inspected as an input to the classifying.
8. The method of claim 1 wherein all of the first, second and third modes are multicast modes where packets transmitted from the WTD while in the first or second or third modes are multi-cast transmitted, the method further comprising:
prior to performance of step (e), operating the WTD in a prior mode that is (i) not a multi-cast mode and (ii) not the first mode and (iii) not the second mode and (iv) not the third mode.
9. The method of claim 8 wherein, an exiting of the prior mode to transition therefrom into the first or second or third mode is contingent upon a QOS-parameter of the WTD while in the prior mode being below a threshold level.
10. The method of claim 9 wherein the exiting of the prior mode so as to transition therefrom into the first or second or third mode is contingent upon detection of WIAG disconnect event that occurs while in the prior mode.
11. The method of claim 9 wherein the exiting of the prior mode so as to transition therefrom into the first or second or third mode is contingent upon a QOS-parameter of the WTD while in the prior mode being below a threshold level.
12. A wireless terminal device (WTD) configured to enforce an âat most one Internet Gateway at a time policyâ such that the WTD is wirelessly connected to at most one Wireless Internet-Access gateway at a time, terminal device (WTD) is configured to provide at least the following onboard device-services: (i) an encode-into-packet service; and (ii) a send-packet(s)-to-remote-destination service, the wireless terminal device (WTD) being disposed for wireless communication with a plurality of candidate Wireless Internet-Access gateways (WIAGs), the WTD comprising:
a processor; and
a non-transitory computer readable storage medium for instructions execution by the processor, the non-transitory computer readable storage medium having stored:
a. instructions, that when executed by the processor, eavesdrop on the packets which are encoded by the WTD in the context of the encode-into-packet service provided by the WTD;
b. instructions, that when executed by the processor, respectively classify each eavesdropped packet as one of: (i) a packet encoding audio; (ii) a packet encoding video; and (iii) a packet encoding non-media-stream (NMS) data;
c. instructions, that when executed by the processor, probe each of the candidate Wireless Internet-Access gateways (WIAGs) of a plurality of candidate Wireless Internet-Access gateways (WIAGs), to respectively measure a set of internet connective parameters for each candidate Internet gateway;
d. instructions, that when executed by the processor, designate, based on analysis of internet connectivity parameters, and in accordance with optimizing QOS, a first of the candidate WIAGs as NMS-preferred, a second of the candidate WIAGs as audio-preferred, and a third of the candidate WIAGs as video-preferred, the first, second and third WIAGs being distinct from each other;
e. instructions, that when executed by the processor, cause the wireless terminal device (WTD) to operate either in a first mode, a second mode or a third mode, one mode exclusively at a time, such that:
(i) when the wireless terminal device (WTD) is in the first mode, the wireless terminal device (WTD) is exclusively wirelessly connected to the NMS-preferred WIAG;
(ii) when the wireless terminal device (WTD) is in the first mode, the send-packet(s)-to-remote-destination service is partially overridden so as to: (A) block-and-cache outgoing packets that were classified as encoding audio; (B) block-and-cache outgoing packets that were classified as encoding video; and (C) allow outgoing packets that were classified as encoding non-media-stream (NMS) data to be wirelessly transmitted, to the NMS preferred WIAG in the context of the send-packet(s)-to-remote-destination service;
(iii) when the wireless terminal device (WTD) is in the second mode, the wireless terminal device (WTD) is exclusively wirelessly connected to the audio-preferred WIAG;
(iv) when the wireless terminal device (WTD) is in the second mode, the send-packet(s)-to-remote-destination service is partially overridden so as to: (A) block-and-cache outgoing packets that were classified as encoding NMS data; (B) block-and-cache outgoing packets that were classified as encoding video; and (C) allow outgoing packets that were classified as encoding audio to be wirelessly transmitted, to the audio preferred WIAG in the context of the send-packet(s)-to-remote-destination service;
(v) when the wireless terminal device (WTD) is in the third mode, the wireless terminal device (WTD) is exclusively wirelessly connected to the video-preferred WIAG; and
(v) when the wireless terminal device (WTD) is in the third mode, the send-packet(s)-to-remote-destination service is partially overridden so as to: (A) block-and-cache outgoing packets that were classified as encoding NMS data; (B) block-and-cache outgoing packets that were classified as encoding audio; and (C) allow outgoing packets that were classified as encoding video to be wirelessly transmitted, to the video preferred WIAG gateway in the context of the send-packet(s)-to-remote-destination service,
wherein the instructions, that when executed by the processor, require the wireless terminal device (WTD) to operate in each of the first, second and third modes, sequentially in any order and one at a time such that the probing and the designating are performed more than once so that an identity of the NMS-preferred WIAG is changed at least once, an identity the audio-preferred WIAG is changed at least once, and an identity of the video-preferred WIAG is changed at least once.