KR101578473B1 - 온-디맨드 어플라이언스를 이용한 리얼-타임 네트워크 모니터링 및 가입자 식별 - Google Patents

온-디맨드 어플라이언스를 이용한 리얼-타임 네트워크 모니터링 및 가입자 식별 Download PDF

Info

Publication number
KR101578473B1
KR101578473B1 KR1020147036908A KR20147036908A KR101578473B1 KR 101578473 B1 KR101578473 B1 KR 101578473B1 KR 1020147036908 A KR1020147036908 A KR 1020147036908A KR 20147036908 A KR20147036908 A KR 20147036908A KR 101578473 B1 KR101578473 B1 KR 101578473B1
Authority
KR
South Korea
Prior art keywords
flow
data flow
network
service provider
user device
Prior art date
Application number
KR1020147036908A
Other languages
English (en)
Other versions
KR20150032541A (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 KR20150032541A publication Critical patent/KR20150032541A/ko
Application granted granted Critical
Publication of KR101578473B1 publication Critical patent/KR101578473B1/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/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • 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/0882Utilisation of link capacity
    • 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/12Avoiding congestion; Recovering from 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/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/08Testing, supervising or monitoring using real traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/10Scheduling measurement reports ; Arrangements for measurement reports

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하기 위해서 시스템 및 방법이 개시된다. 상기 시스템은, 기원 서버에서 콘텐트를 위한 사용자 장치로부터의 요청에 응답하는, 네트워크 데이터 흐름의 시작에 대한 알림을 수신한다. 상기 시스템은 상기 기원 서버로부터 상기 사용자 장치로 향하는 상기 데이터 흐름을 모니터링할지 여부를 결정한다. 만약 그렇게 결정된다면, 상기 시스템은 상기 데이터 흐름의 통계 정보를 수집하고 데이터베이스의 흐름 기록으로 상기 통계 정보를 저장한다. 상기 시스템은 또한 상기 데이터 흐름의 상기 통계 정보를 분석하여 상기 서비스 제공자 네트워크의 가입자에게 상기 흐름 기록을 매핑하고 상기 데이터 흐름의 상기 통계 정보의 상기 분석에 기초하여 상기 서비스 제공자의 네트워크에 의해 상기 데이터 흐름으로 제공되는 대역폭을 예측한다.

Description

온-디맨드 어플라이언스를 이용한 리얼-타임 네트워크 모니터링 및 가입자 식별{REAL-TIME NETWORK MONITORING AND SUBSCRIBER IDENTIFICATION WITH AN ON-DEMAND APPLIANCE}
상기 개시는 일반적으로 네트워크 상에서 사용자 경험을 향상시키는 것에 관련되며, 더욱 구체적으로, 상기 네트워크에서 주어진 노드에 연결된 많은 장치들의 대역폭 소비를 모니터링하는 것에 관련 된다.
최근 몇 년간, 스마트폰들 및 태블릿들과 같은 모바일 장치들이 널리 퍼졌다. 모발일 컴퓨팅 전원 및 광범위한 무선 인터넷 접속에서의 빠른 발전을 고려할 때, 점점 더 많은 사용자들이 자신의 모바일 장치에서 스트리밍된 비디오를 시청한다. 네트워크 혼잡의 탐지는 상기 네트워크 상에서 사용자 경험을 최대화 하려는 네트워크 운영자에게 점점 더 중요해졌다. 네트워크 운영자가 꾸준히 그들의 네트워크의 요량을 증가시킴에도, 대역폭에 대한 요구는 훨씬 빠른 페이스로 증가한다. 네트워크 기반 시설에서 혼잡을 관리하는 것과 네트워크 증가를 관리하는 것은 상기 모바일 스페이스에서 특히 중요하며, 이는 무선 모바일 네트워크에 의해 활용되는 무선 접속망(radio access network; RAN) 및 무선 스펙트럼(radio spectrum)의 높은 비용 때문이다. 이러한 높은 비용은 모바일 서비스 제공자들이 추가적인 RAN 기반시설의 구매를 통해 각각의 네트워크 접속 포인트로 초과 설비를 제작하는 것을 막는다. 그러나, 이와 같은 상황은 다른 유형의 네트워크 기반시설들에도 발생할 수 있다.
현존하는 네트워크 구성들은 운영자들에게 그들의 네트워크 내의 트래픽의 현재 상태에 대한 전망을 제공할 수 있으나, “좋음”의 척도, 즉, 얼마만큼의 탄력성이 남았는지 또는 얼마나 더 많은 데이터를 상기 네트워크가 처리할 수 있는지를 제공하지는 않는다. 훌륭한 사용자 경험은 보통 신뢰할 수 있고 지속 가능한 방식으로 데이터를 전달하기 위한 상기 네트워크의 능력에 의존하기 때문에, 이러한 척도는 멀티미디어 콘텐츠 전달을 위해 중요하다. 멀티미디어 콘텐츠의 상기 스트리밍 동안의 지연 및 재-버퍼링을 방지하기 위해서 최소한의 데이터 속도가 요구되며, 따라서 충분한 대역폭을 보장하는 것이 체감 품질에 중요하다. 일반적으로, 멀티미디어 콘텐츠 제공자들은 무선 기반시설의 수용능력 훨씬 너머에 있는 수준에서 멀티미디어 콘텐츠를 전달하기에 충분하게 준비된다. 따라서, 트래픽 부담을 덜고 상기 네트워크 상의 모든 사용자들의 경험을 최대화 하기 위한 네트워크 데이터 최적화를 구현하기 위해서 무선 서비스 제공자에게 부담이 돌아간다. 현재는, 그러나, 모바일 서비스 제공자들은 종종 네트워크 세그먼트들이 정체되고 어떤 최적화도 필요하지 않는 흐름에 최적화를 적용하는 경향이 있는 네트워크 세그먼트들에 대한 가시성이 거의 없는 매우 거친 도구들을 사용하도록 강요 받는다.
일반적으로, 모바일 서비스 제공자들은 네트워크 처리량을 추정하기 위해서 가입자 트랙픽의 모든 것을 모니터링하는 인라인 네트워크(inline network) 어플라이언스(appliance)들을 이용한다. 이는 단일 네트워크 접속 포인트를 통해 초당 수십만에서 수백만의 네트워크 요청들을 처리하기 위해서 스케일(scale)해야 하기 때문에 상기 시스템에 큰 부담을 준다. 더욱이, 네트워크 서비스 제공자들은 비용 증가를 초래하는 상기 네트워크의 상태에 반응하기 위해서 종종 이러한 모니터링 기술들을 마이크로-스케일(예를 들어, RAN 장비 설치 단위당) 상에서 이용해야만 한다. 추가적으로, 웹 트래픽의 많은 부분은, 짧은 수명 및 버스티(bursty) 특성으로 인해 모든 레벨에서 네트워크 모니터링을 어렵게 만들 수 있는, 작은 요청들로 구성된다.
개시된 구현들은 발명을 실시하기 위한 구체적인 내용, 첨부된 청구항들 및 첨부된 도면들(또는 그림들)로부터 보다 손쉽게 확인될 다른 이점들 및 기능들을 갖는다. 상기 도면들의 간단한 소개는 다음과 같다.
도면(도) 1은 선택적인 온-디맨드 리얼-타임 네트워크 모니터링 및 가입자 식별을 위한 예시적인 통신 환경의 고 레벨 블록도를 나타낸다.
도 2는 기계 판독 가능한 매체로부터 명령들을 판독하고 그것들을 프로세서(또는 제어기)에서 실행할 수 있는 예시적인 기계의 구성요소의 일 실시 예를 나타낸다.
도 3은 선택적인 리얼-타임 네트워크 모니터링 및 가입자 식별을 제공하기 위한 네트워크 제어기의 예시적인 구조의 일 실시 예를 나타낸다.
도 4a 및 도 4b는 선택적인 온-디맨드 네트워크 모니터링 및 가입자 식별을 제공하기 위한 상기 네트워크 제어기의 예시적인 작업 모드들의 일 실시 예를 나타낸다.
도 5는 선택적인 온-디맨드 리얼-타임 네트워크 모니터링 및 가입자 식별을 위한 “계속” 작업 모드에 있는 예시적인 네트워크 제어기의 이벤트 행적의 일 실시 예를 나타낸다.
도 6은 선택적인 온-디맨드 리얼-타임 네트워크 모니터링 및 가입자 식별을 위한 “계산” 작업 모드에 있는 예시적인 네트워크 제어기의 이벤트 행적의 일 실시 예를 나타낸다.
도 7은 네트워크 제어기에 의해 관리되는 예시적인 플로우 캐시(flow cache)의 구성 요소의 일 실시 예를 나타낸다.
상기 도면들(도) 및 이어지는 설명은 단지 선호되는 실시 예들에 관한 것이다. 이어지는 논의로부터, 여기에 개시된 구성 및 방법의 다른 실시 예들은 청구항에 기재된 발명의 원리에서 벗어나지 않고 이용될 수 있는 가능한 대안으로 인식될 것이다.
첨부된 도면들에 도시되어 있는 다수의 실시 예들에 대한 자세한 참조가 이루어질 것이다. 실질적으로 유사하거나 동일한 참조 번호가 도면에서 사용될 수 있으며 유사하거나 동일한 기능을 나타낼 수 있음에 유의한다. 상기 도면들은 설명을 위한 목적으로만 상기 개시된 시스템(또는 방법)의 실시 예들을 나타낸다. 당업자는 이어지는 설명으로부터 여기에 나타내어진 구성 및 방법의 다른 실시 예들이 여기서 설명된 상기 원리에서 벗어나지 않고 이용될 수 있음을 인식할 것이다.
개요(OVERVIEW)
개시된 실시 예들은, 가능한 대역폭 및 혼잡 레벨을 예측하기 위해서 현존하는 네트워크 트래픽 흐름(traffic flow)의 상태에서 리얼-타임 데이터 수집 및 흐름 데이터(flow data)를 상기 네트워크에서 각각의 사용자들에게 매핑을 위한 네트워크 제어기 시스템을 포함한다. 상기 네트워크에서 흐름 통계의 이력을 수집하는 것에 의해서, 상기 네트워크 제어기 시스템은 기지국들(또는 다른 네트워크 세그먼트들) 및 상기 네트워크의 특정 사용자에 의해 일반적으로 요구되는 데이터의 양을 전달하기 위한 그들의 수용 능력 사이의 관계를 확립한다. 실질적인 리얼-타임 방식으로 근 미래의 혼잡을 예측하기 위해서 네트워크 흐름의 가장 최근의 이력이 사용될 수 있다. 더욱이, 흐름 통계의 상기 이력은 상기 네트워크 상에서의 사용자 행동의 장기적인 맵(map)을 구축하는데 사용될 수 있으며, 이는 주어진 네트워크 접속 포인트를 활용하는 사용자들의 집합을 위한 온 디맨드 데이터 전달 요건들을 보다 효율적으로 예측할 수 있다. 상기 네트워크 제어기는, 기지국(station)/셀(cell) 타워 별(per), 가입자 별, 시간 별, 또는 지리학 지역 기반 별과 같이, 다수의 방법으로 흐름 데이터를 그룹화하는, 흐름 상태 데이터베이스를 유지한다. 새로운 흐름들이 검사를 위한 상기 시스템에 주어지면, 현존하는, 새로운 또는 미래의 흐름이 사용자 만족을 위해 요구되는 레벨을 유지하기 위해서 최적화를 필요로 하는지 여부를 결정하기 위해서 데이터에이스는 해로운 흐름들에 대한 상기 네트워크 혼잡 레벨을 추정하기 위해 질의될 수 있다.
일 실시 예에서, 네트워크 흐름들이 상기 네트워크를 트래버스(traverse)하는 동안 네트워크 흐름들에 대한 데이터를 수집하기 위해서 온-디맨드 네트워크 모니터링 방법이 채택된다. 예를 들어, 네트워크 흐름들은 상기 흐름들에 포함된 콘텐츠의 유형에 기초하여 선택적으로 또는 온-디맨드 방식으로 모니터링될 수 있다. 더욱이, 상기 네트워크 모니터링은, 효율을 개선하기 위해서 대역 외(out-of-band) 뿐만 아니라 인라인 레벨에서도 선택적으로 수행될 수 있다. TCP 및 UDP 흐름들 모두, 각각의 흐름에 대한 평균 네트워크 처리량 및 예를 들어 클라이언트 장치 및 상기 클라이언트 장치로 멀티미디어 콘텐츠를 제공하는 기원이 되는 서버 사이의 종단 간 지연(latency)과 같은, 상기 네트워크의 상태에 대한 정보를 모으기 위해서 모니터링 된다. 각각의 TCP 또는 UDP 흐름을 위해서, 상기 시스템은 발송된(그리고 몇몇 실시 예들에서 수신 확인된) 바이트 수를 추적한다. TCP에서, 현재 윈도우 사이즈가 추적될 수 있다. 네트워크 흐름들에 대한 기록들은, 가입자 식별 부호(identification; ID), 셀 타워(cell tower)(기지국), 및 네트워크 세그먼트 등에 의해 색인될 수 있는, 흐름 통계 데이터베이스에 저장된다. 많은 흐름 기록들이 축적될수록, 상기 데이터베이스는 이전 이력과 현재 모두의 네트워크 컨디션 및 데이터 전달을 위한 용량을 나타낸다. 네트워크 처리량은 일정 시간의 기간 동안 전달된 바이트(byte) 수의 평균을 계산하여 측정될 수 있다. 어떤 문턱값 보다 작은 사이즈를 갖는 작은 흐름들로부터, 측정될 때 대역폭 및/또는 지연 측정에서 잡음이 많은 결과를 초래하는, 가짜 데이터를 걸러내기 위해서 단계들이 취해질 수 있다. 예를 들어, 500 ms 보다 적은 전달 시간을 갖는 어떤 흐름이라도 걸러질 수 있다.
다른 실시 예에서, 상기 네트워크를 트래버스(traverse)하는 큰 객체들, 예를 들어 비디오 파일들 및 데이터는 모니터링 되고 속도가 유지된다. 큰 객체 전달과 연관된 대역폭을 단지 측정만 하는 것 보다는, 상기 네트워크의 미래의 대역폭 수요를 위한 예측이 상기 측정에 기초하여 결정된다. 결국, 큰 객체는 네트워크 처리량을 유지하기 위해서 선택적으로 최적화 될 수 있다. 비디오 객체를 위해서, 상기 흐름의 스트리밍 비트(bit) 전송률은, 상기 네트워크가 처리량의 필요 레벨을 지속시킬 수 있는지를 결정하기 위해서 네트워크 용량과 비교될 수 있는, 파라미터를 제공한다. 이는 알려진 한도를 초과하지 않도록 상기 전송 속도를 유지하는데 종종 이익이 될 수 있다. 만약 흐름이 비디오가 지연되지 않기 위해 필요한 최소 레벨 및 상기 속도 유지 한도의 상한 한도 사이의 전송률로 전달될 수 있다면, 상기 흐름이 트래버스하는 상기 네트워크 세그먼트는 상기 흐름을 위해 필요한 비트 전송률을 지속할 수 있는 것으로 본다. 비디오 및 이미지들과 같은 큰 객체는 전달되는데 일정 시간의 기간이 걸리며, 이는 작은 객체에 비해 보다 정확하게 네트워크 혼잡을 탐지하고, 상기 기원이 되는 서버 지연을 측정하는 것에 도움이 된다. 예를 들어, 작은 객체로부터 큰 객체를 분리하기 위한 합리적인 사이즈 문턱값은 512kB 로부터 1MB 사이에서 설정될 수 있으며, 중간 사이즈의 개체를 위해서는 50kB 및 그 위 사이에서 설정될 수 있다. 다른 값들도 또한 가능하다.
몇몇 실시 예들에서, 단일 흐름에 의해 획득된 상기 대역폭은 상기 흐름이 트래버스하는 네트워크 세그먼트(들)의 용량을 결정 하기에 충분할 수 있다. 따라서, 네트워크 제어기(들)의 상당히 작은 배치를 갖고, 키 네트워크 혼잡 점수의 정확한 탐지가 얻어질 수 있다. 특히, 혼잡을 탐지하기 위해 네트워크 세그먼트를 통과하는 모든 흐름을 모니터하기 위해서 하나는 필요하지 않다. 비디오가 현재는 네트워크 상에서 트래픽의 약 50%를 포함하지만 전체 흐름들의 약 5%만을 포함하기 때문에, 큰 객체의 상대적으로 작은 수의 흐름 샘플들은 상기 네트워크의 통계상으로 중요한 부분을 조사할 수 있다.
네트워크 혼잡의 예측 불가능하고 순간적인 성질은 혼잡이 탐지된 이후에 리얼-타임에 근접하게 행동되지 않는다면 네트워크 혼잡의 경감은 너무 늦을 수 있다는 것을 의미한다. 일 실시 예에서, 상기 네트워크 제어기는 큰 객체의 전달을 최적화 하기 위해서 온-디맨드 비디오 최적화기를 통해서 큰 비디오 또는 이미지 흐름들을 선택하며, 따라서 네트워크 대역이 이용 가능하다. 지능적이고 선택적으로 상기 측정 및 최적화를 처리하기 위한 상기 제어기 및/또는 최적화기를 이용하여, 이러한 구동들이 네트워크 라우팅 어플라이언스들로부터 제거된다.
리얼-타임 트래픽 모니터링(REAL-TIME TRAFFIC MONITORING)
도(도면) 1은 선택적인 온-디맨드 리얼-타임 네트워크 모니터링 및 가입자 식별을 위한 예시적인 통신 환경(100)의 고 레벨 블록도를 나타낸다. 상기 환경(100)은 사용자 장치(110), 기원 서버(160), 조종 장치(130), 네트워크 제어기(140), 비디오 최적화기(150) 및 네트워크(120)를 포함한다. 상기 네트워크(120)는 상기 사용자 장치(110), 상기 조종 장치(130) 및 상기 기원 서버(160) 및/또는 상기 비디오 최적화기(150) 사이에서 데이터를 전송하는 통신 네트워크이다. 일 실시 예에서, 상기 네트워크(120)는 무선 네트워크 및 인터넷(Internet)을 포함한다.
자본 지출이 수익을 앞지르지 못하게 하기 위한 네트워크 효율성 전략은, 더 높은 데이터 사용에 점점 더 의존하는 더 좋은 사용자 경험을 위해서 소비자로부터의 요청과 균형을 이루어야 한다. 오늘날, 이동통신 사업자들은 지능적 최적화, 와이파이 오프로드(Wi-Fi offload) 및 데이터 사용 한도들을 포함하는 용량을 관리하기 위한 다양한 도구들을 사용한다. 상기 환경(100)은 어떤 서비스 제공에도 적합하도록 통일된 기반을 깊은 세션 정보, 집적된 서비스 관리 및 역동적 적응성과 함께 제공하는 솔루션을 시연한다. 이와 함께, 상기 네트워크 제어기(140) 및 상기 비디오 최적화기(150)는 다른 대체 솔루션들에 비해서 더 좋은 최대 용량 절감과 함께 인터넷 사업 제공자들뿐만 아니라 무선 사업자들에게 외과적 용량 이익을 가져오는 월드 클래스 미디어 최적화 솔루션을 전달한다.
일 실시 예에서, 상기 사용자 장치들(110)은 네트워크 능력들을 갖는 컴퓨팅 장치들이다. 예를 들어, 상기 사용자 장치들(110)은 종종 웹 브라우저 및 미디어 디스플레이 능력을 갖는 무선 가능한 모바일 컴퓨팅 장치들이다. 모바일 컴퓨팅 장치들로서 상기 사용자 장치들(110)은 랩탑들, 넷북들, 태블릿들, 스마트 폰들, 또는 개인용 디지털 보조기기(personal digital assistants; PDAs)를 포함할 수 있다. 도 1에 단지 두 개의 사용자 장치들(110A 및 110B)이 도시되어 있으나, 상기 환경(100)은 수천 또는 수백만의 상기 장치들을 포함할 수 있다. 상기 웹 브라우저들은 상기 기원 서버(160)로부터 웹 콘텐츠를 검색하고 상기 웹 콘텐츠를 모바일 장치와 연결된 디스플레이에 표시하기 위해 모바일 장치들(110)에서 실행되는 소프트웨어 어플리케이션들일 수 있다. 상기 사용자 장치들(110)에 의해 접근된 웹 콘텐트는 문자, 이미지들, 오디오 및 비디오 콘텐트를 포함한다. 상기 멀티미디어 콘텐트는 상기 브라우저들, 예를 들어 HTML5 호환 브라우저들, 플러그인(plug-in) 또는 독자적인 미디어 플레이어에 의해 재생될 수 있다. 상기 브라우저들은 또한 상기 사용자 장치들(110) 상에서 상기 미디어 플레이어들 또는 플러그인 들이 사용 가능하도록 불러올 수 있으며 재생을 위해서 상기 미디어 플레이어 또는 플러그인으로 이미지들, 오디오 및/또는 비디오를 전달할 수 있다.
상기 조종 장치(130)는 상기 사용자 장치(110) 및 상기 네트워크(120) 사이에 위치하는 로드 밸런서(load balancer) 또는 라우터(router)일 수 있다. 상기 조종 장치(130)는 상기 사용자 장치(110)에게 상기 네트워크로의 접근을 제공함에 따라서, 상기 사용자 장치가 통과하는 게이트웨이(gateway)에게 상기 네트워크 방향으로 흐르는 트래픽 흐름을 제공하며, 이의 역도 또한 같다. 일 실시 예에서, 상기 조종 장치(130)는 상기 네트워크 제어기(140)에서 보다 자세한 검사를 위한 흥미 있는 흐름들을 식별하기 위해서 그것을 통과하는 트래픽을 분류한다. 이와는 달리, 상기 네트워크 제어기(140)는 상기 모니터링 및 네트워크 트래픽의 분류, 예를 들어 HTTP 트래픽 흐름들에서 크고 작은 객체들을 식별하는 것을 조직화 하기 위해서 상기 조종 장치(130)와 접속된다. 이러한 경우에, 상기 조종 장치(130)는, 보다 자세한 검사를 위해 흥미 있는 흐름들을 분류하기 위한 요구된 기준에 기초하여 상기 네트워크 제어기(140)로부터 명령을 수신한다.
그러나, 상기 무선/셀룰라 사용자 장치들(110) 측면에 대한 정보는 종종 상기 셀룰라(cellular) 네트워크 및 상기 유선 인터넷 사이에 있는 상기 조종 장치(130)에서 사용 가능하지 않다. 예를 들어, 상기 모바일 장치들(110)과 연관된 상기 타워들의 상기 식별자에 대한 정보가 종종 없다. 타워 관련 정보는 상기 모바일 장치들이 처음에 상기 네트워크에 연결 될 때에만 방송된다. 추가로, 사용자 장치들(110)은 그들의 IP 어드레스들을 제외하고 어떤 식별 정보도 대게는 보고하지 않는다. 그러므로, 상기 네트워크 트래픽의 모니터링 및 상기 혼잡의 탐지는 상기 탐지기(140)에 의해 자동화되고 관리되어 네트워크는 상기 모바일 사용자가 알지 못하게 최종 사용자의 경험을 위해서 최적화 될 수 있다.
전송 및 수신되는 모든 단일 데이터 패킷들을 모니터링하는 종래의 인라인 TCP 처리량 모니터링 장치들과는 대조적으로, 상기 네트워크 제어기(140)는 흥미 있는 사용자 흐름들을 선택적으로 검사하기 위해 상기 조종 장치(130)와 접속되는 “대역 외(out-of-band)” 컴퓨터 서버이다. 상기 네트워크 제어기(140)는 최적화를 위해서 사용자 흐름들을(예를 들어, 흥미 있는 상기 흐름들 중에서) 더 식별할 수 있다. 일 실시 예에서, 상기 네트워크 제어기(140)는 트래픽을 모니터하기 위해서 상기 조종 장치(130)에서 구현될 수 있다. 다른 실시 예에서, 상기 네트워크 제어기(140)는 트래픽 모니터링 및 최적화를 위해서 상기 조종 장치(130)와 연결되어 통신할 수 있다. 상기 조종 장치(130)에 의해 질의될 때, 상기 네트워크 제어기(140)는 주어진 네트워크 흐름이 무시되어야 하는지, 더 모니터 되어야 하는지 또는 최적화 되어야 하는지를 결정한다. 한번 최적화되지 않은 콘텐트 전달이 시작되면 도중에 최적화된 콘텐트로 전환하는 것은 드물게 가능하기 때문에, 흐름의 최적화는 종종 상기 흐름의 초기에 결정된다. 그러나, 상기 네트워크 제어기(140)는 특정 가입자 또는 다른 개체와 연관된 현존하는 흐름들이 최적화 되어야 하는 것으로 결정할 수 있다. 결국, 상기 개체와 연관되도록 결정된 새로운 흐름들(예를 들어, 미디어에서 탐색 요청, 새로운 미디어 요청, 일시 정지 이후의 재개 등으로 인한)은 최적화 될 수 있다. 상기 네트워크 제어기(140)는 이전 이력의 트래픽 데이터뿐만 아니라 상기 네트워크 상태를 모니터링 및 최적화를 위한 결정에 이용한다. 혼잡과 같은 현재 네트워크 상태에 대한 지식은 데이터 최적화에 관한 한 결정적인 것으로 여겨진다.
검사를 위해서 흐름이 상기 네트워크 제어기(140)로 보내지면, 상기 네트워크 제어기(140)에 저장된 이전 이력의 네트워크 트래픽 데이터가 검색될 수 있다. 상기 이전 이력의 네트워크 트래픽 데이터는 가입자 정보, 상기 사용자 장치들이 소속된 상기 셀 타워들, 상기 트래픽이 통과하는 라우터들, 지리학 지역들, 백홀(backhaul) 세그먼트들, 및 상기 흐름들의 시간과 같은 정보를 포함한다. 예를 들어, 모바일 네트워크에서, 사용자 장치가 소속된 상기 셀 타워는 가장 유용할 수 있으며, 이는 무선 접속 네트워크 기반시설의 높은 가격 및 제한된 대역폭으로 인해서 최대 혼잡이 발생하는 위치이기 때문이다. 상기 네트워크 제어기(140)는 상기 특정 셀 타워에서 사용자당 상기 대역폭의 평균을 위한 이전 이력의 트래픽 데이터를 조사한다. 상기 네트워크 제어기(140)는 상기 이전 이력의 기록에 기초하여 상기 새로운 흐름에 대한 혼잡도 또는 대역폭의 양을 추정할 수 있다.
상기 비디오 최적화기(150)는 비디오 및 이미지 최적화를 제공하고 상기 네트워크(120)를 통해 최적화된 비디오 및 이미지 콘텐트를 상기 사용자 장치들(110)에게 전달하는 컴퓨터 서버이다. 상기 비디오 및 이미지 최적화는 상기 비디오 및 이미지 콘텐트의 트랜스코딩(transcoding)을 통해 제공되는 온-디맨드 서비스이다. 예를 들어, 사용자 장치가 상기 기원 서버(160)로부터 비디오를 검색 하려고 시도할 때, 상기 네트워크 제어기(140)는 콘텐트 최적화를 위해서 상기 흐름이 어떤 기준을 만족하는지를 결정할 수 있다. 상기 네트워크 제어기(140)는 그러면 상기 최적화된 콘텐트를 검색하기 위해서 상기 사용자 장치들(110)을 상기 비디오 최적화기(150)로 다시 보낸다. 상기 비디오 최적화기(150)는 최적화 및 상기 사용자 장치들(110)로의 이어지는 전달을 위해서, 최적화될 상기 비디오 또는 이미지에 대한 정보를 상기 사용자 장치들(110)로부터의 또는 상기 네트워크 제어기(140)로부터의 상기 재전송 요청에서 수신하고, 상기 대응되는 기원 서버(160)로부터 상기 비디오 또는 이미지 콘텐트를 검색한다.
상기 개시된 실시 예들은 상기 비디오 최적화에 초점이 맞추어지며, 이는 비디오가 네트워크 혼잡이 고려될 때 모든 다른 트래픽 유형들에 비해서 가장 중요하기 때문이다. 비디오 트래픽은 모든 네트워크 트래픽의 대략 절반 가량을 형성하며, 상기 비율은 매년 증가한다. 그러므로, 비디오 트래픽을 최적화 하는 것은 상기 네트워크에서 혼잡을 대량으로 감소시킨다. 비디오 흐름들 또는 스트림들은 또한 수명이 길고, 큰 패킷 사이즈를 가지며, 높은 비트전송률을 요구하고, 비디오 스트림들을 모니터링하는 것은 상기 네트워크에서 혼잡을 탐지하는 효과적인 방법이다. 더욱이, 비디오 스트림들이 안정적이고 일관된 대역폭을 필요로 하기 때문에, 혼잡이 발생하고 이용 가능한 대역폭이 감소했을 때 첫 번째로 영향을 받는 것들 중 하나이다. 대조적으로, 눈치채지 못할 정도로 길어진 로드 시간을 갖는 약한 네트워크 혼잡 하에서는 웹 페이지 문자 및 이미지들은 일반적으로 영향을 받지 않는다. 비디오 최적화는 다른 웹 콘텐트를 최적화하는 것과 하나의 중요한 측면에서 다르다: 그것은 긴 현태이고, 비디오의 시작에서 만들어지는 최적화 정책 결정은 상기 비디오의 길이에 대한 일관된 경험을 전달하기 위한 능력에 의미 있는 영향을 끼친다.
상기 비디오 최적화기(150) 및 상기 기원 서버(160)는 일반적으로 하나 이상의 컴퓨터들로 형성된다. 각각의 비디오 최적화기(150) 및 기원 서버(160)의 오직 하나의 서버만이 도 1의 상기 환경(100)에 도시되어 있으나, 다른 실시 예들은 단일 개체 또는 다수의 개체들에 의해 구동되는 다수의 웹 서버들 및 비디오 서버들을 포함할 수 있다. 다른 실시 예들에서, 단일 서버는 또한 최적화된 비디오 콘텐트를 제공하는 것뿐만 아니라, 웹 서버로서 웹 콘텐트를 전달하는 것과 같은, 다른 기능들을 제공할 수 있다.
컴퓨팅 기기 구조(COMPUTING MACHINE ARCHITECTURE)
도 2는 상기 개시된 온-디맨드 리얼-타임 네트워크 모니터링 및 가입자 식별을 위한 시스템을 구현하기 위해서 기계 판독 가능한 매체로부터 명령들을 판독하고 그것들을 프로세서(또는 제어기)에서 실행할 수 있는 예시적인 기기의 구성요소를 나타내는 블록도이다. 특히, 도 2는 상기 기기로 하여금 여기서 논의된 방법론들 중 어느 하나 또는 그 이상을 수행하도록 하는 명령들(224)(예를 들어, 소프트웨어)이 실행되는 컴퓨터 시스템(200)의 예시적인 형태에 있는 기기의 도식적 표현을 나타낸다. 선택 가능한 실시 예들에서, 상기 기기는 독자적인 장치로서 구동되고, 또는 다른 기기들에 연결(예를 들어, 네트워크화)될 수 있다. 네트워크 형성된 배치에서, 상기 기기는 서버-클라이언트 네트워크 환경에서 서버 기기 또는 클라이언트 기기로서 구동될 수 있고, 또는 피어-투-피어(peer-to-peer) (또는 분산) 네트워크 환경에서 피어 기기로서 구동될 수 있다.
상기 기기는 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(personal computer; PC), 태블릿 PC, 셋톱 박스(set-top box; STB), PDA(personal digital assistant), 핸드폰, 스마트폰, 웹 어플라이언스(web appliance), 네트워크 라우터, 스위치 또는 브릿지, 또는 해당 컴퓨팅 장치(110)에 의해 행해질 동작을 명시하는 명령어들(1124)(순차적인 또는 그 밖에)을 실행시킬 수 있는 어떤 컴퓨팅 장치일 수 있다. 뿐만 아니라, 단일 기기(machine)만이 도시되어 있으나, 상기 “기기(machine)”라는 용어는 여기에서 논의된 하나 또는 그 이상의 상기 방법론들을 수행하기 위한 명령어들(224)을 독립적으로 또는 협력하여 실행하는 기기들의 무리를 포함하는 것으로 받아들여질 수 있다.
상기 예시적인 컴퓨터 시스템(200)은, 버스(208)를 통해 서로 통신할 수 있는, 하나 또는 그 이상의 프로세서들(202)(예를 들어, CPU(central processing unit), GPU(graphics processing unit), DSP(digital signal processor), 하나 또는 그 이상의 ASICs(application specific integrated circuits), 하나 또는 그 이상의 RFICs(radio-frequency integrated circuits), 또는 이들의 조합들), 메인 메모리(204), 및 스태틱 메모리(206)를 포함할 수 있다. 상기 컴퓨터 시스템(200)은 그래픽 표시 유닛(210)(예를 들어, PDP(plasma display panel), LCD(liquid crystal display), 프로젝터, 또는 CRT(cathode ray tube))을 더 포함할 수 있다. 상기 컴퓨터 시스템(200)은, 상기 버스(208)를 통해 또한 서로 통신할 수 있는, 알파뉴메릭(alphanumeric) 입력 장치(212)(예를 들어, 키보드), 커서 제어 장치(214)(예를 들어, 마우스, 트랙볼, 조이스틱, 모션 센서, 또는 다른 포인팅 기구), 저장 유닛(216), 및 네트워크 인터페이스 장치(220)를 또한 포함할 수 있다.
상기 저장 유닛(216)은 여기에 설명되어있는 기능들 또는 방법론들의 하나 또는 그 이상을 포함하는 명령어들(224)(예를 들어, 소프트웨어)이 저장되어 있는 컴퓨터-판독 가능한 매체(222)를 포함할 수 있다. 상기 명령어들(224)(예를 들어, 소프트웨어)은, 상기 컴퓨터 시스템(200)에 의해 실행되는 동안, 컴퓨터-판독 가능한 매체를 또한 구성하는 상기 메인 메모리(204) 또는 상기 프로세서(202)(예를 들어, 프로세서의 캐시 메모리)에 완전히 또는 적어도 부분적으로도 상주할 수 있다. 상기 명령어들(224)(예를 들어, 소프트웨어)은 상기 네트워크 인터페이스 장치(220)을 통해 네트워크(110)상에서 전송 또는 수신될 수 있다.
컴퓨터-판독 가능한 매체(222)가 단일 매체로 예시적인 구현으로 도시되어 있으나, 상기 “컴퓨터-판독 가능한 매체”라는 용어는 명령어들(예를 들어, 명령들(224))을 저장할 수 있는 단일 매체 또는 다수의 매체(예를 들어, 중앙 집중식 또는 분산된 데이터베이스, 또는 연관된 캐시들 및 서버들)를 포함하는 것으로 받아들여질 수 있다. 상기 “컴퓨터-판독 가능한 매체”라는 용어는 또한 상기 기기에 의해 실행되기 위한 명령어들(예를 들어, 명령들(224))을 저장할 수 있고, 여기에 설명되어있는 방법론들 중 그 어떤 하나 또는 그 이상을 상기 기기가 수행하게끔 하는 어떠한 매체라도 포함하는 것으로 또한 받아들여질 수 있다. 상기 “컴퓨터-판독 가능한 매체”라는 용어는 반도체(solid-state) 메모리, 광학(optical) 매체, 및 자기(magnetic) 매체의 형태에 있는 데이터 저장소들을 포함할 수 있으나, 이에 한정되지는 않는다.
네트워크 제어기의 시스템 구성 요소들(SYSTEM COMPONENTS OF NETWORK CONTROLLER)
도 1로 돌아가서, 상기 네트워크 제어기(140)는 셀 타워 혼잡, 장치 유형들, 가입자 프로필들 및 보다 낮은 하드웨어 및 소프트웨어 비용을 갖는 서비스 계획에 기초하여 높은 체감 품질(quality of experience; QoE)을 보장하기 위해서 미세 입자 최적화 정책을 네트워크 운영자가 적용하는 것을 허용한다. 상기 네트워크 제어기(140)의 상기 구조는 “합리적인 네트워크 관리(reasonable network management)”의 망 중립성 가이드라인에 대한 훌륭한 적합성을 제공하고, 장기적인 캐싱에 의지하는 해결책에 비해서 저작권법(DMCA)에 대한 더 나은 준수를 제공한다. 가입자 별, 흐름 별, 또는 비디오 파일 기준 별 네트워크 트래픽 모니터링 능력을 갖고, 상기 네트워크 제어기(140)는 또한 선택적으로 최적화로부터 최대 이득을 얻는 트래픽의 하위 집합 만을 모니터링 및 최적화 하며, 따라서 경쟁 가격대에서 최적화에 대한 효율성 및 확장성 모두를 달성한다. 상기 네트워크 제어기(140)의 핵심 요소는 최적화 자원들이 최고의 효율적이고 외과적 방법으로 활용되도록 허용하는 혼잡 탐지 및 완화를 위한 메커니즘들에 있다.
이제 도 3을 참조하면, 이는 선택적인 리얼-타임 네트워크 모니터링 및 가입자 식별을 제공하기 위한 네트워크 제어기(140)의 예시적인 구조의 일 실시 예를 나타낸다. 상기 네트워크 제어기(140)는 흐름 분석기(312), 정책 엔진(314), 조종 장치 인터페이스(316), 비디오 최적화기 리다이렉터(318), 흐름 캐시(322), 및 가입자 로그(324)를 포함한다. 다른 실시 예들에서, 상기 네트워크 제어기(140)는 다양한 적용에 있어서 추가적인, 더 적은, 또는 다른 구성 요소들을 포함할 수 있다. 네트워크 인터페이스들, 보안 기능들, 페일오버(failover) 서버들, 관리 및 네트워크 구동 콘솔들 등과 같은 전통적인 구성 요소들은 상기 시스템 구조의 세부 사항들을 모호하게 하지 않기 위하여 도시되지 않았다.
상기 흐름 분석기(312)는 상기 네트워크에서 큰 흐름들을 모니터하고, 네트워크 처리량을 결정하기 위해서 수집된 흐름 통계를 분석하고, 그에 따라서 최적화될 흐름들을 선택한다. 상기 흐름 분석기(312)는 네트워크 상태의 정확한 예측을 위해서 모든 흐름들을 관찰할 필요는 없다. 상기 흐름 분석기(312)는 상기 흐름 캐시(322)에 저장되어 있는 상기 트래픽 통계 및 상기 가입자 로그(324)에 저장되어 있는 사용자 정보를, 예를 들어, 소스 IP 어드레스들에 의해 식별된 네트워크 흐름들을 그 또는 그녀의 현재 가입자 ID 또는 장치 ID에 의해 식별되는 모바일 가입자 또는 사용자와 연관시켜서 처리한다. 상기 사용자 흐름들은 또한, 최적화 결정인 데이터 전송의 시작단계에서 이루어질 수 있도록, 현재 서브-네트워크(예를 들어, 상기 사용자 장치들이 연관된 셀)에서의 혼잡 레벨에 매핑된다.
전통적으로, 모바일 네트워크들을 위한 혼잡 탐지는 전용 하드웨어 프로브들(probes)을 통해 상기 무선 접속망(RAN)으로부터 네트워크 상황을 적극적으로 추출하는데 중점을 둔다. 예를 들어, 상기 네트워크(예를 들어, 모바일 셀)의 각각의 서브-섹션을 위한 프로브는 주기적으로(예를 들어, 매 2분마다), 예를 들어, 혼합한 셀 사이트들, 혼잡 레벨(예를 들어, 없음, 낮음, 중간, 높음), 및 상기 셀과 현재 연관되어 활동중인 가입자들과 같은 상기 네트워크 통계를 수집하고 하나 이상의 네트워크 모니터링 서버들로 전송한다. 그러나, 전용 하드웨어 솔루션들은 비용이 많이 들고, 이러한 하드웨어 프로브들에 의해 수집된 네트워크 통계는 개인정보 보호 정책 때문에 써드파티 개체들에게 허용되지 않는다.
상기 네트워크 제어기(140)는 상기 네트워크 흐름들의 리얼-타임 통계 데이터를 상기 RAN 네트워크에서 프로브를 사용하지 않고 핵심 네트워크 측면으로부터 수집한다. 상기 통계 데이터는 혼잡 레벨 및 이용 가능한 네트워크 대역을 예측하기 위해서 저장되고 이전 이력의 흐름 데이터와 비교된다. 매 세션 및 매 흐름에 대해서 트래픽 통계를 수집하는 것 대신에, 상기 네트워크 제어기(140)는 특정 사이즈보다 큰(예를 들어, 50kB보다 큰) 비디오들 및 이미지들과 같은 미디어 객체들을 수반하는 큰 흐름들 만을 표본 조사한다. 상기 네트워크 제어기(140)는 상기 흐름들을 최적화할지 여부를 결정하기 위한 것뿐만 아니라 상기 큰 흐름들을 모니터 하기 위해서 통과 지점(pass-through) 장치가 되는 것을 선택할 수 있다. 큰 흐름 만을 측정하는 것은 기원 서버 지연 및 네트워크 오류들에 의해 야기되는 손상(corruption)들을 완화시키는데 유리한 점이 있다. 더욱이, 큰 흐름들에 집중하는 것은, 천분의 일초의 전달 시간을 갖는 수백만의 아주 작거나 또는 작은 흐름들의 충격을 제거시키는 것에 의해, 상기 네트워크 제어기가 상기 백그라운드 잡음을 감소시키고 대역폭 측정에서 잡음 대 신호비(noise-to-signal ratio)를 증가시키는데 도움이 된다. 그러므로, 상기 대역폭 예측 및 혼잡 탐지의 신뢰성이 보다 높아진다.
수집된 상기 통계 데이터에 기초하여, 상기 흐름 분석기(312)는, 예를 들어 마지막 몇 분 동안, 축적된 상기 정보 모두를 고려하여 근접 리얼-타임 네트워크 상태를 결정한다. 이러한 분석의 상기 가장 강력한 적용은, 상기 흐름 분석기(312)가 데이터 발자국 또는 특정 사용자의 행동 패턴을 생성하는 것을 허용하는, 사용자 기반 단위 대역폭 소비의 상기 근접 리얼-타임 예측으로부터 온다. 예를 들어, 만약 사용자가, 좋지 못한 연결을 야기하는, 상기 셀의 가장자리 또는 빌딩 내부의 벽 뒤에 있다면, 비-혼잡 타워에 속해있는 동안 상기 사용자가 다른 네트워크 상태를 경험하는 상황을 탐지하는 것이 가능하다.
추가적으로, 장기간에 걸친 이전 이력의 흐름 데이터는, 상기 흐름 분석기(312)가 어떤 네트워크 섹션들의 반복되는 패턴들 및 히트-맵들(heat-maps)을 결정하는 것 및 그들이 혼잡상황 하에 처할 때를 예측하는 것에 도움을 준다. 이 경우에, 상기 흐름 캐시(322)에 저장된 상기 흐름 통계는 분석을 위해서 트래픽 카테고리들에 매핑될 수 있으며, 예를 들어, 장기간 실행되는 비디오 흐름 대역폭의 평균들은 최적화를 위한 적합성 결정을 도와준다. 더욱이, 시간에 걸쳐서 사용자 마다(또는 셀-ID 마다, 타워 마다, 또는 라우터 마다) 예측된 대역폭은 최적화를 위한 단기간 요구를 결정하기 위해서 상기 흐름 분석기(312)에 의해 메트릭스(metrics) 계산될 수 있다. 예를 들어, 상기 흐름 분석기(312)는 특정 셀-ID와 연관된 최적화 흐름들(또는 상기 셀-ID 상에서 식별된 고-대역폭을 위한 상기 흐름들)이 되는 것을, 상기 셀-ID에 대응되는 동일한 셀 타워에 연결되는 고-대역폭 사용자들의 문턱값 수에 응답하여, 결정할 수 있다. 흐름 분석기(312)가 큰 흐름들을 선택적으로 모니터링하는 이유는 대부분의 웹 흐름들을 구성하는 작은 객체들에 대한 TCP 통계들이 처리량 예측에서 오인되고 거대한 오류들을 유발할 수도 있다는 자각에 있다.
상기 조종 장치 인터페이스(316)는 상기 네트워크 트래픽의 부분들(예를 들어, 큰 객체 네트워크 흐름들)을 전용하기 위한 상기 조종 장치(130)와 같은 외부의 라우팅 어플라이언스와 상호 작용한다. 대부분의 캐리어(carrier) 네트워크들에 존재하는 라우팅 어플라이언스들은 많은 양의 네트워크 트래픽을 처리하기 위해 디자인된다. 그러나, 그것들은 개별 흐름들을 모니터링하고 분석하기 위해 구동하기 위한 이상적인 장치들은 아니다. 상기 조종 장치 인터페이스(316)를 통해서, 상기 네트워크 제어기(140)는, 특정 조건이 만족되었을 때 네트워크 트래픽의 일부분을 상기 네트워크 제어기(140)로 몰고 가기 위해서 상기 조종 장치(130)와 같은 상기 외부의 라우팅 어플라이언스와 통신할 수 있다. 일반적으로, 상기 네트워크 제어기(140)에게 흥미 있는 네트워크 흐름들은 비디오들 및 이미지들과 같은 큰 미디어 객체들을 포함한다. 일 실시 예에서, 웹 페이지 및 문자 정보와 같은 상기 작은 흐름들은 상기 조종 장치 인터페이스(316)를 통해 교환되지 않는다.
상기 흐름 캐시(322)는, 상기 조종 장치(130)로부터의 각각의 연관된 교류와 함께 흐름을 위해 갱신된 모니터링된 흐름 정보를 저장한다. 일 실시 예에서, 상기 흐름 캐시에 있는 데이터는, 64-bit까지 또는 이보다 길 수 있는 해시(hash)에 의해 색인된 맵(map)에 저장된다. 상기 흐름 캐시 맵에 있는 엔트리(entry)는 해시 충돌을 허용하기 위해서 링크드 리스트(linked list)로서 조직될 수 있다. 이와는 달리, 상기 해시 인덱스의 더 적은 비트들은 상기 흐름 캐시 맵에서 이진 검색의 속도를 높이기 위해서도 사용될 수 있다. 예를 들어, 노드를 찾기 위해서 최악의 64 단계들에서 필요로 하는 64-bit 해시 인덱스를 사용하는 것 대신에, 상기 해시 인덱스는 16-24 bit들까지 감소될 수 있다. 상기 더 긴 링크드 리스트로 인해서 보다 많은 해시 충돌이 있을 것이다. 다른 실시 예들은 상기 해시 충돌 검색들을 더 최적화 하기 위해서 상기 링크드 리스트 대신에 다른 유형의 맵들 또는 이진 트리를 사용할 수 있다.
상기 가입자 로그(324)는 사용자 또는 가입자 신분들 및 그들의 장치 정보와 같은 사용자 또는 가입자 정보를 저장한다. 일 실시 예에서, 상기 가입자 및 장치 정보는 상기 캐리어 또는 서비스 제공자 네트워크들의 관리자들 또는 운영자들에 의해서 상기 가입자 로그(324)에게 제공될 수 있다. 다른 실시 예들에서, 상기 캐리어 네트워크들(예를 들어, 모바일 ISPs)의 상기 가입자 또는 상기 장치 정보는 상기 네트워크 제어기(140)에게 허용되지 않는다. 다수의 사용자들의 장치들이 상기 네트워크 주소 변환(network address translation; NAT) 프로토콜을 이용하는 단일 IP 어드레스를 공유할 수 있기 때문에, 대역폭 측정을 더욱 어렵게 만든다. 따라서, IP 어드레스를 공유하는 다수의 사용자들을 분리시키는 알고리즘은 개별 사용자들이 사용 가능한 대역폭의 양을 결정하기 위해서 상기 흐름 분석기(312)에 의해 구현될 수 있다.
상기 가입자 로그(324) 및 상기 흐름 캐시(322)에 저장된 상기 데이터는 상기 흐름 분석기(312)에 의해서 대역폭 모니터링 및 사용자 식별에 사용될 수 있다. 상기 흐름 분석기(312)는 상기 흐름 캐시 맵에 있는 모든 상기 엔트리들을 스캔할 수 있다. 새로운 흐름 캐시 엔트리의 추가 또는 흐름 통계로 갱신과 같은 다른 구동들이 상기 스캐닝과 경쟁할 수 있고 데이터 손상을 야기할 수 있기 때문에, 상기 흐름 분석기(312)는 사용자 식별 및 대역폭 모니터링을 수행하는 동안 상기 흐름 캐시를 잠글 수 있다. 상기 잠금을 최소한으로 유지하기 위해서, 미리-결정된 수의 동작들 이후에 상기 스캐닝은 중단될 수 있다. 상기 흐름 분석기(312)는 상기 다음 통과 상에서 중단됐던 곳에서 재개될 수 있다. 이는, 예를 들어, 스캔된 이전 맵 좌표의 반복기를 유지하는 것에 의해 달성될 수 있다. 상기 반복기에 대한 변화들을 초래하는 다른 구동의 경우, 상기 반복기는 언제나 유효하다는 점을 분명하게 하기 위해서 그에 맞춰서 조정될 수 있다.
상기 정책 엔진(314)은 네트워크 혼잡을 완화하기 위해서 미디어 객체들과 함께 큰 흐름들을 최적화하기 위한 정책들을 정의한다. 상기 네트워크의 혼잡 상에서 탐지 및 동작하여, 상기 네트워크 제어기(140)의 디자인 포커스는 이러한 매우 유연한 정책 엔진상에 새워진다. 상기 정책 엔진(314)은 HTTP 해더들 및 페이로드(payload)(예를 들어, RADIUS/Gx 인터페이스) 중 어느 하나로부터 추론되거나 또는 API를 통해 상기 네트워크 기반 시설에 의해 제공된 임의의 입력을 가상으로 취할 수 있고, 이러한 입력들의 조합 또는 개별에 기초하여 최적화를 어떻게 적용할지에 대한 결정을 할 수 있다. 상기 최적화 정책들은 큰 흐름들에 내내 적용될 수 있고, 또는 시간 기준, 사용자 기준 마다, 및/또는 상기 네트워크 상태에 따라서 적용될 수 있다.
예를 들어, 상기 정책 엔진(314)은 상기 네트워크의 상이한 세그먼트들을 위한 시간에 기초해서 최적화를 적용하도록 구성될 수 있다. 상기 시간 구성은, 특정 시간 또는 주(week) 동안의 어떤 네트워크 세그먼트들의 대역폭 소비 및 네트워크 상태의 패턴들에 대한 지식을 이용하는 상기 흐름 캐시(322)에 저장된 이전 이력의 흐름 통계 데이터에 기초하여 결정될 수 있다. 예를 들어, 만약 네트워크-폭 “높은 혼잡”이 매일 7 pm 부터 10 pm에 발생하면, 정책은 225 kbps를 넘는 소스 비디오 비트 전송률을 갖고 상기 기간 동안 비디오를 최적화하도록 설정될 수 있다. 만약 네트워크-폭 “중간 혼잡”이 매일 3 pm 부터 7 pm에 발생하면, 300 kbps를 넘는 소스 비트 전송률을 갖고 비디오를 최적화하도록 설정될 수 있다. 상기 혼잡이 발생하는 때라면 언제든지 상기 시간 정책을 수동으로 덮어쓸 수 있다.
상기 정책 엔진(314)이 네트워크 혼잡에 기초하는 것뿐만 아니라 전반적인 최적화 용량에도 기초하여 최적화 정책들을 조정하는 것은 가능하다. 상기 네트워크에 기여하기 위해서 설치된 상기 최적화 용량에 따라서, 상기 최적화 서버들에서 최적화 요청이 “신청 초과(oversubscribed)”될 수 있다. 상기 최적화 용량을 모니터링하는 것의 방법으로서, “헬스 체크(health check)”메시지가 상기 네트워크 제어기(140) 및 비디오 최적화기(150) 서버 풀들 사이에서 교환될 수 있다. 만약 최적화 풀이 최대로 활용된다면, 상기 네트워크 제어기(140)가 알림을 받을 수 있다. 상기 최적화 풀이 최대 활용에 근접함에 따라서, 상기 정책 엔진(314)은 가장 큰 흐름들만을 수용하기 위해서 최적화될 상기 흐름들의 비트 전송률 문턱값을 동적으로 조정할 수 있다.
예를 들어, 네트워크가 혼잡하고, 흐름에 대한 상기 목표 모바일 비트 전송률이 적어도 225 kbps라고 가정한다. 일반적으로, 상기 정책 엔진(314)은 15% 또는 상기 목표 전송률보다 높은(즉, 약 260 kbps) 비트 전송률을 갖는 어떤 비디오 흐름이라도 최적화한다. 그러나 상기 비디오 최적화기(150)의 상기 최적화 용량이 85%에 도달하면, 상기 정책 엔진(314)은 상기 전체 대역폭 절약을 최대화 하기 위해서 300 kbps 및 그 이상의 비트 전송률을 갖는 비디오들 만이 최적화되도록 상기 문턱값을 증가시킨다. 상기 비디오 최적화기(150)가 훨씬 높은 활용에 도달하게 되면, 상기 문턱값 레벨은 더 증가되며, 예를 들어, 오직 HD 비디오들만이 최적화 될 것이고, 이는 최대 사용자 경험 혜택이 상기 “가장 무거운” 비디오들로부터 오기 때문이다.
최대 지역적-이중화(geo-redundancy) 및 지역적-로드(geo-load) 쉐어링이 또한 상기 정책 엔진(314)에서 지원된다. 예를 들어, 만약 최적화기들의 로컬 풀일 최대로 활용되면, 상기 최적화 요청은 원격 최적화기 풀로 전달될 수 있다. 사실상, 상기 정책 엔진(314)은 상기 이용 가능한 용량뿐만 아니라 상기 현재 네트워크 상태가 최적화될 비디오 흐름들의 사이즈 또는 유형을 결정하는 것을 허용한다. 상기 네트워크 제어기가 최고 효율을 달성하기 위해서 상기 비디오의 우선순위를 자동으로 정하는 것을 알면서, 예산에 맞고, 상기 최적화 서버들이 항상 최대 활용 상태에 있도록 유지하는 최적화 리소스들을 획득할 가능성을 열어둔다.
비디오를 도중에 최적화하는 것은 중대한 기술적 어려움을 마주치게 되기 때문에, 비디오를 최적화하기 위한 상기 결정이 상기 스트리밍이 시작되기 이전에 가장 자주 이루어진다는 점에 주의한다. 비디오가 상기 장치로 스트리밍되기 시작하면, 특정 파라미터들은 더 이상 최적화를 통해 어드레서블(addressable)하지 않다. 예를 들어, 비디오 해상도(가로 x 세로)는 스트림 중간에 변경될 수 없고, 따라서 최적화를 위한 중요한 기술이 가능하지 않다. 다른 실시 예로서, 상기 스트리밍 동안, 비디오 프레임 레이트는, 다른 프레임 레이트로 상기 비디오를 재부호화 할 수 있도록 되는 것 없이는, 프레임들을 낮추는 것에 의해서만 변경될 수 있다. 따라서, 프레임 내부 정보가 영향을 받고, 비디오 품질은 상당히 영향을 받는다. 더욱이, iOS 및 Android 어플리케이션들 다수를 위해 사용되는 MP4 포맷과 같은 지배적인 비디오 스트리밍 포맷에 대해서 스트림 중간 조정을 달성하는 것은 기술적으로 불가능하다. MP4 파일 포맷은 첫 번째 바이트가 전송되기 이전에 모든 최적화 결정들이 이루어 질 것을 필요로 한다. 그러므로, 상기 네트워크 제어기(140)는 각각의 비디오 스트림의 시작에서 최적화의 레벨을 항상 결정한다. 상기 최적화 목표는 가입자들이 시작부터 끝까지 일관된 사용자 경험을 얻는걸 보장하도록 해상도, 프레임-레이트 및 대역폭의 조합으로서 구성될 수 있다.
상기 비디오 최적화기 리다이렉터(318)는 만약 상기 비디오가 트랜스코드(transcode)된 것으로 간주된다면 상기 비디오 최적화기(150)를 가리키는 URL로 리다이렉트 요청을 생성한다. 일 실시 예에서, 상기 URL은 비디오 해상도, 비디오 비트 레이트, 비디오 프레임 레이트 나눗수, 오디오 샘플 레이트와 채널들의 수, 오디오 비트 레이트, 소스 URL, 클라이언트의 사용자 에이전트, 소스 도메인 쿠키 및 상기 비디오 최적화기(150)에 의한 그밖에 다른 인증 데이터 중 적어도 하나를 포함할 수 있다. 상기 비디오 최적화기 리다이렉터(318)는 상기 원본 응답을 상기 HTTP 리다이렉트를 이용하여 재작성하고, 상기 위치 헤더를 상기 새로운 URL에 설정한다. 이는 상기 사용자 장치들(110)이 상기 비디오 최적화기(150)로 새로운 요청을 발행하도록 한다. 상기 비디오 최적화기 리다이렉터(318)는 다시 가로채어지지 않도록 스스로 생성된 들어오는 URL들을 찾기 위한 로직을 또한 갖는다.
네트워크 모니터링 및 혼잡 탐지(NETWOR MONITORING AND CONGESTION DETECTION)
도 4a 및 도 4b는 각각 선택적인 온-디맨드 리얼-타임 네트워크 모니터링 및 가입자 식별을 제공하기 위한 상기 네트워크 제어기의 예시적인 작업 모드의 일 실시 예를 나타낸다. 상기 네트워크 제어기(140)와 함께 도시된 것들은 상기 사용자 장치(110), 상기 조종 장치(130 및 상기 기원 서버(160)이다. 상기 네트워크 제어기(140)는 상기 조종 장치 인터페이스(316)를 통해 상기 조종 장치(130)에 연결 된다. 일 실시 예에서, 상기 네트워크 제어기(140) 및 상기 조종 장치(130)는 인터넷 콘텐츠 적응 규약(Internet contents adaption protocol; ICAP)을 이용하여 서로 통신한다. 상기 조종 장치 인터페이스(316)는, 상기 조종 장치(130) 상에서 실행되는 ICAP 클라이언트(404)와 상호작용하는 ICAP 서버(406)를 실행시킨다. 다른 실시 예들에서 상기 네트워크 제어기(140) 및 상기 조종 장치(130) 간의 통신을 위해서 유사 또는 상이한 프로토콜들이 사용될 수 있다.
상기 인터넷 콘텐츠 적응 규약은 HTTP 메시지들 상에서 간단한 원격 절차 호출을 실행하는 것을 목표로 하는 가벼운 규약이다. ICAP은 투명한 HTTP 프록시(proxy) 캐시들을 이용하는 부가가치 서비스들을 전달하는 것을 돕기 위해서 가장자리 기반 장치들을 레버리지(leverage)한다. 콘텐츠 적응은 상기 연관된 HTTP 클라이언트 요청/응답을 위해, 콘텐츠 조작 또는 다른 처리와 같은, 상기 특정 부가가치 서비스를 수행하는 것을 나타낸다. ICAP 클라이언트들은 전환 또는 다른 처리를 위해서 HTTP 메시지를 ICAP 서버들로 전달한다. 결국, 상기 ICAP 서버는 상기 HTTP 메시지들에 대한 자신의 변환 서비스를 실행하고 상기 ICAP 클라이언트로 응답들을 되돌려 보낸다. 이러한 처리의 핵심은 모든 클라이언트 트랜잭션(transaction)들을 프록시하고 그것들을 광고 삽입, 바이러스 스캐닝, 콘텐츠 번역, 언어 번역, 또는 콘텐츠 필터링과 같은 특정 기능들에 초점을 맞춘 ICAP 서버들을 통해서 처리할 수 있는 캐시이다. 상기 네트워크 제어기(140)에 의해 활용되는 것들과 같은 ICAP 서버들은 상기 조종 장치(130)와 같은 ICAP 클라이언트를 포함하는 네트워크 장치들로부터 부가가치 서비스들을 오프-로드(off-load)하기 위해서 이러한 작업들을 처리한다. 상기 조종 장치(130)로부터 부가가치 서비스들을 오프로딩(offloading)하여, 하부구조(예를 들어, 최적화 서비스들 및 네트워크 제어기들)의 처리는 로우(raw) HTTP 처리량을 다루는 상기 조종 장치들로부터 독립되어 스케일될 수 있다.
이제 도 4a를 참조하면, 네트워크 트래픽은 상기 사용자 장치(110)로부터 상기 조종 장치(130)를 통해 흐르고 상기 네트워크 요청 경로를 따라서 상기 기원 서버(160)에 도착한다. 예를 들어, 상기 사용자 장치(110)상의 브라우저는 상기 기원 서버(160)로부터 웹 콘텐트를 요청할 수 있다. 상기 사용자 장치(110)에서 시작된 HTTP 요청 메시지는 상기 네트워크 링크(411)를 통해 상기 조종 장치(130)로 포워드(forward)된다. 상기 조종 장치(130) 내부의 데이터 스위치(402)는 상기 네트워크 링크(412)를 통해 상기 기원 서버(160)로 상기 요청 메시지를 전달한다. 반대 방향에서, 상기 기원 서버(160)로부터 유래된 네트워크 트래픽은 상기 네트워크 응답 경로를 통해서 상기 조종 장치(130)를 통과하여 상기 사용자 장치(110)로 돌아온다. 예를 들어, 상기 기원 서버(160)는 상기 네트워크 링크(416)를 통해 상기 사용자 장치(110)로 웹 콘텐츠를 전송하는 상기 조종 장치(130)로 상기 네트워크 링크(413)를 통해 웹 콘텐츠를 전송하여 상기 사용자 요청에 응답한다. 상기 네트워크 링크들(411 및 416)은 동일한 물리적 링크 상에서의 두 개의 반대 방향들이라는 점에 유의하며, 상기 네트워크 링크 쌍(414 및 415)도 또한 그러하다. 반면에, 상기 네트워크 링크 쌍(412 및 413)은, 왜냐하면 반대 방향들 상의 상기 조종 장치(130) 및 기원 서버(160) 사이의 트래픽은 하나 이상의 라우터들을 통해 다르게 라우팅될 수 있기 때문에, 동일한 네트워크 경로를 공유하거나 공유하지 않을 수 있다.
일 실시 예에서, 상기 조종 장치(130)가 네트워크 응답들을 모니터하는 동안, 비디오 및 이미지들을 위한 하나 이상의 서명들을 매치하는 흐름들을 찾는다. 매칭 흐름이 탐지되면, 상기 조종 장치(130)는 상기 ICAP 클라이언트 인터페이스(404)를 통해 상기 네트워크 제어기(140)로 상기 HTTP 요청 및 상기 HTTP 응답의 부분을 포워드한다. 상기 ICAP 서버 인터페이스(406)에서 상기 요청 및 상기 응답의 부분을 수신한 이후에, 상기 네트워크 제어기(140)의 상기 흐름 분석기(312)는 상기 흐름이 대역폭 모니터링 및/또는 사용자 탐지의 가치가 있는지를 결정하기 위해서 깊은 흐름 검사를 수행한다. 예를 들어, 상기 흐름 분석기(312)에 의해 수행된 상기 흐름 검사는 상기 흐름이 크거나 또는 중간크기 객체(예를 들어, 50 kB 보다 큰)를 정말로 포함하는지, 및/또는 상기 흐름의 상기 소스 IP 어드레스가 정책들에 의해 모니터될 필요가 있는 사용자 또는 사용자들 그룹으로부터 온 건지를 결정할 수 있다. 상기 흐름 분석기(312)는 또한 상기 흐름이 이전 이력의 흐름 통계 데이터에 기초하여 최적화될 필요가 있는지 여부를 결정할 수 있다.
만약 상기 흐름이 흥미있는 것으로 간주된다면, 상기 조종 장치(130)는 상기 네트워크 제어기(140)를 통해 상기 흐름을 조종하기 위해서 알림을 받는다. 이는 대역폭 모니터링을 위한 상기 “계속” 작업 모드로서 알려진다. 상기 “계속” 모드에서, 상기 네트워크 제어기(140)는 흥미 있는 것으로 간주된 흐름을 위한 전통적인 인라인 네트워크 요소로서, 요구에 따라서, 기능하기 위해서 상기 조종 장치(130)와 인터페이스로 접속한다. 따라서, 상기 네트워크 제어기(140)는 검사를 위해서 상기 네트워크 흐름을 삼키며, 이어서 상기 네트워크 응답 경로상으로 상기 네트워크 흐름을 포워드한다. 예를 들어, 이러한 특정 흐름을 위해서, 상기 기원 서버(160)는 상기 조종 장치(130)로 상기 네트워크 링크(413)을 통해 비디오 또는 이미지들을 전송하여 상기 사용자 요청에 응답하며, 상기 조종 장치(130)는 상기 네트워크 링크(414)를 통해 상기 네트워크 제어기(140)로 상기 비디오 또는 이미지들을 포워드한다. 상기 네트워크 제어기(140)가 상기 흐름 통계를 갱신한 이후에, 상기 비디오 또는 이미지들은 상기 네트워크 링크(415)를 통해 상기 조종 장치(130)로 되돌아가며, 상기 조종 장치(130)는 상기 네트워크 링크(416)을 통해 상기 사용자 장치(110)로 상기 비디오 또는 이미지들을 을 전송한다.
흐름이 상기 네트워크 제어기(140)로 보고되면, 상기 흐름 캐시(322) 내에 상기 흐름을 위한 흐름 캐시 엔트리가 생성된다. 상기 흐름 캐시 엔트리는 상기 흐름 및 이의 연관된 대역폭을 기록한다. “계속” 모드가 표시된 흐름을 위해서, 상기 조종 장치(130)가 상기 네트워크 제어기(140)로 상기 흐름 페이로드(payload)의 다음 부분을 포워드 할 때 마다, 상기 흐름 캐시(322)는 상기 흐름에서 전송된 바이트 수를 갱신한다. 일정 기간 동안 흐름당 바이트들의 수를 모니터링하여, 상기 흐름 분석기(312)는 흐름과 연관된 대역폭의 예측 값을 결정할 수 있다. 더욱이, 상기 조종 장치(130)가 무한대의 패킷 버퍼를 갖고 있지 않기 때문에, 만약 상기 조종 장치(130)로부터 상기 사용자 장치(110)로의 상기 네트워크 링크(416)상에 혼잡이 발생한다면, 기원 서버(160)로부터 상기 네트워크 링크(413)을 통해 데이터를 수신하는 것을 늦추며 및/또는 결국에는 중지시키는 상기 TCP 혼잡 제어 메커니즘이 상기 조종 장치(130)에서 발동된다. 혼잡 동안, 상기 링크(416)이 혼잡하고 상기 네트워크 제어기(140)가 상기 사용자 장치(110)로 데이터를 전송할 수 없기 때문에, 상기 조종 장치(130)는 상기 네트워크 제어기(140)로 어떤 데이터도 포워드하지 않는다. 그러므로, 인라인 요소로서, 상기 네트워크 제어기(140)는 네트워크 혼잡을 탐지할 수 있고 상기 네트워크 제어기(140)에 의해 선택된 흥미 있는 어떤 흐름들과 연관된 대역폭을 예측할 수 있다. 그러나, 상기 “계속” 모드에서, 상기 네트워크 제어기(140)는 상기 ICAP 인터페이스를 통해 수신되는 HTTP 메시지들을 수정 및 변경하지 않는다. 상기 네트워크 제어기(140)는 상기 흐름 통계를 간단히 갱신하고 상기 비디오 또는 이미지들을 상기 사용자 장치(110)로 전송하기 위해서 상기 조종 장치(130)로 돌려보낸다.
상기 흐름 캐시(322)에 저장된 상기 흐름 통계에 기초하여, 상기 네트워크 제어기(140)는 또한 사용자 또는 가입자와 연관된 상기 흐름들을 종합할 수 있으며, 이는 상기 사용자 또는 가입자에 의해 점거된 전체 이용 가능한 대역폭을 예측하기 위함이다. 일 실시 예에서, 상기 네트워크 제어기(140)는 일반적인 소스 IP 어드레스 또는 사용자 장치 식별자로부터 기원된 흐름들을 찾는 상기 흐름 캐시 엔트리들 모두를 추적한다. 상기 네트워크 제어기(140)의 상기 흐름 분석기(312)는 상기 사용자 또는 가입자에 대한 흐름 이력를 형성하기 위해서 이러한 흐름들의 그룹화를 시도한다. 상기 네트워크 제어기는 상기 흐름 캐시 엔트리의 두 개의 데이터 구성 요소들: TCP 소스 포트 및 상기 흐름과 연관된 HTTP 쿠키를 이용하는 사용자들 또는 가입자들을 더 식별한다. 상기 흐름 이력과 함께, 상기 네트워크 제어기(140)는 패턴을 수립하고, 사용자들 또는 가입자들을 식별하고 상기 가입자 로그(324)에 가입자 정보를 저장한다. 상기 흐름 캐시 및 사용자 매핑의 더 자세한 사항은 도면을 참조하여 아래에서 설명된다.
도 4b는 선택적인 온-디맨드 네트워크 모니터링을 제공하기 위한 상기 네트워크 제어기(140)의 두 번째 예시적인 작업 모드의 일 실시 예를 나타낸다. 도 4b에서, 상기 네트워크 요청 경로는 상기 사용자 장치(110)로부터 상기 조종 장치(130)로 향하는 네트워크 링크(421), 및 상기 조종 장치(130)로부터 상기 기원 서버(160)로 향하는 네트워크 링크(422)로 구성된다. 반대 방향에서, 상기 네트워크 응답 경로는 상기 기원 서버(160)로부터 상기 조종 장치(130)로 향하는 네트워크 링크(423), 및 상기 조종 장치(130)로부터 상기 사용자 장치(110)로 되돌아가는 네트워크 링크(424)로 구성된다. 상기 네트워크 링크 쌍(421 및 424)는 동일한 물리적 링크를 공유하면, 네트워크 링크 쌍(425 및 426)도 또한 그러하다.
상기 “계속” 모드와 유사하게, 흐름의 초기 HTTP 메시지들을 수신하고 상기 흐름을 모니터하기 위한 결정 이후에, 상기 네트워크 제어기(140)는 대역폭 모니터링을 위한 “계속” 모드에서 작업하기 위해서 상기 조종 장치(130)에게 알린다. 상기 “계속” 모드와 대조적으로, “계속” 모드를 위한 매칭 흐름이 탐지되면, 상기 조종 장치(130)는 상기 HTTP 응답을 상기 사용자 장치(110)로 직접 포워딩한다. 동시에, 상기 조종 장치(130)는 상기 네트워크 링크(425)를 통해 맞춤 제작된 ICAP 메시지를 상기 네트워크 제어기(140)로 전송한다. 일 실시 예에서, 상기 주문 제작된 ICAP 메시지는 상기 현재 흐름의 페이로드 사이즈의 수뿐만 아니라 상기 HTTP 요청 및 응답 헤더들을 포함한다. 상기 흐름 통계를 갱신한 이후에, 상기 네트워크 제어기(140)는 상기 네트워크 라인(426)을 통해 상기 게이트웨이에 수신확인을 보낼 수 있다. 상기 “계산” 모드에서, 상기 네트워크 제어기(140)는 상기 네트워크 응답 경로를 인라인 네트워크 요소로서 연결하지는 않지만, 간단하게 흐름 사이즈의 계산에는 귀를 기울인다. 상기 “계산” 모드의 이득은, 혼잡의 탐지 및 상기 흥미 있는 흐름과 연관된 대역폭의 예측이 아직 가능한 동안, 상기 네트워크 응답 경로 상에서 상기 네트워크 흐름을 삼키는 것 및 포워딩하는 것으로부터 상기 네트워크 제어기(140)를 오프-로드하는 것이다.
도 5는 상기 사용자 장치(110), 조종 장치(130), 네트워크 제어기(140), 비디오 최적화기(150), 및 기원 서버(160) 간의 “계속” 작업 모드의 예시적인 이벤트 행적을 나타내는 블록도이다. 상기 과정은 상기 기원 서버(160)로부터 콘텐츠를 검색하기 위해서 상기 사용자 장치(110)가 HTTP 획득 요청(512)을 개시할 때 시작된다. 상기 조종 장치(130)는 상기 사용자 장치(110)로부터 기원되는 모든 요청들을 가로챈다. 일 실시 예에서, 상기 조종 장치(130)는 의도된 기원 서버(160)로 상기 HTTP 획득 요청을 포워드하고 상기 기원 서버(160)로부터 응답(514)을 수신한다. 상기 조종 장치(130)는 상기 흐름을 모니터할지 또는 상기 비디오를 최적화 할지 여부를 결정하기 위해서 상기 메시지를 검사하는 상기 네트워크 제어기(140)에 대한 응답 페이로드 부분 및 상기 HTTP 획득 요청 헤더를 포함하는 ICAP 요청 메시지(516)를 전송한다. 이 경우에, 상기 네트워크 제어기(140)는 ICAP 응답(518)의 상기 비디오를 최적화하기 위한 리다이렉트로 응답한다. 상기 명령을 수신함과 동시에, 상기 조종 장치(130)는 상기 응답(514)를 HTTP 리다이렉트 응답(520)으로 재작성하며, 이는 상기 사용자 장치(110)가 상기 비디오 최적화기로부터 상기 비디오 파일을 요청하도록 하는 것을 유발한다. 다른 실시 예에서, 상기 네트워크 제어기(140)는 상기 HTTP 리다이렉트 요청(520)을 상기 사용자 장치(110)로 직접 전송한다. 상기 흐름이 비디오 또는 이미지 객체들을 포함하지 않는 경우, 또는 상기 네트워크 제어기(140)가 상기 흐름을 모니터하지 않는 것을 결정하는 경우에, 상기 조종 장치(130)는 상기 사용자 장치(110)로 상기 응답을 포워드할 것이다.
상기 사용자 장치(110)가 상기 HTTP 리다이렉트 요청(520)을 수신하면, 상기 사용자 장치(110)는 상기 요청을 상기 네트워크를 통해 상기 비디오 최적화기(150)로 전송한다. 일 실시 예에서, 상기 HTTP 리다이렉트 요청(520)이 상기 비디오 최적화기(150)로 라우팅되는 동안, 상기 네트워크 제어기(140)는 상기 클라이언트 장치(110)로부터 상기 트래픽 및/또는 요청들을 모니터한다. 이와 같은 설정에서, 상기 비디오 최적화기(150)는 트랜스코드(예를 들어, 최적화)될 필요가 있고 HTTP 리다이렉트 요청(520)과 연관된 비디오 파일들을 위한 요청들만을 본다. 이와 같이, 상기 비디오 최적화기(150)는 사용자 장치(110)에 의해 생성된 상기 요청들 전부에 의해 달아오르는 것은 아니다.
상기 요청을 수신한 이후에, 상기 비디오 최적화기(150)는 상기 기원 서버(160)로 상기 비디오 HTTP 획득 요청들(522)을 포워드하고 그 결과 상기 기원 서버(160)로부터 비디오 파일(524)를 수신한다. 상기 비디오 최적화기(150)는 상기 사용자 장치(110)가 사용 가능한 네트워크 대역폭에 기초하여 상기 클라이언트 장치(110)에 의해 사용 가능한 포맷으로 상기 비디오 파일을 트랜스코딩한다. 상기 최적화된 비디오(526)는 상기 비디오 최적화기(150)로부터 상기 조종 장치(130)로 전송된다. 일 실시 예에서, 상기 조종 장치(130)는 상기 최적화된 비디오(526)를 가로챈다. 상기 네트워크 제어기(140)가 “계속” 모드에 있는 상기 흐름을 모니터링 하도록 결정하기 때문에, 상기 최적화된 비디오(526)는 상기 조종 장치(130)로 반환되고 최종적으로 상기 사용자 장치(110)로 전송되기 이전에 상기 네트워크 제어기(140)로 전달된다. 이와 같이, 상기 클라이언트는 상기 사용자 장치(110) 상에서 실행되는 어플리케이션 상에서의 실질적인 리얼-타임 재생을 위한 상기 최적화된 비디오(512)를 수신한다.
일 실시 예에서, 기원 서버(160)로의 HTTP 획득 요청(522)에 응답하여, 상기 비디오 최적화기는 비디오 파일에 반대하여 HTTP 404 에러를 상기 기원 서버(160)로부터 수신한다. 이와 같은 경우에, 상기 비디오 최적화기(150)는 상기 HTTP 리다이렉트 요청에 “트랜스코드하지 말것”이라는 플래그를 덧붙이고, 상기 기원 서버(160)로 상기 네트워크를 통해 상기 요청을 재전송하는 상기 사용자 장치(110)로 반환한다. 상기 기원 서버(160)는 모니터링 목적을 위한 상기 인라인 온-디맨드 요소 상기 네트워크 제어기(140) 및 상기 조종 장치(130)에 의해 가로채어지는 비디오(524)를 되돌려 보내는 것에 의해 상기 요청에 적절하게 응답한다.
도 6은 상기 사용자 장치(110), 조종 장치(130), 네트워크 제어기(140), 비디오 최적화기(150), 및 기원 서버(160) 사이의 “계산” 작업 모드의 예시적인 이벤트 행적을 나타내는 블록도이다. 상기 과정은 상기 기원 서버(160)로부터 콘텐츠를 검색하기 위해서 상기 사용자 장치(110)가 HTTP 획득 요청(612)을 개시할 때 시작된다. 상기 조종 장치(130)는 상기 사용자 장치(110)로부터 기원된 모든 요청들을 가로챈다. 일 실시 예에서, 상기 조종 장치(130)는 의도된 기원 서버(160)로 상기 HTTP 획득 요청을 포워드하고 상기 기원 서버(160)로부터 응답(614)을 수신한다. 상기 조종 장치(130)는 상기 흐름을 모니터할지 또는 상기 비디오를 최적화 할지 여부를 결정하기 위해서 상기 메시지를 검사하는 상기 네트워크 제어기(140)에 대한 응답 페이로드 부분 및 상기 HTTP 획득 요청 헤더를 포함하는 ICAP 요청 메시지(616)를 전송한다. 이 경우에, 상기 네트워크 제어기(140)는 ICAP 응답(618)의 상기 비디오를 최적화하기 위한 리다이렉트로 응답한다. 상기 명령을 수신함과 동시에, 상기 조종 장치(130)는 상기 응답(614)을 HTTP 리다이렉트 응답(620)으로 재작성하며, 이는 상기 사용자 장치(110)가 상기 비디오 최적화기(150)로부터 상기 비디오 파일을 요청하도록 하는 것을 유발한다. 다른 실시 예에서, 상기 네트워크 제어기(140)는 상기 HTTP 리다이렉트 요청(620)을 상기 사용자 장치(110)로 직접 전송한다. 상기 흐름이 리다이렉트될 필요가 있는 비디오 또는 이미지 객체들을 포함하지 않는 경우, 상기 조종 장치(130)는 상기 응답을 상기 사용자 장치(110)로 포워드 할 것이다.
상기 사용자 장치(110)가 상기 HTTP 리다이렉트 요청(620)을 수신하면, 상기 사용자 장치(110)는 상교 요청을 상기 네트워크를 통해 상기 비디오 최적화기(150)로 전송한다. 일 실시 예에서, 상기 HTTP 리다이렉트 요청(620)이 상기 비디오 최적화기(150)로 라우팅 되는 동안, 상기 네트워크 제어기(140)는 상기 클라이언트 장치(110)로부터 상기 트래픽 및/또는 요청들을 모니터한다. 이와 같은 설정에서, 상기 비디오 최적화기(150)는 트랜스코드(즉, 최적화)될 필요가 있고 HTTP 리다이렉트 요청(620)과 연관된 비디오 파일들을 위한 요청들만을 본다. 이와 같이, 상기 비디오 최적화기(150)는 사용자 장치(110)에 의해 생성된 상기 요청들 전부에 의해 달아오르는 것은 아니다.
상기 요청을 수신한 이후에, 상기 비디오 최적화기(150)는 상기 기원 서버(160)로 상기 비디오 HTTP 획득 요청들(622)을 포워드하고 그 결과, 상기 기원 서버(160)로부터 비디오 파일(624)을 수신한다. 상기 비디오 최적화기(150)는 상기 사용자 장치(110)가 사용 가능한 네트워크 대역폭에 기초하여 상기 클라이언트 장치(110)에 의해 사용 가능한 포맷으로 상기 비디오 파일을 트랜스코딩 한다. 상기 최적화된 비디오(626)는 상기 비디오 최적화기(150)로부터 상기 조종 장치(130)로 전송된다. 일 실시 예에서, 상기 조종 장치(130)는 상기 최적화된 비디오(626)를 가로챈다. 상기 조종 장치(130)는 검사를 위해서 ICAP 요청을 상기 네트워크 제어기(140)로 전송할 것이다. 상기 네트워크 제어기(140)는 이 흐름을 모니터링 될 것으로 여기고 ICAP 응답(630)을 전송한다. 상기 조종 장치(130)는 상기 흐름이 상기 사용자 장치(110)를 통과하도록 허용한다. 상기 조종 장치(130)는 상기 흐름이 완료될 때까지 상기 네트워크 제어기(140)로 주기적인 ICAP “계산” 갱신(632)을 전송한다. 이와 같이, 상기 클라이언트는 상기 사용자 장치(110) 상에서 실행되는 어플리케이션 상에서의 실질적인 리얼-타임 재생을 위한 상기 최적화된 비디오(626)를 수신한다.
다른 실시 예에서, 만약 상기 비디오 최적화기(150)가 상기 기원 서버(160)로부터 사용자 요청된 비디오 파일을 찾는 것을 실패한다면, 상기 비디오 최적화기(150)는 상기 HTTP 리다이렉트 요청에 “트랜스코드하지 말것”이라는 플래그를 덧붙이고, 상기 기원 서버(160)로 상기 네트워크를 통해 상기 요청을 재전송하는 상기 사용자 장치(110)로 반환한다. 상기 기원 서버(160)는 상기 조종 장치(130)에 의해서만 가로채어지는 비디오(624)를 되돌려 보내는 것에 의해 상기 요청에 적절하게 응답한다. 상기 조종 장치(130)는 상기 사용자 장치(110)로 상기 비디오를 포워드하고 동시에 모니터링 목적을 위해서 상기 흐름 사이즈를 상기 네트워크 제어기(140)로 보고한다.
흐름 캐시 및 사용자 매핑(FLOW CACHE AND USER MAPPING)
도 7은 상기 흐름 캐시의 예시적인 내부 구성 요소들의 일 실시 예를 나타내는 블록도이다. 상기 흐름 캐시 맵(700)은 해시에 의해 색인되는 흐름 캐시 엔트리들(710 및 712)과 같은 복수의 흐름 캐시 엔트리들를 포함한다. 상기 예시적인 도면에 도시되지 않은 것은, 주어진 해시 인덱스에 대한 흐름 캐시 엔트리들의 체이닝(chaining)을 가능하게 하는 각각의 흐름 캐시 엔트리 뒤에 있는 가능한 링크드 리스트이다. 상기 흐름 캐시를 향하는 상기 해시는 소스 IP 어드레스, MAC 어드레스, 가입자 ID, 또는 주어진 가입자, 가입자들의 그룹 또는 가입자의 장치를 가리키는 다른 식별자에 기초할 수 있다.
상기 흐름 캐시 엔트리(712)에 의해 가리켜지는 흐름 캐시 블록(720)은 사용자, 가입자, 또는 잠재적인 가입자를 나타내는 개체와 연관된 흐름들의 논리적 그룹을 나타내는 하나 이상의 사용자 흐름 블록들, 소스 IP(722)에 대한 정보를 포함하도록 도시되어 있다. 이러한 사용자 흐름 블록들의 예시들은 디폴트 사용자 흐름들 블록(724) 및 매핑된 사용자 흐름들 블록(726)이다. 상기 디폴트 사용자 흐름들 블록(724)는 어떤 특정 사용자 또는 가입자와 아직 연관되지 않은 흐름들을 저장한다. 만약 상기 가입자 id 또는 특정 사용자와 연관된 어떤 다른 식별자들이 선험적으로 인식된다면, 상기 특정 사용자 또는 가입자와 연관된 상기 흐름들 모두는 상기 매핑된 사용자 흐름들 블록(726)으로 할당될 것이다. 상기 매핑된 사용자 흐름들 블록(726)은 또한 상기 흐름 분석기(312)에 의해 사용자 또는 가입자에 매핑되는 프로세스에 있었거나, 또는 있는 흐름들을 포함한다. 상기 매핑된 사용자 흐름들 블록(726)은 가입자 id를 이용하여 색인될 수 있다.
이상적으로, 흐름은 사용자 또는 가입자를 위한 매핑된 사용자 흐름들 블록(726)으로 상기 사용자의 소스 IP 어드레스에 의해 할당될 수 있다. 그러나, 몇몇 사례들에서, IP 어드레스와 연관된 흐름들이 종종 사용자들 또는 가입자들의 그룹과 연관될 수 있으나, 특정 사용자 또는 가입자를 식별하기 위한 정보가 충분하지 않다. 이러한 사례들에서, 보다 많은 흐름들이 관찰되어 실제 사용자들 또는 가입자들이 식별될 때까지, 의사(pseudo) 가입자 id가 상기 디폴트 사용자 흐름들 블록(724)으로 할당될 수 있다.
상기 디폴트 사용자 흐름들 블록(724) 및 상기 매핑된 사용자 흐름들 블록(726)에 포함될 수 있는 예시적인 사용자 흐름 블록(730)은, 다른 관련된 흐름 정보들 중에서 가입자 id(732)(의사 또는 실제), 추정된 대역폭(734), 상기 가입자 id(732)와 연관된 모든 흐름들의 리스트(736), 및 쿠키 해시들 리스트(738)와 같은 데이터 필드들을 포함한다. 상기 쿠키 해시들 리스트(738)의 각각의 엔트리는 상기 흐름들 내에서 나타나는 하나의 특유한 쿠키를 포함한다. 상기 흐름들의 리스트(736)는 하나 이상의 흐름 통계 블록(740)을 포함한다. 각각의 흐름 통계 블록(740)은 상기 IP 흐름 식별자(742)(예를 들어, srcIP, dstIP, srcPort, dstPort), 현재 도메인 및 쿠키(744), 각각의 방향에 나타난 바이트의 총수(746), 마지막 갱신에서의 각각의 방향에 나타난 바이트의 총수(748)을 포함한다. 도 7에 도시되지 않은 것은 만료 시간 및 상기 흐름과 연관된 쿠키 해시들의 리스트를 포함한다.
일 실시 예에서, 상기 흐름 캐시 맵(700)은 하나의 논리적 캐시 맵에 의해 나타내어지는 다수의 물리적 캐시 맵들로 분열될 수 있다. 상기 논리적 캐시들에 대한 빈번한 접근들(예를 들어, 초당 수천회) 및 많은 수의 엔트리들(예를 들어, 수백만 엔트리들)에 따라서, 각각의 분열 물리 캐시 맵은 관리 및 레이스 컨디션에 대한 자신의 스레드(thread)에 의해 보호될 필요가 있다. 상기 논리적 캐시를 다수의 물리적 캐시들로 분열하는 것의 이점은 자원 경합 및 다른 동시성 사고를 극적으로 감소시키는데 있다. 상기 흐름 캐시 맵(700)은, 상기 해시 색인의 최하위 비트들(least significant bits; LSBs)중 하나 이상의 비트들에 기초하여 하나 이상의 물리적 흐름 캐시들을 위한 엔트리들을 선택하는 것과 같은, 다양한 방법으로 분열될 수 있다. 예를 들어, 만약 상기 해시 인덱스의 상기 최하위 세 개의 비트들이 색인으로서 사용된다면, 상기 동일한 세 개의 LSB들을 공유하는 상기 흐름 엔트리들 모두가 여덟 개의 물리적 흐름 캐시 맵들 중 하나로 조직화된다. 상기 흐름 캐시 맵에서 검색하기 위해서, 나머지 비트들의 해시들이 이용된다.
사용자 흐름 블록(700)의 상기 추정된 대역폭(734)은 다음과 같이 계산될 수 있다. 일 실시 예에서, 상기 흐름 캐시에서 사용자 흐름 블록(730)이 갱신되거나 또는 생성될 때 마다, 이는 “더티(dirty)” 플래그로 표시된다. 상기 플래그는 상기 흐름 분석기(312)를 위한 표시기의 역할을 하여, 상기 흐름 분석기(312)가 갱신될 필요가 있는지를 알아보기 위해서 모든 사용자 블록들을 트래버스(traverse)할 필요가 없도록 상기 대역폭이 상기 흐름을 위해 재계산될 필요가 있을 수 있다. 상기 “더티” 플래그는 상기 사용자 흐름 블록(730) 또는 상기 흐름 통계 블록(740)에 설정될 수 있다. 상기 대역폭의 갱신 또는 재계산은 주기적으로 수행될 수 있다(예를 들어, 일초, 십초, 또는 일분의 간격으로). 상기 갱신이 발생했을 때, 상기 마지막 갱신 이후에 전송(및/또는 수신)된 바이트들의 차이는 상기 간격 동안의 상기 수신(rx) 방향 또는 상기 전송(tx) 방향 대역폭, 상기 전체 대역폭에 대한 소비된 대역폭의 퍼센트, 시간에 따른 바이트들, 또는 시간동안의 바이트들을 측정하기 위해 사용된다. 상기 기간에 전송된(및/또는 수신된) 바이트들은 또한 특정 사용자와 연관된 모든 흐름을 위해서 상기 특정 사용자가 수신한 상기 추정된 대역폭을 측정하기 위해 종합될 수 있다.
상기 대역폭 계산에서, 흐름들은 전송될 상기 객체의 사이즈에 기초하여 버킷들로 분류될 수 있다. 작은 객체는 단일 간격으로 오고 갈 수 있기 때문에 상기 대역폭 계산에서 고려되지 않을 수 있다. 예를 들어, 페이로드 사이즈가 50 kB보다 작은 흐름들은 무시될 수 있으며, 이는 50 kB의 전송은 상기 링크의 최대 잠재적 처리량에 절대 도달할 수 없을 것이기 때문이다. 큰 흐름들은 시간 간격들의 긴 기간 동안 상기 흐름의 최대 처리량에 도달할 수 있긴 하지만, 그것들은 50-75 kB, 75-100 kB 및 100 kB+ 버킷으로 그룹화 될 수 있으며, 이는 이러한 흐름 사이즈들의 특성은 다를 수 있기 때문이며, 따라서 상기 버킷들 각각의 상기 대역폭은 따로따로 측정 및 계산된다. 다른 실시 예들에서, 상기 버킷들의 상기 흐름 사이즈 범위들(예를 들어, 50-75 kB, 75-100 kB 및 100 kB+)은 상기 네트워크 트래픽 및 전송된 객체들의 사이즈에 따라서 변화될 수 있다. 더욱이, 상기 버킷 사이즈들은 버퍼 사이즈와 같은 네트워크 토폴로지(topology)에 기초하여 상기 클라이언트에게 전송되기에 앞서 조정될 수 있다. 버킷당 계산된 대역폭은 각각의 버킷을 위한 최소, 최대, 및/또는 평균 측정의 갱신 및 계산을 고려하는 큐(queue) 구조에 저장된다. 일 실시 예에서, 상기 100 kB+ 버킷의 현재 꼬리 엔트리는 상기 100 kB+ 버킷에 대한 상기 평균 대역폭과 대조된다. 만약 상기 현재 엔트리가 상기 큐의 엔트리들의 수로 곱해진 상기 평균보다 작다면, 상기 현재 엔트리는 현재 간격을 위한 상기 대역폭 계산에 추가된다. 이러한 스킴(scheme)은 일시적으로 유휴 상태에 있는 흐름들로부터 데이터의 큰 버스트(burst)를 걸러낼 수 있다. 만약 상기 대역폭이 상기 값을 초과하면, 상기 네트워크에서 TCP 버퍼들을 처리하기 위해서 바이트들의 수(예를 들어, 125 kB)가 상기 현재 엔트리로부터 빼진다.
사용자와 연관된 상기 흐름들 모두가 상기 대응되는 버킷들로 할당되면, 상기 각각의 버킷에서 상기 흐름들 모두에게 전송된 상기 측정된 데이터를 결합하여 상기 버킷들 각각에 대한 상기 대역폭이 계산된다. 일 실시 예에서, 상기 100 kB+ 버킷의 흐름 사이즈들이 먼저 최대 버스트 값과 비교된다. 만약 상기 100 kB+ 버킷의 흐름이 상기 최대 버스트 값의 특정 퍼센트(예를 들어, 25%)보다 크면, 상기 흐름은 상기 추정된 대역폭에 대한 고려 요소가 되지 않는다. 특히, 흐름이 일정 시간 동안 유휴 상태이면, 네트워크 버퍼들 때문에 상기 네트워크가 백업하기 이전에 많은 양의 데이터가 버스트할 수 있다. 상기 최대 버스트 값은 100 kB+ 흐름들을 위해 보이는 상기 최대 대역폭 값(또는 어떤 최고 대역폭 버킷)을 주어진 사용자를 위해 추적한다. 만약 상기 흐름 사이즈가 상기 최대 버스트 값에 비해서 많이 작은 경우(예를 들어, 20%보다 작은 경우), 이는 상기 추정된 대역폭으로 추가된다.
상기 추정된 대역폭은 상기 현재 간격에 대한 상기 버킷들 각각으로부터 예측된 상기 대역폭을 합하는 것에 의해 계산된다. 상기 추정된 대역폭은 상기 간격 동안 전송된 데이터가 있을 경우, 즉, 하나 이상의 버킷들이 비어있지 않은 경우에만 갱신된다. 추가로, 바이트들의 최소 수량은 상기 추정된 대역폭을 갱신하기 위해서 전송될 필요가 있다. 이는 최대 버킷으로부터의 데이터에 더 큰 중요도를 부여하기 위해서 상기 버킷의 더 낮은 바이트 한계(예를 들어, 50, 75 또는 100 kB)로 곱해진 버킷당 평균 대역폭을 가중하는 것에 의해 이루어진다. 상기 버킷들 각각으로부터의 상기 결합된 중요도가 문턱값을 초과했을 때에만, 상기 더 작은 버킷들의 데이터의 작은 버스트들이 기생 대역폭 갱신들을 생성하지 못하게 하기 위하여 상기 추정된 대역폭이 갱신된다.
일 실시 예에서, 상기 측정된 대역폭은 큐 데이터 구조에 저장된다. 영이 아닌 대역폭이 간격 동안 측정될 때마다, 상기 측정된 대역폭은 상기 큐의 꼬리로 삽입된다. 측정된 대역폭은 상기 큐의 평균, 최대 또는 최소 값으로부터 계산될 수 있다. 상기 큐의 깊이는 조정될 수 있다: 더 많은 엔트리들이 상기 추정된 대역폭에서 변형들을 제거할 수 있으나, 상기 네트워크에서의 빠른 변화에 반응하기에는 느리다(예를 들어, 빨리 다운로드 되는 소형부터 중간 사이즈 파일). 적은 수의 엔트리들이 보다 빠른 반응 시간이 가능한 반면에, 상기 네트워크에서 장기간 변화들을 추적하기 위한 능력은 감소한다(예를 들어, 몇몇 작은 파일들에 추가하여 다운로드 되는 중간부터 큰 사이즈 파일). 일 실시 예에서, 상기 큐의 깊이는 10에서 30 사이의 엔트리들이 한계이다. 다른 예시에서, 빠른 변화를 추적하기 위한 것뿐만 아니라 변형들을 제거하기 위해서 슬라이딩 윈도우 기술(sliding window technique)이 보다 긴 큐와 함께 사용된다.
새로운 흐름이 관찰된 경우, 만약 상기 흐름의 상기 가입자 id 또는 다른 식별자들이 가능하지 않은 경우 매칭 소스 IP 어드레스(722)에 의해 흐름 캐시 엔트리들이 검색된다. 다수의 사용자들이 IP 어드레스를 공유하는 경우에, 상기 흐름 분석기(312)는 그것들을 특정 가입자들에게 매핑시키기 위해서 상기 흐름들에서 패턴들 또는 다른 식별자들을 찾을 필요가 있다. 식별된 가입자들이 없는 흐름들은 상기 새로운 흐름들을 위한 디폴트 홀딩 장소인 상기 디폴트 사용자 흐름들(726) 아래 상기 흐름 캐시 블록에 추가된다. 상기 흐름 분석기(312)는 나중에 상기 흐름과 연관된 진짜 사용자 또는 가입자를 결정하는데 사용될 수 있는 쿠키들 또는 다른 식별자들을 포함하는 디폴트 사용자 흐름들을 스캔할 것이다. 만약 상기 흐름이 존재하는 진짜 사용자와 연관되지 않은 식별자를 포함하고 있다면, 새로운 사용자 또는 가입자가 생성되고 상기 사용자 흐름 블록이 새롭게 생성된(또는 매핑된) 사용자 또는 가입자에게로 이동된다.
상기 흐름 분석기(312)는 또한 쿠키 해시들, MAC 어드레스(또는 다른 특유의 장치 식별자들), 또는 TCP 소스 포트들을 매칭하여 상기 흐름 캐시 엔트리들에서 흐름들을 사용자들(상기 모바일 또는 네트워크 서비스의 가입자)에게 매핑할 수 있다. 예를 들어, 만약 두 개의 흐름들이 상기 동일한 소스 포트를 공유한다면, TCP 포트들이 종종 개인 사용자에 의해 재사용되고, 사용자들 사이에서는 드물기 때문에, 그들이 상기 동일한 사용자에 속할 가능성이 매우 높다. 더욱이, 소스 포트들은 또한 네트워크 주소 변환(NAT)이 사용될 때 사용자들을 매핑하기 위해서 사용될 수 있다. NAT 설정을 갖는 일반적인 네트워크에서, 각각의 사용자들은 TCP 소스 포트들의 블록(예를 들어, 32)을 할당 받는다. 상기 블록의 임의의 포트 번호가 개시된 새로운 사용자 흐름들 각각을 위해서 선택된다. 이러한 사항을 통해서, 블록 내의 모든 소스 포트들은 상기 동일한 사용자 밑에 종합된다. 사용자가 하나 이상의 할당된 포트 넘버의 블록을 갖는 몇몇 사례들에서, 상기 쿠키 해시들은 상기 블록들을 함께 연결하기 위해서 사용될 수 있다.
몇몇 실시 예들에서, 사용자 흐름 블록은 현재 사용자로부터 더 매치되는 사용자에게로 이주될 수 있다. 이는, 두 사용자들 사이에서 흐름들이 왔다갔다 하는 것(즉, 진동(oscillations))을 방지하기 위해서, 보다 적은 연관된 흐름들을 갖는 사용자들로부터 보다 많은 연관된 흐름들을 갖는 사용자로 향하는 방향으로만 이루어진다. 만약 모든 흐름들이 사용자로부터 제거되면, 상기 사용자 자신이 제거된다. 이주하는 흐름들의 처리 동안, 상기 흐름 속성들은 예를 들어, 상기 바이트 계산들을 합산, 상기 쿠키 해시들을 결합, 및 상기 만료 시간을 이후의 시간으로 연장하는 것에 의해 결합될 수 있다. 상기 가입자 로그(324)는 상기 매핑된 사용자들 전부를 저장한다. 일 실시 예에서, 존재하는 사용자들은 소스 포트 및 쿠키 해시 값들과 같은 식별자들에 의해 색인되는 데이터베이스 테이블로 조직화 된다. 일 실시 예에서, 사용자 흐름 블록을 이주시키는 것은 상기 사용자 흐름을 상기 현재 사용자로부터 연결 해지하고 이를 상기 새롭게 매핑되는 사용자에게 연결하는 것에 의해 간단하게 수행될 수 있다.
테이블 관리의 사례에서와 같이, 상기 시스템이 한 번의 순회에서 상기 전체 흐름 캐시에 걸쳐서 상기 사용자 매핑을 시도하는 것을 방지하는 것이 바람직하다. 따라서, 단계별 처리를 위한 사용자의 수를 제한하고 다른 단계에서 어떤 추가 사용자를 고를 수 있다. 앞서 주목한 바와 같이, 상기 식별자는 직접 매칭될 수 있으나, 계산 시간을 절약하기 위해서 이의 해시에 기초한다.
적응적 비디오 부호화(ADAPTIVE VIDEO ENCODING)
전통적으로, 최적화기를 이용하는 적응적 비디오 부호화는, 상기 최적화기에게 상기 네트워크 상태에 대한 정보를 알릴 수 있는, 클라이언트-측 처리에 의존한다. 상기 발명의 실시 예들은 클라이언트가 없는 비디오 최적화를 지원한다. 클라이언트 없는 모드에서, 상기 비디오 최적화기는 상기 네트워크에 얼마만큼의 역압이 존재하는지를 측정하기 위해서 상기 네트워크 제어기에 의존하며, 상기 비디오 최적화기는 따라서 상기 비디오 비트레이트를 조정할 수 있다.
일 실시 예에서, 상기 비디오 최적화기는 온-디맨드 프록시로서 행동하여 상기 네트워크 제어기가 HTTP 리다이렉트 요청을 갖고 인보크(invoke)한다. 예를 들어, 도 1에 대한 상기 네트워크 제어기는 상기 최적화된 비디오를 획득하기 위해서 상기 사용자 장치(110)를 상기 비디오 최적화기(150)로 리다이렉트하며, 상기 비디오 최적화기(150)가 상기 기원 서버(160)는 상기 리다이렉트 메시지에 명시된 상기 기원 서버(160)로부터 검색한다. 상기 비디오가 상기 비디오 최적화기(150)에 의해 온 디맨드 트랜스코딩되면, 상기 최적화된 비디오는 상기 사용자 장치로 스트리밍될 것이다. 이와 같이, 상기 비디오 최적화기(140)는 얼마나 많은 데이터가 상기 네트워크를 통과해 나갈 수 있는지를 모니터링할 수 있다.
이를 달성하기 위해서, 상기 비디오 최적화기는 제작된 비디오가 상기 사용자 장치로 상기 네트워크를 통해 전달되기 이전에 저장되는 링 버퍼를 포함할 수 있다. 상기 비디오 최적화기는 상기 링 버퍼로부터 기록되고 판독된 마지막 데이터의 오디오/비디오 타임스탬프를 추적할 수 있다. 만약 상기 네트워크가 백업되고 있다면, 데이터는 상기 링 버퍼에 백업될 수 있다. 상기 링 버퍼의 처음 및 마지막 데이터의 타임스탬프들의 차이를 측정하여, 상기 네트워크의 전체 지연이 예측될 수 있다. 상기 비디오 최적화기는 리얼-타임으로 상기 오디오/비디오 스트림을 생성할 수 있고, 따라서 명목상 상기 링 버퍼는 빈 상태를 유지하여야 한다. 만약 상기 링 버퍼의 상기 저장된 지연이 어떤 수량(예를 들어, 3초)을 초과하면, 상기 비디오 최적화기는 상기 오디오/비디오 부호기에서 상기 부호기 비트레이트를 감소시키기 시작할 수 있다. 비트레이트의 감소량은 상기 지연에 비례하는 비율에서 수행될 수 있다. 따라서, 상기 버퍼가 채우기를 계속한다면, 상기 버퍼 내의 상기 비디오의 비트레이트는 보다 공격적으로 감소될 수 있다. 선택적으로, 만약 상기 저장된 지연이 어떤 수량(예를 들어, 1초)보다 작다면, 상기 비디오 최적화기는 상기 현재 비트레이트의 부분에 의해 상기 비트레이트를 증가시킬 것이다.
상기 비디오 최적화기(150)의 다른 모드는 런웨이 비트레이트들을 구한다. 만약 상기 링 버퍼에서 나오는 상기 데이터 전송률이 상기 현재 부호기 비트 전송률에 비해서 상당히 작으면, 상기 부호기 비트 전송률은 감소될 수 있다. 이는, 가끔 주어진 오디오/비디오 시퀀스가 부호기에 많은 수의 비트들을 요구하지 않기 때문에 유용하다. 상기 지연이 낮은 상태에 머무르기 때문에 상기 비트 전송률은 증가될 수 있다. 그러나, 상기 시퀀스는 변경될 수 있고 상기 부호화 알고리즘에서 오버슛을 유발할 수 있는 많은 수의 비트들이 요구될 수 있다. 결국, 상기 시스템은 비디오 품질에서 급격한 스윙을 방지하기 위해서 매 적은 초마다(예를 들어 5초) 상기 비트레이트를 갱신할 수 있다. 위 아래로 조정될 상기 비트 전송률의 수량은 또한 갑작스런 품질 변화를 방지하기 위해서 제어될 수 있다.
다른 실시 예에서, 상기 비디오 최적화기(150)는 또한 상기 평균 네트워크 대역폭이 상기 실제 네트워크 용량 보다는 상기 페이싱 레이트가 되기 때문에 상기 대역폭 측정을 복잡하게 만드는 트랜스코딩된 비디오 출력의 속도를 조절할 수 있다. 이러한 문제를 경감시키기 위해서, 상기 비디오 최적화기(150)는 상기 네트워크로 어떤 데이터를 출력하기 이전에 출력 데이터를 몇 초간 및/또는 몇 바이트 동안 중단하여 블록들에서 데이터 출력을 버스트시킬 수 있다. 상기 중단 기간이 끝나고, 및/또는 중단된 상기 몇 바이트들이 도달되면, 상기 비디오 최적화기(150)는 최대 속도로 상기 데이터를 상기 네트워크로 버스트하게 전송한다. 이는 상기 비디오 최적화기 및 상기 네트워크 제어기가 상기 네트워크 피크(peak) 용량을 정확하게 측정할 수 있도록 한다. 상기 비디오 최적화기(150)는 데이터가 전송되지 않을 때 상기 중단 기간을 세지 않고 상기 네트워크로 출력되는 평균 대역폭을 추적할 수 있다.
필드 테스트들이 상기 비디오 최적화기(150) 솔루션을 더한 상기 네트워크 제어기(140)는 밀리세컨드 단위에서 어떤 비디오 또는 이미지 객체를 거의 최적화할 수 있는 돌파 인스턴트 적응 엔진을 가져온다는 것을 보여준다. 상기 엔진은 포맷 커버리지(예를 들어, Flash, MP4 및 ABR 비디오)를 특성으로 하고, 비디오에 대한 평균 60% 데이터 절약 및 이미지에 대한 50%를 산출하고, 일반적인 모바일 네트워크들을 위해서 전체 트래픽에서 평균 35%의 감소를 함께 제공한다. 상기 35% 감소는, 자본 지출 커브를 변경하지 않는 상기 네트워크 트래픽의 속도 조절/스로틀링(throttling)에 의한 절약과는 대조적으로 자본 및 운영 지출을 억제하는, 피크 네트워크 사용 동안에 계산된다. 이러한 솔루션은, 상기 네트워크에서 클라우드 컴퓨팅 파워 및 존재하는 인텔리전트 라우팅을 혼합하는 것에 의해 네트워크들의 폭넓은 유형들로 스케일링, 유지 및 사용 하기 쉽다.
결론적으로, 상기 발명의 실시 예들은 모바일 사업자의 네트워크에서의 혼잡 탐지 및 완화 방법 및 시스템을 제공한다. 혼잡을 탐지하기 위해서, 상기 시스템은 플로우-바이-플로우(flow-by-flow) 레벨 통계 및 상기 네트워크로부터의 정보를 활용한다. 최적화는 가장 필요로 될 때, 즉, 혼잡과 같은 불리한 네트워크 상태가 피크 로드 시간에 탐지되거나 예상될 때, 및/또는 상기 네트워크의 특정 부분을 사용하는 상기 가입자들에 기초할 때 네트워크의 병목점에서 트리거될 수 있다. 비용을 크게 감소시키고 동일한 자본 설비 베이스에서 더 많은 가입자들에게 서비스를 제공함에도 불구하고, 상기 시스템은 최적화 효율 및 경험의 품질 모두를 최대화 하는 유연한 정책들(예를 들어, time-of-day 기반 최적화), 전체 트랜스코딩 지원, 및 폭넓은 포맷 및 프로토콜 커버리지를 제공한다. 이는, 모든 흐름을 선천적으로 검사하는 것에 의해 불필요한 비용 및 스케일링 난관을 더하는 추가적인 인라인 프록시들을 도입하지 않고 네트워크 트래픽을 선택적으로 모니터링하고 큰 흐름들을 온-디맨드 방식으로 최적화하여 달성될 수 있다. 클라우드-기반 최적화 기술들은, 상기 솔루션의 확장성 및 매우 성공적인 결과들을 보장하고 시간대를 가로질러 “최번시(busy hour)”가 시프트할 수 있는 티어 1 네트워크들을 위한 지역을 가로질러 채택된다. 네트워크 트래픽이 기하급수적으로 성장함에 따라, 더 많은 혼잡 트리거들이 많은 양의 새로운 하드웨어 또는 소프트웨어 라이선스들, 병목점들로 점점 더 많은 목표된 적용 및 상기 네트워크를 건넌 횟수 없이 상기 비디오 폭발을 다루기 위해서 켜질 수 있다.
추가적인 구성 고려사항(ADDITIONAL CONFIGURATION CONSIDERATIONS)
본 명세서 전체에 걸쳐서, 복수의 인스턴스들이 단일 인스턴스로서 설명된 구성요소들, 동작들, 또는 구성들을 구현할 수 있다. 하나 또는 그 이상의 방법들의 개별 동작들이 분리된 동작들로 도시되고 설명되어있더라도, 하나 또는 그 이상의 상기 개별 동작들은 동시에 수행될 수 있고, 상기 동작들이 도시된 순서대로 수행될 필요는 없다. 예시적인 구성들에 있는 분리된 구성요소들로서 나타내어진 구조들 및 기능들은 결합된 구성 또는 구성요소들로서 구현될 수 있다. 유사하게, 단일 구성요소로서 나타내어진 구조들 및 기능들은 분리된 구성요소들로서 구현될 수 있다. 이러한 것들 및 다른 변형들, 변경들, 추가들, 및 보강들은 여기에 있는 목적 범위 내에 있다.
특정 실시 예들은 로직 또는 많은 수의 구성들, 모듈들, 또는 메커니즘들을 포함하는 것으로서 여기서 기술된다. 모듈들은 소프트웨어 모듈들(예를 들어, 컴퓨터-판독 가능한 매체 또는 전송 신호에 포함된 코드) 또는 하드웨어 모듈들 모두를 포함하는 것으로 여겨질 수 있다. 하드웨어 모듈들은 특정 동작을 수행할 수 있는 유형의 유닛이고, 특정 방법으로 배열되거나 구성될 수 있다. 예시 적인 실시 예들에서, 하나 또는 그 이상의 컴퓨터 시스템들(예를 들어, 독립적, 클라이언트 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 또는 그 이상의 하드웨어 모듈들(예를 들어, 프로세서 또는 프로세서들 그룹(102))은 여기에서 설명된 것과 같이 특정 동작을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어에 의해 구성될 수 있다.
다양한 실시 예들에서, 하드웨어 모듈은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어, 하드웨어 모듈은 특정 동작을 수행하도록 영구적으로 구성되는(예를 들어, FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit) 같은 특정-목적 프로세서) 전용 회선 또는 로직을 포함할 수 있다. 하드웨어 모듈은 또한 특정 동작을 수행하도록 하는 소프트웨어에 의해 일시적으로 구성되는 프로그램가능 로직 또는 회로(예를 들어, 범용 프로세서 또는 다른 프로그램가능 프로세서를 망라하는)를 포함할 수도 있다. 하드웨어 모듈을, 전용이며 영구적으로 구성되는 회로, 또는 일시적으로 구성되는 회로(예를 들어, 소프트웨어에 의해 구성)를 통해, 기계적으로 구현하려는 결정은 비용 및 시간 고려에 의해 움직인다는 것을 이해할 수 있을 것이다.
여기에 설명된 예시적인 방법들(예를 들어, 도 4a, 4b, 5, 6, 및 7과 함께 설명된 바와 같은)의 상기 다양한 동작들은, 상기 관련된 동작을 수행하도록 영구적으로 또는 일시적으로 구성(예를 들어, 소프트웨어에 의해)되는, 하나 또는 그 이상의 프로세서들(예를 들어, 프로세서(102))에 의해, 적어도 부분적으로, 수행될 수 있다. 일시적으로 또는 영구적으로 구성되든, 상기 프로세서는 하나 또는 그 이상의 동작들 또는 기능들을 수행하도록 동작하는 프로세서-구현된 모듈이 되는 것으로 여겨질 수 있다. 여기서 참조된 상기 모듈은, 몇몇 예시적인 실시 예들에서, 프로세서-구현된 모듈들을 포함할 수 있다.
데이터 상의 동작들의 기호적 표현들 또는 알고리즘에 관하여 제시된 본 명세서의 몇몇 부분들은 비트 또는 바이너리 디지털 신호로서 기계 메모리(예를 들어, 컴퓨터 메모리(104))에 저장된다. 이러한 알고리즘들 또는 기호적 표현들은 다른 당업자에게 작업의 핵심을 전달하기 위해서 데이터 처리 분야의 당업자에 의해 이용되는 기술들의 예시이다. 여기서 사용되는, “알고리즘(algorithm)”은 일관성 있는 동작 순서 또는 원하는 결과로 이끄는 유사한 과정이다. 이러한 문맥에서, 알고리즘들 및 동작들은 물리량의 물리적 조작을 포함한다. 일반적으로, 하지만 반드시 그런 것 만은 아닌, 상기 수량은 저장, 접속, 전송, 결합, 비교될 수 있고 또는 기기에 의해 조작될 수 있는 전기적, 전자적, 또는 광학적 신호들의 형태를 취할 수 있다. “데이터(data)”, “콘텐츠(content)”, “비트들(bits)”, “값들(values)”, “요소들(elements)”, “기호들(symbols)”, “문자들(characters)”, “용어들(terms)”, “수들(numbers)”, “숫자들(numerals)”, 또는 그 밖의 유사한 것들 것 같은 단어들을 사용하여 상기 신호들을 나타내는 것은, 주로 일반적인 사용에서, 때때로 편리하다. 이러한 단어들은, 그러나, 단지 편리한 라벨들이고, 적절한 물리적 수량들과 연관되어야 한다.
별도로 언급된 경우를 제외하고, 여기서 “처리(processing)”, “컴퓨팅(computing)”, “계산(calculating), “결정, 판단(determining)”, “나타내는(presenting)”, “디스플레이(displaying)”, 또는 그 밖의 유사한 것들과 같은 용어들을 이용한 설명들은, 하나 또는 그 이상의 메모리들(예를 들어, 휘발성 메모리, 비-휘발성 메모리, 또는 이들의 결합), 레지스터들, 또는 정보를 수신, 저장, 전송 또는 표시하는 다른 기계적 구성들 내에서 물리적(예를 들어, 전기적, 자기적, 또는 광학적) 수량으로 나타내어지는 데이터를 조작 또는 변환하는 기기(예를 들어, 컴퓨터)의 행동 및 처리 과정들을 나타낼 수 있다.
여기서 사용된 “일 실시 예” 또는 “실시 예”의 표현은 상기 실시 예와 관련되어 설명된 특정 요소, 특성, 구조, 또는 특징이 적어도 하나의 실시 예에 포함되어 있다는 것을 의미한다. 명세서 곳곳에서 사용된 “일 실시 예에서”라는 문구의 표현은 반드시 모두 동일한 실시 예를 지칭하는 것은 아니다.
몇몇 실시 예들은 “결합된(coupled)” 및 “연결된(connected)”이라는 표현을 그들의 파생어와 함께 이용하여 설명된다. 예를 들어, 몇몇 실시 예들은 둘 또는 그 이상의 요소들이 물리적 또는 전기적으로 직접 접촉되어 있다는 것을 나타내기 위해서 상기 “결합된(coupled)”이라는 용어를 이용하여 설명될 수 있다. 상기 “결합된(coupled)”이라는 용어는, 그러나, 둘 또는 그 이상의 요소들인 서로 직접 접촉되어 있지는 않으나 서로 협력하거나 상호작용한다는 것을 또한 의미할 수 있다. 상기 실시 예들은 이 문맥에서 제한되지는 않는다.
여기서 사용된, “포함하다(comprises)”, “포함하는(comprising)”, “포함하다(includes)”, “포함하는(including)”, “가지다(has)”, “갖는(having)”이라는 용어 또는 이들의 다른 임의의 변형은 비배타적으로 포함함을 커버하는 의도로 사용되었다. 예를 들어, 구성요소들의 리스트를 포함하는 프로세스, 방법, 물품 또는 장치는 반드시 상기 구성요소들에만 제한되지 않으며, 리스트에 언급되지 않은 다른 구성요소들이나 그러한 프로세스, 방법, 물품 또는 장치에 내재된 다른 구성요소들을 포함할 수 있다. 또한, 반대의미로 표현되지 않았다면, “또는(or)”은 포괄적인 의미로 지칭되며 배타적인 “또는” 으로 지칭되는 것이 아니다. 예를 들어, 조건 A 또는 B는 다음 중의 하나를 만족하는 것이다: A는 참이며(또는 존재하며) B는 거짓이다(존재하지 않는다), A는 거짓이며(또는 존재하지 않으며) B는 참이다(또는 존재한다), 및 A와 B 모두 참이다(존재한다).
추가적으로, “하나” 또는 “한”(“a” 또는 “an”)의 사용은 상기 실시 예들의 구성요소들과 컴포넌트들을 설명하기 위해 적용된다. 이것은 단지 편의와 발명의 일반적인 개념을 제공하기 위한 것이다. 이러한 설명은 하나 또는 적어도 하나를 포함하는 것으로 해석되어야 하며, 단일이라는 표현도 명백하게 복수라고 뜻하지 않은 이상 복수를 포함한다.
본 개시를 검토하건대, 당업자라면 본 명세서에 개시된 사상을 통해 HTML 언더레이와 함께 쌍방향 비디오 광고 제공 시스템 및 프로세스를 위해 부가적인 대체 구조와 기능들을 설계할 수 있을 것이다. 그러므로, 특정한 실시 예들과 적용들이 표현되고 설명되었다고 할지라도, 개시된 실시 예들은 본 명세서에 개시된 특정한 구조와 컴포넌트들에 제한되지 않음을 이해될 수 있을 것이다. 당업자라면, 본 명세서에 개시된 방법과 장치의 배치, 동작 및 세부내용들이 청구항에 정의된 사상과 범위를 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 변화가 이루어 질 수 있음을 알 수 있을 것이다.

Claims (24)

  1. 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하는 방법에 있어서,
    기원 서버 및 사용자 장치 사이의 네트워크 데이터 흐름의 시작에 대한 알림을 수신하는 단계에 있어서, 상기 데이터 흐름은 상기 사용자 장치로부터의 미디어 콘텐트에 대한 요청에 응답하여 상기 기원 서버로부터 상기 사용자 장치로 상기 미디어 콘텐트를 전달하기 위한 것인, 상기 알림을 수신하는 단계;
    상기 기원 서버 및 상기 사용자 장치 사이의 상기 데이터 흐름을 모니터링 할지 여부를 결정하는 단계;
    상기 데이터 흐름을 모니터링하기 위한 결정에 응답하여, 상기 데이터 흐름에 대응되는 통계 정보를 수집하는 단계;
    상기 데이터 흐름에 대해 수집된 상기 통계 정보를 데이터베이스 내의 흐름 기록에 저장하는 단계;
    상기 데이터 흐름에 대해 수집된 상기 통계 정보의 분석에 기초하여 상기 서비스 제공자 네트워크의 가입자에게 상기 데이터베이스 내의 상기 흐름 기록을 매핑하는 단계에 있어서, 매핑된 흐름 기록들은 상기 가입자에 대해 종합되는, 상기 흐름 기록을 매핑하는 단계;
    상기 가입자에 대해 종합된 상기 매핑된 흐름 기록들에 기초하여 상기 가입자에게 제공된 이력 대역폭을 결정하는 단계; 및
    상기 가입자에게 제공된 상기 이력 대역폭 및 상기 데이터 흐름에 대해 수집된 상기 통계 정보에 기초하여 상기 기원 서버 및 상기 사용자 장치 사이의 상기 데이터 흐름에 의해 상기 서비스 제공자 네트워크 상에서 소비될 대역폭을 예측하는 단계를 포함하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하는 방법.
  2. 제1항에 있어서, 상기 데이터 흐름을 모니터링 할지 여부를 결정하는 단계는
    상기 데이터 흐름의 상기 미디어 콘텐트가 미리 정해진 사이즈 보다 큰 비디오 또는 이미지들의 전송을 나타내고 있는지 여부를 결정하는 단계를 포함하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하는 방법.
  3. 제1항에 있어서, 상기 데이터 흐름에 대해 수집된 상기 통계 정보는
    상기 흐름의 기간, 전달될 상기 미디어 콘텐트의 사이즈, 지연 및 처리량 중 적어도 하나를 포함하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하는 방법.
  4. 제1항에 있어서, 상기 흐름 기록은,
    사용자 장치 소스 IP 어드레스, 가입자 식별자, 예측된 대역폭, 쿠키 해시들, 흐름 식별자 및 전송된 및 수신된 바이트들 중 적어도 하나를 포함하며,
    상기 흐름 기록은 상기 데이터 흐름의 수명 동안 갱신되는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하는 방법.
  5. 제1항에 있어서, 상기 데이터 흐름에 의해 상기 서비스 제공자 네트워크 상에서 소비될 상기 대역폭을 예측하는 단계는
    상기 흐름 기록으로 전송된 또는 수신된 바이트들에 대한 갱신을 수신하는 단계; 및
    마지막 갱신 이후에 상기 전송된 또는 수신된 바이트들 사이의 차이를 상기 마지막 갱신 이후의 시간의 간격으로 나누어 상기 대역폭을 계산하는 단계를 포함하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하는 방법.
  6. 제1항에 있어서,
    상기 서비스 제공자 네트워크에서 모니터링된 데이터 흐름들의 상기 예측된 대역폭을 합산하는 단계; 및
    상기 모니터링된 데이터 흐름들의 상기 대역폭의 합산을 상기 서비스 제공자 네트워크의 용량과 비교하여 상기 서비스 제공자 네트워크의 혼잡 레벨을 결정하는 단계를 더 포함하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하는 방법.
  7. 제6항에 있어서,
    상기 데이터 흐름에서 전달될 상기 미디어 콘텐트의 사이즈 및 상기 서비스 제공자 네트워크의 상기 혼잡 레벨에 기초하여 상기 데이터 흐름을 최적화 할지 여부를 결정하는 단계; 및
    상기 미디어 콘텐트에 대한 상기 요청을 상기 요청하는 사용자 장치로부터 비디오 최적화기로 리다이렉트하는 단계를 더 포함하며,
    상기 비디오 최적화기는 상기 기원 서버로부터 상기 미디어 콘텐트를 검색하고, 상기 사용자 장치를 위해 상기 미디어 콘텐트를 최적화하며, 상기 최적화된 미디어 콘텐트를 상기 사용자 장치로 전송하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하는 방법.
  8. 제1항에 있어서, 상기 서비스 제공자 네트워크의 상기 데이터베이스 내의 상기 가입자에 대응되는 흐름 기록들을 종합하는 단계는 사용자 장치 소스 IP 어드레스 및 MAC 어드레스, TCP 포트 번호, 및 상기 데이터 흐름들과 연관된 쿠키의 해시들 중 적어도 하나를 매칭하는 단계에 기초하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하는 방법.
  9. 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하기 위한 실행 가능한 컴퓨터 프로그램 명령들을 저장하는 비-일시적인 컴퓨터-판독 가능한 저장 매체에 있어서, 상기 컴퓨터 프로그램 명령들은,
    기원 서버 및 사용자 장치 사이의 네트워크 데이터 흐름의 시작에 대한 알림을 수신하는 단계에 있어서, 상기 데이터 흐름은 상기 사용자 장치로부터의 미디어 콘텐트에 대한 요청에 응답하여 상기 기원 서버로부터 상기 사용자 장치로 상기 미디어 콘텐트를 전달하기 위한 것인, 상기 알림을 수신하는 단계;
    상기 기원 서버 및 상기 사용자 장치 사이의 상기 데이터 흐름을 모니터링 할지 여부를 결정하는 단계;
    상기 데이터 흐름을 모니터링하기 위한 결정에 응답하여, 상기 데이터 흐름에 대응되는 통계 정보를 수집하는 단계;
    상기 데이터 흐름에 대해 수집된 상기 통계 정보를 데이터베이스 내의 흐름 기록에 저장하는 단계;
    상기 데이터 흐름에 대해 수집된 상기 통계 정보의 분석에 기초하여 상기 서비스 제공자 네트워크의 가입자에게 상기 데이터베이스 내의 상기 흐름 기록을 매핑하는 단계에 있어서, 매핑된 흐름 기록들은 상기 가입자에 대해 종합되는, 상기 흐름 기록을 매핑하는 단계;
    상기 가입자에 대해 종합된 상기 매핑된 흐름 기록들에 기초하여 상기 가입자에게 제공된 이력 대역폭을 결정하는 단계; 및
    상기 가입자에게 제공된 상기 이력 대역폭 및 상기 데이터 흐름에 대해 수집된 상기 통계 정보에 기초하여 상기 기원 서버 및 상기 사용자 장치 사이의 상기 데이터 흐름에 의해 상기 서비스 제공자 네트워크 상에서 소비될 대역폭을 예측하는 단계;를 위한 명령들을 포함하는, 비-일시적인 컴퓨터-판독 가능한 저장 매체.
  10. 제9항에 있어서, 상기 데이터 흐름을 모니터링 할지 여부를 결정하는 단계는
    상기 데이터 흐름의 상기 미디어 콘텐트가 미리 정해진 사이즈 보다 큰 비디오 또는 이미지들의 전송을 나타내고 있는지 여부를 결정하는 단계를 포함하는, 비-일시적인 컴퓨터-판독 가능한 저장 매체.
  11. 제9항에 있어서, 상기 데이터 흐름에 대해 수집된 상기 통계 정보는
    상기 흐름의 기간, 전달될 상기 미디어 콘텐트의 사이즈, 지연 및 처리량 중 적어도 하나를 포함하는, 비-일시적인 컴퓨터-판독 가능한 저장 매체.
  12. 제9항에 있어서, 상기 흐름 기록은,
    사용자 장치 소스 IP 어드레스, 가입자 식별자, 예측된 대역폭, 쿠키 해시들, 흐름 식별자, 및 전송된 및 수신된 바이트들 중 적어도 하나를 포함하며,
    상기 흐름 기록은 상기 데이터 흐름의 수명 동안 갱신되는, 비-일시적인 컴퓨터-판독 가능한 저장 매체.
  13. 제9항에 있어서, 상기 데이터 흐름에 의해 상기 서비스 제공자 네트워크 상에서 소비될 상기 대역폭을 예측하는 단계는
    상기 흐름 기록으로 전송된 또는 수신된 바이트들에 대한 갱신을 수신하는 단계; 및
    마지막 갱신 이후에 상기 전송된 또는 수신된 바이트들 사이의 차이를 상기 마지막 갱신 이후의 시간의 간격으로 나누어 상기 대역폭을 계산하는 단계를 포함하는, 비-일시적인 컴퓨터-판독 가능한 저장 매체.
  14. 제9항에 있어서, 상기 컴퓨터 프로그램 명령은
    상기 서비스 제공자 네트워크에서 모니터링된 데이터 흐름들의 상기 예측된 대역폭을 합산하는 단계; 및
    모니터링된 데이터 흐름들의 상기 대역폭의 합산을 상기 서비스 제공자 네트워크의 용량과 비교하여 상기 서비스 제공자 네트워크의 혼잡 레벨을 결정하는 단계;를 위한 명령을 더 포함하는, 비-일시적인 컴퓨터-판독 가능한 저장 매체.
  15. 제14항에 있어서, 상기 컴퓨터 프로그램 명령은
    상기 데이터 흐름에서 전달될 상기 미디어 콘텐트의 사이즈 및 상기 서비스 제공자 네트워크의 상기 혼잡 레벨에 기초하여 상기 데이터 흐름을 최적화 할지 여부를 결정하는 단계; 및
    상기 미디어 콘텐트에 대한 상기 요청을 상기 요청하는 사용자 장치로부터 비디오 최적화기로 리다이렉트하는 단계;를 위한 명령을 더 포함하며,
    상기 비디오 최적화기는 상기 기원 서버로부터 상기 미디어 콘텐트를 검색하고, 상기 사용자 장치를 위해 상기 미디어 콘텐트를 최적화하며, 상기 최적화된 미디어 콘텐트를 상기 사용자 장치로 전송하는, 비-일시적인 컴퓨터-판독 가능한 저장 매체.
  16. 제9항에 있어서, 상기 서비스 제공자 네트워크의 상기 데이터베이스 내의 상기 가입자에 대응되는 흐름 기록들을 종합하는 단계는 사용자 장치 소스 IP 어드레스 및 MAC 어드레스, TCP 포트 번호, 및 상기 데이터 흐름들과 연관된 쿠키의 해시들 중 적어도 하나를 매칭하는 단계에 기초하는, 비-일시적인 컴퓨터-판독 가능한 저장 매체.
  17. 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하기 위한 시스템에 있어서,
    프로세서; 및
    실행 가능한 컴퓨터 프로그램 명령들을 저장하는 비-일시적인 컴퓨터-판독 가능한 저장 매체를 포함하며,
    상기 실행 가능한 컴퓨터 프로그램 명령들은 상기 프로세서에 의해 실행되는 경우,
    기원 서버 및 사용자 장치 사이의 네트워크 데이터 흐름의 시작에 대한 알림을 수신하며, 상기 데이터 흐름은 상기 사용자 장치로부터의 미디어 콘텐트에 대한 요청에 응답하여 상기 기원 서버로부터 상기 사용자 장치로 상기 미디어 콘텐트를 전달하기 위한 것이고;
    상기 기원 서버 및 상기 사용자 장치 사이의 상기 데이터 흐름을 모니터링 할지 여부를 결정하며;
    상기 데이터 흐름을 모니터링하기 위한 결정에 응답하여, 상기 데이터 흐름에 대응되는 통계 정보를 수집하고;
    상기 데이터 흐름에 대해 수집된 상기 통계 정보를 데이터베이스 내의 흐름 기록에 저장하며;
    상기 데이터 흐름에 대해 수집된 상기 통계 정보의 분석에 기초하여 상기 서비스 제공자 네트워크의 가입자에게 상기 데이터베이스 내의 상기 흐름 기록을 매핑하고, 매핑된 흐름 기록들은 상기 가입자에 대해 종합되며;
    상기 가입자에 대해 종합된 상기 매핑된 흐름 기록들에 기초하여 상기 가입자에게 제공된 이력 대역폭을 결정하고; 그리고
    상기 가입자에게 제공된 상기 이력 대역폭 및 상기 데이터 흐름에 대해 수집된 상기 통계 정보에 기초하여 상기 기원 서버 및 상기 사용자 장치 사이의 상기 데이터 흐름에 의해 상기 서비스 제공자 네트워크 상에서 소비될 대역폭을 예측하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하기 위한 시스템.
  18. 제17항에 있어서, 상기 시스템은
    상기 데이터 흐름을 수신 및 포워딩하는 인라인 네트워크 요소로서 상기 데이터 흐름의 통계 정보를 수집하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하기 위한 시스템.
  19. 제17항에 있어서, 상기 시스템은
    상기 데이터 흐름에 대해 수집된 통계 정보에 기초하여 상기 데이터 흐름을 모니터링하기 위한 결정에 응답하여 인라인 네트워크 요소로부터 상기 데이터 흐름을 수집 수신하고,
    상기 인라인 네트워크 요소는 상기 데이터 흐름을 모니터링하기 위한 상기 결정에 응답하여 처리를 위한 상기 데이터 흐름을 포워딩하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하기 위한 시스템.
  20. 제17항에 있어서, 상기 실행 가능한 컴퓨터 프로그램 명령들은
    상기 서비스 제공자 네트워크에서 모니터링된 데이터 흐름들의 상기 예측된 대역폭을 합산; 및
    상기 모니터링된 데이터 흐름들의 상기 대역폭의 합산을 상기 서비스 제공자 네트워크의 용량과 비교하여 상기 서비스 제공자 네트워크의 혼잡 레벨을 결정;하기 위한 명령들을 더 포함하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하기 위한 시스템.
  21. 제20항에 있어서, 상기 실행 가능한 컴퓨터 프로그램 명령들은
    상기 데이터 흐름 내의 상기 미디어 콘텐트의 사이즈 및 상기 서비스 제공자 네트워크의 상기 혼잡 레벨에 기초하여 상기 데이터 흐름을 최적화 할지 여부를 결정; 및
    상기 미디어 콘텐트에 대한 상기 요청을 상기 요청하는 사용자 장치로부터 비디오 최적화기로 리다이렉트;하기 위한 명령들을 더 포함하며,
    상기 비디오 최적화기는 상기 기원 서버로부터 상기 미디어 콘텐트를 검색하고, 상기 사용자 장치를 위해 상기 미디어 콘텐트를 최적화하며, 상기 최적화된 미디어 콘텐트를 상기 사용자 장치로 전송하는, 서비스 제공자 네트워크에서 트래픽을 선택적으로 모니터링하기 위한 시스템.
  22. 삭제
  23. 삭제
  24. 삭제
KR1020147036908A 2012-06-01 2013-06-03 온-디맨드 어플라이언스를 이용한 리얼-타임 네트워크 모니터링 및 가입자 식별 KR101578473B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261654689P 2012-06-01 2012-06-01
US61/654,689 2012-06-01
US201261745391P 2012-12-21 2012-12-21
US61/745,391 2012-12-21
US13/907,847 US8792347B2 (en) 2012-06-01 2013-05-31 Real-time network monitoring and subscriber identification with an on-demand appliance
US13/907,847 2013-05-31
PCT/US2013/043873 WO2013181654A1 (en) 2012-06-01 2013-06-03 Real-time network monitoring and subscriber identification with an on-demand appliance

Publications (2)

Publication Number Publication Date
KR20150032541A KR20150032541A (ko) 2015-03-26
KR101578473B1 true KR101578473B1 (ko) 2015-12-17

Family

ID=49673952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147036908A KR101578473B1 (ko) 2012-06-01 2013-06-03 온-디맨드 어플라이언스를 이용한 리얼-타임 네트워크 모니터링 및 가입자 식별

Country Status (6)

Country Link
US (2) US8792347B2 (ko)
EP (1) EP2856710B1 (ko)
KR (1) KR101578473B1 (ko)
CN (1) CN104488231B (ko)
RU (1) RU2585971C1 (ko)
WO (1) WO2013181654A1 (ko)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7992097B2 (en) 2006-12-22 2011-08-02 Apple Inc. Select drag and drop operations on video thumbnails across clip boundaries
US8943410B2 (en) 2006-12-22 2015-01-27 Apple Inc. Modified media presentation during scrubbing
US8020100B2 (en) 2006-12-22 2011-09-13 Apple Inc. Fast creation of video segments
US9264664B2 (en) * 2010-12-03 2016-02-16 Intouch Technologies, Inc. Systems and methods for dynamic bandwidth allocation
CN107967115A (zh) * 2011-12-31 2018-04-27 诺基亚技术有限公司 使元素被显示
EP2830275A1 (en) * 2013-07-23 2015-01-28 Thomson Licensing Method of identification of multimedia flows and corresponding apparatus
US9680916B2 (en) * 2013-08-01 2017-06-13 Flowtraq, Inc. Methods and systems for distribution and retrieval of network traffic records
US10601654B2 (en) 2013-10-21 2020-03-24 Nyansa, Inc. System and method for observing and controlling a programmable network using a remote network manager
CN103561283A (zh) * 2013-10-30 2014-02-05 乐视致新电子科技(天津)有限公司 一种智能电视的码率切换方法及装置
US10043137B1 (en) 2014-01-06 2018-08-07 Nuu:Bit, Inc. Dynamically optimized transport system
US9479947B2 (en) * 2014-02-18 2016-10-25 Verizon Patent And Licensing Inc. Network data optimization
US20150271044A1 (en) * 2014-03-24 2015-09-24 International Business Machines Corporation Browser response optimization
EP3618358B1 (en) 2014-04-22 2024-05-29 Orckit IP, LLC A method for deep packet inspection in software defined networks
US9537743B2 (en) * 2014-04-25 2017-01-03 International Business Machines Corporation Maximizing storage controller bandwidth utilization in heterogeneous storage area networks
US9413560B2 (en) * 2014-05-15 2016-08-09 Cisco Technology, Inc. Differentiated quality of service using security as a service
US9300538B2 (en) * 2014-07-10 2016-03-29 Cisco Technology, Inc. On-demand bandwidth provisioning in a network environment
GB2532032B (en) 2014-11-05 2017-10-25 Openwave Mobility Inc Congestion monitoring
US20160134545A1 (en) * 2014-11-12 2016-05-12 Ari Sodhi System and method for delivering subscriber services
US9930548B2 (en) * 2014-12-01 2018-03-27 Verizon Patent And Licensing Inc. Identification of wireless communication congestion
CN107211310B (zh) * 2014-12-15 2020-08-18 诺基亚通信公司 用于通信中的测量协调的方法和装置
JP6572245B2 (ja) * 2015-02-04 2019-09-04 日本電信電話株式会社 体感品質最適化システム、体感品質最適化装置、レコメンド要求装置、体感品質最適化方法、レコメンド要求方法及びプログラム
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
CN107409098A (zh) * 2015-02-27 2017-11-28 日本电气株式会社 控制设备、业务控制方法及记录有计算机程序的记录介质
US10455291B2 (en) * 2015-03-20 2019-10-22 Twitter, Inc. Live video stream sharing
EP3266157A4 (en) * 2015-05-12 2018-12-05 Hewlett Packard Enterprise Development LP Server discrete side information
US20160344791A1 (en) * 2015-05-20 2016-11-24 Microsoft Technology Limited, Llc Network node bandwidth management
US10652779B2 (en) * 2015-05-26 2020-05-12 Nec Corporation Method for providing congestion information in a network
US10530824B2 (en) 2015-09-25 2020-01-07 Microsoft Technology Licensing, Llc Real-time end-to-end latency monitoring
US9942253B2 (en) 2016-01-15 2018-04-10 Kentlik Technologies, Inc. Network monitoring, detection, and analysis system
US10462520B2 (en) * 2016-02-25 2019-10-29 Nippon Telegraph And Telephone Corporation Pacing control device, pacing control method, and program
US10225309B1 (en) 2016-03-22 2019-03-05 Amazon Technologies, Inc. Monitoring of media pipeline health using tracing
US10200428B1 (en) 2016-03-30 2019-02-05 Amazon Technologies, Inc. Unicast routing of a media stream to subscribers
US10193741B2 (en) 2016-04-18 2019-01-29 Nyansa, Inc. System and method for network incident identification and analysis
US10200267B2 (en) * 2016-04-18 2019-02-05 Nyansa, Inc. System and method for client network congestion detection, analysis, and management
WO2017184627A2 (en) * 2016-04-18 2017-10-26 Nyansa, Inc. A system and method for network incident identification, congestion detection, analysis, and management
US10230609B2 (en) 2016-04-18 2019-03-12 Nyansa, Inc. System and method for using real-time packet data to detect and manage network issues
WO2017184346A1 (en) * 2016-04-20 2017-10-26 Vasona Networks Inc. Maximum sustainable encoding bit rates for video downloads
US10958695B2 (en) * 2016-06-21 2021-03-23 Google Llc Methods, systems, and media for recommending content based on network conditions
US20180019952A1 (en) * 2016-07-14 2018-01-18 Futurewei Technologies, Inc. Method to Provide High Throughput Transport by IP Network Channel Associated Signaling System
JP6433951B2 (ja) * 2016-08-09 2018-12-05 東芝デジタルソリューションズ株式会社 ネットワーク監視装置およびプログラム
US10425667B2 (en) * 2016-10-03 2019-09-24 Cisco Technology, Inc. Network layer transport of video characteristics for use by network function in a service function chain
US10827211B2 (en) * 2016-10-10 2020-11-03 At&T Intellectual Property I, L.P. Method and apparatus for managing over-the-top video rate
WO2018072060A1 (en) 2016-10-17 2018-04-26 Google Llc Machine learning based identification of broken network connections
TWI641251B (zh) * 2016-11-18 2018-11-11 財團法人工業技術研究院 網路流量監控方法與系統
KR101937247B1 (ko) * 2016-12-28 2019-01-14 네이버 주식회사 실시간 라이브 환경에서 버퍼 기반 대역폭 측정 및 적응형 데이터 전송을 위한 방법 및 시스템
CN108419103B (zh) * 2017-02-09 2020-01-17 杭州海康威视数字技术股份有限公司 一种视频传输方法及装置
US10608930B2 (en) * 2017-05-23 2020-03-31 Cisco Technology, Inc. Network statistics estimation and prediction
RU2675785C2 (ru) * 2017-06-08 2018-12-25 Общество с ограниченной ответственностью "КВАНТУМ А РУС" Способ уведомления абонента в сетях сотовой связи и устройство для его осуществления
WO2018232746A1 (zh) * 2017-06-23 2018-12-27 上海诺基亚贝尔股份有限公司 用于边缘云中的资源管理的方法和装置
US20200175535A1 (en) * 2017-07-07 2020-06-04 Alibaba Group Holding Limited System and method for traffic control in online platform
CN107809648B (zh) * 2017-11-07 2020-01-07 江苏长天智远交通科技有限公司 基于带宽检测的平台级视频流自适应平滑播放方法及系统
US10666494B2 (en) 2017-11-10 2020-05-26 Nyansa, Inc. System and method for network incident remediation recommendations
KR101996044B1 (ko) * 2017-11-27 2019-07-03 (주) 시스메이트 암호화 트래픽의 네트워크 포렌식 서비스 제공을 위한 icap 프로토콜 확장 방법과 이를 지원하는 네트워크 포렌식 장치 및 웹 프락시
JP6885351B2 (ja) * 2018-02-02 2021-06-16 日本電信電話株式会社 品質予測装置、品質予測方法及びプログラム
CN110149299B (zh) * 2018-02-13 2022-06-21 中兴通讯股份有限公司 一种视频优化方法、装置和系统、终端和网络设备
US10848553B2 (en) * 2018-04-16 2020-11-24 Infrared5, Inc. System and method for real-time secure multimedia streaming over a decentralized network
CN108712307B (zh) * 2018-05-11 2021-01-29 北京奇虎科技有限公司 一种基于区块链的带宽能力计算方法及装置
US10545677B2 (en) * 2018-06-18 2020-01-28 Microsoft Technology Licensing, Llc Volatile account identification and isolation and resource management in distributed data storage systems
US10693575B2 (en) 2018-08-31 2020-06-23 At&T Intellectual Property I, L.P. System and method for throughput prediction for cellular networks
US10868726B2 (en) 2018-12-07 2020-12-15 At&T Intellectual Property I, L.P. Apparatus and method for selecting a bandwidth prediction source
US11490149B2 (en) 2019-03-15 2022-11-01 At&T Intellectual Property I, L.P. Cap-based client-network interaction for improved streaming experience
CN110139124B (zh) * 2019-03-25 2021-10-08 视联动力信息技术股份有限公司 一种监控录制的处理方法和装置
US11373108B2 (en) * 2019-07-10 2022-06-28 Microsoft Technology Licensing, Llc Reinforcement learning in real-time communications
RU2731437C1 (ru) * 2019-07-29 2020-09-02 Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации Способ, устройство и система для оптимизации разбалансированной транспортной сети связи
US11411884B2 (en) * 2019-11-13 2022-08-09 Amdocs Development Limited Multiple network controller system, method, and computer program for providing enhanced network service
JP2021185652A (ja) * 2020-05-25 2021-12-09 日本電気株式会社 パケット伝送システム、伝送装置、伝送経路切替方法及び伝送経路切替プログラム
US11445168B1 (en) * 2020-09-30 2022-09-13 Amazon Technologies, Inc. Content-adaptive video sampling for cost-effective quality monitoring
US20220407897A1 (en) * 2021-06-22 2022-12-22 Dish Wireless L.L.C. Systems and methods for performing automatic session control function change over
US20240073151A1 (en) * 2022-08-23 2024-02-29 Mellanox Technologies, Ltd. Mice-elephant aware shared buffer schema

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080273591A1 (en) * 2007-05-04 2008-11-06 Brooks Paul D Methods and apparatus for predictive capacity allocation
US20100017439A1 (en) * 2008-07-18 2010-01-21 Shu-Fan Chen Multimedia Data Streaming System and Method Thereof

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6147970A (en) * 1997-09-30 2000-11-14 Gte Internetworking Incorporated Quality of service management for aggregated flows in a network system
US6862622B2 (en) * 1998-07-10 2005-03-01 Van Drebbel Mariner Llc Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture
US6529515B1 (en) * 1999-09-30 2003-03-04 Lucent Technologies, Inc. Method and apparatus for efficient network management using an active network mechanism
US6643259B1 (en) * 1999-11-12 2003-11-04 3Com Corporation Method for optimizing data transfer in a data network
US6694310B1 (en) * 2000-01-21 2004-02-17 Oracle International Corporation Data flow plan optimizer
US7499453B2 (en) * 2000-05-19 2009-03-03 Cisco Technology, Inc. Apparatus and methods for incorporating bandwidth forecasting and dynamic bandwidth allocation into a broadband communication system
US6845106B2 (en) * 2000-05-19 2005-01-18 Scientific Atlanta, Inc. Allocating access across a shared communications medium
US7415038B2 (en) 2001-03-29 2008-08-19 International Business Machines Corporation Method and system for network management providing access to application bandwidth usage calculations
US7257640B1 (en) * 2002-04-16 2007-08-14 At&T Corp. System and method for bandwidth monitoring and allocation in networks
US7443803B2 (en) * 2004-03-23 2008-10-28 Fujitsu Limited Estimating and managing network traffic
US7966391B2 (en) 2004-05-11 2011-06-21 Todd J. Anderson Systems, apparatus and methods for managing networking devices
US8073968B1 (en) * 2004-11-03 2011-12-06 Cisco Technology, Inc. Method and apparatus for automatically optimizing routing operations at the edge of a network
US7979368B2 (en) 2005-07-01 2011-07-12 Crossbeam Systems, Inc. Systems and methods for processing data flows
US7519026B1 (en) * 2005-07-26 2009-04-14 Sprint Spectrum L.P. Communication type and congestion based switching of air interface protocols
KR100747100B1 (ko) 2006-01-20 2007-08-09 강원대학교산학협력단 홈 게이트웨이 제어 장치 및 그 방법
EP1944922A1 (en) 2007-01-10 2008-07-16 Alcatel Lucent Method of providing QoS
US8068416B2 (en) * 2007-09-20 2011-11-29 At&T Intellectual Property I, L.P. System and method of communicating a media stream
US8374102B2 (en) * 2007-10-02 2013-02-12 Tellabs Communications Canada, Ltd. Intelligent collection and management of flow statistics
US9124642B2 (en) 2009-10-16 2015-09-01 Qualcomm Incorporated Adaptively streaming multimedia
US20110161836A1 (en) 2009-12-31 2011-06-30 Ruicao Mu System for processing and synchronizing large scale video conferencing and document sharing
US8335160B2 (en) * 2010-03-30 2012-12-18 Telefonaktiebolaget L M Ericsson (Publ) Flow sampling with top talkers
US9420055B2 (en) 2010-05-13 2016-08-16 Futurewei Technologies, Inc. System, apparatus for content delivery for internet traffic and methods thereof
US8364812B2 (en) * 2010-08-27 2013-01-29 Sandvine Incorporated Ulc Method and system for network data flow management
JP5830543B2 (ja) * 2010-11-10 2015-12-09 エヌイーシー ヨーロッパ リミテッドNec Europe Ltd. 輻輳公開対応ネットワークで輻輳管理をサポートする方法
US9088510B2 (en) * 2010-12-17 2015-07-21 Microsoft Technology Licensing, Llc Universal rate control mechanism with parameter adaptation for real-time communication applications
US9026644B2 (en) * 2011-03-10 2015-05-05 Verizon Patent And Licensing Inc. Anomaly detection and identification using traffic steering and real-time analytics
US8451733B2 (en) * 2011-08-08 2013-05-28 Amtran Technology Co., Ltd Methods of optimizing scanning parameters for a plurality of channels in a wireless band
US20130086279A1 (en) * 2011-09-29 2013-04-04 Avvasi Inc. Systems and methods for media service delivery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080273591A1 (en) * 2007-05-04 2008-11-06 Brooks Paul D Methods and apparatus for predictive capacity allocation
US20100017439A1 (en) * 2008-07-18 2010-01-21 Shu-Fan Chen Multimedia Data Streaming System and Method Thereof

Also Published As

Publication number Publication date
RU2585971C1 (ru) 2016-06-10
CN104488231A (zh) 2015-04-01
EP2856710A1 (en) 2015-04-08
WO2013181654A1 (en) 2013-12-05
US9331944B2 (en) 2016-05-03
US8792347B2 (en) 2014-07-29
KR20150032541A (ko) 2015-03-26
CN104488231B (zh) 2017-06-16
EP2856710B1 (en) 2018-01-10
US20140254380A1 (en) 2014-09-11
US20130322242A1 (en) 2013-12-05
EP2856710A4 (en) 2016-03-02

Similar Documents

Publication Publication Date Title
KR101578473B1 (ko) 온-디맨드 어플라이언스를 이용한 리얼-타임 네트워크 모니터링 및 가입자 식별
EP2530870B1 (en) Systems and methods for measuring quality of experience for media streaming
US9794152B2 (en) Systems and methods for performing localized server-side monitoring in a content delivery network
Alcock et al. Application flow control in YouTube video streams
US7561517B2 (en) Passive route control of data networks
EP2661020B1 (en) Adaptive monitoring of telecommunications networks
US10616314B1 (en) Dynamic source routing for data transfer
US11570107B2 (en) Method and system for triggering augmented data collection on a network device based on traffic patterns
Petrangeli et al. Software‐defined network‐based prioritization to avoid video freezes in HTTP adaptive streaming
Madanapalli et al. Real-time detection, isolation and monitoring of elephant flows using commodity SDN system
CN110771122A (zh) 使内容传送网络能够处理非预期流量激增的方法和网络节点
US20150105043A1 (en) Pro-Active Mobile Network Data Usage Alert System
Zhang et al. Measurement of a large-scale short-video service over mobile and wireless networks
Deng et al. QoE-oriented rate allocation for multipath high-definition video streaming over heterogeneous wireless access networks
CA2742038C (en) Systems and methods for measuring quality of experience for media streaming
EP3580892B1 (en) Transport layer monitoring and performance assessment for ott services
Cui et al. MM-ABR: an Enhanced ABR Algorithm with Multi-Metric Information for QUIC-based Video Streaming
US20230403434A1 (en) Streaming service rating determination
JP5836425B2 (ja) 評価装置、評価方法および通信システム

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
FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 4