US20120311191A1 - Wireless modem device usable on computer device without driver installation - Google Patents

Wireless modem device usable on computer device without driver installation Download PDF

Info

Publication number
US20120311191A1
US20120311191A1 US13/586,536 US201213586536A US2012311191A1 US 20120311191 A1 US20120311191 A1 US 20120311191A1 US 201213586536 A US201213586536 A US 201213586536A US 2012311191 A1 US2012311191 A1 US 2012311191A1
Authority
US
United States
Prior art keywords
computer device
protocol stack
usb
proxy
stack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/586,536
Inventor
Koen Deforche
Wim DUMON
Juan Bernabeu
Jan Vercruysse
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
InterDigital Patent Holdings Inc
Original Assignee
InterDigital Patent Holdings Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by InterDigital Patent Holdings Inc filed Critical InterDigital Patent Holdings Inc
Priority to US13/586,536 priority Critical patent/US20120311191A1/en
Publication of US20120311191A1 publication Critical patent/US20120311191A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Definitions

  • the present invention relates to a wireless modem device connectable to a computer device and a method for operating said wireless modem.
  • wireless modem device is intended to mean a computer peripheral device which has an electronic interface for connection to a complementary electronic interface of a computer device (host) and which comprises electronic components for establishing communication between said computer device to which it is connected and a remote device over a wireless communication network.
  • the electronic interface can for example be a USB interface, a firewire interface, a PCI express interface, a PCMCIA interface or any other electronic interface known to the person skilled in the art.
  • the wireless communication network can be WLAN, GSM, GPRS, UMTS, EDGE, HSUPA, HSDPA, 3G, 3.5G, 4G or any other wireless communication network known to the person skilled in the art.
  • the wireless modem device of the invention can have electronic components for communicating over two or more different wireless communication networks.
  • a pre-installed generic driver of an operating system installed on the computer device is used for setting up a modem/host communication interface by means of which the wireless modem device and the computer device can communicate with each other.
  • Data traffic from the computer device towards the wireless communication network and vice versa is routed over this modem/host communication interface and uses the generic communication protocol provided by the pre-installed generic driver.
  • pre-installed generic driver is intended to mean a driver which is installed on the computer device along with the installation of the operating system, i.e. a driver which is standard for the operating system and which is capable of driving a standard class of computer peripheral devices connected to the computer device without requiring installation of a specific driver for such a computer peripheral device.
  • a generic driver is a human interface driver (HID), which has predetermined software components configured for driving a human interface device such as a mouse, a keyboard or other.
  • HID human interface driver
  • MSD mass storage device
  • HID and MSD drivers are known per se in the art and therefore need not be described in detail herein.
  • the wireless modem device of the invention does not belong to the standard class of computer peripheral devices for which the generic driver is foreseen in the operating system. Nevertheless, it has been found according to the invention that the wireless modem device can communicate with the computer device by using the generic communication protocol provided by the generic driver over the modem/host communication interface.
  • the generic communication protocol is used as the lower layer communication protocol for exchanging information between the wireless modem device and the computer device, such as for example AT commands or IP data.
  • the wireless modem device of the invention uses a proprietary protocol stack (e.g. a proprietary TCP/IP stack) rather than a kernel protocol stack (e.g. a kernel TCP/IP stack) which is otherwise generally used by the operating system and any applications running under the operating system on the computer device for any network communication.
  • a proprietary protocol stack e.g. a proprietary TCP/IP stack
  • a kernel protocol stack e.g. a kernel TCP/IP stack
  • the proprietary protocol stack is preferably set up on the computer device, although in alternative embodiments the proprietary protocol stack may also be set up on the wireless modem device.
  • the wireless modem device of the invention uses a proxy to move data traffic from the kernel protocol stack to the proprietary protocol stack, i.e. to indicate to running applications that network communication is to be performed using the proprietary protocol stack set up by the wireless modem device rather than the kernel protocol stack.
  • the wireless modem device stores at least one application and is provided for launching said application as a portable application, meaning that the application keeps its data (cache) in the memory of the wireless modem device and no traces are left on the computer device.
  • the application can for example be a web browser application, a document viewer application for viewing a.o. downloaded documents, or other.
  • the web browser application preferably has predefined settings, such that it is configured to make use of the proxy server application with embedded proprietary protocol stack for connecting to the internet.
  • the wireless modem device and its operation method contribute to the advantage that any modification to settings in the kernel protocol stack or in the operating system can be avoided, or more in general that any traces on the computer device can be avoided, so that upon disconnecting the wireless modem device from the computer device, it is as if it has never been used on the computer device.
  • this effect is termed a “zero footprint”, i.e. the wireless modem device leaves no trace or a “zero footprint” on the computer device.
  • software code portions are stored on the wireless modem device or on a separate memory device (e.g. a micro SD card) connectable to the wireless modem device, which are configured for performing one or more of the above mentioned steps, i.e. the use of a pre-installed generic driver, the setting up of a proprietary protocol stack, the use of a proxy, etc.
  • the software code portions are preferably stored in a read only partition.
  • the method comprises one or more of the following steps: (a) upon connection of the wireless modem device to a computer device, checking if a specific driver for the wireless modem device is present on the computer device; (b) if not, using the pre-installed generic driver of the operating system on the computer device for communication between the wireless modem device and the computer device; (c) setting up the proprietary protocol stack for establishing network communication between applications running on the computer device and the wireless communication network via the wireless modem device; (d) using the proxy to move data traffic from the kernel protocol stack to the proprietary protocol stack; (e) launching applications stored on the wireless modem device as portable applications.
  • the invention more generally relates to a method for connecting a computer device to a communication network, the host computer device being provided with an operating system using a kernel protocol stack to connect to a pool of first communication networks known to an administrator of the computer device, the method comprising the step of introducing a second protocol stack, aside from the kernel protocol stack, for connecting the computer device to a second communication network outside not belonging to the known pool of first communication networks.
  • This may comprise the step of adding a tunnelling protocol to the second protocol stack without mediation of the administrator.
  • the second protocol stack is introduced by running a proxy server application with predefined connection parameters on the computer device, the proxy server application redirecting data traffic between the computer device and the second communication network from the kernel protocol stack to the second protocol stack.
  • FIG. 1 shows a general view with the main components of a preferred embodiment of the invention.
  • FIGS. 2 and 3 respectively show separate views of the data plane and the control plane of the embodiment of FIG. 1 .
  • top, bottom, over, under and the like in the description and the claims are used for descriptive purposes and not necessarily for describing relative positions. The terms so used are interchangeable under appropriate circumstances and the embodiments of the invention described herein can operate in other orientations than described or illustrated herein.
  • a preferred solution according to the invention is to combine existing standard methods found in current Operating Systems (OS) to achieve the Zero Footprint objective.
  • OS Operating Systems
  • USB network device usually, the user needs to install proprietary drivers before he/she can use a USB network device.
  • These drivers present a network/modem interface (+some other control interfaces) to the OS.
  • OSes i.e. Linux and Mac OS X
  • USB class drivers e.g. USB CDC ACM and USB CDC Ethernet
  • Windows OSes require some extra files and administrator rights to use these network class drivers.
  • other USB class drivers not exhibiting a network/modem interface but supported without any extra installation in all OSes. The challenge is then to reroute network requests/answers from/to the applications.
  • the normal flow would be to reroute the network request/packet at the bottom of the TCP/IP stack by creating a new network interface which would take packets from/to the TCP/IP stack and transfer them to the network device. But this creation of network interface requires administrator rights and thus is not possible for a full Zero Footprint concept which is aimed at in this preferred embodiment of the invention.
  • a proprietary TCP/IP stack running in user space, is used instead of the standard one available in host OSes. This enables to tune the proprietary TCP/IP stack to use the chosen USB class driver without requiring administrator rights.
  • Standard network applications are built using the Socket interface and dynamic library which would then link it to the standard TCP/IP stack available on the OSes.
  • a Proxy which routes the information from the local host interface, connected to the host OS TCP/IP stack, to the proprietary stack.
  • the applications are preferably modified by the configuration of a Proxy.
  • the applications are preferably launched from the mass storage device as portable applications, which can avoid that any traces are left on the host OS.
  • FIG. 1 A general view with the main interfaces exposed is shown in FIG. 1 . From a protocol point of view, FIGS. 2 and 3 give a separate view of respectively the data plane and the control plane.
  • the ZeroFootprint solution is based on mainly 5 elements:
  • USB modem (below also referred to as “the modem device”.
  • the modem presents itself as a USB modem with VID/PID.
  • this solution builds on top of one of the default (non network) USB HID device class drivers available in the most common OS (Windows XP, Vista, Mac OSX and Linux).
  • OS Windows XP, Vista, Mac OSX and Linux.
  • the OS recognizes the device as a MSD+HID generic device (the device is configured for presenting itself this way) and therefore loads those drivers.
  • the USB modem drivers might have been installed, and then these drivers will handle the device. But let's concentrate on the ‘nomadic’ mode, in which OS generic drivers are used.
  • the USB modem presents itself as a USB Mass Storage Device ( 10 ) presenting a CD Rom (exposing flash memory), a Generic Volume (exposing microSD) and a 3rd Generic Device to transport control and TCP/IP data between the host OS and the USB modem.
  • the CD Rom has an autorun that launches a launcher in which the user has the possibility to launch amongst other applications a web browser (e.g. Firefox) and a Connection Manager (CM).
  • This launcher is based on portable application principles, as it is also done with other applications.
  • the Connection Manager opens a serial virtual port (interface provided by a proxy running from the modem device) to be able to send AT commands and therefore opening a packet data protocol (PDP).
  • PDP packet data protocol
  • a PDP When the connection is established using AT commands, a PDP is created and the network will return a set of IP configuration parameters. These network parameters are passed to a proprietary proxy server that contains an embedded TCP/IP stack that is adapted to work with the USB HID interface to pass IP and control data. This proxy sits also on top of the standard windows sockets to be able to listen to incoming request to the localhost (see following step).
  • the user starts the webbrowser and opens a site (e.g. http://www.google.com).
  • This webbrowser is configured to use the previously mentioned proxy on the localhost.
  • the proxy receives the request, it will use the second proprietary interface (with the embedded TCP/IP stack) to transmit/receive data to/from the network.
  • the ZeroFootprint capable devices offer the capabilities to work in dual mode, meaning that ZeroFootprint functionality can be used when no drivers are installed, and Standard (legacy) functionality can be used when drivers are installed. In the two cases, different USB endpoint structures are used.
  • a switching mechanism allows a ZeroFootprint device to present itself as a USB/HID+MSD device or USB modem device, depending on the availability of drivers in the system.
  • the USB device can thus expose its USB interface in different ways: (1) A composite device with USB HID and USM Mass Storage Unit (UMS) device with UMS and HID USB ID; (2) UMS device with 3G USB ID.
  • UMS USB HID and USM Mass Storage Unit
  • the USBGo interface is the interface enabling communication between the USB modem and the computer.
  • the USBGo uses USB-HID as a lower layer to avoid having to install a specific driver for the modem.
  • the USBGo interface supports multiple channels, so that separate channels can be used for control data and user data.
  • a flow control mechanism allows any endpoint of the USBGo interface to stop/restart data in a given channel, in case that it cannot handle the amount of data received.
  • the flow control mechanism can be relatively simple as it is only used for the data channel(s).
  • the control channel is used to send enable/disable frames for a given data channel.
  • the USBGo interface is tuned and optimized to allow transferring data with a minimum guaranteed speed between modem device and host computer and transferring data in packages on an event driven base. It optimises the USB resources (for instance the available bandwidth of the “USB/HID”) and the power consumption on the USB physical layer.
  • the ZeroFootprint concept doesn't impose any special requirements on the storage used.
  • the concept provides a virtual CD ROM concept, i.e. a certain amount of read only memory (64 MB) is available to the OS when the modem device is inserted for first time and drivers have not been installed previously.
  • This storage device is presented as a CD-ROM that contains an executable with the drivers/connection manager installer.
  • the concept further provides memory in the form of microSD. This microSD is presented as a mass storage device.
  • the CD-ROM memory part is used to have a permanent copy of the basic applications needed (i.e. launcher, proxy and CM) (+specific drivers installer). Therefore, any configuration file needed by the launcher, proxy or CM is stored/modified on the writable storage device (i.e. microSD). To do so, these applications look for the driver on which the configuration is available. This can be achieved differently in the different OSes. In Windows, the two USB storage devices are under the same USB device (device manager). In Linux and MacOS X: On Unix based OS, the USB mass storage devices can be found under/dev/sdX.
  • the host OS TCP/IP stack is used whenever the specific USB modem drivers are installed.
  • the proprietary TCP/IP stack used in the ZeroFootprint mode to bridge between the host OS TCP/IP stack and the USB/HID interface created to send data.
  • Proxy is started at the beginning (from the launcher or any other method). As default configuration, it is using the standard OS TCP/IP stack, and will change to use the external TCP/IP stack whenever notified by the CM. For example, the proxy can restart itself using a different stack when the CM requests the change.
  • the proxy To be able to send AT commands and configure the external TCP/IP protocol for the USB/HID interface, the proxy exposes an interface to 3rd party applications. This interface resembles a serial interface.
  • Proxy starts according to default configuration
  • Proxy starts to listen for client request (virtual serial port)
  • CM connects to Proxy
  • the Program Launcher (launcher from now on) is responsible to provide an interface for the user to be able to launch the applications residing in the memory of the USB modem, and allow the modification of some basic settings.
  • the launcher can be based on the functionality already provided by other 3rd party launchers.
  • the list is preferably generated dynamically. For doing that, the applications are copied into the modem device following a certain structure, and information related to the application and how it's shown in the launcher is made available.
  • the CM listens for various insertion events and the queries the current list of devices. It looks for VID/PID and compares with its internal database.
  • FIG. 4 Another basic flow using the ZeroFootprint (USB/HID) concept is shown in FIG. 4 .
  • the user inserts the modem device (“stick”). The following steps are performed.
  • a second protocol stack can be introduced next to the kernel protocol stack provided by the OS on the computer, to allow applications running on the computer device to get outbound connection to the second communication network.
  • a proxy server application with predefined connection parameters for using the second communication network can be used to tell the applications to redirect data traffic between the computer device and the second communication network from the kernel protocol stack to the second protocol stack.
  • a tunnelling protocol stack such as for example IPSEC, can be added to the second protocol stack (or also the proprietary protocol stack for the wireless modem device described above), for establishing secure networking sessions. Likewise, this does not require mediation of the administrator.

Abstract

A method and apparatus is provided for connecting a computer device to a communication network, the computer device being provided with an operating system using a kernel protocol stack to connect to a pool of first communication networks known to an administrator of the computer device. The method includes introducing a second protocol stack, aside from the kernel protocol stack, for connecting the computer device to a second communication network not belonging to the known pool of first communication networks.

Description

    CROSS REFERENCE TO RELATED APPLICATION(S)
  • This application is a continuation of U.S. patent application Ser. No. 12/419,101, filed Apr. 6, 2009, which claims the benefit of European Application No. 08154116.1 filed Apr. 4, 2008 and European Application No. 08166258.7 filed Oct. 9, 2008, which are incorporated by reference as if fully set forth.
  • FIELD OF INVENTION
  • The present invention relates to a wireless modem device connectable to a computer device and a method for operating said wireless modem.
  • BACKGROUND
  • Today, when a wireless modem is connected for the first time to a computer device, installation of an appropriate driver is required before applications running on the computer device can use the functionality of the wireless modem to connect to wireless networks.
  • It is a disadvantage of existing wireless modem devices that users cannot use them on a foreign computer device, which may for example be a computer device in a hotel or on an airport, on which the user has no administrator rights and installation of the appropriate driver is not allowed.
  • SUMMARY
  • It is an aim of the present invention to provide a wireless modem device and a method for operating same, with which the need for installation of an appropriate driver can be avoided.
  • This aim is achieved according to the invention with the method and device of the independent claims.
  • As used herein, with “wireless modem device” is intended to mean a computer peripheral device which has an electronic interface for connection to a complementary electronic interface of a computer device (host) and which comprises electronic components for establishing communication between said computer device to which it is connected and a remote device over a wireless communication network.
  • The electronic interface can for example be a USB interface, a firewire interface, a PCI express interface, a PCMCIA interface or any other electronic interface known to the person skilled in the art.
  • The wireless communication network can be WLAN, GSM, GPRS, UMTS, EDGE, HSUPA, HSDPA, 3G, 3.5G, 4G or any other wireless communication network known to the person skilled in the art. In preferred embodiments, the wireless modem device of the invention can have electronic components for communicating over two or more different wireless communication networks.
  • In the connection method and the wireless modem device of the invention, a pre-installed generic driver of an operating system installed on the computer device is used for setting up a modem/host communication interface by means of which the wireless modem device and the computer device can communicate with each other. Data traffic from the computer device towards the wireless communication network and vice versa is routed over this modem/host communication interface and uses the generic communication protocol provided by the pre-installed generic driver. This has the advantage that the need for a specific driver for the communication between the wireless modem device and the computer device can be avoided. This has the advantage that a user can use the wireless modem device on a computer device on which he has no administrator rights, i.e. a computer device on which his user rights are restricted so that he cannot install a specific driver for the wireless modem device, for example a computer device in a hotel, in an airport and the like.
  • As used herein, by “pre-installed generic driver” is intended to mean a driver which is installed on the computer device along with the installation of the operating system, i.e. a driver which is standard for the operating system and which is capable of driving a standard class of computer peripheral devices connected to the computer device without requiring installation of a specific driver for such a computer peripheral device. An example of such a generic driver is a human interface driver (HID), which has predetermined software components configured for driving a human interface device such as a mouse, a keyboard or other. Another example of such a generic driver is a mass storage device (MSD) driver, which has predetermined software components configured for driving mass storage devices such as USB memory sticks, external hard drives, or more generally readable and writable computer peripheral memory devices. HID and MSD drivers are known per se in the art and therefore need not be described in detail herein.
  • In the method and device of the invention, one of the pre-installed generic drivers of the operating system on the computer device is exploited for setting up the modem/host communication interface, i.e. the generic driver is used in connection with a computer peripheral device for which it is not actually intended. In other words, the wireless modem device of the invention does not belong to the standard class of computer peripheral devices for which the generic driver is foreseen in the operating system. Nevertheless, it has been found according to the invention that the wireless modem device can communicate with the computer device by using the generic communication protocol provided by the generic driver over the modem/host communication interface. In particular, the generic communication protocol is used as the lower layer communication protocol for exchanging information between the wireless modem device and the computer device, such as for example AT commands or IP data.
  • In preferred embodiments, the wireless modem device of the invention uses a proprietary protocol stack (e.g. a proprietary TCP/IP stack) rather than a kernel protocol stack (e.g. a kernel TCP/IP stack) which is otherwise generally used by the operating system and any applications running under the operating system on the computer device for any network communication.
  • In preferred embodiments, the proprietary protocol stack is preferably set up on the computer device, although in alternative embodiments the proprietary protocol stack may also be set up on the wireless modem device.
  • In preferred embodiments, the wireless modem device of the invention uses a proxy to move data traffic from the kernel protocol stack to the proprietary protocol stack, i.e. to indicate to running applications that network communication is to be performed using the proprietary protocol stack set up by the wireless modem device rather than the kernel protocol stack.
  • In preferred embodiments, the wireless modem device stores at least one application and is provided for launching said application as a portable application, meaning that the application keeps its data (cache) in the memory of the wireless modem device and no traces are left on the computer device. The application can for example be a web browser application, a document viewer application for viewing a.o. downloaded documents, or other. The web browser application preferably has predefined settings, such that it is configured to make use of the proxy server application with embedded proprietary protocol stack for connecting to the internet.
  • The above mentioned features of the wireless modem device and its operation method contribute to the advantage that any modification to settings in the kernel protocol stack or in the operating system can be avoided, or more in general that any traces on the computer device can be avoided, so that upon disconnecting the wireless modem device from the computer device, it is as if it has never been used on the computer device. As used herein, this effect is termed a “zero footprint”, i.e. the wireless modem device leaves no trace or a “zero footprint” on the computer device.
  • In preferred embodiments of the device of the invention, software code portions are stored on the wireless modem device or on a separate memory device (e.g. a micro SD card) connectable to the wireless modem device, which are configured for performing one or more of the above mentioned steps, i.e. the use of a pre-installed generic driver, the setting up of a proprietary protocol stack, the use of a proxy, etc. The software code portions are preferably stored in a read only partition.
  • In preferred embodiments of the method for operating the wireless modem device of the invention, the method comprises one or more of the following steps: (a) upon connection of the wireless modem device to a computer device, checking if a specific driver for the wireless modem device is present on the computer device; (b) if not, using the pre-installed generic driver of the operating system on the computer device for communication between the wireless modem device and the computer device; (c) setting up the proprietary protocol stack for establishing network communication between applications running on the computer device and the wireless communication network via the wireless modem device; (d) using the proxy to move data traffic from the kernel protocol stack to the proprietary protocol stack; (e) launching applications stored on the wireless modem device as portable applications.
  • The invention more generally relates to a method for connecting a computer device to a communication network, the host computer device being provided with an operating system using a kernel protocol stack to connect to a pool of first communication networks known to an administrator of the computer device, the method comprising the step of introducing a second protocol stack, aside from the kernel protocol stack, for connecting the computer device to a second communication network outside not belonging to the known pool of first communication networks. This may comprise the step of adding a tunnelling protocol to the second protocol stack without mediation of the administrator. Preferably, the second protocol stack is introduced by running a proxy server application with predefined connection parameters on the computer device, the proxy server application redirecting data traffic between the computer device and the second communication network from the kernel protocol stack to the second protocol stack.
  • BRIEF DESCRIPTION OF THE DRAWING(S)
  • The invention will be further elucidated by means of the following description and the appended drawings.
  • FIG. 1 shows a general view with the main components of a preferred embodiment of the invention.
  • FIGS. 2 and 3 respectively show separate views of the data plane and the control plane of the embodiment of FIG. 1.
  • FIG. 4 shows a possible flow diagram for a preferred embodiment of the invention.
  • DETAILED DESCRIPTION
  • The present invention will be described with respect to particular embodiments and with reference to certain drawings but the invention is not limited thereto but only by the claims. The drawings described are only schematic and are non-limiting.
  • Furthermore, the terms first, second, third and the like in the description and in the claims, are used for distinguishing between similar elements and not necessarily for describing a sequential or chronological order. The terms are interchangeable under appropriate circumstances and the embodiments of the invention can operate in other sequences than described or illustrated herein.
  • Moreover, the terms top, bottom, over, under and the like in the description and the claims are used for descriptive purposes and not necessarily for describing relative positions. The terms so used are interchangeable under appropriate circumstances and the embodiments of the invention described herein can operate in other orientations than described or illustrated herein.
  • The term “comprising”, used in the claims, should not be interpreted as being restricted to the means listed thereafter; it does not exclude other elements or steps. It needs to be interpreted as specifying the presence of the stated features, integers, steps or components as referred to, but does not preclude the presence or addition of one or more other features, integers, steps or components, or groups thereof. Thus, the scope of the expression “a device comprising means A and B” should not be limited to devices consisting only of components A and B. It means that with respect to the present invention, the only relevant components of the device are A and B.
  • 1. INTRODUCTION
  • Problem Definition: to provide a way to achieve USB (or other interface) modem functionality in any computer (Operating system independent) without leaving a footprint (Zero-Footprint). This means that the need can be avoided to install drivers and/or applications on PC's to give USB modem connectivity. This also means that the need can be avoided for the end user to have administrator rights on the computer. An advantage is the ease of use of e.g. USB modem products which can even be allowed usage in restricted conditions. The invention can give the end user connectivity on any personal computer (PC) without interfering on the PC itself.
  • A preferred solution according to the invention is to combine existing standard methods found in current Operating Systems (OS) to achieve the Zero Footprint objective. The concepts involved in this preferred solution are:
  • Use of existing USB class drivers
  • Use of a user space TCP/IP stack
  • Use of a proxy between kernel and user space TCP/IP stack
  • Use of portable applications running from a mass storage device.
  • Usually, the user needs to install proprietary drivers before he/she can use a USB network device. These drivers present a network/modem interface (+some other control interfaces) to the OS. In some OSes (i.e. Linux and Mac OS X), it is possible to use existing USB class drivers (e.g. USB CDC ACM and USB CDC Ethernet) already present in the OS but Windows OSes require some extra files and administrator rights to use these network class drivers. To avoid this, we propose to use other USB class drivers, not exhibiting a network/modem interface but supported without any extra installation in all OSes. The challenge is then to reroute network requests/answers from/to the applications. The normal flow would be to reroute the network request/packet at the bottom of the TCP/IP stack by creating a new network interface which would take packets from/to the TCP/IP stack and transfer them to the network device. But this creation of network interface requires administrator rights and thus is not possible for a full Zero Footprint concept which is aimed at in this preferred embodiment of the invention. In order to achieve this aim, a proprietary TCP/IP stack, running in user space, is used instead of the standard one available in host OSes. This enables to tune the proprietary TCP/IP stack to use the chosen USB class driver without requiring administrator rights. Standard network applications are built using the Socket interface and dynamic library which would then link it to the standard TCP/IP stack available on the OSes. According to this preferred embodiment of the invention they are linked to the proprietary TCP/IP stack and thus, for avoiding to have to modify/recompile the applications, preferably a Proxy is used which routes the information from the local host interface, connected to the host OS TCP/IP stack, to the proprietary stack. The applications are preferably modified by the configuration of a Proxy. The applications are preferably launched from the mass storage device as portable applications, which can avoid that any traces are left on the host OS.
  • A preferred implementation is discussed below, named the “ZeroFootprint solution”.
  • 2. TECHNICAL OVERVIEW
  • 2.1. Introduction
  • A general view with the main interfaces exposed is shown in FIG. 1. From a protocol point of view, FIGS. 2 and 3 give a separate view of respectively the data plane and the control plane.
  • The ZeroFootprint solution is based on mainly 5 elements:
      • a host/modem interface (“USBGo” 6) using the USB/HID protocol (7) to transport AT data (9) and IP data (8);
      • an external TCP/IP stack (5) configured to send IP data through the above mentioned USB/HID channel (7);
      • a TCP/IP proxy (1) configured to translate host TCP/IP stack (4) into external TCP/IP stack (5);
      • a Connection Manager (“CM” 2) able to open a connection through the interface provided by the proxy;
      • a program launcher and portable applications (3), a.o. a web browser application.
  • 2.2 Generic Description/Use Case
  • 1. The user plugs the USB modem (below also referred to as “the modem device”. At this point, the modem presents itself as a USB modem with VID/PID. Additionally, this solution builds on top of one of the default (non network) USB HID device class drivers available in the most common OS (Windows XP, Vista, Mac OSX and Linux). At this point, there are two alternatives on how the OS can react. If the USB modem drivers have not been installed, the OS recognizes the device as a MSD+HID generic device (the device is configured for presenting itself this way) and therefore loads those drivers. Alternatively, the USB modem drivers might have been installed, and then these drivers will handle the device. But let's concentrate on the ‘nomadic’ mode, in which OS generic drivers are used. At this point, the USB modem presents itself as a USB Mass Storage Device (10) presenting a CD Rom (exposing flash memory), a Generic Volume (exposing microSD) and a 3rd Generic Device to transport control and TCP/IP data between the host OS and the USB modem. Immediately after this configuration is shown in the OS, and now assuming a Windows OS, the CD Rom has an autorun that launches a launcher in which the user has the possibility to launch amongst other applications a web browser (e.g. Firefox) and a Connection Manager (CM). This launcher is based on portable application principles, as it is also done with other applications.
  • 2. The user starts the Connection Manager and starts a connection. The Connection Manager opens a serial virtual port (interface provided by a proxy running from the modem device) to be able to send AT commands and therefore opening a packet data protocol (PDP).
  • 3. When the connection is established using AT commands, a PDP is created and the network will return a set of IP configuration parameters. These network parameters are passed to a proprietary proxy server that contains an embedded TCP/IP stack that is adapted to work with the USB HID interface to pass IP and control data. This proxy sits also on top of the standard windows sockets to be able to listen to incoming request to the localhost (see following step).
  • 4. The user starts the webbrowser and opens a site (e.g. http://www.google.com). This webbrowser is configured to use the previously mentioned proxy on the localhost. When the proxy receives the request, it will use the second proprietary interface (with the embedded TCP/IP stack) to transmit/receive data to/from the network.
  • 2.3 USB
  • 2.3.1 USB Endpoints and Switching Mechanism
  • Preferably, the ZeroFootprint capable devices offer the capabilities to work in dual mode, meaning that ZeroFootprint functionality can be used when no drivers are installed, and Standard (legacy) functionality can be used when drivers are installed. In the two cases, different USB endpoint structures are used.
  • A switching mechanism allows a ZeroFootprint device to present itself as a USB/HID+MSD device or USB modem device, depending on the availability of drivers in the system. The USB device can thus expose its USB interface in different ways: (1) A composite device with USB HID and USM Mass Storage Unit (UMS) device with UMS and HID USB ID; (2) UMS device with 3G USB ID.
  • 2.3.2 USBGo Interface
  • The USBGo interface is the interface enabling communication between the USB modem and the computer. The USBGo uses USB-HID as a lower layer to avoid having to install a specific driver for the modem.
  • The USBGo interface supports multiple channels, so that separate channels can be used for control data and user data. A flow control mechanism allows any endpoint of the USBGo interface to stop/restart data in a given channel, in case that it cannot handle the amount of data received. The flow control mechanism can be relatively simple as it is only used for the data channel(s). The control channel is used to send enable/disable frames for a given data channel.
  • In this way, the USBGo interface is tuned and optimized to allow transferring data with a minimum guaranteed speed between modem device and host computer and transferring data in packages on an event driven base. It optimises the USB resources (for instance the available bandwidth of the “USB/HID”) and the power consumption on the USB physical layer.
  • 2.4 Mass Storage Devices
  • The ZeroFootprint concept doesn't impose any special requirements on the storage used. The concept provides a virtual CD ROM concept, i.e. a certain amount of read only memory (64 MB) is available to the OS when the modem device is inserted for first time and drivers have not been installed previously. This storage device is presented as a CD-ROM that contains an executable with the drivers/connection manager installer. The concept further provides memory in the form of microSD. This microSD is presented as a mass storage device.
  • The CD-ROM memory part is used to have a permanent copy of the basic applications needed (i.e. launcher, proxy and CM) (+specific drivers installer). Therefore, any configuration file needed by the launcher, proxy or CM is stored/modified on the writable storage device (i.e. microSD). To do so, these applications look for the driver on which the configuration is available. This can be achieved differently in the different OSes. In Windows, the two USB storage devices are under the same USB device (device manager). In Linux and MacOS X: On Unix based OS, the USB mass storage devices can be found under/dev/sdX.
  • 2.6 TCP/IP Stack
  • The host OS TCP/IP stack is used whenever the specific USB modem drivers are installed.
  • The proprietary TCP/IP stack used in the ZeroFootprint mode to bridge between the host OS TCP/IP stack and the USB/HID interface created to send data.
  • 2.7 Proxy
  • 2.7.1 General
  • Proxy is started at the beginning (from the launcher or any other method). As default configuration, it is using the standard OS TCP/IP stack, and will change to use the external TCP/IP stack whenever notified by the CM. For example, the proxy can restart itself using a different stack when the CM requests the change.
  • 2.7.2 Interface CM—Proxy
  • To be able to send AT commands and configure the external TCP/IP protocol for the USB/HID interface, the proxy exposes an interface to 3rd party applications. This interface resembles a serial interface.
  • A possible flow diagram is the following (precondition—no drivers installed):
  • 1. User inserts modem device
  • 2. CD autolaunch launches Launcher
  • 3. Launcher launches proxy
  • 4. Proxy starts according to default configuration
  • a. Default host TCP/IP stack
  • 5. Proxy starts to listen for client request (virtual serial port)
  • 6. User launches Connection Manager
  • 7. CM connects to Proxy
  • 8. Proxy returns OK(Restarting)
  • 9. Proxy restarts using USB/HID (external TCP/IP) interface
  • 10. CM reconnects to proxy and starts to send AT commands
  • 11. ( . . . )
  • 12. User stops connection
  • 13. CM closes connection with Proxy
  • 14. Proxy returns OK(Restarting)
  • 15. Proxy restarts using default host OS TCP/IP
  • 2.8 Programs Launcher
  • The Program Launcher (launcher from now on) is responsible to provide an interface for the user to be able to launch the applications residing in the memory of the USB modem, and allow the modification of some basic settings. The launcher can be based on the functionality already provided by other 3rd party launchers.
  • For the launcher to recognise the list of programs available in the USB memory, the list is preferably generated dynamically. For doing that, the applications are copied into the modem device following a certain structure, and information related to the application and how it's shown in the launcher is made available.
  • 2.9 Connection Manager
  • The CM listens for various insertion events and the queries the current list of devices. It looks for VID/PID and compares with its internal database.
  • 2.10 Portable Applications
  • It is preferred to use portable applications which run from the modem device without the need to install anything on the host (ideally, also no registry change is allowed). For applications to be able to run on the ZeroFootprint mode, support for communication with the proxy is provided.
  • 3. FLOW DIAGRAM
  • Another basic flow using the ZeroFootprint (USB/HID) concept is shown in FIG. 4. The user inserts the modem device (“stick”). The following steps are performed.
      • 1: The OS (“Windows”) looks for a device specific driver and finds none. The OS links the USB/HID driver to the modem device.
      • 2: Part of the memory on the modem device is presented as a CD-ROM. The OS launches “autorun” in the same way as it is commonly done when an OS detects a CD-ROM.
      • 3: Calling autorun launches the Program Launcher.
      • 4: The Launcher launches the proxy server application (provided on the modem device), which starts to listen on the localhost for incoming client requests. The proxy provides an open interface for 3rd party applications, such as the Connection Manager (CM).
      • 5: The user launches the CM (provided on the modem device). The CM does not detect any legacy driver mode and assumes that the driver mode using USB/HID is active.
      • 6: The CM opens a virtual serial port. The CM passes information about the modem device found to the Proxy.
      • 7: The CM sends AT command to the proxy.
      • 8: The proxy forwards the AT command (over the USB/HID interface) to the modem device, which performs the step for creating a PDP and receiving an IP configuration (these steps are well known in the art and therefore need not be described in detail here).
      • 9: The modem device passes the IP configuration on to the CM, which sends AT commands to the modem device to establish the PDP.
      • 10: The CM asks the proxy to configure the external TCP/IP stack.
      • 11: The user launches a web browser application (e.g. modified version of Firefox).
      • 12: The web browser application is preconfigured to use the external TCP/IP stack provided by the proxy.
      • 13: IP data is exchanged between the modem device and the proxy through the external TCP/IP stack (“LWIP”) and the USB/HID interface.
      • 14: The user disconnects, using the CM, which sends commands to the modem device to close the connection.
      • 15: The CM tells the proxy to unconfigure the IP stack.
      • 16: The user safely removes the modem device from the host, which triggers the modem device to close the launcher (step 17), which closes the CM (step 18), which tells the proxy to close the connection (step 19) and subsequently closes the proxy (step 20).
    4. ALTERNATIVE EMBODIMENTS
  • The principles of the embodiment described above can also be used in the following alternative embodiments of the invention, namely to connect a computer device to a second (wireless or non-wireless) communication network which does not belong to a pool of first (wireless or non-wireless) communication networks known to an administrator of the computer device. In a similar way as described above, a second protocol stack can be introduced next to the kernel protocol stack provided by the OS on the computer, to allow applications running on the computer device to get outbound connection to the second communication network. In a similar way as described above, a proxy server application with predefined connection parameters for using the second communication network can be used to tell the applications to redirect data traffic between the computer device and the second communication network from the kernel protocol stack to the second protocol stack.
  • In alternative embodiments, a tunnelling protocol stack, such as for example IPSEC, can be added to the second protocol stack (or also the proprietary protocol stack for the wireless modem device described above), for establishing secure networking sessions. Likewise, this does not require mediation of the administrator.

Claims (7)

1. A method for connecting a computer device to a communication network, the computer device being provided with an operating system using a kernel protocol stack to connect to a pool of first communication networks known to an administrator of the computer device, comprising:
introducing a second protocol stack, aside from the kernel protocol stack, for connecting the computer device to a second communication network not belonging to the known pool of first communication networks.
2. A method according to claim 1, further comprising adding a tunnelling protocol to the second protocol stack without mediation of the administrator.
3. A method according to claim 1 wherein the second protocol stack is introduced by running a proxy server application with predefined connection parameters on the computer device, the proxy server application redirecting data traffic between the computer device and the second communication network from the kernel protocol stack to the second protocol stack.
4. A computer device, comprising:
circuitry configured to use an operating system using a first protocol stack to connect the computer device to a pool of first communication networks known to an administrator of the computer device; and
circuitry configured to utilize a second protocol stack to connect the computer device to a second communication network outside not belonging to the known pool of first communication networks.
5. The computer device of claim 4 wherein the first protocol stack is a kernel protocol stack.
6. The computer device of claim 4, further comprising circuitry configured to add a tunneling protocol to the second protocol stack without mediation of the administrator.
7. The computer device of claim 4, further comprising circuitry configured to run a proxy server application with predefined connection parameters on the computer device, the proxy server application redirecting data traffic between the computer device and the second communication network from the first protocol stack to the second protocol stack.
US13/586,536 2008-04-04 2012-08-15 Wireless modem device usable on computer device without driver installation Abandoned US20120311191A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/586,536 US20120311191A1 (en) 2008-04-04 2012-08-15 Wireless modem device usable on computer device without driver installation

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
EP08154116 2008-04-04
EP08154116.1 2008-04-04
EP08166258.7 2008-10-09
EP08166258 2008-10-09
US12/419,101 US8250244B2 (en) 2008-04-04 2009-04-06 Wireless modem device usable on computer device without driver installation wherein computer has a proxy server application and pre-installed generic drivers
US13/586,536 US20120311191A1 (en) 2008-04-04 2012-08-15 Wireless modem device usable on computer device without driver installation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/419,101 Continuation US8250244B2 (en) 2008-04-04 2009-04-06 Wireless modem device usable on computer device without driver installation wherein computer has a proxy server application and pre-installed generic drivers

Publications (1)

Publication Number Publication Date
US20120311191A1 true US20120311191A1 (en) 2012-12-06

Family

ID=40743771

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/419,101 Expired - Fee Related US8250244B2 (en) 2008-04-04 2009-04-06 Wireless modem device usable on computer device without driver installation wherein computer has a proxy server application and pre-installed generic drivers
US13/586,536 Abandoned US20120311191A1 (en) 2008-04-04 2012-08-15 Wireless modem device usable on computer device without driver installation

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/419,101 Expired - Fee Related US8250244B2 (en) 2008-04-04 2009-04-06 Wireless modem device usable on computer device without driver installation wherein computer has a proxy server application and pre-installed generic drivers

Country Status (2)

Country Link
US (2) US8250244B2 (en)
EP (2) EP2508987A1 (en)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799521B2 (en) * 2006-11-29 2014-08-05 Sony Corporation System and method for receiving control commands at a peripheral device
GB0624582D0 (en) * 2006-12-08 2007-01-17 Visible Computing Ltd USB autorun devices
US8452858B2 (en) * 2009-05-15 2013-05-28 Novatel Wireless, Inc. Method and apparatus for loading landing page
CN101655823B (en) * 2009-06-12 2012-12-19 中兴通讯股份有限公司 Realizing method, operating method and system free of installing data card drive
CN101794234A (en) * 2010-02-04 2010-08-04 中兴通讯股份有限公司 Wireless data card, communication method between same and computer side and system thereof
FR2959329B1 (en) * 2010-04-23 2012-08-24 Jeulin Sa DATA ACQUISITION INTERFACE USING HID TYPE COMMUNICATION PROTOCOL
GB201010674D0 (en) * 2010-06-24 2010-08-11 Avin Electronics Ltd Power control module
CN102655025B (en) * 2011-03-04 2015-12-09 安凯(广州)微电子技术有限公司 The System and method for of burning baseband chip under a kind of dual chip scheme
US8756348B2 (en) 2011-09-14 2014-06-17 Barco N.V. Electronic tool and methods for meetings
US11258676B2 (en) 2011-09-14 2022-02-22 Barco N.V. Electronic tool and methods for meetings
CN103931175B (en) 2011-09-14 2018-04-20 巴科股份有限公司 electronic tool and method for conference audio
US10965480B2 (en) 2011-09-14 2021-03-30 Barco N.V. Electronic tool and methods for recording a meeting
US9083769B2 (en) 2011-09-14 2015-07-14 Barco N.V. Electronic tool and methods for meetings
US10050800B2 (en) 2011-09-14 2018-08-14 Barco N.V. Electronic tool and methods for meetings for providing connection to a communications network
WO2013068033A1 (en) 2011-11-07 2013-05-16 Option Establishing a communication session
US8984174B2 (en) * 2011-12-06 2015-03-17 Qualcomm Incorporated Method and a portable computing device (PCD) for exposing a peripheral component interface express (PCIE) coupled device to an operating system operable on the PCD
US9547499B2 (en) * 2011-12-09 2017-01-17 Microsoft Technology Licensing, Llc Device configuration with cached pre-assembled driver state
US8844015B2 (en) * 2012-01-31 2014-09-23 Hewlett-Packard Development Company, L.P. Application-access authentication agent
US9565615B2 (en) * 2012-05-16 2017-02-07 Qualcomm Incorporated Evolved hybrid internet protocol (IP) multimedia subsystem (IMS) architecture
US8959534B2 (en) 2012-05-29 2015-02-17 Mcci Corporation Enabling legacy applications to achieve end-to-end communication with corresponding legacy device services
GB2507497B (en) 2012-10-30 2015-01-14 Barclays Bank Plc Device and method for secure memory access
GB2507596B (en) 2012-10-30 2014-09-17 Barclays Bank Plc Secure computing device and method
US9182996B2 (en) 2013-03-12 2015-11-10 Midnight Mosaic Llc Methods and apparatus for USB tunneling through USB printer device class
US10827212B2 (en) 2017-08-02 2020-11-03 Delta Electronics, Inc. Image transmission equipment and image transmission method
US10491760B1 (en) 2018-07-05 2019-11-26 Delta Electronics, Inc. Image transmission device, image transmission method, and image transmission system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704824B1 (en) * 1999-07-27 2004-03-09 Inline Connection Corporation Universal serial bus adapter with automatic installation
US20090158148A1 (en) * 2007-12-17 2009-06-18 Microsoft Corporation Automatically provisioning a WWAN device
US7664996B2 (en) * 2007-01-19 2010-02-16 Kyocera Corporation Diagnostic operations associated with wireless modem
US7882377B2 (en) * 2007-04-30 2011-02-01 Hewlett-Packard Development Company, L.P. Electronic device with flexible processing system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826027A (en) * 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US6529992B1 (en) * 1999-07-26 2003-03-04 Iomega Corporation Self-contained application disk for automatically launching application software or starting devices and peripherals
US6986038B1 (en) * 2000-07-11 2006-01-10 International Business Machines Corporation Technique for synchronizing security credentials from a master directory, platform, or registry
US6754725B1 (en) * 2001-05-07 2004-06-22 Cypress Semiconductor Corp. USB peripheral containing its own device driver
US7313678B2 (en) * 2003-03-05 2007-12-25 Broadcom Corporation Installation procedure for wireless human interface device
US7587498B2 (en) * 2002-05-06 2009-09-08 Cisco Technology, Inc. Methods and apparatus for mobile IP dynamic home agent allocation
US7299422B2 (en) * 2002-05-08 2007-11-20 Migo Software, Inc. System and method for transferring personalization information among computer systems
US20040098596A1 (en) * 2002-11-15 2004-05-20 Rainbow Technologies, Inc. Driverless USB security token
US7239877B2 (en) * 2003-10-07 2007-07-03 Accenture Global Services Gmbh Mobile provisioning tool system
US7620667B2 (en) * 2003-11-17 2009-11-17 Microsoft Corporation Transfer of user profiles using portable storage devices
US7865878B2 (en) * 2006-07-31 2011-01-04 Sap Ag Method and apparatus for operating enterprise software from a detachable storage device
US8799521B2 (en) * 2006-11-29 2014-08-05 Sony Corporation System and method for receiving control commands at a peripheral device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704824B1 (en) * 1999-07-27 2004-03-09 Inline Connection Corporation Universal serial bus adapter with automatic installation
US7664996B2 (en) * 2007-01-19 2010-02-16 Kyocera Corporation Diagnostic operations associated with wireless modem
US7882377B2 (en) * 2007-04-30 2011-02-01 Hewlett-Packard Development Company, L.P. Electronic device with flexible processing system
US20090158148A1 (en) * 2007-12-17 2009-06-18 Microsoft Corporation Automatically provisioning a WWAN device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TRAPANI, G. "Geek to Live: Build your PC on a stick with MojoPac", October 18, 2006, XP002542770, http://lifehacker.com12083381geek-to-live--build-your-pc-on-a-stick-with-mojopac, 3 pages. *

Also Published As

Publication number Publication date
US8250244B2 (en) 2012-08-21
US20100064063A1 (en) 2010-03-11
EP2508987A1 (en) 2012-10-10
EP2107463A3 (en) 2009-11-18
EP2107463A2 (en) 2009-10-07

Similar Documents

Publication Publication Date Title
US8250244B2 (en) Wireless modem device usable on computer device without driver installation wherein computer has a proxy server application and pre-installed generic drivers
Zhang et al. Transparent computing: A new paradigm for pervasive computing
US9207959B2 (en) Creating a virtual disk using set of binding information of a paravirtual network interface card and a physical network interface card
US8627413B2 (en) System and method for authorization and management of connections and attachment of resources
US9430256B2 (en) Method and apparatus for migrating virtual machines between cloud computing facilities using multiple extended local virtual networks and static network addresses
JP5885834B2 (en) Method and apparatus for remotely delivering a managed USB service via a mobile computing device
US9081601B2 (en) Virtual mobile infrastructure and its base platform
EP2622459B1 (en) Virtual desktop configuration and operation techniques
US9882825B2 (en) Method and system for securely transmitting volumes into cloud
US9414433B2 (en) System and method for remotely operating a wireless device using a server and client architecture
ES2690474T3 (en) Public cloud connection with private network resources
US11132187B2 (en) Bare metal provisioning of software defined infrastructure
WO2010078769A1 (en) Access method and access apparatus for network file system
EP3117314B1 (en) Method and system for securely transmitting volumes into cloud
KR20120115519A (en) Virtual storage target offload techniques
US20150067399A1 (en) Analysis, recovery and repair of devices attached to remote computing systems
US8813252B2 (en) Request based license mode selection
JP2008210115A (en) System for operating usb device of local terminal on remote computer, method therefor and program therefor
US20170329739A1 (en) Methods and systems for loading a boot agent on a router network device
WO2012142838A1 (en) Resource sharing system, mobile terminal and resource sharing method
TW201222411A (en) A method, a system and a computer program product for remote OS installation with monitoring
Anuzelli et al. Dynamips/dynagen tutorial
EP1235156B1 (en) Remote management unit with interface for remote data exchange
US20170351558A1 (en) Method and Apparatus for Determining System Information in a Device Having a Plurality of Processors, each Including Virtual Machines and some Located on Separate Insertable Boards
CN110427196B (en) Installation method and device of Operating System (OS)

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION