The embodiments discussed in the present disclosure are related to transparent tunneling over a wireless network.
Some wireless networks employ various protocols to provide simplicity for a user of the wireless network and/or security to the wireless network and devices using the wireless network. Some protocols may include data routing to recipient devices, which may be performed by a router device and/or manual provisioning of port forwarding rules. In some instances, communications may be slowed or impeded when routing protocols may not be bypassed. Further, in some instances, a device may not include access to a router device and/or the user thereof may not be able to implement port forwarding rules to connect one device with another device in the wireless network.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some embodiments described herein may be practiced.
According to an aspect of an embodiment, a method may include a configuration file being provided to a device from a network server. The configuration file may be provided after establishment of a first wireless connection over a wireless network between the device and the network server. The configuration file may direct the device to establish a first tunnel via a first layer of an internet protocol suite via a second wireless connection over the wireless network between the device and an endpoint device. The endpoint device may be defined in the configuration file. The configuration file may direct the device to establish a second tunnel within the first tunnel between the device and the endpoint device. The second tunnel may be established via a second layer of the internet protocol suite. The method may also include facilitating communications between the device and the endpoint device using the wireless network via the second tunnel.
The object and advantages of the embodiments will be realized and achieved at least by the elements, features, and combinations particularly pointed out in the claims.
Both the foregoing general description and the following detailed description are given as examples and are explanatory and are not restrictive of the invention, as claimed.
Example embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Communications between one or more devices over a wireless network, such as a cellular network, may be mapped to a recipient device through a router using network address translation (NAT). In some circumstances, the presence of NAT on a core device (e.g., a network server) and/or an edge device (e.g., an agent device) may limit communications associated with the agent device in the absence of manual provisioning of port forwarding rules associated with the agent device. The port forwarding rules may contribute to mapping communications intended for the agent device such that the agent device may obtain communications and/or service, such as from the network server, via the wireless network. In some circumstances, the port forwarding rules may include difficult implementations, such as ensuring data is redirected to the intended destination, and/or the port forwarding rules may be performed and/or maintained by an operator of the wireless network (e.g., a network server operator), which may limit the availability of the port forwarding rules and, by extension, communications intended for the agent device.
In some prior approaches, an internet protocol security (IPsec) tunnel may be established in a wireless network to overcome the communication issues that may be associated with NAT, such as between the agent device and the network server. An IPsec tunnel may include communications at the internet layer of the internet protocol suite. In some circumstances, the IPsec tunnel may provide an encrypted communication channel and may use a router or routing methods (e.g., port forwarding rules) to direct communications to intended recipients in the wireless network. Alternatively, custom routing and port mapping of the agent device may overcome the communication issues that may be associated with NAT in the wireless network. Custom routing and port mapping may include network service operator defined and/or user defined forwarding rules for communications to be directed to the intended recipient, which may operate similarly to a router in a wireless network. In either method of overcoming NAT communication issues (e.g., IPsec tunneling or custom routing and port mapping), the wireless network may not be transparent relative to the connected devices (e.g., the agent device and the network server) in the wireless network such that non-internet protocol (IP) traffic (e.g., communications at the link layer of the internet protocol suite) may not be supported by the wireless network. Further, both methods may need one or more configurations on the agent device and/or the network server to overcome the NAT communication issues which may be time consuming for the user of the agent device or the network server operator, technically difficult to implement, and/or prone to error during the implementation. For example, a mistake included in a portion of the port forwarding rules may cause communications between devices in the wireless network to not be received and/or fail, such that communications between devices in the wireless network may not be received.
In some aspects of the present disclosure, a device may include a first wireless connection with a network server over a wireless network, which may include limitations to communications therebetween, such as NAT communications issues described herein. The device may begin to establish a second wireless connection with an endpoint device by requesting a configuration file from the network server. In some embodiments, the second wireless connection may facilitate communications between the device and the endpoint device and may not include the NAT communication issues described herein. In some embodiments, the configuration file may be provided to the device from the network server after establishment of the first wireless connection over the wireless network between the device and the network server. In some embodiments, the endpoint device may be designated in the configuration file. In these or other embodiments, the device may utilize a NAT protocol, the network server may utilize a NAT protocol, and/or the endpoint device may utilize a NAT protocol, any of which may cause a lack of transparency during communications between one another. In some embodiments, addressing information associated with the endpoint device may be included in the configuration file. In some embodiments, the configuration file may include one or more instructions that may direct the device to establish a first tunnel (e.g., an IPsec tunnel) via a first layer (e.g., the internet layer) of an internet protocol suite via a second wireless connection over the wireless network between the device and the endpoint device.
In some embodiments, the one or more instructions included in the configuration file may direct the device to establish a second tunnel (e.g., a layer 2 tunneling protocol (L2TP) tunnel) within the first tunnel between the device and the endpoint device. In some embodiments, the second tunnel may be established via a second layer (e.g., the link layer) of the internet protocol suite. The second tunnel may support link layer communications (e.g., media access control (MAC)-based addressing) between the device and the endpoint device using the wireless connection.
In some embodiments, a second tunnel may provide transparency between at least two devices (e.g., the device and the endpoint device) configured to use the second tunnel, such that NAT protocols in one or both devices may be bypassed. In some embodiments, the second tunnel may be operably similar to a wire (e.g., an ethernet cable) physically connecting the at least two devices. In these or other embodiments, the second tunnel between the at least two devices may support communications using internet protocol (IP) traffic (e.g., addressing defined by RFC 1918) and/or non-IP traffic (e.g., circuit emulated time division multiplexing (TDM), recommended standard (RS)-232 (serial communications), high-definition multimedia interface (HDMI) over ethernet, etc.).
Embodiments of the present disclosure will be explained with reference to the accompanying drawings.
In some embodiments, the wireless network 102 may be configured to communicatively couple two or more systems and/or devices (“two or more devices”) together, such as the network server 104 and the device 106 and/or the device 106 and the endpoint device 116. In some embodiments, the wireless network 102 may be any network or configuration of networks configured to send and receive communications between the two or more devices. In some embodiments, the wireless network 102 may include one or more wireless networks, and may include numerous different configurations, including multiple different types of networks, network connections, and protocols to communicatively couple the two or more devices in the environment 100. For example, in some embodiments, the wireless network 102 may include one or more cellular networks that may wirelessly connect the two or more devices, such as at least the network server 104 and the device 106 via a first wireless connection 108, and/or the device 106 and the endpoint device 116 via a second wireless connection 110, as described herein.
In some embodiments, the local network 118 may be configured to communicatively couple the network server 104 with other devices, such as the endpoint device 116. In some embodiments, the local network 118 may be any network or configuration of networks configured to send and receive communications between the network server 104 and other devices included in the local network 118. In some embodiments, the local network 118 may include a wired network, an optical network, and/or a wireless network, and may include numerous different configurations, including multiple different types of networks, network connections, and protocols to communicatively couple the network server 104 with other systems and/or devices that may be included in the local network 118. In some embodiments, the local network 118 may be a local area network (LAN) and may support direct connections between devices and/or multipoint connections, such as connections between two or more devices via a switch. In some embodiments, the local network 118 may be configured to support link layer communications between connected devices, such as via Institute of Electrical and Electronics Engineers (IEEE) 802 network standards (e.g., ethernet, Wi-Fi, and the like). In some embodiments, the endpoint device 116 may be communicatively coupled with the network server 104 via a network connection 120 within the local network 118. In some embodiments, the network connection 120 may include any LAN-based communication protocols supported by the local network 118 as described herein, such as a wired connection (e.g., a direct connection via an ethernet cable) and/or a wireless connection (e.g., Wi-Fi).
In some embodiments, the network server 104, the device 106, and/or the endpoint device 116 may individually include a network address translation (NAT) protocol for directing network traffic that may be used during communications via the wireless network 102. For example, the network server 104 may include a NAT protocol and the device 106 may include a NAT protocol to be used in conjunction with communications via the wireless network 102. In some instances in which NAT protocols are included in devices communicating using the wireless network 102, one or more routers may be included in a communication channel using the wireless network 102, where the routers may redirect communications within the wireless network 102. Alternatively, or additionally, in some instances in which NAT protocols are included in devices communicating using the wireless network 102, manual provisioning of port forwarding rules associated with one or more devices communicating via the wireless network 102 may be included in the communication channel using the wireless network 102. In some embodiments, provisioning may refer to one or more actions in preparation for enabling communications between devices in the wireless network 102. As such, manual provisioning may refer to a person (e.g., a user, a network operator, etc.) performing one or more actions that may enable communications between devices using the wireless network 102. In some embodiments, which may include the context above, manual provisioning of port forwarding rules may include a person establishing routing rules associated with one or more devices included in and/or using the wireless network 102 (e.g., similar to a router redirecting traffic between devices), such that traffic may be received by an intended recipient in view of NAT protocols included in the one or more devices communicating using the wireless network 102.
In some embodiments, the network server 104 may include a system and/or device that may facilitate connections between one or more devices, which may include one or more tunnels as described herein, provide a channel for sharing resources, store resources, and/or manage resources using the local network 118. In some embodiments, the network server 104 may manage the connections of devices that may be included in the local network 118 and/or potential connections of devices requesting access to the local network 118. For example, in instances in which a new device requests access to the local network 118, the network server 104 may determine whether to permit access to the new device and/or provide authentication credentials to the new device that may enable the new device to access the local network 118.
In some embodiments, the network server 104 may provide wireless and/or wired connections to connected devices in the local network 118. For example, a first device in the local network 118 may include a wired connection to the network server 104 and a second device in the local network 118 may include a wireless connection to the network server 104, and the first device and the second device may be communicatively coupled via the local network 118 provided by the network server 104. In some embodiments, the network server 104 may be configured to support one or more additional communication channels, such as a wireless connection via the wireless network 102 as described herein. In these or other embodiments, the network server 104 may include hardware and/or software that may facilitate communications via wired and/or wireless channels, such as transceivers, switches, and the like.
In some embodiments, a network operator may manage devices, manage communications, manage resources, and/or provide oversight to the local network 118 of the network server 104 via the network server 104. For example, the network operator may determine whether to permit or deny access to a new device seeking to access the local network 118, such as by providing authentication credentials or restricting authentication credentials from the network server 104 to the new device. In another example, the network operator may observe resource usage and/or resource sharing between devices and/or the network server 104 in the local network 118 as the resources may be routed through the network server 104 and/or visible/accessible by the network server 104. In another example, the network operator may have visibility of traffic (e.g., communications) between devices in the local network 118 as the traffic may be routed through the network server 104 and/or the network operator may limit or restrict communications between devices using the local network 118, such as by controlling traffic routed through the network server 104, which may be according to one or more communication rules associated with the local network 118 and/or the network server 104. In these or other embodiments, the network operator may be a person (e.g., a person with access to the network server 104) and/or a device which may include hardware and/or software and may be configured to make decisions based on predetermined rules or scenarios.
In some embodiments, the device 106 may include a system and/or device that may include a wireless transceiver (e.g., a cellular transceiver), such that the device 106 may be configured to communicate with other systems and/or devices via the wireless network 102. For example, the device 106 may include customer-premises equipment (CPE) that may include a cellular transceiver such that the device 106 may communicate wirelessly with one or more devices via the wireless network 102.
In some embodiments, in some circumstances the device 106 may be disconnected from the local network 118 and/or may be unable to communicate with devices included in the local network 118 using communication protocols associated with the local network 118. For example, the device 106 may be disconnected from the local network 118 and/or one or more devices included in the local network 118 prior to the device 106 establishing one or more tunnels with another device, such as the endpoint device 116. Alternately or additionally, the device 106 may be disconnected from the local network in response to an issue with the local network 118 or a network card of the device 106. Alternatively, or additionally, prior to the device 106 establishing one or more tunnels with the endpoint device 116, the device 106 may be limited to non-tunnel communications using the wireless network 102. Non-tunnel communications may include at least non-link layer-based communications, such as one or more cellular signals and tunnel communications may include IP layer-based communications and/or link layer-based communications, such as MAC-based addressing, as described herein. Alternatively, or additionally, prior to the device 106 obtaining a configuration file from the network server 104 (as described herein), the device 106 may not include source and/or destination addressing for other devices (e.g., addressing that may be utilized to establish one or more tunnels between the device 106 and the endpoint device 116) that may be used for establishing link layer-based communications such as via one or more tunnels through the wireless network 102, as described herein.
Alternatively, or additionally, prior to the device 106 establishing one or more tunnels with the endpoint device 116, the device 106 may not have authentication credentials and/or access to authentication credentials that may be used in communications between the device 106 and the endpoint device 116 using the wireless network 102 via the one or more tunnels, as described herein. In some embodiments, the device 106 may be configured to establish a first wireless connection 108 with the network server 104 via the wireless network 102, where the first wireless connection 108 may include non-link layer-based communications. For example, prior to the device 106 establishing one or more tunnels with the endpoint device 116, the device 106 may attempt to and/or wirelessly connect to the network server 104 using the first wireless connection 108 over the wireless network 102 and the device 106 may be communicatively coupled to the network server 104 via the first wireless connection 108, which may support non-link layer-based communications.
In some embodiments, the first wireless connection 108 may include one or more NAT protocols, such as NAT protocols associated with the network server 104 and/or NAT protocols associated with the device 106, such that the first wireless connection 108 between the network server 104 and the device 106 may not be transparent. In the present disclosure, transparency, such as transparency between two or more devices, may refer to supporting communications between devices that may use a link layer of the internet protocol suite (e.g., TCP/IP), such as via media access control (MAC) addressing. For example, a first device may use an address resolution protocol (ARP) to determine a link layer address (e.g., a MAC address) of a second device in the same internet protocol (IP) space. Devices considered in the same IP space may include devices that may be configured to use IP addressing to direct communications to one another, which may include direct addressing and/or routing via a router or port forwarding. For example, as illustrated in
In the example, the first device and the second device may be configured to communicate (e.g., transmit and/or receive data) with one another by sending data packets to one another using link layer addressing (e.g., MAC addresses associated with the first device and the second device). In these or other embodiments, transparent communications may be performed without a router and/or port forwarding rules associated with the first device and/or the second device in view of NAT protocols. For example, the link layer addressing may allow communications directly between at least the first device and the second device without using a protocol of a higher layer of the internet protocol suite to send the communications, such as a protocol of the internet layer of the internet protocol suite. Additionally, transparency may extend to one or more additional devices that may be included in the same IP space as the first device and/or the second device and similarly configured to support link layer addressing.
In some embodiments, prior to establishing one or more tunnels with the endpoint device 116, the device 106 may establish the first wireless connection 108 with the network server 104 over the wireless network 102, as described herein. Using the first wireless connection 108, the device 106 may request a configuration file from the network server 104. In some embodiments, the request may include a request for endpoint device addressing information to be included in the configuration file, which may be used to establish the second wireless connection 110 between the device 106 and the endpoint device 116. Alternatively, or additionally, the request may include a request for a network arrangement to be included in the configuration file, which may be implemented by the device 106 (e.g., point-to-point communications, a point-to-multipoint communications, etc.).
In some embodiments, the request for the configuration file may be determined by a user of the device 106. For example, the user of the device 106 may determine the information to include in the request. For example, the user of the device 106 may determine that a connection with the endpoint device 116 is desired. As such, the request may indicate that the second wireless connection 110 between the device 106 and the endpoint device 116 is desired by designating the device 106 and the endpoint device 116 in the request. In another example, the user may define a threshold for quality of service metrics that may be implemented in the communications using the second wireless connection 110 (e.g., via the second tunnel 114 after the establishment thereof). Alternatively, or additionally, the request may include a selection from one or more predetermined configuration files. For example, the user of the device 106 may select the endpoint device 116 for the second wireless connection 110 from a list of one or more potential endpoint devices for the second wireless connection 110 with the device 106.
In some embodiments, the network server 104 may obtain the request for the configuration file from the device 106. In some embodiments, the network server 104 may determine one or more configuration parameters in response to the obtained request, and the configuration parameters may be included in the configuration file that may be generated by the network server 104. The configuration parameters may facilitate the second wireless connection 110 between the device 106 and the endpoint device 116. In some embodiments, the configuration parameters may include a source address (e.g., addressing for a first tunnel 112 and/or a second tunnel 114 between the device 106 and the endpoint device 116), a destination address (e.g., addressing for the first tunnel 112 and/or the second tunnel 114), authentication credentials (e.g., for encryption of data transmitted via the first tunnel 112 and/or the second tunnel 114), a selection of quality of service metrics that may be obtained during communications using the first tunnel 112 and/or the second tunnel 114 (e.g., number of packets transmitted per second, number of packets lost per transmission, transmission delays, etc.), and/or other parameters that may contribute to establishing the first tunnel 112 and/or the second tunnel 114 and/or observing the service providing therein.
In these or other embodiments, the network server 104 may be configured to generate the configuration file in response to obtaining the request for the configuration file from the device 106. As described herein, the configuration file may be based on the configuration parameters determined from the request. The network server 104 may be configured to provide the configuration file to the device 106, such as via the first wireless connection 108. For example, the network server 104 may transmit the configuration file to the device 106 using the first wireless connection 108 via the wireless network 102.
In some embodiments, the configuration file may direct the device 106 to establish a first tunnel 112 between the device 106 and the endpoint device 116. In some embodiments, the first tunnel 112 may be the second wireless connection 110 as described herein. Alternatively, or additionally, the first tunnel 112 may be a component of the second wireless connection 110. For example, the first tunnel 112 may be used in conjunction with one or more tunnels and the combination thereof may be the second wireless connection 110. In these or other embodiments, the second wireless connection 110 may be established over the wireless network 102 between the device 106 and the endpoint device 116.
In some embodiments, the first tunnel 112 may be established via a first layer of the internet protocol suite (e.g., transmission control protocol/internet protocol (TCP/IP)). For example, the first tunnel 112 may be an internet protocol security (IPsec) tunnel established via the internet layer of the internet protocol suite. In some embodiments, the first tunnel 112 may provide security and/or privacy to communications over the wireless network 102 via the first tunnel 112 using authentication credentials and/or encryption of data that may be included in the communications between devices using the first tunnel 112. Alternatively, or additionally, the first tunnel 112 may not support direct communications between connected devices as the connected devices may not be located in the same IP address space. In such instances, a router and/or port forwarding rules may be employed to direct communications between devices that may be communicating using the first tunnel 112.
In some embodiments, the configuration file may direct the device 106 to establish a second tunnel 114 within the first tunnel 112. The second tunnel 114 may be established between the device 106 and the endpoint device 116. In some embodiments, the second tunnel 114 may be established after the device 106 has established the first tunnel 112 between the device 106 and the endpoint device 116. In some embodiments, the second tunnel 114 may be a component of the second wireless connection 110. For example, the second tunnel 114 may be used in conjunction with one or more tunnels, such as the first tunnel 112, and the combination thereof may constitute the second wireless connection 110.
In some embodiments, the second tunnel 114 may be established via a second layer of the internet protocol suite. For example, the second tunnel 114 may be a layer 2 tunneling protocol (L2TP) tunnel established via the link layer of the internet protocol suite. In some embodiments, the second tunnel 114 may provide transparency between the connected devices, such as the device 106 and the endpoint device 116. For example, the device 106 may be configured to communicate with the endpoint device 116 with end-to-end transparency as the device 106 and the endpoint device 116 may utilize MAC addressing to communicate with one another and may not use the internet layer of the internet protocol suite to direct the communications between the device 106 and the endpoint device 116. For example, the second tunnel 114 may provide a communication channel between the device 106 and the endpoint device 116 that may be operably similar to the device 106 and the endpoint device 116 being connected with a wire (e.g., a pseudo wire having functionality like an ethernet cable), such that the device 106 and the endpoint device 116 may be included in the same IP address space. In some embodiments, the device 106 and the endpoint device 116 may be configured to support IP-based traffic (e.g., addressing defined by RFC 1918) and/or non-IP-based traffic (e.g., circuit emulated time division multiplexing (TDM), recommended standard (RS)-232 (serial communications), high-definition multimedia interface (HDMI) over ethernet, etc.).
In some embodiments, the communications between the device 106 and the endpoint device 116 via the second tunnel 114 may be performed without a router and/or port forwarding rules including instances in which a NAT protocol is utilized by the device 106 and/or the endpoint device 116. Alternatively, or additionally, in instances in which NAT protocol is not included in the device 106 and/or the endpoint device 116, communications between the device 106 and the endpoint device 116 via the second tunnel 114 may be performed without a router and/or port forwarding rules.
In some embodiments, the second wireless connection 110 between the device 106 and the endpoint device 116, including the first tunnel 112 and the second tunnel 114, may be established without changes to the local network 118 associated with the network server 104. For example, the second wireless connection 110 may be ad hoc (e.g., established with little or no planning between the network server 104, the device 106, and the endpoint device 116) between the device 106 and the endpoint device 116 and may not precipitate changes to the local network 118 in which the endpoint device 116 may be connected and/or communicating. Alternatively, or additionally, the first tunnel 112 and/or the second tunnel 114 may be automatically established and/or configured via the configuration parameters included in the configuration file, such that the network server 104, the device 106, and/or the endpoint device 116 individually may not include any pre-provisioning (e.g., manual, or otherwise, as described herein) prior to the device 106 obtaining the configuration file. For example, the device 106 may be deployed remote (e.g., not connected in the same IP space) from the network server 104 and/or the local network 118 and the device 106 may use the wireless network 102 to communicate with the network server 104 to establish the first tunnel 112 and the second tunnel 114 through the wireless network 102 such that the device 106 may be in the same IP space as the endpoint device 116 (e.g., communications between the device 106 and the endpoint device 116 may be at the link layer of the internet protocol suite), all of which may be accomplished without the network server 104, the device 106, and/or the endpoint device 116 including any pre-determined addressing to one another.
Modifications, additions, or omissions may be made to the environment 100 without departing from the scope of the present disclosure. For example, in some embodiments, the endpoint device 116 may be the network server 104, a virtual machine in communication with the network server 104 (e.g., via the local network 118), a network switch included in the local network 118, a user device remote from the network server 104 (e.g., the user device may be similar to the device 106, but remote from the device 106 (e.g., not initially communicatively coupled with the device 106)), and/or any other device that may be configured to communicate with the device 106 using the wireless network 102 via the second tunnel 114, as described herein. In instances in which the device 106 is communicatively coupled with a network switch in the local network 118 via the second wireless connection 110, communications from the device 106 may be centrally routed (e.g., via the network switch) to one or more devices included in the local network 118. Additionally, in some embodiments, the environment 100 may include any number of other components that may not be explicitly illustrated or described.
The method 200 may begin at block 202 where a configuration file may be provided to a device (e.g., the device 106 of
In some embodiments, the device may utilize a network address translation (NAT) protocol for directing network traffic, which may include traffic over the wireless network. Alternatively, or additionally, the network server may utilize a NAT protocol for directing network traffic, which may include traffic over the wireless network. Alternatively, or additionally, an endpoint device, as described herein, may utilize a NAT protocol for directing network traffic, which may include traffic over the wireless network.
In some embodiments, a request from the device for the confirmation file may be obtained by the network server. In some embodiments, the request may include a request for at least endpoint addressing information that may be used to establish a second wireless connection (e.g., the second wireless connection 110 of
In some embodiments, the endpoint device may include the network server. Alternatively, or additionally, in some embodiments, the endpoint device may include a network switch. Alternatively, or additionally, in some embodiments, the endpoint device may include a user device.
At block 204, the configuration file may direct the device to establish a first tunnel (e.g., the first tunnel 112 of
At block 206, the configuration file may direct the device to establish a second tunnel (e.g., the second tunnel 114 of
In some embodiments, the configuration file may include a source address for the first tunnel and a source address for the second tunnel. Alternatively, or additionally, the configuration file may include a destination address for the first tunnel and a destination address for the second tunnel. Alternatively, or additionally, the configuration file may include authentication credentials for the device and/or the endpoint device. Alternatively, or additionally, the configuration file may include a designation for one or more quality of service metrics that may be obtained during the communications between the device and the endpoint device.
At block 208, communications between the device and the endpoint device may be facilitated using the wireless network via the second tunnel. In some embodiments, the communications between the device and the endpoint device may include internet protocol (IP) traffic. Alternatively, or additionally, the communications between the device and the endpoint device may include non-IP traffic. In these or other embodiments, communications between the device and the network server and/or communications between the device and the endpoint device via the second tunnel may bypass the NAT protocol associated with the device, the NAT protocol associated with network server, and/or the NAT protocol associated with the endpoint device.
Modifications, additions, or omissions may be made to the method 200 without departing from the scope of the present disclosure. For example, in some embodiments, the method 200 may include any number of other components that may not be explicitly illustrated or described.
The processor 302 may include any computing entity, or processing device including various computer hardware or software modules and may be configured to execute instructions stored on any applicable computer-readable storage media. For example, the processor 302 may include a microprocessor, a microcontroller, a parallel processor such as a graphics processing unit (GPU) or tensor processing unit (TPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a Field-Programmable Gate Array (FPGA), or any other digital or analog circuitry configured to interpret and/or to execute program instructions and/or to process data.
Although illustrated as a single processor in
In some embodiments, the processor 302 may be configured to interpret and/or execute program instructions and/or process data stored in the memory 304, the data storage 306, or the memory 304 and the data storage 306. In some embodiments, the processor 302 may fetch program instructions from the data storage 306 and load the program instructions in the memory 304. After the program instructions are loaded into memory 304, the processor 302 may execute the program instructions.
For example, in some embodiments, the processor 302 may be configured to interpret and/or execute program instructions and/or process data stored in the memory 304, the data storage 306, or the memory 304 and the data storage 306. The program instruction and/or data may be related to transparent tunneling over a wireless network such that the computing system 300 may perform or direct the performance of the operations associated therewith as directed by the instructions. In these and other embodiments, the instructions may be used to perform the method 200 of
The memory 304 and the data storage 306 may include computer-readable storage media or one or more computer-readable storage mediums for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable storage media may be any available media that may be accessed by a computer, such as the processor 302.
By way of example, and not limitation, such computer-readable storage media may include non-transitory computer-readable storage media including Random Access Memory (RAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Compact Disc Read-Only Memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory devices (e.g., solid state memory devices), or any other storage medium which may be used to carry or store particular program code in the form of computer-executable instructions or data structures and which may be accessed by a computer. Combinations of the above may also be included within the scope of computer-readable storage media.
Computer-executable instructions may include, for example, instructions and data configured to cause the processor 302 to perform a certain operation or group of operations as described in this disclosure. In these and other embodiments, the term “non-transitory” as explained in the present disclosure should be construed to exclude only those types of transitory media that were found to fall outside the scope of patentable subject matter in the Federal Circuit decision of In re Nuijten, 500 F.3d 1346 (Fed. Cir. 2007). Combinations of the above may also be included within the scope of computer-readable media.
The communication unit 308 may include any component, device, system, or combination thereof that is configured to transmit or receive information over a network. In some embodiments, the communication unit 308 may communicate with other devices at other locations, the same location, or even other components within the same system. For example, the communication unit 308 may include a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device (such as an antenna implementing 4G (LTE), 4.5G (LTE-A), and/or 5G (mmWave) telecommunications), and/or chipset (such as a Bluetooth® device (e.g., Bluetooth 5 (Bluetooth Low Energy)), an 802.6 device (e.g., Metropolitan Area Network (MAN)), a Wi-Fi device (e.g., IEEE 802.11ax, a WiMAX device, cellular communication facilities, etc.), and/or the like. The communication unit 308 may permit data to be exchanged with a network and/or any other devices or systems described in the present disclosure.
Modifications, additions, or omissions may be made to the computing system 300 without departing from the scope of the present disclosure. For example, in some embodiments, the computing system 300 may include any number of other components that may not be explicitly illustrated or described. Further, depending on certain implementations, the computing system 300 may not include one or more of the components illustrated and described.
As indicated above, the embodiments described herein may include the use of a computing system (e.g., the processor 302 of
In some embodiments, the different components, modules, engines, and services described herein may be implemented as objects or processes that execute on a computing system (e.g., as separate threads). While some of the systems and methods described herein are generally described as being implemented in software (stored on and/or executed by hardware), specific hardware implementations or a combination of software and specific hardware implementations are also possible and contemplated.
Terms used in the present disclosure and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including, but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes, but is not limited to,” etc.).
Additionally, if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to embodiments containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and/or “an” should be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations.
In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” or “one or more of A, B, and C, etc.” is used, in general such a construction is intended to include A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together, etc. Additionally, the use of the term “and/or” is intended to be construed in this manner.
Further, any disjunctive word or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” should be understood to include the possibilities of “A” or “B” or “A and B” even if the term “and/or” is used elsewhere.
All examples and conditional language recited in the present disclosure are intended for pedagogical objects to aid the reader in understanding the present disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Although embodiments of the present disclosure have been described in detail, various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the present disclosure.