KR20010086381A - 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한방법 및 장치 - Google Patents

도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한방법 및 장치 Download PDF

Info

Publication number
KR20010086381A
KR20010086381A KR1020017003005A KR20017003005A KR20010086381A KR 20010086381 A KR20010086381 A KR 20010086381A KR 1020017003005 A KR1020017003005 A KR 1020017003005A KR 20017003005 A KR20017003005 A KR 20017003005A KR 20010086381 A KR20010086381 A KR 20010086381A
Authority
KR
South Korea
Prior art keywords
information
requested information
cache
computer
request
Prior art date
Application number
KR1020017003005A
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 KR20010086381A publication Critical patent/KR20010086381A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

도메인 네임 시스템을 투과적으로 처리하기 위한 방법과 장치가 제공된다. 도메인 네임을 사용하여 인터넷 상의 정보를 액세스하기 위하여, 도메인 네임에 매핑하는 인터넷 프로토콜(IP) 어드레스는 결정되어져야 한다. 도메인 네임 시스템(DNS)은 어드레스와 도메인 네임 정보를 전송하고 처리하기 위해 활용된다. DNS 트래픽은 인터넷 네트워크 트래픽의 약 10%를 포함한다. 클라이언트가 네임 서버에게 도메인 네임을 IP 어드레스로 번역할 것을 요구할 때, 바라던 정보를 유지하는 네임 서버의 위치가 정해질 때까지, 요구는 하나의 네트워크 라우터로부터 다른 네트워크 라우터로 전송된다. 네트워크 라우터들은 정보를 검사하지 않고 단지 경로를 따라 정보를 목적 네임 서버로 전송한다. 본 발명의 하나 이상의 실시예들은, 언제 정보가 DNS 트래픽으로 구성되고, 언제 정보를 구문 해석하며, 언제 어드레스(만일 조금이라고 있으면)를 캐싱하고, 그다음 언제 원하는 정보를 네임 서버에 다시 계속 전송하는지를 인지하는 업데이트된 라우터들을 제공한다. 따라서, 유사한 어드레스 정보에 대한 다른 요구가 라우터로 전송될 때, 라우터는, 요구를 멀리 떨어진 네임 서버로 전송하는 대신에 응답을 요구자에게 제공할 수 있다. 이런 식으로, 라우터들은 DNS 트래픽을 가로채고 DNS 정보를 캐싱하는데, 이것은 다른 네임 서버들을 활용하는 클라이언트들이 캐싱된 정보로부터 이익을 얻는 것을 허용한다. 이러한 업데이트된 라우터들은 DNS 응답에 있어서의 대기 시간을 감소시키고 네트워크 트래픽을 감소시킨다.

Description

도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한 방법 및 장치{Method and apparatus for transparently processing DNS traffic}
컴퓨터 네트워크 환경과 인터넷에 있어서, 상기 네트워크 상의 컴퓨터들(클라이언트들 또는 서버들)은 도메인 네임(name)으로서 지칭되는 원문 네임에 매핑될 지도 모르는 유일한 식별자들이 할당된다. 컴퓨터 사용자들은 자주 상기 유일한 식별자가 아닌 단지 도메인 네임을 알고 있다. 상기 네트워크 상의 컴퓨터와 통신하기 위하여, 접촉하고 있는 상기 컴퓨터의 상기 유일한 식별자는 확인되어야 한다. 상기 유일한 식별자를 확인하기 위하여, 네트워크 라우터들은, 상기 바라던 정보를 유지하는 도메인 네임 서버의 위치가 정해질 때까지 다른 라우터들로 상기 식별자 요구를 전송한다. 현재의 스킴들은, 상기 네트워크 상의 트래픽의 증가를 초래하고 상기 인터넷 상의 어떤 정보를 액세스하고 복구하는데 걸리는 시간을 느리게 하는, 한 라우터로부터 다른 라우터로 상기 식별자 요구를 전송하는 시간을 낭비할 수 있다. 이들 문제들은 네트워크들, 인터넷 및 그들이 어떻게 동작하는지를 재고함으로써 이해될 수 있다.
네트워크들
현대의 컴퓨팅 환경에 있어서, 네트워크 사용자들 간에 통신을 하고 데이터를 공유하기 위하여 네트워크에 함께 연결된 다중 컴퓨터들 또는 워크스테이션들을 사용하는 것은 흔하다. 또한, 네트워크는 프린터들, 모뎀들, 파일 서버들 등과 같은 자원을 포함할 지도 모르고 또한 전자 메일과 같은 서비스를 포함할지도 모른다.
네트워크는 케이블에 의해 물리적으로 연결된 소규모 시스템(근거리 통신망 또는 "LAN")일 수 있거나, 몇몇 분리된 네트워크들은 대규모 네트워크(광역 네트워크 또는 "WAN")를 형성하기 위해 함께 연결될 수 있다. 다른 형태의 네트워크들은, 전기적인, 디지털 및/또는 아날로그 데이터가 전송될지도 모르는, 인터넷, 텔-컴(tel-com) 네트워크들, 월드와이드웹(World Wide Web), 인트라넷들, 엑스트라넷들, 무선 네트워크들 및 다른 네트워크들을 포함한다.
컴퓨터 시스템들은 때때로 정보를 네트워크 상의 요구하는 컴퓨터들에 제공하기 위하여 서버 컴퓨터 시스템에 의존한다. 많은 수의 요구하는 컴퓨터들이 있을 때, 상기 요구들을 처리하기 위하여 하나 이상의 서버 컴퓨터 시스템을 구비해야 할 필요가 있을지도 모른다. 종래 기술의 시스템들에 있어서, 요구들을 다중 서버 시스템에 있는 상기 정확한 서버로 효과적으로 유도하는데 문제점이 있다.
이것이 문제가 되어왔던 하나의 영역은 인터넷 상에서 이다. 상기 문제는 하기의 상기 인터넷의 구조와 동작을 재고함으로써 더 잘 이해될 수 있다.
인터넷
상기 인터넷은 상호 연결된 컴퓨터들의 세계적인 네트워크이다. 인터넷 클라이언트는 인터넷 제공자를 통하여 상기 네트워크 상의 컴퓨터에 액세스한다. 인터넷 제공자는 클라이언트(예를 들어 개인 또는 다른 조직)에게 (예를 들어, 아날로그 전화선 또는 종합 정보 통신망 선을 통하여) 상기 인터넷으로의 액세스를 제공하는 조직이다. 클라이언트는, 예를 들어, 상기 인터셋을 사용하여 다른 컴퓨터/클라이언트로부터 정보를 독출하거나, 파일을 다운로드하거나 또는 전자 메일 메시지를 상기 다른 컴퓨터/클라이언트로 송신할 수 있다.
상기 인터넷상의 파일 또는 서비스를 복구하기 위하여, 클라이언트는 상기 파일 또는 서비스를 서치해야하고, 상기 파일 또는 서비스가 저장된 상기 컴퓨터에 접속해야하며, 상기 파일 또는 서비스를 다운로드해야 한다. 이들 각 단계는 분리된 응용을 포함할 지도 모르고, 다중의 다른 컴퓨터 시스템들을 액세스할 지도 모른다. 상기 월드 와이드 웹(World Wide Web, 이하 WWW라 함)은 상기 인터넷 상의 정보를 액세스하기 위한 더 단순하고 더 획일적인 수단을 제공하기 위해 개발되었다.
상기 WWW의 성분들은 브라우저 소프트웨어, 네트워크 링크들, 서버들 및 WWW 프로토콜들을 포함한다. 상기 브라우저 소프트웨어 또는 브라우저는 상기 인터넷으로의 접속을 단순화하는 사용하기 쉬운 인터페이스(즉, 프론트-엔드)이다. 브라우저는, 클라이언트가 예를 들어 복잡한 명령 구문을 배워야 함없이 요구를 전송하는 것을 허용한다. 전형적으로 브라우저는 정보를 디스플레이하고 입력을 수신하기 위하여 그래픽 사용자 인터페이스(graphical user interface, 이하 GUI라 함)를 제공한다. 현재 이용가능한 브라우저의 예들은 모자이크(Mosaic) 넷스케이프 네비게이터 및 커뮤니케이터(Netscape Navigator and Communicator), 마이크로소프트 인터넷 익스플로러(Microsoft Internet Explorer) 및 첼로(Cello)를 포함한다.
정보 서버들은 상기 WWW상에서 상기 정보를 유지하고 클라이언트 요구를 처리할 수 있다. 하이퍼텍스트 트랜스포트 프로토콜(Hypertext Transport Protocol, 이하 HTTP라 함)은 상기 WWW 상의 정보 서버와 통신하기 위한 표준 프로토콜이다. HTTP는 클라이언트들이 서버로부터 데이터를 요구하고 정보를 상기 서버로 송신하는 것을 허용하는 통신 방법들이다.
요구를 제출하기 위하여, 상기 클라이언트는 상기 HTTP 서버를 접촉하고 상기 요구를 상기 HTTP 서버로 전송한다. 상기 요구는 상기 트랜잭션(예를 들어, 상기 서버로부터 대상을 획득(GET)하거나 상기 서버상의 대상에 데이터를 기입(POST)하는 것)을 위해 요구된 상기 통신 방법을 포함한다. 상기 HTTP 서버는 상기 요구의 상태와 상기 요구된 정보를 송신함으로써 상기 클라이어트에 응답한다. 그다음 상기 접속은 상기 클라이언트와 상기 HTTP 서버 사이에서 종료된다.
그러므로, 클라이언트 요구는 상기 클라이언트와 상기 HTTP 서버 간의 겁속을 확립하고, 상기 요구를 행하며, 상기 접속을 종료하는 단계로 구성된다. 상기 HTTP 서버는, 상기 접속이 종료된 후에 상기 요구에 대한 어떤 정보도 보유하지 않는다. 그러므로, HTTP는 스테이트리스(stateless) 프로토콜이다. 즉, 클라이언트는 HTTP 서버에 대해 몇몇 요구를 할 수 있지만, 각 개개의 요구는 어떤 다른 요구와 독립적으로 취급된다. 상기 서버는 어떤 이전의 요구에 대한 기억도 없다.
어드레싱 스킴은 인터넷 자원들(예를 들어, HTTP 서버, 파일 또는 프로그램)을 식별하는데 채택된다. 상기 어드레싱 스킴은 균등 자원 위치자(Uniform Resource Locator, 이하 URL이라 함)라 불리운다. URL은, 상기 서버(예를 들어, HTTP)를 액세스할 때 사용하기 위한 상기 프로토콜, 상기 서버가 실행하고 있는 상기 사이트의 인터넷 도메인 네임, 상기 서버의 포트 번호 및 상기 서버의 파일 구조에 있는 상기 자원의 위치를 포함한다.
상기 WWW는 하이퍼텍스트로서 알려진 개념을 사용한다. 하이퍼텍스트는 다른 정보로 직접 이동시키기 위하여 문서내에 링크들을 생성하는 능력을 제공한다. 상기 링크를 활성화시키기 위하여, 상기 하이퍼텍스트 링크(예를 들어, 단어 또는 구)에 클릭하는 것 만이 필요하다. 상기 하이퍼텍스트 링크는 상기 현재 정보를 제공했던 것 보다 다른 사이트상에 저장된 정보일 수 있다. URL은 상기 부가적인 정보의 위치를 식별하기 위해 상기 링크와 연관된다. 상기 링크가 활성화될 때, 상기 고객의 브라우저는, 상기 URL에 지정된 상기 사이트에서 데이터를 액세스하기 위해 상기 링크를 사용한다.
만약 상기 클라이언트 요구가 파일을 위한 것이라면, 상기 HTTP 서버는 상기 파일의 위치를 찾아내어 그것을 상기 클라이언트로 송신한다. HTTP 서버는 또한, 작업을 게이트웨이 프로그램들에 위임할 수 있다. 상기 공통 게이트웨이 인터페이스(Common Gateway Interface, 이하 CGI라 함) 명세는 HTTP 서버들이 게이트웨이 프로그램들과 통신하는 메카니즘을 정의한다. 게이트웨이 프로그램은 URL을 사용하여 참조된다. 상기 HTTP 서버는 상기 URL에 지정된 상기 프로그램을 활성화시키고, 상기 클라이언트에 의해 송신된 프로그램 데이터를 상기 게이트웨이 프로그램에 전달하기 위해 CGI 메카니즘들을 사용한다. 데이터는, 커맨드 라인 인수들(command-line arguments), 표준 입력 또는 환경 변수들을 통해 상기 서버로부터 상기 게이트웨이 프로그램으로 전달된다. 상기 게이트웨이 프로그램은 상기 데이터를 처리하고 그것의 응답을 (예를 들어, 표준 입력을 통해) CGI를 사용하여 상기 서버로 리턴시킨다. 상기 서버는 상기 HTTP를 사용하여 상기 클라이언트로 상기 데이터를 전송한다.
브라우저는 페이지들 또는 문서들("웹 페이지들" 또는 "웹 사이트들"로서 지칭되는)로서 클라이언트/사용자에게 정보를 디스플레이한다. 언어가 상기 WWW에 디스플레이될 페이지를 위한 포맷을 정의하는데 사용된다. 상기 언어는 하이퍼텍스트 마크업 언어(Hypertext Markup Language, 이하 HTML이라 함)로서 불리운다. WWW 페이지는 HTML 문서로서 클라이언트로 전송된다. 상기 클라이언트에서 실행하는 상기 브라우저는 상기 문서를 구문 해석하고 상기 HTML 문서에 있는 상기 정보에 근거하여 페이지를 디스플레이한다.
HTML은 서로 안에 포개어진 HTML 요소들로 이루어진 구조적인 언어이다. HTML 문서는 태그로 불리우는 일정 문자열이 상기 문서의 영역들을 표시하고 그들에 특별한 의미를 부여하는 텍스트 파일이다. 이들 영역들은 HTML 요소들로 불리운다. 각 요소는 이름 또는 태그를 가진다. 요소는 상기 요소의 특성을 지정하는 속성들을 가질 수 있다. 블록들 또는 성분들은 예를 들어, 정렬되지 않은 리스트, 텍스트 박스들, 체크 박스들, 라디오 버튼들을 포함한다. 각 블록은 이름, 타입 및 값과 같은 특성을 가진다. 다음은 HTML 문서 구조의 예를 제공한다.
<HTML>
<HEAD>
.... 문서 헤드에서 유효한 요소(들)
</HEAD>
<BODY>
.... 문서 본문에서 유효한 요소(들)
</BODY>
</HTML>
각 HTML 요소는 문자쌍 "<"와 ">"에 의해 범위가 정해진다. 상기 HTML 요소의 이름은 상기 구분 문자들내에 포함된다. 상기 이름과 구분 문자들의 조합은 마커(marker) 또는 태그로서 지칭된다. 각 요소는 그것의 마커에 의해 식별된다. 대부분의 경우에 있어서, 각 요소는 시작과 종료 마커를 구비한다. 상기 종료 마커는 상기 "<" 문자 다음에 오는 다른 문자 "/" 의 포함에 의해 식별된다.
HTML은 계층적 언어이다. 상기 HTML 요소외에, 모든 다른 요소들은 다른 요소내에 포함된다. 상기 HTML 요소는 상기 전체 문서를 포함한다. 그것은 HTML 문서로서 상기 둘러싼 텍스트를 식별한다. 상기 HEAD 요소는 상기 HTML 요소내에 포함되고 상기 HTML 문서에 대한 정보를 포함한다. 상기 BODY 요소는 상기 HTML내에 포함된다. 상기 BODY 요소는 모든 상기 텍스트와 디스플레이될 다른 정보를 포함한다. 다른 HTML 요소들은 HTML 기준 매뉴얼에서 설명된다.
도메인 네임 서버
컴퓨터 사용자는 컴퓨터 시스템 상의 브라우저로부터 상기 인터넷 또는 웹을 항해한다. 웹 사이트를 액세스하기 위하여, 상기 사용자는 상기 브라우저안에 상기 웹 사이트의 호스트 네임(또는 도메인 네임)을 입력한다. 이것은, 링크를 클릭하거나, 툴바 버튼을 활성화시키거나, 로케이션 필드(location field)에 네임(name)과 어드레스를 손으로 입력시키고 "엔터"를 누름으로써 달성될 수 있다. 브라우저 클라이언트가 사용하는 상기 네임들은, 예를 들어 www.sun.com과 같은 호스트 네임들로 알려진다. 입력된 상기 네임들은 소기의 웹 서버의 실제 인터넷 프로토콜(Internet Protocol, 이하 IP라 함) 어드레스가 아니다. 상기 실제 IP 어드레스는 상기 웹 사이트 데이터를 제공하는 상기 웹 서버의 위치를 유일하게 정하는 숫자 열이다. "도메인 네임 시스템(Domain Name System, 이하 DNS라 함)"이라불리우는 세계적인 분산 데이터 베이스 시스템은 서버 네임들과 상기 관련된 IP 어드레스들 간의 매핑을 제공한다.
각 클라이언트(또는 호스트)는 (도메인 네임을 IP 어드레스로, 또는 반대로 매핑시키기 위한) 그것의 조회에 기꺼이 응답하는 네임 서버와 구성되거나, 아니면 상기 네임 서버에 대해 안다. 이러한 네임 서버는 상기 호스트에 대해 "로컬 네임 서버"로서 지칭된다. 웹 브라우저와 같은 클라이언트 응용 소프트웨어는 또한, 서버 네임으로부터 IP 어드레스로의 번역을 획득하기 위하여 "DNS 분해기(resolver)"로 불리우는 로컬 라이브러리(local library)를 사용한다. 상기 분해기는 차례로 상기 번역을 획득하기 위해 소정의 로컬 DNS 네임 서버와 접촉한다. DNS 네임 서버들은 이전에 분해된 네임들의 캐시들을 유지할 수 있다. 특히, 네임 분해 과정은 전형적으로 상기 클라이언트 측에 2개의 호스트들을 필요로한다. "whitehouse.gov"의 어드레스를 획득하기를 원하는 "asha.eng.sun.com"상에서 작업하는 사용자를 생각하자. 상기 클라이언트 브라우저는 로컬 분해기(asha.eng.sun.com상에서 실행하는 본 예에서 상기 브라우저 프로세스 자체에 부착된 라이브러리)와 대화할 것이다. 상기 로컬 분해기는 비교적 적은 수의 로컬 네임 서버들 중의 하나, 예를 들어, "ns.sun.com"으로 갈 것이다. 여기에서 ns.sun.com은 상기 클라이언트 측 네임 서버로 불리운다. 상기 클라이언트 측 네임 서버는 whitehouse.gov의 상기 IP 어드레스를 결정하기 위하여 바깥 세상과 통신할 것이고 상기 브라우저 프로세스의 일부인 상기 분해기로 이 정보를 전송할 것이다.
DNS는 호스트 네임들을 숫자로 된 어드레스들(인터넷 프로토콜, 또는 IP 어드레스들로 알려진)로 번역하고 또한 IP 어드레스를 네임으로 매핑시키는 서버들의 세계적인 네트워크이다. DNS 서버는 네임 서버와 분해기로 구성된다. 상기 네임 서버는, 상기 분해기에 의해 제공되는 상기 호스트 네임에 대한 정확한 어드레스를 제공함으로써 그것이 할 수 있을 때 분해기 요구에 대한 응답을 제공한다. 도 1을 참조하면, 단계 100에서, 상기 사용자는 상기 브라우저에 도메인 네임을 입력한다. 단계 102에서, 상기 브라우저는, 상기 도메인 네임을 상기 IP 어드레스로 번역할 것을 상기 DNS 분해기에 요구한다. 단계 104에서, 상기 분해기는, 그것이 이미 유효한(만료되지 않은) 이용가능한 매핑을 가지는지를 알기 위해 그것의 캐시를 서치한다. 만약 상기 캐시가 유효한 매핑을 가진다면, 그것은 단계 116에서 상기 브라우저로 상기 IP 어드레스를 리턴시킨다. 만약 상기 매핑이 캐시에 없다면, 상기 분해기는 단계 106에서 상기 요구를 상기 로컬 네임 서버로 전송한다.
모든 네임 서버들은, 루트(.) 도메인에 대한 상기 DNS 서비스를 제공하는 적어도 하나 이상의 다른 네임 서버에 대해 안다. 따라서, 단계 108에서, 상기 로컬 네임 서버는 어떤 알려진 도메인에 대한 상기 네임 서버와도 접촉한다. 예를 들어, 만약 호스트 네임이 "www.java.sun.com"이고, 상기 로컬 네임 서버가 상기 네임 서버 "java.sun.com"에 대한 어드레스를 알지 못한다면, 그것은 다음 레벨 도메인, 즉, "sun.com"에 대한 어드레스를 아는지 알아보기 위해 체크할 것이다. 만약 상기 로컬 네임 서버가 "sun.com"에 대한 어드레스를 알지 못한다면, 그것은 다음 레벨 도메인, 즉, ".com"에 대한 어드레스를 아는지 알아보기 위해 체크할 것이다. 만약 상기 로컬 네임 서버가 ".com"에 대한 어드레스를 알지 못한다면, 그것은 루트 네임 서버 "."와 접촉할 것이다. 단계 110에서, 상기 로컬 네임 서버는 (만약 그 네임 서버가 상기 어드레스를 안다면) 접촉된 상기 네임 서버로부터 완전한 도메인에 대한 상기 어드레스를 획득할 것이다. 만약 그렇지 않으면 단계 110에서, 상기 로컬 네임 서버는 상기 접촉된 네임 서버로부터 다음 레벨의 도메인에 대한 상기 어드레스를 획득할 것이다. 예를 들어, 만약 상기 로컬 네임 서버가 ".com"에 대한 상기 네임 서버와 접촉했고 그 네임 서버가 상기 완전한 어드레스를 알지 못한다면, 상기 ".com" 네임 서버는 "sun.com"에 대한 상기 도메인 어드레스를 리턴시킬 것이다. 그다음 단계 108 및 단계 110이 상기 완전한 도메인 어드레스가 획득될 때까지 반복될 것이다. 상기 예와 계속해서, 상기 로컬 네임 서버는 상기 "java.com" 네임 서버와 접촉할 것이고 "java.sun.com"에 대한 상기 어드레스를 획득할 것이다. 그다음 상기 로컬 네임 서버는 상기 "java.sun.com"에 대한 네임 서버와 접촉하고 "www.java.sun.com"에 대한 상기 어드레스를 획득할 것이다. 요구가 네임 서버에 의해 행해질 때, 상기 바라던 네임 서버에 도달할 때까지 상기 요구를 한 위치에서 다른 위치로 전송하는 많은 네트워크 라우터들("라우터들")이 종종 있다.
일단 중간의 또는 완전한 IP 어드레스가 획득되면, 미래의 요구가 로컬 캐시로부터 전체적으로 서비스되도록 단계 114에서 상기 어드레스가 캐시에 저장된다. 따라서, 만약 대안적인 도메인에 대한 요구가 수신된다면 (예를 들어, "ftp.sun.com"에 대한 요구), 상기 로컬 네임 서버는, 상기 루트 도메인 서버와 통신을 반복하지 않고 또는 중간 네임 서버들(예를 들어, 상기 ".com" 네임 서버)과 함께 상기 네임 서버(예를 들어, "sun.com")와 직접 접촉할 수 있다. 단계 116에서, 상기 IP 어드레스는 상기 브라우저로 리턴된다. 일단 상기 IP 어드레스가 알려진다면, 상기 브라우저는, 상기 요구된 웹 페이지 또는 다른 정보를 복구하기 위하여 상기 어드레스에서 상기 웹 서버와 통신한다.
상기 DNS 네트워크의 동작이 피.브이. 목카페트리스(P.V.Mockapetris)의 1987년 11월 알에프씨(RFC) 1034.에 있는 "도메인 네임들 - 개념과 설비" 및 피.브이. 목카페트리스(P.V.Mockapetris)의 1987년 11월 알에프씨(RFC) 1035.에 있는 "도메인 네임들 - 구현과 명세"에서 설명된다.
DNS 서버 문제들
DNS 정보가 로컬 네임 서버에 캐싱될 때, 상기 캐싱된 정보는 상기 특별한 로컬 네임 서버를 액세스하는 상기 클라이언트들(예를 들어, 상기 동일한 인터넷 서비스 제공자의 클라이언트들 또는 상기 동일한 조직의 회원들)에게만 이용가능하다. 따라서, 만약 2인의 사용자들이 다른 로컬 네임 서버들을 액세스하고 각 사용자가 동일한 IP 어드레스를 요구한다면, 요구들 모두는 상기 필요가 되는 정보를 획득하기 위하여 다양한 라우터들을 통하여 네임 서버들의 상기 체인까지 올라갈 것이다.
예를 들어, 만약 뉴질랜드의 다른 대학들에 있는 2인의 사용자들이 www.sun.com의 IP 어드레스에 대한 상기 DNS를 조회하기로 되어 있었다면, 상기 요구들 모두는 어떤 로컬 캐싱 이점없이 상기 미합중국에 있는 ns.sun.com에서 상기 로컬 네임 서버에 의해 서비스될 것이다. 도 2는 종래 기술의 다른 예를 제공한다. 클라이언트들(212) 및(214)는, 로컬 네임 서버(220)을 활용하는SUN 네트워크(200)의 일부분이다. 클라이언트들(216) 및(218)는, 로컬 네임 서버(222)를 활용하는 NSCP 네트워크(204)의 일부분이다. 만약 클라이언트(212)이 호주의 시드니에 있는 시드니 2000 네트워크(208) 상의 IP 어드레스에 관한 정보를 요구한다면, 상기 요구는 시드니 2000 네트워크(208)의 로컬 네임 서버인 ns.syd.au(224)에서 처리된다. 라우터들(210)은, 그것이 시드니 2000 네트워크(208)와 네임 서버(224)에 도달할 때까지 인터넷(206)상의 라우터들(210)을 통해, 상기 요구를 전송하는 로컬 네임 서버들(220)로으로부터의 상기 요구를 전송할 것이다. 그다음 상기 요구는, 그것이 캐싱된 로컬 네임 서버(220)로 그것이 다시 리턴시킬때까지 라우터들(210)을 통해 동일한 경로를 따라 다시 전송된다.
동일한 로컬 DNS 네임 서버를 액세스하는 클라이언트들만이 상기 캐싱 정보로부터 이익을 얻을 것이다. 따라서, 상기 예에서, 단지만이 상기요구 및 그 결과로 생긴 캐싱된 정보로부터 이익을 얻을 것이다. 만약가 www.syd.au를 위해 DNS 번역을 요구한다면, 상기 캐싱된 정보로부터 이익을 얻지 못하고, 상기 정보가 요구되며 멀리 호주까지 그리고 다시 전송된다. 따라서,모두는 상기 각 네트워크들(200, 204 및 208)과 인터넷(206) 상의 호주 생성 트래픽으로부터 상기 관련 정보를 획득할 것이다.
네트워크들은 층들로 분할될지도 모른다. 예를 들어, 하나의 층은 네트워크 층으로서 지칭되는, 한 위치로부터 다른 위치까지 정보의 전송을 제공할지도 모르고, 다른 층은, 응용 층으로서 지칭되는, 상기 네트워크를 가로질러 건네진 상기 정보의 구문 해석과 처리를 제공할지도 모른다. 상기 도메인 네임 시스템(DNS)에 의해 제공되는 네임 분해는 응용 층 프로토콜이다. 네트워크 라우터들(210)은 상기 네트워크 층 프로토콜에만 연관되고 그것의 바라던 목적지로 상기 DNS 요구를 전송한다. 따라서, 라우터들(210)은 그들이 패킷들로 전송한 상기 정보를 구문 해석하거나 처리하지 않는다.
네트워크 트래픽 감축
네트워크 트래픽을 감축시키기 위한 종래 기술의 방법들은 웹 페이지들과 HTML 문서들을 캐싱하기 위한 방법들을 제공했었다. 이러한 2가지 종래 기술의 방법들은 액티브 네트워크들(Active Networks)과 투과 프록시들(Transparent Proxies) 로서 지칭된다.
액티브 네트워크들
라우터들은 가능한 한 신속하게 트래픽을 전송하고 스위칭하기 위한 전용 기계이다. 액티브 네트워크에 있어서, 특정 라우터들은 웹의 패킷들과 다른 DNS가 아닌 정보를 처리하도록 구성된다. 특정 지리적인 위치들은 상기 특별하게 형성된 라우터들을 배치시키기 위해 선택된다. 따라서, 액티브 네트워크의 성능은 업데이트된 라우터들의 배치 전략에 근거한다.
투과 프록시들
투과 프록시들은 웹 트래픽을 감소시키기 위하여 대규모 회사들과 인터넷 서비스 제공자들에 의해 대부분 사용된다. 전형적인 셋업에 있어서, 상기 도메인 관리자는, 모든 웹 요구들(예를 들어, 80과 같은 포트 번호로 식별되는) 프록시 서버("투과 프록시")로 자동적으로 전환되도록 상기 라우터들을 형성한다. 프록시 서버(또는 프록시)는, 그것으로 전송된 요구들(즉, 클라이언트로부터)을 수행하는 서버인데, 그들이 미래에 더 신속하게 액세스될 수 있도록 얼마동안 패치된 문서들 또는 정보의 복사본들을 간직하고, 공통으로 요구된 정보를 위해 액세스를 빠르게 한다. 상기 프록시에 의한 정보와 패치된 문서들의 저장 및 복구는 캐싱으로서 지칭되고 상기 프록시에 유지된 상기 정보는 캐시 또는 프록시 캐시로서 지칭된다. 만약 상기 프록시가 상기 바라던 정보를 가지지 않는다면, 상기 프록시는, 캐싱을 위하여 상기 프록시에 상기 정보를 리턴시킨 적합한 웹 서버에 (몇몇 라우터들을 통해 처리될지도 모르는) 요구를 송신한다. 상기 프록시가 상기 바라던 정보를 획득할 때, 그것은 상기 요구한 클라이언트에게 상기 정보를 제공한다.
상기 종래 기술의 방법들은 DNS 트래픽을 최적화하기 위한 어떤 방법도 제공하지 않는다. 상기 인터넷 상의 트래픽의 약 10%가 현재 DNS 트래픽으로 이루어진다. 더욱이, DNS 정보는 자주 변하지 않기 때문에(네트워크상의 컴퓨터들이 이동될 때 조차 IP 어드레스들은 종종 동일한채 남는다), DNS 엔트리의 유효성은 상기 웹을 통해 전송된 데이터의 것 보다 더욱 길지도 모른다. 따라서, DNS 트래픽을 최적화하고 처리하기 위한 효과적인 방법이 필요하다.
본 발명은 컴퓨터 소프트웨어 분야, 특히 도메인 네임 시스템(DNS) 정보를 캐싱하는 것에 관한 것이다.
본 특허 문서의 명세 부분들은 저작권 보호에 종속되는 자료를 포함한다. 상기 저작권의 소유자는, 특허 및 상표청 파일 또는 레코드들에 나타나는 바와 같이 상기 특허 문서 또는 상기 특허 명세의 누군가에 의한 팩시밀리 재생에 아무런 이의가 없지만, 만약 그렇지 않으면 모든 저작권 권리가 무엇이든 유보된다. 선(Sun), 선 마이크로시스템즈(Sun Microsystems), 선 로고(Sun logo), 솔라리스(Solaris), 자바(Java), 자바오퍼레이팅시스템(JavaOS), 자바스테이션(JavaStation), 핫자바 뷰즈(HotJava Views) 및 모든 자바(Java)에 근거한 상표들 및 로고들은, 미합중국 및 다른 나라들에 있는 선 마이크로시스템즈 주식회사의 상표들 또는 등록된 상표들이다.
도 1은 DNS 정보를 처리하기 위한 종래 기술의 방법을 도해한 것이다.
도 2는 몇몇 네트워크들 간의 관계를 설명한 것이다.
도 3은 본 발명의 하나 이상의 실시예를 위해 적합한 실행 환경을 제공할 수 있는 컴퓨터 시스템의 일 실시예의 블록도이다.
도 4는 본 발명의 하나 이상의 실시예에 의한 몇몇 네트워크들 간의 관계와 DNS 트래픽의 경로를 설명한 것이다.
도 5는 본 발명의 하나 이상의 실시예에 의한 업데이트된 라우터에 의해 실행되는 단계들을 도해한 것이다.
도메인 네임 시스템을 투과적으로 처리하기 위한 방법과 장치가 제공된다. 도메인 네임을 사용하여 인터넷 상의 정보를 액세스하기 위하여, 도메인 네임에 매핑하는 인터넷 프로토콜(IP) 어드레스는 결정되어져야 한다. 도메인 네임 시스템(DNS)은 상기 어드레스와 도메인 네임 정보를 전송하고 처리하기 위해 활용된다. DNS 트래픽은 인터넷 네트워크 트래픽의 약 10%를 포함한다.
클라이언트가 네임 서버에게 도메인 네임을 IP 어드레스로 번역할 것을 요구할 때, 바라던 정보를 유지하는 네임 서버의 위치가 정해질 때까지, 상기 요구는 하나의 네트워크 라우터로부터 다른 네트워크 라우터로 전송된다. 상기 네트워크 라우터들은 상기 정보를 검사하지 않고 단지 경로를 따라 상기 정보를 목적 네임 서버로 전송한다.
본 발명의 하나 이상의 실시예들은, 언제 상기 정보가 DNS 트래픽으로 구성되고, 언제 상기 정보를 구문 해석하며, 언제 상기 어드레스(만일 조금이라고 있으면)를 캐싱하고, 그다음 언제 상기 원하는 정보를 상기 네임 서버에 다시 계속 전송하는지를 인지하는 업데이트된 라우터들을 제공한다. 따라서, 유사한 어드레스 정보에 대한 다른 요구가 라우터로 전송될 때, 상기 라우터는, 상기 요구를 멀리 떨어진 네임 서버로 전송하는 대신에 상기 응답을 상기 요구자에게 제공할 수 있다. 이런 식으로, 라우터들은 DNS 트래픽을 가로채고 DNS 정보를 캐싱하는데, 이것은 다른 네임 서버들을 활용하는 클라이언트들이 상기 캐싱된 정보로부터 이익을 얻는 것을 허용한다. 이러한 업데이트된 라우터들은 DNS 응답에 있어서의 대기 시간을 감소시키고 네트워크 트래픽을 감소시킨다.
본 발명은 DNS 트래픽을 투과적으로 캐싱하기 위한 방법과 장치이다. 다음 설명에서, 많은 특정 상세가 본 발명의 실시예들의 더 철저한 설명을 제공하기 위해 설명된다. 그러나, 본 발명이 이들 특정 상세없이 실시될수도 있다는 것은 당업자에게 명백하다. 다른 경우에 있어서, 잘 알려진 특징들이, 본 발명을 모호하게 하지 않도록 하기 위해서 상세히 설명되지 않았다.
컴퓨터 실행 환경의 실시예(하드웨어)
본 발명의 실시예는 도 3에 도해된 컴퓨터(300)와 같은 범용 컴퓨터상에서 실행되는 컴퓨터로 독출가능한 코드의 형태 또는 그러한 컴퓨터상에서 실행하는 바이트코드 클래스 파일들(bytecode class files)의 형태로 컴퓨터 소프트웨어로서 구현될 수 있다. 키보드(310)와 마우스(311)는 양방향 시스템 버스(318)에 연결된다. 상기 키보드와 마우스는 상기 컴퓨터 시스템에 사용자 입력을 도입하고 프로세서(313)에 상기 사용자 입력을 전달하기 위한 것이다. 다른 적합한 입력 장치들이상기 마우스(311)와 키보드(310)에 부가하거나 대신하여 사용될지도 모른다. 양방향 시스템 버스(318)에 연결된 I/O(입력/출력) 유니트(319)는 프린터, A/V (오디오/비디오) I/O 등과 같은 I/O 요소들을 나타낸다.
컴퓨터(300)는, 키보드(310), 마우스(311) 및 프로세서(313)와 함께 양방향 시스템 버스(318)에 모두 연결된 비디오 메모리(314), 메인 메모리(315) 및 대용량 저장장치(312)를 포함한다. 상기 대용량 저장장치(312)는, 자기, 광학 또는 자기 광학 저장 시스템들 또는 다른 이용가능한 대용량 저장 기술과 같은 고정 및 이동형 매체 모두를 포함할지도 모른다. 버스(318)는 예를 들어, 비디오 메모리(314) 또는 메인 메모리(315)를 어드레싱하기 위한 32 어드레스 라인을 포함할지도 모른다. 또한, 시스템 버스(318)는, 예를 들어, 프로세서(313), 메인 메모리(315), 비디오 메모리(314) 및 대용량 저장장치(312)와 같은 구성요소들 사이에서 데이터를 이송시키기 위한 32비트 데이터 버스를 포함한다. 대안적으로 다중 데이터/어드레스 라인들이 분리된 데이터 및 어드레스 라인들 대신에 사용될지도 모른다.
본 발명의 일 실시예에서, 상기 프로세서(313)는, 680X0 프로세서와 같이 모토롤라에 의해 제조된 마이크로프로세서, 80X86 이나 펜티엄 프로세서와 같이 인텔에 의해 제조된 마이크로프로세서, 또는 선 마이크로시스템즈 주식회사(Sun Microsystems, Inc)로부터의 스파크(SPARC) 마이크로프로세서이다. 그러나, 어떤 다른 적합한 마이크로프로세서 또는 마이크로컴퓨터도 활용될 수 있다. 메인 메모리(315)는 다이내믹 랜덤 액세스 메모리(dynamic random access memory, 이하 DRAM 이라 함)로 이루어진다. 비디오 메모리(314)는 듀얼 포트 비디오 랜덤 액세스 메모리이다. 상기 비디오 메모리(314)의 한 포트는 비디오 증폭기(316)에 연결된다. 상기 비디오 증폭기(316)는 음극선관(cathode ray tube, CRT) 래스터(raster) 모니터를 구동하는데 사용된다. 상기 비디오 증폭기(316)는 기술분야에서 잘 알려진 것이고 어떤 적합한 장치에 의해 구현될 수 있다. 이 회로는 비디오 메모리(314)에 저장된 픽셀 데이터를 모니터(317)에 의한 사용에 적합한 래스터 신호로 변환시킨다. 모니터(317)는 그래픽 이미지들을 디스플레이하는데 적합한 모니터 형태이다.
컴퓨터(300)는 또한, 버스(318)에 연결된 통신 인터페이스(320)를 포함할 수 있다. 통신 인터페이스(320)는 네트워크 링크(321)를 경유하여 로컬 네트워크(322)까지 양방향 데이터 통신 연결을 제공한다. 예를 들어, 만약 통신 인터페이스(320)가 종합 정보 통신망(integrated services digital network, ISDN) 카드 또는 모뎀이라면, 통신 인터페이스(320)는 네트워크 링트(321)의 일부를 포함하는 전화선의 대응 형태로의 데이터 통신 접속을 제공한다. 만약 통신 인터페이스(320)가 근거리 통신망(local area network, 이하 LAN이라 함)이라면, 통신 인터페이스(320)는 네트워크 링크(321)를 경유하여 호환가능한 LAN까지 데이터 통신 접속을 제공한다. 무선 링크들이 또한 가능하다. 어떤 이러한 구현에 있어서도, 통신 인터페이스(320)는 정보의 다양한 형태를 나타내는 디지털 데이터 스트림들을 실어나르는 전기 신호, 전자기 신호 또는 광학 신호를 송신하거나 수신한다.
네트워크 링크(321)는 전형적으로 하나 이상의 네트워크들을 통하여 다른 데이터 장치들로의 데이터 통신을 제공한다. 예를 들어, 네트워크 링크(321)는 로컬 네트워크(322)를 통한 로컬 서버 컴퓨터(323)로의 접속 또는 인터넷 서비스제공자(324, Internet Service Provider, 이하 ISP라 함)에 의해 작동되는 데이터 장비로의 접속을 제공한다. ISP(324)는, 차례로 지금 "인터넷"(325)으로서 일반적으로 지칭되는 세계적인 패킷 데이터 통신 네트워크를 통한 데이터 통신 서비스를 제공한다. 로컬 네트워크(322)와 인터넷(325) 모두는 디지털 데이터 스트림들을 실어나르는 전기 신호, 전자기 신호 또는 광학 신호를 사용한다. 다양한 네트워크들을 통한 신호들과, 컴퓨터(300)로 그리고 컴퓨터(300)로부터의 상기 디지털 데이터를 실어나르는, 네트워크 링크(321)상의 신호들 및 통신 인터페이스(320)를 통한 신호들은 상기 정보를 이송하는 전형적인 반송파의 형태이다.
컴퓨터(300)는 상기 네트워크(들), 네트워크 링크(321) 및 통신 인터페이스(320)를 통하여 프로그램 코드를 포함하여, 메시지들을 송신하고 데이터를 수신할 수 있다. 인터넷 예에 있어서, 원격 서버 컴퓨터(326)는 인터넷(325), ISP(324), 로컬 네트워크(322) 및 통신 인터페이스(320)를 통하여 응용 프로그램을 위한 요구된 코드를 전송할지도 모른다.
상기 수신된 코드는 그것이 수신될 때 프로세서(313)에 의해 실행되고/실행되거나 나중의 실행을 위해서 대용량 저장장치(312)나 다른 불휘발성 저장장치에 저장될지도 모른다. 이런 방법으로, 컴퓨터(300)는 반송파의 형태로 응용 코드를 획득할지도 모른다.
응용 코드는 어떤 형태의 컴퓨터 프로그램 생성물로도 구현될 수 있다. 컴퓨터 프로그램 생성물은 컴퓨터로 독출가능한 코드를 저장하거나 이송하도록 구성되거나, 컴퓨터로 독출가능한 코드가 내장될 수 있는 매체를 포함한다. 컴퓨터 프로그램 생성물의 몇몇 예들은 시디-롬(CD-ROM) 디스크들, 롬(ROM) 카드들, 플로피 디스켓들, 자기 테이프들, 컴퓨터 하드 드라이브들, 네트워크 상의 서버들 및 반송파들이다.
상술된 상기 컴퓨터 시스템들은 단지 예의 목적을 위한 것이다. 본 발명의 실시예는 어떤 형태의 컴퓨터 시스템 또는 프로그래밍 또는 처리 환경에서 구현될 수 있다.
투과적으로 DNS 트래픽을 캐싱하기 위한 소프트웨어 장치의 실시예
본 발명의 하나 이상의 실시예들은 네트워킹의 층모델과 다른 층들간의 동등한 관계를 조사함으로써 설명될 수 있다. 상기 네트워크 층에서, 동등한 관계는 몇몇 형태의 와이어(wire)에 의해 접속되는 각 라우터간에 존재한다. 더 상위의 응용 층에서, DNS 실체들(예를 들어, DNS 분해자와 상기 로컬 네임 서버들)은 양자 사이에(예를 들어 라우터들) 있는 다중 홉들(hops)과 동등한 관계를 가진다. 상기 네트워크 층에서의 상기 라우터들(상기 네트워크 층의 홉들)은 응용 층 프로토콜로부터의 상기 정보를 검사하지 않는다. 상기 라우터들은 단지 DNS 클라이언트들과 DNS 서버들 사이에서 상기 정보를 투과적으로 이송시킨다.
본 발명의 하나 이상의 실시예들에 있어서, 네트워크들의 상기 층 모델은 위반된다. DNS 트래픽은 네임 서비스 포트들을 사용하여 한 기계로부터 다른 기계로 전달된다. DNS 트래픽은 일반적으로 특정 DNS 포트(예를 들어, 포트 53)로부터 도착하고 특정 DNS 포트로 전송된다. 따라서, 모든 IP 패킷들에 존재하는 상기 포트 정보에 근거하여, 상기 라우터들은, 언제 DNS 트래픽이 전송중이거나, 언제 웹 또는 다른 트래픽이 전송중인지를 식별할 수 있다.
DNS 정보가 상기 인터넷을 가로질러 전송하고 있는 상기 패킷에 있는 것으로 중간 라우터(또는 상기 네트워크 프로토콜 층에 있는 홉)가 식별할 때, 상기 라우터들은 상기 층 모델을 위반하고, 상기 라우터는 마치 상기 응용 프로토콜의 회원인 것처럼 상기 패킷에 있는 정보를 검사한다. 그다음 상기 정보는 구문 해석되고 캐싱된다. 따라서, 상기 라우터들은 네임 서버로부터의 상기 DNS 응답들을 훔치고 상기 가로채기된 응답들을 캐싱한다. 상기 라우터들은 또한, DNS 요구들을 가로채기하고, 상기 요구가 상기 캐시로부터 다루어질 수 있는지를 결정한다. 만약 상기 캐시가 상기 요구된 정보를 포함한다면, 상기 라우터는 상기 DNS 조회에 대한 응답을 제공한다. 만약 상기 캐시가 상기 요구된 정보를 포함하지 않는다면, 상기 라우터는, 상기 네임 서버에 대한 상기 경로를 따라 다음 라우터 또는 홉에 상기 요구를 전송한다.
도 1의 종래 기술의 시스템을 참조하면, 단계 106에서, 상기 분해자는 상기 요구를 상기 로컬 네임 서버에 전송하고, 단계 108에서, 상기 최하위 레벨의 도메인 네임의 상기 네임 서버가 접촉된다. 본 발명의 하나 이상의 실시예들에 있어서, 상기 전송 단계(단계 106)와 상기 접촉 단계(단계 108)는 상기 전송을 가로채기할지도 모르는 라우터들을 통해 처리된다. 상기 라우터들은 상기 가로채기된 전송으로부터의 정보의 패킷을 검사하고 캐시에 어떤 필요한 정보도 저장한다. 더욱이, 상기 정보가 상기 네임 서버로부터 획득되고 단계 110에서 상기 로컬 네임 서버로 다시 전송될 때, 본 발명의 하나 이상의 실시예들에 있어서, 상기 라우터들은 다시상기 전송을 가로채기하고, 상기 정보를 구문 해석하며, 상기 로컬 네임 서버로 가는 도중에 지나칠 때의 상기 어드레스 정보를 캐싱한다.
도 5는 본 발명의 하나 이상의 실시예들에 의한 업데이트된 라우터에 의해 수행되는 프로세스를 설명한다. 상기 프로세스는 단계 500에서 시작한다. 단계 502에서 상기 라우터는, 상기 현재 정보가 DNS 트래픽 또는 몇몇 다른 형태의 트래픽(예를 들어 웹 트래픽)인지를 결정하기 위하여 포트 정보를 검사한다. 만약 상기 정보가 DNS 트래픽이 아니라면, 상기 라우터는 단지 정상처럼 수행하고 단계 512에서 그것의 목적지에 대한 다음 홉으로 상기 요구를 전송한다.
만약 상기 정보가 DNS 트래픽이라면, 상기 라우터는 단계 504에서 상기 정보를 구문 해석한다. 단계 506에서, 상기 라우터는, 상기 구문 해석된 정보(예를 들어, 상기 요구된 어드레스 정보)가 그것의 캐시에 있는지를 결정한다. 만약 상기 정보가 그것의 캐시에 없다면, 상기 라우터는 단계 510에서 그것의 캐시에 (만일 있다면) 관련 정보를 저장하고 단계 512에서 상기 정보의 경로에 있는 다음 홉으로 상기 요구를 전송한다. 만약 상기 정보가 상기 라우터의 캐시에 있다면, 상기 라우터는 단계 508에서 상기 요구자에게 상기 요구된 정보를 리턴시킨다. 이런 방법으로, 상기 업데이트된 라우터들은 그들 자신의 캐시를 유지하고 DNS 번역 요구들을 처리할 수 있다.
대안적으로, 단계 502와 단계 504 사이에서, 만약 상기 정보가 DNS 트래픽이라면, 상기 라우터는 상기 DNS 정보를 미리 형성된 호스트에 자동으로 전송할 것이다. 현재 라우터들은 인터넷 트래픽의 형태들을 인지하고 특정 위치 또는 호스트로인터넷 트래픽의 특정화된 형태들을 전송하도록 구성된다. 일단 상기 호스트가 상기 정보를 수신하면, 상기 호스트는 나머지 단계들(504-514)을 실행한다. 예를 들어, 상기 호스트는 단계 504에서 상기 정보를 구문 해석하고 단계 506에서 유효한 정보를 위해 그 자신의 캐시를 서치한다. 만약 상기 캐시에 저장하기 위한 어떤 정보라도 있다면(즉, 상기 DNS 정보는 리턴중이다), 상기 정보는 단계 510에서 상기 호스트의 캐시에 저장된다. 이러한 실시예에서, 상기 라우터는 패킷들을 분류하고 상기 패킷들을 형성된 호스트로 돌린다.
도 4를 참조하면, 본 발명의 하나 이상의 실시예들에 있어서, 하나 이상의 라우터들(210)은 DNS 정보를 가로채기하고, 구문 해석하며 캐싱하기 위해, 도 4에 정의된 바와 같이 수정될 수 있다. 예를 들어, 라우터들(404, 406)은 업데이트될 수 있다. 따라서,(212)이 ns.syd.au(224)로부터 DNS 정보를 요구할 때, 상기 요구는 라우터들(210)과 업데이트된 라우터들(404, 406)을 따라 경로(400)를 통해 전송된다. 그러나, 업데이트된 라우터(404)는 그것이 DNS 트래픽인 것을 결정하고, 그것의 네트워크 층을 위반하여 상기 요구를 가로채기한다. 라우터(404)는 상기 요구된 정보를 구문 해석하고 그것이 캐시에 있는지를 결정한다. 만약 상기 요구된 정보가 그것의 캐시에 있다면, 라우터(404)는 그 결과를 (경로 400을 따라)(212)으로 다시 리턴시킨다. 만약 상기 요구된 정보가 그것의 캐시에 없다면, 그것은 단지 경로(400)에 있는 다음 홉에 상기 요구를 전송한다. 라우터(406)는, 상기 전송이 DNS 트래픽이라고 결정하는대로, 상기 요구를 가로채기하고 그것의 캐시를 서치한다. 상기 관련 정보가 그것의 캐시에 없다고 결정되는대로, 라우터(406)는 경로(400)에 있는 다음 홉으로 상기 요구를 전송한다. 상기 요구는, 그것이 상기 로컬 네임 서버 ns.syd.au(224)에 도달할 때까지 전송된다. 대안적으로, 상술된 바와 같이, 하나 이상의 실시예들에 있어서, 상기 라우터는, 상기 캐시와 처리 능력을 유지하는 형성된 호스트로 (만약 그것이 DNS 트래픽이라면) 상기 요구를 전송한다.
상기 요구는 ns.syd.au(224)에 의해 처리되고 경로(400)를 따라(212)으로 다시 리턴된다. 상기 정보가(212)로 다시 가는 도중에 라우터(406)에 도달할 때, 라우터(406)는 상기 요구를 가로채기하고, 상기 라우터 또는 형성된 호스트는 상기 어드레스 정보를 구문 해석하고 상기 어드레스 정보를 캐시에 저장한다. 그다음 라우터(406)는 경로(400)를 따라 다음 홉으로 상기 결과들을 전송한다. 경로(400)를 따라 업데이트된 각 라우터 또는 형성된 호스트는 그것의 캐시에 상기 결과를 저장할 것이다.
상기 요구 다음에, 만약가 유사한 DNS 번역을 요구한다면, 상기 요구는 경로(402)를 따라 전송될 것이다. 그러나, 라우터(406)는 DNS 트래픽으로서 상기 요구를 식별할 것이고, 라우터(406)는 상기 요구를 가로채기하고, 라우터(406) 또는 형성된 호스트는 상기 요구를 구문 해석하며, 캐시를 서치하고 상기 요구된 정보를 경로(402) 상의 이전 홉으로 다시 리턴시킨다. 따라서,에 의한 상기 요구는 라우터(406) 또는 형성된 호스트에서 국부적으로 서비스되고 ns.syd.au(224)에서의 호주에서 서비스될 필요가 없다.
상술된 바와 같이, 본 발명의 하나 이상의 실시예들에 의하면, 상기 업데이트된 라우터들은 다른 라우터들로부터 부가적인 처리를 수행한다. 상술되고 도 5에 도해된 상기 라우터들에 의한 상기 처리는 상기 DNS 트래픽의 일부를 관찰하고, 상기 정보를 구문 해석하며, 캐시 저장을 위한 데이터 베이스를 유지하고 상기 정보에 대한 캐시를 서치하는 단계를 포함한다.
몇몇 DNS 네임 서버들은 동일한 호스트 네임에 대한 클라이언트 요구들에 대하여 다른 대답들을 리턴시킨다. 이러한 응답은 부하 균형 고려 사항(예를 들어, 다중 서버들을 가로질러 네트워크 트래픽의 균형을 맞추기 위한 시도)에 근거할수도 있거나, 그것은 상기 클라이언트들을 "가까운" 호스트로 유도하기 위해 선택될 수 있다. 이러한 스킴들의 사용은 본 발명의 하나 이상의 실시예들에 의한 상기 투과적인 DNS 캐싱에 대하여 덜 효과적일지도 모른다. 몇몇 스킴들은, 가능한 가장 많은 수의 클라이언트들에 대한 상기 정보를 제공하기 위하여 캐싱가능한 데이터의 전략적인 지리적 배치(예를 들어, 웹 트래픽을 캐싱할 수 있는 라우터들)를 제공한다. 여기에서 참조로써 통합되며 "도메인 네임 시스템을 통한 효과적인 트래픽 국부화를 위한 방법 및 장치"라는 제목의 계류중인 특허출원번호 09/081,860에 설명된 상기 지리적인 스킴은, 본 발명의 하나 이상의 실시예들에 따라 어떤 네트워크 라우터들이 업데이트될 것인지를 결정하는데 사용될 때 잘 작동한다. 이러한 지리적인 스킴에 있어서, 리턴된 상기 정보는, 상기 부하 균형과 바라던 트래픽 국부화 목표들을 여전히 달성하기 위하여 클라이언트측 계산과 함께, 대규모의 (만일 모두가 아니라면) DNS 클라이언트들에 적용가능하도록 신중히 제공된다. 이러한 시나리오는 DNS 번역에서 관찰되는 대기시간 뿐만 아니라 네트워크 부하를 감소시킨다.
따라서, 정보의 복구를 위하여 내용 특성을 인코딩하기 위한 방법 및 장치는 하나 이상의 실시예들과 관련하여 설명된다. 본 발명은 청구항들과 그들 균등물의 전 범위에 의해 정의된다.

Claims (21)

  1. 정보에 대한 요구를 네트워크 라우터로 전송하는 단계;
    상기 전송된 요구를 구문 해석하는 단계;
    상기 요구된 정보를 위한 캐시를 서치하는 단계; 및
    만약 상기 요구된 정보가 상기 캐시에 있다면 상기 요구된 정보를 리턴시키는 단계를 포함하는 것을 특징으로 하는 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한 방법.
  2. 제1항에 있어서,
    만약 상기 요구된 정보가 상기 캐시에 없다면, 상기 요구의 다음 홉으로 상기 요구를 전송하는 단계;
    상기 요구된 정보를 수신하는 단계;
    상기 요구된 정보를 구문 해석하는 단계;
    상기 요구된 정보를 상기 캐시에 저장하는 단계; 및
    상기 요구된 정보를 상기 요구된 정보의 다음 홉으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한 방법.
  3. 제1항에 있어서, 상기 정보는 인터넷 프로토콜 어드레스 정보인 것을 특징으로 하는 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한 방법.
  4. 제1항에 있어서, 상기 네트워크 라우터는, 지리적인 배치에 근거한 하나 이상의 도메인 네임 시스템 클라이언트들에 적용될 수 있는 것을 특징으로 하는 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한 방법.
  5. 제2항에 있어서, 상기 수신 단계는, 네임 서버로부터 상기 요구된 정보를 전송하는 단계를 포함하는 것을 특징으로 하는 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한 방법.
  6. 프로세서;
    상기 프로세서에 연결된 메모리; 및
    도메인 네임 시스템 트래픽을 투과적으로 처리하기 위해 형성된 상기 프로세서에 의해 실행되는 코드를 포함하며, 상기 코드는, 정보에 대한 요구를 네트워크 라우터로 전송하는 방법과, 상기 전송된 요구를 구문 해석하는 방법과, 상기 요구된 정보를 위한 캐시를 서치하는 방법 및 만약 상기 요구된 정보가 상기 캐시에 있다면 상기 요구된 정보를 리턴시키는 방법을 포함하는 것을 특징으로 하는 시스템.
  7. 제6항에 있어서, 상기 코드는,
    만약 상기 요구된 정보가 상기 캐시에 없다면 상기 요구를 상기 요구의 다음홉으로 전송하는 방법;
    상기 요구된 정보를 수신하는 방법;
    상기 요구된 정보를 구문 해석하는 방법;
    상기 요구된 정보를 상기 캐시에 저장하는 방법; 및
    상기 요구된 정보를 상기 요구된 정보의 다음 홉으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 시스템.
  8. 제6항에 있어서, 상기 정보는 인터넷 프로토콜 어드레스 정보인 것을 특징으로 하는 시스템.
  9. 제6항에 있어서, 상기 네트워크 라우터는, 지리적인 배치에 근거한 하나 이상의 도메인 네임 시스템 클라이언트들에 적용될 수 있는 것을 특징으로 하는 시스템.
  10. 제7항에 있어서, 상기 요구된 정보를 수신하는 방법을 위한 상기 코드는, 상기 네임 서버로부터 상기 요구된 정보를 전송하는 방법을 포함하는 시스템.
  11. 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위해 형성되며 그 속에 구현된 컴퓨터로 독출가능한 프로그램 코드를 구비한 컴퓨터로 사용 가능한 매체;
    컴퓨터로 하여금 정보에 대한 요구를 네트워크 라우터로 전송하도록 형성된컴퓨터로 독출가능한 코드;
    컴퓨터로 하여금 상기 전송된 요구를 구문 해석하도록 형성된 컴퓨터로 독출가능한 코드;
    컴퓨터로 하여금 상기 요구된 정보를 위한 캐시를 서치하도록 형성된 컴퓨터로 독출가능한 코드; 및
    만약 상기 요구된 정보가 상기 캐시에 있다면 상기 컴퓨터로 하여금 상기 요구된 정보를 리턴시키도록 형성된 컴퓨터로 독출가능한 코드를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 생성물.
  12. 제11항에 있어서,
    상기 요구된 정보가 상기 캐시에 없다면 컴퓨터로 하여금 상기 요구를 상기 요구의 다음 홉으로 전송하도록 형성된 컴퓨터로 독출가능한 코드;
    컴퓨터로 하여금 상기 요구된 정보를 수신하도록 형성된 컴퓨터로 독출가능한 코드;
    컴퓨터로 하여금 상기 요구된 정보를 구문 해석하도록 형성된 컴퓨터로 독출가능한 코드;
    컴퓨터로 하여금 상기 캐시에 있는 상기 요구된 정보를 저장하도록 형성된 컴퓨터로 독출가능한 코드; 및
    컴퓨터로 하여금 상기 요구된 정보를 상기 요구된 정보의 다음 홉으로 전송하도록 형성된 컴퓨터로 독출가능한 코드를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 생성물.
  13. 제11항에 있어서, 상기 정보는 인터넷 프로토콜 어드레스 정보인 것을 특징으로 하는 컴퓨터 프로그램 생성물.
  14. 제11에 있어서, 상기 네트워크 라우터는, 지리적인 배치에 근거한 하나 이상의 도메인 네임 시스템 클라이언트들에 적용될 수 있는 것을 특징으로 하는 컴퓨터 프로그램 생성물.
  15. 제12항에 있어서, 상기 컴퓨터로 하여금 수신하도록 형성되는 상기 컴퓨터로 독출가능한 코드는, 상기 컴퓨터로 하여금 네임 서버로부터 상기 요구된 정보를 전송하도록 형성된 컴퓨터로 독출가능한 코드를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 생성물.
  16. 제1항에 있어서, 상기 캐시는 상기 네트워크 라우터에 의해 유지되는 것을 특징으로 하는 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한 방법.
  17. 제1항에 있어서, 상기 캐시는 구성된 호스트에 의해 유지되는 것을 특징으로 하는 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한 방법.
  18. 제6항에 있어서, 상기 캐시는 상기 네트워크 라우터에 의해 유지되는 것을 특징으로 하는 시스템.
  19. 제6항에 있어서, 상기 캐시는 상기 구성된 호스트에 의해 유지되는 것을 특징으로 하는 시스템.
  20. 제11항에 있어서, 상기 캐시는 상기 네트워크 라우터에 의해 유지되는 것을 특징으로 하는 컴퓨터 프로그램 생성물.
  21. 제11항에 있어서, 상기 캐시는 구성된 호스트에 의해 유지되는 것을 특징으로 하는 컴퓨터 프로그램 생성물.
KR1020017003005A 1998-09-09 1999-09-01 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한방법 및 장치 KR20010086381A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15063098A 1998-09-09 1998-09-09
US09/150,630 1998-09-09
PCT/US1999/020158 WO2000014938A2 (en) 1998-09-09 1999-09-01 Method and apparatus for transparently processing dns traffic

Publications (1)

Publication Number Publication Date
KR20010086381A true KR20010086381A (ko) 2001-09-10

Family

ID=22535372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017003005A KR20010086381A (ko) 1998-09-09 1999-09-01 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한방법 및 장치

Country Status (7)

Country Link
EP (1) EP1110361A2 (ko)
JP (1) JP2002524979A (ko)
KR (1) KR20010086381A (ko)
CN (1) CN1317191A (ko)
AU (1) AU5803599A (ko)
IL (1) IL141873A0 (ko)
WO (1) WO2000014938A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756065B2 (en) 2003-08-11 2010-07-13 Samsung Electronics Co., Ltd. Domain name service system and method thereof

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69943057D1 (de) 1998-10-30 2011-02-03 Virnetx Inc Netzwerkprotokoll zur geschützten kommunikation
US6826616B2 (en) 1998-10-30 2004-11-30 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network
US10511573B2 (en) 1998-10-30 2019-12-17 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6502135B1 (en) 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6694358B1 (en) 1999-11-22 2004-02-17 Speedera Networks, Inc. Performance computer network method
US7590739B2 (en) 1999-11-22 2009-09-15 Akamai Technologies, Inc. Distributed on-demand computing system
US7925713B1 (en) * 1999-11-22 2011-04-12 Akamai Technologies, Inc. Method for operating an integrated point of presence server network
US6405252B1 (en) 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
GB9929884D0 (en) * 1999-12-18 2000-02-09 Roke Manor Research Transparent DNS cache
EP1109375A3 (en) * 1999-12-18 2004-02-11 Roke Manor Research Limited Improvements in or relating to long latency or error prone links
US7000028B1 (en) 2000-06-02 2006-02-14 Verisign, Inc. Automated domain name registration
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US9444785B2 (en) 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US7032031B2 (en) 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US6728785B1 (en) 2000-06-23 2004-04-27 Cloudshield Technologies, Inc. System and method for dynamic compression of data
US7114008B2 (en) 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US6829654B1 (en) 2000-06-23 2004-12-07 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US7003555B1 (en) * 2000-06-23 2006-02-21 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
WO2002010912A1 (en) * 2000-08-01 2002-02-07 Verisign, Inc. Resolving hierarchical addresses using servers load balancer
US7082502B2 (en) 2001-05-15 2006-07-25 Cloudshield Technologies, Inc. Apparatus and method for interfacing with a high speed bi-directional network using a shared memory to store packet data
US7210022B2 (en) 2001-05-15 2007-04-24 Cloudshield Technologies, Inc. Apparatus and method for interconnecting a processor to co-processors using a shared memory as the communication interface
CN100418089C (zh) * 2003-08-20 2008-09-10 苹果公司 加速本地高速缓存中资源记录到期的方法和装置
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
WO2005089241A2 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing object triggers
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US8631130B2 (en) 2005-03-16 2014-01-14 Adaptive Computing Enterprises, Inc. Reserving resources in an on-demand compute environment from a local compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9015324B2 (en) 2005-03-16 2015-04-21 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
CA2603577A1 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
US20070078996A1 (en) * 2005-10-04 2007-04-05 Wei-Che Chen Method for managing a network appliance and transparent configurable network appliance
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
CN102404416B (zh) * 2010-09-16 2016-06-15 中兴通讯股份有限公司 一种获取dns的方法和隧道网关设备
US10270755B2 (en) 2011-10-03 2019-04-23 Verisign, Inc. Authenticated name resolution
US9426087B2 (en) 2012-06-28 2016-08-23 Dolby Laboratories Licensing Corporation Reduced system latency for dominant speaker
US9634935B2 (en) 2013-04-24 2017-04-25 Secured Connectivity, Llc Method, name server, and system for directing network traffic utilizing profile records
KR101850802B1 (ko) * 2013-05-16 2018-04-20 콘비다 와이어리스, 엘엘씨 향상된 발견을 위한 시스템들 및 방법들
US9900281B2 (en) 2014-04-14 2018-02-20 Verisign, Inc. Computer-implemented method, apparatus, and computer-readable medium for processing named entity queries using a cached functionality in a domain name system
CA2994257C (en) * 2015-07-02 2022-03-15 Reliaquest Holdings, Llc Threat intelligence system and method
US10791085B2 (en) 2015-11-12 2020-09-29 Verisign, Inc. Techniques for directing a domain name service (DNS) resolution process
CN105491110B (zh) * 2015-11-23 2018-06-29 北京天地互连信息技术有限公司 基于http或https的根服务器扩展方法和网络
US10999240B1 (en) 2016-08-31 2021-05-04 Verisign, Inc. Client controlled domain name service (DNS) resolution
US11032127B2 (en) 2017-06-26 2021-06-08 Verisign, Inc. Resilient domain name service (DNS) resolution when an authoritative name server is unavailable
CN113468445B (zh) * 2021-05-24 2024-06-04 北京旷视科技有限公司 请求处理方法、装置、电子设备和计算机可读介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2845207B2 (ja) * 1996-08-15 1999-01-13 日本電気株式会社 アドレス解決装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756065B2 (en) 2003-08-11 2010-07-13 Samsung Electronics Co., Ltd. Domain name service system and method thereof

Also Published As

Publication number Publication date
AU5803599A (en) 2000-03-27
EP1110361A2 (en) 2001-06-27
IL141873A0 (en) 2002-03-10
CN1317191A (zh) 2001-10-10
WO2000014938A2 (en) 2000-03-16
JP2002524979A (ja) 2002-08-06
WO2000014938A3 (en) 2000-07-27

Similar Documents

Publication Publication Date Title
KR20010086381A (ko) 도메인 네임 시스템 트래픽을 투과적으로 처리하기 위한방법 및 장치
US6519646B1 (en) Method and apparatus for encoding content characteristics
US7085817B1 (en) Method and system for modifying requests for remote resources
US9183188B2 (en) Dynamic toolbar for markup language document
US8856279B2 (en) Method and system for object prediction
AU2005263962B2 (en) Improved user interface
US7584500B2 (en) Pre-fetching secure content using proxy architecture
US8788528B2 (en) Filtering cached content based on embedded URLs
US20040215823A1 (en) System and method for reducing DNS lookup traffic in a computer data network
EP0889418A2 (en) Abstract URL resolution via relocation service
US20030200332A1 (en) Method and apparatus for dynamic proxy insertion in network traffic flow
US8595329B2 (en) Reducing DNS lookups
TW428392B (en) Network information providing method and device
US20110131478A1 (en) Method and system for modifying script portions of requests for remote resources
US7987291B2 (en) Data distribution using DNS
CN110855766A (zh) 一种访问Web资源的方法、装置及代理服务器
US20020056053A1 (en) System and method for handling web failures
US20010036182A1 (en) Method and apparatus for selecting and delivering internet based advertising
WO1999060459A2 (en) Method and apparatus for effective traffic localization through domain name system
US20020078076A1 (en) Simulator disposed between a server and a client system
CN101378407A (zh) 一种信息推送方法、系统及设备
US20030217147A1 (en) Directing a client computer to a least network latency server site
KR100342107B1 (ko) 인터넷 주소 부가정보 서비스 제공을 위한 기관 및 지역별 인터넷 주소 묶음결정 방법, 인터넷 주소 묶음별 사용지역 정보 획득 방법
US7769766B1 (en) Method and an apparatus to store content rating information
WO2002039699A1 (en) Domain name system extensions to support reverse proxy operations and layer-7 redirection

Legal Events

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