計算機網路知識持續構建(二)——應用層
緒
網路應用是計算機網路存在的的理由,所以上至TCP/IP協議棧,下至雙絞銅線和光纖,都是為實現網路應用提供各種服務
但是由於良好的分層模型,我們碼農在應用層盡情發揮想象力的時候,除了關注應用之間的資料互動外,其他的對我們基本是透明的,大大降低了複雜度
網路應用程式體系結構
應用層常見的程式體系機構有兩種
- Client/Server,即客戶機/伺服器體系結構,該體系結構包含一個始終執行著提供服務的伺服器,以及分佈在各個使用者那裡的客戶機
- P2P,該體系結構很少依賴伺服器,主要利用網路中互相平等的主機提供服務,著名的Skype、BT均便是該體系結構
我們可以做什麼?
碼農在開發網路應用時只需要關注應用層的協議,更底層的我們一般能夠做的只是
- 選擇運輸層協議,TCP?UDP?
- 設定幾個運輸層的引數,最大快取、最大報文長度等
關於運輸層協議的選擇,首先要知道的是兩種協議為我們提供了什麼服務?
TCP提供了
- 面向連線的服務,即在資料互動之前要先建立一個虛擬的‘連線’,這個連線是全雙工的
- 可靠資料傳輸服務,可靠是指能夠保證資料有序、完整的傳輸
- 擁塞控制服務,這可能對單個應用好處不大,但卻能夠提供整個網際網路的效能
- 未提供加密服務,如果需要可以使用安全套接字實現SSL
UDP提供了
- 是一個輕量級的協議,不需要建立連線
- 不可靠的資料傳輸服務,不可靠是指不保證資料能付完整、有序的傳輸
- 也沒有擁塞控制
HTTP
超文字傳輸協議(HyperText Transfer Protocol),它是web的核心。使用TCP作為它的支撐運輸層協議。是一個無狀態協議
HTTP請求報文格式
請求報文第一行是請求行(request line),後續為首部行(header line)
請求行中請求方法一般為POST、GET、PUT、DELETE,協議版本類似HTTP/1.1
HTTP響應報文格式
一些常見的響應碼
- 200 ok 請求成功
- 301 moved permanently 請求的物件已經被永久轉移了
- 400 bad request 一個通用差錯程式碼,該請求伺服器無法理解
- 404 not found 被請求的文件不在伺服器
- 500 server error 伺服器錯誤
- 505 http version is not supported 當前http版本不被支援
DNS
DNS(域名系統)的主要作用是提供主機名到IP地址的轉換服務,由一個分散式的DNS資料庫和查詢該資料庫的協議組成,基於UDP協議。DNS同時也可以提供負載均衡服務。
DNS分散式、層次資料庫
- 根DNS伺服器 因特網上有13個根伺服器,其中大部分在北美。實際上每臺伺服器都是冗餘的,為了提供安全性和可靠性
- 頂級域(TLD)伺服器 這些伺服器負責頂級域名(com、org、net、edu)和所有國家的頂級域名(uk、fr、ca等)
- 權威DNS伺服器 網路上具有公共可訪問主機的組織和公司必須提供公共課訪問的DNS記錄
P2P
P2P是除了伺服器-客戶端之外另一種重要的網路體系,是在網路中互相對等的兩個終端之間進行通訊,常見的應用為檔案分發,即著名的BitTorrent協議;另一種是在對等方中組織並搜尋資訊;第三種是Skype,一個成功的P2P因特網電話應用。
BitTorrent
BT下載的主要原理是充分利用加入分發的各終端的網路上載流量,因為一般情況下,終端的下載流量會遠遠大於上載。簡單來說,就是各終端均勻的下載檔案的各個部分,然後再在臨近的終端之間互相交換資料,既減輕伺服器下載壓力,又能提供終端的下載速度,實現了下載的人越多,下載速度越快的“變態”下載
相關文章
- 計算機網路--應用層計算機網路
- 計算機網路 - 應用層計算機網路
- 計算機網路 -- 應用層計算機網路
- 計算機網路-應用層筆記計算機網路筆記
- 計算機網路(二)物理層計算機網路
- 計算機網路知識點總結(一)-物理層計算機網路
- 計算機網路知識點計算機網路
- 計算機網路——基礎知識(一)計算機網路
- 計算機網路知識點總結計算機網路
- 《計算機網路》第七章:應用層(The Application Layer)計算機網路APP
- 計算機網路之網路層計算機網路
- 【筆試】計算機網路知識點整理筆試計算機網路
- 乾貨:計算機網路知識總結計算機網路
- 計算機網路的七層結構、五層結構和四層結構計算機網路
- 計算機網路之網路介面層計算機網路
- 計算機網路總結(網路層)計算機網路
- 前端需要了解的計算機網路知識前端計算機網路
- 知識圖譜構建與應用
- 計算機網路之物理層計算機網路
- 計算機網路的物理層計算機網路
- 網際網路協議入門-通俗易懂的講計算機網路5層結構(二)協議計算機網路
- 計算機網路 | 資料鏈路層計算機網路
- 計算機網路自頂向下方法:第二章 應用層 課後複習題計算機網路
- 前端必須懂的計算機網路知識—(TCP)前端計算機網路TCP
- 前端必須懂的計算機網路知識—(HTTP)前端計算機網路HTTP
- 計算機網路(一):網路層次劃分計算機網路
- 計算機網路七層協議計算機網路協議
- 計算機網路之傳輸層計算機網路
- 計算機網路(四)傳輸層計算機網路
- 計算機網路之運輸層計算機網路
- 《計算機網路》傳輸層 (1)計算機網路
- 計算機網路之資料鏈路層計算機網路
- 計算機網路層次與對應協議的理解計算機網路協議
- 計算機潛意識- 單層神經網路(感知器)計算機神經網路
- 【知識分享】 計算機網路>速率、頻寬、吞吐量計算機網路
- 知識圖譜Knowledge Graph構建與應用
- 前端必須懂的計算機網路知識—(IP,MAC和網路模型)前端計算機網路Mac模型
- 計算機網路要點(二)計算機網路
- 計算機網路淺析(二)計算機網路