KR20220153056A - 가상 캐리어 네트워크 - Google Patents

가상 캐리어 네트워크 Download PDF

Info

Publication number
KR20220153056A
KR20220153056A KR1020227035241A KR20227035241A KR20220153056A KR 20220153056 A KR20220153056 A KR 20220153056A KR 1020227035241 A KR1020227035241 A KR 1020227035241A KR 20227035241 A KR20227035241 A KR 20227035241A KR 20220153056 A KR20220153056 A KR 20220153056A
Authority
KR
South Korea
Prior art keywords
remote server
wireless network
network
tunnel
data
Prior art date
Application number
KR1020227035241A
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 KR20220153056A publication Critical patent/KR20220153056A/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]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/12Setup of transport tunnels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

모바일 디바이스(110)의 가상 네트워크(30)를 위한 방법(500)은, 사용자 애플리케이션(116)을 실행하고 제1 무선 네트워크(120) 및 제2 무선 네트워크에 동시에 연결된 모바일 디바이스에 대해, 복수의 원격 서버들로부터 한 원격 서버(130)를 선택하는 단계를 포함한다. 이 방법은, 제1 무선 네트워크 및 제2 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널(122)을 포함하는 가상 네트워크를 모바일 디바이스와 선택된 원격 서버 사이에 확립하는 단계를 또한 포함한다. 이 방법은, 가상 네트워크를 통해 사용자 애플리케이션으로부터의 데이터(50)를 선택된 원격 서버에 송신하는 단계를 또한 포함한다. 데이터는 선택된 원격 서버에 의해 수신될 때 선택된 원격 서버로 하여금 데이터를 목적지 서버(60)로 라우팅하게 한다.

Description

가상 캐리어 네트워크
본 개시내용은 사용자 디바이스에 대한 가상 캐리어 네트워크들에 관한 것이다.
모바일 디바이스들(예를 들어, 스마트 폰들) 및 다른 사용자 디바이스들은 전형적으로 다수의 상이한 무선 커넥션 기술들(예를 들어, 셀룰러, Wi-Fi, 블루투스 등)을 제공한다. 모바일 데이터의 비용들을 감소시키기 위해, 모바일 네트워크 오퍼레이터(mobile network operator)(MNO)들 및 모바일 가상 네트워크 오퍼레이터(mobile virtual network operator)(MNVO)들은 빈번하게, 부가적인 저비용 네트워크들(예를 들어, Wi-Fi 네트워크들)을 중재할 것이고, 가능하다면 고객 모바일 데이터를 셀룰러 커넥션들(예를 들어, 4G, 5G 등)로부터 더 저비용의 네트워크들 상으로 오프로딩할 것이다. 현대의 모바일 운영 체제들은 다수의 캐리어 네트워크들에 대해 편리한 이동성 솔루션들 또는 사용자 경험들을 제공하지 않는다.
본 개시내용의 하나의 양태는 모바일 디바이스에 대한 가상 캐리어 네트워크를 제공한다. 이 방법은, 사용자 애플리케이션을 실행하고 모바일 가상 네트워크 오퍼레이터(MVNO)와 연관된 제1 무선 네트워크 및 동일한 MVNO와 연관된 제2 무선 네트워크에 동시에 연결된 모바일 디바이스에 대해, 데이터 프로세싱 하드웨어에 의해, 복수의 원격 서버들로부터 한 원격 서버를 선택하는 단계를 포함한다. 복수의 원격 서버들의 각각의 원격 서버는 지리적 위치와 연관된다. 이 방법은, 데이터 프로세싱 하드웨어에 의해, 모바일 디바이스와 선택된 원격 서버 사이에 가상 네트워크를 확립하는 단계를 또한 포함한다. 가상 네트워크는, 제1 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널, 및 제2 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널을 포함한다. 이 방법은, 데이터 프로세싱 하드웨어에 의해, 제1 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널 중 하나를 통해 또는 제2 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널 중 하나를 통해 사용자 애플리케이션으로부터의 데이터를 가상 네트워크를 통해 선택된 원격 서버에 송신하는 단계를 또한 포함한다. 데이터는 선택된 원격 서버에 의해 수신될 때 선택된 원격 서버로 하여금 데이터를 목적지 서버로 라우팅하게 한다.
본 개시내용의 구현들은 다음의 임의적인 피처(feature)들 중 하나 이상을 포함할 수도 있다. 일부 구현들에서, 제1 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널은, 제1 서비스의 데이터를 지원하는 제1 터널 및 제2 서비스의 데이터를 지원하는 제2 터널을 포함한다. 제2 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널은, 제1 서비스의 데이터를 지원하는 제3 터널 및 제2 서비스의 데이터를 지원하는 제4 터널을 포함할 수도 있다. 이 구현에서, 사용자 애플리케이션으로부터의 데이터를 가상 네트워크를 통해 선택된 원격 서버에 송신하는 단계는, 사용자 애플리케이션에 기초하여, 제1 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 제1 터널 또는 제2 터널, 또는 제2 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 제3 터널 또는 제4 터널을 선택하는 단계를 포함한다.
일부 예들에서, 제1 서비스는 인터넷 서비스를 포함하고, 제2 서비스는 테더링 서비스(tethering service)를 포함한다. 임의로, 이 방법은, 사용자 애플리케이션으로부터의 데이터를 선택된 원격 서버에 송신하는 단계 후에, 데이터 프로세싱 하드웨어에 의해, 모바일 디바이스를 제3 무선 네트워크에 연결하는 단계를 더 포함한다. 제3 무선 네트워크는 사용자 무선 충실도(Wireless Fidelity)(Wi-Fi) 네트워크를 포함한다. 이 예에서, 이 방법은, 데이터 프로세싱 하드웨어에 의해, 사용자 애플리케이션으로부터의 데이터를 제3 무선 네트워크를 통해 목적지 서버에 송신하는 단계를 또한 포함한다.
복수의 원격 서버들로부터 원격 서버를 선택하는 단계는, 복수의 원격 서버들의 각각의 원격 서버의 지리적 위치에 기초할 수도 있다. 일부 구현들에서, 이 방법은, 복수의 원격 서버들로부터 원격 서버를 선택하는 단계에 앞서, 데이터 프로세싱 하드웨어에 의해, 네트워크 선호도에 기초하여 제1 무선 네트워크 또는 제2 무선 네트워크로부터 선호되는 무선 네트워크를 선택하는 단계를 더 포함한다. 여기서, 복수의 원격 서버들로부터 원격 서버를 선택하는 단계는, 선택된 선호되는 무선 네트워크에 기초한다. 일부 예들에서, 이 방법은, 선호되는 무선 네트워크를 선택하는 단계 후에, 데이터 프로세싱 하드웨어에 의해, 복수의 원격 서버들의 각각의 원격 서버의 지리적 위치에 기초하여 복수의 원격 서버들로부터 제2 원격 서버를 선택하는 단계를 더 포함한다. 이 방법은, 데이터 프로세싱 하드웨어에 의해, 모바일 디바이스와 선택된 제2 원격 서버 사이에 제2 가상 네트워크를 확립하는 단계, 및 데이터 프로세싱 하드웨어에 의해, 사용자 애플리케이션으로부터의 데이터를 제2 가상 네트워크를 통해 선택된 제2 원격 서버에 송신하는 단계를 또한 포함할 수도 있다. 데이터는 선택된 제2 원격 서버에 의해 수신될 때 선택된 제2 원격 서버로 하여금 데이터를 목적지 서버로 라우팅하게 한다.
임의로, 사용자 애플리케이션은 가상 사설 네트워크(virtual private network)(VPN) 애플리케이션을 포함한다. 목적지 서버는, VPN 애플리케이션과 연관된 VPN 서버를 포함할 수도 있다. 일부 구현들에서, 이 방법은, 데이터 프로세싱 하드웨어에 의해, 제1 무선 네트워크가 제2 무선 네트워크와 동일한 MVNO와 연관되는지 여부를 결정하는 단계를 더 포함한다. 일부 예들에서, 제1 무선 네트워크는 셀룰러 네트워크를 포함하고, 제2 무선 네트워크는 무선 충실도(Wi-Fi) 네트워크를 포함한다.
본 개시내용의 다른 양태는 모바일 디바이스에 대한 가상 캐리어 네트워크를 확립하기 위한 시스템을 제공한다. 이 시스템은, 모바일 디바이스의 데이터 프로세싱 하드웨어, 및 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는, 데이터 프로세싱 하드웨어 상에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령어들을 저장한다. 이 동작들은, 사용자 애플리케이션을 실행하고 모바일 가상 네트워크 오퍼레이터(MVNO)와 연관된 제1 무선 네트워크 및 동일한 MVNO와 연관된 제2 무선 네트워크에 동시에 연결된 모바일 디바이스에 대해, 복수의 원격 서버들로부터 한 원격 서버를 선택하는 것을 포함한다. 복수의 원격 서버들의 각각의 원격 서버는 지리적 위치와 연관된다. 이 동작들은, 모바일 디바이스와 선택된 원격 서버 사이에 가상 네트워크를 확립하는 것을 또한 포함한다. 가상 네트워크는, 제1 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널, 및 제2 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널을 포함한다. 이 동작들은, 제1 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널 중 하나를 통해 또는 제2 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널 중 하나를 통해 사용자 애플리케이션으로부터의 데이터를 가상 네트워크를 통해 선택된 원격 서버에 송신하는 것을 또한 포함한다. 데이터는 선택된 원격 서버에 의해 수신될 때 선택된 원격 서버로 하여금 데이터를 목적지 서버로 라우팅하게 한다.
이 양태는 다음의 임의적인 피처들 중 하나 이상을 포함할 수도 있다. 일부 구현들에서, 제1 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널은, 제1 서비스의 데이터를 지원하는 제1 터널 및 제2 서비스의 데이터를 지원하는 제2 터널을 포함한다. 제2 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 적어도 하나의 터널은, 제1 서비스의 데이터를 지원하는 제3 터널 및 제2 서비스의 데이터를 지원하는 제4 터널을 포함할 수도 있다. 이 구현에서, 사용자 애플리케이션으로부터의 데이터를 가상 네트워크를 통해 선택된 원격 서버에 송신하는 것은, 사용자 애플리케이션에 기초하여, 제1 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 제1 터널 또는 제2 터널, 또는 제2 무선 네트워크를 통한 모바일 디바이스와 선택된 원격 서버 사이의 제3 터널 또는 제4 터널을 선택하는 것을 포함한다.
일부 예들에서, 제1 서비스는 인터넷 서비스를 포함하고, 제2 서비스는 테더링 서비스를 포함한다. 임의로, 이 동작들은, 사용자 애플리케이션으로부터의 데이터를 선택된 원격 서버에 송신하는 것 후에, 모바일 디바이스를 제3 무선 네트워크에 연결하는 것을 더 포함한다. 제3 무선 네트워크는 사용자 무선 충실도(Wi-Fi) 네트워크를 포함한다. 이 예에서, 이 동작들은, 사용자 애플리케이션으로부터의 데이터를 제3 무선 네트워크를 통해 목적지 서버에 송신하는 것을 또한 포함한다.
복수의 원격 서버들로부터 원격 서버를 선택하는 것은, 복수의 원격 서버들의 각각의 원격 서버의 지리적 위치에 기초할 수도 있다. 일부 구현들에서, 이 동작들은, 복수의 원격 서버들로부터 원격 서버를 선택하는 것에 앞서, 네트워크 선호도에 기초하여 제1 무선 네트워크 또는 제2 무선 네트워크로부터 선호되는 무선 네트워크를 선택하는 것을 더 포함한다. 여기서, 복수의 원격 서버들로부터 원격 서버를 선택하는 것은, 선택된 선호되는 무선 네트워크에 기초한다. 일부 예들에서, 이 동작들은, 선호되는 무선 네트워크를 선택하는 것 후에, 복수의 원격 서버들의 각각의 원격 서버의 지리적 위치에 기초하여 복수의 원격 서버들로부터 제2 원격 서버를 선택하는 것을 더 포함한다. 이 동작들은, 모바일 디바이스와 선택된 제2 원격 서버 사이에 제2 가상 네트워크를 확립하는 것, 및 사용자 애플리케이션으로부터의 데이터를 제2 가상 네트워크를 통해 선택된 제2 원격 서버에 송신하는 것을 또한 포함할 수도 있다. 데이터는 선택된 제2 원격 서버에 의해 수신될 때 선택된 제2 원격 서버로 하여금 데이터를 목적지 서버로 라우팅하게 한다.
임의로, 사용자 애플리케이션은 가상 사설 네트워크(VPN) 애플리케이션을 포함한다. 목적지 서버는, VPN 애플리케이션과 연관된 VPN 서버를 포함할 수도 있다. 일부 구현들에서, 이 동작들은, 제1 무선 네트워크가 제2 무선 네트워크와 동일한 MVNO와 연관되는지 여부를 결정하는 것을 더 포함한다. 일부 예들에서, 제1 무선 네트워크는 셀룰러 네트워크를 포함하고, 제2 무선 네트워크는 무선 충실도(Wi-Fi) 네트워크를 포함한다.
본 개시내용의 하나 이상의 구현의 세부사항들이 아래의 설명 및 첨부 도면들에 제시된다. 다른 양태들, 피처들, 및 이점들이 이 설명 및 도면들로부터, 그리고 청구범위로부터 명백해질 것이다.
도 1은 2개 이상의 캐리어 무선 네트워크를 통해 모바일 디바이스에 대한 가상 캐리어 네트워크를 제공하기 위한 예시적인 시스템의 개략도이다.
도 2는 가상 캐리어 네트워크 관리자의 예시적인 컴포넌트들의 개략도이다.
도 3은 가상 캐리어 네트워크 관리자 및 사용자 네트워크 관리자의 개략도이다.
도 4a 및 도 4b는 이동성 앵커(mobility anchor)들을 스위칭하는 가상 캐리어 네트워크 관리자의 개략도들이다.
도 5는 모바일 디바이스에 대한 가상 캐리어 네트워크를 제공하는 방법에 대한 동작들의 예시적인 배열의 흐름도이다.
도 6은 본 명세서에서 설명되는 시스템들 및 방법들을 구현하는 데 사용될 수도 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
다양한 도면들에서 동일한 참조 부호들은 동일한 요소들을 표시한다.
모바일 네트워크 오퍼레이터(MNO)들 및 모바일 가상 네트워크 오퍼레이터(MVNO)들과 같은 캐리어들은 다수의 이종 네트워크 타입들(예를 들어, 셀룰러 네트워크들 및 Wi-Fi 네트워크들)을 통한 연결성을 점점 더 제공하고 있다. 캐리어들은 트래픽을 더 저렴한 네트워크들로(예를 들어, 셀룰러로부터 Wi-Fi로) 시프트시킴으로써 데이터 비용들을 줄이기 위해 기회적 데이터 오프로드를 사용할 수도 있다. 그러나, 종래의 모바일 운영 체제(operating system)들(OS)은, 모바일 디바이스가 네트워크들 사이에서 스위칭할 때 연결성의 드롭들 및/또는 열악한 사용자 경험으로 이어지는 기본 네트워크(underlying network)들의 추상화(abstraction)를 제공하지 않는다.
이 문제점을 해결하기 위한 현재 기법들은 일반적으로, 가상 사설 네트워크(VPN)를 다수의 무선 네트워크들에 걸쳐 원격 VPN 서버로 확장하는 것을 수반한다. 이것은 모바일 디바이스와 사용자에 대한 일부 네트워크 추상화를 제공하지만, 그것은 또한 몇몇 결점들을 겪는다. 예를 들어, VPN은, 사용자-중재된 네트워크(user-mediated network)들(예컨대, 홈 Wi-Fi 네트워크)을 포함하는, 모바일 디바이스에 연결된 모든 네트워크들로부터의 트래픽을 집계한다. 사용자-중재된 네트워크를 통한 데이터가 이제 VPN 서비스를 통과해야 하므로, 이것은 프라이버시 이슈들을 초래하고 일반적으로, 적어도, 사용자로부터의 동의를 요구한다. 더욱이, VPN은 사용자 디바이스 상의 다수의 프로파일들에 대한 또는 상이한 데이터 서비스들(예를 들어, 테더링)에 대한 어떠한 이동성도 제공하지 않는다. 즉, 전형적으로 모든 프로파일들 및 모든 데이터 서비스들은 동일한 VPN을 사용해야 한다. 또 다른 예로서, VPN은 사용자가 이들 자신의 VPN 애플리케이션을 사용하는 것을 제약한다. 게다가, 많은 경우들에서, VPN들은 사용자-제어가능하고, 그에 따라 기껏해야 누출 추상화(leaky abstraction)를 제공한다.
본 명세서의 구현들은 무선 네트워크 오퍼레이터(예를 들어, 모바일 가상 네트워크 오퍼레이터(MVNO))와 연관된 다수의 무선 네트워크들과 사용자 디바이스 사이에 가상 네트워크(예를 들어, 가상 캐리어 네트워크)를 확립하기 위해 사용자 디바이스 상에서 실행되는 가상 캐리어 네트워크 관리자에 관한 것이다. 가상 네트워크는, 이동성 앵커로서 기능하도록 복수의 원격 서버들로부터 선택된 원격 서버를 포함한다. 가상 네트워크는, 사용자 디바이스와 선택된 원격 서버 사이의 하나 이상의 터널을 또한 포함한다. 사용자 디바이스 상에서 실행되는 애플리케이션들은 데이터를 가상 네트워크의 하나 이상의 터널을 통해 선택된 원격 서버로 전송 및 수신하는데, 이 선택된 원격 서버는 데이터를 목적지 서버로 라우팅한다.
이제 도 1을 참조하면, 일부 구현들에서, 예시적인 무선 통신 환경(예를 들어, 시스템)(100)은, 동시에 적어도 2개의 무선 네트워크(120, 120a-b)를 통해 외부 네트워크(40)와 통신하는 모바일 디바이스(110)(본 명세서에서 "사용자 디바이스"라고도 또한 지칭됨)를 포함한다. 예를 들어, 사용자 디바이스(110)는 캐리어 셀룰러 네트워크(120a) 및 캐리어 Wi-Fi 네트워크(120b)를 통해 외부 네트워크(40)와 통신할 수도 있다. 이들 무선 네트워크들(120)은 단지 예시적이고 사용자 디바이스(110)는 임의의 수의 다른 타입들의 무선 네트워크(예를 들어, 민간 광대역 라디오 서비스(Citizens Broadband Radio Service)(CBRS), 블루투스 등)를 사용하여 외부 네트워크(40)와 통신할 수도 있다. 캐리어 셀룰러 네트워크(120a)는, 일반 패킷 라디오 서비스(General Packet Radio Service)(GPRS) 네트워크, 유니버셜 모바일 전기통신 시스템(Universal Mobile Telecommunications System)(UMTS) 네트워크, 고속 패킷 액세스(High Speed Packet Access)(HSPA) 네트워크, 향상된-HSPA(H+) 네트워크, 모바일 통신용 글로벌 시스템(GSM)에 대한 향상된 데이터 레이트(EDGE) 네트워크, 롱 텀 에볼루션(Long-Term Evolution)(LTE) 라디오 액세스 네트워크(radio access network)(RAN)(예를 들어, 4G/5G LTE), 또는 데이터 패킷들(50)(본 명세서에서 단순히 "데이터"라고도 또한 지칭됨)의 라디오 통신 및/또는 외부 네트워크(40)로부터 사용자 디바이스(110)로 예를 들어 매크로-셀 이볼브드 노드 B(macro-cell evolved Node B)들(MeNB)과 같은 기지국들을 통한 다른 서비스들을 지원하는 5G NR(New Radio) 네트워크를 포함할 수도 있다. Wi-Fi 네트워크(120b)는, 데이터 패킷들(50)의 라디오 통신을 또한 지원하는 Wi-Fi의 임의의 버전(예를 들어, 802.11n, 802.11ac 등)을 포함할 수도 있다. 일부 예들에서, 사용자 디바이스(110)는 동일한 타입의 다수의 무선 네트워크들(120)에 동시에 연결한다. 예를 들어, 사용자 디바이스(110)는, 상이한 액세스 포인트들을 갖는 다수의 캐리어 Wi-Fi 네트워크들(120b) 또는 상이한 캐리어들(70)에 의해 운영되는 2개의 별개의 캐리어 셀룰러 네트워크(120a)에 동시에 연결하기 위한 능력들을 포함할 수도 있다.
캐리어 셀룰러 네트워크(120a)는, 캐리어 셀룰러 네트워크(120a)를 통해 가입 사용자 디바이스(110)에 무선 통신들의 서비스들을 제공하는 모바일 가상 네트워크 오퍼레이터(MNVO) 또는 모바일 네트워크 오퍼레이터(MNO)와 연관된다. MNO 또는 MVNO는 무선 서비스 제공자, 무선 캐리어, 셀룰러 회사, 모바일 네트워크 오퍼레이터, 또는 모바일 네트워크 캐리어라고도 또한 지칭될 수도 있다. "캐리어"라는 용어는 본 명세서에서 MNO 또는 MVNO를 지칭하기 위해 사용될 수도 있다. "무선 네트워크 오퍼레이터"라는 용어는 본 명세서에서 무선 네트워크(120)를 운영 또는 중재하는 엔티티(entity)를 지칭하기 위해 사용될 수도 있는데, 이 엔티티는, 캐리어-중재된 무선 네트워크(120)를 운영/중재하는 캐리어(예를 들어, MNO 또는 MVNO) 또는 사용자-중재된 무선 네트워크(120)를 운영/중재하는 사용자(10)를 포함할 수도 있다.
본 명세서에서 사용되는 바와 같이, 캐리어-중재된 무선 네트워크(120)(본 명세서에서 단순히 "캐리어 무선 네트워크(120)"라고도 또한 지칭됨)는, 단일 특정 캐리어(70)(예를 들어, MNO 또는 MVNO)에 의해 관리 또는 중재 또는 제어되는 임의의 무선 네트워크(120)를 포함하고, 여기서 사용자 디바이스(110)는, 캐리어에 의해 제공되는 서비스에 가입한다. 즉, 사용자(10)는 무선 네트워크(120)를 제어 또는 관리하지 않는다. 캐리어-중재된 네트워크(120)는, 캐리어가 크리덴셜(credential)들을 제공한, 예컨대 캐리어-제공된 SIM 프로파일 또는 캐리어-제공된 SIM 프로파일에 의해 인증될 수 있는 캐리어-제공된 애플리케이션 중 어느 하나가 크리덴셜들을 제공한 네트워크이다. 예를 들어, 유니버셜 집적 회로 카드(universal integrated circuit card)(UICC) 상에 제공된 SIM 프로파일이 사용자 디바이스(110)가 캐리어 셀룰러 네트워크(120a)와 어태치 및 인증하게 한다. 또는, 캐리어 애플리케이션은 SIM 프로파일에 액세스하기 위해 운영 체제(OS)(111)에 의해 인증된다. 캐리어 애플리케이션은 캐리어의 개인 키로 암호화 서명되고, SIM 프로파일에 포함된 애플리케이션의 서명을 통해 인증될 수도 있다. 캐리어 애플리케이션은, 예를 들어, 캐리어 Wi-Fi 액세스 포인트들에 액세스하기 위한 크리덴셜들을 제공하기 위해 운영 체제(111)에 의해 인가된다. 일부 예들에서, 인증된 캐리어 애플리케이션은 WPA 패스워드 또는 Hotspot2.0 인증서를 제공할 수도 있거나; 또는, 크리덴셜들이 액세스 포인트에 연결하는 데 필요하지 않은 개방형 네트워크의 경우, 캐리어는 사용자 개입에 대한 필요성 없이 사용자 디바이스(110)로 하여금 액세스 포인트에 연결하게 하거나, 또는 사용자가 수락 또는 거부할 수 있는, 네트워크에 연결하라는 제안이 사용자에게 행해지게 한다. 개방형 무선 네트워크들(120)에 대한 캐리어-중재된 커넥션들의 경우에, 인터넷 액세스를 얻기 위한 "종속 포털(captive portal)"의 요건들을 만족시키기 위해 부가적인 단계, 예컨대 이용 약관(terms and conditions)을 수락하는 것, 또는 패스코드 또는 다른 로그인 정보를 제공하는 것이 필요할 수도 있다. 종속 포털들을 갖는 개방형 네트워크들(120)에 대한 캐리어-중재된 커넥션들의 경우, 캐리어는 사용자를 대신하여 약관을 수락하거나 또는 자동화된 방식으로 이메일 어드레스, 패스코드 또는 다른 로그인 정보를 제공할 수도 있다. 자동화된 방식은, WISPr과 같은 프로토콜들을 통해 또는 웹 양식들의 자동화된 제출을 통해 로그인 정보를 제공하는 것을 의미할 수도 있다. 단일 사용자 디바이스(110)가 다수의 캐리어-중재된 무선 네트워크들(120)을 동시에 지원할 수 있다.
사용자-중재된 무선 네트워크(120)는, 사용자-중재된 무선 네트워크(120)가 궁극적으로 사용자(10)에 의해 관리 또는 중재 또는 제어되도록 사용자 디바이스(110)가 명시적으로 가입하지 않는 무선 네트워크 오퍼레이터(예를 들어, 캐리어)(70)와 연관된 임의의 무선 네트워크(120)를 포함한다. 사용자-중재된 네트워크는, 사용자가, 필요한 경우, 예를 들어, 액세스 포인트에 연결하기 위한 이들 자신의 크리덴셜들, 예를 들어, WPA 패스워드 또는 사용자-설치된 인증서, 예를 들어, Hotspot2.0 인증서를 제공한 네트워크이거나; 또는, 액세스 포인트에 연결하기 위한 크리덴셜들이 필요하지 않은 개방형 네트워크의 경우, 사용자가, 리스트로부터 네트워크를 선택하는 것 또는 운영 체제에 의해 행해진 제안을 수락하는 것과 같은, 네트워크에 연결하기 위한 적극적인 액션을 취한 네트워크이다. 디바이스가 네트워크에 처음 노출될 때에만 임의의 선택이 단지 발생할 수도 있다. 사용자-중재된 개방형 네트워크들 상에서는, 인터넷 액세스를 얻기 위한 "종속 포털"의 요건들을 만족시키기 위해 부가적인 수동 단계들, 예컨대 이용 약관을 수락하는 것, 또는 이메일 어드레스, 패스코드 또는 다른 로그인 정보를 제공하는 것이 필요할 수도 있다.
단일 디바이스, 예를 들어, 액세스 포인트가 사용자-중재된 네트워크와 캐리어-중재된 네트워크 양측 모두에의 액세스를 제공할 수 있다. AP를 소유, 임대 또는 제어하는 사용자는 다른 사람들이 액세스 포인트를 사용하여 인터넷에 액세스하는 것을 가능하게 할 수 있는데, 예를 들어, 사용자는 사용자가 다른 사람들에게 제공하는 WEP 패스워드를 생성한다. 액세스 포인트는 그러한 방식으로 액세스할 때 사용자-중재된 네트워크에의 액세스를 제공한다. 케이블 서비스 제공자 또는 DSL 서비스 제공자는 동일한 액세스 포인트로부터의 캐리어-중재된 네트워크 서비스를 운영할 수도 있다. 캐리어 앱에 의해 프로비저닝된 HS2.0 인증서를 갖는 디바이스들이, 동일한 액세스 포인트에 자동으로 연결될 것이다. 어떠한 사용자 개입 또는 패스워드도 요구되지 않는다.
사용자가, 인터넷 서비스 제공자(Internet Service Provider)(ISP)에 대응하는 무선 네트워크 오퍼레이터(70)에 의해 제공되는 인터넷 서비스에 대한 계약을 가지며, 따라서 임의의 주어진 시간에 인터넷 서비스에 연결하도록 다수의 상이한 무선 가능 사용자 디바이스들(110) 중 임의의 하나를 선택할 수도 있는 일 예에서, 인터넷 서비스를 사용하기 위해 선택된 사용자 디바이스들(110)에 의해 액세스되는 무선 네트워크들(120)(예를 들어, 캐리어 Wi-Fi 네트워크들(120b))은 사용자-중재된 무선 네트워크들(120)에 대응한다. 여기서, 사용자(10)는, 인터넷 서비스에 연결되는 모뎀뿐만 아니라, 인터넷 서비스를 사용하기 위해 선택된 사용자 디바이스들(110)이 무선 커넥션들을 확립할 수도 있는 로컬 영역 네트워크(local area network)(LAN)를 제공하기 위해 모뎀과 통신하는 무선 액세스 포인트(access point)(AP)(예를 들어, 무선 라우터)를 제어할 수도 있다. 다른 예들에서, 사용자-중재된 무선 네트워크(120)는, 사용자 디바이스(110)와 사용자 디바이스(110)에 근접한 다른 디바이스 사이의 블루투스 커넥션(또는 다른 무선 커넥션)을 단순히 포함할 수도 있다. 다른 한편으로, 사용자(10)와 연관된 특정 사용자 디바이스(110)가, 특정 캐리어(70)(예를 들어, MNO 또는 MVNO)에 의해 제공되는 무선 통신들의 서비스들에 가입할 때, 무선 통신들의 서비스들을 수신하기 위해 가입 사용자 디바이스(110)에 의해 액세스되는 무선 네트워크들(120)(예를 들어, 셀룰러 및/또는 캐리어 Wi-Fi 네트워크들(120a, 120b))은 캐리어-중재된 무선 네트워크들(120)에 대응한다. 일부 구현들에서, 사용자 디바이스(110) 상에 설치된 가입자 식별 모듈(subscriber identity module)(SIM)은, 사용자 디바이스(110)가 특정 캐리어(70)와 연관된 캐리어-중재된 무선 네트워크들(120)에 연결하는 것을 가능하게 하고 이 사용자 디바이스를 인증하기 위해 특정 캐리어(70)에 의해 정의되는 프로파일을 포함한다. 그러나, 사용자(10)가 다른 사용자 디바이스들(110)을 특정 캐리어(70)와 연관된 이들 캐리어-중재된 무선 네트워크들(120)에 연결하기를 원하는 경우, 이들 다른 사용자 디바이스들(110) 각각은 특정 캐리어(70)에 의해 제공되는 무선 통신의 서비스들에 개별적으로 가입해야 한다. 이들 구현들에서, 사용자 디바이스(110)는, 특정 캐리어(70) 이외의 하나 이상의 무선 네트워크 오퍼레이터(70)와 연관된 사용자-중재된 무선 네트워크들(120)에 자유롭게 연결할 수도 있다. 사용자 디바이스(110)가 도시된 예에서 모바일 디바이스(110)로서 나타내지만, 사용자 디바이스(110)는, 태블릿, 랩톱, 데스크톱, 스마트 워치, 스마트 스피커, 스마트 디스플레이, 스마트 어플라이언스 등과 같은 - 제한 없음 -, 무선 네트워크들(120)에 연결하는 것이 가능한 임의의 디바이스를 포함할 수 있다.
사용자 디바이스(110)는 컴퓨팅 리소스들(112)(예를 들어, 데이터 프로세싱 하드웨어) 및/또는 저장 리소스들(114)(예를 들어, 메모리 하드웨어)을 포함한다. 데이터 프로세싱 하드웨어(112)는 운영 체제(111) 및 하나 이상의 사용자 소프트웨어 애플리케이션(116)을 실행한다. 데이터 프로세싱 하드웨어(112)는 가상 캐리어 네트워크 관리자(150)를 추가로 실행한다. 일부 구현들에서, 운영 체제(111)는 가상 캐리어 네트워크 관리자(150)의 기능성을 실행한다.
사용자 디바이스(110)는 다양한 상이한 운영 체제들(111)을 사용할 수도 있다. 사용자 디바이스(110)가 모바일 디바이스인 예들에서, 사용자 디바이스(110)는, Google Inc.에 의해 개발된 ANDROID®, Apple Inc.에 의해 개발된 IOS®, 또는 Microsoft Corporation에 의해 개발된 WINDOWS PHONE®을 포함하지만 이에 제한되지 않는 운영 체제를 실행할 수도 있다. 이에 따라, 사용자 디바이스(110) 상에서 실행되는 운영 체제(111)는 ANDROID®, IOS®, 또는 WINDOWS PHONE® 중 하나를 포함할 수도 있지만, 이에 제한되지 않는다. 일부 예들에서, 사용자 디바이스는, Microsoft Corporation에 의한 MICROSOFT WINDOWS®, Apple, Inc.에 의한 MAC OS®, 또는 Linux를 포함하지만 이에 제한되지 않는 운영 체제를 실행할 수도 있다.
사용자 디바이스(110)는 적어도 하나의 모뎀(165)(기저대역 또는 기저대역 프로세서라고도 또한 지칭됨)을 더 포함한다. 모뎀(165)은, 사용자 디바이스가 오퍼레이터 무선 네트워크들(120)과 무선으로 통신하는 것을 가능하게 하는 하나 이상의 안테나를 포함한다. 모뎀(165)은 다양한 주파수들(예를 들어, 700MHz, 900MHz, 2.4GHz, 5.0GHz 등)에서 동시에 동작하는 하나 이상의 라디오와 통신할 수도 있다. 모뎀(165)은, 송신 및 수신 기능들을 제공하기 위한 다양한 컴포넌트들(프로세서, 메모리 등)을 포함할 수도 있다. 일부 구현들에서, 데이터 프로세싱 하드웨어(112)는 모뎀(165)을 포함한다. 즉, 일부 예들에서 데이터 프로세싱 하드웨어(112)에 의해 실행되는 태스크들이 그 대신에 모뎀(165)에 의해 실행될 수도 있고 그 반대의 경우도 가능하다.
사용자 디바이스(110)는, 사용자 디바이스(110)를 식별하고 이를 특정 타입들의 캐리어-중재된 무선 네트워크들(120)과 연결하기 위한 하나 이상의 대응하는 가입자 식별 모듈(SIM)(118)을 더 포함한다. 예를 들어, SIM(118)은, 외부 네트워크(40)를 통해 목적지 서버(60)에 액세스하기 위해 캐리어 셀룰러 네트워크(120a)와 연결하도록 사용자 디바이스(110)를 인가하기 위한 크리덴셜들을 갖는 대응하는 SIM 프로파일을 포함할 수도 있다. 유사하게, SIM(118)은, 캐리어 셀룰러 네트워크(120a)를 관리하는 네트워크 오퍼레이터 이외의 무선 네트워크 오퍼레이터들(70)에 의해 관리되는 다른 캐리어-중재된 무선 네트워크들(120)과 연결하도록 사용자 디바이스(110)를 인가하기 위한 대응하는 크리덴셜들을 갖는 하나 이상의 부가적인 SIM 프로파일을 포함할 수도 있다. 일부 예들에서, 하나 이상의 SIM(118)은, 하나 이상의 임베디드 SIM(eSIM)과 하나 이상의 물리적 SIM의 임의의 조합을 포함한다.
가상 캐리어 네트워크 관리자(virtual carrier network manager)(150)(본 명세서에서 "VCN 관리자(150)"라고도 또한 지칭됨)는 사용자 디바이스(110)와 원격 서버(130, 130a-b) 사이에 가상 네트워크(30, 30a-b)(본 명세서에서 "가상 캐리어 네트워크" 또는 "VCN"이라고도 또한 지칭됨)를 확립한다. 아래에서 더 상세히 논의되는 바와 같이, VCN 관리자(150)는 복수의 원격 서버들(130) 간에서 원격 서버(130)를 선택한다. 각각의 원격 서버(130)는 지리적 위치와 연관될 수도 있다. 일부 예들에서, 지리적 위치들이 상이하다. 예를 들어, 제1 원격 서버(130a)는, 캐리어 셀룰러 네트워크(120a)를 지원하는 데이터센터와 연관된 지리적 위치에 또는 그 부근에 있는 지리적 위치와 연관된다. 즉, 캐리어 셀룰러 네트워크(120a)를 횡단하는 데이터 패킷들(50)이, 캐리어 셀룰러 네트워크(120a)와 연관된 하나 이상의 서버(도시되지 않음)에 의해 프로세싱된다. 제1 원격 서버(130a)는 지리적으로, 캐리어 셀룰러 네트워크(120a)를 지원하는 데이터 센터와 연관된 하나 이상의 서버 부근에 위치(예를 들어, 그 하나 이상의 서버에 "공동 배치(co-sited)" 또는 "공동 위치(co-located)")될 수도 있다. 유사하게, 제2 원격 서버(130b)는, 캐리어 Wi-Fi 네트워크(120b)를 지원하는 데이터센터에 또는 그 부근에 지리적으로 위치될 수도 있다. 다른 예들에서, 다수의 원격 서버들(130)은 동일한 지리적 위치를 갖는다. 예를 들어, 무선 네트워크(120)와 연관된 데이터 센터는 다수의 원격 서버들(130)을 포함한다.
VCN 관리자(150)는 모바일 디바이스(110)와 선택된 원격 서버(130) 사이에 가상 네트워크(30)를 확립한다. 예를 들어, VCN 관리자(150)가 제1 원격 서버(130a)를 선택할 때, VCN 관리자(150)는 모바일 디바이스(110)와 제1 원격 서버(130a) 사이에 제1 가상 네트워크(30, 30a)를 확립한다. 대안적으로, VCN 관리자(150)가 제2 원격 서버(130b)를 선택할 때, VCN 관리자(150)는 모바일 디바이스(110)와 제2 원격 서버(130b) 사이에 제2 가상 네트워크(30, 30b)를 확립한다. 가상 네트워크(30)는, 제1 무선 네트워크(120)(예를 들어, 캐리어 셀룰러 네트워크(120a))를 통한 모바일 디바이스(110)와 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122, 122Aa-n), 및 제2 무선 네트워크(120b)(예를 들어, 캐리어 Wi-Fi 네트워크(120b))를 통한 모바일 디바이스(110)와 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122, 122Ba-n)을 포함한다. 각각의 터널(122)은 캡슐화(예를 들어, 인터넷 프로토콜 보안(Internet Protocol Security)(IPSec) 등을 사용함)를 통해 그의 개개의 무선 네트워크(120)를 통해 사설 네트워크 통신들을 확립한다. 각각의 터널(122)은 사용자 디바이스(110)와 선택된 원격 서버(130) 사이에 보안 통신을 독립적으로 확립할 수도 있는데, 이는 (예를 들어, 인터넷 키 교환(Internet Key Exchange)(IKE)을 통해) 키 교환들을 수행하는 것 그리고 암호화 및 다른 보안 통신 프로시저들을 확립하는 것을 포함할 수도 있다. 일부 구현들에서, VCN 관리자(150)는 (예를 들어, SIM(들)(118)을 통해) 하나 이상의 무선 네트워크 오퍼레이터(70)에 의해 제공되는 구성과 함께 IKE 라이브러리를 제어 평면으로서 그리고 IPSec를 데이터 평면으로서 사용한다. 이들 프로토콜들은 단지 예시적이고 VCN 관리자(150)는 임의의 다른 프로토콜들을 구현할 수도 있다는 것에 주목한다.
사용자 디바이스(110)는, 목적지 서버(60)와 통신하는 사용자 소프트웨어 애플리케이션(116)을 실행한다. 예를 들어, 사용자 소프트웨어 애플리케이션(116)은, 인터넷 브라우저, 게이밍 애플리케이션, 메시징 애플리케이션, 이메일 애플리케이션, 및/또는 무선 네트워크(120)를 통해 사용자 디바이스(110)에 대해 원거리에 있는 다른 디바이스들(예를 들어, 목적지 서버(60))과 통신하는 임의의 다른 애플리케이션을 포함한다. 일부 예들에서, 사용자 소프트웨어 애플리케이션(116)은 사용자 VPN 애플리케이션을 포함하고, 목적지 서버(60)는, VPN 애플리케이션과 연관된 VPN 서버를 포함한다. VCN 관리자(150)는, 사용자 디바이스(110)에 연결된 캐리어 무선 네트워크들(120) 중 하나를 통한 터널들(122) 중 하나를 통해 사용자 소프트웨어 애플리케이션(116)으로부터의 데이터 패킷들(50)을 가상 네트워크(30)를 통해 선택된 원격 서버(130)에 송신한다. 선택된 원격 서버(130)는, 데이터 패킷들(50)을 수신할 때, 데이터 패킷들(50)을 외부 네트워크(40)를 통해 목적지 서버(60)로 포워딩한다. 마찬가지로, (외부 네트워크(40)를 통해) 목적지 서버(60)로부터 선택된 원격 서버(130)에 의해 수신된 데이터 패킷들(50)이 (터널들(122)을 통해) 사용자 디바이스(110) 및 사용자 소프트웨어 애플리케이션(116)에 송신되어, 따라서 외부 네트워크(40)와 무선 네트워크들(120) 중 하나 이상을 통해 사용자 소프트웨어 애플리케이션(16)과 목적지 서버(60) 사이의 양방향 통신을 확립한다.
외부 네트워크(40)는, 무선 네트워크들(120)을 운영하는 캐리어(70) 또는 사용자 디바이스(110)와 관련된 임의의 네트워크로부터 독립적일 수도 있다. 목적지 서버(60)는, 사용자 디바이스(110) 상에서 실행되는 사용자 소프트웨어 애플리케이션(116)이 데이터 패킷들(50)을 전송 또는 수신하는 임의의 원격 서버일 수도 있다. 예를 들어, 목적지 서버(60)는, 웹 콘텐츠를 호스팅하는 웹 서버일 수도 있다.
소프트웨어 애플리케이션(즉, 소프트웨어 리소스)은, 컴퓨팅 디바이스로 하여금 태스크를 수행하게 하는 컴퓨터 소프트웨어를 지칭할 수도 있다. 일부 예들에서, 소프트웨어 애플리케이션은 "애플리케이션", "앱", 또는 "프로그램"이라고 지칭될 수도 있다. 예시적인 애플리케이션들은 시스템 진단 애플리케이션들, 시스템 관리 애플리케이션들, 시스템 유지관리 애플리케이션들, 워드 프로세싱 애플리케이션들, 스프레드시트 애플리케이션들, 메시징 애플리케이션들, 미디어 스트리밍 애플리케이션들, 소셜 네트워킹 애플리케이션들, 및 게이밍 애플리케이션들을 포함하지만, 이에 제한되지 않는다.
이제 도 2를 참조하면, 일부 구현들에서, 사용자 디바이스(110)는 상이한 서비스들 및/또는 능력들에 대해 상이한 사용자 소프트웨어 애플리케이션들(즉, 서비스 애플리케이션들)(116)을 실행한다. 예를 들어, 사용자 디바이스(110)는, 제1 서비스 또는 능력을 요구 또는 사용하는 제1 서비스 애플리케이션들(116, 116A)을 실행한다. 제1 서비스 애플리케이션들(116A)은, 인터넷에의 액세스를 요구하는 사용자 애플리케이션들 예컨대 브라우저들 또는 이메일 애플리케이션들을 포함할 수도 있다. 사용자 디바이스(110)는, 제2 서비스 또는 능력을 요구 또는 사용하는 제2 서비스 애플리케이션들(116, 116B)을 또한 실행할 수도 있다. 예를 들어, 제2 서비스 애플리케이션들(116B)은, 사용자 디바이스(110)를 다른 인접 디바이스들에 테더링하는 테더링 애플리케이션들과 같은 플랫폼 애플리케이션들(예를 들어, OS 애플리케이션)을 포함한다. 사용자 디바이스(110)는, 단문 메시지 서비스(short message service)(SMS), 멀티미디어 메시징 서비스(multimedia messaging service)들(MMS), 리치 통신 서비스(rich communication service)들(RCS), 보조 글로벌 포지셔닝 시스템(global positioning system)(GPS), 음성 인터넷 프로토콜(voice over Internet Protocol)(VoIP) 등과 같은 추가의 서비스들 또는 능력들을 지원 또는 요구하는 서비스 애플리케이션들(116)(예를 들어, 제3 서비스 애플리케이션들)의 클래스들의 임의의 조합을 실행할 수도 있다.
일부 예들에서, VCN 관리자(150)는, 하나 이상의 타입의 서비스 애플리케이션(116)과 각각이 인터페이싱하는 하나 이상의 서비스 커넥터(210, 210a-b)를 포함한다. 예를 들어, 제1 서비스 커넥터(210a)는 제1 서비스 애플리케이션들(116A)로부터 데이터 패킷들(50)을 수신하는 한편, 제2 서비스 커넥터(210b)는 제2 서비스 애플리케이션들(116B)로부터 데이터 패킷들(50)을 수신한다. 각각의 서비스 커넥터(210)는 각각의 무선 네트워크(120)에 대해 사용자 디바이스(110)와 선택된 원격 서버(130) 사이에 터널(122)을 확립할 수도 있다. 도시된 예에서, 제1 서비스 커넥터(210a)는 제1 서비스 애플리케이션들(116A)로부터 수신된 데이터(50)에 대해 제1 무선 네트워크(120a)를 통한 사용자 디바이스(110)와 선택된 원격 서버(130) 사이의 제1 터널(122a)을 확립한다. 제2 서비스 커넥터(210b)는 제2 서비스 애플리케이션들(116B)로부터 수신된 데이터(50)에 대해 제1 무선 네트워크(120a)를 통한 사용자 디바이스(110)와 선택된 원격 서버(즉, 선택된 이동성 앵커)(130) 사이의 제2 터널(122b)을 확립한다. 마찬가지로, 제1 서비스 커넥터(210a)는 제1 서비스 애플리케이션(116A)으로부터 수신된 데이터(50)에 대해 제2 무선 네트워크(120b)를 통한 사용자 디바이스(110)와 선택된 원격 서버(130) 사이의 제3 터널(122c)을 확립하고, 제2 서비스 커넥터(210b)는 제2 서비스 애플리케이션들(116B)로부터 수신된 데이터(50)에 대해 제2 무선 네트워크(120b)를 통한 사용자 디바이스(110)와 선택된 원격 서버(130) 사이의 제4 터널(122d)을 확립한다.
따라서, 이 예에서, 제1 무선 네트워크(120a)를 통한 사용자 디바이스(110)와 선택된 원격 서버(130) 사이의 터널들(122)은, 제1 서비스 애플리케이션(116A)에 의해 통신되는 제1 서비스(예를 들어, 인터넷 서비스)의 데이터(50)를 지원하는 제1 터널(122a), 및 제2 서비스 애플리케이션(116B)에 의해 통신되는 제2 서비스(예를 들어, 테더링 서비스)의 데이터(50)를 지원하는 제2 터널(122b)을 포함한다. 유사하게, 제2 무선 네트워크(120b)를 통한 사용자 디바이스(110)와 선택된 원격 서버(130) 사이의 터널들(122)은, 제1 서비스 애플리케이션(116A)에 의해 통신되는 제1 서비스의 데이터(50)를 지원하는 제3 터널(122c), 및 제2 서비스 애플리케이션(116B)에 의해 통신되는 제2 서비스의 데이터(50)를 지원하는 제4 터널(122d)을 포함한다. 일부 구현들에서, VCN 관리자(150)는 개개의 사용자 소프트웨어 애플리케이션(116)(예를 들어, 어떤 사용자 소프트웨어 애플리케이션(116)이 데이터(50)를 송신하는지)에 기초하여, 제1 무선 네트워크(120a)를 통한 사용자 디바이스(110)와 선택된 원격 서버(130) 사이의 제1 터널(1222a) 또는 제2 터널(122b), 또는 제2 무선 네트워크(120b)를 통한 사용자 디바이스(110)와 선택된 원격 서버(130) 사이의 제3 터널(122c) 또는 제4 터널(122d)을 선택함으로써, 서비스 애플리케이션들(116)로부터의 데이터(50)를 가상 네트워크(30)를 통해 선택된 원격 서버(130)로 송신한다.
서비스 커넥터들(210)은 사용자 소프트웨어 애플리케이션들(116)로부터 이격된 물리적 무선 네트워크들(120)을 추상화하는 동안(즉, 데이터(50)를 송신하기 위해 서비스 커넥터(210)가 선택한 터널(122) 또는 물리적 무선 네트워크(120)에 관계없이 커넥션이 사용자 소프트웨어 애플리케이션(116)에 동일하게 보인다) 데이터 서비스들을 구분하는 유연성을 유지한다. 무선 네트워크 오퍼레이터들(70) 및/또는 사용자들(10)은, 가격, 우선순위, 가입 레벨들 등을 포함하는 다수의 이유들로 데이터 서비스 구분을 사용할 수도 있다. 예를 들어, MNO 또는 MVNO는 서비스들 양측 모두가 궁극적으로는 동일한 목적지 서버(60)와 통신하게 될 때에도 표준 인터넷 데이터(50)와는 별개로 테더링 서비스들을 통해 송신되는 데이터(50)를 청구 또는 추적할 수도 있다. 한편, 서비스 커넥터들(210)에 의해 제공되는 네트워크 추상화는, VCN 관리자(150)가 사용자 소프트웨어 애플리케이션들(116)에 영향을 미치는 일 없이 데이터(50)를 송신할 무선 네트워크(120)를 일방적으로 선택하게 하는데, 이는 VCN 관리자(150)가 그 대신에 사용자 소프트웨어 애플리케이션들(116)에 단일의 가상화된 네트워크 커넥션을 제시하기 때문이다. 따라서, 가상 네트워크(30)가 제공하는 서비스들 대 기본 물리적 무선 네트워크들(120) 사이에는 엄격한 상관이 없다. 다시 말해, VCN 관리자(150)는 단일 터널(122)을 사용하여 모든 서비스들을 터널링하거나 또는 각각의 개별 서비스를 상이한 독립 터널들(122)로 분할할 수도 있다. 달리 말하면, 터널(122)은 가상 엔드포인트들로부터의 서비스들을 노출, 재매핑, 또는 은닉할 수도 있다. 5G 무선 네트워크(120)에 연결될 때 그리고 5G 슬라이싱이 시행 중일 때, VCN 관리자(150)는 각각의 슬라이스를 기본 서비스로서 취급할 수도 있고 노출된 서비스들을 적절하게 재매핑시킬 수도 있다.
일부 구현들에서, VCN 관리자(150)는 사용자(10) 및/또는 사용자 소프트웨어 애플리케이션들(116)이 물리적 캐리어 무선 네트워크들(120)에 대한 가시성 또는 제어를 갖지 않고 그 대신에 가상 네트워크(30)에 대한 커넥션과 단지 인터페이싱하도록 사용자(10) 및 사용자 소프트웨어 애플리케이션들(116)에 가상 네트워크(30)만을 단지 제공한다. 따라서, VCN 관리자(150)는 사용된 기본 무선 네트워크들(120)에 관계없이 연속적이고 신뢰성있는 연결성을 제공하는 일관된 네트워크 커넥션을 사용자(10) 및/또는 사용자 소프트웨어 애플리케이션들(116)에 제공하고, VCN 관리자(150)는 물리적 무선 네트워크들(120)을 구현 세부사항들로서 취급하고 무선 네트워크들(120)을 통해 송신된 데이터(50)를 보호한다.
각각의 서비스 커넥터(210)가 다수의 터널들(122)을 확립할 수도 있고, 이때 각각의 터널(122)이 구별되는 능력들을 지원하기 때문에, MVNO들과 같은 엔티티들은 가능한 한 유연하게 이들의 네트워크들을 구성할 수도 있다. 예를 들어, MNO-바운드 서비스(MNO-bound service)들은 서비스 커넥터들(210)이 MVNO-바운드 서비스들을 배타적으로 터널링하는 동안 정상적으로 계속 작동할 수도 있다.
일부 구현들에서, VCN 관리자(150)는 특정 사용자 소프트웨어 애플리케이션들(116)이 특정 물리적 무선 네트워크들(120) 또는 서비스 커넥터들(210)에 액세스하는 것을 제약하거나 또는 그렇지 않으면 차단한다. 즉, VCN 관리자(150)는, 사용자 디바이스(110) 상에서 실행되는 일부 또는 전부의 사용자 소프트웨어 애플리케이션들(116)에 대한 액세스 제약들을 부과할 수도 있다. 예를 들어, VCN 관리자(150)는, 인터넷 능력을 지원하는 서비스 커넥터(210)를 제외한 모든 서비스 커넥터들(210)로부터 고레벨 사용자 소프트웨어 애플리케이션들(116)(예를 들어, 이메일 애플리케이션들)을 제약할 수도 있다. 즉, VCN 관리자(150)는, 이메일 애플리케이션이, 예를 들면, 테더링을 지원하는 서비스 커넥터(210)에 액세스하는 것을 제약할 수도 있다. 또 다른 예에서, VCN 관리자(150)는, 캐리어 애플리케이션들(160)(즉, 특정 무선 네트워크 오퍼레이터(70)와 연관된 애플리케이션들)이 다른 캐리어들의 무선 네트워크들(120)에 액세스하는 것을 제약할 수도 있다. 즉, 서비스 커넥터들(210)은 사용자 디바이스(110)가 하나 초과의 무선 네트워크 오퍼레이터(70)로부터의 무선 네트워크들(120)에 연결될 때, 단지 동일한 캐리어(70)에 의해 운영되는 무선 네트워크들(120)에 대한 커넥션들만을 집계하고, 서비스 애플리케이션들(즉, 캐리어 애플리케이션들)(116)이 다른 캐리어 무선 네트워크들(120)에 액세스하는 것을 금지할 수도 있다. 임의로, VCN 관리자(150)는, 사용자 소프트웨어 애플리케이션(116)이 위치 권한을 제공하지 않는 한, 위치 감지 무선 네트워크들(120)(예를 들어, 캐리어 Wi-Fi 네트워크들)의 액세스 또는 가시성으로부터 사용자 소프트웨어 애플리케이션들(116)을 제약한다.
VCN 관리자(150)는, 일부 구현들에서, 사용자 디바이스(110)에 연결된 각각의 무선 네트워크(120)와 연관된 무선 네트워크 오퍼레이터(70)를 결정한다. 일부 예들에서, VCN 관리자(150)는 제1 무선 네트워크(120a)가 제2 무선 네트워크(120b)와 동일한 네트워크 오퍼레이터(70)와 연관되는지 여부를 결정한다. 예를 들어, VCN 관리자(150)는 사용자 디바이스(110) 상에 설치 및/또는 실행되는 하나 이상의 캐리어 애플리케이션(116)에 질의할 수도 있다. 캐리어 애플리케이션들(116)은 각각 특정 캐리어/무선 네트워크 오퍼레이터(70), 예를 들어, MNO 또는 MVNO와 연관될 수도 있다. 무선 네트워크 오퍼레이터(70)는 캐리어 애플리케이션(116)에 디지털 서명할 수도 있고, VCN 관리자(150)는, 사용자 디바이스(110)의 SIM(118)에 저장되거나 또는 이와 연관된 암호화 키들을 통해 디지털 서명을 검증할 수도 있다.
VCN 관리자(150)는 각각의 사용자 소프트웨어 애플리케이션(116)을 분류하고, 분류에 기초하여 액세스 제약들을 결정할 수도 있다. 예를 들어, VCN 관리자(150)는 애플리케이션들(116)을 플랫폼(즉, OS) 애플리케이션들, 시스템 애플리케이션들, 캐리어 애플리케이션들, 및 사용자 애플리케이션들로서 분류할 수도 있다. VCN 관리자(150)는 사용자 소프트웨어 애플리케이션(116)의 분류에 기초하여 어떤 무선 네트워크들(120) 및 서비스 커넥터들(210)이 가시적인지 그리고/또는 액세스가능한지를 제어할 수도 있다.
일부 예들에서, VCN 관리자(150)는 사용자 디바이스(110)의 하나 이상의 SIM(118)에 의해 정의된 다수의 프로파일들에 걸쳐 가상 네트워크들(30)을 관리한다. 예를 들어, 일부 사용자들(10)은 사용자 디바이스(110) 상의 개인 프로파일과 직장 프로파일 양측 모두를 포함할 수도 있다. 이들 프로파일들은 동일한 또는 상이한 무선 네트워크 오퍼레이터들(70)에 가입할 수도 있다. VCN 관리자(150)는 현재 액티브한 프로파일(들)에 기초하여 어떤 무선 네트워크들(120)이 가상 네트워크(30), 선호되는 무선 네트워크들 등에 포함되는지를 조정할 수도 있다.
이제 도 3을 참조하면, 일부 구현들에서, 사용자 디바이스(110)는 홈 Wi-Fi 네트워크와 같은 사용자-중재된 네트워크(120, 120U)에 연결한다. 여기서, 사용자 디바이스(110)는 VCN 관리자(150)에 부가적으로 사용자 네트워크 관리자(310)를 실행한다. 이 예에서, 사용자 소프트웨어 애플리케이션들(116)(및/또는 사용자(10) 및/또는 OS(111))은 VCN 관리자(150)를 통한 가상 네트워크(30)(즉, 캐리어 무선 네트워크들(120) 중 하나)를 통해 또는 사용자 네트워크 관리자(310)를 통한 사용자-중재된 네트워크(120U)를 통해 목적지 서버(60)와 통신하도록 선택한다. 즉, 일부 예들에서, 사용자-중재된 네트워크들(120U)은 VCN 관리자(150) 및 가상 네트워크(30)와 독립적이다. 사용자 네트워크 관리자(310)는 사용자 디바이스(110)로부터의 데이터 패킷들(50)을 목적지 서버(60)에 대한 사용자-중재된 네트워크(120U)를 통해 (그리고 가능하다면 부가적인 외부 네트워크를 통해) 목적지 서버(60)에 송신하고 VCN 관리자(150), 가상 네트워크(30), 및 선택된 원격 서버(130)를 우회한다. 따라서, 사용자-중재된 네트워크들(120U)을 횡단하는 데이터(50)가 원격 서버(130)에 의해 수신되지 않는데, 이는 프라이버시 및 동의 우려들을 완화시킨다.
이제 도 4a를 참조하면, 일부 구현들에서, VCN 관리자(150)는 복수의 원격 서버들(130) 각각의 상이한 지리적 위치에 기초하여 원격 서버(130)를 선택한다. 도시된 예에서, 사용자 디바이스(110)는 사용자(10)의 거주지(410)에 위치되고 캐리어 Wi-Fi 네트워크(120b)의 범위 내에 있다. 네트워크 선호도(450)에 기초하여, VCN 관리자(150)는 캐리어 셀룰러 네트워크(120a)에 비해 선호되는 무선 네트워크(120)로서 캐리어 Wi-Fi 네트워크(120b)를 선택한다. 네트워크 선호도(450)는 비용, 신뢰성, 레이턴시, 혼잡성, 대역폭, 위치, 전송 타입, 도메인 네임 시스템(domain name system)(DNS) 프라이버시, 셀룰러 라디오 액세스 기술(RAT), 신호 강도, 현재 액티브한 링크, 링크의 비신뢰성, 사용자 디바이스(110)의 이동 또는 속도 등과 같은 인자들을 포함할 수도 있다. 예를 들어, 범위에 있을 때, 캐리어 Wi-Fi 네트워크들(120b)은 캐리어 셀룰러 네트워크들(120a)보다 더 저렴하고 더 신뢰성있는 경향이 있고, 그에 따라 캐리어 Wi-Fi 네트워크들(120b)은 이용가능할 때 캐리어 셀룰러 네트워크들(120a)에 비해 때때로 선호된다. VCN 관리자(150)는, 네트워크 선호도(450)에 영향을 미치는 연결된 무선 네트워크들(120) 중 하나 이상에 대한 네트워크 통계들을 수신할 수도 있다. 무선 네트워크 오퍼레이터(70)는 (예를 들어, 사용자 소프트웨어 애플리케이션(116) 또는 SIM(118)을 통해) 네트워크 선호도(450)의 일 부분에 영향을 줄 수도 있다.
VCN 관리자(150)는 원격 서버(130)의 지리적 위치 및/또는 선택된 선호되는 무선 네트워크에 기초하여 원격 서버(130)를 선택할 수도 있다. 도 4a의 예를 계속하면, 원격 서버(130b)의 지리적 위치는 캐리어 Wi-Fi 네트워크(120b)의 데이터 센터에 또는 그 부근에 있고, 원격 서버(130a)의 지리적 위치는 캐리어 셀룰러 네트워크(120a)의 상이한 데이터 센터에 또는 그 부근에 있다. 사용자 디바이스(110)가, (예를 들어, 사용자 디바이스(110)의 지리적 위치, 선호되는 무선 네트워크(120), 네트워크 선호도(450) 등으로 인해) 캐리어 셀룰러 네트워크(120a)와는 대조적으로, 캐리어 Wi-Fi 네트워크(120b)를 통해 데이터(50)를 주로 송신하면, VCN 관리자(150)는, 예를 들어, 데이터(50)가 이동해야 하는 더 짧은 거리로 인해 원격 서버(130a)를 선택하는 것에 비해, 데이터(50)에 대해 일반적으로 감소된 레이턴시를 제공하는 캐리어 Wi-Fi 네트워크 데이터 센터에 대한 원격 서버(130b)의 근접성으로 인해 원격 서버(130b)를 선택한다.
원격 서버(130b)를 선택한 후에, VCN 관리자(150)는 캐리어 셀룰러 네트워크(120a)와 캐리어 Wi-Fi 네트워크(120b) 양측 모두를 통한 사용자 디바이스(110)와 선택된 원격 서버(130b) 사이의 터널들(122)을 통해 가상 네트워크(30)를 확립한다. 사용자 소프트웨어 애플리케이션들(116)은 데이터(50)를 터널들(122)을 통해 선택된 원격 서버(130b)에 송신하는데, 이 선택된 원격 서버는 차례로 데이터(50)를 외부 네트워크(40)를 통해 목적지 서버(60)로 라우팅한다.
이제 도 4b를 참조하면, 이 예에서, 사용자(10)는 차량(420)을 통해 이동하고 있다. 여기서, VCN 관리자(150)는 복수의 원격 서버들(130) 각각의 상이한 지리적 위치에 기초하여 복수의 원격 서버들(130) 중 제2 원격 서버를 선택할 수도 있다. 예를 들어, 차량(420) 내의 사용자 디바이스(110)의 이동으로 인해, 캐리어 Wi-Fi 네트워크(120b)는 더 이상 실행가능한 선호되는 무선 네트워크(120)가 아니며 캐리어 셀룰러 네트워크(120a)가 선호되는 무선 네트워크(120)가 된다. 일부 예들에서, 이것은 VCN 관리자(150)로 하여금 새로운 선호되는 무선 네트워크(120)에 더 적합한 새로운 "이동성 앵커"(즉, 원격 서버(130))를 선택하게 한다. 여기서, 원격 서버(130a)가 캐리어 셀룰러 네트워크(120a)에 대한 데이터 센터에 또는 그 부근에 지리적으로 위치되기 때문에, VCN 관리자(150)는 원격 서버(130b)에 비해 원격 서버(130a)를 선택한다.
일부 구현들에서, VCN 관리자(150)는 캐리어 셀룰러 네트워크(120a) 및 캐리어 Wi-Fi 네트워크(120b)를 통한 사용자 디바이스(110)와 선택된 원격 서버(130a) 사이의 터널들(122)을 통해 제2 가상 네트워크(30)를 확립한다. 사용자 소프트웨어 애플리케이션들(116)은 데이터(50)를 터널들(122)을 통해 선택된 원격 서버(130a)에 송신하는데, 이 선택된 원격 서버는 차례로 데이터(50)를 외부 네트워크(40)를 통해 목적지 서버(60)로 라우팅한다.
VCN 관리자(150)는 다수의 다른 이유들로 상이한 원격 서버들(130)(즉, 이동성 앵커들)을 선택할 수도 있다. 예를 들어, 원격 서버가 유지보수를 요구하거나 또는 장애를 겪을 때, VCN 관리자(150)는 상이한 원격 서버(130)를 선택할 수도 있다. VCN 관리자(150)는 비트 마일(bit miles), 레이턴시, 및 스루풋 우려들에 기초하여 상이한 원격 서버(130)를 선택할 수도 있다. VCN 관리자(150)는 제1 가상 네트워크(30)를 종료하기에 앞서 일 기간의 시간 동안 이동성을 유지하기 위해 제2 가상 네트워크(30)를 새롭게 선택된 원격 서버(130)와 확립한 후에 제1 가상 네트워크(30)를 이전에 선택된 원격 서버(130)와 유지(즉, 2개의 별개의 가상 네트워크들(30)을 유지)할 수도 있다. 즉, 이동성 앵커들은 종료에 앞서 일 기간의 시간 동안 사용되지 않을 수도 있다. VCN 관리자(150)는 원격 서버(130)에 의해 지원되는 서비스들에 기초하여 원격 서버(130)(즉, 이동성 앵커)를 선택할 수도 있다. 즉, 모든 원격 서버들(130)이 모든 서비스들을 지원하는 것은 아닐 수도 있다. 일부 지리적 위치들은 다수의 원격 서버들(130)을 포함할 수도 있고, 각각의 원격 서버(130)는 일부 오버랩된 또는 전혀 오버랩되지 않는 상이한 세트의 서비스들을 지원할 수도 있다. 따라서, VCN 관리자(150)는 특정 서비스들을 위해 또는 로드 밸런싱, 유지보수 등과 같은 다른 목적들을 위해 심지어 동일한 지리적 위치를 갖는 원격 서버들(130)을 선택할 수도 있다.
따라서, VCN 관리자(150)는 하나 이상의 물리적 무선 네트워크(120)의 위에 단일의 단일화된 네트워크 추상화를 제공하고, 사용자 소프트웨어 애플리케이션들(116)과 사용자들(10)에 대한 물리적 무선 네트워크들(120) 사이의 네트워크 연결성을 마이그레이션한다. VCN 관리자(150)는 동시에 사용자 디바이스(110)에 의해 제공되는 각각의 데이터 서비스(예를 들어, 인터넷, MMS, 테더링, VoIP 등)를 가상화하고, 사용자 디바이스(110)에 연결된 물리적 캐리어 무선 네트워크들(120)에 각각의 서비스를 적절하게 매핑시킨다. 이것은 VCN 관리자(150)가 사용자들(10)과 사용자 소프트웨어 애플리케이션들(116) 양측 모두에 대한 셀룰러 네트워크 커넥션을 완전히 에뮬레이팅하게 한다. VCN 관리자(150)는 로드 밸런싱, 유지보수 수행, 및 지리적 최적화를 위한 능력을 MNO 또는 MVNO에 제공하기 위해 상이한 이동성 앵커들(즉, 원격 서버들(130)) 사이에서 핸드오프할 수도 있다. VCN 관리자(150)는 종래의 가상화 계층에 비해 성능 오버헤드를 최소화시키는 동시에 또한 무선 네트워크 오퍼레이터들(70)이 네트워크 또는 인프라스트럭처 변경들 동안 상이한 이동성 앵커들로 스위칭함으로써 네트워크 신뢰성을 개선시키게 한다. 본 명세서의 예들은 통상적으로 제1 무선 네트워크(120a) 및 제2 무선 네트워크(120b)와 통신하는 사용자 디바이스(110)를 보여주지만, 사용자 디바이스(110) 및 VCN 관리자(150)는 임의의 수의 캐리어 무선 네트워크들(120)을 연결 및 관리할 수도 있다.
도 5는 가상 캐리어 네트워크를 모바일 디바이스(110)와 확립하는 방법(500)에 대한 동작들의 예시적인 배열의 흐름도이다. 방법(500)은, 동작 502에서, 사용자 소프트웨어 애플리케이션(116)을 실행하고 모바일 가상 네트워크 오퍼레이터(MVNO)와 연관된 제1 무선 네트워크(120a) 및 동일한 MVNO와 연관된 제2 무선 네트워크(120b)에 동시에 연결된 모바일 디바이스(110)에 대해, 데이터 프로세싱 하드웨어(112)에 의해, 복수의 원격 서버들(130) 중 하나를 선택하는 단계를 포함한다. 복수의 원격 서버들(130)의 각각의 원격 서버(130)는 상이한 지리적 위치와 연관된다.
방법(500)은, 동작 504에서, 데이터 프로세싱 하드웨어(112)에 의해, 모바일 디바이스(110)와 선택된 원격 서버(130) 사이에 가상 네트워크(30)를 확립하는 단계를 포함한다. 가상 네트워크(30)는, 제1 무선 네트워크(120a)를 통한 모바일 디바이스(110)와 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122), 및 제2 무선 네트워크(120b)를 통한 모바일 디바이스(110)와 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122)을 포함한다.
동작 506에서, 방법(500)은, 데이터 프로세싱 하드웨어(112)에 의해, 제1 무선 네트워크(120a)를 통한 모바일 디바이스(110)와 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122) 중 하나를 통해 또는 제2 무선 네트워크(120b)를 통한 모바일 디바이스(110)와 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122) 중 하나를 통해 사용자 소프트웨어 애플리케이션(116)으로부터의 데이터(50)를 가상 네트워크(30)를 통해 선택된 원격 서버(130)에 송신하는 단계를 포함한다. 데이터(50)는 선택된 원격 서버(130)에 의해 수신될 때 선택된 원격 서버(130)로 하여금 데이터(50)를 목적지 서버(60)로 라우팅하게 한다.
도 6은 본 문서에서 설명되는 시스템들 및 방법들을 구현하는 데 사용될 수도 있는 예시적인 컴퓨팅 디바이스(600)의 개략도이다. 컴퓨팅 디바이스(600)는 랩톱들, 데스크톱들, 워크스테이션들, 개인 휴대 정보 단말기(personal digital assistant)들, 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 표현하도록 의도된다. 여기에 도시된 컴포넌트들, 이들의 커넥션들 및 관계들, 그리고 이들의 기능들은 단지 예시적인 것으로 의도되고, 본 문서에서 설명 및/또는 청구되는 발명들의 구현들을 제한하는 것으로 의도되지 않는다.
컴퓨팅 디바이스(600)는, 프로세서(610), 메모리(620), 저장 디바이스(630), 메모리(620) 및 고속 확장 포트들(650)에 연결되는 고속 인터페이스/컨트롤러(640), 및 저속 버스(670) 및 저장 디바이스(630)에 연결되는 저속 인터페이스/컨트롤러(660)를 포함한다. 컴포넌트들(610, 620, 630, 640, 650, 및 660) 각각은 다양한 버스들을 사용하여 상호연결되고, 공통 마더보드 상에 또는 적절하다면 다른 방식들로 장착될 수도 있다. 프로세서(610)는, 고속 인터페이스(640)에 커플링되는 디스플레이(680)와 같은 외부 입/출력 디바이스 상에 그래픽 사용자 인터페이스(graphical user interface)(GUI)에 대한 그래픽 정보를 디스플레이하기 위해 메모리(620)에 또는 저장 디바이스(630) 상에 저장되는 명령어들을 포함하여, 컴퓨팅 디바이스(600) 내의 실행을 위한 명령어들을 프로세싱할 수 있다. 다른 구현들에서, 다수의 프로세서들 및/또는 다수의 버스들이, 적절하다면, 다수의 메모리들 및 타입들의 메모리와 함께 사용될 수도 있다. 또한, 다수의 컴퓨팅 디바이스들(600)이 연결될 수도 있는데, 이때 각각의 디바이스는 (예를 들어, 서버 뱅크, 블레이드 서버들의 그룹, 또는 멀티-프로세서 시스템으로서) 필요한 동작들의 부분들을 제공한다.
메모리(620)는 정보를 컴퓨팅 디바이스(600) 내에 비일시적으로 저장한다. 메모리(620)는 컴퓨터 판독가능 매체, 휘발성 메모리 유닛(들), 또는 비휘발성 메모리 유닛(들)일 수도 있다. 비일시적 메모리(620)는, 컴퓨팅 디바이스(600)에 의한 사용을 위해 일시적으로 또는 영구적으로 프로그램들(예를 들어, 명령어들의 시퀀스들) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수도 있다. 비휘발성 메모리의 예들은 플래시 메모리 및 판독 전용 메모리(read-only memory)(ROM)/프로그래밍가능 판독 전용 메모리(programmable read-only memory)(PROM)/소거가능 프로그래밍가능 판독 전용 메모리(erasable programmable read-only memory)(EPROM)/전자적 소거가능 프로그래밍가능 판독 전용 메모리(electronically erasable programmable read-only memory)(EEPROM)(예를 들어, 전형적으로 부팅 프로그램들과 같은 펌웨어에 대해 사용됨)를 포함하지만, 이에 제한되지 않는다. 휘발성 메모리의 예들은 랜덤 액세스 메모리(random access memory)(RAM), 동적 랜덤 액세스 메모리(dynamic random access memory)(DRAM), 정적 랜덤 액세스 메모리(static random access memory)(SRAM), 상 변화 메모리(phase change memory)(PCM)뿐만 아니라 디스크들 또는 테이프들을 포함하지만, 이에 제한되지 않는다.
저장 디바이스(630)는 컴퓨팅 디바이스(600)에 대한 대용량 저장을 제공하는 것이 가능하다. 일부 구현들에서, 저장 디바이스(630)는 컴퓨터 판독가능 매체이다. 다양한 상이한 구현들에서, 저장 디바이스(630)는, 저장 영역 네트워크 또는 다른 구성들에서의 디바이스들을 포함하여, 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 디바이스들의 어레이일 수도 있다. 부가적인 구현들에서, 컴퓨터 프로그램 제품은 정보 캐리어로 유형적으로(tangibly) 구체화된다. 컴퓨터 프로그램 제품은, 실행될 때, 상술된 것들과 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 메모리(620), 저장 디바이스(630), 또는 프로세서(610) 상의 메모리와 같은 컴퓨터 판독가능 또는 머신 판독가능 매체이다.
고속 컨트롤러(640)는 컴퓨팅 디바이스(600)에 대한 대역폭 집약적 동작들을 관리하는 한편, 저속 컨트롤러(660)는 더 낮은 대역폭 집약적 동작들을 관리한다. 그러한 직무 할당은 단지 예시적인 것이다. 일부 구현들에서, 고속 컨트롤러(640)는 메모리(620), 디스플레이(680)(예를 들어, 그래픽 프로세서 또는 가속기를 통해)에, 그리고 다양한 확장 카드들(도시되지 않음)을 수용할 수도 있는 고속 확장 포트들(650)에 커플링된다. 일부 구현들에서, 저속 컨트롤러(660)는 저장 디바이스(630) 및 저속 확장 포트(690)에 커플링된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수도 있는 저속 확장 포트(690)는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입/출력 디바이스, 또는 스위치 또는 라우터와 같은 네트워킹 디바이스에, 예를 들어, 네트워크 어댑터를 통해 커플링될 수도 있다.
컴퓨팅 디바이스(600)는 이 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수도 있다. 예를 들어, 그것은 표준 서버(600a)로서 또는 그러한 서버들(600a)의 그룹에서 다수 회, 랩톱 컴퓨터(600b)로서, 또는 랙 서버 시스템(600c)의 일부로서 구현될 수도 있다.
본 명세서에서 설명되는 시스템들 및 기법들의 다양한 구현들은 디지털 전자 및/또는 광학 회로부, 집적 회로부, 특수하게 설계된 ASIC(application specific integrated circuit)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이들 다양한 구현들은, 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 이들에게 데이터 및 명령어들을 송신하도록 커플링되는, 특수 목적 또는 범용일 수도 있는 적어도 하나의 프로그래밍가능 프로세서를 포함하는 프로그래밍가능 시스템 상에서 실행가능한 그리고/또는 해석가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있다.
이들 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드라고도 또한 알려져 있음)은 프로그래밍가능 프로세서에 대한 머신 명령어들을 포함하고, 고레벨 절차형 및/또는 객체 지향형 프로그래밍 언어로, 그리고/또는 어셈블리/머신 언어로 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, "머신 판독가능 매체" 및 "컴퓨터 판독가능 매체"라는 용어들은, 머신 판독가능 신호로서 머신 명령어들을 수신하는 머신 판독가능 매체를 포함하여, 머신 명령어들 및/또는 데이터를 프로그래밍가능 프로세서에 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 비일시적 컴퓨터 판독가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광학 디스크들, 메모리, 프로그래밍가능 로직 디바이스(Programmable Logic Device)(PLD)들)를 지칭한다. "머신 판독가능 신호"라는 용어는, 머신 명령어들 및/또는 데이터를 프로그래밍가능 프로세서에 제공하는 데 사용되는 임의의 신호를 지칭한다.
본 명세서에서 설명되는 프로세스들 및 로직 흐름들은, 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하도록 하나 이상의 컴퓨터 프로그램을 실행하는, 데이터 프로세싱 하드웨어라고도 또한 지칭되는 하나 이상의 프로그램가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 특수 목적 로직 회로부, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 또한 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 양측 모두의 마이크로프로세서들, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이들 양측 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은, 명령어들을 수행하기 위한 프로세서, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크, 또는 광학 디스크를 포함하거나, 또는 이들로부터 데이터를 수신하거나 또는 이들로 데이터를 전송하기 위해 동작적으로 커플링되거나, 또는 이들 양측 모두로 될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요가 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체들은, 예로서 반도체 메모리 디바이스들, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로부에 의해 보충되거나 또는 그에 포함될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 개시내용의 하나 이상의 양태는 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터, 또는 터치 스크린, 그리고 임의로 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스, 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들이 또한 사용자와의 상호작용을 제공하는 데 사용될 수 있고; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대, 시각 피드백, 청각 피드백, 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 스피치, 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 부가적으로, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 전송하고 디바이스로부터 문서들을 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써 사용자와 상호작용할 수 있다.
다수의 구현들이 설명되었다. 그럼에도 불구하고, 본 개시내용의 사상 및 범주로부터 벗어남이 없이 다양한 수정들이 이루어질 수도 있다는 것이 이해될 것이다. 이에 따라, 다른 구현들이 다음의 청구범위의 범주 내에 있다.

Claims (20)

  1. 방법(500)으로서,
    사용자 애플리케이션(116)을 실행하고 모바일 가상 네트워크 오퍼레이터(mobile virtual network operator)(MVNO)(70)와 연관된 제1 무선 네트워크(120) 및 동일한 MVNO(70)와 연관된 제2 무선 네트워크(120)에 동시에 연결된 모바일 디바이스(110)에 대해, 데이터 프로세싱 하드웨어(112)에 의해, 복수의 원격 서버들(130)로부터 한 원격 서버(130)를 선택하는 단계 - 상기 복수의 원격 서버들(130)의 각각의 원격 서버(130)는 지리적 위치와 연관됨 -;
    상기 데이터 프로세싱 하드웨어(112)에 의해, 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이에 가상 네트워크(30)를 확립하는 단계 - 상기 가상 네트워크(30)는, 상기 제1 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122), 및 상기 제2 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122)을 포함함 -; 및
    상기 데이터 프로세싱 하드웨어(112)에 의해, 상기 제1 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122) 중 하나를 통해 또는 상기 제2 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122) 중 하나를 통해 상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 가상 네트워크(30)를 통해 상기 선택된 원격 서버(130)에 송신하는 단계
    를 포함하고,
    상기 데이터(50)는 상기 선택된 원격 서버(130)에 의해 수신될 때 상기 선택된 원격 서버(130)로 하여금 상기 데이터(50)를 목적지 서버(60)로 라우팅하게 하는, 방법(500).
  2. 제1항에 있어서,
    상기 제1 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122)은, 제1 서비스의 데이터(50)를 지원하는 제1 터널(122) 및 제2 서비스의 데이터(50)를 지원하는 제2 터널(122)을 포함하고;
    상기 제2 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122)은, 상기 제1 서비스의 데이터(50)를 지원하는 제3 터널(122) 및 상기 제2 서비스의 데이터(50)를 지원하는 제4 터널(122)을 포함하고;
    상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 가상 네트워크(30)를 통해 상기 선택된 원격 서버(130)에 송신하는 단계는, 상기 사용자 애플리케이션(116)에 기초하여, 상기 제1 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 상기 제1 터널(122) 또는 상기 제2 터널(122), 또는 상기 제2 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 상기 제3 터널(122) 또는 상기 제4 터널(122)을 선택하는 단계를 포함하는, 방법(500).
  3. 제2항에 있어서,
    상기 제1 서비스는 인터넷 서비스를 포함하고, 상기 제2 서비스는 테더링 서비스(tethering service)를 포함하는, 방법(500).
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 선택된 원격 서버(130)에 송신하는 단계 후에:
    상기 데이터 프로세싱 하드웨어(112)에 의해, 상기 모바일 디바이스(110)를 제3 무선 네트워크(120U)에 연결하는 단계 - 상기 제3 무선 네트워크(120U)는 사용자 무선 충실도(Wireless Fidelity)(Wi-Fi) 네트워크를 포함함 -; 및
    상기 데이터 프로세싱 하드웨어(112)에 의해, 상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 제3 무선 네트워크(120U)를 통해 상기 목적지 서버(60)에 송신하는 단계
    를 더 포함하는, 방법(500).
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 복수의 원격 서버들(130)로부터 원격 서버(130)를 선택하는 단계는, 상기 복수의 원격 서버들(130)의 각각의 원격 서버(130)의 지리적 위치에 기초하는, 방법(500).
  6. 제5항에 있어서,
    상기 복수의 원격 서버들(130)로부터 원격 서버(130)를 선택하는 단계에 앞서:
    상기 데이터 프로세싱 하드웨어(112)에 의해, 네트워크 선호도(450)에 기초하여 상기 제1 무선 네트워크(120) 또는 상기 제2 무선 네트워크(120)로부터 선호되는 무선 네트워크(120)를 선택하는 단계
    를 더 포함하고,
    상기 복수의 원격 서버들(130)로부터 원격 서버(130)를 선택하는 단계는, 상기 선택된 선호되는 무선 네트워크(120)에 기초하는, 방법(500).
  7. 제6항에 있어서,
    상기 선호되는 무선 네트워크(120)를 선택하는 단계 후에:
    상기 데이터 프로세싱 하드웨어(112)에 의해, 상기 복수의 원격 서버들(130)의 각각의 원격 서버(130)의 지리적 위치에 기초하여 상기 복수의 원격 서버들(130)로부터 제2 원격 서버(130)를 선택하는 단계;
    상기 데이터 프로세싱 하드웨어(112)에 의해, 상기 모바일 디바이스(110)와 상기 선택된 제2 원격 서버(130) 사이에 제2 가상 네트워크(30)를 확립하는 단계; 및
    상기 데이터 프로세싱 하드웨어(112)에 의해, 상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 제2 가상 네트워크(30)를 통해 상기 선택된 제2 원격 서버(130)에 송신하는 단계
    를 더 포함하고,
    상기 데이터(50)는 상기 선택된 제2 원격 서버(130)에 의해 수신될 때 상기 선택된 제2 원격 서버(130)로 하여금 상기 데이터(50)를 상기 목적지 서버(60)로 라우팅하게 하는, 방법(500).
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 사용자 애플리케이션(116)은 가상 사설 네트워크(virtual private network)(VPN) 애플리케이션(116)을 포함하고, 상기 목적지 서버(60)는, 상기 VPN 애플리케이션(116)과 연관된 VPN 서버를 포함하는, 방법(500).
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 데이터 프로세싱 하드웨어(112)에 의해, 상기 제1 무선 네트워크(120)가 상기 제2 무선 네트워크(120)와 동일한 MVNO(70)와 연관되는지 여부를 결정하는 단계
    를 더 포함하는, 방법(500).
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 제1 무선 네트워크(120)는 셀룰러 네트워크를 포함하고, 상기 제2 무선 네트워크(120)는 무선 충실도(Wi-Fi) 네트워크를 포함하는, 방법(500).
  11. 시스템(100)으로서,
    모바일 디바이스(110)의 데이터 프로세싱 하드웨어(112); 및
    상기 데이터 프로세싱 하드웨어(112)와 통신하는 메모리 하드웨어(114)
    를 포함하고,
    상기 메모리 하드웨어(114)는, 상기 데이터 프로세싱 하드웨어(112) 상에서 실행될 때 상기 데이터 프로세싱 하드웨어(112)로 하여금 동작들을 수행하게 하는 명령어들을 저장하고,
    상기 동작들은:
    사용자 애플리케이션(116)을 실행하고 모바일 가상 네트워크 오퍼레이터(MVNO)(70)와 연관된 제1 무선 네트워크(120) 및 동일한 MVNO(70)와 연관된 제2 무선 네트워크(120)에 동시에 연결된 상기 모바일 디바이스(110)에 대해, 복수의 원격 서버들(130)로부터 한 원격 서버(130)를 선택하는 것 - 상기 복수의 원격 서버들(130)의 각각의 원격 서버(130)는 지리적 위치와 연관됨 -;
    상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이에 가상 네트워크(30)를 확립하는 것 - 상기 가상 네트워크(30)는, 상기 제1 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122), 및 상기 제2 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122)을 포함함 -; 및
    상기 제1 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122) 중 하나를 통해 또는 상기 제2 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122) 중 하나를 통해 상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 가상 네트워크(30)를 통해 상기 선택된 원격 서버(130)에 송신하는 것
    을 포함하고,
    상기 데이터(50)는 상기 선택된 원격 서버(130)에 의해 수신될 때 상기 선택된 원격 서버(130)로 하여금 상기 데이터(50)를 목적지 서버(60)로 라우팅하게 하는, 시스템(100).
  12. 제11항에 있어서,
    상기 제1 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122)은, 제1 서비스의 데이터(50)를 지원하는 제1 터널(122) 및 제2 서비스의 데이터(50)를 지원하는 제2 터널(122)을 포함하고;
    상기 제2 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 적어도 하나의 터널(122)은, 상기 제1 서비스의 데이터(50)를 지원하는 제3 터널(122) 및 상기 제2 서비스의 데이터(50)를 지원하는 제4 터널(122)을 포함하고;
    상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 가상 네트워크(30)를 통해 상기 선택된 원격 서버(130)에 송신하는 것은, 상기 사용자 애플리케이션(116)에 기초하여, 상기 제1 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 상기 제1 터널(122) 또는 상기 제2 터널(122), 또는 상기 제2 무선 네트워크(120)를 통한 상기 모바일 디바이스(110)와 상기 선택된 원격 서버(130) 사이의 상기 제3 터널(122) 또는 상기 제4 터널(122)을 선택하는 것을 포함하는, 시스템(100).
  13. 제12항에 있어서,
    상기 제1 서비스는 인터넷 서비스를 포함하고, 상기 제2 서비스는 테더링 서비스를 포함하는, 시스템(100).
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 선택된 원격 서버(130)에 송신하는 것 후에:
    상기 모바일 디바이스(110)를 제3 무선 네트워크(120U)에 연결하는 것 - 상기 제3 무선 네트워크(120U)는 사용자 무선 충실도(Wi-Fi) 네트워크를 포함함 -; 및
    상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 제3 무선 네트워크(120U)를 통해 상기 목적지 서버(60)에 송신하는 것
    을 더 포함하는, 시스템(100).
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 복수의 원격 서버들(130)로부터 원격 서버(130)를 선택하는 것은, 상기 복수의 원격 서버들(130)의 각각의 원격 서버(130)의 지리적 위치에 기초하는, 시스템(100).
  16. 제15항에 있어서,
    상기 동작들은, 상기 복수의 원격 서버들(130)로부터 원격 서버(130)를 선택하는 것에 앞서:
    네트워크 선호도(450)에 기초하여 상기 제1 무선 네트워크(120) 또는 상기 제2 무선 네트워크(120)로부터 선호되는 무선 네트워크(120)를 선택하는 것
    을 더 포함하고,
    상기 복수의 원격 서버들(130)로부터 원격 서버(130)를 선택하는 것은, 상기 선택된 선호되는 무선 네트워크(120)에 기초하는, 시스템(100).
  17. 제16항에 있어서,
    상기 동작들은, 상기 선호되는 무선 네트워크(120)를 선택하는 것 후에:
    상기 복수의 원격 서버들(130)의 각각의 원격 서버(130)의 지리적 위치에 기초하여 상기 복수의 원격 서버들(130)로부터 제2 원격 서버(130)를 선택하는 것;
    상기 모바일 디바이스(110)와 상기 선택된 제2 원격 서버(130) 사이에 제2 가상 네트워크(30)를 확립하는 것; 및
    상기 사용자 애플리케이션(116)으로부터의 데이터(50)를 상기 제2 가상 네트워크(30)를 통해 상기 선택된 제2 원격 서버(130)에 송신하는 것
    을 더 포함하고,
    상기 데이터(50)는 상기 선택된 제2 원격 서버(130)에 의해 수신될 때 상기 선택된 제2 원격 서버(130)로 하여금 상기 데이터(50)를 상기 목적지 서버(60)로 라우팅하게 하는, 시스템(100).
  18. 제11항 내지 제17항 중 어느 한 항에 있어서,
    상기 사용자 애플리케이션(116)은 가상 사설 네트워크(VPN) 애플리케이션(116)을 포함하고, 상기 목적지 서버(60)는, 상기 VPN 애플리케이션(116)과 연관된 VPN 서버를 포함하는, 시스템(100).
  19. 제11항 내지 제18항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 제1 무선 네트워크(120)가 상기 제2 무선 네트워크(120)와 동일한 MVNO(70)와 연관되는지 여부를 결정하는 것을 더 포함하는, 시스템(100).
  20. 제11항 내지 제19항 중 어느 한 항에 있어서,
    상기 제1 무선 네트워크(120)는 셀룰러 네트워크를 포함하고, 상기 제2 무선 네트워크(120)는 무선 충실도(Wi-Fi) 네트워크를 포함하는, 시스템(100).
KR1020227035241A 2020-11-02 2021-11-02 가상 캐리어 네트워크 KR20220153056A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063108844P 2020-11-02 2020-11-02
US63/108,844 2020-11-02
PCT/US2021/057669 WO2022094448A1 (en) 2020-11-02 2021-11-02 Virtual carrier network

Publications (1)

Publication Number Publication Date
KR20220153056A true KR20220153056A (ko) 2022-11-17

Family

ID=78828039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227035241A KR20220153056A (ko) 2020-11-02 2021-11-02 가상 캐리어 네트워크

Country Status (6)

Country Link
US (1) US20220141130A1 (ko)
EP (1) EP4101250A1 (ko)
JP (1) JP2023547972A (ko)
KR (1) KR20220153056A (ko)
CN (1) CN115516996A (ko)
WO (1) WO2022094448A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11748206B2 (en) * 2019-08-28 2023-09-05 International Business Machines Corporation Data recovery modification based on performance data exhibited by a network of data centers and data recovery requirement

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8401569B1 (en) * 2011-09-23 2013-03-19 Sonic Notify, Inc. System effective to demodulate a modulated code and provide content to a user
EP3028528A4 (en) * 2013-08-27 2017-05-03 Huawei Technologies Co., Ltd. System and method for mobile network function virtualization
US9241044B2 (en) * 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
WO2016172252A1 (en) * 2015-04-20 2016-10-27 Shoelace Wireless, Inc. Systems for improved mobile internet speed and security
US10477503B2 (en) * 2015-11-20 2019-11-12 Google Llc Democratized cellular network connectivity through small cells
US10009751B2 (en) * 2015-12-28 2018-06-26 Cisco Technology, Inc. Virtual mobility anchor for network sharing
US9686238B1 (en) * 2016-07-07 2017-06-20 Oceus Networks Inc. Secure network enrollment
US10244435B2 (en) * 2016-12-22 2019-03-26 Cisco Technology, Inc. Cable cellular heterogeneous network
US11336546B2 (en) * 2017-07-10 2022-05-17 Dell Products, Lp Multiple link aggregation among local area networks
EP4052512A1 (en) * 2019-12-11 2022-09-07 Google LLC Smart phone toggle for multi-network connectivity
WO2021118562A1 (en) * 2019-12-11 2021-06-17 Google Llc Demarcating user-mediated and carrier-mediated connections

Also Published As

Publication number Publication date
US20220141130A1 (en) 2022-05-05
JP2023547972A (ja) 2023-11-15
EP4101250A1 (en) 2022-12-14
WO2022094448A1 (en) 2022-05-05
CN115516996A (zh) 2022-12-23

Similar Documents

Publication Publication Date Title
US11089480B2 (en) Provisioning electronic subscriber identity modules to mobile wireless devices
US9137740B2 (en) System and method for providing network access to electronic devices using bandwidth provisioning
WO2018161796A1 (zh) 多接入场景中的连接处理方法和装置
JP2013507039A (ja) 無線カバレッジを向上させるための方法およびシステム
US11627466B2 (en) Updating automatic access parameters for wireless local area networks
EP4073985B1 (en) Demarcating user-mediated and carrier-mediated connections
US20210127265A1 (en) Communication system
CN111182546A (zh) 接入无线网络的方法、设备及系统
US20220141130A1 (en) Virtual Carrier Network
US20230012793A1 (en) Smart Phone Toggle for Multi-Network Connectivity
US11516663B2 (en) Systems and methods for secure endpoint connection and communication
CN114788233B (zh) 划分用户介导连接和运营者介导连接
US10602437B2 (en) Intelligent network selection
US11825329B1 (en) Location-based resource allocation in 5G networks
US11503017B2 (en) EHN venue-specific application provisioning
WO2022237898A1 (zh) 用于在线签约的方法、通信装置、介质及芯片
US20230063962A1 (en) Securing corporate assets in the home
EP4322581A1 (en) Method and apparatus to control network slices requested by a user equipment
KR20230128989A (ko) 네트워크 슬라이스 지원 장치 및 그 지원 방법
WO2019120546A1 (en) Methods, apparatus and computer programs for providing virtual networks