KR20140027226A - 통신 시스템 및 방법 - Google Patents

통신 시스템 및 방법 Download PDF

Info

Publication number
KR20140027226A
KR20140027226A KR1020137029358A KR20137029358A KR20140027226A KR 20140027226 A KR20140027226 A KR 20140027226A KR 1020137029358 A KR1020137029358 A KR 1020137029358A KR 20137029358 A KR20137029358 A KR 20137029358A KR 20140027226 A KR20140027226 A KR 20140027226A
Authority
KR
South Korea
Prior art keywords
user
internetwork
software
route
packet
Prior art date
Application number
KR1020137029358A
Other languages
English (en)
Other versions
KR101983404B1 (ko
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 KR20140027226A publication Critical patent/KR20140027226A/ko
Application granted granted Critical
Publication of KR101983404B1 publication Critical patent/KR101983404B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • H04L43/55Testing of service level quality, e.g. simulating service usage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/563Software download or update

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

복수의 라우팅 노드를 포함하는 패킷 기반 인터네트워크에서 네트워크 자원들에 관한 정보를 결정하는 방법으로서, 인터네트워크에 접속된 복수의 최종 사용자 단말기 각각에 사용자 소프트웨어를 배포하는 단계; 사용자 소프트웨어와 관련하여, 인터네트워크를 통해 각각의 최종 사용자 단말기로부터 목적지 단말기로의 라우트들을 조사함으로써 데이터의 수집에 참여하도록 구성되는 보조 코드를 배포하되, 각각의 라우트는 복수의 상기 라우팅 노드를 통과하는 단계; 상이한 네트워크 서비스 제공자들의 라우팅 노드들을 포함하는 라우트들로부터 생성되는 데이터를 포함하여 상기 복수의 최종 사용자 단말기 상에서 보조 코드에 의해 수행되는 조사로부터 생성되는 데이터를 수신하는 단계; 및 상기 수신된 데이터에 기초하여 네트워크 자원들의 평가들을 결정하는 단계를 포함하는 방법이 개시된다.

Description

통신 시스템 및 방법{COMMUNICATION SYSTEM AND METHOD}
본 발명은 인터넷과 같은 패킷 기반 인터네트워크를 통한 네트워크 자원들의 맵핑에 관한 것이다.
도 1은 인터넷과 같은 인터네트워크(또는 인터네트워크의 일부)의 고도로 도식화된 표현을 제공한다. 인터네트워크는 둘 이상의 상이한 오퍼레이터들의 네트워크들이 공통 인터네트워킹 프로토콜 또는 프로토콜들에 따라 통신하도록 상호접속 및 배열된 배열이다. 인터네트워크는 통상적으로 다수의 도시 또는 국가를 연결하며, 본질적으로 어느 정도는 대체로 계층적이 아니다. 인터넷은 단연 최고로 광범위하고 일반적으로 사용되는 인터네트워크의 예이며, 인터넷 프로토콜(IP) 또는 인터넷 프로토콜 집합을 이용하여 정의된다.
도 1에 도시된 바와 같이, 데스크탑 컴퓨터, 랩탑, 태블릿 또는 이동 핸드셋과 같은 다수의 최종 사용자 단말기(2a, 2b, 2c 내지 2ψ) 각각은 적어도 하나의 네트워크 서비스 제공자의 적어도 하나의 라우팅 노드(4a, 4b 내지 4w)에 접속된다. 유사하게, 다수의 서버(3a 내지 3d) 각각은 라우팅 노드들(4) 중 적어도 하나에 접속된다. 각각의 접속은 예를 들어 유선 전화에 대한 유선 모뎀 접속, 유선 근거리 네트워크(LAN)(5) 및/또는 무선 라우터를 통한 무선 접속 또는 이동 셀룰러 네트워크의 패킷 기반 서비스를 통한 무선 접속을 포함하는 하나 이상의 유선 및/또는 무선 스테이지들을 포함할 수 있다. 도 1에는 예시적인 목적으로 하나의 근거리 네트워크(LAN)(5)만이 도시되지만, 일반적으로는 사용자 단말기(2)와 그의 인접 상향 노드(4) 간에 LAN에 의해 더 많은 접속이 이루어질 수 있다. 게다가, 무선 라우터에 의한 접속의 경우, 이것은 도 1에 명확히 도시되지 않은 작은 무선 근거리 네트워크(WLAN)을 통한 접속을 유효하게 형성할 수 있다.
라우팅 노드들(4) 각각은 적어도 하나의 다른 인접 라우팅 노드(4)에 직접 접속되며, 따라서 서비스 제공자 노드들(4) 각각은 모두가 적어도 서로 대리로(vicariously) 상호접속된다. 여기서, 직접 접속된다는 것은 인터네트워크 레벨에서 하나의 라우팅 홉만이 필요하다는 것을 의미하는 반면, 대리로 접속된다는 것은 둘 이상의 라우팅 홉을 의미한다.
동작에 있어서, 최종 사용자 단말기(2)는 다른 사용자 단말기(2) 또는 서버(3)를 목적지로 하는 데이터 패킷들을 생성하거나 그 반대이며, 목적지는 각각의 패킷의 헤더 부분에 포함된 IP 주소와 같은 인터네트워크 네트워크 주소에 의해 식별된다. 이어서, 최종 사용자 단말기(2)는 직접 접속된 그의 근거리 네트워크 서비스 제공자의 라우팅 노드(4)로 패킷들을 상향 전송한다. 각각의 라우팅 노드(4)는 사용자 단말기(2), 서버(3) 또는 라우팅 노드(4)로부터 수신되는 착신 패킷의 인터네트워크 주소(예로서, IP 주소)를 검사하고, 그 주소에 기초하여, 패킷을 다음 라우팅 노드(4)로 또는 목적지 사용자 단말기(2) 또는 서버(3)로 목적지에 대한 인터네트워크 내의 현재 라우팅 노드의 위치에 따라 적절히 앞으로 전달하도록 구성된다. 따라서, 패킷은 다수의 라우팅 노드(4)를 통해 소스 사용자 단말기(2) 또는 서버(3)로부터 목적지 사용자 단말기(2) 또는 서버(3)로 라우팅된다.
4a-4em, 4i-4l 및 4p-4s로 표기된 것들과 같은 일부 라우팅 노드들은 (예로서, 특정 도시 내의) 로컬 트래픽을 처리할 수 있으며, 로컬 링크들에 의해 (예로서, 동일 도시 내의) 하나 이상의 다른 로컬 라우팅 노드에 직접 접속될 수 있다. 4f, 4g, 4m, 4n, 4t 및 4u로 표기된 것들과 같은 일부 라우팅 노드들은 (예를 들어, 도시들 또는 주들 간의) 국내 트래픽을 처리할 수 있으며, 국내 링크들에 의해 (예로서, 다른 도시들 또는 주들 내의) 하나 이상의 다른 국내 라우팅 노드들에 직접 접속될 수 있다.· 4h, 4o 및 4w로 표기된 것들과 같은 일부 라우팅 노드들은 국제 트래픽을 처리할 수 있으며, 하나 이상의 국제 링크(예로서, 대외 링크)에 의해 다른 국가들 내의 다른 국제 라우팅 노드들에 직접 접속될 수 있다. 더구나, 각각의 라우팅 노드는 또한 하나 이상의 국내 또는 국제 노드에 직접 앞으로 접속할 수 있고/있거나, 각각의 국내 노드는 하나 이상의 로컬 라우팅 노드와 하나 이상의 국제 라우팅 노드 간에 접속할 수 있다. 그러나, 도 1에 도시된 접속들은 예시의 목적을 위한 것일 뿐이며, 일반적으로는 훨씬 더 복잡한 배열이 적절할 수 있다는 것을 알 것이다. 실제로, 인터넷과 같은 인터네트워크는 다양한 지리적 상호접속 레벨에서 도 1의 개략도에 도시된 것보다 많은 사용자 단말기(2), 서버(3) 및 라우팅 노드(4)를 포함할 수 있으며, 라우팅 노드들(4)은 로컬, 국내 및 국제 노드 레벨로 엄격히 분류될 필요는 없다.
설명된 바와 같이, 라우팅 노드들(4)은 네트워크 서비스 제공자들(이들 모두가 최종 사용자들에 대한 직접 제공자들일 필요는 없음)의 형태의 복수의 상이한 오퍼레이터에 의해 운영되는 노드들을 포함하며, 상이한 네트워크 서비스 제공자들은 서로 간에 상호 라우팅 협약들을 갖는다. 예를 들어, 동일한 도시 또는 주 내에서 운영하는 2개의 네트워크 서비스 제공자 또는 상이한 국가들에서 운영하는 2개의 네트워크 서비스 제공자는 그들 사이에 서로의 고객들의 트래픽을 라우팅하기 위한 상호 협약을 가질 수 있다.
그러나, 그러한 배열들에서는 네트워크 자원들에 관한 정보를 수집하기 어려운 문제가 있다. 시간이 지남에 따라, 임의의 특정 라우팅 노드 또는 노드들(4)은 가변 양의 트래픽을 경험할 수 있다. 게다가, 상이한 라우팅 노드들(4)은 상이한 시간에 상이한 양의 트래픽을 경험할 수 있고/있거나, 상이한 라우팅 노드들은 단위 시간당 상이한 양의 트래픽을 라우팅하기 위한 상이한 능력(예를 들어, 상이한 큐 길이 또는 처리 능력)을 가질 수 있다. 이들 및 다른 네트워크 자원 변동은 예를 들어 소정의 라우팅 노드 또는 노드들(4)에서의 라우팅 병목 현상으로 인해 목적지 단말기 또는 단말기들(2 또는 3)에서 패킷 손실, 레이턴시(지연) 또는 비트 레이트 감소와 같은 상이한 부정적인 특성들을 겪게 할 수 있다.
예를 들어, 네트워크 계획 목적을 위해 그러한 정보를 아는 것이 유용하지만, 인터넷과 같은 큰 인터네트워크의 본질적으로 분산되고 집중되지 않은 다중 제공자 특성은 이를 매우 어렵게 한다.
일부 인터넷 서비스 제공자들(ISP들)은 도시들 내에 모니터링 장비를 설치하지만, 이것은 실제 개인들에 대한 전달에 관한 정보(예를 들어, 최종 사용자가 겪는 바와 같은 패킷 손실 또는 레이턴시)를 제공하지 못한다.
일부 ISP들은 또한 그들의 사용자들에게 그들이 네트워크 성능의 분석을 돕기 위해 그들의 최종 사용자 단말기들(2) 상에서 실행하는 전용 애플리케이션들을 다운로드할 것을 요청한다. 그러나, 이들은 하나의 ISP의 네트워크 내의 자원들에 관한 데이터의 수집으로만 제한된다.
인터넷과 같은 패킷 기반 인터네트워크에서 네트워크 자원들에 관한 정보를 수집하기 위한 향상된 시스템, 방법 및/또는 소프트웨어 도구를 제공하는 것이 바람직할 것이다.
본 발명의 일 양태에 따르면, 복수의 라우팅 노드를 포함하는 패킷 기반 인터네트워크에서 네트워크 자원들에 관한 정보를 결정하는 방법으로서, 상기 인터네트워크에 접속된 복수의 최종 사용자 단말기 각각에 사용자 소프트웨어를 배포하되, 상기 사용자 소프트웨어는 네트워크 데이터의 상기 수집과 다른 주요 사용자 기능을 가지는 단계; 상기 사용자 소프트웨어와 관련하여, 상기 인터네트워크를 통해 각각의 최종 사용자 단말기로부터 목적지 단말기로의 라우트들을 조사함으로써 데이터의 상기 수집에 참여하도록 구성되는 보조 코드를 배포하되, 각각의 라우트는 복수의 상기 라우팅 노드를 통과하는 단계; 상이한 네트워크 서비스 제공자들의 라우팅 노드들을 포함하는 라우트들로부터 생성되는 데이터를 포함하여, 상기 복수의 최종 사용자 단말기 상에서 상기 보조 코드에 의해 수행되는 상기 조사로부터 생성되는 데이터를 수신하는 단계; 및 상기 수신된 데이터에 기초하여 네트워크 자원들의 평가들을 결정하는 단계를 포함하는 방법이 제공된다.
본 발명은 사용자의 ISP에 관계없이 VoIP(Voice-over-IP) 또는 웹 브라우저 소프트웨어와 같은 사용자 소프트웨어의 다른 기존 아이템과 관련하여 배포되는 보조 코드의 형태로 그러한 네트워크 자원 모니터링 도구를 사용자들에게 배포함으로써, 큰 기존 사용자 베이스를 유리하게 이용할 수 있으며, 따라서 다양한 상이한 네트워크 서비스 제공자들의 노드들을 통해 인터네트워크에 액세스하는 사용자들로부터 데이터를 수집할 수 있다. 따라서, 본 발명은 단일 지리 영역 또는 단일 서비스 제공자의 노드들로만 한정되는 것이 아니라, 인터네트워크의 더 넓은 부분에 걸쳐 네트워크 토폴로지의 더 큰 그림을 개발하는 것을 가능하게 한다. 즉, 상이한 지리 영역들 내의 상이한 서비스 제공자들(예로서, ISP들)의 장비에 걸치는 라우트들을 조사함으로써, 인터넷 또는 다른 그러한 인터네트워크의 토폴로지의 보다 양호한 전체 모델을 결정하는 것이 가능하다.
바람직하게는, 상기 사용자 소프트웨어 및 관련 보조 코드의 상기 배포는 상기 최종 사용자 단말기들 각각에 사용자 애플리케이션의 각각의 인스턴스를 배포하는 단계를 포함하며, 상기 애플리케이션은 상기 사용자 소프트웨어 및 상기 보조 코드를 포함하고, 상기 사용자 소프트웨어 및 보조 코드는 적어도 상기 보조 코드의 실행이 상기 사용자 소프트웨어의 실행에 의존한다는 점에서 동일 사용자 애플리케이션의 일부이다.
상기 보조 코드는 사용자 애플리케이션이 개시될 때 상기 사용자 소프트웨어와 함께 자동으로 실행되도록 구성될 수 있다.
상기 보조 코드는 사용자가 상기 사용자 소프트웨어의 실행 동안 상기 사용자 소프트웨어에 의해 제공되는 옵션을 선택할 때 실행되도록 구성될 수 있다.
상기 보조 코드는 상기 사용자 소프트웨어와 동일한 다운로드 및 설치 프로세스의 일부로서 배포될 수 있다.
따라서, 바람직한 실시예들에서, 사용자가 일부 ISP들이 일반적으로 그들의 고객들에게 행하도록 요청하는 방식으로 개별 독립 애플리케이션을 수동으로 동작시키거나 다운로드해야 하는 큰 불편 없이, 사용자의 단말기는 데이터의 수집에 자동으로 참여할 것이다. 그 대신, 보조 자원 모니터링 코드는 사용자가 사용자 애플리케이션을 표면상 이용하는 사용자 애플리케이션의 다른 주요 목적(예를 들어, VoIP 호출 또는 웹 브라우징)을 위해 사용자 애플리케이션을 여는 동안에 단지 배경에서 실행될 것이다. 이러한 방식으로 사용자의 부담을 줄이는 것은 사용자들에 의한 자원 모니터링 도구의 채택을 권장하고, 따라서 인터네트워크의 큰 부분에 걸쳐 큰 사용자 베이스를 이용하는 데 특히 효과적이다.
추가적인 실시예들에서, 상기 조사는 무작위화된 알고리즘에 따라 수행될 수 있다.
특히 바람직한 실시예에서, 상기 사용자 소프트웨어는 상기 패킷 기반 인터네트워크를 통한 패킷 기반 음성 호출, 비디오 호출 또는 IM 메시징 교환의 형태로 통신을 행하는 주요 사용자 기능을 갖는 통신 소프트웨어를 포함한다.
상기 사용자 애플리케이션은 상기 통신 소프트웨어 및 보조 코드를 포함하는 통신 클라이언트 애플리케이션을 포함할 수 있다.
상기 통신 소프트웨어는 그의 각각의 최종 사용자 단말기와 상기 목적지 단말기 사이에서 상기 인터네트워크를 통해 상기 제1 라우트를 거쳐 상기 통신을 행하도록 구성될 수 있으며, 상기 보조 코드는 하나 이상의 상이한 제2 라우트를 통해 조사 패킷을 전송하도록 구성될 수 있고, 상기 제1 및 제2 라우트들 각각은 복수의 상기 라우팅 노드를 통과하며, 상기 결정은 상기 제1 및 제2 라우트들을 통해 경험하는 전달 특성의 차이에 기초하여 상기 제1 및 제2 라우트들 중 적어도 하나를 따라 네트워크 자원들에 관한 정보를 결정하는 단계를 포함할 수 있다.
상기 전달 특성은 레이턴시, 지터, 패킷 손실, 에러 레이트 및 비트 레이트 중 적어도 하나를 포함할 수 있다.
각각의 라우트를 따른 하나의 라우팅 노드로부터 다음 라우팅 노드로의 라우팅은 더 낮은 레벨의 인터네트워크 계층 프로토콜에 의해 결정될 수 있고, 상기 보조 코드는 상기 조사 패킷을 더 높은 레벨의 애플리케이션 계층에서 라우팅함으로써, 각각의 하나 이상의 중계 최종 사용자 단말기 상에서 상기 사용자 애플리케이션의 하나 이상의 추가적인 인스턴스를 통해 상기 조사 패킷들을 상기 목적지 단말기로 지향시킴으로써 상기 하나 이상의 제2 라우트를 통한 라우팅을 유도하도록 구성될 수 있다.
상기 중계 최종 사용자 단말기는 통신의 소비자일 필요가 없다.
상기 보조 코드는 네트워크 자원들의 상기 결정에 따라 중계 최종 사용자 단말기를 통해 상기 통신을 재지향시키도록 구성될 수 있다.
상기 보조 코드는 상기 조사로부터 생성되는 데이터를 네트워크 자원들에 관한 정보의 상기 결정을 수행하는 데이터 처리 설비에 보고하도록 구성될 수 있다.
상기 데이터 처리 설비는 상기 재지향을 제어할 수 있다.
따라서, 하나의 특히 유리한 구현에서, 네트워크 자원들에 관한 정보는 인터네트워크의 토폴로지를 모델링할 뿐만 아니라, 애플리케이션 계층에서 통신 스트림을 중계하기 위한 제삼자 중계기를 선택하는 데에도 사용될 수 있다. 일반적으로 잠재적으로는 통신 시스템의 최종 사용자이지만, 중계 단말기는 중계되는 특정 스트림의 소비자일 필요가 없다. 실시예들에서, 이것은 예를 들어 NAT 또는 방화벽 순회(traversal)를 위해 가장 효율적인 라우트(레이턴시 및/또는 패킷 손실의 감소와 같은 전달 특성에 관하여 효율적임)를 발견하거나, 단순히 스트림을 위해 가장 효율적인 라우트를 발견하는 데 특히 유용할 수 있다(인터네트워크 계층 라우팅, 예를 들어 IP 계층 라우팅에 의해서만 결정되는 라우트는 반드시 가장 효율적이지는 않은데, 그 이유는 이 라우트가 하나의 라우팅 노드(4)로부터 다음 라우팅 노드로의 다음 직접 접속을 통해 다음 즉석 홉과만 관련될 뿐, 라우트를 따라 더 발생할 수 있는 병목들 또는 다른 문제들을 예측하지 못하기 때문이다).
대안 실시예에서, 상기 사용자 소프트웨어는 웹 브라우저 소프트웨어를 포함한다.
본 발명의 다른 양태에 따르면, 복수의 라우팅 노드를 포함하는 패킷 기반 인터네트워크에 접속된 최종 사용자 단말기 상에서 사용하기 위한 사용자 애플리케이션이 제공되며, 상기 사용자 애플리케이션은 비일시적 컴퓨터 판독 가능 매체 상에 구현되고, 네트워크 데이터의 상기 수집과 다른 주요 사용자 기능을 갖는 사용자 소프트웨어; 상기 인터네트워크를 통해 각각의 최종 사용자 단말기로부터 목적지 단말기로의 복수의 상이한 라우트를 조사함으로써 상기 패킷 기반 인터네트워크 내의 네트워크 자원들에 관한 데이터를 수집하는 데 참여하도록 구성되는 보조 코드를 포함하며, 각각의 라우트는 복수의 상기 라우팅 노드를 통과하고, 상기 보조 코드는 상이한 네트워크 서비스 제공자들의 라우팅 노드들을 포함하는 라우트들로부터 생성되는 데이터를 포함하여, 상기 조사로부터 생성되는 데이터를 보고하도록 더 구성되어, 상기 수신된 데이터에 기초하여 네트워크 자원들의 평가들을 결정하는 것을 가능하게 한다.
실시예들에서, 상기 사용자 애플리케이션은 상기 방법 특징들 중 임의의 방법 특징에 따라 더 구성될 수 있다.
본 발명의 또 다른 양태에 따르면, 이 제공된다.
본 발명의 보다 나은 이해를 위해 그리고 본 발명이 실시될 수 있는 방식을 설명하기 위해 첨부 도면들을 예로서 참조할 것이다.
도 1은 인터넷과 같은 인터네트워크의 개략도이다.
도 2는 사용자 애플리케이션의 개략 블록도이다.
도 3은 사용자 애플리케이션의 사용자 인터페이스의 개략도이다.
도 4는 프로토콜 스택의 개략도이다.
도 5는 데이터의 패킷의 개략도이다.
도 2는 하나 이상의 처리 유닛의 형태의 처리 장치 및 ROM, 하드 드라이브 및/또는 플래시 메모리와 같은 비휘발성 메모리의 형태의 전자 저장 매체를 포함하는 최종 사용자 컴퓨터 단말기(2)의 개략 블록도를 제공한다. 최종 사용자 단말기는 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 스타일 컴퓨터 또는 "스마트폰(smart phone)"과 같은 이동 핸드셋, 또는 TV 또는 셋톱 박스와 같이 처리 장치가 내장된 가전 제품 중 어느 하나일 수 있다. 도 1에 도시된 각각의 최종 사용자 단말기(2a, 2b, 2c 내지 2ψ)는 이러한 종류 또는 다른 종류의 임의의 그러한 단말기일 수 있다.
각각의 최종 사용자 단말기(2)의 저장 매체는 각각의 처리 장치에서 실행되도록 배열되는 운영 체제(OS)(10)를 저장한다. 저장 매체는 또한 다수의 사용자 애플리케이션, 예를 들어 VoIP(voice-over-IP) 및/또는 인스턴트 메시징(IM) 클라이언트 형태의 통신 클라이언트 애플리케이션(12) 및 웹 브라우저, 이메일 클라이언트, 뮤직 플레이어 등과 같은 하나 이상의 다른 애플리케이션(18)을 저장한다. 사용자 애플리케이션들(12, 18)은 또한 운영 체제(10)의 제어하에 처리 장치에서 실행되도록 배열된다.
본 발명의 실시예들에 따르면, 통신 클라이언트 애플리케이션(12)은 통신 소프트웨어(14)의 주요 부분과 코드(16)의 보조 부분도 포함한다. 통신 소프트웨어(14)의 주요 부분은 실행될 때 통신 클라이언트의 주요 사용자 기능, 예를 들어 VoIP 호출, 비디오 호출 및/또는 IM 메시징, 즉 사용자가 애플리케이션(12)을 실행하는 주요 기능 또는 목적을 수행하도록 구성된다. 그러나, 보조 코드 부분(16)은 인터네트워크를 통해 다양한 라우트들을 조사하고, 조사된 라우트들을 통해 경험한 레이턴시, 패킷 손실 레이트 또는 비트 레이트와 같은 조사 결과들을 보고함으로써 네트워크 자원들의 모니터링에 참여하는 추가적인 보조 기능을 제공한다.
사용자의 일상적인 관점에서, 사용자는 표면상 정규 통신 클라이언트를 실행하고, 도 3에 개략 도시된 바와 같은 그러한 클라이언트의 전통적인 프론트엔드 사용자 인터페이스를 보기만 하면 되며, 그러한 사용자 인터페이스는 통신 소프트웨어(14)에 의해 제공된다. 그러나, 주요 통신 소프트웨어(14)는 물론, 사용자 애플리케이션(12)이 실행될 때, 보조 자원 모니터링 코드(16)도 배경에서 (보이지 않거나 최소로 보이는 방식으로) 실행될 것이다. 사용자는 예를 들어 라이선스 계약의 일부로서 통신 클라이언트 애플리케이션을 설치 또는 갱신할 때 보조 코드를 인식할 수 있다. 실시예들에서, 통신 클라이언트(12)의 사용자 인터페이스는 또한 예를 들어 클라이언트 프론트엔드 사용자 인터페이스에서 소정의 적절한 제어를 통해 호출될 수 있는 옵션들의 메뉴에 의해 보조 코드에 의한 자원 모니터링을 가능화 및 불능화하는 옵션을 사용자에게 제공할 수 있다.
애플리케이션으로 지칭되는 경우, 이것은 근본적으로 분리 불가한 소프트웨어 유닛을 지칭하는 것을 반드시 의도하지는 않으며, 기존의 애플리케이션에 대한 플러그인(plug-in), 갱신 또는 애드온(add-on)에 의해 형성되는 복합 애플리케이션과 같은 임의의 실행 가능 프로그램을 지칭할 수도 있다(예를 들어, 보조 코드(16)는 동일한 전체 애플리케이션(12)의 일부로서 동작하기 위해 통신 소프트웨어(14)와 인터페이스하는 플러그인으로서 제공될 수 있다). 그러나, 바람직한 실시예들에서, 보조 코드(16)는 통신 소프트웨어의 실행에 따라 실행된다는 점에서 사용자 애플리케이션(12)의 주요 사용자 기능과 적어도 연관되는 것이 의도된다. 즉, 사용자 애플리케이션(12)은 사용자 애플리케이션이 제공하는 주요 사용자 기능을 수행하기 위한 주요 코드(14)(예로서, 통신 클라이언트)를 포함할 것이며, 이것은 애플리케이션(12)이 개시될 때 개시되는 주요 소프트웨어이다. 게다가, 사용자 애플리케이션(12)은 네트워크 데이터를 조사하고 보고하기 위한 보조 코드(16)를 더 포함할 것이며, 보조 코드(16)의 실행은 주요 코드(14)의 실행에 따라 이루어진다. 예를 들어, 보조 코드(16)는 사용자 애플리케이션(12)의 개시시에 주요 통신 소프트웨어(14)와 함께 자동으로 실행되도록 구성된다는 점에서 또는 사용자가 메인 소프트웨어(14)의 실행 동안 옵션을 선택하는 경우에만 사용자 애플리케이션(12) 내에서 실행된다는 점에서 동일 사용자 애플리케이션(12)의 일부인 것으로 간주될 수 있다.
보조 코드(16)는 바람직하게는 사용자 애플리케이션의 주요 기능을 수행하는 주요 소프트웨어(14)와 동시에 배포되고, 동시에, 즉 동일 다운로드 및 설치 작업의 일부와 동일한 때에 사용자에 의해 다운로드 및 설치되며, 따라서 사용자는 별도의 다운로드 또는 설치를 수동으로 행할 필요가 없다. 대안으로서, 보조 코드(16)는 개별적으로 애드온으로서, 그러나 바람직하게는 주요 소프트웨어(14)에 대한 갱신을 포함하는 갱신 프로세스의 일부로서, 다운로드될 수 있다.
사용자의 관점에서, 주요 통신 소프트웨어(14) 및 사용자 애플리케이션(12)은 하나이고 동일하며, (예를 들어, 최초 라이선스 계약을 승인하거나 보조 코드(16)를 가능화 또는 불능화하기 위한 옵션을 토글링할 때를 제외한) 대부분의 시간에 사용자는 배경에서 실행되는 보조 코드(16)를 의식할 필요가 없다. 그러나, 보조 코드(16)에 의한 네트워크 모니터링은 개선된 네트워크 토폴로지 또는 라우팅을 유도할 수 있다는 점에서 결국 사용자에게 유리할 수 있다.
이제, 보조 코드(16)가 네트워크 자원들을 모니터링하도록 (또는 적어도 네트워크 자원 모니터링에 참여하도록) 바람직하게 구성되는 메커니즘이 도 1, 4 및 5를 참조하여 더 상세히 설명된다. 아래에서는 인터넷을 통해 라이브 음성 및/또는 비디오 호출들을 행하기 위한 VoIP 클라이언트와 관련하여 예시적으로 설명하지만, 본 발명의 범위는 임의의 패킷 기반 인터네트워크 타입 배열을 통해 통신하기 위한 다른 종류의 통신 클라이언트로 확장될 수 있다는 것을 이해할 것이다.
이 분야의 기술자에게 친숙하듯이, 단말기들 및 노드들이 인터넷과 같은 인터네트워크를 통해 통신하는 기본 메커니즘은 (각각의 단말기(2, 3) 및 라우팅 노드(4)에서 실행되는 소프트웨어에서 구현되는) 프로토콜 스택으로 간주될 수 있다. 프로토콜 스택을 표현하는 다양한 방식이 존재하지만, 도 4에는 하나의 일반적인 방법이 도시된다.
이러한 표현에서, 최하위 계층은 사용자 단말기(2)와 라우팅 노드(4) 사이 또는 2개의 라우팅 노드(4) 사이의 즉석 직접 링크를 통해 비트들을 운반하는 것을 담당하는 링크 계층(22)이다. 이것은 예를 들어 다이얼-업, 광대역, 이더넷 또는 와이파이 접속을 통해 데이터를 운반하기 위한 프로토콜을 포함할 수 있다. 링크 계층(22)은 인터네트워크 레벨에서 라우팅하는 개념을 포함하지 않으며, 상이한 직접 링크 계층 프로토콜들이 상이한 링크들에 대해 사용될 수 있는데, 그 이유는 다음 상위 계층, 즉 인터네트워킹 계층(24)(예로서, IP 계층)이 인터네트워크를 통해 라우팅하기 위한 공통 프로토콜을 제공하기 때문이다. 즉, 링크 계층(22)은 어느 다음 라우팅 노드(4) 또는 단말기(2)로 패킷을 지향시켜야 하는지를 결정하지 않고, 단지 다음 라우팅 노드(4) 또는 단말기(2)가 인터네트워크 계층(예로서, IP 계층)(24)에서의 인터네트워크 주소(예를 들어, IP 주소)에 기초하여 식별되면 그 노드 또는 단말기로 패킷의 비트들을 전송한다.
인터네트워크 계층(예로서, IP 계층)(24)은 즉석 패킷 라우팅을 담당하는 패킷 프로토콜이다. 도 5에 개략 도시된 바와 같이, 데이터의 패킷은 헤더 부분(32) 및 페이로드(34) 양자를 포함한다. 헤더(32)는 목적지 최종 사용자 단말기(2)의 인터네트워킹 주소(예로서, IP 주소)를 포함하며, 페이로드는 전송 사용자 애플리케이션(12, 18)이 전송을 요구하는 실제 사용자 데이터를 포함한다. 라우팅 노드(4)가 패킷을 수신할 때, 그의 IP 계층 소프트웨어는 IP 주소를 검사하고, 패킷을 라우팅할 다음 인접 라우팅 노드(4)(또는 목적지 단말기가 인접하는 경우에는 최종 사용자 단말기(12))를 결정하는데, 즉 패킷을 전송할 다음 직접 링크 또는 다음 인터네트워크 홉을 결정한다. 그러나, 임의의 하나의 주어진 노드(4)의 IP 계층(24)은 다수의 홉을 동시에 결정하지 못하고, 다음 인접 노드(4) 또는 단말기(2)에 대한 다음 즉석 홉만을 결정할 수 있다.
전송 계층(26)은 IP 헤더의 상부에 랩핑(wrapping)된 추가적인 헤더 정보를 추가한다. 따라서, 전송 프로토콜은 포트 넘버링, 에러 검출, 패킷 배열, 및 패킷 수신의 확인과 같은 소정 등급의 말단 대 말단 접속성을 추가할 수 있다. 그러나, 전송 계층(26)은 사용자 애플리케이션이 라우트 토폴로지를 지정할 수 있는 기능을 여전히 제공하지 못한다, 즉 사용자 애플리케이션이 패킷을 어느 라우팅 노드들(4)을 통해 라우팅할지를 선택할 수 있게 하지 못한다.
마지막으로, 애플리케이션 계층(28)은 패킷 페이로드(34)에 포함될 사용자 정보, 예를 들어 음성 또는 비디오 호출의 오디오 또는 비디오 콘텐츠, 또는 IM 이미지에 대한 사용자 텍스트와 관련된다. 애플리케이션(12, 18)은 해당 애플리케이션에 적합한 경우에 그가 원하는 임의의 콘텐츠를 페이로드 내에 자유롭게 포함시킨다.
바람직한 구현에 따르면, 본 발명은 애플리케이션 계층 및 패킷 페이로드를 추가로 이용하여 추가적인 라우팅 계층을 제공함으로써, IP 또는 전송 계층들(24, 26)에 의해 지원되지 않는 라우팅 토폴로지를 통한 추가 등급의 제어를 제공한다. 애플리케이션 계층에서의 이러한 종류의 라우팅은 "오버레이 네트워크"의 형성으로서 지칭될 수 있다.
예를 들어, 전송 최종 사용자 단말기(2e)에서 실행되는 통신 애플리케이션(12)의 인스턴스가 패킷 또는 패킷들의 스트림을 목적지 최종 사용자 단말기(2x)에서 실행되는 통신 클라이언트(12)의 다른 인스턴스로 전송하기를 원하는 것으로 가정한다. IP 계층 라우팅에 의해 단독으로 결정되는 라우트는 예를 들어 대서양 횡단 링크(4h-4o)를 통과할 수 있다. 그러나, 전송 애플리케이션(12)이 제3 중계 최종 사용자 단말기(2λ)에서 실행되는 통신 애플리케이션의 인스턴스를 통해 패킷들을 전송하기를 대신 원하는 것으로 가정한다. 이 경우, 전송 애플리케이션은 중계 최종 사용자 단말기(2)의 IP 주소를 갖는 패킷들을 생성하며, 따라서 IP 계층(24)이 관련되는 한, 중계 최종 사용자 단말기(2i)를 목적지 단말기로서 지정한다. 그러나, 전송 단말기(2e)는 패킷 페이로드들(34) 중 적어도 하나 내에 궁극의 목적지(2x)를 식별하는 지시를 또한 삽입한다. 중계 단말기(2i) 상의 통신 애플리케이션(12)의 인스턴스는 패킷들을 수신할 때 페이로드들을 언랩핑(unwrapping)하고, (예를 들어, 지시된 식별자를 IP 주소로 맵핑하는 탐색표에 기초하여) 궁극의 목적지 단말기(2x)의 IP 주소를 결정하고, 이어서 목적지 단말기(2x)의 IP 주소를 포함하는 IP 헤더와 함께 페이로드 미디어의 나머지를 재랩핑하며, 패킷들을 인터넷을 통해 재전송한다. 이것은 전체 라우트가 4h-4o를 직접 통하는 것이 아니라 (많은 홉 가운데 특히) 대서양 횡단 링크(4h-4w)에 이어서 국제 링크(4w-4o)를 통하게 할 것이다.
서버(3)는 이러한 방식으로 애플리케이션 계층 중계 단말기로도 지정될 수 있다.
전통적인 오버레이 네트워크에서, 이러한 종류의 기술은 중계 최종 사용자 단말기(2, 3)의 소정의 유리한 특성을 이용하려는 의도로만 사용될 수 있는데, 예를 들어 그 이유는 그 단말기가 방화벽 또는 NAT의 순회를 허용하거나, 다자 회의 호출(셋 이상의 참여자)을 용이하게 하기 위한 보다 양호한 처리 자원들을 갖기 때문이다. 그러나, 본 발명의 실시예들에 따르면, 애플리케이션 계층 라우팅 기술은 라우트가 소정의 라우팅 노드들(4) 또는 라우팅 노드들(4) 간의 소정 링크를 통과하게 하여, 레이턴시, 패킷 손실 비트 레이트, 처리량 및/또는 지터와 같은 그 라우트의 소정의 전달 특성을 조사하는 데 사용된다.
따라서, 사용자 애플리케이션(12, 18)은 패킷들이 어떤 노드들을 통해 라우팅되는지를 직접 제어하지 않지만, 동일 오버레이 네트워크의 일부를 형성하는 중간 사용자 애플리케이션(12)을 통한 라우팅에 의해 라우트의 일부 양태들을 조종할 수 있다.
이제, 네트워크 자원들의 모니터링에 대한 이러한 기술의 일부 예시적인 응용들이 더 상세히 설명된다.
도 1을 다시 참조하면, 우선, 최종 사용자 단말기(2e)에서 실행되는 VoIP 클라이언트(12)가 애플리케이션 계층에서의 어떠한 특정 라우팅도 지정하지 않고 목적지 최종 사용자 단말기(2x)와의 음성 또는 비디오 스트림을 셋업하는 것으로 가정한다. 이 경우, 라우트는 어떠한 중계 최종 사용자 단말기(2) 또는 서버(3)도 포함하지 않으며, 전송된 패킷들의 헤더 내의 목적지 단말기(2x)의 IP 주소 및 네트워크 서비스 제공자들의 라우팅 노드들(4)에 의해 행해진 라우팅 결정들에 의해서만 결정된다. 예를 들어, 초기 라우트는 2e-4b-4f-4h-4o-4n-4k-2x일 수 있다.
그러나, VoIP 클라이언트(12)는 하나 이상의 측정 가능한 전달 특성들, 예를 들어 레이턴시, 패킷 손실 또는 에러 레이트의 감소, 비트 레이트의 증가 및/또는 지터와 관련하여 다른 라우트가 사실상 더 양호할 수 있는지를 결정하기를 원할 수 있다. 구체적으로, 인터넷과 같은 큰 인터네트워크를 통해 라우팅할 때, 지리적으로 가장 짧은 라우트 또는 IP 계층 단독으로 결정된 라우트가 반드시 최상은 아니다. 예를 들어, 지리적으로 가까운 라우팅 노드(4)가 병목 현상을 겪을 수 있다. 따라서, 다른 중계 최종 사용자 단말기(2) 또는 서버(3)(또는 사실상 복수의 이들)를 통한 라우팅에 의해 애플리케이션 계층에서 강제될 수 있는 다른 가능한 라우트들을 테스트할 수 있는 것이 바람직할 것이다.
이 때문에, VoIP 클라이언트(12)는 그의 특수 보조 코드(16)에 의해, 애플리케이션 계층 라우팅에 의해, 적어도 하나의 중계 최종 사용자 노드 및/또는 서버(3)를 포함하는 대안 라우트를 따라 하나 이상의 조사 패킷을 전송하도록 구성된다. 예를 들어, 하나 이상의 조사 패킷은 라우트 2e-4b-4c-2i-4c-4g-4h-4o-4n-4k-2x를 따라 전송될 수 있다.
바람직하게는, VoIP 클라이언트(12)는 사실상 다수의 라우트를 유사한 방식으로 조사할 것이며, 예를 들어 일부 다른 라우트들은
2e-4b-4a-3a-4a-4h-4o-4n-4k-2x
2e-4b-4f-4h-4w-4t-4q-2λ-4q-4t-4w-4o-4n-4k-2x
2e-4b-4f-4h-4w-4u-3d-4u-4w-4o-4n-4k-2x
2e-4b-4f-4h-4o-4m-4i-2t-4i-4j-4k-2x등일 수 있다.
하나 이상의 조사 패킷은 목적지 단말기(2x)에 대한 "핑(ping)"으로서 작용하여, 조사되는 라우트를 통해 하나 이상의 조사 패킷이 경험하는 전달 특성을 보고하는, 목적지 단말기(2x)에서 실행되는 클라이언트(12)로부터 전송 단말기(2e)에서 실행되는 클라이언트(12)로의 회답을 호출할 수 있다. 대안으로서, 하나 이상의 조사 패킷은 목적지 단말기(2x)를 트리거하여, 경험한 전달 특성을 제어 서버(예를 들어, 3b)에서 실행되는 제어기에 보고하게 할 수 있고, 이어서 제어기는 전송 최종 사용자 단말기(2e)의 거동을 제어할 수 있도록 구성된다(제어는 인터넷 또는 셀룰러 네트워크와 같은 대안적인 제어 매체를 통해 시그널링된다).
또한, 초기 라우트는 전송된 스트림에 의해 암시적으로 또는 별개의 하나 이상의 조사 패킷에 의해 동일 정보에 대해 조사된다.
조사된 라우트들 중 임의의 라우트가 패킷 손실, 에러 레이트, 레이턴시 또는 비트 레이트 등(또는 이들 중 하나 이상 또는 이들 중 둘 이상의 조합에 기초하는 소정의 메트릭(metric))과 같은 소정의 정량화 가능 전달 특성과 관련하여 초기 또는 현재 라우트보다 양호한 것으로 밝혀지는 경우, 전송 단말기(2e) 상의 클라이언트(12) 또는 제어 서버(3b)에서 실행되는 제어기는 중계 최종 사용자 노드(3) 또는 서버(3)를 통해 라우팅하는 애플리케이션 계층에 의해, 개선된 라우트를 통해 주요 음성 또는 비디오 스트림을 지향시킬 것이다. 이러한 프로세스는 진행중인 스트림 전송 전반에서 반복되어, 최상의 라우트를 동적으로 갱신하거나 체크할 수 있다.
유사한 기술을 이용하여, 다른 타입의 스트림 또는 통신, 예를 들어 파일 전송 또는 IM 메시징 교환을 위한 라우트들을 찾을 수 있다. 실시예들에서, 해당 전달 특성 또는 특성들은 클라이언트(12)에 의해 요구되는 통신의 타입에 의존할 수 있다.
중계 단말기가 최종 사용자 단말기(예로서, 2i 또는 2t)인 경우, 중계 최종 사용자 단말기는 스트림의 소비자일 필요가 없다는 점에 유의한다(이와 관련하여, 소비는 스트림을 그의 궁극의 목적을 위해 사용하는 것, 예를 들어 음성 또는 비디오 스트림을 재생하는 것, IM 이미지를 표시하는 것 또는 파일 전송에 의해 수신된 파일을 저장하는 것을 의미한다). 오히려, 중계 최종 사용자 단말기에는 이러한 상호 라우팅 스킴에 합류하기로 합의한 사용자에 의해 통신 클라이언트 애플리케이션(12)의 또 다른 인스턴스가 간단히 설치될 수 있다(중계 단말기(2i 또는 2t)의 사용자 자신은 다른 기회와 관련하여 완전히 상이한 스트림의 전송자 또는 소비자가 될 때 전체 협약으로부터 이익을 얻을 수 있다).
바람직한 실시예에서, 조사는 개미 집단(ant colony)과 유사한 방식으로 결정된다. 식량을 얻기 위해, 집단 내의 개미들의 대부분은 식량과 개미 집 사이에 다른 개미가 남긴 냄새의 자취를 따라갈 것이다. 그러나, 때때로 하나의 무작위의 개미는 주류로부터 벗어나 무작위의 샛길로 빠질 것이다. 그러한 무작위의 샛길이 식량에 대한 더 좋은 라우트를 제공하는 경우, 그 개미는 집으로 복귀하여 새로운 냄새 자취를 남길 것이다. 이어서, 개미들의 대부분은 새로운 자취를 따라갈 것이다. 유사한 방식으로, 본 발명은 무작위 "개미 집단" 스타일 알고리즘을 이용할 수 있으며, 이에 따라 주요 트래픽 스트림은 현재 라우트를 따라 라우팅되지만, 때때로 조사 패킷은 상이한 테스트 라우트를 통해 무작위로 전송된다. 조사의 타이밍 및/또는 경로가 무작위일 수 있다.
그러나, 대안 실시예들에서, 조사되는 라우트들은 예컨대 잠재적 중계기들(2, 3)의 리스트를 통해 주기적으로 순환하는 체계적인 방식으로 결정될 수 있거나, 무작위 및 체계적 팩터들의 조합을 포함할 수 있다.
조사 빈도 및 애플리케이션 계층 라우팅을 결정하는 알고리즘은 무작위인지 또는 체계적인지에 관계없이 전송 VoIP 클라이언트(12) 자체의 일부일 수 있거나, 전송 VoIP 클라이언트(12)가 언제, 어디서 조사할지를 제어할 수 있도록 구성되는 제어 서버(예로서, 3b)에서 실행되는 제어 모듈에서 실행될 수 있다(제어는 인터넷 또는 셀룰러 네트워크와 같은 대안적인 제어 매체를 통해 시그널링된다).
본 발명의 다른 관련된 이용은 방화벽 또는 NAT(네트워크 주소 변환) 순회를 위한 것이다. 예를 들어, 위의 예에서, 기본 라우트 2e-4b-4f-4h-4o-4n-4k-2x는 옵션이 아닐 수 있는데, 그 이유는 2x의 방화벽이 송신자(2e)를 신뢰하지 않을 수 있거나, 2e가 2x의 NAT를 통과하지 못할 수 있기 때문이다. 즉, 심지어 초기 스트림은 애플리케이션 계층에 중계기(2, 3)를 필요로 할 수도 있다. 이 경우, 어느 것이 최상의 라우트인지를 동적으로 체크하거나 갱신하기 위한 프로세스는 정확히 전술한 바와 같이 그러나 임의의 선택된 라우트도 해당 방화벽 또는 NAT를 순회해야 한다는 추가적인 기준과 더불어(그리고 방화벽 또는 NAT를 순회하기 위한 최상의 방법을 찾는 목적으로) 진행할 수 있다. 목적지에 지리적으로 가장 가까운 중계기가 반드시 최상은 아니라는 점에 유의한다.
본 발명의 또 다른 이용은 (시간이 지남에 따라 변할 수 있는) 네트워크 토폴로지의 전체 모델을 구축하기 위해 데이터를 데이터 처리 설비에 보고하는 것이다. 데이터 처리 설비는 서버(예로서, 3b)일 수 있거나, 복수의 최종 사용자 단말기(2) 사이에 분산된 분산형 알고리즘일 수도 있다.
동작에 있어서, 다양한 상이한 최종 사용자 단말기(2)에서 실행되는 통신 클라이언트 애플리케이션(12)의 복수의 인스턴스가 각각 자원 모니터링 코드(16)를 실행하여, 전술한 바와 같은 애플리케이션 계층 라우팅에 의해 인터넷을 통해 다양한 라우트들을 조사할 것이다. 개별 통신 클라이언트들(12)이 이를 이용하여 그들 자신의 미디어 스트림들을 재지향시키는지에 관계없이, 이들은 여전히 조사의 결과들을 데이터 설비(3b)에 보고하도록 배열될 수 있다. 즉, 목적지 단말기(예로서, 2x) 또는 전송 단말기(예로서, 2e)는 조사된 라우트를 통해 경험한 패킷 손실, 에러 레이트, 레이턴시, 비트 레이트 또는 지터(또는 이들에 기초하는 소정의 메트릭)와 같은 측정된 전달 특성을 데이터 처리 설비에 보고할 것이다. 바람직하게는, 데이터 처리 설비(3b)에 대한 보고는 인터넷을 통해서도 수행된다(그러나, 셀룰러 접속과 같은 대안 보고 매체의 가능성이 배제되지 않는다).
임의의 하나의 단일 조사 동작은 병목 현상 또는 다른 문제들이 어디서 발생하고 있는지를 결정하기에 충분하지 않을 것이다. 그러나, 둘 이상의 라우트가 조사되면, 인터넷/인터네트워크 내의 병목들 또는 다른 문제들의 위치에 대한 정보가 추정될 수 있다.
아래에 제공되는 조사되는 라우트들의 예들을 다시 고찰한다.
(i) 2e-4b-4f-4h-4o-4n-4k-2x
(ii) 2e-4b-4c-2i-4c-4g-4h-4o-4n-4k-2x
(iii) 2e-4b-4a-3a-4a-4h-4o-4n-4k-2x
(iv) 2e-4b-4f-4h-4w-4t-4q-2λ-4q-4t-4w-4o-4n-4k-2x
(v) 2e-4b-4f-4h-4w-4u-3d-4u-4w-4o-4n-4k-2x
(vi) 2e-4b-4f-4h-4o-4m-4i-2t-4i-4j-4k-2x
예를 들어, 라우트 (ii)가 라우트 (ii)보다 훨씬 낮은 레이턴시 또는 패킷 손실을 겪는 경우, 이것은 제2 라우트 (ii)에서 제거된 라우팅 노드(4f)가 문제가 있다는 것을, 예를 들어 현재 많은 트래픽으로 과부하가 걸려 있다는 것을 암시할 수 있다.
한편, 라우트들 (i)-(iii) 및 (vi) 모두가 대안적인 대서양 횡단 라우트를 취하는 라우트들 (iv) 및 (v)에 비해 비교적 높은 지연 또는 패킷 손실을 겪는 경우, 이것은 4h와 4o 사이의 대서양 횡단 라우트가 문제의 소스라는 것을 암시한다. 이것은 더 짧은 지리적 거리가 반드시 더 양호한 라우트의 보증서는 아닌 일례이다.
다른 예로서, 라우트들 (i) 내지 (v) 모두가 불량이고, 상이한 대서양 횡단 라우트들 사이에 거의 차이가 없지만, 라우트 (vi)가 지연 또는 패킷 손실에 있어서 상당한 개선(감소)을 보이는 것으로 가정한다. 이것은 노드(4n)가 체인 내의 문제 스테이지라는 것을 암시할 수 있다.
또 다른 예에서, 최종 사용자 단말기들(2o, 2p, 2q)을 포함하는 모든 라우트들이 불량한 반면에 대부분의 다른 라우트들이 양호한 경우, LAN(5) 내에 문제가 있는 것으로 추정하는 것이 가능할 수 있다.
따라서, 사실상, 다수의 최종 사용자 단말기(2)에 의해 다수의 라우트에 대해 보고되는 데이터는 데이터 처리 설비가 풀거나 예측해야 할 대형 동시 방정식을 형성하는 것으로 간주될 수 있다. 방정식을 정확하게 "푸는" 것이 가능하지 않은 경우에도, 유망한 네트워크 토폴로지의 그림 또는 모델을 구축하는 것이 여전히 가능할 수 있다. 더 많은 최종 사용자 단말기를 포함하는 라우트들의 더 많은 조합이 테스트될수록, 더 많은 링크 또는 라우트가 잠재적 문제의 소스로서 고려될 수 있다. 따라서, VoIP 통신 클라이언트와 같은 보편적인 사용자 애플리케이션과 함께 자원 모니터링 코드(16)를 배포하는 것은 특이 유리하다.
결국, 수집된 정보는 인터네트워크를 변경하기 위해, 예를 들어 새로운 장비를 설치하거나, 기존 장비를 업그레이드하거나, 하나 이상의 노드에서 라우팅 정책을 변경하기 위해 사용될 수 있다.
위의 실시예들은 단지 예시적으로 설명되었다는 것을 알 것이다.
예를 들어, 본 발명은 VoIP 클라이언트로 한정되는 것이 아니라, 예를 들어 IM 메시징 교환들을 위한 라우트들을 선택하기 위해 다른 종류의 통신 클라이언트에서 라우팅을 제어하는 데 사용될 수 있다. 또한, 본 발명은 통신 클라이언트에서의 배포로 한정되는 것이 아니라, 대안으로서 웹 브라우저 또는 뮤직 플레이어 등과 같은 다른 종류의 광범위한 사용자 애플리케이션과 함께 배포될 수 있다.
보조 코드(16)에 의한 조사 동작은 개별적인 인공 조사 패킷들 또는 메시지들, 즉 어떠한 사용자 트래픽도 그리고 주요 코드(14)의 기능 또는 사실상 임의의 다른 목적과 관련된 어떠한 데이터도 포함하지 않는 패킷들 또는 메시지들을 전송하는 동작을 포함할 수 있다. 대안으로서, 보조 코드(16)에 의한 조사 동작은 예를 들어 주요 코드(14)가 다른 노드들로부터 프레즌스 정보를 획득하기 위해 프레즌스 핑들을 수행할 때 또는 주요 코드(14)가 피어 대 피어 시나리오에서 분산형 데이터베이스의 노드들 상에서 정보를 수집할 때 주요 코드(14)에 의해 그의 "통상적인" 주요 기능과 관련하여 이미 전송되고 있는 패킷들을 사용하는 동작을 포함할 수 있다. 즉, 이 경우에, 보조 코드는 주요 코드(14)에 의해 통신되는 소정 패킷들에 보조 목적을 추가할 것이다.
더구나, 위에서는 주로 최종 사용자 단말기들(2)과 관련하여 설명되었지만, 대안으로서 임의의 송신 단말기, 목적지 단말기 또는 중계 단말기가 서버 단말기(3)일 수 있다. 용어 서버는 단일 사이트에 있는 또는 단일 하우징 내의 단일 서버 유닛으로 한정되는 것을 반드시 의도하지는 않으며, 다수의 하우징 또는 사이트 내의 다수의 서버 유닛의 배열도 커버한다는 점에 유의한다. 네트워크 서비스 제공자들의 라우팅 노드들(4)과 관련하여, 라우터 또는 라우팅 노드들은 임의의 특정 네트워크 장비를 의미하는 것이 아니라, 데이터를 전송하기 위한 임의의 노드 또는 데이터를 전송하는 동작을 지칭할 수 있다는 점에 유의한다. 더구나, 네트워크 서비스 제공자는 임의의 특정 종류의 비즈니스 모델로 한정되는 것을 의도하지 않으며, 일반적으로 임의의 네트워크 오퍼레이터 등을 지칭할 수 있다.
본 개시가 주어질 때 당업자에게 다른 변형들이 명백할 수 있다. 본 발명의 범위는 전술한 실시예들에 의해 한정되는 것이 아니라, 첨부된 청구범위에 의해서만 한정된다.

Claims (10)

  1. 복수의 라우팅 노드를 포함하는 패킷 기반 인터네트워크에서 네트워크 자원에 관한 정보를 결정하는 방법으로서,
    상기 인터네트워크에 접속된 복수의 최종 사용자 단말기 각각에 사용자 소프트웨어를 배포하고, 상기 사용자 소프트웨어와 관련하여, 상기 인터네트워크를 통해 각각의 최종 사용자 단말기로부터 목적지 단말기로의 상이한 라우트를 조사함으로써 상기 패킷 기반 인터네트워크에서 네트워크 자원에 대한 데이터의 수집에 참여하도록 구성되는 보조 코드를 배포하는 단계- 각각의 라우트는 복수의 상기 라우팅 노드를 통과함 -,
    상이한 네트워크 서비스 제공자의 라우팅 노드를 포함하는 라우트로부터 생성되는 데이터를 포함하여, 상기 복수의 최종 사용자 단말기 상에서 상기 보조 코드에 의해 수행되는 상기 조사로부터 생성되는 데이터를 수신하는 단계, 및
    상기 수신된 데이터에 기초하여 네트워크 자원의 평가를 결정하는 단계를 포함하며,
    상기 사용자 소프트웨어는 네트워크 데이터의 상기 수집과 다른 주요 사용자 기능을 갖는
    방법.

  2. 제1항에 있어서,
    상기 사용자 소프트웨어 및 관련 보조 코드의 상기 배포는 상기 최종 사용자 단말기 각각에 사용자 애플리케이션의 각각의 인스턴스를 배포하는 단계를 포함하고, 상기 사용자 애플리케이션은 상기 사용자 소프트웨어 및 상기 보조 코드를 포함하고, 상기 사용자 소프트웨어 및 보조 코드는 적어도 상기 보조 코드의 실행이 상기 사용자 소프트웨어의 실행에 의존한다는 점에서 동일 사용자 애플리케이션의 일부인
    방법.
  3. 제2항에 있어서,
    상기 보조 코드는 사용자 애플리케이션이 개시될 때 상기 사용자 소프트웨어와 함께 자동으로 실행되도록 구성되는
    방법.
  4. 제2항 또는 제3항에 있어서,
    상기 보조 코드는 상기 사용자 소프트웨어와 동일한 다운로드 및 설치 프로세스의 일부로서 배포되는
    방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 사용자 소프트웨어는 상기 패킷 기반 인터네트워크를 통한 패킷 기반 음성 호출, 비디오 호출 또는 IM 메시징 교환의 형태로 통신을 행하는 주요 사용자 기능을 갖는 통신 소프트웨어를 포함하는
    방법.
  6. 제2항 또는 제5항에 있어서,
    상기 사용자 애플리케이션은 상기 통신 소프트웨어 및 보조 코드를 포함하는 통신 클라이언트 애플리케이션을 포함하고,
    상기 통신 소프트웨어는 그의 각각의 최종 사용자 단말기와 상기 목적지 단말기 사이에서 상기 인터네트워크를 통해 상기 제1 라우트를 거쳐 상기 통신을 행하도록 구성되고, 상기 보조 코드는 하나 이상의 상이한 제2 라우트를 통해 조사 패킷을 전송하도록 구성되며, 상기 제1 및 제2 라우트 각각은 복수의 상기 라우팅 노드를 통과하며,
    상기 결정하는 단계는 상기 제1 및 제2 라우트를 통해 경험하는 전달 특성의 차이에 기초하여 상기 제1 및 제2 라우트 중 적어도 하나를 따라 네트워크 자원에 관한 정보를 결정하는 단계를 포함하는
    방법.
  7. 제6항에 있어서,
    각각의 라우트를 따른 하나의 라우팅 노드로부터 다음 라우팅 노드로의 라우팅은 더 낮은 레벨의 인터네트워크 계층 프로토콜에 의해 결정되며,
    상기 보조 코드는 상기 조사 패킷을 더 높은 레벨의 애플리케이션 계층에서 라우팅함으로써 각각의 하나 이상의 중계 최종 사용자 단말기 상에서 상기 사용자 애플리케이션의 하나 이상의 추가적인 인스턴스를 통해 상기 조사 패킷을 상기 목적지 단말기로 지향시킴으로써 상기 하나 이상의 제2 라우트를 통한 라우팅을 유도하도록 구성되는
    방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 조사는 무작위 알고리즘에 따라 수행되는
    방법.

  9. 복수의 라우팅 노드를 포함하는 패킷 기반 인터네트워크에 접속된 최종 사용자 단말기 상에서 사용하기 위한 사용자 애플리케이션으로서, 상기 사용자 애플리케이션은 비일시적 컴퓨터 판독 가능 매체 상에 구현되고,
    사용자 소프트웨어,
    상기 인터네트워크를 통해 각각의 최종 사용자 단말기로부터 목적지 단말기로의 복수의 상이한 라우트를 조사함으로써 상기 패킷 기반 인터네트워크에서 네트워크 자원에 관한 데이터를 수집하는 데 참여하도록 구성되는 보조 코드- 각각의 라우트는 복수의 상기 라우팅 노드를 통과함 -를 포함하고,
    상기 보조 코드는 상이한 네트워크 서비스 제공자의 라우팅 노드를 포함하는 라우트로부터 생성되는 데이터를 포함하여 상기 조사로부터 생성되는 데이터를 보고하여, 상기 보고된 데이터에 기초하여 네트워크 자원의 평가를 결정하는 것을 가능하게 하도록 더 구성되며,
    상기 소프트웨어는 상기 네트워크 데이터의 수집과 다른 주요 사용자 기능을 갖는
    사용자 애플리케이션.
  10. 복수의 라우팅 노드를 포함하는 패킷 기반 인터네트워크에서 네트워크 자원에 관한 정보를 결정하기 위한 시스템으로서,
    상기 인터네트워크에 접속된 복수의 최종 사용자 단말기 각각에 사용자 소프트웨어를 배포하기 위한 네트워크 장치를 포함하고,
    상기 네트워크 장치는 상기 사용자 소프트웨어와 관련하여 상기 인터네트워크를 통해 각각의 최종 사용자 단말기로부터 목적지 단말기로의 상이한 라우트를 조사함으로써 상기 패킷 기반 인터네트워크에서 네트워크 자원에 대한 데이터의 수집에 참여하도록 구성되는 보조 코드를 배포하도록 더 구성되되, 각각의 라우트는 복수의 상기 라우팅 노드를 통과하고,
    상기 시스템은 상이한 네트워크 서비스 제공자의 라우팅 노드를 포함하는 라우트로부터 생성되는 데이터를 포함하여 상기 복수의 최종 사용자 단말기 상에서 상기 보조 코드에 의해 수행되는 상기 조사로부터 생성되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 네트워크 자원의 평가를 결정하도록 구성된 데이터 처리 설비를 포함하며,
    상기 사용자 소프트웨어는 상기 네트워크 데이터의 수집과 다른 주요 사용자 기능을 갖는
    시스템.
KR1020137029358A 2011-05-06 2012-05-04 통신 시스템 및 방법 KR101983404B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/102,471 US9426041B2 (en) 2011-05-06 2011-05-06 Communication system and method
US13/102,471 2011-05-06
PCT/EP2012/058192 WO2012152671A1 (en) 2011-05-06 2012-05-04 Communication system and method

Publications (2)

Publication Number Publication Date
KR20140027226A true KR20140027226A (ko) 2014-03-06
KR101983404B1 KR101983404B1 (ko) 2019-05-29

Family

ID=46046183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137029358A KR101983404B1 (ko) 2011-05-06 2012-05-04 통신 시스템 및 방법

Country Status (6)

Country Link
US (1) US9426041B2 (ko)
EP (1) EP2695329B1 (ko)
JP (1) JP6067682B2 (ko)
KR (1) KR101983404B1 (ko)
CN (1) CN103503373B (ko)
WO (1) WO2012152671A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9426506B2 (en) * 2012-08-22 2016-08-23 University-Industry Cooperation Group Of Kyung Hee University Apparatuses for providing and receiving augmented broadcasting service in hybrid broadcasting environment
US10333824B1 (en) * 2013-01-02 2019-06-25 8X8, Inc. Analysis of transmission characteristics in a voice-over-IP network
WO2014160652A1 (en) * 2013-03-25 2014-10-02 Marvell Word Trade Ltd. Hardware acceleration for routing programs
EP4054156B1 (en) * 2016-04-26 2024-01-17 Umbra Technologies Ltd. Data beacon pulsers powered by information slingshot
CN111263012B (zh) * 2020-01-17 2021-08-27 西安迪科数金智能科技有限公司 一种数字无中心呼叫系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002204250A (ja) * 2000-12-28 2002-07-19 Fujitsu Ltd トラフィック情報収集装置およびトラフィック情報収集方法
US20020150041A1 (en) * 2001-03-07 2002-10-17 Onetier Communications, Inc. Method and system for providing an improved quality of service for data transportation over the internet
JP2005020217A (ja) * 2003-06-25 2005-01-20 Sony Ericsson Mobilecommunications Japan Inc 携帯無線端末
US20100260191A1 (en) * 2009-04-14 2010-10-14 Skype Limited Optimising communications

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2181206C (en) * 1995-07-24 2001-03-13 Anwar Elwalid A method for admission control and routing by allocating network resources in network nodes
WO2002069580A1 (en) * 2001-02-28 2002-09-06 Measure Technology Ireland Limited Method and system for bandwidth estimation
JP2003244235A (ja) 2002-02-13 2003-08-29 Fujitsu I-Network Systems Ltd 品質監視方式およびそれに用いるVoP電話機
JP2004080483A (ja) 2002-08-20 2004-03-11 Ntt Communications Kk VoIP用アダプタ
US7591017B2 (en) 2003-06-24 2009-09-15 Nokia Inc. Apparatus, and method for implementing remote client integrity verification
US8484348B2 (en) * 2004-03-05 2013-07-09 Rockstar Consortium Us Lp Method and apparatus for facilitating fulfillment of web-service requests on a communication network
JP2007060189A (ja) 2005-08-24 2007-03-08 Softbank Mobile Corp 通信品質測定方法、移動通信端末装置、サーバシステム、通信品質測定システム及びアプリケーションプログラム
US7652990B2 (en) * 2005-11-29 2010-01-26 Alcatel-Lucent Usa Inc. Method and apparatus for providing quality of service level in broadband communications systems
CN101188509B (zh) 2006-11-15 2011-10-05 富士通株式会社 一种为网络服务提供服务质量保证的方法、系统
US8374102B2 (en) * 2007-10-02 2013-02-12 Tellabs Communications Canada, Ltd. Intelligent collection and management of flow statistics
US8346781B1 (en) * 2010-10-18 2013-01-01 Jayson Holliewood Cornelius Dynamic content distribution system and methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002204250A (ja) * 2000-12-28 2002-07-19 Fujitsu Ltd トラフィック情報収集装置およびトラフィック情報収集方法
US20020150041A1 (en) * 2001-03-07 2002-10-17 Onetier Communications, Inc. Method and system for providing an improved quality of service for data transportation over the internet
JP2005020217A (ja) * 2003-06-25 2005-01-20 Sony Ericsson Mobilecommunications Japan Inc 携帯無線端末
US20100260191A1 (en) * 2009-04-14 2010-10-14 Skype Limited Optimising communications

Also Published As

Publication number Publication date
JP2014513501A (ja) 2014-05-29
CN103503373A (zh) 2014-01-08
WO2012152671A1 (en) 2012-11-15
US20120281560A1 (en) 2012-11-08
EP2695329A1 (en) 2014-02-12
US9426041B2 (en) 2016-08-23
CN103503373B (zh) 2017-04-26
JP6067682B2 (ja) 2017-01-25
KR101983404B1 (ko) 2019-05-29
EP2695329B1 (en) 2018-08-01

Similar Documents

Publication Publication Date Title
Masip-Bruin et al. Research challenges in QoS routing
KR101691250B1 (ko) 서비스 품질(qos) 기반 시스템, 네트워크 및 조언자
US8072901B1 (en) Technique for efficient probing to verify policy conformance
US7619982B2 (en) Active probe path management
US8289979B2 (en) Optimising communications
CN109309621A (zh) 基于服务级别协议选择下一跳的方法和网络设备
EP2420028B1 (en) Optimising communications
De Rango et al. A new distributed application and network layer protocol for voip in mobile ad hoc networks
US20050207349A1 (en) System and method for measuring quality of communication
US20070019544A1 (en) Tandem call admission control by proxy for use with non-hop-by-hop VolP signaling protocols
JP2010233126A (ja) 経路選択方法及び経路選択システム並びにそれに用いるルータ
CN111771359B (zh) 用于连接通信网络的方法和系统
KR101983404B1 (ko) 통신 시스템 및 방법
CN101562569A (zh) 转发节点选取方法和装置
Feamster et al. Network-wide BGP route prediction for traffic engineering
Kunavut et al. Generalized Multi-Constrained Path (G_MCP) QoS Routing Algorithm for Mobile Ad hoc Networks.
Al Farizky Routing protocol RIPng, OSPFv3, and EIGRP on IPv6 for video streaming services
Kawahara et al. A method of constructing QoS overlay network and its evaluation
Poderys et al. Evaluating application-layer traffic optimization cost metrics for P2P multimedia streaming
Tavakoli Exploring a centralized/distributed hybrid routing protocol for low power wireless networks and large-scale datacenters
Swinnen et al. An evaluation of bgp-based traffic engineering techniques
Bertholdo et al. On the Asymmetry of Internet eXchange Points-Why Should IXPs and CDNs Care?
Mahfooz et al. Analysis of the Routing Protocols in Real Time Transmission: A Comparative Study
Zhang et al. A topology and application‐aware relay path allocation scheme in multipath transport system based on application‐level relay
Nguyen Strategic path diversity management across internet layers

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant