KR100667783B1 - Communication adapter switching method and apparatus - Google Patents

Communication adapter switching method and apparatus Download PDF

Info

Publication number
KR100667783B1
KR100667783B1 KR1020040102304A KR20040102304A KR100667783B1 KR 100667783 B1 KR100667783 B1 KR 100667783B1 KR 1020040102304 A KR1020040102304 A KR 1020040102304A KR 20040102304 A KR20040102304 A KR 20040102304A KR 100667783 B1 KR100667783 B1 KR 100667783B1
Authority
KR
South Korea
Prior art keywords
adapter
communication
adapters
communication adapter
virtual
Prior art date
Application number
KR1020040102304A
Other languages
Korean (ko)
Other versions
KR20060024758A (en
Inventor
이학구
이용훈
김영근
김평수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US11/222,746 priority Critical patent/US20060056446A1/en
Priority to NL1029947A priority patent/NL1029947C2/en
Publication of KR20060024758A publication Critical patent/KR20060024758A/en
Application granted granted Critical
Publication of KR100667783B1 publication Critical patent/KR100667783B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/16Performing reselection for specific purposes
    • H04W36/18Performing reselection for specific purposes for allowing seamless reselection, e.g. soft reselection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명에 따라 복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 방법 및 장치가 개시된다. According to the present invention, a method and apparatus for switching a communication adapter in a system environment equipped with a plurality of communication adapters is disclosed.

본 발명에 따른 스위칭 방법은, 복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 방법에 있어서, 상기 복수의 통신 어댑터들의 어드레스를 상기 복수의 통신 어댑터들중 제1통신 어댑터의 어드레스로 동일하게 설정하는 단계와, 상기 제1 통신 어댑터를 제외한 나머지 통신 어댑터들의 패킷 필터링 모드를 모든 패킷들을 받아들일 수 있는 모드로 설정하는 단계와, 상기 복수의 통신 어댑터들 중 하나의 통신 어댑터를 통해 통신하는 중 상기 통신의 연결이 끊어지면 다른 통신 어댑터로 스위칭하는 단계를 포함하는 것이다. 이와 같은 본 발명에 의하면, TCP/IP와 같은 프로토콜 드라이버들이 보기에는 하나의 가상 어댑터만이 보이게 되므로, 통신 어댑터가 스위칭되는 경우에도 동일한 IP 어드레스로 TCP/IP의 세션이 끊기지 않고 거의 심리스(Seamless)한 핸드오프가 가능하다.In the switching method according to the present invention, a method of switching the communication adapter in a system environment equipped with a plurality of communication adapters, the address of the plurality of communication adapters to the address of the first communication adapter of the plurality of communication adapters Setting the same, setting the packet filtering mode of the other communication adapters except the first communication adapter to a mode that can accept all packets, and communicating through one communication adapter of the plurality of communication adapters. And switching to another communication adapter when the communication is disconnected. According to the present invention, since only one virtual adapter is visible to protocol drivers such as TCP / IP, even when the communication adapter is switched, the session of TCP / IP with the same IP address is almost never disconnected. One handoff is possible.

Description

통신 어댑터 스위칭 방법 및 장치{Communication adapter switching method and apparatus}Communication adapter switching method and apparatus

도 1은 종래 기술에 따른 네트워크 드라이버 시스템의 구성도,1 is a configuration diagram of a network driver system according to the prior art;

도 2는 종래 기술에 따른 네트워크 드라이버의 구성,2 is a configuration of a network driver according to the prior art,

도 3은 본 발명에 따른 네트워크 드라이버 시스템의 구성도,3 is a configuration diagram of a network driver system according to the present invention;

도 4는 도 3에 도시된 가상 드라이버의 구성,4 is a configuration of the virtual driver shown in FIG. 3;

도 5a 및 도 5b는 본 발명에 따른 가상 드라이버 로딩 과정의 흐름도,5A and 5B are flowcharts of a virtual driver loading process according to the present invention;

도 6은 본 발명에 따라 커넥트시의 동작 흐름도,6 is a flowchart illustrating operations at the time of connecting according to the present invention;

도 7은 본 발명에 따라 디스커넥트시의 동작 흐름도. 7 is a flowchart illustrating operations during disconnection according to the present invention.

본 발명은 네트워크 분야에 관한 것으로, 좀더 구체적으로는 통신 어댑터 스위칭 방법 및 장치에 관한 것이다. The present invention relates to the field of networks, and more particularly to a method and apparatus for switching communication adapters.

Windows OS에서 다수개의 통신용 물리적 어댑터(Physical Adapter)를 설치할 수 있다. 그리고, 이러한 복수개의 물리적 어댑터 각각에 IP 어드레스를 부여하여 통신을 할 수 있다. 상대방과 세션을 설정하여 통신을 하고자 할 때는 기본적 으로 네트워크 계층(Network Layer)의 IP 어드레스와 전송 계층(Transport Layer)의 포트(Port) 주소를 Pair로 해서 통신을 하게 된다. 만약 이 Pair 중에서 하나라도 달라지게 되면 세션이 바로 끊기게 된다.  You can install multiple communication physical adapters in the Windows OS. In addition, each of the plurality of physical adapters may be assigned an IP address for communication. When establishing a session with the other party, basically, the IP address of the network layer and the port address of the transport layer are paired. If any of these pairs change, the session will be immediately disconnected.

만일 동일종류(예, 802.3)의 물리적 어댑터가 두 개 있다고 한다면 각각의 물리적 어댑터에 서로 다른 IP 어드레스를 부여하게 된다. 그리고, 통신 어플리케이션이 통신 세션을 연결하게 되면 최적의 라우팅 경로(Routing Path)에 따라 하나의 IP 어드레스를 선택하고 그에 따라 해당 IP 어드레스가 할당된 물리적 어댑터를 통해서 상대방과 통신하게 된다. 예를 들어, 802.3과 802.11과 같이 다른 기종의 물리적 어댑터라 할 지라도 위와 같은 방식으로 통신을 하게 된다. If there are two physical adapters of the same type (eg 802.3), then each physical adapter will be given a different IP address. When the communication application connects to the communication session, it selects one IP address according to an optimal routing path and communicates with the other party through a physical adapter to which the corresponding IP address is assigned. For example, other physical adapters such as 802.3 and 802.11 will communicate in the same way.

그런데, 만약 사용자가 이기종의 물리적 어댑터를 지닌 Windows OS가 설치된 PC에서 유선랜과 무선랜을 동시에 할성화해 놓고, 통신을 하게 되면 그리고, 둘 다 같은 도메인에 연결되어 있을 경우, 일반적으로 속도가 빠른 유선랜으로 통신을 할 것이다. 즉, 이 때 사용하는 IP 어드레스는 유선랜에 할당된 IP 어드레스일 것이다. 그런데, 유선랜이 끊기게 되면 Window OS에서는 자동으로 TCP/UDP 통신을 사용하는 어플리케이션의 세션을 자동으로 끊게 된다. 이는 할당된 IP 어드레스를 더 이상 사용할 수 없기 때문이다. However, if a user activates both a wired LAN and a wireless LAN at the same time on a PC with a Windows OS having a heterogeneous physical adapter and communicates with each other, and if both are connected to the same domain, a fast wired LAN is generally faster. Will communicate. That is, the IP address used at this time will be an IP address assigned to the wired LAN. However, when the wired LAN is disconnected, Windows OS automatically terminates the session of the application using TCP / UDP communication. This is because the assigned IP address is no longer available.

도 1은 Windows OS의 네트워킹 기능을 부여하기 위해서 마이크로소프트(Microsoft)사에서 제공하는 커널 레벨의 라이브러리를 나타낸다. 이를 NDIS(Network Driver Interface Specification)라고 말을 한다. 실제 물리적 어댑터가 PCI 인터페이스에 연결되어 있으면 이를 구동하기 위한 드라이버는 드라이버 개발자가 NDIS의 미니포트 스펙(Miniport Spec)에 맞게 해당 물리적 어댑터의 미니포트 드라이버를 개발한다. 그러면, 실제 물리적 어댑터는 동작을 하게 되고, 상위 레벨(Upper Level)로 패킷들을 수신하여 전달하고, 상위 레벨로부터 패킷을 전달받아 LAN(Local Area Network)으로 전송하게 된다. 1 illustrates a kernel-level library provided by Microsoft for providing a networking function of a Windows OS. This is called NDIS (Network Driver Interface Specification). If a real physical adapter is connected to a PCI interface, the driver to drive it will develop a miniport driver for that physical adapter in accordance with NDIS's Miniport Spec. Then, the actual physical adapter operates, receives and forwards packets at an upper level, and receives packets from an upper level and transmits the packets to a local area network (LAN).

보통 알려져 있는 TCP/IP나 NETBIOS 등은 실제로는 NDIS 윗단에서 동작하는 프로토콜 드라이버 라고 말한다. 프로토콜 드라이버 까지 보통 OS의 커널 레벨(Kernel Level)이고, 어플리케이션 등은 사용자 레벨(User level)이 된다. Commonly known TCP / IP and NETBIOS are actually protocol drivers that run on top of NDIS. The protocol driver is usually at the kernel level of the operating system, and the application is at the user level.

도 1을 참조하면, 네트워크 드라이버 시스템은 WIN32 패킷 드라이버(110), LAN 프로토콜 드라이버(120), NDIS(130), 인터미디엇 드라이버(140), 미니포트 드라이버(150), 미니포트 드라이버(160), NIC(170), NIC(180)를 포함한다. Referring to FIG. 1, a network driver system includes a WIN32 packet driver 110, a LAN protocol driver 120, an NDIS 130, an intermediate driver 140, a miniport driver 150, and a miniport driver 160. NIC 170, NIC 180.

디바이스 드라이버는 오퍼레이팅 시스템과 그 입/출력 디바이스들 사이를 연결하는 수단으로, 오퍼레이팅 시스템으로부터 수신된 일반적인 요청들을 해석하고 특정 주변 콘트롤러가 이해할 수 있는 커맨드로 전환하는 역할을 한다. The device driver is the means by which the operating system and its input / output devices are connected, interpreting general requests received from the operating system and converting them into commands that a particular peripheral controller can understand.

네트워크 인터페이스 카드(NIC)(170,180)는 네트워크상에서 데이터 프레임들이 전송되고 수신될 수 있도록 하는 게이트웨이와 같은 역할을 하는 물리적인 디바이스이다. Network interface cards (NICs) 170 and 180 are physical devices that act as gateways that allow data frames to be transmitted and received over a network.

네트워크 드라이버 인터페이스 명세(NDIS)(130)는 하나 이상의 NIC 드라이버들이 그위에 있는 하나 이상의 프로토콜 드라이버 및 오퍼레이팅 시스템과 통신할 수 있도록 해주는 인터페이스를 설명한다. 즉, NDIS는 상위 레벨(TCP/IP) 프로토콜 드라이버 뿐만 아니라 NIC 드라이버들에 의해 사용될 수 있는 함수(wrapper라고 불린다)들의 라이브러리를 제공한다. NIC 드라이버는 프로토콜 드라이버와의 통신, NIC 하드웨어 인터럽트를 등록하고 인터셉트하는 것, 하위에 있는 NIC 들과의 통신을 포함한 모든 외부적인 기능들을 위해 NDIS에 의존한다. Network Driver Interface Specification (NDIS) 130 describes an interface that allows one or more NIC drivers to communicate with one or more protocol drivers and operating systems thereon. In other words, NDIS provides a library of functions (called wrappers) that can be used by NIC drivers as well as high-level (TCP / IP) protocol drivers. The NIC driver relies on NDIS for all external functions, including communication with protocol drivers, registering and intercepting NIC hardware interrupts, and communication with underlying NICs.

NDIS 드라이버에는 네트워크 인터페이스 카드(NIC) 드라이버, 인터미디엇 프로토콜 드라이버, 상위 레벨 프로토콜 드라이버가 있다.NDIS drivers include network interface card (NIC) drivers, intermediate protocol drivers, and high-level protocol drivers.

네트워크 인터페이스 카드 드라이버는 네트워크 인터페이스 카드(NIC)를 관리한다. NIC 드라이버는 그 하위 에지에서 하드웨어(NIC)에 직접 인터페이스하고, 그 상위 에지에서 상위 레벨 드라이버들이 다음과 같은 것을 할 수 있도록 하는 인터페이스를 제공한다. The network interface card driver manages network interface cards (NICs). The NIC driver interfaces directly with the hardware (NIC) at its lower edge, and provides an interface at the upper edge that allows higher-level drivers to:

NIC 드라이버 중의 하나인 미니포트 드라이버(150,160)는 NIC으로 데이터를 전송하고 수신하는 것을 포함하여 NIC을 관리하는데 필요한 하드웨어 특정 오퍼레이션들을 구현한다. 미니포트 드라이버는 오퍼레이팅 시스템을 직접 호출하지 않고 대신에 NDIS에 의해 익스포트된 기능들을 호출할 수 있다. 그리고, 인터미디엇 드라이버들과 트랜스포트 프로토콜 드라이버와 같은 상위 레벨 드라이버들과 인터페이스한다. One of the NIC drivers, miniport driver 150 and 160, implements the hardware specific operations required to manage the NIC, including sending and receiving data to and from the NIC. The miniport driver does not call the operating system directly, but instead can call functions exported by NDIS. It interfaces with higher level drivers such as intermediate drivers and transport protocol drivers.

인터미디엇 드라이버(140)는 기존의 프로토콜 드라이버와 미니포트 드라이버 사이에 존재한다. 상위 레벨 트랜스포트 드라이버에게 인터미디엇 드라이버는 미니포트 드라이브처럼 보이고, 미니포트 드라이버에게는 인터미디엇 드라이버는 프로토콜 드라이버처럼 보인다. 인터미디엇 드라이버를 이용하는 주요 이유는 기존의 프로토콜 드라이버와, 이러한 프로토콜 드아이버에게 알려지지 않은 새로운 미 디어 타입을 관리하는 미니포트 사이에서 미디어 변환을 위한 것이다. The intermediate driver 140 exists between the existing protocol driver and the miniport driver. To the high-level transport driver, the intermediate driver looks like a miniport drive. To the miniport driver, the intermediate driver looks like a protocol driver. The main reason for using the intermediate driver is to convert media between the existing protocol driver and the miniport driver that manages the new media types unknown to these protocol drivers.

드라이버 계층에서 중간적인 위치 때문에 인터미디엇 드라이버는 아래에 있는 미니포트 드라이버와 위에 있는 프로토콜 드라이버 모두와 통신한다. 하위 에지에서 인터미디엇 드라이버는 프로토콜 엔트리 포인트를 제공하며, 상위 에지에서는 미니포트 엔트리 포인트를 제공한다. 이는 NDIS가 위에 있는 프로토콜 드라이버에 대한 요청을 전달하는데 사용된다. 위쪽에 있는 프로토콜 드라이버에게는 미니포트 드라이버인 것처럼 보인다. Due to its intermediate position in the driver layer, the intermediate driver communicates with both the miniport driver below and the protocol driver above. At the lower edge, the intermediate driver provides the protocol entry point and at the upper edge the miniport entry point. This is used by NDIS to forward requests to the protocol driver above it. To the protocol driver at the top, it appears to be a miniport driver.

상위 레벨 프로토콜 드라이버(120)는 그 사용자들에게 서비스를 제공하기 위해 TDI 인터페이스 또는 어플리케이션 특정 인터페이스를 구현한다. 그러한 드라이버는 패킷들을 할당하고, 데이터를 패킷에 복사하고, NDIS를 호출하는 것에 의해 이 패킷을 하위 레벨 드라이버로 보낸다. 그것은 또한 다음 하위 레벨 드라이버로부터 패킷들을 수신하기 위해 그 하위 레벨에서 프로토콜 인터페이스를 제공한다. 또한 트랜스포트 프로토콜 드라이버는 받아진 데이터를 적절한 클라이언트 어플리케이션으로 전달한다. The high level protocol driver 120 implements a TDI interface or an application specific interface to provide services to its users. Such a driver sends these packets to the lower level driver by allocating packets, copying data into the packets, and calling NDIS. It also provides a protocol interface at that lower level to receive packets from the next lower level driver. The transport protocol driver also forwards the received data to the appropriate client application.

도 2에 도시된 바와 같이, 현재의 Windows OS에서는 이기종의 물리적 어댑터 뿐만 아니라, 동일 기종의 물리적 어댑터 에서도 하나의 통신선이 끊어지면 세션 자체가 자동으로 끊기게 되어 있다. 이는 TCP의 경우 미디어에 대한 정보를 TCB(Tcp Control Block)에 저장하고 있는데, 인터페이스가 끊어졌다는 정보가 전달되면 TCP는 자동으로 해당 세션을 끊어버리기 때문이다. 이는 인터페이스가 끊어졌다는 것은 곧 해당 인터페이스에 할당된 IP 어드레스를 더 이상 사용할 수 없을 것이 자명하기 때문에 그렇게 구현한 것이다. 만약 세션을 TCP에서 끊어버리지 않는다 해도 Windows에서 동일 IP 어드레스를 동시에 서로 다른 인터페이스에 할당 할 수가 없다. 만약 잠시 동일한 IP로 바꾸고자 할 때는 TCP/IP 프로토콜 드라이버 자체를 Down/UP을 시키기 때문에 기존의 다른 세션도 전부 끊어지게 된다.As shown in Figure 2, in the current Windows OS, not only heterogeneous physical adapters, but also a single physical communication line is disconnected from the same type of physical adapter, the session itself is automatically disconnected. This is because TCP stores information about the media in the TCB (Tcp Control Block), because when the information about the interface is lost, TCP automatically disconnects the session. This is done because it is obvious that the interface is broken and the IP address assigned to that interface will no longer be available. Even if the session is not disconnected from TCP, Windows cannot assign the same IP address to different interfaces at the same time. If you want to change to the same IP for a while, all other existing sessions will be disconnected because the TCP / IP protocol driver itself is down / up.

이러한 문제들 때문에 실제 프로토콜 드라이버 단에서 보기에 하나의 인터페이스만 존재하는 것처럼 만들기 위해서 윈도우에서는 가상 어댑터(Virtual Adapter)를 만들 수 있는 브릿지라는 기능을 사용할 수가 있다. 브릿지(Bridge)는 동일한 IP 어드레스를 제공하기는 하지만, 핸드오프(Handoff)를 하는 시간이 기본적으로 30초 정도의 시간이 소요가 된다. 즉, 브릿지에서도, 하나의 물리적 어댑터의 통신이 끊어지게 되면 자동으로 브릿지가 만든 가상 어댑터로 끊어졌다는 신호를 보내게 된다. 그러면, 자동으로 TCP/IP 프로토콜 드라이버의 세션도 전부 끊어지게 된다. 그리고, 브릿지 방법의 또 다른 문제는 하나의 미디어에서 또 다른 미디어로 스위칭할 때 너무 많은 시간이 소요된다는 점이다. 실험 결과로는 30초 남짓 걸리게 되는데, 이 시간은 TCP 타임아웃 시간이 된다. 연결이 끊어졌다는 정보를 막더라도 결국 TCP 타임아웃 때문에 세션이 끊어지게 된다. Because of these problems, in order to make sure that there is only one interface in the real protocol driver stage, you can use a bridge called Windows to create a virtual adapter. Although the Bridge provides the same IP address, the handoff time is basically about 30 seconds. In other words, when a bridge loses communication with one physical adapter, the bridge automatically sends a signal to the virtual adapter created by the bridge. This automatically disconnects all sessions from the TCP / IP protocol driver. And another problem with the bridge method is that it takes too much time to switch from one media to another. The experiment takes about 30 seconds, which is the TCP timeout time. Even if you block the information that the connection is lost, the session will eventually be disconnected due to TCP timeout.

본 발명은 상기와 같은 문제점을 해결하여 이기종 통신 어댑터 사이의 스위칭을 하는데 있어 상위 어플리케이션의 통신 세션을 그대로 유지하고, 끊김없이 제공할 수 있도록 하는 통신 어댑터 스위칭 방법 및 장치를 제공하는 것을 목적으로 한다. Disclosure of the Invention It is an object of the present invention to provide a communication adapter switching method and apparatus for maintaining a communication session of a higher application and providing the same without interruption in switching between heterogeneous communication adapters.

상기와 같은 과제를 해결하기 위한 본 발명의 하나의 특징은, 복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 방법에 있어서, 상기 복수의 통신 어댑터들의 어드레스를 상기 복수의 통신 어댑터들중 제1통신 어댑터의 어드레스로 동일하게 설정하는 단계와, 상기 제1 통신 어댑터를 제외한 나머지 통신 어댑터들의 패킷 필터링 모드를 모든 패킷들을 받아들일 수 있는 모드로 설정하는 단계와, 상기 복수의 통신 어댑터들 중 하나의 통신 어댑터를 통해 통신하는 중 상기 통신의 연결이 끊어지면 다른 통신 어댑터로 스위칭하는 단계를 포함하는 것이다. One feature of the present invention for solving the above problems is a method for switching the communication adapter in a system environment equipped with a plurality of communication adapters, the address of the plurality of communication adapters the plurality of communication adapters Setting the same as the address of the first communication adapter, setting the packet filtering mode of the other communication adapters except the first communication adapter to a mode that can accept all packets, and the plurality of communication adapters. Switching to another communication adapter when the communication is disconnected while communicating through one of the communication adapters.

본 발명의 다른 특징은, 복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 방법에 있어서, 상기 복수의 통신 어댑터중 유선랜 통신 어댑터의 MAC 어드레스를 무선랜 통신 어댑터의 MAC 어드레스로 설정하고, 상기 유선랜 통신 어댑터의 패킷 필터링 모드를 모든 패킷들을 받아들일 수 있도록 하는 프로미스큐어스 모드로 설정하는 단계와, 상기 유선랜 통신 어댑터를 통해 통신하는 중 상기 유선랜 통신의 연결이 끊어지면 무선랜 정보를 이용하여 상기 무선랜 통신 어댑터로 스위칭하는 단계를 포함하는 것이다. Another aspect of the present invention provides a method for switching the communication adapter in a system environment equipped with a plurality of communication adapters, wherein the MAC address of the wired LAN communication adapter of the plurality of communication adapters is set to the MAC address of the WLAN communication adapter Setting the packet filtering mode of the wired LAN communication adapter to a promiscuous mode to accept all packets; and when the wired LAN communication is disconnected while communicating through the wired LAN communication adapter, wireless LAN information is transmitted. And switching to the WLAN communication adapter using the wireless LAN.

상기 스위칭 방법은 상기 무선랜 통신 어댑터를 통해 통신하는 중 상기 유선랜 통신 연결을 알리는 이벤트가 발생하면 상기 유선랜 정보를 이용하여 상기 유선랜 통신 어댑터로 스위칭하는 단계를 더 포함하는 것이 바람직하다. The switching method may further include switching to the wired LAN communication adapter using the wired LAN information when an event indicating the wired LAN communication connection occurs while communicating through the wireless LAN communication adapter.

상기 스위칭 방법은 상기 무선랜 통신 어댑터의 패킷 필터링 모드를 직접, 멀티캐스트, 브로드캐스트 모드로 설정하는 단계를 더 포함하는 것이 바람직하다.The switching method may further include setting a packet filtering mode of the WLAN communication adapter to a direct, multicast or broadcast mode.

상기 스위칭 방법은, 상기 유선랜 통신 어댑터가 연결되어 있지 않으면 상기 무선랜 정보를 가상 어댑터에 매핑하는 단계를 더 포함하는 것이 바람직하다. The switching method may further include mapping the WLAN information to a virtual adapter when the wired LAN communication adapter is not connected.

본 발명의 다른 특징은, 복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 장치에 있어서, 상기 복수의 통신 어댑터들의 어드레스를 상기 복수의 통신 어댑터들중 제1통신 어댑터의 어드레스로 동일하게 설정하고, 상기 제1 통신 어댑터를 제외한 나머지 통신 어댑터들의 패킷 필터링 모드를 모든 패킷들을 받아들일 수 있는 모드로 설정하는 가상 어댑터와, 상기 복수의 통신 어댑터들 중 하나의 통신 어댑터를 통해 통신하는 중 상기 통신의 연결이 끊어지면 다른 통신 어댑터로 스위칭하는 가상 프로토콜 드라이버를 포함하는 것이다. Another aspect of the present invention provides a device for switching the communication adapter in a system environment equipped with a plurality of communication adapters, wherein the address of the plurality of communication adapters is the same as the address of the first communication adapter of the plurality of communication adapters. And setting the packet filtering mode of the other communication adapters except the first communication adapter to a mode that can accept all packets, and communicating through one communication adapter of the plurality of communication adapters. And a virtual protocol driver that switches to another communication adapter when the communication is disconnected.

본 발명의 또 다른 특징은, 복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 장치에 있어서, 상기 복수의 통신 어댑터중 유선랜 통신 어댑터의 MAC 어드레스를 무선랜 통신 어댑터의 MAC 어드레스로 설정하고, 상기 유선랜 통신 어댑터의 패킷 필터링 모드를 모든 패킷들을 받아들일 수 있도록 하는 프로미스큐어스 모드로 설정하는 가상 어댑터와, 상기 유선랜 통신 어댑터를 통해 통신하는 중 상기 유선랜 통신의 연결이 끊어지면 무선랜 정보를 이용하여 상기 무선랜 통신 어댑터로 스위칭하는 가상 프로토콜 드라이버를 포함하는 것이다. In still another aspect of the present invention, in the apparatus for switching the communication adapter in a system environment equipped with a plurality of communication adapters, the MAC address of the wired LAN communication adapter of the plurality of communication adapters is set as the MAC address of the WLAN communication adapter. And a virtual adapter that sets a packet filtering mode of the wired LAN communication adapter to a promiscuous mode to accept all packets, and when the wired LAN communication is disconnected while communicating through the wired LAN communication adapter, It includes a virtual protocol driver for switching to the WLAN communication adapter using the information.

상기 가상 프로토콜 드라이버는, 연결 또는 비연결 이벤트가 발생할 때마다 그 연결 또는 비연결 상태를 제공하는 링크 상태 검출부를 포함하는 것이 바람직하다. The virtual protocol driver preferably includes a link state detector for providing a connected or disconnected state whenever a connected or disconnected event occurs.

상기 가상 프로토콜 드라이버는 상기 링크 상태 검출부에 의해 제공되는 정보를 기초로 통신하기 위한 최적 어댑터를 결정하는 최적 어댑터 선택부를 더 포함하는 것이 바람직하다. Preferably, the virtual protocol driver further includes an optimal adapter selecting unit that determines an optimal adapter for communication based on the information provided by the link state detection unit.

물리적 어댑터로부터 수신되는 패킷은 무조건 가상 어댑터로 보내지고, 물리적 어댑터로 전송할 패킷은 상기 결정된 최적 어댑터로 보내지는 것이 바람직하다. Packets received from the physical adapter are unconditionally sent to the virtual adapter, and packets to be sent to the physical adapter are preferably sent to the determined optimal adapter.

이제, 첨부된 도면들을 참조하여 본 발명을 상세히 설명한다.The present invention will now be described in detail with reference to the accompanying drawings.

도 3은 본 발명에 따른 네트워크 드라이버 시스템의 구성도이다. 3 is a configuration diagram of a network driver system according to the present invention.

본 발명에 따르면, 실제 미니포트 드라이버는 오직 인터미디엇 드라이버에 속해 있는 가상 프로토콜 드라이버 하고만 서로 바인딩을 맺게 된다. 그리고, 가상 미니포트 드라이버를 하나 생성하고 이 프로토콜 드라이버와 미니포트 드라이버 또한 서로 바인딩을 맺는다. 이후 TCP/IP와 같은 실제 프로토콜 드라이버들은 가상 미니포트 드라이버와만 바인딩을 맺게 된다. 이와 같이 함으로써, 실제 프로토콜 드라이버들은 가상 드라이버에서 알려주는 정보만으로 연결 상태를 알게 되고 이를 통해서 모든 패킷들을 주고 받게 된다. According to the present invention, the actual miniport driver only binds to the virtual protocol driver belonging to the intermediate driver. Then, we create a virtual miniport driver, and the protocol driver and miniport driver also bind to each other. Real protocol drivers such as TCP / IP then bind only to the virtual miniport driver. By doing this, the real protocol driver knows the connection status only by information informed by the virtual driver and sends and receives all packets.

도 3을 참조하면, 네트워크 드라이버 시스템은 본 발명에 따른 인터미디엇 드라이버(400)와, NIC(350,360), 802.3 미니포트(330), 802.11 미니포트(340), LAN 프로토콜 드라이버(310), NDIS(320)를 포함한다.Referring to FIG. 3, the network driver system includes an intermediate driver 400, a NIC 350, 360, an 802.3 miniport 330, an 802.11 miniport 340, a LAN protocol driver 310, and an NDIS. 320.

본 발명에 따른 인터미디엇 드라이버는 아래단에 가상 프로토콜 드라이버와, 윗단에 가상 미니포트 드라이버를 포함한다. 즉, 인터미디엇 드라이버의 아랫단인 가상 프로토콜 드라이버와 미니포트와의 관계에서, 인터미디엇 드라이버는 프로토콜 드라이버의 기능을 하고, 인터미디엇 드라이버의 윗단인 가상 미니포트 드라이버와 LAN 프로토콜 드라이버와의 관계에서, 인터미디엇 드라이버는 미니포트 드라이버의 기능을 한다. 이 가상 미니포트 드라이버는 상위 실제 프로토콜 드라이버가 보기에는 하나의 어댑터로 인식이 된다. 이와 같이 가상 어댑터를 만드는 이유는 실제 물리적 어댑터의 커넥션이 끊기는 정보 때문에 TCP/IP 프로토콜 드라이버의 세션도 바로 끊겨 버리기 때문이다. 이러한 정보를 본 발명에 따른 인터미디엇 드라이버 단에서 필터링(Filtering) 하게 되면 실제 프로토콜 드라이버 단으로 물리적 어댑터(Physical Adapter)와의 연결이 끊기는 정보의 전달을 막을 수 있다. 즉, TCP의 세션이 계속 유지가 되는 것이다.The intermediate driver according to the present invention includes a virtual protocol driver at the bottom and a virtual miniport driver at the top. In other words, the relationship between the virtual protocol driver and the miniport driver at the bottom of the intermediate driver acts as a protocol driver, and the relationship between the virtual miniport driver and the LAN protocol driver at the top of the intermediate driver. The intermediate driver acts as a miniport driver. This virtual miniport driver is seen as one adapter by the upper real protocol driver. The reason for creating the virtual adapter is that the session of the TCP / IP protocol driver is immediately disconnected because of the disconnection information of the actual physical adapter. If the information is filtered by the intermediate driver stage according to the present invention, it is possible to prevent transmission of information that is disconnected from the physical adapter to the actual protocol driver stage. In other words, the TCP session is maintained.

또한, 실제 물리적 어댑터가 두 개이면 계속 각각의 어댑터에 따른 IP 어드레스를 부여해야 하기 때문에 통신의 연속성 부여가 안된다. 이런 이유로 그 밑 단에 물리적 어댑터 두 개와 연동하는 가상 어댑터로서 인터미디엇 드라이버를 사용한다. 이렇게 되면 통신의 프로토콜 드라이버 이상의 어플리케이션 계층은 가상 어댑터 하나와 통신을 하게 되므로, 가상 드라이버 아랫단의 물리적 어댑터가 어떤 상태인지, 실제로 어떤 물리적 어댑터와 통신을 하고 있는지 모르는 상태가 된다. Also, if there are two actual physical adapters, the continuity of communication cannot be given because the IP addresses must be continuously assigned to each adapter. For this reason, the intermediate driver is used as a virtual adapter at the bottom of the two physical adapters. In this case, the application layer above the protocol driver of communication communicates with one virtual adapter, so that it is in a state where the physical adapter under the virtual driver is in a state and the physical adapter is actually communicating with the virtual adapter.

따라서, 본 발명에 따른 인터미디엇 드라이버 단에서 마음대로 패킷의 라우팅을 바꿀 수도 있다. 따라서, 인터미디엇 드라이버 단에서는 그때 그 때 상황에 맞추어서 통신 미디어를 선택하고 패킷을 그 물리적 어댑터로 보내고 받고 하게 되면 된다. 이렇게 하면 유선/무선(Wired/Wireless Communication)의 스위칭이 상위 실제 프로토콜 드라이버에게는 영향을 미치지 않고, 거의 실시간으로 이루어질 수 있다. Therefore, the intermediate driver stage according to the present invention may change the routing of packets at will. Therefore, the intermediate driver stage then selects the communication media according to the situation and sends and receives packets to and from the physical adapter. This allows switching of wired / wireless communication to occur in near real time without affecting the higher real protocol drivers.

도 4를 참조하면, 본 발명에 따른 인터미디엇 드라이버(400)는 가상 미니포트 드라이버(410)와, 가상 프로토콜 드라이버(420)를 포함한다. Referring to FIG. 4, the intermediate driver 400 according to the present invention includes a virtual miniport driver 410 and a virtual protocol driver 420.

가상 미니포트 드라이버(410)는 가상 어댑터 제어부(411)를 포함한다. The virtual miniport driver 410 includes a virtual adapter controller 411.

가상 어댑터 제어부(411)는 가상 어댑터를 생성하여 프로토콜 드라이버 이상에서 이 가상 어댑터에 바인딩해서 사용하도록 제어한다. The virtual adapter control unit 411 generates a virtual adapter and controls to bind and use the virtual adapter in the protocol driver or higher.

또한 가상 프로토콜 드라이버가 하위 물리적 어댑터와 바인딩시에 각 어댑터의 속성을 세팅하고자 할 때 가상 어댑터 제어부는 밑에 바인딩한 물리적 어댑터들을 모두 동일한 어드레스로 세팅한다. 세팅시에 패킷 필터링 값을 유선랜인 경우에 모든 패킷들을 받아들일 수 있도록 하는 프로미스큐어스(Promiscous) 모드로, 그리고 무선랜인 경우에 일반적으로 사용되는 직접/멀티캐스트/브로드캐스트(Direct | Multicast | BroadCast) 모드로 세팅을 한다. 이후 가상 어댑터의 MAC 어드레스는 무선랜의 MAC 어드레스로 통일해서 사용한다. 즉, 유선랜의 주소로는 모든 패킷을 받아들이는 프로미스큐어스(promiscuous) 모드로 설정하므로 실질적으로는 선랜의 경우에는 주소를 설정하지 않는 것과 같고, 무선랜의 주소로는 일반적인 모드를 사용하므로 그대로 무선랜의 일반적인 MAC 주소 사용방식에 따른다. 그러므로, 윗단의 프로토콜 드라이버에게는 유선랜 및 무선랜에 대해서 어드레스가 무선랜의 MAC 어드레스 하나만 설정된 것처럼 보이게 된다. In addition, when the virtual protocol driver attempts to set the properties of each adapter at the time of binding with the lower physical adapter, the virtual adapter controller sets all the physical adapters bound below to the same address. When setting the packet filtering value in Promiscous mode, which allows all packets to be accepted in the case of wired LAN, and direct / multicast / broadcast (Direct | Multicast) which is generally used in the case of WLAN. BroadCast) mode. Thereafter, the MAC address of the virtual adapter is used as the MAC address of the WLAN. That is, in the wired LAN address is set to the Promise Cure's (promiscuous) mode accepts all packets, so substantially in the case of oil seonraen has the same as not setting the address, since a WLAN address using a normal mode As it is, the general MAC address of the WLAN is used. Therefore, it appears to the protocol driver in the upper stage that only one MAC address of the WLAN is set for the wired LAN and the WLAN.

동일한 MAC 주소를 사용함으로써 허브의 ARP 테이블을 갱신하기 위한 ARP 패 킷을 재전송해야 하는 것을 피할 수 있다. 또한, DHCP를 이용한 동적 주소 할당시에 MAC 주소가 DHCP 프로토콜의 하나의 옵션으로 사용하여 PC를 구분하는 역할을 하는데, 이때도 동일한 MAC 주소를 사용함으로써 DHCP 서버가 동일한 PC로 인식하므로 DHCP 환경에서도 아무 문제 없이 사용이 가능하다. 끝으로 차세대 인터넷인 IPv6(Internet Protocol Version 6)에서 MAC 주소를 사용하여 Syateless Auto Configulation을 통해 IPv6 어드레스를 할당할 때도 MAC 주소가 동일하므로 아무 문제없이 주소 할당이 가능해진다. By using the same MAC address, you can avoid having to retransmit ARP packets to update the ARP table of the hub. In addition, MAC address is used as one option of DHCP protocol when assigning dynamic addresses using DHCP. In this case, DHCP server is recognized as the same PC by using the same MAC address. It can be used without any problem. Finally, the next-generation Internet Protocol Version 6 (IPv6) uses MAC addresses to assign IPv6 addresses using Syateless Auto Configulation, so the MAC addresses are the same.

또한, 가상 어댑터 제어부(411)는 상위 프로토콜 드라이버들에서 정보를 요청할 때 최적 어댑터 선택부(421)에 의해 선정된 최적 어댑터 정보를 상위 프로토콜 드라이버로 리포트한다. 아래단의 링크 상태 정보를 선별하여 프로토콜 드라이버들에게 알려 주도록 한다. 또한, 가상 어댑터 제어부(411)는 패킷을 보낼 때는 최적 어댑터 선택부(421)에 의해 선택된 최적 어댑터의 바인딩 핸들을 통해서 보낸다. In addition, the virtual adapter controller 411 reports the optimal adapter information selected by the optimal adapter selector 421 to the higher protocol driver when information is requested from the higher protocol drivers. Select the link status information below to inform the protocol drivers. In addition, the virtual adapter controller 411 sends the packet through the binding handle of the optimal adapter selected by the optimal adapter selector 421.

가상 프로토콜 드라이버(420)는 최적 어댑터 선택부(421), 링크 상태 검출부(422), 어댑터 바인딩부(423)를 포함한다. The virtual protocol driver 420 includes an optimal adapter selecting unit 421, a link state detector 422, and an adapter binding unit 423.

최적 어댑터 선택부(421)는 링크 상태 검출부(422)에서 전달받은 유/무선 랜의 연결 정보에 따라서 어떤 물리적 어댑터로 전송/수신할 것인지를 결정한다. The optimal adapter selector 421 determines which physical adapter to transmit / receive according to the connection information of the wired / wireless LAN received from the link state detector 422.

링크 상태 검출부(422)는 유/무선랜의 링크 상태 정보를 검출하여 이를 최적 어댑터 선택부(421)로 제공한다. The link state detector 422 detects link state information of the wired / wireless LAN and provides the link state information to the optimum adapter selector 421.

어댑터 바인딩부(423)는 인에이블된 모든 어댑터를 바인딩하여 바인딩 리스트(424)를 생성한다. 그리고, 각각의 바인딩된 물리적 어댑터들은 이를 제어하기 위한 바인딩 핸들을 지닌다. 본 발명에서는 유선랜을 위해 802.3 바인딩 핸들(425)과 무선랜을 위한 802.11 바인딩 핸들(426)을 포함한다. 바인딩 핸들은 가상 어댑터가 아래 단의 미니포트 드라이버들과 통신을 하는데 이용되는 키와 유사한 역할을 한다. 또한, 어댑터 바인딩부(423)는 패킷을 수신하면 무조건 가상 어댑터로 올려보내준다. The adapter binding unit 423 binds all enabled adapters to generate a binding list 424. Each bound physical adapter then has a binding handle to control it. The present invention includes an 802.3 binding handle 425 and an 802.11 binding handle 426 for a wireless LAN. The binding handle is similar to the key used by the virtual adapter to communicate with the miniport drivers below. In addition, the adapter binding unit 423 unconditionally receives the packet and sends it to the virtual adapter.

도 5a 및 도 5b는 본 발명에 따라 DriverEntry 함수로서 인터미디엇 드라이버의 초기화 과정을 나타낸다. DriverEntry는 ARP를 위한 패킷풀과 버퍼풀을 할당하며, 미니포트 드라이버를 위한 드라이버 핸들, 프로토콜 드라이버를 위한 프로토콜 핸들을 등록하며, 드라이버 핸들과 프로토콜 핸들과의 어소시에이션을 NDIS에게 통보한다. 도 5a에는 본 발명에 따라 인티미디엇 드라이버를 초기화하는 과정 중심으로 도시하였다. 5A and 5B illustrate an initialization process of an intermediate driver as a DriverEntry function according to the present invention. DriverEntry allocates packet pools and buffer pools for ARP, registers driver handles for miniport drivers, protocol handles for protocol drivers, and informs NDIS of associations between driver handles and protocol handles. Figure 5a is shown in the center of the process of initializing the intermediate driver in accordance with the present invention.

도 5a를 참조하면, 인터미디엇 드라이버의 초기화는 오퍼레이팅 시스템에 의해 인터미디엇 드라이버의 엔트리 포인트로서 기능하는 DriverEntry 함수를 호출하는 것에 의해 시작된다(510). Referring to FIG. 5A, the initialization of the intermediate driver is initiated by the operating system by invoking a DriverEntry function that serves as the entry point of the intermediate driver (510).

다음, 가상 어댑터 제어부(411)는 802.3 어댑터를 바인딩한다(520). 가상 어댑터 자료구조는 물리적 어댑터와 바인딩을 맺을 때마다 물리적 어댑터의 정보를 저장하기 위해서 생성되는 자료구조이다. 그러므로, 이 자료구조는 실제 물리적 어댑터의 수만큼 생성된다. 가상 어댑터 자료구조는 상위의 실제 프로토콜 드라이버들이 이 자료구조에 바인딩하여 동작을 하게 된다. 이와 같은 물리적 어댑터와의 바인딩에 의해 물리적 어댑터의 바인딩 핸들을 얻게 된다. Next, the virtual adapter controller 411 binds the 802.3 adapter (520). A virtual adapter data structure is a data structure that is created to store information about a physical adapter whenever a binding is made with a physical adapter. Therefore, this data structure is generated by the number of actual physical adapters. The virtual adapter data structure is bound to this data structure by the actual real protocol drivers. This binding with the physical adapter results in the binding handle of the physical adapter.

바인딩핸들 자료구조는 상위의 가상 어댑터 자료구조에서 하위 다수의 자료구조의 리스트를 저장하는 역할을 담당한다. The binding handle data structure is responsible for storing a list of the lower number of data structures in the upper virtual adapter data structure.

이러한 802.3 어댑터 바인딩 과정에서 802.3 유선랜 어댑터에 대한 패킷 필터링 속성을 프로미스큐어스(promiscuous) 모드로 설정한다(521). Promiscuous 모드로 놓여진 어댑터에서는 그것으로 들어오는 어떠한 패킷이라도 받아들일 수 있도록 설정된다. In the 802.3 adapter binding process, the packet filtering property of the 802.3 wired LAN adapter is set to a promiscuous mode (521). Adapters placed in promiscuous mode are configured to accept any incoming packet.

그리고, 유선랜 어댑터의 어드레스는 802.11 레이어 2 무선랜 어댑터의 MAC 어드레스로 설정한다(522).The address of the wired LAN adapter is set to the MAC address of the 802.11 layer 2 WLAN adapter (522).

이와 같이 설정을 하게 되면, 802.3 유선랜 어댑터는 802.11 무선랜 어댑터의 MAC 어드레스를 가지게 되며, 유선랜상으로 들어오는 모든 패킷들을 수신할 수 있게 된다. In this configuration, the 802.3 wired LAN adapter has the MAC address of the 802.11 wireless LAN adapter and can receive all the packets coming into the wired LAN.

다음, 가상 어댑터 제어부(411)는 802.11 어댑터를 바인딩한다(530).Next, the virtual adapter controller 411 binds the 802.11 adapter (530).

802.11 무선랜 어댑터에 대한 패킷 필터링 속성을 다이렉트(direct), 멀티캐스트(multicast), 브로드캐스트(broadcast) 모드로 설정한다(531). 이것은 일반적으로 사용되는 모드 설정 방법이다. The packet filtering property for the 802.11 WLAN adapter is set to direct, multicast, and broadcast modes (531). This is a commonly used mode setting method.

다이렉트(Direct) 모드는 특정한 머신으로 향하는 프레임이 그 목적지 어드레스로 지정된 목적지 머신의 물리적 어드레스(이더넷 어드레스)를 갖는다. 그러 한 물리적 어드레스를 가진 머신은 프레임을 받아들일 것이고, 다른 모든 머신들은 이것을 받아들이지 않는다. Direct mode has the physical address (Ethernet address) of the destination machine where a frame destined for a particular machine is specified as its destination address. The machine with such a physical address will accept the frame, and all other machines will not accept it.

특정한 머신들의 셋(set)으로 전송되는 프레임이 그 목적지 어드레스로서 지정된 멀티캐스트 어드레스를 가진 멀티캐스트 프레임으로 전송되는 형태가 멀티캐스트 모드(Multicast)이다. 이러한 머신들의 셋이 멀티캐스트 그룹을 구성한다. 따라서, 이 멀티캐스트 그룹의 일원인 어떠한 머신이라도 멀티캐스트 목적지 어드레스를 가진 프레임을 받아들일 수 있다. 비록 NIC가 멀티캐스트 그룹의 일부가 아니어도 NIC는 모든 멀티캐스트 프레임을 받아들이는 멀티캐스트 모드로 프로그램적으로 설정될 수 있다. Multicast mode is a form in which a frame transmitted to a set of specific machines is transmitted in a multicast frame having a multicast address designated as its destination address. These sets of machines make up a multicast group. Thus, any machine that is a member of this multicast group can accept a frame with a multicast destination address. Although the NIC is not part of a multicast group, the NIC can be set programmatically in a multicast mode that accepts all multicast frames.

네트워크상의 모든 머신으로 전송되는 프레임이 목적지 어드레스를 0xffffff로 하여 네트워상에 브로드캐스트되는 형태가 브로드캐스트(Broadcast) 모드이다. 0xffffff 가 프레임에 대한 브로드캐스트 어드레스로 여겨진다. 이러한 브로드캐스트 모드로 놓여진 NIC는 이 목적지 어드레스를 가진 프레임들을 받아들인다. 대체로 모든 NIC들은 브로드캐스트 프레임들을 받아들일 수 있도록 구성된다. The broadcast mode is a form in which frames transmitted to all machines on the network are broadcast on the network with a destination address of 0xffffff. 0xffffff is considered the broadcast address for the frame. The NIC placed in this broadcast mode accepts frames with this destination address. Typically all NICs are configured to accept broadcast frames.

이와 같이 물리적 어댑터의 수 만큼 바인딩을 수행하고 나서, 가상 어댑터 제어부(411)는 가상 어댑터를 생성하고(540), 가상 어댑터를 초기화한다(550). 가상 어댑터의 초기화는, 바인딩 핸들 자료구조를 할당하여 바인딩 핸들 정보를 저장하고, 바인딩 핸들 리스트를 생성하고, 생성된 바인딩 핸들 리스트에 바인딩 어댑터의 포인트 정보와 바인딩 핸들 정보를 저장하는 것 등을 포함한다. After binding as many physical adapters as described above, the virtual adapter controller 411 generates a virtual adapter (540) and initializes the virtual adapter (550). Initializing a virtual adapter includes allocating a binding handle data structure to store binding handle information, generating a binding handle list, storing the binding adapter's point information and binding handle information in the generated binding handle list, and the like. .

다음, 가상 프로토콜 드라이버(420)로 커넥션 상태를 쿼리한다(560)Next, the connection status is queried by the virtual protocol driver 420 (560).

이러한 쿼리를 수신한 가상 프로토콜 드라이버(420)의 연결 상태 검출부(422)는 802.3 커넥션 상태 정보와 802.11 커넥션 상태 정보를 검출한다(570). 그리고, 검출된 커넥션 상태 정보를 최적 어댑터 선택부(421)로 전달한다. The connection state detection unit 422 of the virtual protocol driver 420 receiving the query detects the 802.3 connection state information and the 802.11 connection state information (570). The detected connection state information is transmitted to the optimum adapter selector 421.

그러면, 최적 어댑터 선택부(421)는 최적 어댑터를 선택한다(580). 유선랜과 무선랜이 모두 연결되어 있는 경우에는 유선랜이 더 빠르기 때문에 유선랜을 최적 어댑터로 선택하고, 유선랜이 연결되어있지 않은 경우에은 무선랜을 최적 어댑터로 선택한다. 그리고, 이와 같이 선택된 최적 어댑터에 관한 정보를 가상 어댑터 제어부(411)로 전송한다. Then, the optimal adapter selector 421 selects an optimal adapter (580). When both wired LAN and wireless LAN are connected, the wired LAN is faster, so choose the optimal adapter for the wired LAN. If the wired LAN is not connected, select the optimal adapter for the wireless LAN. Then, the information on the optimal adapter selected in this way is transmitted to the virtual adapter control unit 411.

이를 수신한 가상 어댑터 제어부(411)는 선택된 최적 어댑터의 정보를 매핑한다(590). 이와 같은 동작이 완료되면 통신할 수 있는 준비 상태가 된다. Upon receiving this, the virtual adapter controller 411 maps information of the selected optimal adapter (590). When this operation is completed, it is ready to communicate.

도 6은 본 발명에 따라 커넥트시의 동작 흐름도이다. 6 is a flowchart illustrating operations at the time of connecting according to the present invention.

먼저, 802.3의 유선랜이나 802.11의 무선랜이 모두 디스커넥트 상태(601)에서 커넥트 이벤트가 발생하면(602), 가상 미니포트 드라이버는 상위 프로토콜 드라이버로 커넥션 상태를 보고한다(603). 상위 프로토콜 드라이버는 커넥션된 어댑터가 802.3 인지를 판단하고(604), 802.3인 경우에는 802.3과 통신을 한다(607). 802.3과 통신을 하던 중 802.11 커넥트 이벤트가 발생한 경우에는(605), 802.11 의 커넥션 정보를 업데이트한다(606).First, when a connect event occurs in the disconnected state 601 in both the wired LAN of 802.3 and the wireless LAN of 802.11 (602), the virtual miniport driver reports the connection state to the upper protocol driver (603). The upper protocol driver determines whether the connected adapter is 802.3 (604), and in case of 802.3, communicates with 802.3 (607). If an 802.11 connect event occurs while communicating with 802.3 (605), the connection information of 802.11 is updated (606).

다음, 커넥션된 어댑터가 802.3 이 아니고 802.11 인 경우에는, 가상 어댑터에 802.11 정보를 매핑한다(608). 그리고, 802.11과 통신을 수행한다(609).Next, if the connected adapter is 802.11 instead of 802.3, 802.11 information is mapped to the virtual adapter (608). In operation 609, communication with 802.11 is performed.

802.11과 통신 수행중 802.3 커넥트 이벤트가 발생한 경우에는(610), 가상 어댑터에 802.3 정보를 매핑한다(611). 그리고나서 802.3과 통신을 수행한다(612). If an 802.3 connect event occurs during communication with 802.11 (610), 802.3 information is mapped to the virtual adapter (611). It then communicates with 802.3 (612).

도 7은 본 발명에 따라 디스커넥트시의 동작 흐름도이다. 7 is a flowchart illustrating operations during disconnection according to the present invention.

도 7을 참조하면, 802.3과 통신을 수행하다가(701), 디스커넥트 이벤트가 발생하면(702), 가상 어댑터 제어부는 디스커넥션된 어댑터가 802.3 인지를 판단하고(703), 802.3인 경우에는 가상 어댑터에 802.11 정보를 리매핑한다(704). 그리고, 802.11과 통신을 수행한다(705).Referring to FIG. 7, while communicating with 802.3 (701), when a disconnect event occurs (702), the virtual adapter controller determines whether the disconnected adapter is 802.3 (703), and if it is 802.3, the virtual adapter. Remapping 802.11 information at 704. Then, communication with 802.11 is performed (705).

디스커넥션된 어댑터가 802.3이 아닌 경우에는 802.3의 커넥션 상태를 확인한다(706).If the disconnected adapter is not 802.3, the connection state of the 802.3 is checked (706).

확인 결과 커넥트 상태이면 802.3과 통신을 수행한다(707).If the check result is the connected state, the communication with 802.3 is performed (707).

확인 결과 디스커넥트 상태이면, 상위 프로토콜 드라이버로 디스커넥션 상태를 보고하고(708), 가상 어댑터에 802.3 정보를 리매핑한다(709). 이와 같이 되면, 모두 디스커넥트된 상태가 된다. If the result of the check is disconnected, the disconnection status is reported to the upper protocol driver (708), and 802.3 information is remapped to the virtual adapter (709). In this case, all of them are disconnected.

이상 설명한 바와 같은 스위칭 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 스위칭 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다. The switching method as described above can also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. In addition, functional programs, codes, and code segments for implementing the switching method can be easily inferred by programmers in the art to which the present invention belongs.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

이상과 같은 본 발명에 의하면, 이기종 간의 통신 매체를 하나의 유일한 가상 어댑터로 만들고, 만든 가상 어댑터에 하나의 IP 어드레스를 부여하고, 유선/무선랜 모두 연결되어 있을 경우 속도가 빠른 유선랜을 사용하고, 만약 유선랜의 연결이 끊기면 자동으로 이를 감지하여, 무선랜의 패킷들의 라우팅을 바꾸어 줌으로써, TCP/IP와 같은 프로토콜 드라이버들이 보기에는 하나의 가상 어댑터만이 보이게 되므로, IP Address와 Port 주소의 Pair에서 IP 어드레스가 바뀌지 않기 때문에 계속 세션을 유지할 수가 있게 된다. According to the present invention as described above, to make the communication medium between heterogeneous to one unique virtual adapter, to give a virtual adapter made one IP address, when both wired / wireless LAN is connected to use a fast wired LAN, If the wired LAN is disconnected, it automatically detects this and changes the routing of packets in the WLAN, so that only one virtual adapter is visible to protocol drivers such as TCP / IP. Since the address does not change, the session can continue.                     

즉, 유선으로 연결된 상태에서 무선으로 핸드오프하고자 할 때 동일한 IP 어드레스로 TCP/IP의 세션이 끊기지 않고 거의 심리스(Seamless)한 핸드오프가 가능하다. 또한, 동일한 Mac 어드레스를 사용하므로 DHCP로 할당받은 IP 어드레스도 통신의 연속성이 보장된다. 또한, IPv6 환경에서도 Mac 어드레스를 가지고 IPv6 어드레스를 생성하는 무상태 자동 구성(Stateless Auto Configuration) 환경에서도 심리스한 통신이 가능하다.In other words, when handing off wirelessly in a wired connection, a seamless seamless handoff is possible without disconnecting a session of TCP / IP with the same IP address. Also, since the same Mac address is used, IP address assigned by DHCP ensures continuity of communication. In addition, even in an IPv6 environment, seamless communication is possible even in a stateless auto configuration environment in which an IPv6 address is generated with a Mac address.

Claims (10)

복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 방법에 있어서,A method for switching the communication adapter in a system environment equipped with a plurality of communication adapters, 상기 복수의 통신 어댑터들의 어드레스를 상기 복수의 통신 어댑터들중 제1통신 어댑터의 어드레스로 동일하게 설정하는 단계와,Setting an address of the plurality of communication adapters equally to an address of a first communication adapter of the plurality of communication adapters; 상기 제1 통신 어댑터를 제외한 나머지 통신 어댑터들의 패킷 필터링 모드를 모든 패킷들을 받아들일 수 있는 모드로 설정하는 단계와,Setting a packet filtering mode of the other communication adapters except the first communication adapter to a mode that can accept all packets; 상기 복수의 통신 어댑터들 중 하나의 통신 어댑터를 통해 통신하는 중 상기 통신의 연결이 끊어지면 다른 통신 어댑터로 스위칭하는 단계를 포함하는 것을 특징으로 하는 스위칭 방법.And switching to another communication adapter when the communication is disconnected while communicating through one of the plurality of communication adapters. 복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 방법에 있어서,A method for switching the communication adapter in a system environment equipped with a plurality of communication adapters, 상기 복수의 통신 어댑터중 유선랜 통신 어댑터의 MAC 어드레스를 무선랜 통신 어댑터의 MAC 어드레스로 설정하고, 상기 유선랜 통신 어댑터의 패킷 필터링 모드를 모든 패킷들을 받아들일 수 있도록 하는 프로미스큐어스 모드로 설정하는 단계와,Setting the MAC address of the wired LAN communication adapter among the plurality of communication adapters to the MAC address of the wireless LAN communication adapter, and setting the packet filtering mode of the wired LAN communication adapter to a promiscuous mode that can accept all packets. Wow, 상기 유선랜 통신 어댑터를 통해 통신하는 중 상기 유선랜 통신의 연결이 끊어지면 무선랜 정보를 이용하여 상기 무선랜 통신 어댑터로 스위칭하는 단계를 포함하는 것을 특징으로 하는 스위칭 방법.And switching to the wireless LAN communication adapter using wireless LAN information when the wired LAN communication is disconnected while communicating through the wired LAN communication adapter. 제2항에 있어서,The method of claim 2, 상기 무선랜 통신 어댑터를 통해 통신하는 중 상기 유선랜 통신 연결을 알리는 이벤트가 발생하면 상기 유선랜 정보를 이용하여 상기 유선랜 통신 어댑터로 스위칭하는 단계를 더 포함하는 것을 특징으로 하는 스위칭 방법.And switching to the wired LAN communication adapter using the wired LAN information when an event informing the wired LAN communication connection occurs while communicating through the wireless LAN communication adapter. 제2항에 있어서,The method of claim 2, 상기 무선랜 통신 어댑터의 패킷 필터링 모드를 직접, 멀티캐스트, 브로드캐스트 모드로 설정하는 단계를 더 포함하는 것을 특징으로 하는 스위칭 방법.And setting the packet filtering mode of the WLAN communication adapter to a direct, multicast, or broadcast mode. 제2항에 있어서,The method of claim 2, 상기 유선랜 통신 어댑터가 연결되어 있지 않으면 상기 무선랜 정보를 가상 어댑터에 매핑하는 단계를 더 포함하는 것을 특징으로 하는 스위칭 방법.And if the wired LAN communication adapter is not connected, mapping the wireless LAN information to a virtual adapter. 복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 장치에 있어서,An apparatus for switching the communication adapter in a system environment equipped with a plurality of communication adapters, 상기 복수의 통신 어댑터들의 어드레스를 상기 복수의 통신 어댑터들중 제1통신 어댑터의 어드레스로 동일하게 설정하고, 상기 제1 통신 어댑터를 제외한 나머지 통신 어댑터들의 패킷 필터링 모드를 모든 패킷들을 받아들일 수 있는 모드로 설정하는 가상 어댑터와,A mode in which the addresses of the plurality of communication adapters are set to be the same as the address of the first communication adapter among the plurality of communication adapters, and the packet filtering mode of the other communication adapters except the first communication adapter can accept all packets. The virtual adapter to set to 상기 복수의 통신 어댑터들 중 하나의 통신 어댑터를 통해 통신하는 중 상기 통신의 연결이 끊어지면 다른 통신 어댑터로 스위칭하는 가상 프로토콜 드라이버를 포함하는 것을 특징으로 하는 스위칭 장치.And a virtual protocol driver for switching to another communication adapter when the communication is disconnected while communicating through one of the plurality of communication adapters. 복수의 통신 어댑터가 장착된 시스템 환경에서 상기 통신 어댑터를 스위칭하는 장치에 있어서,An apparatus for switching the communication adapter in a system environment equipped with a plurality of communication adapters, 상기 복수의 통신 어댑터중 유선랜 통신 어댑터의 MAC 어드레스를 무선랜 통신 어댑터의 MAC 어드레스로 설정하고, 상기 유선랜 통신 어댑터의 패킷 필터링 모드를 모든 패킷들을 받아들일 수 있도록 하는 프로미스큐어스 모드로 설정하는 가상 어댑터와,A virtual address setting the MAC address of the wired LAN communication adapter of the plurality of communication adapters to the MAC address of the wireless LAN communication adapter, and setting the packet filtering mode of the wired LAN communication adapter to a promiscuous mode that can accept all packets. With the adapter, 상기 유선랜 통신 어댑터를 통해 통신하는 중 상기 유선랜 통신의 연결이 끊어지면 무선랜 정보를 이용하여 상기 무선랜 통신 어댑터로 스위칭하는 가상 프로토콜 드라이버를 포함하는 것을 특징으로 하는 스위칭 장치. And a virtual protocol driver for switching to the wireless LAN communication adapter using wireless LAN information when the connection of the wired LAN communication is lost while communicating through the wired LAN communication adapter. 제7항에 있어서,The method of claim 7, wherein 상기 가상 프로토콜 드라이버는,The virtual protocol driver, 연결 또는 비연결 이벤트가 발생할 때마다 그 연결 또는 비연결 상태를 제공하는 링크 상태 검출부를 포함하는 것을 특징으로 하는 스위칭 장치. And a link state detector for providing a connected or disconnected state whenever a connected or disconnected event occurs. 제8항에 있어서,The method of claim 8, 상기 가상 프로토콜 드라이버는,The virtual protocol driver, 상기 링크 상태 검출부에 의해 제공되는 정보를 기초로 통신하기 위한 최적 어댑터를 결정하는 최적 어댑터 선택부를 더 포함하는 것을 특징으로 하는 스위칭 장치. And an optimum adapter selection unit for determining an optimum adapter for communication based on the information provided by the link state detection unit. 제9항에 있어서,The method of claim 9, 물리적 어댑터로부터 수신되는 패킷은 무조건 가상 어댑터로 보내지고, 물리적 어댑터로 전송할 패킷은 상기 결정된 최적 어댑터로 보내지는 것을 특징으로 하는 스위칭 장치. And a packet received from a physical adapter is unconditionally sent to the virtual adapter, and a packet to be sent to the physical adapter is sent to the determined optimal adapter.
KR1020040102304A 2004-09-14 2004-12-07 Communication adapter switching method and apparatus KR100667783B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/222,746 US20060056446A1 (en) 2004-09-14 2005-09-12 Communication adapter switching method and apparatus
NL1029947A NL1029947C2 (en) 2004-09-14 2005-09-13 Communication adapter switching method in network drive system, involves setting addresses of several adapters to same address of one adapter and switching one adapter to another, when disconnected during communication

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040073299 2004-09-14
KR20040073299 2004-09-14

Publications (2)

Publication Number Publication Date
KR20060024758A KR20060024758A (en) 2006-03-17
KR100667783B1 true KR100667783B1 (en) 2007-01-11

Family

ID=36748101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040102304A KR100667783B1 (en) 2004-09-14 2004-12-07 Communication adapter switching method and apparatus

Country Status (2)

Country Link
KR (1) KR100667783B1 (en)
CN (1) CN100423503C (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100736933B1 (en) * 2004-09-14 2007-07-10 삼성전자주식회사 Method for controlling mobile terminal
US8422513B2 (en) * 2008-05-23 2013-04-16 Nokia Siemens Networks Oy Providing station context and mobility in a wireless local area network having a split MAC architecture
US9276768B2 (en) 2008-05-23 2016-03-01 Nokia Solutions And Networks Oy Providing station context and mobility in a wireless local area network having a split MAC architecture
CN101895524B (en) * 2009-05-21 2014-06-25 Tcl集团股份有限公司 LINUX-based method and network equipment enabling application program to access Internet
KR101996896B1 (en) * 2014-12-29 2019-07-05 삼성전자주식회사 Method for sharing resource using a virtual device driver and electronic device thereof
CN107306432A (en) * 2016-04-18 2017-10-31 中兴通讯股份有限公司 A kind of method for switching network, device and terminal

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314525B1 (en) * 1997-05-13 2001-11-06 3Com Corporation Means for allowing two or more network interface controller cards to appear as one card to an operating system
US7177952B1 (en) * 1999-10-01 2007-02-13 Nortel Networks Limited Method and system for switching between two network access technologies without interrupting active network applications
CN1249956C (en) * 2002-10-18 2006-04-05 华为技术有限公司 Method for virtual Ethernet adapter card
KR20040067665A (en) * 2003-01-24 2004-07-30 삼성전자주식회사 Docking station for a portable computer

Also Published As

Publication number Publication date
CN1764139A (en) 2006-04-26
CN100423503C (en) 2008-10-01
KR20060024758A (en) 2006-03-17

Similar Documents

Publication Publication Date Title
US20060056446A1 (en) Communication adapter switching method and apparatus
US7620015B2 (en) Method and system for seamless handover of mobile devices in heterogeneous networks
US9825802B2 (en) Management of seamless handover between different communication systems in an IP dual-mode terminal
KR100743304B1 (en) Method and system for switching between two network access technologies without interrupting active network applications
EP1932320B1 (en) Method, apparatus and system for maintaining mobility resistant ip tunnels using a mobile router
KR100989488B1 (en) Intelligent load balancing and failover of network traffic
US6732186B1 (en) High availability networking with quad trunking failover
JP4651692B2 (en) Intelligent load balancing and failover of network traffic
US20090063706A1 (en) Combined Layer 2 Virtual MAC Address with Layer 3 IP Address Routing
JP4840943B2 (en) Intelligent load balancing and failover of network traffic
US6778540B1 (en) Facility for forwarding data from a network adapter to a router partition without internet protocol (ip) processing
US20040078600A1 (en) Seamless IP mobility across security boundaries
JP5486526B2 (en) Control device, control system, control method, and control program
US20220239629A1 (en) Business service providing method and system, and remote acceleration gateway
KR20000076845A (en) Multiple arp functionality for an ip data transmission system
US8514808B2 (en) Method and function for maintaining mapping between media independent handover functions and transport addresses
CN100423503C (en) Communication adapter switching method and apparatus
EP1988679B1 (en) A new flow based Layer 2 handover mechanism for mobile node with multi network interfaces
US20080170567A1 (en) Packet switch apparatus and method thereof
US6970920B2 (en) Methods, systems and computer program products for communicating with unconfigured network devices on remote networks
US20090285206A1 (en) Network system and data transfer method
US8250186B2 (en) Method and system of smart detection and recovery
EP1451705B1 (en) A mechanism to create pinhole for existing session in a middlebox
EP1381202B1 (en) Apparatuses and computer software for providing seamless IP mobility across security boundaries
JP2006025341A (en) Neighbor discovery substitution system and method for vlan, and router device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee