KR20150131337A - 네트워크 트래픽 매핑 및 성능 분석 - Google Patents

네트워크 트래픽 매핑 및 성능 분석 Download PDF

Info

Publication number
KR20150131337A
KR20150131337A KR1020157029805A KR20157029805A KR20150131337A KR 20150131337 A KR20150131337 A KR 20150131337A KR 1020157029805 A KR1020157029805 A KR 1020157029805A KR 20157029805 A KR20157029805 A KR 20157029805A KR 20150131337 A KR20150131337 A KR 20150131337A
Authority
KR
South Korea
Prior art keywords
network
overlay network
client
data
host
Prior art date
Application number
KR1020157029805A
Other languages
English (en)
Other versions
KR101755390B1 (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 KR20150131337A publication Critical patent/KR20150131337A/ko
Application granted granted Critical
Publication of KR101755390B1 publication Critical patent/KR101755390B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV

Landscapes

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

Abstract

오버레이 네트워크 분석 방법은 이에 제한되지는 않으나 오버레이 네트워크 상의 클라이언트 패킷 트래픽 데이터를 포함하는 데이터를 획득하고, 오버레이 네트워크 및/또는 오버레이 네트워크가 구현되는 네트워크 기판에 대한 토폴로지 및/또는 성능 정보를 생성 및 출력하기 위해 획득된 데이터에 기초하여 하나 이상의 분석을 수행한다. 특정한 클라이언트 자원 인스턴스들에 대해 수집되는 클라이언트 트래픽 데이터는 인스턴스들 간 오버레이 네트워크에 대한 성능 메트릭들을 생성하기 위해 분석될 수 있다. 특정한 클라이언트들에 대해 종합된 클라이언트 트래픽 데이터는 또한 오버레이 네트워크 상의 클라이언트들의 사설 네트워크 구현들의 매핑들뿐만 아니라, 오버레이 네트워크 상의 클라이언트들의 사설 네트워크들에 대한 성능 메트릭들을 생성하기 위해 분석될 수 있다. 또한, 다수의 클라이언트로부터의 클라이언트 트래픽 데이터는 오버레이 네트워크에 대한 매핑들 및 성능 메트릭들을 전체로서 생성하기 위해 종합되고 분석될 수 있다.

Description

네트워크 트래픽 매핑 및 성능 분석{NETWORK TRAFFIC MAPPING AND PERFORMANCE ANALYSIS}
많은 회사들 및 다른 조직들은 이를테면, 같은 장소에 배치되거나(예를 들어, 로컬 네트워크의 부분으로서) 또는 대신에 다수의 별개의 지리적 위치들(예를 들어, 하나 이상의 사설 또는 공중 매개체 네트워크들을 통해 연결된)에 배치된 컴퓨팅 시스템들과, 그것들의 동작들을 지원하기 위한 다수의 컴퓨팅 시스템들을 상호연결하는 컴퓨터 네트워크들을 운영한다. 예를 들어, 상당한 수의 상호연결된 컴퓨팅 시스템을 내장하는 데이터 센터들은 범용, 이를테면 단일 조직에 의해 그리고 단일 조직을 대신하여 작동되는 사설 데이터 센터들, 및 고객들 또는 클라이언트들에 컴퓨팅 자원들을 제공하기 위해 비지니스들로서 엔티티들에 의해 작동되는 공중 데이터 센터들이 되어 왔다. 몇몇 공중 데이터 센터 운영자들은 다양한 클라이언트들에 의해 소유되는 하드웨어에 네트워크 액세스, 전력, 및 보안 설치 시설들을 제공하는 한편, 다른 공중 데이터 센터 운영자들은 또한 그들의 클라이언트들에 의해 사용하기 위해 이용 가능하게 만들어진 하드웨어 자원들을 포함하는 "풀 서비스(full service)" 시설들을 제공한다. 그러나, 전형적인 데이터 센터의 규모 및 범위가 증가됨에 따라, 물리 컴퓨팅 자원들을 프로비저닝, 관리, 매니징하는 작업들이 점점 더 복잡해져 왔다.
상품 하드웨어에 대한 가상화 기술들의 도래는 다양한 컴퓨팅 자원들이 다수의 클라이언트에 의해 효율적으로 그리고 안전하게 공유되는 것을 허용하면서, 다양한 요구들을 갖는 많은 클라이언트에게 대규모 컴퓨팅 자원들을 매니징하는 것에 대한 혜택들을 제공해 왔다. 예를 들어, 가상화 기술들은 각 사용자에게 단일의 물리 컴퓨팅 기계에 의해 호스팅되는 하나 이상의 가상 기계들을 제공함으로써 단일의 물리 컴퓨팅 기계가 다수의 사용자 사이에서 공유되는 것을 허용할 수 있으며, 그러한 각 가상 기계는 사용자들에게 그들이 소정의 하드웨어 컴퓨팅 자원의 유일한 운영자들 및 관리자들이라는 착각을 제공하는 별개의 논리 컴퓨팅 시스템으로서 동작하는 한편, 또한 다양한 가상 기계들 사이에서 애플리케이션 분리 및 보안을 제공하는 소프트웨어 시뮬레이션이다. 게다가, 몇몇 가상화 기술은 둘 이상의 물리 자원에 걸치는 가상 자원들, 이를테면 다수의 별개의 물리 컴퓨팅 시스템에 걸치는 다수의 가상 프로세서를 갖는 단일 가상 기계를 제공할 수 있다.
다른 예로서, 가상화 기술들은 각 사용자에게 다수의 데이터 저장 디바이스에 걸쳐 분산될 수 있는 가상화된 데이터 저장소를 제공함으로써 데이터 저장 하드웨어가 다수의 사용자 사이에서 공유되는 것을 허용할 수 있으며, 그러한 각 가상화된 데이터 저장소는 사용자들에게 그들이 데이터 저장 자원의 유일한 운영자들 및 관리자들이라는 착각을 제공하는 별개의 논리 데이터 저장소로서 동작한다.
도 1은 적어도 몇몇 실시예에 따른, 오버레이 네트워크 분석 방법의 상위-레벨 흐름도이다.
도 2는 적어도 몇몇 실시예에 따라, 도 1에 예시된 바와 같은 오버레이 네트워크 분석 방법에서의 데이터 흐름 및 오버레이 네트워크 분석 방법의 동작들을 예시하는 상위-레벨 블록도이다.
도 3은 적어도 몇몇 실시예에 따른, 제공자 네트워크 환경에서의 예시적인 오버레이 네트워크 분석 서비스를 예시한다.
도 4는 적어도 몇몇 실시예에 따라, 클라이언트 자원 인스턴스들 간 특정한 터널 또는 루트에 대해 성능 데이터를 획득하는 것 및 분석하는 것을 예시한다.
도 5a 내지 도 5c는 적어도 몇몇 실시예에 따른, 예시적인 오버레이 네트워크 데이터 패킷 및 예시적인 오버레이 네트워크 확인 응답 패킷들을 예시한다.
도 6은 적어도 몇몇 실시예에 따라, 클라이언트의 오버레이 네트워크 트래픽에 따라 오버레이 네트워크 상의 클라이언트의 사설 네트워크 구현에 대한 성능을 분석하기 위한 방법의 흐름도이다.
도 7은 적어도 몇몇 실시예에 따라, 총 클라이언트 네트워크 트래픽에 따라 오버레이 네트워크의 성능을 매핑하는 것 및 분석하는 것을 위한 방법의 흐름도이다.
도 8a 내지 도 8d는 적어도 몇몇 실시예에 따른, 오버레이 네트워크 분석 방법에 대한 예시적인 출력들을 예시한다.
도 9는 적어도 몇몇 실시예에 따른, 예시적인 제공자 네트워크 환경을 예시한다.
도 10은 몇몇 실시예에 따라, IP 터널링 기술을 사용하여 네트워크 기판 상에서 오버레이 네트워크를 구현하는 예시적인 데이터 센터를 예시한다.
도 11은 적어도 몇몇 실시예에 따라, 클라이언트들에 저장 가상화 서비스 및 하드웨어 가상화 서비스를 제공하는 예시적인 제공자 네트워크의 블록도이다.
도 12는 적어도 몇몇 실시예에 따라, 적어도 몇몇 클라이언트에 가상화된 사설 네트워크들을 제공하는 예시적인 제공자 네트워크를 예시한다.
도 13은 몇몇 실시예에서 사용될 수 있는 예시적인 컴퓨터 시스템을 예시하는 블록도이다.
실시예들이 몇몇 실시예 및 예시적인 도면들에 대한 예로서 본 출원에 설명되지만, 당해 기술분야의 통상의 기술자들은 실시예들이 설명된 실시예들 또는 도면들에 제한되지 않는다는 것을 인식할 것이다. 도면들 및 그것들에 대한 상세한 설명이 실시예들을 개시된 특정한 형태로 제한하는 것으로 의도되지 않으나, 이와 반대로, 첨부된 청구항들에 의해 정의된 바와 같은 사상 및 범위 내에 들어가는 모든 변형물들, 등가물들, 및 대안물들을 망라하도록 의도된다는 것이 이해되어야 한다. 본 출원에 사용된 머릿말들은 본 설명 또는 청구항들의 범위를 제한하는 것으로 사용되도록 의도되지 않으며 단지 구조상의 목적들을 위함이다. 본 출원 전체에 걸쳐 사용될 바와 같이, 단어 "할 수 있다"는 필수적 의미(즉, 해야한다의 의미)가 아니라, 관대한 의미(즉, 가능성을 갖는 의미)로 사용된다. 이와 유사하게, 단어들 "포함한다", "포함하는", 및 "포함하다"는 이에 제한되지 않으나, 포함하는 것을 의미한다.
네트워크 트래픽 매핑 및 성능 분석을 위한 방법들 및 장치의 다양한 실시예들이 설명된다. 구체적으로, 이에 제한되지는 않으나 오버레이 네트워크 상의 클라이언트 패킷 트래픽 데이터를 포함하는 데이터를 획득하고, 오버레이 네트워크 및/또는 오버레이 네트워크가 구현되는 네트워크 기판에 대한 토폴로지 및/또는 성능 정보를 생성 및 출력하기 위해 획득된 데이터에 기초하여 하나 이상의 분석들을 수행하는 오버레이 네트워크 분석 방법의 실시예들이 설명된다. 특정한 클라이언트 자원 인스턴스들에 대해 수집되는 클라이언트 트래픽 데이터는 인스턴스들 간 오버레이 네트워크에 대한 성능 메트릭들을 생성하기 위해 분석될 수 있다. 특정한 클라이언트들에 대해 종합된 클라이언트 트래픽 데이터는 또한 오버레이 네트워크 상의 클라이언트들의 사설 네트워크 구현들의 매핑들뿐만 아니라, 오버레이 네트워크 상의 클라이언트들의 사설 네트워크들에 대한 성능 메트릭들을 생성하기 위해 분석될 수 있다. 또한, 다수의 클라이언트로부터의 클라이언트 트래픽 데이터는 오버레이 네트워크에 대한 매핑들 및 성능 메트릭들을 생성하기 위해 종합되고 분석될 수 있다.
오버레이 네트워크 분석 방법의 실시예들은 오버레이 네트워크 분석 모듈로서 또는 오버레이 네트워크 분석 모듈에서 구현될 수 있다. 오버레이 네트워크 분석 모듈은 네트워크 환경 내 하나 이상의 컴퓨팅 시스템 상에서 또는 하나 이상의 컴퓨팅 시스템에 의해 예를 들어 도 3에서 예시된 바와 같은 서비스 제공자의 제공자 네트워크 환경에서 오버레이 네트워크 분석 서비스에 의해, 구현될 수 있다. 오버레이 네트워크 분석 모듈 및/또는 오버레이 네트워크 분석 서비스의 실시예들이 구현될 수 있는 예시적인 컴퓨터 시스템이 도 13에 예시된다.
오버레이 네트워크 분석 방법들 및 장치의 실시예들은 일반적으로 서비스 제공자의 제공자 네트워크 상에서 구현되는 가상화된 자원들(예를 들어, 가상화된 컴퓨팅 및 저장 자원들)을 인터넷과 같은, 매개체 네트워크를 통해, 클라이언트들에 제공하는 서비스 제공자의 맥락에서 본 출원에 설명된다. 도 9 내지 도 12 및 예시적인 제공자 네트워크 환경들 이라는 제목의 섹션은 본 출원에 설명된 바와 같은 방법들 및 장치의 실시예들이 구현될 수 있는 예시적인 환경들을 예시하고 설명하며, 제한하는 것으로 의도되지 않는다. 적어도 몇몇 실시예에서, 제공자 네트워크를 통해 서비스 제공자의 클라이언트들에 제공되는 자원들 중 적어도 일부가 다른 클라이언트(들)와 공유되는 멀티-테넌트 하드웨어 상에서 및/또는 특정한 클라이언트 전용 하드웨어 상에서 구현되는 자원들을 컴퓨팅하여 가상화될 수 있다. 각 가상화된 컴퓨팅 자원은 자원 인스턴스로서 지칭될 수 있다. 자원 인스턴스들은 예를 들어, 서비스 제공자의 클라이언트들에 렌트되거나 리스될 수 있다. 예를 들어, 서비스 제공자의 클라이언트들은 자원 인스턴스들을 획득 및 구성하기 위한 그리고 자원 인스턴스들을 포함하는 가상 네트워크 구성들, 예를 들어 도 12에 예시된 바와 같은 가상화된 사설 네트워크 구성들을 설정 및 관리하기 위한 서비스들에 대한 API들을 통해 제공자 네트워크의 하나 이상의 서비스에 액세스할 수 있다.
자원 인스턴스들은 예를 들어, 다수의 운영 시스템이 호스트 컴퓨터 상에서 동시에, 즉 호스트들 상의 가상 기계들(VM들)로서 실행하는 것을 가능하게 하는 하드웨어 가상화 기술에 따라 구현될 수 있다. 호스트 상의, 하이퍼바이저, 또는 가상의 기계 모니터(VMM; virtual machine monitor)는 가상 플랫폼을 갖는 호스트 상의 VM들을 나타내고 VM들의 실행을 모니터링한다. 각 VM은 하나 이상의 사설 IP 어드레스를 구비할 수 있고; 호스트 상의 VMM은 호스트 상의 VM들의 사설 IP 어드레스들을 인식할 수 있다. 하드웨어 가상화 기술에 대한 추가 정보를 위해, 도 10을 참조하자.
VMM들은 제공자 네트워크들 내 상이한 호스트들 상의 클라이언트 자원 인스턴스들 간 네트워크 기판을 통해 클라이언트 데이터 패킷들을 캡슐화 및 라우팅하기 위한 인터넷 프로토콜(IP) 터널링 기술을 사용할 수 있다. 제공자 네트워크는 라우터들, 스위치들, 네트워크 어드레스 변환기들(NAT들; network address translators) 등과 같은 네트워킹 디바이스들뿐만 아니라, 디바이스들 간 물리 연결들을 포함하는 물리 네트워크 기판을 포함할 수 있다. 제공자 네트워크는 캡슐화된 패킷들(즉, 이에 제한되지는 않으나 오버레이 네트워크를 통해 라우팅하기 위한 오버레이 네트워크 어드레스 정보를 포함하는 오버레이 네트워크 메타데이터로 태깅된 클라이언트 패킷들)이 터널들 또는 오버레이 네트워크 루트들을 통해 네트워크 기판을 통과할 수 있는 오버레이 네트워크를 제공하기 위한 IP 터널링 기술을 채용할 수 있다. IP 터널링 기술은 네트워크 기판 상에서 오버레이 네트워크를 생성하기 위한 매핑 및 캡슐화 시스템을 제공할 수 있고, 오버레이 네트워크 계층(공중 IP 어드레스들) 및 네트워크 기판 계층(사설 IP 어드레스들)에 개별 명칭 공간을 제공할 수 있다. 적어도 몇몇 실시예에서, 오버레이 네트워크 계층에서의 캡슐화된 패킷들은 어떤 것이 그것들의 터널 기판 타겟(사설 IP 어드레스)이 되어야 하는지를 결정하기 위해 매핑 디렉토리와 비교하여 체크될 수 있다. IP 터널링 기술은 물리 네트워크 기판 상에 오버레이되는 가상 네트워크 토폴로지를 제공하고; 클라이언트들에 제공되는 인터페이스들(예를 들어, 서비스 API들)은 클라이언트 자원 인스턴스가 패킷들이 송신되어야 할 IP 어드레스를 제공할 때, IP 어드레스가 IP 오버레이 어드레스들이 어디 있는지를 결정할 수 있는 매핑 서비스와 통신함으로써 가상 공간에서 실행하도록 오버레이 네트워크에 연결된다. 오버레이 네트워크 기술에 대한 추가 정보를 위해, 도 10을 참조하자.
호스트들 상의 클라이언트 자원 인스턴스들은 전송 제어 프로토콜(TCP)과 같은 네트워크 연결 상태를 추적할 수 있는 프로토콜들에 따라 그리고/또는 유저 데이터그램 프로토콜(UDP)와 같은 네트워크 연결 상태를 추적할 수 없는 프로토콜들에 따라 동일한 호스트 또는 상이한 호스트들 상의 다른 클라이언트 자원 인스턴스들과 통신할 수 있다. 그러나, 클라이언트 패킷들은 송신 VMM에 의해 오버레이 네트워크 프로토콜에 따라 캡슐화되고 수신 VMM에 의해 캡슐화 해제된다. 호스트 상의 VMM은 호스트 상의 다른 클라이언트 자원 인스턴스로부터 그리고 다른 클라이언트 자원 인스턴스의 IP 어드레스로 타겟팅되는 클라이언트 패킷(예를 들어, TCP 또는 UDP 패킷)을 수신 시, 오버레이 네트워크 (또는 IP 터널링) 프로토콜에 따라 클라이언트 패킷을 캡슐화 또는 태깅하고 캡슐화된 패킷을 전달을 위한 오버레이 네트워크 상으로 송신한다. 그 후 캡슐화된 패킷은 IP 터널링 기술에 따라 오버레이 네트워크를 통해 다른 VMM으로 라우팅될 수 있다. 다른 VMM은 패킷으로부터 오버레이 네트워크 캡슐화를 분해하고 타겟 클라이언트 자원 인스턴스를 구현하는 호스트 상의 적절한 VM에 클라이언트 패킷(예를 들어, TCP 또는 UDP 패킷)을 전달한다.
종래, 오버레이 네트워크는 비연결형(또는 네트워크 연결 상태를 추적할 수 없는) IP 프로토콜에 따라 구현되는 네트워크 연결 상태를 추적할 수 없는 네트워크이다. 송신 VMM은 라우팅 및 전달을 위한 오버레이 네트워크 상으로 캡슐화된 패킷을 송신하나, 확인 응답(ACK) 또는 패킷의 전달에 관한 다른 응답을 수신하지는 않는다.
오버레이 네트워크 분석 방법
오버레이 네트워크 분석 방법의 적어도 몇몇 실시예에서, 성능 통계들 및 다른 목적들을 위한 오버레이 네트워크 트래픽의 모니터링 및 분석을 가능하게 하기 위해, 오버레이 네트워크 프로토콜은 오버레이 네트워크 프로토콜 패킷 정보에 추가적인 정보(예를 들어, 확인 응답 플래그들, 타임스탬프들, 패킷 시퀀스 번호들 등)를 포함하도록 확장될 수 있다. 또한, 오버레이 네트워크 프로토콜은 VMM들에 의해 수신된 네트워크 패킷들의 확인 응답을 가능하게 하도록 확장될 수 있다. 그리하여, VMM이 하나 이상의 오버레이 네트워크 패킷을 오버레이 네트워크 상으로 송신할 후, VMM은 오버레이 네트워크 패킷(들)의 수신에 응답하여 확인 응답 메시지 또는 다른 VMM으로부터의 메시지들을 수신할 수 있다. 몇몇 실시예에서, 각 오버레이 네트워크 패킷은 확인 응답 메시지를 생성할 수 있다. 대안적으로, 단지 매 N번째 오버레이 네트워크 패킷이 확인 응답 메시지를 생성할 수 있다. 적어도 몇몇 실시예에 따른, 예시적인 오버레이 네트워크 데이터 패킷 및 예시적인 오버레이 네트워크 확인 응답 패킷들에 대한 도 5a 내지 도 5c를 참조하자. 확장된 오버레이 네트워크 프로토콜은 이로부터 평균 왕복 시간, 레이턴시, 스루풋, 및 패킷 드롭 레이트와 같은 성능 메트릭들이 VMM들 간 특정한 터널들 또는 오버레이 네트워크 루트들에 대해 결정될 수 있는, 패킷들에 대한 횡단 시간(예를 들어, 왕복 시간 또는 단-방향 횡단 시간)과 같은 성능 데이터가 결정되고 수집되는 것을 가능하게 할 수 있다. 다수의 VMM으로부터의 종합된 데이터는 클라이언트 사설 네트워크 레벨에서의 그리고/또는 오버레이 네트워크에 대한 성능 통계들, 매핑, 및/또는 다른 정보를 결정하기 위해 분석될 수 있다. 적어도 몇몇 실시예에서, 네트워크 기판에 대한 토폴로지 정보와 마찬가지로, 다수의 클라이언트로부터의 종합된 데이터는 오버레이 네트워크 상의 문제들이 발생하는 네트워크 기판 상의 위치들 또는 특정한 컴포넌트들을 결정하기 위해 분석될 수 있다. 적어도 몇몇 실시예에서, 시간 동기화 기법 또는 기술은 왕복 시간, 스루풋, 및 레이턴시와 같은 시간 기반 데이터 및 메트릭들이 정확하게 산출될 수 있도록 VMM들을 구현하는 호스트 디바이스들 사이에서 시간을 동기화하는데 사용될 수 있다.
도 1은 적어도 몇몇 실시예에 따른, 오버레이 네트워크 분석 방법의 상위-레벨 흐름도이다. 100으로 표시된 바와 같이, 오버레이 네트워크 상의 클라이언트 자원 인스턴스들 간 패킷 트래픽에 기초한 오버레이 네트워크 성능과 관련 있는 데이터가 예를 들어 제공자 네트워크에서의 호스트 디바이스들 상의 가상 기계 모니터들(VMM들)로부터 획득될 수 있다. VMM들은 확장된 오버레이 네트워크 프로토콜에 따라 획득되는 데이터를 수집하고 주기적으로 또는 비주기적으로 수집된 데이터를 오버레이 네트워크 분석 컴포넌트에 제공할 수 있다. 102로 표시된 바와 같이, 획득된 데이터는 오버레이 네트워크에 대한 성능 통계들, 매핑, 및 다른 정보를 결정하기 위해 분석될 수 있다. 결정된 정보는 특정한 클라이언트 자원 인스턴스에 대해 수집되는 데이터에 기초한 자원 인스턴스/터널 레벨에서의 정보, 클라이언트에 특유한 다수의 클라이언트 인스턴스/터널들에 대해 수집되는 데이터에 기초한 클라이언트 레벨에서의 정보, 및/또는 다수의 클라이언트의 다수의 클라이언트 자원 인스턴스들/터널들에 대해 수집되는 데이터에 기초한 오버레이 네트워크에 대한 종합 레벨에서의 정보를 포함할 수 있다. 104로 표시된 바와 같이, 결정된 정보를 표시하는 출력이 제공될 수 있다. 출력은 클라이언트 자원 인스턴스 레벨에서의, 클라이언트 레벨에서의 및/또는 오버레이 네트워크에 대한 종합 레벨에서의 성능 통계들 및/또는 매핑 출력을 포함할 수 있다. 도 1에 예시된 바와 같은 방법의 요소들은 도 2 내지 도 13와 관련하여 아래에서 더 설명된다.
도 2는 적어도 몇몇 실시예에 따라, 도 1에 예시된 바와 같은 오버레이 네트워크 분석 방법에서의 데이터 흐름 및 오버레이 네트워크 분석 방법의 동작들을 예시하는 상위-레벨 블록도이다. 오버레이 네트워크 데이터 수집 컴포넌트(200) 및 오버레이 네트워크 분석 컴포넌트(202)는 제공자 네트워크 상에서, 제공자 네트워크 상의 예를 들어 하나 이상의 서버 시스템 상에서 구현될 수 있다. 오버레이 네트워크 데이터 수집 컴포넌트(200)는 오버레이 네트워크 상의 하나 이상의 소스들로부터 오버레이 네트워크 클라이언트 트래픽 데이터 흐름과 관련 있는 데이터를 획득할 수 있다. 예를 들어, 적어도 몇몇 실시예에서, 제공자 네트워크에서의 호스트 디바이스들 상의 가상 기계 모니터들(VMM들)은 각각 VMM에서의 가상 기계들(VM들)에 대응하는 클라이언트 자원 인스턴스들로부터 비롯되는 클라이언트 트래픽에 대한 오버레이 네트워크 터널(또는 루트) 트래픽 데이터를 수집하고 주기적으로 또는 비주기적으로 수집된 데이터를 오버레이 네트워크 데이터 수집 컴포넌트(200)에 제공할 수 있다. VMM에 의해 데이터 수집 컴포넌트(200)에 제공되는 터널 트래픽 데이터는 각 터널에 대한 패킷 레벨에 있을 수 있거나, 대안적으로 각 터널에 대한 다수의 패킷에 대한 요약 데이터일 수 있다. 또한, VMM에 의해 데이터 수집 컴포넌트(200)에 제공되는 터널 트래픽 데이터는 특정한 클라이언트의 자원 인스턴스들에 특유한 데이터일 수 있거나, 다수의 클라이언트의 자원 인스턴스들에 대해 수집되는 종합 데이터일 수 있다. 터널 트래픽 데이터는 이에 제한되지는 않으나, 특정한 클라이언트들 및/또는 패킷들의 소스들 또는 패킷들에 대한 타겟들인 특정한 클라이언트 자원 인스턴스들을 식별하는 정보와 같은 정보, 및 왕복 시간 및 드롭된 패킷들의 표시들과 같은 성능 정보 또는 메트릭들을 식별하는 것을 포함할 수 있다.
그리하여 오버레이 네트워크 데이터 수집 컴포넌트(200)는 제공자 네트워크 상의 각 VMM으로부터 오버레이 네트워크 터널들 또는 루트들 상의 오버레이 네트워크 클라이언트 트래픽 데이터 흐름과 관련 있는 데이터를 획득할 수 있다. 각 VMM으로부터 획득되는 데이터는 VMM에서의 하나, 둘, 또는 그 이상의 클라이언트 자원 인스턴스들에 대해 수집되는 데이터를 포함할 수 있다. 소정의 클라이언트 자원 인스턴스에 대응하는 데이터는 이를 통해 클라이언트 자원 인스턴스에서 비롯되는 클라이언트 데이터가 다른 VMM에서의 다른 클라이언트 자원 인스턴스로 송신되는 각각의 VMM에서 비롯되는 하나 이상의 오버레이 네트워크 터널들에 대해 수집되는 데이터를 포함할 수 있다. 또한, 클라이언트 자원 인스턴스들은 다른 클라이언트(들)과 공유되는 멀티-테넌트 하드웨어(호스트 디바이스들 또는 시스템들) 상에서 구현될 수 있고, 그리하여 각 VMM으로부터 획득되는 데이터는 필수적으로는 아니나, 각각의 호스트 디바이스 상에서 구현되는 클라이언트 자원 인스턴스들을 가지는 제공자 네트워크의 둘 이상의 상이한 클라이언트에 대해 수집되는 데이터를 포함한다.
오버레이 네트워크 분석 컴포넌트(202)는 오버레이 네트워크 데이터 수집 컴포넌트(200)에 의해 VMM들로부터 수집되는 패킷-레벨, 터널-레벨, 또는 요약 데이터를 획득할 수 있다. 적어도 몇몇 실시예에서, 데이터 수집 컴포넌트(200)는 분석 컴포넌트(202)에 직접 수집된 데이터를 공급할 수 있다. 대안적으로, 수집된 데이터는 데이터 수집 컴포넌트(200)에 의해 이로부터 분석 컴포넌트(202)가 데이터에 액세스할 수 있는 메모리 또는 데이터 저장소에 저장될 수 있다. 적어도 몇몇 실시예에서, 분석 컴포넌트(202)는 특정한 자원 인스턴스에 또는 특정한 클라이언트의 자원 인스턴스들에 특유한 데이터를 획득하거나, 둘 이상의, 또는 모든 클라이언트의 자원 인스턴스들에 대응하는 데이터를 종합할 수 있다.
적어도 몇몇 실시예에서, 오버레이 네트워크 분석 컴포넌트(202)는 또한 하나 이상의 소스로부터 네트워크 기판 토폴로지 정보를 획득할 수 있다. 네트워크 기판 토폴로지 정보는 예를 들어 사용자 입력 및/또는 다른 소스들(예를 들어, 텍스트 또는 그래픽 파일 입력)을 통해 획득될 수 있다. 네트워크 기판 토폴로지 정보는 예를 들어, 네트워크 기판의 물리 구성 또는 레이아웃뿐만 아니라, 각 컴포넌트에 대한 위치 정보와 함께 네트워크 기판의 특정한 컴포넌트들(케이블 스팬들(cable spans), 네트워킹 디바이스들 등)을 표시하는 정보를 표시할 수 있다.
분석 컴포넌트(202)는 오버레이 네트워크 매핑 및/또는 성능 정보(204)를 생성하기 위해 데이터 수집 컴포넌트로부터 획득되는 데이터를 주기적으로 분석할 수 있다. 적어도 몇몇 실시예에서, 분석은 클라이언트 레벨에서 또는 종합(멀티-클라이언트) 레벨에서 수행될 수 있다. 클라이언트-레벨 분석은 예를 들어 도 4 및 도 12에 예시된 바와 같은 클라이언트의 가상화된 사설 네트워크에 대해, 클라이언트의 제공자 네트워크 구현에 특유한 성능, 동작, 및/또는 다른 정보를 생성하기 위해 특정한 클라이언트의 자원 인스턴스들에 특유한 데이터에 따라 수행될 수 있다. 몇몇 실시예에서, 분석은 또한 클라이언트의 제공자 네트워크 구현에서의 특정한 클라이언트 자원 인스턴스들 간 특정한 오버레이 네트워크 터널 또는 터널들에 특유한 성능, 동작, 및/또는 다른 정보를 생성하기 위해 클라이언트 자원 인스턴스들 레벨에서 수행될 수 있다.
종합 분석은 오버레이 네트워크에 대한 성능, 동작, 네트워크 매핑, 및/또는 다른 정보를 생성하기 위해 둘 이상의 클라이언트들의 자원 인스턴스들에 대응하는 종합 데이터에 따라 수행될 수 있다. 또한, 종합 분석은 또한 가상화된 오버레이 네트워크가 구현되는 물리 네트워크 기판의 컴포넌트들에 대한 성능 메트릭들을 결정하기 위해 수행될 수 있다. 후자의 경우에서, 오버레이 네트워크 분석 컴포넌트(202)는 네트워크 기판에서의 문제 지점들, 예를 들어 오버레이 네트워크 상에서 지연들을 야기하고/하거나 드롭된 패킷들을 초래하고 있는 네트워크 컴포넌트들(라우터들, 스위치들, 케이블들 등)의 위치를 찾기 위해 네트워크 기판 토폴로지 정보와 함께 다수의 클라이언트와 연관된 다수의 터널로부터의 종합 데이터를 사용할 수 있다.
적어도 몇몇 실시예에서, 오버레이 네트워크 분석 컴포넌트(202)에 의해 생성되는 클라이언트-레벨 오버레이 네트워크 매핑 및/또는 성능 정보(204)는 예를 들어 도 3에 예시된 바와 같은 오버레이 네트워크 분석 서비스(320)에 의해 제공되는 하나 이상의 API를 통해, 각각의 클라이언트들에 제공될 수 있다. 예로서, 제공자 네트워크 상의 특정한 클라이언트의 사설 네트워크 구현에 대한 클라이언트-레벨 정보(204)는 클라이언트의 에이전트(들)에 의해 보기 위해, 클라이언트의 외부 네트워크 상의 디바이스, 예를 들어 도 11에 예시된 바와 같은 클라이언트 네트워크(1150) 상의 콘솔(1194)에 제공되고 디스플레이될 수 있다. 적어도 몇몇 실시예에서, 하나 이상의 클라이언트에 대한 클라이언트-레벨 정보(204)는 또한 제공자 네트워크 상의 디바이스들, 예를 들어 네트워크 관리 콘솔들을 통해 서비스 제공자의 에이전트들(예를 들어, 네트워크 관리자들 또는 기술자들)에 의해 액세스될 수 있다. 오버레이 네트워크 분석 컴포넌트(202)에 의해 생성되는 종합-레벨 오버레이 네트워크 매핑 및/또는 성능 정보(204)는 제공자 네트워크 상의 디바이스들, 예를 들어 네트워크 관리 콘솔들을 통해, 예를 들어 도 3에 예시된 바와 같은 오버레이 네트워크 분석 서비스(320)에 의해 제공되는 하나 이상의 API를 통해 서비스 제공자의 에이전트들(예를 들어, 네트워크 관리자들 또는 기술자들)에 제공될 수 있다. 몇몇 실시예에서, 종합-레벨(멀티-클라이언트) 정보는 개별적인 클라이언트들에 제공되지 않을 수 있다. 다른 실시예들에서, 적어도 몇몇 종합-레벨 정보는 적어도 몇몇 경우에서 예를 들어 서비스에 대한 API(들)를 통해, 클라이언트들에 액세스 가능하게 만들어질 수 있다.
적어도 몇몇 실시예에서, 오버레이 네트워크 정보(204)는 새롭게 분석된 클라이언트-특정 또는 종합 정보를 보고하기 위해 주기적으로 또는 비주기적으로 업데이트되는 동적 디스플레이들을 통해 제공될 수 있다. 대신에 또는 추가로, 오버레이 네트워크 정보(204)는 주기적인 또는 비주기적인 보고들로서 생성될 수 있거나, 서비스에 대한 API(들)를 통해 제공자 네트워크의 에이전트 또는 클라이언트의 에이전트의 요청으로 생성될 수 있다. 도 8a 내지 도 8d는 클라이언트-레벨 및 종합 보고들의 예들을 도시한다.
오버레이 네트워크 분석 서비스
적어도 몇몇 실시예에서, 본 출원에 설명된 바와 같은 오버레이 네트워크 트래픽 매핑 및 성능 분석은 서비스 제공자의 제공자 네트워크 환경의 오버레이 네트워크 분석 서비스에 의해 제공될 수 있다. 도 3은 적어도 몇몇 실시예에 따른, 제공자 네트워크 환경에서의 예시적인 오버레이 네트워크 분석 서비스를 예시한다. 예시적인 제공자 네트워크 환경들은 도 9 내지 도 12에 더 예시된다. 오버레이 네트워크 분석 서비스 또는 그것의 컴포넌트들이 구현될 수 있는 예시적인 컴퓨터 시스템이 도 13에 예시된다.
도 3을 참조하여, 각 가상 기계 모니터(VMM)(312)는 제공자 네트워크(300)에서의 각각의 호스트(310) 디바이스 상의 다수의 가상 기계(VM)를 모니터링한다. 클라이언트 자원 인스턴스들(314)은 VM마다 하나의 클라이언트 자원 인스턴스(314)를 갖는, VM들 상에서 구현될 수 있다. 호스트들(310)이 서비스 제공자의 둘 이상의 클라이언트에 의해 공유되는 멀티-테넌트 하드웨어일 수 있다는 것을 주의하자. 그리하여, 소정의 호스트(310)는 서비스 제공자의 둘 이상의 상이한 클라이언트에 대한 클라이언트 자원 인스턴스들(314)을 호스팅할 수 있고, 호스트(310) 상의 VMM(312)은 둘 이상의 상이한 클라이언트의 클라이언트 자원 인스턴스들(314)을 구현하는 VM들을 모니터링할 수 있다. VMM들(312)은 클라이언트 자원 인스턴스들(314) 및 네트워크 기판(302) 상의 오버레이 네트워크, 예를 들어 인터넷 프로토콜(IP) 터널링 기술에 따라 구현되는 오버레이 네트워크 간 중개자들로서 기능할 수 있다.
적어도 몇몇 실시예에서, 성능 통계들 및 다른 목적들을 위한 오버레이 네트워크 트래픽의 모니터링 및 분석을 가능하게 하기 위해, 오버레이 네트워크 프로토콜은 오버레이 네트워크 프로토콜 패킷 정보에 추가적인 정보(예를 들어, 확인 응답 플래그들, 타임스탬프들, 패킷 시퀀스 번호들 등)를 포함하도록 확장될 수 있다. 또한, 적어도 몇몇 실시예에서, 오버레이 네트워크 프로토콜은 VMM들(312)에 의해 수신된 오버레이 네트워크 패킷들의 확인 응답을 가능하게 하기 위해 확장될 수 있다. 확장된 오버레이 네트워크 프로토콜은 이로부터 평균 왕복 시간, 스루풋, 및 레이턴시와 같은 성능 메트릭들이 특정한 클라이언트 자원 인스턴스들(314) 간 터널들에 대해 결정될 수 있는, 패킷들에 대한 왕복 시간과 같은 성능 데이터가 결정되고 수집되는 것을 가능하게 할 수 있다. 다수의 VMM(312)으로부터의 종합된 데이터는 클라이언트 사설 네트워크 레벨에서의 그리고/또는 오버레이 네트워크에 대한 성능 통계들, 매핑, 및/또는 다른 정보를 결정하기 위해 분석될 수 있다. 적어도 몇몇 실시예에서, 네트워크 기판에 대한 토폴로지 정보와 마찬가지로, 다수의 클라이언트로부터의 종합된 데이터는 오버레이 네트워크 상의 문제들이 발생하는 네트워크 기판 상의 위치들 또는 특정한 컴포넌트들을 결정하기 위해 분석될 수 있다. 적어도 몇몇 실시예에서, 시간 동기화 기법 또는 기술은 왕복 시간, 스루풋, 및 레이턴시와 같은 시간 기반 메트릭들이 정확하게 산출될 수 있도록 VMM들(312)을 구현하는 호스트들(310) 사이에서 시간을 동기화하는데 사용될 수 있다.
VMM(312)은 호스트(310) 상의 하나 이상의 클라이언트 자원 인스턴스들(314)로부터 클라이언트 데이터 패킷들(예를 들어, TCP 또는 UDP 패킷들)을 수신할 수 있다. 예를 들어, VMM(312A)은 호스트(310A) 상의 자원 인스턴스(들)(314A)로부터 클라이언트 데이터 패킷들을 수신할 수 있다. 클라이언트 데이터 패킷들의 적어도 일부는 예를 들어 호스트(310B) 상의 자원 인스턴스들(314B) 및/또는 호스트(314C) 상의 자원 인스턴스들(314C)에 대해, 제공자 네트워크(300) 상의 다른 호스트들(310) 상에서 구현되는 다른 클라이언트 자원 인스턴스들(314)로 타겟팅될 수 있다. VMM(312)(예를 들어, VMM(312A))은 오버레이 네트워크 프로토콜에 따라 클라이언트 데이터 패킷들을 캡슐화하고, 확장된 정보(예를 들어, 타임스탬프들, 클라이언트 자원 인스턴스 식별자들, 패킷 시퀀스 번호들, 확인 응답 플래그들 등)를 포함하며, 타겟 클라이언트 자원 인스턴스들(314)(예를 들어, VMM들(314B 및 314C))을 모니터링하는 VMM들(312)에 전달하기 위해 오버레이 네트워크 데이터 패킷들을 오버레이 네트워크 상으로 송신한다. 적어도 몇몇 실시예에 따른, 오버레이 네트워크 데이터 패킷의 예에 대한 도 5a를 참조하자. 적어도 몇몇 실시예에서, IP 터널링 기술은 IP 오버레이 어드레스들(공중 IP 어드레스들)을 기판(302) IP 어드레스들(사설 IP 어드레스들)에 매핑시키기 위해 그리고 두 개의 명칭 공간 간 오버레이 네트워크 터널들(306)을 통해 라우팅하기 위한 IP 터널링(또는 오버레이 네트워크) 프로토콜에 따라 클라이언트 데이터 패킷들을 캡슐화 또는 태깅하기 위해 송신 VMM(312)에서 사용될 수 있다. 그 후 캡슐화된 클라이언트 데이터 패킷들은 네트워크 기판(302)을 통해 터널들(306)을 거쳐 정확한 종단점들(수신 VMM들(312))에 전달될 수 있다; 캡슐화는 수신 VMM들(312)에서 클라이언트 데이터 패킷들로부터 분해되고, 클라이언트 데이터 패킷들은 적절한 자원 인스턴스들(314)에 전달된다.
적어도 몇몇 실시예에서, 송신 VMM(312)(예를 들어, VMM(312A))은 또한 도 4에 예시된 바와 같이 오버레이 네트워크 상으로 송신되는 오버레이 네트워크 데이터 패킷들 중 일부 또는 전부에 대한, 예를 들어 송신된 패킷 로그에서의 정보를 지역적으로 기록할 수 있다. 송신된 패킷에 대해 기록된 정보는 이들에 제한되지는 않으나: 데이터 스트림/시퀀스 번호 정보와 같은, VMM(312)에 대한 패킷을 고유하게 식별하는 정보; 데이터 패킷이 송신된, 타임스탬프로 지칭되는 시간; 오버레이 네트워크 데이터 패킷으로 캡슐화되는 클라이언트 데이터 패킷을 만들어낸 VM, 클라이언트 및/또는 클라이언트 자원 인스턴스의 표시; 및 클라이언트 데이터 패킷의 타겟의 표시 중 하나 이상을 포함할 수 있다.
적어도 몇몇 실시예에서, 오버레이 네트워크 데이터 패킷들을 수신하는 하나 이상의 VMM(312)(예를 들어, VMM(312B 및 312C))은 각 수신된 패킷에 응답하여, 오버레이 네트워크를 통해 송신 VMM(312)(예를 들어, VMM(312A))에 확인 응답 메시지 또는 패킷을 리턴할 수 있다. 적어도 몇몇 실시예에 따른, 예시적인 오버레이 네트워크 확인 응답 패킷들에 대한 도 5b 및 도 5c를 참조하자. 확인 응답 패킷은 데이터 스트림/시퀀스 번호 식별자와 같은, 확인 응답되고 있는 오버레이 네트워크 데이터 패킷을 식별하는 정보를 포함할 수 있다. 적어도 몇몇 실시예에서, 확인 응답 패킷은 오버레이 네트워크 데이터 패킷이 VMM(312)에서 수신되었을 때의 타임스탬프 및/또는 확인 응답 패킷이 VMM(312)에 의해 송신되었을 때의 타임스탬프와 같은, 추가 정보를 포함할 수 있다. 도 5b에 도시된 바와 같이, 몇몇 경우에서 오버레이 네트워크 확인 응답 패킷은 클라이언트 데이터를 포함하지 않을 수 있다. 그러나, 다른 경우들에서 오버레이 네트워크 확인 응답 패킷은 또한 클라이언트 데이터(예를 들어, 클라이언트 확인 응답 패킷)를 포함할 수 있다.
몇몇 실시예에서, 각 수신된 패킷에 응답하여 확인 응답 메시지를 송신하는 것에 대한 대안으로서, 단지 매 N번째(예를 들어, 2번째, 12번째, 100번째 등) 수신된 패킷은 확인 응답 메시지를 생성할 수 있다. 예를 들어, 확인 응답 메시지는 송신 VMM(312)으로부터의 확인 응답에 대한 요청에 응답하여 수신 VMM(312)에 의해 단지 송신될 수 있다. 예를 들어, 송신 VMM(312)은 데이터 스트림에서의 각 패킷으로 타임스탬프 및 시퀀스 번호를 송신하나, 예를 들어 패킷의 오버레이 네트워크 패킷 헤더에 확인 응답 요청 플래그를 설정함으로써, 단지 매 N 패킷들마다 확인 응답 메시지를 요청할 수 있다. N의 표시(이러한 요청에 대한 패킷들의 수)는 또한 오버레이 네트워크 패킷 헤더에 포함될 수 있다. N은 반드시는 아니나, 고정된 수일 수 있다는 것을 주의하자. 수신 VMM(312)은 수신된 패킷들에 대한 메트릭들을 수집하고, 확인 응답에 대한 요청을 수신 시, 마지막 확인 응답이 이루어졌던 이후로 수신되는 모든 패킷들에 대한, 또는 마지막 N 수신된 패킷들에 대한 통계들을 리턴할 수 있다. 리턴된 통계들은 이들에 제한되지는 않으나, 패킷들에 대한 평균 또는 총 이행 시간 및 얼마나 많은 패킷이 실제로 수신되었는지에 대한 카운트 중 하나 이상을 포함할 수 있다. 예를 들어, 확인 응답에 대한 요청에서 표시된 바와 같이 N = 100이고, 수신 VMM(312)이 확인 응답에 대한 마지막 요청 이후로 단지 98개의 패킷들을 수신했다면, 수신 VMM(312)은 확인 응답 메시지에 단지 98개의 패킷들이 수신되었다는 것을 표시할 수 있다. 대안적으로, 몇몇 실시예에서, 수신된 N개의 패킷들 각각에 대한 수신 시간 및 시퀀스 번호는 확인 응답 패킷으로 리턴될 수 있다.
이전에 언급된 바와 같이, 호스트들(310) 상의 클라이언트 자원 인스턴스들(314)은 전송 제어 프로토콜(TCP)과 같은 네트워크 연결 상태를 추적할 수 있는 프로토콜들에 따라 그리고/또는 유저 데이터그램 프로토콜(UDP)와 같은 네트워크 연결 상태를 추적할 수 없는 프로토콜들에 따라 상이한 호스트들(314) 상의 다른 클라이언트 자원 인스턴스들(314)과 통신할 수 있다. TCP와 같은 네트워크 연결 상태를 추적할 수 있는 프로토콜들을 사용하는 클라이언트 자원 인스턴스들 간 통신 세션들에서, 확인 응답(ACK) 메시지들은 수신 클라이언트 자원 인스턴스(314)로부터 송신 자원 인스턴스들(314)로 송신될 수 있다. 몇몇 실시예는 송신 클라이언트 자원 인스턴스(314)로 다시 송신되는 클라이언트 ACK 메시지들 상에 오버레이 네트워크 프로토콜 확인 응답 메시지들을 피기백함으로써 네트워크 연결 상태를 추적할 수 있는 프로토콜의 이러한 측면을 발휘할 수 있다. 이들 실시예들에서, 오버레이 네트워크 프로토콜에 따라 개별 확인 응답 메시지들을 생성하는 것에 대신하여, 수신 VMM(312)은 수신 클라이언트 자원 인스턴스로부터 송신되는 ACK 메시지들(예를 들어, TCP ACK 메시지들)을 검출하고, 그것이 ACK 패킷이 캡슐화되는 오버레이 네트워크 헤더에 하나 이상의 수신된 패킷들을 위해 수집한 오버레이 네트워크 분석 정보를 포함할 수 있다. UDP와 같은 네트워크 연결 상태를 추적할 수 없는 프로토콜들은 통상적으로 확인 응답 메시지들을 생성하지 않고, 따라서 네트워크 연결 상태를 추적할 수 없는 프로토콜들이 사용되는 클라이언트들 간 데이터 스트림들에 대해 종합 확인 응답 메시지들이 이전에 설명된 바와 같이 생성될 수 있다.
적어도 몇몇 실시예에서, 확인 응답 패킷을 수신 시, 송신 VMM(312)(예를 들어, VMM(312A))은 송신 패킷 로그에서 대응하는 엔트리(또는 엔트리들)의 위치를 찾기 위해 패킷에 포함되는 정보를 사용할 수 있다. 그 후 VMM(312)은 네트워크 기판(302) 위의 오버레이 네트워크 터널(306)에 대한 하나 이상의 성능 메트릭, 예를 들어 왕복 시간을 산출하기 위해 확인 응답 패킷에서 또는 그에 대한 정보(예를 들어, 확인 응답 패킷이 VMM(312)에서 수신되었던 시간) 및/또는 대응하는 로그 엔트리 또는 엔트리들로부터의 정보(예를 들어, 대응하는 패킷(들)이 송신되었던 때의 타임스탬프(들))를 사용할 수 있다. 터널(306)이 송신 VMM(312)(예를 들어, VMM(312A))의 호스트(310)에서의 클라이언트 자원 인스턴스(314) 및 수신 VMM(312)(예를 들어, VMM(312B))의 호스트(310)에서의 다른 클라이언트 자원 인스턴스(314) 간 네트워크 기판(302) 위의 루트 또는 패스에 대응한다는 것을 주의하자. 또한 다수의 패킷이 하나의 VMM(312)에서의 하나의 클라이언트 자원 인스턴스(314)로부터 다른 VMM(312)에서의 다른 클라이언트 자원 인스턴스(314)로 소정의 터널(306)을 통해 흐를 수 있다는 것을 주의하자.
몇몇 경우에서, 오버레이 네트워크 데이터 패킷들은 몇몇 이유로 드롭될 수 있고, 그리하여 송신 VMM(312)은 이전에 송신된 오버레이 네트워크 데이터 패킷에 대한 확인 응답을 수신하지 않을 수 있다. 적어도 몇몇 실시예에서,송신 VMM(312)은 예를 들어 시간 임계치에 따라, 드롭된 패킷들을 검출하고, 드롭된 패킷들을 기록할 수 있다. 예를 들어, 송신된 패킷 로그에 기록되는 패킷이 임계치에 의해 지정된 기간 내에 확인 응답을 수신하지 않으면, VMM(312)은 송신된 패킷 로그에 드롭됨에 따른 패킷을 표시할 수 있다.
제공자 네트워크(300)에서의 각 VMM(312)은 송신 및 수신 VMM 양자로 동작할 수 있다. 각 VMM(312)은 각각의 VMM(312)으로부터 다른 VMM들(312)로 송신되는 오버레이 네트워크 데이터 패킷들을 추적하고, 상기 설명된 바와 같이 VMM(312)으로부터 다른 VMM들(312)로의 오버레이 네트워크 클라이언트 트래픽 데이터 흐름과 관련 있는 데이터를 기록할 수 있다. 각 VMM(312)은 제공자 네트워크(300) 상의 오버레이 네트워크 분석 서비스(320)의 오버레이 네트워크 데이터 수집 모듈(322)로 수집된 오버레이 네트워크 트래픽 데이터를 주기적으로 또는 비주기적으로 송신할 수 있다. 데이터는 IP 터널링 프로토콜에 따라 오버레이 네트워크 터널을 통해 데이터 수집 모듈(322)로 송신될 수 있거나, 대안적으로 데이터는 몇몇 다른 네트워킹 프로토콜, 예를 들어 TCP 또는 UDP에 따라 네트워크 기판을 통해 송신될 수 있다. 도시되지 않지만, 오버레이 네트워크 분석 서비스(320)는 예를 들어 서비스(320)로 수집된 오버레이 네트워크 트래픽 데이터를 송신하기 위해, 네트워크 기판(302) 및/또는 VMM들(312)이 서비스(320)와 통신할 수 있는 오버레이 네트워크와 접하는 하나 이상의 API를 제공할 수 있다.
적어도 몇몇 실시예에서, 오버레이 네트워크 데이터 수집 모듈(322)은 VMM들(312)로부터 데이터 저장소(330)로 수집되는 오버레이 네트워크 트래픽 데이터의 적어도 일부를 저장할 수 있다. 대신에 또는 추가로, 오버레이 네트워크 데이터 수집 모듈(322)은 오버레이 네트워크 분석 모듈(324)에 직접 수집된 데이터의 일부 또는 전부를 제공할 수 있다.
오버레이 네트워크 분석 모듈(324)은 오버레이 네트워크 데이터 수집 모듈(322)로부터, 데이터 저장소(330)로부터, 또는 양자로부터 오버레이 네트워크 트래픽 데이터를 획득할 수 있다. 분석 모듈(324)은 클라이언트-레벨 분석(326)을 수행하기 위해 클라이언트-특정 트래픽 데이터를 획득할 수 있다. 분석 모듈(324)은 예를 들어, 특정한 클라이언트 자원 인스턴스(314)에 대한 분석을 수행하기 위해 특정한 VMM(312)에 의해 수집되는 클라이언트-특정 트래픽 데이터, 또는 특정한 클라이언트의 사설 네트워크에 대한 분석을 수행하기 위해 다수의 VMM(312)으로부터 종합되는 클라이언트-특정 트래픽 데이터를 획득할 수 있다. 분석 모듈(324)은 또한 오버레이 네트워크에 대한 종합 분석을 수행하기 위해, 또는 문제들이 발생하고 있는 네트워크 기판(302) 상의 위치들 또는 특정한 컴포넌트들을 결정하기 위해 VMM들(312)로부터 종합된 오버레이 네트워크 트래픽 데이터를 획득할 수 있다.
적어도 몇몇 실시예에서, 오버레이 네트워크 분석 모듈(324)은 또한 하나 이상의 소스로부터 네트워크 기판 토폴로지 정보를 획득할 수 있다. 네트워크 기판 토폴로지 정보는 예를 들어, 네트워크 기판(302)의 물리 구성 또는 레이아웃뿐만 아니라, 각 컴포넌트에 대한 위치 정보와 함께 네트워크 기판(302)의 특정한 컴포넌트들(케이블 스팬들, 네트워킹 디바이스들 등)을 표시하는 정보를 표시할 수 있다.
오버레이 네트워크 분석 모듈(324)은 수집된 오버레이 네트워크 트래픽 데이터 및 네트워크 기판 토폴로지 정보에 기초하여 클라이언트-레벨 분석(326) 및/또는 종합 분석(328)을 수행할 수 있다. 클라이언트-레벨 분석(326)은 일정 기간 동안 다수의 VMM(312)으로부터 종합되는 클라이언트-특정 트래픽 데이터를 사용하여 수행될 수 있다. 클라이언트-레벨 분석(326)은 클라이언트의 자원 인스턴스들 및 오버레이 네트워크 상의 클라이언트의 자원 인스턴스들 간 연결들(터널들)을 포함하는 클라이언트의 사설 네트워크 구성의 맵을 생성하기 위해 수행될 수 있다. 클라이언트-레벨 분석(326)은 또한 오버레이 네트워크 프로토콜에 따라 송신 VMM들(312)에 의해 일정 기간 동안 수집되는 오버레이 네트워크 패킷 데이터(예를 들어, 왕복 시간, 드롭된 패킷 정보 등)에 기초하여 클라이언트의 사설 네트워크 구성에 대해 생성된 맵에 대한 성능 메트릭들 또는 통계들, 예를 들어 클라이언트의 자원 인스턴스들 간 연결들에 대한 평균 왕복 시간, 레이턴시, 스루풋, 및 패킷 손실 레이트 통계들을 생성할 수 있다. 클라이언트-레벨 분석(326)은 또한 클라이언트의 자원 인스턴스들 간 연결들에 대한 성능 메트릭들 또는 통계들에 기초하여 클라이언트의 사설 네트워크에 대한 성능 메트릭들 또는 통계들, 예를 들어 전체 네트워크 레이턴시, 패킷 드롭 레이트 등을 생성할 수 있다. 클라이언트-레벨 분석(326)은 또한 예를 들어 도 4에 예시된 바와 같은 특정한 클라이언트 자원 인스턴스들(314) 간 특정한 데이터 흐름들을 분석할 수 있다.
종합 분석(328)은 다수의 클라이언트 및 다수의 VMM(312)으로부터의 종합된 트래픽 데이터 및 네트워크 기판 토폴로지 정보를 사용하여 수행될 수 있다. 종합 분석(328)은 네트워크 기판(302)을 통해 VMM들(312) 간 오버레이 네트워크의 루트들의 매핑을 생성하기 위해 수행될 수 있다. 종합 분석(328)은 또한 오버레이 네트워크에 대해 생성된 맵에 대한 성능 메트릭들 또는 통계들, 예를 들어 일정 기간 동안 전체로서 오버레이 네트워크에 대한 또는 VMM들(312) 간 루트들에 대한 레이턴시, 스루풋, 및 패킷 손실 통계들을 생성할 수 있다. 또한, 종합 분석(328)은 문제들이 발생하고 있는 네트워크 기판 상의 특정한 위치들 또는 컴포넌트들을 결정하기 위해, 그리고 네트워크 기판(302)의 특정한 컴포넌트들에 대한 성능 통계들을 결정할 수 있다. 예를 들어, 매핑에 의해 결정된 바와 같은 기판(302)의 공통 부분들을 가로지르는 네트워크 기판(302) 상의 두 개 이상의 루트에 대한 성능 통계들은 네트워크 기판(302)의 특정한 컴포넌트들에 대한 성능 통계들을 결정하기 위해 그리고 네트워크 통신 문제들(레이턴시, 패킷 손실에 일조하는 전송 지연들)이 발생하고 있는 네트워크 기판 상의 위치(들)를 정확히 찾아내기 위해 삼각측량 기술에 따라 분석될 수 있다.
오버레이 네트워크 분석 모듈(324)은 다양한 오버레이 네트워크 매핑 및/또는 성능 보고들을 출력으로 생성할 수 있다. 오버레이 네트워크 분석 모듈(324)의 클라이언트-레벨 분석(326)은 하나 이상의 클라이언트-레벨 보고를 출력으로 생성할 수 있다. 오버레이 네트워크 분석 모듈(324)의 종합 분석(328)은 하나 이상의 종합 보고를 출력으로 생성할 수 있다. 클라이언트 에이전트들 및 제공자 네트워크 에이전트들은 오버레이 네트워크 분석 서비스(320)의 오버레이 네트워크 분석 모듈(324)에 의해 생성되는 오버레이 네트워크 매핑 및/또는 성능 보고들을 요청하고/하거나 보기 위해 하나 이상의 API(332)를 통해 오버레이 네트워크 분석 서비스(320)에 액세스할 수 있다. 클라이언트 에이전트는 클라이언트-레벨 보고들(340)을 요청하고 보기 위해 API(들)(332)를 통해 서비스(320)에 액세스할 수 있다. 클라이언트-레벨 보고들(340)은 예를 들어, 클라이언트의 외부 네트워크에서의 콘솔, 예를 들어 도 11에 예시된 바와 같은 클라이언트 네트워크(1150) 상의 콘솔(1194) 상의 인터페이스를 통해 클라이언트에 제공될 수 있다. 클라이언트-레벨 보고들(340)은 콘솔 상의 브라우저 인터페이스 또는 다른 프로그램을 통해 제공될 수 있다. 제공자 네트워크 에이전트는 종합 보고들(350)을 요청하고 보기 위해 API(들)(332)를 통해 서비스(320)에 액세스할 수 있다. 클라이언트-레벨 보고들(340)은 예를 들어, 제공자 네트워크에서의 콘솔 상의 인터페이스를 통해 에이전트에 제공될 수 있다. 종합 보고들(340)은 콘솔 상의 브라우저 인터페이스 또는 다른 프로그램을 통해 제공될 수 있다. 몇몇 실시예에서, 클라이언트들은 또한 적어도 몇몇 종합 보고(340)를 요청하고 보도록 허용될 수 있다. 도 8a 내지 도 8d는 클라이언트-레벨 및 종합 보고들의 예들을 도시한다.
적어도 몇몇 실시예에서, 클라이언트 보고(들)(340) 및 종합 보고(들)(350)은 새롭게 분석된 클라이언트-특정 또는 종합 정보를 보고하기 위해 주기적으로 또는 비주기적으로 업데이트되는 동적 디스플레이들을 통해 제공될 수 있다. 대신에 또는 추가로, 클라이언트 보고(들)(340) 또는 종합 보고(들)(350)이 주기적인 또는 비주기적인 보고들로서 생성될 수 있거나, 서비스에 대한 API(들)(332)를 통해 제공자 네트워크의 에이전트 또는 클라이언트의 에이전트의 요청으로 생성될 수 있다.
데이터 흐름 분석
도 4는 적어도 몇몇 실시예에 따라, 제공자 네트워크 상에서 클라이언트 사설 네트워크에서의 클라이언트 자원 인스턴스들 간 특정한 터널 또는 데이터 흐름에 대한 성능 데이터를 획득하는 것 및 분석하는 것을 예시한다. 클라이언트는 제공자 네트워크 상에 사설 네트워크(410)를 설정할 수 있다. 사설 네트워크(410)는 VMM들(412)에 의해 모니터링되는 VM들 상에서 구현되는 다수의 클라이언트 자원 인스턴스(414)를 포함할 수 있다. 예를 들어, 클라이언트 자원 인스턴스(414A)는 VMM(412A)에 의해 모니터링될 수 있고 클라이언트 자원 인스턴스(414B)는 VMM(412B)에 의해 모니터링될 수 있다.
클라이언트 자원 인스턴스(414A)는 클라이언트 자원 인스턴스(414B)에 클라이언트 데이터 패킷들을 송신할 수 있다. VMM(412A)은 클라이언트 데이터 패킷들을 수신하고, 오버레이 네트워크 프로토콜에 따라 클라이언트 데이터 패킷들을 캡슐화하며, IP 터널링 기술에 따라 네트워크 기판(402) 상에서 구현되는 오버레이 네트워크 상으로 오버레이 네트워크 데이터 패킷들을 송신할 수 있다. 오버레이 네트워크 데이터 패킷들은 IP 터널링 기술에 따른 터널(406)을 통해 오버레이 네트워크 패킷에서의 정보에 따른 VMM(412B)으로 라우팅될 수 있다. 오버레이 네트워크들, 터널들, 및 IP 터널링 기술에 대한 보다 많은 정보에 대해 도 10을 참조하자. 라우팅에서 사용되는 정보에 추가하여, VMM(412A)은 오버레이 네트워크 패킷들에 추가 정보(예를 들어, 확인 응답 플래그들, 타임스탬프들, 패킷 시퀀스 번호들 등)를 포함할 수 있다. 적어도 몇몇 실시예에 따른, 예시적인 오버레이 네트워크 데이터 패킷의 예에 대한 도 5a를 참조하자.
각 데이터 흐름이 자원 인스턴스(414A)의 특정한 종단점 및 자원 인스턴스(414B)의 특정한 종단점 간 통신 세션에 대응하는, 하나, 두 개, 또는 그 이상의 개별 데이터 흐름이 클라이언트 자원 인스턴스(414A)로부터 클라이언트 자원 인스턴스(414B)로 존재할 수 있고, 그리하여 두 개의 자원 인스턴스들(414) 간 하나, 두 개 또는 그 이상의 터널(406)이 존재할 수 있다는 것을 주의하자. 또한 클라이언트 자원 인스턴스들(414A 및 414B)이 전송 제어 프로토콜(TCP)과 같은 네트워크 연결 상태를 추적할 수 있는 프로토콜들, 유저 데이터그램 프로토콜(UDP)과 같은 네트워크 연결 상태를 추적할 수 없는 프로토콜들, 또는 양자에 따라 통신할 수 있다는 것을 주의하자. 또한 클라이언트 자원 인스턴스들(414A 및 414B)이 또한 오버레이 네트워크를 통해 클라이언트 사설 네트워크(410)에서의 다른 클라이언트 자원 인스턴스들과 통신할 수 있고, 그리하여 각각이 네트워크 기판(402)을 통해 다른 터널들과 연관될 수 있다는 것을 주의하자.
적어도 몇몇 실시예에서, VMM(412A)은 또한 송신된 패킷 로그(416)에서의 오버레이 네트워크 데이터 패킷들의 일부 또는 전부에 대한 정보를 기록할 수 있다. 기록된 정보는 이들에 제한되지는 않으나: 데이터 스트림/시퀀스 번호 정보와 같은, VMM(412A)에 대한 패킷을 고유하게 식별하는 정보; 데이터 패킷이 송신된, 타임스탬프로 지칭되는 시간; 오버레이 네트워크 데이터 패킷으로 캡슐화되는 클라이언트 데이터 패킷을 만들어낸 VM, 클라이언트 및/또는 클라이언트 자원 인스턴스의 표시; 및 클라이언트 데이터 패킷의 타겟의 표시 중 하나 이상을 포함할 수 있다.
터널(406)을 통해 오버레이 네트워크 데이터 패킷들을 수신 시, VMM(412B)은 클라이언트 데이터 패킷들로부터 캡슐화를 분해하고 클라이언트 데이터 패킷들을 클라이언트 자원 인스턴스(414B)로 포워딩할 수 있다. 또한, 적어도 몇몇 실시예에서, VMM(412B)은 터널(406)을 통해 VMM(412A)으로 확인 응답(ACK) 메시지를 리턴할 수 있다. 적어도 몇몇 실시예에 따른, 오버레이 네트워크 확인 응답 패킷들의 예에 대한 도 5b 및 도 5c를 참조하자. 확인 응답 패킷은 데이터 스트림/시퀀스 번호 식별자와 같은, 확인 응답되고 있는 오버레이 네트워크 데이터 패킷을 식별하는 정보를 포함할 수 있다. 적어도 몇몇 실시예에서, 확인 응답 패킷은 오버레이 네트워크 데이터 패킷이 VMM(412B)에서 수신되었을 때의 타임스탬프 및/또는 확인 응답 패킷이 VMM(412B)에 의해 송신되었을 때의 타임스탬프와 같은, 추가 정보를 포함할 수 있다. 도 5b에 도시된 바와 같이, 몇몇 경우에서 오버레이 네트워크 확인 응답 패킷은 클라이언트 데이터를 포함하지 않을 수 있다. 그러나, 다른 경우들에서 오버레이 네트워크 확인 응답 패킷은 또한 클라이언트 데이터(예를 들어, TCP ACK와 같은 클라이언트 확인 응답 패킷)를 포함할 수 있다.
이전에 언급한 바와 같이, 몇몇 실시예에서, VMM(412B)은 각 수신된 패킷에 응답하여 VMM(412A)으로 확인 응답(ACK) 메시지를 리턴할 수 있다. 몇몇 실시예에서, 각 수신된 패킷에 응답하여 확인 응답 메시지를 송신하는 것에 대한 대안으로서, 확인 응답 메시지는 매 N번째 패킷마다, 예를 들어 단지 VMM(412A)에 의해 요청될 때 VMM(412B)에 의해 송신될 수 있다. 몇몇 실시예에서, 클라이언트 자원 인스턴스들(414A 및 414B) 간 통신 세션이 네트워크 연결 상태를 추적할 수 있는 프로토콜(예를 들어, TCP)에 따라 설정되면, VMM(412B)은 송신 클라이언트 자원 인스턴스(414A)로 다시 송신되는 클라이언트 ACK 메시지들 상에 오버레이 네트워크 프로토콜 확인 응답 메시지들을 피기백함으로써 네트워크 연결 상태를 추적할 수 있는 프로토콜에 영향력을 발휘할 수 있다.
적어도 몇몇 실시예에서, 터널(406)을 통해 VMM(412B)으로부터 확인 응답 패킷을 수신 시, VMM(412A)은 송신된 패킷 로그(416)에서 대응하는 엔트리 또는 엔트리들의 위치를 찾기 위해 패킷에 포함되는 정보를 사용할 수 있다. 적어도 몇몇 실시예에서, 그 후 VMM(412A)은 네트워크 기판(402) 위의 오버레이 네트워크 터널(406)에 대한 하나 이상의 성능 메트릭, 예를 들어 왕복 시간을 산출하기 위해 확인 응답 패킷에서 또는 그에 대한 정보(예를 들어, 확인 응답 패킷이 VMM(412A)에서 수신되었던 시간) 및/또는 대응하는 로그 엔트리 또는 엔트리들로부터의 정보(예를 들어, 대응하는 패킷(들)이 송신되었던 때의 타임스탬프(들))를 사용할 수 있다.
상이한 기술들이 왕복 시간을 산출하는데 사용될 수 있다. 예를 들어, 몇몇 실시예에서, VMM(412A)은 터널(406) 상에서 송신되는 각 패킷에 대한 송신된 패킷 로그(416)에 타임스탬프를 기록할 수 있다. 확인 응답 패킷을 수신 시, VMM(412A)은 확인 응답 패킷이 확인 응답이 수신되었던 송신된 패킷에 대응하는 로그(416)의 엔트리에 확인 응답 패킷이 VMM(412A)에서 수신되었던 때의 타임스탬프를 기록할 수 있다. 왕복 시간은 두 시간들 간 차이로 산출될 수 있다. 이 방법은 확인 응답 패킷에 포함될 타임스탬프를 요구하지 않는다는 것을 주의하자.
대안으로서, 몇몇 실시예에서, VMM(412A)은 터널(406) 상에서 송신되는 각 패킷에 대한 송신된 패킷 로그(416)에 타임스탬프를 기록할 수 있다. 확인 응답 패킷을 수신 시, VMM(412A)은 확인 응답이 수신되었던 송신된 패킷에 대응하는 로그(416)의 엔트리에서 확인 응답이 수신되었던 때의 타임스탬프를 판독 및 기록할 수 있다. 또한, 확인 응답 패킷은 오버레이 네트워크 데이터 패킷이 VMM(412B)에서 수신되었을 때의 타임스탬프 및/또는 확인 응답 패킷이 VMM(412B)에 의해 송신되었을 때의 타임스탬프를 포함할 수 있다. 확인 응답 패킷으로부터의 타임스탬프 정보가 또한 송신된 패킷 로그(415)에 기록될 수 있다. 그 후 오버레이 네트워크 데이터 패킷에 대한 및 확인 응답 패킷에 대한 오버레이 네트워크 횡단 시간들은 타임스탬프들에 따라 산출될 수 있다. 그 후 왕복 시간은 두 개의 시간들의 합으로 산출될 수 있다. 몇몇 실시예에서, 왕복 시간을 산출하는 것에 대한 대안으로서, 오버레이 네트워크 데이터 패킷들에 대한 단-방향 횡단 시간은 예를 들어 송신된 패킷 로그(416)에 기록된 바와 같은 송신되는 시간 및 확인 응답 패킷에 기록되는 수신되는 시간 간 차이로, 타임스탬프 정보로부터 대신 산출될 수 있다. 이들 방법들은 확인 응답 패킷에 포함될 타임스탬프(들)을 요구하고, 또한 VMM들(412) 간 시간 동기화를 요구한다는 것을 주의하자. 그리하여, 시간 동기화 기법 또는 기술은 왕복 시간들이 정확하게 산출될 수 있도록 VMM들(412)을 구현하는 호스트 디바이스들 간 시간을 동기화하는데 사용될 수 있다.
몇몇 경우에서, 오버레이 네트워크 데이터 패킷들 및/또는 확인 응답 패킷들은 몇몇 이유로 드롭될 수 있고, 그리하여 VMM(412A)은 이전에 송신된 오버레이 네트워크 데이터 패킷에 대한 확인 응답 패킷을 수신하지 않을 수 있다. 적어도 몇몇 실시예에서, VMM(412A)은 예를 들어 시간 임계치에 따라, 드롭된 패킷들을 검출하고, 드롭된 패킷들을 기록할 수 있다. 예를 들어, 송신된 패킷 로그(416)에 기록되는 패킷이 임계치에 의해 지정된 기간 내에 확인 응답을 수신하지 않으면, VMM(412A)은 송신된 패킷 로그(416)에 드롭됨에 따른 패킷을 표시할 수 있다.
몇몇 실시예에서, 각 수신된 오버레이 네트워크 데이터 패킷에 응답하여 확인 응답 패킷을 송신하는 것에 대한 대안으로서, 수신 VMM(412B)은 대신 수신된 패킷들에 대한 정보가 기록되는 수신된 패킷 로그를 유지할 수 있다. 수신된 패킷에 대해 기록된 정보는 이들에 제한되지는 않으나: 데이터 스트림/시퀀스 번호 정보와 같은, 수신된 패킷을 고유하게 식별하는 정보, 데이터 패킷이 수신되었을 때를 표시하는 타임스탬프, 패킷이 수신되었던 VMM을 표시하는 정보 중 하나 이상을 포함할 수 있다. 그 후 VMM(412B)은 예를 들어 VMM(412A)이 주기적으로 또는 비주기적으로 확인 응답 패킷을 요청할 때, VMM(412A)으로 다수의 패킷에 대해 기록된 정보를 주기적으로 또는 비주기적으로 송신할 수 있다. VMM(412B)으로부터 정보를 수신 시, 그 후 VMM(412A)은 터널(406)에 대한 성능 정보를 산출하기 위해 송신된 패킷 로그(416)에 기록되는 정보와 이 정보를 비교할 수 있다. 확인 응답 패킷이 각 패킷에 대해 송신되지 않기 때문에, 왕복 시간이 산출되지 않을 수 있다는 것을 주의하자. 대신에, 오버레이 네트워크 데이터 패킷들에 대한 단-방향 횡단 시간은 예를 들어 송신된 패킷 로그(416)에 기록된 바와 같이 송신되는 시간 및 VMM(412B)으로부터 수신되는 정보에 기록되는 수신되는 시간 간 차이로, 산출될 수 있다. 또한, 드롭된 패킷들은 VMM(412B)으로부터 수신되는 정보를 송신된 패킷 로그(416)와 비교함으로써 결정될 수 있다. 예를 들어, 송신된 패킷 로그(416)에 기록되는 패킷이 VMM(412B)으로부터 수신되는 정보로부터 누락되고 있으면,패킷은 드롭된 것으로 표시될 수 있다.
VMM(412A)은 오버레이 네트워크 분석 서비스(420)로 터널(406) 상에서 송신되는 각 오버레이 네트워크 데이터 패킷에 대한 데이터를 송신할 수 있거나, 대안적으로 오버레이 네트워크 분석 서비스(420)로 터널(406)에 대응하는 송신된 패킷 로그(416)에서 수집되는 데이터를 주기적으로 또는 비주기적으로 송신할 수 있다. 오버레이 네트워크 분석 서비스(420)는 이 데이터를 수집 및 저장할 수 있고, 클라이언트 자원 인스턴스들(414A 및 414B) 간 터널(406)에 특유한 성능 통계들, 예를 들어 터널(406)에 대한 레이턴시, 스루풋, 및 패킷 드롭 레이트을 생성하기 위해 일정 시간 간격 동안 데이터의 분석을 수행할 수 있다. 성능 통계들은 예를 들어 서비스(420)에 대한 API를 통해 클라이언트에 자원 인스턴스 데이터 흐름 보고(430)로서 출력될 수 있다. 도 8a는 적어도 몇몇 실시예에 따른, 자원 인스턴스 데이터 흐름 보고의 예를 도시한다. 클라이언트 자원 인스턴스(414A)로부터 클라이언트 자원 인스턴스(414B)로의 하나, 두 개, 또는 그 이상의 터널이 존재할 수 있다는 것, 및 개별 데이터 흐름 보고(430)이 각 터널에 대해 생성될 수 있다는 것을 주의하자.
또한, 터널(406)에 관해 VMM(412A)으로부터 수신되는 데이터는 VMM(412A) 및/또는 클라이언트 사설 네트워크(410) 상의 클라이언트의 자원 인스턴스들(414) 간 다른 터널들에 특유한 다른 VMM들로부터 수신되는 다른 데이터와 종합될 수 있다. 클라이언트의 자원 인스턴스들에 대한 이러한 종합된 데이터는 클라이언트 보고(들)(440), 예를 들어 자원 인스턴스들(414) 및 인스턴스들 간 연결들(터널들)을 표시하는 클라이언트 사설 네트워크(410) 토폴로지의 매핑들, 및/또는 연결들에 대한 성능 통계들(예를 들어, 레이턴시, 패킷 드롭 레이트, 스루풋 등)을 생성하기 위해 분석될 수 있다. 도 8b는 적어도 몇몇 실시예에 따른, 클라이언트-레벨 보고의 예를 도시한다.
또한, 클라이언트의 데이터는 하나 이상의 다른 클라이언트로부터의 데이터와 종합될 수 있다. 다수의 클라이언트로부터의 종합된 데이터는 오버레이 네트워크에 대한 종합 보고(들)(450), 예를 들어 VMM들(412) 간 연결들(터널들)의 매핑들 및 연결들에 대한 성능 통계들(예를 들어, 레이턴시, 패킷 드롭 레이트, 스루풋 등)을 생성하기 위해 분석될 수 있다. 종합된 데이터는 또한 네트워크 기판의 특정한 컴포넌트들에 대한 성능 통계들을 결정하는데, 그리고 네트워크 기판에서의 문제 지점들을 식별하는데 사용될 수 있다. 도 8c 및 도 8d는 적어도 몇몇 실시예에 따른, 예시적인 종합 보고들을 도시한다.
오버레이 네트워크 패킷들
도 5a 내지 도 5c는 적어도 몇몇 실시예에 따른, 예시적인 오버레이 네트워크 데이터 패킷 및 예시적인 오버레이 네트워크 확인 응답 패킷들을 예시한다. 도 5a는 적어도 몇몇 실시예에 따른, 예시적인 오버레이 네트워크 데이터 패킷(500)을 도시한다. 패킷(500)은 예를 들어 송신 VMM에 의해, 오버레이 네트워크 프로토콜에 따라 캡슐화 또는 태깅되는 클라이언트 데이터 패킷(510)을 포함할 수 있다. 오버레이 네트워크 프로토콜은 오버레이 네트워크 헤더(502)를 포함할 수 있다. 오버레이 네트워크 프로토콜은 반드시는 아니나, 또한 오버레이 네트워크 풋터(overlay network footer)(508)를 포함할 수 있다. 오버레이 네트워크 헤더(502)는 오버레이 네트워크 상의 패킷(500)을 목적지로(예를 들어, 수신 또는 타겟 VMM으로) 라우팅하는데 사용될 수 있는 오버레이 네트워크 어드레스 정보(504)를 포함할 수 있다. 송신자(예를 들어, 송신 VMM)는 클라이언트 데이터 패킷(510)을 캡슐화할 때 이 정보(504)를 채울 수 있다. 오버레이 네트워크 헤더(502)는 또한 오버레이 네트워크 분석 정보(506)를 포함할 수 있다. 오버레이 네트워크 분석 정보(506)는 이들에 제한되지는 않으나, 이 패킷(500)이 확인 응답될 것이라는 것을 표시하는 확인 응답 플래그, 이 패킷(500)이 송신될 때의 타임스탬프, 및 이 패킷(500)에 대한 패킷 시퀀스 번호 중 하나 이상을 포함할 수 있다. 분석 정보(506)는 다른 정보, 예를 들어 이 패킷(500)에 대한 특정한 데이터 스트림/터널을 식별하는 정보를 포함할 수 있다. 몇몇 실시예에서, 오버레이 네트워크 헤더(502)는 또한 확인 응답 메시지가 이 메시지에 응답하여 송신될 것인지 여부를 표시하는데 사용될 수 있는 플래그, 및 확인 응답에 대한 이 요청에 대한 패킷들의 수에 대한 표시를 포함할 수 있다.
도 5b는 적어도 몇몇 실시예에 따른, 예시적인 오버레이 네트워크 데이터 패킷(520)을 도시한다. 확인 응답 패킷(520)은 오버레이 네트워크 헤더(522)를 포함할 수 있다. 확인 응답 패킷(520)은 반드시는 아니나, 또한 오버레이 네트워크 풋터(528)를 포함할 수 있다. 오버레이 네트워크 헤더(522)는 오버레이 네트워크 상의 패킷(520)을 목적지로(예를 들어, 이 확인 응답 패킷(520)이 생성되었던 오버레이 네트워크 데이터 패킷(500)을 송신한 VMM으로) 라우팅하는데 사용될 수 있는 오버레이 네트워크 어드레스 정보(524)를 포함할 수 있다. 송신자(예를 들어, 이 확인 응답 패킷(520)이 송신되는 오버레이 네트워크 데이터 패킷(500)을 수신한 VMM)는 이 정보(524)를 채울 수 있다. 오버레이 네트워크 헤더(522)는 또한 오버레이 네트워크 분석 정보(526)를 포함할 수 있다. 오버레이 네트워크 분석 정보(526)는 이들에 제한되지는 않으나, 하나 이상의 타임스탬프(예를 들어, 데이터 패킷(500)이 수신되었던 때를 표시하는 타임스탬프 및/또는 확인 응답 패킷(520)이 송신되었던 때를 표시하는 타임스탬프) 및 이 확인 응답 패킷(520)에 대응하는 데이터 패킷(500)의 패킷 시퀀스 번호 중 하나 이상을 포함할 수 있다. 분석 정보(526)는 다른 정보, 예를 들어 이 확인 응답 패킷(520)에 대응하는 데이터 패킷(500)의 특정한 데이터 스트림/터널을 식별하는 정보를 포함할 수 있다.
도 5c는 적어도 몇몇 실시예에 따라, 네트워크 연결 상태를 추적할 수 있는 프로토콜 ACK 메시지들 상에 확인 응답 메시지들을 피기백함으로써 사용될 수 있는 예시적인 오버레이 네트워크 확인 응답 패킷(530)을 도시한다. 몇몇 실시예에서, 클라이언트 자원 인스턴스들 간 통신 세션이 네트워크 연결 상태를 추적할 수 있는 프로토콜(예를 들어, TCP)에 따라 설정되면, 오버레이 네트워크 분석 방법은 송신 클라이언트 자원 인스턴스로 다시 송신되는 클라이언트 ACK 메시지들 상에 오버레이 네트워크 프로토콜 확인 응답 메시지들을 피기백함으로써 네트워크 연결 상태를 추적할 수 있는 프로토콜에 영향력을 발휘할 수 있다. 이들 경우들에서, 어드레스 정보(534) 및 분석 정보(536) 및 선택적인 오버레이 네트워크 풋터(538)를 포함하는 오버레이 네트워크 헤더(532)를 갖고 캡슐화 또는 태깅되는 것에 추가하여, 캡슐화된 클라이언트 데이터(예를 들어, 클라이언트 확인 응답 패킷(540))가 또한 오버레이 네트워크 패킷에 포함될 수 있다.
분석 방법들
도 6 내지 도 8은 적어도 몇몇 실시예에 따라, 다양한 레벨들에서의 오버레이 네트워크 성능 및 다른 정보를 결정하기 위해 오버레이 네트워크 클라이언트 트래픽을 수집 및 분석하기 위한 몇몇 방법의 흐름도들이다. 이들 방법들은 도 1 및 도 2에 예시된 바와 같은 일반적인 방법에 기초하나, 제한하는 것으로 의도되는 것은 아니다.
도 6은 적어도 몇몇 실시예에 따라, 클라이언트의 오버레이 네트워크 트래픽에 따라 오버레이 네트워크 상의 클라이언트의 사설 네트워크 구현에 대한 성능을 분석하기 위한 방법의 흐름도이다. 클라이언트-레벨 분석은 예를 들어 도 4 및 도 12에 예시된 바와 같은 클라이언트의 가상화된 사설 네트워크에 대해, 클라이언트의 제공자 네트워크 구현에 특유한 성능, 동작, 및/또는 다른 정보를 생성하기 위해 일정 기간 동안 수집되는 특정한 클라이언트의 자원 인스턴스들에 특유한 데이터에 따라 수행될 수 있다.
도 6의 600에 표시된 바와 같이, 제공자 네트워크 상의 하나 이상의 VMM은 오버레이 네트워크 상의 특정한 클라이언트의 자원 인스턴스들 간 트래픽에 기초하여 오버레이 네트워크 성능과 관련 있는 데이터를 수집할 수 있다. 해당 데이터는 예를 들어 도 4에 예시된 바와 같은, 특정한 클라이언트 자원 인스턴스들 간 터널들 상의 오버레이 네트워크 패킷 트래픽에 대응할 수 있다. 수집된 데이터는 예를 들어 터널들 상의 데이터 패킷들 및 확인 응답 패킷들로부터 산출되는, 왕복 시간을 포함할 수 있다. 대신에 또는 추가로, 수집된 데이터는 오버레이 네트워크 데이터 패킷들에 대한 단-방향 횡단 시간을 포함할 수 있다. 수집된 데이터는 또한 드롭된 패킷들에 대한 표시들을 포함할 수 있다. 예를 들어, 데이터는 예를 들어 도 4 에 도시된 바와 같은, 송신된 패킷 로그에 기록될 수 있다.
도 6의 602에 표시된 바와 같이, VMM들은 주기적으로 또는 비주기적으로 제공자 네트워크의 오버레이 네트워크 분석 서비스에 수집된 데이터를 제공할 수 있다. 해당 데이터는 IP 터널링 프로토콜에 따라 오버레이 네트워크 터널을 통해 오버레이 네트워크 분석 서비스로 송신될 수 있거나, 대안적으로 해당 데이터는 몇몇 다른 네트워킹 프로토콜, 예를 들어 TCP 또는 UDP에 따라 네트워크 기판을 통해 송신될 수 있다. 적어도 몇몇 실시예에서, 오버레이 네트워크 분석 서비스는 예를 들어 서비스에 수집된 오버레이 네트워크 트래픽 데이터를 송신하기 위해, VMM들이 서비스와 통신할 수 있는 네트워크 기판 및/또는 오버레이 네트워크에 접하는 하나 이상의 API를 제공할 수 있다.
도 6의 604에 표시된 바와 같이, 오버레이 네트워크 분석 서비스는 제공자 네트워크 상에서 클라이언트의 사설 네트워크 구현의 매핑 및 그에 대한 성능 통계들을 결정하기 위해 클라이언트에 대해 수집된 데이터를 분석한다. 예를 들어, 각 터널에 대해 수집되는 왕복 또는 단-방향 이행 시간은 터널에 대한 레이턴시를 결정하기 위해 분석될 수 있다. 다른 예로서, 데이터는 터널에 대한 패킷 드롭 레이트를 결정하기 위해 분석될 수 있다. 터널들에 대해 산출된 성능 메트릭들은 전체 사설 네트워크 구현에 대한 성능 메트릭들, 예를 들어 전체 레이턴시 및/또는 패킷 드롭 레이트를 결정하기 위해 분석될 수 있다.
도 6의 606에 표시된 바와 같이, 오버레이 네트워크 분석 서비스는 서비스에 대한 API를 통해 클라이언트에 분석에 의해 생성되는 클라이언트의 사설 네트워크 구현에 대한 정보를 제공할 수 있다. 예를 들어, 클라이언트-특정 정보는 클라이언트의 외부 네트워크에서의 콘솔, 예를 들어 도 11에 예시된 바와 같은 클라이언트 네트워크(1150) 상의 콘솔(1194) 상의 인터페이스를 통해 클라이언트에 제공될 수 있다.
도 7은 적어도 몇몇 실시예에 따라, 총 클라이언트 네트워크 트래픽에 따라 오버레이 네트워크의 성능을 매핑하는 것 및 분석하는 것을 위한 방법의 흐름도이다. 종합 분석은 오버레이 네트워크에 대한 매핑, 성능, 동작, 및/또는 다른 정보를 전체로서 생성하기 위해 일정 시간 동안 다수의 클라이언트에 대해 수집되는 데이터에 따라 수행될 수 있다.
도 7의 700에 표시된 바와 같이, 제공자 네트워크 상의 VMM들은 오버레이 네트워크 상의 클라이언트들의 자원 인스턴스들 간 트래픽에 기초하여 오버레이 네트워크 성능과 관련 있는 데이터를 수집한다. 해당 데이터는 예를 들어 도 4에 예시된 바와 같은, 특정한 클라이언트 자원 인스턴스들 간 터널들 상의 오버레이 네트워크 패킷 트래픽에 대응할 수 있다. 수집된 데이터는 예를 들어 터널들 상의 데이터 패킷들 및 확인 응답 패킷들로부터 산출되는, 왕복 시간을 포함할 수 있다. 대신에 또는 추가로, 수집된 데이터는 오버레이 네트워크 데이터 패킷들에 대한 단-방향 횡단 시간을 포함할 수 있다. 수집된 데이터는 또한 드롭된 패킷들에 대한 표시들을 포함할 수 있다. VMM 상의 모든 클라이언트에 대해 수집되는 데이터는 예를 들어 도 4 에 도시된 바와 같은, 송신된 패킷 로그 또는 로그들에 기록될 수 있다.
도 7의 702에 표시된 바와 같이, VMM들은 주기적으로 또는 비주기적으로 제공자 네트워크의 오버레이 네트워크 분석 서비스에 수집된 데이터를 제공할 수 있다. 해당 데이터는 IP 터널링 프로토콜에 따라 오버레이 네트워크 터널을 통해 오버레이 네트워크 분석 서비스로 송신될 수 있거나, 대안적으로 해당 데이터는 몇몇 다른 네트워킹 프로토콜, 예를 들어 TCP 또는 UDP에 따라 네트워크 기판을 통해 송신될 수 있다. 적어도 몇몇 실시예에서, 오버레이 네트워크 분석 서비스는 예를 들어 서비스에 수집된 오버레이 네트워크 트래픽 데이터를 송신하기 위해, VMM들이 서비스와 통신할 수 있는 네트워크 기판 및/또는 오버레이 네트워크에 접하는 하나 이상의 API를 제공할 수 있다.
도 7의 704에 표시된 바와 같이, 오버레이 네트워크 분석 서비스는 오버레이 네트워크의 매핑 및 그에 대한 성능 통계들을 전체로서 결정하기 위해 클라이언트의 일부 또는 전부에 대해 수집된 데이터를 분석한다. 예를 들어, 성능 정보(예를 들어, 레이턴시 및 패킷 드롭 레이트들)는 VMM들 간 모든 클라이언트들의 터널에 대해 산출될 수 있다. 터널들에 대해 산출된 성능 정보는 특정한 VMM들 간의 및/또는 전체 오버레이 네트워크에 대한 성능 통계들, 예를 들어 전체 레이턴시 및/또는 패킷 드롭 레이트를 결정하기 위해 총괄적으로 분석될 수 있다. 네트워크 기판을 통한 VMM들 간 오버레이 네트워크의 루트들의 매핑은 종합된 데이터 및 네트워크 기판 토폴로지 정보에 따라 생성될 수 있다. 네트워크 기판의 특정한 컴포넌트들에 대한 성능 통계들이 생성될 수 있다. 예를 들어, 매핑에 의해 결정된 바와 같이 기판의 공통 부분들을 횡단하는 네트워크 기판 상의 두 개 이상의 루트에 대한 성능 통계들은 네트워크 기판의 특정한 컴포넌트들에 대한 성능 통계들을 결정하기 위해, 그리고 문제들이 발생하고 있는 네트워크 기판 상의 특정한 위치들 또는 컴포넌트들을 결정하기 위해 삼각측량 기술에 따라 분석될 수 있다.
도 7의 706에 표시된 바와 같이, 오버레이 네트워크 분석 서비스는 서비스에 대한 API를 통해, 다수의 클라이언트에 대해 종합되는 데이터의 분석에 의해 생성되는, 오버레이 네트워크 정보를 제공할 수 있다. 예를 들어, 해당 정보는 제공자 네트워크에서의 콘솔 상의 인터페이스를 통해 제공자 네트워크의 에이전트에 제공될 수 있다.
분석 출력
도 8a 내지 도 8d는 적어도 몇몇 실시예에 따른 오버레이 네트워크 분석 방법에 대한 예시적인 출력들을 예시하나, 제한하는 것으로 의도되지는 않는다. 도 8a 및 도 8b는 클라이언트-레벨 보고들의 예들이고, 도 8c 및 도 8d는 종합-레벨 보고들의 예들이다. 실시예들은 그래픽 및/또는 텍스트 포맷들로 클라이언트-레벨 및 종합 보고들을 출력할 수 있다. 보고들은 정적 보고들로서 출력될 수 있거나, 대안적으로 새로운 데이터가 수신 및 분석되는 바와 같이 동적으로 디스플레이 및 업데이트될 수 있다.
도 8a는 적어도 몇몇 실시예에 따른, 도 4에 도시된 바와 같은 예시적인 자원 인스턴스 데이터 흐름 보고를 예시한다. 식별 필드(800)는 데이터 흐름에 대한 소스 자원 인스턴스(A) 및 목적지 자원 인스턴스(B)를 표시할 수 있고, 또한 자원 인스턴스들 간 특정한 데이터 흐름을 식별하는 정보를 포함할 수 있다. 자원 인스턴스 데이터 흐름 보고는 데이터 흐름 또는 터널에 대한 산출된 스루풋(802), 레이턴시(804), 및 패킷 손실 레이트(806)를 표시하는 필드들을 포함할 수 있다. 소스 자원 인스턴스(A) 및 목적이 자원 인스턴스(B) 사이에 두 개 이상의 터널이 존재할 수 있다. 도 8a에 도시된 바와 같은 개별 자원 인스턴스 데이터 흐름 보고들이 생성될 수 있고, 개별적으로 또는 총괄적으로 디스플레이될 수 있다. 또한, 자원 인스턴스 데이터 흐름 보고들은 다른 자원 인스턴스들에 대해 생성될 수 있고 개별적으로 또는 총괄적으로 디스플레이될 수 있다.
도 8a는 두 개의 자원 인스턴스들 간 특정한 데이터 흐름 또는 터널에 대한 성능 통계들을 나타내도록 의도된다. 그러나, 적어도 몇몇 실시예에서, 두 개의 자원 인스턴스들 간 다수의 터널로부터의 성능 통계들은 두 개의 자원 인스턴스들 간 전체 데이터 흐름 통계들을 생성하기 위해 조합될 수 있다.
도 8b 는 적어도 몇몇 실시예에 따른 예시적인 클라이언트-레벨 보고를 예시한다. 이 예는 오버레이 네트워크 상의 클라이언트의 자원 인스턴스들 간 클라이언트의 종합된 패킷 트래픽 데이터의 분석에 따라 생성되는 제공자 네트워크 상의 예시적인 클라이언트 사설 네트워크 구현의 그래픽 매핑을 도시한다. 클라이언트 자원 인스턴스들(814A 내지 814E)이 도시된다. 클라이언트 자원 인스턴스들(814) 간 연결들 또는 데이터 흐름들이 터널들(806A 내지 806G)로서 도시된다. 각 자원 인스턴스(814)는 하나, 두 개, 또는 그 이상의 다른 자원 인스턴스(814)에 대한 터널들(806)을 위한 종단점일 수 있다. 또한, 클라이언트 자원 인스턴스(814A 및 814B) 간 터널들(806C 및 806D)과 같이, 두 개의 소정의 자원 인스턴스(814) 사이에 두 개 이상의 터널(806)이 존재할 수 있다. 개별적인 터널들(806)에 대한, 예를 들어 도 8a에 도시된 바와 같은, 성능 통계들은 각각의 터널들(806)에 인접하여 디스플레이될 수 있다. 적어도 몇몇 실시예에서, 클라이언트-레벨 보고는 쌍방향일 수 있다. 예를 들어, 사용자는 터널(806) 또는 자원 인스턴스(814)에 대한 성능 통계들을 디스플레이하기 위해 특정한 터널(806) 또는 자원 인스턴스(814)를 선택할 수 있다.
도 8c는 적어도 몇몇 실시예에 따른 제공자 네트워크 상의 VMM들 간 루트에 대한 예시적인 종합 보고를 예시한다. 보고는 두 개의 VMM 간 오버레이 네트워크 상의 모든 터널에 대한 종합 데이터 흐름 정보의 분석에 따라 생성될 수 있다. 식별 필드(830)는 루트에 대한 소스 VMM(A) 및 목적지 VMM(B)을 표시할 수 있고, 또한 VMM들 간 특정한 루트를 식별하는 정보를 포함할 수 있다. 루트 종합 보고는 루트에 대한 산출된 스루풋(832), 레이턴시(834), 및 패킷 손실 레이트(836)를 표시하는 필드들을 포함할 수 있다.
도 8d는 적어도 몇몇 실시예에 따른, 오버레이 네트워크에 대한 예시적인 종합 보고를 예시한다. 오버레이 네트워크-레벨 종합 보고는 오버레이 네트워크가 구현되는 네트워크 기판에 대한 토폴로지 정보와 조합하여 VMM들 간 오버레이 네트워크 상의 몇몇 또는 모든 터널에 대한 종합 데이터 흐름 정보의 분석에 따라 생성될 수 있다. 이 예는 오버레이 네트워크 상의 다수의 클라이언트로부터 종합된 데이터의 분석에 따라 생성되는 제공자 네트워크의 네트워크 기판 상의 예시적인 오버레이 네트워크 구현의 매핑에 대한 그래픽 표현을 도시한다.
도 8d는 제공자 네트워크 상의 가상 기계 모니터들(호스트/VMM들(812A 내지 812C))뿐만 아니라, 호스트들/VMM들(812) 간 라우트들(820)을 이용하여 예시적인 호스트 디바이스들의 그래픽 표현을 도시한다. 호스트들/VMM들(812)의 각 쌍 사이에 하나 이상의 루트(820)(예를 들어, 루트들(820A 내지 820E))가 존재할 수 있다. 원들은 라우터들, 스위치들 등과 같은, 네트워크 기판 상의 노드들(예를 들어, 네트워크 디바이스들)을 나타낸다. 호스트들/VMM들(812) 및 노드들 간 라인들은 노드들 간 또는 노드들 및 호스트 디바이스들 간 연결들 또는 링크들, 예를 들어 광-섬유 연결들을 나타낸다. 두 개 이상의 루트(820)가 소정의 노드를 통과할 수 있다는 것을 주의하자. 예를 들어, 루트들(820D 및 820E) 양자는 노드(822A)를 통과할 수 있고, 루트들(820C 및 820E) 양자는 노드(822B)를 통과할 수 있다. 또한, 두 개의 루트(820)는 연결(예를 들어, 광-섬유 케이블)을 공유할 수 있다. 예를 들어, 루트들(820C 및 820E)은 노드(822B) 및 호스트/VMM(812B) 간 연결을 공유한다. 예를 들어 도 8c에 도시된 바와 같은, 루트들(820)에 대한 성능 통계들은 각각의 루트들에 인접하여 디스플레이될 수 있다. 적어도 몇몇 실시예에서, 종합 보고는 쌍방향일 수 있다. 예를 들어, 사용자는 각각의 루트(820) 또는 호스트/VMM(812)에 대한 성능 통계들을 디스플레이하기 위해 특정한 루트(820) 또는 호스트/VMM(812)을 선택할 수 있다. 또한, 노드들 및 연결들에 대한 성능 통계들은 종합 분석에 따라 산출될 수 있고, 각각의 노드들 및 연결들을 이용하여 종합 보고 상에 디스플레이되거나 쌍방향으로 액세스될 수 있다. 적어도 몇몇 실시예에서, 문제의 노드들 또는 연결들은 종합 분석에 따라 식별되고 예를 들어 시각적(예를 들어, 색상), 텍스트, 또는 다른 표시들을 사용하여, 종합 보고 상에 표시될 수 있다.
예시적인 제공자 네트워크 환경들
이 섹션은 네트워크 트래픽 매핑 및 성능 분석 방법들 및 장치의 실시예들이 구현될 수 있는 예시적인 제공자 네트워크 환경들을 설명한다. 그러나, 이들 예시적인 제공자 네트워크 환경들은 제한하는 것으로 의도되지는 않는다.
도 9는 적어도 몇몇 실시예에 따른, 예시적인 제공자 네트워크 환경을 예시한다. 제공자 네트워크(900)는 클라이언트들이 이들에 제한되지는 않으나 하나 이상의 데이터 센터에서의 제공자 네트워크 또는 네트워크들 내 디바이스들 상에서 구현되는, 산출 및 저장 자원들을 포함하는, 가상화된 지원들의 인스턴스들(912)을 구매, 렌트, 또는 다르게 획득하는 것을 가능하게 하는 하나 이상의 가상화 서비스(910)를 통해 클라이언트들에 자원 가상화를 제공할 수 있다. 사설 IP 어드레스들(916)은 자원 인스턴스들(912)과 연관될 수 있다; 사설 IP 어드레스들은 제공자 네트워크(900) 상의 자원 인스턴스들(912)의 내부 네트워크 어드레스들이다. 몇몇 실시예에서, 제공자 네트워크(900)는 또한 클라이언트들이 제공자(900)로부터 획득할 수 있는 공중 IP 어드레스들(914) 및/또는 공중 IP 어드레스 범위들(예를 들어, 인터넷 프로토콜 버전 4(IPv4) 또는 인터넷 프로토콜 버전 6(IPv6))을 제공할 수 있다.
종래, 제공자 네트워크(900)는 가상화 서비스들(910)을 통해, 서비스 제공자의 클라이언트(예를 들어, 클라이언트 네트워크(950A)를 운영하는 클라이언트)가 클라이언트에 배정 또는 할당되는 적어도 몇몇 공중 IP 어드레스(914)를 클라이언트에 배정되는 특정한 자원 인스턴스들(912)과 동적으로 연관시키는 것을 가능하게 할 수 있다. 제공자 네트워크(900)는 또한 클라이언트가 클라이언트에 할당되는 하나의 가상화된 컴퓨팅 자원 인스턴스(912)에 이전에 매핑된, 공중 IP 어드레스(914)를, 클라이언트에 또한 할당되는 다른 가상화된 컴퓨팅 자원 인스턴스(912)에 재맵핑하는 것을 가능하게 할 수 있다. 서비스 제공자에 의해 제공되는 가상화된 컴퓨팅 자원 인스턴스들(912) 및 공중 IP 어드레스들(914)을 사용하여, 클라이언트 네트워크(950A)의 운영자와 같은 서비스 제공자의 클라이언트는 예를 들어, 클라이언트-특정 애플리케이션들을 구현하고 인터넷과 같은, 매개체 네트워크(940) 상의 클라이언트의 애플리케이션들을 나타낼 수 있다. 그 후 매개체 네트워크(940) 상의 다른 네트워크 엔티티들(920)은 클라이언트 네트워크(950A)에 의해 발행되는 목적지 공중 IP 어드레스(914)에 트래픽을 생성할 수 있다; 트래픽은 서비스 제공자 데이터 센터로 라우팅되고, 데이터 센터에서 목적지 공중 IP 어드레스(914)로 현재 매핑되는 가상화된 컴퓨팅 자원 인스턴스(912)의 사설 IP 어드레스(916)로, 네트워크 기판을 통해, 라우팅된다. 유사하게, 가상화된 컴퓨팅 자원 인스턴스(912)로부터의 응답 트래픽은 소스 엔티티(920)에 대한 매개체 네트워크(940) 상으로 다시 네트워크 기판을 통해 라우팅될 수 있다.
본 출원에서 사용되는 바와 같은, 사설 IP 어드레스들은 제공자 네트워크에서의 자원 인스턴스들의 내부 네트워크 어드레스들을 나타낸다. 사설 IP 어드레스들은 단지 제공자 네트워크 내에서 라우팅 가능하다. 제공자 네트워크 밖에서 비롯되는 네트워크 트래픽은 사설 IP 어드레스들로 직접 라우팅되지 않는다; 대신에, 트래픽은 자원 인스턴스들로 매핑되는 공중 IP 어드레스들을 사용한다. 제공자 네트워크는 공중 IP 어드레스들로부터 사설 IP 어드레스들로의 매핑 및 그 반대를 수행하기 위한 네트워크 어드레스 변환(NAT) 또는 유사한 기능을 제공하는 네트워크 디바이스들 또는 기기들을 포함할 수 있다.
본 출원에서 사용되는 바와 같은, 공중 IP 어드레스들은 서비스 제공자에 의해 또는 클라이언트에 의해, 자원 인스턴스들에 배정되는 인터넷 라우팅 가능한 네트워크 어드레스들이다. 공중 IP 어드레스로 라우팅되는 트래픽은 예를 들어 1:1 네트워크 어드레스 변환(NAT)을 통해 변환되고, 자원 인스턴스의 각각의 사설 IP 어드레스로 포워딩된다.
몇몇 공중 IP 어드레스는 특정한 자원 인스턴스들에 대한 제공자 네트워크 인프라스트럭처에 의해 배정될 수 있다; 이들 공중 IP 어드레스들은 표준 공중 IP 어드레스들, 또는 간단하게 표준 IP 어드레스들로 지칭될 수 있다. 적어도 몇몇 실시예에서, 표준 IP 어드레스의 자원 인스턴스에 대한 사설 IP 어드레스로의 매핑은 모든 자원 인스턴스 유형에 대한 디폴트 개시 구성이다.
적어도 몇몇 공중 IP 어드레스는 제공자 네트워크(900)의 클라이언트들에 할당되거나 그것들에 의해 획득될 수 있다; 그 후 클라이언트는 클라이언트에 할당되는 특정한 자원 인스턴스들에 그것들의 할당된 공중 IP 어드레스들을 배정할 수 있다. 이들 공중 IP 어드레스들은 클라이언트 공중 IP 어드레스들, 또는 간단하게 클라이언트 IP 어드레스들로 지칭될 수 있다. 표준 IP 어드레스들의 경우에서와 같이 자원 인스턴스들에 제공자 네트워크(900)에 의해 배정되는 것을 대신하여, 클라이언트 IP 어드레스들은 예를 들어 서비스 제공자에 의해 제공되는 API를 통해, 클라이언트들에 의해 자원 인스턴스들에 배정될 수 있다. 표준 IP 어드레스들과 달리, 클라이언트 IP 어드레스들은 클라이언트 계정들에 할당되고 필요 시 또는 요구되는 경우 각각의 클라이언트들에 의해 다른 자원 인스턴스들에 재매핑될 수 있다. 클라이언트 IP 어드레스는 특정한 자원 인스턴스가 아닌, 클라이언트의 계정과 연관되고, 클라이언트는 클라이언트가 그것을 해제하도록 선택할 때까지 해당 IP 어드레스를 제어한다. 종래 정적 IP 어드레스들과 달리, 클라이언트 IP 어드레스들은 클라이언트가 클라이언트의 공중 IP 어드레스들을 클라이언트의 계정과 연관된 임의의 자원 인스턴스에 재맵핑함으로써 자원 인스턴스 또는 가용성 존 실패들을 마스킹하는 것을 가능하게 한다. 클라이언트 IP 어드레스들은 예를 들어, 클라이언트가 클라이언트 IP 어드레스들을 대체 자원 인스턴스들에 재맵핑함으로써 클라이언트의 자원 인스턴스들 또는 소프트웨어의 문제들을 피해가게 엔지니어링하는 것을 가능하게 한다.
도 10은 적어도 몇몇 실시예에 따라, IP 터널링 기술을 사용하여 네트워크 기판 상에서 오버레이 네트워크를 구현하는 예시적인 데이터 센터를 예시한다. 제공자 데이터 센터(1000)는 라우터들, 스위치들, 네트워크 어드레스 변환기들(NAT들) 등과 같은 네트워킹 디바이스들(1012)을 포함하는 네트워크 기판을 포함할 수 있다. 적어도 몇몇 실시예는 캡슐화된 패킷들이 터널들을 사용하여 네트워크 기판(1010)을 통해 지나갈 수 있는 오버레이 네트워크를 제공하기 위한 인터넷 프로토콜(IP) 터널링 기술을 채용할 수 있다. IP 터널링 기술은 네트워크(도 10의 데이터 센터(1000)에서의 로컬 네트워크) 상에 오버레이 네트워크를 생성하기 위한 매핑 및 캡슐화 시스템을 제공할 수 있고 오버레이 계층(공중 IP 어드레스들) 및 네트워크 기판(1010) 계층(사설 IP 어드레스들)에 개별 명칭 공간을 제공할 수 있다. 오버레이 계층에서의 패킷들은 어떤 것이 그것들의 터널 기판(사설 IP 어드레스)이 되어야 하는지를 결정하기 위해 매핑 디렉토리(예를 들어, 매핑 서비스(1030)에 의해 제공되는)와 비교하여 체크될 수 있다. IP 터널링 기술은 가상 네크워크 토폴로지(오버레이 네트워크)를 제공한다; 클라이언트들에 제공되는 인터페이스들(예를 들어, 서비스 API들)은 클라이언트가 패킷들을 송신하기 원하는 IP 어드레스를 클라이언트가 제공할 때, IP 어드레스가 어디에 IP 오버레이 어드레스들이 있는지를 아는 매핑 서비스(예를 들어, 매핑 서비스(1030))와 통신함으로써 가상 공간에서 실행되도록 오버레이 네트워크에 연결된다.
적어도 몇몇 실시예에서, IP 터널링 기술은 IP 오버레이 어드레스들(공중 IP 어드레스들)을 기판 IP 어드레스들(사설 IP 어드레스들)에 매핑하고, 두 개의 명칭 공간 간 터널에서 패킷들을 캡슐화하며, 패킷을 터널을 통해 정확한 종단점에 전달할 수 있으며, 여기서 캡슐화는 패킷으로부터 분해된다. 도 10에서, 호스트(1020A) 상의 가상 기계(VM)(1024A)로부터 매개체 네트워크(1050)로의 예시적인 오버레이 네트워크 터널(1034A) 및 호스트(1020B) 상의 VM(1024B) 및 호스트(1020C) 상의 VM(1024C) 간 예시적인 오버레이 네트워크 터널(1034B)이 도시된다. 몇몇 실시예에서, 패킷은 송신하기 전 오버레이 네트워크 패킷 포맷으로 캡슐화될 수 있고, 오버레이 네트워크 패킷은 수신한 후 분해될 수 있다. 다른 실시예들에서, 오버레이 네트워크 패킷들로 패킷들을 캡슐화하는 대신에, 오버레이 네트워크 어드레스(공중 IP 어드레스)는 송신하기 전에 패킷의 기판 어드레스(사설 IP 어드레스)에 내장되고, 수신 시 패킷 어드레스로부터 분해될 수 있다. 예로서, 오버레이 네트워크는 공중 IP 어드레스들로서 32-비트 IPv4(인터넷 프로토콜 버전 4) 어드레스들을 사용하여 구현될 수 있고, IPv4 어드레스들은 사설 IP 어드레스들로서 기판 네트워크 상에서 사용되는 128-비트 IPv6(인터넷 프로토콜 버전 6) 어드레스들의 부분으로서 내장될 수 있다.
도 10을 참조하여, 실시예들이 구현될 수 있는 적어도 몇몇 네트워크는 다수의 운영 시스템이 호스트 컴퓨터(예를 들어, 도 10의 호스트들(1020A 및 1020B)) 상에서 동시에, 즉 호스트들(1020) 상의 가상 기계들(VM들)(1024)로서 실행하는 것을 가능하게 하는 하드웨어 가상화 기술을 포함할 수 있다. VM들(1024)은 예를 들어, 네트워크 제공자의 클라이언트들에 렌트 또는 리스될 수 있다. 호스트 상(1020)의, 하이퍼바이저, 또는 가상의 기계 모니터(VMM; virtual machine monitor)(1022)는 가상 플랫폼으로 호스트 상의 VM들(1024)을 나타내고 VM들(1024)의 실행을 모니터링한다. 각 VM(1024)은 하나 이상의 사설 IP 어드레스를 구비할 수 있고; 호스트(1020) 상의 VMM(1022)은 호스트 상의 VM들(1024)의 사설 IP 어드레스들을 인식할 수 있다. 매핑 서비스(1030)는 라우터들 또는 로컬 네트워크 상에서 IP 어드레스들을 제공하는 다른 디바이스들의 모든 네트워크 IP 프리픽스 및 IP 어드레스를 인식할 수 있다. 이는 다수의 VM(1024)을 제공하는 VMM들(1022)의 IP 어드레스들을 포함한다. 매핑 서비스(1030)는 예를 들어 서버 시스템 상에, 중앙 집중될 수 있거나, 대안적으로 두 개 이상의 서버 시스템 또는 네트워크 상의 다른 디바이스들 사이에 분산될 수 있다. 네트워크는 예를 들어, 데이터 센터(1000) 네트워크 내 상이한 호스트들(1020) 상의 VM들(1024) 간 데이터 패킷들을 라우팅하기 위해 매핑 서비스 기술 및 IP 터널링 기술을 사용할 수 있다; 내부 게이트웨이 프로토콜(IGP)이 그러한 로컬 네트워크 내 라우팅 정보를 교환하는데 사용될 수 있다.
또한, 제공자 데이터 센터(1000) 네트워크(때때로 자율 시스템(AS; autonomous system)으로 지칭되는)와 같은 네트워크는 패킷들을 VM들(1024)로부터 인터넷 목적지들로, 그리고 인터넷 소스들로부터 VM들(1024)로 라우팅하기 위해 매핑 서비스 기술, IP 터널링 기술, 및 라우팅 서비스 기술을 사용할 수 있다. 외부 게이트웨이 프로토콜(EGP) 또는 경계 게이트웨이 프로토콜(BGP)은 통상적으로 인터넷 상에서 소스들 및 목적지들 간 인터넷 라우팅을 위해 사용된다. 도 10 은 적어도 몇몇 실시예에 따라, 자원 가상화 기술 을 제공하고 인터넷 이행 제공자들에 연결하는 에지 라우터(들)(1014)를 통해 풀 인터넷 액세스를 제공하는 네트워크를 구현하는 예시적인 제공자 데이터 센터(1000)를 도시한다. 제공자 데이터 센터(1000)는 예를 들어, 하드웨어 가상화 서비스를 통해 가상 컴퓨팅 시스템들(VM들(1024))을 구현하는 능력 및 저장 가상화 서비스를 통해 저장 자원들(1018) 상의 가상화된 데이터 저장소들(1016)을 구현하는 능력을 클라이언트들에 제공할 수 있다.
데이터 센터(1000) 네트워크는 트래픽을 가상화된 자원들로 및 그것들로부터 라우팅하기 위해, 예를 들어 패킷들을 데이터 센터(1000)에서의 호스트들(1020) 상의 VM들(1024)로부터 인터넷 목적지들로, 및 인터넷 소스들로부터 VM들(1024)로 라우팅하기 위해 IP 터널링 기술, 매핑 서비스 기술, 및 라우팅 서비스 기술을 구현할 수 있다. 인터넷 소스들 및 목적지들은 예를 들어, 매개체 네트워크(1040)에 연결되는 컴퓨팅 시스템들(1070) 및 매개체 네트워크(1040)에 연결하는 로컬 네트워크들(1050)에 연결되는 컴퓨팅 시스템들(1052)(예를 들어, 인터넷 이행 제공자들로 네트워크(1050)를 연결하는 에지 라우터(들)(1014)를 통해)을 포함할 수 있다. 제공자 데이터 센터(1000) 네트워크는 또한 패킷들을 데이터 센터(1000)에서의 자원들 사이에, 예를 들어 데이터 센터(1000)에서의 호스트(1020) 상의 VM(1024)으로부터 데이터 센터(1000)에서의 동일한 호스트 또는 다른 호스트들(1020) 상의 다른 VM들(1024)로 라우팅할 수 있다.
데이터 센터(1000)를 제공하는 서비스 제공자는 또한 데이터 센터(1000)와 유사한 하드웨어 가상화 기술을 포함하는 그리고 또한 매개체 네트워크(1040)에 연결될 수 있는 추가 데이터 센터(들)(1060)를 제공할 수 있다. 패킷들은 데이터 센터(1000)로부터 다른 데이터 센터들(1060)로, 예를 들어 데이터 센터(1000)에서의 호스트(1020) 상의 VM(1024)으로부터 다른, 유사한 데이터 센터(1060)에서의 다른 호스트 상의 다른 VM으로, 및 그 반대로 포워딩될 수 있다.
상기한 내용이 다수의 운영 시스템이 호스트들 상의 가상 기계들(VM들)로서 호스트 컴퓨터들 상에서 동시에 실행하는 것을 가능하게 하는 하드웨어 가상화 기술을 설명하며, 여기서 VM들은 네트워크 제공자의 클라이언트들에 렌트 또는 리스될 수 있지만, 하드웨어 가상화 기술은 또한 유사한 방식으로 네트워크 제공자의 클라이언트들에 가상화된 자원들로서, 다른 컴퓨팅 자원들, 예를 들어 저장 자원들(1018)을 제공하는데 사용될 수 있다.
도 11은 적어도 몇몇 실시예에 따라, 클라이언트들에 저장 가상화 서비스 및 하드웨어 가상화 서비스를 제공하는 예시적인 제공자 네트워크의 블록도이다. 하드웨어 가상화 서비스(1120)는 클라이언트들에 다수의 산출 자원들(1124)(예를 들어, VM들)을 제공한다. 산출 자원들(1124)은 예를 들어, 제공자 네트워크(1100)의 클라이언트들에(예를 들어, 클라이언트 네트워크(1150)를 구현하는 클라이언트에) 렌트 또는 리스될 수 있다. 각 산출 자원(1124)은 하나 이상의 사설 IP 어드레스를 구비할 수 있다. 제공자 네트워크(1100)는 패킷들을 산출 자원들(1124)의 사설 IP 어드레스들로부터 공중 인터넷 목적지들로, 그리고 공중 인터넷 소스들로부터 산출 자원들(1124)로 라우팅하도록 구성될 수 있다.
제공자 네트워크(1100)는 예를 들어 로컬 네트워크(1156)를 통해 매개체 네트워크(1140)에 결합되는, 클라이언트 네트워크(1150)에, 매개체 네트워크(1140)에 그리고 제공자 네트워크(1100)에 연결되는 하드웨어 가상화 서비스(1120)를 통해 가상 컴퓨팅 시스템들(1192)을 구현하는 능력을 제공할 수 있다. 몇몇 실시예에서, 하드웨어 가상화 서비스(1120)는 이를 통해, 예를 들어 콘솔(1194)을 통해 클라이언트 네트워크(1150)가 하드웨어 가상화 서비스(1120)에 의해 제공되는 기능에 액세스할 수 있는 하나 이상의 API(1102), 예를 들어 웹 서비스 인터페이스를 제공할 수 있다. 적어도 몇몇 실시예에서, 제공자 네트워크(1100)에서, 클라이언트 네트워크(1150)에서의 각 가상 컴퓨팅 시스템(1192)은 클라이언트 네트워크(1150)에 리스, 렌트 또는 다르게 제공되는 산출 자원(1124)에 대응할 수 있다.
가상 컴퓨팅 시스템(1192) 및/또는 다른 클라이언트 디바이스(1190) 또는 콘솔(1194)의 자원으로부터, 클라이언트는 제공자 네트워크(1100)에 의해 제공되는 가상 데이터 저장소(1116)로부터의 데이터에 액세스하고 가상 데이터 저장소(1116)로 데이터를 저장하기 위해, 예를 들어 하나 이상의 API(1102)를 통해, 저장 가상화 서비스(1110)의 기능에 액세스할 수 있다. 몇몇 실시예에서, 가상화된 데이터 저장소 게이트웨이(미도시)는 적어도 몇몇 데이터, 예를 들어 빈번하게 액세스되거나 중요한 데이터를 지역적으로 캐싱할 수 있고, 데이터의 주요 저장소(가상화된 데이터 저장소(1116))가 유지되도록 로컬 캐시로부터 새로운 또는 변경된 데이터를 업로드 하기 위해 하나 이상의 통신 채널을 통해 가상화된 데이터 저장 서비스(1110)와 통신할 수 있는 클라이언트 네트워크(1150)에서 제공될 수 있다. 적어도 몇몇 실시예에서, 사용자는 가상 컴퓨팅 시스템(1192) 및/또는 다른 클라이언트 디바이스(1190)를 통해, 가상 데이터 저장소(1116) 볼륨들을 장착하고 그것들에 액세스할 수 있으며, 이는 사용자에게 로컬 가상화된 저장장치(1198)로 나타난다.
도 11에 도시되지 않았지만, 가상화 서비스(들)는 또한 API(들)(1102)를 통해 제공자 네트워크(1100) 내 자원 인스턴스들로부터 액세스될 수 있다. 예를 들어, 클라이언트, 기기 서비스 제공자, 또는 다른 엔티티는 해당 사설 네트워크 내 또는 다른 사설 네트워크 내 하나 이상의 자원 인스턴스의 할당을 요청하기 위해 API(1102)를 통해 제공자 네트워크(1100) 상의 각각의 사설 네트워크 내부로부터 가상화 서비스에 액세스할 수 있다.
도 12는 적어도 몇몇 실시예에 따라, 적어도 몇몇 클라이언트에 제공자 네트워크 상에 사설 네트워크들을 제공하는 예시적인 제공자 네트워크를 예시한다. 제공자 네트워크(1200) 상의 클라이언트의 가상화된 사설 네트워크(1260)는 예를 들어, 클라이언트가 지역적으로 분리된 자원 인스턴스들(예를 들어, VM들(1124A 및 1124B) 및 저장장치(1218A 및 1218B))의 세트에 클라이언트 네트워크(1250) 상의 그것들의 기존 인프라스트럭처(예를 들어, 디바이스들(1252))를 연결하는 것을, 그리고 그것들의 자원 인스턴스들들 포함하기 위해 보안 서비스들, 방화벽들, 및 침입 검출 시스템들과 같은 관리 역량들을 확장하는 것을 가능하게 한다.
클라이언트의 가상화 사설 네트워크(1260)는 사설 통신 채널(1242)을 통해 클라이언트 네트워크(1250)에 연결될 수 있다. 사설 통신 채널(1242)은 예를 들어, 매개체 네트워크(1240)를 통해 네트워크 터널링 기술 또는 몇몇 다른 대등 접속 연결에 따라 구현되는 터널일 수 있다. 매개체 네트워크는 예를 들어, 공유 네트워크 또는 인터넷과 같은 공중 네트워크일 수 있다. 대안적으로, 사설 통신 채널(1242)은 가상화된 사설 네트워크(1260) 및 클라이언트 네트워크(1250) 간 직접, 전용 연결을 통해 구현될 수 있다.
공중 네트워크는 복수의 엔티티에 개방 액세스 및 복수의 엔티티 간 상호연결성을 제공하는 네트워크로 넓게 정의될 수 있다. 인터넷, 또는 월드 와이드 웹(WWW)은 공중 네트워크의 예이다. 공유 네트워크는 액세스가 일반적으로 제한되지 않는 공중 네트워크와 대조적으로, 액세스가 두 개 이상의 엔티티로 제한되는 네트워크로 넓게 정의될 수 있다. 공유 네트워크는 예를 들어, 하나 이상의 로컬 영역 네트워크들(LAN들) 및/또는 데이터 센터 네트워크들, 또는 광역 네트워크(WAN)를 형성하도록 상호연결되는 두 개 이상의 로컬 영역 네트워크들(LAN들) 또는 데이터 센터 네트워크들을 포함할 수 있다. 공유 네트워크들의 예들은 이에 제한되지는 않으나, 기업 네트워크들 및 다른 회사 네트워크들을 포함할 수 있다. 공유 네트워크는 로컬 영역을 커버하는 네트워크로부터 글로벌 네트워크로의 범위 중 어디에든 있을 수 있다. 공유 네트워크는 공중 네트워크와 적어도 일부 네트워크 인프라스트럭처를 공유할 수 있다는 것, 및 공유 네트워크는 다른 네트워크(들) 및 공유 네트워크 간 통제된 액세스를 갖고, 공중 네트워크를 포함할 수 있는, 하나 이상의 다른 네트워크에 결합될 수 있다는 것을 주의하자. 공유 네트워크는 또한 인터넷과 같은 공중 네트워크와 대조적으로, 사설 네트워크로서 보여질 수 있다. 실시예들에서, 공유 네트워크 또는 공중 네트워크는 제공자 네트워크 및 클라이언트 네트워크 간 매개체 네트워크의 역할을 할 수 있다.
제공자 네트워크(1200) 상의 클라이언트를 위한 가상화된 사설 네트워크(1260)를 설정하기 위해, 하나 이상의 자원 인스턴스(예를 들어, VM들(1224A 및 1224B) 및 저장장치(1218A 및 1218B))는 가상화된 사설 네트워크(1260)에 할당될 수 있다. 다른 자원 인스턴스들(예를 들어, 저장장치(1218C) 및 VM들(1224C))은 다른 클라이언트 사용을 위해 제공자 네트워크(1200) 상에서 계속 이용 가능할 수 있다. 공중 IP 어드레스들의 범위는 또한 가상화된 사설 네트워크(1260)에 할당될 수 있다. 또한, 제공자 네트워크(1200)의 하나 이상의 네트워킹 디바이스(라우터, 스위치 등)는 가상화된 사설 네트워크(1260)에 할당될 수 있다. 사설 통신 채널(1242)은 가상화된 사설 네트워크(1260)의 사설 게이트웨이(1262) 및 클라이언트 네트워크(1250)의 게이트웨이(1256) 사이에 설정될 수 있다.
적어도 몇몇 실시예에서, 사설 게이트웨이(1262)에 추가하여, 또는 그 대신에, 가상화된 사설 네트워크(1260)는 가상화된 사설 네트워크(1260) 내 자원들이 사설 통신 채널(1242)을 통하는 대신 또는 그에 추가하여, 매개체 네트워크(1240)를 통해, 및 그 반대로, 엔티티들(예를 들어, 네트워크 엔티티(1244))과 직접 통신하는 것을 가능하게 하는 공중 게이트웨이(1264)를 포함할 수 있다.
가상화된 사설 네트워크(1260)는 반드시는 아니나, 두 개 이상의 서브넷(1270)으로 세분화될 수 있다. 예를 들어, 사설 게이트웨이(1262) 및 공중 게이트웨이(1264) 양자를 포함하는 구현들에서, 사설 네트워크는 사설 게이트웨이(1262)를 통해 도달 가능한 자원들(이 예에서, VM들(1224A) 및 저장장치(1218A))을 포함하는 서브넷(1270A), 및 공중 게이트웨이(1264)를 통해 도달 가능한 자원들(이 예에서, VM들(1224B) 및 저장장치(1218B))을 포함하는 서브넷(1270B)으로 세분화될 수 있다.
클라이언트는 가상화된 사설 네트워크(1260) 에서의 특정한 자원 인스턴스들에 특정한 클라이언트 공중 IP 어드레스들을 배정할 수 있다. 그 후 매개체 네트워크(1240) 상의 네트워크 엔티티(1244)는 트래픽을 클라이언트에 의해 발행되는 공중 IP 어드레스로 송신할 수 있다; 트래픽은 제공자 네트워크(1200)에 의해, 관련 자원 인스턴스로 라우팅된다. 자원 인스턴스로부터의 리턴 트래픽은 제공자 네트워크(1200)에 의해, 매개체 네트워크(1240)를 통해 네트워크 엔티티(1244)로 다시 라우팅된다. 트래픽을 자원 인스턴스 및 네트워크 엔티티(1244) 간 라우팅은 자원 인스턴스의 사설 IP 어드레스 및 공중 IP 어드레스 간 변환을 위해 네트워크 어드레스 변환을 필요로 할 수 있다는 것을 주의하자.
적어도 몇몇 실시예는 클라이언트가 도 12에 예시된 바와 같은 클라이언트의 가상화된 사설 네트워크(1260)에서의 공중 IP 어드레스들을 클라이언트의 외부 네트워크(1250) 상의 디바이스들에 재맵핑하는 것을 가능하게 할 수 있다. 패킷이 수신될 때(예를 들어, 네트워크 엔티티(1244)로부터), 네트워크(1200)는 패킷에 의해 표시되는 목적지 IP 어드레스가 외부 네트워크(1250) 상의 종단점으로 재매핑되었다는 것을 결정하고 사설 통신 채널(1242)을 통해 또는 매개체 네트워크(1240)를 통해, 각각의 종단점으로 패킷을 라우팅하는 것을 핸들링할 수 있다. 응답 트래픽은 제공자 네트워크(1200)를 통해 종단점으로부터 네트워크 엔티티(1244)로 라우팅될 수 있거나, 대안적으로 클라이언트 네트워크(1250)에 의해 네트워크 엔티티(1244)로 직접 라우팅될 수 있다. 네트워크 엔티티(1244)의 관점에서는, 네트워크 엔티티(1244)가 마치 제공자 네트워크(1200) 상의 클라이언트의 공중 IP 어드레스와 통신하고 있는 것으로 보인다. 그러나, 네트워크 엔티티(1244)는 실제로 클라이언트 네트워크(1250) 상의 종단점과 통신해왔다.
도 12가 매개체 네트워크(1240) 상의 그리고 제공자 네트워크(1200) 외부의 네트워크 엔티티(1244)를 도시하지만, 네트워크 엔티티는 제공자 네트워크(1200) 상의 엔티티일 수 있다. 예를 들어, 제공자 네트워크(1200)에 의해 제공되는 자원 인스턴스들 중 하나는 트래픽을 클라이언트에 의해 발행되는 공중 IP 어드레스로 송신하는 네트워크 엔티티일 수 있다.
예시적인 실시예들
본 발명의 실시예들은 다음 절들을 고려하여 설명될 수 있다:
1. 제공자 네트워크로서;
네트워크 기판;
복수의 멀티-테넌트 호스트 디바이스로서, 각 호스트 디바이스는 복수의 클라이언트 자원 인스턴스를 포함하고, 각 클라이언트 자원 인스턴스는 제공자 네트워크의 복수의 클라이언트 중 하나에 배정되고, 적어도 하나의 호스트 디바이스 상의 적어도 두 개의 클라이언트 자원 인스턴스가 복수의 클라이언트 중 상이한 클라이언트들에 배정되는, 상기 멀티-테넌트 호스트 디바이스; 및
오버레이 네트워크 분석 서비스를 구현하는 하나 이상의 컴퓨팅 디바이스를 포함하고;
각 호스트 디바이스는 하나 이상의 오버레이 네트워크 터널에 대한 성능 데이터를 수집하도록 구성되고, 각 오버레이 네트워크 터널은 네트워크 기판을 통해 각각의 호스트 디바이스로부터 호스트 디바이스들 중 다른 호스트 디바이스에 오버레이 네트워크 패킷들을 운반하고, 각각의 오버레이 네트워크 터널 상의 각 오버레이 네트워크 패킷은 각각의 호스트 디바이스 상의 클라이언트 자원 인스턴스들 중 하나로부터 획득되고 다른 호스트 디바이스 상의 클라이언트 자원 인스턴스들 중 하나에 타겟팅되는 클라이언트 데이터를 포함하고, 성능 데이터는 오버레이 네트워크 터널들을 통해 전달되는 오버레이 네트워크 패킷들에 대해 결정되는 왕복 시간들을 포함하며;
오버레이 네트워크 분석 서비스는:
복수의 호스트 디바이스로부터 성능 데이터를 획득하고;
획득된 성능 데이터에 따라 오버레이 네트워크에 대한 성능 정보를 생성하도록 구성되고, 성능 정보는 터널들에 대해 결정된 시간들에 따라 산출되는 오버레이 네트워크 터널들에 대한 레이턴시 메트릭을 포함하는, 제공자 네트워크.
2. 절 1에서, 오버레이 네트워크 터널에 대해 수집되는 성능 데이터는 오버레이 네트워크 터널에 대해 드롭된 패킷들을 더 표시하고, 성능 정보는 오버레이 네트워크 터널에 대해 드롭된 패킷들의 표시에 따라 적어도 하나의 오버레이 네트워크 터널에 대해 산출되는 패킷 손실 레이트를 더 포함하는, 제공자 네트워크.
3. 절 1에서, 각 호스트 디바이스는 오버레이 네트워크 터널을 통해 다른 호스트 디바이스에 송신되는 적어도 하나의 오버레이 네트워크 패킷에 대해:
오버레이 네트워크 패킷이 오버레이 네트워크 터널 상에 송신된 때를 표시하는 송신 시간을 기록하고;
오버레이 네트워크 터널을 통해 다른 호스트 디바이스로부터 오버레이 네트워크 패킷의 수신에 대한 확인 응답을 수신하며;
기록된 송신 시간 및 확인 응답에 따라 오버레이 네트워크 패킷에 대한 왕복 시간을 산출하도록 더 구성되는, 제공자 네트워크.
4. 절 1에서, 각 호스트 디바이스는 오버레이 네트워크 터널을 통해 다른 호스트 디바이스에 송신되는 두 개 이상의 오버레이 네트워크 패킷에 대해:
오버레이 네트워크 터널을 통해 다른 호스트 디바이스로부터 두 개 이상의 오버레이 네트워크 패킷에 대한 단일 확인 응답 메시지를 수신하고;
확인 응답 메시지에 따라 두 개 이상의 오버레이 네트워크 패킷에 대한 성능 데이터를 결정하도록 더 구성되는, 제공자 네트워크.
5. 절 1에서, 오버레이 네트워크 분석 서비스에 의해 획득되는 성능 데이터는 제공자 네트워크 상의 특정한 클라이언트의 사설 네트워크 구현에서의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 루트들에 대해 수집되는 성능 데이터를 포함하고, 하나 이상의 성능 정보는 제공자 네트워크 상의 특정한 클라이언트의 사설 네트워크 구현에 대해 생성되는, 제공자 네트워크.
6. 절 5에서, 오버레이 네트워크 분석 서비스는 성능 데이터에 따라 클라이언트의 사설 네트워크 구현의 매핑을 생성하도록 더 구성되고, 매핑은 클라이언트 자원 인스턴스들 및 클라이언트의 사설 네트워크 구현에서의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 터널들을 표시하는, 제공자 네트워크.
7. 절 1에서, 오버레이 네트워크 분석 서비스에 의해 획득되는 성능 데이터는 복수의 클라이언트 중 두 개 이상 클라이언트의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 터널들에 대해 수집되는 성능 데이터를 포함하고, 성능 정보는 두 개 이상의 클라이언트에 대해 종합된 성능 데이터에 따라 생성되는, 제공자 네트워크.
8. 절 7에서, 오버레이 네트워크 분석 서비스는:
네트워크 기판에 대한 종합된 성능 데이터 및 토폴로지 정보에 따라 오버레이 네트워크의 매핑을 생성하는 것으로서, 호스트들 및 호스트들 간 네트워크 기판 위의 루트들을 표시하는, 상기 매핑을 생성하고;
상기 종합된 성능 데이터 및 토폴로지 정보에 따라 네트워크 기판의 하나 이상의 컴포넌트의 각각에 대한 성능 메트릭들을 생성하도록 더 구성되는, 제공자 네트워크.
9. 방법에 있어서:
제공자 네트워크 상의 하나 이상의 컴퓨팅 디바이스 상에서 구현되는 서비스에 의해, 제공자 네트워크에서의 상이한 호스트들 간 네트워크 기판 상의 오버레이 네트워크를 통해 송신되는 클라이언트 데이터 패킷들에 대한 성능 데이터를 획득하는 단계로서, 각 클라이언트 데이터 패킷은 오버레이 네트워크를 거쳐 네트워크 기판을 통해 클라이언트 데이터 패킷을 라우팅하기 위해 오버레이 네트워크 메타데이터로 태깅되는, 상기 클라이언트 데이터 패킷들에 대한 성능 데이터를 획득하는 단계;
성능 데이터에 따라 오버레이 네트워크에 대한 하나 이상의 성능 메트릭을 결정하는 단계로서, 성능 메트릭들은 네트워크 기판 위의 하나 이상의 오버레이 네트워크 루트에 대한 레이턴시 메트릭을 포함하는, 상기 성능 메트릭을 결정하는 단계; 및
오버레이 네트워크에 대한 하나 이상의 성능 메트릭들을 표시하는 출력을 생성하는 단계를 포함하는, 방법.
10. 절 9에서, 각 호스트는 복수의 클라이언트 자원 인스턴스를 포함하고, 각 클라이언트 자원 인스턴스는 제공자 네트워크의 복수의 클라이언트 중 하나에 배정되고, 적어도 하나의 호스트 상의 적어도 두 개의 클라이언트 자원 인스턴스가 제공자 네트워크의 상이한 클라이언트들에 배정되는, 방법.
11. 절 10에서, 클라이언트 자원 인스턴스들은 호스트들 상의 가상 기계들(VM들)로서 구현되고, 각 호스트는 각각의 호스트 상의 복수의 가상 기계(VM)을 모니터링하는 가상 기계 모니터(VMM; virtual machine monitor)를 포함하고 오버레이 네트워크 루트들을 거쳐 네트워크 기판을 통해 호스트 상의 클라이언트 자원 인스턴스들에서 비롯되는 클라이언트 데이터 패킷들을 송신하는, 방법.
12. 절 10에서, 호스트들에서 성능 데이터를 생성하는 단계를 더 포함하고, 성능 데이터를 생성하는 단계는 각 호스트에서, 호스트에서의 하나 이상의 클라이언트 자원 인스턴스에서 비롯되고 각각의 오버레이 네트워크 루트들을 통해 하나 이상의 다른 호스트에서의 하나 이상의 다른 클라이언트 자원 인스턴스에 오버레이 네트워크 패킷들로서 전달하기 위한 호스트에서 오버레이 네트워크 프로토콜에 따라 오버레이 네트워크 메타데이터로 태깅되는 클라이언트 데이터 패킷들에 대한 성능 데이터를 수집하는 단계를 포함하는, 방법.
13. 절 12에서, 각 호스트에서 성능 데이터를 생성하는 단계는 다른 호스트에 오버레이 네트워크 루트를 통해 송신되는 하나 이상의 오버레이 네트워크 패킷의 각각에 대해:
오버레이 네트워크 패킷이 오버레이 네트워크 루트 상에 송신된 때를 표시하는 송신 시간을 기록하는 단계;
오버레이 네트워크 루트를 통해 다른 호스트로부터 오버레이 네트워크 패킷의 수신에 대한 확인 응답을 수신하는 단계; 및
기록된 송신 시간 및 확인 응답에 따라 오버레이 네트워크 루트 상의 오버레이 네트워크 패킷에 대한 왕복 시간을 산출하는 단계를 포함하는, 방법.
14. 절 12에서, 각 호스트에서 성능 데이터를 생성하는 단계는 다른 호스트에 오버레이 네트워크 루트를 통해 송신되는 오버레이 네트워크 패킷들에 대해:
호스트에 의해, 다른 호스트에 송신되는 매 N번째 오버레이 네트워크 패킷마다 다른 호스트로부터의 확인 응답 메시지를 요청하는 단계;
호스트에 의해, N개의 송신된 오버레이 네트워크 패킷 중 두 개 이상의 오버레이 네트워크 패킷의 수신을 표시하는 다른 호스트로부터의 단일 확인 응답 메시지를 수신하는 단계; 및
확인 응답 메시지에 따라 N개의 송신된 오버레이 네트워크 패킷에 대한 성능 데이터를 생성하는 단계를 포함하는, 방법.
15. 절 12에서, 각 호스트에서 성능 데이터를 생성하는 단계는 오버레이 네트워크 루트를 통해 다른 호스트로 송신되는 적어도 하나의 오버레이 네트워크 패킷에 대해, 다른 호스트로부터 오버레이 네트워크 루트를 통해 오버레이 네트워크 패킷의 수신에 대한 확인 응답을 수신하는 단계를 포함하는, 방법.
16. 절 15에서, 수신에 대한 확인 응답에는 오버레이 네트워크를 거쳐 네트워크 기판을 통해 클라이언트 확인 응답 패킷을 라우팅하기 위해 다른 호스트에서 오버레이 네트워크 메타데이터로 태깅되는 클라이언트 확인 응답 패킷이 함께 포함되는, 방법.
17. 절 9에서, 성능 데이터는 각 오버레이 네트워크 루트에 대해 결정되는 왕복 시간들을 포함하고, 각 오버레이 네트워크 루트에 대한 레이턴시 메트릭은 각각의 오버레이 네트워크 루트에 대한 왕복 시간들로부터 결정되는, 방법.
18. 절 9에서, 성능 데이터는 오버레이 네트워크 루트들에 대해 드롭된 패킷들을 표시하고, 각 오버레이 네트워크 루트에 대해 결정되는 성능 메트릭들은 오버레이 네트워크 루트에 대한 드롭된 패킷들의 표시에 따라 산출되는 패킷 손실 레이트를 더 포함하는, 방법.
19. 절 9에서, 서비스에 의해 획득되는 성능 데이터는 제공자 네트워크 상의 특정한 클라이언트의 사설 네트워크 구현에서의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 루트들에 대해 수집되는 성능 데이터를 포함하고, 하나 이상의 성능 메트릭은 제공자 네트워크 상의 특정한 클라이언트의 사설 네트워크 구현에 대해 결정되는, 방법.
20. 절 19에서, 성능 데이터에 따라 클라이언트의 사설 네트워크 구현의 매핑을 생성하는 단계를 더 포함하고, 매핑은 클라이언트 자원 인스턴스들 및 사설 네트워크 구현에서의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 루트들을 표시하는, 방법.
21. 절 9에서, 오버레이 네트워크 분석 서비스에 의해 획득되는 성능 데이터는 제공자 네트워크의 복수의 클라이언트 중 두 개 이상 클라이언트의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 루트들 대해 수집되는 성능 데이터를 포함하고, 성능 메트릭들은 두 개 이상의 클라이언트에 대해 종합된 성능 데이터에 따라 결정되는, 방법.
22. 절 21에서, 네트워크 기판에 대해 종합된 성능 데이터 및 토폴로지 정보에 따라 오버레이 네트워크의 매핑을 생성하는 단계를 더 포함하고, 매핑은 호스트들 및 호스트들 간 네트워크 기판 위의 루트들을 표시하는, 방법.
23. 절 21에서, 네트워크 기판에 대한 종합된 성능 데이터 및 토폴로지 정보에 따라 네트워크 기판의 하나 이상의 컴포넌트 각각에 대한 성능 메트릭들을 생성하는 단계를 더 포함하는, 방법.
24. 프로그램 명령들을 저장하는 비-일시적 컴퓨터-액세스 가능 저장 매체로서, 프로그램 명령들은:
제공자 네트워크에서의 상이한 호스트들 간 오버레이 네트워크를 통해 네트워크 기판 위로 송신되는 클라이언트 데이터 패킷들에 대한 성능 데이터를 수집하는 것으로서, 성능 데이터는 오버레이 네트워크를 통해 전달되는 오버레이 네트워크 패킷들에 대해 결정되는 왕복 시간들을 포함하고, 오버레이 네트워크 패킷은 오버레이 네트워크를 통해 라우팅하기 위한 오버레이 네트워크 프로토콜에 따라 캡슐화되는 클라이언트 데이터 패킷인, 상기 클라이언트 데이터 패킷들에 대한 성능 데이터를 수집하는 것;
성능 데이터에 따라 오버레이 네트워크에 대한 성능 정보를 결정하는 것으로서, 성능 정보는 하나 이상의 오버레이 네트워크 루트 각각에 대한 레이턴시 메트릭을 포함하고, 각 오버레이 네트워크 루트에 대한 레이턴시 메트릭은 각각의 오버레이 네트워크 루트에 대한 왕복 시간들로부터 결정되는, 상기 오버레이 네트워크에 대한 성능 정보를 결정하는 것; 및
오버레이 네트워크에 대한 성능 정보를 표시하는 출력을 생성하는 것을 구현하도록 컴퓨터-실행 가능한, 비-일시적 컴퓨터-액세스 가능 저장 매체.
25. 절 24에서, 각 호스트는 복수의 클라이언트 자원 인스턴스를 포함하고, 각 클라이언트 자원 인스턴스는 제공자 네트워크의 복수의 클라이언트 중 하나에 배정되고, 적어도 하나의 호스트 상의 적어도 두 개의 클라이언트 자원 인스턴스가 제공자 네트워크의 상이한 클라이언트들에 배정되는, 비-일시적 컴퓨터-액세스 가능 저장 매체.
26. 절 24에서, 수집된 성능 데이터는 오버레이 네트워크 루트들에 대해 드롭된 패킷들을 더 표시하고, 성능 데이터는 각각의 오버레이 네트워크 루트에 대해 드롭된 패킷들의 표시에 따라 산출되는 하나 이상의 오버레이 네트워크 루트들 각각에 대한 패킷 손실 레이트를 더 포함하는, 비-일시적 컴퓨터-액세스 가능 저장 매체.
27. 절 24에서, 수집된 성능 데이터는 제공자 네트워크 상의 특정한 클라이언트의 사설 네트워크 구현에서의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 루트들에 대해 수집되는 성능 데이터를 포함하고, 성능 정보는 제공자 네트워크 상의 특정한 클라이언트의 사설 네트워크 구현에 대해 결정되는, 비-일시적 컴퓨터-액세스 가능 저장 매체.
28. 절 24에서, 수집된 성능 데이터는 제공자 네트워크의 복수의 클라이언트 중 두 개 이상의 클라이언트의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 루트들 대해 수집되는 성능 데이터를 포함하고, 성능 정보는 두 개 이상의 클라이언트에 대해 종합된 성능 데이터에 따라 결정되는, 비-일시적 컴퓨터-액세스 가능 저장 매체.
29. 절 24에서, 프로그램 명령들은 네트워크 기판에 대한 수집된 성능 데이터 및 토폴로지 정보에 따라 오버레이 네트워크의 매핑을 생성하는 것을 더 구현하도록 컴퓨터-실행 가능하고, 매핑은 호스트들 및 호스트들 간 네트워크 기판 위의 호스트들 간 오버레이 네트워크 루트들을 표시하는, 비-일시적 컴퓨터-액세스 가능 저장 매체.
30. 절 24에서, 프로그램 명령들은 네트워크 기판에 대한 수집된 성능 데이터 및 토폴로지 정보에 따라 네트워크 기판의 하나 이상의 컴포넌트 각각에 대한 성능 메트릭들을 생성하는 것을 더 구현하도록 컴퓨터-실행 가능한, 비-일시적 컴퓨터-액세스 가능 저장 매체.
실례가 되는 시스템
적어도 몇몇 실시예에서, 본 출원에 설명된 바와 같은 네트워크 트래픽 매핑 및 성능 분석 방법들 및 장치의 일부 또는 전부를 구현하는 서버는 도 13에 예시된 컴퓨터 시스템(2000)과 같은, 하나 이상의 컴퓨터-액세스 가능 매체를 포함하거나 이에 액세스하도록 구성되는 범용 컴퓨터 시스템을 포함할 수 있다. 예시된 실시예에서, 컴퓨터 시스템(2000)은 입력/출력(I/O) 인터페이스(2030)를 통해 시스템 메모리(2020)에 결합되는 하나 이상의 프로세서(2010)를 포함한다. 컴퓨터 시스템(2000)은 I/O 인터페이스(2030)에 결합된 네트워크 인터페이스(2040)를 더 포함한다.
다양한 실시예들에서, 컴퓨터 시스템(2000)은 하나의 프로세서(2010)를 포함하는 단일 프로세서 시스템, 또는 몇몇(예를 들어, 2, 4, 8, 또는 또 다른 적합한 수) 프로세서(2010)를 포함하는 멀티프로세서 시스템일 수 있다. 프로세서들(2010)은 기존 명령들이 가능한 임의의 적합한 프로세서들일 수 있다. 예를 들어, 다양한 실시예들에서, 프로세서들(2010)은 x86, PowerPC, SPARC, 또는 MIPS ISA들, or 임의의 다른 적합한 ISA와 같은, 다양한 명령 세트 아키텍처들(ISA들) 중 임의의 아키텍처를 구현하는 범용 또는 내장 프로세서들일 수 있다. 멀티 프로세서 시스템들에서, 프로세서들(2010) 각각은 반드시는 아니나, 통상, 동일한 ISA를 구현할 수 있다.
시스템 메모리(2020)는 프로세서(들)(2010)에 의해 액세스 가능한 명령들 및 데이터를 저장하도록 구성될 수 있다. 다양한 실시예들에서, 시스템 메모리(2020)는 정적 랜덤 액세스 메모리(SRAM), 동기식 동적 RAM(SDRAM), 비휘발성/플래시-타입 메모리, 임의의 다른 유형의 메모리와 같은, 임의의 적합한 메모리 기술을 사용하여 구현될 수 있다. 예시된 실시예에서, 네트워크 트래픽 매핑 및 성능 분석 방법들 및 장치에 대해 상기에서 설명된 그것들의 방법들, 기법들, 및 데이터와 같은, 하나 이상의 원하는 기능을 구현하는 프로그램 명령들 및 데이터는 코드(2025) 및 데이터(2026)로서 시스템 메모리(2020) 내에 저장되는 것으로 도시된다.
일 실시예에서, I/O 인터페이스(2030)는 네트워크 인터페이스(2040) 또는 다른 주변 인터페이스들을 포함하여, 디바이스에서 프로세서(2010), 시스템 메모리(2020) 및 디바이스 내 임의의 주변 디바이스들 간 I/O 트래픽을 조정하도록 구성될 수 있다. 몇몇 실시예에서, I/O 인터페이스(2030)는 데이터 신호들을 하나의 컴포넌트(예를 들어, 시스템 메모리(2020))로부터 다른 컴포넌트(예를 들어, 프로세서(2010))에 의해 사용하기에 적합한 포맷으로 변환하기 위해 임의의 필요한 프로토콜, 타이밍, 또는 다른 데이터 변환들을 수행할 수 있다. 몇몇 실시예에서, I/O 인터페이스(2030)는 예를 들어, 주변 컴포넌트 상호연결(PCI) 버스 표준 또는 범용 직렬 버스(USB) 표준의 변형과 같은, 다양한 유형들의 주변 버스들을 통해 연결되는 디바이스들에 대한 지원을 포함할 수 있다. 몇몇 실시예에서, I/O 인터페이스(2030)의 기능은 예를 들어, 노스 브리지(north bridge) 및 사우스 브리지(south bridge)와 같은, 두 개 이상의 개별 컴포넌트로 분배될 수 있다. 또한, 몇몇 실시예에서, 시스템 메모리(2020)에 대한 인터페이스와 같은, I/O 인터페이스(2030)의 기능의 일부 또는 전부는 프로세서(2010)로 직접 통합될 수 있다.
네트워크 인터페이스(2040)는 예를 들어, 도 1 내지 도 12에 예시된 바와 같은 다른 컴퓨터 시스템 또는 디바이스들과 같이, 컴퓨터 시스템(2000) 및 네트워크 또는 네트워크들(2050)에 연결되는 다른 디바이스들(2060) 사이에서 데이터가 교환되는 것을 가능하게 하도록 구성될 수 있다. 다양한 실시예들에서, 네트워크 인터페이스(2040)는 예를 들어, 이더넷 네트워크의 유형들과 같이, 임의의 적합한 유선 또는 무선의 일반적인 데이터 네트워크들을 통해 통신을 지원할 수 있다. 추가적으로, 네트워크 인터페이스(2040)는 아날로그 음성 네트워크들 또는 디지털 파이버 통신 네트워크들과 같은 전화통신/전화기 네트워크들을 통해, 파이버 채널 SAN들과 같은 저장장치 영역 네트워크를 통해, 또는 임의의 다른 적합한 유형의 네트워크 및/또는 프로토콜을 통해 통신을 지원할 수 있다.
몇몇 실시예에서, 시스템 메모리(2020)는 네트워크 트래픽 매핑 및 성능 분석 방법의 실시예들을 구현하기 위한 도 1 내지 도 12에 대해 상기에서 설명된 바와 같은 프로그램 명령 및 데이터를 저장하도록 구성되는 컴퓨터-액세스 가능 매체의 일 실시예일 수 있다. 그러나, 다른 실시예들에서, 프로그램 명령들 및/또는 데이터는 상이한 유형들의 컴퓨터-액세스 가능 매체 상에 수신, 송신 또는 저장될 수 있다. 일반적으로 말해서, 컴퓨터-액세스 가능 매체는 마그네틱 또는 광 미디어, 예를 들어, I/O 인터페이스(2030)를 통해 컴퓨터 시스템(2000)에 결합된 디스크 또는 DVD/CD와 같은 메모리 미디어 또는 비-일시적 저장 미디어를 포함할 수 있다. 비-일시적 컴퓨터-액세스 가능 저장 매체는 또한 RAM(예를 들어 SDRAM, DDR SDRAM, RDRAM, SRAM 등), ROM 등과 같은 임의의 비-휘발성 또는 휘발성 미디어를 포함할 수 있는데, 이는 시스템 메모리(2020) 또는 다른 유형의 메모리로서 컴퓨터 시스템(2000)의 몇몇 실시예들에 포함될 수 있다. 또한, 컴퓨터-액세스 가능 매체는 네트워크 인터페이스(2040)를 통해 구현될 수 있는 바와 같은, 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 전달되는, 전기, 전자기, 또는 디지털 신호들과 같은 신호들 또는 전송 미디어를 포함할 수 있다.
결론
다양한 실시예들은 컴퓨터 액세스-가능 매체에 대한 상기 설명에 따라 구현된 명령들 및/또는 데이터를 수신, 송신 또는 저장하는 것을 더 포함할 수 있다. 일반적으로 말해서, 컴퓨터 액세스-가능 저장 매체는 자기 또는 광 미디어, 예를 들어, 디스크 또는 DVD/CD-ROM과 같은 저장 미디어 또는 메모리 미디어, RAM(예를 들어, SDRAM, DDR, RDRAM, SRAM 등), ROM 등과 같은 휘발성 또는 비휘발성 미디어뿐만 아니라, 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 전달되는, 전기, 전자기, 또는 디지털 신호들과 같은 신호들 또는 전송 미디어를 포함할 수 있다.
도면들에서 예시되고 본 출원에서 설명된 바와 같은 다양한 방법들은 방법들의 예시적인 실시예들을 나타낸다. 방법들은 소프트웨어에서, 하드웨어에서, 또는 이들의 조합으로 구현될 수 있다. 방법의 순서는 변경될 수 있고, 다양한 요소들이 추가, 재순서화, 결합, 생략, 변형 등이 될 수 있다.
본 개시 내용의 혜택을 가지고 해당 기술분야의 통상의 기술자에게 명백할 수 있는 바와 같이 다양하게 변형 및 변경될 수 있다. 모든 그러한 변형들 및 변경들을 포함하고, 그에 따라, 상기 설명이 제한적인 의미가 아닌 예시적으로 간주되도록 의도된다.

Claims (15)

  1. 제공자 네트워크로서;
    네트워크 기판;
    복수의 멀티-테넌트(multi-tenant) 호스트 디바이스(host device)로서, 각 호스트 디바이스는 복수의 클라이언트 자원 인스턴스를 포함하고, 각 클라이언트 자원 인스턴스는 상기 제공자 네트워크의 복수의 클라이언트 중 하나에 배정되고, 적어도 하나의 호스트 디바이스 상의 적어도 두 개의 클라이언트 자원 인스턴스가 상기 복수의 클라이언트 중 상이한 클라이언트들에 배정되는, 상기 멀티-테넌트 호스트 디바이스; 및
    오버레이 네트워크 분석 서비스를 구현하는 하나 이상의 컴퓨팅 디바이스를 포함하고;
    각 호스트 디바이스는 하나 이상의 오버레이 네트워크 터널에 대한 성능 데이터를 수집하도록 구성되고, 각 오버레이 네트워크 터널은 상기 네트워크 기판을 통해 각각의 호스트 디바이스로부터 상기 호스트 디바이스들 중 다른 호스트 디바이스에 오버레이 네트워크 패킷들을 운반하고, 상기 각각의 오버레이 네트워크 터널 상의 각 오버레이 네트워크 패킷은 상기 각각의 호스트 디바이스 상의 상기 클라이언트 자원 인스턴스들 중 하나로부터 획득되고 상기 다른 호스트 디바이스 상의 상기 클라이언트 자원 인스턴스들 중 하나에 타겟팅되는 클라이언트 데이터를 포함하고, 상기 성능 데이터는 상기 오버레이 네트워크 터널들을 통해 전달되는 오버레이 네트워크 패킷들에 대해 결정되는 왕복 시간들을 포함하며;
    상기 오버레이 네트워크 분석 서비스는:
    상기 복수의 호스트 디바이스로부터 상기 성능 데이터를 획득하고;
    획득된 상기 성능 데이터에 따라 상기 오버레이 네트워크에 대한 성능 정보를 생성하도록 구성되고, 상기 성능 정보는 상기 터널들에 대해 결정된 상기 왕복 시간들에 따라 산출되는 상기 오버레이 네트워크 터널들에 대한 레이턴시 메트릭(latency metric)을 포함하는, 제공자 네트워크.
  2. 청구항 1에 있어서, 각 호스트 디바이스는 오버레이 네트워크 터널을 통해 다른 호스트 디바이스로 송신되는 적어도 하나의 오버레이 네트워크 패킷에 대해:
    상기 오버레이 네트워크 패킷이 상기 오버레이 네트워크 터널 상에 송신된 때를 표시하는 송신 시간을 기록하고;
    상기 오버레이 네트워크 터널을 통해 상기 다른 호스트 디바이스로부터 상기 오버레이 네트워크 패킷의 수신에 대한 확인 응답을 수신하며;
    기록된 상기 송신 시간 및 상기 확인 응답에 따라 상기 오버레이 네트워크 패킷에 대한 상기 왕복 시간을 산출하도록 더 구성되는, 제공자 네트워크.
  3. 청구항 1에 있어서, 각 호스트 디바이스는 오버레이 네트워크 터널을 통해 다른 호스트 디바이스로 송신되는 두 개 이상의 오버레이 네트워크 패킷에 대해:
    상기 오버레이 네트워크 터널을 통해 상기 다른 호스트 디바이스로부터 상기 두 개 이상의 오버레이 네트워크 패킷에 대한 단일 확인 응답 메시지를 수신하고;
    상기 확인 응답 메시지에 따라 상기 두 개 이상의 오버레이 네트워크 패킷에 대한 성능 데이터를 결정하도록 더 구성되는, 제공자 네트워크.
  4. 청구항 1에 있어서, 상기 오버레이 네트워크 분석 서비스에 의해 획득되는 상기 성능 데이터는 상기 복수의 클라이언트 중 두 개 이상 클라이언트의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 터널들에 대해 수집되는 성능 데이터를 포함하고, 상기 성능 정보는 상기 두 개 이상의 클라이언트에 대해 종합된 성능 데이터에 따라 생성되는, 제공자 네트워크.
  5. 청구항 4에 있어서, 상기 오버레이 네트워크 분석 서비스는:
    상기 네트워크 기판에 대한 상기 종합된 성능 데이터 및 토폴로지 정보에 따라 상기 오버레이 네트워크의 매핑을 생성하는 것으로서, 상기 호스트 디바이스들 및 상기 호스트 디바이스들 간 상기 네트워크 기판 위의 루트들을 표시하는, 상기 매핑을 생성하고;
    상기 종합된 성능 데이터 및 상기 토폴로지 정보에 따라 상기 네트워크 기판의 하나 이상의 컴포넌트의 각각에 대한 성능 메트릭들을 생성하도록 더 구성되는, 제공자 네트워크.
  6. 제공자 네트워크 상의 하나 이상의 컴퓨팅 디바이스 상에서 구현되는 서비스에 의해, 상기 제공자 네트워크에서의 상이한 호스트들 간 네트워크 기판 상의 오버레이 네트워크를 통해 송신되는 클라이언트 데이터 패킷들에 대한 성능 데이터를 획득하는 단계로서, 각 클라이언트 데이터 패킷은 상기 오버레이 네트워크를 거쳐 상기 네트워크 기판을 통해 상기 클라이언트 데이터 패킷을 라우팅하기 위해 오버레이 네트워크 메타데이터로 태깅되는, 상기 클라이언트 데이터 패킷들에 대한 성능 데이터를 획득하는 단계;
    상기 성능 데이터에 따라 상기 오버레이 네트워크에 대한 하나 이상의 성능 메트릭을 결정하는 단계로서, 상기 성능 메트릭들은 상기 네트워크 기판 위의 하나 이상의 오버레이 네트워크 루트들 각각에 대한 레이턴시 메트릭을 포함하는, 상기 성능 메트릭을 결정하는 단계; 및
    상기 오버레이 네트워크에 대한 상기 하나 이상의 성능 메트릭을 표시하는 출력을 생성하는 단계를 포함하는, 방법.
  7. 청구항 6에 있어서, 각 호스트는 복수의 클라이언트 자원 인스턴스를 포함하고, 각 클라이언트 자원 인스턴스는 상기 제공자 네트워크의 복수의 클라이언트 중 하나에 배정되고, 적어도 하나의 호스트 상의 적어도 두 개의 클라이언트 자원 인스턴스가 상기 제공자 네트워크의 상이한 클라이언트들에 배정되는, 방법.
  8. 청구항 7에 있어서, 상기 클라이언트 자원 인스턴스들은 상기 호스트들 상의 가상 기계들(VM들)로서 구현되고, 각 호스트는 각각의 상기 호스트 상의 상기 복수의 가상 기계(VM)를 모니터링하는 가상 기계 모니터(VMM; virtual machine monitor)를 포함하고 오버레이 네트워크 루트들을 거쳐 상기 네트워크 기판을 통해 상기 호스트 상의 클라이언트 자원 인스턴스들에서 비롯되는 클라이언트 데이터 패킷들을 송신하는, 방법.
  9. 청구항 7에 있어서, 상기 호스트들에서 상기 성능 데이터를 생성하는 단계를 더 포함하고, 상기 성능 데이터를 생성하는 상기 단계는 각 호스트에서, 상기 호스트에서의 하나 이상의 클라이언트 자원 인스턴스에서 비롯되고 각각의 오버레이 네트워크 루트들을 통해 하나 이상의 다른 호스트에서의 하나 이상의 다른 클라이언트 자원 인스턴스에 오버레이 네트워크 패킷들로서 전달하기 위해 상기 호스트에서 오버레이 네트워크 프로토콜에 따른 오버레이 네트워크 메타데이터로 태깅되는 클라이언트 데이터 패킷들에 대한 성능 데이터를 수집하는 단계를 포함하는, 방법.
  10. 청구항 9에 있어서, 각 호스트에서 상기 성능 데이터를 생성하는 단계는 다른 호스트에 오버레이 네트워크 루트를 통해 송신되는 하나 이상의 오버레이 네트워크 패킷의 각각에 대해:
    상기 오버레이 네트워크 패킷이 상기 오버레이 네트워크 루트 상에 송신된 때를 표시하는 송신 시간을 기록하는 단계;
    상기 오버레이 네트워크 루트를 통해 상기 다른 호스트로부터 상기 오버레이 네트워크 패킷의 수신에 대한 확인 응답을 수신하는 단계; 및
    기록된 상기 송신 시간 및 상기 확인 응답에 따라 상기 오버레이 네트워크 루트 상의 상기 오버레이 네트워크 패킷에 대한 왕복 시간을 산출하는 단계를 포함하는, 방법.
  11. 청구항 9에 있어서, 각 호스트에서 상기 성능 데이터를 생성하는 단계는 오버레이 네트워크 루트를 통해 다른 호스트로 송신되는 오버레이 네트워크 패킷들에 대해:
    상기 호스트에 의해, 상기 다른 호스트에 송신되는 매 N번째 상기 오버레이 네트워크 패킷마다 상기 다른 호스트로부터의 확인 응답 메시지를 요청하는 단계;
    상기 호스트에 의해, N개의 송신된 상기 오버레이 네트워크 패킷 중 두 개 이상에 대한 수신을 표시하는 상기 다른 호스트로부터의 단일 확인 응답 메시지를 수신하는 단계; 및
    상기 확인 응답 메시지에 따라 N개의 송신된 상기 오버레이 네트워크 패킷에 대한 성능 데이터를 생성하는 단계를 포함하는, 방법.
  12. 청구항 6에 있어서, 상기 성능 데이터는 각 오버레이 네트워크 루트에 대해 결정되는 왕복 시간들을 포함하고, 각 오버레이 네트워크 루트에 대한 상기 레이턴시 메트릭은 각각의 상기 오버레이 네트워크 루트에 대한 상기 왕복 시간들로부터 결정되는, 방법.
  13. 청구항 6에 있어서, 상기 성능 데이터는 상기 오버레이 네트워크 루트들에 대해 드롭된 패킷들을 표시하고, 각 오버레이 네트워크 루트에 대해 결정되는 상기 성능 메트릭들은 상기 오버레이 네트워크 루트에 대해 드롭된 패킷들의 상기 표시에 따라 산출되는 패킷 손실 레이트를 더 포함하는, 방법.
  14. 청구항 6에 있어서, 상기 서비스에 의해 획득되는 상기 성능 데이터는 상기 제공자 네트워크 상의 특정한 클라이언트의 사설 네트워크 구현에서의 클라이언트 자원 인스턴스들 간 오버레이 네트워크 루트들에 대해 수집되는 성능 데이터를 포함하고, 상기 하나 이상의 성능 메트릭은 상기 제공자 네트워크 상의 상기 특정한 클라이언트의 사설 네트워크 구현에 대해 결정되는, 방법.
  15. 청구항 14에 있어서, 상기 성능 데이터에 따라 상기 클라이언트의 사설 네트워크 구현의 매핑을 생성하는 단계를 더 포함하고, 상기 매핑은 상기 클라이언트 자원 인스턴스들 및 상기 사설 네트워크 구현에서의 상기 클라이언트 자원 인스턴스들 간 상기 오버레이 네트워크 루트들을 표시하는, 방법.
KR1020157029805A 2013-03-15 2014-03-14 네트워크 트래픽 매핑 및 성능 분석 KR101755390B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/833,945 2013-03-15
US13/833,945 US10389608B2 (en) 2013-03-15 2013-03-15 Network traffic mapping and performance analysis
PCT/US2014/028967 WO2014144520A2 (en) 2013-03-15 2014-03-14 Network traffic mapping and performance analysis

Publications (2)

Publication Number Publication Date
KR20150131337A true KR20150131337A (ko) 2015-11-24
KR101755390B1 KR101755390B1 (ko) 2017-07-11

Family

ID=51533657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157029805A KR101755390B1 (ko) 2013-03-15 2014-03-14 네트워크 트래픽 매핑 및 성능 분석

Country Status (9)

Country Link
US (2) US10389608B2 (ko)
EP (1) EP2974141B1 (ko)
JP (1) JP6030805B2 (ko)
KR (1) KR101755390B1 (ko)
CN (1) CN105144633B (ko)
AU (1) AU2014228998B2 (ko)
CA (1) CA2906719C (ko)
SG (1) SG11201507191TA (ko)
WO (1) WO2014144520A2 (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8230050B1 (en) 2008-12-10 2012-07-24 Amazon Technologies, Inc. Providing access to configurable private computer networks
US9106540B2 (en) 2009-03-30 2015-08-11 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9036504B1 (en) 2009-12-07 2015-05-19 Amazon Technologies, Inc. Using virtual networking devices and routing information to associate network addresses with computing nodes
US8966027B1 (en) 2010-05-24 2015-02-24 Amazon Technologies, Inc. Managing replication of computing nodes for provided computer networks
JP5618886B2 (ja) * 2011-03-31 2014-11-05 株式会社日立製作所 ネットワークシステムおよび計算機振り分け装置、計算機振り分け方法
US9385917B1 (en) 2011-03-31 2016-07-05 Amazon Technologies, Inc. Monitoring and detecting causes of failures of network paths
US8937870B1 (en) 2012-09-11 2015-01-20 Amazon Technologies, Inc. Network link monitoring and testing
US10389608B2 (en) * 2013-03-15 2019-08-20 Amazon Technologies, Inc. Network traffic mapping and performance analysis
US9197553B2 (en) * 2013-03-29 2015-11-24 Cisco Technology, Inc. Using a virtual internet protocol address to represent dually connected hosts in an internet protocol overlay network
US10320628B2 (en) * 2013-06-19 2019-06-11 Citrix Systems, Inc. Confidence scoring of device reputation based on characteristic network behavior
US9742638B1 (en) * 2013-08-05 2017-08-22 Amazon Technologies, Inc. Determining impact of network failures
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US10225342B2 (en) * 2014-02-07 2019-03-05 VCE IP Holding Company LLC System and method for generating converged views of a virtual computing environment
US10069753B2 (en) * 2014-03-17 2018-09-04 Cloud Physics, Inc. Relationship-based resource-contention analysis system and method
US10044581B1 (en) * 2015-09-29 2018-08-07 Amazon Technologies, Inc. Network traffic tracking using encapsulation protocol
WO2016026529A1 (en) * 2014-08-20 2016-02-25 Telefonaktiebolaget L M Ericsson (Publ) Performance index determination for a communication service
US20170300349A1 (en) * 2014-09-26 2017-10-19 Hewlett-Packard Development Company Lp Storage of hypervisor messages in network packets generated by virtual machines
EP3041254A1 (en) * 2014-12-30 2016-07-06 Telefonica Digital España, S.L.U. Method for providing information on network status from telecommunication networks
US10075337B2 (en) * 2015-01-23 2018-09-11 Cisco Technology, Inc. Mechanism for serving hardware resource information to an attached appliance
US9967231B2 (en) * 2015-03-18 2018-05-08 Cisco Technology, Inc. Inter-pod traffic redirection and handling in a multi-pod network environment
US9979616B2 (en) * 2015-03-23 2018-05-22 Amazon Technologies, Inc. Event-driven framework for filtering and processing network flows
US9667656B2 (en) 2015-03-30 2017-05-30 Amazon Technologies, Inc. Networking flow logs for multi-tenant environments
WO2016174904A1 (ja) * 2015-04-30 2016-11-03 ソニー株式会社 通信装置および通信方法
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US10021196B1 (en) 2015-06-22 2018-07-10 Amazon Technologies, Inc. Private service endpoints in isolated virtual networks
WO2017006607A1 (ja) 2015-07-07 2017-01-12 ソニー株式会社 通信装置および通信方法
US10320644B1 (en) * 2015-09-14 2019-06-11 Amazon Technologies, Inc. Traffic analyzer for isolated virtual networks
US10033602B1 (en) * 2015-09-29 2018-07-24 Amazon Technologies, Inc. Network health management using metrics from encapsulation protocol endpoints
US10397353B2 (en) * 2015-10-01 2019-08-27 Nicira, Inc. Context enriched distributed logging services for workloads in a datacenter
US10298720B1 (en) * 2015-12-07 2019-05-21 Amazon Technologies, Inc. Client-defined rules in provider network environments
US10447800B2 (en) * 2015-12-17 2019-10-15 Dell Products L.P. Network cache deduplication analytics based compute cluster load balancer
GB2546120B (en) 2016-02-09 2018-02-14 Spatialbuzz Ltd Fault monitoring in a utility supply network
GB2546118B (en) 2016-02-09 2018-11-14 Spatialbuzz Ltd Fault monitoring by assessing spatial distribution of queries in a utility supply network
KR101816718B1 (ko) 2016-09-22 2018-02-22 고려대학교 산학협력단 Cpu 네트워크 통합 스케줄링 시스템 및 그 제어방법
US10397189B1 (en) * 2016-09-27 2019-08-27 Amazon Technologies, Inc. Peered virtual private network endpoint nodes
US10862777B2 (en) * 2016-09-28 2020-12-08 Amazon Technologies, Inc. Visualization of network health information
US20180088977A1 (en) * 2016-09-28 2018-03-29 Mark Gray Techniques to determine and mitigate latency in virtual environments
CN108205504B (zh) * 2016-12-16 2021-01-12 广州杰赛科技股份有限公司 终端usb映射方法、虚拟机usb映射方法及系统
US10680933B2 (en) 2017-02-02 2020-06-09 Microsoft Technology Licensing, Llc Electronic mail system routing control
US11522828B2 (en) * 2017-07-31 2022-12-06 Cisco Technology, Inc. Virtualized network functions through address space aggregation
EP3805958B1 (en) 2017-08-28 2023-12-20 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices
US10892999B1 (en) * 2017-11-01 2021-01-12 Amazon Technologies, Inc. Detection of hardware assistance for an overlay network
US11019027B2 (en) * 2018-06-27 2021-05-25 Cisco Technology, Inc. Address translation for external network appliance
US11108805B2 (en) * 2018-06-27 2021-08-31 Amazon Technologies, Inc. Automated packetless network reachability analysis
US11108687B1 (en) 2018-09-12 2021-08-31 Amazon Technologies, Inc. Scalable network function virtualization service
US10834044B2 (en) 2018-09-19 2020-11-10 Amazon Technologies, Inc. Domain name system operations implemented using scalable virtual traffic hub
EP3895031A4 (en) * 2018-12-15 2022-07-20 Telefonaktiebolaget LM Ericsson (publ) EFFICIENT NETWORK ADDRESS TRANSLATION (NAT) IN CLOUD NETWORKS
US20210067577A1 (en) 2019-02-25 2021-03-04 Luminati Networks Ltd. System and method for url fetching retry mechanism
EP4030318A1 (en) 2019-04-02 2022-07-20 Bright Data Ltd. System and method for managing non-direct url fetching service
CN112887185B (zh) * 2019-11-29 2024-03-15 华为云计算技术有限公司 一种叠加网络的通信方法及装置
US11398955B2 (en) 2020-02-19 2022-07-26 Accedian Networks Inc. Topology and event monitoring system
CN111327471B (zh) * 2020-02-24 2023-04-28 中移(杭州)信息技术有限公司 网络质量分析方法、装置、计算机设备及存储介质
US11778025B1 (en) * 2020-03-25 2023-10-03 Amazon Technologies, Inc. Cross-region directory service
CN114666249B (zh) * 2020-12-03 2023-07-07 腾讯科技(深圳)有限公司 云平台上的流量采集方法、设备以及计算机可读存储介质
US20230327810A1 (en) * 2022-04-07 2023-10-12 Hewlett Packard Enterprise Development Lp Handling block acknowledgements

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5477531A (en) 1991-06-12 1995-12-19 Hewlett-Packard Company Method and apparatus for testing a packet-based network
US5812528A (en) 1995-11-17 1998-09-22 Telecommunications Techniques Corporation Measuring round trip time in ATM network virtual connections
US7085854B2 (en) 2000-04-12 2006-08-01 Corente, Inc. Methods and systems for enabling communication between a processor and a network operations center
FR2809900B1 (fr) * 2000-05-31 2002-11-29 Mitsubishi Electric Inf Tech Procede et systeme de transmission de donnees bi-mode, emetteur et recepteur correspondant
JP4511174B2 (ja) * 2001-08-31 2010-07-28 アダプテック・インコーポレイテッド Tcp/ipを使用した高速度データ送信システムおよび方法
US7975043B2 (en) * 2003-02-25 2011-07-05 Hewlett-Packard Development Company, L.P. Method and apparatus for monitoring a network
US20040236855A1 (en) * 2003-05-23 2004-11-25 Amir Peles Multi-link tunneling
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US7962606B2 (en) 2005-01-24 2011-06-14 Daintree Networks, Pty. Ltd. Network analysis system and method
US8462624B2 (en) 2005-07-28 2013-06-11 Riverbed Technologies, Inc. Congestion management over lossy network connections
US8924524B2 (en) 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US8145760B2 (en) * 2006-07-24 2012-03-27 Northwestern University Methods and systems for automatic inference and adaptation of virtualized computing environments
US8064391B2 (en) 2006-08-22 2011-11-22 Embarq Holdings Company, Llc System and method for monitoring and optimizing network performance to a wireless device
US8274905B2 (en) 2006-08-22 2012-09-25 Embarq Holdings Company, Llc System and method for displaying a graph representative of network performance over a time period
JP4749392B2 (ja) 2007-08-03 2011-08-17 日本電信電話株式会社 オーバーレイネットワークにおける通信経路決定方法とオーバーレイノードおよびオーバーレイネットワークとプログラム
US7778165B2 (en) * 2007-11-08 2010-08-17 University Of Washington Information plane for determining performance metrics of paths between arbitrary end-hosts on the internet
US10127059B2 (en) 2008-05-02 2018-11-13 Skytap Multitenant hosted virtual machine infrastructure
US8521868B2 (en) 2008-10-15 2013-08-27 International Business Machines Corporation Platform-level indicators of application performance
WO2010118255A2 (en) 2009-04-08 2010-10-14 The University Of North Carolina At Chapel Hill Methods, systems, and computer program products for network server performance anomaly detection
US20100315958A1 (en) 2009-06-11 2010-12-16 Luo Xiapu Method for non-cooperative measurement of network data-path quality
US8532108B2 (en) 2009-09-30 2013-09-10 Alcatel Lucent Layer 2 seamless site extension of enterprises in cloud computing
US20110110377A1 (en) 2009-11-06 2011-05-12 Microsoft Corporation Employing Overlays for Securing Connections Across Networks
US8369345B1 (en) 2009-11-13 2013-02-05 Juniper Networks, Inc. Multi-router system having shared network interfaces
EP2504974B1 (en) 2009-11-25 2019-04-24 Citrix Systems Inc. Systems and methods for client ip address insertion via tcp options
CN102792658B (zh) 2009-12-29 2016-03-16 意大利电信股份公司 在通信网络中进行时间测量
US9111280B2 (en) * 2010-04-16 2015-08-18 Visa International Service Association General purpose messaging
US8374183B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Distributed virtual network gateways
US8239572B1 (en) 2010-06-30 2012-08-07 Amazon Technologies, Inc. Custom routing decisions
US20120099602A1 (en) 2010-10-25 2012-04-26 Brocade Communications Systems, Inc. End-to-end virtualization
US9325525B2 (en) 2010-12-28 2016-04-26 Citrix Systems, Inc. Systems and methods for VLAN tagging via cloud bridge
US20120170586A1 (en) 2010-12-31 2012-07-05 Zebra Imaging, Inc. Transmitting Data to Multiple Nodes
JP5686027B2 (ja) * 2011-04-07 2015-03-18 富士通株式会社 仮想マシン環境におけるネットワーク障害検知方法、装置、およびプログラム
CN103563329B (zh) 2011-06-07 2017-04-12 慧与发展有限责任合伙企业 用于虚拟化数据中心的可扩缩多租户网络架构
US9571406B2 (en) * 2011-10-25 2017-02-14 Vmware, Inc. Network congestion management based on communication delay
US8824274B1 (en) * 2011-12-29 2014-09-02 Juniper Networks, Inc. Scheduled network layer programming within a multi-topology computer network
US8787154B1 (en) * 2011-12-29 2014-07-22 Juniper Networks, Inc. Multi-topology resource scheduling within a computer network
US9916545B1 (en) 2012-02-29 2018-03-13 Amazon Technologies, Inc. Portable network interfaces for authentication and license enforcement
US20140241173A1 (en) 2012-05-16 2014-08-28 Erik J. Knight Method for routing data over a telecommunications network
US9253061B2 (en) * 2012-09-12 2016-02-02 International Business Machines Corporation Tunnel health check mechanism in overlay network
US9015714B2 (en) * 2012-11-27 2015-04-21 Citrix Systems, Inc. Diagnostic virtual machine created to monitor cluster of hypervisors based on user requesting assistance from cluster administrator
US9686189B2 (en) * 2012-12-26 2017-06-20 Microsoft Technology Licensing, Llc Routing data in a bi-directional communication session over an overlay network using relay nodes
US10389608B2 (en) * 2013-03-15 2019-08-20 Amazon Technologies, Inc. Network traffic mapping and performance analysis

Also Published As

Publication number Publication date
US11469984B2 (en) 2022-10-11
AU2014228998A1 (en) 2015-10-01
WO2014144520A2 (en) 2014-09-18
US10389608B2 (en) 2019-08-20
WO2014144520A3 (en) 2015-01-08
JP6030805B2 (ja) 2016-11-24
CA2906719A1 (en) 2014-09-18
EP2974141A2 (en) 2016-01-20
EP2974141A4 (en) 2016-11-30
AU2014228998B2 (en) 2016-09-01
CA2906719C (en) 2021-07-27
CN105144633A (zh) 2015-12-09
CN105144633B (zh) 2019-06-04
US20140280884A1 (en) 2014-09-18
KR101755390B1 (ko) 2017-07-11
SG11201507191TA (en) 2015-10-29
US20190372875A1 (en) 2019-12-05
EP2974141B1 (en) 2020-08-26
JP2016512416A (ja) 2016-04-25

Similar Documents

Publication Publication Date Title
KR101755390B1 (ko) 네트워크 트래픽 매핑 및 성능 분석
US10455303B2 (en) Packet-optical in-band telemetry (POINT) flow tracing and proof-of-transit
CA3143107C (en) Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy
US9059926B2 (en) Performance analysis of virtual private network segment on a per flow basis
CN104780096B (zh) 一种控制虚拟网络的系统及虚拟网络控制器节点
Bhardwaj et al. Performance evaluation using RYU SDN controller in software-defined networking environment
BR112020006724A2 (pt) criação de redes virtuais que abrangem múltiplas nuvens públicas
EP3884624B1 (en) Active targeted data plane traffic monitoring for wired networks
US11165672B2 (en) Application performance management integration with network assurance
US10862796B1 (en) Flow policies for virtual networks in provider network environments
Deri et al. Realtime {High-Speed} Network Traffic Monitoring Using ntopng
US11695665B2 (en) Cross-cloud connectivity checks
CN116346577A (zh) 基于云平台的网络运维方法、系统和计算设备集群
Dasu et al. Geotagging IP packets for location-aware software-defined networking in the presence of virtual network functions
US10291697B2 (en) Decentralized discovery across different networks
Ferir Segment routing applications: Traffic matrix reconstruction and what-if visualization

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