A system and method for providing connectivity to a foreign network for a device configured for communication over a home network without reconfiguring the device include intercepting packets transmitted by the device, selectively modifying intercepted packets which are incompatible with the foreign network to be compatible with network settings of the foreign network, and selectively providing network services for the device corresponding to network services available on the home network to reduce the delay associated with accessing the network services from the foreign network, or to provide network services otherwise inaccessible from the foreign network. network services are provided by or through a configuration adapter connected to the device or to the foreign network. The configuration adapter accommodates incompatibilities resulting from proxy server requests, domain name server requests, and/or outgoing email service requests to provide transparent network access for mobile users without reconfiguration of the users computing device.
|
34. A method for providing access to a second local area network for a device configured to communicate over a first local area network having incompatible network settings with network settings of the second local area network, the method comprising:
determining whether an application running on the device is requesting a proxy service;
wherein the step of determining comprises:
establishing a transmission control protocol (tcp) connection between a configuration adapter and the device to examine contents of a packet transmitted by the device;
establishing a tcp connection between the configuration adapter and the proxy server requested by the application; and
splicing the connection such that end-to-end semantics are maintained by the application and the requested proxy server, and
modifying packets containing proxy requests to direct requests if the requested proxy service is inaccessible from the foreign network without modifying the network settings of the device.
1. A method for providing connectivity to a foreign network for a device having network settings configured for communication over a home network without reconfiguring the network settings of the device, the method comprising:
intercepting packets transmitted by the device;
selectively modifying intercepted packets which are incompatible with network settings configured for communication over the foreign network to be compatible with the network settings configured for communication over the foreign network, wherein the network settings configured for communication over the home and foreign networks include respective IP addresses, gateway addresses, subnet masks, DNS addresses, and protocol proxies; and
selectively providing network services for the device corresponding to network services available on the home network to reduce delay associated with accessing the network services from the foreign network, or to provide network services otherwise inaccessible from the foreign networks wherein selectively providing network services comprises providing a proxy service which includes resolving a domain name to an address;
wherein resolving a domain name to an address includes;
establishing a connection between the device and a configuration adapter in order for the configuration adapter to intercept packets transmitted by the device;
examining contents of the intercepted packets to identify a domain name;
resolving the domain name to an address;
establishing a connection between the configuration adapter and a computer at the address corresponding to the domain name; and
splicing the connections between the device and the configuration adapter, and between the configuration adapter and the computer, to form a single connection between the device and the computer such that the device and the computer communicate packets with each other over the single connection without the network settings of the device being reconfigured.
23. A configuration adapter for providing connectivity to a foreign network for a device having network settings configured for communication over a home network without reconfiguring the network settings of the device, the configuration adapter comprising:
at least one network interface for connecting to the foreign network; and
a processor in communication with the network interface, the processor intercepting packets transmitted by the device, selectively modifying intercepted packets which are incompatible with network settings configured for communication over the foreign network to be compatible with the network settings of configured for communication over the foreign network, and selectively providing network services for the device corresponding to network services available on the home network to reduce delay associated with accessing the network services from the foreign network, or to provide network services otherwise inaccessible from the foreign network;
wherein the network settings configured for communication over the home and foreign networks include respective IP addresses, gateway addresses, subnet masks, DNS addresses, and protocol proxies;
wherein the processor selectively provides a proxy service for the device which includes resolving a domain name to an address;
wherein the processor resolves a domain name to an address by establishing a connection between the device and the configuration adapter, examining contents of the intercepted packets to identify a domain name, resolving the domain name to an address, establishing a connection between the configuration adapter and a computer at the address corresponding to the domain name, and splicing the connections between the device and the configuration adapter, and between the configuration adapter and the computer, to form a single connection between the device and the computer such that the device and the computer communicate packets with each other over the single connection without the network settings of the device being reconfigured.
12. Apparatus for providing connectivity to a foreign network for a device having network settings configured for communication over a home network without reconfiguring the network settings of the device, the apparatus comprising:
means for intercepting packets transmitted by the device;
means for selectively modifying intercepted packets which are incompatible with network settings configured for communication over the foreign network to be compatible with the network settings of configured for communication over the foreign network, wherein the network settings configured for communication over the home and foreign networks include respective IP addresses, gateway addresses, subnet masks, DNS addresses, and protocol proxies; and
means for selectively providing network services for the device corresponding to network services available on the home network to reduce delay associated with accessing the network services from the foreign network, or to provide network services otherwise inaccessible from the foreign network;
wherein the means for selectively providing network services comprises means for providing a proxy service;
wherein the means for providing a proxy service comprises means for resolving a domain name to an address;
wherein the means for resolving a domain name to an address includes;
means for establishing a connection between the device and a configuration adapter in order for the configuration adapter to intercept packets transmitted by the device;
means for examining contents of the intercepted packets to identify a domain name;
means for resolving the domain name to an address;
means for establishing a connection between the configuration adapter and a computer at the address corresponding to the domain name; and
means for splicing the connections between the device and the configuration adapter, and between the configuration adapter and the computer, to form a single connection between the device and the computer such that the device and the computer communicate packets with each other over the single connection without the network settings of the device being reconfigured.
2. The method of
3. The method of
4. The method of
attempting to resolve the domain name to an address using a domain name server accessible from the foreign network; and
resolving the domain name to an address corresponding to a configuration adapter after a predetermined timeout period expires, or if domain name servers accessible from the foreign network can not resolve the domain name.
5. The method of
6. The method of
7. The method of
resolving the domain name to an address using a domain name server;
attempting to establish a connection with the computer at the address corresponding to the domain name;
resolving the domain name to an address corresponding to the configuration adapter after expiration of a predetermined timeout period;
wherein the step of splicing is performed after receiving a delayed response from the computer at the address corresponding to the domain name.
8. The method of
9. The method of
10. The method of
11. The method of
13. The apparatus of
14. The apparatus of
15. The apparatus of
means for attempting to resolve the domain name to an address using a domain name server accessible from the foreign network; and
means for resolving the domain name to an address corresponding to the configuration adapter after a predetermined timeout period expires, or if the domain name servers accessible from the foreign network can not resolve the domain name.
16. The apparatus of
17. The apparatus of claims 12 wherein the means for resolving the domain name to an address comprises means for using a domain name server accessible from the foreign network.
18. The apparatus of
means for resolving the domain name to an address using a domain name server;
means for attempting to establish a connection with the computer at the address corresponding to the domain name;
means for resolving the domain name to an address corresponding to the configuration adapter after expiration of a predetermined timeout period;
wherein the means for splicing performs the splicing only after receiving a delayed response from the computer at the address corresponding to the domain name.
19. The apparatus of
20. The apparatus of
21. The apparatus of
22. The apparatus of
24. The configuration adapter of
25. The configuration adapter of
26. The configuration adapter of
27. The configuration adapter of
28. The configuration adapter of
29. The configuration adapter of
resolving the domain name to an address using a domain name server;
attempting to establish a connection with the computer at the address corresponding to the domain name;
resolving the domain name to an address corresponding to the configuration adapter after expiration of a predetermined timeout period; and
splicing the connections after receiving a delayed response from the computer at the address corresponding to the domain name.
30. The configuration adapter of
31. The configuration adapter of
32. The configuration adapter of
33. The configuration adapter of
35. The method of
implementing a subset of network protocol functionality to intercept each packet from the application without passing the packet through an RFC-compliant protocol stack.
|
The present application claims priority to U.S. Provisional Patent Application Ser. No. 60/161,138 filed Oct. 22, 1999, the disclosure of which is hereby incorporated by reference in its entirety.
The present invention relates to a system and method for providing local and wide area network communications for devices without reconfiguration of communication parameters of the devices.
Large corporate or enterprise networks typically require significant resources to deploy and maintain. To lessen the burden of supporting countless users, network administrators often mandate computer hardware, software, and network configuration choices based on a user's needs for access to a local or wide area network, such as a corporate intra-net or the Internet, respectively. Once a computer is configured in accordance with the corporate standard, any changes made by the user to connect to a different (foreign) network, such as may be available while traveling, at a remote corporate site, or at home, may result in his inability to reconnect to the network(s) upon returning to his normal (sometimes referred to as “home”) location absent additional administrator intervention.
Widespread deployment of high-speed access technologies has reduced associated costs such that many users have high-speed access to their Network Service Provider (NSP) or Network Access Provider (NAP) from their residences. While high-speed residential access is becoming increasingly more affordable, an incentive remains to share the access among two or more computers, such as a desktop which may belong to the user and a laptop which is often owned by her employer. To establish a connection to the NSP, the user's computing device (desktop, laptop, PDA, etc.) must be appropriately configured. For most users, this task requires additional support from the NSP via telephone in the best case scenario or via an on-site visit for many provisioning tasks which may include hardware installation (cable modem, ISDN modem, NIC, etc.) in addition to application and communication parameter configuration (IP address, gateway, subnet mask, DNS, proxy selections).
Configuration issues present a formidable challenge for truly mobile computing. Wireless modems and cellular telephones are now capable of establishing a network connection within a particular service area. Typically, a user establishes a connection using a remote-access server communicating via point-to-point protocol (PPP) to avoid some of the configuration issues described above. However, this type of connection provides only limited access and functionality. As computing devices become smaller and more powerful, and wireless technologies support increasingly greater bandwidth, traveling “power users” will demand a seamless connection from network to network as they traverse a variety of disparate networks or access areas. User intervention for configuration changes is simply not an acceptable alternative.
A number of strategies have been utilized to reduce the time and effort required for provisioning and/or configuration to connect a new or returning user to a particular network. Dynamic Host Configuration Protocol (DHCP) was developed to allow network administrators to assign TCP/IP configuration parameters to various client computers on their networks. However, some of the functional characteristics of DHCP are not well suited for deploying residential or mobile network access. In particular, DHCP must be selected in the user's configuration to automatically obtain various communication parameters from an appropriate DHCP server. As such, this solution is not viable for any users configured with a static IP address.
In addition to communication parameters which may be set by a DHCP server if appropriately configured, the widespread use of the Internet and world wide web present additional challenges in terms of application configuration settings. For example, many browser applications may be configured to use proxy services for one or more protocols, including HTTP, FTP, Socks, etc. These proxy services are often used in enterprise networks to provide caching and additional security to users. However, the proxy settings must be manually reconfigured by the user to accommodate connection to a foreign network.
One approach to automating application settings uses a strategy similar to a DHCP server. A provisioning server on the foreign network may be used to communicate appropriate proxy settings to a new user using another application program, applet, or script, such as a Java script. However, this approach may require the user (or user's application) to actively request reconfiguration from the provisioning server, i.e. manual intervention from the user. In addition, the applet downloaded from the provisioning server modifies the user's settings which may prevent the user from using that browser on the enterprise network without additional manual intervention and proxy configuration changes.
Thus, it is an object of the present invention to provide a configuration manager which provides network access to a user without modifying the user's network communication parameters.
Another object of the present invention is to provide a transparent proxy service for users having browsers configured to use a protocol proxy.
A further object of the present invention is to provide a system and method for providing transparent access for a user to a network without requiring manual intervention from the user.
Yet another object of the present invention is to provide transparent HTTP and FTP proxy services to users having a browser configured to use a proxy.
An additional object of the present invention is to provide a system and method for selectively providing proxy service to only those users who are configured to use a proxy.
Another object of the present invention is to provide a system and method for determining whether a particular user is configured to use a proxy service.
A further object of the present invention is to provide a system and method for splicing a connection from a user to the configuration manager with a corresponding connection from the configuration manager to an origin server after determining the subscriber proxy settings.
In carrying out the above objects and other objects, features, and advantages of the present invention, a method for providing client access to a network without changing client network settings includes determining whether the client is configured to use a proxy service and selectively acting as the proxy service when the client is so configured. In one embodiment, determining whether the client is configured to use a proxy service includes establishing a connection between the client and a configuration manager and monitoring the connection for messages containing a proxy request.
The present invention monitors domain name requests to detect clients configured to use a particular proxy based on a domain name, and provides domain name resolution to a network address to allow a connection to be established. The present invention detects failed domain name lookup requests originating from the client and generates a reply to the client with the network address of the configuration manager. Once the proxy configuration of the client is determined, an appropriate status indicator is preferably stored in a database for future requests from a particular client or subscriber. For clients which are not configured to use a proxy service, no additional processing overhead is incurred. As such, the present invention is capable of selectively processing requests and providing proxy services only when necessary for compatibility between the client settings and a foreign network.
Once it is determined that the client is not configured for proxy service, a connection between the origin server and the configuration manager is established to service the request.
For clients which are configured to use a proxy service, the proxy service is preferably provided by the configuration manager. However, in applications where the client specified proxy server is publicly available, the proxy request may be forwarded to the specified proxy server if desired. Alternatively, all requests (proxy or direct) may be redirected to a proxy server of the NSP, NAP, or a third-party portal, for example, to provide caching, security, and/or network-specific content.
Whether or not the client is configured to use a proxy service, a connection is established between the client and the configuration manager, and between the configuration manager and the origin server. Rather than copying data between these two sessions, the present invention transfers the session flow control functions to the endpoints to effectively splice the connections together while maintaining the end-to-end semantics. To splice the connections, the configuration manager modifies the message header and retransmits the message so there is no need for application buffering. This enhances throughput and reduces processing time. Preferably, the connection splice is performed below the conventional TCP/IP stack using a scaled down TCP implementation with minimal functionality including the three-way TCP connection establishment protocol.
Various other services may also be transparently provided to the subscriber/client including Domain Name Service (DNS) redirection and Simple Mail Transport Protocol (SMTP) over the foreign network. Redirection may be provided independent of the proxy settings where the client-specified server (SMTP or DNS) is unavailable or behind a firewall (which results in slow response times). DNS redirection according to the present invention intercepts a domain name request and redirects the request from the client-specified server to a local domain name server which may be internal or external to the configuration manager. Likewise, the present invention provides SMTP redirection to a local SMTP server which may be internal or external to the configuration manager. Unlike the DNS redirection, the SMTP redirection keeps the source/reply address but directs messages to their final destination via the local SMTP server.
In one embodiment of the present invention, the configuration manager includes an extendible architecture implemented as a cooperative multiplexing protocol dispatcher below the network and transport layers of the protocol stack. The dispatcher actively monitors all packets and uses various hooks to dynamically select which packets to act on rather than blindly sending packets up the stack. The dispatcher distributes packets not only based on frame type but also by protocol. The dispatcher is preferably implemented in software so various modules can be more easily added, deleted, selected, or unselected and may include event driven and/or condition dependent modules. The architecture of the present invention facilitates various hardware/software implementations including embedded systems having one or more microprocessors, application specific integrated circuits (ASICs) and the like.
The present invention provides a number of advantages relative to prior art approaches to the subscriber/client configuration problem. The present invention provides proxy service independent of whether a pre-configured proxy host is reachable from the foreign network, including cases wherein a domain name is not resolvable to a network address. The present invention provides proxy services for pre-configured users where the user's proxy host is located behind an enterprise network firewall. In addition, the present invention provides a system and method which does not require a proxy request as the first service request of a new subscriber.
The above advantages and other advantages, objects, and features of the present invention, will be readily apparent from the following detailed description of the best mode for carrying out the invention when taken in connection with the accompanying drawings.
As used throughout this description, the terms client and server refer to the role being performed by a program for a particular connection rather than to the program characteristics in general. As one of ordinary skill in the art will appreciate, any given program may be capable of acting both as a client and a server. Likewise, any server may act as an origin server, proxy, gateway, or tunnel based on the nature of a particular request. Likewise, the terms user and subscriber are used interchangeably.
When laptop computer 36 is relocated to a subscriber's home, hotel, airport, etc., configuration settings 38 may be incompatible with the remote or foreign network configuration parameters, represented generally by reference numeral 52. According to one embodiment of the present invention, a configuration manager/adapter 50 is utilized to detect configuration parameters 38 and translate or map these parameters to appropriate network parameters 52 for communication with the foreign network. The various configuration adaptation functions performed by manager/adapter 50 do not alter the settings of laptop computer 36 so no additional changes are required when attempting to reconnect to the home network. Configuration manager/adapter 50 may be physically located near laptop computer 36 or may be remotely located at the network access provider or network service provider, indicated generally by reference numeral 56. The present invention is independent of the particular location of the configuration manager. Likewise, the present invention is independent of the particular communication parameters or protocols utilized.
Referring now to
Non-volatile memory 94 may be implemented by various known memory devices including PROM, EPROM, EEPROM, flash memory, and the like. Preferably, various components stored in non-volatile memory 94 are transferred or copied to random access memory 96 to improve processing speed. For example, RTOS 102 and one or more algorithms 104 may be copied to RAM 96. Random access memory 96 may also be used to store various other temporary information. For example, RAM 96 may include a cache 108 to store data which is repeatedly requested by subscribers. RAM 96 preferably includes a session database 110 which is used to store various communication and processing parameters associated with a particular session so that it may be quickly accessed as described in greater detail below.
A host (subscriber or client) communicates with the configuration manager via one of a plurality of host/subscriber interfaces 112. Communication packets are routed through RAM 96 and stored in appropriate packet buffers 114 for processing. Packets are then communicated to the foreign network via one or more network interfaces 116. Similarly, messages originating on the foreign network pass through network interfaces 116 before being temporarily stored in packet buffers 114, processed, and transmitted through subscriber interfaces 112 to the appropriate subscriber (unless dropped as explained below). As illustrated in
An alternative system implementation for a configuration manager/adapter according to one embodiment of the present invention is illustrated in FIG. 4. System 118 may include an application specific integrated circuit (ASIC) 120 for providing control logic to implement various features of the present invention. ASIC 120 preferably includes storage media 122 to provide non-volatile storage 124 and random access or temporary storage 126. Configuration information 128 may be stored in non-volatile memory 124. Configuration information may include information associated with a particular subscriber so it does not have to be relearned the next time the subscriber attempts to communicate over the foreign network. Preferably, RAM 126 includes various packet buffers 130 for temporary storage of packets being communicated between host interfaces 132 and network interfaces 134.
A block diagram illustrating system software architecture for one embodiment of a configuration manager/adapter according to the present invention is illustrated in FIG. 5. In one preferred embodiment of the present invention, system 150 is implemented primarily in software. However, one of ordinary skill in the art will recognize that various functions may be implemented in software, hardware, or a combination of software and hardware without departing from the spirit or scope of the present invention. Likewise, various functions may be performed concurrently by one or more processors to accomplish the objects and features of the present invention using one or more processing strategies including event-driven and condition-driven processing. As will be appreciated by one of ordinary skill in the art, the sequence or order of processing may be different from that illustrated depending upon the particular application and the particular conditions existing at the time of execution.
System 150 may be used to extend the real-time operating system (RTOS) without significantly modifying the RTOS. In one embodiment, a commercially available RTOS, such as VxWorks is utilized in conjunction with the software architecture extensions illustrated in FIG. 5. System 150 utilizes a cooperative multiplexing protocol dispatcher 152 implemented below the network and transport layers of the protocol stack. Packets transmitted by a client application of a subscriber over physical media 154 are received by one of the subscriber interfaces 156. The device level processing of the received data signal is performed based on a particular signaling format, i.e. Ethernet, ATM, FDDI, and the like. Each packet is passed to block 160 which performs session mapping functions as illustrated and described in greater detail with reference to
Dispatcher 152 includes various ALG hooks or callback functions to access various application level gateways 176. This provides an extendable architecture with various pointers to functions depending on a particular session type. Because dispatcher 152 is implemented below the TCP/IP stack 162, it is able to selectively process packets faster and more efficiently than implementations which perform such functions at the application level.
For users which have a static IP address, i.e. messages which do not contain a DHCP request as indicated by block 208, appropriate address translation or redirection is performed as indicated by block 218. For example, the static IP address contained in the subscriber packets is mapped to a network IP address compatible with the particular subnet of the configuration manager/adapter. To achieve this functionality, the configuration manager must monitor all packets to determine when to selectively perform address translation, i.e. when the subscriber is mis-configured for the foreign network. Processing then continues as illustrated through blocks 214 and 216.
For initialization packets which do not have a valid MAC address as represented by block 205, temporary configuration information is provided as represented by block 220. A subscription log-in page may be provided as represented by block 222. A new user as indicated by block 224 is prompted to create a user account as indicated by block 226. The configuration information is then stored for future reference as indicated by block 228. Processing then continues through blocks 210, 212, 214 and 216 as described above. For established users as determined by block 224, blocks 230 and 232 determine whether a valid log-in ID has been entered. Then block 234 stores the MAC address for validated subscribers as represented by block 203 for subsequent connections to the foreign network. Processing then continues with block 218 which performs any necessary address translation or redirection as illustrated and described in greater detail below.
Processing continues with block 308 which determines whether the packet is an IP fragment. If not, block 310 attempts to determine the type of packet. Internet control message protocol (ICMP) packets are processed as represented by block 312. TCP/UDP packets are examined at block 314 to determine whether they include a valid checksum. Packets with an invalid checksum are dropped as represented by block 336. If the packet type is not recognized, the packet is passed to the next hook of the dispatcher as represented by block 316.
If the source address of the packet is on the same subnet as the foreign network as indicated by block 306, block 318 determines whether the packet has a proxy ARP (address resolution protocol) entry. If not, an appropriate proxy ARP entry is created as represented by block 320. Block 322 determines whether an application level gateway (ALG) is required for additional processing. If required, the processing continues with block 308. If no special ALG processing is required, the processing continues with block 324 which sets the link layer source address to the network address. As such, the present invention selectively translates those addresses which are not appropriately configured for the foreign network. Block 324 changes the source address such that the packet appears to originate at the configuration manager.
Block 326 examines the destination address to determine whether it is on the same subnet as the foreign network. Block 328 uses ARP to resolve the destination link layer address for destinations on the same subnet. Block 330 obtains the appropriate network gateway address for destinations which are on a different subnet than the configuration manager processing the request. The packet is then output on the network interface as represented by block 332.
For packets which are determined to be fragmented by block 308, a fragment counter is updated as represented at block 334 prior to the packet being dropped at 336. For packets which are not fragmented and recognized as TCP/UDP packets with a valid checksum indicated by block 314, block 338 determines whether a session mapping exists. If an entry exists in the session mapping table, block 340 determines whether the destination port of the session matches the destination port of the packet. If the packet and session destination ports do not match, the session mapping is deleted at block 342 before creating a new session mapping as indicated by block 344. As such, the present invention utilizes a destination port as part of the session mapping. Likewise, if the block 338 determines that session mapping does not yet exist, a new session mapping is created as represented by block 344. Once the session is created as determined by block 346, processing continues with block 340. If a session cannot be established, the packet is dropped as indicated by block 336. For newly created sessions, the session destination port is set equal to the packet destination port and processing continues through block 348 which determines whether an application level gateway is required for additional processing.
Block 350 applies appropriate ALG processing when required. Block 352 determines whether a request has been received from the ALG to drop the current packet. When such a request is received, the packet is dropped as indicated by block 336. Otherwise, block 354 determines whether the ALG changed the packet length. If the packet length is modified by the ALG as indicated by block 354, the M block lengths must be adjusted at block 356 prior to adjusting the sequence number (for TCP packets) at block 358. If the ALG does not modify the packet length, no additional IP modifications are required and block 358 adjusts the sequence number prior to processing by block 360. The message source port is replaced with the session source port as represented by block 360. As such, the IP session mapping of the present invention preforms address and port translation. The port is utilized for messages received from the network interface to map back through the session mapping and be delivered to the appropriate subscriber as explained in greater detail below.
After modification of the source address and source port, the IP and UDP/TCP checksums must be recalculated as represented by block 362. The status or state of the session is then updated as represented by block 364. Preferably, the session status is stored within a data structure in RAM as illustrated in greater detail with reference to FIG. 9.
Block 366 examines the status parameter for the current session to determine whether the session has been closed. If not closed, block 368 updates the session time stamp. The present invention utilizes the time stamp to determine which ports may be reused. If a TCP FIN (close) is received, the port may be released immediately. Otherwise, a timeout queue is utilized, such as illustrated and described with reference to
A detailed block diagram illustrating operation of a system or method for performing dynamic address translation of packets received from the network interface of a configuration manager according to one embodiment of the present invention is illustrated in
If the destination address of the received packet does not correspond to the subscriber address, block 394 determines whether the destination address is a proxied address. If not, the packet is dropped as represented by block 392. For proxied addresses, block 396 modifies the packet to comply with the appropriate frame type, e.g. Ethernet. Block 398 updates the session time stamp which is used to determine when the particular port can be reused by another session as explained in greater detail with reference to
The session state indicator is updated if necessary as represented by block 402. The TCP/UDP and IP header checksums are recalculated at block 404 because of the modification to the packet which occurred at block 400. The packet is then output on the subscriber interface as represented by block 406.
For packets having a destination IP address which matches a subscriber IP address and which are not fragments as determined by blocks 386 and 388, the packet type is determined by block 408. The packet is passed to the next hook of the dispatcher as indicated by block 410 unless the packet type is identified as an ICMP or TCP/UDP packet. ICMP packets are processed as represented by block 412. TCP/UDP packets are examined for a valid checksum at block 414. Packets with invalid checksums are dropped as represented by block 392. Block 416 determines whether a session mapping exists for valid TCP/UDP packets. If no session mapping exists, the packet is dropped as indicated by block 392. Otherwise, the packet is examined to determine whether the destination port corresponds to the session destination port at block 418. If the ports do not match, the packet is dropped as indicated by block 392. Otherwise, an appropriate acknowledgment is returned to the source address as represented by block 420 to acknowledge receipt of the packet. The acknowledgment number may have to be adjusted based on information stored in the session mapping tables.
Block 422 determines whether ALG processing is required. If required, the appropriate ALG is called as represented by block 424. The ALG determines whether the packet should be dropped as indicated by block 392, or processed through blocks 398-406 where it is output on the subscriber interface. Likewise, if no ALG processing is required as indicated by block 422, the packet is processed in accordance with blocks 398-406 as described above.
Thus, the present invention utilizes selective address and port translation to allow any IP address transmitted by a subscriber to become a valid internal IP address for the foreign network without manual user intervention. Multiple subscriber clients can communicate even though each IP address may correspond to a different subnet. Because the functions illustrated in
The advantages of the present invention in terms of searching efficiencies are illustrated and described with reference to,
As also illustrated in
Each session data structure 446 includes a number of fields or entries represented by reference numerals 454-486. Each session data structure includes links to the next 454 and previous 456 entries in the session linked list. In addition, the transport protocol, MAC address, IP address and port of the subscriber are stored as represented by blocks 458-464. The original subscriber's destination port which corresponds to the port prior to translation is stored in entry 466. The mapped IP address 468 and mapped network port 470 are used to adapt the subscriber's configuration (IP address and port) to an appropriate address and port for communication over the foreign network. The current session state is also stored as indicated by reference numeral 472.
The sequence number and acknowledgment number for the subscriber are entered in fields 474 and 476, respectively. A sequence number delta or modification value is stored in field 478. The sequence number delta is used to modify the TCP sequence information between the subscriber and the foreign network to maintain appropriate end-to-end connection semantics as explained in greater detail below. Slot 480 is used to store the previous value for the subscriber sequence number delta. An ALG pointer is provided to link an ALG information list 490 to a particular session. As indicated, ALG linked list 490 exists in a one-to-many relationship with respect to the ALG pointer 482, i.e. many sessions may be linked to the same ALG data structure 490. Session specific ALG data 510 is associated with a particular session via slot 484. A time stamp slot 486 records an absolute time indicating the last time the session was active, i.e. used to transmit or receive any packets. The time stamp may be used to identify the oldest session so that the associated port may be reused. Any sessions which are closed can be used to immediately release the associated port. Thus, the present invention preferably does not expend overhead to proactively clean the tables or data structures. Rather, ports are reused based on the oldest absolute time, or based on ports which are explicitly released as a result of a closed session, for example when a TCP FIN packet is received.
An ALG information list 490 is associated with one or more sessions as described above. Each ALG data structure may include various fields represented by entries 492-508. In particular, structure 490 preferably includes pointers linking the next 492 and previous 494 entries in the ALG list. Entry 496 provides for storage of the ALG identifier or name. The ALG protocol and application are stored in entries 498 and 500, respectively. Preferably, data structure 490 includes separate packet hooks 502 and 504 for packets received via the subscriber interface and network interface, respectively. Entry 506 provides an additional hook which may be used to link the ALG to various other applications. A shut down hook 508 is used to terminate execution of the ALG if required.
Referring now to
The configuration manager returns its own IP address to resolve the DNS request for a proxy server only until the proxy status can be established. Once the proxy configuration of the browser or other application program is determined and stored in the subscriber database, additional DNS requests are not resolved by the configuration manager (unless employing redirection as described below). The DNS request which is resolved as represented by block 556 is returned with a duration of zero such that any subsequent HTTP requests by the client browser will also be preceded by a DNS request to again resolve the proxy address. These subsequent DNS requests will not be resolved by the configuration manager because the proxy configuration has been previously determined and stored. Rather, these DNS requests are relayed by the configuration manager/adapter to the server which responded to the previous DNS request.
If the DNS request is resolvable to the actual pre-configured proxy server, then the actual DNS result may be relayed back to the browser as represented by block 557. Once the IP address has been resolved, a connection is established between the subscriber and the configuration manager as represented by block 558. The packet is then examined to determine if a well-known destination port is being used as represented by block 560. If a well-known port is being used, a connection reset request is sent as indicated by block 562. Otherwise, the packet contents or payload must be examined to determine if the HTTP request is a proxy request as indicated by blocks 564 and 566. If a proxy request is detected, the proxy status of the subscriber is updated in the subscriber database as represented by block 568. The configuration manager then acts as the proxy and modifies the packet to change the proxy request to a standard unproxied or direct request with an appropriate IP address as represented by block 570. The configuration manager then establishes a connection with the origin server, and splices the connection from the subscriber to the origin server as represented by block 572 and explained below.
Rather than maintain two separate connections between the subscriber and configuration manager, and between the configuration manager and the origin server, the connections are spliced to form a single end-to-end connection. Rather than utilizing a known splicing technique which essentially short circuits TCP sockets without going through the application buffer, the present invention operates below the protocol stack on top of the link layer between the routing and network layers to directly manipulate the packets and forward them between the subscriber and the origin server. That is, the present invention directly manipulates the packet headers to modify or adjust the sequencing, checksums, and CRC data while essentially transferring additional transport layer semantics to the end-points, i.e. the subscriber and the origin server. By avoiding the use of socket connections, the present invention requires fewer resources for the file system, buffers, etc. and is capable of operating with a resource-limited operating system.
If the proxy configuration has been previously determined and stored in the subscriber information database, block 550 proceeds to block 570 or block 572. For users configured to use a proxy server, the proxy request is modified by block 570 prior to connecting to the origin server and splicing the connections as described above. Likewise, if the subscriber is not configured to use a proxy server, no manipulation of the packet is required. However, proxy use may be required by the access provider as a means to improve security or performance. In this case, a direct request from the subscriber will be modified to use the proxy server specified by the access provider. For subscribers configured to use a proxy server, proxy requests may be directed to the proxy server specified by the access provider whether or not the originally specified proxy server is available or not. A connection to the origin server is then established and the connections are spliced as indicated by blocks 572 and 574.
Referring now to
A more detailed representation of HTTP proxy processing for packets received through the subscriber interface is provided by
Block 600 determines whether the subscriber has previously been determined to be using a proxy server. If the proxy status for the subscriber is unknown or determined to be yes, block 602 examines the destination port to determine whether it is a proxy port. If the result is negative, processing continues as represented by block 622. Otherwise, or if the proxy status is unknown, block 604 determines whether any session mapping has been established. If yes, block 606 determines whether to reset the connection, in which case the session state is set to close as represented by block 608 and the packet is caused to be dropped as represented by block 610. Otherwise, the session state is examined at 612 to determine subsequent processing as represented by blocks 614, 616, 618, 620, and 622. If a SYN (synchronization request) has been received as reflected by the session state, block 614 determines whether an acknowledgment (ACK) has been received. The acknowledgment is then examined for a proper value as represented by block 624. If an appropriate acknowledgment is received, the session state is changed to “established” as represented by block 628. Otherwise, a connection reset is sent to the subscriber and the session state is changed to “closed” as represented by block 630. Similarly, if no acknowledgment and no synchronization have been received as indicated by blocks 614 and 626, respectively, the connection is reset and the session state is closed. Otherwise, block 632 determines whether the acknowledgment is greater than a maximum value, in which case a packet drop is requested as represented by block 610. If the maximum is not exceeded, block 676 sends a SYN/ACK to the subscriber and updates the session state appropriately.
Session state FIN_WAIT1 is used to accommodate slow links in resolving DNS requests. Block 616 detects the state transition to the first wait state. Any errors are removed from the retransmit queue and the session state is changed to the second wait state (FIN_WAIT2) as represented by block 634. Otherwise, a connection reset is sent to the subscriber and the session is closed as represented by block 636.
Likewise, in the second wait state as determined by block 618, if a FIN is not received, a subscriber reset is generated as indicated by block 636. If a FIN is received, an appropriate acknowledgment as represented by block 638 is sent. The session mapping is subsequently removed as represented by block 640.
For an established HTTP connection as indicated by block 620 (
If a proxy request is detected by block 642 (
If a session mapping has not been created as determined by block 604 (
A block diagram illustrating a HTTP proxy ALG for packets received from the network interface is illustrated in FIG. 16. This diagram represents a state transition diagram for the server state as indicated by block 680. Depending upon the particular state, processing proceeds via blocks 682, 684, and 686. For the SYN_SENT state, block 682 determines whether a SYN/ACK packet has been received. If such packet has not been received, or the acknowledgment is not valid as indicated by block 684, then the connection between the origin server and the configuration manager is reset as indicated by block 692. A drop request is then returned by block 690. If a valid acknowledgment is received, block 686 forwards the acknowledgment to the subscriber side via the subscriber interface and updates the server state to “established.” The stored packet is then sent as represented by block 688.
For the “established” state, block 684 determines whether an HTTP packet has been received. If so, the response received from the origin server is appropriately modified prior to sending to the subscriber via the subscriber interface as indicated by block 694. The server state is then updated to “spliced.” The appropriate response is then placed in the retransmit queue as indicated by block 696 prior to returning a drop request at block 690.
If a packet is not an HTTP packet, the server state is updated to “spliced” as indicated by block 698 and the ALG returns a “continue” as indicated by block 686. Once the connection is spliced, the server state is set accordingly and additional requests are not processed by the ALG.
Subscriber 710 then responds with an ACK packet 720 and an HTTP proxy request 722 having an ACK value of 2 and sequence value of 4001. Configuration manager 714 then attempts to establish a connection with the web/proxy server 712 over the foreign network via the network interface of the configuration manager 714. The original sequence number generated by subscriber 710 is used in the synchronization request to the web/proxy server 712 as represented by reference numeral 724. Server 712 responds with an ACK/SYN packet having its sequence number (5000 in this example) and an acknowledgment number corresponding to the sequence number of the synchronization request as indicated at 726. Configuration manager 714 generates an appropriate ACK packet to reply to server 712 as indicated at 728 to establish the connection. Configuration manager 714 then modifies the HTTP proxy request 722 to an HTTP request with the established acknowledgment and sequence numbers as represented by reference numeral 730. Server 712 replies to configuration manager 714 with an HTTP response 732 which is forwarded as an HTTP proxy response from configuration manager 714 to subscriber 710 as indicated at 734. This is followed by HTTP data 736 which is forwarded at 738 to subscriber 710. The connection between proxy server 712 and configuration manager 714 is closed by the request 740. The connection between the configuration manager 714 and subscriber 710 is then closed via an appropriate request 742.
The separate connections between subscriber 710 and configuration manager 714, and between configuration manager 714 and server 712 may be spliced to reduce or eliminate processing by configuration manager 714. According to the present invention, the connection is preferably spliced by directly manipulating the packet without having to copy its contents or payload. For example, the sequence numbers, SYNs and ACKs, may be manipulated with corresponding adjustments (and padding if necessary) to the checksum and CRC so subscriber 710 maintains a single connection with server 712.
Once the proxy status has been determined and stored in the subscriber database, block 774 attempts to resolve the address using a local server. The IP destination address is changed to the address for the current attempt and the counter is incremented. The packet is then sent over the network interface as represented by block 776.
Referring now to
When subscriber 820 moves to a remote location which is serviced by foreign LAN 836, the preconfigured service or servers may be unavailable or provide poor response due to the network traffic and location of the servers. In addition, various network service providers may prevent access to services from a foreign network. For example, many ISPs prevent access to the SMTP server from an unregistered network address because SMTP does not have built-in authentication and authorization features. This may be enforced to prevent, or at least hinder, spoofing, for example. As such, when subscriber 820 relocates to foreign LAN 836, SMTP service may not be available even though the home SMTP server is publicly addressable.
To provide complete transparency to the subscriber 820 while interfacing with the foreign LAN 836, the present invention may redirect various service requests to a substitute local service as represented by 840. As such, configuration manager/adapter 838 receives a request for a preconfigured service as represented by 842. Configuration manager 838 redirects the request to a local server which can service the request. In the case of an SMTP request, the source address of the subscriber 820 is preferably maintained such that any replies are routed back to the home LAN 822 of subscriber 820. However, outbound traffic is redirected to a local substitute service 840 which then directs the messages to their final destination as specified by subscriber 820. Depending upon the particular application, the substitute local service 840 may be integrated within configuration manager/adapter 838.
As illustrated in
Thus, the present invention provides a subscriber transparent access to a foreign network using a configuration manager/adapter which adapts the subscriber to the foreign network without making any changes to the subscriber's settings which would require user intervention to reconnect to a home network. The configuration manager/adapter of the present invention selectively determines whether a particular communication parameter or service request needs to be adapted and may only process those requests which are mis-configured to minimize processing overhead. By operating below the protocol stack, the present invention provides improved processing efficiency and greater throughput in a scalable architecture capable of multiple thousands of concurrent sessions.
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.
Short, Joel E., Robbins, Barry R., Ferreria, Manuel, Caswell, Ken
Patent | Priority | Assignee | Title |
10033837, | Sep 29 2012 | F5 Networks, Inc | System and method for utilizing a data reducing module for dictionary compression of encoded data |
10069580, | Jun 30 2014 | UBIQUITI INC | Wireless radio device alignment tools and methods |
10070312, | Nov 24 2014 | AT&T Intellectual Property I, L.P. | Facilitation of seamless security data transfer for wireless network devices |
10084238, | Oct 09 2015 | UBIQUITI INC | Synchronized multiple-radio antenna systems and methods |
10097616, | Apr 27 2012 | F5 Networks, Inc. | Methods for optimizing service of content requests and devices thereof |
10110436, | Dec 08 1998 | NOMADIX, INC. | Systems and methods for providing content and services on a network system |
10136233, | Sep 11 2015 | UBIQUITI INC | Compact public address access point apparatuses |
10142342, | Mar 23 2014 | Extreme Networks, Inc | Authentication of client devices in networks |
10142989, | Aug 31 2014 | UBIQUITI INC | Methods and apparatuses for graphically indicating station efficiency and pseudo-dynamic error vector magnitude information for a network of wireless stations |
10164332, | Oct 14 2014 | UBIQUITI INC | Multi-sector antennas |
10164940, | Feb 24 1999 | Guest Tek Interactive Entertainment Ltd. | Methods and apparatus for providing high speed connectivity to a hotel environment |
10170828, | Feb 08 2013 | UBIQUITI INC | Adjustable-tilt housing with flattened dome shape, array antenna, and bracket mount |
10171293, | Nov 23 2005 | Comcast Cable Communications, LLC | Initializing, provisioning, and managing devices |
10182013, | Dec 01 2014 | F5 Networks, Inc | Methods for managing progressive image delivery and devices thereof |
10182438, | Aug 31 2014 | UBIQUITI INC | Methods and apparatuses for graphically indicating station efficiency and pseudo-dynamic error vector magnitude information for a network of wireless stations |
10187317, | Nov 15 2013 | F5 Networks, Inc | Methods for traffic rate control and devices thereof |
10194328, | Jun 30 2014 | UBIQUITI INC | Methods and tools for persistent spectrum analysis of an operating radio frequency band |
10200299, | Nov 01 2007 | Comcast Cable Communications, LLC | Method and system for directing user between captive and open domains |
10205471, | Oct 11 2013 | UBIQUITI INC | Wireless radio system optimization by persistent spectrum analysis |
10230566, | Feb 17 2012 | F5 Networks, Inc | Methods for dynamically constructing a service principal name and devices thereof |
10284268, | Feb 23 2015 | UBIQUITI INC | Radio apparatuses for long-range communication of radio-frequency information |
10291580, | Oct 15 2002 | NOMADIX, INC. | Systems and methods for network address translation |
10312598, | Feb 04 2013 | UBIQUITI INC | Radio system for long-range high-speed wireless communication |
10341243, | Dec 08 1998 | NOMADIX, INC. | Systems and methods for providing content and services on a network system |
10367592, | Jun 30 2014 | UBIQUITI INC | Wireless radio device alignment tools and methods |
10367748, | Oct 22 1999 | NOMADIX, INC. | Systems and methods for dynamic data transfer management on a per subscriber basis in a communications network |
10381739, | Oct 09 2015 | UBIQUITI INC | Synchronized multiple-radio antenna systems and methods |
10404698, | Jan 15 2016 | F5 Networks, Inc. | Methods for adaptive organization of web application access points in webtops and devices thereof |
10425536, | May 08 2014 | UBIQUITI INC | Phone systems and methods of communication |
10447564, | Feb 12 2000 | Comscore, Inc; Rentrak Corporation; Proximic, LLC | Systems for and methods of user demographic reporting usable for identifiying users and collecting usage data |
10469495, | Mar 07 2014 | UBIQUITI INC | Cloud device identification and authentication |
10505792, | Nov 02 2016 | F5 Networks, Inc | Methods for facilitating network traffic analytics and devices thereof |
10505818, | May 05 2015 | F5 Networks, Inc | Methods for analyzing and load balancing based on server health and devices thereof |
10506080, | Sep 26 2014 | Canon Kabushiki Kaisha | Communication apparatus, communication system, information processing method, and storage medium |
10566676, | Apr 01 2014 | UBIQUITI INC | Compact radio frequency antenna apparatuses |
10574474, | Mar 07 2014 | UBIQUITI INC | Integrated power receptacle wireless access point (AP) adapter devices |
10601830, | Jul 03 2009 | HUAWEI TECHNOLOGIES CO , LTD | Method, device and system for obtaining local domain name |
10616766, | Nov 24 2014 | AT&T Intellectual Property I, L.P. | Facilitation of seamless security data transfer for wireless network devices |
10623030, | Oct 11 2013 | UBIQUITI INC | Wireless radio system optimization by persistent spectrum analysis |
10680342, | Oct 09 2015 | UBIQUITI INC | Synchronized multiple-radio antenna systems and methods |
10721269, | Nov 06 2009 | F5 Networks, Inc. | Methods and system for returning requests with javascript for clients before passing a request to a server |
10749581, | Feb 23 2015 | UBIQUITI INC | Radio apparatuses for long-range communication of radio-frequency information |
10756422, | Oct 14 2014 | UBIQUITI INC | Antenna isolation shrouds and reflectors |
10757518, | Sep 11 2015 | UBIQUITI INC | Compact public address access point apparatuses |
10770787, | Oct 14 2014 | UBIQUITI INC | Multi-sector antennas |
10778541, | Jul 19 2017 | Level 3 Communications, LLC | Systems and methods for automated verification and reconfiguration of disconnected network devices |
10812204, | Jun 30 2014 | UBIQUITI INC | Wireless radio device alignment tools and methods |
10812266, | Mar 17 2017 | F5 Networks, Inc | Methods for managing security tokens based on security violations and devices thereof |
10819037, | Feb 04 2013 | UBIQUITI INC | Radio system for long-range high-speed wireless communication |
10828092, | May 21 2007 | AtriCure, Inc. | Cardiac ablation systems and methods |
10834065, | Mar 31 2015 | F5 Networks, Inc | Methods for SSL protected NTLM re-authentication and devices thereof |
10848490, | Mar 07 2014 | Ubiquiti Inc. | Cloud device identification and authentication |
10868917, | May 08 2014 | UBIQUITI INC | Phone systems and methods of communication |
10873858, | Jul 07 2009 | NOMADIX, INC. | Zone migration in network access |
10911520, | Mar 12 2007 | Citrix Systems, Inc. | Systems and methods of using the refresh button to determine freshness policy |
10916844, | Mar 17 2014 | UBIQUITI INC | Array antennas having a plurality of directional beams |
10924641, | Jul 10 2017 | UBIQUITI NETWORKS, INC | Wearable video camera medallion with circular display |
10979385, | Oct 15 2002 | NOMADIX, INC. | Systems and methods for network address translation |
11011835, | Feb 08 2013 | UBIQUITI INC | Adjustable-tilt housing with flattened dome shape, array antenna, and bracket mount |
11023265, | Mar 20 2015 | Intel Corporation | Techniques for improving output-packet-similarity between primary and secondary virtual machines |
11057061, | Oct 11 2013 | Ubiquiti Inc. | Wireless radio system optimization by persistent spectrum analysis |
11076404, | Aug 31 2014 | UBIQUITI INC | Methods and apparatuses for graphically indicating station efficiency and pseudo-dynamic error vector magnitude information for a network of wireless stations |
11108815, | Nov 06 2009 | F5 Networks, Inc. | Methods and system for returning requests with javascript for clients before passing a request to a server |
11115089, | Feb 23 2015 | Ubiquiti Inc. | Radio apparatuses for long-range communication of radio-frequency information |
11122042, | May 12 2017 | F5 Networks, Inc | Methods for dynamically managing user access control and devices thereof |
11134082, | Mar 07 2014 | Ubiquiti Inc. | Cloud device identification and authentication |
11178150, | Jan 20 2016 | F5 Networks, Inc | Methods for enforcing access control list based on managed application and devices thereof |
11184187, | Sep 05 2003 | Comcast Cable Communications, LLC | Method and system for internet protocol provisioning of customer premises equipment |
11196141, | Apr 01 2014 | UBIQUITI INC | Compact radio frequency antenna apparatuses |
11196622, | Nov 23 2005 | Comcast Cable Communications, LLC | Initializing, provisioning, and managing devices |
11201814, | Mar 23 2014 | Extreme Networks, Inc | Configuration of networks using switch device access of remote server |
11258764, | Sep 27 2017 | UBIQUITI INC | Systems for automatic secured remote access to a local network |
11271867, | Sep 05 2003 | Comcast Cable Communications, LLC | Gateway for transporting out-of-band messaging signals |
11296407, | Mar 17 2014 | Ubiqsiti Inc. | Array antennas having a plurality of directional beams |
11296805, | Jun 30 2014 | Ubiquiti Inc. | Wireless radio device alignment tools and methods |
11303016, | Oct 14 2014 | Ubiquiti Inc. | Multi-sector antennas |
11303037, | Oct 09 2015 | Ubiquiti Inc. | Synchronized multiple-radio antenna systems and meihods |
11303542, | Jul 19 2017 | Level 3 Communications, LLC | Systems and methods for automated verification and reconfiguration of disconnected network devices |
11336342, | Feb 23 2015 | Ubiquiti Inc. | Radio apparatuses for long-range communication of radio-frequency information |
11343237, | May 12 2017 | F5 Networks, Inc | Methods for managing a federated identity environment using security and access control data and devices thereof |
11350254, | May 05 2015 | F5 Networks, Inc | Methods for enforcing compliance policies and devices thereof |
11363023, | Jul 03 2009 | Huawei Technologies Co., Ltd. | Method, device and system for obtaining local domain name |
11451545, | Mar 07 2014 | Ubiquiti Inc. | Cloud device identification and authentication |
11482352, | Jan 09 2018 | UBIQUITI INC | Quick connecting twisted pair cables |
11489740, | Jul 19 2017 | Level 3 Communications, LLC | Systems and methods for automated verification and reconfiguration of disconnected network devices |
11489815, | Feb 21 2021 | Path Network Inc. | Methods and systems for synchronizing state amongst monitoring nodes |
11502969, | Nov 01 2007 | Comcast Cable Communications, LLC | Method and system for directing user between captive and open domains |
11670844, | Feb 08 2013 | Ubiquiti Inc. | Adjustable-tilt housing with flattened dome shape, array antenna, and bracket mount |
11677688, | Sep 13 2019 | UBIQUITI INC | Augmented reality for internet connectivity installation |
11736211, | Jun 30 2014 | Ubiquiti Inc. | Wireless radio device alignment tools and methods |
11736311, | Sep 05 2003 | Comcast Cable Communications, LLC | Gateway for transporting out-of-band messaging signals |
11743146, | Jul 19 2017 | Level 3 Communications, LLC | Systems and methods for automated verification and reconfiguration of disconnected network devices |
11751068, | Jun 30 2014 | UBIQUITI INC | Methods and tools for assisting in the configuration of a wireless radio network |
11757946, | Dec 22 2015 | F5 Networks, Inc | Methods for analyzing network traffic and enforcing network policies and devices thereof |
11804864, | Oct 11 2013 | Ubiquiti Inc. | Wireless radio system optimization by persistent spectrum analysis |
11838851, | Jul 15 2014 | F5 Networks, Inc | Methods for managing L7 traffic classification and devices thereof |
11895138, | Feb 02 2015 | F5 Networks, Inc | Methods for improving web scanner accuracy and devices thereof |
11909087, | Feb 04 2013 | Ubiquiti Inc. | Coaxial RF dual-polarized waveguide filter and method |
11943755, | Aug 31 2014 | Ubiquiti Inc. | Methods and apparatuses for graphically indicating station efficiency and pseudo-dynamic error vector magnitude information for a network of wireless stations |
11949562, | Jan 18 2011 | NOMADIX, INC. | Systems and methods for group bandwidth management in a communication systems network |
11973271, | Oct 09 2015 | Ubiquiti Inc. | Synchronized multiple-radio antenna systems and methods |
11978945, | Apr 01 2014 | Ubiquiti Inc. | Compact radio frequency antenna apparatuses |
12133075, | Jul 07 2009 | NOMADIX, INC. | Zone migration in network access |
12160424, | Mar 07 2014 | Ubiquiti Inc. | Cloud device identification and authentication |
6963873, | Jan 02 2002 | Intel Corporation | Method and system for automatic association of a signed certificate with a certificate signing request |
7051087, | Jun 05 2000 | Microsoft Technology Licensing, LLC | System and method for automatic detection and configuration of network parameters |
7095519, | Nov 12 1999 | MIMEO COM | System, method and recordable medium for uploading documents over a network |
7197574, | Sep 29 1999 | Kabushiki Kaisha Toshiba | Domain name system inquiry apparatus, domain name system inquiry method, and recording medium |
7219140, | Dec 05 2001 | Microsoft Technology Licensing, LLC | Configuration and management systems for mobile and embedded devices |
7231449, | Mar 05 2003 | Lenovo PC International | Computer system having a network access point |
7266589, | Aug 13 2001 | General Electric Company | Service-portal enabled automation control module (ACM) |
7403969, | May 26 2004 | AT&T Delaware Intellectual Property, Inc. | Network conferencing using method for distributed computing and/or distributed objects to intermediate host for presentation to a communications device |
7406526, | Sep 28 2001 | Qualcomm Incorporated | Extended internet protocol network address translation system |
7426652, | Sep 09 2002 | MESSAGEONE, LLC | System and method for application monitoring and automatic disaster recovery for high-availability |
7502841, | Feb 11 2004 | SolutionInc Limited | Server, system and method for providing access to a public network through an internal network of a multi-system operator |
7519048, | Dec 28 2000 | NEC Corporation | Communication system and packet switching method thereof |
7554995, | Mar 12 1997 | GATE WORLDWIDE HOLDINGS LLC | System and method for establishing network connection with unknown network and/or user device |
7577719, | Apr 10 2002 | LG Electronics Inc | Method for controlling home automation system |
7587037, | May 26 2004 | AT&T Intellectual Property I, L.P. | Network conferencing using method for distributed computing and/or distributed objects for presentation to a mobile communications device |
7587452, | Apr 23 2004 | AT&T Intellectual Property I, L. P. | Methods, systems, and products for network conferencing |
7623848, | Mar 20 2003 | MESSAGEONE, LLC | Method and system for providing backup messages to wireless devices during outages |
7676575, | Nov 22 2000 | NTT DoCoMo, Inc | Method and device for managing access to network |
7689716, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing dynamic network authorization, authentication and accounting |
7694228, | May 26 2004 | AT&T Intellectual Property I, L.P. | Methods, systems, and products for network conferencing |
7698432, | Oct 22 1999 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for dynamic bandwidth management on a per subscriber basis in a communications network |
7730133, | May 26 2004 | AT&T Intellectual Property I, L.P. | Systems, methods, and products for conducting conferences |
7739383, | Oct 22 1999 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for dynamic bandwidth management on a per subscriber basis in a communications network |
7739497, | Mar 21 2001 | FORCEPOINT FEDERAL HOLDINGS LLC F K A FORCEPOINT LLC | Method and apparatus for anonymous IP datagram exchange using dynamic network address translation |
7752334, | Oct 15 2002 | GATE WORLDWIDE HOLDINGS LLC | Intelligent network address translator and methods for network address translation |
7801978, | Oct 18 2000 | Citrix Systems, Inc | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
7808901, | Dec 11 2002 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Media processing system based on satellite set top box platform with telephony downstream and upstream data paths |
7809840, | Nov 02 2006 | Alcatel Lucent | System and method of enabling TCP splice with a content-based charging proxy |
7822873, | Oct 15 2002 | GATE WORLDWIDE HOLDINGS LLC | Intelligent network address translator and methods for network address translation |
7848258, | Feb 06 2009 | Cisco Technology, Inc. | Dynamically transitioning static network addresses |
7953857, | Oct 22 1999 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for dynamic data transfer management on a per subscriber basis in a communications network |
8009641, | Mar 09 2005 | Nokia Technologies Oy | Device configuration apparatus, system, and method |
8027271, | May 30 2006 | Panasonic Corporation | Communicating apparatus and controlling method of thereof |
8027339, | Mar 12 1997 | GATE WORLDWIDE HOLDINGS LLC | System and method for establishing network connection |
8028093, | Dec 11 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Media processing system supporting adaptive digital media parameters based on end-user viewing capabilities |
8051206, | Oct 15 2002 | GATE WORLDWIDE HOLDINGS LLC | Intelligent network address translator and methods for network address translation |
8079076, | Nov 02 2006 | Cisco Technology, Inc. | Detecting stolen authentication cookie attacks |
8125905, | Jul 02 2001 | TREND MICRO INCORPORATED | System and method for processing network packet flows |
8156246, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
8176530, | Dec 11 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Preventing a non-head end based service provider from sending media to a media processing system |
8190708, | Oct 22 1999 | GATE WORLDWIDE HOLDINGS LLC | Gateway device having an XML interface and associated method |
8224936, | May 21 2008 | Cisco Technology, Inc. | Configuration file override |
8224966, | Aug 24 2004 | Cisco Technology, Inc.; Cisco Technology, Inc | Reproxying an unproxied connection |
8234409, | Oct 15 2002 | GATE WORLDWIDE HOLDINGS LLC | Intelligent network address translator and methods for network address translation |
8238314, | Sep 27 2007 | Alcatel Lucent | Method and apparatus for providing a distributed forwarding plane for a mobility home agent |
8244886, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
8248992, | Oct 12 2005 | Samsung Electronics Co., Ltd. | Method and apparatus for providing home network device service to an external device through web service |
8266266, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing dynamic network authorization, authentication and accounting |
8266269, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
8275829, | Mar 12 2007 | Citrix Systems, Inc. | Systems and methods of prefetching objects for caching using QoS |
8281237, | Nov 12 1999 | MIMEO COM | System, method and recordable medium for printing services over a network and graphical user interface |
8310960, | Mar 18 2005 | Ricoh Technology Research, Inc. | Communication apparatus, method for controlling communication apparatus, communication system, program and medium |
8316427, | Mar 09 2007 | International Business Machines Corporation | Enhanced personal firewall for dynamic computing environments |
8321943, | Jul 30 2009 | CA, INC | Programmatic communication in the event of host malware infection |
8335853, | Dec 17 2009 | RIBBON COMMUNICATIONS OPERATING COMPANY, INC | Transparent recovery of transport connections using packet translation techniques |
8335917, | Aug 12 2008 | Cisco Technology, Inc | System for binding a device to a gateway to regulate service theft through cloning |
8364785, | Mar 12 2007 | Citrix Systems, Inc. | Systems and methods for domain name resolution interception caching |
8364806, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
8370477, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
8370524, | Oct 15 2002 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for network address translation |
8417821, | Nov 02 2006 | Alcatel Lucent | System and method of enabling TCP splice with a content-based charging proxy |
8473589, | May 21 2008 | Cisco Technology, Inc. | Configuration file override |
8495180, | Dec 11 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Server architecture supporting a personal media exchange network |
8495729, | Dec 16 2004 | Samsung Electronics Co., Ltd. | System for and method of authenticating device and user in home network |
8504775, | Mar 12 2007 | Citrix Systems, Inc | Systems and methods of prefreshening cached objects based on user's current web page |
8516083, | Oct 22 1999 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods of communicating using XML |
8516257, | Dec 11 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Secure media peripheral association in a media exchange network |
8549285, | Mar 21 2001 | FORCEPOINT FEDERAL HOLDINGS LLC | Method and apparatus for anonymous IP datagram exchange using dynamic network address translation |
8554843, | Sep 06 2002 | MESSAGEONE, LLC | Method and system for processing email during an unplanned outage |
8566912, | Jul 07 2009 | GATE WORLDWIDE HOLDINGS LLC | Zone migration in network access |
8570866, | Jul 02 2001 | TREND MICRO INCORPORATED | System and method for processing network packet flows |
8594107, | Mar 12 1997 | NOMADIX, INC. | System and method for establishing network connection |
8601545, | Nov 01 2007 | Comcast Cable Communications, LLC | Method and system for directing user between captive and open domains |
8606917, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
8613053, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | System and method for authorizing a portable communication device |
8615583, | Mar 12 2007 | Citrix Systems, Inc. | Systems and methods of revalidating cached objects in parallel with request for object |
8626922, | Oct 22 1999 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for dynamic data transfer management on a per subscriber basis in a communications network |
8631120, | Oct 18 2000 | Citrix Systems, Inc | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
8661489, | Dec 11 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Media processing system supporting adaptive digital media parameters based on end-user viewing capabilities |
8695081, | Apr 10 2007 | International Business Machines Corporation | Method to apply network encryption to firewall decisions |
8701010, | Mar 12 2007 | Citrix Systems, Inc | Systems and methods of using the refresh button to determine freshness policy |
8705541, | Jun 10 2008 | E S EMBEDDED SOLUTIONS 3000 LTD | Network gateway for time-critical and mission-critical networks |
8713641, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device |
8725888, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
8725899, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
8726306, | Nov 23 2005 | Comcast Cable Communications, LLC | Device-specific pre-provisoining access-limiting for a modem and a consumer premise equipment device |
8745720, | Mar 09 2007 | International Business Machines Corporation | Enhanced personal firewall for dynamic computing environments |
8762446, | Nov 02 1999 | Apple Inc | Bridged distributed device control over multiple transports method and apparatus |
8776206, | Oct 18 2004 | GTB TECHNOLOGIES, INC , A CALIFORNIA CORPORATION | Method, a system, and an apparatus for content security in computer networks |
8788690, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
8792114, | Nov 12 1999 | Mimeo.com, Inc. | System, method and recordable medium for previewing a document over the network |
8819845, | Dec 11 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Preventing a non-head end based service provider from sending media to a media processing system |
8832315, | Oct 15 2002 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for network address translation |
8836601, | Feb 04 2013 | UBIQUITI INC | Dual receiver/transmitter radio devices with choke |
8855730, | Feb 08 2013 | UBIQUITI INC | Transmission and reception of high-speed wireless communication using a stacked array antenna |
8862697, | Dec 31 2009 | Aten International Co., Ltd.; ATEN INTERNATIONAL CO , LTD | Intelligent network management platform for IKVM servers |
8886808, | Nov 12 2002 | ARRIS ENTERPRISES LLC | Method and system for provisioning specification subsets for standards-based communication network devices |
8893186, | Dec 11 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Media processing system based on satellite set top box platform with telephony downstream and upstream data paths |
9025599, | Feb 24 1999 | Guest Tek Interactive Entertainment Ltd. | Methods and apparatus for providing high speed connectivity to a hotel environment |
9118578, | Jan 18 2011 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for group bandwidth management in a communication systems network |
9118717, | Feb 18 2005 | Cisco Technology, Inc. | Delayed network protocol proxy for packet inspection in a network |
9141773, | Jul 07 2009 | GATE WORLDWIDE HOLDINGS LLC | Zone migration in network access |
9148493, | Oct 18 2000 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
9160672, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for controlling user perceived connection speed |
9160674, | Oct 22 1999 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for dynamic data transfer management on a per subscriber basis in a communications network |
9172605, | Mar 07 2014 | UBIQUITI INC | Cloud device identification and authentication |
9191037, | Oct 11 2013 | UBIQUITI INC | Wireless radio system optimization by persistent spectrum analysis |
9293817, | Feb 08 2013 | UBIQUITI INC | Stacked array antennas for high-speed wireless communication |
9325516, | Mar 07 2014 | UBIQUITI INC | Power receptacle wireless access point devices for networked living and work spaces |
9325662, | Jan 07 2011 | Seven Networks, Inc | System and method for reduction of mobile network traffic used for domain name system (DNS) queries |
9356998, | May 16 2011 | F5 Networks, Inc. | Method for load balancing of requests' processing of diameter servers |
9357256, | Dec 11 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Third party media channel access in a media exchange network |
9368870, | Mar 17 2014 | UBIQUITI INC | Methods of operating an access point using a plurality of directional beams |
9373885, | Sep 06 2013 | UBIQUITI INC | Radio system for high-speed wireless communication |
9397820, | Feb 04 2013 | UBIQUITI INC | Agile duplexing wireless radio devices |
9420049, | Jun 30 2010 | F5 Networks, Inc. | Client side human user indicator |
9490533, | Feb 04 2013 | UBIQUITI INC | Dual receiver/transmitter radio devices with choke |
9491136, | Oct 15 2002 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for network address translation |
9496620, | Feb 04 2013 | UBIQUITI INC | Radio system for long-range high-speed wireless communication |
9497614, | Feb 28 2013 | F5 Networks, Inc | National traffic steering device for a better control of a specific wireless/LTE network |
9503375, | Jun 30 2010 | F5 Networks, Inc | Methods for managing traffic in a multi-service environment and devices thereof |
9503419, | Feb 24 1999 | Guest Tek Interactive Entertainment Ltd. | Methods and apparatus for providing high speed connectivity to a hotel environment |
9531067, | Feb 08 2013 | UBIQUITI INC | Adjustable-tilt housing with flattened dome shape, array antenna, and bracket mount |
9531591, | Mar 23 2014 | Extreme Networks, Inc | Configuration of networks using switch device access of remote server |
9543635, | Feb 04 2013 | UBIQUITI INC | Operation of radio devices for long-range high-speed wireless communication |
9548935, | Dec 08 1998 | GATE WORLDWIDE HOLDINGS LLC | Systems and methods for providing content and services on a network system |
9549385, | Mar 23 2014 | Extreme Networks, Inc | Configuration of networks using client device access of remote server |
9565185, | Nov 24 2014 | AT&T Intellectual Property I, L.P. | Facilitation of seamless security data transfer for wireless network devices |
9578090, | Nov 07 2012 | F5 Networks, Inc | Methods for provisioning application delivery service and devices thereof |
9602463, | Jul 03 2009 | HUAWEI TECHNOLOGIES CO , LTD | Method, device and system for obtaining local domain name |
9634373, | Oct 14 2014 | UBIQUITI INC | Antenna isolation shrouds and reflectors |
9654412, | Nov 01 2007 | Comcast Cable Communications, LLC | Method and system for directing user between captive and open domains |
9680704, | Sep 25 2015 | UBIQUITI INC | Compact and integrated key controller apparatus for monitoring networks |
9705846, | Feb 24 1999 | Guest Tek Interactive Entertainment Ltd. | Methods and apparatus for providing high speed connectivity to a hotel environment |
9761954, | Oct 09 2015 | UBIQUITI INC | Synchronized multiple-radio antenna systems and methods |
9787680, | Mar 07 2014 | UBIQUITI INC | Cloud device identification and authentication |
9813291, | Mar 23 2014 | Extreme Networks, Inc | Shortest path bridging (SPB) configuration of networks using client device access of remote |
9843096, | Mar 17 2014 | UBIQUITI INC | Compact radio frequency lenses |
9877264, | Jan 22 2013 | Samsung Electronics Co., Ltd; UNIVERSITY-INDUSTRY COOPERATION GROUP OF KYUNG HEE UNIVERSITY | Apparatus and method for reducing transmission delay of HTTP protocol and processing load of HTTP server in wireless communications network |
9894035, | Jul 07 2009 | NOMADIX, INC. | Zone migration in network access |
9912034, | Apr 01 2014 | UBIQUITI INC | Antenna assembly |
9912053, | Mar 17 2014 | UBIQUITI INC | Array antennas having a plurality of directional beams |
9917887, | Nov 30 2011 | F5 Networks, Inc. | Methods for content inlining and devices thereof |
9941570, | Apr 01 2014 | UBIQUITI INC | Compact radio frequency antenna apparatuses |
9972912, | Feb 04 2013 | UBIQUITI INC | Radio system for long-range high-speed wireless communication |
ER433, | |||
ER8911, | |||
ER9396, | |||
RE48725, | Feb 20 2012 | F5 Networks, Inc. | Methods for accessing data in a compressed file system and devices thereof |
Patent | Priority | Assignee | Title |
5309437, | Jun 29 1990 | ENTERASYS NETWORKS, INC | Bridge-like internet protocol router |
5412654, | Jan 10 1994 | International Business Machines Corporation | Highly dynamic destination-sequenced destination vector routing for mobile computers |
5539736, | Dec 31 1992 | Unisys Corporation | Method for providing LAN address discovery and terminal emulation for LAN-connected personal computer (PCs) using xerox network system (XNS) |
5557748, | Feb 03 1995 | Intel Corporation | Dynamic network configuration |
5586269, | Sep 18 1989 | Matsushita Electric Industrial Co., Ltd.; N.V. Philips' Gloeilampenfabrieken | Communication control device and method for automatically determining a self-address |
5724355, | Oct 24 1995 | AT&T Corp | Network access to internet and stored multimedia services from a terminal supporting the H.320 protocol |
5793763, | Nov 03 1995 | Cisco Technology, Inc | Security system for network address translation systems |
5822526, | Jun 03 1996 | Microsoft Corporation | System and method for maintaining and administering email address names in a network |
5909549, | Nov 12 1996 | International Business Machines Corporation; IBM Corporation | Network management system wherein the managed device reestablishes a connection to a management station after detecting a broken connection |
6012088, | Dec 10 1996 | SNAPCHAT, INC | Automatic configuration for internet access device |
6070187, | Mar 26 1998 | Hewlett Packard Enterprise Development LP | Method and apparatus for configuring a network node to be its own gateway |
6128739, | Jun 17 1997 | Round Rock Research, LLC | Apparatus for locating a stolen electronic device using electronic mail |
6130892, | Mar 12 1997 | NOMADIX, INC | Nomadic translator or router |
6134680, | Oct 16 1997 | International Business Machines Corp | Error handler for a proxy server computer system |
6182141, | Dec 20 1996 | Intel Corporation | Transparent proxy server |
6212560, | May 08 1998 | Hewlett Packard Enterprise Development LP | Dynamic proxy server |
6425003, | Jan 22 1999 | Cisco Technology, Inc | Method and apparatus for DNS resolution |
6434627, | Mar 15 1999 | Cisco Technology, Inc. | IP network for accomodating mobile users with incompatible network addressing |
6591306, | Apr 01 1999 | NEC Corporation | IP network access for portable devices |
6618398, | Aug 06 1998 | Nortel Networks Limited | Address resolution for internet protocol sub-networks in asymmetric wireless networks |
6675208, | Oct 14 1997 | Lucent Technologies, INC | Registration scheme for network |
6691227, | Sep 08 2000 | Reefedge Networks, LLC | Location-independent packet routing and secure access in a short-range wireless networking environment |
6742036, | Dec 19 1997 | NOKIA SOLUTIONS AND NETWORKS GMBH & CO KG | Method for supporting mobility on the internet |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 21 1999 | CASWELL, KEN | NOMADIX, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025114 | /0845 | |
Oct 21 1999 | ROBBINS, BARRY | NOMADIX, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025114 | /0845 | |
Oct 21 1999 | FERRERIA, MANUEL | NOMADIX, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025114 | /0845 | |
Oct 22 1999 | SHORT, JOEL | NOMADIX, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025114 | /0845 | |
Oct 23 2000 | NOMADIX, INC. | (assignment on the face of the patent) | / | |||
Sep 29 2015 | NOMADIX, INC | NTT DoCoMo, Inc | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 036721 | /0341 | |
Aug 29 2017 | NOMADIX, INC | NTT DoCoMo, Inc | MODIFICATION TO PATENT SECURITY AGREEMENT | 043710 | /0387 | |
Sep 05 2017 | NTT DoCoMo, Inc | GATE WORLDWIDE HOLDINGS LLC | ASSIGNMENT OF PATENT SECURITY AGREEMENT | 045113 | /0937 | |
Jan 12 2018 | NOMADIX, INC | GATE WORLDWIDE HOLDINGS LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 045113 | /0928 | |
Mar 15 2019 | NOMADIX, INC | KNOBBE, MARTENS, OLSON & BEAR, LLP | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 048655 | /0621 | |
May 20 2019 | KNOBBE, MARTENS, OLSON & BEAR, LLP | NOMADIX, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 050440 | /0042 | |
Nov 21 2019 | GATE WORLDWIDE HOLDINGS LLC | NOMADIX, INC | QUITCLAIM | 051095 | /0529 |
Date | Maintenance Fee Events |
Aug 06 2008 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jul 18 2012 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Nov 19 2012 | ASPN: Payor Number Assigned. |
Nov 19 2012 | RMPN: Payer Number De-assigned. |
Aug 04 2016 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 15 2008 | 4 years fee payment window open |
Aug 15 2008 | 6 months grace period start (w surcharge) |
Feb 15 2009 | patent expiry (for year 4) |
Feb 15 2011 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 15 2012 | 8 years fee payment window open |
Aug 15 2012 | 6 months grace period start (w surcharge) |
Feb 15 2013 | patent expiry (for year 8) |
Feb 15 2015 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 15 2016 | 12 years fee payment window open |
Aug 15 2016 | 6 months grace period start (w surcharge) |
Feb 15 2017 | patent expiry (for year 12) |
Feb 15 2019 | 2 years to revive unintentionally abandoned end. (for year 12) |