第二章 應(yīng)用層
網(wǎng)絡(luò)應(yīng)用是計算機網(wǎng)絡(luò)存在的理由
1.應(yīng)用層協(xié)議原理
1.1 體系架構(gòu):客戶-服務(wù)器 結(jié)構(gòu)
P2P體系 結(jié)構(gòu)
1.2 套接字socket = API 應(yīng)用程序編程接口 (Application Programming Interface)
web 80; 郵件 25;
1.3如何選擇運輸服務(wù)?
討論這個問題前,先對應(yīng)用程序的要求進行分類
可靠數(shù)據(jù)傳輸 如文件
吞吐量 如視頻
定時(同時) 如電話
安全性 如機密
TCP的安全: 用SSL 安全套接字層 SSL(Secure Socker Layer)來加強TCP
UDP 最小服務(wù);無連接不握手;不可靠數(shù)據(jù)傳送;無擁塞控制機制;
如因特網(wǎng)電話可能會使用
一個列表,結(jié)合上面給出的因素而給出的列表
應(yīng)用層 支撐的運輸層·
郵件 SMTP TCP
遠程終端訪問 Telnet TCP
Web HTTP TCP
文件傳輸 FTP TCP
流式多媒體 HTTP TCP
因特網(wǎng)電話 SIP、RIP UDP或TCP
1.4 應(yīng)用層協(xié)議
定義:如何相互傳遞報文:交換報文的類型
各種報文類型的語法
字符的語義
一個進程 何時 如何 發(fā)送、響應(yīng)報文
下面介紹幾個最重要的
2.Web和HTTP
2.1 超文本傳輸協(xié)議 HyperText Transfer Protocol 即 HTTP
URL地址 = 存放對象的服務(wù)器主機名 對象的路徑名
HTTP 無狀態(tài)協(xié)議;不存儲不保存
非持續(xù)連接的HTTP
總響應(yīng)時間 = 兩個RTT(Round-TripTime 往返時間) 服務(wù)器傳輸HTML文件時間
持續(xù)連接的HTTP
2.2 HTTP報文格式
(至此以下的所有格式中(不僅是HTTP)都含有cr lf的換行 空行等標識 勿忘)
請求報文格式:請求行 首部行 實體體
請求行:方法字段(GET、POST、等)、URL字段、HTTP版本字段
首部行 即 包含了各種屬性
實體體 如web搜索中,POST請求會在實體體中表示相關(guān)的內(nèi)容;
響應(yīng)報文格式:狀態(tài)行 首部行 實體體
狀態(tài)行:協(xié)議版本字段 狀態(tài)碼 響應(yīng)狀態(tài)信息
首部行 即 同樣包含各種屬性
2.3 用戶和服務(wù)器之間的交互 cookie
由前面的無狀態(tài)HTTP引申的cookie
cookie可用于標識一個用戶
2.4 web緩存 又叫做 代理服務(wù)器(proxy server)
其中web緩存器既是服務(wù)器又是客戶;
原因(為什么用它). 迅速把對象給客戶
減少通信量
相比于增加帶寬,很明顯!加web緩存可以大大大大減少成本
2.5 條件GET
由于2.4中介紹的web緩存和實際web服務(wù)器中存在可能對象不一致的情況而存在的
即 允許緩存器驗證它的對象是最新的
Last-Modified:
If-modified-since:
HTTP/1.1 304 Not Modified
3.電子郵件
3.1 有三個主要組成:用戶代理;郵件服務(wù)器;簡單郵件傳輸協(xié)議.
3.2 SMTP:用于發(fā)送方的郵件服務(wù)器 發(fā)送報文到 接受方的郵件服務(wù)器
限制(缺點):所有郵件報文 體部分 只能 用簡單的 7bitASC2碼表示
它將二級制多媒體數(shù)據(jù)編碼為ASC2碼,到達之后在解碼還原
3.3 STMP和HTTP的比較
HTTP是拉協(xié)議,STMP是推協(xié)議
SMTP有7bit限制 HTTP無
在處理一個既包含文本又包含圖片的文檔時,HTTP把每個對象封裝到主機的HTTP響應(yīng)報文中,STMP則把所有的報文對象放在同一個報文之中.
3.4 STMP格式
3.5 其它的拉操作協(xié)議
POP3 Post Office Protocol-Version 3
特許 事務(wù)處理 更新
IMAP Internet Mail Access Protocol
基于Web的電子郵件
4.DNS:因特網(wǎng)的目錄服務(wù)
4.1 識別主機 主機名(如www.facebook.com)
IP地址 四個字節(jié)
域名系統(tǒng) Domain Name System
主要服務(wù):將主機名轉(zhuǎn)換到IP地址的目錄服務(wù)
DNS是一個由分層的DNS服務(wù)器實現(xiàn)的分布式數(shù)據(jù)庫
是一個使得主機能夠查詢分布式數(shù)據(jù)庫的應(yīng)用層協(xié)議
DNS服務(wù)器是運行BIND軟件的UNIX機器
DNS協(xié)議運行在UDP之上,使用53號端口 web是80 郵件是25
DNS其它服務(wù) 主機別名;郵件服務(wù)器別名;負載分配;
4.2 DNS工作原理
分析了單個總DNS服務(wù)器的不可行性
于是有 根服務(wù)器;頂級域DNS服務(wù)器(TLD);權(quán)威DNS服務(wù)器;本地DNS服務(wù)器
400多個;com\org\net\edu\uk\cn;
查詢方式也有兩類:遞歸查詢和迭代查詢
在實際中,插敘一般都是 從請求主機到本地DNS服務(wù)器是遞歸的,而其它的查詢都是迭代的.
4.3 DNS緩存 顧名思義 這其中 一般兩天 即會丟棄緩信息
4.4DNS記錄和報文
資源記錄(Resource Record) RR
構(gòu)成(Name, Value, Type, TTL)
其中Type決定了Name和Value的值類型
DNS報文的 查詢和回答報文 的格式 是一致的
如何在DNS數(shù)據(jù)庫中插入記錄
即'如何構(gòu)建新的網(wǎng)址' 注冊登記機構(gòu) registrar
5.P2P文件分發(fā) 這一節(jié)是我讀下來覺得最有意思的.
5.1 兩種結(jié)構(gòu)在大文件傳輸上的比較 有一張坐標軸比較很形象,
5.2 BitTorrent
追蹤器
最稀缺優(yōu)先 目的:大致均衡每個塊在洪流中的副本數(shù)量
6.視頻流和內(nèi)容分發(fā)網(wǎng)
6.1 因特網(wǎng)視頻 比特率
6.2 DASH技術(shù) 正是它完成了 智能調(diào)節(jié)分辨率的功能 全稱叫 經(jīng)HTTP的動態(tài)適應(yīng)性流
6.3 內(nèi)容分發(fā)網(wǎng)CDN
CDN操作DNS重定向
集群選擇策略
6.4 給出了 Netflix YouTube 和 迅雷看看 的例子
7.套接字編程:生成網(wǎng)絡(luò)應(yīng)用
用的剛好是我稍微熟悉的python
UDP套接字編程
TCP套接字編程 這兩個例子可以更好地理解TCP和UDP之間的差異
8.小結(jié)
客戶-服務(wù)器 P2P
HTTP SMTP POP3 DNS
P2P
CDN
TCP和UDP 套間字編程
聯(lián)系客服