본 발명의 주요목적은 데이터 전송과정에서 이용가능한 접속방식을 자동으로 선택하여 데이터 전송을 진행할 수 있어 이용자가 편리하게 이용할 수 있는 네트워크 장치들 사이의 데이터 전송방법을 제공하는 것이다.
상기의 목적을 달성하기 위하여, 본 발명은 하기와 같은 기술방안을 제공한다.
네트워크 장치들 사이의 데이터 전송방법에 있어서, 상기 네트워크 장치에 터널제어모듈을 설치하고, 상기 데이터 전송방법은,
1) 동일한 네트워크에서의 데이터 발송의 소스장치와 데이터 발송의 타깃장치의 터널제어모듈이 장치의 동작상황에 근거하여 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송 터널로 캡슐화하고, 소스장치와 타깃장치 사이의 데이터 전송 터널을 구축하는 단계;
2) 상기 소스장치의 터널제어모듈이 데이터 전송 터널에서의 일 유형 매체의 네트워크 접속방식을 선택하여 데이터 전송을 진행하는 단계; 및
3) 상기 데이터 전송과정에 다른 유형매체의 네트워크 접속방식으로 스위칭될 경우, 상기 소스장치의 터널제어모듈이 새로운 매체의 네트워크 접속을 확립하여 데이터 전송을 계속 진행하는 단계를 포함하는 것을 특징으로 하는 데이터 전송방법을 포함한다.
여기서, 상기 단계 1)은,
11) 동일한 네트워크에서 데이터 발송의 소스장치와 데이터 발송의 타깃장치의 터널제어모듈은 네트워크 멀티캐스트 주소에 의하여 상대방이 이용가능한 상이한 매체의 네트워크 접속방식을 취득하는 단계;
12) 상기 소스장치의 터널제어모듈은 이용가능한 일 유형 매체의 네트워크 접속방식을 선택하도록 소스장치를 제어하여 타깃장치와 네트워크 프로토콜 접속을 확립하는 단계;
13) 상기 소스장치의 터널제어모듈은 단계 12)에서 확립한 네트워크 프로토콜 접속을 통해 타깃장치에 데이터 전송 터널 구축 요구를 발송하는 단계;
14) 상기 타깃장치의 터널제어모듈은 자체의 동작상황에 근거하여 데이터 전송 터널 구축을 허용할 것인지 여부를 결정한 후 상기 소스장치의 데이터 전송 터널 구축 응답을 리턴하고, 만일 상기 타깃장치가 데이터 전송 터널 구축을 허용하면, 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속 방식을 데이터 전송 터널로 캡슐화하는 단계; 및
15) 상기 소스장치의 터널제어모듈은 상기 타깃장치에서 리턴된 데이터 전송 터널 구축 응답에 근거하여 상기 타깃장치가 데이터 전송 터널 구축을 허용하는지 여부를 판단하고, 만일 허용한다고 판단되었을 경우, 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송 터널로 캡슐화하여 데이터 전송 터널 구축이 성공되며, 그렇지 아니할 경우 데이터 전송 터널 구축이 실패되는 단계;를 포함할 수 있다.
또한, 상기 단계 1)은,
11a) 상기 소스장치의 터널제어모듈은 소스장치와 타깃장치를 소스 장치가 위치한 네트워크의 네트워크 프로토콜을 이용하도록 제어하여 네트워크 프로토콜 접속을 확립하는 단계;
12a) 상기 소스장치의 터널제어모듈은 단계 11a)에서 확립한 네트워크 프로토콜 접속을 통해 타깃장치에 데이터 전송 터널 구축 요구를 발송하는 단계로서, 이 요구에는 소스 장치가 이용가능한 상이한 매체의 네트워크 접속방식을 포함하는 단계;
13a) 상기 타깃장치의 터널제어모듈은 자체의 동작상황에 근거하여 데이터 전송 터널 구축을 허용할 것인지 여부를 결정하는 단계로서, 만일 데이터 전송 터널 구축을 허용하는 경우, 자체와 상대방 전체가 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송 터널로 캡슐화하고, 타겟장치로 이용가능한 상이한 매체의 네트워크 접속방식을 포함하고, 상기 타깃장치는 소스장치에 데이터 전송 터널 구축 응답을 리턴하는 단계; 및
14b) 상기 소스장치의 터널제어모듈은 상기 타깃장치에서 리턴된 데이터 전송 터널 구축 응답에 근거하여 타깃장치가 데이터 전송 터널 구축을 허용하는지 여부를 판단하는 단계로서, 만일 허용한다고 판단되었을 경우, 자체가 이용가능한 상이한 매체의 네트워크 접속방식과 응답에 포함되어 있는 상대방이 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송 터널로 캡슐화하여 데이터 전송 터널 구축이 성공되며, 그렇지 아니한 경우 데이터 전송 터널 구축이 실패되는 단계;를 포함할 수 있다.
소스장치의 터널제어모듈은 소스장치에서의 데이터를 전송하려는 응용프로그램이 발송한 터널 구축 명령에 근거하여 소스장치와 타깃장치의 네트워크 프로토콜 접속을 확립하고, 이 접속을 통해 타깃장치에 데이터 전송 터널 구축 요구를 발송할 수 있으며,
소스장치의 터널제어모듈은 타깃장치에서 리턴된 데이터 전송 터널 구축 응답을 수신한 후, 소스장치에서의 데이터를 전송하려는 응용프로그램에 터널 구축 성공 여부의 결과를 리턴한다.
상기의 응용프로그램에서 발송하는 터널 구축 명령에는 적어도 타깃장치의 장치식별자를 포함한다.
상기 소스장치의 터널제어모듈에서 발송하는 터널 구축 요구는 소스장치의 장치식별자, 타깃장치의 장치식별자, 희망하는 터널 지속시간을 더 포함하며,
상기 타깃장치의 터널제어모듈에서 리턴하는 터널 구축 응답은 터널 구축 성공 또는 실패 정보를 더 포함하고; 만일 터널 구축 성공인 경우 이 터널 구축 응답은 자체의 장치식별자, 소스장치의 식별자, 터널 유효시간을 더 포함한다.
상기 데이터 전송 터널의 캡슐화방법에는 소스장치와 타깃장치의 터널제어모듈이 각각 위치한 장치에서 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식 정보를 터널 정보 테이블에 각각 써넣는 단계를 포함할 수 있다.
상기 데이터 전송 터널의 캡슐화방법에는 터널제어모듈이 이번의 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식 정보를 생성(generate)하고, 또한 본 장치 중에 터널정보 테이블이 이미 존재하고 있는지 여부를 판단하며, 만일 존재하지 않는 경우 터널정보 테이블을 생성하고, 또 생성된 정보를 터널정보 테이블에 추가하며; 만일 이미 존재하고 있는 경우 생성된 정보를 직접 터널정보 테이블에 추가하는 단계를 포함할 수 있다.
상기 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식 정보는 터널식별자, 이 터널 장치들 사이에서 공동으로 지원되는 네트워크 프로토콜 및 접속주소정보를 포함한다.
상기 소스장치가 복수 개의 타깃장치와 데이터 전송을 하는 경우, 이 소스장치는 터널제어모듈을 통해 복수 개의 타깃장치와 각각 데이터 전송 터널을 구축할 수 있다.
상기 단계 2)는,
21) 소스장치의 터널제어모듈은 이미 구축되어 있는 데이터 전송 터널과 대응되는 이용가능 상태의 활성화 네트워크 프로토콜 접속 존재 여부를 판단하고, 만일 존재하면 단계 22)를 실행하고, 만일 존재하지 않으면 이미 구축되어 있는 데이터 전송 터널에서 하나의 네트워크 프로토콜을 선택하여 새로운 네트워크 프로토콜 접속 확립을 시도하며, 접속확립이 성공된 후 단계 22)를 실행하며, 접속확립이 실패되면 다음(next)의 공동으로 지원하는 네트워크 프로토콜을 선택하여 접속 확립을 시도하며, 만일 전부의 매칭 프로토콜을 시도한 후 여전히 접속 확립이 실패되면, 소스장치에 데이터 전송 터널을 이용할 수 없음을 보고하고 흐름을 종료하는 단계; 및
22) 터널제어모듈은 발송대기의 데이터를 현재 이용가능상태의 활성화의 네트워크 프로토콜 접속의 작업 대기열에 가입시켜 타깃장치에 데이터를 발송하는 단계를 포함할 수 있다.
단계 22)에서 발송대기의 데이터를 현재 이용가능한 네트워크 프로토콜 접속의 작업 대기열에 가입시키는 단계는,
22a) 터널제어모듈은 이 이용가능한 접속에 있어서 발송대기의 데이터량 및 이 네트워크 접속의 데이터 발송 평균속도를 판단하고, 만일 발송대기의 데이터량이 초과되었거나 또는 네트워크 접속에서 발송하는 데이터의 평균속도가 너무 늦으면 단계 22b)를 실행하고, 그렇지 않으면 발송대기의 데이터를 현재 이용가능한 네트워크 프로토콜 접속의 작업 대기열에 가입시키는 단계; 및
22b) 터널제어모듈은 현재 이용가능한 기타 네트워크 프로토콜 접속이 존재하는지 여부를 찾고, 만일 존재하면 단계 22a)로 리턴하고, 그렇지 않으면 데이터 전송 터널에서 소스장치가 타깃과 공동으로 매칭되는 네트워크 프로토콜을 선택하여, 새로운 네트워크 프로토콜 접속 확립을 시도하며, 만일 확립 성공인 경우, 발송대기의 데이터를 새로 확립한 네트워크 프로토콜 접속의 작업 대기열에 가입시키고, 그렇지 아니한 경우 발송대기의 데이터를 현재 이용가능한 네트워크 프로토콜 접속의 작업 대기열에 가입시는 단계를 포함할 수 있다.
소스장치의 터널제어모듈은 소스장치의 데이터를 전송하려는 응용프로그램에서 발송한 데이터 전송명령을 수신한 후 단계 21)를 실행하며; 소스장치의 터널제어모듈은 데이터 발송 완료 또는 발송 실패 후, 데이터를 전송하려는 응용프로그램에 데이터 발송 성공 또는 실패 결과를 리턴한다.
상기 응용프로그램에서 발송한 데이터 전송명령은 적어도, 터널식별자, 타깃장치의 식별자, 타깃응용프로그램의 식별자와 발송하려는 소스데이터를 포함하며,
상기 발송대기의 데이터에 적어도 소스장치의 장치식별자, 데이터를 발송하는 응용프로그램의 식별자, 타깃장치의 식별자, 타깃응용프로그램의 식별자 및 발송하려는 소스데이터를 포함하고;
또한 타깃장치의 터널제어모듈은 데이터를 수신한 후, 데이터에서의 타깃응용프로그램의 식별자에 근거하여, 데이터를 타깃장치의 타깃프로그램에 디스패치한다.
상기 단계 3)은,
데이터 전송과정에서 데이터를 전송하는 네트워크 프로토콜 접속이 끊어지면, 소스장치의 터널제어모듈은 데이터 전송 터널에서 새로운 매체의 네트워크 접속방식을 선택하여 네트워크 프로토콜 접속을 확립하며; 만일 확립 성공인 경우 새로운 네트워크 프로토콜 접속을 이용하여 데이터를 계속 전송하는 동시에 소스장치에 통지하며, 그렇지 아니한 경우에는 소스장치에 데이터 발송 오류와 데이터 전송 터널을 이용할 수 없음을 통지하는 단계를 포함할 수 있다.
상기 방법은 데이터 전송 터널의 휴지기간에 소스장치의 터널제어모듈은 소스장치에 터널 검측 요구를 발송하는 단계; 타깃장치의 터널제어모듈은 이 검측 요구를 수신한 후, 자체의 동작상황에 의하여 소스장치에 터널 검측 응답을 리턴하는 단계; 및 만일 소스장치가 터널 응답을 수신하지 못하였거나 터널을 이용할 수 없다는 터널응답을 수신하였을 경우, 소스장치의 터널제어모듈이 이 터널을 삭제하는 단계를 더 포함할 수 있다.
상기 터널 검측 요구는 적어도 소스장치가 희망하는 터널 가용 시간 (available time)을 포함하며, 상기 터널 검측 응답에는 적어도 터널 가용 시간을 포함하며, 만일 소스장치가 수신한 터널 응답에서 터널 가용 시간이 0이면 이 터널을 이용할 수 없다.
상기 방법은 소스장치 또는 타깃장치의 터널제어모듈이 데이터 전송 완료 후, 이 데이터 전송 터널을 삭제하는 동시에 상대방 장치에 터널 닫기 통지를 발송하며, 상대방 장치는 이 닫기 통지를 수신한 후, 이 데이터 전송 터널을 삭제하는 것을 더 포함한다.
상기 터널제어모듈은 응용프로그램에서 발송하는 터널 닫기(close) 명령을 수신한 후, 상대방 장치에 터널 닫기 통지를 발송하며; 터널제어모듈은 이 데이터 전송 터널을 삭제한 후, 터널 닫기 명령을 발송한 응용프로그램에 터널 닫기 성공 또는 실패 결과를 리턴한다.
상기 기술방안으로부터 알 수 있는바, 본 발명의 이러한 네트워크 장치들 사이의 데이터 전송방법은 네트워크 장치에 장치들 사이에 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송 터널로 캡슐화하고, 터널제어모듈로 터널에서 일 유형 네트워크 접속방식을 이용하여 데이터 전송을 진행하도록 제어한다. 만일 이 접속이 끊어지면, 이 터널제어모듈은 이 터널에서 다른 유형 네트워크 접속방식을 선택하여 접속을 자동으로 확립하여 데이터 전송을 진행한다. 이로 인하여 본 발명은 전송과정 중 만일 접속이 끊어지면, 이용가능한 접속방식에 자동으로 스위칭하며 데이터 전송을 계속 진행하여 이용자들을 편리하게 하였다.
본 발명의 목적, 기술방안 및 장점을 더욱 명확하게 이해할 수 있도록 하기 위하여 도면을 참조하여 실시예를 통하여 본 발명을 보다 상세하게 설명한다.
본 발명의 이러한 네트워크에서의 장치들 사이의 데이터 전송방법은 네트워크에 터널제어모듈을 설치하고, 동일한 네트워크에서 데이터 발송 소스장치와 데이터발송 타깃장치의 터널제어모듈은 장치의 동작상황에 따라 소스장치와 타깃장치 전체가 이용가능한 상이한 매체(media)의 네트워크 접속방식을 데이터 전송 터널로 전부 캡슐화(encapsulation)하여 소스장치와 타깃장치 사이의 데이터 전송 터널을 구축하며 데이터 전송 터널에서의 일 유형 매체의 네트워크 접속방식으로 데이터 전송을 진행하며, 데이터 전송과정에서 다른 유형의 매체의 네트워크 접속방식으로 스위칭하는 경우, 소스장치의 터널제어모듈은 새로운 매체의 네트워크 접속을 확립하여 데이터 전송을 계속 진행한다.
본 발명에서는 소스장치와 타깃장치 전체가 사용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송 터널로 캡슐화하고, 소스장치와 타깃장치 사이의 데 이터 전송 터널을 구축하는 두 가지 구현방식이 존재한다.
그 중 제1방식은 하기의 단계를 포함한다:
11) 동일한 네트워크에서 데이터 발송의 소스장치와 데이터 발송의 타깃장치의 터널제어모듈은 네트워크 멀티캐스트 주소에 의하여 상대방이 이용가능한 상이한 매체의 네트워크 접속방식을 취득하는 단계;
12) 소스장치와 타깃장치는 이용가능한 일 유형 매체의 네트워크 접속방식을 선택하여 네트워크 프로토콜 접속을 확립하는 단계;
13) 소스장치의 터널제어모듈은 단계 12)에서 확립한 네트워크 프로토콜 접속을 통해 타깃장치에 데이터 전송 터널 구축 요구를 발송하는 단계;
14) 타깃장치의 터널제어모듈은 자체의 동작상황에 근거하여 데이터 전송 터널 구축을 허용할 것인지 여부를 결정한 후 소스장치에 데이터 전송터널 구축 응답을 리턴하고, 만일 타깃장치가 데이터 전송터널 구축을 허용하면, 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식은 데이터 전송 터널로 캡슐화하는 단계; 및
15) 소스장치의 터널제어모듈은 타깃장치가 리턴한 데이터 전송 터널 구축 응답에 근거하여 타깃장치가 데이터 전송터널 구축 허용 여부를 판단하고, 만일 허용으로 판단되었을 경우, 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송 터널로 캡슐화하여 데이터 전송 터널 구축이 성공되며, 그렇지 아니한 경우 데이터 전송터널 구축이 실패되는 단계.
제2방식은 하기의 단계를 포함한다:
11a) 소스장치와 타깃장치는 그가 위치하고 있는 네트워크의 네트워크 프로토콜을 이용하여 네트워크 프로토콜 접속을 확립하는 단계;
12a) 소스장치의 터널제어모듈은 단계 11a)에서 확립한 네트워크 프로토콜 접속을 통해 타깃장치에 데이터 전송 터널 구축 요구를 발송하는 단계로서, 이 요구에는 자체가 이용가능한 상이한 매체의 네트워크 접속방식을 포함하고;
13a) 타깃장치의 터널제어모듈은 자체의 동작상황에 근거하여 데이터 전송 터널 구축을 허용할 것인지 여부를 결정하며, 만일 데이터 전송 터널 구축을 허용하는 경우, 자체와 상대방이 모두 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송 터널로 캡슐화하며, 이 응답에는 자체가 이용가능한 상이한 매체의 네트워크 접속방식을 포함하고;
상기 타깃장치는 소스장치에 데이터 전송 터널 구축 응답을 리턴하는 단계;
14b) 소스장치의 터널제어모듈은 타깃장치에서 리턴한 데이터 전송 터널 구축 응답에 근거하여 타깃장치의 데이터 전송 터널 구축 허용 여부를 판단하고, 만일 허용하는 경우, 자체가 이용가능한 상이한 매체의 네트워크 접속방식과 응답에 포함된 상대방이 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송 터널로 캡슐화하여, 데이터 전송 터널의 구축이 성공되며, 만일 그렇지 아니한 경우 데이터 전송 터널의 구축이 실패되는 단계.
상기의 두 가지 구현방식에서, 데이터 전송터널을 캡슐화하는 방법으로서, 소스장치와 타깃장치의 터널제어모듈은 자체가 위치한 장치에서 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식 정보를 터널정보 테이블에 써넣으며, 이 터널정보 테이블은 그에 따르는 찾기(next search)에 이용될 수 있는 방법이다. 보다 구체적으로 말하면, 터널제어모듈은 이번의 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식 정보를 생성하고, 또한 본 장치 중에 터널정보 테이블이 이미 존재하고 있는지 여부를 판단하며, 만일 존재하지 않는 경우, 터널정보 테이블을 구축하며, 생성된 정보를 터널정보 테이블에 추가하며, 만일 이미 존재하고 있을 경우, 생성된 정보를 직접 터널정보 테이블에 추가한다. 그중 소스장치와 목표장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식 정보는 터널식별자, 이 터널 장치들 사이에 공동으로 지원하는 네트워크 프로토콜, 접속주소정보를 포함할 수 있다.
이하 설명하는 본 발명의 실시예는 상술한 제1 유형의 구현방식으로서, 즉 동일한 네트워크에서 데이터발송의 소스장치와 데이터발송의 타깃장치의 터널제어모듈이 네트워크 멀티 캐스팅 주소를 획득하는 것을 통해 상대방의 이용가능한 상이한 매체의 네트워크 접속방식을 취득하는 것이다.
도 1을 참조하면, 도 1은 본 발명의 바람직한 실시예의 데이터 전송과정의 표시도이다. 이 흐름(flow)은 하기의 단계를 포함한다:
단계(101), 데이터 전송을 요구하는 소스장치의 응용 프로그램은 본 장치중의 터널제어모듈에 터널구축명령을 발송하며, 이 터널 구축명령에는 타깃장치의 장치 식별자를 포함한다.
단계(102), 소스장치의 터널제어모듈은 소스장치와 타깃장치의 예를 들면 TCP접속과 같은 네트워크접속을 확립하며, 터널구축명령중의 타깃장치 식별자에 근 거하여 타깃장치에 터널 구축 요구 메세지를 발송한다. 이 터널구축요구 메세지에는 소스장치의 장치 식별자, 타깃장치의 장치 식별자 및 희망하는 터널지속시간을 포함한다.
단계(103), 타깃장치의 터널제어모듈은 자체의 동작상황에 따라 테이터전송터널 구축을 허용할 것인지 여부를 결정한 후, 소스장치에 데이터 전송 터널구축 응답메세지를 리턴하는데, 만일 타깃장치가 데이터 전송 터널 구축을 허용하는 경우, 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송터널로 캡슐화, 즉 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크접속방식 정보를 터널정보 테이블에 써 넣는다. 터널구축 응답메세지에는 터널구축 성공 또는 실패 정보를 포함하고, 만일 터널 구축이 성공되었다면, 이 터널구축 응답에는 자체의 장치식별자, 소스장치식별자 및 터널유효시간을 포함한다.
단계(104), 소스장치의 터널제어모듈은 타깃장치가 리턴한 데이터 전송터널구축 응답에 근거하여 타깃장치의 데이터 전송터널 구축 허용 여부를 판단하며, 만일 타깃장치가 데이터 전송터널 구축을 허용한다고 판단되는 경우, 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식을 데이터 전송터널로 캡슐화, 즉 소스장치와 타깃장치 전체가 이용가능한 상이한 매체의 네트워크 접속방식정보를 터널정보 테이블에 써넣으며, 데이터 전송터널 구축이 성공된다. 만일 그렇지 아니한 경우 데이터 전송터널구축은 실패된다. 소스장치의 터널제어모듈은 소스장치의 응용 프로그램에 터널구축 결과를 리턴한다.
단계(105), 소스장치의 응용 프로그램은 소스장치 터널제어모듈에 데이터 전송명령을 발송하며, 이 데이터전송명령에 터널 식별자, 타깃장치의 식별자, 타깃응용 프로그램의 식별자 및 발송될 소스데이터를 포함한다.
단계(106), 소스장치의 터널제어모듈은 데이터 전송명령을 수신한 후, 이 명령에 근거하여 데이터 전송터널에서 일 유형의 매체의 네트워크 접속방식을 선택하며, 발송대기 데이터를 타깃장치의 터널제어모듈에 발송한다. 그 중 발송대기 데이터에는 적어도 소스장치의 장치식별자, 데이터를 발송하는 응용 프로그램식별자, 타깃장치식별자, 타깃응용 프로그램 식별자 및 발송될 소스데이터를 포함한다.
단계(107), 타깃장치의 터널제어모듈은 데이터를 수신한 후, 데이터 중의 타깃응용 프로그램의 식별자에 근거하여, 데이터를 타깃장치 중의 타깃프로그램에 디스패치(dispatch) 발송한다.
단계(108), 소스장치의 터널제어모듈은 데이터 전송완료 또는 발송실패후, 소스장치의 응용 프로그램에 데이터 발송 성공 또는 실패결과를 리턴한다.
단계(109), 데이터 전송터널의 휴지(idle) 기간에 소스장치의 터널제어모듈은 타깃장치에 터널검측 요구를 발송하며, 이 터널검측 요구 중에는 소스장치가 희망하는 터널 가용 시간을 포함한다.
단계(110), 타깃장치의 터널제어모듈은 이 검측요구를 수신한 후, 자체 동작상황에 근거하여 소스장치에 터널검측 응답을 리턴하며, 이 터널 검측 응답 중에는 터널가용 시간을 포함한다. 만일 터널 이용이 불가능시 타깃장치의 터널제어모듈은 터널 검측응답 중에 포함된 터널 가용 시간을 0으로 한다.
만일 소스장치가 터널응답을 수신하지 못하였거나 터널 이용이 불가능하다는 터널응답을 수신하였을 경우, 소스장치의 터널제어모듈은 이 터널을 삭제한다.
단계(111), 소스장치의 응용 프로그램은 데이터전송을 완료한 후, 소스장치의 터널제어모듈에 터널 닫기 명령을 발송하며, 이 명령 중에는 닫기는 터널의 식별자를 포함한다.
단계(112), 소스장치의 터널제어모듈은 터널 닫기 명령을 수신한 후, 그 중의 터널식별자에 근거하여 이 데이터 전송터널을 삭제하며, 타깃장치에 터널 닫기통지를 발송한다. 타깃장치는 이 닫기 통지를 수신한 후 이 데이터 전송터널을 삭제한다.
단계(113), 소스장치의 터널제어모듈은 이 데이터전송터널을 삭제한 후, 터널 닫기 명령을 발송한 응용 프로그램에 터널 닫기 성공 또는 실패결과를 리턴한다.
본 실시예에서, 단계(102)~ 단계 (104)는 데이터전송터널 구축과정이고, 이 과정 중 소스장치의 터널제어모듈의 구체적인 처리과정을 도 2에 도시하였다. 도 2를 참조하면, 도 1에서 표시한 실시예 중에서 소스장치의 터널제어모듈이 데이터전송터널을 구축하는 흐름도이고, 이 흐름에는 하기의 단계를 포함한다:
단계(201), 소스장치의 터널제어모듈은 터널구축명령을 수신한 후, 소스장치와 목표장치의 데이터전송터널이 이미 존재하고 있는지 여부를 판단하며, 만일 존재하는 경우 단계(207)를 실행하며, 그렇지 아니한 경우 단계(202)를 실행한다.
단계(202), 소스장치의 터널제어모듈은 소스장치와 타깃장치를 제어하여 이 용가능한 일 유형 매체의 네트워크 접속방식을 선택하여 네트워크 프로토콜 접속을 확립한다. 예를 들면, TCP접속을 확립한다.
단계(203), 확립한 TCP접속 성공 여부를 판단하여, 만일 성공하였을 경우 단계(204)를 실행하며, 그렇지 아니한 경우 단계(208)를 실행한다.
단계(204), 소스장치의 터널제어모듈은 TCP접속을 통해 타깃장치에 터널구축요구를 발송한다.
단계(205), 터널구축성공 응답 수신여부를 판단하여, 만일 수신하였을 경우, 단계(206)를 실행하며, 그렇지 아니한 경우 단계(208)를 실행한다.
단계(206), 구축성공의 터널에 터널 식별자를 분배하며, 이 터널정보테이블에 대응되는 정보를 추가한다.
단계(207), 응용 프로그램에 터널구축결과를 리턴하며, 터널 구축 성공정보 및 터널 식별자를 응용 프로그램에 통지하며, 터널구축과정을 종료한다.
단계(208), 응용 프로그램에 터널구축결과를 리턴하며, 터널 구축 실패정보를 응용 프로그램에 보고하며, 터널 구축과정을 종료한다.
도 1에서 도시한 실시예에서, 단계(105)~ 단계(108)는 데이터 전송 과정이고, 이 과정 중 소스장치의 터널제어모듈의 구체적인 처리과정은 도 3을 참조한다. 도 3은 도 1에서 표시한 실시예 중 소스장치 터널제어모듈이 데이터 전송을 진행하는 흐름도이며, 이 흐름에는 하기의 단계를 포함한다:
단계(301), 소스장치의 터널제어모듈은 데이터 전송명령을 수신한 후, 명령중의 터널 식별자와 대응되는 터널의 존재 여부를 판단하며, 만일 존재하는 경우 단계 (302)를 실행하며, 그렇지 아니한 경우 단계 (310)를 실행한다.
단계(302), 현재 이용가능한 네트워크 프로토콜접속의 존재 여부를 판단하며, 만일 존재하는 경우 단계 (303)를 실행하며, 그렇지 아니한 경우 단계(305)를 실행한다.
단계(303), 이용가능한 네트워크 프로토콜 접속 상에서 발송대기의 데이터량 및 이 네트워크 프로토콜 접속에서 발송되는 데이터의 평균속도의 크기를 판단하며, 만일 발송대기의 데이터량이 초과되었거나 또는 이 네트워크접속의 데이터 발송 평균속도가 너무 낮으면, 단계(304)를 실행하고 그렇지 아니한 경우 단계(307)를 실행한다.
단계(304), 현재에 이용가능한 기타 네트워크 프로토콜 접속이 존재하고있는지 여부를 찾아 판단하며, 만일 존재하는 경우 단계(303)에 리턴하며, 그렇지 아니한 경우 단계(305)를 실행한다.
단계(305), 데이터 전송터널 중에서 소스장치가 타깃과 공동으로 매칭되는 프로토콜을 선택하여 새로운 네트워크 프로토콜 접속의 확립을 시도한다.
단계(306), 새로운 네트워크 프로토콜 접속을 확립함에 있어서 확립 성공 여부를 판단하며, 만일 성공인 경우, 단계(307)를 실행하고, 그렇지 아니한 경우 단계(310)를 실행한다.
단계(307), 발송대기의 데이터를 현재 이용가능한 네트워크 프로토콜 접속의 작업(task) 대기열에 가입시켜 데이터를 발송한다.
단계(308), 발송 성공 여부를 판단하며, 만일 성공인 경우 단계(309)를 실행 하고, 그렇지 아니한 경우 단계(310)를 실행한다.
단계(309), 응용 프로그램에 데이터 발송결과를 리턴하며, 데이터 발송 성공을 보고한 후 데이터 전송과정을 종료한다.
단계(310), 응용 프로그램에 데이터 발송결과를 리턴하며, 데이터 발송 오류 및 오류 원인을 통지하며, 데이터 전송과정을 종료한다.
상기 과정에서 만일 발송대기의 데이터량이 초과되었거나 네트워크 접속의 데이터 발송 평균속도가 너무 낮아서, 네트워크 프로토콜 접속을 재확립하였지만 성공되지 못하였을 경우, 기존의 네트워크 프로토콜 접속을 이용하여 데이터 전송을 진행해도 된다. 단지 전송 효율이 비교적 낮을 뿐이다.
만일 데이터 전송과정에서 전송데이터의 네트워크 프로토콜 접속이 외부원인으로 끊어졌을 경우, 소스장치의 터널제어모듈은 데이터 전송 터널에서 새로운 매체의 네트워크 접속방식을 선택하여, 네트워크 프로토콜 접속을 확립하며, 만일 확립에 성공하면 새로운 네트워크 프로토콜접속을 이용하여 데이터를 계속 전송하고 소스장치에 통지하며, 만일 그렇지 아니한 경우 소스장치에 데이터 발송 오류 및 데이터 전송터널을 이용할 수 없음을 통지한다.
본 실시예에서 터널제어모듈은 터널구축 인터페이스, 데이터 전송 인터페이스, 터널검측 인터페이스, 터널닫기 인터페이스를 설치할 수 있다. 소스장치는 터널제어모듈의 이러한 인터페이스를 호출하여 터널 구축, 데이터 전송, 터널 검측 및 터널 닫기 등의 기능을 구현할 수 있다.
만일 본 실시예에서 소스장치가 복수 개의 타깃장치와 데이터 전송을 진행하 려면, 이 소스장치는 각각 터널제어모듈과 복수 개의 타깃장치들을 통해 데이터 전송터널을 구축하는데, 데이터 전송터널 구축 방법은 동일하나, 데이터 전송터널이 이용하는 포트는 상이하다. 예를 들면, 소스장치는 하나의 블루투스 포트만 포함하고, 만일 이 포트가 이미 타깃장치(1)의 하나의 데이터 전송터널에 캡슐화되어 있는 경우, 이 포트는 소스장치와 타깃장치(2)의 데이터 전송터널에 캡슐화될 수 없다.
만일 도 1에서 표시한 실시예에서, 소스장치는 노트북(1), 타깃장치는 노트북(2)이고, 이들은 동일한 WLAN에 위치하고 있다. 노트북(1)과 노트북(2)에 터널제어모듈(1)과 터널제어모듈(2)이 설치되어 있으며, 모두 WLAN과 블루투스 네트워크 어댑터를 구비하고 있다. 노트북(1)의 WLAN 네트워크 어댑터에 TCP/IP 프로토콜을 업로드(upload)하였으며, IP주소가 192.168.0.1이고, 청취포트가 1234이며, 노트북(1)의 블루투스 네트워크 어댑터에 시리얼 포트(serial port) Profile을 업로드하였으며, 시뮬레이션 후의 시리얼 포트번호가 시리얼 포트2이다. 노트북(2)의 WLAN 네트워크 어댑터에 TCP/IP프로토콜을 업로드하였으며, IP 주소가 192.168.0.2이고, 청취포트가 2345이며, 노트북(2)의 블루투스네트워크 어댑터에 serial port Profile를 업로드하였으며, 시뮬레이션한 시리얼 포트번호가 시리얼 포트3이다. 노트북(1)의 응용 프로그램 Fc는 파일전송기능을 구현하는 클라이언트(client-side)이며, 노트북(2)의 응용 프로그램 Fs는 파일전송기능을 구현하는 서버이다.
노트북(1)과 노트북(2)는 각각 포트 1234와 포트 2345를 청취하여, 상대방이 네트워크 멀티캐스트 주소에 발송하는 자체가 이용가능한 상이한 매체의 네트워크 접속방식을 청취한다.
이러한 노트북(1)의 Fc에서 노트북(2)의 Fs에 데이터를 전송하는 과정은 하기한 바와 같다.
1. 노트북(1)의 Fc는 터널제어모듈(1)에 터널구축명령을 발송한다.
2. 터널제어모듈(1)은 노트북(1)과 노트북(2) 전체가 이용가능한 일 유형의 매체의 네트워크접속방식을 선택하여, 네트워크 프로토콜접속을 확립하며, 본 실시예에서는 TCP/IP 프로토콜접속을 선택하여 노트북(1)과 노트북(2) 사이의 TCP 접속을 확립한다.
3. 터널제어모듈(1)은 확립한 TCP 접속을 통해 노트북(2)에 터널구축요구 메세지를 발송한다. 이 터널요구 메세지는 표 1에 표시한 바와 같다.
메세지 영역 |
취하는 값 |
비고 |
MessageType |
CreatePipeRequest |
터널구축요구 |
SourceDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
소스장치의 식별자 |
TargetDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
타깃장치의 식별자 |
ClientID |
32bit UINT |
터널구축을 발신한 응용 프로그램의 식별자 |
Time |
1800 |
터널이용시간:1800초 |
4. 노트북(2) 중의 터널제어모듈(2)은 터널구축요구 메세지를 수신한 후, 노트북(2)의 현재 동작상황에 근거하여 터널구축요구를 수락(accept)하며, 노트북(1)에 터널구축 응답메세지를 발송한다. 이 터널구축 응답 메세지는 표 2에 표시한 바와 같다.
메세지영역 |
취하는 값 |
비고 |
MessageType |
CreatePipeResponse |
터널구축응답 |
TargetDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
터널구축요구를 발신한 장치 식별자 |
SourceDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
터널구축응답메세지를 발송한 장치 식별자 |
ResultCode |
Success |
터널구축 성공 |
Time |
1800 |
터널이용시간:1800초 |
만일 노트북(2)의 터널제어모듈(2)가 터널구축요구를 접수하지 않을 경우, 표 2에서 표시하는 응답메세지의 ResultCode 영역의 값이 실패이다.
5. 노트북(1)의 소프트웨어모듈이 터널구축 응답메세지를 수신한후, 프로그램Fc에 터널구축 성공 또는 실패 결과를 보고한다. Fc는 터널구축 성공결과 보고를 수신한 후, 터널을 통해 Fs에 데이터를 발송할 수 있다. 데이터 발송 메세지는 표 3에 표시한 바와 같다.
메세지영역 |
취하는 값 |
비고 |
MessageType |
DataSend |
데이터 발송 메세지 |
TargetDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
노트북(2)의 장치 식별자 |
SourceDeviceID |
Urn:IGRS:Device:deviceID:xxxxx |
노트북(1) 의 장치 식별자 |
ClientID |
1 |
Fc프로그램의 식별자 |
ServiceID |
1 |
Fs프로그램의 식별자 |
Data |
<Data>……</Data> |
XML로 캡슐화된 소스데이터 |
그 중 Data 영역은 기타 형식으로 캡슐화된 소스데이터일 수도 있다.
본 실시예에서, 만일 노트북(1)의 응용 프로그램 Fc가 Fs에 대량의 데이터를 발송하는 경우, 노트북(1)의 소프트웨어모듈은 새로운 TCP 접속을 확립한 것을 통해 데이터전송요구를 만족시킬 수 있다. 이러한 경우, 터널정보 테이블은 표 4에 표시한 바와 같다.
장치식별자 |
Urn:IGRS:device:deviceID:xxxxx |
노트북(2)의 장치 식별자 |
이용가능한 접속 리스트 |
Protocol:TCP Socket:123 Socket:126 |
노트북(1)과 노트북(2)가 확립한 2개 TCP접속 |
매칭되는 프로토콜 리스트 |
TCP:192.168.0.2: 2345 SerialPort:2 |
노트북2와 접속을 확립할 수 있는 네트워크 프로토콜 정보 리스트 |
발송대기 데이터 상황 |
Socket:123:100KB Socket:126:200KB |
각각의 TCP접속상에서 현재 발송대기의 데이터량 |
터널 가용 시간 |
1800 |
가용 시간: 30초 |
터널 관련 프로그램 식별자 |
ProgramID:1 |
이 터널과 관련된 응용 프로그램 식별자, 터널을 생성한 응용 프로그램 식별자 및 이 터널을 이용하는 응용 프로그램 식별자를 포함 |
만일 데이터 전송과정에서 외부의 원인으로 2개 TCP접속이 끊어지면, 노트북(1)의 터널제어모듈은 데이터가 현재 발송된 위치를 기록하고, 데이터전송터널에서 SerialPort:2를 선택하여 접속을 시도한다. 만일 접속확립이 성공되면, 노트북(1)의 터널제어모듈은 기록한 데이터위치에 근거하여 SerialPort:2를 통해 데이터를 계속 발송한다. 만일 접속확립이 실패되면, 터널제어모듈은 Fc에 데이터전송오류 및 현재 터널을 이용할 수 없음을 통지한다.
노트북(1)과 노트북(2)는 발송대기 데이터 전부가 발송완료된 후 즉 터널 휴지기간에 노트북(1)의 터널제어모듈은 노트북(2)에 정기적으로 터널검측 메세지를 발송하여 터널 이용 가능성을 검측한다. 터널 검측요구 메세지는 표 5에 표시한 바와 같다.
메세지영역 |
취하는 값 |
비고 |
MessageType |
PipeDetectRequest |
터널검측요구 |
TargetDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
노트북(2)의 장치 식별자 |
SourceDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
노트북(1)의 장치 식별자 |
Time |
1200 |
터널 가용 시간 20초 |
노트북(2)의 터널제어모듈은 노트북(1)의 터널검측요구를 수신한 후, 실제 상황에 근거하여 터널검측 응답메세지를 발송한다. 만일 이때 노트북(2)의 부하가 너무 크면, 노트북(2)의 터널제어모듈은 터널 가용 시간이 0인 검측 응답메세지를 발송할 수 있다. 이 메세지는 표 6에 표시한 바와 같다.
메세지영역 |
취하는 값 |
비고 |
MessageType |
PipeDetectResponse |
터널검측응답 |
TargetDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
노트북(1)의 장치 식별자 |
SourceDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
노트북(2)의 장치 식별자 |
Time |
0 |
터널 가용 시간 0초, 터널은 이미 이용 불가능 함 |
노트북(1) 또는 (2)의 터널제어모듈은 터널 구축 성공 후, 필요에 따라 상대방에 터널 닫기 통지 메세지를 발송하여 이 터널을 다시 이용할 수 없음을 상대방에게 통지한다. 터널 닫기 통지 메세지는 표 7에 표시한 바와 같다.
메세지영역 |
취하는 값 |
비고 |
MessageType |
PipeCloseNotify |
터널 닫기 통지 |
TargetDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
노트북(1)의 장치 식별자 |
SourceDeviceID |
Urn:IGRS:device:deviceID:xxxxx |
노트북(2)의 장치 식별자 |
본 실시예는 노트북 사이의 무선데이터 전송에 적용가능하며, 또한 노트북과 핸드폰사이, 핸드폰 사이, 핸드폰과 PDA 사이, PDA 사이, PDA와 노트북 사이 등 각 유형의 네트워크 장치들 사이의 무선데이터 전송에도 적용된다. 유선네트워크의 네트워크 장치들 사이의 유선데이터 전송에도 적용되는 것은 물론이다.
상기의 실시예에서 볼 수 있는바, 본 발명의 이런 네트워크 장치들 사이의 전송방법은, 데이터전송 과정 중 이용가능한 접속방식을 자동으로 선택하여 데이터전송을 진행할 수 있어 이용자가 편리하게 이용할 수 있으며, 시스템 리소스를 절감할 수 있다.