網絡應用體系結構:
- 客戶機/服務器結構(C/S)
- 點對點結構(P2P)
- 混合結構(Hybrid)
網絡應用的基礎:進程間通信
不同主機上的進程間通過消息交換進行通信
進程間通信利用Socket發送/接受消息實現
進程的標識符:IP地址 + 端口號
網絡應用需遵循應用層協議
應用層協議內容:消息的類型、消息的語法/格式、字段的語義、規則
網絡應用對傳輸服務的需求:
- 數據丟失/可靠性
- 時間/延遲
- 帶寬
Application | Data loss | Bandwidth | Time Sensetive |
---|---|---|---|
file transter | no loss | elestic | no |
no loss | elestic | no | |
web document | no loss | elestic | no |
real-time audio/video | loss torelant | audio: 5kbps - 1Mbps video: 10kbps - 5Mbps |
yes, 100's msec |
stored audio/video | loss torelant | the same as above | yes, few msec |
interactive games | loss torelant | few 5kbps up | yes, 100's msec |
instant messaging | no los | elestic | yes and no |
Internet提供的傳輸服務
- TCP服務
面向連接、可靠的傳輸、流量控制、擁塞控制
不提供時間/延遲保障、不提供最小帶寬保障 - UDP服務
無連接、不可靠的數據傳輸
不提供可靠性保障、流量控制、擁塞控制、延遲保障、帶寬保障
Web應用
- 網頁包含多個對象
- 對象的尋址:URL(統一資源定位器)
- C/S結構
-
HTTP協議
使用TCP傳輸服務
無狀態
HTTP連接
- 非持久性連接(HTTP 1.0)
- 持久性連接(HTTP 1.1)
- 無流水的的持久性連接
- 帶有流水機制的持久性連接(HTTP 1.1的默認選項)
RTT:從客戶端發送一個很小的數據包到服務器並返回所經歷的時間
響應時間:
- 發起、建立TCP連接:1個RTT
- 發送HTTP請求消息到HTTP響應消息的前幾個字節到達:1個RTT
- 響應消息中所含的文件/對象傳輸時間
HTTP協議消息
-
請求消息
ASCII:人工可讀
- 響應消息
Cookie技術
- 解決HTTP無狀態的問題
- 組件:
HTTP請求消息cookie頭部行
HTTP響應消息cookie頭部行
保存在客戶端主機上的cookie文件,由瀏覽器管理
Web服務器端的後臺數據庫 - 用途:
身份認證
購物車
購物車
Web e-mail
... - 具有隱私問題
Web緩存/代理服務器技術
優點:
- 縮短客戶請求的響應時間
- 減少機構/組織的流量
- 在大範圍內組織有效的內容分發
E-mail應用
構成組件:
- 郵件客戶端
- 郵件服務器
- SMTP協議
- 使用TCP傳輸服務
- 使用持久性連接
- 端口25
- 命令/響應交互模式
- 消息只能包含7位ASCII碼
- SMTP服務器利用CRLF.CRLF確定消息的結束
SMTP協議 VS HTTP協議
- HTTP:拉式
- SMTP:推式
- 都使用命令/響應交互模式
- 命令/狀態代碼都是ASCII碼
- HTTP:每個對象封裝在獨立的響應消息中
- SMTP:多個對象封裝在多個部分構成的消息中
MIME:多媒體郵件擴展
郵件傳輸/交換協議:SMTP
郵件訪問協議:POP、IMAP、HTTP
DNS:域名解析系統
- 多層命令服務器構成的分佈式數據庫
- 應用層協議
DNS服務
- 域名向IP地址的翻譯
- 主機別名
- 郵件服務器別名
- 負載均衡:Web服務器
DNS查詢模式
-
迭代查詢
-
遞歸查詢
DNS消息記錄格式:name、value、type、ttl
A | NS | CNAME | MX | |
---|---|---|---|---|
Name | 主機域名 | 域 | 某一真實域名的別名 | |
Value | IP地址 | 該域權威域名解析服務器的主機域名 | 真實域名 | 與name對應的郵件服務器 |
DNS消息格式:
P2P應用
純P2P構架
- 沒有服務器
- 任意端系統之間直接通信
- 節點階段性接入Internet
- 節點可能更換IP地址
文件分發
- C/S架構:
- P2P架構:
P2P系統的索引:信息到節點位置(IP地址+端口號)的映射
- 集中式索引:單點失效問題、性能瓶頸、版權問題
- 洪泛式查詢
- 完全分佈式架構
- 層次式覆蓋網絡
- 節點與超級節點間維持TCP連接
- 某些超級節點對之間維持TCP連接
-
超級節點負責跟蹤子節點的內容