作者序 2
目錄 2
第 一部分 CDN基本原理與關鍵技術 11
1 影響互聯網應用質量的關鍵 11
1.1 互聯網應用發(fā)展 11
1.2 互聯網應用質量 12
1.2.1 質量是互聯網應用的生命 12
(1) 用戶對互聯網應用質量的期望 12
(2) 互聯網應用質量指標--QoE 13
1.2.2 網絡性能是影響質量的關鍵 14
(1) 網絡性能對互聯網應用質量的影響 14
(2) 網絡傳送性能指標--QoS 17
1.3 提高互聯網應用質量的方法 18
1.3.1 集中式部署帶來的問題 18
1.3.2 利用網站鏡像加速 18
1.3.3 利用CDN進行加速 19
(1) 互聯網2:8法則 19
(2) CDN的加速作用 21
2 CDN基本原理 24
2.1 CDN的基本概念 24
2.1.1 CDN的定義 24
2.1.2 CDN可承載的內容 24
2.2 CDN的工作過程 25
2.2.1 CDN的基本工作過程 25
2.2.2 CDN內容接入 27
(1) 內容存儲接入 28
(2) 內容預注入 28
(3) 實時回源 28
2.2.3 CDN用戶請求調度 29
(1) 全局調度 29
(2) 本地調度 29
2.2.4 CDN內容分發(fā) 30
(1) Push方式 30
(2) Pull方式 31
(3) 混合分發(fā)方式 31
2.2.5 CDN內容服務 32
(1) 靜態(tài)內容服務 32
(2) 動態(tài)內容服務 33
3 典型的CDN架構與組網 34
3.1 CDN功能平面 34
3.2 CDN內部網元 35
(1) 內容中心節(jié)點 35
(2) 區(qū)域節(jié)點 36
(3) 邊緣服務節(jié)點 36
(4) 全局內容路由 36
(5) 運維管理 37
(6) 運營管理及適配 37
(7) 接口 37
3.3 CDN部署架構 39
3.4 CDN間組網 40
4 CDN關鍵技術 43
4.1 統(tǒng)一內容ID 44
4.1.1 統(tǒng)一資源定位符 44
4.1.2 CDN內容統(tǒng)一ID 45
4.2 本地負載均衡(SLB) 45
4.2.1 負載均衡技術 45
4.2.2 負載均衡的技術分類 46
(1) 基于DNS的負載均衡 46
(2) 基于客戶端的負載均衡 46
(3) 基于OSI模型的負載均衡 47
4.2.3 負載均衡的算法 48
4.3 用戶請求路由調度(RR)/全局負載均衡(GSLB) 50
4.3.1 基于DNS的用戶調度 50
(1) 智能DNS技術 50
(2) 基于DNS重定向調度 53
(3) 策略的優(yōu)劣分析 54
4.3.2 基于 HTTP 的重定向 54
(1) HTTP重定向基本原理 54
(2) 基于HTTP重定向調度 55
(3) 策略的優(yōu)劣分析 55
4.4 內容緩存技術 56
4.4.1 緩存技術 56
4.4.2 緩存替換算法 57
4.5 流媒體技術 63
4.5.1 實時流媒體技術:RTSP 63
4.5.2 漸進式下載流媒體技術:HTTP Streaming 65
4.5.3 自適應流媒體技術 68
(1) HTTP Live Streaming(HLS) 70
(2) Smooth Streaming 70
(3) HTTP Dynamic Streaming(HDS) 71
(4) DASH 73
4.6 服務鑒權技術 76
4.6.1 常見的服務鑒權技術 76
4.6.2 CDN服務鑒權機制 77
5 CDN新技術介紹 80
5.1 前端優(yōu)化技術 80
5.2 動態(tài)加速技術 82
(1) 差異化緩存技術 82
(2) 傳輸加速技術 84
(3) 內容生成加速技術 85
5.3 SDN調度技術 86
5.4 P2P流媒體技術 88
5.5 應用協(xié)議加速技術 88
(1) 廣域網應用加速 89
(2) SSL應用加速 89
(3) HTTPS加速 89
5.6 智能協(xié)同技術 89
5.7 NVMe技術 90
第二部分 選擇合適的CDN提升業(yè)務質量 92
6 CDN產業(yè)與市場發(fā)展 92
6.1 CDN產業(yè)發(fā)展 92
6.1.1 CDN產業(yè)的發(fā)展歷程 92
6.1.2 CDN服務提供商類型 93
6.1.3 CDN市場的發(fā)展特點 95
6.2 CDN發(fā)展趨勢 95
6.2.1 CDN業(yè)務發(fā)展趨勢 95
(1) 視頻成為最主要業(yè)務 96
(2) 增值業(yè)務快速增長 96
(3) 差異化訂制需求增長 97
6.2.2 CDN市場發(fā)展趨勢 98
(1) 行業(yè)競爭加大,資費逐年降低 98
(2) 客戶逐步自建,自建和租用結合 98
(3) 運營商紛紛切入CDN市場 99
6.2.3 CDN網絡發(fā)展趨勢 100
(1) CDN融合承載 100
(2) CDN與云結合 101
(3) CDN網絡協(xié)同 104
6.3 CDN服務商面臨的挑戰(zhàn) 104
6.3.1 不可忽視的安全因素 105
6.3.2 大數據流量的利用 105
6.3.3 推進統(tǒng)一的技術標準 105
6.3.4 定制化的技術創(chuàng)新要求 105
7 選擇合適的CDN 107
7.1 租用CDN vs 自建CDN 107
7.1.1 業(yè)務需求 107
7.1.2 CDN與成本分析 107
(1) 帶寬成本 107
(2) 建設和維護成本 107
7.1.3 CDN租用與自建結合 108
7.2 租用CDN的選擇 109
7.2.1 CDN服務類型與功能 110
7.2.2 CDN容量與分布 110
7.2.3 CDN運營維護 110
7.2.4 CDN價格 111
7.2.5 多CDN租用 112
7.3 自建CDN的選擇要素 112
7.3.1 開源CDN軟件 vs商業(yè)CDN軟件 113
7.3.2 業(yè)務需求變化 113
7.3.3 開發(fā)和維護能力 114
8 租用CDN實施的考慮與評估 115
8.1 CDN需求確認 115
8.2 CDN測試驗證 118
8.2.1 CDN服務切換 118
8.2.2 CDN服務質量測試 119
(1) 響應時間 120
(2) 節(jié)點性能 121
(3) 服務錯誤率 122
(4) 應用層性能 122
8.3 CDN服務監(jiān)控 123
(1) 設備監(jiān)控 123
(2) 服務監(jiān)控 125
8.4 多CDN租用調度 125
8.4.1 多CDN租用調度系統(tǒng)(TMS) 126
8.4.2 服務調度流程 128
9 自建CDN實施的考慮與評估 130
9.1 自建CDN案例分析 130
9.2 自建CDN中的開源軟件介紹 132
9.2.1 緩存系統(tǒng) 133
9.2.2 內容管理系統(tǒng) 133
9.2.3 內容路由系統(tǒng) 134
9.2.4 監(jiān)控系統(tǒng) 135
9.3 自建CDN部署 136
9.4 自建CDN技術指標 137
9.4.1 命中率 137
9.4.2 吞吐量 138
9.4.3 并發(fā)值 139
9.4.4 響應時間 140
9.4.5 MDI 141
9.4.6 MOS 142
9.4.7 穩(wěn)定性和可靠性 143
第三部分 利用開源軟件設計自有CDN 144
10 開源CDN架構設計 144
10.1 業(yè)務需求分析 144
10.2 本書開源CDN總體架構 145
10.3 CDN網絡規(guī)劃 147
11 流服務緩存節(jié)點模塊的設計 148
11.1 流服務緩存節(jié)點的特性 148
11.2 流服務緩存節(jié)點開源軟件簡介 148
11.2.1 Squid簡介 148
11.2.2 Quagga簡介 149
11.2.3 LVS簡介 150
11.2.4 Keepalived簡介 150
11.2.5 Nginx簡介 150
11.2.6 Lua簡介 150
11.3 模塊設計 151
11.3.1 代理緩存(Squid) 151
11.3.2 四層負載均衡(OSPF+LVS+Keepalived) 152
11.3.3 七層負載均衡(Nginx+Lua) 153
11.4 環(huán)境配置 153
11.4.1 Squid安裝與配置 153
11.4.2 Ospf安裝與配置 157
11.4.3 LVS安裝 159
11.4.4 Keepalived安裝與配置 160
11.4.5 Nginx安裝與配置 163
11.4.6 lua-nginx-module模塊安裝 164
12 內容庫模塊的設計 167
12.1 內容庫的特性 167
12.2 內容庫開源軟件簡介 167
12.2.1 FTP簡介 167
12.2.2 Ceph簡介 167
12.3 模塊設計 169
12.3.1 內容注入(FTP) 169
12.3.2 分布式內容存儲(Ceph) 169
12.3.3 內容分發(fā)(Nginx) 170
12.4 環(huán)境配置 170
12.4.1 FTP服務器搭建 170
12.4.2 Ceph安裝與配置 171
12.4.3 Nginx安裝與配置 175
13 全局用戶請求調度模塊的設計 176
13.1 基于DNS的流量管理服務設計 176
13.1.1 基于DNS流量管理的開源軟件簡介 176
(1) Bind 176
(2) Mysql數據庫 176
13.1.2 模塊設計 177
13.1.3 環(huán)境配置 177
13.2 基于HTTP的應用層調度服務設計 180
13.2.1 基于HTTP調度的開源軟件簡介 180
13.2.2 模塊設計 180
13.2.3 環(huán)境配置 181
14 網絡管理模塊的設計 183
14.1 網絡管理工作流程 183
14.2 網絡管理開源軟件簡介 184
14.2.1 Zabbix簡介 184
14.2.2 InfluxDB簡介 186
14.2.3 Grafana簡介 188
14.3 模塊設計 188
14.3.1 數據采集(Zabbix) 188
14.3.2 數據存儲(InfluxDB) 189
14.3.3 數據展示(Grafana) 189
14.4 環(huán)境配置 189
14.4.1 Zabbix安裝與配置 189
14.4.2 InfluxDB安裝與配置 192
14.4.3 Grafana安裝與配置 195
15 基于開源的自建CDN測試驗證 197
15.2 系統(tǒng)測試 197
15.2.1 測試目的 197
15.2.2 測試方法 198
15.2.3 測試拓撲組網 200
15.2.4 測試內容 201
15.2.5 測試過程 202
15.2 現網測試 208
15.2.1 測試目的 208
15.2.2 測試方法 208
15.2.3 測試過程 209
參考文獻 214