TECHNICAL FIELD
[0001] This invention relates generally to diagnosis of network problems, and more particularly,
for example, to systems and methods for remote troubleshooting of network devices
having private Internet Protocol (IP) addressing.
BACKGROUND
[0002] Internet-based service providers (ISPs) are beginning to offer more services to subscribers
utilizing network devices deployed behind gateways, such as a home gateway, in subscriber's
networks. Voice Over Internet Protocol (VoIP) services, in particular, are gaining
momentum, while video-over-IP services such as video conferencing and video-on-demand
are expected to follow. These new services are often delivered using the subscriber's
existing broadband connection. This deployment option opened up an opportunity for
a new breed of independent service providers to enter the market and compete with
established access providers. The competition is expected to heat up and is forcing
service providers to look for very cost efficient options for rolling out and managing
these services.
[0003] The process of configuring a network device and establishing service is known as
provisioning. Some provisioning systems are used to automatically configure devices
using a variety of configuration protocols such as Data Over Cable Service Interface
Specification (DOCSIS), the PacketCable interface specification, the Customer Premises
Equipment (CPE) Wide Area Network (WAN) management protocol according to Technical
Report TR-069, and extensible Markup Language (XML) Configuration Access Protocol
(XCAP), for example. However, once the device is configured, a user may wish to customize
certain settings for their environment. For example, some VoIP devices come with a
built-in wireless gateway and consumers may wish to setup local wireless network security.
If the user encounters difficulties in the customization of their device and/or Local
Area Network (LAN) settings, they may seek assistance from their service provider.
Instead of building sophisticated automated subscriber support systems, some service
providers opt for a more direct solution that relies on remotely accessing a subscriber
device's configuration user interface (UI) by support personnel. Many devices provide
a web-based UI intended for local access by the subscriber and remote access by the
service provider.
[0004] Troubleshooting using remote access to subscriber device's UI is not the only mechanism
for remote troubleshooting and assistance, but it has been utilized by some service
providers that find its simplicity appealing. In the past and presently, this model
is used for remote troubleshooting of home gateways with public Internet Protocol
(IP) connectivity. More recently, these service providers have expressed desire to
extend this support model to devices deployed behind the home gateway which often
have private local IP address assigned by the DHCP server in the home gateway.
[0005] Devices behind a home gateway are typically shielded from remote entities initiating
connections to them by virtue of the home gateway functioning as a firewall and network
address translation (NAT) router. In this environment, it becomes impossible for service
providers to use the device UI remotely because (a) the device IP address is not known
and (b) there is no standard mechanism to initiate a remote HTTP connection to a NAT'ed
device. Therefore, there remains a need in the art for systems and methods that address
the problems of accessing a client device that has a private address.
[0006] US 2005/105508 discloses a system in which a sub-manager interfaces between a traditional SNMP network
management system (NMS) and a plurality of clients, each of which may be served by
a network address and port translation firewall. The sub-manager operates a master
management information base and receives master network management request messages
from the network management server. The master network management request message
includes at least one master object identifier which comprises a client identifier
which identifies a particular one of the clients and a variable portion that identifies
a variable value within a client management information base. The sub-manager, in
response, generates one or more client network management request messages to identified
clients over TCP/IP connections through the firewall. The client network management
request message includes a client object identifier that identifies the variable within
the client management information base.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007]
Figure 1 shows an exemplary remote access system, according to an embodiment of the
present invention.
Figure 2 shows an exemplary process flow for providing private Internet Protocol (IP)
address remote access through a proxy server, according to an embodiment of the present
invention.
Figure 3 shows a detailed exemplary process flow for establishing communication between
a client device and a proxy server, according to an embodiment of the present invention.
Figure 4 shows an exemplary process flow for establishing a communication path between
a gateway server and a client device, according to an embodiment of the present invention.
Figure 5 shows a detailed exemplary process flow for establishing relay communications
from an admin device to a client device through a proxy server, according to an embodiment
of the present invention.
Figure 6 shows an exemplary process flow for establishing relay communications through
a proxy server, according to an embodiment of the present invention.
Figure 7 shows an exemplary process flow for exchanging messages through a proxy server
once a communications relay is established, according to an embodiment of the present
invention.
[0008] Embodiments of the present invention and their advantages are best understood by
referring to the detailed description that follows. It should be appreciated that
like reference numerals are used to identify like elements illustrated in one or more
of the figures.
DETAILED DESCRIPTION
[0009] Devices, methods and systems are disclosed herein, in accordance with one or more
embodiments of the present invention, that provide remote administration or device
management for client devices with private or local IP addresses, including those
connected to a network behind a firewall, Network Address Translation (NAT) router,
or a gateway, where a gateway may be considered generally as any network traffic router
which connects two networks. According to one or more embodiments of the present invention,
the first part of the present invention involves establishing a communication connection
between a client device with a private address and a proxy server, while the second
part of the present invention involves establishing relay communications from an administrator
device, or admin device, to the client device through the proxy server. The client
device is separated from the admin device by at least one intermediate NAT so that
only the client device can initiate the communication connection. Once the relay communications
of the remote access system are established, an administrator may perform remote administration
or troubleshooting of the client device and diagnosis of network problems. An administrator
is enabled to access a client device troubleshooting User Interface (UI) using a proxy
in spite of the client device having a private IP address due to the presence of an
intermediate NAT. The client device may maintain a path through the NAT where the
path is used by the proxy server to instruct the client device to establish a connection
when it is needed. Once the connection is established, the proxy server may then relay
message traffic, such as HyperText Transfer Protocol (HTTP) traffic, between an admin
device user interface and the client device.
[0010] Private networks, or networks having devices with private addresses, are common and
may be used where an organization does not require globally unique addresses for every
network device or where there is a shortage of available addresses. In addition, private
addressing provides a basic form of security since it is not possible for an external
device outside the private network to initiate a direct connection to a device on
the private network, since the private network address is not known to the external
device. In this manner, the client device on a private network may have an address
that is either not known to or is not directly accessible from an outside network.
This is one example of a type of barrier that a NAT gateway, router, or firewall can
create. NATs may be used anywhere within a network hierarchy, and not merely on the
boundary between public and private networks.
[0011] Figure 1 shows an exemplary remote access system 100, according to an embodiment
of the present invention. System 100 may include a first client device 102 and/or
a second client device 104 connected to a gateway, router, or firewall device 106
comprising a first network 108, also described as a private Local Area Network (LAN)
108, where the network addresses of devices on LAN 108 are not known or visible beyond
gateway 106. Gateway device 106, henceforth gateway 106, provides network connectivity
between devices connected to first network 108 at a lower level of hierarchy and devices
connected to a second network 110 such as the Internet on a higher level of hierarchy
comprising a Wide Area Network (WAN) 112. An administrator network device 114, hereinafter
admin device 114, and a proxy server 116 may also be connected to second network 110
and/or be included in WAN 112. Thus, system 100 may include a plurality of network
devices connected to a plurality of networks, where at least one network has addresses
that are not known to or directly accessible from another network. Further, system
100 may include multiple levels of network hierarchy, where the networks are interconnected
through one or more gateways, such as gateway 106. System 100 may include a plurality
of NATs for translating addresses at the interconnection point between adjacent networks.
[0012] First client device 102, henceforth device 102, and second client device 104, henceforth
device 104, may each be any network device including a computer, a user terminal,
a router, a gateway, a hub, an access point, a Voice Over Internet Protocol (VoIP)
telephone, a television set-top decoder box, or other device for use with a service
provider. Device 102 and device 104 may each be considered Customer Premises Equipment
(CPE) since they typically are present at a customer work-site, business, or home
and are leased or owned by the customer. Device 102 communicates with gateway 106
through a channel 118 that can be a wired or a wireless connection for passing messages
according to a network protocol such as the Transfer Control Protocol/Internet Protocol
(TCP/IP), where messages are routed on the network based on sender and receiver addresses.
Similarly, device 104 communicates with gateway 106 through a channel 120 that can
also be a wired or a wireless connection for passing messages according to a network
protocol. Although in this exemplary embodiment LAN 108 includes only three devices
in a star network topology, this is not considered limiting since a number of different
network topologies and a larger or smaller number of network devices may comprise
LAN 108. Gateway 106 communicates with second network 110 through a channel 122 that
can be a wired or a wireless connection for passing messages according to a network
protocol. Admin device 114 communicates with second network 110 through a channel
124 that can be a wired or a wireless connection for passing messages according to
a network protocol. Similarly, proxy server 116 communicates with the second network
110 through a channel 126
[0013] Device 102 may include a suitably programmed client processor 130 configured to execute
computer instructions, a client memory 132 configured to store and retrieve information
including a client device identifier 134, a client user interface 136 configured to
receive data from and present data to a client user and provide an administrative
user interface for device 102, and/or a client communication unit 138 configured to
send and receive messages on channel 118. Client memory 132 may include a Random Access
Memory (RAM), a disc memory, an optical memory, a magnetic memory device, a register
file, and/or any technology for storing and retrieving information for use by client
processor 130 or any device 102 resource. Further, client memory 132 may be removable
from device 102 to provide for safekeeping of the stored information, ease of maintenance,
and/or re-configurability. Client device identifier 134 may be a serial or identification
number, comprising a text string of alpha and/or numeric characters, a user selected
text string, an administrator selected text string, or some other information used
to identify client device 102. Similarly, device 104 may also include a client processor,
a client memory, a client device identifier; a client user interface, and/or a client
communication unit configured to send and receive messages on channel 120.
[0014] Client user interface 136 can be a web browser or other communication program running
on client processor 130 or another processor. Alternatively, client user interface
136 may be a device or method used to communicate over LAN 108 from device 102, and/or
provide an administrator user interface from which a user or an administrator may
change, configure, and/or provision a service associated with a service provider for
device 102 or a connected resource, including the service through which device 102
operates. Although an administrator may be a person such as a customer support representative
from a service provider, the administrator may alternatively be an autonomous client
program or diagnostic program executing on admin device 114 such as a troubleshooting
script tailored for or adapted for use with device 102. Client communication unit
138 can include hardware and/or software for use in sending and receiving messages
on channel 118, where the messages may be routed to or from any network resource.
[0015] Gateway 106 may include a suitably programmed gateway processor 150 configured to
execute computer instructions, a gateway memory 152 configured to store and retrieve
information, a network address translator (NAT) 154 configured to allow the use of
one set of external network address and one set of local network addresses which are
not necessarily globally unique, a dynamic host configuration protocol (DHCP) server
156 configured to dynamically assign local network address, a gateway communication
unit 158 configured to send and receive messages on LAN 108 over channels 118 and
120, and/or send and receive messages on WAN 11.2 over channel 122. NAT 154 provides
a translation or mapping of address on LAN 108 to addresses on WAN 112 enabling local
traffic on LAN 108 to use one set of network addresses and external traffic on WAN
112 to use another set of network addresses, where the network addresses on LAN 108
are not necessarily globally unique. Finally, DHCP server 156 dynamically assigns
network addresses to network devices connected to LAN 108. These addresses may be
assigned upon request and expire automatically if address lease is not renewed after
a predetermined period of time has expired. Gateway memory 152 may include a Random
Access Memory (RAM), a disc memory, an optical memory, a magnetic memory device, a
register file, and/or any technology for storing and retrieving information for use
by gateway processor 150 or any gateway 106 resource, including NAT 154, DHCP server
156, and/or gateway communication unit 158. Further, gateway memory 152 may be removable
from device 102 to provide for safekeeping of the stored information, ease of maintenance,
and/or re-configurability.
[0016] Client communication unit 138 may be dynamically or statically assigned a network
client transport address 160 comprising a network address and/or a port address, for
example. The network address can be an Internet Protocol (IP) address comprising the
familiar series of address field octets, or may be a name resolved into octets. Gateway
memory 152 may store and retrieve the client device transport address 160 and port
comprising the network address of the client 102 on LAN 108. To avoid collisions,
each network address is unique for devices on a particular LAN, such as LAN 108. A
port is an endpoint to a logical connection and is usually specified by a number to
designate the kind of server or protocol to which the network message traffic applies.
Some port numbers are well known by convention where, for example, port 80 designates
Hypertext Transfer Protocol (HTTP) traffic, and port 443 designates HTTP Secure (HTTPS)
traffic as described in the Internet Engineering Task Force (IETF) Request for Comments
(RFC) document 1700, also referred to as IETF-RFC1700. The LAN 108 client device transport
address 160 for device 102 is locally assigned by a DHCP server 156 in gateway 106
and is not typically visible on second network 110. The NAT 154 assigns a mapping
between a local address:port combination to an external address:port combination for
a period of time which may be updated if message traffic flows through the mapped
address:port combination pair. System 100 may include an extensive hierarchy of networks
where client device 102 and proxy server 116 may be separated by a plurality of NATs
for translating addresses at the interconnection point between adjacent networks.
[0017] Admin device 114 may include a suitably programmed admin processor 170 configured
to execute computer instructions, an admin memory 172 configured to store and retrieve
information including network addresses and client device identifier 134-1, an admin
user interface 174, such as a web browser, configured to receive data from and present
data to an admin user, and/or an admin communication unit 176 configured to send and
receive messages on channel 124 onto WAN 112. Admin memory 172 may include a Random
Access Memory (RAM), a disc memory, an optical memory, a magnetic memory device, a
register file, and/or any technology for storing and retrieving information for use
by client processor 170 or any admin device 114 resource. Further, admin memory 172
may be removable from admin device 114 to provide for safekeeping of the stored information,
ease of maintenance, and/or re-configurability.
[0018] Proxy server 116 may include a suitably programmed proxy processor 180 configured
to execute computer instructions and a proxy memory 182 configured to store and retrieve
information including a client device identifier 134-2 and a client device network
address 160-1. Proxy server 116 may also include a proxy communication unit 184 configured
to send and receive messages on channel 126 onto WAN 112. According to one or more
embodiments of the present invention, proxy server 154 may be configured to (a) maintain
network connectivity with devices using a light-weight protocol, (b) coordinate the
establishment of TCP connections, and (c) relay traffic between an administrator and
client device. It is not necessary that the router function in gateway 106 cooperate
with proxy server 116 to accomplish these capabilities since they operate independently.
Proxy memory 182 may include a Random Access Memory (RAM), a disc memory, an optical
memory, a magnetic memory device, a register file, and/or any technology for storing
and retrieving information for use by proxy processor 180 or any proxy server 116
resource. Further, proxy memory 182 may be removable from proxy server 116 to provide
for safekeeping of the stored information, ease of maintenance, and/or re-configurability.
[0019] As will be more fully described below, one or more embodiments of the present invention
provide remote access by an administrator on an external network to the administrative
user interface (UI) of a client device on a private network through a smart HTTP proxy
and private device functionality that work together in unison to provide access to
the client device. A private network may be a local area network or network hierarchy
located behind a firewall or a NAT router such as a home gateway or a restricted business
network.
[0020] Figure 2 shows an exemplary process flow 200 for providing private address remote
access through a proxy server, according to an embodiment of the present invention.
In reference to Figures 1 and 2, flow 200 may include establishing communications
between a client device 102 and a proxy server 116 in operation 202, establishing
relay communications from admin device 114 to client device 102 through proxy server
116 in operation 204, and/or exchanging messages between admin 114 device and client
device 102 through proxy server 116 in operation 206. The communication channel established
in operation 202 may use a connectionless protocol such as the User Datagram Protocol
(UDP).
[0021] Figure 3 shows a detailed exemplary process flow 300 for establishing communication
between a client device and a proxy server, according to an embodiment of the present
invention. Flow 300 corresponds to at least one embodiment of operation 202 in Figure
2. In reference to Figures 1-3, flow 300 includes establishing a communication channel
between device 102 and proxy server 116 in operation 302. Operation 302 may use a
connectionless communications protocol, such as UDP. In operation 302, device 102
provides device identifier 134 to proxy server 116. Conversely stated, device identifier
134 sent by device 102 is received at proxy server 116. Device 102 may be authenticated
to proxy server 116 using a variety of mechanisms including message digests utilizing
a pre-shared secret or public certificate. Flow 300 continues with operation 304 where
proxy server 116 records client device identifier 134 and the source transport address
140 allocated to the device by the NAT router 154, where the source IP address and/port
are retrieved from the IP packet header. Flow 300 concludes with operation 306 where
device 102 periodically sends UDP keep-alive messages to maintain the NAT address
binding in gateway 106 so that proxy server 116 can send messages back to device 102
when needed. Conversely stated, proxy server 116 periodically receives keep-alive
messages sent by device 102.
[0022] Figure 4 shows an exemplary process flow 400 for establishing a communication path
between a gateway and a client device, according to an embodiment of the present invention.
Flow 400 includes the exchange of one or more message packets comprising a series
of operations. Flow 400 begins with an operation 402 where device 102 asserts a UDP
Keep-Alive message including client device identifier 134 to gateway 106 destined
for proxy server 116. In one embodiment, client device 102 automatically establishes
connectivity with the proxy server following boot. The network address, or location,
of proxy server 116 can be discovered by client device 102 using some discovery protocol
such as DHCP. Alternatively, the location of proxy server 116 may be configured on
client device 102 by an Internet Service Provider (ISP) where the network address
is either preloaded onto client device 102 during manufacture, or updated via a remote
management protocol such as TR-069, referenced above. The frequency of keep-alive
messages can similarly be configured in this manner. Alternatively, the device may
discover an optimal message interval based on how quickly the NAT binding at the gateway
expires. That is, how long does the gateway open up a NAT path to let the return messages
from the remote entity pass through to the device.
[0023] Flow 400 continues with operation 404 where gateway 106 optionally responds to device
102 with a UDP authentication challenge. This message may also contain the source
transport address as seen by the proxy server. This allows the Client Device to learn
its current public transport address assigned by the gateway. Flow 400 continues with
operation 406 where device 102 responds to the optional authentication challenge by
asserting a UDP Keep-Alive message with authentication, including device identifier
134. Once proxy server 116 receives the authentication response, flow 400 continues
with operation 408 where proxy server 116 validates the authentication and updates
proxy memory 182 with the associated transport address 160-1 and device identifier
134-2. Thus, client device 102 establishes a network path to proxy server 116 that
can optionally be secured (e.g. authenticated and encrypted) using a variety of mechanisms.
Once proxy server memory 182 is updated, flow 400 continues with device 102 periodically
sending UDP Keep-Alive messages (410, 412). The appropriate period between sending
UDP Keep-Alive messages depends on the behavior of the NAT function in gateway 106.
The appropriate period may be configured on client device 102, for example by an administrator,
or client device 102 may dynamically discover the appropriate period by observing
NAT binding expiration time of the NAT 154 in gateway 106. Flow 400 concludes when
the NAT communication path is no longer needed and is disabled.
[0024] Figure 5 shows a detailed exemplary process flow 500 for establishing relay communications
from an admin device to a client device through a proxy server, according to an embodiment
of the present invention. Flow 500 corresponds to at least one embodiment of operation
204 in Figure 2. In reference to Figures 1, 2, and 6, flow 500 includes initiating
a request from admin device 114 to proxy server 116 where the request includes device
identifier 134 of device 102, in operation 502. Device identifier 134 indicates device
102 as the intended target for the established relay communications. Device identifier
134 may be included as a part of a URL, an HTTP header, or as HTTP payload or message
body in the case of a HTTP POST operation. Flow 500 continues with proxy server 116
selecting the stored client device transport address 160 associated with client device
identifier 134, in operation 504. Although device identifier may originate in device
102, both client device transport address 160-1 and device identifier 134-2 may be
stored and associated with each other in proxy memory 182.
[0025] Flow 500 continues with proxy server 116 uses client device transport address 160-1
to instruct client device 102 to initiate a connection with proxy server 116 in operation
506.
[0026] Client device 102 initiates the connection with proxy server 116 in operation 508.
This connection between client device 102 and proxy server 116 may conform to the
Transport Control Protocol (TCP) and be capable of transporting messages comprising
HyperText Transport Protocol (HTTP) traffic. Once the TCP communication paths are
established with proxy server 116, flow 500 continues with proxy server 116 relaying
the request from admin device 114 to client device 102 in operation 510. Flow 500
concludes with proxy server 116 relaying a response from client device 102 to admin
device 114.
[0027] Figure 6 shows an exemplary process flow 600 for establishing relay communications
through proxy server 154, according to an embodiment of the present invention. Flow
600 begins with an operation 602 where admin device 114 opens a TCP connection with
proxy server 116. For example, a web browser application running on admin device 114
may assert a HTTP message to proxy server 116 port 80. A port typically identifies
a connection point in a protocol stack, a socket or a transport address identifies
an IP address and a port number pair, and a socket pair identifies the source address
and source port along with the destination address and destination port. The Open
System Interconnection (OSI) reference model that defines a hierarchy of seven protocol
layers can be termed a stack along with the set of TCP/IP protocols that define communications
over a switched packet network such as Internet 110 and/or connected LAN 108.
[0028] Once proxy server 154 receives the request to open the TCP connection in operation
602, flow 600 optionally continues with proxy server 116 and admin device 114 mutually
establishing the authenticity of each other and/or establishing encryption to guarantee
privacy or data security during the requested TCP session in operation 604. A Transport
Layer Security (TLS) protocol, for example, may be used to mutually authenticate the
identity of admin 114 and proxy server 116 and/or encrypt the data portion of one
or more message packets to prevent an unauthorized network device or user from accessing
the message data. In this manner, operation 604 can allow authentication between proxy
server 116 and client device 102 as well as allow the negotiation of an encryption
algorithm and cryptographic keys before exchanging sensitive data.
[0029] Once the optional authentication and/or encryption is completed, flow 600 continues
with admin 114 asserting a first HTTP request to proxy server 116 which may including
a Uniform Resource Locator (URL) along with device identifier 134-1 for device 102
in operation 606. When proxy server 116 receives the first HTTP request, flow 600
continues with proxy server 116 searching proxy server memory 182 for device transport
address 160-1 corresponding to the device identifier 134-2 of device 102 in operation
608. In one example of searching, the client device identifier 134-1 supplied by admin
device 114 is compared with client device identifier 134-2 stored in proxy memory
182 to determine a match. If they match, then the associated client device transport
address 160-1 allocated to client device 102 is retrieved from proxy memory 182 and
used to access client device 102. A different device transport address is assigned
each network device on LAN 108. Once proxy server 116 has located the record in proxy
server memory 182 corresponding to device 102, proxy server 116 sends a UDP request
to device 102 at the stored transport address with a request to establish a TCP session
with proxy server 116 in operation 610. Once device 102 receives the UDP request for
TCP session, device 102 optionally responds with a UDP authentication challenge in
operation 612. Upon receiving the challenge, proxy server 116 responds to device 102
with an authenticated request in operation 614. Device 102 examines the authenticated
request and responds by creating a client TCP connection or session with proxy server
116 in operation 616.
[0030] Once the private TCP connection is created in operation 616, flow 600 optionally
continues with proxy server 116 and client device 102 mutually establishing the authenticity
of each other and/or establishing encryption to guarantee privacy or data security
during the requested TCP session in operation 618. Once both the admin TCP connection
and the client TCP connections are established, proxy server 116 relays a version
of the first HTTP request to device 102 in operation 620. In this case, the relayed
first HTTP request of operation 620 does not need to include device identifier 134.
Device 102 receives the first HTTP request and provides a first HTTP response over
TCP in operation 622 conveying the response from device 102 to the first HTTP request
from proxy server 116 in operation 606. Proxy server 116 may augment the response
as necessary before relaying. For example, proxy server 116 may insert an HTTP instruction
to Admin Device 114 web browser 174 to keep the TCP connection open or it may insert
an HTTP cookie to identify the session. Proxy server 154 receives the first HTTP response
over TCP from device 102 and relays that response in an operation 624 to admin device
114 as a response to the first HTTP request in operation 606. In this manner, a relay
communication path through gateway 106 and proxy server 116 is established between
client device 102 having a private address and admin device 114 on a separate network,
where admin device 114 is not aware of the private address for client device 102.
From this point on, proxy server 116 maintains two, separate TCP connections: one
to client device 102 and one to admin device 114. Subsequent requests from the client
may be relayed to the device and responses may be relayed back. Both TCP connections
may be terminated for various reasons including an explicit indication from admin
device 114 that the session is over, or after a period of inactivity.
[0031] Figure 7 shows an exemplary process flow 700 for exchanging messages through proxy
server 134 once a communications relay is established, according to an embodiment
of the present invention. Flow 700 may include a flow 702 for exchanging messages
where a admin device 114 initiates the transfer and a flow 704 where the communications
relay is terminated following the end of all transfers. Flow 702 begins with an operation
710 where admin device 114 asserts a second HTTP request to proxy server 116. When
proxy server 116 receives the second request in the same admin TCP connection or HTTP
session, flow 702 continues with proxy server 116 relaying the HTTP request over an
already established TCP connection with client device 102 in operation 712. Client
device 102 receives the second request and determines a TCP second HTTP response that
is asserted to proxy server 116 in operation 714. Proxy server 116 receives the TCP
second HTTP response from device 102 and relays that response in operation 716 to
admin device 114, as a response to the second HTTP request in operation 710. In this
manner, a request message is exchanged through proxy server 116 where admin device
114 is the initiator and client device 102 is the responder in an exemplary flow 702.
[0032] Once all messages are passed between client device 102 and admin device 114, flow
700 concludes in operation 704 that closes the relay link through proxy server 116
between client device 102 and admin device 114. Specifically, operation 704 includes
an operation 720 that closes the client TCP connection between client device 102 and
proxy server 116 and an operation 722 that closes the admin TCP connection between
proxy server 116 and admin device 114, both established in operation 600 as described
in reference to Figure 6.
[0033] Although the invention has been described with respect to particular embodiments,
this description is only an example of the invention's application and should not
be taken as a limitation. Consequently, the scope of the invention is set forth in
the following claims.
1. A proxy server (116), comprising
a memory (182) configured to store and retrieve a client device identifier (134-2)
and an associated client device public transport address (160-1); and
a communication unit (184) configured to send and receive messages, the communication
unit (184) being configured to receive an identification message according to a first
protocol from a client device (102) through at least one intermediate network address
translator, NAT, (154), the identification message including the client device identifier
(134-2) and conveying the client device public transport address (160-1),
wherein the communication unit (184) is configured to receive keep-alive messages
according to the first protocol periodically sent by the client device (102) to maintain
a NAT address binding, and to receive a request message from an admin device (114)
including the client device identifier (134-1),
wherein the memory (182) is updated with the conveyed client device public transport
address (160-1) so that the conveyed client device public transport address (160-1)
is associated in the memory (182) with the client device identifier (134-2);
wherein the proxy server (116) is configured to:
search the memory (182) for the client device identifier (134-2) that matches the
client device identifier (134-1) included in the request message,
select the updated public transport address (160-1) associated in memory with the
client device identifier (134-1),
retrieve the associated client device public transport address (160-1), and
using the associated client device public transport address (160-1), instruct the
client device (102) to open a connection with the proxy server (116) according to
a second protocol that is different from the first protocol.
2. The proxy server of claim 1, wherein the first protocol is a connectionless protocol
conforming to a user datagram protocol (UDP).
3. The proxy server of claim 1, wherein the second protocol conforms to the transfer
control protocol (TCP).
4. The proxy server of claim 1, wherein the proxy server is configured to relay messages
comprising hypertext transfer protocol (HTTP) traffic between the client device and
the admin device.
5. The proxy server of claim 4, wherein the client device permits remote administration
by the admin device.
6. The proxy server of claim 4, wherein the client device permits remote troubleshooting
through a client user interface.
7. The proxy server of claim 6, wherein the client user interface is a web browser application
running on a client processor.
8. The proxy server of claim 1, wherein the proxy server is configured to respond to
an authentication challenge from the client device.
9. The proxy server of claim 4,
wherein the admin device opens a first transfer control protocol (TCP) connection
between the admin device and the proxy server, and
wherein the proxy server instructs the client device to open a second TCP connection
between the client device and the proxy server.
10. The proxy server of claim 9, wherein the proxy server is configured to assert an authentication
challenge to the admin device.
11. A client device (102), comprising:
a client device identifier (134); and
a communication unit (138) configured to send and receive messages, the client device
(102) being configured to send an identification message according to a first protocol,
the identification message including the client device identifier (134) and conveying
the client device public transport address (160) to establish a path through at least
one intermediate network address translator, NAT, (154) to a proxy server (116),
wherein the client device (102) is configured to periodically send keep-alive messages
according to the first protocol to the proxy device (116) to maintain a NAT address
binding and to receive a request message from the proxy server (116) according to
the first protocol on the path established by the identification message, wherein
the request message includes a request to establish a connection between the client
device (102) and the proxy server (116) on the path according to a second protocol
that is different from the first protocol.
12. The client device of claim 11, wherein the client device identifier is stored in and
retrieved from a memory.
13. The client device of claim 11, wherein the identification message is sent periodically
to the proxy server in order to preserve a client device transport address allocation
in each intermediate NAT.
14. The client device of claim 11, wherein the client device is configured to assert an
authentication challenge to the proxy server.
15. The client device of claim 11, wherein each intermediate NAT resides in a gateway
device providing isolation of a private network.
16. The client device of claim 11, wherein the first protocol is a connectionless protocol.
17. The client device of claim 16, wherein the first protocol conforms to a user datagram
protocol (UDP).
18. The client device of claim 11, wherein the second protocol is the transfer control
protocol (TCP).
19. The client device of claim 18, further comprising:
a client user interface configured to permit remote administration of the client device;
and
a client processor configured to execute program instructions.
20. The client device of claim 19, wherein the client user interface is a web browser
application running on the client processor, the client device being configured to
receive and respond to messages comprising hypertext transfer protocol (HTTP) traffic.
21. The client device of claim 20, wherein admin device is configured to initiate a request
for remote administration through an admin web browser to the client web browser,
the client device web browser being configured to permit remote troubleshooting and
configuration of the client device.
22. An admin device (114), comprising:
a memory (172) configured to store and retrieve a client device identifier (134-1)
that provides for identification of a client device (102) on a private network, the
client device (102) having an associated client device public transport address (160)
and maintaining a communication path with a proxy server (116) through at least one
intermediate network address translator, NAT, (154), the client device (102) being
configured to periodically send keep-alive messages according to the first protocol
to the proxy device (116) to maintain a NAT address binding; and
a communication unit (176) configured to send and receive messages, the admin device
(114) being configured to send a first request message including the client device
identifier (134-1) to the proxy server (116), the proxy server (116) being configured
to update a memory (182) with the client device public transport address (160-1) so
that the client device public transport address (160-1) is associated in the memory
(182) with the client device identifier (134-2), receive the first request message,
use the client device identifier (134-1) to search the memory (182) for the client
device identifier (134-2) that matches the client device identifier (134-1) included
in the first request message, select the updated public transport address (160-1)
associated in memory (182) with the client device identifier (134-2), and retrieve
the associated client device public transport address (160-1) for the client device
(102), the proxy server (116) being configured to use the associated client device
public transport address (160-1) to instruct the client device (102) to establish
a connection with the proxy server (116) using a second protocol that is different
from the first protocol, and to provide a relay of messages between the client device
(102) and the admin device (114) using the connection.
23. The admin device of claim 22, further comprising:
an admin user interface configured to permit remote administration of the client device
including troubleshooting and configuration of the client device.
24. The admin device of claim 22, further comprising:
an admin processor configured to execute program instructions,
wherein the admin processor executes at least one of an autonomous client program,
a diagnostic program, and a troubleshooting script adapted for use with the client
device.
25. The admin device of claim 22, wherein the admin user interface is a web browser application
running on the admin processor, the admin device being configured to receive and respond
to messages comprising hypertext transfer protocol (HTTP) traffic.
26. A method of providing access to a client device, the method comprising the operations
of:
establishing a communication path between a client device (102) and a proxy server
(116) through at least one intermediate network address translator, NAT, (154),
wherein the client device (102) provides a client device identifier (134) to the proxy
server (116) and is configured to periodically send keep-alive messages according
to the first protocol to the proxy device (116) to maintain a NAT address binding,
wherein
a client device public transport address (160) is conveyed to the proxy server (116);
a memory (182) is updated with the conveyed client device public transport address
(160-1) so that the conveyed client device public transport address (160-1) is associated
in the memory (182) with the client device identifier (134-2); and
establishing relay communications between an admin device (114) and the client device
(102) through the proxy server (116) using a second protocol that is different from
the first protocol,
wherein the admin device (114) provides the client device identifier (134-1) to the
proxy server (116),
the proxy server (116) uses the client device identifier (134-1) to
search the memory (182) for the client device identifier (134-2) that matches the
client device identifier (134-1) provided to the proxy server (116) from the client
device (102),
select the updated public transport address (160-1) associated in memory (182) with
the client device identifier (134-2),
retrieve the associated client device public transport address (160-1), and
using the associated client device public transport address (160-1), instruct the
client device (102) to open a connection with the proxy server (116) according to
the second protocol to access the communication path between the client device (102)
and the proxy server (116).
27. The method of claim 26, wherein the operation of establishing a communication path
between a client device and a proxy server further comprises:
establishing a communication channel with the proxy server using an allocated client
device transport address;
receiving at the proxy server the device identifier sent by the client device; and
recording the client device identifier and the allocated client device transport address
in the proxy server.
28. The method of claim 26, wherein the client device identifier is provided to the proxy
device periodically.
29. The method of claim 27, further comprising:
receiving an authentication challenge; and
responding to the authentication challenge with an authenticated request.
30. The method of claim 26, wherein the operation of establishing relay communications
between an admin device and the client device through the proxy server further comprises:
asserting a first request from the admin device to the proxy server including the
device identifier;
accessing the client device through the communication path between the client device
and the proxy server;
instructing the client device to initiate a connection with the proxy server;
relaying the first request to the client device over the connection; and
relaying a response from the client device to the admin device through the proxy server.
31. The method of claim 30, wherein the operation of accessing the client device through
the communication path between the client device and the proxy server includes looking
up an allocated client device transport address using the client device identifier.
32. The method of claim 30, further comprising:
opening a connection from the admin device to the proxy server.
33. The method of claim 32, wherein both the connection between the client device and
the proxy server and the connection between the admin device and the proxy server
conform to the transport control protocol (TCP).
34. The method of claim 32, wherein the connection between the client device and the proxy
server and the connection between the admin device and the proxy server enable at
least one of remote administration and troubleshooting of the client device from the
admin device.
35. The method of claim 32, wherein both the connection between the client device and
the proxy server and the connection between the admin device and the proxy server
are configured to relay messages comprising hypertext transfer protocol (HTTP) traffic.
36. The method of claim 35, further comprising the operations of:
asserting a second HTTP request from the admin device to the proxy server, the second
HTTP request including the client device identifier;
relaying the second request from the proxy server to the client device;
relaying a second response to the second request from the client device to the proxy
server; and
relaying the second response from the proxy server to the admin device.
37. The method of claim 30, further comprising the operations of:
terminating the connection between the client device and the proxy server; and
terminating the connection between the admin device and the proxy server.
1. Proxy-Server (116), der Folgendes umfasst:
einen Speicher (182) zum Speichern und Abrufen einer Client-Gerätekennung (134-2)
und einer assoziierten öffentlichen Transportadresse (160-1) des Client-Geräts; und
eine Kommunikationseinheit (184) zum Senden und Empfangen von Nachrichten, wobei die
Kommunikationseinheit (184) zum Empfangen einer Identifikationsnachricht gemäß einem
ersten Protokoll von einem Client-Gerät (102) durch wenigstens einen Zwischen-Netzwerkadressübersetzer
NAT (154) konfiguriert ist, wobei die Identifikationsnachricht die Client-Gerätekennung
(134-2) enthält und die öffentliche Transportadresse (160-1) des Client-Geräts aufweist,
wobei die Kommunikationseinheit (184) zum Empfangen von Keep-Alive-Nachrichten gemäß
dem ersten Protokoll, die periodisch vom Client-Gerät (102) gesendet werden, um eine
NAT-Adressbindung zu halten, und zum Empfangen einer Anforderungsnachricht von einem
Admin-Gerät (114) konfiguriert ist, die die Client-Gerätekennung (134-1) enthält,
wobei der Speicher (182) mit der übermittelten öffentlichen Transportadresse (160-1)
des Client-Geräts aktualisiert wird, so dass die übermittelte öffentliche Transportadresse
(160-1) des Client-Geräts im Speicher (182) mit der Client-Gerätekennung (134-2) assoziiert
ist;
wobei der Proxy-Server (116) konfiguriert ist zum:
Durchsuchen des Speichers (182) nach der Client-Gerätekennung (134-2), die mit der
in der Anforderungsnachricht enthaltenen Client-Gerätekennung (134-1) übereinstimmt,
Auswählen der aktualisierten öffentlichen Transportadresse (160-1), die im Speicher
mit der Client-Gerätekennung (134-1) assoziiert ist,
Abrufen der assoziierten öffentlichen Transportadresse (160-1) des Client-Geräts,
und
Benutzen der assoziierten öffentlichen Transportadresse (160-1) des Client-Geräts,
Anweisen des Client-Gerätes (102), eine Verbindung mit dem Proxy-Server (116) gemäß
einem zweiten Protokoll zu öffnen, das sich vom ersten Protokoll unterscheidet.
2. Proxy-Server nach Anspruch 1, wobei das erste Protokoll ein verbindungsloses Protokoll
ist, das einem User-Datagram-Protocol (UDP) entspricht.
3. Proxy-Server nach Anspruch 1, wobei das zweite Protokoll dem Transfer-Control-Protocol
(TCP) entspricht.
4. Proxy-Server nach Anspruch 1, wobei der Proxy-Server zum Weiterleiten von Nachrichten
konfiguriert ist, die HTTP-(Hypertext Transfer Protocol)-Verkehr zwischen dem Client-Gerät
und dem Admin-Gerät enthalten.
5. Proxy-Server nach Anspruch 4, wobei das Client-Gerät Fernadministration durch das
Admin-Gerät zulässt.
6. Proxy-Server nach Anspruch 4, wobei das Client-Gerät Fern-Fehlersuche durch eine Client-Benutzeroberfläche
zulässt.
7. Proxy-Server nach Anspruch 6, wobei die Client-Benutzeroberfläche eine Web-Browser-Anwendung
ist, die auf einem Client-Prozessor läuft.
8. Proxy-Server nach Anspruch 1, wobei der Proxy-Server zum Antworten auf eine Authentifizierungs-Challenge
vom Client-Gerät konfiguriert ist.
9. Proxy-Server nach Anspruch 4,
wobei das Admin-Gerät eine erste TCP-(Transfer Control Protocol)-Verbindung zwischen
dem Admin-Gerät und dem Proxy-Server öffnet, und
wobei der Proxy-Server das Client-Gerät anweist, eine zweite TCP-Verbindung zwischen
dem Client-Gerät und dem Proxy-Server zu öffnen.
10. Proxy-Server nach Anspruch 9, wobei der Proxy-Server zum Richten einer Authentifizierungs-Challenge
an das Admin-Gerät konfiguriert ist.
11. Client-Gerät (102), das Folgendes umfasst:
eine Client-Gerätekennung (134); und
eine Kommunikationseinheit (138), die zum Senden und Empfangen von Nachrichten konfiguriert
ist, wobei das Client-Gerät (102) zum Senden einer Identifikationsnachricht gemäß
einem ersten Protokoll konfiguriert ist, wobei die Identifikationsnachricht die Client-Gerätekennung
(134) enthält und die öffentliche Transportadresse (160) des Client-Geräts übermittelt,
um einen Pfad durch wenigstens einen Zwischen-Netzwerkadressübersetzer NAT (154) zu
einem Proxy-Server (116) herzustellen,
wobei das Client-Gerät (102) zum periodischen Senden von Keep-Alive-Nachrichten gemäß
dem ersten Protokoll zum Proxy-Server (116) konfiguriert ist, um eine NAT-Adressbindung
zu halten und eine Anforderungsnachricht vom Proxy-Server (116) gemäß dem ersten Protokoll
auf dem durch die Identifikationsnachricht hergestellten Pfad zu empfangen, wobei
die Anforderungsnachricht eine Anforderung zum Herstellen einer Verbindung zwischen
dem Client-Gerät (102) und dem Proxy-Server (116) auf dem Pfad gemäß einem zweiten
Protokoll beinhaltet, das sich vom ersten Protokoll unterscheidet.
12. Client-Gerät nach Anspruch 11, wobei die Client-Gerätekennung in einem Speicher gespeichert
und daraus abgerufen wird.
13. Client-Gerät nach Anspruch 11, wobei die Identifikationsnachricht periodisch zum Proxy-Server
gesendet wird, um eine Client-Gerät-Transportadresszuweisung in jedem Zwischen-NAT
zu konservieren.
14. Client-Gerät nach Anspruch 11, wobei das Client-Gerät zum Richten einer Authentifizierungs-Challenge
an den Proxy-Server konfiguriert ist.
15. Client-Gerät nach Anspruch 11, wobei sich jeder Zwischen-NAT in einem Gateway-Gerät
befindet, das Isolation für ein privates Netzwerk bereitstellt.
16. Client-Gerät nach Anspruch 11, wobei das erste Protokoll ein verbindungsloses Protokoll
ist.
17. Client-Gerät nach Anspruch 16, wobei das erste Protokoll einem User-Datagram-Protocol
(UDP) entspricht.
18. Client-Gerät nach Anspruch 11, wobei das zweite Protokoll das Transfer Control Protocol
(TCP) ist.
19. Client-Gerät nach Anspruch 18, das ferner Folgendes umfasst:
eine Client-Benutzeroberfläche, die zum Zulassen einer Fernadministration des Client-Geräts
konfiguriert ist; und
einen Client-Prozessor, der zum Ausführen von Programmbefehlen konfiguriert ist.
20. Client-Gerät nach Anspruch 19, wobei die Client-Benutzeroberfläche eine Web-Browser-Anwendung
ist, die auf dem Client-Prozessor läuft, wobei das Client-Gerät zum Empfangen von
und Antworten auf Nachrichten konfiguriert ist, die HTTP-(Hypertext Transfer Protocol)-Verkehr
umfassen.
21. Client-Gerät nach Anspruch 20, wobei das Admin-Gerät zum Einleiten einer Anforderung
zur Fern-Administration durch einen Admin-Web-Browser zum Client-Web-Browser konfiguriert
ist, wobei der Client-Gerät-Web-Browser zum Zulassen von Fern-Fehlersuche und Konfiguration
des Client-Gerätes konfiguriert ist.
22. Admin-Gerät (114), das Folgendes umfasst:
einen Speicher (172) zum Speichern und Abrufen einer Client-Gerätekennung (134-1),
die ein Client-Gerät (102) auf einem privaten Netzwerk identifiziert, wobei das Client-Gerät
(102) eine assoziierte öffentliche Transportadresse (160) des Client-Geräts aufweist
und einen Kommunikationspfad mit einem Proxy-Server (116) durch wenigstens einen Zwischen-Netzwerkadressübersetzer
NAT (154) hält, wobei das Client-Gerät (102) zum periodischen Senden von Keep-Alive-Nachrichten
gemäß dem ersten Protokoll zum Proxy-Gerät (116) konfiguriert ist, um eine NAT-Adressbindung
zu halten; und
eine Kommunikationseinheit (176) zum Senden und Empfangen von Nachrichten, wobei das
Admin-Gerät (114) zum Senden einer die Client-Gerätekennung (134-1) enthaltenden ersten
Anforderungsnachricht zum Proxy-Server (116) konfiguriert ist, wobei der Proxy-Server
(116) zum Aktualisieren eines Speichers (182) mit der öffentlichen Transportadresse
(160-1) des Client-Geräts konfiguriert ist, so dass die öffentliche Transportadresse
(160-1) des Client-Geräts im Speicher (182) mit der Client-Gerätekennung (134-2) assoziiert
ist, Empfangen der ersten Anforderungsnachricht, Benutzen der Client-Gerätekennung
(134-1) zum Durchsuchen des Speichers (182) nach der Client-Gerätekennung (134-2),
die mit der in der ersten Anforderungsnachricht enthaltenen Client-Gerätekennung (134-1)
übereinstimmt, Auswählen der im Speicher (182) mit der Client-Gerätekennung (134-2)
assoziierten aktualisierten öffentlichen Transportadresse (160-1) und Abrufen der
assoziierten öffentlichen Transportadresse (160-1) des Client-Geräts für das Client-Gerät
(102), wobei der Proxy-Server (116) so konfiguriert ist, dass er die assoziierte öffentliche
Transportadresse (160-1) des Client-Geräts benutzt, um das Client-Gerät (102) anzuweisen,
eine Verbindung mit dem Proxy-Server (116) unter Verwendung eines zweiten Protokolls
herzustellen, das sich vom ersten Protokoll unterscheidet, und eine Weiterleitung
von Nachrichten zwischen dem Client-Gerät (102) und dem Admin-Gerät (114) mittels
der Verbindung zu bewirken.
23. Admin-Gerät nach Anspruch 22, das ferner Folgendes umfasst:
eine Admin-Benutzeroberfläche, die zum Zulassen von Fern-Administration des Client-Gerätes
einschließlich Fehlersuche und Konfiguration des Client-Gerätes konfiguriert ist.
24. Admin-Gerät nach Anspruch 22, das ferner Folgendes umfasst:
einen Admin-Prozessor, der zum Ausführen von Programmbefehlen konfiguriert ist,
wobei der Admin-Prozessor ein autonomes Client-Programm, ein Diagnostikprogramm und/oder
ein Fehlersuchskript für die Verwendung mit dem Client-Gerät ausführt.
25. Admin-Gerät nach Anspruch 22, wobei die Admin-Benutzeroberfläche eine Web-Browser-Anwendung
ist, die auf dem Admin-Prozessor läuft, wobei das Admin-Gerät zum Empfangen von und
Antworten auf Nachrichten konfiguriert ist, die HTTP-(Hypertext Transfer Protocol)-Verkehr
enthalten.
26. Verfahren zum Bereitstellen von Zugang zu einem Client-Gerät, wobei das Verfahren
die folgenden Vorgänge beinhaltet:
Herstellen eines Kommunikationspfades zwischen einem Client-Gerät (102) und einem
Proxy-Server (116) durch wenigstens einen Zwischen-Netzwerkadressübersetzer NAT (154),
wobei das Client-Gerät (102) eine Client-Gerätekennung (134) zum Proxy-Server (116)
überträgt und zum periodischen Senden von Keep-Alive-Nachrichten gemäß dem ersten
Protokoll zum Proxy-Gerät (116) konfiguriert ist, um eine NAT-Adressbindung zu halten,
wobei
eine öffentliche Transportadresse (160) des Client-Geräts zum Proxy-Server (116) übermittelt
wird;
ein Speicher (182) mit der übermittelten öffentlichen Transportadresse (160-1) des
Client-Geräts aktualisiert wird, so dass die übermittelte öffentliche Transportadresse
(160-1) des Client-Geräts im Speicher (182) mit der Client-Gerätekennung (134-2) assoziiert
wird; und
Einrichten von Relais-Kommunikationen zwischen einem Admin-Gerät (114) und dem Client-Gerät
(102) durch den Proxy-Server (116) mittels eines zweiten Protokolls, das sich vom
ersten Protokoll unterscheidet,
wobei das Admin-Gerät (114) dem Proxy-Server (116) die Client-Gerätekennung (134-1)
bereitstellt,
der Proxy-Server (116) die Client-Gerätekennung (134-1) benutzt zum:
Durchsuchen des Speichers (182) nach der Client-Gerätekennung (134-2), die mit der
dem Proxy-Server (116) vom Client-Gerät (102) bereitgestellten Client-Gerätekennung
(134-1) übereinstimmt,
Auswählen der aktualisierten öffentlichen Transportadresse (160-1), die im Speicher
(182) mit der Client-Gerätekennung (134-2) assoziiert ist,
Abrufen der assoziierten öffentlichen Transportadresse (160-1) des Client-Geräts,
und
Benutzen der assoziierten öffentlichen Transportadresse (160-1) des Client-Geräts,
Anweisen des Client-Geräts (102) zum Öffnen einer Verbindung mit dem Proxy-Server
(116) gemäß dem zweiten Protokoll zum Zugreifen auf den Kommunikationspfad zwischen
dem Client-Gerät (102) und dem Proxy-Server (116).
27. Verfahren nach Anspruch 26, wobei der Vorgang des Herstellens eines Kommunikationspfades
zwischen einem Client-Gerät und einem Proxy-Server ferner Folgendes beinhaltet:
Herstellen eines Kommunikationskanals mit dem Proxy-Server anhand einer zugeordneten
Client-Geräte-Transportadresse;
Empfangen, am Proxy-Server, der vom Client-Gerät gesendeten Geräte-Kennung; und
Aufzeichnen der Client-Gerätekennung und der zugeordneten Client-Geräte-Transportadresse
im Proxy-Server.
28. Verfahren nach Anspruch 26, wobei die Client-Gerätekennung dem Proxy-Gerät periodisch
bereitgestellt wird.
29. Verfahren nach Anspruch 27, das ferner Folgendes beinhaltet:
Empfangen einer Authentifizierungs-Challenge; und
Antworten auf die Authentifizierungs-Challenge mit einer authentifizierten Anforderung.
30. Verfahren nach Anspruch 26, wobei der Vorgang des Herstellens von Relais-Kommunikationen
zwischen einem Admin-Gerät und dem Client-Gerät durch den Proxy-Server ferner Folgendes
beinhaltet:
Richten einer ersten Anforderung vom Admin-Gerät an den Proxy-Server einschließlich
der Gerätekennung;
Zugreifen auf das Client-Gerät durch den Kommunikationspfad zwischen dem Client-Gerät
und dem Proxy-Server;
Anweisen des Client-Geräts, eine Verbindung mit dem Proxy-Server einzuleiten;
Weiterleiten der ersten Anforderung zum Client-Gerät über die Verbindung; und
Weiterleiten einer Antwort vom Client-Gerät zum Admin-Gerät durch den Proxy-Server.
31. Verfahren nach Anspruch 30, wobei der Vorgang des Zugreifens auf das Client-Gerät
durch den Kommunikationspfad zwischen dem Client-Gerät und dem Proxy-Server das Nachschlagen
einer zugeordneten Client-Geräte-Transportadresse anhand der Client-Gerätekennung
beinhaltet.
32. Verfahren nach Anspruch 30, das ferner das Öffnen einer Verbindung vom Admin-Gerät
zum Proxy-Server beinhaltet.
33. Verfahren nach Anspruch 32, wobei sowohl die Verbindung zwischen dem Client-Gerät
und dem Proxy-Server als auch die Verbindung zwischen dem Admin-Gerät und dem Proxy-Server
dem Transport Control Protocol (TCP) entsprechen.
34. Verfahren nach Anspruch 32, wobei die Verbindung zwischen dem Client-Gerät und dem
Proxy-Server sowie die Verbindung zwischen dem Admin-Gerät und dem Proxy-Server Fernadministration
und/oder Fehlersuche des Client-Geräts vom Admin-Gerät ermöglichen.
35. Verfahren nach Anspruch 32, wobei sowohl die Verbindung zwischen dem Client-Gerät
und dem Proxy-Server als auch die Verbindung zwischen dem Admin-Gerät und dem Proxy-Server
zum Weiterleiten von Nachrichten konfiguriert sind, die HTTP-(Hypertext Transfer Protocol)-Verkehr
enthalten.
36. Verfahren nach Anspruch 35, das ferner die folgenden Vorgänge beinhaltet:
Richten einer zweiten HTTP-Anforderung vom Admin-Gerät an den Proxy-Server, wobei
die zweite HTTP-Anforderung die Client-Gerätekennung enthält;
Weiterleiten der zweiten Anforderung vom Proxy-Server zum Client-Gerät;
Weiterleiten einer zweiten Antwort auf die zweite Anforderung vom Client-Gerät zum
Proxy-Server; und
Weiterleiten der zweiten Antwort vom Proxy-Server zum Admin-Gerät.
37. Verfahren nach Anspruch 30, das ferner die folgenden Vorgänge beinhaltet:
Beenden der Verbindung zwischen dem Client-Gerät und dem Proxy-Server; und
Beenden der Verbindung zwischen dem Admin-Gerät und dem Proxy-Server.
1. Serveur mandataire (116), comportant
une mémoire (182) configurée à des fins de stockage et de récupération d'un identifiant
de dispositif client (134-2) et d'une adresse de transport publique du dispositif
client associée (160-1) ; et
une unité de communication (184) configurée à des fins d'envoi et de réception de
messages, l'unité de communication (184) étant configurée à des fins de réception
d'un message d'identification selon un premier protocole en provenance d'un dispositif
client (102) par le biais d'au moins un traducteur d'adresses réseau, NAT, intermédiaire
(154), le message d'identification comprenant l'identifiant de dispositif client (134-2)
et transmettant l'adresse de transport publique du dispositif client (160-1),
dans lequel l'unité de communication (184) est configurée à des fins de réception
de messages de maintien de connexion selon le premier protocole envoyés de manière
périodique par le dispositif client (102) pour maintenir une liaison d'adresse NAT,
et à des fins de réception d'un message de demande en provenance d'un dispositif d'administration
(114) comprenant l'identifiant de dispositif client (134-1),
dans lequel la mémoire (182) est mise à jour avec l'adresse de transport publique
du dispositif client (160-1) transmise de telle sorte que l'adresse de transport publique
du dispositif client (160-1) transmise est associée dans la mémoire (182) avec l'identifiant
de dispositif client (134-2) ;
dans lequel le serveur mandataire (116) est configuré pour :
explorer la mémoire (182) à la recherche de l'identifiant de dispositif client (134-2)
qui correspond à l'identifiant de dispositif client (134-1) compris dans le message
de demande,
sélectionner l'adresse de transport publique mise à jour (160-1) associée dans la
mémoire avec l'identifiant de dispositif client (134-1),
récupérer l'adresse de transport publique du dispositif client associée (160-1), et
en utilisant l'adresse de transport publique du dispositif client associée (160-1),
ordonner au dispositif client (102) d'ouvrir une connexion avec le serveur mandataire
(116) selon un second protocole qui est différent du premier protocole.
2. Serveur mandataire selon la revendication 1, dans lequel le premier protocole est
un protocole sans connexion conforme à un protocole de datagramme utilisateur (UDP).
3. Serveur mandataire selon la revendication 1, dans lequel le second protocole est conforme
au protocole de contrôle de transmission (TCP).
4. Serveur mandataire selon la revendication 1, dans lequel le serveur mandataire est
configuré à des fins de retransmission de messages comportant un trafic à protocole
de transfert hypertexte (HTTP) entre le dispositif client et le dispositif d'administration.
5. Serveur mandataire selon la revendication 4, dans lequel le dispositif client permet
une administration à distance par le dispositif d'administration.
6. Serveur mandataire selon la revendication 4, dans lequel le dispositif client permet
un dépannage à distance par le biais d'une interface utilisateur client.
7. Serveur mandataire selon la revendication 6, dans lequel l'interface utilisateur client
est une application de navigateur Web exécutée sur un processeur client.
8. Serveur mandataire selon la revendication 1, dans lequel le serveur mandataire est
configuré pour répondre à un défi d'authentification en provenance du dispositif client.
9. Serveur mandataire selon la revendication 4,
dans lequel le dispositif d'administration ouvre une première connexion à protocole
de contrôle de transmission (TCP) entre le dispositif d'administration et le serveur
mandataire, et
dans lequel le serveur mandataire ordonne au dispositif client d'ouvrir une seconde
connexion TCP entre le dispositif client et le serveur mandataire.
10. Serveur mandataire selon la revendication 9, dans lequel le serveur mandataire est
configuré pour affirmer un défi d'authentification au dispositif d'administration.
11. Dispositif client (102), comportant :
un identifiant de dispositif client (134) ; et
une unité de communication (138) configurée à des fins d'envoi et de réception de
messages, le dispositif client (102) étant configuré à des fins d'envoi d'un message
d'identification selon un premier protocole, le message d'identification comprenant
l'identifiant de dispositif client (134) et transmettant l'adresse de transport publique
du dispositif client (160) pour établir un chemin par le biais d'au moins un traducteur
d'adresses réseau, NAT, intermédiaire (154) jusqu'à un serveur mandataire (116),
dans lequel le dispositif client (102) est configuré à des fins d'envoi périodique
de messages de maintien de connexion selon le premier protocole au dispositif mandataire
(116) pour maintenir une liaison d'adresse NAT et à des fins de réception d'un message
de demande en provenance du serveur mandataire (116) selon le premier protocole sur
le chemin établi par le message d'identification, dans lequel le message de demande
comprend une demande pour établir une connexion entre le dispositif client (102) et
le serveur mandataire (116) sur le chemin selon un second protocole qui est différent
du premier protocole.
12. Dispositif client selon la revendication 11, dans lequel l'identifiant de dispositif
client est stocké dans une mémoire et récupéré en provenance de celle-ci.
13. Dispositif client selon la revendication 11, dans lequel le message d'identification
est envoyé de manière périodique au serveur mandataire afin de préserver une attribution
d'adresse de transport du dispositif client dans chaque NAT intermédiaire.
14. Dispositif client selon la revendication 11, dans lequel le dispositif client est
configuré pour affirmer un défi d'authentification au serveur mandataire.
15. Dispositif client selon la revendication 11, dans lequel chaque NAT intermédiaire
réside dans un dispositif passerelle pour procurer une isolation d'un réseau privé.
16. Dispositif client selon la revendication 11, dans lequel le premier protocole est
un protocole sans connexion.
17. Dispositif client selon la revendication 16, dans lequel le premier protocole est
conforme à un protocole de datagramme utilisateur (UDP).
18. Dispositif client selon la revendication 11, dans lequel le second protocole est le
protocole de contrôle de transmission (TCP).
19. Dispositif client selon la revendication 18, comportant par ailleurs :
une interface utilisateur client configurée pour permettre une administration à distance
du dispositif client ; et
un processeur client configuré pour exécuter des instructions de programme.
20. Dispositif client selon la revendication 19, dans lequel l'interface utilisateur client
est une application de navigateur Web exécutée sur le processeur client, le dispositif
client étant configuré à des fins de réception et de réponse à des messages comportant
un trafic à protocole de transfert hypertexte (HTTP).
21. Dispositif client selon la revendication 20, dans lequel un dispositif d'administration
est configuré à des fins d'initialisation d'une demande d'administration à distance
par le biais d'un navigateur Web d'administration à un navigateur Web client, le navigateur
Web du dispositif client étant configuré pour permettre le dépannage à distance et
la configuration à distance du dispositif client.
22. Dispositif d'administration (114), comportant :
une mémoire (172) configurée à des fins de stockage et de récupération d'un identifiant
de dispositif client (134-1) qui permet une identification d'un dispositif client
(102) sur un réseau privé, le dispositif client (102) ayant une adresse de transport
publique du dispositif client associée (160) et servant à maintenir un chemin de communication
avec un serveur mandataire (116) par le biais d'au moins un traducteur d'adresses
réseau, NAT, intermédiaire (154), le dispositif client (102) étant configuré à des
fins d'envoi périodique de messages de maintien de connexion selon le premier protocole
au dispositif mandataire (116) pour maintenir une liaison d'adresse NAT ; et
une unité de communication (176) configurée à des fins d'envoi et de réception de
messages, le dispositif d'administration (114) étant configuré à des fins d'envoi
d'un message de première demande comprenant l'identifiant de dispositif client (134-1)
au serveur mandataire (116), le serveur mandataire (116) étant configuré pour effectuer
la mise à jour d'une mémoire (182) avec l'adresse de transport publique du dispositif
client (160-1) de telle sorte que l'adresse de transport publique du dispositif client
(160-1) est associée dans la mémoire (182) avec l'identifiant de dispositif client
(134-2), pour recevoir le message de première demande, pour utiliser l'identifiant
de dispositif client (134-1) pour explorer la mémoire (182) à la recherche de l'identifiant
de dispositif client (134-2) qui correspond à l'identifiant de dispositif client (134-1)
compris dans le message de première demande, pour sélectionner l'adresse de transport
publique mise à jour (160-1) associée dans la mémoire (182) avec l'identifiant de
dispositif client (134-2), et pour récupérer l'adresse de transport publique du dispositif
client associée (160-1) pour le dispositif client (102), le serveur mandataire (116)
étant configuré à des fins d'utilisation de l'adresse de transport publique du dispositif
client associée (160-1) pour ordonner au dispositif client (102) d'établir une connexion
avec le serveur mandataire (116) en utilisant un second protocole qui est différent
du premier protocole, et pour fournir une retransmission de messages entre le dispositif
client (102) et le dispositif d'administration (114) en utilisant la connexion.
23. Dispositif d'administration selon la revendication 22, comportant par ailleurs :
une interface utilisateur d'administration configurée pour permettre une administration
à distance du dispositif client comprenant le dépannage et la configuration du dispositif
client.
24. Dispositif d'administration selon la revendication 22, comportant par ailleurs :
un processeur d'administration configuré à des fins d'exécution d'instructions de
programme,
dans lequel le processeur d'administration exécute au moins l'un parmi un programme
client autonome, un programme de diagnostic, et un script de dépannage adapté à des
fins d'utilisation avec le dispositif client.
25. Dispositif d'administration selon la revendication 22, dans lequel l'interface utilisateur
d'administration est une application de navigateur Web exécutée sur le processeur
d'administration, le dispositif d'administration étant configuré à des fins de réception
et de réponse à des messages comportant un trafic à protocole de transfert hypertexte
(HTTP).
26. Procédé permettant de fournir l'accès à un dispositif client, le procédé comportant
les opérations consistant à :
établir un chemin de communication entre un dispositif client (102) et un serveur
mandataire (116) par le biais d'au moins un traducteur d'adresses réseau, NAT, intermédiaire
(154),
dans lequel le dispositif client (102) fournit un identifiant de dispositif client
(134) au serveur mandataire (116) et est configuré à des fins d'envoi périodique de
messages de maintien de connexion selon le premier protocole au serveur mandataire
(116) pour maintenir une liaison d'adresse NAT, dans lequel
une adresse de transport publique du dispositif client (160) est transmise au serveur
mandataire (116) ;
une mémoire (182) est mise à jour avec l'adresse de transport publique du dispositif
client (160-1) transmise de telle sorte que l'adresse de transport publique du dispositif
client (160-1) transmise est associée dans la mémoire (182) avec l'identifiant de
dispositif client (134-2) ; et
établir des communications de retransmission entre un dispositif d'administration
(114) et le dispositif client (102) par le biais du serveur mandataire (116) en utilisant
un second protocole qui est différent du premier protocole,
dans lequel le dispositif d'administration (114) fournit l'identifiant de dispositif
client (134-1) au serveur mandataire (116),
le serveur mandataire (116) utilise l'identifiant de dispositif client (134-1) pour
explorer la mémoire (182) à la recherche de l'identifiant de dispositif client (134-2)
qui correspond à l'identifiant de dispositif client (134-1) fourni au serveur mandataire
(116) en provenance du dispositif client (102),
sélectionner l'adresse de transport publique mise à jour (160-1) associée dans la
mémoire (182) avec l'identifiant de dispositif client (134-2),
récupérer l'adresse de transport publique du dispositif client associée (160-1), et
en utilisant l'adresse de transport publique du dispositif client associée (160-1),
ordonner au dispositif client (102) d'ouvrir une connexion avec le serveur mandataire
(116) selon le second protocole pour accéder au chemin de communication entre le dispositif
client (102) et le serveur mandataire (116).
27. Procédé selon la revendication 26, dans lequel l'opération consistant à établir un
chemin de communication entre un dispositif client et un serveur mandataire comporte
par ailleurs les opérations consistant à :
établir une voie de communication avec le serveur mandataire en utilisant une adresse
de transport de dispositif client attribuée ;
recevoir au niveau du serveur mandataire l'identifiant de dispositif envoyé par le
dispositif client ; et
enregistrer l'identifiant de dispositif client et l'adresse de transport de dispositif
client attribuée dans le serveur mandataire.
28. Procédé selon la revendication 26, dans lequel l'identifiant de dispositif client
est fourni au dispositif mandataire de manière périodique.
29. Procédé selon la revendication 27, comportant par ailleurs les opérations consistant
à :
recevoir un défi d'authentification ; et
répondre au défi d'authentification par une demande authentifiée.
30. Procédé selon la revendication 26, dans lequel l'opération consistant à établir des
communications de retransmission entre un dispositif d'administration et le dispositif
client par le biais du serveur mandataire comporte par ailleurs les opérations consistant
à :
affirmer une première demande en provenance du dispositif d'administration au serveur
mandataire comprenant l'identifiant de dispositif ;
accéder au dispositif client par le biais du chemin de communication entre le dispositif
client et le serveur mandataire ;
ordonner au dispositif client d'initialiser une connexion avec le serveur mandataire
;
retransmettre la première demande au dispositif client sur la connexion ; et
retransmettre une réponse en provenance du dispositif client au dispositif d'administration
par le biais du serveur mandataire.
31. Procédé selon la revendication 30, dans lequel l'opération consistant à accéder au
dispositif client par le biais du chemin de communication entre le dispositif client
et le serveur mandataire comprend l'opération consistant à chercher une adresse de
transport du dispositif client attribuée en utilisant l'identifiant de dispositif
client.
32. Procédé selon la revendication 30, comportant par ailleurs l'opération consistant
à :
ouvrir une connexion depuis le dispositif d'administration jusqu'au serveur mandataire.
33. Procédé selon la revendication 32, dans lequel à la fois la connexion entre le dispositif
client et le serveur mandataire et la connexion entre le dispositif d'administration
et le serveur mandataire sont conformes au protocole de contrôle de transmission (TCP).
34. Procédé selon la revendication 32, dans lequel la connexion entre le dispositif client
et le serveur mandataire et la connexion entre le dispositif d'administration et le
serveur mandataire permettent au moins l'un quelconque parmi l'administration à distance
et le dépannage à distance du dispositif client en provenance du dispositif d'administration.
35. Procédé selon la revendication 32, dans lequel à la fois la connexion entre le dispositif
client et le serveur mandataire et la connexion entre le dispositif d'administration
et le serveur mandataire sont configurées à des fins de retransmission de messages
comportant un trafic à protocole de transfert hypertexte (HTTP).
36. Procédé selon la revendication 35, comportant par ailleurs les opérations consistant
à :
affirmer une seconde demande HTTP en provenance du dispositif d'administration au
serveur mandataire, la seconde demande HTTP comprenant l'identifiant de dispositif
client ;
retransmettre la seconde demande en provenance du serveur mandataire au dispositif
client ;
retransmettre une seconde réponse à la seconde demande en provenance du dispositif
client au serveur mandataire ; et
retransmettre la seconde réponse en provenance du serveur mandataire au dispositif
d'administration.
37. Procédé selon la revendication 30, comportant par ailleurs les opérations consistant
à :
mettre fin à la connexion entre le dispositif client et le serveur mandataire ; et
mettre fin à la connexion entre le dispositif d'administration et le serveur mandataire.