Abstract:
Mobile agent connectivity includes dynamically determining addressing information for a mobile device at a mechanism configured to provide the mobile device with access to a network.

Description:
BACKGROUND  
         [0001]    This invention relates to mobile agent connectivity.  
           [0002]    Mobile agents are devices including laptop and portable computers, personal digital assistants, telephones, and other wireless or personal devices capable of connecting to a network from varied locations. To connect to an Internet Protocol (IP) based network, a mobile agent needs to establish an IP address presence that allows packets to be sent to the mobile agent from arbitrary points in the IP network. However, a purpose of IP addressing is to route packets to a fixed location, and making the destination mobile is at odds with this purpose.  
           [0003]    Typically, to establish an IP presence, a mobile agent is in a static subnet that broadcasts, routes, or switches packets to a medium configured to communicate with the mobile agent. The mobile agent may establish an IP presence in a number of ways. The agent may have a statically assigned IP address that an upstream host, e.g., the medium, can directly deliver packets to. If the agent maintains such a static IP address, only subnets recognizing the static IP address may safely be the last step in a communication to the agent.  
           [0004]    In another approach, the agent may have a dynamically assigned IP address allowing routing to the appropriate delivery medium that was assigned using a protocol such as dynamic host configuration protocol (DHCP). In this case, a foreign agent that assigned the address is the last step in routing data to the agent.  
           [0005]    In a third approach, the agent may be located in a non-IP network, such as telephone company networks, where an IP packet enters the non-IP network through a specific portal and is routed to the mobile agent based upon a global map.  
           [0006]    Referring to FIG. 1, under the mobile IP standard propagated by the Internet Engineering Task Force (IETF), a mobile agent  10  can wirelessly and continuously be connected to a network infrastructure  12  using the same IP address regardless of the mobile agent&#39;s physical location. The mobile agent  10  is identified by a home address providing information about the mobile agent&#39;s home network  14 . When the mobile agent  10  connects to the network infrastructure  12  away from its home link  16 , the mobile agent  10  is identified by the home address and by at least one care-of address providing information about the mobile agent&#39;s current location.  
           [0007]    Packets or datagrams sent across the network infrastructure  12  to the mobile agent&#39;s home address are transparently routed to the mobile agent&#39;s care-of address. The packets or datagrams destined for the mobile agent&#39;s home address are received at the home link  16  by a home gateway/router  18  that tunnels the packets or datagrams to the mobile agent&#39;s care-of address via an IP tunnel  20 . The care-of address may be an address for a foreign gateway/router  22  that forwards the packets or datagrams to the mobile agent  10  over a foreign link  24  that does not use IP routing. As the mobile agent  10  changes physical location and switches to a different foreign gateway/router to maintain connectivity to the network infrastructure  12 , the mobile agent  10  updates the home gateway/router  18  with its new care-of address. In this way, the mobile agent  10  can relocate, connect to various foreign gateways/routers, and maintain a constant IP address presence without interruptions or disturbances in network connectivity. 
       
    
    
     DESCRIPTION OF DRAWINGS  
       [0008]    [0008]FIG. 1 (PRIOR ART) is a block diagram of a network arrangement.  
         [0009]    [0009]FIG. 2 is a block diagram of a network arrangement in accordance with an embodiment of the invention.  
         [0010]    [0010]FIG. 3 is a block diagram showing a mobile agent included in the network arrangement of FIG. 2.  
         [0011]    [0011]FIG. 4 is a flowchart showing a process of connecting a mobile agent to a network in accordance with an embodiment of the invention.  
         [0012]    [0012]FIG. 5 is a flowchart showing a process of transmitting a packet to a mobile agent in accordance with an embodiment of the invention. 
     
    
     DESCRIPTION  
       [0013]    Referring to FIG. 2, a mobile agent  26  has the capability to dynamically locate itself in a network infrastructure  28  and to communicate its foreign network addressing information, e.g., a temporary care-of IP address, to a proxy server such as a home service host  30 . The addressing information can use any protocol, including IP. In locating itself in the network infrastructure  28 , the mobile agent  26  dynamically determines the availability of a local attach point to establish communication with a network  32  such as the Internet. Further, the mobile agent  26  dynamically determines a local addressing structure with regard to its local attach point. In this way, the mobile agent  26  can locate itself in the network infrastructure  28  on an as-needed basis. The handling of dynamically dropping and re-establishing connections to the network  32  via local attach points, e.g., foreign agents, foreign gateways, etc., as the mobile agent changes physical locations or service requirements or otherwise requires a new attach point is performed transparent to both the mobile agent&#39;s applications and an interface to allow management of the connections.  
         [0014]    The home service host  30  is located between a network  32  such as the Internet and the mobile agent&#39;s home network  34  where the mobile agent  26  preserves a constant home IP address. A security measure  36  such as one or more firewalls or bastion hosts may sit between the home service host  30  and the home network  34 , locating the home service host  30  in a demilitarized zone (DMZ)  38 . Similarly, a security measure  40  may sit between the network  32  and the home network host  30 .  
         [0015]    The home service host  30  receives or intercepts packets addressed to the mobile agent&#39;s home IP address sent by sources included in or connected to the network  32 . The home service host  30  encapsulates the packets and IP routes the encapsulated packets to the mobile agent&#39;s temporary IP address over an IP tunnel  42  included in the network  32 . Internally, the mobile agent  26  de-encapsulates the packets and hands the resulting base packets to its network stack. The communications between the mobile agent  26  and the home service host  30  do not require any modifications to the network infrastructure  28 , the network  32 , or the network&#39;s routing protocols.  
         [0016]    The mobile agent  26  and the home service host  30  both have various responsibilities in enabling the mobile agent  26  to dynamically attach to the network  32  via a foreign gateway/router (not shown) without requiring a specific network architecture or a complete re-authentication of the mobile agent  26  with the home network  34  to establish a new connection. The mobile agent  26  is a full computation unit with the capability to inquire about and adapt to a set of routing and IP naming structures. The mobile agent&#39;s responsibilities include:  
         [0017]    a) identifying the availability of external network connectivity, e.g., determining whether and/or when to connect to an external network via a foreign gateway/router,  
         [0018]    b) negotiating with the external network connectivity for a valid local routing (temporary care-of) address,  
         [0019]    c) contacting the home service host  30  to identify that the mobile agent  26  is now connected to the external network,  
         [0020]    d) forwarding any queued or active communication with IP encapsulation and using the dynamically assigned local address for the source of the communication,  
         [0021]    e) receiving IP encapsulated responses from the home service host  30  and de-encapsulating them for the network stack,  
         [0022]    f) detecting the dropping of network service availability, and  
         [0023]    g) providing applications with the ability to determine estimated network response time.  
         [0024]    The home service host  30  is a fixed home agent identifiable by a constant DNS (domain name system) name or IP address. Therefore, the home service host  30  can be a constant reference point for the mobile agent  26  and manage communication to and from the mobile agent  26 . The home service host  30  can act as the constant reference point for any number of mobile agents. The home service host&#39;s responsibilities include:  
         [0025]    a) remaining at the constant DNS name or IP address,  
         [0026]    b) knowing and being the gateway for the home network IP addresses of any number of mobile agents,  
         [0027]    c) buffering any packets routed to a mobile agent if the mobile agent is not in communication with the home service host  30 ,  
         [0028]    d) accepting requests from a mobile agent to establish a routing address to and from the mobile agent, including any required authentication,  
         [0029]    e) accepting and encapsulating any IP packets sent to a mobile agent,  
         [0030]    f) forwarding the encapsulated packets to the home network  34 ,  
         [0031]    g) detecting the dropping of connectivity to a mobile agent,  
         [0032]    h) performing the buffering of sent but undelivered packets to a mobile agent,  
         [0033]    i) executing a time sequence communication purging policy to drop aged packets, and  
         [0034]    j) resuming packet flow when connection with a mobile agent is re-established.  
         [0035]    The mobile agent  26  and the home service host  30  are both initialized with information enabling them to fulfill their responsibilities and/or to communicate with each other over the network  32 . The mobile agent  26  is initialized with three sets of parameters. First, the mobile agent  26  is initialized with a home network static IP address. Alternatively, the mobile agent  26  could dynamically request an IP address from the home service host  30 . Applications and services are unaware of any changes in the mobile agent&#39;s local address unless they explicitly check for changes through local identification services. Second, the mobile agent  26  is initialized with the negotiation protocols for the supported communication mediums. This information may include the static assignment of medium addresses such as a phone number or a static IP address. Finally, the mobile host is initialized with the home service host&#39;s communication address. This communication address may vary depending on the connection medium and the connection location. A specific variation includes inside and outside the home network  34  where the actual home service host contacted may vary.  
         [0036]    The home service host  30  is initialized with information about each mobile agent with which it may communicate. This information includes: 1) the home network IP address of each mobile agent, and 2) the authentication protocol and appropriate shared secrets for each mobile agent such as public keys, private keys, and validation parameters.  
         [0037]    Referring to FIG. 3, the mobile agent  26  includes hardware and/or software components  44 - 54  that allow the mobile agent  26  to dynamically establish connectivity to the network  32 . The components  44 - 54  also interact to enable the mobile agent  26  to communicate with the home service host  30  over the network  32 .  
         [0038]    Referring to FIG. 4, the mobile agent  26  dynamically discovers its local addressing information and establishes connectivity with the home service host  30  with a process  64 . The mobile agent  26  detects  66  a readiness for communication to one or more networks, such as the network  32 , using a media interface  44 . The media interface  44  includes one or more connectivity hardware and software communication media interfaces that are or could be active. Being active indicates that the mobile agent  26  is connected to or is ready to be connected to the network  26 . Each media interface and associated driver can either detect that the mobile agent  26  is now connected to a network or will connect to a network under explicit direction of a mobile agent application, e.g., electronic mail (email), short messaging, and paging. The communication media that the media interface  44  can use include an Ethernet, USB (Universal Serial Bus), serial line, POTS (Plain Old Telephone Service), IrDA (Infrared Data Association), Bluetooth, CDPD (Cellular Digital Packet Data), GPRS (General Packet Radio Service), a global system for mobile communications (GSM) standards such as  1 XRRT, and ATM (Asynchronous Transfer Mode).  
         [0039]    Once one or more communication media have indicated a readiness for communication, the mobile agent  26  via a discovery agent  46  determines  68  whether multiple communication media are active. If only one communication medium is active or is to become active, the discovery agent  46  enters  70  into a negotiation for what protocol and what address modality are actually used for that communication medium. The negotiation is communication specific and is defined by the standards for the active communication medium.  
         [0040]    If there are multiple communication media active or to become active, the discovery agent  46  selects  72  one or more of the active communication media for utilization in the communication of packets between the mobile agent  26  and the home service host  30 . Each communication medium can require a separate negotiation, with the home service host  30  managing the convergence of separate channels. The technique and tools for the home service host&#39;s management of the convergence addressing service policies and user management of service cost structures using a connectivity manager  48  can include using DHCP, dialing a modem bank, static IP, 1394, USB, and/or proprietary connection mechanisms. After selecting one or more active communication media, the discovery agent  46  enters  70  a negotiation for the protocol and addressing modality used as described above.  
         [0041]    The addressibility solution associated with a particular communication medium may have multiple formats and steps. The final step to the home service host  30  will be an Internet protocol, e.g., DHCP, dialing a modem bank, static IP, 1394, USB, and/or proprietary connection mechanisms. Early steps will be defined by the communication medium and any intermediate communication media.  
         [0042]    Once the mobile agent  26  has negotiated a protocol and self addressing information, the discovery agent  46  uses the fixed IP address or name of the home service host  30  as the destination of a network protocol to identify the mobile agent  26  to the home network  34 . A number of different protocols can be used, depending on the assumptions about the robustness and latency of the particular communication medium.  
         [0043]    The mobile agent  26  notifies  74  the home service host  30  of the mobile agent&#39;s local addressing information so the home service host  30  can appropriately forward packets addressed to the mobile agent  26 . This notification can be done over a secure connection, a non-secure connection, or a combination of both. Once communication has been established between the mobile agent  26  and the home service host  30 , the two agents  26 ,  30  can communicate  76  using IP encapsulation of the home network packets and the appropriate addressing structure for the multistage communication between the two agents  26 ,  30 .  
         [0044]    Referring to FIG. 5, packets are transmitted to the mobile agent  26  using a process  78 . When a source on the network  32  sends  80  a packet to the mobile agent  26  at its home network address, the packet arrives  82  at the home service host  30 . The home service host  30  encapsulates  84  the received packet for transmission to the mobile agent  26 . The encapsulation (tunneling) can be accomplished using any encapsulation technique compatible with the network  32  and the mobile agent&#39;s local addressing scheme, e.g., IPsec (IP security) and encrypted packets. In conjunction with the home service host  30 , a connectivity flow manager  50  included in the mobile agent  26  compresses the packet with traditional or semantic compression algorithms. Also in conjunction, the compressed packet is sent to the mobile agent  26  via the most effective active communication medium based upon, e.g., mobile agent user specified cost and speed policies.  
         [0045]    The mobile agent  26  receives  86  the packet and de-encapsulates  88  the packet with an IP encapsulation agent  52 . Before the packet is sent to the mobile agent&#39;s network stack  54 , the discovery agent  46  and the connectivity manager  48  determine  90  if the mobile agent  26  is still connected. The discovery agent  46  and the connectivity manager  48  manage the loss and re-establishment of the mobile agent&#39;s connection with the home service host  30 . Applications, such as email, short messaging, and paging, also have the option of managing and responding to the loss of connectivity.  
         [0046]    If the mobile agent  26  is connected, the packet is delivered  92  to the mobile agent&#39;s network stack  54 . If the mobile agent  26  is not connected, the connectivity flow manager  50  buffers  94  the packet. Thus, buffered packets are those packets sent to the mobile agent  26  but not delivered. However, buffered packets may be delivered in the future. If the connection is re-established  96 , then the packet is delivered  92 . Alternatively, if the application that sent the packet, e.g., an electronic mail (email), short messaging, or paging application, revokes  98  the send request associated with the packet, then the connectivity flow manager drops  100  that packet from the buffer.  
         [0047]    Other embodiments are within the scope of the following claims.