溫習一下網路基礎TCP/IP
通常使用的網路(包括網際網路)是在TCP/IP協議族的基礎上運作的,而HTTP屬於它內部的一個子集
~先來一波書上的知識做個小筆記~
而TCP/IP協議是計算機與網路裝置互相通訊的規則;
簡單的說從電纜的規格到IP地址的選定方法等與網際網路相關聯的協議集合起來總稱TCP/IP
通過TCP/IP進行分層管理
TCP/IP協議族按照層次分為4層:應用層、傳輸層、網路層、資料鏈路層
- 應用層 : 決定了向用戶提供應用服務時通訊的活動;
HTTP協議也處於該層;DNS服務同樣處於這層
- 傳輸層 :提供處於網路連線中的兩臺計算機之間的資料傳輸;在傳輸層有兩個性質不同的協議:
TCP 和 UDP
- 網路層 : 處理網路上流動的資料包;
IP協議
- 鏈路層/網路介面層 :處理連線網路的硬體裝置
以上四層的通訊順訊
用HTTP來舉例:傳送端輸入URL傳送請求(http協議,http請求)檢視web頁面
其中IP協議的作用是把資料包傳送給對方;確保準確的傳送的兩個重要條件是IP地址和MAC地址;MAC地址是指網絡卡所屬的固定地址
接下來,要敲小黑板劃重點了
常常放在口中的TCP連線3次握手和四次揮手,到底是怎麼實現的呢?
emmm...確實每次都是話到口邊卻說不來了
下面來打包一下,做個一次性總結:
為了準確無誤的將資料送到目標地,連線時 TCP採用3次握手策略
,握手中使用了TCP的標誌:syn和ack
- 傳送端首先發送帶syn同步序列標誌的資料包給接收端
- 接收端收到後回傳一個帶有syn/ack(確認)標誌的資料包表示傳達確認資訊
- 傳送端收到後,在傳送一個帶有ack(確認)標誌的資料包表示握手結束
當客戶端不想再連線了,那麼它接下來就要向服務端發起結束請求了,但是這不是談戀愛,不是一方說分手就能分手的。因為客戶端發起結束請求,並不代表服務端此刻已經把所有的資料都返給客戶端了;所以就有了 四次揮手
, 目的也是為了確保客戶端與服務端的資料傳輸是完整的
- 首先是客戶端發起的結束請求,也就是傳送FIN報文;此時的客戶端進入FIN_WAIT_1狀態
- 服務端收到FIN後,傳送一個ACK給客戶端,確認序號為收到序號+1(與SYN相同,一個FIN佔用一個序號),服務端進入CLOSE_WAIT狀態
- 服務端傳送一個FIN,用來關閉服務端到客戶端的資料傳送,服務端進入LAST_ACK狀太
- 客戶端收到FIN後,客戶端進入TIME_WAIT狀態,接著傳送一個ACK給服務端,確認序號為收到序號+1,服務端進入CLOSED狀態,完成四次揮手。
HTTP協議與其他協議之間的關係
DNS服務
:解析對應域名的IP
http協議
:生成針對目標Web伺服器的HTTP請求報文
TCP協議
: 為了方便資料傳遞,將HTTP請求報文分割成報文段,把每個報文段可靠的傳送給對方;或者接收對方的報文段,重組成報文
IP協議
:搜尋對方的地址,一邊中轉一邊傳送