TCP IP 協議族和HTTS

2021-09-05 12:23:15 字數 2092 閱讀 2541

概念

一系列協議所組成乙個網路分層模型

為什麼要分層?

因為網路的不穩定性

如果我們傳乙個50m的資料,如果失敗,每次都將需要重新傳50m,但我們把它分成多塊,失敗時候只需重新傳輸失敗的那一塊。

具體分層:

傳送方應用程式的資料總是從最上層開始,層層向下,最終經由物理層傳送出去;相應的,在接收方的物理層接收到資料後,層層向上,最終經由應用層分發到具體的應用程式程序中。

在資料層向下的過程中,每一層都會對資料進行一些封裝處理(如打包或者編碼);而在資料層向上的過程中,每一層都會對資料進行一些逆處理(如解包或者解碼)。這些對資料的處理和逆處理的過程就是為了實現該層的服務。

什麼叫做連線

通訊雙方建立確認「可以通訊」,不會將對方的訊息丟棄,即為「建立連線」

tcp 連線的建立——三次握手

三步:1. 客戶端:「我要向你傳送訊息」

2. 伺服器:「好的。我要向你傳送訊息」

3. 客戶端:「好的。

tcp 連線的關閉——四次揮手

四步:1. 客戶端:「我不再給你傳送訊息」

2. 服務端:「好的」

3. 服務端:「我不再給你傳送訊息」

4. 客戶端:「好的」

為什麼 tcp 連線在斷開時是四次揮手而不是三次?

因為在客戶端停止向伺服器傳送訊息時,也許伺服器還有訊息需要向客戶端傳送,因此在它對客戶端的「我不再給你傳送訊息」訊息進行回應時,不需要立即附加上「我也不再向你傳送訊息」。在稍後伺服器的訊息傳送完畢之後,才需要向客戶端傳送通知。

為什麼要長連線?

因為流動網路並不在 internet 中,而是在運營商的內網,並不具有真正的公網 ip,因此當某個 tcp連線在一段時間不通訊之後,閘道器會出於網路效能考慮而關閉這條 tcp 連線和公網的連線通道,導致這個 tcp 埠不再能收到外部通訊訊息,即 tcp 連線被動關閉。

長連線的實現方式

心跳。即在一定間隔時間內,使用 tcp 連線傳送超短無意義訊息來讓閘道器不能將自己定義為「空閒連線」,從而防止閘道器將自己的連線關閉。

定義http over ssl 的簡稱,即工作在 ssl (或 tls)上的 http。說白了就是加密通訊的 http。

工作原理

在客戶端和服務器之間通過非對稱加密協商出一套對稱金鑰,以後每次傳送資訊之前將內容加密,收到之後解密,達到內容的加密傳輸

為什麼不直接用非對稱加密?

非對稱加密由於使用了複雜了數學原理,因此計算相當複雜,如果完全使用非對稱加密來加密通訊內容,會嚴重影響網路通訊的效能

https 連線建立的過程

1. client hello

客服端對服務端說要建立連線,並附加:支援的tls版本、支援的對稱加密演算法、支援的非對稱加密演算法、支援的hash演算法、乙個隨機數

2. server hello

服務端對客服端說好的,並對客服端發來的資訊裡選出一組tls版本、對稱加密演算法、非對稱加密演算法、hash演算法、以及乙個隨機數,發還客戶端

3. 服務器證書 信任建立

服務端對客服端發證書,證書裡包含公鑰

4. pre-master secret

客戶端利用持有的客戶端隨機數和服務端隨機數,通過唯一一次的非對稱加密,生產出乙個叫做 pre-master secret的隨機數傳給伺服器,雙方用這三個隨機數計算出master secret,利用master secret計算出客戶端加密秘鑰,服務端加密秘鑰,客戶端mac secret,服務端端mac secret(mac secret是用來做hash以驗證身份的)

5. 客戶端通知:將使用加密通訊

6. 客戶端傳送:finished

將前面的所有內容打包,加密發給對方

7. 服務器通知:將使用加密通訊

8. 服務器傳送:finished

將前面的所有內容打包,加密發給對方

TCP IP協議棧(協議族)

思考乙個問題 為什麼不同廠家 不同型號的計算機能相互通訊?原因在這裡,tcp ip 協議族 實現了這一目標。使得不同廠家 不同型號的計算機能相互通訊!網際網路協議 internet協議 平時我們所說的tcp ip是乙個協議族,也叫協議棧。換句話說,internet協議是乙個多種協議組合在一起的一種叫...

《TCP IP協議族》 ICMP協議

icmp協議是一種面向無連線的協議,用於傳輸出錯報告控制資訊。它是乙個非常重要的協議,它對於網路安全具有極其重要的意義。它是tcp ip協議 族的乙個子協議,屬於網路層協議,主要用於在ip主機與路由器之間傳遞控制資訊,包括報告錯誤 交換受限控制和狀態資訊等。當遇到ip資料無法訪問目標 ip路由器無法...

OSI模型和TCP IP協議族

1.1 協議分層 兩個實體之間進行通訊就需要有乙個協議。而當這個通訊比較複雜的時候,我們就有必要將這個任務劃分為多層。這個時候就需要多個協議,每個層之間有各自的協議。分層結構 通訊過程之間的任務必須是按照分層機構中指定的順序執行的。1.2 osi模型 osi模型的主要作用就是展示兩個不同系統之間是怎...