Abstract:
A system and method is provided for seamlessly switching between different network access technologies without interrupting active network applications or sessions. A Network Access Arbitrator (NAA), which contains a virtual network adapter driver, resides between a Data Link Layer and a Network Layer of the standard OSI-7 Layer Protocol Stack for controlling necessary switching between different network access technologies. Since all network applications are controlled by layers residing on or above the Network Layer, all applications using network services provided by the Network Layer will continue their active network sessions or applications without disruption, as the NAA switches between different network access technologies.

Description:
CROSS REFERENCE 
     This application claims the benefit of a U.S. Provisional Application Ser. No. 60/157,289, entitled “Network Access Arbitrator” which was filed on Oct. 1, 1999. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates generally to communication network access technologies, and more particularly, to a system and method for providing transparent and automatic switching between different network access technologies without interrupting active network applications or sessions. 
     The advent of computer networks has brought a revolutionary change to the world about how people work with computers in their daily activities. Networked computers allow users to share various computer resources and provide significant conveniences to users. Various network access technologies (NATs) are co-existing today that provide users with different network design alternatives. For example, Token Ring, Ethernet, and Wireless Local Area Network are all well known network access technologies that are widely used. Therefore, it is very likely that multiple networks using different network access technologies are located side by side in a larger network that services, for example, a large company. 
     This co-existence of different network access technologies brings problems and undesired delays when a user switches from one part of a network to another if each part uses different access technologies. For example, it is possible that a user&#39;s laptop is equipped with one Ethernet card and one wireless LAN PCMCIA card for providing two alternate network accesses to a corporate network. For example, consider a user in the middle of an active network session, such as downloading a lengthy file via Ethernet access in the user&#39;s office, and the user must go to a meeting with his colleagues in another building and must bring the file with him. If he has to wait for the file to be completely downloaded, he may be late for the meeting. Alternatively, the user can terminate the downloading session and download the same file all over again at the meeting where he reestablishes a network connection (either through another Ethernet connection in the meeting room or through the wireless LAN PCMCIA connection on his laptop). Both choices are not desirable because either the user is delayed or he has to waste whatever has been downloaded before he leaves his office. 
     When a user has to disconnect from a network while using a particular NAT and reestablish another network connection through a different NAT, certain processes must happen. In any network that is in conformance with the standard Open Systems Interconnection (OSI)- 7  Layer model, all activities in different layers must be terminated. 
     Referring now to  FIG. 1 , an overall schematic for the standard OSI-7 Layer Protocol Stack  10  is shown. The concept of layering is generally known in the art and the OSI standard is the only internationally accepted framework of standards for communication between different system made by different vendors. The OSI-7 Layer Protocol Stack  10  typically has seven different layers: a Physical Layer (L 1 )  12 , a Data Link Layer (L 2 )  14 , a Network Layer (L 3 )  16 , a Transport Layer (L 4 )  18 , a Session Layer (L 5 )  20 , a Presentation Layer (L 6 )  22  and an Application Layer (L 7 )  24 . As shown in  FIG. 1 , L 1  deals with the physical means of transmitting data over communication lines, and in a network environment, usually refers to various Network Interface Cards (NICs)  26  designed for different NATs. L 2  is concerned with procedures and protocols for operating the communication lines, and in this example, is the corresponding Adapter Driver Software  28  for various NICs. In order to identify each NIC, usually a Data Link Layer address or an L 2  address is assigned to the NIC. L 3  provides information  30  about how data packet routing and relaying can be accomplished. This information may include network or Internet Protocol addresses for communication nodes such as a file server or other computers. L 4  defines the rules for information exchange, e.g., information about various network protocols  32  such as TCP/IP protocols, UDP, or ICMP, L 5 , L 6  and L 7  are dedicated more to network applications  34 . All these layers are working together on a computer hardware platform  36  such as a host computer server. 
     Now referring to  FIG. 2 , a flow diagram  40  is shown for terminating a first network access with a first NAT and switching to a second network access with a second NAT, all while active network applications are in progress. When terminating the first network access, the active network applications are interrupted. From the perspective of layering, the active network applications relating to L 5 , L 6  and L 7  are first shut down in step  42 . Then the corresponding network connections (relating to L 4  and L 3 ) are destroyed in step  44 . Eventually network software and hardware in L 2 , L 1  and the computer platform are reconfigured in step  46 . Using the new NAT, network connections must be initiated in step  48 , and the network applications must be restarted again in step  50 . In summary, the conventional techniques for switching from the first NAT to the second NAT tears down all processes from L 7  downward to L 1 , and then re-establishes the applications back from L 1  upward to L 7 . This lengthy process incurs extra delays and expenses for network computing and greatly reduces the efficiency of network applications. 
     What is needed is a method and system to switch between different network access technologies without interrupting active network applications or sessions. 
     SUMMARY OF THE INVENTION 
     A system and method is provided for seamlessly switching between different network access technologies without interrupting active network applications or sessions. 
     Using as an example the standard OSI-7 Layer Protocol Stack to implement network communications, one embodiment of the present invention provides a Network Access Arbitrator (NAA). The NAA is a virtual network device driver situated between the Data Link Layer (L 2 ) and the Network Layer (L 3 ) of the OSI-7 Layer Protocol Stack for controlling necessary switching between different network access technologies. Since all computer network applications are controlled by layers residing on or above L 3 , all applications using network services provided by L 3  (connection or connectionless) will continue their active network sessions without disruption, as the NAA switches between network access technologies. 
     In addition to providing switching between different network access technologies, the NAA also works in conjunction with Mobile Internet Protocol functions such as IP-in-IP encapsulation/de-capsulation, proxy ARP, gratuitous ARP, etc. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates an overview of the standard OSI-7 Layer Protocol Stack. 
         FIG. 2  illustrates a process flow for switching between two different network access technologies. 
         FIG. 3  is a graphical representation of how a Network Access Arbitrator interacts with different Layers of the OSI-7 Layer Protocol Stack in accordance with one embodiment of the present invention. 
     
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring now to  FIG. 3 , a Network Access Arbitrator (NAA)  60  is shown in the environment of an OSI-7 Layer Protocol Stack  10  according to one embodiment of the present invention. The NAA  60  is a virtual adapter driver located between L 2  and L 3  for providing seamless network hand-offs between two different network access technologies (NATs). With the implementation of the NAA  60 , various active network applications are uninterrupted as the NAA  60  stops exchanging information through an existing NAT and moves over to use a new NAT. 
     On a computer hardware platform  36  such as a host computer server on L 2 , there are multiple NATs available, e.g., multiple network interface cards (NICs)  62  along with their corresponding adaptive driver software (NIC  0  to NIC N). The NAA  60  is inserted in between L 2  and L 3 . The NAA  60  insures that L 3  detects only a virtual Anchor Adapter driver (Anchor) even though there are multiple NICs  62  and adapter drivers installed on the computer platform  36 . Therefore, all the processes on and above L 3  are not aware of different NICs  62  and adapter drivers  64 . 
     Out of all the available adapters or NICs  62  on the computer platform, one particular NIC can be initially set as a primary adapter. Its driver thus is the primary adapter driver. All the other adapters and their corresponding drivers are considered non-primary or secondary. Initially, the primary adapter driver is the Anchor. 
     When executing a network application, the primary adapter is usually the one for providing the network access. At any moment, only one of the adapters or NICs is active. However, due to the availability of multiple NATs, the active network adapter may or may not be the primary adapter. The active adapter receives and transmits all Internet Protocol (IP) data packets including those in unicast, multicast, and broadcast format. However, inactive adapters will receive only multicast and broadcast packets. Moreover, the NAA  60  monitors all the adapters  62 , and receives and transmits data packets only through the active adapter. Since the NAA  60  is situated between L 2  and L 3 , all network applications or communications using L 3  network protocols deal exclusively with the NAA  60  without directly involving any L 2  network components. In other words, without letting L 3  know which adapter driver in L 2  and its associated active adapter in L 1  is actually used, the NAA  60  supplies/retrieves data packets to/from the active adapter, whether it is the primary adapter or any other one connected to the same host computer hardware platform. Therefore, an active network application that works with L 3  network protocols observes a constant data stream coming from the NAA  60  and sends back to the NAA  60  another data stream for outgoing information without noticing a transition between two NATs. 
     The NAA  60  treats outgoing data packets and incoming data packets differently. For an outgoing data packet, if the active adapter is the primary adapter, the data packet is sent unmodified from the NAA  60  to the primary adapter except when there is a special need for encapsulation. If the active adapter is an adapter other than the primary adapter, a hardware frame of the data packet is modified by the NAA so that a source hardware address in the frame is set to the L 2  address of the active adapter before data packet is sent to that active adapter. 
     For an incoming packet, if the receiving adapter is the primary adapter, the data packet is “passed up” unmodified to the NAA  60 , except when there is a special need for decapsulation. If the receiving adapter is not the primary adapter, a hardware frame of the data packet is modified so the destination hardware address is set to the L 2  address of the primary adapter before the data packet is passed through the NAA  60 . This ensures that L 3  sees no change in the Anchor (that it detects at all time). 
     In addition, Address Resolution Protocol (ARP) must be blocked or handled appropriately so that an ARP module of the protocol stack is not confused about a single IP address in L 3  with multiple L 2  addresses. For instance, in response to an ARP request message sent by a router, a message can be broadcasted to publish the L 2  address of the active adapter. 
     Furthermore, it is important for the NAA  60  to determine which network adapter or NIC is active at any moment. Some NICs and their associated adapter drivers are capable of indicating a connection and disconnection status. Typically, the time required to detect a disconnection detection is around one second and around six seconds to detect connection. These time thresholds are good indicators of the activity status of the NICs. The NAA  60  is thus capable of making use of these hardware status indications to obtain information about which adapter is active. 
     Also, according to one embodiment of the present invention, the NAA  60  is equipped with a timer that times out on a one-second basis. This timed event is used to detect the existence of incoming data packets. If the NAA  60  detects a data packet for the primary adapter, the primary adapter is deemed the active adapter. If the NAA  60  detects that there is no data packet going through the primary adapter in a period of two seconds, but there is at least one data packet received on a non-primary or a secondary adapter, the secondary adapter is used as the active adapter. An active adapter is viewed by the NAA  60  as active until another active adapter replaces it. 
     With the implementation of the NAA  60 , a user can freely switch from one NAT to another without worrying about disrupting any active network applications. For example, as mentioned above, if a user&#39;s laptop is equipped with one Ethernet card and one wireless LAN PCMCIA card, thereby providing for two alternate network access to a corporate network, network application will not be interrupted when the network access is switched from the Ethernet card to the PCMCIA card. The NAA  60  may initially set the Ethernet card as the primary adapter and the PCMCIA adapter as a secondary adapter. While in the middle of downloading a file through the active primary adapter, if the user must go to a meeting in another building, he can simply unplug the Ethernet connection and start on the wireless PCMCIA card. The user is then free to go to the meeting while his laptop continues the downloading session using the wireless LAN connection. The user will be on time at the meeting and be able to finish downloading without any delay. 
     Further, the NAA  60  can be used in conjunction with Mobile Internet Protocol to allow a mobile device to roam seamlessly between different subnets having different NATs. Similarly, the present invention also applies to networks using various packet based wireless access technologies. As long as there are at least two different NATs, the present invention preserves the integrity of active network applications while providing smooth transition from one NAT to another. 
     It is noted that in addition to providing switching between different network access technologies, as mentioned above, the NAA  60  also works in conjunction with other Mobile Internet Protocol functions such as IP-in-IP encapsulation/de-capsulation, proxy ARP, gratuitous ARP, etc. 
     The above disclosure provides many different embodiments, or examples, for implementing different features of the invention. Also, specific examples of components, and processes are described to help clarify the invention. These are, of course, merely examples and are not intended to limit the invention. 
     While the invention has been particularly shown and described with reference to the preferred embodiment thereof, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.