Many modern communication networks are capable of exchanging packet based communications with other communication networks and communication devices. Some of these networks may employ deep packet inspection (DPI) equipment on some or all of the packets that travel through each respective network. DPI equipment allows a network to inspect the payload contents of packets that pass through the network. This packet inspection capability allows a network to gather information about the packets that the network is transporting in order to better manage the network.
While DPI equipment may have beneficial uses, such as for network management, the use of DPI may also raise privacy concerns. For example, DPI equipment may allow a network to obtain information from a user's packet traffic, such as usernames, passwords, and web addresses, which the user would want to keep private. While encrypting packet traffic that is transferred from a communication device may be a way to overcome DPI privacy concerns, the system or device that is receiving that packet traffic must also be equipped with the ability to decrypt the transferred packets. Thus, encrypting data may not always be available to protect private information from capture by DPI equipment.
Overview
Embodiments disclosed herein provide systems and methods for dividing packet content for transmission over diverse wireless links. In a particular embodiment, a method provides generating a packet for transmission to a destination and examining the packet to determine if content within the packet qualifies for transmission over diverse wireless links comprising a first wireless link and a second wireless link. The method further provides, if the content qualifies for transmission over the diverse wireless links, generating a first alternate packet that contains a first portion of the content and a second alternate packet that contains a second portion of the content. The method further provides transferring the first alternate packet over the first wireless link for delivery to the destination and transferring the second alternate packet over the second wireless link for delivery to the destination.
The following description and associated figures teach the best mode of the invention. For the purpose of teaching inventive principles, some conventional aspects of the best mode may be simplified or omitted. The following claims specify the scope of the invention. Note that some aspects of the best mode may not fall within the scope of the invention as specified by the claims. Thus, those skilled in the art will appreciate variations from the best mode that fall within the scope of the invention. Those skilled in the art will appreciate that the features described below can be combined in various ways to form multiple variations of the invention. As a result, the invention is not limited to the specific examples described below, but only by the claims and their equivalents.
In operation, wireless device 101 exchanges packet communications with destination 104. These packet communications may be for a variety of services that may be provided to wireless device 101, including services for applications running on wireless device 101. For example, packets may include data relating to user data for an application, such as a real time video or voice communications, web browsing, audio/video streaming, file downloading, or any other type of data packet communications.
Typically, when exchanging communications with a destination, a wireless device will choose the fastest communication link available to the wireless device. Thus, if wireless link 111 to wireless network 102 is a faster link than wireless link 112 to wireless network 103, then wireless device 101 will most likely choose to exchange packets with destination 104 through wireless network 102 and wireless link 111.
Regardless with which wireless network of wireless networks 102-103 that wireless device 101 chooses to exchange packets, that wireless network may use Deep Packet Inspection (DPI) equipment. DPI equipment allows a communication network to monitor the payload content of the packets that pass through the network. For example, a communication network may be able to recognize a computer virus using DPI and then take appropriate action to stop the spread of the virus. However, in addition to this and other beneficial uses, DPI equipment may be used to recognize information that a user of a wireless device may not want to reveal. Such information may include identities of websites that the user visits or private user information, such as usernames and passwords. Even if wireless networks 102-103 do not use DPI equipment for detecting this type of information, there may be further networks and systems between wireless networks 102-103 and destination 104 that do.
Wireless device 101 examines the packet to determine whether content within the packet qualifies for transmission over diverse wireless links comprising wireless link 111 and wireless link 112 (step 202). The content may be any type of data that may be transferred from wireless device 101 to destination 104 including, but not limited to, all or part of a website request, all or part of user indentifying information, all or part of an email message, outgoing VoIP data, or some other type of data that can be transferred via packets. The content may qualify for transmission over diverse wireless links for a variety of reasons. For example, the content may include a web address, username, password, or some other type of information that a user would like to keep anonymous until that information reaches destination 104.
Criteria may be applied to the content in order to make the determination of whether the content qualifies for transmission over diverse links. The criteria may be predefined in wireless device 101 or may be defined later by user input, received via wireless links 111 or 112, or any other way that a wireless device may obtain criteria information. For example, a user may indicate in a security setting for wireless device 101 that all website requests, usernames, and passwords be sent over diverse wireless links. In an alternative example, there may exist a list or other indicator of specific websites, usernames, or passwords that should be sent over diverse wireless links.
If wireless device 101 determines that the content qualifies for transmission over the diverse wireless links, then wireless device 101 generates a first alternate packet that contains a first portion of the content and a second alternate packet that contains a second portion of the content (step 204). The two alternate packets may be new packets with the contents of the original packet split among them. In other words, wireless device 101 may create two alternate packets from the one original packet in such a way as to present the content of the original packet as though the content had been split into two packets from the beginning. For example, the alternate packets may include a shim header that indicates that the first and second alternate packets should be reassembled. Alternatively, the two alternate packets may be created as part of a packet division functionality provided for in a communication protocol. For example, the IPv4 protocol has a function that allows for the fragmentation of single data packets into multiple data packets for transmission over links with limited packet size, wherein the original packet is then reassembled at the destination. Alternative packet transmission protocols may also be used, such as IPv6, other IP versions, or other packet exchange protocols.
The content of the packet may be separated into the first portion and the second portion by analyzing the content to ensure that the content is sufficiently split for the purposes of non-recognition. Alternatively, the content of the packet may be separated into the first portion and the second portion at a predefined location, such as in the middle of the bits that comprise the payload portion of the packet.
In some embodiments, additional wireless links and networks may be available to wireless device 101. In those embodiments, additional alternate packets may be created in order to further divide the content.
After creating the first alternate packet, wireless device 101 transfers the first alternate packet over wireless link 111 for delivery to destination 104 (step 206). Likewise, after creating the second alternate packet, wireless device 101 transfers the second alternate packet over wireless link 112 for delivery to the destination (step 208).
Advantageously, if there exists any DPI equipment in wireless networks 102-103 or on any intervening system or network between wireless networks 102-103 and destination 104, then that DPI equipment will only be able to detect either the first portion or second portion of the content and will not be able to detect the portion sent over the other link. Therefore, content sent over diverse links allows the entirety of the content to be concealed from DPI equipment.
In some embodiments, if the content of the packet does not qualify for transmission over diverse wireless links, then the packet is transferred over the wireless link that wireless device 101 is using to exchange the majority of packets with destination 104. For example, if wireless device 101 is using wireless link 111 for all packet communications that do not require diverse links, then the packet will be sent over wireless link 111. Wireless device 101 may be using wireless link 111 over wireless link 112 because wireless link 111 may be faster, less costly, or provide some other benefit for transferring packets. If that is the case, then the low volume of packets that will be transferred over wireless link 112 due to content that qualifies for transmission over diverse wireless links will negligibly affect the benefits of using wireless link 111 for the bulk of packet exchanges.
For example, wireless device 101 may determine that a website request should be transferred over diverse links. Therefore, the packet containing the website URL is split and a portion of the URL is transferred over wireless link 111 and the other portion is transferred over wireless link 112. Even if wireless link 112 is considerably slower than wireless link 111, transferring a single packet over wireless link 112 should not adversely affect the user experience for the website since the bulk of the data for the website will be exchanged over the faster wireless link 111. Likewise, if the site further requires a username and password then the packet or packets containing the username and password may also be sent over diverse links while other data for the website continues to be transferred over wireless link 111.
In some embodiments, when the packet content that qualifies for transmission on diverse links is split, the portions of the content must arrive in destination 104 at or near the same time. This may be the case if the content is part of a real time communication protocol, such as communications that use the User Datagram Protocol (UDP). In those situations, if the communication path through wireless link 111 is faster than that through wireless link 112, then transference of the first alternate packet should be delayed based on the transfer speed differential between wireless link 111 and wireless link 112.
In some embodiments, packet content transferred from destination 104 may qualify for transmission over diverse wireless link. In those embodiments, destination 104 creates a first and second alternate packet containing a first and second portion of the content, respectively. The first alternate packet is transferred to wireless device 101 via wireless link 111 and the second alternate packet is transferred to wireless device 101 via wireless link 112. Destination 104 may transfer the first alternate packet to a network address for wireless device 101 that is associated with wireless link 111 and transfer the second alternate packet to a network address for wireless device 101 that is associated with wireless link 112. The content of the original packet content is then reassembled at wireless device 101 from the first and second portions of the content, possibly based on shim headers within the alternate packets.
Referring back to
Wireless access networks 102-103 comprise network elements that provide wireless devices with wireless communication access to packet communication services. Wireless networks 102-103 may comprise switches, wireless access nodes, Internet routers, network gateways, application servers, computer systems, communication links, or some other type of communication equipment—including combinations thereof.
Destination 104 comprises a computer system and communication interface. Destination 104 may also include other components such a router, server, data storage system, and power supply. Destination 104 may reside in a single device or may be distributed across multiple devices. Destination 104 is shown externally to wireless communication networks 102-103, but destination 104 could be integrated within the components of wireless communication networks 102-103 or some other communication network, such as the Internet.
Wireless links 111-112 uses the air or space as the transport media. Wireless links 111-112 may use various protocols, such as Code Division Multiple Access (CDMA), Evolution Data Only (EVDO), Worldwide Interoperability for Microwave Access (WIMAX), Global System for Mobile Communication (GSM), Long Term Evolution (LTE), Wireless Fidelity (WIFI), High Speed Packet Access (HSPA), or some other wireless communication format. Communication links 113-114 uses metal, glass, air, space, or some other material as the transport media. Communication links 113-114 could use various communication protocols, such as Time Division Multiplex (TDM), Internet Protocol (IP), Ethernet, communication signaling, CDMA, EVDO, WIMAX, GSM, LTE, WIFI, HSPA, or some other communication format—including combinations thereof. Communication links 113-114 could be direct links or may include intermediate networks, systems, or devices.
The wireless access networks shown in
The operation begins when a user of wireless device 301 desires to retrieve a website using a web browser application. The user indicates to the browser the desired URL for the website. In this example, the URL www.examplesite.com is indicated to the web browser application.
After receiving the URL, the browser creates a Hypertext Transfer Protocol (HTTP) GET request for transference to server 306 to retrieve the website. Server 306 is a web server, domain name server, or some other type of system used when wireless device 101 attempts to retrieve a web page. The get request is formed into an IP packet for transmission to server 306. The packet may be generated in the web browser application, system software of wireless device 301, a communication interface of wireless device 301, or some other area of wireless device 301.
Before transferring the packet, wireless device 301 inspects the contents of the packet to determine whether the content of the packet should be transferred over diverse wireless links. In this example, a setting within wireless device 301 indicates that all HTTP GET requests should be transferred over diverse wireless links. Therefore, when wireless device 301 determines that the packet contains a GET request, wireless device 301 fragments the packet into a first alternate packet and a second alternate packet. The first alternate packet contains a first portion of the GET request and the second alternate packet contains a second portion of the GET request. The original packet is fragmented into the first and second alternate packets using the fragmentation functionality in IPv4.
Referring back to
The first and second alternate packets are routed from WIFI network 302 and CDMA network 303 through Internet 305 to server 306. Once received by server 306, server 306 is able to recognize that IP fragmentation has been used on the first and second alternate packets. Accordingly, server 306 reassembles the content of the alternate packets to retrieve the GET message and then services the GET message as requested by the web browser application.
All other packets transferred to server 306 that do not qualify for transmission over diverse wireless links remain intact and are transferred to server 306 over WIFI network 302. Therefore, while CDMA network 303 may be slower for packet transmission purposes, the single second alternate packet that is sent using CDMA network 303 is negligible in comparison to the amount of other packets that are sent using the faster WIFI network 302.
The operation begins when a user of wireless device 301 desires to access information through an application that requires a username and password. The user indicates a username for the user to the application. In this example, the username ‘exampleusername’ indicated to the application.
After receiving the username, the application performs actions necessary to transfer the username to server 306. Server 306 is a web server, application server, or some other type of system accessed by the application to retrieve application information. The username is formed into an IP packet for transmission to server 306. The packet may be generated in the application, system software of wireless device 301, a communication interface of wireless device 301, or some other area of wireless device 301.
Before transferring the packet, wireless device 301 inspects the contents of the packet to determine whether the content of the packet should be transferred over diverse wireless links. In this example, a setting within wireless device 301 indicates that packets containing ‘exampleusername’ should be transferred over diverse wireless links. Therefore, when wireless device 301 determines that the packet contains ‘exampleusername’, wireless device 301 fragments the packet into a first alternate packet, a second alternate packet, and a third alternate packet. The first alternate packet contains a first portion of the username, the second alternate packet contains a second portion of the username, and the third alternate packet contains a third portion of the username. The original packet is fragmented into the first and second alternate packets using the fragmentation functionality in IPv4.
Referring back to
All other packets transferred to server 306 that do not qualify for transmission over diverse wireless links remain intact and are transferred to server 306 over WIFI network 302. Therefore, while CDMA network 303 and WIMAX network 304 may be slower for packet transmission purposes, the second and third alternate packets that are sent using CDMA network 303 and WIMAX network 304 is negligible in comparison to the amount of other packets that are sent using the faster WIFI network 302.
Wireless communication interfaces 701A and 701B comprise RF communication circuitry and an antenna. The RF communication circuitry typically includes an amplifier, filter, RF modulator, and signal processing circuitry. Wireless communication interfaces 701A and 701B may also include a memory device, software, processing circuitry, or some other communication device. Wireless communication interfaces 701A and 701B may use various protocols, such as CDMA, EVDO, WIMAX, GSM, LTE, WIFI, HSPA, or some other wireless communication format.
Wireless communication interface 701A is configured to transfer a first alternate packet over a first wireless link for delivery to a destination. Wireless communication interface 701B is configured to transfer a second alternate packet over a second wireless link for delivery to the destination.
User interface 702 comprises components that interact with a user to receive user inputs and to present media and/or information. User interface 702 may include a speaker, microphone, buttons, lights, display screen, touch screen, touch pad, scroll wheel, communication port, or some other user input/output apparatus—including combinations thereof. User interface 702 may omitted in some examples.
Processing circuitry 705 comprises microprocessor and other circuitry that retrieves and executes operating software 707 from memory device 706. Memory device 706 comprises a non-transitory storage medium, such as a disk drive, flash drive, data storage circuitry, or some other memory apparatus. Processing circuitry 705 is typically mounted on a circuit board that may also hold memory device 706 and portions of communication interface 701 and user interface 702. Operating software 707 comprises computer programs, firmware, or some other form of machine-readable processing instructions. Operating software 707 includes packet generation module 708, packet examination module 709, and packet splitting module 710. Operating software 707 may further include an operating system, utilities, drivers, network interfaces, applications, or some other type of software. When executed by processing circuitry 705, operating software 707 directs processing system 703 to operate wireless communication device 700 as described herein.
In particular, packet generation module directs processing system 703 to generate a packet for transmission to a destination. Packet examination module 709 directs processing system 703 to examine the packet to determine if content within the packet qualifies for transmission over diverse wireless links comprising the first wireless link and the second wireless link. If the content qualifies for transmission over the diverse wireless links, packet splitting module 710 directs processing system 703 to generate the first alternate packet that contains a first portion of the content and the second alternate packet that contains a second portion of the content.
The above description and associated figures teach the best mode of the invention. The following claims specify the scope of the invention. Note that some aspects of the best mode may not fall within the scope of the invention as specified by the claims. Those skilled in the art will appreciate that the features described above can be combined in various ways to form multiple variations of the invention. As a result, the invention is not limited to the specific embodiments described above, but only by the following claims and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
5579307 | Richetta et al. | Nov 1996 | A |
5751968 | Cohen | May 1998 | A |
5933834 | Aichelen | Aug 1999 | A |
5950135 | Cullen | Sep 1999 | A |
6003045 | Freitas et al. | Dec 1999 | A |
6029168 | Frey | Feb 2000 | A |
6049804 | Burgess et al. | Apr 2000 | A |
6105029 | Maddalozzo, Jr. et al. | Aug 2000 | A |
6134246 | Cai et al. | Oct 2000 | A |
6212190 | Mulligan | Apr 2001 | B1 |
6470015 | Koga et al. | Oct 2002 | B1 |
6499039 | Venkatesh et al. | Dec 2002 | B1 |
6502166 | Cassidy | Dec 2002 | B1 |
6502216 | Takano | Dec 2002 | B1 |
6691166 | Gasior et al. | Feb 2004 | B1 |
6804259 | Onagawa | Oct 2004 | B1 |
7403992 | Tilander et al. | Jul 2008 | B2 |
7764965 | Bartlett | Jul 2010 | B2 |
7812854 | Delker et al. | Oct 2010 | B1 |
7953820 | Stevens et al. | May 2011 | B2 |
8204945 | Milliken et al. | Jun 2012 | B2 |
8224298 | Smith et al. | Jul 2012 | B2 |
8380878 | Shrum et al. | Feb 2013 | B2 |
8412040 | Valiveti et al. | Apr 2013 | B2 |
8467293 | Alicherry et al. | Jun 2013 | B2 |
8806520 | Sharif-Ahmadi et al. | Aug 2014 | B2 |
8848739 | Petersen | Sep 2014 | B2 |
20020019934 | Ishizaki | Feb 2002 | A1 |
20020118215 | Ball et al. | Aug 2002 | A1 |
20020133491 | Sim et al. | Sep 2002 | A1 |
20020138504 | Yano et al. | Sep 2002 | A1 |
20020156840 | Ulrich et al. | Oct 2002 | A1 |
20030004922 | Schmidt et al. | Jan 2003 | A1 |
20030004947 | Coverston | Jan 2003 | A1 |
20030046260 | Satyanarayanan et al. | Mar 2003 | A1 |
20030093806 | Dureau et al. | May 2003 | A1 |
20030120685 | Duncombe et al. | Jun 2003 | A1 |
20030140051 | Fujiwara et al. | Jul 2003 | A1 |
20030167439 | Talagala et al. | Sep 2003 | A1 |
20040019801 | Lindholm et al. | Jan 2004 | A1 |
20040076160 | Phaltankar | Apr 2004 | A1 |
20040093513 | Cantrell et al. | May 2004 | A1 |
20040107314 | Kim et al. | Jun 2004 | A1 |
20040139125 | Strassburg et al. | Jul 2004 | A1 |
20040143575 | Cherkasova | Jul 2004 | A1 |
20040143576 | Cherkasova | Jul 2004 | A1 |
20040143595 | Cherkasova | Jul 2004 | A1 |
20040143607 | Beck | Jul 2004 | A1 |
20040153479 | Mikesell et al. | Aug 2004 | A1 |
20040205387 | Kleiman et al. | Oct 2004 | A1 |
20050005193 | Nakagawa et al. | Jan 2005 | A1 |
20050097270 | Kleiman et al. | May 2005 | A1 |
20050120078 | Kazar et al. | Jun 2005 | A1 |
20050180568 | Krause | Aug 2005 | A1 |
20050240725 | Robinson et al. | Oct 2005 | A1 |
20050243857 | Hofstaedter et al. | Nov 2005 | A1 |
20050286522 | Paddon et al. | Dec 2005 | A1 |
20060031847 | Macdonald et al. | Feb 2006 | A1 |
20060159303 | Davis et al. | Jul 2006 | A1 |
20060203852 | Yoshida | Sep 2006 | A1 |
20070047457 | Harijono et al. | Mar 2007 | A1 |
20070078731 | Hameen-Anttila et al. | Apr 2007 | A1 |
20070140240 | Dally et al. | Jun 2007 | A1 |
20070192860 | Hiscock | Aug 2007 | A1 |
20070271350 | Kazar et al. | Nov 2007 | A1 |
20070288715 | Boswell | Dec 2007 | A1 |
20080062940 | Othmer et al. | Mar 2008 | A1 |
20080086751 | Horn et al. | Apr 2008 | A1 |
20080090513 | Collins et al. | Apr 2008 | A1 |
20090086737 | Fairhurst et al. | Apr 2009 | A1 |
20090092153 | Howard et al. | Apr 2009 | A1 |
20090296624 | Ryu et al. | Dec 2009 | A1 |
20090320077 | Gazdzinski | Dec 2009 | A1 |
20100027837 | Levy et al. | Feb 2010 | A1 |
20100037311 | He et al. | Feb 2010 | A1 |
20100115056 | Tuli | May 2010 | A1 |
20100174608 | Harkness et al. | Jul 2010 | A1 |
20100250917 | Marivoet et al. | Sep 2010 | A1 |
20100265954 | Pullen et al. | Oct 2010 | A1 |
20110016196 | Martin-Cocher et al. | Jan 2011 | A1 |
20110096828 | Chen et al. | Apr 2011 | A1 |
20110125861 | Evans | May 2011 | A1 |
20110173653 | Arsenault et al. | Jul 2011 | A1 |
20110196971 | Reguraman et al. | Aug 2011 | A1 |
20110264768 | Walker et al. | Oct 2011 | A1 |
20120042005 | Papakostas et al. | Feb 2012 | A1 |
20120054811 | Spears | Mar 2012 | A1 |
20120106567 | Hanes et al. | May 2012 | A1 |
20120173635 | Wormald | Jul 2012 | A1 |
20120182884 | Pyatkovskiy et al. | Jul 2012 | A1 |
20120281590 | Szab et al. | Nov 2012 | A1 |
20120315008 | Dixon et al. | Dec 2012 | A1 |
20130148513 | Szabo et al. | Jun 2013 | A1 |
20130194930 | Szabo et al. | Aug 2013 | A1 |
Entry |
---|
U.S. Appl. No. 10/929,305, filed Aug. 30, 2004. |
U.S. Appl. No. 11/385,405, filed Mar. 21, 2006. |