KR20200105539A - 데이터 패킷 네트워크들에서 후보 흐름들을 식별하기 위한 시스템들 및 방법들 - Google Patents

데이터 패킷 네트워크들에서 후보 흐름들을 식별하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20200105539A
KR20200105539A KR1020207024696A KR20207024696A KR20200105539A KR 20200105539 A KR20200105539 A KR 20200105539A KR 1020207024696 A KR1020207024696 A KR 1020207024696A KR 20207024696 A KR20207024696 A KR 20207024696A KR 20200105539 A KR20200105539 A KR 20200105539A
Authority
KR
South Korea
Prior art keywords
candidate
flow
data
detection threshold
flows
Prior art date
Application number
KR1020207024696A
Other languages
English (en)
Inventor
미셸 밀러
존 엠. 버넷
벤 하돈
데이브 기번스
션 브라운
Original Assignee
오팡가 네트웍스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오팡가 네트웍스, 인크. filed Critical 오팡가 네트웍스, 인크.
Publication of KR20200105539A publication Critical patent/KR20200105539A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5025Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • 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/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • 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/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

컴퓨터로 구현되는 방법 및 전송 관리자 시스템은 네트워크에서 적어도 하나의 데이터 흐름들(data flows)을 검출하고, 후보 흐름 검출 임계값(candidate flow detection threshold)을 이용하여, 상기 적어도 하나의 데이터 흐름들의 데이터 흐름이 후보 흐름인지를 결정 - 상기 후보 흐름 검출 임계값은 상기 적어도 하나의 데이터 흐름들의 적어도 하나의 특성들에 기초함 - 하고, 그리고 상기 데이터 흐름이 상기 후보 흐름이라는 결정에 응답하여, 상기 데이터 흐름을 관리함으로써 네트워크 혼잡을 줄이기 위해 동작한다. 상기 적어도 하나의 데이터 흐름들의, 소비 속도(consumption rate), 지속기간(duration), 통신되는 바이트(byte)의 수, 처리량(throughput), 또는 집계된 특성들(aggregated characteristics)이 상기 후보 흐름 검출 임계값을 결정하는 데 사용될 수 있다.

Description

데이터 패킷 네트워크들에서 후보 흐름들을 식별하기 위한 시스템들 및 방법들
관련 출원들에 대한 상호 참조
본 출원은 2018년 1월 26일자로 출원된 미국 가출원 제62/622,746호의 이익을 주장하며, 이의 전체 내용은 본 명세서에 참조로 포함된다.
오늘날의 데이터 네트워크들(무선, 유선, 및/또는 섬유(fiber) 네트워크를 포함할 수 있음)이 직면한 문제 중 하나는, "코끼리 흐름들(elephant flows)"로 지칭될 수 있는, 최종 사용자 장치에 또는 최종 사용자 장치로부터 전달되는 동안 연장된 기간에 걸쳐 불균형적인 양의 네트워크 리소스들을 소비하는 개별적인 데이터 흐름들("흐름들(flows)")에 의해 이러한 데이터 네트워크들에 부과되는 부담(burden)이다. 스트리밍 미디어 콘텐츠(오디오, 비디오, 및/또는 다른 유형의 콘텐츠 데이터), 대용량 다운로드 등은 종종 이러한 코끼리 흐름들을 생성한다.
소비자 액세스 네트워크들(consumer access networks)은 일반적으로 데이터의 짧은 버스트(burst) 및 클라이언트 장치들에 의한 단기간의 네트워크 리소스 사용을 전달하도록 설계된다. 그 결과, 코끼리 흐름들은 유한한 네트워크 리소스들을 사용하는 많은 사용자들의 최대 사용 요구를 충족시키려는 네트워크 트래픽 엔지니어들에게 주요한 과제가 될 수 있다. 네트워크에 관리되지 않은 코끼리 흐름들이 많으면 모든 사용자들 및 그들의 애플리케이션들에게 느린 네트워크 응답을 초래하는 네트워크 혼잡이 발생할 수 있다.
따라서, 네트워크 성능을 보존하기 위해 (예를 들어, 흐름 당 대역폭 할당(per-flow bandwidth allocation)을 통해) 관리될 수 있는, 코끼리 흐름들과 같은, 후보 흐름들(candidate flows)을 식별할 수 있는 것이 바람직하다.
네트워크의 성능이 저하되는 것을 방지하기 위해 처리 및/또는 관리될 수 있는, 코끼리 흐름들과 같은, 후보 흐름들을 결정하기 위한 시스템들 및 방법들이 본 명세서에서 설명된다. 후보 흐름들은 동적으로 조정될 수 있는 후보 흐름 검출 임계값들(candidate flow detection thresholds)을 이용하여 결정될 수 있다.
다양한 실시예들에 따르면, 후보 흐름 검출 임계값들은 네트워크 환경 및 다양한 다른 요인들에 기초하여 변화할 수 있다. 일 실시예는 비디오 스트림인 흐름들을 식별하고, 인코딩 속도(encoding rate)를 직접 관찰하거나 흐름의 처리량(throughput)을 관찰하여 장치에 전달되는 비디오 인코딩 속도를 식별 또는 추론함으로써 후보 흐름 검출 임계값들을 조정할 수 있다. 그 다음, 상기 실시예는 이미 전달된 버퍼의 양 및/또는 버퍼가 성장하는 속도를 계산하고, 해당 흐름의 상승 또는 하강에 대한 적어도 하나의 후보 흐름 검출 임계값들을 조정하기 위하여 적어도 하나의 이러한 값들을 사용할 수 있다.
다른 실시예는 전체 데이터 전송 네트워크 또는 상기 네트워크의 서브세트(예컨대, 단일 eNodeB, 목적지(destination), 소스(source), 구독자(subscriber) 유형 등)에 대한 예상 후보 흐름들의 목표 백분율(percentage)을 식별할 수 있고, 후보 흐름들의 목표 백분율이 충족될 때까지 후보 흐름 검출 임계값(들)을 동적으로 조정할 수 있다.
다른 실시예는 후보 흐름 검출 임계값을 결정하기 위하여 전체 데이터 전송 네트워크 또는 상기 데이터 전송 네트워크의 서브세트(예컨대, 상기 데이터 네트워크 내의 노드(node), 또는 콘텐츠 목적지, 또는 콘텐츠 소스, 콘텐츠의 유형 등)에서 데이터 전송 세션들의 백분위수(percentile)를 활용한다. 예를 들어, 네트워크 노드 내에서, 일 실시예는 모든 데이터 전송 세션 크기의 90번째 백분위수에 대한 값을 찾을 수 있고, 그 값에 따라 네트워크 노드에 대한 후보 흐름 검출 임계값을 결정할 수 있다. 다른 실시예들은 적절한 후보 흐름 검출 임계값을 결정하기 위한 입력으로서 데이터 전송 세션의 처리량(throughput) 또는 지속기간(duration)을 포함하는, 그러나 이에 한정되지 않는, 다른 데이터 전송 세션 지시자(indicator)를 이용하여 유사하게 동작할 수 있다.
다른 실시예는 데이터 전송 세션의 소스 또는 목적지에 기초하여 후보 흐름 식별의 빈도를 측정할 수 있다. 이 정보는 해당 소스 또는 목적지에 대한 후보 흐름 검출 임계값들을 증가 또는 감소시키는 데 사용될 수 있다.
다른 실시예에서, 일 실시예는 다른 네트워크 노드로부터 정보를 수신할 수 있고, 그 정보를 이용하여 그 네트워크 노드에 의해 보고된 현재 데이터 전송 네트워크 상태들에 기초하여 후보 흐름 검출 임계값을 상향 또는 하향 조정할 수 있다. 예를 들어, 네트워크 노드 리소스 사용이 증가 또는 감소하면, 상기 실시예는 그 네트워크 노드에 대해 검출하는 후보 흐름들의 수를 증가 또는 감소시킬 수 있다.
일 실시예에서, 후보 흐름 검출 임계값은 트래픽이 특정 시간(time of day) 동안 증가한 다음 다른 시간 동안 감소할 때 상기 임계값이 적응할 수 있도록 시간에 기초하여 조정될 수 있다. 실시예들은 상이한 각각의 후보 흐름 검출 임계값들이 정의되는 다수의 시간 기간들이 식별되도록 할 수 있다.
도 1a는 예시적인 네트워크 환경을 도시한 것이다.
도 1b는 다른 예시적인 네트워크 환경을 도시한 것이다.
도 2a는 일 실시예에 따른 전송 관리자 시스템의 블록도이다.
도 2b는 다른 실시예에 따른 전송 관리자 시스템의 블록도이다.
도 2c는 또 다른 실시예에 따른 전송 관리자 시스템의 블록도이다.
도 2d는 또 다른 실시예에 따른 전송 관리자 시스템의 블록도이다.
도 3은 일 실시예에 따른 사용자 장비의 블록도이다.
도 4는 일 실시예에 따른 후보 흐름 검출기가 비디오일 수 있는 흐름들을 식별하고, 디바이스에 이미 전달된 양에 기초하여 후보 흐름 검출 임계값을 조정하는 의사-결정 로직(decision-making logic)을 도시한 것이다.
도 5는 일 실시예에 따른 후보 흐름 검출기가 비디오일 수 있는 데이터 전송 세션들을 식별하거나 다른 네트워크 노드에 의해 데이터 전송 세션이 비디오임을 통지 받고, 비디오 재생 버퍼의 성장 속도(growth rate)에 기초하여 후보 흐름 검출 임계값을 조정하는 의사-결정 로직을 도시한 것이다.
도 6은 일 실시예에 따른 흐름 검출기가 흐름들의 그룹에 걸쳐 후보 흐름들의 목표 백분율(percentage)을 달성하기 위하여 후보 흐름 검출 임계값을 조정하는 의사-결정 로직을 도시한 것이다.
도 7은 일 실시예에 따른 흐름 검출기가 흐름들의 그룹에 걸쳐 목표 백분위수(percentile) 값을 달성하기 위하여 후보 흐름 검출 임계값을 조정하는 의사-결정 로직을 도시한 것이다.
도 8은 일 실시예에 따른 후보 흐름 검출기가 상기 후보 흐름 검출기에 의해 수집되거나 또는 별도의 네트워크 노드로부터 보고된 정보(information)를 이용하고, 이를 이용하여 이러한 흐름들에 대한 후보 흐름 검출 임계값을 조정하는 의사-결정 로직을 도시한 것이다.
도 9는 일 실시예에 따른 후보 흐름 검출기가 다른 네트워크 노드로부터 수신된 정보(information)에 기초하여 후보 흐름 임계값을 조정하는 의사-결정 로직을 도시한 것이다.
도 10은 일 실시예에 따른 후보 흐름 검출기가 시간(time of day)에 기초하여 후보 흐름 검출 임계값을 조정하는 의사-결정 로직을 도시한 것이다.
도 11은 일 실시예에 따른 컴퓨터 시스템을 도시한 것이다.
본 명세서에서는 네트워크의 성능이 저하되는 것을 방지하기 위해 처리 및/또는 관리될 수 있는, 코끼리 흐름들(elephant flows)과 같은, 후보 흐름들(candidate flows)을 결정하기 위한 시스템들 및 방법들이 설명된다. 후보 흐름들은 후보 흐름 검출 임계값들(candidate flow detection thresholds)을 이용하여 결정될 수 있다.
데이터 네트워크가 혼잡할 때, 데이터 패킷들(예컨대, 데이터 흐름들 또는 흐름들)이 네트워크를 통과하는 속도는 일반적으로 저하되어, 최적의 데이터 처리량(throughput)보다 적다. 네트워크 혼잡의 한 가지 원인은 공유 처리량 용량(shared throughput capacity)을 포함하는 네트워크 리소스들의 사용에 상대적으로 부담이 되는 "코끼리 흐름들" 또는 다른 유형의 흐름들의 존재(presence or existence)이다.
후보 흐름 검출(candidate flow detection)은 네트워크 성능을 개선하기 위해 관리될 수 있는 부담스러운 흐름들을 식별하기 위하여 패킷 데이터 네트워크 내의 임의의 지점에서 수행될 수 있다. 후보 흐름 검출은 데이터 트래픽 또는 트래픽의 사본에서 직접 수행될 수 있다. 네트워크에서 다른 데이터 흐름들과 비교하여 후보 흐름들을 식별하려는 데는 후보 흐름들에 서비스 품질(Quality of Service, QoS) 정책들 적용, 식별된 후보 흐름 동작에 기초한 보안 정책들 생성, 사용자 동작의 통계적 분석 등을 포함하는, 그러나 이에 한정되지 않는, 많은 이유들이 있다.
흐름은 전송 프로토콜에 관계없이 적어도 하나의 소스 장치들에서 적어도 하나의 목적지 장치들로의 데이터그램 패킷들(datagram packets)의 스트림(stream)으로 정의될 수 있다. 일 예로서, 흐름은 적어도 하나의 데이터 전송 세션들을 포함할 수 있다. 예를 들어, 스마트폰과 같은 최종 사용자 장치가 비디오를 시작하면, 그것은 비디오 스트림에 대해 하나의 데이터 전송 세션을 생성하고, 오디오 스트림에 대해 다른 데이터 전송 세션을 생성할 수 있으며, 두 세션은 동일한 목적지 서버로 이동한다. 다양한 실시예들에 따르면, 후보 흐름 검출 시스템의 관점에서, 이것은 단일 흐름으로 볼 수 있다.
후보 흐름들의 예들은, 예를 들어, 네트워크 대역폭의 많은 부분을 사용하는 미디어 콘텐츠(예컨대, 비디오 및/또는 오디오 파일들)와 관련된 패킷 데이터 흐름들을 포함한다. 일부 경우들에서, 후보 흐름은 일부 임계 수준(threshold level)보다 큰 전체 네트워크 대역폭의 일부를 소비하는 데이터 흐름으로 정의될 수 있다. 다른 경우들에서, 후보 흐름은 일부 임계 양(threshold amount)을 초과하는 데이터 레이트(data rate)를 갖는 데이터 흐름으로 정의될 수 있다. 또 다른 경우들에서, 후보 흐름은 임계 지속기간(threshold duration)보다 오래 지속되는 데이터 흐름으로 정의될 수 있다. 물론, 임계 수준과 임계 양의 값들은, 예를 들어, 관련된 데이터 네트워크들의 유형들, 최종 사용자들의 수, 총 네트워크 대역폭 등을 포함하는, 여러 요인들에 기초한 설계 선택(design choice)일 수 있다. 실시예들에서, 임계 수준들 및 임계 수준들은 동적으로 조정될 수 있다.
네트워크에서 후보 흐름들의 식별은 적어도 하나의 기준에 기초하여 수행될 수 있다. 일 실시예에서, 크기 임계값(size threshold)(예컨대, 적어도 3MB 전송)을 초과하는 흐름은 후보 흐름으로 분류된다. 일 실시예에서, 최소 시간 동안 패킷을 전송하는 흐름은 후보 흐름(예컨대, 45초 이상 동안 패킷들을 능동적으로 전송하는 흐름)으로 분류된다. 다른 예에서, 후보 흐름은, 예컨대, 2메가비트/초와 같은, 어떤 임계값을 초과하는 데이터 레이트를 갖는 흐름으로 정의될 수 있다. 2016년 3월 3일에 제출되고, 공개번호 제2016/0261510호로 공개된 미국 특허출원 제15/060,486호는 코끼리 흐름들과 같은 후보 흐름들을 식별하기 위한 예시적인 조건들 및 임계값들을 명시하며, 전체가 본 명세서에 참조로서 포함된다.
도 1a는 일 실시예에 따른 예시적인 네트워크 환경(100)을 도시한 것이다. 도시된 바와 같이, 네트워크 환경(100)은 전송 관리자 시스템(102a), 사용자 장비(104), 콘텐츠 서버(106), 데이터 서버(108), 및 데이터 네트워크(110)를 포함한다. 도 1a에 명시적으로 도시되지는 않았지만, 적어도 하나의 추가적인 사용자 장비(104) 및 적어도 하나의 추가적인 콘텐츠 서버들(106)은 데이터 네트워크(108) 및/또는 데이터 네트워크(110)와 접속(interface)할 수 있다.
일 실시예에서, 사용자 장비(104)는 데스크톱 컴퓨터(desktop computer), 워크스테이션(workstation), 셋톱 박스(set-top box), 스마트폰(smartphone) 또는 태블릿 컴퓨터(tablet computer)와 같은 모바일 컴퓨팅 디바이스(mobile computing device), 스마트워치(smartwatch) 또는 증강현실 안경(augmented reality glasses)과 같은 웨어러블 컴퓨팅 디바이스(wearable computing device) 등일 수 있다.
일 실시예에서, 콘텐츠 서버(160)는, 예를 들어, 비디오 및/또는 오디오 파일들 및/또는 데이터 파일들과 같은 미디어 콘텐츠를, 예를 들어, 사용자 장비(104)를 포함하는, 다른 네트워크 노드들에 제공하는 서버일 수 있다.
두 개의 데이터 네트워크들(108, 110)은 사용자 장비(104), 전송 관리자 시스템(102a), 및 콘텐츠 서버(106) 사이에서, 데이터 패킷들의 형태로, 데이터를 교환하기 위한 경로들(paths)로 사용될 수 있다. 예를 들어, 비디오 또는 오디오 파일과 같은, 미디어 콘텐츠 파일이 콘텐츠 서버(106)로부터 사용자 장비(104)로 다운로드 될 때, 미디어 콘텐츠 파일은 전송 관리자 시스템(102a) 및 데이터 네트워크들(108, 110)을 통해 콘텐츠 서버(106)로부터 사용자 장비(104)로 라우팅 될 수 있다. 예를 들어, 콘텐츠 서버(106)는 목적지로서 사용자 장비(104)의 네트워크 주소(예컨대, 인터넷 프로토콜 IP 주소)를 포함하는 헤더들을 갖는 데이터 패킷들을 전송함으로써 데이터 네트워크들(108, 110)을 통해 사용자 장비(104)에 미디어 콘텐츠 파일을 전송할 수 있다. 일 실시예에서, 두 개의 데이터 네트워크들(108, 110)은 두 개의 별개의 네트워크들일 수 있거나, 단일의 대형 기능적 네트워크의 일부일 수 있다.
일부 실시예들에서, 데이터 네트워크(108)는 전송 관리자 시스템(102a)을 사용자 장비(104)에 통신적으로 연결하는 액세스 네트워크(Access Network, AN)일 수 있다. 예를 들어, 일부 경우들에서, 데이터 네트워크(108)는 2세대(2G) 네트워크, 3세대(3G) 네트워크, 롱 텀 에볼루션(Long Term Evolution, LTE) 네트워크, 5세대(5G) 네트워크 등과 같은 모바일 셀룰러 액세스 네트워크(mobile cellular access network) 중 하나일 수 있다. 일부 경우들에서, 데이터 네트워크(108)는 무선 액세스 네트워크(Radio Access Network, RAN)에 연결된 서브노드들의 코어 컬렉션(core collection)을 포함할 수 있다. 일부 경우들에서, 데이터 네트워크들(108, 110, 114)의 일부들은 근거리 네트워크(Local Area Network) 또는 데이터 센터, 예를 들어, SGi-LAN(Serving Gateway Interface-Local Area Network) 또는 모바일 네트워크의 경계에 위치한 Gi-LAN(Gateway Interface-Local Area Network)일 수 있다.
일부 실시예들에서, 콘텐츠 서버(106)를 전송 관리자 시스템(102a)에 연결하는 데이터 네트워크(110)는, 설명의 목적을 위해, 인터넷으로 간주될 수 있는, 광역 네트워크(Wide-Area Network, WAN)일 수 있다.
일부 실시예들에서, 콘텐츠 서버(106)와 사용자 장비(104) 사이의 패킷 데이터 트래픽의 적어도 선택된 부분이 전송 관리자 시스템(102a)를 통과하거나 그와 일치한다고 가정할 수 있다. 전송 관리자 시스템(102a)을 통한 트래픽을 용이하게 하기 위해, 일 실시예에서, 전송 관리자 시스템(102a)의 물리적 위치는 데이터 네트워크(108)(예컨대, 셀룰러 또는 와이파이 네트워크와 같은 액세스 네트워크)를 데이터 네트워크(110)(예컨대, WAN)와 연결하는 경계 트래픽 집계 지점(들)(border traffic aggregation point(s))에 있을 수 있다. 그러나, 다른 실시예들에서, 전송 관리자 시스템(102a)은 다른 곳에 위치할 수 있다. 일부 실시예들에서, 전송 관리자 시스템(102a)은 적어도 하나의 AN들을 서비스하는 콘텐츠 전달 네트워크(Content Delivery Network, CDN)의 일부일 수 있다.
도 2a 및 도 2b와 관련하여 설명되는 바와 같이, 전송 관리자 시스템(102a)은 복수의 데이터 흐름들을 감시하고, 추가적인 처리 및/또는 관리를 위하여 적어도 하나의 데이터 흐름들을 선택하는 흐름 검출기를 포함한다.
도 1b는 일 실시예에 따른 다른 예시적인 네트워크 환경(150)을 도시한 것이다. 도시된 바와 같이, 네트워크 환경(150)은 도 1a의 전송 관리자 시스템(102a)과 유사한 두 개의 네트워크 장비(예컨대, 사용자 장비(104) 및 콘텐츠 서버(106)) 사이의 데이터 흐름들을 관리하도록 설계된 전송 관리자 시스템(102b)을 포함한다. 도 1b의 전송 관리자 시스템(102b)은 도 1a의 전송 관리자 시스템(102a)에 포함된 것과 유사한 구성요소들을 포함한다. 그러나, 도 1a에 도시된 전송 관리자 시스템(102a)과 달리, 도 1b의 전송 관리자 시스템(102b)은 흐름 검출기를 포함하지 않는다. 대신에, 흐름 검출기는 흐름 검출기 시스템(112)의 일부로 존재한다.
흐름 검출기 시스템(112)은 네트워크 인터페이스(160), 적어도 하나의 프로세서들(162)(예컨대, 중앙 처리 장치(Central Processing Unit, CPU), 그래픽 처리 장치(Graphical Processing Unit, GPU) 등), 스토리지(164)(예컨대, 휘발성 및/또는 비휘발성 메모리), 및 흐름 검출기(166)를 포함한다. 흐름 검출기(112)는, 다른 기능들 중에서도, 도 2a 내지 도 2d를 참고하여 후술되는 바와 같이, 데이터 네트워크(108, 110, 및 114)를 통해 콘텐츠 서버(106)와 사용자 장비(104) 사이의 데이터 트래픽을 감시 및/또는 샘플링하도록 설계될 수 있다. 도 1b의 흐름 검출기 시스템(112)과 전송 관리자 시스템(102b)은 데이터 네트워크(114)를 통해 연결될 수 있으며, 일부 실시예에서, 데이터 네트워크(114)는 라우터들(routers), 스위치들(switches), 게이트웨이들(gateways) 등의 직접적으로 상호 연결된 하드웨어 컬렉션들로 구성된 네트워크 또는 네트워크들과 같은 근거리 통신망(Local Area Network) 또는 소프트웨어 정의 네트워크(Software Defined Network)일 수 있다. 일부 실시예들에서, 세 개의 데이터 네트워크들(108, 110, 및 114)은 단일의 기능적 네트워크일 수 있다.
일 실시예에서, 선택적(selective) 패킷 데이터 흐름들은 후보 흐름들을 식별하기 위하여 데이터 네트워크들(108, 110, 및 114)을 가로지르는 데이터 흐름들을 특성화하는 구성된 정책들(configured policies) 또는 템플릿들(templates)에 기초하여 흐름 검출기 시스템(112)에 의한 추가적인 처리를 위해 식별될 수 있다. 예를 들어, 흐름 검출기 시스템(112)은 흐름을, 네트워크 리소스들의 상대적으로 크고 불균형적인 사용으로 인해 상대적으로 부담이 되는 유형의 데이터 흐름인, 후보 흐름으로 분류하기 위하여 평균 처리량, 전달된 데이터 볼륨, 지속기간, 및 데이터 흐름의 다른 특성들을 측정하기 위하여 흐름 검출기(166)를 이용할 수 있고, 코끼리 흐름이 관리를 위한 후보 흐름인지 결정할 수 있다.
데이터 네트워크들(108, 110, 및 114)을 통해 흐르는 패킷들의 특정 흐름 유형들(예컨대, 코끼리 흐름들)은, 예를 들어, IP 소스 및 목적지 주소들, 전송 제어 프로토콜(Transport Control Protocol, TCP) 또는 사용자 데이터그램 프로토콜(User Datagram Protocol, UDP) 소스 및 목적지 포트들, 프로토콜들(예컨대, IPv4), 흐름 레이블들(예컨대, IPv6), 플래그들, 확장 헤더 필드들 등의 조합을 포함할 수 있는, 예를 들어, 구성요소 패킷 네트워크 및 패킷들의 전송 계층 헤더들에 기초하여 결정될 수 있다. 즉, 상이한 패킷들은, 예를 들어, 패킷들이, 예를 들어, 동일한 소스 및 목적지 포트, 프로토콜, 흐름 레이블들, 확장 헤더 필드들 등을 갖는지 결정하기 위하여 패킷들의 헤더들을 처리함으로써, 동일한 데이터 흐름(또는 가상 흐름)에 속하는 것으로 식별될 수 있다. 데이터 흐름(즉, 패킷 데이터 흐름)이 식별되면, 데이터 흐름이 후보 흐름인지 결정하기 위하여 식별된 데이터 흐름의 (전달되는 데이터의 양, 지속기간 등과 같은) 특성들이 확인될 수 있다.
일부 실시예들에서, 데이터 흐름은 적어도 하나의 흐름들의 집합적 조합(aggregate combination)의 패킷들을 샘플링하고 정의된 샘플링 지속기간 내에서 측정된 임계 데이터 레이트(threshold data rate)를 초과하는 흐름을 선택함으로써 후보 흐름으로 식별된다. 다른 실시예들에서, 데이터 흐름은, 임계 데이터 레이트를 초과하는, 연속적인 데이터 레이트들의 수, 또는 데이터 레이트들의 시퀀스를 측정함으로써 정의될 수 있는 연속 활동 지속기간 임계값(continuous activity duration threshold)을 초과하는 흐름을 샘플링하고 선택함으로써 후보 흐름으로 식별된다. 또 다른 실시예에서, 데이터 흐름은 적어도 하나의 흐름들의 집합적 조합의 패킷들의 일부만을 무작위로 샘플링하고 집합 트래픽 대역폭(aggregate traffic bandwidth)의 상대적으로 불균형적인 사용을 나타내는 상대 검출 확률(relative detection probability)을 초과하는 흐름을 선택함으로써 후보 흐름으로 식별될 수 있다. 또 다른 실시예들에서, 이들 방법들은 조합하여 또는 다른 유사한 방법들과 함께 사용될 수 있다.
일부 경우들에서, 네트워크 또는 전송 계층 패킷 데이터 페이로드들(payloads)이 암호화(encrypted) 또는 난독화(obfuscated) 될 때, 페이로드 헤더들은 동일한 패킷 데이터 흐름에 속하는 패킷들을 식별하기 위하여 처리/검사될 수 있다. 패킷 데이터 페이로드들을 읽을 수 있는 다른 경우들에서, 네트워크 또는 전송 패킷 페이로드들의 정보는 특정 데이터 흐름 또는 데이터 흐름 유형(예컨대, 스트리밍 비디오)과 관련된 패킷들을 추가적으로 식별하기 위하여 처리/검사될 수 있다.
일부 실시예들에서, 흐름 검출기 시스템(112)이 후보 흐름 또는 부담스러울 수 있는 다른 흐름을 식별하면, 흐름 검출 시스템(112)은 식별된 데이터 흐름의 패킷들이 소스(예컨대, 콘텐츠 서버(106))와 목적지(예컨대, 사용자 장비(104)) 사이의 종단 간 경로(end to end path)에서 전송 관리자 시스템(102b)을 통과하게 지시되도록 데이터 네트워크(114)에서 패킷 포워딩 로직(packet forwarding logic)의 재구성을 트리거(trigger)할 수 있다. 예를 들어, 흐름 검출 시스템(112)은 후보 흐름의 특성들을 데이터 네트워크(114)를 포함하는 적어도 하나의 라우터들 및 스위치들에 전달할 수 있다. 따라서, 동적으로 구성된 포워딩 또는 스위칭 규칙들은 후보 흐름의 후속 패킷들이, 예를 들어, 소프트웨어 정의 네트워킹(Software Defined Networking)의 원리들을 이용하여 패킷들의 종단 간 경로에서 전송 관리자 시스템(102b)을 통과하도록 지시하는 데 사용될 수 있다. 다른 실시예들에서, 그러나, 전송 관리자 시스템(102b)은, 기본 규칙에 따라, 종단 간 경로에 포함될 수 있고, 다른 트래픽 흐름들이 처리 없이 포워딩될 수 있는데 반해 검출된 흐름들은 (예컨대, 검출된 흐름들의 전달 속도를 줄이기 위하여 흐름 속도를 페이싱(pacing)함으로써) 처리되도록 흐름 검출기 시스템(112)은 단지 전송 관리자 시스템(102b)에게 적어도 하나의 분류 템플릿들과 일치하는 검출된 흐름들을 알릴 수 있을 뿐이다.
일부 경우들에서, 흐름은 단방향(unidirectional)(예컨대, 업링크(uplink) 또는 다운링크(downlink) 흐름)이거나 통신하는 연결 종점 쌍(communicating pair of connection endpoints)에 속하는 반대 방향의 흐름(예컨대, 목적지 및 소스 네트워크 주소들이 교환된 패킷들, 교환된 포트 주소들, 공통 흐름 레이블 등)과 쌍을 이룸으로써 양방향(bidirectional)일 수 있다. 일부 실시예들에서, 양방향 흐름 쌍의 두 방향은 전송 관리자 시스템(102b)으로 향할 수 있다.
일부 실시예들에서, 흐름 검출기 시스템(112) 및 전송 관리자 시스템(102b)은 도 1b에 도시된 바와 같이 별개의 기능 요소들(distinct functional elements)일 수 있거나, 도 1a에 도시된 바와 같이 단일 기능 유닛(single functional unit)으로 결합될 수 있다.
도 2a는 도 1a의 전송 관리자 시스템(102a)을 구현하는 데 사용될 수 있는 전송 관리자 시스템(200a)을 도시한 것이다. 전송 관리자 시스템(200a)은 버스(210)를 통해 함께 연결된 네트워크 인터페이스(202)(예컨대, 네트워크 인터페이스 카드 또는 "NIC"), 적어도 하나의 프로세서들(204), 큐(queue)(206)(예컨대, 버퍼), 흐름 검출기(166), 및 스토리지(208)(즉, 비일시적 컴퓨터 판독 가능한 매체, 예컨대, RAM(Random Access Memory), ROM(Read Only Memory), 플래시 메모리, 디스크 메모리 등을 포함하는 휘발성 및/또는 비휘발성 메모리)를 포함한다. 스토리지(208)는 적어도 하나의 애플리케이션들(214)(예컨대, 컴퓨터 판독 가능한 명령어들) 및 어떤 패킷 데이터 흐름들이 관리되어야 하는지를 선택 및/또는 결정하기 위한 적어도 하나의 정책들(216)을 저장할 수 있다.
흐름 검출기(166)는, 다른 특징들 중에서도, 복수의 데이터 흐름들을 검출 및 감시하고, 추가적인 처리/관리를 위한 후보 흐름으로서 적어도 하나의 데이터 흐름들을 선택함으로써 후보 흐름 검출기로서 동작하도록 설계될 수 있다. 후보 흐름들의 선택은 스토리지(208)에 저장된 또는 다른 소스들로부터의 적어도 하나의 정책들(216)에 기초할 수 있다. 다양한 실시예들에서, 흐름 검출기는 맞춤형 회로(customized circuitry)(예컨대, 주문형 집적회로(Application Specific Integrated Circuit) 또는 ASIC)를 이용하거나, 또는 맞춤형 회로 및 적어도 하나의 프로세서들과 같은 프로그램 가능한 회로(programmable circuitry)에서 실행 가능한 소프트웨어의 조합을 사용하여 구현될 수 있다.
도 2a에 추가로 도시된 바와 같이, 전송 관리자 시스템(200a)은, 다른 기능들 중에서도, 데이터 흐름(즉, 패킷 데이터 흐름)의 전달 성능(예컨대, 전달 처리량 또는 다른 전달 파라미터의 일부)을 측정하도록 설계될 수 있는, 흐름 관리자(212a)를 더 포함할 수 있다. 흐름 관리자(212a)는, 측정된 데이터 흐름의 전달 성능에 적어도 부분적으로 기초하여, 네트워크가 혼잡한지를 검출할 수 있고, 데이터 흐름의 전달 속도를 감소시키기 위하여 데이터 흐름의 목적지(예컨대, 사용자 장비(104))로의 전달을 조정함으로써, 네트워크 혼잡 검출에 응답하여, 데이터 흐름을 페이싱할 수 있다. 도 2a에 도시된 실시예에서, 흐름 관리자(212a)는 적어도 하나의 컴퓨터 판독 가능한 프로그래밍 명령어들(예컨대, 애플리케이션(214))을 실행하는 적어도 하나의 프로세서들(204)(또는 다른 프로그램 가능한 회로)에 의해 구현된다. 흐름 관리자(212a), 도 2b의 흐름 관리자(212b), 및 도 2b의 흐름 검출기(166)는 각각 본 명세서에서 설명될 다양한 기능들을 수행하도록 설계된 로직 유닛들(logic units)이다.
도 2b는 도 1a의 전송 관리자 시스템(102a)을 구현하는 데 사용될 수 있는 다른 전송 관리자 시스템(200b)을 도시한 것이다. 전송 관리자 시스템(200b)은 도 2a의 전송관리자 시스템(200a)과 동일한 구성요소들 중 일부를 포함한다. 그러나, 도 2a의 흐름 관리자(212a)와 달리, 도 2b에 도시된 흐름 관리자(212b)는 소프트웨어(예컨대, 기계 판독 가능한 프로그래밍 명령어들)를 실행하는 적어도 하나의 프로세서들(204)을 이용하여 구현되는 것 보다는 맞춤형 회로를 이용하여 구현될 수 있다.
또 다른 실시예들에서, 도 2a의 흐름 관리자(212a) 또는 도 2b의 흐름 관리자(212b)는 맞춤형 회로 및 프로그램 가능한 회로(예컨대, 프로세서(204))에 의해 실행되는 소프트웨어의 조합을 이용하여 구현될 수 있다.
도 2c는 도 1b의 전송 관리자 시스템(102b)을 구현하는 데 사용될 수 있는 전송 관리자 시스템(200c)을 도시한 것이다. 전송 관리자 시스템(200c)은 도 2a의 전송 관리자 시스템(200a)과 동일한 구성요소들을 많이 포함하지만, 전송 관리자 시스템(200a)의 흐름 검출기(166)를 포함하지는 않는다.
도 2d는 도 1b의 전송 관리자 시스템(102b)을 구현하는 데 사용될 수 있는 다른 전송 관리자 시스템(200d)를 도시한 것이다. 전송 관리자 시스템(200d)은 도 2b의 전송 관리자 시스템(200b)과 동일한 구성요소들을 많이 포함하지만, 전송 관리자 시스템(200b)의 흐름 검출기(166)를 포함하지는 않는다.
실시예들에서, 흐름 관리자(212a) 또는 흐름 관리자(212b)와 같은 흐름 관리자는 관리되어야 하는 후보 흐름들을 식별하기 위한 후보 흐름 검출기로서 동작하도록 흐름 검출기(166)와 함께 기능할 수 있다.
도 3은 일 실시예에 따른 사용자 장비(104)의 블록도이다. 일부 경우들에서, 모바일 컴퓨팅 디바이스 또는 데스트톱 컴퓨터일 수 있는, 사용자 장비(104)는, 버스(310)를 통해 함께 결합된, 네트워크 인터페이스(302)(예컨대, NIC), 적어도 하나의 프로세서(304), (예컨대, 디스플레이, 스피커, 키보드, 마우스 등을 포함하는) 사용자 인터페이스(306), 및 스토리지(308)(예컨대, 휘발성 및/또는 비휘발성 메모리)를 포함할 수 있다. 스토리지(308)는 적어도 하나의 애플리케이션들(314) 및 적어도 하나의 파일들(316)(예컨대, 오디오 및/또는 비디오 파일들과 같은 미디어 콘텐츠 파일들)을 저장할 수 있다. 일부 실시예들에서, 적어도 하나의 프로세서들(304)은 도 1a의 전송 관리자 시스템(102a) 및/또는 도 1b의 전송 관리자 시스템(102b)에 의해 수행되는 다양한 기능들을 용이하게 하도록 설계될 수 있는 에이전트(312)를 구현하기 위하여 적어도 하나의 컴퓨터 판독 가능한 명령어들(예컨대, 애플리케이션(314))을 실행할 수 있다.
실시예들은 데이터 흐름의 적어도 하나의 특성들, 복수의 데이터 흐름들의 적어도 하나의 특성들, 시간(time of day), 디바이스 유형(type of device), 디바이스 ID(identity of a device), 데이터 흐름의 종점의 ID(identity of an endpoint) 등 중 적어도 하나에 적응되는 후보 흐름 검출 임계값을 이용하여 혼잡 관리를 위한 후보 흐름들을 결정하는 것에 관련된 것이다. 복수의 데이터 흐름들은 데이터 통신 네트워크의 전부 또는 일부를 통과하는 데이터 흐름들, 개별 디바이스로의 또는 개별 디바이스로부터의 데이터 흐름들, 특정 유형 또는 모델의 디바이스로의 또는 디바이스로부터의 데이터 흐름들, 네트워크의 노드 또는 노드 그룹을 통과하는 데이터 흐름들 등일 수 있다.
도 4는 일 실시예에 따른 비디오 버퍼 크기에 기초한 후보 흐름 검출 임계값 계산 로직에 대한 프로세스(400)의 의사-결정 로직(decision-making logic)을 도시한 것이다. 프로세스(400)에서, 후보 흐름 검출기는 비디오들일 수 있는 흐름들을 식별하고, 비디오 재생 디바이스에 이미 전달되었을 수 있는 버퍼(시간)의 양에 기초하여 후보 흐름 검출 임계값을 조정한다. 일부 실시예들에서, 프로세스(400)는 도 2a 및 도 2c의 흐름 관리자(212a)와 같은 흐름 관리자에 의해 수행될 수 있다. 다른 실시예들에서, 프로세스(400)는 도 2b 및 도 2d의 흐름 관리자(212b)와 같은 흐름 관리자에 의해 수행될 수 있다.
S402에서, 프로세스(400)는, 데이터 전송 세션을 감시함으로써, 데이터 전송 네트워크를 통과하는 데이터 흐름들을 검출한다.
S404에서, 프로세스(400)는 각각의 흐름에 대해 그것이 비디오 흐름일 수 있는지를 결정한다. 프로세스(400)는 콘텐츠 목적지 식별(content destination identification)(예컨대, 흐름의 종점을 비디오 흐름들의 소스로 인식함으로써), 트래픽 패턴 인식(traffic pattern recognition), DNS 스니핑(DNS sniffing) 및 심층 패킷 검사(deep packet inspection)를 포함하는, 그러나 이에 한정되지 않는, 다양한 방법들을 통해 흐름이 비디오 흐름일 수 있음을 검출할 수 있다. 데이터 전송 세션을 비디오로 식별하는 것은 또한 다른 네트워크 노드에 의해 수행될 수 있고, 그 정보는 프로세스(400)로 전달된다. 실시예에서, 비디오 흐름들을 식별하는 일부 방법들은 비디오가 아닌 데이터 흐름들을 비디오 데이터 흐름들로 잘못 식별할 수 있지만, 잘못 식별된 데이터 흐름들은 여전히 후보 흐름들로 식별되고 그에 따라 관리될 수 있다.
흐름이 비디오 흐름인 것으로 결정되면, S404에서 프로세스(400)는 S406으로 진행하고; 그렇지 않으면, 프로세스(400)는 종료된다.
흐름이 비디오 흐름인 것으로 결정되면, S406에서 비디오 흐름의 처리량이 결정된다. S408에서, 프로세스(400)는 전달되는 비디오 인코딩 속도(encoding rate)(즉, 비디오 비트레이트(bitrate); 보다 일반적으로, 흐름에 의해 전송되는 미디어의 소비 속도(consumption rate))를 결정한다. 비디오 인코딩 속도는 데이터 전송 세션의 속성들을 관찰함으로써 결정되거나 데이터 전송 세션의 전송 속도(transfer rate)로부터 추론될 수 있다.
비디오의 인코딩 속도가 결정되거나 추론되면, S410에서 프로세스(400)는, 특정 양의 비디오 재생이 데이터 전송 세션의 데이터를 수신하는 디바이스의 버퍼에 전달된 후 데이터 전송 세션이 후보 흐름으로 식별되도록, 후보 흐름 검출 임계값을 조정한다.
일 예로서, 프로세스(400)는 흐름을 이용하여 전송되는 30초의 비디오가 흐름의 목적지에 전달될 때 비디오 흐름을 후보 흐름으로 분류하려고 할 수 있다. 비디오 흐름 A는 1.5Mbps의 처리량을 가질 수 있으며, 이로부터 프로세스(400)는 비디오 흐름 A가 480p 비디오를 전달하고 있다고 추론할 수 있다. 480p 비디오는 1.3Mbps의 인코딩 속도를 갖는 것으로 추정될 수 있다. 따라서, 프로세스(400)는 비디오 흐름 A의 추가 처리량(1.5Mbps 제공 대(versus) 1.3Mbps 필요)이 26초(= 30 Х 1.3/1.5) 내에 30초의 비디오를 제공할 것으로 추정할 수 있고, 비디오 흐름 A의 지속기간이 26초를 초과하면 비디오 흐름 A를 후보 흐름으로 간주할 수 있다. 즉, 비디오 흐름 A에 대한 후보 흐름 검출 임계값은 26초로 설정된다.
그러나, 비디오 흐름 B는 7Mbps의 처리량을 가질 수 있으며, 이로부터 프로세스(400)는 비디오 흐름 A가 1080p의 비디오를 전달하고 있다고 추론할 수 있다. 1080p 비디오는 5Mbps의 인코딩 속도를 갖는 것으로 추정될 수 있다. 따라서, 프로세스(400)는 비디오 흐름 B의 추가 처리량(7Mbps 제공 대 5Mbps 필요)이 약 21.4초 내에 30초의 비디오를 제공할 것으로 추정할 수 있고, 비디오 흐름 A의 지속기간이 21.4초를 초과하면 비디오 흐름 A를 후보 흐름으로 간주할 수 있다.
데이터 흐름이 후보 흐름으로 결정되면, 그것은 데이터 혼잡을 줄이기 위해 관리될 수 있다. 후보 흐름을 관리하는 것은 그것의 처리량을 줄이기 위해 후보 흐름을 페이싱하는 것을 포함할 수 있다. 일 실시예에서, 상기 참조된 미국 특허출원 공개번호 제2016/0261510호에 설명된 바와 같이, 후보 흐름을 페이싱하는 것은 후보 흐름의 지연(delaying) 또는 버퍼링(buffering) 패킷들 사이에 지연시간(latencies)을 삽입함으로써 수행될 수 있다. 일 실시예에서, 후보 흐름을 페이싱하는 것은, 패킷을 드롭하는 것, TCP 혼잡 윈도우(congestion window)의 크기가 조정되도록 신호를 송신 노드에 보내는 것 등과 같은, 다른 혼잡 제어 메커니즘을 이용하는 다른 것을 포함할 수 있다.
이러한 예들에서 후보 검출 임계값은 시간이지만, 또한 다양한 실시예들에 따라 전달된 바이트들(bytes) 또는 추정된 버퍼 용량에 기초하여 조정되는 다른 값들의 조합일 수도 있다.
S412에서, 프로세스(400)는 S410에서 계산된 후보 흐름 검출 임계값을 이용하여 데이터 전송 세션을 평가하고, 그에 따라 데이터 전송 세션이 후보 흐름인지를 결정한다. 데이터 전송 세션이 후보 흐름으로 결정되면, 네트워크 혼잡 가능성을 줄이기 위해 상기 설명된 대로 관리될 수 있다.
도 5는 일 실시예에 따른 비디오 버퍼 채우기 속도(video buffer fill rate)에 기초한 후보 흐름 검출 임계값 계산 로직에 대한 프로세스(500)의 의사-결정 로직을 도시한 것이다. 프로세스(500)에서, 후보 흐름 검출기는 비디오인 데이터 전송 세션들을 식별하거나 다른 네트워크 노드에 의해 데이터 전송 세션이 비디오임을 통지 받고, 비디오 재생 디바이스에서 비디오 재생 버퍼의 성장 속도(rate of growth)에 기초하여 후보 흐름 검출 임계값을 조정한다.
일 실시예에서, 도 5의 단계 S502 내지 S508는 도 4의 단계 S402 내지 S408에 대응되며, 따라서 그에 대한 설명은 간결성을 위해 생략된다.
비디오 흐름으로 식별된 데이터 흐름의 인코딩 속도가 결정되거나 추론된 후, S510에서 프로세스(500)는, 버퍼 성장 속도가 목표 값을 초과한 후 데이터 전송 세션이 후보 흐름으로 식별되도록, 후보 흐름 검출 임계값을 조정한다.
일 예로서, 비디오 흐름 A는 1.5Mbps의 처리량을 가질 수 있으며, 이로부터 프로세스(500)는 비디오 흐름 A가 480p 비디오를 전달하고 있다고 추론할 수 있다. 480p 비디오는 1.3Mbps의 인코딩 속도를 갖는 것으로 추정될 수 있다. 따라서, 프로세스(500)는 비디오 흐름 A의 버퍼 성장 속도가 0.2Mbps(= 1.5Mbps - 1.3Mbps)라고 추정할 수 있다.
비디오 흐름 B는 7Mbps의 처리량을 가질 수 있으며, 이로부터 프로세스(500)는 비디오 흐름 A가 1080p 비디오를 전달하고 있다고 추론할 수 있다. 1080p 비디오는 5Mbps의 인코딩 속도를 갖는 것으로 추정될 수 있다. 따라서, 프로세스(500)는 비디오 흐름 A의 버퍼 성장 속도가 2Mbps(= 1.5Mbps - 1.3Mbps)라고 추정할 수 있다.
S512에서, 프로세스(500)는 각각의 비디오 흐름이 후보 흐름인지를 결정하기 위하여 각각의 비디오 흐름에 대해 추정된 버퍼 성장 속도를 후보 흐름 검출 임계값과 비교한다. 예를 들어, 후보 흐름 검출 임계값이 0.25Mbps이면, 추정된 버퍼 성장 속도가 0.2Mbps인 비디오 흐름 A는 후보 흐름으로 식별되지 않으며, 추정된 버퍼 성장 속도가 2Mbps인 비디오 흐름 B는 후보 흐름으로 식별된다. 다른 실시예에서, 각각의 비디오 흐름에 대한 후보 흐름 검출 임계값을 결정하기 위하여 버퍼 성장 속도 목표값이 각각의 인코딩 속도에 부가되고(added), 비디오 흐름이 후보 흐름인지를 결정하기 위하여 각각의 비디오 흐름의 처리량이 각각의 후보 흐름 검출 임계값과 비교된다. 비디오 흐름의 처리량이 그것의 후보 흐름 검출 임계값을 초과하면, 비디오 흐름은 후보 흐름으로 결정되고, 이후에 네트워크 혼잡을 줄이기 위해 관리될 수 있다.
도 6은 일 실시예에 따른 후보 흐름들의 목표 백분율(percentage)을 달성하기 위하여 흐름 검출기가 후보 흐름 검출 임계값을 조정하는 프로세스(600)의 의사-결정 로직을 도시한 것이다. 프로세스(600)에서, 흐름 검출기는 흐름들의 그룹에 걸쳐 후보 흐름들의 목표 백분율을 달성하기 위하여 후보 흐름 검출 임계값을 조정한다. 도 6에서, S602에서 나온 두 개의 화살표는 잠재적 병렬성을 나타낸다: S604, S606, S608, 및 S610은 프로세스(600)의 제1 서브프로세스를 구성하고, S612 및 S614는 프로세스(500)의 제2 서브프로세스를 구성하며, 실시예에 따라, 제1 및 제2 서브프로세스는 병렬적으로 또는 순차적으로 수행된다.
S602에서, 프로세스(600)는, 데이터 전송 세션들을 감시함으로써, 데이터 전송 네트워크의 적어도 하나의 노드들을 통과하는 데이터 흐름들을 검출한다.
S604에서, 프로세스(600)는 후보 흐름으로 분류된 활성 데이터 흐름의 백분율을 결정한다. 예를 들어, 현재 1000개의 데이터 흐름들이 네트워크에서 수행되고 있고 이러한 데이터 흐름들 중 31개가 후보 흐름들로 결정된 경우, S602에서 프로세스(600)는 전체 흐름들의 3.1%가 후보 흐름들이라고 결정한다.
S606에서, 프로세스(600)는 후보 흐름들인 활성 데이터 흐름들의 백분율을 목표 백분율과 비교한다. 후보 흐름들인 활성 데이터 흐름들의 백분율이 목표 백분율보다 작은 경우, 프로세스(600)는 S608로 진행한다. 후보 흐름들인 활성 데이터 흐름들의 백분율이 목표 백분율보다 큰 경우, 프로세스(600)는 S610으로 진행한다.
S608에서, 프로세스(600)는 후보 흐름들로 결정된 데이터 흐름들의 수를 증가시키기 위하여 후보 흐름 검출 임계값을 감소시킨다.
S610에서, 프로세스(600)는 후보 흐름들로 결정된 데이터 흐름들의 수를 감소시키기 위하여 후보 흐름 검출 임계값을 증가시킨다.
예를 들어, 목표 백분율이 3%이고 프로세스(600)가 S604에서 총 데이터 흐름들의 3.1%가 후보 흐름들로 분류된다고 결정한 경우, S606에서 프로세스(600)는 S610으로 진행하고, 여기서 프로세스(600)는 데이터 흐름들의 더 낮은 비율이 후보 흐름들로 결정되도록 후보 흐름 검출 임계값을 (예컨대, 그 값을 증가시킴으로써) 변화시킨다.
그러나, 목표 백분율이 3%이고 프로세스(600)가 S604에서 총 데이터 흐름들의 2.9%가 후보 흐름들로 분류된다고 결정한 경우, S606에서 프로세스(600)는 S608로 진행하고, 여기서 프로세스(600)는 데이터 흐름들의 더 높은 비율이 후보 흐름들로 결정되도록 후보 흐름 검출 임계값을 (예컨대, 그 값은 감소시킴으로써) 변화시킨다.
일 실시예에서, 후보 흐름 검출 임계값의 조정은 결정된 백분율과 목표 백분율 사이의 차이에 비례할 수 있다. 예를 들어, 목표 백분율이 3%이고, 후보 흐름 검출 임계값이 3MB이고, 후보 흐름들로 결정된 현재 흐름들의 측정된 백분율이 2.8%인 경우, 후보 흐름 검출 임계값은 2.8MB로 하향 조정될 수 있다.
일 실시예에서, 후보 흐름 검출기는 단일 네트워크 노드, 목적지 노드, 다른 식별 요소, 또는 그것들의 조합에 대하여, 전체 데이터 전송 네트워크에 대한 후보 흐름들의 목표 백분율을 가질 수 있다. 일 예로서, 네트워크 노드는 해당 네트워크 노드에 의해 전송되는 모든 데이터 세션들의 3%의 목표 백분율에 따라 구성된 코끼리 흐름 검출 임계값을 가질 수 있다.
S612에서, 프로세스(600)는 데이터 전송 세션에 대해 후보 흐름들을 식별하기 위해 사용되는 해당 데이터 흐름의 속성이 후보 흐름 검출 임계값을 초과하는지를 결정한다. 후보 흐름 검출 임계값이 초과되는 경우, S612에서 프로세스(600)는 S614로 진행하고; 그렇지 않으면 프로세스(600)는 종료될 수 있다.
S614에서 프로세스(600)는 데이터 전송 세션을 후보 흐름으로 표시한다.
도 7은 일 실시예에 따른 흐름들의 그룹에 걸쳐 목표 백분위수(percentile) 값을 달성하기 위하여 흐름 검출기가 후보 흐름 검출 임계값을 조정하는 프로세스(700)의 의사-결정 로직을 도시한 것이다. 도 7에서, S702에서 나온 두 개의 화살표는 잠재적 병렬성을 나타낸다: S704는 프로세스(700)의 제1 서브프로세스를 구성하고, S712 및 S714는 프로세스(700)의 제2 서브프로세스를 구성하며, 실시예에 따라, 제1 및 제2 서브프로세스는 병렬적으로 또는 순차적으로 수행될 수 있다. 도 7의 S702, S712, 및 S714는 각각 도 6의 S602, S612, 및 S614에 대응되며, 따라서 S702, S712, 및 S714에 대한 설명은 간결성을 위해 생략된다.
S704에서, 프로세스(700)는 S702에서 감시된 데이터 전송 세션들의 적어도 하나의 특성들의 분포에 따라 후보 흐름 검출 임계값을 주기적으로 업데이트한다. 프로세스(700)는 특성(들)의 목표 백분위수 내의 흐름들이 후보 흐름들로 간주되도록 후보 흐름 검출 임계값을 설정한다.
예를 들어, 일 실시예에서, 후보 흐름들을 결정하는 데 사용되는 속성은 전송된 데이터 양(amount)일 수 있다. S704에서, 프로세스(700)는 전송된 데이터 양의 분포를 결정한다. 그 다음, 프로세스(700)는 목표 백분위수에 대응하는 전송된 데이터 양을 식별한다. 예를 들어, 목표 백분위수가 90%이면, 프로세스(700)는 90%의 감시된 데이터 전송 세션들이 그 전송된 데이터 양보다 작고, 10%의 감시된 데이터 전송 세션들이 최소한 그 전송된 데이터 양을 갖는, 전송된 데이터양의 90번째 백분위수를 결정한다. 그 다음, 프로세스(700)는 전송된 데이터 양의 90번째 백분위수를 후보 검출 임계값으로 설정한다.
백분위수 값은 전송된 데이터 양, 데이터 전송 지속기간 등과 같은 데이터 전송 세션 특성들의 하나, 여러 개, 또는 조합에 기초할 수 있다. 또한, 프로세스(700)는 단일 네트워크 노드에 대해, 목적지 노드에 대해, 다른 네트워크 노드에 대해, 또는 사용자 디바이스에 대해 전체 데이터 전송 네트워크에 걸쳐 수행될 수 있다.
도 8은 일 실시예에 따른 프로세스(800)의 의사-결정 로직을 도시한 것이다. 프로세스(800)에서, 후보 흐름 검출기는 후보 흐름 검출기에 의해 수집되거나 별도의 네트워크 노드로부터 보고된 정보를 이용하고, 이를 이용하여 이러한 흐름들에 대한 후보 흐름 검출 임계값을 조정한다. 도 8에서, S802에서 나온 두 개의 화살표는 잠재적 병렬성을 나타낸다: S804 및 S806은 프로세스(800)의 제1 서브프로세스를 구성하고, S812 및 S814는 프로세스(800)의 제2 서브프로세스를 구성하며, 실시예에 따라, 제1 및 제2 서브프로세스는 동시에 또는 순차적으로 수행될 수 있다. 도 8의 S802, S812, 및 S814는 각각 도 6의 S602, S612, S614에 대응되며, 따라서 S802, S812, 및 S814에 대한 설명은 간결성을 위해 생략된다.
S804에서, 프로세스(800)는 다른 네트워크 노드로부터 데이터 흐름들에 대한 정보를 수신하거나, S802에서 감시된 데이터 흐름들에 대한 정보를 결정하거나, 또는 둘 모두를 수행한다.
S806에서, 프로세스(800)는 S804에서 수신, 결정, 또는 둘 다에 의한 정보를 이용하여 후보 흐름 검출 임계값을 조정 또는 계산한다. 후보 흐름 검출 임계값은 모든 데이터 전송 세션들에 대해 또는 데이터 전송 세션들의 서브세트에 대해 조정될 수 있다.
일 실시예에서, 후보 흐름 검출기는 데이터 전송 네트워크를 통과하는 데이터 전송 세션들을 관찰할 수 있고, 콘텐츠 분배 노드 또는 사용자 장비 디바이스가 데이터 전송 세션들을 생성 또는 요청하는 빈도에 대한, 그리고 그러한 데이터 전송 세션들이 후보 흐름들로 분류되는 빈도에 대한, 정보를 내부적으로 계산하거나 다른 네트워크 노드로부터 수신할 수 있다.
예시적인 실시예에서, 후보 흐름 검출기는 후보 흐름들로 식별되는, 사용자 디바이스에 의해 생성된, 데이터 전송 세션들의 백분율을 추적하고, 후보 흐름 데이터 전송 세션들의 백분율이 설정값을 초과하면 그 사용자 디바이스에 의해 생성된 후속 데이터 전송 세션들에 대한 후보 흐름 검출 임계값의 변경을 트리거할 수 있다.
다른 예시적인 실시예에서, 후보 흐름 검출기는 특정 사용자 장비 유형(예컨대, 사용자 장비 유형의 제품 및/또는 모델)에 대해 후보 흐름들이 검출되는 비율을 내부적으로 결정하거나 다른 네트워크 노드에 의해 통지 받을 수 있고, 해당 사용자 장비 유형의 데이터 전송 세션들에 대한 후보 흐름 검출 임계값을 적절하게 조정할 수 있다.
도 9는 일 실시예에 따른 프로세스(900)의 의사-결정 로직을 도시한 것이다. 프로세스(900)에서, 후보 흐름 검출기는 다른 네트워크 노드로부터 수신된 정보에 기초하여 후보 흐름 임계값들 조정한다. 도 9에서, S902에서 나온 두 개의 화살표는 잠재적 병렬성을 나타낸다: S904 및 S906은 프로세스(900)의 제1 서브프로세스를 구성하고, S912 및 S914는 프로세스(900)의 제2 서브프로세스를 구성하며, 실시예에 따라, 제1 및 제2 서브프로세스는 병렬적으로 또는 순차적으로 수행될 수 있다. 도 9의 S902, S912, 및 S914는 각각 도 6의 S602, S612, 및 S614에 대응되며, 따라서 S902, S912, 및 S914에 대한 설명은 간결성을 위해 생략된다.
S904에서, 프로세스(900)는 네트워크 노드로부터 메시지들을 수신하고, 수신된 메시지들의 정보에 응답하여 모든 데이터 전송 세션들 또는 데이터 전송 세션들의 서브세트에 대한 후보 흐름 검출 임계값을 조정할 수 있다. 실시예들에서, 수신된 메시지들의 정보는 후보 흐름 검출 임계값을 조정하기 위하여 S902에서 수행된 감시로부터 도출된 정보와 결합될 수 있다.
예를 들어, 데이터 전송 네트워크는 사용자 장비 또는 다른 네트워크 노드들로부터 데이터 전송 세션 성능 메트릭들(data transfer session performance metrics)을 수집하고 후보 흐름 검출 임계값을 조정하기 위해 그 정보를 후보 흐름 검출기에 전송하는 네트워크 노드를 가질 수 있다. 네트워크 성능을 저하시키거나 다른 데이터 전송 세션들에 부정적인 영향을 미치지 않는, 대량의 데이터를 전송하는 대규모 데이터 전송 세션들을 생성하는 네트워크 노드들 또는 사용자 장비에 대해, 후보 흐름 검출기는 그러한 유형의 데이터 전송 세션들에 대한 후보 흐름 검출 임계값을 증가시킬 수 있다. 일 실시예에서, 데이터 전송 품질 보고 네트워크 노드(data transfer quality reporting network node)는 임의의 유형의 장비 또는 프로세스일 수 있고, 임의의 종류의 메트릭들을 수집하여 후보 흐름 검출기에 보낼 수 있다.
일 실시예에서, 데이터 전송 세션의 연속 지속기간(즉, 흐름이 중단 없이 작동된 기간)은 흐름이 후보 흐름인지를 결정하는 데 사용될 수 있다.
도 10은 일 실시예에 따른 후보 흐름 검출기가 시간(time of day)에 기초하여 후보 흐름 검출 임계값을 조정하는 프로세스(1000)의 의사-결정 로직을 도시한 것이다. 도 10에서, S1002에서 나온 두 개의 화살표는 잠재적 병렬성을 나타낸다: S1004 및 S1006은 프로세스(1000)의 제1 서브프로세스를 구성하고, S1012 및 S1014는 프로세스(1000)의 제2 서브프로세스를 구성하며, 실시예에 따라, 제1 및 제2 서브프로세스는 병렬적으로 또는 순차적으로 수행될 수 있다. 도 10의 S1002, S1012, 및 S1014는 각각 도 6의 S602, S612, 및 S614에 대응되며, 따라서 S1002, S1012, 및 S1014에 대한 설명은 간결성을 위해 생략된다.
S1004에서, 프로세스(100)는 시간(time of day)에 기초하여 후보 흐름 검출 임계값을 조정할 수 있다. 예를 들어, 일반적인 네트워크 노드에서, 오전 1시에는 트래픽이 거의 또는 전혀 없고, 오후 9시경에는 트래픽이 최고조에 달한다. 일 실시예에서, 후보 흐름 검출기는 다른 시간에 해당 네트워크 노드에 존재하는 다양한 트래픽 조건들을 처리하기 위하여 후보 흐름 검출 임계값을 한밤중에 더 높은 값으로 조정한 다음 피크 시간 동안 낮추도록 구성될 수 있다.
일 실시예에서, 시간(time of day)은 하루 중의 한 시간(an hour of the day)뿐만 아니라 월 또는 연의 일(a day of the month or year), 요일(a day of the week), 휴일 여부(whether a day is a holiday) 등을 포함할 수 있다. 예를 들어, 일 실시예에서, 후보 흐름 검출 임계값은 현재 시간이 주말에 해당하는지, 또는 현재 시간이 네트워크 트래픽의 증가와 관련된 예약된 이벤트 기간(예컨대, 주요 스포츠 이벤트)에 해당하는지에 따라 조정될 수 있다.
본 개시의 실시예들은 컴퓨터 시스템 또는 비일시적 컴퓨터 판독 가능한 매체상에서 구현될 수 있다. 도 11은 프로세서(1121), 버스(1122), 메모리(1123), 사용자 인터페이스 입력 장치(1126), 사용자 인터페이스 출력 장치(1127), 스토리지(1128), 및 네트워크(1130)에 연결된 네트워크 인터페이스(1129)를 포함하는 컴퓨터 시스템(1120)을 도시한 것이다. 프로세서(1121)는 메모리(1123) 및/또는 스토리지(1128)에 저장된 처리 명령어들을 실행하는 중앙 처리 장치(CPU) 또는 반도체 디바이스일 수 있다. 메모리(1123) 및 스토리지(1128)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1123)는 ROM(1124) 및 RAM(1125)를 포함할 수 있다.
따라서, 본 개시의 일 실시예는 컴퓨터로 구현되는 방법 또는 컴퓨터가 실행 가능한 명령어들이 저장된 비일시적 컴퓨터 판독 가능한 매체로서 구현될 수 있다. 일 실시예에서, 프로세서에 의해 실행될 때, 컴퓨터 판독 가능한 명령어들은 본 개시의 적어도 일 측면에 따른 방법을 수행할 수 있다.
본 기술의 측면들이 특정 예시들과 관련하여 설명되었지만, 본 기술의 실시예들은 이러한 예시들에 의해 한정되지 않는다. 예를 들어, 통상의 기술자는 유휴(idle) 네트워크 용량을 조건부로 사용함으로써 데이터를 다운로드하는 것이 본 기술의 범위 또는 정신을 벗어나지 않고 다양한 다른 알고리즘들 및 프로세스들에 따라 수행될 수 있음을 인식할 것이다.

Claims (24)

  1. 네트워크 혼잡(congestion)을 줄이기 위한 컴퓨터로 구현되는 방법으로서,
    네트워크에서 적어도 하나의 데이터 흐름들(data flows)을 검출하는 단계;
    후보 흐름 검출 임계값(candidate flow detection threshold)을 이용하여, 상기 적어도 하나의 데이터 흐름들의 데이터 흐름이 후보 흐름인지를 결정하는 단계 - 상기 후보 흐름 검출 임계값은 상기 적어도 하나의 데이터 흐름들의 적어도 하나의 특성들에 기초함 -; 및
    상기 데이터 흐름이 상기 후보 흐름이라는 결정에 응답하여, 상기 데이터 흐름을 관리하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 데이터 흐름에 의해 운반되는 데이터의 소비 속도(consumption rate)를 결정하는 단계 - 상기 데이터의 소비 속도는 상기 후보 흐름 검출 임계값을 결정하는 데 사용됨 - 를 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 소비 속도는 인코딩 속도(encoding rate)와 연관되는, 방법.
  4. 제2항에 있어서,
    상기 데이터 흐름의 처리량(throughput)을 결정하는 단계 - 상기 처리량은 상기 소비 속도와 소정의 지속기간(duration)의 곱(times)에 대응하는 양(amount)의 데이터를 버퍼링하는 데 필요한 전송 시간에 따라 상기 후보 흐름 검출 임계값을 결정하는 데 사용됨 - 를 더 포함하고,
    상기 데이터 흐름이 상기 후보 흐름인지를 결정하기 위하여 상기 데이터 흐름의 지속 시간이 상기 후보 흐름 검출 임계값과 비교되는, 방법.
  5. 제2항에 있어서,
    상기 후보 흐름 검출 임계값을 결정하기 위하여 소정의 버퍼 성장 속도 값(buffer growth rate value)이 상기 소비 속도에 부가되고(added), 상기 방법은:
    상기 데이터 흐름의 처리량을 결정하는 단계, 및
    상기 데이터 흐름이 후보 흐름인지를 결정하기 위하여 상기 데이터 흐름의 상기 처리량을 상기 후보 흐름 검출 임계값과 비교하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    후보 흐름들로 결정된 상기 복수의 데이터 흐름들의 백분율(percentage)을 결정하는 단계;
    상기 결정된 백분율을 소정의 목표 백분율과 비교하는 단계;
    상기 결정된 백분율이 상기 소정의 목표 백분율보다 작다는 것에 응답하여, 후보 흐름들로 결정된 상기 복수의 데이터 흐름들의 수를 증가시키도록 상기 후보 흐름 검출 임계값을 조정하는 단계; 및
    상기 결정된 백분율이 상기 소정의 목표 백분율보다 크다는 것에 응답하여, 후보 흐름들로 결정된 상기 복수의 데이터 흐름들의 수를 감소시키도록 상기 후보 흐름 검출 임계값을 조정하는 단계를 더 포함하고,
    상기 후보 흐름 검출 임계값은 상기 후보 흐름 검출 임계값을 결정하도록 조정되는, 방법.
  7. 제1항에 있어서,
    상기 적어도 하나의 특성들의 분포(distribution) 또는 상기 적어도 하나의 특성들의 조합의 분포를 결정하는 단계;
    상기 결정된 분포의 소정의 백분위수(percentile)에 대응하는 값을 결정하는 단계; 및
    상기 결정된 값에 따라 상기 후보 흐름 검출 임계값을 결정하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서,
    상기 방법은 제1 네트워크 노드에 의해 수행되고, 상기 방법은:
    제2 네트워크 노드로부터 상기 복수의 데이터 흐름들에 관한 정보를 수신하는 단계; 및
    상기 수신된 정보를 이용하여 상기 후보 흐름 검출 임계값을 결정하는 단계를 더 포함하는, 방법.
  9. 제1항에 있어서,
    상기 방법은 제1 네트워크 노드에 의해 수행되고, 상기 방법은:
    제2 네트워크 노드로부터 네트워크 메트릭들(metrics)을 수신하는 단계; 및
    상기 수신된 네트워크 메트릭들을 이용하여 상기 후보 흐름 검출 임계값을 결정하는 단계를 더 포함하고,
    상기 제1 네트워크 노드는 상기 복수의 데이터 흐름들을 수신한 네트워크 노드인, 방법.
  10. 제1항에 있어서,
    현재 시간을 결정하는 단계; 및
    상기 현재 시간에 따라 상기 후보 흐름 검출 임계값을 결정하는 단계를 더 포함하는, 방법.
  11. 제1항에 있어서,
    상기 데이터 흐름이 능동적으로 패킷들을 전송하는 동안의 지속기간을 결정하는 단계; 및
    상기 데이터 흐름이 상기 후보 흐름인지를 결정하기 위하여 상기 지속기간을 상기 후보 흐름 검출 임계값과 비교하는 단계를 더 포함하는, 방법.
  12. 제1항에 있어서,
    상기 데이터 흐름에 의해 통신되는 바이트(byte)의 수를 결정하는 단계; 및
    상기 데이터 흐름이 상기 후보 흐름인지를 결정하기 위하여 상기 바이트의 수를 상기 후보 흐름 검출 임계값과 비교하는 단계를 더 포함하는, 방법.
  13. 전송 관리자 시스템으로서,
    서로 통신 가능하게 연결된, 적어도 하나의 프로세서, 네트워크 인터페이스, 큐(queue), 및 스토리지(storage)를 포함하고, 상기 스토리지는 컴퓨터가 실행 가능한 명령어들을 저장하고, 상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    네트워크에서 적어도 하나의 데이터 흐름들(data flows)을 검출하도록 하고;
    후보 흐름 검출 임계값(candidate flow detection threshold)을 이용하여, 데이터 흐름이 후보 흐름인지를 결정하도록 하고 - 상기 후보 흐름 검출 임계값은 상기 적어도 하나의 데이터 흐름들의 적어도 하나의 특성들에 기초함 -; 그리고
    상기 데이터 흐름이 상기 후보 흐름이라는 결정에 응답하여, 상기 데이터 흐름을 관리하도록 하는, 전송 관리자 시스템.
  14. 제13항에 있어서,
    상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    상기 데이터 흐름에 의해 운반되는 데이터의 소비 속도(consumption rate)를 결정하도록 하는 - 상기 소비 속도는 상기 후보 흐름 검출 임계값을 결정하는 데 사용됨 -, 전송 관리자 시스템.
  15. 제14항에 있어서,
    상기 소비 속도는 인코딩 속도(encoding rate)와 연관되는, 전송 관리자 시스템.
  16. 제14항에 있어서,
    상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    상기 데이터 흐름의 처리량(throughput)을 결정하도록 하고 - 상기 처리량은 상기 소비 속도와 소정의 지속기간(duration)의 곱(times)에 대응하는 양(amount)의 데이터를 버퍼링하는 데 필요한 전송 시간에 따라 상기 후보 흐름 검출 임계값을 결정하는 데 사용됨 -,
    상기 데이터 흐름이 상기 후보 흐름인지를 결정하기 위하여 상기 데이터 흐름의 지속 시간이 상기 후보 흐름 검출 임계값과 비교되는, 전송 관리자 시스템.
  17. 제14항에 있어서,
    상기 후보 흐름 검출 임계값을 결정하기 위하여 소정의 버퍼 성장 속도 값(buffer growth rate value)이 상기 소비 속도에 부가되고(added), 상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    상기 데이터 흐름의 처리량을 결정하도록 하고; 그리고
    상기 데이터 흐름이 후보 흐름인지를 결정하기 위하여 상기 데이터 흐름의 상기 처리량을 상기 후보 흐름 검출 임계값과 비교하도록 하는, 방법.
  18. 제13항에 있어서,
    상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    후보 흐름들로 결정된 상기 복수의 데이터 흐름들의 백분율(percentage)을 결정하도록 하고;
    상기 결정된 백분율을 소정의 목표 백분율과 비교하도록 하고;
    상기 결정된 백분율이 상기 소정의 목표 백분율보다 작다는 것에 응답하여, 후보 흐름들로 결정된 상기 복수의 데이터 흐름들의 수를 증가시키도록 상기 후보 흐름 검출 임계값을 조정하도록 하고; 그리고
    상기 결정된 백분율이 상기 소정의 목표 백분율보다 크다는 것에 응답하여, 후보 흐름들로 결정된 상기 복수의 데이터 흐름들의 수를 감소시키도록 상기 후보 흐름 검출 임계값을 조정하도록 하는, 전송 관리자 시스템.
  19. 제13항에 있어서,
    상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    상기 적어도 하나의 특성들의 분포(distribution) 또는 상기 적어도 하나의 특성들의 조합의 분포를 결정하도록 하고;
    상기 결정된 분포의 소정의 백분위수(percentile)에 대응하는 값을 결정하도록 하고; 그리고
    상기 결정된 값에 따라 상기 후보 흐름 검출 임계값을 결정하도록 하는, 전송 관리자 시스템.
  20. 제13항에 있어서,
    상기 전송 관리자 시스템은 제1 네트워크 노드에 포함되고, 상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    제2 네트워크 노드로부터 상기 복수의 데이터 흐름들에 관한 정보를 수신하도록 하고; 그리고
    상기 수신된 정보를 이용하여 상기 후보 흐름 검출 임계값을 결정하도록 하는, 전송 관리자 시스템.
  21. 제13항에 있어서,
    상기 전송 관리자 시스템은 제1 네트워크 노드에 포함되고, 상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    제2 네트워크 노드로부터 네트워크 메트릭들(metrics)을 수신하도록 하고; 그리고
    상기 수신된 네트워크 메트릭들을 이용하여 상기 후보 흐름 검출 임계값을 결정하도록 하는, 전송 관리자 시스템.
  22. 제13항에 있어서,
    상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    현재 시간을 결정하도록 하고; 그리고
    상기 현재 시간에 따라 상기 후보 흐름 검출 임계값을 결정하도록 하는, 전송 관리자 시스템.
  23. 제13항에 있어서,
    상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    상기 데이터 흐름이 능동적으로 패킷들을 전송하는 동안의 지속기간을 결정하도록 하고; 그리고
    상기 데이터 흐름이 상기 후보 흐름인지를 결정하기 위하여 상기 지속기간을 상기 후보 흐름 검출 임계값과 비교하도록 하는, 전송 관리자 시스템.
  24. 제13항에 있어서,
    상기 컴퓨터가 실행 가능한 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전송 관리자 시스템이:
    상기 데이터 흐름에 의해 통신되는 바이트(byte)의 수를 결정하도록 하고; 그리고
    상기 데이터 흐름이 상기 후보 흐름인지를 결정하기 위하여 상기 바이트의 수를 상기 후보 흐름 검출 임계값과 비교하도록 하는, 전송 관리자 시스템.
KR1020207024696A 2018-01-26 2019-01-25 데이터 패킷 네트워크들에서 후보 흐름들을 식별하기 위한 시스템들 및 방법들 KR20200105539A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862622746P 2018-01-26 2018-01-26
US62/622,746 2018-01-26
PCT/US2019/015294 WO2019148041A1 (en) 2018-01-26 2019-01-25 Systems and methods for identifying candidate flows in data packet networks

Publications (1)

Publication Number Publication Date
KR20200105539A true KR20200105539A (ko) 2020-09-07

Family

ID=67392476

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207024696A KR20200105539A (ko) 2018-01-26 2019-01-25 데이터 패킷 네트워크들에서 후보 흐름들을 식별하기 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (2) US11368398B2 (ko)
EP (1) EP3744056A4 (ko)
JP (1) JP2021512567A (ko)
KR (1) KR20200105539A (ko)
CN (1) CN111656740A (ko)
WO (1) WO2019148041A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9756112B2 (en) 2015-02-11 2017-09-05 At&T Intellectual Property I, L.P. Method and system for managing service quality according to network status predictions
US11805034B1 (en) 2016-12-07 2023-10-31 Reservoir Labs, Inc. Systems and methods for detecting large network flows
US10924418B1 (en) * 2018-02-07 2021-02-16 Reservoir Labs, Inc. Systems and methods for fast detection of elephant flows in network traffic
US10623788B2 (en) * 2018-03-23 2020-04-14 At&T Intellectual Property I, L.P. Methods to estimate video playback buffer
US10693575B2 (en) 2018-08-31 2020-06-23 At&T Intellectual Property I, L.P. System and method for throughput prediction for cellular networks
US11490149B2 (en) * 2019-03-15 2022-11-01 At&T Intellectual Property I, L.P. Cap-based client-network interaction for improved streaming experience
CN112367217B (zh) * 2020-10-20 2021-12-17 武汉大学 一种面向软件定义网络的协作式大流检测方法及系统
TWI763261B (zh) * 2021-01-19 2022-05-01 瑞昱半導體股份有限公司 數據流分類裝置
CN113132180B (zh) * 2021-03-11 2022-07-29 武汉大学 一种面向可编程网络的协作式大流检测方法

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19526148C2 (de) * 1995-07-07 1997-06-05 Mannesmann Ag Verfahren und System zur Prognose von Verkehrsströmen
AU1321801A (en) * 1999-10-29 2001-05-08 Forskarpatent I Vastsverige Ab Method and arrangements for congestion control in packet networks using thresholds and demoting of packet flows
US7453801B2 (en) * 2001-11-08 2008-11-18 Qualcomm Incorporated Admission control and resource allocation in a communication system supporting application flows having quality of service requirements
US7688843B2 (en) * 2002-09-13 2010-03-30 Pmc-Sierra Israel Ltd. Operations method in an ethernet passive optical network that includes a network unit with multiple entities
US20040158626A1 (en) * 2003-02-11 2004-08-12 Douglas Christopher Paul Method and apparatus for monitoring data flow to a router
US7508763B2 (en) * 2003-09-04 2009-03-24 Hewlett-Packard Development Company, L.P. Method to regulate traffic congestion in a network
US7543052B1 (en) * 2003-12-22 2009-06-02 Packeteer, Inc. Automatic network traffic discovery and classification mechanism including dynamic discovery thresholds
US7496661B1 (en) * 2004-03-29 2009-02-24 Packeteer, Inc. Adaptive, application-aware selection of differentiated network services
US8125910B2 (en) * 2004-06-25 2012-02-28 Nec Corporation Communication system
US7545748B1 (en) 2004-09-10 2009-06-09 Packeteer, Inc. Classification and management of network traffic based on attributes orthogonal to explicit packet attributes
US7830813B1 (en) * 2004-09-30 2010-11-09 Avaya Inc. Traffic based availability analysis
US7742406B1 (en) 2004-12-20 2010-06-22 Packeteer, Inc. Coordinated environment for classification and control of network traffic
US7480238B2 (en) * 2005-04-14 2009-01-20 International Business Machines Corporation Dynamic packet training
US7539219B2 (en) * 2005-05-12 2009-05-26 Radioshack Corporation Method and apparatus for synchronization of digital multimedia packets
JP2007336430A (ja) * 2006-06-19 2007-12-27 Alaxala Networks Corp コネクションレス型通信により送信されるパケットの中継装置およびこの中継装置におけるフロー制御情報設定方式
US7881725B2 (en) * 2006-06-30 2011-02-01 Nokia Corporation Method and apparatus for providing adaptive thresholding for adjustment to loading conditions
US7783839B2 (en) * 2007-01-08 2010-08-24 International Business Machines Corporation Using different algorithms to destage different types of data from cache
US20080181159A1 (en) * 2007-01-25 2008-07-31 Metzler Benjamin T Method and apparatus for reliable multicast communication over wireless network
US8229227B2 (en) * 2007-06-18 2012-07-24 Zeitera, Llc Methods and apparatus for providing a scalable identification of digital video sequences
US8625608B2 (en) * 2007-07-09 2014-01-07 Telefonaktiebolaget L M Ericsson (Publ) Adaptive rate control in a communications system
US8854966B2 (en) * 2008-01-10 2014-10-07 Apple Inc. Apparatus and methods for network resource allocation
JP5064434B2 (ja) * 2009-03-27 2012-10-31 西日本電信電話株式会社 通信制御装置および通信制御方法
US20110085444A1 (en) * 2009-10-13 2011-04-14 Brocade Communications Systems, Inc. Flow autodetermination
US9098335B2 (en) * 2009-12-23 2015-08-04 Citrix Systems, Inc. Systems and methods for managing spillover limits in a multi-core system
US9124515B2 (en) * 2010-11-22 2015-09-01 Hewlett-Packard Development Company, L.P. Elephant flow detection in a computing device
US8660008B2 (en) * 2011-03-02 2014-02-25 3Inova Networks Inc. Traffic management in distributed wireless networks
US20120330615A1 (en) * 2011-06-24 2012-12-27 Itron Inc. Forensic analysis of resource consumption data
CN103167185B (zh) * 2011-12-09 2015-09-02 网秦无限(北京)科技有限公司 电池节能方法和系统
US9219672B2 (en) * 2011-12-14 2015-12-22 Verizon Patent And Licensing Inc. Label switching or equivalent network multipath traffic control
US9398473B2 (en) * 2011-12-21 2016-07-19 Cisco Technology, Inc. System and method for load based optimization in communication networks
US8630177B2 (en) * 2012-02-27 2014-01-14 Cisco Technology, Inc. Dynamic directed acyclic graph (DAG) root bypass for computer networks
CN102724108B (zh) * 2012-05-22 2015-02-04 库柏资讯软体股份有限公司 网络封包及数据库封包稽核系统及其关联性稽核装置
ES2588503T3 (es) * 2012-08-27 2016-11-03 Itron, Inc. Gestión de ancho de banda en una infraestructura de medición avanzada
WO2014071084A2 (en) * 2012-10-31 2014-05-08 O'malley, Matt System and method for dynamically monitoring, analyzing, managing, and alerting packet data traffic and applications
US8978688B2 (en) * 2012-11-14 2015-03-17 Shenzhen Mindray Bio-Medical Electronics Co. Ltd. Dual mode electronic flow control system
US20140130906A1 (en) * 2012-11-14 2014-05-15 Mindray Ds Usa, Inc. Systems and methods for electronically controlling the flow rates of fluids
US20150339704A1 (en) * 2012-11-29 2015-11-26 Google Inc. Valuing online content served to an online publisher
US9571403B2 (en) * 2013-02-07 2017-02-14 Broadcom Corporation Packet marking for flow management, including deadline aware flow management
US9185015B2 (en) * 2013-02-19 2015-11-10 Broadcom Corporation Application aware elephant flow identification
US20140237118A1 (en) * 2013-02-19 2014-08-21 Broadcom Corporation Application Aware Elephant Flow Management
US9692775B2 (en) * 2013-04-29 2017-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and system to dynamically detect traffic anomalies in a network
JP2014232923A (ja) * 2013-05-28 2014-12-11 日本電気株式会社 通信装置、サイバー攻撃検出方法、及びプログラム
CN104348740B (zh) 2013-07-31 2018-04-10 国际商业机器公司 数据包处理方法和系统
US9191325B2 (en) * 2013-10-29 2015-11-17 Solana Networks Inc. Method and system for processing network traffic flow data
US9967199B2 (en) * 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
EP3103220B1 (en) * 2014-03-14 2019-09-18 Huawei Technologies Co., Ltd. System and method for dynamic effective rate estimation for real-time video traffic
US9451095B2 (en) * 2014-06-17 2016-09-20 Alcatel Lucent Charging in a software defined network
US9548941B2 (en) * 2014-06-18 2017-01-17 Adobe Systems Incorporated Data flow node provisioning
US10355957B2 (en) * 2014-07-22 2019-07-16 Redknee Inc. Method, system and apparatus for monitoring error correction data in media sessions
US9608938B2 (en) 2014-08-12 2017-03-28 Arista Networks, Inc. Method and system for tracking and managing network flows
US10079765B2 (en) * 2014-10-30 2018-09-18 Astrolink International Llc System and methods for assigning slots and resolving slot conflicts in an electrical distribution grid
JP2016152453A (ja) * 2015-02-16 2016-08-22 株式会社日立製作所 通信制御システム、通信方法、及びゲートウェイ装置
EP3266170B1 (en) 2015-03-03 2021-10-20 Opanga Networks, Inc. Method for pacing data flows
US9685156B2 (en) * 2015-03-12 2017-06-20 Sony Mobile Communications Inc. Low-power voice command detector
US10003537B2 (en) * 2015-10-01 2018-06-19 Keysight Technologies Singapore (Holding) Pte Ltd Egress port overload protection for network packet forwarding systems
US10573170B2 (en) * 2016-01-25 2020-02-25 Mandar Anant Joshi Consumption based media playback
US10659333B2 (en) * 2016-03-24 2020-05-19 Cisco Technology, Inc. Detection and analysis of seasonal network patterns for anomaly detection
JP6425273B2 (ja) * 2016-03-31 2018-11-21 Necプラットフォームズ株式会社 通信中継装置、通信制御プログラム及び通信制御方法
CN107342906B (zh) * 2016-04-29 2020-04-21 华为技术有限公司 一种大象流的检测方法、设备及系统
CN109314670B (zh) * 2016-06-10 2022-08-23 瑞典爱立信有限公司 在数据中心中的数据流传输的调度
US10601714B2 (en) * 2016-06-28 2020-03-24 Mellanox Technologies Tlv Ltd. Adaptive flow prioritization
US10291531B2 (en) * 2016-06-30 2019-05-14 Juniper Networks, Inc. Bandwidth management for resource reservation protocol LSPS and non-resource reservation protocol LSPS
EP3616175A4 (en) * 2017-04-24 2021-01-06 Rapidsos, Inc. MODULAR EMERGENCY COMMUNICATION FLOW MANAGEMENT SYSTEM
US20180351868A1 (en) * 2017-05-31 2018-12-06 Cisco Technology, Inc. Multicast abr flow prioritization using error detection thresholds in the receiver
US10530678B2 (en) * 2017-07-20 2020-01-07 Vmware, Inc Methods and apparatus to optimize packet flow among virtualized servers
US10785101B2 (en) * 2017-08-23 2020-09-22 Futurewei Technologies, Inc. Automatically optimize parameters via machine learning
US11244242B2 (en) * 2018-09-07 2022-02-08 Intel Corporation Technologies for distributing gradient descent computation in a heterogeneous multi-access edge computing (MEC) networks

Also Published As

Publication number Publication date
EP3744056A4 (en) 2021-10-20
WO2019148041A1 (en) 2019-08-01
US20190238461A1 (en) 2019-08-01
JP2021512567A (ja) 2021-05-13
EP3744056A1 (en) 2020-12-02
US20210314261A1 (en) 2021-10-07
US11368398B2 (en) 2022-06-21
US11677665B2 (en) 2023-06-13
CN111656740A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
US11677665B2 (en) Systems and methods for identifying candidate flows in data packet networks
US11546268B2 (en) Systems and methods for pacing data flows
US9866492B2 (en) Localized congestion exposure
US9948561B2 (en) Setting delay precedence on queues before a bottleneck link based on flow characteristics
US10033653B2 (en) Controlling a transmission control protocol congestion window size
EP2670189B1 (en) Control of data flows over transport networks
US20180212845A1 (en) Network resource handling
US10523571B2 (en) Processing data items in a communications network
US20220271987A1 (en) Methods and system for adaptive measurements applied to real time performance monitoring in a packet network
Nugroho et al. Mapping of quality of service parameter with monitoring end-to-end method of ITU-T Y. 1541 standard in the hotspot area
EP2134030B1 (en) System and method for dynamic management of QoS real-time multimedia traffic in packet based Mesh networks

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application