JANOG36@北九州市でお話しするチュートリアル「CDNの仕組み」のサポートページです。
チュートリアル資料
概要
CDNは、以下の3要素で構成されます:
- 負荷分散技術
- キャッシュ技術
- 顧客コンソール
JANOG方面からは負荷分散技術についての質問を良く受けます。ISPオペレータとしては、トラフィックを生成させるCDNのトラフィックコントロール部分に興味があると言うことだと思いますが、昨今、CDNビジネスを行うにあたっては、下から順に重要性が高くなっています。また、CDNエンジニアとしての力量は、(一般的なネットワーク知識があるという前提で)キャッシュ技術に対する知識に大きく依存します。つまり、表面的にCDNに関係しているエンジニアと実際に運用しているエンジニアには大きな隔たりがあります。
そのため、CDNエンジニアを育てるためのチュートリアルということで、CDNの本質分(負荷分散とキャッシュ技術)について、基礎から実際のところまでをお話しようと思います。また、今回はJANOGというこで、負荷分散にも十分な時間を割こうと思いましたが、他の分量が多くなったため、概略程度です。
CDN関連情報
CDNの全体像としては、以下のペーパが最もまとまっています。
RFC関連としては以下のものが参考文献になります:
- Hypertext Transfer Protocol — HTTP/1.1: RFC2616
- CDN技術者必須、完全理解が必要
- Hypertext Transfer Protocol (HTTP/1.1) Message Syntax and Routing: RFC 7230
- CDN技術者必須、完全理解が必要
- Hypertext Transfer Protocol (HTTP/1.1) Caching: RFC7234
- CDN技術者必須、完全理解が必要
- Host Anycasting Service: RFC1546
- Anycastについての参考
- Operation of Anycast Services: RFC478
- Anycastについての参考
最近の情報については、連載形式で書いています。
配信サーバのパフォーマンス
Tire1 OTTの広域負荷分散
ストリーミング
仕様書(ISO/IEC 23009-1 “Dynamic adaptive streaming over HTTP (DASH) Part 1:Media presentation description and segment formats”)は、ISOであるため有償です。以下のページから購入できます:
新プロトコルへの対応
各種新プロトコルへのCDN対応については、「CDN化=プロトコルアクセラレーション」という視点で、簡単に紹介します。詳しい内容については、7月28日に開催するプライベートセミナ(SSL、IoT、テレビ連動の最新動向)で紹介します。
- HTTP/2
- IoT/WebSocket
- WebSocket
- REDIS
- MQTT (MQ Telemetry Transport)
- CoAP (Constrained Application Protocol)
IETF
複数CDNの結合について議論が行われています
また、複数CDNの使用に関しては、以下のアプローチによるシステムがすでに実用化されており、CDNシンジケーション(CDNI)がビジネス的に成立するのか疑問が残ります。実際、WGへの積極的な参加者の多くはメーカや(CDNビジネスに出遅れた)キャリアのみです:
- マルチCDNによるCDN切り替え
- プロプライエタリなシステム(OnApp社等)による、異なる事業者間におけるCDN配信サーバの共有
ICN/CCN
Internetは、トラフィック量で見ると一方向メディア流通のためのネットワークになりつつあります(双方向通信の重要性を否定するわけではなく、ボリュームとしてそうなっているという話)。一方、Internetのアーキテクチャは通信(双方向)を基本としており、大量のメディアを効率的に配信する仕組みを持っていません。そのため、CDNという枠組みを使用していますが、ICN/CCNでは、Internet基本アーキテクチャに大量メディア配信を組み込もうとしています:
- ICN (Information Centric Networking)
- CCN (Content Centric Networking)
参考文献
- SIGCOMM Information Centric Networking Workshop
- ACM Conference on Information Centric Networking