KR20120108004A - 선점적 dns 결정을 위한 시스템들 및 방법들 - Google Patents

선점적 dns 결정을 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20120108004A
KR20120108004A KR1020127019041A KR20127019041A KR20120108004A KR 20120108004 A KR20120108004 A KR 20120108004A KR 1020127019041 A KR1020127019041 A KR 1020127019041A KR 20127019041 A KR20127019041 A KR 20127019041A KR 20120108004 A KR20120108004 A KR 20120108004A
Authority
KR
South Korea
Prior art keywords
data packets
addresses
communication link
client device
host device
Prior art date
Application number
KR1020127019041A
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 KR20120108004A publication Critical patent/KR20120108004A/ko

Links

Images

Classifications

    • 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/59Network arrangements, protocols or services for addressing or naming using proxies for addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Environmental & Geological Engineering (AREA)

Abstract

선매 DNS 결정을 위한 시스템, 방법들 및 컴퓨터 프로그램들이 개시된다. 제1 통신 링크 상에서 클라이언트 디바이스에 전송되는 데이터 패킷들을 검사하기 위한 DNS 프록시가 제공된다. 프록시는 검사된 데이터 패킷들에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하고, 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정한다. 프록시 디바이스는 제2 통신 링크 상에서의 변경들 없이 클라이언트 디바이스에 검사된 데이터 패킷들을 전송한다. 제2 통신 링크는 제1 통신 링크보다 훨씬 더 높은 전파 레이턴시를 가진다. 이후 프록시는, 검사된 데이터 패킷들과는 독립적으로, 검사된 데이터 패킷 내에 식별된 호스트 디바이스들에 대한 접속들을 설정하기 위해 클라이언트 디바이스에 의해 사용하기 위한 하나 이상의 호스트 디바이스 명칭들 및 연관된 결정된 IP 어드레스들을 클라이언트 디바이스에 전송한다.

Description

선매 DNS 결정을 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR PREEMPTIVE DNS RESOLUTION}
이 개시내용은 일반적으로 통신 네트워크들의 분야에 관한 것이고, 더 구체적으로는 선매 DNS 결정을 통한 애플리케이션 가속화를 위한 시스템들 및 방법들에 관한 것이다.
또한, 무선 액세스 네트워크(RAN)들로서 알려진 무선 통신 시스템들은 모바일 디바이스 사용자들에게 고속의 큰 대역폭 코어 IP 네트워크들에 대한 무선 액세스를 제공한다. 이러한 무선 통신 시스템들은 가용 시스템 자원들(예를 들어, 대역폭 및 전송 전력)을 공유함으로써 다수의 모바일 디바이스들과의 통신을 지원할 수 있는 다중-액세스 시스템들일 수 있다. 이러한 다중-액세스 시스템들의 예들은 코드 분할 다중 액세스(CDMA) 시스템들, 시분할 다중 액세스(TDMA) 시스템들, 주파수 분할 다중 액세스(FDMA) 시스템들, 직교 주파수 분할 다중 액세스(OFDMA) 시스템들, WCDMA, HSPA 및 HSUPA을 포함하는 유니버설 모바일 통신 시스템(UMTS), 3GPP 롱 텀 에볼루션(LTE) 시스템들, 및 다른 타입들의 무선 통신 시스템들을 포함한다.
일반적으로, IP 네트워크들 상의 통신들은 통신 디바이스들이 이들 디바이스들에 대한 접속이 설정될 수 있기 전에 컴퓨터들, 서버들 또는 다른 네트워크 디바이스들의 호스트 및 도메인 명칭들을 연관된 IP 어드레스들로 결정하는 것을 요구한다. 도메인 명칭 시스템(DNS) 서버들은 호스트 명칭 결정 서비스들을 수행한다. 코어 IP 네트워크에 물리적으로 접속된 디바이스들에 대해, 호스트 명칭 결정은 인터넷 서비스 제공자(ISP)에 의해 호스팅된 DNS 서버들에 의해 일반적으로 수행되는 상대적으로 고속의 끊김 없는 프로세스이다. 그러나, 무선 액세스 네트워크를 통해 IP 네트워크에 접속되는 모바일 디바이스들에 대해, 호스트 명칭 결정은, 작은 대역폭, 높은 무선 링크 전파 레이턴시, 높은 패킷 에러 레이트들로 인한 데이터 재전송 및 무선 통신 환경으로 인한 다른 인자들로 인해, 상당한 통신 지연을 추가한다. 그러므로 무선 통신 시스템들에서 DNS 결정 프로시져들을 개선할 필요성이 존재한다.
하기 내용은 무선 통신 환경에서 선매 DNS 결정을 통해 애플리케이션 가속화를 위한 메커니즘들의 하나 이상의 양상들의 간략화된 요약을 제시한다. 이러한 용약은 모든 참작되는 양상들의 확장적 개요가 아니며, 본 발명의 핵심 또는 중요 양상들을 식별하거나 본 발명의 임의의 또는 모든 양상들의 범위를 기술하는 것으로 의도되지 않는다. 그 유일한 목적은 추후 제시될 더 상세한 설명에 대한 서론으로서 간략화된 양상으로 하나 이상의 양상들의 일부 개념들을 제시하는 것이다.
선매 DNS 결정에 대한 시스템들, 방법들, 및 컴퓨터 프로그램 물건들의 다양한 양상들이 여기서 개시된다. 시스템은 RAN에 접속된 모바일 디바이스들로 그리고 RAN에 접속된 모바일 디바이스들로부터의 통신들에 대한 선매 도메인 명칭 결정을 제공하기 위해 무선 액세스 네트워크(RAN) 및 코어 IP 네트워크 사이에 제공되는 DNS 프록시 디바이스를 제공할 수 있다. 일 양상에서, DNS 프록시는 IP 액세스 게이트웨이, 예를 들어, PDSN 게이트웨이에 의해 호스팅될 수 있다. 코어 IP 네트워크에 대한 직접적인 물리적 접속으로 인해, DNS 프록시 디바이스는 모바일 디바이스들보다 IP 네트워크의 DNS 서버들에 대해 훨씬 더 빠른 액세스 시간을 가진다. 이는 DNS 프록시로 하여금 모바일 디바이스들에 대한 통신 시에 호스트 및 도메인 명칭들의 변환을 제공할 시에 모바일 디바이스들을 보조하게 하여, 이에 의해 모바일 디바이스들 상에서 실행하는 다양한 애플리케이션들의 동작을 가속화한다.
일 양상에서, DNS 프록시는 제1 통신 링크 상에서 모바일 디바이스에 전송되는 데이터 패킷들을 검사한다. 프록시는 검사된 데이터 패킷들에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하고, 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정한다. 프록시 디바이스는 제2 통신 링크에 대한 변경들 없이 모바일 디바이스에 검사된 데이터 패킷들을 전송한다. 제2 통신 링크는 제1 통신 링크보다 더 높은 전파 레이턴시를 가질 수 있다. 이후, 프록시는 검사된 데이터 패킷 내에서 식별된 호스트 디바이스들에 대한 접속들을 설정하기 위해 클라이언트 디바이스에 의해 사용할 하나 이상의 호스트 디바이스 명칭들 및 연관된 결정된 IP 어드레스들을, 검사된 데이터 패킷들과는 독립적으로, 모바일 디바이스에 전송한다. 이러한 방식으로, 모바일 디바이스가 검사된 데이터 패킷들에서 식별된 호스트 디바이스에 액세스할 필요가 있는 경우, 호스트 디바이스의 IP 어드레스는 이미 사용가능하며, 모바일 디바이스는 제2 통신 링크 상에서 IP 어드레스 결정을 반복할 필요가 없다.
전술된 목적 및 관련 목적의 달성을 위해, 하나 이상의 양상들은 이후 완전히 설명되며 특히 청구항들에서 지정되는 특징들을 포함한다. 후속하는 설명 및 첨부 도면들은 하나 이상의 양상들의 특정 예시적인 특징들을 상세하게 설명한다. 그러나 이들 특징들은 다양한 양상들의 원리들이 사용될 수 있는 다양한 방식들 중 단지 몇몇을 나타내며, 이러한 설명은 모든 이러한 양상들 및 그 등가물들을 포함하도록 의도된다.
본 발명의 개시된 양상들은 하기에서, 개시된 양상들을 제한하지 않고 예시하기 위해 제공되는 첨부도면들과 함께 설명되며, 여기서 동일한 부호들은 동일한 엘리먼트들을 표기한다.
도 1은 여기서 개시된 선매 DNS 결정 메커니즘의 양상들을 이용하는 무선 통신 시스템의 예시이다.
도 2는 선매 DNS 결정에 대한 예시적인 방법의 예시이다.
도 3은 선매 DNS 결정에 대한 또다른 예시적인 방법의 예시이다.
도 4는 여기서 개시된 선매 DNS 결정 메커니즘의 양상들을 구현하는 예시적인 DNS 프록시의 예시이다.
도 5는 여기서 개시된 선매 DNS 결정 메커니즘의 양상들을 구현하는 예시적인 시스템의 예시이다.
도 6은 여기서 개시된 선매 DNS 결정 메커니즘의 양상들을 이용하는 예시적인 무선 통신 시스템의 예시이다.
무선 통신 환경에서 선매 DNS 결정에 대한 방법들의 다양한 양상들이 이제 도면들을 참조하여 설명된다. 그러나 선매 DNS 결정을 위한 방법들은 무선 통신 환경들에 제한되는 것이 아니라, 클라이언트 디바이스들 및 광역 IP 네트워크 사이의 긴 전파 지연들을 특징으로 하는 임의의 통신 네트워크에서 사용될 수 있으며, 여기서 선매 DNS 결정이 클라이언트 디바이스들 상에서 실행하는 애플리케이션들의 동작을 가속화할 수 있다는 점에 유의해야 한다. 용어 "호스트 명칭" 및 "도메인 명칭"이 이들 용어들 사이의 미묘한 기술적 차이들에도 불구하고, 여기서 상호교환가능하게 사용된다는 점에 추가로 유의해야 한다. 후속하는 설명에서, 설명의 목적으로, 다수의 특정 상세항목들이 하나 이상의 양상들의 완전한 이해를 제공하기 위해 설명된다. 그러나 이러한 양상(들)이 이들 특정 상세항목들 없이 구현될 수 있다는 점이 명백할 수 있다.
이러한 개시내용에서 사용된 바와 같이, 용어들 "컴포넌트", "모듈", "시스템" 등이, 하드웨어, 펌웨어, 하드웨어와 펌웨어의 결합, 소프트웨어, 또는 실행시 소프트웨어와 같은, 그러나 이에 제한되지 않는, 컴퓨터-관련 엔티티를 포함하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 객체, 실행가능성, 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있지만, 이에 제한되지 않는다. 예시로서, 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 및 컴퓨팅 디바이스 모두가 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 컴포넌트는 하나의 컴퓨터 상에 로컬화되고 그리고/또는 둘 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이들 컴포넌트들은 저장된 다양한 데이터 구조들을 가지는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 컴포넌트들은 하나 이상의 데이터 패킷들, 예를 들어, 로컬 시스템, 분산 시스템 내의 또다른 컴포넌트와, 그리고/또는 신호에 의해 다른 시스템들과 네트워크, 예를 들어, 인터넷 또는 다른 타입들의 패킷 교환 네트워크들을 통해 상호작용하는 하나의 컴포넌트로부터의 데이터를 가지는 신호에 따라, 로컬 및/또는 원격 프로세스들에 의해 통신할 수 있다.
또한, 여기서 설명된 선매 DNS 결정에 대한 방법들의 다양한 양상들 또는 특징들이 표준 프로그래밍 및/또는 엔지니어링 기법들을 사용하는 방법, 장치 또는 물품으로서 구현될 수 있다. 여기서 사용된 바와 같은 용어 "제조 물품"은 임의의 컴퓨터-판독가능한 디바이스, 캐리어 또는 매체로부터 액세스가능한 컴퓨터 프로그램을 포함하도록 의도된다. 예를 들어, 컴퓨터-판독가능한 매체는 자기 저장 디바이스들(예를 들어, 하드 디스크, 플로피 디스크, 자기 스트립들 등), 광학 디스크들(예를 들어, 컴팩트 디스크(CD), 디지털 다목적 디스크(DVD) 등), 스마트 카드들, 및 플레시 메모리 디바이스들(예를 들어, EPROM, 카드, 스틱, 키 드라이브 등)을 포함할 수 있지만 이에 제한되지 않는다. 추가로, 여기서 설명되는 다양한 저장 매체는 하나 이상의 디바이스들 및/또는 정보를 저장하기 위한 다른 기계-판독가능한 매체를 나타낼 수 있다. 용어 "기계-판독가능한 매체"는, 무선 채널들 및 명령(들) 및/또는 데이터를 저장, 포함 및/또는 전달할 수 있는 다양한 다른 매체를 포함할 수 있으며, 이에 제한되지 않는다.
무선 통신 환경에서 선매 DNS 결정에 대한 방법들의 다양한 양상들 또는 특징들은 다수의 모바일 디바이스들, 컴포넌트들, 모듈들 등을 포함할 수 있는 시스템들의 견지에서 제시될 것이다. 다양한 시스템들이 추가적인 디바이스들, 컴포넌트들, 모듈들 등을 포함할 수 있고 그리고/또는 도면들과 관련하여 논의되는 디바이스들, 컴포넌트들, 모듈들 등의 모두를 포함하지 않을 수 있다는 점이 이해되어야 한다. 이들 방식들의 결합 역시 사용될 수 있다.
도 1은 하나 이상의 모바일 디바이스들(105), 하나 이상의 무선 액세스 네트워크들(RAN)(110), 인터넷과 같은 코어 IP 네트워크(140), 하나 이상의 DNS 서버들(150), 및 다양한 컨텐츠 및 애플리케이션 서버들(160), 예를 들어, 웹서버들, 파일 서버들, 메일 서버들, 멀티미디어 서버들 등을 포함하는 무선 통신 시스템의 일 양상을 예시한다. 일 양상에서, 모바일 디바이스(105)는 셀룰러 전화, 코드리스 전화, 세션 개시 프로토콜(SIP) 전화, 개인 디지털 정보 단말(PDA), 무선 접속 성능을 가지는 핸드헬드 디바이스, 랩톱 컴퓨터, 또는 무선 모뎀에 접속되는 다른 프로세싱 디바이스일 수 있다. 모바일 디바이스(105)는 몇몇 상이한 무선 액세스 네트워크들(110)에 액세스하기 위해 동작가능한 멀티-모드 통신 디바이스일 수 있다. 모바일 디바이스(105)는 광대역 인터넷 서비스들, 예를 들어, 웹 브라우징, 보이스 오버 IP(VoIP), IP-TV, 멀티미디어 스트리밍, 파일 다운로드 및 다른 타입들의 서비스들을 포함하는 데이터, 음성 및 비디오 서비스들을 지원할 수 있다. 디바이스(105)는 또한, 가입자 유닛, 가입자국, 이동국, 모바일, 원격국, 원격 단말, 액세스 단말, 사용자 단말, 단말, 무선 통신 디바이스, 사용자 에이전트, 사용자 디바이스, 또는 사용자 장비(UE)로 명명될 수 있다.
일 양상에서, 무선 액세스 네트워크(110)는 CDMA, TDMA, FDMA, OFDMA, SC-FDMA, TD-SCDMA 및 다른 무선 통신 시스템들을 포함할 수 있지만, 이에 제한되지 않는다. 용어들 "시스템" 및 "네트워크"는 여기서 상호교환가능하게 사용된다. CDMA 시스템은 유니버설 무선 액세스 네트워크(UTRAN), cdma2000 등과 같은 무선 기술을 구현할 수 있다. UTRAN은 광대역 CDMA (W-CDMA) 및 CDMA의 다른 변형물들을 포함한다. 또한, cdma2000는 IS-2000, IS-95 및 IS-856 표준들을 커버한다. TDMA 시스템은 모바일 통신용 글로벌 시스템(GSM)과 같은 무선 기술을 구현할 수 있다. OFDMA 시스템은 이벌브드 UTRAN (E-UTRAN), 울트라 모바일 광대역(UMB), IEEE 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, 플래시-OFDM 등과 같은 무선 기술을 구현할 수 있다. UTRAN 및 E-UTRAN은 유니버설 모바일 통신 시스템(UMTS)의 일부분이다. 3GPP 롱 텀 에볼루션(LTE)은 다운링크 상에서 OFDMA를 사용하고 업링크 상에서 SC-FDMA를 사용하는 UMTS의 릴리즈이다. UTRAN, E-UTRAN, UMTS, LTE 및 GSM은 "제3 세대 파트너쉽 프로젝트"(3GPP)라고 명명된 기구로부터의 문서들에 설명된다. 추가로, cdma2000 및 UMB는 "제3 세대 파트너쉽 프로젝트 2"(3GPP2)라고 명명된 기구로부터의 문서들에 설명된다. 또한, 이러한 무선 통신 시스템들은 종종 언페어드 언라이센스드 스펙트럼들, 802.xx 무선 LAN, 블루투스 및 임의의 다른 단거리 또는 장거리의 무선 통신 기법들을 사용하여 피어 투 피어(예를 들어, 모바일 -대-모바일) 애드 혹 네트워크 시스템들을 추가로 포함시킬 수 있다.
일반적으로, RAN(110)은 인터넷과 같은 패킷 교환 코어 네트워크(140)에 대한 무선 액세스를 모바일 디바이스들(105)에 제공한다. 일 양상에서, RAN(110)은 차례로 모바일 디바이스들(105)로 그리고 모바일 디바이스들(105)로부터 무선 신호 전송 및 수신과 연관된 복수의 컴포넌트들(예를 들어, 프로세서들, 변환기들, 멀티플렉서들, 안테나들 등(미도시))을 포함하는 송신기/수신기 체인 및/또는 다수의 안테나 그룹들을 가지는 하나 이상의 무선 기지국들(150)을 포함할 수 있다. RAN(110)은 모바일 디바이스들(105) 및 IP 액세스 게이트웨이(125) 사이의 데이터 접속성을 제공하는 RAN 제어기(120)이다. 제어기(120)의 주요 기능들은 무선 링크 흐름들의 설정, 유지 및 종료, 무선 자원 관리 및 이동도 관리를 포함한다. 무선 링크는 무선 링크 프로토콜(RLP) 흐름들 및 무선 링크 제어(RLC) 흐름들을 포함할 수 있지만 이에 제한되지 않는다. 각각의 무선 링크 흐름은 모바일 디바이스(105) 상에서 실행하는 애플리케이션들에 의해 생성되는 다수의 IP 데이터 흐름들을 포함할 수 있다. 각각의 무선 링크 흐름에 대해, 제어기(120)는 디바이스(105)로부터 게이트웨이(125)로 데이터 패킷들을 전달하는 A10/A11 베어러 접속들을 생성한다.
또한, 매체 액세스 게이트웨이(MAG)로서도 알려져 있는 IP 액세스 게이트웨이(125)는 RAN(110) 및 IP 네트워크(140)를 접속시키는 서버 또는 라우터이다. 일 양상에서, 게이트웨이(125)는 패킷 데이터 서빙 노드(PDSN)로서 구현될 수 있다. 일반적으로, 게이트웨이(125)는 RAN(110)으로의 그리고 RAN(110)으로부터의 모바일 디바이스들의 움직임들을 추적하고, RAN 제어기들(120)로부터 데이터 트래픽을 수집하고, 서버들(160)에 대한 액세스를 제공하는 역할을 한다. RAN(110)이 프록시 모바일 IPv6 (PMIP) 프로토콜을 지원하는 경우, 게이트웨이(125)는 또한 모바일 IPv4 및 IPv6 패킷 전송, 모바일 디바이스들(105)로/로부터의 데이터 전송/수신 및 시그널링, 및 서비스들(160)을 위한 프록시 에이전트로서 기능할 수 있다. 모바일 디바이스(105) 및 서비스들(160) 사이의 데이터를 전송하기 위해, 게이트웨이(140)는 양방향 IP 터널들을 생성하고, 제어기(120)로부터 생성된 IP 터널들까지의 A10/A11 베어러 접속들에 의해 전달되는 다수의 무선 링크 흐름을 연관시킨다. 게이트웨이(125)가 모바일 디바이스(105)로부터 패킷 데이터를 수신하는 경우, 이는 패킷이 어드레스지정되는 서버(160) 및 연관된 IP 터널을 식별하고; 이후 새로운 IP 패킷에서 수신된 패킷들을 캡슐화하고 이를 적절한 IP 터널을 통해 서버(160)에 전송한다. 데이터 패킷이 서버(160)로부터 IP 터널을 통해 수신되는 경우, IP 액세스 게이트웨이(125)는 이를 캡슐화해제하고, 패킷이 어드레스 지정되는 모바일 디바이스(105) 및 적절한 무선 링크 흐름을 식별하고, 데이터를 모바일 디바이스(105)로 포워딩한다.
위에서 나타난 바와 같이, IP 네트워크(140) 상의 통신들은 모바일 디바이스(105)가, 컴퓨터들, 서버들 또는 다른 네트워크 디바이스들(160)의 호스트 및 도메인 명칭들을, 이들 디바이스들에 대한 접속들이 설정될 수 있기 전에 연관된 IP 어드레스들로 결정하도록 요구한다. 이러한 목적으로, 웹 브라우저 또는 모바일 디바이스(105) 상에서 실행하는 다른 애플리케이션들은, 애플리케이션으로부터 호스트 디바이스에 접속하는 것을 요구할 시에 호스트 디바이스 명칭을 사용하여 호스트 디바이스의 IP 어드레스를 확정하려 하는 DNS 결정기 컴포넌트(미도시됨)를 포함할 수 있다. 예를 들어, 웹 서버(160A)의 호스트 명칭은 webserver.qualcomm.com일 수 있고, 대응하는 IP 어드레스는 208.77.188.166일 수 있다. 웹 서버(160A)의 IP 어드레스를 결정하기 위해, DNS 결정기는 먼저, 요청된 IP 어드레스가 이미 변환되어 캐시에 저장되었는지의 여부를 결정하기 위해 자신만의 캐시를 탐색한다. 요청된 IP 어드레스가 캐시 내에 있지 않은 경우, DNS 결정기는, 이들 DNS 서버들 중 하나가 호스트 디바이스의 IP 어드레스 정보를 DNS 결정기에 제공할 때까지, RAN(110) 또는 다양한 원격 DNS 서버(150)에 의해 호스팅되는 로컬 DNS 서버(미도시됨)에 질의한다.
웹 서버(160A)의 IP 어드레스가 결정되면, 모바일 디바이스(105)는 RAN(110) 및 IP 네트워크(140)를 통해 웹 서버(160A)로의 IP 흐름을 설정할 수 있다. 그 응답으로, 웹 서버(160)는 IP 네트워크(140) 상의 다른 자원들에 대해 복수의 포함된 도메인 또는 호스트 명칭들을 포함할 수 있는 HTML 문서를 모바일 디바이스(105)에 송신할 수 있다. 예를 들어, HTML 문서는, HTML 문서 내에 포함되는 다양한 이미지들을 저장하는 파일 서버(160B)의 호스트 명칭을 포함할 수 있다. 각각의 포함된 호스트 또는 도메인 명칭에 대해, 모바일 디바이스(105)는 포함된 호스트 또는 도메인 명칭들에 의해 식별되는 자원들을 리트리브하기 위해, DNS 결정 프로세스를 반복해야 한다. IP 네트워크(140)에 물리적으로 접속되는 디바이스들에 대해, DNS 결정 프로세스는 해당 디바이스들이 접속되는 고속의 큰 대역폭 코어 IP 네트워크(140) 상의 짧은 전파 지연들로 인해 상대적으로 고속이다. 예를 들어, 네트워크(140)는 기가비트 이더넷, 광학 광역 네트워크(WAN), 또는 다른 고속 네트워크일 수 있다. 그러나, RAN(110)을 통해 네트워크(140)에 접속되는 모바일 디바이스들(105)에 대해, DNS 결정 프로세스는 높은 무선 링크 전파 레이턴시, 높은 패킷 에러 레이트들로 인한 데이터 재전송들 및 RAN들에 기인하는 다른 인자들로 인해, 상당한 통신 지연을 추가한다.
RAN(110)에 접속되는 모바일 디바이스들(105)에 대한 DNS 결정 프로세스를 가속화하기 위해, 선매 DNS 결정을 수행하는 DNS 프록시(130)가 RAN(110) 및 코어 IP 네트워크(140)의 경계에서 제공될 수 있다. 일 양상에서, DNS 프록시(130)는 IP 액세스 게이트웨이(125)의 소프트웨어 컴포넌트로서 구현될 수 있다. 또다른 양상에서, 프록시(130)는 RAN(110)의 로컬 DNS 서버의 소프트웨어 컴포넌트로서 구현될 수 있다. 또다른 양상에서, 프록시(130)는 RAN 제어기(120) 또는 IP 액세스 게이트웨이(125)에 접속되는 독립형 디바이스로서 구현될 수 있다. DNS 프록시가 또한 WLAN에 접속되는 무선 디바이스들에 선매 DNS 결정을 제공하기 위해 IEEE 802.11 표준들에 설명되는 네트워크들과 같은 무선 로컬 영역 네트워크들(WLAN)에서 사용될 수 있다는 점에 유의해야 한다. 이러한 양상에서, DNS 프록시는 유선 IP 네트워크에 WLAN을 접속시키는 무선 액세스 포인트(AP)의 소프트웨어 컴포넌트로서 구현될 수 있다. DNS 프록시는 또한 이더넷 네트워크들과 같은 유선 LAN들에서 사용될 수 있다. 이러한 양상에서, DNS 프록시는 네트워크 라우터, 브리지, 집중기 또는 WAN과 LAN을 접속시키는 다른 라우팅 디바이스의 소프트웨어 컴포넌트로서 구현될 수 있다.
효과적인 선매 DNS 결정 서비스들을 제공하기 위해, DNS 프록시(130)는 포함된 도메인 및 호스트 명칭들의 존재에 대해 IP 네트워크(140)로부터 하나 이상의 모바일 디바이스들(105)에 전송되는 HTTP 트래픽을 검사하는 웹 프록시로서 동작할 수 있다. 다시 말해, 논리적으로 DNS 프록시가 애플리케이션 층(OSI 모델) 프로세싱을 수행하는 반면, 실제 프로세싱은 IP층에서 패킷 단위 기반으로 수행될 수 있다(즉, 전송, TCP는 종단-대-종단으로 동작한다). 예를 들어, HTTP는 메시지 바디들이 압축되게 하고, 따라서, 도메인 명칭들이 압축된 데이터 스트림에서 직접 가시적이지는 않다. 인터셉트된 패킷들의 데이터 페이로드를 압축하지 않는 통상적인 DNS 프록시들과는 달리, 도메인 명칭들을 발견 및 재기록하고 데이터 페이로드를 재압축한다. DNS 프록시(130)는 압축된 데이터를 식별할 수 있고, 지연 또는 변경 없이 데이터 패킷들을 모바일 디바이스(105)에 전달하지만 - TCP 전송을 종단-대-종단으로 유지함 - 동시에, 데이터 패킷들이 그 내부에 포함된 호스트 및 도메인 명칭들을 식별하기 위해 압축해제될 수 있다. 이러한 방식으로, IP 층에서 변경되지 않은 포워딩된 데이터 스트림 및 선매 DNS 결정은 애플리케이션층에서 프로세싱되는 스트림의 카피 상에서 수행된다.
위에서 표시된 바와 같이, 패킷 검사 프로세스 동안, DNS 프록시(130)는 포함된 호스트 및 도메인 명칭들을 식별한다. 일 양상에서, DNS 프록시(103)는 포함된 호스트 및 도메인 명칭들을 식별하기 위해 스트링 패턴 매칭 기법을 사용할 수 있다. 일반적으로, 호스트 및 도메인 명칭들은 "."으로 분리된 "-" 및 범위들 [a-z], [0-9] 내의 ASCII 문자들의 시퀀스들로 구성되는 스트링들이다. 추가로, 도메인 명칭들은 종종 ".com", ".org", ".edu" 또는 다른 도메인 식별자들로 끝나며, "http", "ftp", "xml" 또는 다른 프로토콜 식별자들을 포함할 수 있다. 프로토콜 메시지들에서(심지어 바이너리 프로토콜들에서) ASCII 스트링들이 바이트 경계에 할당됨에 따라, 이들은 임의의 특정 인코딩 없이 종종 자주 전송된다. 이들 가정들 하에서, DNS 프록시(130)는 IP 패킷들의 바이너리 페이로드를 옥텟 단위로 파싱하고, 각각의 옥텟을 ASCII 문자로서 해석하고, 호스트 또는 도메인 명칭 캐릭터 패턴에 매칭하는 ASCII 문자들의 스트링을 검색함으로써 포함된 호스트 및 도메인 명칭들을 검출할 수 있다. 트래픽의 속성이 공지되지 않는 경우, DNS 프록시가 애플리케이션 레벨 프로토콜(예를 들어, HTTP)을 이해하지 못하기 때문에 또는 이것이 그러하게 수행하도록 프로그래밍되지 않으므로, DNS 프록시는 여전히 IP층(OSI 모델에서 네트워크층)을 패킷 단위로 여전히 검사할 수 있으며, 위에서 설명된 스트링 패턴 매칭 기법을 사용하여 호스트 명칭 검출에 대한 숙지된(educated) 추측들을 수행할 수 있다. 유사한 프로세싱이 (TCP 트래픽에 대한) TCP층에서 수행될 수 있다. 이러한 경우, DNS 프록시(130)는 IP 패킷들을 인터셉트하여 이들을 주어진 TCP 스트림과 연관시키고; 스트림을 재결합시키고; 패턴 매칭을 수행할 것이다. 이러한 방식은 패킷 경계들에 대한 호스트 및 도메인 명칭들의 식별을 허용한다. 무선 액세스 네트워크(110)의 상황에서, DNS 프록시(130)는 RAN(110)의 다수의 순방향 무선 링크 흐름들을 통해 전송되는 IP 패킷들을, 즉, IP 네트워크(140)로부터 모바일 디바이스들(105)에 전송되는 패킷들을 인터셉트하고, 포함된 호스트 및 도메인 명칭들의 존재에 대해 이들 패킷들을 검사할 수 있다는 점에 유의해야 한다.
검사된 데이터 패킷 내의 하나 이상의 포함된 호스트 또는 도메인 명칭들을 식별한 경우, DNS 프록시(130)는 포함된 호스트 또는 도메인 명칭을 자신의 연관된 IP 어드레스로 변환하려 할 수 있다. 예를 들어, DNS 프록시(130)는 포함된 호스트 명칭의 IP 어드레스가 이전에 결정되었으며 따라서 프록시의 캐시에 저장되는지의 여부를 결정하기 위해 자신의 로컬 캐시를 먼저 체크할 수 있다. IP 어드레스가 캐시 내에 있지 않은 경우, 프록시(130)는 종래의 DNS 결정 기법들을 사용하여 RAN(110)의 로컬 DNS 서버 또는 다양한 원격 DNS 서버(150)에 질의할 수 있다. 포함된 호스트 명칭의 IP 어드레스가 결정되면, 프록시(130)는 자신의 캐시 내에 변환된 IP 어드레스를 저장하고, 포함된 호스트 명칭을 가지는 데이터 패킷이 어드레스 지정된 모바일 디바이스(105)에 이를 전송할 수 있다. 프록시(130)는 이후 표준 DNS 프로토콜 메시지들을 사용하여 또는 커스텀(custom) UDP 또는 XML 메시지들 등을 사용하여 모바일 디바이스(105)의 DNS 결정기 컴포넌트에 하나 이상의 도메인 또는 호스트 명칭들에 대한 변환된 IP 어드레스 정보를 전송할 수 있다.
모바일 디바이스(105)가 메시지를 DNS 프록시(130)로부터 수신하는 경우, 이는 메시지 내에 포함된 호스트 명칭/IP 어드레스 정보를 리트리브하고 이를 자신의 DNS 결정기 컴포넌트의 캐시 또는 임의의 다른 메모리 위치에 저장한다. 포함된 호스트 명칭들을 가지는 데이터 패킷이 어드레스 지정된 모바일 디바이스(105) 상의 애플리케이션이 포함된 호스트 명칭들에 의해 식별된 네트워크 디바이스들에 대한 접속들을 설정하려 하는 경우, 이는 자신의 캐시로부터 대응하는 IP 어드레스들을 신속하게 리트리브할 수 있고 이들을 애플리케이션에 제공할 수 있는 DNS 결정기 컴포넌트를 활성화시킨다. 이러한 방식으로, 모바일 디바이스(105)의 DNS 결정기는 무선 액세스 네트워크(110)를 통해 임의의 로컬 및 원격 DNS 서버들(150)에 질의할 필요는 없으며, 임의의 로컬 및 원격 DNS 서버들(150)은 긴 무선 링크 전파 지연들 및 가능하게는 무선 액세스 네트워크(110)에 대한 에러들로 인한 다수의 데이터 재전송들로 인해 상대적으로 시간 소모적 프로세스일 수 있다. 수신된 데이터 패킷 내에 포함된 호스트 명칭들에 의해 식별된 네트워크 디바이스들의 IP 어드레스들을 결정한 경우, 모바일 디바이스(105)는 이들의 IP 어드레스들을 사용하여 이들 네트워크 디바이스들에 대한 접속들을 설정하고, 필요한 정보를 리트리브할 수 있다. DNS 프록시(130)에 의해 제공되는 선매 DNS 결정을 통해, 모바일 디바이스(105) 상에서 실행되는 애플리케이션들의 성능이 현저하게 가속될 수 있고, 사용자 경험이 그에 따라 개선될 수 있다.
도 2는 DNS 프록시에 의해 선매 DNS 결정을 위한 하나의 예시적인 방법을 예시한다. 단계(210)에서, 프록시(130)와 같은 DNS 프록시는 IP 네트워크(140)와 같은 WAN으로부터 모바일 디바이스들(105)과 같은 LAN, WLAN 또는 RAN 상의 하나 이상의 클라이언트 디바이스들에 전송되는 데이터 패킷들을 검사한다. 검사된 패킷들 내의 데이터가 압축되는 경우, 단계(220)에서, DNS 프록시는 압축된 데이터를 압축해제할 수 있다. 단계(230)에서, DNS 프록시는 ".com" or ".org" 도메인 명칭들과 같은 검사된 데이터 패킷들에 포함된 호스트(및 도메인) 명칭들을 식별한다. 단계(240)에서, DNS 프록시는 포함된 호스트 명칭의 IP 어드레스가 이전에 변환되고 프록시의 캐시에 저장되는지의 여부를 결정하기 위해 먼저 자신의 로컬 캐시를 체크할 수 있다. 단계(250)에서, IP 어드레스가 캐시 내에 발견되는 경우,단계(280)에서 DNS 프록시는 이를 클라이언트 디바이스에 전송한다. 단계(260)에서, IP 어드레스가 캐시 내에 존재하지 않는 경우, DNS 프록시는 통상적인 DNS 결정 기법들을 사용하여 로컬 DNS 서버 또는 다양한 원격 DNS 서버들에 질의한다. 포함된 호스트 명칭의 IP 어드레스가 결정되면, 단계(270)에서, DNS 프록시는 변환된 IP 어드레스를 자신의 캐시에 저장한다. 단계(280)에서, DNS 프록시는 표준 DNS 프로토콜 메시지들 또는 커스텀 UDP 또는 XML 메시지들을 사용하여, 또는 다른 공지된 통신 기술들을 사용하여 클라이언트 디바이스에 호스트 명칭 및 IP 어드레스 정보를 전송한다. 단계들(240, 250 및 270)이 선택적이며, DNS 프록시가 결정된 IP 어드레스들을 저장하기 위한 로컬 캐시를 가지는지의 여부에 의존한다는 점에 유의해야 한다.
도 3은 클라이언트 디바이스에서 구현될 수 있는 선매 DNS 결정에 대한 일 예시적인 방법을 예시한다. 단계(310)에서, 모바일 디바이스(105)의 DNS 결정기 컴포넌트와 같은 클라이언트 디바이스는 DNS 프록시로부터 메시지를 수신한다. 메시지는 표준 DNS 프로토콜 메시지 또는 주문형 UDP 또는 XML 메시지일 수 있다. 단계(320)에서, 클라이언트 디바이스는 호스트 명칭들 및 연관된 IP 어드레스 정보를 메시지로부터 리트리브한다. 단계(330)에서, 클라이언트 디바이스는 이를 자신의 DNS 결정기 컴포넌트의 캐시 내에 또는 임의의 다른 메모리 위치에 저장한다. 웹 브라우저와 같은 클라이언트 디바이스 상의 애플리케이션이 포함된 호스트 명칭들에 의해 식별된 네트워크 디바이스들에 대한 접속들을 설정하려 하는 경우, 단계(340)에서, 클라이언트 디바이스는 단계(340)에서 포함된 호스트 명칭들과 연관된 IP 어드레스들에 대한 자신의 캐시를 탐색하는 DNS 결정기 컴포넌트를 활성화시킨다. IP 어드레스들이 DNS 프록시의 보조를 가지고 선매적으로 결정된 경우, IP 어드레스들은 DNS 결정기의 캐시에서 단계(350)에서 발견될 것이며, 이후 애플리케이션은 단계(380)에서 호스트 디바이스에 대한 접속들을 신속하게 설정할 수 있을 것이다. IP 어드레스들이 캐시 내에 존재하지 않는 경우, 단계(360)에서, DNS 결정기는 통상적인 DNS 결정 기법들을 사용하여 로컬 및 원격 DNS 서버에 질의한다. 호스트 디바이스들의 IP 어드레스들이 단계(370)에서 결정되는 경우, 애플리케이션은 단계(380)에서 호스트 디바이스들에 대한 접속을 설정할 수 있다.
선매 DNS 결정에 대한 위에 개시된 방법들은 모바일 애플리케이션들의 성능을 가속화하고 다른 장점들을 제공한다. 예를 들어, 선매 DNS 결정을 위한 다른 방법들과는 달리, 본 구현예들은 포함된 호스트 디바이스 명칭들을 변환하고 이들을 결정된 IP 어드레스들을 가지는 데이터 패킷들로 대체하기 위해 클라이언트 디바이스에 대한 트래픽 데이터를 지연시키지 않는다. 선매 DNS 결정이 데이터 패킷들의 클라이언트 디바이스로의 포워딩에 대해 비동기적으로 수행된다. 이는 구현예들에서 많은 유연성을 허용한다. 또한, 개시된 방법들은 데이터의 진위를 검증하기 위해 클라이언트 디바이스에서 수행되는 기법들을 약화시키지 않는다. 또한, 개시된 구현예들은 데이터의 무결성을 파손함으로써 애플리케이션 기능성을 파손하는 위험성을 도입하지 않는다. 마지막으로, 이들 기법들의 응용가능성이 데이터의 포맷이 DNS 프록시에 공지되지 않는 애플리케이션들로 확대되며, 프록시는 호스트 또는 도메인 명칭을 구성하는 것에 관해 "숙지된 추측"을 수행할 수 있다. 오류적 긍정은 애플리케이션에 대해 어떠한 심각한 부정적 영향도 가지지 않는다.
도 4는 여기서 개시된 방법들에 따라 로컬 영역 네트워크들 또는 무선 액세스 네트워크들에 접속된 클라이언트 디바이스들에 대한 선매 DNS 결정을 수행하도록 동작가능한 예시적인 DNS 프록시 디바이스(400)를 예시한다. DNS 프록시(400)는 여기서 개시된 방법들 및 다른 기능들에 따라 선매 DNS 결정과 연관된 프로세싱 기능들을 수행하기 위한 프로세서(410)를 포함한다. 프로세서(410)는 프로세서들 또는 멀티-코어 프로세서들의 단일 또는 다수의 세트를 포함할 수 있다. 일 예시적인 양상에서, 프로세서(410)는 클라이언트 디바이스들에 대해 어드레스지정된 데이터 패킷들을 검사하기 위한 프로시져들을 구현하는 패킷 검사 모듈(460)을 포함할 수 있다. 프로세서(410)는 또한 검사된 데이터 패킷들 내의 호스트 명칭들 및 도메인 명칭들을 식별하기 위한 호스트 명칭 식별 모듈(470)을 포함할 수 있다. 프로세서(410)는 또한 포함된 호스트 및 도메인 명칭들을 연관된 IP 어드레스들로 변환하는 것을 수행하는 IP 어드레스 결정 모듈(480)을 포함할 수 있다. 프로세서(410)는 또한 클라이언트 디바이스들에 결정된 호스트 디바이스 명칭들 및 연관된 IP 어드레스들을 전송하는 전송 모듈(490)을 포함한다.
DNS 프록시(400)는 예컨대, 프로세서(410)에 의해 실행되는 선매 DNS 결정을 위한 프로그램 명령들 및 선매적으로 결정된 호스트 및 도메인 명칭들 및 연관된 IP 어드레스들을 포함하는 프록시 캐시를 저장하기 위한, 프로세서(410)에 커플링되는 메모리(420)를 더 포함한다. 메모리(420)는 컴퓨터에 의해 사용가능한 임의의 타입의 메모리, 예를 들어, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 자기 디스크들, 광학 디스크들, 휘발성 메모리, 비휘발성 메모리, 및 이들의 임의의 조합을 포함할 있다. 추가로, DNS 프록시(400)는, 하드웨어 및/또는 소프트웨어의 임의의 적절한 조합일 수 있으며, 정보, 데이터베이스들 및 여기서 개시된 양상들과 관련하여 사용되는 프로그램들의 대용량 저장소를 제공하는, 프로세서(410)에 커플링되는 데이터 저장소(430)를 더 포함할 수 있다. 예를 들어, 데이터 저장소(430)는 프로세서(410)에 의해 현재 실행되지 않는 프로그램들 또는 서브루틴들 및 선매 DNS 결정을 위한 알고리즘들 및 이와 연관된 다양한 데이터를 포함하는 파일들에 대한 데이터 리포지토리일 수 있다.
추가로, DNS 프록시(400)는 여기서 개시된 바와 같은, 클라이언트 디바이스들 및 로컬 및 원격 DNS 서버들과의 통신들을 검색, 설정 및 유지하기 위해 프로세서(410)에 커플링되는 통신 컴포넌트(440)를 포함한다. 예를 들어, 통신 컴포넌트(440)는 다양한 무선 액세스 기술들 및 프로토콜들의 무선 통신 시스템들 및 디바이스들과 인터페이싱하도록 동작가능한 송신기 및 수신기와 각각 연관된 전송 체인 컴포넌트들 및 수신 체인 컴포넌트들을 포함할 수 있다. 데이터 전송 모듈(490)은 하나 이상의 클라이언트 디바이스들 및 로컬 및 원격 DNS 서버들로/로부터 데이터를 전송/수신하도록 통신 컴포넌트(440)에 명령한다.
DNS 프록시(400)는 프로세서(410)에 커플링되고, 시스템 관리자로부터의 입력들을 수신하도록 동작가능하고, 시스템 관리자에게 제시하기 위한 출력들을 생성하도록 추가로 동작가능한 사용자 인터페이스 컴포넌트(450)를 포함할 수 있다. 컴포넌트(450)는 키보드, 숫자 패드, 마우스, 터치 민감형 디스플레이, 내비게이션 키, 기능 키, 마이크로폰, 음성 인식 컴포넌트, 사용자로부터의 입력을 수신할 수 있는 임의의 다른 메커니즘, 또는 이들의 임의의 조합을 포함하지만 이에 제한되지 않는 하나 이상의 입력 디바이스들을 포함할 수 있다. 또한, 컴포넌트(450)는 디스플레이, 스피커, 햅틱 피드백 메커니즘, 프린터, 사용자에게 출력을 제시할 수 있는 임의의 다른 메커니즘, 또는 이들의 임의의 조합을 포함할 수 있다.
도 5는 DNS 프록시 디바이스 내에서 구현될 수 있는 시스템(500)을 예시한다. 도시된 바와 같이, 시스템(500)은 프로세서, 소프트웨어, 또는 이들의 조합(예를 들어, 펌웨어)에 의해 구현되는 기능들을 나타낼 수 있는 기능 블록들을 포함한다. 시스템(500)은 여기서 개시된 바와 같이 선매 DNS 결정을 위한 알고리즘의 실행을 용이하게 하는 전기 컴포넌트들의 논리 그룹화(510)를 포함한다. 논리 그룹화(510)는 클라이언트 디바이스들에 어드레스지정되는 데이터 패킷들을 검사하기 위한 수단(520)을 포함할 수 있다. 추가로, 논리 그룹화(510)는 검사된 데이터 패킷들 내의 포함된 호스트 및 도메인 명칭들을 식별하기 위한 수단(530)을 포함한다. 추가로, 논리 그룹화(510)는 포함된 호스트 및 도메인 명칭들을 연관된 IP 어드레스들로 변환하기 위한 수단(540)을 포함한다. 마지막으로, 논리 그룹화(510)는 변환된 IP 어드레스들을 클라이언트 디바이스에 전송하기 위한 수단(550)을 포함한다. 시스템(500)은 또한 전기 컴포넌트들(520-550)과 연관된 기능들을 실행하기 위한 명령들을 보유하는 메모리(560)를 포함한다. 메모리(560)에 대해 외부에 있는 것으로 도시되지만, 전기 컴포넌트들(520-550)이 시스템(500)의 메모리(560)에 존재할 수 있다는 점이 이해되어야 한다.
도 6은 선매 DNS 결정에 대한 방법들의 다양한 양상들이 구현될 수 있는 무선 통신 시스템(600)의 예를 도시한다. 시스템(600)은 간략함을 위해, 무선 액세스 네트워크 내의 하나의 기지국/순방향 링크 송신기(610) 및 하나의 모바일 디바이스(650)를 도시한다. 그러나, 시스템(600)이 둘 이상의 기지국/순방향 링크 송신기 및/또는 둘 이상의 모바일 디바이스를 포함할 수 있으며, 여기서 추가적인 기지국들/송신기들 및/또는 모바일 디바이스들은 하기에 설명되는 예시적인 기지국/순방향 링크 송신기들(610) 및 모바일 디바이스(650)와 실질적으로 유사하거나 상이할 수 있다는 점이 이해되어야 한다. 추가로, 기지국/순방향 링크 송신기(610) 및/또는 모바일 디바이스(650)가 레이턴시 특정 프로시져들 및 그 사이의 무선 통신을 용이하게 하기 위해 여기서 설명되는 시스템들(도 1, 4 및 5) 및/또는 방법들(도 2 및 3)을 사용할 수 있다는 점이 이해되어야 한다.
기지국/순방향 링크 송신기(610)에서, 다수의 데이터 스트림들에 대한 트래픽 데이터가 데이터 소스(612)로부터 전송(TX) 데이터 프로세서(614)로 제공된다. 예에 따라, 각각의 데이터 스트림은 개별 안테나를 통해 전송될 수 있다. TX 데이터 프로세서(614)는 코딩된 데이터를 제공하기 위해 해당 데이터 스트림에 대해 선택된 특정 코딩 방식에 기초하여 트래픽 데이터 스트림을 포맷, 코딩 및 인터리빙한다.
각각의 데이터 스트림에 대해 코딩된 데이터는 직교 주파수 분할 멀티플렉싱(OFDM) 기법들을 사용하여 파일럿 데이터를 이용하여 멀티플렉싱될 수 있다. 추가적으로 또는 대안적으로, 파일럿 심볼들은 주파수 분할 멀티플렉싱(FDM), 시분할 멀티플렉싱(TDM), 또는 코드 분할 멀티플렉싱(CDM)될 수 있다. 파일럿 데이터는 통상적으로 공지된 방식으로 프로세싱되며, 채널 응답을 추정하기 위해 모바일 디방스(650)에서 사용될 수 있는 공지된 데이터 패턴이다. 각각의 데이터 스트림에 대해 멀티플렉싱된 파일럿 및 코딩된 데이터는 변조 심볼들을 제공하기 위해 해당 데이터 스트림에 대해 선택된 특정 변조 방식(예를 들어, 바이너리 위상 시프트 키잉(BPSK), 직교 위상 시프트 키잉(QPSK), M-상 시프트 키잉(M-PSK), M-직교 진폭 변조(M-QAM), 등)에 기초하여 변조(예를 들어, 심볼 매핑)될 수 있다. 각각의 데이터 스트림에 대한 데이터 레이트, 코딩 및 변조는 프로세서(630)에 의해 수행되거나 제공되는 명령들에 의해 결정될 수 있다.
데이터 스트림들에 대한 변조 심볼들은 (예를 들어, OFDM에 대한) 변조 심볼들을 추가로 프로세싱할 수 있는 TX MIMO 프로세서(620)에 제공될 수 있다. TX MIMO 프로세서(620)는 이후 NT개의 변조 심볼 스트림들을 NT개의 송신기들(TMTR)(622a 내지 622t)에 제공한다. 다양한 양상들에서, TX MIMO 프로세서(620)는 심볼을 전송하는 안테나에 그리고 데이터 스트림들의 심볼들에 빔형성 가중들을 적용한다.
각각의 송신기(622)는 하나 이상의 아날로그 신호들을 제공하기 위해 개별 심볼 스트림을 수신 및 프로세싱하고, MIMO 채널을 통한 전송에 적합한 변조된 신호를 제공하기 위해 아날로그 신호들을 추가로 컨디셔닝(예를 들어, 증폭, 필터링 및 상향변환)한다. 또한, 송신기들(622a 내지 622t)로부터의 NT개의 변조된 신호들은 각각 NT개의 안테나들(624a 내지 624t)로부터 전송된다.
모바일 디바이스(650)에서, 전송된 변조된 신호들은 NR개의 안테나들(652a 내지 652r)에 의해 수신되고, 각각의 안테나(652)로부터의 수신된 신호는 개별 수신기(RCVR)(654a 내지 654r)에 제공된다. 각각의 수신기(654)는 개별 신호를 컨디셔닝(예를 들어, 필터링, 증폭 및 하향변환)하고, 샘플들을 제공하기 위해 컨디셔닝된 신호를 디지털화하고, 대응하는 "수신된" 심볼 스트림을 제공하기 위해 샘플들을 추가로 프로세싱한다.
RX 데이터 프로세서(660)는 NR개의 "검파된" 심볼 스트림들을 제공하기 위해 특정 수신기 프로세싱 기법에 기초하여 NR개의 수신기들(654)로부터 NR개의 수신된 심볼 스트림들을 수신 및 프로세싱할 수 있다. RX 데이터 프로세서(660)는 데이터 스트림에 대한 트래픽 데이터를 복원하기 위해 각각의 검파된 심볼 스트림을 복조, 디인터리빙 및 디코딩할 수 있다. RX 데이터 프로세서(660)에 의한 프로세싱은 기지국/순방향 링크 송신기(610)에서의 TX MIMO 프로세서(620) 및 TX 데이터 프로세서(614)에 의해 수행되는 것과는 상보적이다.
프로세서(670)는 전술된 바와 같이 어느 프리코딩 행렬을 이용할지를 주기적으로 결정할 수 있다. 추가로, 프로세서(670)는 행렬 인덱스 부분 및 랭크 값 부분을 포함하는 역방향 링크 메시지를 형성할 수 있다.
역방향 링크 메시지는 통신 링크 및/또는 수신된 데이터 스트림에 관한 다양한 타입들의 정보를 포함할 수 있다. 역방향 링크 메시지는 또한 데이터 소스(636)로부터 다수의 데이터 스트림들에 대한 트래픽 데이터를 수신하는 TX 데이터 프로세서(638)에 의해 프로세싱되고, 변조기(680)에 의해 변조되고, 송신기들(654a 내지 654r)에 의해 컨디셔닝되고, 기지국/순방향 링크 송신기(610)에 다시 전송될 수 있다.
기지국/순방향 링크 송신기(610)에서, 모바일 디바이스(650)로부터 변조된 신호들은 안테나들(624)에 의해 수신되고, 수신기들(622)에 의해 컨디셔닝되고, 복조기(640)에 의해 복조되고, 그리고 모바일 디바이스(650)에 의해 전송된 역방향 링크 메시지를 추출하도록 RX 데이터 프로세서(642)에 의해 프로세싱될 수 있다. 또한, 프로세서(630)는 빔형성 가중들을 결정하기 위해 어느 프리코딩 행렬을 사용할지를 결정하기 위해 추출된 메시지를 프로세싱할 수 있다. 기지국과는 대조적으로, 순방향 링크 송신기(810)의 경우, 데이터가 오직 순방향 링크를 통해 브로드캐스팅되므로, 이들 RX 컴포넌트들이 존재하지 않을 수 있다는 점이 이해되어야 한다.
프로세서들(630 및 670)은 각각 기지국/순방향 링크 송신기(610) 및 모바일 디바이스(650)에서의 동작을 지시(예를 들어, 제어, 조정, 관리 등)할 수 있다. 개별 프로세서들(630 및 670)은 프로그램 코드들 및 데이터를 저장하는 메모리(632 및 672)와 연관될 수 있다. 프로세서들(630 및 670)은 또한 각각 업링크 및 다운링크에 대한 주파수 및 임펄스 응답 추정들을 유도하기 위한 계산들을 수행할 수 있다.
여기서 개시된 양상들이 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 또는 이들의 임의의 조합으로 구현될 수 있다는 점이 이해되어야 한다. 하드웨어 구현을 위해, 프로세싱 유닛들은 하나 이상의 주문형 집적 회로(ASIC)들, 디지털 신호 프로세서(DSP)들, 디지털 신호 프로세싱 디바이스(DSPD)들, 프로그램가능 논리 디바이스(PLD)들, 필드 프로그램가능 게이트 어레이(FPGA)들, 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 여기서 기술된 기능들을 수행하도록 설계되는 다른 전자 유닛들, 또는 이들의 조합 내에 구현될 수 있다.
양상들이 하드웨어, 펌웨어, 미들웨어 또는 마이크로코드, 프로그램 코드 또는 코드 세그먼트들로 구현되는 경우, 이들은 저장 컴포넌트와 같은 기계-판독가능한 매체 내에 저장될 수 있다. 코드 세그먼트는 프로시져, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들 또는 프로그램 선언문들의 임의의 조합을 나타낼 수 있다. 코드 세그먼트는 정보, 데이터, 인수들, 파라미터들 또는 메모리 컨텐츠들을 전달 및/또는 수신함으로써 또다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 정보 등을 포함하는 임의의 적절한 수단을 사용하여 전달, 포워딩 또는 전송될 수 있다.
소프트웨어 구현을 위해, 여기서 개시된 기법들은 여기서 설명된 기능들을 수행하는 모듈들(예를 들어, 프로시져들, 함수들 등)을 이용하여 구현될 수 있다. 소프트웨어 코드들은 메모리 유닛들 내에 저장될 수 있고 프로세서들에 의해 실행될 수 있다. 메모리 유닛은 프로세서 내에 또는 프로세서 외부에 구현될 수 있으며, 어느 경우든, 이는 당해 기술분야에 공지된 다양한 수단들을 통해 프로세서에 통신상으로 커플링될 수 있다.
여기서 개시된 양상들과 관련하여 설명되는 다양한 예시적인 로직들, 논리 블록들, 모듈들 및 회로들은 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA) 또는 다른 프로그램가능 논리 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 여기서 설명되는 기능들을 수행하도록 설계되는 이들의 임의의 조합으로 구현되거나 이들을 이용하여 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 공조하는 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다. 추가로, 적어도 하나의 프로세서는 위에서 설명된 단계들 및/또는 동작들 중 하나 이상을 수행하도록 동작가능한 하나 이상의 모듈들을 포함할 수 있다.
또한, 여기서 개시된 양상들과 관련하여 설명된 방법 또는 알고리즘의 단계들 및/또는 동작들은 직접 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들 둘의 조합에서 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드디스크, 이동식 디스크, CD-ROM, 또는 당해 기술분야에 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링될 수 있다. 대안적으로, 저장 매체는 프로세서에 일체화될 수 있다. 또한, 일부 양상들에서, 프로세서들 및 저장 매체는 ASIC에 상주할 수 있다. 추가로, ASIC은 사용자 단말에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말 내에 이산 컴포넌트들로서 상주할 수 있다. 추가로, 일부 양상들에서, 방법 또는 알고리즘의 단계들 및/또는 동작들은, 컴퓨터 프로그램 물건으로 통합될 수 있는 컴퓨터 판독가능한 매체 및/또는 기계 판독가능한 매체 상의 코드들 및/또는 명령들 중 하나 또는 임의의 조합 또는 세트로서 상주할 수 있다.
하나 이상의 양상들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수 있다. 소프트웨어에서 구현되는 경우, 기능들 컴퓨터 판독가능한 매체 상에 하나 이상의 명령들 또는 코드로서 저장 또는 전송될 수 있다. 컴퓨터 판독가능한 매체는 일 장소에서 또다른 장소로의 컴퓨터 프로그램의 이전을 용이하게 하는 임의의 매체를 포함하는 통신 매체 및 컴퓨터 저장 매체 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있다. 제한이 아닌 예를 들어, 이러한 컴퓨터-판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 요구되는 프로그램 코드를 전달 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속수단이 컴퓨터-판독가능한 매체로 명명될 수 있다. 예를 들어, 소프트웨어가 웹 사이트, 서버, 또는 다른 원격 소스로부터, 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선(DSL), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들을 사용하여 전송되는 경우, 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선(DSL), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들이 매체의 정의 내에 포함된다. 여기서 사용되는 바와 같이, disk 및 disc는 컴팩트 disc(CD), 레이저 disc, 광학 disc, 디지털 다목적 disc(DVD), 플로피 disk 및 블루레이 disc를 포함하며, 여기서 disk들은 일반적으로 데이터를 자기상으로 재생하는 반면, disc들은 일반적으로 데이터를 레이저를 통해 광학적으로 재생한다. 상기 항목들의 조합들 역시 컴퓨터 판독가능한 매체의 범위 내에 포함되어야 한다.
전술된 개시내용이 예시적인 양상들을 논의하지만, 다양한 변경들 및 수정들이 첨부된 청구항들에 의해 정의된 바와 같은 설명된 양상들의 범위로부터 벗어나지 않고 여기서 이루어질 수 있다는 점에 유의해야 한다. 또한, 설명된 양상들의 엘리먼트들이 단수로 기재되거나 청구될 수 있지만, 단수에 대한 제한이 명시적으로 언급되지 않는 한 복수가 참작된다. 추가로, 임의의 양상의 일부 또는 전부는, 달리 언급되지 않는 한, 임의의 다른 양상의 일부 또는 전부와 함께 이용될 수 있다.

Claims (36)

  1. 통신을 위한 방법으로서,
    프록시(proxy) 디바이스에 의해, 클라이언트 디바이스에 전송되는 하나 이상의 데이터 패킷들을 검사하는 단계;
    상기 검사된 데이터 패킷들 내에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하는 단계;
    상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정하는 단계;
    변경들 없이 상기 검사된 데이터 패킷들을 상기 클라이언트 디바이스에 전송하는 단계; 및
    상기 검사된 데이터 패킷에서 식별된 호스트 디바이스들에 대한 접속들을 설정하기 위해 상기 클라이언트 디바이스에 의해 사용할 상기 하나 이상의 호스트 디바이스 명칭들 및 상기 연관된 결정된 IP 어드레스들을, 상기 검사된 데이터 패킷들과는 독립적으로, 상기 클라이언트 디바이스에 전송하는 단계를 포함하는, 통신을 위한 방법.
  2. 제1항에 있어서,
    상기 검사된 데이터 패킷 내에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하는 단계는 상기 하나 이상의 인터셉트된 데이터 패킷들의 코드를 재구성하는 단계를 포함하는, 통신을 위한 방법.
  3. 제1항에 있어서,
    상기 검사된 데이터 패킷 내에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하는 단계는 ASCII 문자 스트링 패턴 매칭을 사용하여 상기 검사된 데이터 패킷들을 분석하는 단계를 포함하는, 통신을 위한 방법.
  4. 제1항에 있어서,
    상기 IP 어드레스들을 결정하는 단계는:
    상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들에 대해 프록시 디바이스의 로컬 캐시를 탐색하는 단계; 및
    상기 프록시 디바이스의 로컬 캐시 내에서 상기 연관된 IP 어드레스들을 위치결정하는 것에 실패할 시에, 상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정하기 위해 하나 이상의 DNS 서버들에 상기 프록시 디바이스에 의해 질의하는 단계를 더 포함하는, 통신을 위한 방법.
  5. 제1항에 있어서,
    상기 IP 어드레스들을 결정하는 단계는 상기 프록시 디바이스의 로컬 캐시 내에 상기 하나 이상의 식별된 호스트 디바이스 명칭들 및 상기 연관된 결정된 IP 어드레스들을 저장하는 단계를 더 포함하는, 통신을 위한 방법.
  6. 제1항에 있어서,
    상기 프록시 디바이스에 의해, 상기 클라이언트 디바이스에 전송되는 하나 이상의 데이터 패킷들을 검사하는 단계는 제1 전파 레이턴시를 가지는 제1 통신 링크 상에서 상기 클라이언트 디바이스에 전송되는 데이터 패킷들을 검사하는 단계를 포함하는, 통신을 위한 방법.
  7. 제6항에 있어서,
    변경들 없이 상기 검사된 데이터 패킷들을 상기 클라이언트 디바이스에 전송하는 단계는 제2 전파 레이턴시를 가지는 제2 통신 링크 상에서 상기 검사된 데이터 패킷들을 전송하는 단계를 포함하고, 상기 제1 전파 레이턴시는 상기 제2 전파 레이턴시보다 실질적으로 더 낮은, 통신을 위한 방법.
  8. 제7항에 있어서,
    상기 클라이언트 디바이스는 모바일 디바이스를 포함하고, 상기 제1 통신 링크는 코어 IP 네트워크를 포함하고, 상기 제2 통신 링크는 무선 액세스 네트워크(RAN)을 포함하고, 상기 프록시 디바이스는 상기 RAN 및 상기 코어 IP 네트워크를 접속시키는 IP 액세스 게이트웨이에 의해 호스팅되는, 통신을 위한 방법.
  9. 제7항에 있어서,
    상기 제1 통신 링크는 광역 네트워크(WAN)를 포함하고, 상기 제2 통신 링크는 로컬 영역 네트워크(LAN)를 포함하고, 상기 프록시 디바이스는 상기 LAN 및 WAN을 접속시키는 라우터에 의해 호스팅되는, 통신을 위한 방법.
  10. 통신 시스템으로서,
    프로세서 및 상기 프로세서에 커플링되는 통신 컴포넌트를 포함하고, 상기 프로세서는:
    프록시 디바이스에 의해, 클라이언트 디바이스에 전송되는 하나 이상의 데이터 패킷들을 검사하고;
    상기 검사된 데이터 패킷들 내에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하고;
    상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정하고;
    변경들 없이 상기 검사된 데이터 패킷들을 상기 클라이언트 디바이스에 전송하고; 그리고
    상기 검사된 데이터 패킷에서 식별되는 호스트 디바이스들에 대한 접속들을 설정하기 위해 상기 클라이언트 디바이스에 의해 사용할 상기 하나 이상의 호스트 디바이스 명칭들 및 상기 연관된 결정된 IP 어드레스들을, 상기 검사된 데이터 패킷들과는 독립적으로, 상기 클라이언트 디바이스에 전송하도록 구성되는, 통신 시스템.
  11. 제10항에 있어서,
    상기 검사된 데이터 패킷에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하기 위해, 상기 프로세서는 상기 하나 이상의 인터셉트된 데이터 패킷들의 코드를 재구성하도록 추가로 구성되는, 통신 시스템.
  12. 제10항에 있어서,
    상기 검사된 데이터 패킷에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하기 위해, 상기 프로세서는 ASCII 문자 스트링 패턴 매칭을 사용하여 상기 검사된 데이터 패킷들을 분석하도록 추가로 구성되는, 통신 시스템.
  13. 제10항에 있어서,
    상기 IP 어드레스들을 결정하기 위해, 상기 프로세서는:
    상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들에 대해 프록시 디바이스의 로컬 캐시를 탐색하고; 그리고
    상기 프록시 디바이스의 로컬 캐시 내에서 상기 연관된 IP 어드레스들을 위치결정하는 것에 실패할 시에, 상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정하기 위해 하나 이상의 DNS 서버들에 상기 프록시 디바이스에 의해 질의하도록 추가로 구성되는, 통신 시스템.
  14. 제10항에 있어서,
    상기 IP 어드레스들을 결정하기 위해, 상기 프로세서는 상기 프록시 디바이스의 로컬 캐시 내에 상기 하나 이상의 식별된 호스트 디바이스 명칭들 및 상기 연관된 결정된 IP 어드레스들을 저장하도록 추가로 구성되는, 통신 시스템.
  15. 제10항에 있어서,
    상기 클라이언트 디바이스에 전송되는 하나 이상의 데이터 패킷들을 검사하기 위해, 상기 프로세서는 제1 전파 레이턴시를 가지는 제1 통신 링크 상에서 상기 클라이언트 디바이스에 전송되는 데이터 패킷들을 검사하도록 추가로 구성되는, 통신 시스템.
  16. 제15항에 있어서,
    변경들 없이 상기 검사된 데이터 패킷들을 상기 클라이언트 디바이스에 전송하기 위해, 상기 프로세서는 제2 전파 레이턴시를 가지는 제2 통신 링크 상에서 상기 검사된 데이터 패킷들을 전송하도록 추가로 구성되고, 상기 제1 전파 레이턴시는 상기 제2 전파 레이턴시보다 실질적으로 더 낮은, 통신 시스템.
  17. 제16항에 있어서,
    상기 클라이언트 디바이스는 모바일 디바이스를 포함하고, 상기 제1 통신 링크는 코어 IP 네트워크를 포함하고, 상기 제2 통신 링크는 무선 액세스 네트워크(RAN)을 포함하고, 상기 통신 시스템은 상기 RAN 및 상기 코어 IP 네트워크를 접속시키는 IP 액세스 게이트웨이에 의해 호스팅되는, 통신 시스템.
  18. 제16항에 있어서,
    상기 제1 통신 링크는 광역 네트워크(WAN)를 포함하고, 상기 제2 통신 링크는 로컬 영역 네트워크(LAN)를 포함하고, 상기 통신 시스템은 상기 LAN 및 WAN을 접속시키는 라우터에 의해 호스팅되는, 통신 시스템.
  19. 컴퓨터 판독가능한 매체를 포함하는 컴퓨터 프로그램 물건으로서,
    상기 컴퓨터 판독가능한 매체는:
    컴퓨터로 하여금 클라이언트 디바이스에 전송되는 하나 이상의 데이터 패킷들을 검사하게 하기 위한 코드들의 제1 세트;
    상기 컴퓨터로 하여금 상기 검사된 데이터 패킷들 내에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하게 하기 위한 코드들의 제2 세트;
    상기 컴퓨터로 하여금 상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정하게 하기 위한 코드들의 제3 세트;
    상기 컴퓨터로 하여금 변경들 없이 상기 검사된 데이터 패킷들을 상기 클라이언트 디바이스에 전송하게 하기 위한 코드들의 제4 세트; 및
    상기 컴퓨터로 하여금 상기 검사된 데이터 패킷에서 식별되는 호스트 디바이스들에 대한 접속들을 설정하기 위해 상기 클라이언트 디바이스에 의해 사용할 상기 하나 이상의 호스트 디바이스 명칭들 및 상기 연관된 결정된 IP 어드레스들을, 상기 검사된 데이터 패킷들과는 독립적으로, 상기 클라이언트 디바이스에 전송하게 하기 위한 코드들의 제5 세트
    를 포함하는, 컴퓨터 프로그램 물건.
  20. 제19항에 있어서,
    상기 코드들의 제2 세트는 상기 컴퓨터로 하여금 상기 하나 이상의 인터셉트된 데이터 패킷들의 코드를 재구성하게 하기 위한 코드들의 제6 세트를 더 포함하는, 컴퓨터 프로그램 물건.
  21. 제19항에 있어서,
    상기 코드들의 제2 세트는 상기 컴퓨터로 하여금 ASCII 문자 스트링 패턴 매칭을 사용하여 상기 검사된 데이터 패킷들을 분석하게 하기 위한 코드들의 제7 세트를 더 포함하는, 컴퓨터 프로그램 물건.
  22. 제19항에 있어서,
    상기 코드들의 제3 세트는 상기 컴퓨터로 하여금:
    상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들에 대해 프록시 디바이스의 로컬 캐시를 탐색하고; 그리고
    상기 프록시 디바이스의 로컬 캐시 내에서 상기 연관된 IP 어드레스들을 위치결정하는 것에 실패할 시에, 상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정하기 위해 하나 이상의 DNS 서버들에 상기 프록시 디바이스에 의해 질의하게 하기 위한 코드들의 제8 세트를 더 포함하는, 컴퓨터 프로그램 물건.
  23. 제19항에 있어서,
    상기 코드들의 제3 세트는 상기 컴퓨터로 하여금 상기 프록시 디바이스의 로컬 캐시 내에 상기 하나 이상의 식별된 호스트 디바이스 명칭들 및 상기 연관된 결정된 IP 어드레스들을 저장하게 하기 위한 코드들의 제9 세트를 더 포함하는, 컴퓨터 프로그램 물건.
  24. 제19항에 있어서,
    상기 코드들의 제1 세트는 상기 컴퓨터로 하여금 제1 전파 레이턴시를 가지는 제1 통신 링크 상에서 상기 클라이언트 디바이스에 전송되는 데이터 패킷들을 검사하게 하는 코드들의 제10 세트를 더 포함하는, 컴퓨터 프로그램 물건.
  25. 제24항에 있어서,
    상기 코드들의 제4 세트는 상기 컴퓨터로 하여금 제2 전파 레이턴시를 가지는 제2 통신 링크 상에서 상기 검사된 데이터 패킷들을 전송하게 하는 코드들의 제11세트를 더 포함하고, 상기 제1 전파 레이턴시는 상기 제2 전파 레이턴시보다 실질적으로 더 낮은, 컴퓨터 프로그램 물건.
  26. 제25항에 있어서,
    상기 클라이언트 디바이스는 모바일 디바이스를 포함하고, 상기 제1 통신 링크는 코어 IP 네트워크를 포함하고, 상기 제2 통신 링크는 무선 액세스 네트워크(RAN)을 포함하고, 상기 컴퓨터는 상기 RAN 및 상기 코어 IP 네트워크를 접속시키는 IP 액세스 게이트웨이에 의해 호스팅되는, 컴퓨터 프로그램 물건.
  27. 제25항에 있어서,
    상기 제1 통신 링크는 광역 네트워크(WAN)를 포함하고, 상기 제2 통신 링크는 로컬 영역 네트워크(LAN)를 포함하고, 상기 컴퓨터는 상기 LAN 및 WAN을 접속시키는 라우터에 의해 호스팅되는, 컴퓨터 프로그램 물건.
  28. 장치로서,
    클라이언트 디바이스에 전송되는 하나 이상의 데이터 패킷들을 검사하기 위한 수단;
    상기 검사된 데이터 패킷들 내에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하기 위한 수단;
    상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정하기 위한 수단;
    변경들 없이 상기 검사된 데이터 패킷들을 상기 클라이언트 디바이스에 전송하기 위한 수단; 및
    상기 검사된 데이터 패킷에서 식별된 호스트 디바이스들에 대한 접속들을 설정하기 위해 상기 클라이언트 디바이스에 의해 사용할 상기 하나 이상의 호스트 디바이스 명칭들 및 상기 연관된 결정된 IP 어드레스들을, 상기 검사된 데이터 패킷들과는 독립적으로, 상기 클라이언트 디바이스에 전송하기 위한 수단을 포함하는, 장치.
  29. 제28항에 있어서,
    상기 검사된 데이터 패킷 내에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하기 위한 수단은 상기 하나 이상의 인터셉트된 데이터 패킷들의 코드를 재구성하기 위한 수단을 포함하는, 장치.
  30. 제28항에 있어서,
    상기 검사된 데이터 패킷 내에 포함된 하나 이상의 호스트 디바이스 명칭들을 식별하기 위한 수단은 ASCII 문자 스트링 패턴 매칭을 사용하여 상기 검사된 데이터 패킷들을 분석하기 위한 수단을 포함하는, 장치.
  31. 제28항에 있어서,
    상기 IP 어드레스들을 결정하기 위한 수단은:
    상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들에 대해 로컬 캐시를 탐색하기 위한 수단; 및
    상기 로컬 캐시 내에서 상기 연관된 IP 어드레스들을 위치결정하는 것에 실패할 시에, 상기 하나 이상의 포함된 호스트 디바이스 명칭들과 연관된 IP 어드레스들을 결정하기 위해 하나 이상의 DNS 서버들에 질의하기 위한 수단을 더 포함하는, 장치.
  32. 제28항에 있어서,
    상기 IP 어드레스들을 결정하기 위한 수단은 상기 로컬 캐시 내에 상기 하나 이상의 식별된 호스트 디바이스 명칭들 및 상기 연관된 결정된 IP 어드레스들을 저장하기 위한 수단을 더 포함하는, 장치.
  33. 제28항에 있어서,
    상기 클라이언트 디바이스에 전송되는 하나 이상의 데이터 패킷들을 검사하기 위한 수단은 제1 전파 레이턴시를 가지는 제1 통신 링크 상에서 상기 클라이언트 디바이스에 전송되는 데이터 패킷들을 검사하기 위한 수단을 포함하는, 장치.
  34. 제33항에 있어서,
    변경들 없이 상기 검사된 데이터 패킷들을 상기 클라이언트 디바이스에 전송하기 위한 수단은 제2 전파 레이턴시를 가지는 제2 통신 링크 상에서 상기 검사된 데이터 패킷들을 전송하기 위한 수단을 포함하고, 상기 제1 전파 레이턴시는 상기 제2 전파 레이턴시보다 실질적으로 더 낮은, 장치.
  35. 제34항에 있어서,
    상기 클라이언트 디바이스는 모바일 디바이스를 포함하고, 상기 제1 통신 링크는 코어 IP 네트워크를 포함하고, 상기 제2 통신 링크는 무선 액세스 네트워크(RAN)을 포함하고, 상기 장치는 상기 RAN 및 상기 코어 IP 네트워크를 접속시키는 IP 액세스 게이트웨이에 의해 호스팅되는, 장치.
  36. 제34항에 있어서,
    상기 제1 통신 링크는 광역 네트워크(WAN)를 포함하고, 상기 제2 통신 링크는 로컬 영역 네트워크(LAN)를 포함하고, 상기 장치는 상기 LAN 및 WAN을 접속시키는 라우터에 의해 호스팅되는, 장치.
KR1020127019041A 2009-12-21 2010-12-21 선점적 dns 결정을 위한 시스템들 및 방법들 KR20120108004A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/643,809 US20110153807A1 (en) 2009-12-21 2009-12-21 Systems and Methods for Preemptive DNS Resolution
US12/643,809 2009-12-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020157010128A Division KR20150052324A (ko) 2009-12-21 2010-12-21 선점적 dns 결정을 위한 시스템들 및 방법들

Publications (1)

Publication Number Publication Date
KR20120108004A true KR20120108004A (ko) 2012-10-04

Family

ID=44152666

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020127019041A KR20120108004A (ko) 2009-12-21 2010-12-21 선점적 dns 결정을 위한 시스템들 및 방법들
KR1020157010128A KR20150052324A (ko) 2009-12-21 2010-12-21 선점적 dns 결정을 위한 시스템들 및 방법들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020157010128A KR20150052324A (ko) 2009-12-21 2010-12-21 선점적 dns 결정을 위한 시스템들 및 방법들

Country Status (7)

Country Link
US (1) US20110153807A1 (ko)
EP (1) EP2517443A1 (ko)
JP (2) JP6038657B2 (ko)
KR (2) KR20120108004A (ko)
CN (1) CN102668517B (ko)
TW (1) TW201141166A (ko)
WO (1) WO2011084820A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024777B2 (en) * 2008-11-20 2011-09-20 Mark Kevin Shull Domain based authentication scheme
EP2638688B1 (en) * 2010-11-08 2018-10-10 Telefonaktiebolaget LM Ericsson (publ) Traffic acceleration in mobile network
US8769000B2 (en) * 2011-02-01 2014-07-01 Microsoft Corporation Adaptive network communication techniques
WO2012123617A1 (en) * 2011-03-15 2012-09-20 Nokia Corporation Method and apparatus for initiating radio connections
US9292467B2 (en) 2011-09-16 2016-03-22 Radware, Ltd. Mobile resource accelerator
US8891552B2 (en) * 2011-11-08 2014-11-18 Cisco Technology, Inc. Managed access to mobile endpoints
GB2498192A (en) 2012-01-04 2013-07-10 Ibm Moving OSI layer 4 connections for UMTS network with data offload at celltower
US9642169B2 (en) * 2012-01-11 2017-05-02 Saguna Networks Ltd. Methods, circuits, devices, systems and associated computer executable code for facilitating access to a content source through a wireless mobile network
US9537899B2 (en) 2012-02-29 2017-01-03 Microsoft Technology Licensing, Llc Dynamic selection of security protocol
US9363320B2 (en) 2012-12-05 2016-06-07 Microsoft Technology Licensing, Llc Persistent connection between network devices
US20140173134A1 (en) * 2012-12-18 2014-06-19 Hughes Network Systems, Llc Method and system for optimized opportunistic transmission of domain name reference information
JP6187241B2 (ja) * 2013-12-24 2017-08-30 ソニー株式会社 制御装置、電子機器、制御システム、および制御方法
CN103957284B (zh) * 2014-04-04 2015-09-09 北京奇虎科技有限公司 Dns行为的处理方法、装置及系统
US8977728B1 (en) * 2014-05-16 2015-03-10 Iboss, Inc. Maintaining IP tables
US9497063B2 (en) * 2014-05-16 2016-11-15 Iboss, Inc. Maintaining IP tables
US9948706B2 (en) * 2015-06-02 2018-04-17 Apple Inc. Preemptive address mapping for server load balancing
CN105262857A (zh) * 2015-11-04 2016-01-20 北京汉柏科技有限公司 一种dns中继功能加速方法及装置
CN106998359A (zh) * 2017-03-24 2017-08-01 百度在线网络技术(北京)有限公司 基于人工智能的语音识别服务的网络接入方法以及装置
US10812448B2 (en) * 2018-01-26 2020-10-20 Citrix Systems, Inc. Split-tunneling for clientless SSL-VPN sessions with zero-configuration
JP7309418B2 (ja) * 2019-03-29 2023-07-18 キヤノン株式会社 通信装置、通信装置の制御方法及びプログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3915230B2 (ja) * 1998-02-27 2007-05-16 株式会社日立製作所 パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体
US6854018B1 (en) * 2000-03-20 2005-02-08 Nec Corporation System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size
US7082476B1 (en) * 2000-05-24 2006-07-25 Cisco Technology, Inc. System and method of optimizing retrieval of network resources by identifying and substituting embedded symbolic host name references with network addresses in accordance with substitution policies
US7003555B1 (en) * 2000-06-23 2006-02-21 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
KR100442425B1 (ko) * 2000-11-15 2004-07-30 엘지전자 주식회사 이동통신 시스템에서 인터넷 아이피멀티캐스팅/브로드캐스팅 방법
US20020178238A1 (en) * 2001-05-23 2002-11-28 Thomas Fletcher Caching address information in a communications system
US20030110234A1 (en) * 2001-11-08 2003-06-12 Lightsurf Technologies, Inc. System and methodology for delivering media to multiple disparate client devices based on their capabilities
US7180895B2 (en) * 2001-12-31 2007-02-20 3Com Corporation System and method for classifying network packets with packet content
US7483384B2 (en) * 2003-09-22 2009-01-27 Hewlett-Packard Development Company, L.P. System and method for monitoring network traffic
US20050210122A1 (en) * 2004-03-22 2005-09-22 Qualcomm Incorporated HTTP acceleration over a network link
US7523193B2 (en) * 2004-05-18 2009-04-21 International Business Machines Corporation Method and apparatus for DNS pre-fetching for multiple clients
US20060034256A1 (en) * 2004-08-13 2006-02-16 Nokia Corporation System and method for service discovery during connection setup in a wireless environment
US8943304B2 (en) * 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US20060294223A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Pre-fetching and DNS resolution of hyperlinked content
JP4668775B2 (ja) * 2005-11-28 2011-04-13 株式会社日立製作所 Dnsサーバ装置
US8929360B2 (en) * 2006-12-07 2015-01-06 Cisco Technology, Inc. Systems, methods, media, and means for hiding network topology
US7584294B2 (en) * 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US8908700B2 (en) * 2007-09-07 2014-12-09 Citrix Systems, Inc. Systems and methods for bridging a WAN accelerator with a security gateway
US8966011B2 (en) * 2007-12-28 2015-02-24 Echostar Technologies L.L.C. Performance enhancing proxy
JP5135165B2 (ja) * 2008-10-24 2013-01-30 Kddi株式会社 コンテンツサーバシステム、コンテンツサーバおよびクライアントコンピュータ

Also Published As

Publication number Publication date
EP2517443A1 (en) 2012-10-31
US20110153807A1 (en) 2011-06-23
JP2016140070A (ja) 2016-08-04
KR20150052324A (ko) 2015-05-13
WO2011084820A1 (en) 2011-07-14
JP6038657B2 (ja) 2016-12-07
CN102668517A (zh) 2012-09-12
JP2013515451A (ja) 2013-05-02
CN102668517B (zh) 2016-12-07
TW201141166A (en) 2011-11-16

Similar Documents

Publication Publication Date Title
KR20120108004A (ko) 선점적 dns 결정을 위한 시스템들 및 방법들
US9712559B2 (en) Identifying frames
Wing et al. Happy eyeballs: Success with dual-stack hosts
US8782278B2 (en) Address redirection for nodes with multiple internet protocol addresses in a wireless network
RU2473171C2 (ru) Улучшения управления политиками тарификации и оплаты услуг (рсс) для поддержки шифрования
TWI495382B (zh) 動態本籍網路指派
US10911561B2 (en) Method and network node for caching web content
WO2019062593A1 (zh) 报文传输方法及装置、计算机可读存储介质
US20170332439A1 (en) Extending the range of mesh networks
US20100235464A1 (en) Handoff and optimization of a network protocol stack
Škoberne et al. IPv4 address sharing mechanism classification and tradeoff analysis
WO2015171023A1 (en) Establishing a multipath tcp (mptcp) connection
US11038994B2 (en) Technique for transport protocol selection and setup of a connection between a client and a server
CN116471338B (zh) 一种基于SPACE6的协议转换技术的IPv6云转换平台
Wing et al. Rfc 6555: Happy eyeballs: Success with dual-stack hosts
Sarolahti et al. Poor man's content centric networking (with TCP)
Chemmagate An experimental study of web transport protocols in cellular networks
Laite Developing Customer Edge Switching Test Framework
Sevilla Improving the Internet Architecture Through Indirection and Virtualization
Hansen Multihoming with Internet Protocol Version 6
Kim Towards utilizing network diversity for future internet protocols

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
A107 Divisional application of patent
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150420

Effective date: 20160229