1. 網絡模型概覽
OSI(Open System Interconnection)先有模型,后有協議,先有標準,后進行實踐;而TCP/IP則相反,先有協議和應用再提出了模型,且是參照的 OSI 模型。
OSI是一種理論下的模型,而TCP/IP已被廣泛使用,成為網絡互聯事實上的標準。
2. HTTP 網絡通訊過程
示例:簡單的網絡拓撲模型
詳解:當鍵入網址到網頁顯示的通訊過程
客戶端(發送方組包)
1)HTTP
瀏覽器解析 URL(協議、域名、資源路徑)
生成HTTP 請求報文
2)DNS(真實地址查詢)
向 DNS 服務器查詢服務器域名對應的IP 地址
域名中越靠右的位置表示其層級越高
3)協議棧(指南幫手)
獲取 IP 后,將之后的 HTTP 傳輸工作交給操作系統內核中的協議棧處理
TCP/UDP:負責收發數據
IP:負責將網絡包送達給對方
4)TCP(可靠傳輸)
報文頭部包含源端口號、目標端口號、序號、確認號等
TCP傳輸數據之前,要先三次握手建立連接(三次握手的目的是保證雙方都有發送和接收的能力)
TCP 報文生成:TCP 頭部 + HTTP 報文
5)IP(遠程定位)
將數據封裝稱網絡包發送給通信對象
IP 報文生成:IP 頭部 + TCP 頭部 + HTTP 報文
6)MAC(兩點傳輸)
還需要加上 MAC 頭部(發送方和接收方的 MAC 地址等信息),MAC 頭部是以太網的頭部
MAC 作用:MAC 地址用來唯一標識設備,再通過 ARP 協議找到下一站路由器的 MAC 地址,實現兩點之間的傳輸
至此,網絡包報文(MAC 頭部 + IP 頭部 + TCP 頭部 + HTTP 報文)如下圖所示:
7)網卡(出口)
真正的數據發送過程:將數字信息(IP 網絡包)轉換為電信號,才能在網線上傳輸
控制網卡需要靠網卡驅動程序
網卡本身具有 MAC 地址,且會核對數據包的接收方 MAC 地址與自身 MAC 地址是否相同,不是則丟棄
8)交換機(送別)
交換機的設計:將網絡包原樣轉發到目的地
交換機工作在 MAC 層,也稱為二層(數據鏈路層)網絡設備
交換機接收到達網線接口的電信號,并轉換為數字信息
二層交換機本身具有一個 MAC 地址(標識自身硬件設備),但其各端口不具有 MAC 地址(三層交換機則每個端口都有 MAC 地址)
交換機根據交換機根據MAC 地址表查找 MAC 地址,然后將信號發送到相應的網線端口。交換機的 MAC 地址表包含兩個信息:
設備的 MAC 地址
該設備連接在交換機的哪個端口上
9)路由器(出境)
路由器基本原理:
與交換機類似,通過查表判斷包的(下一個路由器或目標設備)轉發目標
路由器基于 IP 設計,俗稱三層(網絡層)網絡設備,其各端口具有 MAC 地址和 IP 地址(和計算機網卡一樣);而交換機基于以太網設計,俗稱二層(數據鏈路層)網絡設備,其端口不具有 MAC 地址(也有三層交換機,具有部分的路由器功能)
MAC 頭部的作用就是將包送達路由器,其中的接收方 MAC 地址就是路由器端口的 MAC 地址
包接收操作:將網線接口的電信號轉成數字信號,并核對 MAC 地址
完成包接收操作之后,路由器就會去掉包開頭的 MAC 頭部
接下來會根據 MAC 頭部后方的 IP 頭部中的內容進行包的轉發操作
包發送操作:將網絡包的數字信號轉成電信號并通過端口發送出去,經過層層轉發之后,到達最終目標設備
首先是查詢路由表判斷轉發目標
通過 ARP 協議根據對方的 IP 地址查詢 MAC 地址,并將查詢結果作為接收方 MAC 地址
以太網(傳輸)
在網絡包(跨網段)傳輸過程中,源 IP 和目標 IP 始終是不會變的,一直變化的是 MAC 地址,因為需要 MAC 地址在以太網內進行兩個設備之間的包傳輸。
(對于同網段的二層轉發,MAC 地址則不變。)
服務器端(接收方解包)
1)路由器(入境)
2)交換機(境內)
3)服務器(終點)
服務器層層扒開數據包頭部,最后通過 TCP 頭部的端口號確認是 HTTP 進程想要的這個包
HTTP 進程將資源封裝在HTTP 響應報文中,也依次穿上 TCP、IP、MAC 頭部,從網卡出去,交由交換機轉發到路由器,經過層層轉發,最后到達客戶端
客戶端扒剩 HTTP 響應報文后,交給瀏覽器去渲染頁面并顯示資源
最后客戶端要離開時,向服務器發起TCP 四次揮手,至此雙方連接斷開
示例:服務器和客戶端相互扒皮
鏈接:https://www.cnblogs.com/juno3550/p/14385367.html
-
HTTP
+關注
關注
0文章
511瀏覽量
31385 -
OSI
+關注
關注
0文章
83瀏覽量
15442 -
網絡通訊
+關注
關注
0文章
75瀏覽量
11283
原文標題:2. HTTP 網絡通訊過程
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論