KR20080026161A - 원격 네트워크 액세스를 위한 통일된 아키텍쳐 - Google Patents

원격 네트워크 액세스를 위한 통일된 아키텍쳐 Download PDF

Info

Publication number
KR20080026161A
KR20080026161A KR1020087000549A KR20087000549A KR20080026161A KR 20080026161 A KR20080026161 A KR 20080026161A KR 1020087000549 A KR1020087000549 A KR 1020087000549A KR 20087000549 A KR20087000549 A KR 20087000549A KR 20080026161 A KR20080026161 A KR 20080026161A
Authority
KR
South Korea
Prior art keywords
network
request
client device
network resource
access
Prior art date
Application number
KR1020087000549A
Other languages
English (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 마이크로소프트 코포레이션
Publication of KR20080026161A publication Critical patent/KR20080026161A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Abstract

네트워크로의 원격 액세스를 가능하게 하기 위한 통합된 아키텍쳐가 제공된다. 네트워크는 예를 들면, 가상 사설 네트워크(VPN) 및/또는 피어-투-피어 네트워크를 포함할 수 있다. 일 실시예에서는, 아키텍쳐는 클라이언트 장치/노드 및 게이트웨이/수퍼노드에 설치된 컴포넌트들을 포함한다. 클라이언트 장치에 구현된 컴포넌트들은 전형적인 VPN과 유사한 방식으로 액세스를 도울 수 있으나, 게이트웨이의 컴포넌트들은 애플리케이션 프록시와 유사한 방식으로 액세스를 도울 수 있다. 클라이언트 장치와 게이트웨이 간의 통신은 예로서, 보안 소켓 계층(SSL) 통신 프로토콜을 통해 일어날 수 있다.
Figure P1020087000549
가상 사설 네트워크(VPN), 피어-투-피어 네트워크, 클라이언트 장치, 게이트웨이, 보안 소켓 계층(SSL: Secure Sockets Layer), 네트워크 리소스

Description

원격 네트워크 액세스를 위한 통일된 아키텍쳐{UNIFIED ARCHITECTURE FOR REMOTE NETWORK ACCESS}
본 발명은 일반적으로 통신 네트워크에 관한 것이며, 보다 상세하게는 통신 네트워크로의 원격 액세스를 가능케 하는 컴포넌트에 관한 것이다.
가상 사설망(VPN: virtual private network)은, 적어도 부분적으로는 인터넷과 같은 공중 네트워킹 인프라를 통해 통신이 행해지는 사설 네트워크이다. VPN은, 사용자가 회사의 네트워크를 이용하여 연결되고, 원격 사용자에게로의 운송 시간 및 운반비를 감소시키고, 근로자 생산성을 향상시킬 수 있는 지리적인 영역을 확장할 수 있음에 따라, 사내 또는 회사 간의 통신을 위해 널리 이용된다.
일부 VPN들에 접속하기 위해, 사용자는 자신의 클라이언트 장치(예를 들면, 퍼스널 컴퓨터, PDA(personal digital assistant) 또는 기타 장치)에 상주하는 하나 이상의 소프트웨어 컴포넌트(예를 들면, VPN 클라이언트 애플리케이션)를 호출하여 접속을 확립한다. 소프트웨어 컴포넌트(들)을 호출하는 것은 클라이언트 장치가, 일반적으로 사용자의 액세스 자격증명을 소프트웨어 컴포넌트(들)에 의해 제공되는 정보에 기초하여 검증하는 VPN 상에서 네트워크 액세스 게이트웨이와 통신하게 한다. 일단 인증되면, 클라이언트 장치에서 실행하는 애플리케이션은 일반적 으로 네트워크에서 필요한 만큼 리소스를 액세스할 수 있다. 네트워크 리소스는 예를 들면, 웹 페이지, 데이터 구조(예를 들면, 파일), 또는 이메일 서버를 포함할 수 있다. 클라이언트 장치의 애플리케이션이 네트워크 리소스로의 액세스를 요청할 때마다, 게이트웨이는 접속을 돕는다. 이러한 구성은 일반적으로 "전형적인 VPN(traditional VPN)" 모델로 공지되어 있다.
다른 VPN에서는, 경제적 및/또는 보안의 염려로 인해 다른 액세스 기술이 사용될 수도 있다. 예를 들면, 원격 사용자가 VPN에 액세스할 수 있도록 보안 소켓 계층(SSL: Secure Sockets Layer) 기술을 이용하여 애플리케이션 프록시를 채용하는 쪽으로 최근의 변화가 있어왔다. 간단하게는, 애플리케이션 프록시가 채용된 구성에서는, 클라이언트 애플리케이션이 네트워크상의 리소스를 액세스할 수 있기 전에, 사용자는 클라이언트 장치에서 실행되는 브라우저 애플리케이션을 이용하여 VPN에 대한 액세스 포인트로서 지정된 웹 페이지에 내비게이트한다. 사용자는 VPN에 대한 액세스를 얻기위해 브라우저 애플리케이션을 통해 로그인 자격증명을 제공할 수 있다. 인증 시에, 사용자가 로그인 자격증명을 다시 제공할 필요 없이 클라이언트 장치에서 실행중인 다른 애플리케이션들이 네트워크 리소스를 액세스하는 것이 가능할 수 있다. 이러한 구성은 일반적으로 "애플리케이션 프록시" 모델로 공지되어 있다.
애플리케이션 프록시 모델 쪽으로 기우는 한가지 이유는, VPN에 대한 자동 인증을 가능케 하는 소프트웨어 컴포넌트가 모든 클라이언트 장치에 설치 및 유지될 필요가 없으므로, 사업에서 활용하기에 덜 비싸다는 점이다. 다른 이유는 애플 리케이션 프록시 모델은, 액세스 포인트에서 수신된 통신이 전형적인 VPN 구성에서보다 더 엄격히 모니터링될 수 있다는 추가적인 보안 이득을 제공하여, 악성 요소가 클라이언트 장치를 사용하여 기업의 VPN을 공격하기에 더 어려울 수 있다는 점이다.
출원인은, 원격 사용자가 VPN에 액세스하게 할 수 있도록 애플리케이션 프록시 모델을 사용하는 것과 관련된 하나의 단점은, 클라이언트 애플리케이션 프로그램이 클라이언트 인증시에 네트워크 리소스에 자동으로 액세스가 가능해지기 전에, 일반적으로는 클라이언트 장치의 애플리케이션 프로그램들, 및 많은 경우에는, 그것들의 서버 대응 부분이 변경되어야만 한다는 점을 인식해왔다. 이러한 변경은 예를 들면, 직원들에게 애플리케이션 프록시 모델을 통해 원격 네트워크 액세스를 제공하는 사업체에게는 심각한 난제일 수 있는데, 이들 사업체들 중 많은 사업체들이 그 각각의 사용자 집단전체에 걸쳐 사용중인 수천 개의 애플리케이션을 가지기 때문이다. 예를 들면, 변경을 요구하는 각각의 애플리케이션 프로그램의 경우, 필요한 변경을 요구하고, 변경을 구현하고, 그것들을 사용자 집단에 시판하려면 애플리케이션 프로그램의 판매자와 상의하도록 사업체에게 요구될 수 있다. 이 프로세스는 매우 비싸고 시간 소모가 클 수 있다. 또한, 일부 애플리케이션 프로그램에는, 요구되는 변경을 구현하는 데에 상당한 기술적 장벽이 존재할 수 있다.
이는 전형적인 VPN 모델과는 대조적인 것이며, 여기서 클라이언트 장치에서 실행되는 애플리케이션은 인증시에 변경 없이도, 일반적으로 네트워크 리소스를 심리스하게(seamlessly) 액세스할 수 있다. 그러나, 상술한 바와 같이, 전형적인 VPN 모델은 각각의 사용자의 개별적인 인증을 위해 클라이언트 장치에 소프트웨어 컴포넌트의 설치를 요구할 수 있기 때문에 활용하기에 비쌀 수 있다. 전형적인 VPN 모델은 또한 애플리케이션 특정의 보안 기능을 보다 적게 제공할 수 있다.
이러한 경쟁적 관심사들의 밸런싱을 위해, 많은 사업체들이 원격 네트워크 액세스를 위한 애플리케이션 프록시 모델을 사용하지만, 클라이언트 장치에서 실행중인 애플리케이션의 서브셋만이 네트워크 리소스에 액세스하도록 허용된다. 따라서, 많은 사업체들은 애플리케이션 프록시 모델을 사용할 때에 몇몇 사용자는 (예를 들면, 네트워크 액세스를 요구하는) 특정한 애플리케이션이 제공하는 일부 기능을 사용하지 못할 수도 있다는 것을 알고 있다. 이러한 구성은 덜 최적화되어 있다.
따라서, 본 발명의 일 실시예는 클라이언트 장치에서 실행되는 애플리케이션이 변경될 것을 요구하지 않고도, 애플리케이션 프록시 모델의 보안 이득 및 전형적인 VPN 모델과 연관된 네트워크 리소스로의 심리스한 애플리케이션 액세스를 제공하는 방식으로 원격 네트워크 액세스를 돕기 위한 아키텍쳐를 제공한다.
일 실시예에서, 아키텍쳐는 네트워크에서 클라이언트를 인증하기 위해 클라이언트 장치 및 네트워크 액세스 게이트웨이 양쪽 모두에 설치된 소프트웨어 기반의 컴포넌트를 포함한다. 일 실시예에서는, 클라이언트상의 컴포넌트는, 사전결정된 이벤트(예를 들면, 네트워크 이름을 리졸브하려는, 애플리케이션에 의한 시도)가 발생할 때에, 통신을 자동으로 초기화하고 게이트웨이를 통해 인증을 도와서 네트워크로의 접속을 구축할 수 있는 CNAM(Client Network Access Manager)을 포함한다. 일 실시예에서는, 클라이언트 장치에 CNAM가 존재하는 것이 다른 클라이언트 애플리케이션을 변경하는 것을 불필요하게 만들어서, 사용의 용이함과 전형적인 VPN 모델과 유사한 기능을 제공한다. 일 실시예에서, 아키텍쳐는 또한 통상적으로 애플리케이션 프록시 모델에 연관된 많은 보안 이득을 제공하는 네트워크 액세스 게이트웨이에 설치된 컴포넌트를 포함한다.
본 발명의 실시예들이 VPN으로의 원격 액세스를 돕는데 유용할 수 있지만, 본 발명은 이점에 제한되지는 않는다. 예를 들면, 아키텍쳐는 임의의 적합한 타입의 사설 또는 반(semi)사설 네트워크로의 액세스를 돕기 위해 사용될 수 있다. 예로서, 아키텍쳐는 피어-투-피어 네트워크로 액세스할 수 있도록 개발될 수 있다. 할당된 대역폭을 규제하는/규제하거나 보안 정책을 부과하는 컴포넌트와 같은, 피어-투-피어 통신을 관리하기 위한 컴포넌트들이 제공될 수 있다.
첨부된 도면은 범위를 제한하기 위한 것은 아니다. 도면에서, 여러 개의 도면에서 도시된 각각의 동일한 또는 거의 동일한 컴포넌트들은 동일한 참조부호로 나타낸다. 명확함을 위해, 모든 컴포넌트들이 매 도면마다 라벨링되지 않을 수도 있다.
도 1은 원격 네트워크 액세스를 돕기 위해 사용될 수 있는 예시적인 아키텍쳐 컴포넌트를 도시하는 블록도;
도 2는 본 발명의 일 실시예에 따라, 클라이언트 장치에 의한 네트워크로의 원격 액세스를 돕기 위해 클라이언트 장치에서 컴포넌트에 의해 수행될 수 있는 예시적인 프로세스를 도시하는 흐름도;
도 3은 본 발명의 실시예예 따라, 네트워크 액세스를 돕기 위해 서버에서 컴포넌트에 의해 수행될 수 있는 예시적인 프로세스를 도시하는 흐름도;
도 4는 본 발명의 일 실시예에 따라, 피어-투-피어 네트워크로의 액세스를 돕기 위해 사용될 수 있는 예시적인 아키텍쳐 컴포넌트를 도시하는 블록도;
도 5는 본 발명의 실 실시예에 따라, 피어-투-피어 통신에 할당된 대역폭을 규제하기 위해 수퍼노드에 의해 수행될 수 있는 예시적인 프로세스를 도시하는 흐름도;
도 6은 본 발명의 실시예의 양태가 구현될 수 있는 컴퓨터를 도시하는 블록도; 및
도 7은 본 발명의 실시예의 양태가 구현될 수 있는 예시적인 메모리를 도시하는 블록도.
VPN으로의 원격 액세스를 돕도록 사용되는 본 발명의 예시적인 일 실시예가 도 1에 도시된다. 도시된 실시예는 클라이언트 장치(100) 및 네트워크 액세스 게이트웨이(150)에 존재하는 아키텍쳐적 컴포넌트를 포함한다. 또한 도 1에서는 이러한 컴포넌트들을 통해 클라이언트 장치(100)에 액세스가능하게 만들어진 네트워크 리소스(170)가 존재한다. 일 실시예에서는, 본 발명이 이 점에 제한되는 것이 아니라, 이러한 임의의 또는 모든 컴포넌트들이 하드웨어를 비롯한 임의의 적합한 양식으로 구현될 수 있다.
도 1에 도시된 컴포넌트들의 기능은 네트워크상의 리소스(170A)를 액세스하는 클라이언트 애플리케이션의 프로세스를 설명함으로써 예시될 수 있다. 이 프로세스의 시작에서는, 사용자가 클라이언트 장치(100)의 애플리케이션(105)을 사용(예를 들면, 애플리케이션(105)에 입력을 제공함)할 수 있다. 일 실시예에서는, 애플리케이션(105)은 이메일 애플리케이션(예를 들면, 미국 워싱턴주 레드몬드의 마이크로소트프 코포레이션이 제공하는 마이크로소프트 아웃룩)를 포함하며 네트워크 리소스(170A)는 이메일 서버를 포함한다. 다음의 나머지 도 1의 설명은 그 경우를 가정하고 있다. 그러나, 본 발명은 그 경우로 제한되어서는 안되는데, 임의의 클라이언트 애플리케이션 및/또는 네트워크 리소스가 사용 및/또는 액세스될 수 있기 때문이다.
도시된 실시예에서는, 네트워크 리소스 이름을 리졸브하도록 애플리케이션(105)에 의해 시도되는, 애플리케이션(105)상의 활동이 네트워크 스택(110)(이는 일 실시예에서, 클라이언트 장치(100)에서 실행하는 운영 체제의 컴포넌트임)에 의해 검출된다. 이 점에서는, 애플리케이션(105)이 일반적으로 네트워크상에서 네트워크 리소스(170A)를 식별하기 위해 사용된 식별자(예를 들면, IP 주소와 같은, 네트워크 주소)와는 다른 식별자(예를 들면, 도메인 이름)를 네트워크 리소스(170A)에 대하여 사용하기 때문에, 애플리케이션(105)이 일반적으로 네트워크 리소스(170A) 이름을 리졸브하기를 시도하여 그것의 네트워크 식별자를 판별한다는 것을 당업자가 인식할 것이다. 그 활동은 운영 체제의 일부로서 구현되는 컴포넌트 (예를 들면, 네트워크 스택(110))에 의해 관찰될 필요가 없는데, 본 발명은 이 점에 제한되지 않기 때문이다. 임의의 적합한 컴포넌트가 사용될 수도 있다.
물론, 애플리케이션(105)이 네트워크 리소스를 액세스하기 위해 도메인 이름과 같은 식별자를 사용할 필요는 없다. 예를 들면, 애플리케이션(105)은, 그 애플리케이션에 이용가능하다면, 네트워크 리소스에 대한 네트워크 주소를 사용할 수 있다. 애플리케이션이 네트워크 주소를 특정하는 예시적인 시나리오가 도 4를 참조하여 아래에 설명된다.
도시된 실시예에서는, 애플리케이션(105)은 먼저 도메인 이름 서비스(DNS: domain name service) 리졸버(120)와 통신하여 클라이언트에서 네트워크 이름을 리졸브하도록 시도한다. 일 실시예에서는, DNS 리졸버(120)는, 사전 애플리케이션 활동의 경과로서 액세스된 네트워크 리소스를 위한 도메임 이름과 같은, 사전에 리졸브된 도메인 이름을 위해 네트워크 식별자의 모음을 유지한다.
도시된 실시예에서는, DNS 리졸버(120)가 네트워크 리소스(170A)에 대한 네트워크 주소를 DNS 서버와 상의하지 않은 채 애플리케이션(105)에 제공할 수 없는 경우에는, CNAM(115)에게 통지된다. 도시된 실시예에서, CNAM(115)은, 예를 들어 DNS 리졸버(120)가 도메인 이름을 리졸브할 필요가 있을 때, 사전결정된 이벤트가 일어날 때에 일어날 프로세싱을 지정하는 프로그램된 명령어를 포함한다.
클라이언트 장치에서 실행되는 애플리케이션에 관련된 이벤트가 네트워크 접속이 설정되도록 유발해야 하는지의 여부를 평가하도록 수행되는 프로세스의 예시적인 실시예가 도 2에 도시되어 있다. 프로세스(200)의 시작시에, 애플리케이션에 관계하여 일어나는 이벤트가 액트(210)에서 관찰된다. 이벤트는 예를 들면, 네트워크 이름을 리졸브하려는, 애플리케이션에 의한 시도일 수 있다. 이벤트는 액트(220)에서 하나 이상의 규칙과 해당 이벤트를 비교함으로써 평가된다. 예를 들면, 이벤트는 CNAM(115)에 포함된 프로그램된 명령어에 의해 정의되는 하나 이상의 규칙에 비교될 수 있다. 액트(230)에서는, 이벤트가 임의의 규칙(들)을 만족하는지의 여부에 대한 판정이 이루어진다. 예를 들면, 네트워크 이름을 리졸브하게 하는 애플리케이션(105)에 의한 시도가 규칙을 만족하는지를 액트(230)에서 판정할 수 있다. 애플리케이션 이벤트가 임의의 규칙(들)을 만족하는 것으로 판정되는 경우에는, 액트(240)에서 접속이 설정되고, 프로세스는 완료된다. 그렇지 않은 경우에는, 프로세스는 시작으로 복귀하여 애플리케이션 이벤트들은 계속 관찰된다.
물론, 애플리케이션 이벤트를 관찰할 때 수행될 수 있는 프로세싱이 네트워크로의 접속을 설정하는 데 제한되지 않으며, 프로세싱을 정의하는 이벤트는 네트워크 이름을 리졸브하도록 시도하는 애플리케이션에 제한되지 않는다. 임의의 적합한 이벤트 및/또는 프로세싱이 정의될 수 있다. 프로세싱 및/또는 이벤트(들)를 정의하는 프로그램된 명령어가 예를 들면, 네트워크 관리자와 같은, 사용자에 의해 정의될 수 있다.
도시된 실시예에서는, 사전정의된 이벤트가 발생할 때에 일어날 프로세싱은 DNS 리졸버(120)가 리졸브하도록 시도하는 도메인 이름을 평가, 특정 DNS 서버(즉, DNS 맵퍼(160))를 도메인 이름(도메인 이름과 DNS 맵퍼(160) 사이의 연관성)에 기초하여 선택, 및 DNS 리졸버(120)에게 DNS 맵퍼(160)와 접촉하여 도메인 이름을 리 졸브할 것을 명령하는 CNAM(115)이다.
제공된 도메인 이름에 기초하여, DNS 맵퍼(160)가 복수의 유사한 DNS 서버 컴포넌트로부터 선택될 수 있음이 이해되어야 한다. 또한, DNS 서버가 도메인 이름에 기초하여 선택되었기 때문에, 도메인 이름이 제공되지 않으면, 게이트웨이는 클라이언트와 네트워크 리소스 간의 통신을 돕기 위해 사용될 필요가 없다. 이는 게이트웨이가 VPN에 대한 액세스 포인트인 구현예에서 이로울 수 있다. 예를 들면, 게이트웨이(150)가 VPN에 대한 액세스 포인트인 경우에는, 인터넷을 통해 공개적으로 액세스가능한, 클라이언트 장치(100) 및 네트워크 리소스 간의 통신을 돕기 위해 사용될 필요가 없을 수 있고, 예를 들어, 클라이언트 장치(100)가 도메인 이름을 제공하는 경우에는, CNAM(115)이 결정하는 도메인 이름은 DNS 맵퍼(160)에 보내지지 않아야 한다. 본 시스템은 VPN을 액세스하지 않고도 클라이언트가 네트워크 리소스에 액세스하도록 허용할 수 있어서, 그에 관련된 프로세싱 경비 및 비용을 근절한다.
DNS 서버가 임의의 적합한 정보에 기초하여 선택될 수 있어서, DNS 서버는 오로지 도메인 이름에만 기초하여 선택될 필요는 없음이 또한 이해되어야 한다. 본 발명은 특정한 구현예에 제한되는 것은 아니다.
도시된 실시예에서는, DNS 리졸버(120)는 그리고 나서 DNS 맵퍼(160)와 접촉하도록 시도한다. 이 시도는 네트워크 스택(110)에 의해 프로세스된다. 접속이 미리 구축되지 않은 경우에는, 네트워크 스택(110)은 원격 액세스 서비스(RAS) 접속(125)이 네트워크 액세스 게이트웨이(150)에 접촉하여서 애플리케이션(105)이 네 트워크 리소스(170A)를 액세스할 수 있도록 명령할 것이다. 더욱 상세하게는, 클라이언트(100)와 네트워크 액세스 게이트웨이(150) 사이의 두 지점간 접속을 구축하기 위해 RAS 접속(125)이 명령된다. 당업자는 클라이언트와 게이트웨이 사이에 두 지점간 접속을 구축하는 것은, 전형적인 VPN 배치와는 유사하지만 애플리케이션 프록시 모델과는 다른, 네트워크 인터페이스를 클라이언트(100)에 구축하는 것임을 인식할 것이다. 네트워크 인터페이스가 구축되기 때문에, 네트워크와의 통신을 위해 아래에서 설명되는 단계에서, 클라이언트(100)에 IP 주소가 지정될 것이다.
RAS 접속(125)은 그리고 나서 VPN 서버(155)와 접촉함으로써 클라이언트(100)와 네트워크 액세스 게이트웨이(150) 사이에 지점간 접속을 구축하고자 시도한다. 도시된 실시예에서는, RAS 접속(125) 및 VPN 서버(155)가 클라이언트(100)와 네트워크 액세스 게이트웨이(150) 사이의 접속을 구축 및 유지하고, 이 접속은 설정가능한 기간을 위해 유휴(즉, 해당 접속을 통과하는 통신이 없는 상태)로 남을 때까지 존속한다. 당업자는 클라이언트와 게이트웨이 사이의 지점간 접속을 구축 및 유지하기 위해 RAS 컴포넌트를 이 방식으로 사용하는 것은 전형적인 VPN들에서 공통적인 것임을 인식할 것이다.
일 실시예에서는, 클라이언트(100) 및 네트워크 엑세스 게이트웨이(150) 간의 통신은 SSL 프로토콜을 통해 일어나지만, 본 발명은 이 점에 제한되지는 않는다. 임의의 적합한 통신 프로토콜이 사용될 수 있다.
그러나, 본 발명의 일 실시예에 따르면, 애플리케이션(105)에 대한 네트워크 리소스(170A)에 실제 네트워크 주소(예를 들면, IP 주소)를 제공하기보다는, DNS 맵퍼(160)가 새로운 네트워크 주소를 마련하고, 그것을 VPN 서버(155)에 지정하며, 이 새롭게 마련된 주소를 클라이언트 상의 DNS 리졸버(120)에 제공한다. 결국, 네트워크 리소스를 액세스하고자 하는, 클라이언트 장치(100) 상의 애플리케이션에 의한 연이은 시도들은 클라이언트에서 리졸브될 수 있어서, DNS 맵퍼와의 통신은 요구되지 않는다.
일 실시예에서는, 새롭게 마련된 주소는 DNS 맵퍼(160)에 의해 동적으로 생성된다. 특히, 일부 통상의 접근법과는 달리, 네트워크 리소스를 사전에 액세싱하는데 사용하기 위해 새로운 주소가 마련되지 않고(예를 들면, 상호적으로 생성됨), 특히 네트워크 리소스(170A)를 액세싱하는데 클라이언트(100)에 의한 사용을 위해 DNS 맵퍼(160)에 의해 생성된다. 새로운 주소는 또한 하나 이상의 알고리즘을 통해 실제 네트워크 주소로부터 기인한 것이 아니다. 또한, 일 실시예에서 새로운 주소는 특정한 포맷으로 제한되지 않는다. 예를 들면, 주소는 IPv4, IPv6, 또는 임의의 기타 적합한 포맷으로 생성될 수 있어서, 예를 들면, 클라이언트 또는 네트워크 리소스 중 어느 하나가 IPv4 포맷을 사용하는 것으로 공지된 경우에는, 주소가 IPv4 포맷으로 동적으로 생성될 수 있다.
도시된 실시예에서는, DNS 맵퍼(160)가 또한 네트워크 리소스(170A)를 위해 새롭게 마련된 네트워크 주소 및 실제 네트워크 주소 양쪽 모두를 전송 계층 프록시(165)에 제공할 수 있다. 이 프로세스가 여러 번 반복될 수 있기 때문에, 많은 다양한 네트워크 리소스들 및/또는 클라이언트 장치들을 위해, VPN 서버(155)에 많은 IP 주소(네트워크 리소스 각각 마다 하나씩)가 마련될 수 있다.
도 3에서는 상술한 프로세스를 수행하기 위한 예시적인 기술을 도시하는 흐름도가 도시된다. 프로세스(300)의 시작시에는, 네트워크 리소스를 액세스하라는 요청이 액트(310)에서 수신된다. 액트(320)에서는, 그 리소스를 위한 네트워크 주소가 결정(예를 들면, 상술한 것처럼 리졸브됨)된다. 액트(330)에서는, 새로운 네트워크 주소가 마련된다. 새로운 주소는 예를 들면, VPN 서버(155)에 지정될 수 있다. 액트(340)에서는, 네트워크 리소스를 액세싱하는데 사용하기 위해 새로운 주소가 클라이언트 장치에 제공된다. 액트(340)이 완성되면, 프로세스는 종료한다.
이 프로세스의 결과로서, 애플리케이션(105)이 네트워크 리소스(170A)를 액세스하도록 연이어 시도할 때에, 애플리케이션(105)은 새롭게 마련된 네트워크 주소를 사용한다. 애플리케이션(105)은 액세스 요청을 그 주소로 보내고, 요청은 VPN 서버(155)에 의해 수신된다. 요청은 그리고 나서 전송 계층 프록시(165)에 보내지는데, 도시된 실시예에서, 전송 계층 프록시(165)는 네트워크 리소스(170A)를위해 새롭게 마련된 네트워크 주소에 기초하여 네트워크 주소를 판정할 수 있게 해주는 DNS 맵퍼(160)에 의해 사전에 제공된 정보를 유지한다. 그러나, 본 발명이 이 점에 제한되지 않음에 따라, 네트워크 리소스(170A)를 위한 실제 네트워크 주소는 임의의 적합한 양식에서 판정될 수 있음을 이해해야 한다.
도시된 실시예에서는, 네트워크 리소스(170A)에 요청을 보내기보다는, 전송 계층 프록시(165)가 게이트웨이(150)상의 액세스 요청을 종결하고, 실제 네트워크 주소를 사용하여 네트워크 리소스(170A)로의 직접 접속을 구축한다. 그리고 나서, 애플리케이션(105)에서부터 네트워크 리소스(170A)까지의 통신은 먼저 게이트웨이(150)로 전해지고, 그 후에 이 새롭게 구축된 접속을 따라 게이트웨이(150)에서 네트워크 리소스(170A)로 전해진다. 유사하게는, 네트워크 리소스(170A)에서 애플리케이션(105)까지의 통신은 먼저 네트워크 리소스(170A) 및 게이트웨이(150) 사이에 전해지고, 그 후에 게이트웨이(150) 및 클라이언트(100) 사이의 접속을 따라 전해진다. 따라서, 전송 계층 프록시(165)는 애플리케이션(105) 및 리소스(170A) 사이의 프록시의 역할을 한다.
도시된 실시예에서는, 애플리케이션(105)과 네트워크 리소스(170A) 간의 통신을 위한 보안 정책을 구현하기 위해 전송 계층 프록시(165)에 의해 플러그인(168)이 사용된다. 플러그인(168)은 예를 들면, 프로그램가능한 명령어를 포함할 수 있는데, 이는 실행시에, 애플리케이션(105)과 리소스(170A) 간의 통신을 검토하여 그 통신이 정책을 포함하는지의 여부를 판정한다. 예시된 바와 같이, 플러그인(168)은 통신을 검토하여 그 통신이 바이러스에 감염되지 않았음을 판정할 수 있다. 그러나, 임의의 적합한 양식으로, 임의의 적합한 정책이 적용될 수도 있음이 이해되어야 한다. 예를 들면, 정책은 보안에 직간접적으로 관계하지 않도록 구현될 수 있다. 또한, 정책은, 임의의 적합한 컴포넌트가 사용될 수도 있음에 따라, 전송 계층 프록시(165)에 대한 플러그인에 의해 구현될 필요는 없다. 또한, 정책은 예를 들면, 사용자(예들 들면, 네트워크 관리자, 또는 제3 판매자나 컨설턴트)에 의해 정의될 수 있다. 또한, 정책은, 서버, 포트 및/또는 기타 리소스와 같은 리소스에 직접 전달되는 것을 비롯한, 게이트웨이(150)를 통하여 전달되는 임의 의 통신의 검토를 정의할 수 있다.
상술한 컴포넌트 및 기술은 전형적인 VPN 아키텍쳐의 다양한 이득을, 그것들과 관련하는 단점을 포함하지 않은 채 제공함을 이해해야 한다. 예를 들면, 상술한 아키텍쳐는, 클라이언트 애플리케이션이 네트워크 리소스에 액세스할 수 있도록 하는 변경을 요구하지 않고도, 애플리케이션 프록시 모델의 보안 이득을 제공할 수 있다. 유사하게는, 상술한 아키텍쳐는, 보안을 희생하지 않고도, 전형적인 VPN을 대표하는 네트워크 리소스로의 균일한 액세스를 도울 수 있다.
상술한 아키텍쳐는 전형적인 VPN에 클라이언트 장치와 보다 유사한 기능을 하게 하는 클라이언트 장치의 컴포넌트, 및 애플리케이션 프록시와 보다 유사한 기능을 하게 하는 네트워크 액세스 게이트웨이의 컴포넌트를 포함하고 있음이 또한 이해되어야 한다. 예를 들면, 클라이언트(100)의 CNAM(115)은 애플리케이션(예를 들면, 애플리케이션(105))과 네트워크 리소스(170) 간의 통신을, 전형적인 VPN에 구현된 클라이언트 컴포넌트와 유사한 방식으로 관리할 수 있어서, 클라이언트 장치의 애플리케이션은 변경되지 않고도 균일하게 및 투명하게 네트워크 리소스를 액세스할 수 있다. 유사하게는, 전송 계층 프록시(165) 및/또는 플러그인(168)은, 액세스 요청을 종결하고 네트워크 액세스 게이트웨이(150)상의 통신을 검열함으로써 애플리케이션 프록시 모델에 필적하는 보안의 레벨을 제공할 수 있다.
상술한 바와 같이, 본 발명의 양태가 VPN에 원격 액세스할 수 있도록 하는 데에 유용하지만, 본 발명의 실시예들은, 기타 네트워크 구성 내의 접속을 돕는 것과 관련하는 쓰임을 포함하여 수많은 용도를 가질 수 있다. 예를 들면, 상술한 많 은 컴포넌트 및 기술이 피어-투-피어(P2P) 네트워크에서의 접속을 돕기 위해 사용될 수 있다.
당업자는 피어-투-피어 접속이 주로 네트워크상의 노드들 간의 통신을 중계하는 수퍼노드들을 통해 달성됨을 인식할 것이다. 수퍼노드들은 통상적으로 및 일반적으로 방화벽, NAT(network address translator) 및 기타 보안 장치 뒤에 존재하는 노드들을 비롯한, 노드들에 액세스가능하다(즉, 수퍼노드들은 방화벽, NAT 컴포넌트, 또는 내부로의 접속을 막는 기타 장치 뒤에 존재하지 않음). 컴퓨터는 일반적으로 수퍼노드가 되고자 자청한다(예를 들면, 개인적 또는 사업적인 그 소유자에 의함). 수퍼노드로서의 그 ID(identity)는 통상적으로 미국 워싱턴주 레드몬드의 마이크로소프트 코포레이션이 제공하는 피어-투-피어 이름 결정 프로토콜(PNRP: peer-to-peer name resolution protocol)등을 통하여 공개된다. 간략하게는, PNRP는 수퍼노드의 ID 및/또는 위치가 (예를 들면 인터넷상에서) 노드들에 액세스하는데 도움이 되도록 만들어지는 분산된 데이터베이스에 공개되도록 허용한다. 클라이언트 장치가 피어-투-피어 애플리케이션(예를 들면, 미국 워싱턴주 레드몬드의 마이크로소프트 코포레이션에 의해 제작된 윈도우즈 메신저, 또는 기타 피어-투-피어 애플리케이션)을 시작할 때에, 애플리케이션은 수퍼노드의 위치 및 ID를 발견하도록 데이터베이스를 쿼리할 수 있다.
일 실시예에서는, 도 1의 클라이언트 장치(100)에 설치된 컴포넌트들이 피어-투-피어 노드에 구현될 수 있고, 도 1의 네트워크 액세스 게이트웨에 설치된 컴포넌트들은 수퍼노드에 구현될 수 있어서, 그 노드에 의한, 피어-투-피어 네트워크상 의 다른 노드로의 액세스를 돕는다. 일 예시적인 구현예는 도 4에 도시된다.
도 1에 도시된 컴포넌트에 의해 수행되는 많은 기술들은 피어-투-피어 네트워크로의 접속을 돕기 위해 도 4에 도시된 컴포넌트들에 의해 수행될 수 있다. 예로서, 노드(101)는, 수퍼노드(151)에 의해 제공되는 통신 중계 서비스를 얻기 위한 "부팅스트랩핑(boot-strapping)"의 일부로서 수퍼노드(151)를 액세스하고자 시도할 수 있다. 네트워크 스택(110)은 이 이벤트를 관찰하고 CNAM(115)에 고지할 수 있는데, 이는 부팅스트랩 프로세스와 같은, 이벤트의 발생시에 일어나는 프로세싱을 정의하는 프로그램된 명령어를 포함한다. 예를 들면, CNAM(115)은 피어-투-피어 RAS 접속(126) 및 RAS 포워딩 서버(156)를 통해 노드(101) 및 수퍼노드(151) 사이에 구축되는 접속을 일으킬 수 있다. 수퍼노드는 그러면 노드(101)에 네트워크 주소(예를 들면 IP 주소)를 지정할 수 있다.
도 1에 도시된 실시예를 이용함으로써, 노드(101) 및 수퍼노드(151) 간의 통신이 SSL 통신 프로토콜, 또는 임의의 기타 적합한 통신 프로토콜을 통해 일어날 수 있다.
수퍼노드(151)는 노드(101)에게 네트워크를 통해 액세스가능한 다른 노드를 고지할 수 있다. 노드(101)는 노드(102)의 네트워크 주소를 특정하는 노드(102)를 액세스하라는 요청을 발행할 수 있다. 특히, 노드(101)는 전달 제어 프로토콜(TCP: Transmission Control Protocol) 접속 요청을 수퍼노드(151)에 보낼 수 있는데(예를 들면, 패킷 요청을 보냄), 이는 요청을 위해 노드(101)에 의해 특정된 대상 네트워크 주소(예를 들면, IP 주소)를 검토할 수 있고, 네트워크를 통해 여전 히 액세스가능한 노드에 대응하는지를 판정할 수 있고, 노드(102)가 액세스가능하도록 유지된 것으로 판정하면, 요청을 포워드한다. 노드(102)는 액세스 요청을 수락하거나 거절할 수 있다.
일 실시예에서는, 피어-투-피어 네트워크상에서 노드들 간의 통신이 전송 계층 프록시(165)에서 종결되지 않은 채 수퍼노드를 통해 흐르기 때문에, 도 1의 구성에서는, DNS 맵퍼(160)가 노드(101)에 의해 제공된 식별자를 리졸브하거나 노드(101)에 새로운 네트워크 주소를 마련 및 제공할 필요가 없다. 대신에, 수퍼노드(151)에 직접 전해지고, 수퍼노드(151)를 통해 노드(102)까지 흐른다.
둘 이상의 수퍼노드가 피어-투-피어 네트워크상에 존재할 수 있고, 모든 노드들이 각 수퍼노드에 직접 액세스가능하지는 않을 수 있다. 노드(102)가 수퍼노드(151)에 의해 직접 액세스가능하지 않은 경우에는, 수퍼노드(151)에 의해, 노드(102)를 직접 액세스할 수 있는 다른 수퍼노드로 통신이 포워드될 수 있다. 따라서, 일 실시예에서는, 수퍼노드(151)가 상호접속(180)을 포함하는데, 이는 노드(102)가 수퍼노드(151)에 직접 액세스가능한지의 여부, 및 최종적으로는 노드(102)에 배달하기 위해 통신을 수퍼노드(152)에 포워드하지 않는지를 판정한다.
일 실시예에서는, 수퍼노드(151)가 대역폭 관리자(175)를 포함하는데, 이는 수퍼노드를 통해 전달되는 트래픽에 의해 점유된 대역폭을 규제한다. 이것은 예를 들면, 수퍼노드(151)가 컴퓨터를 또한 네트워크 액세스를 요구하는 기타 활동(예를 들면, 월드 와이드 웹을 탐색하기)을 위해 사용하기를 원하는 사람에 의해 자청된 컴퓨터인 경우에, 유용할 수 있다. 예를 들면, 대역폭 관리자(175)는 컴퓨터의 수 퍼노드로서의 역할에 관계되지 않은 이러한 기타 활동을 위해 충분한 대역폭이 비축되어 있음을 보장할 수 있다. 일 실시예에서, 대역폭 관리자(175)는 비축된 대역폭의 양을 바꾸도록 (예를 들면, 네트워크 관리자와 같은, 사용자에 의해) 구성될 수 있다.
피어-투-피어 통신에 할당된 대역폭을 규제하기 위해 사용될 수 있는 예시적인 기술이 도 5에 도시된다. 프로세스(500)는 노드가 부팅스트랩 등을 할 경우에 피어-투-피어 네트워크를 통해 통신하라는 요청을, 노드가 수퍼노드에게 발행할 때에 시작될 수 있다. 프로세스(500)가 시작하면, 액트(510)에서 노드로부터의 피어-투-피어 네트워크를 통해 통신하라는 요청은 수퍼노드에 의해 수신된다. 요청은 노드 및 제2 노드 간의 정보의 전송을 위해 예상된 대역폭 요구조건에 대한 정보를 포함할 수 있다. 예상된 대역폭 요구조건은, 노드에 의해 수행된 이전의 통신 활동을 검토하는 등을 통해, 임의의 적합한 기술을 사용하여 결정될 수 있다.
액트(520)에서는, 요청은 예상된 대역폭 요구조건을 지원하기에 충분한 대역폭을 수퍼노드가 갖는지의 여부를 판정하기 위해 검토될 수 있다. 예를 들면, 수퍼노드(151)의 대역폭 관리자(175)는 처음부터 대역폭의 제1 부분은 피어-투-피어 활동들에 그리고 제2 부분은 다른 활동들에 할당할 수 있다.
또한, 수퍼노드는 네트워크상의 다른 노드들 사이의 피어-투-피어 통신을 지원하는 데에 능동적으로 관여될 수 있다. 결국, 수퍼노드는 초기에 피어-투-피어 활동에 할당된 대역폭의 양, 진행중인 피어-투-피어 통신에 충당된 대역폭의 양, 및/또는 노드에 의해 제공되는 예상된 대역폭 요구조건을 지원하기에 충분한 대역 폭이 존재하는지의 여부를 판정하는 다른 정보를 검토할 수 있다.
예상된 대역폭 요구조건을 지원하기에 충분한 대역폭이 존재하지 않는다고 판정되는 경우에는, 액트(530)에서 요청을 거절하는 통신이 수퍼노드에 의해 노드에 보내지고, 프로세스는 종료한다. 예를 들면, 수퍼노드는 충분한 대역폭의 미달로 요청이 거절되었다고 명시하는 메시지를 노드에 보낼 수 있다. 노드는 예를 들면, 그 후 유사한 접속 요청을 다른 수퍼노드에 보낼 수 있다.
액트(520)에서 수퍼노드가 예상된 대역폭 요구조건을 지원하기에 충분한 대역폭을 갖는다고 판정되는 경우에는, 액트(540)에서 요청을 승인하는 통신이 수퍼노드에 의해 노드에 보내진다. 액트(540)의 완료에 따라, 프로세스는 완료한다. 그런 후에, 노드는 통신을 수퍼노드를 통해 다른 노드에 보낼 수 있다. 통신은 수퍼노드에 의해 다른 노드에 직접 전달될 수 있거나, 다른 노드에의 최종적인 배달을 위해 다른 수퍼노드에 전달될 수 있다.
일 실시예에서는, 수퍼노드(151)에 의해 중계 및/또는 전달된 트래픽에 정책(예를 들면, 보안에 관계된 정책)을 부과하기 위해 플러그인(168)이 사용될 수 있다. 예를 들면, 수퍼노드(151)가 기업체의 네트워크에서 사용자들 간의 피어-투-피어 접속을 위해 사용되는 경우에는, 기업체는 사용자들 간의 통신에 바이러스가 없음을 보장하기 위해 플러그인(168)을 사용할 수 있다.
본 발명의 실시예의 각종 양태가 도 6에 도시된 예시적인 컴퓨터 시스템(600)과 같은, 하나 이상의 컴퓨터 시스템에 구현될 수 있음이 이해되어야 한다. 컴퓨터 시스템(600)은 입력 장치(602), 출력 장치(601), 프로세서(603), 메모리 시 스템(604) 및 저장소(606)를 포함하는데, 이 모두는 하나 이상의 버스나 스위치를 포함할 수 있는 상호접속 메커니즘(605)을 통해, 직간접적으로 결합되어 있다. 입력 장치(602)는 사용자 또는 기계(예를 들면, 운영자, 또는 텔레비전 수신기)로부터 입력을 수신하고, 출력 장치(601)는 정보를 사용자 또는 기계(예를 들면, 액정 디스플레이)에 디스플레이 또는 전달한다.
프로세서(603)는 기타 컴퓨터 프로그램들의 실행을 제어하는 운영 체제라고 불리는 프로그램을 실행하고, 스케쥴링, 입/출력 및 기타 장치 제어, 계정관리, 컴파일, 저장 할당, 데이터 관리, 메모리 관리, 통신 및 데이터 흐름 제어를 제공한다. 프로세서 및 운영 체제는 애플리케이션 프로그램들이 다른 컴퓨터 프로그래밍 언어로 작성된 컴퓨터 플랫폼을 정의한다.
프로세서(603)는 또한 본 발명의 양태를 실시하는 함수와 같은, 각종 함수를 구현하기 위해 하나 이상의 프로그램들을 실행할 수 있다. 이러한 프로그램들은 절차적 프로그래밍 언어, 객체 지향 프로그래밍 언어, 매크로 언어, 또는 그것들의 조합과 같은 컴퓨터 프로그래밍 언어로 작성될 수 있다.
이러한 프로그램들은 저장 시스템(606)에 저장될 수 있다. 저장 시스템은 휘발성 또는 비휘발성 매체에 정보를 보유할 수 있고, 고정되거나 삭제가능할 수 있다. 저장 시스템은 도 7에서 더 자세히 도시된다. 일반적으로 컴퓨터 판독가능 및 기록가능 비휘발성 기록 매체(701)를 포함하는데, 이곳에 신호가 저장되어 프로그램, 또는 프로그램에 의해 사용되는 정보를 정의한다. 매체는 예를 들면, 디스크 또는 플래쉬 메모리일 수 있다. 통상적으로, 동작시에, 프로세서(603)는 데이 터가 비휘발성 기록 장치(701)로부터 휘발성 메모리(702)(예를 들면, 랜덤 액세스 메모리, 즉 RAM)에 읽히게 하여 매체(701)보다 빠른 정보에 대한 액세스를 프로세서(603)에게 허용한다. 이 메모리(702)는 도 7에 도시된 것처럼, 저장 시스템(706)에 위치하거나, 도 6에 도시한 것처럼, 메모리 시스템(604)에 위치할 수 있다. 프로세서(603)는 일반적으로 통합된 회로 메모리(604, 702) 내의 데이터를 다루고 나서, 처리가 완료되고 나면 데이터를 매체(701)에 복사한다. 매체(701) 및 통합된 회로 메모리 구성요소(604, 702) 간의 데이터 이동을 관리하기 위한 각종 메커니즘들이 공지되어 있으며, 본 발명은 이에 한정되지는 않는다. 본 발명은 또한 특정한 메모리 시스템(604) 또는 저장 시스템(606)에 제한되지 않는다.
본 발명의 상술한 실시예는 임의의 수많은 방식으로 구현될 수 있음이 또한 이해되어야 한다. 예를 들면, 상술한 기능들은 하드웨어, 소프트웨어 또는 그것들의 조합을 이용하여 구현될 수 있다. 소프트웨어에 구현되는 경우에는, 하나의 컴퓨터에 제공되든지 또는 여러 대의 컴퓨터에 분산되든지 간에, 소프트웨어 코드가 임의의 적합한 프로세서 또는 프로세서들의 컬렉션에서 실행될 수 있다. 이 점에서는, 에이전트의 상술한 가능이 여러 프로세스 및/또는 시스템에 분산될 수 있다는 것이 이해되어야 한다. 본원에 설명된 기능을 수행하는 임의의 컴포넌트 또는 컴포넌트들의 컬렉션이 상술한 기능을 제어하는 하나 이상의 제어기로서 일반적으로 고려될 수 있음이 또한 이해되어야 한다. 하나 이상의 제어기는 하드웨어 전용으로서, 또는 상술한 기능을 수행하도록 마이크로코드 또는 소프트웨어를 사용하여 프로그램된 하나 이상의 프로세서를 사용함으로써 수많은 방식으로 구현될 수 있 다. 제어기가 운영 체제에 데이터를 저장 또는 제공할 때에는, 이러한 데이터는 중앙 리포지토리, 복수의 리포지토리, 또는 그것들의 조합에 저장될 수 있다.
이처럼 본 발명의 적어도 하나의 실시예의 몇 가지 상술된 양태와 함께, 당업자에게 각종 대안, 변경, 및 개선이 쉽게 떠오를 것이다. 이러한 대안, 변경, 및 개선은 이 명세서의 일부이며, 본 발명의 주제 및 범위 내에 속하는 것으로 여겨진다. 따라서, 상술한 설명 및 도면들은 단지 설명의 방법일 뿐이다.

Claims (20)

  1. 클라이언트 장치, 네트워크를 통해 통신하는 게이트웨이 시스템과 네트워크 리소스를 포함하는 시스템-상기 클라이언트는 상기 게이트웨이 시스템과의, 상기 네트워크를 통한 통신을 통해 상기 네트워크 리소스를 액세스할 수 있으며, 상기 네트워크 리소스는 상기 네트워크상에서 제1 네트워크 주소에 의해 식별되며, 상기 제1 네트워크 주소는 제1 포맷을 가지며, 상기 제1 포맷은 복수의 포맷 중 하나임-내의, 명령어가 기록된 적어도 하나의 컴퓨터 판독가능 매체로서, 상기 명령어는, 상기 게이트웨이 시스템에 의해 실행될 때에,
    (A) 상기 네트워크 리소스를 액세스하기 위한 제1 요청을 상기 클라이언트 장치로부터 수신하는 단계-상기 제1 요청은 상기 네트워크 리소스를 식별하기 위해 상기 클라이언트 장치에 의해 사용되는 이름 또는 네트워크 주소를 특정함-;
    (B) 상기 제1 요청이 이름을 특정하는지의 여부를 판정하는 단계; 및
    (C) 상기 제1 요청이 이름을 특정한다고 판정되면:
    (C1) 상기 이름에 기초하여 상기 네트워크 리소스에 대한 상기 제1 네트워크 주소를 결정하도록 제1 요청을 처리하는 단계;
    (C2) 상기 네트워크 리소스를 액세싱하는 데에 상기 클라이언트 장치에 의해 사용되기 위한 제2 네트워크 주소를 동적으로 발생시키는 단계-상기 제2 네트워크 주소는 단계 (B)가 수행되기 전에 상기 네트워크 리소스를 액세싱하는 데에 사용하기 위해 마련되지 않고, 상기 제2 네트워크 주소는 상기 제1 포맷에 부합 하는 것으로 제한되지 않음-;
    (C3) 상기 네트워크 리소스를 어드레싱하는 데에 사용하기 위해 상기 제2 네트워크 주소를 상기 클라이언트 장치에 제공하는 단계;
    (C4) 상기 네트워크 리소스를 액세스하기 위한 요청을 상기 클라이언트 장치로부터 수신하는 단계-상기 요청은 상기 제2 네트워크 주소로 전달됨-;
    (C5) 상기 제1 네트워크 주소에서 상기 네트워크 리소스와의 접속을 구축하는 단계;
    (C6) 상기 요청을 종료하는 단계; 및
    (C7) 상기 접속을 통해 상기 클라이언트 장치와 상기 네트워크 리소스 간의 통신을 돕는 단계
    를 포함하는 방법을 수행하는, 적어도 하나의 컴퓨터 판독가능 매체.
  2. 제1항에 있어서, 상기 단계 (C7)은 상기 클라이언트 장치와 상기 네트워크 리소스간의 상기 통신에 보안 정책을 부과하는 단계를 더 포함하는 적어도 하나의 컴퓨터 판독가능 매체.
  3. 제2항에 있어서, 상기 단계 (C7)은 상기 클라이언트 장치와 상기 네트워크 리소스간의 상기 통신이 바이러스를 포함하지 않음을 판정하는 단계를 포함하는 적어도 하나의 컴퓨터 판독가능 매체.
  4. 제1항에 있어서, 상기 단계 (C7)은 보안 소켓 계층(SSL: Secure Sockets Layer) 프로토콜을 통한, 상기 클라이언트 장치와 게이트웨이 시스템간의 통신을 돕는 단계를 더 포함하는 적어도 하나의 컴퓨터 판독가능 매체.
  5. 제1항에 있어서, 상기 단계 (C)는, 상기 제1 요청이 상기 제1 네트워크 주소를 특정한다고 판정하면,
    (C8) 상기 제1 네트워크 주소에서 상기 네트워크 리소스에 상기 제1 요청을 포워딩하는 단계
    를 더 포함하는 적어도 하나의 컴퓨터 판독가능 매체.
  6. 제5항에 있어서, 상기 클라이언트 장치는 피어-투-피어 네트워크상에서 제1 노드를 포함하고, 상기 게이트웨이 시스템은 상기 피어-투-피어 네트워크상에서 수퍼노드를 포함하며, 상기 네트워크 리소스는 상기 피어-투-피어 네트워크상에서 제2 노드를 포함하는 적어도 하나의 컴퓨터 판독가능 매체.
  7. 제5항에 있어서, 상기 단계 (C8)은, 상기 제1 요청을 상기 네트워크 리소스에 포워딩하기 전에, 상기 제1 요청을 지원하기에 충분한 대역폭이 상기 게이트웨이에 할당되었는지의 여부를 판정하는 단계, 및 충분한 대역폭이 할당되었음을 판정하면 상기 제1 요청을 포워딩하는 단계를 더 포함하는 적어도 하나의 컴퓨터 판독가능 매체.
  8. 제5항에 있어서, 상기 단계 (C8)은, 상기 제1 요청을 상기 네트워크 리소스에 포워딩하기 전에, 상기 제1 요청에 보안 정책을 부과하는 단계를 더 포함하는 적어도 하나의 컴퓨터 판독가능 매체.
  9. 제8항에 있어서, 상기 보안 정책을 부과하는 단계 (C8)은 상기 제1 요청이 바이러스를 포함하지 않는다고 판정하는 단계를 더 포함하는 적어도 하나의 컴퓨터 판독가능 매체.
  10. 제1항에 있어서, 상기 명령어가 실행되는 상기 게이트웨이 시스템은 하나의 장치를 포함하는 적어도 하나의 컴퓨터 판독가능 매체.
  11. 복수의 게이트웨이 시스템 및 네트워크 리소스를 포함하는 네트워크화된 시스템에서, 상기 복수의 게이트웨이 시스템 중 하나와의 통신을 통해 상기 네트워크 리소스를 액세스하도록 동작가능한 클라이언트 장치로서,
    상기 네트워크 리소스를 액세스하기 위한 요청이 발행되게 하도록 동작가능한 애플리케이션-상기 요청은 상기 네트워크 리소스를 식별하기 위해 상기 애플리케이션에 의해 사용되는 이름을 특정함-; 및
    상기 요청을 수신하고, 상기 요청을 수신하는 것에 응답하여, 상기 네트워크 리소스를 액세스하도록 상기 클라이언트와 통신하기 위한 상기 복수의 게이트웨이 시스템으로부터 제1 게이트웨이 시스템을 선택하기 위해 상기 요청을 처리-상기 선택은 상기 애플리케이션에 의해 특정된 상기 이름에 기초하고, 상기 제1 게이트웨이 시스템과의 접속을 초기화하도록 동작가능한 접속 제어기
    를 포함하는 클라이언트 장치.
  12. 제11항에 있어서, 상기 접속 제어기는, 상기 제1 게이트웨이 시스템과의 상기 접속을 구축하면, 상기 제1 게이트웨이 시스템에 의한, 상기 클라이언트 장치의 인증을 위해 유용한 제1 게이트웨이 시스템에 정보를 제공하도록 동작가능한 클라이언트 장치.
  13. 제11항에 있어서, 상기 애플리케이션은 이메일 클라이언트 애플리케이션이고 상기 네트워크 리소스는 이메일 서버인 클라이언트 장치.
  14. 제11항에 있어서, 상기 접속 제어기는 소프트웨어만을 통해 구현되는 클라이언트 장치.
  15. 제11항에 있어서, 상기 클라이언트 장치와 상기 게이트웨이 시스템 간의 통신은 SSL 프로토콜을 통해 일어나는 클라이언트 장치.
  16. 제11항에 있어서, 상기 시스템은 인터넷을 통해 상기 클라이언트 장치에 액 세스가능한 제2 네트워크 리소스를 포함하며,
    상기 애플리케이션은, 이름 보다는 네트워크 주소로 상기 제2 네트워크 리소스를 액세스하기 위한 제2 요청을 발행하도록 또한 동작가능하며,
    상기 접속 제어기는, 상기 제2 네트워크 리소스에 액세스하기 위해 상기 게이트웨이 시스템과의 접속이 구축되지 않아야 하는 것으로 판정하도록 상기 제2 요청을 처리하도록 또한 동작가능한
    클라이언트 장치.
  17. 클라이언트 장치, 복수의 게이트웨이 시스템 중 제1 게이트웨이 시스템, 및 네트워크 리소스를 포함하는 시스템으로서,
    상기 클라이언트 장치, 상기 제1 게이트웨이 시스템 및 상기 네트워크 리소스는 네트워크를 통해 통신하고, 상기 클라이언트 장치는 상기 네트워크를 통해 상기 제1 게이트웨이 시스템에 요청을 발행함으로써 상기 네트워크 리소스를 액세스하도록 동작가능하며, 상기 요청은 상기 네트워크 리소스를 식별하기 위해 상기 클라이언트 장치에 의해 사용되는 이름 또는 상기 네트워크상에서 상기 네트워크 리소스를 식별하는 데에 사용되는 네트워크 주소 중 어느 하나를 특정하고, 상기 제1 게이트웨이 시스템은 상기 요청이 네트워크 주소 또는 이름을 특정하는지의 여부를 판정하기 위해 상기 요청을 처리하며, 상기 요청이 이름을 특정한다고 판정되면, 상기 제1 게이트웨이 시스템에서의 상기 요청을 종료하고 상기 제1 게이트웨이 시스템과 상기 네트워크 리소스 간의 통신을 통해 상기 클라이언트 장치와 상기 네트 워크 리소스 간의 통신을 도우며, 상기 요청이 네트워크 주소를 특정한다고 판정되면, 상기 네트워크 주소에서 상기 네트워크 리소스에 상기 요청을 포워드하도록 동작가능하며, 상기 클라이언트는 상기 네트워크 리소스를 식별하기 위해 상기 클라이언트에 의해 사용되는 상기 이름에 기초하여 상기 요청을 수신하기 위해 상기 복수의 게이트웨이 시스템으로부터 상기 제1 게이트웨이 시스템을 선택하도록 동작가능한 시스템.
  18. 제17항에 있어서, 상기 요청은 SSL 프로토콜을 통해 전달되는 시스템.
  19. 제17항에 있어서, 상기 요청이 네트워크 주소를 특정한다고 판정되면, 상기 제1 게이트웨이 시스템은 상기 요청을 지원하기 위한 충분한 대역폭이 상기 게이트웨이 시스템에서 이용가능한지의 여부를 판정하도록 또한 동작가능한 시스템.
  20. 제17항에 있어서, 상기 제1 게이트웨이 시스템은 상기 요청에서 보안 정책을 부과하도록 또한 동작가능한 시스템.
KR1020087000549A 2005-07-08 2006-07-10 원격 네트워크 액세스를 위한 통일된 아키텍쳐 KR20080026161A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/178,219 2005-07-08
US11/178,219 US8166538B2 (en) 2005-07-08 2005-07-08 Unified architecture for remote network access

Publications (1)

Publication Number Publication Date
KR20080026161A true KR20080026161A (ko) 2008-03-24

Family

ID=37619732

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087000549A KR20080026161A (ko) 2005-07-08 2006-07-10 원격 네트워크 액세스를 위한 통일된 아키텍쳐

Country Status (11)

Country Link
US (1) US8166538B2 (ko)
EP (1) EP1902383A2 (ko)
JP (1) JP2009500968A (ko)
KR (1) KR20080026161A (ko)
CN (1) CN101218577B (ko)
AU (1) AU2006268313A1 (ko)
BR (1) BRPI0612400A2 (ko)
CA (1) CA2611554A1 (ko)
MX (1) MX2008000175A (ko)
RU (1) RU2007148416A (ko)
WO (1) WO2007008856A2 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100281509A1 (en) * 2007-01-18 2010-11-04 Thomson Licensing Prefix caching assisted quality of service aware peer-to-peer video on-demand
US8528058B2 (en) * 2007-05-31 2013-09-03 Microsoft Corporation Native use of web service protocols and claims in server authentication
US8613044B2 (en) * 2007-06-22 2013-12-17 4Dk Technologies, Inc. Delegating or transferring of access to resources between multiple devices
US8369343B2 (en) * 2008-06-03 2013-02-05 Microsoft Corporation Device virtualization
EP2148493A1 (en) * 2008-07-24 2010-01-27 Nokia Siemens Networks OY P2P overlay network for administrative services in a digital network
US20100146120A1 (en) * 2008-12-09 2010-06-10 Microsoft Corporation Caller-specific visibility masks for networking objects
US10142292B2 (en) 2010-06-30 2018-11-27 Pulse Secure Llc Dual-mode multi-service VPN network client for mobile device
US8549617B2 (en) 2010-06-30 2013-10-01 Juniper Networks, Inc. Multi-service VPN network client for mobile device having integrated acceleration
US8458787B2 (en) * 2010-06-30 2013-06-04 Juniper Networks, Inc. VPN network client for mobile device having dynamically translated user home page
US8127350B2 (en) 2010-06-30 2012-02-28 Juniper Networks, Inc. Multi-service VPN network client for mobile device
US8973088B1 (en) 2011-05-24 2015-03-03 Palo Alto Networks, Inc. Policy enforcement using host information profile
US20120331032A1 (en) * 2011-06-22 2012-12-27 Microsoft Corporation Remote Presentation Session Connectionless Oriented Channel Broker
US8875223B1 (en) 2011-08-31 2014-10-28 Palo Alto Networks, Inc. Configuring and managing remote security devices
US8862753B2 (en) 2011-11-16 2014-10-14 Google Inc. Distributing overlay network ingress information
WO2014068818A1 (ja) * 2012-10-31 2014-05-08 日本電気株式会社 Mplsネットワーク及びそれに用いるトラフィック制御方法
US9143481B2 (en) 2013-06-06 2015-09-22 Apple Inc. Systems and methods for application-specific access to virtual private networks
US8917311B1 (en) 2014-03-31 2014-12-23 Apple Inc. Establishing a connection for a video call
US9762625B2 (en) 2014-05-28 2017-09-12 Apple Inc. Device and method for virtual private network connection establishment
US20160095224A1 (en) * 2014-09-30 2016-03-31 Skyworks Solutions, Inc. Apparatus and methods related to ceramic device embedded in laminate substrate
CN105959345A (zh) * 2016-04-18 2016-09-21 Ubiix有限公司 企业网络服务加速方法、装置及所应用的代理服务器
US9985930B2 (en) 2016-09-14 2018-05-29 Wanpath, LLC Reverse proxy for accessing local network over the internet
CN108124301A (zh) * 2017-12-29 2018-06-05 深圳市智搜信息技术有限公司 一种无线ap的连接方法及其系统
US11876798B2 (en) * 2019-05-20 2024-01-16 Citrix Systems, Inc. Virtual delivery appliance and system with remote authentication and related methods

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5898830A (en) * 1996-10-17 1999-04-27 Network Engineering Software Firewall providing enhanced network security and user transparency
US6473406B1 (en) * 1997-07-31 2002-10-29 Cisco Technology, Inc. Method and apparatus for transparently proxying a connection
JPH11122301A (ja) * 1997-10-20 1999-04-30 Fujitsu Ltd アドレス変換接続装置
CA2228687A1 (en) * 1998-02-04 1999-08-04 Brett Howard Secured virtual private networks
JP3745616B2 (ja) * 2000-11-24 2006-02-15 株式会社エヌ・ティ・ティ・ドコモ 中継装置
JP3616571B2 (ja) 2001-01-04 2005-02-02 日本電気株式会社 インターネット中継接続におけるアドレス解決方式
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
JP4237055B2 (ja) 2001-09-28 2009-03-11 ファイバーリンク コミュニケーションズ コーポレーション クライアント側網アクセス・ポリシー及び管理アプリケーション
US7389533B2 (en) * 2002-01-28 2008-06-17 Hughes Network Systems, Llc Method and system for adaptively applying performance enhancing functions
EP1532539B1 (en) * 2002-06-06 2015-12-09 Pulse Secure, LLC Method and system for providing secure access to private networks
US7447751B2 (en) * 2003-02-06 2008-11-04 Hewlett-Packard Development Company, L.P. Method for deploying a virtual private network
JP4173517B2 (ja) * 2003-03-05 2008-10-29 インテリシンク コーポレイション コンピューティング・ネットワークとリモート装置との間のバーチャル・プライベート・ネットワーク
US7305705B2 (en) 2003-06-30 2007-12-04 Microsoft Corporation Reducing network configuration complexity with transparent virtual private networks
BR0318455A (pt) 2003-08-29 2006-09-12 Nokia Corp método, sistema e servidor de porta de comunicação para prover as regras para o acesso sem fio em uma conexão de túnel segura
CN1561040A (zh) * 2004-02-24 2005-01-05 武汉虹信通信技术有限责任公司 基于gprs/cdma2000 1x的通用无线透明vpn网桥系统传输方法
US7757074B2 (en) * 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network

Also Published As

Publication number Publication date
CN101218577A (zh) 2008-07-09
AU2006268313A1 (en) 2007-01-18
US8166538B2 (en) 2012-04-24
WO2007008856A3 (en) 2007-05-10
EP1902383A2 (en) 2008-03-26
US20070011733A1 (en) 2007-01-11
WO2007008856A2 (en) 2007-01-18
RU2007148416A (ru) 2009-07-10
MX2008000175A (es) 2008-03-26
JP2009500968A (ja) 2009-01-08
CA2611554A1 (en) 2007-01-18
BRPI0612400A2 (pt) 2010-11-03
WO2007008856A9 (en) 2007-07-05
CN101218577B (zh) 2010-10-06

Similar Documents

Publication Publication Date Title
KR20080026161A (ko) 원격 네트워크 액세스를 위한 통일된 아키텍쳐
US7852861B2 (en) Dynamic system and method for virtual private network (VPN) application level content routing using dual-proxy method
US20090300750A1 (en) Proxy Based Two-Way Web-Service Router Gateway
US7698388B2 (en) Secure access to remote resources over a network
JP5948362B2 (ja) コンピュータネットワークの動的な移行
US8458786B1 (en) Automated dynamic tunnel management
US8549613B2 (en) Reverse VPN over SSH
JP2006503525A (ja) 仮想ネットワーク構築のための装置、方法およびコンピュータプログラム製品
WO2002057917A2 (en) Peer-to-peer network computing platform
US11625280B2 (en) Cloud-native proxy gateway to cloud resources
US20100017500A1 (en) Methods and systems for peer-to-peer proxy sharing
CN113364741A (zh) 一种应用访问方法及代理服务器
US20230198987A1 (en) Systems and methods for controlling accessing and storing objects between on-prem data center and cloud
US10528759B2 (en) Application programming interface bridge for transporting a local request from a local client system to a target server system, and method thereof
US10785056B1 (en) Sharing a subnet of a logically isolated network between client accounts of a provider network
JP2009089062A (ja) 仮想ネットワークシステム及び仮想ネットワーク接続装置
JP2022147233A (ja) ネットワークシステム、接続方法およびプログラム
JP6359260B2 (ja) クラウド環境においてセキュアなクレジットカードシステムを実現するための情報処理システムおよびファイアウォール装置
US20230336531A1 (en) Method for establishing trusted data communications between networks
de Rooij et al. Exchange Hybrid
NL2034309A (en) Method and a system of tunneling traffic in a distributed network for detecting malware
Jemurzinov Authentication and authorization service for a community network

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid