System and method for establishing network connection

Information

  • Patent Grant
  • 8027339
  • Patent Number
    8,027,339
  • Date Filed
    Monday, September 29, 2008
    16 years ago
  • Date Issued
    Tuesday, September 27, 2011
    13 years ago
Abstract
A portable router for enabling a data communication terminal to be location and device transparent includes: a first module for storing a digital communication address of a user; a second module for detecting a data communication network location to which the terminal is connected; a third module for detecting communication devices that are connected to the terminal; a fourth module for establishing data communication between the terminal and the network such that the communication address of the location from the second module is automatically converted to the communication address of the user from the first module; and a fifth module for automatically selecting a communication device which was detected by the third module for use by the fourth module.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


The present invention is generally related to the art of network communications.


2. Background Art


User digital communication addresses such as internet or IP addresses are conventionally associated with a fixed physical location, similar to a user's business telephone line. However, portable communication devices such as laptop computers are becoming increasingly popular, and it is common for a user to access the internet from locations as diverse as hotel rooms and airplanes.


Digital communication networks are set up to route communications addressed to a communication or network address to an associated destination computer at an established physical location. Thus, if a laptop computer is moved to a remote location, communications to and from the laptop computer may not reach the new physical location.


For a computer (host) to communicate across a network (e.g., the internet), software protocols (e.g., Transport Control Protocol/Internet Protocol (TCP/IP)) must be loaded into the host. A host computer sends information (i.e., packets of data) to another destination computer via devices on the network (routers) which receive the packets and send the packets to the network or segment of the destination host.


The destination host will route replies back using a similar process. Each host computer and router must therefore be configured to send the packets of data to an appropriate router to reach the intended destination. However, a router will receive the packets only if the host computers specifically send (address) the packets to that router at the link layer of the communication protocol. If a host is configured incorrectly (bad address or address of a router not on the local network), then the host computer and router will be unable to communicate, i.e., the router will not listen to the host or will “drop” packets.


With the advent of mobile computers (laptops) and the desire to plug them into various networks to gain access to the resources on the network and internet, a mobile computer must be reconfigured for each network. Traditionally this new configuration can be done either (i) manually in software on the mobile computer (usually causing the mobile computer to be restarted to load the new configuration), or (ii) with a new set of protocols which must be utilized on the mobile computer to obtain the configuration information from a device on the network to which the computer is being connected. When new services (protocols) are created to add functionality to the host computers, these new protocols may need to be updated in the host computers or routers, depending upon the type of new functionality being added.


SUMMARY OF THE INVENTION

In accordance with the present invention, a “Nomadic” router or translator enables a laptop computer or other terminal which is configured to be connected to a local home network to be connected to any location on the internet or other digital data communication system. The nomadic router automatically and transparently reconfigures packets sent to/from the terminal for its new location by processing outgoing and incoming data.


The nomadic router includes a processor which appears as the home network to the terminal, and appears as the terminal to the communication system. The terminal has a terminal address, the nomadic router has a router address, and the terminal transmits outgoing data to the system including the terminal address as a source address. Whether or not the message is addressed to the nomadic router at the link layer, the processor intercepts the message and translates the outgoing data by replacing the permanent address with the router address as the source address. Incoming data intended for the terminal from the system includes the translator address as a destination address, and the processor translates the incoming data by replacing the translator address with the permanent address as the destination address.


The terminal can be directly connected to a point on a local network, and the nomadic router connected to another point on the network. The nomadic router can be employed to implement numerous applications including nomadic e-mail, network file synchronization, database synchronization, instant networking, a nomadic internet, mobile virtual private networking, and trade show routing, and can also be utilized as a fixed nomadic router in hotels, or multi-dwelling units, or multiple tenant units, for example.


The nomadic router can be implemented as software and/or hardware. The nomadic router establishes location and device transparency for a digital communication terminal such as a laptop computer. The terminal can be connected to any of a variety of networks and locations which can employ a variety of communication interface devices.


The nomadic router automatically converts the actual location address to a unique communication address for the user such as an internet address, such that the terminal performs communications originating from the communication address regardless of the physical location of the terminal.


The nomadic router includes software and services which can be packaged in a personal portable device to support a rich set of computing and communications capabilities and services to accommodate the mobility of nomads (users) in a transparent, integrated, and convenient form. This is accomplished by providing device transparency and location transparency to the user.


There is a vast array of communication device alternatives such as Ethernet, Wireless LAN, and dialup modem among which the user switches when in the office, moving around the office, or on the road (such as at a hotel, airport, or home). The device transparency in the nomadic router provides seamless switching among those devices (easily, transparently, intelligently, and without session loss). The location transparency support in the nomadic router prevents users from having to reconfigure (e.g., IP and gateway address) their network device (laptop) each time they move to a new network or subnetwork.


The nomadic router provides a separation of location and identity by providing a permanent IP address to the network device (host). The nomadic router provides independence between the location, communication device, and the host operating system. There are no new standards which need to be adopted by the networking community. All specialized processing is stored internally to the nomadic router with standard interfaces to the host device and various communication devices.


The nomadic router supports the migration to Network Computers by providing identity and security services for the user. The nomadic router also supports multiple parallel communication paths across the communications network for soft handoff, increased throughput, and fault tolerance by supporting multiple communication substrates.


A portable router for enabling a data communication terminal to be location and device transparent according to the present invention, comprises: a first module for storing a digital communication address of a user; a second module for detecting a data communication network location to which the terminal is connected; a third module for detecting communication devices that are connected to the terminal; a fourth module for establishing data communication between the terminal and the network such that the communication address of the location from the second module is automatically converted to the communication address of the user from the first module; and a fifth module for automatically selecting a communication device which was detected by the third module for use by the fourth module.


The nomadic router utilizes a unique process embodied in a self-contained apparatus which manipulates the packets of data being sent between the host computers and routers. This process provides an intelligent active universal translation of the content of the packets being transmitted between the host computer and nomadic router. The translation allows the host computer to communicate with the nomadic router, which intercepts packets from the host, even when the host computer is not configured to communicate with the nomadic router.


This is achieved by the nomadic router pretending to be the router for which the host is configured, and by the nomadic router pretending to be the host with which the router expects to communicate. Therefore, the nomadic router supports the mobility of computers in that it enables these computers to plug into the network at different locations (location independence) without having to install, configure, or utilize any net protocols on the mobile computer.


The mobile computer continues to operate without being aware of the change in location or configuration of the new network, and the nomadic router translates the data allowing the host to think that it is communicating with its home router. By putting this process in a self-contained apparatus, the deployment of new protocols can be performed independently of the host computer and its operating system (host independent).


All specialized processing and translation is stored internally in the nomadic router with standard interfaces to the host device and various communication devices. Thus, no new standards need be adopted. By removing the complexity of supporting different network environments out of the mobile computer and into this self-contained apparatus, the nomadic router allows the host computer to maintain a minimal set of software protocols and functionality (e.g., the minimum functionality typically installed in network computers) to communicate across the network.


The nomadic router translation ability also enables the use of alternate communication paths (device independence) without the host computer being aware of any new communication device that utilizes an alternate communication path. The translation of the packets is done not just at the physical, link, or network layer of the protocol stack but at the transport and application layers as well. This allows the network card, protocol stack, and application running on the host computer to be independent of the network environment and configuration.


As an example of the communication device independence, the translation allows soft handoff, increased throughput, and fault tolerance by supporting multiple communication substrates. In addition, the nomadic router translation ability provides a flexible process for deploying enhanced nomadic and mobile computing software and services such as filtering of packets and determining which packets should be allowed to be transmitted between the mobile computer and the nomadic router or local area network (Internal Firewall).


The router apparatus can be: (i) carried with the mobile user (e.g., using an external box); (ii) attached to the mobile computer (e.g., PCMCIA card); (iii) installed inside the mobile computer (e.g., a chip in the laptop); (iv) or installed into the remote network infrastructure to provide network access for any mobile computer (e.g., a box which plugs into the remote or foreign local area network translating packets being sent between the host and its router, or a chip which is installed in routers on the remote network). The nomadic router can also be provided in the form of software which is loaded into and run in the mobile computer or another computer or router on a network.


These and other features and advantages of the present invention will be apparent to those skilled in the art from the following detailed description, taken together with the accompanying drawings, in which like reference numerals refer to like parts.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a diagram illustrating one implementation of a nomadic router positioned between the host computing device and various communication devices using standard interfaces;



FIG. 2 is a diagram illustrating a basic nomadic router architecture, which is referred to as the hardware implementation architecture;



FIG. 3 is a flowchart illustrating a configuration overview of the basic steps performed when a host device is attached to the present nomadic router and when a network interface is attached to the router;



FIG. 4 is a flowchart illustrating automatic adaptation to the host device when the first data packet from the host is sent to a home network router or when an activation interrupt or signal is received;



FIG. 5 is a flowchart illustrating a process initializing and checking the various communication device interfaces for initialization, activation, etc.;



FIG. 6 is a diagram illustrating a basic nomadic router architecture when implemented as software in the host device;



FIGS. 7A to 7G are diagrams illustrating protocol stack implementations for various network devices, with the translation function performed for all layers of the protocol stack in the nomadic router;



FIG. 8 is a flowchart illustrating a proxy ARP packet interception and host reconfiguration process;



FIGS. 9A and 9B provide a flowchart illustrating a translation process which takes place in the host computer and nomadic router at various levels in the protocol stack;



FIG. 10 is a diagram illustrating the architecture of the nomadic router implemented as a hardware device including a microcontroller and a non-volatile memory for storing algorithms implementing the translation function;



FIG. 11 is a diagram illustrating the architecture of the nomadic router apparatus implemented as an Application Specific Integrated Circuit (ASIC) chip;



FIGS. 12A to 12E are diagrams illustrating host and network interface modes in which the nomadic router is able to operate;



FIG. 13 is a simplified perspective view illustrating the nomadic router as implemented in a self-contained box which connects onto a local area network via a network interface port and has multiple ports to connect to host computers;



FIG. 14 is a simplified perspective view illustrating the nomadic router apparatus as implemented on a PCMCIA Type II card where the nomadic router plugs into the host computer's type II slot and the communication card device, of Type II, plugs directly into the nomadic router so both may be powered and stored in the portable host computer; and



FIG. 15 is a simplified perspective view illustrating the nomadic router as implemented on a PCMCIA Type II cared where the nomadic router plugs into the host computer via a type II interface slot and where the communication card device, Type II, plugs into the nomadic router type II card.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)


FIG. 1 illustrates a “nomadic” translator or router 10 embodying the present invention as being connected between a host device or computer 12 and a communications device 14. Host device 12 is a laptop computer or other fixed or mobile digital data communication terminal which is sufficiently portable or mobile that it can be carried from one location to another. A laptop computer, for example, can be used in any convenient location such as an airplane, customer's office, home, etc.


Communications device 14 can be part of any type of communication system to which host computer 12 can be connected. Such communication systems include, but are not limited to, local networks, wide area networks, dial-up and direct internet communications, etc. In a typical application, the communications device will connect the host computer to a local network which itself is connected to the internet. Thus, host device 12 is able to communicate with an unlimited number of networks and nodes which are themselves interconnected with routers, switches, bridges, etc. in any known manner.


Router 10 includes a terminal interface 10a which normally is used to connect router 10 to host device 12, and a system interface 10b which connects router 10 to communications device 14. Router 10 generally includes a processor consisting of hardware and/or software which implements the required functionality. Router 10 is further configured to operate in an alternate mode in which host device 12 is connected directly to a network, and router 10 is also connected to a point in the network via system interface 10b. In this case, terminal interface 10a is unused.


Although device 10 is described herein as being a router, it will be understood that router 10 is not a conventional router in that it includes the capability for providing interconnectability between networks. Instead, router 10 is essentially a translator which enables host device 12 to be automatically and transparently connected to any communications device 14, and process incoming and outgoing data for device 12.


Host device 12 may be provided with a permanent internet address which conveniently need not be changed in accordance with the present invention. Device 12 is initially configured to communicate with a particular gateway or other home device at its base location. The gateway has a link layer address which device 12 attempts to locate when it is connected to any communication system. Without the functionality of nomadic router 10, host device 12 would not be able to operate at a remote location because it would not find its gateway.


It will be understood that the term “home” does not relate to a residence, but is the network, gateway or other communication device or system to which the terminal is normally connected and which corresponds to the home internet or IP address.



FIG. 1 further illustrates a top protocol layer 16 representing host computer device 12 which generates and consumes data that is transferred through communications device 14. Interface 16 is below the IP layer, and above the link layer in the typical OSI/ISO model. In the middle is a layer 18, which represents router 10, whose function is to adaptively configure and utilize the underlying communications device and provide router support. A lower layer 20 is a physical communication which carries out the communication (potentially wire-lined internet based, ad-hoc or wireless) as made available and determined for use by the nomadic router or user. Between router layer 18 and layers 16 and 20 are interfaces 22 and 24 which router 10 identifies and configures dynamically.


The present invention operates with host computers, routers, and other network devices through well-defined standard interfaces such as specified by the IETF (Internet Engineering Task Force) and IEEE standardization committees. These standards specify the packet format, content, and physical communication characteristics. As shown in FIG. 7A, host computers have to be configured at various layers of the protocol stack depending on the communication capabilities and configurations of the current network.


Hubs, as shown in FIG. 7B, provide a well defined interface to connect host computers and network devices by transmitting packets across multiple physical connections. Hubs do not provide any manipulation or translation of the content of the packets being transmitted.


Bridges or switches, as shown in FIG. 7C, provide an intelligent filtering mechanism by which packets are transmitted across multiple physical connections based upon the physical connection the device is connected to, according to the link layer addressing (Media Access Control Address). Bridges and switches do not manipulate the content of the packet and do not provide any higher layer protocol functionality.


Routers, as shown in FIG. 7D, accept packets based upon the destination address at the network layer in the packet. However, the host computer must explicitly address the packet to the router at the link layer. The router will then retransmit the packet across the correct physical connection based upon how it is configured. No modification or translation of the packet is performed at any higher layer of the protocol stack than the network layer.


Firewalls, as shown in FIG. 7E, filter packets at the network and transport layers to allow only certain packets to be retransmitted on the other physical connection. Firewalls do not manipulate the content of the packet, only forward it on to the next hop in the network if it passes the transport (port) or network (IP address) filter.


Proxies and gateways, as shown in FIG. 7F, only receive packets explicitly addressed to them by host computers. They only manipulate packets at the application level. The present nomadic router 10, as shown in FIG. 7G, manipulates and content of the packets at the link, network, transport, and application layers of the protocol stack to provide a translation between the host computer configuration and the configuration of the remote or foreign network to which the host computer is currently attached.


Unlike all other devices shown in FIGS. 7A to 7F, router 10 automatically intercepts and translates packets without the other devices being aware of router 10 or being configured to use it, i.e., without packets being addressed to router 10. The translation algorithms in router 10 which provide this location independence are provided completely internal to router 10. Thus, no new standards need to be developed, accepted, or implemented in host computers 12 or routers 26 to deploy new network services when using the nomadic router.


Whenever a new or different communication device (which includes the link and physical layers) is utilized in a host computer 12, the host computer's network layer must be aware of this new communication device. Since router 10 has its own network interface to the communication device, alternate communication devices can be utilized in router 10 which the host computer 12 can utilize but does not have to be configured to use.


Permanent Addressing not Location Based


Today we communicate with individuals in terms of the location of their communications instruments (for instance, their computer's IP address or their fax machine's phone number). To support mobility and changing communication environments and devices, it is necessary to create an environment where people communicate with other people, and not specifically with the devices they use. To transparently support mobility and adaptivity in a wireless, potentially ad-hoc, communication internetwork, a common virtual network must be provided by an intelligent device or agent which supports the various computing hosts and communication devices.


Nomadic router 10 provides the mapping between the location based IP address used in the internet today and the permanent user based address housed in the host CPU in device 12. This is illustrated in FIG. 2 as “IP Mapping.” This mapping is done without support or knowledge of such mapping by the host CPU or user.


The internet RFC 2002 Mobile IP protocol specifies the mapping between permanent and temporary IP addresses. The unique aspect of the nomadic router is that the Mobile IP protocols are not necessarily running in, or supported by, the host CPU but rather are internal to the nomadic router. The host configuration information, such as IP number, is discovered or determined as illustrated in FIG. 4 and stored in nomadic router 10 as illustrated in FIG. 2 as “Host Info.” This configuration process is overviewed in FIG. 3.


Optional Off-Loaded Processing


As illustrated in FIG. 2, nomadic router 10 can provide off-load communication processing for the host CPU by being physically separate from host device 12. The adaptation, selection, and transportation of information across the network is performed by nomadic router 10. This allows the host terminal or device 12 to utilize the network without having to directly support the network protocols. By having the nomadic router be responsible for adapting to the current network substrate, the host CPU can maintain a higher performance because the routing, adaptation, packetization, etc. algorithms, or packet processing, are performed by router 10.


The nomadic router can also queue, transmit, and receive data independent of whether the host device 12 is available or even attached. CPU 1 built into nomadic router 10 may provide all necessary computing routines to be a fully functional network co-processor independent of the host CPU. This will allow increased battery life for the user because the nomadic router does not have numerous user I/O devices as does the host device 12.


Location Independence


The instant network nomadic router provides the ability to provide ubiquitous and reliable support in a location independent fashion. This removes any burden on the user for device reconfiguration (e.g., IP address configuration, gateway or next hop router address, netmask, link level parameters, and security permissions) or data transmission.


The problem with existing protocol stacks is that communicating devices have to be reconfigured every time the communication environment changes. TCP/IP requires a new network node and gateway number. Appletalk will automatically choose an unused node number and discover the network number, but all open communications are lost and services have to be restarted to begin using the new information.


This occurs, for example, when a PowerBook is plugged into a network, put to sleep, and then powered up in a different network. All network services are restarted upon wakeup, and network applications get confused if they are not restarted. The nomadic router solves this problem by providing temporary as well as permanent network and node numbers similar to that provided by Mobile IP. However, the nomadic router will also work with other protocol stacks (e.g., AppleTalk).


Mobile IP provides location independence at the network level and not at the link level. All link level parameters, which are device specific, will be automatically configured as illustrated in FIG. 5 when a new communications (network interface) device is attached to the nomadic router. The nomadic router completely eliminates the need for manual configuration by adaptively supporting device independence.


Multiple Substrates (Device Independence)


Another innovative feature of the nomadic router is the support for simultaneous use of multiple communication substrates. This is illustrated in FIG. 2 as “Device Selection.” Users should be able to utilize two or more communication substrates, either to increase throughput or to provide soft-handoff capability. This functionality is not supported in today's typical protocol stacks (e.g., TCP/IP or AppleTalk).


For example, via the “network” control panel, the user can select between communications substrates such as EtherTalk, LocalTalk, Wireless, ARA, etc., but cannot remotely login across EtherTalk while trying to print via LocalTalk. Routers are typically able to bridge together various communication substrates, but merging the LocalTalk and EtherTalk networks together is often not desirable for many reasons, including performance and security.


A problem with existing routers is that they require manual configuration and exist external to the node. To overcome this, the nomadic router can support automatic configuration and full router functionality internally. This allows a mobile or nomadic node to adapt to various communication and network devices dynamically, such as when the user plugs in a PCMCIA card or attaches a communications device to the serial port.


Once the nomadic router becomes aware of the available communication devices and activates them, the transport of data across the multiple communication substrates can take place. The unique algorithm and protocol in the nomadic router which chooses the most appropriate device to use, is shown in FIG. 2 and FIG. 5 as part of the “nomadic router Device Checker” through the “nomadic router Device Selection” across each interface.


There are numerous factors that can affect the selection of utilizing one or more devices. Such factors typically include available bandwidth, cost to initiate and maintain connection, power requirements and availability, and user's preference.


Another feature of the nomadic router is the support for alternate or simultaneous use of various communication substrates. This is performed as part of step 5 in FIG. 6 when the source address is that of the communication substrate on which the nomadic router is going to send the packet. Host computers will now indirectly be able to utilize two or more communication substrates, either to increase throughput or to provide soft-handoff capability.


This functionality is not supported in typical protocol stacks (e.g. TCP/IP or AppleTalk). Once the nomadic router becomes aware of the available communication devices and activates them, the transport of data across the multiple communication substrates can take place. The unique algorithm and protocol in the nomadic router which chooses the most appropriate device to use is part of the “nomadic router Device Checker” through the “nomadic router Device Selection” across each interface.


There are numerous factors that can affect the selection of utilizing one or more devices. Such factors typically include available bandwidth, cost to initiate and maintain connection, power requirements and availability, and user's preference.


Hardware Specification


The nomadic router can run completely in software without any special hardware as shown in FIG. 6, or without a CPU separate from the main host, or packaged in the form of a hardware device as shown in FIG. 2. The nomadic router can also be provided as a digital storage medium which stores the software program that implements the functionality of the router's translation processing. Examples of digital storage media include optical media (e.g. CD-ROM), magnetic media (e.g. floppy disks), non-volatile or read-only memories, or any combination thereof. The program is loaded into and run on mobile terminal 12, or alternatively into any other computer or router which is connected to a network.


One potential implementation of the nomadic router device uses Embedded PC Technology. As an example, the rugged PC/104 standard modules have a form-factor of 3.550″ by 3.775″ and typically 0.6″ per module and weigh approximately 7 oz. per module. The PC/104 module's utilization of a self-stacking bus with minimum component count and power consumption (typically 1-2 Watts per module) eliminates the need for a backplane or card cage.


The nomadic router can run on a 16 bit bus with an 80486 processor, for example. The standard network access devices can support burst rates up to 10 Mbps with typical user data throughput around 1-2 Mbps. The user bandwidth is less depending on the available wireless communication device. For example, Proxim's 2 Mbps wireless LAN typically covers 500 yards with user data throughput around 500 Kbps. As illustrated in FIG. 1, nomadic router 10 typically includes three modules; a processor 10, host device or terminal interface 10a, and communication device or system interface 10b.


Another potential hardware implementation is with the CARDIO S-MOS System technology. This CPU board is basically the same size as a PCMCIA credit card adapter. It is 3.55×3.775 X 0.6 inches. The power requirements are +5V DC+/−10% with an operating temperature of 0 to 70° C., a storage temperature of −40 to 85° C., and relative humidity of 10% to 85% non-condensing.


The CARDIO is the most compact PC/104 compatible system available which meets the one-stack mechanical and electrical PC/104 Rev. 2.2 specifications. Power fail indicator, battery backup, and automatic switchover are also possible.


The nomadic router can also be implemented on a small portable device such as a PCMCIA card or partially on a PCMCIA card. In the case of a full implementation on a PCMCIA card, the host CPU and power supply are used to execute the Nomadic Routing and other protocols, algorithms, operating system, and application services. A hybrid implementation with some components as part of a PCMCIA card and others as part of other hardware implementation can also be used.


Apparatus Components


By performing packet translation in a self-contained apparatus, processing done on the packets in the nomadic router does not affect the host computer. All specific translation of the packets to match the network's configuration and available services is done internally to the nomadic router. The nomadic router can queue, transmit, and receive data independent of whether the host computer is available or even attached. The algorithms and microcontroller built into the nomadic router provides all necessary computing routines to be a fully functional network co-processor independent of the host computer.


By allowing the nomadic router to process packets independently of the host computer, the host computer can be powered down or asleep while processing is taking place, providing an increase in battery life for the mobile host computer.


The nomadic router can be configured with various components in several different ways. In FIG. 10, the nomadic router contains a processor or microcontroller 11 to translate the packets stored in packet buffers in random access memory. The translation functions are stored in non-volatile memory 13 with the Real Time Operating System (RTOS) and configuration information relative to the types of translation that need to be performed.


Upon startup (boot) of the nomadic router, the RTOS and translation algorithms are loaded from non-volatile memory into RAM where they are executed. There may be zero, one, or more host interfaces in which host computers are connected. There are one or more network interfaces. If no host interface is available, the nomadic router receives packets via the host computer from the network interface.


In FIG. 11, nomadic router 10 is implemented as an Application Specific Integrated Circuit (ASIC) or Field Programmable Gate Array (FPGA) 15. These chips embed the algorithms for packet translation. The chip can include storage for non-volatile memory 17 which stores the configuration information such as when manually configured for the current network. The chip 15 can also include random access memory to buffer packets for translation in the nomadic router before being sent off to the host or network interface.


Apparatus Packaging


As described above, the nomadic router can be packaged in several different hardware configurations. The nomadic router can be embedded in the host computer, or a network device, such as a switch or router. It can also be implemented as a PCMCIA card which plugs into the host computer, or as a self-contained external box.


Each nomadic router can have from one to many interfaces. If router 10 is put into the network infrastructure, it does not have to be carried around with the mobile user. As shown in FIG. 12a, nomadic router 10 is attached to a Local Area Network (LAN) of the network infrastructure (which constitutes the communications device 14) through system interface 10b. LAN 14 is connected through a conventional router 26 to the internet 28. In this case, host computer interface 10a of nomadic router 10 is not needed since packets from host computer 12 are received through LAN 14.


To provide a secure interface between host computer 12 and network 14 to prevent host computers from being able to watch (sniff) packets on network 14, nomadic router 10 can have one interface to host computer 12 (terminal interface 10a) and a second interface (10b) to network 14 as shown in FIG. 12B. Nomadic router 10 can provide filtering of packets received and retransmitted between the various interfaces thus providing a firewall type of security device which operates internally on the network.


To support multiple host computers 12a . . . 12n with a single nomadic router 10, nomadic router 10 may have multiple host interfaces 10a1 . . . 10an as shown in FIG. 12C and in FIG. 13, and a network or system interface 10b.


If the nomadic router is carried around by the mobile user, it can take the form of a PCMCIA card. In FIG. 12D, nomadic router 10 is implemented as a PCMCIA card. The processing and translation capability is stored inside the card and the interface to host computer 12 is through a PCMCIA BUS interface or communication card 30.


The nomadic router may also be used as an interface between a local area network 14 and a router 26 as illustrated in FIG. 12E. Local area network 14 may be a mobile or portable network with router 26 being fixed at a particular location with a physical connection to the internet. Such an arrangement may be used for a customer demonstration or trade show, for example, where the local area network 14 is established among computers previously configured to communicate with each other but not with the foreign network having router 26.


As shown in FIG. 14, the PCMCIA card can fit in a type III slot where there is a connector on nomadic router 10 which accepts communication card 30 (a type II PCMCIA card). In this mode, the nomadic router does not require internal communication device specific components.


Nomadic router 10 can also take the form of a type II PCMCIA card. In this form, the communication device or card 30 plugs into the opposite end of nomadic router card 10 as illustrated in FIG. 15.


Translation Operation of the Nomadic Router

Initialization and Self Configuration


The nomadic router initialization and self configuration process provides the means by which the nomadic router is able to learn about the host computer and network so it knows what translation is necessary.


Host Learning


Depending on the particular application, the nomadic router may have to learn the configuration of the host computer, the remote/foreign network, or both. For example, when utilized as a fixed nomadic router in a hotel or multiple dwelling unit, the nomadic router will have already learned (or been manually configured for) the remote/foreign network. The nomadic router need only determine the settings of mobile hosts which are subsequently connected to the network. Similarly, when the nomadic router is implemented as a PCMCIA card which travels with the mobile host, the nomadic router need only learn the settings of the foreign/remote network (since the host settings were previously learned or manually configured). In some applications, the nomadic router learns both the network and host configurations as previously described.


Nomadic router 10 is able to learn the host computer 12 configuration by looking at the content of the packets sent from host computer 12. Rather than host computer 12 sending packets directly to router 26 or other network device (which is what it is initially configured to do), nomadic router 10 is able to redirect all outbound packets from the host computer 12 to itself. This redirection can be accomplished in several ways as described below.


1. Proxy ARP Packet Interception and Host Reconfiguration


Whenever a host computer 12 has an IP packet to send to router 26 or other network device, host computer 12 uses the Address Resolution Protocol (ARP) to obtain the link layer Media Access Control address (MAC address). As illustrated in FIG. 8, when host computer 12 broadcasts an ARP request for the MAC address of a destination node, nomadic router 10 intercepts this ARP request broadcast and responds with its own MAC address (rather than that of the destination node).


When host computer 12 receives the ARP reply from nomadic router 10 (which contains the MAC address of nomadic router 10), host computer 12 caches this MAC address and sends all packets destined for the configured router or network device to the MAC address of nomadic router 10. Host computer 12 will think that the MAC address is that of its originally configured IP network device. However, nomadic router 10 is only pretending (proxying) to be the device (its home gateway) that host computer 12 expects to find.


Nomadic router 10 is also able to reconfigure and intercept return packets from a router or other network device using the same process.


2. Promiscuous Mode Packet Interception


Since the MAC address is cached in host computer 12 for a short period of time, host computer 12 will not send out a new ARP request to obtain the MAC address again unless a timeout period occurs or the cache is cleared, such as when computer 12 is restarted.


When a conventional network device receives or hears a packet with a MAC address which does not match its own, it will ignore or drop the packet. Since it is possible to rapidly switch from one network environment to another using a portable computer, nomadic router 10 must be able to intercept packets even when the MAC address is not that of the nomadic router's home gateway or device.


This is accomplished by placing the nomadic router's network connection is promiscuous mode. In this mode, the network connection on the nomadic router accepts all packets being transmitted on the communication link, not just ones being broadcast or addressed specifically to it.


3. Dynamic Host Configuration Protocol (DHCP) Service


Nomadic router 10 may also provide other network services to host computer 12. For example, host computer 12 may be able to utilize the DHCP service to obtain configuration information rather than being manually configured. However, a host computer utilizing the DHCP service requires that a DHCP server be installed on the network segment to which it is currently attached. If host computer 12 is configured to use this service but a DHCP server is not available on the remote/foreign network, nomadic router 10 will intercept the DHCP requests and respond with configuration information for host computer 12 to use.


Network Learning


The nomadic router is able to learn about the network environment it is currently attached using several different methods as described below.


1. Dynamic Host Configuration Protocol (DHCP)


When the nomadic router is connected to a different network, it will broadcast a DHCP request to obtain configuration information for that network. If no DHCP service is available on the network, the nomadic router will use another method to learn about the network configuration.


2. Router Information Packets


For example, routers on the network will periodically broadcast router information packets which are used to build routing tables and allow routers to adapt to changes in the network. Nomadic router 10 will listen on the network for these router information packets. When a router information packet is received, the nomadic router will extract the configuration information from each packet and store the information for use in translating packets from the mobile host.


3. Passive Learning


By placing the nomadic router's network connection in promiscuous mode, the nomadic router receives all packets (not just ones addressed to the nomadic router). The nomadic router examines all packets received on the network interface to discover the network configuration. The nomadic router is also able to determine the IP addresses used on the current network and which machines are routers (by the final destination address not being the next hop address).


Using this method, nomadic router 10 is passively able to learn how the network is configured and will elect to use an unused IP address. If that IP address does become used by another network device, the nomadic router will switch over to another unused IP address.


4. Manual Configuration


The network configuration information can also be manually configured in nomadic router 10 as described above. This information can be set using an embedded web server, Simple Network Management Protocol (SNMP) tools, an application running on one of the computers in the network, or other suitable means. When manual configuration is used to set the network configuration, nomadic router 10 will still automatically learn the host information and provide all the translation capabilities so the host computers do not have to be aware of the correct network information of the LAN to which they are currently connected.


Packet Translation


After learning the network and/or host computer configuration(s), the nomadic router has the necessary information to translate packets transmitted/received by the host computer. The nomadic router's packet translation function provides a mapping between location and service dependent configurations used by host computer 12 and that used by network 14 to which it is currently attached. For outbound traffic from host computer 12 to network 14, the translation function changes the content of the packet such as the source address, checksum, and application specific parameters, causing all packets sent out to network 14 to be directed back to nomadic router 10 rather than to host computer 12.


Inbound traffic from network 14 arriving at nomadic router 10 (which is really for host computer 12), is passed through the translation function so host computer 12 thinks that the replies were sent directly to it. Host computer 12 will be completely unaware of all the translation being performed by nomadic router 10.


The translation functions works as illustrated in FIGS. 9a and 9b. In these figures, the operations performed in the OSI/ISO model application, transport, network, link, and physical layers are illustrated in rows opposite the layer designations. The operations performed by host computer 12, nomadic router 10 and network 14 are illustrated in columns below the device designations.


Host computer 12 will generate network packets using the current configuration stored in host computer 12 using the standard protocol stack as shown in step 1. This configuration information is either manually configured in host computer 12 or obtained using DHCP (from the network or the nomadic router).


As shown in step 2, when host computer 12 attaches the link level destination address (automatically obtained using the Proxy ARP packet interception routine described earlier), host computer 12 will send the packet to the network address of its standard router or home gateway device using the link level address of the nomadic router 10.


In step 3, the packet is transmitted across the standard physical connection between host computer 12 and nomadic router 10. As shown in step 4, nomadic router 10 will receive the packet at the link level either because the Proxy ARP function reconfigured the host computer's MAC address, or because nomadic router 10 has the network link level in promiscuous mode which causes it to receive the packet even if addressed to a different MAC address.


Once the packet is passed to the network layer, shown in step 5, the nomadic router translation function will modify the content of the packet to change the source address to match that of the nomadic router's address instead of the host computer's address. It will also translate other location dependent information such as the name of the local Domain Name Service (DNS) server. when translating the DNS packet, it will change the source address to that of the nomadic router's address and the destination address to that of a local DNS server.


Once the network layer translation is complete, the packet can be translated at the application and transport layers. The application layer is translated next, as shown in step 6, because the transport layer required a pseudo-network layer header which includes the course and destination addresses and the content from the application layer.


At the application layer translation, any addresses which describe the source address of the host computer, such as with FTP, are translated to be that of the nomadic router's address. Any application layer destination addresses, such as a local proxy server, are translated to match that of the server running on the current network.


Once this application layer translation is complete, the transport layer, as shown in step 7, can complete the checksum and any port number manipulation. The port number is manipulated if more than one host computer 12 is attached to nomadic router 10. Each request sent by any one of the host computers 12 include a specific port that is translated to match an available inbound port on the nomadic router 10.


The port number assigned for use with each host computer 12 is stored in a table in nomadic router 10 and is utilized with the reply packet to route the reply to the corresponding host computer as describer later. Finally, the outgoing packet is transmitted over network 14 in step 8.


When a reply packet is transmitted over network 14, as shown in step 9, nomadic router 10 will receive the packet. In step 10, nomadic router 10 will perform the reverse network layer translation to set the destination address to that of host computer 12 rather than the nomadic router's address, and any source address to the source address replaced by nomadic router 10 in step 5.


Once network translation is complete, the packet is translated at the application layer, as shown in step 1, to change the destination address to that of host computer 12 and the source address to the original destination address stored from step 6. In step 12, any port manipulation performed in step 7 is changed to the original setting and a new checksum is computed. Finally, as shown in step 13, the packet is sent to host computer 12 which then processes the packet normally.


Options of the Nomadic Router

There are numerous options and applications of the nomadic router. These applications include, but are not limited to, Nomadic E-mail, Remote Network File Synchronization, Nomadic Database Synchronization, Instant Network Nomadic Routing, Nomadic Intranets, and Trade Show Data Exchange. Each of these are described in more detail below.


Nomadic E-Mail


The Nomadic E-mail application provides a synchronized yet distributed means for updates, reconciliation, and replicas to propagate through the internet. Nomadic routers are located on various networks of the internet and are equipped with nomadic E-mail support to provide synchronization, etc. Each nomadic router enabled for nomadic E-mail can utilize protocols such as IMAP to provide support for mobile users without the host device having to support it (similar to the POP3 protocol standard in internet E-mail clients).


Remote Network File Synchronizer


The Remote Network File Synchronization option of the nomadic router provides copies of user files that are stored/cached at various locations (e.g., hotel, office, home) on other nomadic routers equipped for remote network file synchronization. Copies of updated files are automatically synchronized and distributed among all peer locations. Local updates can be made while the host is disconnected from the nomadic router and from the network.


Nomadic Database Synchronizer


The Nomadic Database Synchronizer houses the user's (synchronized) master databases (e.g., contacts, addresses, phone numbers). The nomadic router of the database synchronizer does not need to be used on the network because it will interface directly with various host devices such as laptops, desktops, personal digital assistants, handheld personal computers, pagers, etc. via various standard ports.


Instant Network Nomadic Router


The objective of the instant network nomadic router is to enable rapid deployment of a communication network in any environment with little or no fixed infrastructure. The host and communication devices do not have to directly support the rapid deployment functionality.


The instant network nomadic router distributedly and intelligently establishes a wireless (or wired) communication link between the host device and the desired communication system while performing configuration, security, multihop routing, and network level data transmission over various communication devices. The nomadic router performs all the necessary network creating and processing automatically to remove configuration and system support from the host system or user. The instant network nomadic router utilizes proprietary and existing/emerging wireless communication systems, and multihop routing protocols.


Many communication infrastructures are varied and fragmented, which is likely to be exacerbated as more technologies are introduced. For example, high performance LANs, wireless services, cellular telephony, satellite, and ubiquitous paging networks, all provide varying degrees of coverage, cost, and bandwidth/delay characteristics.


Conditions may range from no connectivity at all because of lack of service, to partial and/or intermittent connectivity as devices are plugged and unplugged from a system. Likewise, damage to communications infrastructures (deliberately or by accident), lossy communication as a system moves through various service areas or difficult domains, and times when multiple network devices (communication substrates) can be used at the same time complicate connectivity. The instant network nomadic router will dynamically adapt the communication internetwork (dynamically creating one if necessary) to provide survivable communication in a mobile chaotic environment without the need for centralized control or fixed infrastructures.


The rapidly deployable nomadic router is a device associated with each user host device (e.g., PDA or laptop computer). It transparently provides the following capabilities for host computer systems using various wireless communication devices for physical and link layer access: dynamic wireless network creation; initialization into existing wireless networks; automatic configuration; network and subnetwork level data transmission; and multihop routing functionality.


The nomadic router can detect another device by polling the interface, providing an interrupt signal, or through specialized signaling. This in turn activates the nomadic router to provide translation for the device (if necessary) and establish a communication link to an appropriate corresponding interface and wireless subnetwork. The nomadic router operates at a level between the host device generating data and the physical communication transmission device as illustrated in FIG. 1.


Nomadic Intranet


The Nomadic Intranet application provides all network and server type services for users to dynamically create an adhoc network. This is similar to the instant network nomadic router except the nomadic intranet is a single device with multiple ports into which laptop/devices can be plugged. The instant network nomadic router is distributed to each host device. The nomadic intranet not only provides adhoc networking but can also provide services such as temporary file storage, protocol conversion, act as a print server, and provide other services described as part of the Basic nomadic router.


Trade Show Nomadic Router


The Trade Show nomadic router applications not only provide the basic nomadic router functionality for an exhibitor's computer that is brought to the show, but also provides lead capture and/or information distribution. Lead capture can be provided by interfacing with a badge reader to read attendees' information. This information is then captured by the nomadic router and made available in the exhibitor's lead database.


The nomadic router can also provide a mechanism for distributing information to the attendees' personalized web pages or sent via e-mail directly across the internet. The exhibit's computer is able to control the information flow with the nomadic router by running software, such as a web browser, which talks with the service/control software stored in the nomadic router. The standard web browser can control display and capture of lead information, collection of qualification information, and selection of information to be distributed back to the attendee.


Fixed Nomadic Router


As briefly described above, the fixed nomadic router applications provide the same basic functionality and architecture as the portable nomadic router with the nomadic router stored in one location. The fixed nomadic router acts as a surrogate or “Home Agent” for the user when he/she is away on travel. When the user wishes to register or utilize their host device elsewhere in the network, the portable nomadic router will register with the fixed nomadic router where it is temporarily attached to the network so information can be forwarded to the user's new location. The fixed nomadic router can also be used to house the master copy of the user's E-mail for the nomadic E-mail service, or files for the nomadic file synchronizer.


Mobile Virtual Private Network


The nomadic router provides the mapping between the location-based IP address used in the internet today and the permanent user-based address housed in the host CPU. This mapping is done without support or knowledge of such mapping by the host CPU or user. The Internet RFC 2002 Mobile IP protocol specifies the mapping between permanent and temporary IP addresses. The unique aspect of the nomadic router is that the Mobile IP protocols are not necessarily running in, or supported by, the host CPU, but rather are internal to the nomadic router.


By implementing this protocol as part of the translation function in the nomadic router, the nomadic router can encapsulate packets from the host computer and transmit them back to the fixed nomadic router which are sent out (un-encapsulated) on the native (home) network. Replies from the home network are received by the fixed nomadic router and are encapsulated and sent back to the nomadic router. When packets are transmitted between the nomadic router and fixed nomadic router, the packets are encrypted and sent using the Internet Tunneling Protocol.


Since the (mobile) nomadic router provides location independence and the fixed nomadic router forwards all packets from a corresponding host to the host computer via the nomadic router, any changes in the location, failure of a network link, or attachment point of the mobile host computer does not cause any open session to be lost. This session loss prevention is possible since the fixed nomadic router pretends to be the mobile host computer, and the nomadic router pretends to be the home network. The fixed nomadic router and nomadic router translation functions hide the link and network loss from the transport and application session.


While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention. It is understood that the present invention is broadly applicable to the field of electronic data communications using computers and other devices.

Claims
  • 1. A non-transitory computer-readable medium comprising instructions configured to be executed on a foreign gateway device, the foreign gateway device being connected to a user host device by a network, wherein the instructions, when executed, cause the foreign gateway device to: process an ARP request packet transmitted from the user host device and received at the foreign gateway device, wherein the ARP request packet includes at least a sender IP address, a sender hardware address, and a target IP address that corresponds to an IP address of a home gateway, wherein the IP address of the home gateway is different from any IP address associated with the foreign gateway device;prepare an ARP response packet that includes at least a sender IP address that corresponds to the IP address of the home gateway, a sender hardware address that corresponds to a hardware address of the foreign gateway device, a target IP address that corresponds to the sender IP address of the ARP request packet, and a target hardware address corresponding to the sender hardware address of the ARP request packet;transmit the ARP response packet from a network interface of the foreign gateway device; andprocess at the foreign gateway device a network packet transmitted from the user host device and received at the foreign gateway device, wherein the network packet comprises at least a target IP address that differs from the IP address of the home gateway and the foreign gateway and a target hardware address that corresponds to the hardware address of the foreign gateway device.
  • 2. The non-transitory computer-readable medium of claim 1, wherein the network interface comprises an Ethernet port.
  • 3. The non-transitory computer-readable medium of claim 1, wherein the hardware addresses are MAC addresses.
  • 4. The non-transitory computer-readable medium of claim 1, wherein the ARP request packet further comprises a target hardware address that corresponds to a broadcast address.
  • 5. The non-transitory computer-readable medium of claim 1, wherein the method performed by the foreign gateway device further comprises: modifying a sender address of the network packet to correspond to one of the one or more IP addresses of the foreign gateway, and transmitting the network packet.
  • 6. The non-transitory computer-readable medium of claim 1, wherein the foreign gateway device has no information about the home gateway prior to the foreign gateway performing the step of receiving an ARP request packet transmitted from the user host device.
  • 7. A foreign network device comprising: a memory containing a broadcast handling function;a processor executing the broadcast handling function; anda network interface configured to receive an ARP request packet transmitted by a first device, wherein the ARP request packet includes at least a sender IP address, a sender hardware address, and a target IP address associated with a home gateway device, wherein the target IP address does not correspond to any IP address associated with the foreign network device;wherein the broadcast handling function is configured to responsively prepare and cause the transmission of an ARP response packet that includes at least a sender IP address that corresponds to the target IP address of the ARP request packet, a sender hardware address that corresponds to a hardware address of the foreign network device, a target IP address that corresponds to the sender IP address of the ARP request packet, and a target hardware address that corresponds to the sender hardware address of the ARP request packet; andwherein the network interface is further configured to receive a network packet transmitted by the first device, the network packet including a target IP address that corresponds to the target IP address of the ARP request packet and a target hardware address that corresponds to the hardware address of the foreign network device.
  • 8. The foreign network device of claim 7, wherein the ARP request packet is transmitted at least in part over a wireless network.
  • 9. The foreign network device of claim 7, wherein the hardware addresses are MAC addresses.
  • 10. The foreign network device of claim 7, wherein the ARP request packet further comprises a target hardware address associated with a broadcast address.
  • 11. The foreign network device of claim 7, wherein the network interface is further configured to modify a sender address of the network packet to correspond to one of the one or more IP addresses of the foreign gateway, and wherein the network interface is further configured to transmit the network packet.
  • 12. The foreign network device of claim 7, wherein the foreign network device has no information about the home gateway device prior to the network interface receiving an ARP request packet transmitted by the first device.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 11/097,925, filed Apr. 1, 2005, now U.S. Pat. No. 7,554,995, which is a continuation of U.S. application Ser. No. 09/684,937, filed Oct. 6, 2000, now U.S. Pat. No. 7,088,727; which is a continuation-in-part of U.S. application Ser. No. 09/041,534, filed Mar. 12, 1998, now U.S. Pat. No. 6,130,892; which is a continuation-in-part of U.S. application Ser. No. 08/816,174, filed Mar. 12, 1997, now abandoned.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

The U.S. government may have rights in this invention as provided for by the terms of Contract No. DAAH01-97-C-R179 awarded by DARPA.

US Referenced Citations (440)
Number Name Date Kind
4677588 Benjamin Jun 1987 A
4811011 Sollinger Mar 1989 A
5065393 Sibbitt Nov 1991 A
5113499 Ankney May 1992 A
5124984 Engel Jun 1992 A
5142622 Owens Aug 1992 A
5159592 Perkins Oct 1992 A
5166931 Riddle Nov 1992 A
5185860 Wu Feb 1993 A
5251207 Abensour Oct 1993 A
5258906 Kroll Nov 1993 A
5293488 Riley Mar 1994 A
5309437 Perlman May 1994 A
5325362 Aziz Jun 1994 A
5329619 Page Jul 1994 A
5369705 Bird Nov 1994 A
5371852 Attanasio et al. Dec 1994 A
5406555 Yoshida Apr 1995 A
5410543 Seitz et al. Apr 1995 A
5412654 Perkins May 1995 A
5420862 Perlman May 1995 A
5425029 Hluchyj et al. Jun 1995 A
5442633 Perkins et al. Aug 1995 A
5481542 Logston Jan 1996 A
5490139 Baker et al. Feb 1996 A
5490252 Macera Feb 1996 A
5517618 Wada et al. May 1996 A
5517622 Ivanoff May 1996 A
5526489 Nilakantan Jun 1996 A
5533026 Ahmadi Jul 1996 A
5539736 Johnson Jul 1996 A
5548646 Aziz Aug 1996 A
5550984 Gelb Aug 1996 A
5557748 Norris Sep 1996 A
5572528 Shuen Nov 1996 A
5574779 Ely Nov 1996 A
5583864 Lightfoot Dec 1996 A
5586269 Kubo Dec 1996 A
5592537 Moen Jan 1997 A
5598536 Slaughter Jan 1997 A
5604896 Duxbury Feb 1997 A
5606668 Shwed Feb 1997 A
5608786 Gordon Mar 1997 A
5612730 Lewis Mar 1997 A
5615339 Ban Mar 1997 A
5623600 Ji et al. Apr 1997 A
5623601 Vu Apr 1997 A
5633868 Baldwin et al. May 1997 A
5633999 Clowes May 1997 A
5636216 Fox et al. Jun 1997 A
5636371 Yu Jun 1997 A
5644719 Aridas Jul 1997 A
5649001 Thomas Jul 1997 A
5651002 Van Seters et al. Jul 1997 A
5652908 Douglas Jul 1997 A
5657452 Kralowetz Aug 1997 A
5659684 Giovannoni Aug 1997 A
5664102 Faynberg Sep 1997 A
5678041 Baker Oct 1997 A
5696898 Baker Dec 1997 A
5696899 Kalwitz Dec 1997 A
5699520 Hodgson Dec 1997 A
5708654 Arndt Jan 1998 A
5708655 Toth et al. Jan 1998 A
5708780 Levergood et al. Jan 1998 A
5717737 Doviak Feb 1998 A
5724510 Arndt Mar 1998 A
5742668 Pepe Apr 1998 A
5742762 Scholl Apr 1998 A
5745884 Carnegie Apr 1998 A
5749075 Toader May 1998 A
5751961 Smyk May 1998 A
5751971 Dobbins et al. May 1998 A
5757784 Liebowitz May 1998 A
5757924 Friedman et al. May 1998 A
5758186 Hamilton May 1998 A
5761683 Logan et al. Jun 1998 A
5764890 Glasser Jun 1998 A
5774668 Choquier Jun 1998 A
5774869 Toader Jun 1998 A
5781550 Templin et al. Jul 1998 A
5781552 Hashimoto Jul 1998 A
5790541 Patrick et al. Aug 1998 A
5790548 Sistanizadeh Aug 1998 A
5793762 Penners et al. Aug 1998 A
5793763 Mayes Aug 1998 A
5794221 Egendorf Aug 1998 A
5798706 Kraemer et al. Aug 1998 A
5802047 Kinoshita Sep 1998 A
5802285 Hirviniemi Sep 1998 A
5802320 Baehr et al. Sep 1998 A
5802502 Gell Sep 1998 A
5805803 Birrell Sep 1998 A
5806043 Toader Sep 1998 A
5812531 Cheung et al. Sep 1998 A
5812776 Gifford Sep 1998 A
5812786 Seazholtz Sep 1998 A
5812819 Rodwin Sep 1998 A
5815664 Asano Sep 1998 A
5822526 Waskiewicz Oct 1998 A
5832229 Tomoda Nov 1998 A
5835061 Stewart Nov 1998 A
5835724 Smith Nov 1998 A
5835725 Chiang Nov 1998 A
5835727 Wong Nov 1998 A
5841769 Okanoue et al. Nov 1998 A
5844973 Venkatraman Dec 1998 A
5845070 Ikudome Dec 1998 A
5848233 Radia Dec 1998 A
5852812 Reeder Dec 1998 A
5854901 Cole et al. Dec 1998 A
5856974 Gervais Jan 1999 A
5862328 Colyer Jan 1999 A
5862345 Okanoue et al. Jan 1999 A
5864610 Ronen Jan 1999 A
5864683 Boebert Jan 1999 A
5881234 Schwob Mar 1999 A
5884035 Butman Mar 1999 A
5889958 Willens Mar 1999 A
5893077 Griffin Apr 1999 A
5894321 Downs Apr 1999 A
5894479 Mohammed Apr 1999 A
5903732 Reed May 1999 A
5909549 Compliment Jun 1999 A
5910954 Bronstein et al. Jun 1999 A
5915093 Berlin Jun 1999 A
5915119 Cone Jun 1999 A
5916302 Dunn Jun 1999 A
5918016 Brewer et al. Jun 1999 A
5918018 Gooderum Jun 1999 A
5920699 Bare Jul 1999 A
5922049 Radia Jul 1999 A
5923853 Danneels Jul 1999 A
5930255 Tsukamoto et al. Jul 1999 A
5931917 Nguyen Aug 1999 A
5940394 Killian Aug 1999 A
5941947 Brown Aug 1999 A
5941988 Bhagwat Aug 1999 A
5946687 Gehani Aug 1999 A
5948061 Merriman Sep 1999 A
5949875 Walker Sep 1999 A
5950195 Stockwell Sep 1999 A
5951694 Choquier Sep 1999 A
5958018 Eng Sep 1999 A
5960409 Wexler Sep 1999 A
5963915 Kirsch Oct 1999 A
5968126 Ekstrom Oct 1999 A
5968176 Nessett Oct 1999 A
5969678 Stewart Oct 1999 A
5982773 Nishimura Nov 1999 A
5987430 Van Horne et al. Nov 1999 A
5987498 Athing et al. Nov 1999 A
5987523 Hind Nov 1999 A
5987611 Freund Nov 1999 A
5991292 Focsaneanu et al. Nov 1999 A
5991828 Horie et al. Nov 1999 A
5999536 Kawafuji Dec 1999 A
5999912 Wodraz Dec 1999 A
6006258 Kalajan Dec 1999 A
6006272 Aravamudan et al. Dec 1999 A
6011782 DeSimone Jan 2000 A
6012083 Savitzky Jan 2000 A
6012088 Li Jan 2000 A
6014698 Griffiths Jan 2000 A
6018771 Hayden Jan 2000 A
6028848 Bhatia Feb 2000 A
6035281 Crosskey Mar 2000 A
6038233 Hamamoto Mar 2000 A
6044062 Brownrigg Mar 2000 A
6047051 Ginzboorg Apr 2000 A
6052725 McCann Apr 2000 A
6055236 Nessett Apr 2000 A
6055243 Vincent et al. Apr 2000 A
6058418 Kobata May 2000 A
6058429 Ames May 2000 A
6061349 Coile May 2000 A
6061356 Terry May 2000 A
6061650 Malkin May 2000 A
6061668 Sharrow May 2000 A
6061739 Reed May 2000 A
6064674 Doidge et al. May 2000 A
6070187 Subramaniam May 2000 A
6070243 See May 2000 A
6073160 Grantham Jun 2000 A
6073175 Tavs Jun 2000 A
6085247 Parsons Jul 2000 A
6088451 He Jul 2000 A
6088725 Kondo et al. Jul 2000 A
6091732 Alexander Jul 2000 A
6092196 Reiche Jul 2000 A
6094659 Bhatia Jul 2000 A
6098172 Coss et al. Aug 2000 A
6101543 Alden Aug 2000 A
6108330 Bhatia Aug 2000 A
6115545 Mellquist Sep 2000 A
6119160 Zhang Sep 2000 A
6119162 Li et al. Sep 2000 A
6122268 Okanoue Sep 2000 A
6128298 Wootton Oct 2000 A
6128601 Van Horne et al. Oct 2000 A
6128664 Yanagidate Oct 2000 A
6128739 Fleming, III Oct 2000 A
6130892 Short et al. Oct 2000 A
6134680 Yeomans Oct 2000 A
6137791 Frid Oct 2000 A
6137869 Voit Oct 2000 A
6138142 Linsk Oct 2000 A
6138144 DeSimone Oct 2000 A
6141010 Hoyle Oct 2000 A
6141653 Conklin Oct 2000 A
6141690 Weiman Oct 2000 A
6144991 England Nov 2000 A
6147976 Shand Nov 2000 A
6154172 Piccionelli Nov 2000 A
6154764 Nitta Nov 2000 A
6154775 Coss Nov 2000 A
6154839 Arrow Nov 2000 A
6157377 Shah-Nazaroff Dec 2000 A
6157946 Itakura Dec 2000 A
6157953 Chang Dec 2000 A
6158008 Maria Dec 2000 A
6160874 Dickerman Dec 2000 A
6161139 Win Dec 2000 A
6166730 Goode Dec 2000 A
6167513 Inoue Dec 2000 A
6173322 Hu Jan 2001 B1
6182141 Blum Jan 2001 B1
6182154 Campagnoni Jan 2001 B1
6199100 Filepp Mar 2001 B1
6201962 Sturniolo Mar 2001 B1
6202169 Razzaghe-Ashrafi Mar 2001 B1
6205148 Takahashi Mar 2001 B1
6205481 Heddaya et al. Mar 2001 B1
6208977 Hernandez Mar 2001 B1
6219694 Lazaridis Apr 2001 B1
6219786 Cunningham Apr 2001 B1
6219790 Lloyd Apr 2001 B1
6223286 Hashimoto Apr 2001 B1
6226677 Slemmer May 2001 B1
6226752 Gupta May 2001 B1
6233604 Van Horne et al. May 2001 B1
6233618 Shannon May 2001 B1
6233686 Zenchelsky May 2001 B1
6237026 Prasad May 2001 B1
6240091 Ginzboorg May 2001 B1
6240402 Lynch-Aird May 2001 B1
6240513 Friedman May 2001 B1
6240533 Slemmer May 2001 B1
6243379 Veerina et al. Jun 2001 B1
6247054 Malkin Jun 2001 B1
6249527 Verthein et al. Jun 2001 B1
6249820 Dobbins Jun 2001 B1
6256307 Salmonson Jul 2001 B1
6259405 Stewart Jul 2001 B1
6282180 Paneth Aug 2001 B1
6286039 Van Horne et al. Sep 2001 B1
6288739 Hales Sep 2001 B1
6292478 Farris Sep 2001 B1
6295291 Larkins Sep 2001 B1
6298383 Gutman Oct 2001 B1
6304857 Heindel Oct 2001 B1
6307836 Jones Oct 2001 B1
6308212 Besaw Oct 2001 B1
6311275 Jin Oct 2001 B1
6317790 Bowker et al. Nov 2001 B1
6317837 Kenworthy Nov 2001 B1
6321336 Applegate Nov 2001 B1
6326918 Stewart Dec 2001 B1
6330586 Yates Dec 2001 B1
6338046 Saari Jan 2002 B1
6349289 Peterson Feb 2002 B1
6366893 Hannula Apr 2002 B2
6377982 Rai Apr 2002 B1
6377990 Slemmer et al. Apr 2002 B1
6381646 Zhang Apr 2002 B2
6381650 Peacock Apr 2002 B1
6385653 Sitaraman et al. May 2002 B1
6389462 Cohen May 2002 B1
6393468 McGee May 2002 B1
6408336 Schneider Jun 2002 B1
6410543 Strobel Jun 2002 B1
6412073 Rangan Jun 2002 B1
6414635 Stewart et al. Jul 2002 B1
6418324 Doviak Jul 2002 B1
6424636 Seazholtz Jul 2002 B1
6427170 Sitaraman et al. Jul 2002 B1
6427174 Sitaraman Jul 2002 B1
6434627 Millet et al. Aug 2002 B1
6438125 Brothers Aug 2002 B1
6438528 Jensen Aug 2002 B1
6438578 Schmid Aug 2002 B1
6452498 Stewart Sep 2002 B2
6453353 Win Sep 2002 B1
6460084 Van Horne et al. Oct 2002 B1
6463051 Ford Oct 2002 B1
6463473 Gubbi Oct 2002 B1
6463474 Fuh Oct 2002 B1
6466976 Alles Oct 2002 B1
6466981 Levy Oct 2002 B1
6466986 Sawyer et al. Oct 2002 B1
6470027 Birrell Oct 2002 B1
6470386 Combar Oct 2002 B1
6473411 Kumaki Oct 2002 B1
6480486 Kikinis Nov 2002 B2
6487538 Gupta Nov 2002 B1
6490620 Ditmer Dec 2002 B1
6496704 Yuan Dec 2002 B2
6496850 Bowman-Amuah Dec 2002 B1
6502131 Vaid Dec 2002 B1
6513060 Nixon Jan 2003 B1
6515989 Ronneke Feb 2003 B1
6519636 Engel Feb 2003 B2
6519643 Foulkes Feb 2003 B1
6523028 DiDomizio Feb 2003 B1
6535493 Lee et al. Mar 2003 B1
6535511 Rao Mar 2003 B1
6539431 Sitaraman Mar 2003 B1
6546392 Bahlmann Apr 2003 B1
6546425 Hanson et al. Apr 2003 B1
6549220 Hsu Apr 2003 B1
6553178 Abecassis Apr 2003 B2
6557038 Becker Apr 2003 B1
6571221 Stewart May 2003 B1
6574664 Liu Jun 2003 B1
6577642 Fijolek Jun 2003 B1
6580717 Higuchi Jun 2003 B1
6584505 Howard Jun 2003 B1
6587880 Saigo Jul 2003 B1
6591306 Redlich Jul 2003 B1
6598167 Devine Jul 2003 B2
6609154 Fuh Aug 2003 B1
6625645 Van Horne Sep 2003 B1
6633899 Coward Oct 2003 B1
6636504 Albers Oct 2003 B1
6636894 Short et al. Oct 2003 B1
6640251 Wiget et al. Oct 2003 B1
6665718 Chuah Dec 2003 B1
6667968 Tran Dec 2003 B1
6671379 Nemirovski Dec 2003 B2
6671739 Reed Dec 2003 B1
6675208 Rai et al. Jan 2004 B1
6681330 Bradford Jan 2004 B2
6687732 Bector Feb 2004 B1
6697018 Stewart Feb 2004 B2
6701350 Mitchell Mar 2004 B1
6701361 Meier Mar 2004 B1
6714987 Amin Mar 2004 B1
6717943 Schwering Apr 2004 B1
6728884 Lim Apr 2004 B1
6731612 Koss May 2004 B1
6732176 Stewart May 2004 B1
6735691 Capps May 2004 B1
6738382 West May 2004 B1
6751677 Ilnicki Jun 2004 B1
6759960 Stewart Jul 2004 B2
6760416 Banks et al. Jul 2004 B1
6771609 Gudat et al. Aug 2004 B1
6771661 Chawla Aug 2004 B1
6775267 Kung Aug 2004 B1
6779118 Ikudome et al. Aug 2004 B1
6785730 Taylor Aug 2004 B1
6789110 Short Sep 2004 B1
6822954 McConnell et al. Nov 2004 B2
6822955 Brothers Nov 2004 B1
6823059 Kalmanek Nov 2004 B2
6834341 Bahl Dec 2004 B1
6839757 Romano Jan 2005 B1
6850532 Thubert Feb 2005 B2
6856676 Pirot Feb 2005 B1
6856800 Henry et al. Feb 2005 B1
6857009 Ferreria et al. Feb 2005 B1
6868399 Short et al. Mar 2005 B1
6876668 Chawla Apr 2005 B1
6892226 Tso May 2005 B1
6901433 San Andres May 2005 B2
6907449 Srinivasan Jun 2005 B2
6915345 Tummala Jul 2005 B1
6922672 Hailpern Jul 2005 B1
6934754 West et al. Aug 2005 B2
6947398 Ahmed Sep 2005 B1
6950433 Okamoto Sep 2005 B1
6961762 Yeap Nov 2005 B1
6970927 Stewart Nov 2005 B1
6983327 Koperda Jan 2006 B2
6996073 West Feb 2006 B2
7003578 Kanada et al. Feb 2006 B2
7007080 Wilson Feb 2006 B2
7009556 Stewart Mar 2006 B2
7016960 Howard Mar 2006 B2
7032243 Leerssen et al. Apr 2006 B2
7051087 Bahl et al. May 2006 B1
7058594 Stewart Jun 2006 B2
7072056 Greaves et al. Jul 2006 B1
7080077 Ramamurthy Jul 2006 B2
7088727 Short et al. Aug 2006 B1
7120678 Greuel Oct 2006 B2
7124437 Byrne Oct 2006 B2
7126915 Lu Oct 2006 B1
7139268 Bhagwat et al. Nov 2006 B1
7145898 Elliott Dec 2006 B1
7151758 Kumaki Dec 2006 B2
7159035 Garcia-Luna-Aceves Jan 2007 B2
7194554 Short Mar 2007 B1
7225249 Barry May 2007 B1
7240106 Cochran et al. Jul 2007 B2
7269653 Mentze et al. Sep 2007 B2
7293077 Teo Nov 2007 B1
7313631 Sesmun et al. Dec 2007 B1
7319673 Briscoe Jan 2008 B1
7324972 Oliver Jan 2008 B1
7325063 Dillon Jan 2008 B2
7349982 Hannum et al. Mar 2008 B2
7356841 Wilson et al. Apr 2008 B2
7376113 Taylor et al. May 2008 B2
7401120 Walbeck Jul 2008 B2
7428413 Fink Sep 2008 B2
7472191 Stewart Dec 2008 B2
7474617 Molen et al. Jan 2009 B2
7512136 Korotin Mar 2009 B2
7526538 Wilson Apr 2009 B2
7552090 Barber Jun 2009 B1
7580376 West Aug 2009 B2
7602782 Doviak Oct 2009 B2
20010041571 Yuan Nov 2001 A1
20010047392 Murphy, Jr. Nov 2001 A1
20020021689 Robbins Feb 2002 A1
20020097674 Balabhadrapatruni Jul 2002 A1
20020152311 Veltman Oct 2002 A1
20020178070 Leveridge Nov 2002 A1
20030061619 Giammaressi Mar 2003 A1
20030067911 Kikinis Apr 2003 A1
20040015572 Kang Jan 2004 A1
20040030797 Akinlar et al. Feb 2004 A1
20040076144 Ishidoshiro Apr 2004 A1
20050021943 Ikudome Jan 2005 A1
20050102205 Yamamoto May 2005 A1
20060174019 Ikudome Aug 2006 A1
20070201702 Hendricks Aug 2007 A1
20070266125 Lu Nov 2007 A1
20070294417 Ikudome Dec 2007 A1
Foreign Referenced Citations (52)
Number Date Country
2003255101 Mar 2004 AU
2330857 Nov 1999 CA
0 848 338 Jun 1998 EP
0 889 418 Jan 1999 EP
0 909 073 Apr 1999 EP
1 076 975 Nov 1999 EP
0 986 230 Mar 2000 EP
1 111 872 Jun 2001 EP
0762707 Mar 2007 EP
1 026 853 Dec 2007 EP
2 283 645 May 1995 GB
2 326 306 Dec 1998 GB
5-344122 Dec 1993 JP
5344122 Dec 1993 JP
6209319 Jul 1994 JP
7030575 Jan 1995 JP
7066809 Mar 1995 JP
7202931 Aug 1995 JP
8065306 Mar 1996 JP
8242231 Sep 1996 JP
8265372 Oct 1996 JP
9046352 Feb 1997 JP
10-105516 Apr 1998 JP
11-055726 Feb 1999 JP
11055326 Feb 1999 JP
11-282804 Oct 1999 JP
2000059416 Feb 2000 JP
2000-354127 Dec 2000 JP
2002-111870 Apr 2002 JP
WO 9527942 Oct 1995 WO
WO 9605549 Feb 1996 WO
WO 9639668 Dec 1996 WO
WO 9709672 Mar 1997 WO
WO 9711429 Mar 1997 WO
WO 9727546 Jul 1997 WO
WO 9741586 Nov 1997 WO
WO 9748210 Dec 1997 WO
WO 9812643 Mar 1998 WO
WO 9816044 Apr 1998 WO
WO 9840990 Sep 1998 WO
WO 9928819 Jun 1999 WO
WO 9939481 Aug 1999 WO
WO 9946890 Sep 1999 WO
WO 9955056 Oct 1999 WO
WO 9957865 Nov 1999 WO
WO 9957866 Nov 1999 WO
WO 9965183 Dec 1999 WO
WO 9966400 Dec 1999 WO
WO 0027092 May 2000 WO
WO 0058804 Oct 2000 WO
WO 2004017658 Feb 2004 WO
WO 2004100499 Nov 2004 WO
Related Publications (1)
Number Date Country
20090024745 A1 Jan 2009 US
Continuations (2)
Number Date Country
Parent 11097925 Apr 2005 US
Child 12240427 US
Parent 09684937 Oct 2000 US
Child 11097925 US
Continuation in Parts (2)
Number Date Country
Parent 09041534 Mar 1998 US
Child 09684937 US
Parent 08816174 Mar 1997 US
Child 09041534 US