三次握手和四次揮手,擁塞,tcp/ip這幾個可以說是大廠面試必考題了,下面我來做個簡單的總結,我對這些概念的東西,採取先理解後記,先簡略後複雜這一方式。(雖然道理都懂,但還是很多人想一步登天的。。)
網路結構有兩種主流的分層方式:osi七層模型和tcp/ip四層模型。
osi是指open system interconnect,意為開放式系統互聯。
tcp/ip是指傳輸控制協議/網間協議,是目前世界上應用最廣的協議。
1、osi採用七層模型,tcp/ip是四層模型
2、tcp/ip網路介面層沒有真正的定義,只是概念性的描述。osi把它分為2層,每一層功能詳盡。
3、在協議開發之前,就有了osi模型,所以osi模型具有共通性,而tcp/ip是基於協議建立的模型,不適用於非tcp/ip的網路。
4、實際應用中,osi模型是理論上的模型,沒有成熟的產品;而tcp/ip已經成為國際標準。
http/2 則是乙個徹底的二進位制協議,頭資訊和資料體都是二進位制,並且統稱為"幀"(frame):頭資訊幀和資料幀。
二進位制協議的乙個好處是,可以定義額外的幀。http/2 定義了近十種幀,為將來的高階應用打好了基礎。如果使用文字實現這種功能,解析資料將會變得非常麻煩,二進位制解析則方便得多。
http/2 復用tcp連線,在乙個連線裡,客戶端和瀏覽器都可以同時傳送多個請求或回應,而且不用按照順序一一對應,這樣就避免了"隊頭堵塞"。
舉例來說,在乙個tcp連線裡面,伺服器同時收到了a請求和b請求,於是先回應a請求,結果發現處理過程非常耗時,於是就傳送a請求已經處理好的部分, 接著回應b請求,完成後,再傳送a請求剩下的部分。
這樣雙向的、實時的通訊,就叫做多工(multiplexing)。
因為 http/2 的資料報是不按順序傳送的,同乙個連線裡面連續的資料報,可能屬於不同的回應。因此,必須要對資料報做標記,指出它屬於哪個回應。
http/2 將每個請求或回應的所有資料報,稱為乙個資料流(stream)。每個資料流都有乙個獨一無二的編號。資料報傳送的時候,都必須標記資料流id,用來區分它屬於哪個資料流。另外還規定,客戶端發出的資料流,id一律為奇數,伺服器發出的,id為偶數。
資料流傳送到一半的時候,客戶端和伺服器都可以傳送訊號(rst_stream幀),取消這個資料流。1.1版取消資料流的唯一方法,就是關閉tcp連線。這就是說,http/2 可以取消某一次請求,同時保證tcp連線還開啟著,可以被其他請求使用。
客戶端還可以指定資料流的優先順序。優先順序越高,伺服器就會越早回應。
http 協議不帶有狀態,每次請求都必須附上所有資訊。所以,請求的很多欄位都是重複的,比如cookie和user agent,一模一樣的內容,每次請求都必須附帶,這會浪費很多頻寬,也影響速度。
http/2 對這一點做了優化,引入了頭資訊壓縮機制(header compression)。一方面,頭資訊使用gzip或compress壓縮後再傳送;另一方面,客戶端和伺服器同時維護一張頭資訊表,所有欄位都會存入這個表,生成乙個索引號,以後就不傳送同樣欄位了,只傳送索引號,這樣就提高速度了。
http/2 允許伺服器未經請求,主動向客戶端傳送資源,這叫做伺服器推送(server push)。常見場景是客戶端請求乙個網頁,這個網頁裡面包含很多靜態資源。正常情況下,客戶端必須收到網頁後,解析html原始碼,發現有靜態資源,再發出靜態資源請求。其實,伺服器可以預期到客戶端請求網頁後,很可能會再請求靜態資源,所以就主動把這些靜態資源隨著網頁一起發給客戶端了。
持續更新,準備把上面一大段一點一點的消化嘿嘿。。。
部分參考阮一峰老師的部落格《阮一峰:http 協議入門》侵刪
計算機網路總結
此處介紹的是按照五層網際網路協議棧,分別為 應用層運輸層 網路層鏈路層 物理層總結自 其中推薦的部落格都寫的非常精彩!下面從下往上介紹他們之間的聯絡 1,物理層 電腦要組網,需要首先將電腦連線起來,物理層是連線電腦的物理手段,作用是負責傳輸 0 和 1 的電訊號 2,鏈結層 因為上述物理層中的單純的...
計算機網路總結
osi分層,這裡的osi分層分為七層協議,每層都有它最為重要的功能,分層也是為了解耦和可替換性高的目地。從底向上分為七層分別為 還有一些說法把網路協議分為四層或者五層的,分為五層的是把會話層,表示層和應用層統一規劃為應用層了,四層的就是把資料鏈路層,物理層也合為網路介面層了 一圖勝前言 幾個重要裝置...
計算機網路總結
今日考完計算機網路,總結一下考試的知識點,在造福學弟學妹的同時也記錄一下我計網到底學了什麼東西。按照知識點的緊要程度來排序。協議的定義 乙個協議定義了在兩個或多個通訊實體之間交換的報文格式和次序,以及報文傳送和接收一條報文或發生其他事件所採取的動作。internet五層協議的名稱以及內容 應用層 不...