JP2018507660A - デジタルコンテンツのアダプティブ仮想ブロードキャスティングのための方法およびシステム - Google Patents

デジタルコンテンツのアダプティブ仮想ブロードキャスティングのための方法およびシステム Download PDF

Info

Publication number
JP2018507660A
JP2018507660A JP2017552535A JP2017552535A JP2018507660A JP 2018507660 A JP2018507660 A JP 2018507660A JP 2017552535 A JP2017552535 A JP 2017552535A JP 2017552535 A JP2017552535 A JP 2017552535A JP 2018507660 A JP2018507660 A JP 2018507660A
Authority
JP
Japan
Prior art keywords
nodes
asn
node
video
virtual broadcast
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2017552535A
Other languages
English (en)
Other versions
JP6612355B2 (ja
JP2018507660A5 (ja
Inventor
マティアス・バーグストロム
Original Assignee
システム73・インコーポレイテッド
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 システム73・インコーポレイテッド filed Critical システム73・インコーポレイテッド
Publication of JP2018507660A publication Critical patent/JP2018507660A/ja
Publication of JP2018507660A5 publication Critical patent/JP2018507660A5/ja
Application granted granted Critical
Publication of JP6612355B2 publication Critical patent/JP6612355B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1877Measures taken prior to transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1886Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • 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
    • 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
    • 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/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • H04L45/3065Route determination based on the nature of the carried application for real time traffic
    • 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/2416Real-time traffic
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • 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
    • H04L47/127Avoiding congestion; Recovering from congestion by using congestion prediction

Landscapes

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

Abstract

本発明の仮想ブロードキャストシステムは、下層のネットワーク内での構成要素の相互接続における頻繁に変化する輻輳レベルの予想に基づき動的に再構成されるオーバーレイネットワークに沿ったノード間でのデジタルコンテンツのルーティングを最適化する。多数の同時ユーザーに対してインターネットを介してストリーミングビデオを配信する状況で、本発明は、ディープラーニング技術を使用して、これらのASNピアリングポイントを経由する輻輳レベルを予想し、これらの予想に基づき、動的に再構成されるオーバーレイネットワークに沿ったビデオコンテンツのルーティングを最適化することで、輻輳したASNピアリングポイントの限られた容量を効率的に使用する。仮想ブロードキャストシステムは、予定されていないならびに予定されたイベントを取り扱い、ライブでならびに事前録画されたイベントをストリーミングし、多数の同時視聴者の間で一貫したQoEを維持する高いスケーラブルを有する態様で、最小の遅延を伴うリアルタイムにこれらのイベントをストリーミングする。【選択図】図1

Description

関連出願の相互参照
この出願は、2014年12月26日に出願されたシリアル番号62/096,938の米国仮出願に基づく優先権を主張し、それの開示内容は、参照によりその全内容が本明細書に完全に記載されているものとして組み入れられる。
本発明は、概して、下層ネットワークのノード間でデジタルコンテンツを伝達するオーバーレイネットワークアーキテクチャに関し、より詳細には、下層ネットワーク内での構成要素の相互接続における、頻繁に変化する輻輳のレベルの予想に基づき動的に再構成されたオーバーレイネットワークに沿ったノード間でのデジタルコンテンツのルーティングを最適化する仮想ブロードキャストシステムに関する。
関連技術の説明
ネットワーク輻輳
有線および無線ネットワークのトラフィックは飛躍的に拡大し続けているため、ネットワーク内の構成要素間の共有リンクあるいは相互接続の有限の容量は、よりますます現実的な課題に直結し、問題を起こしている。さらに、ネットワークのトラフィックの増減に応じて、これらの共有リンクにおける輻輳のレベルは動的となり、大きな変動性を伴うため、かかる輻輳をどのようなときにでも測定することは難しく、短期的であっても予測することは特に難しい。
この問題は、人口が増加している地域における共有道路と高速道路での交差点での交通渋滞の問題にいくらか類似している。既存のGPSナビゲーションや交通制御システムは、これらの交差点における現在の渋滞を測定して、個々の運転手がこのような渋滞を回避するための最適な経路を計算するが、特定の運転手のために事前に最適な経路を予想するそれらの能力は、交通渋滞の動的な性質により阻まれる。
ネットフリックスのような単一の企業がピーク時のインターネットトラフィックの3分の1を占める場合には、インターネットを介してデジタル情報(特に大量のリニアデータ)を同時に配信する企業は、インターネットの輻輳のますます変動する性質になにかしら対応しなければならない。同様に、モバイル音声やデータ使用が増加するにつれて、規制されたRFスペクトルの限られた可用性は、高帯域のモバイルアプリケーションを開発する企業にとって特に懸念される。
多数の同時ユーザーに対してインターネットを介してストリーミングビデオを配信する状況において、本発明の特定の応用がここに説明されるが、ネットワークの構成要素間の共有リンクの容量の制限が、デジタルフォーマット(例えば、音声、画像、三次元模型等)に変換されるいかなる形式の情報のルーティングを制約する、他の多くの状況に対して、本発明の原理を等しく適応できる。本発明の他の潜在的な用途には、例えばVoIP、企業のビデオ会議、仮想現実、マルチプレーヤーゲーミングおよび様々な他の帯域幅を必要とするアプリケーション(任意の特定の時点で、下層ネットワーク内の共有リンクの輻輳のレベルに関して)が含まれる。
以下でより詳細に説明するように、本発明は、インターネットのような下層ネットワーク内での構成要素のリンクにおける制限された容量あるいは「ネットワーク輻輳」の問題を「治す」のではなく、代わりに、それらのリンク間のネットワークトラフィックを監視して分析することで、制限された容量を効率的に使用し、それらのリンクの輻輳レベルの予想に基づき動的に再構成されたオーバーレイネットワークのノード間でのデジタルコンテンツのルーティングを最適化する。
ビデオストリーミングイベント
インターネットおよびIPに基づくルーティングの出現以来、インターネットを介してビデオをストリーミングする多くのアプローチが現れた。相対的な長所および短所を議論する前に、一歩離れて、対処する問題を検討することが有用である。インターネットを介してビデオコンテンツを配信するには、それをキャプチャーしてデジタル化する必要がある。我々は、「ライブ」でキャプチャーされて(あるいは、デジタル的に生成されて)インターネットを介して配信された「イベント」としてビデオコンテンツを特徴付けることができる。ここで、ビデオイベントには、ビデオおよび音声の両方ならびに関連するメタデータのキャプチャーおよび生成を含む。
ビデオイベントは予定されていても、予定されていなくてもよい。例えば「スーパーボール」は、それが発生する時間が予め分かっているという点で、予定されたイベントであるのに対して、他のイベント(例えば、自然災害、幼児の第一歩あるいはビデオオンデマンド−「VOD」)は、事前の兆候がほとんどあるいは全く無く発生する点で、予定されていない。
他の形式のファイルが(例えば、FTPあるいはファイル転送プロトコルを介して)転送されたときに、ビデオコンテンツは、インターネットを介して配信される前に、デジタル化されたビデオを生成するために全体としてキャプチャーされてもよい。しかしながら、このような「ファイル転送」アプローチは、受信者のビデオコンテンツの視聴(再生)に遅延を強いる。すなわち、受信者は、ビデオコンテンツの視聴の前に、ファイル全体が転送されるのを待たなければならない。デジタル化されたビデオのファイルサイズが比較的大きい場合には、この遅延は重要な意味を持ちうる。
そのため、ビデオコンテンツはしばしばユーザーに「ストリーミング」され、コンテンツの送信中に、ユーザーはコンテンツを継続的に受信して視聴することができる。基本的に、受信に伴ってそれらの視聴を開始できるユーザーに配信される「ビデオセグメント」(長さが1〜10秒)あるいは小さいファイルの順序付けられた直線的な流れに、ビデオコンテンツは分割される。遅延あるいはジッターのないビデオコンテンツの連続的なストリーミングを視聴するためには、各ビデオセグメントは、一定間隔、例えば1秒あたり30フレーム(fps)で再生されなければならない。ただし、先のセグメントの再生が終わる前に各セグメントが受信されるならば、ビデオセグメントが一定間隔で受信される必要はない。
イベントが予定されるか予定されないかにかかわらず、イベント発生後の任意の時間にストリーミングするために、「ライブ」(すなわち、イベント発生時)あるいは「事前録画」でストリーミングできる。例えば、スーパーボールは、イベント発生時にキャプチャーされてライブでストリーミングされ、あるいは後のストリーミングのために事前録画される。
最終的に、イベントが予定されているか予定されていないかにかかわらず、また、事前録画されたか発生時にライブでストリーミングされているかにかかわらず、(送信者から受信者へのほぼ感知できない遅延を伴った)「リアルタイム」で、あるいは数秒または数分もの間「遅れて」ストリーミングすることができる。例えば、リアルタイムではなくインターネットを介してストリーミングされるテレビ番組(例えば、野球ゲーム)の視聴者は、互いに異なる時間、あるいはケーブルまたは衛星を介して放送された同じ番組を観る視聴者と異なる時間に、ストリーミングされたイベントを経験するかもしれない。ネットワーク中心のメトリック(例えば、ルーターや他のネットワーク資源に起因したパケット遅延、パケット損失あるいはジッター)に基づくパフォーマンスの尺度である「サービスの質」(QoS)とは対照的な、ユーザーの「経験の質」(QoE)、すなわちユーザー中心あるいはアプリケーションレベルの品質観を、かかる遅延(特に数秒以上の場合)は減少させるかもしれない。
例えば、視聴者が同じイベントを異なる時間に経験するという事実のため、(ジッターやビデオアーティファクトは完全に別として)、視聴者間の社会的交流は制限されるかもしれない。ブロードキャストラジオあるいはテレビからソーシャルメディアや他のインターネットサービスに至るまで、携帯電話やデスクトップおよびラップトップコンピューターを介して、ならびに絶えず進化する消費者電子機器の分野を介してアクセス可能であり、非常に多くの異なる方法で、(予定されたあるいは予定されていない)非常に多くのイベントがリアルタイムで通信される今日では、これは特に問題となる。
そのため、一貫したQoEを視聴者に提供するためには、予定されていないおよび予定されたイベントを扱い、ライブあるいは事前録画のイベントをストリーミングし、および最小の遅延でリアルタイムにこれらのイベントをストリーミングすることが、ビデオストリーミングシステムにとっては望ましい。さらに、ストリーミングビデオイベントの同時視聴者の数が増大すると、一貫したQoEを維持することは厄介な問題となる。そのため、スケーラビリティは、このようなシステムの重要な設計目標となる。
ビデオストリーミング技術の近年の進歩にもかかわらず、インターネットの基盤のその場その場の歴史的な進化は、いまだにインターネットに基づくビデオストリーミングに重大な障害をもたらし、それらのうち重要なのは、QoSの非一貫性であり、インターネットにおける時間および場所で、予測困難なネットワーク輻輳をもたらす。本発明の重要な目的は、ストリーミングビデオイベントの視聴者にとって一貫したQoEを維持することであるが、結局のところ排除できないインターネットでのネットワーク輻輳によって、この目的は制約される。
下層インターネットアーキテクチャ
ARPANET(インターネットプロトコルスイートあるいはTCP/IPを実行する最も初期のパケットスイッチングネットワーク)に始まり、より後のNSFNETでは、インターネットの「バックボーン」は、制御を分散化して所望の目的地に情報を到達させるための代替の通信(ルーティング)経路を提供することで、信頼性あるいは「復元力」を提供する冗長な「ネットワークのネットワーク」(すなわち、インターネット)に設計されている。しかしながら、ルーターおよび他の共有ネットワーク資源の間の異なる経路を進むパケットについて、一貫性のあるQoSあるいはQoEをインターネットにおいて維持することは、極めて難しい問題のままである。
インターネットのバックボーンが進化して民営化されると、伝統的なバックボーンネットワークと長距離電話会社により所有されるそれらの間で、冗長性と重複が生じた。顧客に直接、あるいは他のより小規模な「インターネットサービスプロバイダー」(ISP)ネットワークを介してデータを提供する大規模な「パブリック」ネットワークと、それら自身の間でのみデータを通信し、あるいは大規模なISPの間でのコンジットとして機能し、顧客に直接はデータを提供しない大規模な「プライベート」バックボーンネットワークとを、この明細書の目的のために区別する。いずれの場合でも、これら大規模なパブリックおよびプライベートネットワークは、複数の光ファイバーケーブルを束ねてネットワーク容量を増大させる光ファイバー幹線を介して相互に接続される「ファイバーリング」として一般に実装される。
ルーティングの目的のために、最も重いネットワークトラフィック(例えば、大規模ISPおよびプライベートバックボーンネットワーク)を伝送する最も大規模なネットワークプロバイダーには、「自律システム」(AS)として知られているIPルーティングプレフィックスのブロックが割り当てられ、それぞれには「自律システム番号」(ASN)が割り当てられる。これらの企業が所有する大規模なファイバーリングのそれぞれをASNと称する。近年ASNの数は、15年前の約5000のASNから現在の世界中の50,000を超えるASNにまで飛躍的に増加している。上述したように、多くの大規模ネットワークプロバイダーは、顧客へのサービスは行わないもののそれらが所有する「パブリックASN」あるいは他が所有するそれに接続されうるバックボーンファイバーリングネットワーク(すなわち、プライベートASN)も所有している。
異なる企業がASNを所有するため、彼らは、ASNおよびグローバルインターネット全体を通じたインターネットトラフィックのルーティンを容易にするために、互いに契約を結ぶ。各ASNは、他のASNのアクセスを制御するために、しばしば「ピアリングポイント」と称される一群のルーターを利用し、ボーダーゲートウェイプロトコルあるいはBGPとして知られるルーティングプロトコルを採用する。任意のASNは、複数の異なるASNに接続するために、複数のピアリングポイントを採用する。相互接続されたASNは地理的に隣接していても遠く離れていてもよく、(例えば、国あるは海を跨いで)長距離に渡る長いファイバー幹を介して接続される。パブリックASNは、「プライベートASN」あるいはバックボーンネットワークを介してもまた接続されてもよい。
ASN内およびASN間でQoSを監視することは極めて難しい。大規模ネットワークプロバイダーは、自社のASN(動的輻輳メトリックを含む)内のルーティングおよびパフォーマンスの情報の多くをプロプライエタリとして保持する。TCP/IPのBGPへの接続が確立されると、(現行のBPGバージョン4の)「オープンメッセージフォーマット」は特定の情報の「データダンプ」を提供するが、このメカニズムは現実的な問題としてあまり有用でない。多くのBGPルーターがオープンメッセージフォーマットをサポートしておらず、他は単純にそれを消す。情報は通常5分古く、インターネットにおいて輻輳レベルが変化する頻度を考えると、それは比較的長い時間である。
このような大量のインターネットトラフィックは、ASNを相互に接続する比較的高帯域幅のピアリングポイントを横断して流れるため、ASN内の「ラストマイル」問題(すなわち、エンドユーザーと彼らの「ゲートウェイ」ISPとの間の比較的低帯域幅の有線および無線の接続における輻輳)とは別に、これらのピアリングポイントは、どんなときにおいても、しばしば重要な「ボトルネック」あるいはインターネットでの輻輳の多くのソースとなる。
例えば、ASNピアリングポイントを横断するトラフィックロードが増大すると、ピアリングポイントの各側のASNのルーターが輻輳を起こす。換言すれば、RAM、CPUおよび他の容量の限られた共有資源の高い利用率を経験する。これらの資源に対する要求の増大は、これらのピアリングポイントを横断するパフォーマンス(例えば、ビットレート)を低下させ、結果的にデータパケットの損失を招くかもしれない。インターネット全体でのネットワークトラフィックは集中管理されないので、どんなときにおいても、インターネットで頻繁に変化する「ピアリングポイント輻輳」の程度を予想することは難しい。
ASN内あるいは間での一貫性のあるQoSを保証できないと、ストリーミングビデオイベントの視聴者に対して一貫性のあるQoEを維持することは非常に難しくなる。インターネットを介してビデオをストリーミングするシステムは、特に多くのインターネットトラフィックが流れるASNピアリングポイントにおいて共有ルーターの輻輳の程度が常に変化し、信頼性が低くなる。この問題は、インターネットおよび特にこれらのASNピアリングポイントを介して多数の同時視聴者に対してビデオをストリーミングするとき悪化する。
既存のビデオストリーミングアプローチ
(インターネットの上の)オーバーレイネットワークトポロジーを生成し、これらのオーバーレイネットワークに沿ったネットワークノード間でビデオコンテンツを送信するための異なる技術を特徴付けて区別するために採用された無数の専門用語を伴って、過去数十年において、インターネットを介してビデオをストリーミングする様々なアプローチが進化している。異なるアプローチの比較において、GPSナビゲーションとの類似性に単純に戻って、例えば、距離、速度、輻輳(通常は、異なる経路に沿ったルーティングにより対処される)任意の2個の点あるいはノード間を移動するために求められる時間に影響する因子を考慮することは有用である。
インターネットでパケットをルーティングする状況では、パケットは光に近いスピードで移動するため、距離(あるいは、地理的な近接度)は直接には関係しない。しかしながら、速度は、経路に沿って遭遇する停止や道路上の防塞の数、あるいはこの状況では、2個のノード間における中間ルーターにおいて遭遇するホップ数による影響を受ける。このように、2個のノードは、物理的近接度に関わらず、それらが比較的少数のホップ数だけ離れている場合、互いに近接していると言える。2個のノード間の経路に沿った中間ノードでの輻輳は、全体の移動時間に影響し、例えば2個のノード間の経路を決定するオーバーレイネットワークを動的に再構成して、動的にトラフィックを再ルーティンすることで対処できる。以下に説明するように、これらの要因は、インターネット上でビデオをストリーミングする異なるアプローチ間の主要な違いを示すのに役に立つ。
インターネット外でビデオを配信する最も一般的な方法は、例えば専用ケーブルあるいは衛星インフラストラクチャーを介して、「起点」から全ての目的地の視聴者に同時にビデオストリーム(例えばテレビ番組)を「ブロードキャスト」することである。全てのネットワークノードに情報をブロードキャストするために、LANにおいてネットワークハブを用いることができるが、インターネットを介してスイッチおよびルーターを横断してビデオセグメントのパケットをブロードキャストすることは、非実用的で非効率的である。ほとんどのネットワークユーザーは、ビデオコンテンツの任意のチャネルを視聴することには関心がなく、他のルーターにビデオセグメントをブロードキャストするルーターがすぐに圧倒されるため、起点付近で大量の輻輳が発生する。いつでもチャネルに加わることができる多くの同時視聴者に対して、インターネット上で単一の起点からビデオコンテンツのチャネルを配信するには、ブロードキャストソリューションは単純に適さない。
別の「マルチキャスト」アプローチは、インターネットを介して所定のノードのグループに対して各ビデオセグメントを同時に起点からストリーミングすることを含む。このアプローチは、インターネットを介した大規模なビデオ配信には同様に実用的ではない。さらに、マルチキャスト機能を備える専用のルーター等の特別なインフラストラクチャーが必要となり、大規模な商用利用にはやはり非現実的であり、極めて高価である。
ブロードキャストおよびマルチキャストの技術とは対照的に、ビデオストリーミングに対する「ユニキャスト」アプローチは、(例えば定義された目的地ノードのIPアドレスとのTCP/IP接続を確立することによって)、起点から単一の目的地ノードに対するビデオセグメントの送信を含む。しかしながら、各視聴ノードに同時に大量のユニキャストパケットを配信することは、起点あるいはその近傍のルーターをすぐに圧倒し、そのような多数の同時送信を処理するための十分な帯域幅を提供する膨大な費用は言うまでもなく、上述した多くの理由により一貫したQoSを達成できない。
(ネットフリックスやユーチューブのような)いくつかのVOD企業は、一般的に高価な「エッジサーバー」インフラストラクチャーに頼ったこのユニキャストアプローチの変種を採用している。(「コンテンツ配信ネットワーク」あるいはCDNと称されることのある)このアプローチは、インターネットに多数の物理的なサーバーを配備し、ビデオコンテンツの各チャネルのコピーを各サーバーに配信する。その結果、視聴ノードは、(ネットワーク上で近接した−視聴ノードから比較的少数のホップだけ離れた)近くのサーバーから所望のビデオコンテンツを受信できる。
各エッジサーバーは通常、相当な帯域幅と演算能力を備えており、別個のビデオコンテンツソースを本質的に構成し、そこから近傍の視聴ノードが任意の時点(「オンデマンド」)でビデオコンテンツの任意のチャネルを得ることができる。物理的なインフラストラクチャーを加えるこのアプローチは、(一般道路におけるより少ない旋回と最小の時間で)多くの人々を人気の目的地に到達可能とするために追加の高速道路や出口ランプを建設するのと多少類似する。
異なるユーザーは通常、任意の時点で異なるビデオチャネルを見ることを望むが、VODシステムは、多数の同時視聴者に特定のビデオイベント(例えば人気のテレビシリーズの最終話)をストリーミングしなければならない「ピーク」需要時間に時折直面し、それは最大のストリーミングビデオ企業のインフラストラクチャーですら圧倒し、あるいは、(例えば需要のピークでないより普段の期間に)しばしば使われない高価なインフラストラクチャーを配備するといった非効率な「最悪のケース」の結果と少なくともなる。代替のVODソリューションは、(例えば米国特許公開公報2008/0059631で議論されているように)、ネットワークノード自体の間でビデオコンテンツを複製して配信することで、高価なエッジサーバーインフラストラクチャーの必要を回避しようとしている。
高価なエッジサーバーインフラストラクチャーの有無に拘わらず、これらのVODソリューションは、ビデオコンテンツの近くのソースを確保するために予め知られたコンテンツをインターネット上の「プレシーディング」エッジサーバーあるいは視聴ノードに全て頼るため、予定されていないビデオイベントに対するQoSの問題に対処しない。予定されていないライブイベントをストリーミングするためには、これら全てのエッジサーバーあるいは視聴ノードに対してビデオコンテンツをリアルタイムに同時配信する必要があり、これらのVODシステムのいずれによっても対処されない問題である。
より最近では、特定のユニキャストベースのビデオストリーミングの規格(例えば「WebRTC」)が、プラグインを必要とせずにデスクトップおよびモバイルウェブブラウザの間で「ポイント・トゥ・ポイント」のビデオのストリーミングを容易にするために進化している。多くの既存のスマートフォンは、デスクトップおよびラップトップコンピューターと同様に、ブラウザ・トゥ・ブラウザでのビデオストリーミングをサポートするWebRTCライブラリや、視聴ノードがその帯域幅およびCPUの容量をリアルタイムに検出できる「アダプティブストリーミング」ライブラリを含み、これらのメトリックにおける変化に対応するためにより低いあるいはより高い「ビットレート」を自動的に要求する。
アダプティブストリーミングの実装には、アップルの「HTTPライブストリーミング」(HLS)、マイクロソフトの「スムーズストリーミング」および「MPEG−DASH」ISO規格等がある。典型的なポイント・トゥ・ポイントビデオストリーミングのシナリオでは、受信ノードは、次の(例えば、次の8個の)ビデオセグメントの利用可能な各ビットレートのバージョンの位置を含む「マニフェストファイル」をHTTPサーバーから定期的に要求する。例えば、各ビデオセグメントがその解像度に関わらず本質的に同じ時間に配信されるように異なるストリーミングビットレート(帯域幅)を要求する、異なる「ビデオソリューション」を反映して、各ビデオセグメントは、1080p、720pおよび480pバージョンで利用可能であるかもしれない。
(WebRTCをサポートするウェブブラウザにおける)標準的なHTML5ビデオプレーヤーは通常、ビデオコンテンツの再生を開始する前に3個のビデオセグメントをバッファーする。それらは、現在のマニフェストファイルを使用して、各ビデオセグメントについてHTTPサーバーにHTTPリクエストを送信する。次に、送信ノードは、受信ノードのウェブブラウザで再生するためのWebRTC規格に従って、各ビデオセグメントを(小さな「チャンク」で)受信ノードに「プッシュ」する。受信ノードがアダプティブストリーミングの実装をサポートし、最近のビデオセグメントを受信するために必要な時間が大幅に増加あるいは減少していると判断すると、マニフェストファイル内の選択肢の中から、より低いあるいはより高いビットレートのビデオセグメントの要求を自動的に開始する。言い換えれば、要求されるビデオセグメントの解像度を変化させることで、実際の帯域幅に経時的に適応する。
ビデオのフレームの解像度は、その幅×高さ(例えば、1920×1080あるいは1080p)あるいはフレーム内の画素数の尺度であるのに対して、その「ビットレート」は、送信者から受信者に送信される「ビット/秒」(bps)の数を示す。例えば、1080pの解像度のビデオの30フレームが毎秒配信され(30「フレーム/秒」あるいはfps)、各色画素が24ビットを含むなら(24「ビット/画素」あるいは24bpp)、ビットレートは略1.5Tbps(1,492,992,000bps、すなわち1,492,992,000=(1920×1080「画素/フレーム」あるいはppf)×(24bpp)×(30fps)となる。
標準的なビデオコーデックは、より低い実効ビットレート(例えば、3Mbps)を生じるために、圧縮(例えば、MPEG2圧縮)や他のビデオ符号化技術を使用する。上の観点からすると、「ビットレート」および「解像度」は、より高いあるいはより低い解像度のビデオのフレームを提供することで実効ビットレートを増加あるいは減少させることができる点で、高い相関を有する。したがって、本明細書では、これらの用語をいくぶん交換可能に使用する。
WebRTCおよびアダプティブストリーミングの規格は、事実上全てのスマートフォンのユーザーがライブビデオイベントをキャプチャーしてストリーミングすることを可能にし、また、他の個々のスマートフォンユーザーからビデオコンテンツの配列をホスティングする大企業に至るまで、インターネットを介した別の起点から発信されるストリーミングチャネルに、このようなユーザーが参加することを可能にする。しかしながら、これらの規格は、ポイント・トゥー・ポイントビデオストリーミング用に設計されており、インターネット上の多数の同時視聴者にビデオチャネルをストリーミングする「ビデオ配信」問題に対処しない。
この問題に対処するために、いくつかのビデオストリーミング企業(例えば、ストリームルート)は、ビデオコンテンツを一の視聴ノードから他に中継する「ピア・トゥ・ピア」(P2P)あるいはメッシュネットワークトポロジーを典型的に含むアプローチを採用している(時折「ピアキャスティング」と称される)。ビデオストリーミングの状況では、これらの用語は、視聴ノードから他へ分散させる形態でストリーミングビデオコンテンツを中継可能とするインターネット上に構築されたオーバーレイネットワークを示すのに、交換可能に使用される。しかしながら、多数の同時視聴者へのストリーミングビデオの配信は、P2Pあるいはメッシュネットワークトポロジーの非ストリーミング用途、例えばファイル転送あるいはファイル共有アプリケーションと区別されるべきである。
P2Pビデオストリーミングシステムは、単一の起点から多数の同時ユーザーへインターネットを介してビデオコンテンツのチャネルを配信する。このようなシステムは、その分散された性質が(例えば、他のノードを介してコンテンツをルーティングすることで)個々の障害点からの回復を容易にする点で、回復力とスケーラビリティの両方を有する傾向があり、より多くのノードがネットワークに追加されるにつれて(すなわち、より多くのより良いルーティング「中継」オプションが利用可能になるにつれて)、その信頼性とパフォーマンスは実際に改善される。
新たなノードが追加され、あるいは既存のノードがチャネルを離れる(視聴を停止する)と、P2Pビデオストリーミングシステムは、オーバーレイネットワークのトポロジーをある程度動的に再構成しなければならない。すなわち、新しいノードを収容するために、ネットワークのノード間のルーティング経路の少なくとも一部を変更する必要がある。例えば、新たなノードが追加されると、そこからビデオコンテンツを受信する(そこにビデオコンテンツを中継する)近くの既存のノードを選択する目的で、その地理的な位置が考慮されうる。
しかしながら、単にそれらの地理的な近接度に基づいて「ピア」ノードを選択すると、例えばそれらが異なるASNに存在する場合、それらは互いに比較的「遠く」(ネットワークでは近接していない)かもしれない。結果として、それらの間のトラフィックは、1個または複数の潜在的に輻輳しているピアリングポイントを通過するかもしれない。例えば、地理的な近接度が近い2個のノードの間の実際の待ち時間は、それらの各ノードと地理的に離れたノードとの間の待ち時間の合計を超えるかもしれない。この現象は、ASNピアリングポイントを介してオーバーレイネットワークのノード間でデジタルコンテンツを配信するBGPルーティングに頼ることの欠点を示す「三角不等式違反」(TIV)と称されることがある。
既存のP2Pビデオストリーミングシステムに伴うこの問題の1つの理由は、インターネットの下層アーキテクチャとそれらが「互換性」を有するように構築されていないことにある。インターネット上に構築された全てのオーバーレイネットワークトポロジーは、(新たなあるいは消滅するノードはさておき)上述した無数のQoS問題等、多くの崩壊あるいは障害ポイントの対象となる。特にASNピアリングポイントでのインターネットの下層のQoSの変動性に対処しないことで、このようなシステムは一貫したQoEをユーザーに提供するにあたり大きな障害に直面する。
したがって、(GPSナビゲーションシステム)のような既存のP2Pビデオストリーミングシステムは、ピアの中継ノードを選択するために(ネットワークの近接度ではなく)地理的な近接度に依存し、輻輳が生じた「事実の後」にのみトラフィックを再ルーティングする。さらに、同時ユーザーへのリニアデータのリアルタイムのストリーミングは、コンテンツが各ノードに「同時に」到着しなければならないという、GPSナビゲーションシステムには見られない追加の制約を課す。(より高速の経路を提供するための高速道路や出口ランプの建設に類似した)エッジサーバーや他の物理的なインフラストラクチャーのアプローチは高価であるとともに、予定されていないイベントや特定のイベントの高い同時使用の問題に適切に対処できない。
したがって、上述の欠陥に対処して、一貫したQoEをクライアントノードに提供するためにオーバーレイネットワークを生成して動的に変更するにあたって、インターネットの下層のアーキテクチャ(特に多くのインターネットトラフィックが流れるASNピアリングポイント)を考慮に入れたデジタルコンテンツ配信システムが求められている。
本発明によれば、(1)構成要素のうちの1個(例えばASN)内の各ノードの位置を含む、下層のネットワークの構成要素(例えば、ASNとそれらを相互接続するピアリングポイント)を相互接続する共有リンクのマップを維持し、(2)下層のネットワーク(インターネット)上に構築された1個あるいは複数のオーバーレイネットワークに沿って、それらの共有リンク(ASNピアリングポイント)を横断するノード間のネットワークトラフィックを監視することでメトリックを生成し、(3)メトリックとマップを経時的に分析して、共有リンク(ASNピアリグポイント)の容量の時間変化を反映した輻輳レベルを予想し、(4)予想された輻輳レベルに基づいてオーバーレイネットワークのトポロジーを動的に再構成して、オーバーレイネットワークに沿ったクライアントノード間のデジタルコンテンツの最適な経路を生成することで、下層のネットワーク(例えばインターネット)のノードのユーザーに一貫したQoEを提供するデジタルコンテンツ配信システムに関して、新規の方法およびアーキテクチャの様々な実施形態が開示される。
本明細書では、本発明の「仮想ブロードキャスト」システムの特定の実施形態は、(エッジサーバーや他の高価な物理的なインフラストラクチャーの必要性を回避しつつ)、異なる時間にチャネルに参加する可能性のある潜在的な多くの同時視聴者に対して単一の起点からリアルタイムでストリーミングされるビデオコンテンツの1個あるいは複数のチャネルの視聴者の間で一貫したQoEを提供するという状況において説明される。より詳細に後述するように、同時ユーザーへリニアコンテンツをユニキャストストリーミングするという状況において、「仮想ブロードキャスト」という用語を使用する。ユーザーの観点から見ると、ユニキャストストリーミングがコンテンツをルーティングするために使用されているにもかかわらず、コンテンツを同時に受信するという点で、コンテンツはそれらに「ブロードキャスト」される。本発明の他の実施形態は、ネットワークの構成要素間の共有リンクの容量が限られているために、デジタルフォーマットに変換可能なあらゆるタイプの情報のルーティングが制約されるという多くの他の状況において、当業者にとって明らかである。
本明細書の目的のために、多数の異なるチャネルを同時に受信する単一のノードは、それぞれが単一のチャネルで定義された別々のオーバーレイネットワーク上の別個のノードと見なすことができる。VODの状況では、特定の番組のそれぞれ個別の「表示」は、それ自身の視聴ノードのネットワークを有する別個のチャネルと見なすことができる。
インターネットのQoSの変動性にさらされるインターネット上に構築されたオーバーレイネットワークに実装されているにもかかわらず、本発明のシステムは、予定されていないおよび予定されたイベントを扱い、ライブおよび事前録画されたイベントをストリーミングし、多数の同時ユーザーの間で一貫したQoEを維持する高いスケーラブルを有する方法で最小の遅延を伴うリアルタイムでこれらのイベントをストリーミングすることができる。同時ユーザーの数(特に、任意のASN内での)が増加するにつれて、システムのパフォーマンスおよびユーザーのQoEは実際に向上する。
クライアント−サーバーアーキテクチャがサーバー側のルーティングの決定を集中化するために使用される。ビデオコンテンツの分散ストリーミング配信は、動的に再構成可能なP2Pオーバーレイネットワークを介して行われ、各ビデオチャネルの視聴ノードの間でビデオコンテンツを中継(すなわち「プッシュ」)することが可能となる。クライアントノードは、(ほとんどのデスクトップおよびモバイルウェブブラウザに組み込まれた)標準のHTML5ビデオプレーヤーを使用してビデオを表示あるいは再生し、(ジャバスクリプトのような)カスタムエンベデッドコードを頼って、ビデオセグメントの受信処理、これらのビデオセグメントの他のノードへの中継ならびに様々なパフォーマンスメトリックの監視といった追加的な機能を実装する。他の実施形態では、そのような機能の一部あるいは全部がカスタムアプリケーションあるいはモバイルアプリケーションに統合される。
本発明のシステムは、デスクトップとモバイルウェブブラウザの間の「ポイント・トゥ・ポイント」ビデオストリーミングを容易にし、より低いあるいはより高いビットレートのビデオセグメントを自動的に要求することでノードの帯域幅における変化に適応する。一の実施形態では、仮想ブロードキャストシステムは、WebRTCおよびアダプティブストリーミング規格(HLS、MPEG−DASHあるいはスムーズストリーミングのような)を含むユニキャスト規格を使用して、ウェブブラウザのプラグインを必要とせずにビデオストリーミングを容易にし、ノードが帯域幅やCPUの容量といったそれらのパフォーマンス能力を検出できるようにする。
各イベントは、複数の動的に再構成可能なオーバーレイネットワークを介して、同時ユーザーへの各チャネルの「起点」配信のための中央「仮想ブロードキャストサーバー」に提供される。イベントは、仮想ブロードキャストサーバーに完全なファイルとして転送されたものでも、ライブでストリーミングされたものでも、事実上あらゆるソース(CDNを含む)から取得できる。WebRTCを用いた実施形態では、オーバーレイネットワークを介したユーザーへのシーケンス配信のために、WebRTCを実装したスマートフォンを持つあらゆるユーザーは、仮想ブロードキャストサーバーに対して事前録画されたビデオイベントをアップロードし、あるいはイベントをライブでキャプチャーしてそれらをアップロードできる(仮想ブロードキャストサーバーからストリーミングされた他のチャネルを視聴できるのと同様に)。
一の実施形態では、仮想ブロードキャストサーバーは、インターネット上に構築された動的に再構成可能なオーバーレイネットワークを介してビデオセグメントが配信される各チャネルへの起点として機能する「POIコンテンツサーバー」を含む。ビデオセグメントは、ビデオイベントの元の発行者によって決定された固定されたサイズを通常有する(例えば1〜10秒)。ビデオセグメントは、クライアントノードによって視聴され、オーバーレイネットワークにより定義された経路に沿ってノードからノードへ「プッシュ」される(すなわち、WebRTC規格に従って個々の固定サイズの「チャンク」として中継される)。一の実施形態では、各ビデオセグメントは、MPEG2転送プロトコルに沿ってストリーミングする際に最大の効率を得るために、UDPデータグラム「パケット」のサイズに一致するように64KBのチャンクに分割される。
ビデオセグメントはほとんどの場合で各クライアントノードに効率的にプッシュされるが、一の実施形態では、クライアントノードは、ビデオセグメントの全てのチャンクが時間内に到着していないことを検出し、現在のマニフェストファイルを利用してPOIコンテンツサーバー(すなわち、フォールバック供給位置として)からビデオセグメントを要求できる。
各ノードは、POIコンテンツサーバーによって利用可能にされたチャネルへの参加を求めるため、ノードは、そのノードが存在する特定のASNを決定する(別の実施形態では、仮想ブロードキャストサーバーの助けにより)。仮想ブロードキャストサーバーは、(ASNおよびそれらの様々なピアリングポイントの相互接続を含む)インターネットの動的な「ASN相互接続マップ」および様々な監視されたパフォーマンスメトリックと共に、「ASN」位置情報を利用し、これらのASNピアリングポイントでの輻輳レベルの予想に基づき動的に再構成されるオーバーレイネットワークの間でのチャネルコンテンツのルーティングを最適化する。別の実施形態では、仮想ブロードキャストサーバーはこのプロセスを支援するため、そのASN位置に加えて、各ノードの地理的な位置も利用する。
一の実施形態では、オーバーレイネットワークのトポロジーは、視聴ノード間でのビデオセグメントのルーティング経路を定義し、チャネルの各ビデオセグメントのために(全体的にあるいは部分的に)動的に再構成される。別の実施形態では、それらは、ビデオセグメントの各チャンクのために(全体的にあるいは部分的に)動的に再構成される。このようにして、インターネットのアーキテクチャは、(ASNピアリングポイントでの予想される輻輳レベルと同様に)、ビデオチャネルの各ビデオセグメントの最適なルーティング経路を決定する際に考慮される。別の実施形態では、オーバーレイネットワークに沿った一部あるいは全部の経路がビデオセグメントを時間内に配信することができる場合(そのような経路が最適でなくても)、所定の輻輳閾値が満たされるか、他の十分に重要な問題が特定されるまでは、そのような経路は再構成されない。
一の実施形態では、クライアントノードは、例えば(ASNピアリングポイントでの輻輳を含む)インターネットを介したラストワンマイル問題およびQoS問題、ならびに仮想ブロードキャストシステム自体の1個あるいは複数のチャネルの同時視聴者の数に起因した輻輳に関連したパフォーマンスの問題を監視する。それらは、インターネットおよびASNを介して指定されたサイトにコンタクトするのに必要な時間を監視するとともに、他のノードにビデオセグメントを中継するのに必要な時間を監視する。クライアントに監視されたメトリックは、動的なルーティング決定を行う際に使用するために仮想ブロードキャストサーバーに伝達される。一の実施形態では、仮想ブロードキャストサーバーは、標準的なウェブソケットプロトコルを介してクライアントノードと通信する「シグナリングサーバー」を含む。
クライアントノードは、ユーザーがビデオイベントをキャプチャーしてそれをリアルタイムで仮想ブロードキャストサーバーにアップロードすることを可能とする「アップロード部」をオプションで含む。あらゆるクライアントノードから仮想ブロードキャストサーバーへのパスは複数のASNを通過する可能性があるため、ビデオイベントのストリーミングを容易にし、中間ルーターでパケットが遅延あるいはブロックされるのを避けるために、カスタム「シャワーイング」プロトコルが用いられる。一の実施形態では、ユーザーの検索に基づきスプラッシュを特定して、それ以外の形ではPOIコンテンツサーバーを介して利用できないトレンドイベントをインターネットからストリームして視聴する能力をユーザーに与える仮想ブロードキャストサーバー上の「スプラッシュ抽出」サーチエンジンを介して、クライアントノードは、トレンドイベント(本明細書では「スプラッシュ」と称する)を検索して視聴することもできる。
チャンネルへの参加を要求すると、ノードは、それらの中継能力、すなわちそれらの接続タイプ(例えば、3Gあるいは4Gセルラー、WiFi、LAN等)ならびにそれらのCPU、オペレーティングシステム、ブラウザおよびメモリーの構成や、経時的に監視される他の固定および可変のパフォーマンスメトリックを含む種々の要素から推定される信頼できる「アップストリーム帯域幅」に基づき、仮想ブロードキャストサーバーによって分類される。一の実施形態では、ノードは、それらの相対的な中継能力に基づき3つのレベルに分類される。最低レベルのノード(「C」ノード)はビデオセグメントを視聴できるが、他のノードにそれらを中継できない。中間レベルのノード(「B」ノード)は、ASN内においてビデオセグメントの視聴と中継の両方を実行できる。最高レベルのノード(「A」ノード)は、ASN内およびASN間で、ビデオセグメントの視聴と他のAノードへの中継とを実行できる。
別の実施形態では、例えば監視されたパフォーマンスメトリックや、所定の分類のより多くのあるいはより少ない中継ノードに対するシステムの現在のニーズに基づいて、ノードの分類は動的に変更できる。さらに、ビデオセグメントを中継するためにASN内に十分なAノードが存在する場合、Bノードとして扱われるものの(例えば、既存のAノードがチャネルを離れる場合に)必要に応じてAモードに昇格できる「B:A」ノードに、Aノードを指定できる。一の実施形態では、個々のノードが(良い方あるいは悪い方への)パフォーマンスの大きな変化を示す場合、ノードを(例えば、BノードからCノードへあるいはその逆に)再分類し、問題が解決されると、最初の分類に戻すことができる。
別の実施形態では、クライアントノードは、それらが複数の他のノードとの間でビデオセグメントのチャンクを中継および受信できるように、(例えば、それらの能力やクライアントパフォーマンスメトリックに基づき)複数の「スロット」に割り当てられる。この実施形態では、クライアントノードは、1個の「供給」ノードのみからビデオセグメントを受信するが、そのビデオセグメントを複数の他のクライアントノードに「供給」あるいは中継することができる。同じASN内のAノードに中継するための4個と、他のASN内のAノードに、すなわちASNピアリングポイントを経由して、中継するための4個の最大8個の中継スロットに、Aノードは割り当てられる。B:AおよびBノードは、それらのASN内の他のクライアントノード(例えば、他のB:A、BおよびCノード等)に中継するための最大8個のスロットに割り当てられる。別の実施形態では、クライアントノードは、(例えば、複数の受信スロットの間でチャンクを切り替えることで)、複数の他のクライアントノードによる「供給」を受けてもよい。この技術は、より高いパフォーマンスが要求される高いビットレート(例えば4K)のビデオストリームに採用できる。
別の実施形態では、特定のノードは(それらの能力およびクライアントパフォーマンスメトリックに基づき)、単一の供給ノードからビデオセグメントの複数の解像度を受信できる(あるいは、代替の実施形態では、異なる供給ノードから異なる解像度を受信できる)。これらのノードのアップストリーム帯域幅が十分な場合、それらは、「ポリキャスティング」ノードと見なされ、必要な程度にまで、1個あるいは複数の指定されたノードにビデオセグメントのこれら複数の解像度を中継あるいは供給できる。
オーバーレイネットワークの動的な再構成を容易にするために、仮想ブロードキャストサーバーは、パフォーマンスメトリックを継続的に分析してASNピアリングポイントを経由する輻輳のレベルを予想する、すなわち将来の短い時間(例えば1分)におけるASNピアリングポイントの輻輳レベルを予想する「ディープマッパー」ディープラーニングエンジンを採用する。一の実施形態では、例えばASN内の一のAノードと別のASN内のAノードのようなAノードの間の潜在的なASN間の各経路に対して、予想された「輻輳値」が生成される。別の実施形態では、輻輳値は、Aノードの各ペアの間の最適な経路のために予想された輻輳レベルを反映する。
一の実施形態では、仮想ブロードキャストサーバーは「オーバーレイネットワーク生成部」を使用して、例えばASN内でおよびASNを横断して一のノードから別のノードにプッシュされるビデオセグメントの最適な経路を決定する等、ASN間およびASN内の両方のオーバーレイネットワークを生成して(全体的あるいは部分的に)動的に再構成する。この実施形態では、オーバーレイネットワーク生成部は、各ノードが使用できる利用可能なスロットの数と、各ノードが受信あるいは中継できる解像度の数を考慮する。
オーバーレイネットワーク生成部は、Aノードのトポロジーを表すASN間「仮想データトランク」オーバーレイネットワークを(ディープマッパーの支援を受けて)生成して動的に再構成する。言い換えれば、それは、Aノードと、ASN内および(特に)ASN間における、すなわち潜在的に輻輳するASNピアリングポイントを介した、これらのAノード間でビデオセグメントが進むリンクあるいはルーティング経路を表す。
仮想データトランクは、(例えば、現在のマニフェストファイルを使用する)近くのPOIコンテンツサーバーから各ビデオセグメントを要求するように指示されたAノードのセットや、それぞれがそのビデオセグメントをプッシュするAノードのセット等を、(ASN内およびASN間の両方で)識別する。その結果、そのビデオセグメントは、視聴ノードを含む全てのASNに渡って拡散される。各視聴ノードに到達するために、セグメントは、視聴ノードが存在しない中間プライベートバックボーンを移動することもできる。
オーバーレイネットワーク生成部は、ASN内のAノードからそのASN内のB:A、BおよびCノードにビデオセグメントを中継するASN内「スワーム」オーバーレイネットワークを1個あるいは複数生成することもできる。これらスワームオーバーレイネットワークは、各ビデオセグメントに対して(あるいは、代替の実施形態ではビデオセグメントの各チャンクに対して)、(全体的にあるいは部分的に)動的に再構成されてもよい。一の実施形態では、ASN内の各スワームオーバーレイネットワークは、そのスワーム階層内のノード間でビデオセグメントを受信、視聴および中継(Cノードは除く)を行うB:A、BおよびCノードの階層的なトポロジーを(ASN内のAノードに関して)表す。
このように、本発明の仮想ブロードキャストシステムおよび方法は、ネットワークトラフィックを監視して分析することでASNピアリングポイントや輻輳の他の主要ポイントでの有限の容量を効率的に使用し、これら主要輻輳ポイントでの輻輳レベルの予想に基づき動的に再構成される仮想データトランクおよびスワームオーバーレイネットワークのノード間でデジタルコンテンツのルーティングを最適化し、これによって、システムユーザー間の一貫したQoEを維持する。
インターネット上で動的に再構成される本発明のオーバーレイネットワークの一の実施形態を示すグラフ。
本発明のクライアントストリーミングビデオ装置の主要なクライアント側の構成要素の一の実施形態を示すブロック図。
本発明の仮想ブロードキャストサーバーの主要なサーバー側の構成要素の一の実施形態を示すブロック図。
本発明の動的なビデオストリーミングプロセスの一の実施形態を示すフローチャート。
本発明のシステムおよび方法の詳細な実施形態は、添付の図に示され、以下に説明される。最初に本発明は、図面を参照して以下に説明する特定の実施形態に限定されないことに留意されたい。
上述したように、本明細書では、本発明の特定のアプリケーションが、インターネットを介して多数の同時ユーザーにストリーミングビデオを配信する状況で説明されるが、本発明の原理は、ネットワークの構成要素間の共有リンクの有限の容量がデジタルコンテンツのいかなるタイプのルーティングを制約する他の多くの状況において等しく適用できる。
インターネットを介してストリーミングビデオを配信する状況においても、本明細書で記載されるクライアントノードとサーバーの構成要素の間の機能の割り当ては、設計のトレードオフの結果であり、この機能の多くは、本発明の精神から逸脱することなく、クライアント側およびサーバー側の構成要素を再割り当てできる。同様に、クライアント側の機能は、単一のモジュラー構成要素に割り当てたり、複数の異なる構成要素にまたがったりすることができ、1個あるいは複数のスタンドアローンのアプリケーション、モバイルアプリケーション、スタンドアプリケーションとモバイルアプリケーション、ジャバスクリプト、他のスクリプティングあるいはプログラミング言語との組み合わせとして実装できる。さらに、サーバー側の構成要素は、単一のハードウェアサーバーに、あるいは複数の異なるサーバーをまたがって実装することができる。このような機能は、単一のソフトウェアモジュールに統合し、あるいは1個あるいは複数のサーバーに渡って分散された異なるソフトウェアモジュールに割り当ててもよい。
最後に、標準的なプロトコルおよびライブラリ(例えば、HTTP、WebSocket,WebRTC、STUNおよび種々のアダプティブストリーミング規格)を用いたこれらの実施形態では、これらの標準的なプロトコルおよびライブラリの一部あるいは全部により提供される機能は、本発明の精神から逸脱することなく、他の規格あるいはプロプライエタリの実装に置き換えることができる。
オーバーレイネットワーク
図1はインターネット上にマッピングされた本発明のオーバーレイネットワーク100の一の実施形態を示すグラフである。インターネットはそれ自体無数の異なる方法で図示できるが、図1はピアリングポイント120を介して相互に接続された、1セットのASN110ファイバーリングとしてインターネットを示す。任意の時点で特定のビデオチャネルを視聴している個々のクライアントノードが、各ASN110内に示されている。図1には示されていないが、複数のチャネル、したがって複数セットのオーバーレイネットワーク100が(一の実施形態において)同時にアクティブとなることができる。
上述のように、仮想データトランクオーバーレイネットワークは、ASN110内(直接の接続)およびASN100間(すなわち、ピアリングポイント120を介した)の両方で、Aノード130間の相互接続175を表す。バックボーンコネクター195は、商用ノードを含まないプライベートASN(不図示)を介して、2個のASNの間のAノードの相互接続を示すが、単に2個のパブリックASN110を相互接続するだけである。例えば、バックボーンコネクター195は、ASN110−f内のAノードとASN110−e内のAノード130との接続が示されている。このシナリオでは、2個のAノード130の間のトラフィックは、複数の「プライベート」ピアリングポイント120(あるいは、プライベートASNを用いた他のプロプライエタリ接続)を通過するかもしれない。
上述のように、一の実施形態では、2個の異なるプライベートASN110のAノード130の間の(すなわち、ピアリングポイント120を介した)接続175の場合と同様に、このような接続のパフォーマンスはエンドポイント(すなわち、2個のAノード130)においてのみ監視できる。同じASN内の2個のAノード130の間の接続175に沿ったトラフィックは、潜在的に輻輳したピアリングポイント120を横切らないので、ASN110間のトラフィックよりも相対的に高速である可能性が高い。バックグラウンドコネクター195とAノード130への/からの接続175は、一方向への矢印で示されているが、図1に示される全てのクライアントノード間で二方向への接続がサポートされている事実にかかわらず、これらは現在の一方向へのルーティングパスのみを反映したものである。
本発明の任意の2個のクライアントノードの間の全てのトラフィックは、パブリックインターネットを横断し、したがってQoSに影響する様々な中間ルーター(不図示)を通過することに留意されたい。システムは、ASN110内およびASN110間の両方(したがって、1個あるいは複数のピアリングポイント120)のQoS効果を監視する。一の実施形態では、このようなASN内およびASN間のトラフィックが、(仮想ブロードキャストサーバーの方向の)各クライアントノードで監視され、(Aノード130間の仮想データトランクオーバーレイネットワークと、ASN110内の各Aノード130からそのASN内のB(B:A)ノード140およびCノード150へのスワームオーバーレイネットワークを含む)オーバーレイネットワーク110により表されたノードとルーティング経路の動的な再構成のために、仮想ブロードキャストサーバーに配信される。
図1はこれらのオーバーレイネットワーク100の「現在の状態」が与えられた際に、クライアントノード間でビデオセグメントが進む様々なルーティング経路を示す。言い換えれば、それは、一の実施形態において、各ビデオセグメントに対して(代替の実施形態では、ビデオセグメントの各チャンクに対して)動的に再構成可能なこれらのオーバーレイネットワークの現在のトポロジーを示す。いずれの特定のビデオセグメントについても、オーバーレイネットワーク100は(全体的にあるいは部分的に)再構成されても、されなくてもよく、この決定は、経時的に収集されたパフォーマンスメトリックに少なくとも部分的に依存する点に留意されたい。
ASN110−cは、ASN110−c内あるいは(例えば、他の1個あるいは2個のASN110を隔てた)近くに存在するPOIコンテンツサーバー(不図示)がHTTPリクエストに応答して現在のビデオセグメントをAノード130−aに配信し、オーバーレイネットワーク100に沿ったチャネルのビデオセグメントのストリーミングを開始するシナリオを示す。より詳細に後述するように、POIコンテンツサーバーは基本的に、同一あるいは近くのASN110の複数の要求するAノード130に対して各ビデオセグメントを配信し、これらのAノード130は次に、オーバーレイネットワーク110に沿って複数の他のノードにビデオセグメントをプッシュし、任意の時点においてクライアントノードに配信され、クライアントノードから中継されたビデオセグメントのチャンクの複数の同時コピーの「再配布」が実行される。
このシナリオでは、Aノード130−aは、2個の他のAノード130にビデオセグメントを中継し、1個はASN110−c内で、もう1個はピアリングポイント120を介してASN110−aに至る。上述したように、仮想データトランクオーバーレイネットワークは、ビデオセグメントがASN110内および間のAノード130間で中継される際に、ビデオセグメントが進むルーティング経路を示す。したがって、このシナリオでは、ビデオセグメントは、ASN110−c内の複数のAノード130の間で中継されるだけでなく、様々なピアリングポイント120を介してASN110−aから複数の直接に相互接続されたASN(すなわち、110−a、110−d、110−f、110−g)にも中継され、そこからさらに仮想データトランクオーバーレイネットワークの複数のホップを介して他のASN110に中継される。
より詳細に後述するように、ASN110内に求められるAノード130の数は種々の要因、すなわち、そのASN110内の他のクライアントの視聴ノードの数ならびに(それらの分類、空いているスロットの数および経時的に監視されたパフォーマンスメトリックにより決められる)それらの相対的な能力等に依存する。例えば、ASN110−b、110−f、110−iおよび110−jは、それらは異なる数の供給する他のクライアントノードを有するが(ASN110−f内の単一の他のノードと、ASN110−iの多くの他のノードと比較して)、それぞれ単一のAノード130のみが示されている。
ノードの監視されたアップストリーム帯域幅は、直接供給するノードの数(すなわち、使用される発信スロットの数)を決定する重要な要素であるが、(例えばあるものから次へビデオセグメントを中継する)ASN内のノードの「チェーン」の長さは、これらがどれくらい速く(典型的には1ミリ秒未満)達成されたかを考慮すると、ほとんど無関係であることを認識することは重要である。例えば、外部のASN110(ASN110−gおよびASN110−h)内の2個のAノードならびにASN110−i内の2個のBノード130に直接供給するASN110−i内の単一のAノードは、4個の発信スロットを使用する(この実施形態では、比較的高い監視されたアップストリーム帯域幅を反映する)。さらに、ASN−110iの単一のAノードから間接的に供給されるBノード140およびCノード150の長いチェーンは、そのアップストリーム帯域幅を反映しない。
各ASN110内で、1個あるいは複数のスワームオーバーレイネットワークが生成され(この実施形態では各ビデオセグメントに対して動的に再構成され)、そのスワームオーバーレイネットワーク内において、各Aノード(すなわち、スワームオーバーレイネットワークの「ルート」ノード)から様々なB(およびB:A)ノード140およびCノード150にそのASN110内のビデオセグメントを中継する。(ASN110−hで2個のスワームオーバーレイネットワークが示されているのに比較して)1個のスワームオーバーレイネットワークのみがASN110−cでは示されているが、各ASN110内で生成されるスワームオーバーレイネットワーク(および各スワームオーバーレイネットワークの内部トポロジー)の数は、ASN110内のクライアント視聴ノードの数、現在および過去のパフォーマンスメトリックおよび空いているスロットの数等の様々な要因に依存する。
上述の通り、ASN110−bのAノード130−bのようなクライアントノードは、複数の他のクライアントノードから(このケースでは、異なるASN(110−aおよび110−d)の2個のAノードから)ビデオセグメントを受信できる。一の実施形態では、より詳細に後述するように、これら2個の他の供給ノードは、パフォーマンス上の理由から、例えば継続的に輻輳レベルが監視されるピアリングポイント120をチャンクが横切ることから、Aノード130−bへビデオセグメントのチャンクを交互に切り替えて送信する。別の実施形態では、例えば過去のパフォーマンスメトリックに基づくと(ピアリングポイント120の輻輳とは別にあるいは加えて)ノードへの供給の信頼性が疑わしい等の理由から、これは、冗長性の目的で行うことができる。
パフォーマンスメトリックを監視して、ビデオセグメントを中継して、オーバーレイネットワーク100を動的に再構成する方法は、これらの方法を実装した主要なクライアント側(図2)およびサーバー側(図3)の機能的構成要素の議論に続いて、図4を参照しつつさらに詳細に検討される。
クライアントストリーミングビデオ装置
図2を参照すると、クライアント装置200は、本発明のクライアントストリーミング装置の主要構成要素の一の実施形態を示す。クライアント装置200は、デスクトップあるいはラップトップコンピューターならびにスマートフォン、他のモバイル装置あるいはストリーミングビデオのようなストーリミングコンテンツを扱うことができる実質的に任意の他の民生用電子機器として実装できる。クライアント装置200は、特定の標準的なハードウェアおよびソフトウェア演算構成要素と、当業者に周知のCPU212、メモリー214、オペレーティングシステム216、ネットワークアダプター217、ディスプレイ218およびカメラ219を含む関連する周辺機器とを含む。クライアント装置200は、これらの構成要素と周辺機器210を特定の標準ライブラリ220とともに使用してネットワークノードとなり、本発明の仮想的ブロードキャストシステムの他のネットワークノードとの間でストリーミングビデオコンテンツを受信し、表示し、中継する。
本発明は、装置間でのビデオコンテンツのストリーミングを容易にするために使用されるネットワークプロトコルや他の機能を実装した特定の標準ライブラリ220(ほとんどのスマートフォンおよび多くの他の演算装置に見られる)を活用する。例えば、ビデオコンテンツは、プラグインを必要とせずに、二人のスマートフォンユーザーの間でストリーミングされ、それらのモバイルウェブブラウザに表示される。標準ライブラリ220は、(ビデオコンテンツのストリーミングのためのブラウザ・トゥ・ブラウザ通信を容易にする)WebRTC222APIと、HLS、MPEG−Dashおよびスムーズストリーミング等(クライアントの帯域幅およびCPUの容量の変化のリアルタイムな検出に適応するためにストリーミングのビットレートを自動的に調整可能とする)種々のアダプティブストリーミング224実装と、(単一のTCP/IP接続を介した迅速な双方向クライアント‐サーバー通信を容易にする)WebSocket226プロトコルと、(ウェブサーバーとクライアントウェブブラウザとの間の頻繁でない標準的な通信用の)HTTP228とを含む。
クライアント装置200は、ストリーミングデジタルコンテンツを視聴あるいは再生するための標準プレーヤー232(一の実施形態では、標準HTML5ウェブブラウザ230に統合された標準ビデオプレーヤー)を含む。別の実施形態では、標準プレーヤー232は、スタンドアローンのデスクトップアプリケーションあるいはスマートフォンアプリケーションに統合される。標準HTML5ウェブブラウザを活用する一の利点は、標準ライブラリ220の多くがウェブブラウザで動作するように設計されているため、スタンドアローンのデスクトップアプリケーションあるいはスマートフォンアプリケーションを必要とするプラグインあるいは他のカスタム機能を必要としないことである。
さらに、ウェブブラウザは、(例えばクライアントブラウザプラグインを必要とせずにウェブページの一部として標準ウェブサーバーから配信される)標準的なウェブブラウザの機能を補うためにしばしば使用されるジャバスクリプトのようなクライアント側のスクリプト言語もサポートする。一の実施形態では、(通信部270、パフォーマンス監視部240、受信部250、中継部260およびアップロード部280を含む)クライアント装置200の非標準的な主要構成要素はジャバスクリプトで実装され、コンテンツアレイ255はそのジャバスクリプトコードによって生成されて維持される。しかしながら、本発明の精神から逸脱することなく、これらの主要構成の一部あるいは全部は他のプログラミング言語およびスタンドアローンデスクトップアプリケーションあるいはスマートフォンアプリケーションにより実装できることに留意されたい。
標準ライブラリ220は、ビデオコンテンツを含むコンテンツの一般的なポイント・トゥ・ポイント(ユニキャスト)ストリーミングを容易にする。クライアント装置200の非標準的な主要な構成要素は、本発明の仮想ブロードキャストシステムにより実装されたデジタルコンテンツデリバリーアーキテクチャのクライアント側の態様に対処する。一の実施形態では、ストリーミングプロトコルは、コンテンツのルーティングをクライアントサーバーアーキテクチャを介して集中化するWebRTC222の上に構築され、コンテンツ自身は、動的に再構成可能なP2Pオーバーレイネットワークを介して拡散される形で(ノードからノードにプッシュされて)ストリーミングされる。
例えばEメール内やウェブページ上のリンクを介して、あるいはスタンドアローンデスクトップアプリケーションあるいはスマートフォンアプリケーション内から等の様々な異なる方法で、クライアント装置200のユーザーは、1個あるいは複数のコンテンツのチャネルに最初に遭遇するかもしれない。一の実施形態では、仮想ブロードキャストサーバー300は(図3を参照しつつより詳細に後述する)、標準HTML5ウェブページをチャネルの選択を伴ってHTML5ウェブブラウザ230を配信する。この「チャネルウェブページ」は、シグナリングサーバー330ならびに(例えばWebRTC222およびアダプティブストリーミング224ライブラリを使用する)他のクライアントノードとの通信、ビデオセグメントのチャンクの受信、処理およびこのようなノードとの間の中継を含む、クライアント装置200の非標準の構成要素の機能を実装するために、HTML5ウェブブラウザ230によって解釈されるプロプライエタリジャバスクリプトコードを含む。
チャネルウェブページ内のチャネルリンクをクリックすると、ユーザーは、現在ストリーミングされている、あるいは別の実施形態では後の所定の時点(「参加リクエスト」)でストリーミングが開始されるビデオコンテンツの特定のチャネルに参加するために、リクエストを生成する。仮想ブロードキャストサーバー300のシグナリングサーバー330は、通信部270を介したクライアント装置200とのウェブソケット226接続の確立を試みることで、参加リクエストに応答する。図3を参照しつつより詳細に後述するように、クライアント装置200がビデオコンテンツの受信および中継のために、仮想ブロードキャストサーバー330とのウェブソケット226接続および他のクライアント装置200とのWebRTC222接続を確立できるように、仮想ブロードキャストサーバー300は、(例えばNATファイアーウォールの背後にある)クライアント装置200のパブリックIPアドレスを発見する「STUN」332プロトコルを使用する。
ここで説明する実施形態では、クライアント装置200は、任意の所定の時間に1個のビデオチャンネルにのみ参加する。他の実施形態では、クライアント装置200は、本発明の精神から逸脱することなく、同時に複数のチャネルに参加できる。
クライアント装置200は、シグナリングサーバー330との双方向通信のための接続部270を利用して、単一のTCP/IPを開いたままメッセージの迅速な交換を容易にする。より詳細に後述するように、かかる通信は、(1)クライアント装置の能力(例えば、OS、ウェブブラウザおよび3G、4G、WiFi、LAN等の接続タイプ)に関する初期情報を仮想ブロードキャストサーバー300へ提供する(2)オーバーレイネットワーク100を介したビデオセグメントの次のWebRTC222のノード間のストリーミングのためのクライアントノードの接続性の検証を仮想ブロードキャストサーバーに可能にする(3)(後述するようにパフォーマンス監視部240を介して取得された)リアルタイム動的監視情報を仮想ブロードキャストサーバー300と交換するといったことを含む種々の目的のために使用される。
一の実施形態では、チャネルウェブページに含まれるこのジャバスクリプトコードはクライアント装置200の能力を分析して、それが(ビデオセグメントを受信するがそれらを他のクライアントノードに中継しない)Cノードであるかどうかを判定し、この情報をシグナリングサーバー330に提供する。別の実施形態では、クライアント装置200の特定の能力が仮想ブロードキャストサーバー300に送信され、仮想ブロードキャストサーバー300が、クライアント装置200がCノードであるかどうかを判定する。
このジャバスクリプトコードは、POIコンテンツサーバー380との通信を容易にして、標準プレーヤー232による再生のための受信部250のビデオセグメントの受信を管理する。このプロセスは、事実上、標準WebRTC222およびアダプティブストリーミング224の機能を活用する標準的なポイント・トゥ・ポイントビデオスストリーミングのシナリオの拡張である。
一の実施形態では、標準ウェブブラウザ230は、チャネルウェブページからプロプライエタリジャバスクリプトコードを解釈して、上述のように定期的にマニフェストファイルを要求する。このような標準HTTPリクエストは、マニフェストファイルを提供するPOIコンテンツサーバー380に向けられる。標準ウェブブラウザ230は、標準アダプティブストリーミング224ライブラリを活用して、上述のように、(例えば、帯域幅の変化が検出された時に)これらのビデオセグメントのより高いあるいはより低いビットレートのバージョン含むマニフェストファイル内の指定された場所からビデオセグメント自体を要求する。
各ビデオセグメントは、オーバーレイネットワーク100の他の(供給)ノードからクライアント装置200にプッシュされるため(クライアント装置200がHTTP「プル」リクエストを開始する必要性が無いため)、ビデオセグメントに対するこれらのリクエストは、プロプライエタリジャバスクリプトによってチャネルウェブページから傍受される。(より詳細に後述される)一の実施形態では、1個あるいは複数の初期ビデオセグメントがクライアント装置にプッシュされて、できるだけ早くビデオコンテンツの再生を開始できるように、仮想ブロードキャストサーバー300は、参加リクエストが受信された直後にオーバーレイネットワーク100に(したがってチャネルに)クライアント装置200を追加する。
受信部250が各ビデオセグメントのチャンクを受信すると、ビデオセグメントの受信と再生および他のクライアントノードへのビデオセグメントの中継(クライアント装置200がCノードに指定されていない場合)を容易にするためにコンテンツアレイ255を生成する。受信部250は、標準プレーヤー232によって維持される3セグメントバッファーに供給される完全なビデオセグメントにチャンクをコンパイルする受信アレイ256を生成する。ビデオセグメントに対するHTTPリクエストが傍受されて、受信部250が完全なビデオセグメントが受信アレイ256に無いと判断した場合には、ビデオセグメントがマニフェストファイル(すなわち、POIコンテンツサーバー380)により指定された代替(あるいはフォールバック)位置から要求される。標準プレーヤー232の観点からは、これは標準HTTPリクエストに応答してビデオセグメントを受信し、ビデオセグメントがオーバーレイネットワーク100を介してクライアント装置200に実際にプッシュされていることには気付かない。
さらに、一の実施形態では、受信部250は、アダプティブストリーミング224ライブラリを活用して、クライアント装置200が処理できるビットレートを(通信部270を介して)シグナリングサーバー330に通信する(標準プレーヤー232が通常の方法でマニフェストファイルを介してそのようなリクエストを行うかどうかにかかわらず)。例えば、クライアント装置200が一時的な著しい帯域幅の低下を経験した場合(ビデオセグメントが必要となる前に受信アレイ256に到着しない結果となる)、それは、1個の(フォールバック)ビデオセグメントをPOIコンテンツサーバー380から要求し、オーバーレイネットワーク100を介して次の低解像度のビデオセグメントがプッシュされる。そのビットレートが正常に戻ったら、問題の発生前と同様に、高解像度のビデオセグメントがプッシュされる。
上述したように、一の実施形態では、仮想データトランクオーバーレイネットワーク(ASN内およびASN間のAノード間)およびスワームオーバーレイネットワーク(ASN内の各AノードからそのASN内の他のノード)を含んで、仮想ブロードキャストサーバー300は、各ビデオセグメントに対してオーバーレイネットワーク100を動的に再構成する。クライアント装置200が(ビデオセグメントを受信するが他のクライアントノードにこれらを中継しない)Cノードに分類されない限り、中継部260は、そのビデオセグメントを中継する1個あるいは複数のノードに関して、仮想ブロードキャスト330から(参加したビデオチャネルの各ビデオセグメントについて)命令を受信する。図1を参照して上述したように、クライアント装置200がA、B:AあるいはBノードであるかどうかにかかわらず、それは、複数の他のクライアントノードへのビデオセグメントを中継するように要求されることがある。
ビデオセグメントの長さ(例えば、1〜10秒)は、アダプティブストリーミング224規格に従ってビデオコンテンツの発信元により定義される。中継部260は、(シグナリングプロトコルを要求しない)WebRTC222の「RTCデータチャネル」コンポーネントに従ってチャンクをプッシュすることで、指定された目的地の各クライアントノードにビデオセグメントを中継する。
一の実施形態では、各ビデオセグメントは、MPEG2転送プロトコルを介してストリーミングされる際に最大の効率を得るために、UDPデータグラム(「パケット」)のサイズに一致するように64KBのチャンクに分割される。クライアント装置200は、(WebRTC222規格に従って必要に応じてTCPに戻って)一度に1個のチャンクのUDP「パケット」を送受信する。例えば、1秒のビデオセグメントは、およそ625のチャンクを含む(約5000Kbpsを生成する1080pH264エンコーダーを想定)。
受信部250は各ビデオセグメントのチャンクを受信すると、これらのチャンクをコンパイルする受信アレイ256を生成して、完全なビデオセグメントを構築する。中継部260は、指定された目的地のクライアントノードに送信(中継)する目的で、これらのチャンクをコンパイルする中継アレイ257を生成する。このようにして、中継アレイ257は、ビデオセグメントの着信および発信チャンクに対するバッファーとして機能する。後述するように、パフォーマンス監視部240は、指定された目的地の各クライアントノードに全てのビデオセグメントをストリーミングするのに要する時間を追跡し、(オーバーレイネットワーク100を動的に再構成するのに次に使用するために)その測定結果を仮想ブロードキャストサーバー300に報告する。
一の実施形態では、受信クライアントノードは、クライアント装置200のような単一の供給ノードからビデオセグメントを受信する。別の実施形態では、複数の潜在的な供給ノードが仮想ブロードキャストサーバー300によって選択され、それらは相互間で通信を行って、(例えば、現在の帯域幅や他の監視されたパフォーマンス測定基準に基づいて)「上位2個」の候補を取り決めて、指定された受信クライアントノードに交互にチャンクを送信する。
別の実施形態では、各ビデオセグメントの複数の異なる解像度(例えば、1080p、720pおよび480p)がAノードの間でプッシュされ、仮想ブロードキャストサーバー300は、各スワームオーバーレイネットワークのルートのAノードに、そのスワームオーバーレイネットワーク内の他のノードにプッシュするための解像度を指示する(例えば、後に詳述するように、これら他のノードの能力に基づいて)。
受信部250が再生のためのビデオセグメントのチャンクを受信し、中継部260が他の指定されたクライアントノードにこれらのチャンクをストリーミングしている間に、パフォーマンス監視部240は、仮想ブロードキャストサーバー300から指示された種々の静的およびリアルタイムの動的なパフォーマンスメトリックを収集し、シグナリングサーバー330を介して仮想ブロードキャストサーバー300にこのようなメトリックを継続的に返す。
上述のように、このようなメトリックは、次のビデオセグメントのルーティングを最適化するために、オーバーレイネットワーク100を動的に再構成するのに仮想ブロードキャストサーバー300によって使用される。特に、クライアントノードを分類および再分類して、ビデオセグメントを他のクライアントノードに中継するためのスロットを割り当ておよび割り当てを解除し、他のクライアントノードに受信および中継できるビデオセグメントの解像度を決定し、最終的には、オーバーレイネットワーク100が動的に再構成された際のクライアントノード間のルーティング経路のサブセットを修正するために、パフォーマンスメトリックは使用される。仮想ブロードキャストサーバー300によってこれらのパフォーマンスメトリックが使用される正確な方法は、図3を参照しつつより詳細に後述される。
オペレーティングシステム、ブラウザおよび接続(例えば、3Gあるいは4Gセルラー、WiFi、LAN等)といった静的なパフォーマンスメトリックは、頻繁に変化する可能性が低く、(例えば、3Gから4Gへのセルラー接続の変更といったイベントの変化の場合にはそれらは報告されるが)、通常はクライアント装置200による最初の参加リクエストの際にのみシグナリングサーバー330に報告される。
動的な情報は収集され、連続して(すなわち、収集されたときに)報告されるが、「オーバーヘッド」(これら動的なメトリックを監視してシグナリングサーバー330に報告する頻度)がビデオ自身の「ペイロード」あるいは配信のパフォーマンス(すなわち、クライアント装置200へおよびクライアント装置200からのチャンクのストリーミング)に影響しないことを保証するために、一の実施形態では様々なトレードオフが考慮される。一の実施形態では、このようなメトリックは、次のビデオセグメントに対してのみ使用され、別の実施形態では、現在のビデオセグメントの配信の間に、次の1個のチャンク(あるいは複数のチャンク)に対して変更を行うことができる。
一の実施形態では、2つのタイプの動的なパフォーマンスの監視が実行される。第1の方法は、クライアント装置200が存在するASN内およびASN間の両方で、インターネット上の既知のサイト(例えば、ヤフーウェブサーバー、仮想ブロードキャストサーバー等)に対する「ピング」時間(あるいは、他の類似した測定値)を伴う。このようなメトリックは、個別には、クライアント装置200のパフォーマンスについての洞察を提供し、集合的には、クライアント装置200が存在するASN内および特定のピアリングポイントを介したASN間の両方のQoSに対する追加の洞察を提供する。(Aノード間の)仮想データトランクオーバーレイネットワークは、(ピアリングポイントでの輻輳のために)比較的大きな懸念事項であるが、ASN内の輻輳も関連する(例えば、ASN内のスワームオーバーレイネットワークの少なくとも1箇所あるいは複数個所の動的な再構成が必要な場合等)。
動的なパフォーマンスを監視する他のタイプは、1個のクライアントノードからもう1個へビデオセグメントを中継するのに要する合計時間を伴う。一の実施形態では、各ノード(Cノードは除く)は、指定された目的地のクライアントノードにビデオセグメントの最初のチャンクを送信したときの「開始」時間と、ビデオセグメントの最後のチャンクが受信されたときの「停止」時間(例えばWebRTC222規格は各パケットの検証を提供するので)とを記録する。パフォーマンス監視部240は、(それが送信した各ビデオセグメントについて)この合計時間をシグナリングサーバー330に送信する。このメトリックは、クライアント装置200の個々のパフォーマンスに関する洞察のみならず、そのASN内およびASN間(例えば、クライアント装置200がASNピアリングポイントを介して他のAノードに供給するAノードの場合)の両方の輻輳レベルに関する洞察も提供できる。
一の実施形態では、クライアント装置200のユーザーは、ビデオコンテンツの発信元であってもよい。ほとんどの場合、このシナリオは、「いつでもどこでも」ビデオイベントのキャプチャーをユーザーに可能にする(カメラ219のような)スマートフォンカメラの品質が常に向上している結果である。しかしながら、スマートフォンと同様にデスクトップあるいはラップトップコンピューターのユーザーも、他のソースから事前録画されたビデオイベントを取得することができる。
問題は、クライアント装置200が何らかの形でインターネットを介して仮想ブロードキャストサーバーにそのビデオコンテンツをストリーミングしなければならず、それは、複数のASNを跨いで離れた多くのホップとなる可能性がある。アップロード部280は、UDPパケットが中間のルーターにより遅延あるいはブロックされるのを防ぐために設計されたプロプライエタリ「シャワーイング」プロトコルによってこの問題に対処する。一の実施形態では、アップロード部280は、より限定されたクライアント側のジャバスクリプトの機能に頼るのではなく、専用のスマートフォンアプリケーションを介してクライアント装置200に実装される。
このシャワーイングプロトコルを実装するために、アップロード部280は、仮想ブロードキャストサーバー330とTCP/IP接続を確立し、利用可能な最大のIPパケットサイズ(「Maximum Transmission Unit」あるいはMTU)を配信するためにUDP「バースト」を利用する。しかし、連続したUDPストリーミングは(単一のルーターポートを経由して送信されたものでも、あるいは複数のルーターポート間での分散型であろうと)しばしば中間ルーターによって「サービス妨害」(DOS)攻撃として検出され、ブロックされる。さらに、そのようなUDPストリーミングは、(より一般的なTCPパケットとは対照的に)ルーターが通常それらが受信されている間のみUDPパケット用のメモリーを割り当てるため、ルーターの割り当てられたメモリー(例えばFIFOキュー)をオーバーフローさせる可能性がある。
これらの障害に対処するために、アップロード部280は、複数のポート(例えば、一の実施形態では6個のポート)にUDPパケットを配信するだけでなく、DOS攻撃として検出されないように個々のポートで送信されるパケットを遅延させる。一の実施形態では、各ポートでの遅延は、DOS攻撃としての検出を避けるのに十分長く、ルーターが十分なメモリーを割り当てることを可能にするのに十分長いが、複数のASNに渡ってビデオセグメントを配信するのに十分な帯域幅を提供するのに十分短く、UDPストリーミングの最後として認識されるのを避けるのに十分短い(これは、ルーターがUDPパケット用のメモリーの割り当てを停止し、実質的に捨て去る原因となる)。
アップロード部280がこのようにして仮想ブロードキャストサーバー300に各ビデオセグメントを配信すると、仮想ブロードキャストサーバー300は、より伝統的なCDNから受信したかのように、オーバーレイネットワーク100に沿ってこのビデオコンテンツを再配信するチャネルを生成する。別の実施形態では、仮想ブロードキャストサーバー300は、それが現在のビデオセグメントがオーバーレイネットワーク100に沿って時間内に到着しなかったクライアントノードに対するビデオセグメントのフォールバック起点ソースであるといった比較的稀なシナリオで、このプロプライエタリーシャワーイングプロトコルを使用する。
仮想ブロードキャストサーバー
図3は本発明の仮想ブロードキャストサーバー300の主要なサーバー側の構成要素の一の実施形態を示す。上述のとおり、仮想ブロードキャストサーバー300の構成要素は単一の物理的なハードウェアサーバー内に示されているが、本発明の精神から逸脱することなく、これらの構成要素の機能は、複数の異なる物理的なハードウェア装置および異なるソフトウェアモジュールの間で割り当てることができる。
仮想ブロードキャストサーバー300は、例えば、CPU312、メモリー314、オペレーティングシステム316、ネットワークアダプター317およびディスプレイ318といったほとんどのハードウェアサーバーに見られる標準HW/SW310のような特定の標準的な機能を含む。特定の実施形態では、仮想ブロードキャストサーバー300は、(1)クライアントノードがビデオを他のクライアントノードと送受信して、仮想ブロードキャストサーバー300との接続を確立できるように、NATファイアーウォールの背後のクライアント装置200のパブリックIPアドレスの発見を容易にするSTUN322プロトコル(Session Traversal Utilities for NATs)(2)単一のTCP/IP接続を介した高速な双方向のクライアント−サーバー通信を容易にするWebSocket326プロトコル(3)標準HTML5ウェブブラウザ230のようなクライアントウェブブラウザとの頻度の低い標準的な通信に使用されるHTTP328を含む標準ライブラリ320も活用する。
仮想ブロードキャストサーバー300は、クライアントノードから得られるパフォーマンスメトリックを継続的に分析し、オーバーレイネットワーク100に沿ったこれらクライアントノードの間で配信されるビデオコンテンツのチャネルのためのルーティング経路を動的に再構成するものの、オーバーレイネットワーク100上のクライアントノードではないため、WebRTC222およびアダプティブストリーミング224規格をサポートする必要がない。
仮想ブロードキャストサーバー300は、オーバーレイネットワーク100、特に仮想データトランクオーバーレイネットワークの「チャネル発信元」の起点として機能する。一の実施形態では、POIコンテンツサーバー380は、ビデオセグメントに対するHTTPリクエストを発行するために、(可能であれば好ましくはそのASN内の)1個あるいは複数の近くのAノードを指定する。これらのAノードは、仮想データトランクオーバーレイネットワークのルートとして事実上機能し、各ビデオセグメントをASN内およびASN間で他のAノードにプッシュし、最終的に各ASN内のスワームオーバーレイネットワークを介して他のノードにプッシュする。
POIコンテンツサーバー380を参照しつつより詳細に後述するように、このような「チャネル発信元」の機能は、ブラウザ・トゥ・ブラウザビデオストリーミングを対象とする標準WebRTC222およびアダプティブストリーミング224ライブラリの使用を必要としない。上述のように、POIコンテンツサーバー380は、オーバーレイネットワーク100に沿って現在のビデオセグメントを時間内に受信していないクライアントノードのために、ビデオセグメントの臨時の代替(フォールバック)ソースとしても機能する。このようなクライアントノードは、HTTPリクエストを発行し、POIコンテンツサーバー380は、要求されたビデオセグメントをそれらに送信することで、これに応答する。
上述したように、ビデオコンテンツがアップロード部280を介してあるいはより伝統的なCDNを介してクライアント装置200から得られたかにかかわらず(また、それがリアルタイムで仮想ブロードキャストサーバー300にストリーミングされたか、あるいは後のストリーミングのために予め提供されたかにかかわらず)、POIコンテンツサーバー380は、全てのビデオチャネル(一の実施形態では)の起点として機能する。
チャネル管理部385は、各チャネルの設定および維持を担当し、POIコンテンツサーバー380はクライアントノードへのチャネルとしてストリーミングするためのビデオコンテンツ自身を準備する。一の実施形態では、チャネル管理部385は、インターネットを介してPOIコンテンツサーバー380により配信されるチャネルウェブページを生成して維持し、特定のチャネルに参加しようとするクライアント装置200からの参加リクエストに応答する際に、シグナリングサーバー330によって使用する。
サポートの目的で、チャネル特有および地域特有の問題(例えば、特定の地理的領域から生じるサポートコール)に対処できるように、クライアント装置200が問題を経験している個々の視聴者をサポートする「視聴者サポートコンソール」と、全てのビデオチャネルをライブで監視する「プレイアウトセンター」とがチャネル管理部385によって確立されて維持される。これらのサポート機能にならびにビデオセグメントの発信元(例えばCDN)にとって有用なデータを供給するために、チャネル管理部385によって「チャネル解析」のリアルタイムの監視も維持される。例えば、解析は、オーバーレイネットワーク100に沿った各ビデオチャネルやネットワークノードの現在の状態、ならびにビデオビットレート、輻輳ポイント、ノード待ち時間等に関するラストマイルおよび他の問題に関するリアルタイムのメトリックを含む。
最終的に、「チャネル管理」の機能は、クライアント装置200との通信を容易にするために必要な現在の情報を有するように(例えば、チャネルへの参加、クライアントに監視されたパフォーマンスメトリックの提供、ルーティングや中継対象についての解像度あるいはビットレートの変化等に関して)、ビデオチャネルやシグナリングサーバー330とのインターフェースを管理するために提供される。
図3に示す残りのサーバー側の機能は、スプラッシュ抽出部390を除いて、単純化のために、ビデオコンテンツの単一チャネルの状況で説明する。しかしながら、一の実施形態では、この機能は、複数のチャネルに対していつでも、そして種々のデジタルコンテンツに対して同時に実行されることに留意されたい。
クライアントノードがビデオチャネルにアクセスする前に、ビデオコンテンツはトランスコードされて、複数のより解像度の低いビデオセグメントのストリームが作成される。一の実施形態では、POIコンテンツサーバー380は、クライアント装置200内の標準HTML5ウェブブラウザ230と通信できるHTTP228サーバーとして実装される。頻繁な双方向通信(例えば、経路の変化やパフォーマンスデータ等の交換)のためにクライアント装置200とのWebSocket225通信を確立するシグナリングサーバー330とは異なり、POIコンテンツサーバー380は、マニフェストファイルや、オーバーレイネットワーク110を介して時間内に到達しなかった臨時のビデオセグメント等のために、標準HTML5ウェブブラウザ230からの比較的まれなクライアントHTP228リクエストに応答する。
上述のように、POIコンテンツサーバー380はまた、(仮想データトランクネットワークのルートにある、典型的にはPOIコンテンツサーバー380として同じASN内にある、あるいは1個あるいは2個のホップ以内にある)近くのAノードからのビデオセグメントに対するHTTPリクエストに応答することで、より高い帯域幅のチャネル発信機能を実装するために、HTTP228プロトコルにも依存している。別の実施形態では、これらのビデオセグメントは、WebRTC222およびアダプティブストリーミング224規格に従って、あるいは他のビデオストリーミング技術(上述のようにアップロード部280を使用したシャワーイングプロトコルを含む)を介して、これらのAノードにプッシュされる。
一の実施形態では、POIコンテンツサーバー380は、ビデオコンテンツを3つの異なる解像度(1080p、720pおよび480p)にトランスコードし、別の実施形態では、全てのビデオコンテンツのための単一の固定された解像度を含む、様々な他のより高いおよびより低い解像度(例えば、4K、30VR、180VR、240p等)がサポートされる。元のソースビデオがより低い解像度(例えば、720p)で提供される場合、そのビデオチャネルに対しては、720pおよび480pの解像度のみがサポートできる。この機能は、(上述のように)クライアントノードによって開始されようと、クライアントパフォーマンスメトリックの解析に基づき仮想ブロードキャストサーバー300によって開始されようとも、アダプティブビットレートストリーミングを容易にする。
一の実施形態では、POIコンテンツサーバー380は、HTTPリクエストに応答して、オーバーレイネットワーク100に沿って各ビデオセグメントのプッシュを開始する1個あるいは複数の近傍のノード(通常はAノード)に各ビデオセグメントの全ての利用可能なバージョン(例えば、3つの異なる解像度)を提供することで、チャネルを開始する。別の実施形態では、これらのノードは、全てのノードがアダプティブストリーミング224機能を活用できるように、全てのバージョンをBノード(およびB:Aノード)に中継して最終的にはCノードに中継する。より詳細に後述するように、他のノードに複数の解像度を中継するノードは、ビデオセグメントのこれら複数のバージョンを、オーバーレイネットワーク100を介して他のクライアントノードに「ポリキャスト」する。
POIコンテンツサーバー380は、(HTTPに応答して)1個あるいは複数の近傍のノードにビデオセグメントを提供することでチャネルを開始し、全てのクライアント視聴ノードは実質的に同時に各ビデオセグメントを受信して視聴する、すなわち、先のビデオセグメントの再生が終了する前に各ビデオセグメントがオーバーレイネットワーク100を横断するという条件で、それらは全て同期している点に留意されたい。この実施形態では、クライアント装置200は少なくとも3個のビデオセグメントをバッファーするため、このバッファーは、ビデオセグメントがときどき遅延する場合に、ある程度の「許容誤差」を提供する。さらに、別の実施形態では、POIコンテンツサーバー380が最初にチャネルを「ブロードキャスト」する際に、チャネルの開始を遅らせて、追加のバッファリングを提供することができる。クライアント装置200がフォールバックPOIコンテンツサーバー380から直接ビデオセグメントを求めるリクエストを発行すると(例えば、ビデオセグメントがオーバーレイネットワーク100を介して時間内に到着しないために)、ビデオセグメントが1個あるいは複数のASNを横切る場合には、そのバッファーが必要となることがある。
上述のように、POIコンテンツサーバー380はまた、クライアント装置200からのリクエストに応答して、マニフェストファイルを定期的に提供する。これらのマニフェストファイルは標準HTTP328プロトコルを介して配信されるが、それらは比較的小さくビデオセグメントよりもはるかに時間がかからない。一の実施形態では、各マニフェストファイルは、様々な利用可能なビットレートでの次の8個のビデオセグメントの位置を特定する。この実施形態では、ビデオセグメントがオーバーレイネットワーク100を介して各クライアント装置200にプッシュされるため、位置はPOIコンテンツサーバー380上のフォールバック位置である。
ビデオコンテンツのチャネルがストリーミングする(POIコンテンツサーバー380で開始する)ために準備されると、シグナリングサーバー330はクライアント装置200からの参加リクエストを待つ。クライアント装置200からそのチャネルに対する参加リクエストを受信すると、シグナリングサーバー330はSTUN322プロトコルに頼って、そのクライアント装置200に存在する可能性のある任意のNATファイアーウォールを介してWebSocket326接続を確立できることを保証する。さらに、クライアント装置200のパブリックIPアドレスを識別することで、パブリンクIPアドレスを他のクライアントノードに提供できる(例えば、そのクライアント装置200にビデオセグメントを中継するために)。
WebSocket326接続が確立すると、クライアント装置200は、一の実施形態では、クライアント装置200がCノードであるかどうか(例えば、この実施形態ではセルラー接続のために想定される)を含むその能力(例えば、OS、ウェブブラウザおよび3G、4G、WiFi、LAN等の接続タイプ)に関する情報をシグナリングサーバー330に提供する。クライアント装置200はまた、オーバーレイネットワーク100にクライアント装置200を追加するために後に使用されるそのASN位置をシグナリングサーバー330に提供する。
一の実施形態では、シグナリングサーバー330は、チャネルのビデオコンテンツの再生をできるだけ早く開始できるように、(オーバーレイネットワーク100を介して)1個あるいは複数の最初のビデオセグメントのクライアント装置200への配信を優先する。このプロセスを開始するために、それはオーバーレイネットワーク生成部350に制御を移し、オーバーレイネットワーク生成部350は、(例えば、クライアント装置200にビデオセグメントを中継するそのASN内のBノードを指示することで)、そのASN内のスワームオーバーレイネットワークにクライアント装置200を追加する。クライアント装置200はまだ分類されておらず、他のクライアントノードにビデオセグメントを中継していなことに留意されたい。しかしながら、オーバーレイネットワーク100の一部であることで、クライアント装置200は、ビデオセグメントの受信およびチャネルのビデオコンテンツの再生を開始でき、その分類を容易にするクライアントパフォーマンスメトリックを収集できる。
次に、シグナリングサーバー330は、(WebSocket326接続を介して)クライアント装置200のアップストリームおよびダウンストリームの帯域幅を取得する。(シグナリングサーバー330がクライアント装置200のASN位置を知っていても)コネクションは複数のASNを通過する可能性があるので、このメトリックはあまり有用でないことに留意されたい。より関連性のあるメトリックは、クライアント装置200とそれ自身のASN内の他のクライアントノードとの間の通信に関係する。
(クライアント装置200のパフォーマンス監視部240によって収集された)クライアントパフォーマンス情報をクライアント装置200(および他のクライアントノード)から受信すると、シグナリングサーバー330は、後述するように、次のビデオセグメントのためにクライアントノードを動的に再分類してオーバーレイネットワーク100を動的に再構成する際のオーバーレイネットワーク生成部350およびディープマッパー360による初期分析および次の利用のために、その情報をパフォーマンス追跡部340に転送する。パフォーマンス追跡部340は各クライアントノードのパフォーマンスを監視して、クライアントノードがまだ「生きている」かどうかを判定する。例えば、クライアント装置200が接続を閉じてチャネルから離れている、あるいは閾時間内に「ピング」に応答しない場合は、(意図的であるか、ハードウェアあるいはソフトウェアの障害の結果であるかにかかわらず)それはチャネルを去ったと見なされる。パフォーマンス追跡部340はまた、履歴パフォーマンスデータベース345に記憶して、オーバーレイネットワーク生成部350およびディープマッパー360で使用するのに適切なフォーマットにクライアントパフォーマンスメトリックを変換する。
一の実施形態では、オーバーレイネットワーク生成部350はまた、ディープマッパー360の助けを借りて、現在および過去のクライアントパフォーマンスメトリック(履歴パフォーマンスデータベース345に維持される)を評価する連続的なプロセスを担当し、各ビデオセグメントについて動的に(1)クライアントノードを再分類し、(2)(ASN内およびASN間のAノードの間でビデオセグメントを中継するための)仮想データトランクオーバーレイネットワークおよび(ASN内の各Aノードから、そのASN内の特定の他のB:A、BおよびCノードにビデオセグメントを中継するための)スワームオーバーレイネットワークを含むオーバーレイネットワーク100を生成して再構成することで、ルーティング経路を最適化する。オーバーレイネットワーク100のトポロジーは、オーバーレイネットワーク生成部375およびディープマッパー360の使用のために、オーバーレイネットワークデータベース375に維持される。
新たに追加されたクライアント装置200から受信されたパフォーマンスメトリックに関して、オーバーレイネットワーク生成部350は、クライアント装置200を最初に分類するためにこれらのメトリックを利用する。一の実施形態では、このプロセスは、(単にそれらがチャネルに参加するときではなく)全てのビデオセグメントについてクライアントノードを潜在的に再分類するためにも使用される。クライアントノードは通常頻繁には再分類されないが、クライアントは、(例えば、家庭用のマイクロ波あるいは他の干渉からの)帯域幅の一時的な低下を経験することがある。また、(例えば、冗長性あるいはチャネルを離れるクライアントノードのために)より多くのAノードが必要とされると、B:AノードはAノードに昇格しうる。ASN内あるいはASN間で検出された他の問題は、特定のノードの再分類を要求する可能性がある。
オーバーレイネットワーク生成部350は、クライアント装置200の着信および発信スロット(すなわち、ネットワークポート)に割り当てられ、他のクライアントノードからプッシュされたビデオセグメントのチャンクを(着信スロットを介して)受信して、ビデオセグメントのそれらのチャンクを(発信スロットを介して)他のクライアントノードに中継(プッシュ)できる。WebRTC224規格は、着信および発信ポート(スロット)をサポートするが、一の実施形態では、(クライアント装置200で再生可能なビデオコンテンツの質を最大化するために)単一の着信スロットだけが割り当てられ、(オーバーレイネットワーク100に沿ったスループットを最大化して、クライアント装置200と有限の帯域幅との接続を広範囲にサポートするために)最大8個の発信スロットが割り当てられる。上述のように、Aノードは、ASNピアリングポイントを介して他のAノードにビデオセグメントを中継するための4個の発信スロットと、そのASN内の他のAノードにビデオセグメントを中継するための4個の発信スロットとに割り当てられる。後述するように、与えられた時点で全ての割り当てられたスロットが必ずしも使用されるわけではない。
オーバーレイネットワーク生成部350は、クライアント装置200のダウンストリームおよびアップストリームの帯域幅を分析して、分類プロセスを容易にする。上述のように、クライアント装置200がセルラー接続(3G、4GさらにはLTE)を介して参加すると、それは、ビデオセグメントを中継するには信頼性が低すぎると自動的に見なされ、したがってCノードに分類される。別の実施形態では、そのような自動分類は、特定のセルラー接続(例えば、3G)に限定されてもよいし、全く無くてもよい。
一の実施形態では、オーバーレイネットワーク生成部350は、(1)LAN接続(例えば、100/100)(2)ファイバー接続(100/50)(3)ADSL接続(100/20)、ケーブル接続(100/10)およびWiFi接続(大幅に異なる)を含むさらなる分類を容易にするため、典型的なダウンストリーム/アップストリーム帯域幅(Mbps)のカテゴリーを使用する。この実施形態では、クライアント装置200が既にCノードであると見なされておらず、少なくとも50Mbpsのアップストリーム帯域幅を有する場合、それはAノード(あるいは、ディープマッパー360がそのASN内に追加のAノードが必要ないことを示す場合はB:A)に最初分類される。それ以外の場合には、それはBノードに分類される。
後述するように、オーバーレイネットワーク生成部350は、(一の実施形態では)クライアント装置200のアップストリーム帯域幅をさらに分析して、オーバーレイネットワーク100を動的に再構成すべき範囲(もしあれば)を決定する前に、利用可能な発信スロットの数を計算する。また、クライアント装置200が複数の解像度を受信および/またはポリキャストできる範囲も決定する。
一の実施形態では、クライアントノードの全ダウンストリーム帯域幅は、その単一の着信スロットに対して利用され、そのアップストリーム帯域幅の3分の1だけが、その発信スロットの間でビデオセグメントを中継するために使用される。ビデオセグメントの中継がTCP/IPおよびクライアント装置200が他のアプリケーションのために使う他の接続を妨げるおそれがあるため、全てのアップストリーム帯域幅を使用はしない。
オーバーレイネットワーク生成部350は、(たとえCノードに分類されていても)クライアント装置200のダウンストリーム帯域幅を分析して、単一の着信スロットを介してサポートできる解像度の数を決定する。例えば、1080pが3Mbpsのビットレートを必要とし、720pが1.5Mbpsのビットレートを必要とし、480pが500Kbpsのビットレートを必要とする場合、クライアント装置200は、3個の全ての解像度をサポートするためには少なくとも5Mbpsのダウンストリーム帯域幅を必要とし、1080pおよび720pをサポートするためには少なくとも4.5Mbpsを必要とし、1080pのみをサポートするためには少なくとも3Mbpsを必要とし720pおよび480pをサポートするためには2Mbpsを必要とし、720pのみをサポートするためには1.5Mbpsを必要とし、480pのみをサポートするためには少なくとも500Kbpsを必要とする。一の実施形態では、500Kbps未満のビットレートはサポートされない。別の実施形態では、より低い解像度がサポートされてもよく、他の技術(例えば、より大きな圧縮や異なるビデオフォーマット等)を用いて帯域幅の要求を軽減してもよい。
上述したように、一の実施形態では、A、B:AおよびBノードは、1個あるいは複数の発信スロットを介して他のノードに複数の解像度を中継できるポリキャスティングノードと見なすこともできる。これに関して、オーバーレイネットワーク生成部350は、クライアント装置200のアップストリーム帯域幅を分析して、それが他のクライアントノードに中継できる解像度の数を決定する。
この実施形態では、クライアントノードはアップストリーム帯域幅の3分の1のみを使用できるため、クライアント装置200は、3個全ての解像度をポリキャストするためには(発信スロットあたり)少なくとも15Mbpsのアップストリーム帯域幅を必要とし、1080pおよび720pをポリキャストするためには(発信スロットあたり)13.5Mbpsを必要とし、1080pのみを送信するためには(発信スロットあたり)9Mbpsを必要とし、720pおよび480pをポリキャストするためには(発信スロットあたり)6Mbpsを必要とし、720pのみを中継するためには(発信スロットあたり)4.5Mbpsを必要とし、480pのみを中継するためには(発信スロットあたり)1.5Mbpsを必要とする。
クライアント装置200は、受信できない解像度は中継できない。さらに、後述するように、クライアント装置200のポリキャスティング能力は、他のクライアントノードが複数の解像度を受信する能力と併せて考慮される。しかしながら、上述のように、クライアント装置200は、その帯域幅の大きな変化を経験すると、ビデオセグメントのより低いあるいはより高い解像度のバージョンを要求するアダプティブストリーミング224実装を使用する。もし、ビデオセグメントの複数の異なる解像度を受信すると、それは受信した最高の解像度を単に再生する。
クライアント装置200がCノードでないと仮定すると、オーバーレイネットワーク生成部350は、そのアップストリーム帯域幅を分析するともに、それが複数の解像度をポリキャストできる範囲を考慮することで、利用可能な発信スロットの数を計算する。例えば、100Mbpsのアップストリーム帯域幅を有するLAN接続を伴うAノードにクライアント装置200が分類されている場合、それは、そのASN内およびASN間の両方でビデオセグメントをポリキャストするのに約6個の発信スロットのみを使用できる。この実施形態では、オーバーレイネットワーク生成部350は、ASN間で他のAノードにポリキャストを行うのに4個のスロットを割り当て(これらASN間のスロットを優先し)、そのASN内で他のAノードにポリキャスティングを行うために2個の残りのスロットを置いておく。別の実施形態では、これらの割り当ては、もちろん本発明の精神から逸脱せずに変更できる。
同様に、10Mbpsのアップストリーム帯域幅を有するケーブル接続を伴うB:AあるいはBノードにクライアント装置200が分類されている場合、それは、720pおよび480pのポリキャストあるいは1080pのみの送信に、1個の発信スロットのみを使用できる。一の実施形態では、(ノードがその解像度を受信できる範囲で)より高品質の解像度が優先され、したがって、1個のスロットが1080pのみに割り当てられる。ここでもまた、これらの割り当ては、本発明の精神から逸脱せずに変更できる。
クライアント装置200を分類して、利用可能なスロットの数を決定すると(複数の解像度のポリキャストを含む)、オーバーレイネットワーク生成部350は、オーバーレイネットワーク100を動的に再構成してルーティング経路を最適化する範囲を決定し、クライアント装置200がAノードの場合、オーバーレイネットワーク生成部350は(より詳細に後述するように)、最初にAノード間の各ASN間の経路の輻輳レベルをディープマッパー360から取得して、クライアント装置200を組み込むために仮想データトランクオーバーレイネットワークの少なくとも一部を動的に再構成する。
例えば、(各経路が「輻輳レベル」の重みを有する)重み付けされた経路のセットが与えられると、オーバーレイネットワーク生成部350は、標準的な経路検出技術を用いて、Aノード間でビデオセグメントを配信するための最適な経路を決定する(例えば、GPSナビゲーションのルーティングに類似している)。ただし、例えばASN内のAノードへ中継するAノード用の4個の発信スロットと、ASNピアリングポイントを経由してAノードに中継するAノード用の4個の発信スロットといった複数の中継スロットを用いることで、このプロセスは若干複雑になることに留意されたい。しかしながら、これは、Aノードが1個の発信スロットのみを有する最も単純なケースのわずかな変更である。言い換えれば、オーバーレイネットワーク生成部350は、仮想データトランクオーバーレイネットワークの生成あるいは再構成の間に、空いている(未使用の)スロットの数を追跡し、未使用の空いているスロットがなくなると、特定のAノードを中継元として割り当てるのを停止する。
クライアント装置200がB:AあるいはBノードの場合、オーバーレイネットワーク生成部350は、クライアント装置200が存在するASN内におけるASN内スワームオーバーレイネットワークの一部あるいは全部を動的に再構成する。そのASN内に複数のAノードがある場合、お互いの間のそれらの経路は、仮想データトランクオーバーレイネットワークの一部として決定されることに留意されたい。一の実施形態では、(仮に十分なスロットが利用可能でも)、スワームオーバーレイネットワークを生成するのに1個のAノードのみが使用され、別の実施形態では、他のノードは複数のAノードの間で等しく割り当てられてもよく、あるいは相対的なアップストリーム帯域幅もしくは他のメトリックに基づいて分配されてもよい。
ASN内の任意の特定のAノード、残りのB、B:AおよびCノードに関して、これらのノードは、それらの分類(すなわち、B:A、次にB、次にC)に基づき最初ランク付けされ、次にそれらの相対的な帯域幅(すなわち、上述のような利用可能なスロットの数)に基づいてランク付けされる。この実施形態では、各ノードが単一の供給ノードしか持たない場合、スワームオーバーレイネットワークは階層的であることに留意されたい。他の実施形態では、同様の技術を非階層的な「メッシュ」スワームに用いることができる。
この階層的スワームの実施形態では、特定個数の利用可能な発信スロット(例えば、2個の発信スロット)を有するルートのAノードからプロセスが始まる。これらのスロットは、階層の次のレベルにルーティングされる(例えば、利用可能なスロットの数が最も多い2個のB:Aノード)。これらの経路が決定されると、これらのノードの利用可能な発信スロットが、利用可能なスロットの個数が最も多い残りのB:Aノードにルーティングされる。このプロセスは、全ての経路が決定されるまで、階層を下向きに(Bノードを通り、最後にCノード)に進む。
任意のクライアントノード(例えば、それぞれ単一の発信スロットを有する100個のクライアントノード)の下のチェーンの長さは、ASN内のノード間での中継が比較的高速(1ミリ秒以下)であることを考えると、比較的ほとんど問題にならないことに留意されたい。1秒のビデオセグメントが与えられても、何百ものノードのチェーンに対応できる(ASN内のこのような多くのノードは複数の送信スロットをサポートするであろうことから、それらは稀であるが)。全てのノードをスワーム内に含めることができない場合(例えば、利用可能なスロットが無いCノードおよびBノードが未確認のままであった場合)、そのASN内に空いているスロットを有する追加のノードが必要となり、これらは利用可能となるとともに割り当てられる。その間に、このようなノードは、POIコンテンツサーバー380からのビデオセグメントを要求するように指示される。
ASNピアリングポイントを経由する輻輳レベルを(例えば、次の1分について)予想して定量化するディープマッパー360に移る前に、ASNピアリングポイントの輻輳の重要性を理解するためにBGPルーティングプロトコルの限界を理解することは有益である。BGPルーターは、「ルーティング時間」に輻輳を判断し、予測能力を有さない。それらは、自身のルーターと、ASNピアリングポイントから「1ホップ離れた」待ち時間のみを認識する。それらは、複数のASNピアリングポイントを経由して複数ホップ離れているかもしれない任意の最終的な目的地へのホップ数や待ち時間を認識していない。複数のASNピアリングポイントの選択肢が与えられると、それらは本質的に、その時点で最も利用可能な帯域幅を有する1個(すなわち、空いているスロットと1ホップ離れた最短の待ち時間を有する1個)を選択する。
対照的に、ディープマッパー360は、インターネットの下層のアーキテクチャの知識を活用する。一の実施形態では、ディープマッパー360は、図1で概略的に示された、(ASNおよびそれらの様々なピアリングポイントの相互接続を含む)インターネットのASN相互接続マップを維持する。このマップは頻繁には変化しないが、一の実施形態では、このような稀な変化を5分ごとにキャプチャーする。
しかしながら、これらのASN上に構築されたオーバーレイネットワーク100は、(例えば、上述のクライアント側の監視を介して)頻繁に分析され、仮想ブロードキャストサーバー300によってビデオセグメントごとに(例えば、一の実施形態では毎秒)に再構成される可能性がある。しかしながら、実際には、オーバーレイネットワーク100は、必要なときにのみ、例えば新たなノードが参加あるいはチャネルから離れるときのみならず、(現在情報および履歴パフォーマンスデータベース345に維持される履歴情報に基づき)重大な問題が検出されたときに、実際に修正される。
例えば、一の実施形態では、複数の固有の「輻輳閾値」が用いられる。特定のクライアント装置200あるいはASN内に比較的低い輻輳の閾値を最初に検出すると、オーバーレイネットワーク生成部350は、クライアント装置200あるいはASNを単に「マーク」して、(例えば次のビデオセグメントで)問題が繰り返されるのを待つ。繰り返されれば、そのクライアントノード(あるいは、その「問題」のASN内の全てのクライアントノード)に中継される次のセグメントの解像度(したがって、ビットレート)を低下させる。結果的に、問題が悪化した場合(例えば、より高い輻輳閾値を超える場合)、オーバーレイネットワーク100の一部(例えば、ASN内のサブセットIPレンジ)が動的に再構成される。最終的にASN全体あるいはおそらく仮想データトランクオーバーレイネットワーク自体が動的な再構成を必要とする可能性がある。
いずれにしても、これらの輻輳閾値の目標は、ビデオセグメントの消失の要因となり、あるいはクライアントノードがPOIコンテンツサーバー380のフォールバック位置からビデオセグメントを取得するのに頼る要因とさえなるより重大な問題に悪化する前に、先回りして問題を特定して修正することである。
インターネットのASN相互接続マップおよびオーバーレイネットワーク100上のノードのASN位置の認識を維持し、これらのノードの現在および過去のパフォーマンスをリアルタイムで監視することで、ディープマッパー360は、任意のクライアントノードが遠くのクライアントノード(例えば、複数のASNピアリングポイントを経由して多くのホップ離れた)にビデオセグメントを不要に中継する可能性を最小化する。例えば、一の実施形態の最初の考慮すべき事柄として、仮想データトランクオーバーレイネットワークは、一のAノードから、同一のASN内あるいは単一のASNピアリングポイントを経由する近くのASN内の他のAノードにビデオセグメントを(可能であれば)ルーティングする傾向にある。
ただし、全てのホップが均等に作成されているわけではない。例えば、ディープマッパー360は、(履歴パフォーマンスデータベース345に維持されるクライアントパフォーマンスメトリックに基づいて)、「ASN1」と「ASN2」との間のピアリングポイントが輻輳していることを経時的に「学習」し、「ASN1」から「AS3」を介して「ASN2」に至る2ホップの経路が現在の1ホップの経路よりも実際に高速であると(あるいは、最近および過去の傾向に基づいて非常に近い将来高速になるであろうと)予測できる。ピアリングポイントを経由するAノードの現在および過去の実際のパフォーマンスに基づいてピアリングポイントの輻輳を定量化することで、ディープマッパー360は、潜在的には全てのビデオセグメントについて、あるいは(固有の閾値に基づき)少なくともピアリングポイントの輻輳がそのような変更を必要とするときに、仮想データトランクオーバーレイネットワークのトポロジーの動的な再構成を容易にする。
一の実施形態では、ディープマッパー360は、(それらが同じASNに存在するか異なるASNに存在するかにかかわらず)、1が予想される短期間の輻輳の最小レベルであり、10が最高である1から10のスケールを用いて、Aノードの各ペアについて輻輳を定量化する。上述のように、オーバーレイネットワーク生成部350は、この輻輳レベル「スコア」を用いて、Aノード間の潜在的な異なる経路を比較して、最も効率的な経路(すなわち、「重み付けのホップ」が最も少ない経路)を決定する。その結果、POIコンテンツサーバー380から(重み付けホップにおいて)最も「遠い」Aノードは、POIコンテンツサーバー380からそのようなAノードに向けて仮想データトランクオーバーレイネットワークをビデオセグメントが横断するのに必要となる時間を最小にする。
一の実施形態では、Aノードの各ペアについて、ディープマッパー360は一のAノードから他への各経路について予測輻輳レベルスコアを生成し、次にAノードのそのペアに対して適用される最低の輻輳レベルスコアを選択して、それをオーバーレイネットワーク350に返す。別の実施形態では、ディープマッパー360は、(一のAノードから他への各経路について)平均値や中央値のような)これらの予測輻輳レベルスコアの異なる機能を生成する。
一の実施形態では、ディープマッパー360は、履歴パフォーマンスデータベース345に維持されるパフォーマンスメトリックを継続的に分析するディープラーニングエンジンであり、(例えば、1分後の)ASNピアリングポイントを経由する輻輳のレベルを予測する。任意のディープラーニングエンジンと同様に、ディープマッパー360は、ピアリングポイントを介するAノード間のトラフィックに関して、複数の非線形変換を使用して、ASNピアリングポイントの動作をモデル化することに留意されたい。
上述のように、これらのピアリングポイントを横切るインターネットトラフィックの大部分を効果的に監視することはできないが、これらのピアリングポイントを介したAノード間のASN間のホップにおけるこれらのトラフィックが有する経時的影響のみである。より多くのパフォーマンスメトリックが得られるほど、このようなASN間のホップに求められる時間をよりよく予測して、相対的輻輳レベルとして(例えば、この実施形態では監視されるが、通常輻輳が極めて少ないASN内と比較して)定量化できる。
ピアリングポイントでの輻輳レベルは非常に動的であるので、このような予測は短期間でのみ正確である。しかしながら、この分析が継続的に行われ、次の1秒のビデオセグメントのために変更する可能性があるため、長期間において予想が正確であることは重要ではない。
一の実施形態では、ディープマッパー360は最初、非常に粗い情報(すなわち、クライアントパフォーマンスメトリックの多くが取得される前)に基づき、ASNピアリングポイントを定量化する。例えば、ASNが1000個のピアリングポイントを有する場合、それは、6個のピアリングを持つ他のASNよりはるかに高速なバックボーンと見なすことができる。より多くのクライアントパフォーマンスメトリックが得られると、これらのASNピアリングポイントの輻輳レベルもより正確になる。別の実施形態では、複数の「学習ノード」が展開されて、新しいチャネルの「早い開始」が行われる。これらの学習ノードは、送信のみのノードでありビデオを視聴しないが、クライアントパフォーマンス情報を迅速に提供するためだけに展開されており、ディープマッパー360は、そうでない場合よりも早くてより正確な予測を開始できる。
さらに、一の実施形態では、ディープマッパー360は、ASN内の輻輳も考慮しており、例えば、ASN内の追加のAノード、したがって追加のスワームオーバーレイネットワークの作成の必要性を提案できる。例えば、ASN内の多くのクライアントノードが経時的にビデオセグメントの取得に徐々に長い時間を要するようになった場合、ディープマッパー360はそのASNをマークして、追加のAノードが必要であることを示し、オーバーレイネットワーク生成部360は、1個あるいは複数のB:AノードをAノードへと「昇格」させ、その結果、仮想データトランクオーバーレイネットワークを部分的に再構成し、ASN内の新たなスワームオーバーレイネットワークを最終的に要求する。別の実施形態では、ディープマッパー360は、各ASN内でディープラーニング技術を適用して、オーバーレイネットワーク生成部350がASN内スワームオーバーレイネットワークを生成するのを支援する。
したがって、オーバーレイネットワーク生成部350およびディープマッパー360は、インターネットの下層のアーキテクチャ(ASN相互接続マップ)およびこのアーキテクチャの上に重ねられたクライアントノードのASN位置に基づき(オーバーレイネットワーク100を介して)クライアントノード間で経路を確立するために協働して動作し、(例えば、複数のASNピアリングポイントを介した)不必要な遠い経路を介したビデオセグメントの中継を最小限に抑える。さらに、オーバーレイネットワーク生成部350およびディープマッパー360は、クライアント装置200から取得されたクライアントパフォーマンスメトリックをリアルタイムに継続的に分析して、(しばしばASNピアリングポイントでの輻輳に起因する)重大な問題をこれらのメトリックが明らかにする場合にオーバーレイネットワーク100を動的に再構成するために、協働して動作する。結果として、インターネットのQoSの変動性を監視でき、(ディープマッパー360によって生成された予想された輻輳レベルに基づいて)そのような問題に対して「それらが起こる前に」動的に再ルーティングすることで、(特にASNピアリングポイントにおける)輻輳のクライアントノードへの影響を最小化できる。
一の実施形態では、仮想ブロードキャストサーバー300は、トレンドのビデオイベント(スプラッシュ)を識別して、そのようなイベントのドメイン間で検索を行って、POIコンテンツサーバー380からビデオチャネルとして所望のスプラッシュの結果を直ちにストリーミングすることをユーザーに可能とすることを目的とするスプラッシュ抽出部390サーチエンジンを含む(そのようなチャネルは他の形では仮想ブロードキャストサーバー300から利用可能ではなかった)。
一の実施形態では、スプラッシュ抽出部390は、例えばAPIを介して、ツィッター、RSSフィード、レディットおよび数万のオンラインマガジン等の複数のニュースソースから継続的にデータを収集する。平均して何千もの異なる「現在のイベント」がそのような情報ソースに毎時間現れる。スプラッシュ抽出部390は新規の自動化された方法を使用して、そのようなトレンドのイベント(スプラッシュ)を識別し、POIコンテンツサーバー380を介して取得およびストリーミングが可能な関連するビデオを見つけて抽出する。
スプラッシュ抽出部390は、スプラッシュを検出するために「基準からの偏差」を識別する。例えば、ベースラインは(正規化されたデータを要せずに)例えば、ニュースソースのドメインの間において標準的なレーベンシュタイン比較アルゴリズムを用いることで開発される。平均して、特定の話題が実際にトレンドとなっている場合を除いて、同じ「話題」(すなわち、キーワードの集合)を短期間で議論するソースは数個以下である。その時点で(例えば、15以上のソースが同じ話題を短期間に議論した時点で)、その話題が偏差、すなわちスプラッシュとして識別される。
スプラッシュ抽出部390は次に、一の実施形態では標準的なニューラルネットワーク技術を用いて、「スプラッシュ関連」記事から個別のキーワードを学習して予測することによって、これらのソースから「最重要」のキーワード(例えば、一の実施形態では40個のキーワード)を抽出する。これらのキーワードは、(例えば、ニュース、スポーツ等として)分類され頻度によってランク付けされる。
スプラッシュ抽出部390は次に、これらのキーワードを使って、各スプラッシュに関連するビデオについてソーシャルメディアを検索し、これらの潜在的なスプラッシュビデオチャネルに関連する関連テキストに索引を付ける。ユーザーは、その索引を検索するか、スプラッシュビデオイベントの分類を単に参照することができる。(検索されたか参照されたかにかかわらず)結果を選択すると、ユーザーは所望のビデオを直ちにストリーミングできる。一の実施形態では、ユーザーは、ビデオの現在のソースに単純に接続され、別の実施形態では、ビデオは仮想ブロードキャストサーバー300を介して取得されて、POIコンテンツサーバーからストリーミングされる(多くの同時ユーザーが同じスプラッシュビデオチャネルを要求した場合に例えば有用である)。
動的ビデオストリーミングプロセス
本発明の仮想ブロードキャストシステムの主要なクライアント側およびサーバー側の構成要素について説明したが、図4のフローチャート400はこれらの構成要素がどのように動的に相互作用するかを示す。言い換えれば、フローチャート400は、そのような構成要素によって実施される本発明の動的ストリーミングプロセスの一の実施形態を示す。このプロセスの多くはイベント駆動型であり非線形であるので、フローチャート400は、クライアント側とサーバー側の機能間の相互作用の観点からステップを示すことに留意されたい。
ステップ401は、アップロード部280(および上述)により実行されるプロセスを示し、ビデオイベントが、クライアントノード(例えば、クライアント装置200上のスマートフォンカメラ219)によりキャプチャーされるか、またはデジタル的に生成されるか、または外部ソースから取得される。いずれにしても、クライアント(例えば、クライアント装置200)は、そのビデオイベントのビデオセグメントを(ライブでキャプチャーされたか事前録画されたかにかかわらず)、仮想ブロードキャストサーバー300にストリーミングする。
ビデオイベントが、クライアントから、あるいはより伝統的なCDNから取得されるかにかかわらず(また、それらが事前録画されるかライブでストリーミングされるかにかかわらず)、上述のように仮想ブロードキャストサーバー300はステップ410において、POIコンテンツサーバー380からライブでストリーミングするために各ビデオチャネルを準備する。この時点で、一の実施形態では、チャネルのウェブページが生成されて、いずれは潜在的なクライアントノードに遭遇する。クライアント装置200のユーザーが所望のチャネルをクリックすると、参加リクエストがクライアントの能力(オペレーティングシステム、ブラウザ、接続のタイプ等)とともにシグナリングサーバー330に送信される。あるいは、クライアント装置200のユーザーは、(上述のように)トレンドのスプラッシュビデオイベントに遭遇し、POIコンテンツサーバー380からビデオチャネルとしてストリーミングするために、そのビデオイベント(ステップ410)を選択することができる。
ステップ412では、シグナリングサーバー330は、(例えば、クライアントのパグリックIPアドレスを識別するSTUN322プロトコルを用いて)チャネルに対するクライアントの接続性を検証し、次に、クライアントに存在する可能性のあるNATファイアーウォールを介してWebSocket326接続を確立し、その後に、そのクライアントにビデオセグメントを中継する他のクライアントノードにそのパブリックIPアドレスを提供する。シグナリングサーバー330は、オーバーレイネットワーク生成部350に制御を移し、オーバーレイネットワーク生成部350は、(未分類の)クライアントをノードとしてオーバーレイネットワーク100に追加し、最初のビデオセグメントをそのクライアントにプッシュし(ステップ414)、ユーザーがビデオチャネルの視聴を直ちに開始できる(ステップ415)。
シグナリングサーバー330は、ステップ416において、クライアント装置200をA、B:A、BあるいはCノードとして分類し、ステップ430において、オーバーレイネットワーク生成部350およびディープマッパー360を用いてASN間(仮想データトランク)およびASN内(スワーム)オーバーレイネットワーク100を動的に再構成して、クライアント装置200をネットワークトポロジーに組み込む。次に、シグナリングサーバー330は、クライアント装置200へのビデオセグメントの中継を開始するために、関連経路情報を他のクライアントノードに提供する。
次に、POIコンテンツサーバー380は、ステップ435において、近くのノード(通常はAノード)からのHTTPリクエストに応答して、現在の(再構成された)オーバーレイネットワーク100に沿ったビデオチャネルの起点としてこれらのノードにビデオセグメントをストリーミングし、各ビデオセグメントはクライアント装置200まで中継されてクライアント装置200により視聴されるまで、ノードからノードへと中継される。
クライアント装置200は、チャネルの各ビデオセグメントを視聴するために(潜在的にはまた、ステップ440で他の指定されたクライアントノードにチャンクを中継するために)、ステップ450でチャンクを受信してそれらをコンパイルする間に、パフォーマンス監視部240に関して上述したように、ステップ425でそのパフォーマンスの監視も行い、クライアントパフォーマンスメトリックをシグナリングサーバー330に提供する。さらに、上述のように、ビデオセグメントは、オーバーレイネットワーク100に沿ってクライアント装置200にプッシュされているため、各ビデオセグメントが要求されると、これらの要求は、ステップ455において、(一の実施形態では、受信部250のクライアントジャバスクリプトコードによって)傍受される。ステップ455からステップ425への矢印は、ステップ425での監視プロセスが、ビデオセグメントのチャンクの受信、視聴および中継と並行する連続的なものであることを単に示す。
上述したように、ビデオセグメントが他のクライアントノードからクライアント装置200にプッシュされている場合であっても、クライアント装置200は、POIコンテンツサーバー380からのマニフェストファイル(例えば、次の8個のビデオセグメントの位置を含む)に対するHTTPリクエストを定期的に開始する。時折、ビデオセグメントが時間内に到着しない場合、クライアント装置200は、フォールバック位置としてPOIコンテンツサーバー380から直接そのビデオセグメントを要求する。さらに、時折、アダプティブストリーミング224規格に従って、クライアント装置200は、POIコンテンスサーバー380に連絡して、(例えば、そのパフォーマンスレベルの変化を検出すると)、後続のビデオセグメントのために修正されたビットレートを要求する。しかしながら、上述のように、受信部250は、そのような必要性をより早期に検出し、オーバーレイネットワーク100を介してそのような変更を実行するために仮想ブロードキャストサーバー300に連絡して、より低いあるいはより高い解像度のビデオセグメントをクライアント装置200に自動的にプッシュするように、供給クライアントノードに指示する(すなわち、そのリクエストに応答するのではなく)。
ステップ452では、POIコンテンツサーバー380はそのようなHTTPリクエストに応答して、要求されたマニフェストファイルおよびフォールバックビデオセグメントをクライアント装置200に配信する。上述のように、ビットレートの変更は、オーバーレイネットワーク100を介して(ステップ430で)処理され、その結果、より低いあるいはより高い解像度のビデオセグメントがクライアント装置200にプッシュされる。
ステップ454は、パフォーマンス追跡部340、オーバーレイネットワーク生成部350およびディープマッパー360により実行される(一の実施形態では各ビデオセグメントに対して実行され、詳細が上述されている)連続的なプロセスを包含する。このステップ454では、クライアントパフォーマンス情報が継続的に更新され、必要であれば、ステップ430で(ステップ454からステップ430の矢印に示されるように)、オーバーレイネットワーク110は動的に再構成され、新たなルーティング情報がシグナリングサーバー330を介して関連する中継ノードに提供される。
最後に、ステップ460で、スプラッシュ抽出部390は、上述のように、トレンドのスプラッシュビデオイベントを継続的に識別し、クライアント装置200のユーザーはそれを閲覧あるいは検索し、続いて直ちに視聴するためにストリーミングすることができる。
添付の図面に示された特定の実施形態を参照しつつ、本発明を本明細書で説明してきた。本開示に照らして、本明細書で開示された概念の追加の実施形態が、当業者によって本発明の範囲内で想定され実施されうることを理解すべきである。

Claims (13)

  1. 複数のアプリケーションASNおよびASNピアリングポイントを含むワイドエリアネットワーク上のノード間で同時にデジタルコンテンツをアダプティブにルーティングする仮想ブロードキャストシステムであって、前記ASNピアリングポイントは、それらASNピアリングポイントを経由するネットワークトラフィックが変動するのに応じて頻繁に変動する輻輳レベルを示し、前記仮想ブロードキャストシステムは、
    ASNおよびそれらを相互接続するピアリングポイントのマップと、ASN内のノードの位置とを記憶するメモリーと、
    1個あるいは複数のオーバーレイネットワークに沿ったネットワークトラフィックについて、ASNピアリングポイントでの輻輳を含む、パフォーマンスメトリックを監視するパフォーマンス追跡部と、
    前記メトリックおよび前記マップを経時的に分析し、前記ASNピアリングポイントの経時的に変化する容量を反映した輻輳レベルを予想するディープラーニングエンジンと、
    ノード間でデータを配信するために、前記ワイドエリアネットワークを介してルーティング経路を定義するオーバーレイネットワークトポロジーを記憶するデータベースと、
    予想された輻輳レベルに基づいて前記オーバーレイネットワークトポロジーを動的に再構成して、前記オーバーレイネットワークに沿ったノード間でデジタルコンテンツをルーティングするための最適な経路を生成するオーバーレイネットワーク生成部と
    を備える仮想ブロードキャストシステム。
  2. 請求項1に記載の仮想ブロードキャストシステムであって、
    前記オーバーレイネットワークは、ノードの中継能力を示すパフォーマンスメトリックに基づきノードを分類して、データセグメントを中継する能力を欠いたノードを第3クラスに割り当て、ASN内でデータセグメントを中継する能力を有するノードを第2クラスに割り当て、ASN内およびASN間の両方でデータセグメントを中継する能力を有するノードを第1クラスに割り当て、
    前記オーバーレイネットワーク生成部は、デジタルコンテンツのチャンクの他のノードへの中継および他のノードからの受信をノードが実行できるように、ノードにスロットを割り当てる仮想ブロードキャストシステム。
  3. 請求項1に記載の仮想ブロードキャストシステムであって、
    前記パフォーマンス追跡部はさらに、ノードのパフォーマンスメトリックを監視し、ディープラーニングエンジンおよびオーバーレイネットワーク生成部による使用のためにそれらを記憶する仮想ブロードキャストシステム。
  4. 請求項1に記載の仮想ブロードキャストシステムであって、
    前記オーバーレイネットワークトポロジーは、第1クラスのノードと、ASN内およびASN間において第1クラスのノード間でビデオセグメントが進むルーティング経路とを示す1個あるいは複数のASN間オーバーレイネットワークを備える仮想ブロードキャストシステム。
  5. 請求項1に記載の仮想ブロードキャストシステムであって、
    前記オーバーレイネットワークトポロジーは、第1クラス内から第2および第3クラスのノードにビデオセグメントを中継する1個あるいは複数のASM内オーバーレイネットワークを備える仮想ブロードキャストシステム。
  6. 請求項3に記載の仮想ブロードキャスト方法であって、
    ノードのパフォーマンスメトリックは、既知のサイトに対するピング時間と、デジタルコンテンツセグメントを中継するための合計時間とを備える仮想ブロードキャスト方法。
  7. 複数のアプリケーションASNおよびASNピアリングポイントを含むワイドエリアネットワーク上のノード間で同時にデジタルコンテンツをアダプティブにルーティングする仮想ブロードキャスト方法であって、前記ASNピアリングポイントは、それらASNピアリングポイントを経由するネットワークトラフィックが変動するのに応じて頻繁に変動する輻輳レベルを示し、前記仮想ブロードキャスト方法は、
    ASNおよびそれらを相互接続するピアリングポイントのマップと、ASN内のノードの位置との維持と、
    ノード間でデータを配信するための、前記ワイドエリアネットワークを介したルーティング経路を定義するオーバーレイネットワークトポロジーの生成と、
    1個あるいは複数のオーバーレイネットワークに沿ったネットワークトラフィックについての、ASNピアリングポイントでの輻輳を含むパフォーマンスメトリックの監視と、
    ASNピアリングポイントの経時的に変化する容量を反映した輻輳レベルを予想するための、前記メトリックおよび前記マップの経時的な分析と、
    オーバーレイネットワークに沿ったノード間でのデジタルコンテンツのルーティングのための最適な経路を生成するための、輻輳レベルの予想に基づくオーバーレイネットワークトポロジーの動的な再構成と
    を備える仮想ブロードキャスト方法。
  8. 請求項7に記載の仮想ブロードキャスト方法であって、
    1個あるいは複数のオーバーレイネットワークのトポロジーを生成する工程は、
    ノードの中継能力を示すパフォーマンスメトリックに基づきノードを分類して、データセグメントを中継する能力を欠いたノードを第3クラスに分類し、ASN内でのデータセグメントの中継する能力を有するノードを第2クラスに分類し、ASN内およびASN間の両方でデータセグメントを中継する能力を有するノードを第1クラスに分類し、
    デジタルコンテンツのチャンクを、他のノードに中継するとともに他のノードから受信することをノードができるように、ノードにスロットを割り当てる
    工程を少なくとも含む仮想ブロードキャスト方法
  9. 請求項4に記載の仮想ブロードキャスト方法であって
    1個あるいは複数のオーバーレイネットワークのトポロジーの生成はさらに、
    第1クラスのノードと、ASN内およびASN間において第1クラスのノード間でビデオセグメントが進むルーティング経路とを示す1個あるいは複数のASN間オーバーレイネットワークの生成を備える仮想ブロードキャスト方法。
  10. 請求項8に記載の仮想ブロードキャスト方法であって、
    1個あるいは複数のオーバーレイネットワークのトポロジーの生成はさらに、
    第1クラスから第2および第3クラスのノードにビデオセグメントを中継する1個あるいは複数のASM内オーバーレイネットワークの生成を備える仮想ブロードキャスト方法。
  11. 請求項7に記載の仮想ブロードキャスト方法であって、
    予め定義された輻輳閾値を超えると、オーバーレイネットワークが動的に再構成される仮想ブロードキャスト方法。
  12. 請求項7に記載の仮想ブロードキャスト方法であって、
    ノードのパフォーマンスメトリックは、既知のサイトへのピングタイムと、デジタルコンテンツセグメントを中継するための合計時間とを備える仮想ブロードキャスト方法。
  13. 請求項7に記載の仮想ブロードキャスト方法であって、
    ノードのパフォーマンスメトリックに基づくノードの分類は、それらの中継能力を決定するための、ノードのダウンストリームおよびアップストリーム帯域幅の分析を備える仮想ブロードキャスト方法。
JP2017552535A 2014-12-26 2015-12-23 クライアントノード、仮想ブロードキャストサーバーおよび方法 Active JP6612355B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462096938P 2014-12-26 2014-12-26
US62/096,938 2014-12-26
US14/848,268 US9769536B2 (en) 2014-12-26 2015-09-08 Method and system for adaptive virtual broadcasting of digital content
US14/848,268 2015-09-08
PCT/IB2015/002604 WO2016103051A1 (en) 2014-12-26 2015-12-23 Method and system for adaptive virtual broadcasting of digital content

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019197141A Division JP6839746B2 (ja) 2014-12-26 2019-10-30 仮想ブロードキャストシステムおよび方法

Publications (3)

Publication Number Publication Date
JP2018507660A true JP2018507660A (ja) 2018-03-15
JP2018507660A5 JP2018507660A5 (ja) 2019-05-30
JP6612355B2 JP6612355B2 (ja) 2019-11-27

Family

ID=55066402

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017552535A Active JP6612355B2 (ja) 2014-12-26 2015-12-23 クライアントノード、仮想ブロードキャストサーバーおよび方法
JP2019197141A Active JP6839746B2 (ja) 2014-12-26 2019-10-30 仮想ブロードキャストシステムおよび方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019197141A Active JP6839746B2 (ja) 2014-12-26 2019-10-30 仮想ブロードキャストシステムおよび方法

Country Status (10)

Country Link
US (3) US9769536B2 (ja)
EP (3) EP4160993A1 (ja)
JP (2) JP6612355B2 (ja)
KR (2) KR102462384B1 (ja)
CN (1) CN107223325B (ja)
ES (2) ES2930016T3 (ja)
HK (1) HK1249973A1 (ja)
MX (1) MX370809B (ja)
PL (1) PL3038323T3 (ja)
WO (1) WO2016103051A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019138461A (ja) * 2018-04-13 2019-08-22 バルチラジャパン株式会社 リップシール、シールリング、シールリング装置及び船舶
JP2022545623A (ja) * 2019-08-15 2022-10-28 フル・エルエルシー ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10931338B2 (en) 2001-04-26 2021-02-23 Genghiscomm Holdings, LLC Coordinated multipoint systems
US10644916B1 (en) 2002-05-14 2020-05-05 Genghiscomm Holdings, LLC Spreading and precoding in OFDM
US11381285B1 (en) 2004-08-02 2022-07-05 Genghiscomm Holdings, LLC Transmit pre-coding
US9826011B2 (en) 2014-07-31 2017-11-21 Istreamplanet Co. Method and system for coordinating stream processing at a video streaming platform
US9912707B2 (en) 2014-07-31 2018-03-06 Istreamplanet Co. Method and system for ensuring reliability of unicast video streaming at a video streaming platform
US10142386B2 (en) * 2014-10-29 2018-11-27 DLVR, Inc. Determining manifest file data used in adaptive streaming video delivery
US9762934B2 (en) * 2014-11-04 2017-09-12 Electronics And Telecommunications Research Institute Apparatus and method for verifying broadcast content object identification based on web data
US9769536B2 (en) 2014-12-26 2017-09-19 System73, Inc. Method and system for adaptive virtual broadcasting of digital content
FR3034943B1 (fr) * 2015-04-07 2017-04-14 Streamroot Inc Procede de lecture en continu sur un equipement client d'un contenu diffuse au sein d'un reseau pair a pair
US9686576B2 (en) 2015-05-08 2017-06-20 Istreamplanet Co. Coordination of video stream timing in cloud-based video streaming system
US10164853B2 (en) * 2015-05-29 2018-12-25 Istreamplanet Co., Llc Real-time anomaly mitigation in a cloud-based video streaming system
FR3038180A1 (fr) * 2015-06-26 2016-12-30 Orange Adaptation d'un profil de transmission d'une communication web temps reel
US10594746B1 (en) * 2015-09-30 2020-03-17 Amazon Technologies, Inc. Connection service with network routing
US10735476B1 (en) 2015-09-30 2020-08-04 Amazon Technologies, Inc. Connection service with network routing
WO2017117264A1 (en) * 2015-12-29 2017-07-06 Echostar Technologies L.L.C Remote storage digital video recorder streaming and related methods
US10007591B2 (en) * 2016-01-29 2018-06-26 Sugarcrm Inc. Adaptive content balancing in a web application environment
US10122589B2 (en) * 2016-04-08 2018-11-06 Cisco Technology, Inc. Configuring the design of an industrial automation network
GB2549549B (en) * 2016-04-19 2020-12-23 Cisco Tech Inc A mapping database system for use with content chunks
CN109417509B (zh) 2016-05-13 2021-07-13 瑞典爱立信有限公司 多路径网络中改善的资源使用
US10046236B2 (en) * 2016-06-13 2018-08-14 Sony Interactive Entertainment America, LLC Browser-based cloud gaming
US10965729B2 (en) * 2016-06-14 2021-03-30 Netent Product Services Ltd. Live streaming of media for low-latency applications such as live casino gaming applications
US10826805B2 (en) * 2016-07-11 2020-11-03 Acronis International Gmbh System and method for dynamic online backup optimization
US10405023B2 (en) * 2016-08-16 2019-09-03 At&T Intellectual Property I, L.P. Method and apparatus for providing video content using collaborative end points
US20180062935A1 (en) * 2016-08-25 2018-03-01 Futurewei Technologies, Inc. Hybrid approach with classification for name resolution and producer selection in icn
US10743004B1 (en) 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
US10743003B1 (en) * 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
US9641566B1 (en) * 2016-09-20 2017-05-02 Opentest, Inc. Methods and systems for instantaneous asynchronous media sharing
CN106548645B (zh) * 2016-11-03 2019-07-12 济南博图信息技术有限公司 基于深度学习的车辆路径寻优方法及系统
US10812598B2 (en) * 2016-12-30 2020-10-20 Akamai Technologies, Inc. Unified, browser-based enterprise collaboration platform
US10375453B2 (en) * 2017-02-28 2019-08-06 Digital Broadcasting and Communications Network, LLC Device for industry-specific content streaming
US20180255114A1 (en) * 2017-03-06 2018-09-06 Vyu Labs, Inc. Participant selection for multi-party social media sessions
JP6749281B2 (ja) * 2017-03-23 2020-09-02 エヌ・ティ・ティ・コミュニケーションズ株式会社 IoTデバイス、シグナリングサーバ、メッセージバス管理サーバ、コネクション形成方法、及びプログラム
US10735268B2 (en) 2017-04-21 2020-08-04 System73 Ltd. Predictive overlay network architecture
KR102307447B1 (ko) * 2017-05-02 2021-09-30 삼성전자주식회사 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말
US10637705B1 (en) 2017-05-25 2020-04-28 Genghiscomm Holdings, LLC Peak-to-average-power reduction for OFDM multiple access
US10243773B1 (en) 2017-06-30 2019-03-26 Genghiscomm Holdings, LLC Efficient peak-to-average-power reduction for OFDM and MIMO-OFDM
US10922606B2 (en) 2017-06-13 2021-02-16 International Business Machines Corporation Multi-directional reduction in large scale deep-learning
CN110771122A (zh) * 2017-06-20 2020-02-07 瑞典爱立信有限公司 使内容传送网络能够处理非预期流量激增的方法和网络节点
US10673715B2 (en) * 2017-07-20 2020-06-02 Servicenow, Inc. Splitting network discovery payloads based on degree of relationships between nodes
CN109313484B (zh) * 2017-08-25 2022-02-01 深圳市瑞立视多媒体科技有限公司 虚拟现实交互系统、方法及计算机存储介质
WO2019051605A1 (en) 2017-09-15 2019-03-21 Imagine Communications Corp. SYSTEMS AND METHODS FOR PLAYING FRAGMENTED VIDEO CONTENT
KR102305615B1 (ko) * 2017-10-03 2021-09-27 소니그룹주식회사 업 링크 스트리밍을 위한 네트워크 지원
CN109819285B (zh) * 2017-11-21 2021-09-21 北京乐我无限科技有限责任公司 一种直播方法、装置、电子设备及存储介质
WO2019125445A1 (en) * 2017-12-20 2019-06-27 Visa International Service Association Automated fault detecting control system
US10523979B2 (en) * 2017-12-21 2019-12-31 Vyu Labs, Inc. Streaming live video
CN108365981B (zh) * 2018-02-05 2020-12-01 柳州达迪通信技术股份有限公司 一种实现多信令协议异常号码或者异常协议的跟踪方法
US10791047B2 (en) * 2018-02-19 2020-09-29 Disney Enterprise Inc. Automated network navigation
KR102694572B1 (ko) 2018-02-20 2024-08-13 삼성전자주식회사 완전 연결 네트워크의 데이터 입력 및 출력을 제어하는 방법 및 장치
EP3750284A1 (en) 2018-02-23 2020-12-16 Huawei Technologies Co., Ltd. Advertising and programming preferred path routes using interior gateway protocols
US11381984B2 (en) * 2018-03-27 2022-07-05 Forescout Technologies, Inc. Device classification based on rank
WO2019190699A1 (en) 2018-03-28 2019-10-03 Futurewei Technologies, Inc. Method and apparatus for preferred path route information distribution and maintenance
US10979476B2 (en) 2018-04-16 2021-04-13 Infrared5, Inc. System and method for verifying and providing compensation for participation in real-time streaming of multimedia over a decentralized network
US10848553B2 (en) 2018-04-16 2020-11-24 Infrared5, Inc. System and method for real-time secure multimedia streaming over a decentralized network
WO2019209480A1 (en) * 2018-04-26 2019-10-31 Futurewei Technologies, Inc. Resource reservation and maintenance for preferred path routes in a network
WO2019212678A1 (en) 2018-05-04 2019-11-07 Futurewei Technologies, Inc. Explicit backups and fast re-route mechanisms for preferred path routes in a network
US12058406B2 (en) * 2018-05-11 2024-08-06 Arris Enterprises Llc Broadcast delivered HLS system
WO2019236221A1 (en) 2018-06-04 2019-12-12 Futurewei Technologies, Inc. Preferred path route graphs in a network
KR102080147B1 (ko) * 2018-06-20 2020-02-24 네이버 주식회사 적응형 데이터 전송을 위한 방법 및 시스템
TWI680661B (zh) * 2018-07-20 2019-12-21 茂傑國際股份有限公司 加值遠端顯示服務的無線路由伺服裝置及方法
KR102129115B1 (ko) * 2018-09-28 2020-07-02 한국과학기술원 컨텐츠 인지 신경망을 이용하여 실시간으로 적응형 비디오를 전송하는 방법 및 장치
CN109543818A (zh) * 2018-10-19 2019-03-29 中国科学院计算技术研究所 一种基于深度学习模型的链路评估方法和系统
CN109951392B (zh) * 2019-01-31 2021-07-02 武汉大学 一种基于深度学习的中大型网络智能路由选择方法
FR3094597B1 (fr) * 2019-03-27 2021-06-11 Streamroot Procédé de diffusion de contenus en streaming dans un réseau pair à pair
US11295239B2 (en) 2019-04-17 2022-04-05 International Business Machines Corporation Peer assisted distributed architecture for training machine learning models
US10924786B2 (en) * 2019-05-08 2021-02-16 Nanning Fugui Precision Industrial Co., Ltd. Method for shaping video streams and set-up box using the method
WO2020242898A1 (en) 2019-05-26 2020-12-03 Genghiscomm Holdings, LLC Non-orthogonal multiple access
WO2020243533A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Systems and methods for performance data streaming, performance data file reporting, and performance threshold monitoring
CN112541147A (zh) * 2019-09-23 2021-03-23 北京轻享科技有限公司 一种内容发布管理方法及系统
CN111010341B (zh) * 2019-12-19 2020-10-27 南京大学 一种基于深度学习的覆盖网络路由决策方法
CN111294618B (zh) * 2020-03-12 2022-04-01 周光普 一种广播电视数据安全的监测系统及方法
CN112261421B (zh) * 2020-10-12 2022-11-15 Oppo广东移动通信有限公司 虚拟现实的显示方法、装置、电子设备及存储介质
US11812081B2 (en) 2020-11-02 2023-11-07 Hulu, LLC Session based adaptive playback profile decision for video streaming
CN112821940B (zh) * 2021-01-15 2022-08-30 重庆邮电大学 一种基于星间链路属性的卫星网络动态路由方法
US20230083701A1 (en) * 2021-09-15 2023-03-16 International Business Machines Corporation Automatically controlling resource partitions in advance of predicted bottlenecks for log streaming messages
CN113904974B (zh) * 2021-10-09 2023-08-15 咪咕文化科技有限公司 智能路由方法、装置及设备
JP2023081226A (ja) 2021-11-30 2023-06-09 株式会社リコー 通信管理装置、通信システム、通信管理方法、及びプログラム
CN114710436B (zh) * 2022-04-19 2023-02-07 电子科技大学 一种拓扑攻击下多域无人系统的拓扑重构方法
US20230396826A1 (en) * 2022-06-06 2023-12-07 Gathani APURVI Method of broadcasting real-time on-line competitions and apparatus therefor
US11606553B1 (en) * 2022-07-15 2023-03-14 RiversideFM, Inc. Hybrid media recording

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7086077B2 (en) * 1999-04-01 2006-08-01 Sedna Patent Services, Llc Service rate change method and apparatus
US6275470B1 (en) * 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US7117273B1 (en) 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
US7240124B2 (en) 2001-06-20 2007-07-03 Silver Beech Networks, Inc. System and method for transferring data on a network using a single route optimizer to define an explicit route and transfer the information related to the explicit route to a plurality of routers and a plurality of optimized routers on the network
US7613796B2 (en) 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
US20050015511A1 (en) 2003-07-02 2005-01-20 Nec Laboratories America, Inc. Accelerated large data distribution in overlay networks
US7388841B2 (en) * 2003-10-20 2008-06-17 Mitsubishi Electric Research Laboratories, Inc. Selecting multiple paths in overlay networks for streaming data
US9325805B2 (en) 2004-08-02 2016-04-26 Steve J Shattil Content delivery in wireless wide area networks
US20070150498A1 (en) 2005-12-23 2007-06-28 Xerox Corporation Social network for distributed content management
US8509098B2 (en) 2006-04-28 2013-08-13 Alcatel Lucent Method and apparatus for identifying network connectivity changes in dynamic networks
US20080059631A1 (en) 2006-07-07 2008-03-06 Voddler, Inc. Push-Pull Based Content Delivery System
US8000239B2 (en) 2006-12-14 2011-08-16 Oracle America, Inc. Method and system for bandwidth allocation using router feedback
US9026628B2 (en) 2007-01-22 2015-05-05 Xerox Corporation Two-level structured overlay design for cluster management in a peer-to-peer network
CN100553229C (zh) * 2007-01-24 2009-10-21 中国科学院计算机网络信息中心 一种半覆盖自组织的动态组播路由方法
US20080263130A1 (en) 2007-04-23 2008-10-23 Nir Michalowitz Apparatus, system and method of digital content distribution
KR100748187B1 (ko) 2007-06-01 2007-08-10 인하대학교 산학협력단 노드 가용도 예측 기반의 그리드 네트워크 혼잡 제어 장치및 방법
JP4893828B2 (ja) 2007-06-29 2012-03-07 富士通株式会社 ネットワーク障害検知システム
WO2009049680A1 (en) 2007-10-18 2009-04-23 Ericsson Hungary Ltd Merging of overlay networks in distributed data structures
US8565218B2 (en) 2008-06-05 2013-10-22 Hewlett-Packard Development Company, L.P. Flow path discovery in network to guarantee multiple metric QoS constraints
US20100027442A1 (en) 2008-07-31 2010-02-04 International Business Machines Corporation Constructing scalable overlays for pub-sub with many topics: the greedy join-leave algorithm
CN101547347B (zh) * 2009-04-30 2011-08-10 上海大学 可伸缩视频流的覆盖网络分层组播资源最优分配方法
US8848513B2 (en) 2009-09-02 2014-09-30 Qualcomm Incorporated Seamless overlay connectivity using multi-homed overlay neighborhoods
US8170016B2 (en) 2009-11-30 2012-05-01 At&T Intellectual Property I, Lp Packet flow offload to remote destination with routing bypass
US10158554B1 (en) 2012-02-29 2018-12-18 The Boeing Company Heuristic topology management system for directional wireless networks
US9654329B2 (en) 2012-05-04 2017-05-16 The Hong Kong University Of Science And Technology Content distribution over a network
WO2014173704A1 (en) * 2013-04-25 2014-10-30 Peerialism AB Method and device for centralized peer arrangement in p2p overlay networks
US8972992B2 (en) 2013-04-30 2015-03-03 Splunk Inc. Proactive monitoring tree with state distribution ring
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US10374900B2 (en) 2014-12-03 2019-08-06 Hewlett Packard Enterprise Development Lp Updating a virtual network topology based on monitored application data
US9769536B2 (en) 2014-12-26 2017-09-19 System73, Inc. Method and system for adaptive virtual broadcasting of digital content
US10735268B2 (en) 2017-04-21 2020-08-04 System73 Ltd. Predictive overlay network architecture
US10705881B2 (en) 2017-05-12 2020-07-07 Red Hat, Inc. Reducing overlay network overhead across container hosts
US20190312810A1 (en) 2018-04-10 2019-10-10 System73 Ltd Adaptive overlay network architecture

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019138461A (ja) * 2018-04-13 2019-08-22 バルチラジャパン株式会社 リップシール、シールリング、シールリング装置及び船舶
JP2022545623A (ja) * 2019-08-15 2022-10-28 フル・エルエルシー ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理
JP7354411B2 (ja) 2019-08-15 2023-10-02 フル・エルエルシー ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理

Also Published As

Publication number Publication date
EP3264722A1 (en) 2018-01-03
US10225619B2 (en) 2019-03-05
US10992998B2 (en) 2021-04-27
EP3264722B1 (en) 2022-08-17
WO2016103051A1 (en) 2016-06-30
JP2020039140A (ja) 2020-03-12
EP3038323A1 (en) 2016-06-29
US20190158930A1 (en) 2019-05-23
ES2670419T3 (es) 2018-05-30
JP6612355B2 (ja) 2019-11-27
KR20220151224A (ko) 2022-11-14
KR20170101287A (ko) 2017-09-05
US9769536B2 (en) 2017-09-19
CN107223325B (zh) 2021-03-26
EP4160993A1 (en) 2023-04-05
CN107223325A (zh) 2017-09-29
JP6839746B2 (ja) 2021-03-10
US20160192029A1 (en) 2016-06-30
ES2930016T3 (es) 2022-12-05
PL3038323T3 (pl) 2018-08-31
HK1249973A1 (zh) 2018-11-16
MX2017008157A (es) 2018-02-13
US20170347157A1 (en) 2017-11-30
KR102462384B1 (ko) 2022-11-03
EP3038323B1 (en) 2018-02-28
BR112017013811A2 (pt) 2018-02-27
MX370809B (es) 2020-01-08

Similar Documents

Publication Publication Date Title
JP6839746B2 (ja) 仮想ブロードキャストシステムおよび方法
KR102569433B1 (ko) 예상 오버레이 네트워크 아키텍처
Mukerjee et al. Practical, real-time centralized control for cdn-based live video delivery
US9838724B2 (en) Media distribution network for live streaming
US8116235B2 (en) Peer-to-peer aided live video sharing system
RU2647654C2 (ru) Система и способ доставки аудиовизуального контента в клиентское устройство
CN113301096B (zh) 内容分发网络中节点间数据传输方法、系统及节点设备
Bouten et al. A multicast-enabled delivery framework for QoE assurance of over-the-top services in multimedia access networks
Guo et al. P2Cast: peer-to-peer patching for video on demand service
Huang et al. Design of a P2P live multimedia streaming system with hybrid push and pull mechanisms
Ramadha et al. Design and implementation named data networking-based video streaming system
Shabrina et al. The Usage of CDN for Live Video Streaming to Improve QoS. Case Study: 1231 Provider.
Bouten et al. An autonomic delivery framework for HTTP adaptive streaming in multicast-enabled multimedia access networks
Dobkin et al. Dynamically computing the maxima of decomposable functions, with applications
Khalid et al. An SDN-based device-aware live video service for inter-domain adaptive bitrate streaming
US20140181261A1 (en) Method and apparatus for providing efficient transmission of streaming video through a complex ip network
Awiphan et al. Proxy-assisted rate adaptation for 4K video streaming on named data networking
BR112017013811B1 (pt) Método e servidor de broadcast virtual de conteúdo digital
Seung et al. Randomized routing in multi-party internet video conferencing
Kariminasab A Simulation Study on Performance of Video-On-Demand Systems
Mann et al. cStream: Cloud based high performance video delivery network
da Silva Multiple Multicast Trees for media distribution

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190422

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191001

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190930

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191030

R150 Certificate of patent or registration of utility model

Ref document number: 6612355

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250