第1章 瀏覽器生成消息 1
——探索瀏覽器內部
1.1 生成HTTP請求消息 5
1.1.1 探索之旅從輸入網址開始 5
1.1.2 瀏覽器先要解析URL 7
1.1.3 省略文件名的情況 9
1.1.4 HTTP的基本思路 10
1.1.5 生成HTTP請求消息 14
1.1.6 發送請求後會收到響應 20
1.2 嚮DNS服務器查詢Web服務器的IP地址 24
1.2.1 IP地址的基本知識 24
1.2.2 域名和IP地址並用的理由 28
1.2.3 Socket庫提供查詢IP地址的功能 30
1.2.4 通過解析器嚮DNS服務器發齣查詢 31
1.2.5 解析器的內部原理 32
1.3 全世界DNS服務器的大接力 35
1.3.1 DNS服務器的基本工作 35
1.3.2 域名的層次結構 38
1.3.3 尋找相應的DNS服務器並獲取IP地址 40
1.3.4 通過緩存加快DNS服務器的響應 44
1.4 委托協議棧發送消息 45
1.4.1 數據收發操作概覽 45
1.4.2 創建套接字階段 48
1.4.3 連接階段:把管道接上去 50
1.4.4 通信階段:傳遞消息 52
1.4.5 斷開階段:收發數據結束 53
怪傑Resolver 55
第2章 用電信號傳輸TCP/IP數據 57
——探索協議棧和網卡
2.1 創建套接字 61
2.1.1 協議棧的內部結構 61
2.1.2 套接字的實體就是通信控製信息 63
2.1.3 調用socket時的操作 66
2.2 連接服務器 68
2.2.1 連接是什麼意思 68
2.2.2 負責保存控製信息的頭部 70
2.2.3 連接操作的實際過程 73
2.3 收發數據 75
2.3.1 將HTTP請求消息交給協議棧 75
2.3.2 對較大的數據進行拆分 78
2.3.3 使用ACK號確認網絡包已收到 79
2.3.4 根據網絡包平均往返時間調整ACK號等待時間 83
2.3.5 使用窗口有效管理ACK號 84
2.3.6 ACK與窗口的閤並 87
2.3.7 接收HTTP響應消息 89
2.4 從服務器斷開並刪除套接字 90
2.4.1 數據發送完畢後斷開連接 90
2.4.2 刪除套接字 92
2.4.3 數據收發操作小結 93
2.5 IP與以太網的包收發操作 95
2.5.1 包的基本知識 95
2.5.2 包收發操作概覽 99
2.5.3 生成包含接收方IP地址的IP頭部 102
2.5.4 生成以太網用的MAC頭部 106
2.5.5 通過ARP查詢目標路由器的MAC地址 108
2.5.6 以太網的基本知識 111
2.5.7 將IP包轉換成電或光信號發送齣去 114
2.5.8 給網絡包再加3個控製數據 116
2.5.9 嚮集綫器發送網絡包 120
2.5.10 接收返迴包 123
2.5.11 將服務器的響應包從IP傳遞給TCP 125
2.6 UDP協議的收發操作 128
2.6.1 不需要重發的數據用UDP發送更高效 128
2.6.2 控製用的短數據 129
2.6.3 音頻和視頻數據 130
插進Socket裏的是燈泡還是程序 132
第3章 從網綫到網絡設備 135
——探索集綫器、交換機和路由器
3.1 信號在網綫和集綫器中傳輸 139
3.1.1 每個包都是獨立傳輸的 139
3.1.2 防止網綫中的信號衰減很重要 140
3.1.3 “雙絞”是為瞭抑製噪聲 141
3.1.4 集綫器將信號發往所有綫路 146
3.2 交換機的包轉發操作 149
3.2.1 交換機根據地址錶進行轉發 149
3.2.2 MAC地址錶的維護 153
3.2.3 特殊操作 154
3.2.4 全雙工模式可以同時進行發送和接收 155
3.2.5 自動協商:確定最優的傳輸速率 156
3.2.6 交換機可同時執行多個轉發操作 159
3.3 路由器的包轉發操作 159
3.3.1 路由器的基本知識 159
3.3.2 路由錶中的信息 162
3.3.3 路由器的包接收操作 166
3.3.4 查詢路由錶確定輸齣端口 166
3.3.5 找不到匹配路由時選擇默認路由 168
3.3.6 包的有效期 169
3.3.7 通過分片功能拆分大網絡包 170
3.3.8 路由器的發送操作和計算機相同 172
3.3.9 路由器與交換機的關係 173
3.4 路由器的附加功能 176
3.4.1 通過地址轉換有效利用IP地址 176
3.4.2 地址轉換的基本原理 178
3.4.3 改寫端口號的原因 180
3.4.4 從互聯網訪問公司內網 181
3.4.5 路由器的包過濾功能 182
集綫器和路由器,換個名字身價翻倍? 184
第4章 通過接入網進入互聯網內部 187
——探索接入網和網絡運營商
4.1 ADSL接入網的結構和工作方式 191
4.1.1 互聯網的基本結構和傢庭、公司網絡是相同的 191
4.1.2 連接用戶與互聯網的接入網 192
4.1.3 ADSL Modem將包拆分成信元 193
4.1.4 ADSL將信元“調製”成信號 197
4.1.5 ADSL通過使用多個波來提高速率 200
4.1.6 分離器的作用 201
4.1.7 從用戶到電話局 203
4.1.8 噪聲的乾擾 204
4.1.9 通過DSLAM到達BAS 205
4.2 光縴接入網(FTTH) 206
4.2.1 光縴的基本知識 206
4.2.2 單模與多模 208
4.2.3 通過光縴分路來降低成本 213
4.3 接入網中使用的PPP和隧道 217
4.3.1 用戶認證和配置下發 217
4.3.2 在以太網上傳輸PPP消息 219
4.3.3 通過隧道將網絡包發送給運營商 223
4.3.4 接入網的整體工作過程 225
4.3.5 不分配IP地址的無編號端口 228
4.3.6 互聯網接入路由器將私有地址轉換成公有地址 228
4.3.7 除PPPoE之外的其他方式 230
4.4 網絡運營商的內部 233
4.4.1 POP和NOC 233
4.4.2 室外通信綫路的連接 236
4.5 跨越運營商的網絡包 238
4.5.1 運營商之間的連接 238
4.5.2 運營商之間的路由信息交換 239
4.5.3 與公司網絡中自動更新路由錶機製的區彆 241
4.5.4 IX的必要性 242
4.5.5 運營商如何通過IX互相連接 243
名字叫服務器,其實是路由器 246
第5章 服務器端的局域網中有什麼玄機 249
5.1 Web服務器的部署地點 253
5.1.1 在公司裏部署Web服務器 253
5.1.2 將Web服務器部署在數據中心 255
5.2 防火牆的結構和原理 256
5.2.1 主流的包過濾方式 256
5.2.2 如何設置包過濾的規則 256
5.2.3 通過端口號限定應用程序 260
5.2.4 通過控製位判斷連接方嚮 260
5.2.5 從公司內網訪問公開區域的規則 262
5.2.6 從外部無法訪問公司內網 262
5.2.7 通過防火牆 263
5.2.8 防火牆無法抵禦的攻擊 264
5.3 通過將請求平均分配給多颱服務器來平衡負載 265
5.3.1 性能不足時需要負載均衡 265
5.3.2 使用負載均衡器分配訪問 266
5.4 使用緩存服務器分擔負載 270
5.4.1 如何使用緩存服務器 270
5.4.2 緩存服務器通過更新時間管理內容 271
5.4.3 最原始的代理——正嚮代理 276
5.4.4 正嚮代理的改良版——反嚮代理 278
5.4.5 透明代理 279
5.5 內容分發服務 280
5.5.1 利用內容分發服務分擔負載 280
5.5.2 如何找到最近的緩存服務器 282
5.5.3 通過重定嚮服務器分配訪問目標 285
5.5.4 緩存的更新方法會影響性能 287
當通信綫路變成局域網 291
第6章 請求到達Web服務器,響應返迴瀏覽器 293
——短短幾秒的“漫長旅程”迎來終點
6.1 服務器概覽 297
6.1.1 客戶端與服務器的區彆 297
6.1.2 服務器程序的結構 297
6.1.3 服務器端的套接字和端口號 299
6.2 服務器的接收操作 305
6.2.1 網卡將接收到的信號轉換成數字信息 305
6.2.2 IP模塊的接收操作 308
6.2.3 TCP模塊如何處理連接包 309
6.2.4 TCP模塊如何處理數據包 311
6.2.5 TCP模塊的斷開操作 312
6.3 Web服務器程序解釋請求消息並作齣響應 313
6.3.1 將請求的URI轉換為實際的文件名 313
6.3.2 運行CGI程序 316
6.3.3 Web服務器的訪問控製 319
6.3.4 返迴響應消息 323
6.4 瀏覽器接收響應消息並顯示內容 323
6.4.1 通過響應的數據類型判斷其中的內容 323
6.4.2 瀏覽器顯示網頁內容!訪問完成! 326
Gateway是通往異世界的入口 328
附錄 330
後記 334
緻謝 334
作者簡介 335
· · · · · · (
收起)