前端必須懂的計算機網路知識—(IP,MAC和網路模型)

夢想攻城獅發表於2018-09-20

計算機網路在IT行業的重要性

IT即網際網路技術,從事的工作和網路有很大的關係,前端要負責和後臺(伺服器)進行互動,其必然得經過網路,所以懂點網路知識有很大的幫助。

一道經典的面試題

問:在瀏覽器輸入網址到看到頁面經歷了哪些過程?

每個人有每個人的回答,先說下我對這道題的答案:

  • 瀏覽器會訪問DNS伺服器將輸入的域名對應的IP獲取到
  • 瀏覽通過HTTP協議和IP協議處理髮送的建立連線的請求然後傳送到網際網路
  • 在網際網路中路由器根據目標IP地址,通過複雜的演算法找出'最優路徑'來傳輸請求
  • 找到目標IP計算機(伺服器)的網路卡通過三次握手建立連線
  • 伺服器對請求進行分析處理然後返回瀏覽器需要的頁面
  • 瀏覽器拿到資料會對DOM結構和CSS進行分析形成renderTree然後渲染到頁面上
  • 在渲染的過程中有需要從伺服器請求的資源,會重複1-6的過程

上面的回答就涉及到前端必須瞭解的網路知識點,這個系列會持續介紹:

網路模型資料處理過程

模型資料處理過程

DNS伺服器、IP地址、MAC地址

MAC地址

  1. 在網際網路中,計算器和計算器之間傳送和傳輸資料都是通過網路卡進行的,所以計算機之間建立連線也就是兩個網路卡之間建立連線。
  2. 網路卡內的地址來標識計算機身份的每個網路卡都有一個全球唯一的地址來標識自己,不會重複
  3. MAC地址48位的二進位制組成,通常分為6段,用16進製表示

mac地址

IP地址

什麼是IP地址

  1. 網際網路之所以有個網字,是因為它的組成結構就像一張無形的網將全世界的計算機連線在一起,而路由器和計算機屬於這個網中的一個節點。
  2. IP地址的網路部分是由Internet地址分配機構來統一分配的,這樣可以保證IP的唯一性,用來確定網路中的一個節點。
  3. IP地址是由32位二進位制(32bit)組成,將網路分為A、B、C三類,這樣就形成了型別郵編的東西來表示網路和子網路
  4. IP地址中全為1即255.255.255.255,它稱為限制廣播地址,如果將其作為資料包的目標地址可以理解為傳送到所有網路的所有主機
  5. IP地址中全為0即0.0.0.0,它表示啟動時的IP地址,其含義就是尚未未分配時的IP地址
  6. 127是用來進行本機測試的,除了127.255.255.255外,其它的127開頭的地址都代表本機

A、B、C
D、E

網路號和主機號

網路號表示了網路的範圍和大小,比如說: A類網路的IP範圍:1.0.0.0 ~ 127.0.0.0,說明了A類網路總共有126個(1.0.0.0 ~ 126.0.0),剩下的0.0.0 ~ 1.1.1表明了每個網路下可以有2^24-1個主機。B類、C類以此類推。

公有地址和私有地址

  • A類網路的IP範圍:1.0.0.0 ~ 127.0.0.0,其中A類私有IP:10.0.0.0 ~ 10.255.255.255
  • B類網路的IP範圍:128.1.0.0-191.255.0.0,其中B類私有IP:172.16.0.0 ~ 172.31.255.255
  • C類網路的IP範圍:192.0.1.0-223.255.255.0其中C類私有IP:192.168.0.0 ~ 192.168.255.255
  • 各類網路除私有網路外均為公有IP地址

公有網路就是在網際網路內進行標識的IP號,而私有地址則不能用在網際網路中用來標識主機地址,私有地址只能在私有網路或區域網中來標識主機。舉個例子,北京就是公有地址,而南京街就是私有地址,因為北京有南京街,江西也有南京街,不能用南京街來作為公有地址。

子網和子網掩碼

  • 子網掩碼(subnet mask)又叫子網路遮罩,它是一種用來指明一個IP地址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機。
  • 子網掩碼不能單獨存在,它必須結合IP地址一起使用。它只有一個作用,就是將某個IP地址劃分成網路地址和主機地址兩部分。
  • 子網掩碼也是32個二進位制位,對應IP的網路部分用1表示,對應IP地址的主機部分用0表示,IP地址和子網掩碼做邏輯與運算得到網路地址
  • A類地址的預設子網掩碼255.0.0.0
  • B類地址的預設子網掩碼 255.255.0.0
  • C類地址的預設子網掩碼 255.255.255.0

兩個IP地址分別是172.20.0.18和172.20.1.16,子網掩碼都是255.255.255.0。我們可以知道兩者的網路標識分別是172.20.0和172.20.1,無法直接通訊,也就無法PING通。要想能相互通訊,需要將子網掩碼改成255.255.0.0,反之可以通過子網掩碼來分網。

IP地址和MAC地址

  • MAC地址是根據供應商的不同決定的唯一性標識,所以必然就導致其沒有辦法進行規律化和區域化,所以用同樣唯一性的IP地址來代替,因為IP有其分類和區域行特點。
  • MAC地址是固定不變的,一個網路卡,從製作出來之後其MAC地址是永遠不會變化的,但是IP地址不一樣,它是隨機分配給網路卡使用的,所以不是不變的。舉個例子:MAC地址是你,江西的南京街18號和北京的南京街18號是IP地址,只要給你分配了IP,你住在了裡面,都可以通過IP找到你。

計算機網路的分層模型

OSI七層模型

  • 應用層(Application) 提供網路與使用者應用軟體之間的介面服務
  • 會話層(Session) 提供包括訪問驗證和會話管理在內的建立和維護應用之間通訊的機制
  • 表示層(Presentation) 提供格式化的表示和轉換資料服務,如加密和壓縮
  • 傳輸層(Transimission) 提供建立、維護和取消傳輸連線功能,負責可靠地傳輸資料(PC)
  • 網路層(Network) 處理網路間路由,確保資料及時傳送(路由器)
  • 資料鏈路層(DataLink) 負責無錯傳輸資料,確認幀、發錯重傳等(交換機)
  • 物理層(Physics) 提供機械、電氣、功能和過程特性(網路卡、網線、雙絞線、同軸電纜、中繼器)

OSI七層模型

TCP/IP參考模型

上面的模型只是一種理想和理論層面的,在現實中使用最多的還是TCP/IP參考模型:

  • 應用層
  • 傳輸層
  • 網路層
  • 資料鏈路層
  • 物理層

TCP/IP參考模型

為什麼要進行分層

  • 應用層:使用者使用的網路軟體種類繁多,功能都不一樣,所以對資料的解析處理過程也不一樣,所以應用層提供網路與使用者應用軟體之間的介面服務,適應差異性。
  • 傳輸層:資料要進行網路傳輸,必然就面臨很多問題,連線不持久、延遲、丟包等問題就會影響網路傳輸的穩定性,所以傳輸層提供建立、維護和取消傳輸連線功能,負責可靠地傳輸資料
  • 網路層:資料在網路上傳播,網路的機構是複雜的,條條道路同羅馬,所以從傳送地到接收地有很多可能的路線,怎樣選擇路線才能保證資料更快到達,這裡涉及到很多如'最短路徑'的演算法問題,所以網路層處理網路間路由,確保資料及時傳送(路由器)
  • 資料鏈路層:路由器在網際網路中負責IP地址的查詢,但是在區域網內,使用的是私有IP,這個時候就需要處理區域網和私有IP之間查詢和傳輸的問題,所以資料鏈路層負責無錯傳輸資料,確認幀、發錯重傳等(交換機)
  • 物理層:網路的傳輸總得通過媒介,所以物理層提網路卡、網線、雙絞線、同軸電纜、中繼器等媒介

上面是TCP/IP參考模型分層原因,但是它存在一定的缺點,所以在上面進行擴充套件:

  • 會話層:由於基於TCP連線是不持久的,在應用層下面增加會話層提供包括訪問驗證和會話管理在內的建立和維護應用之間通訊的機制cookie、session等,
  • 表示層:由於TCP連線是不安全的,容易發生請求擷取和篡改而導致密碼洩漏、注入攻擊等問題,所以在傳輸層之上增加了表示層提供格式化的表示和轉換資料服務,如加密和壓縮

路由器和交換機

  • 路由器負責網際網路節點之間的路由和連線,它通過公網IP和路由器MAC地址之件的對映,通過演算法保證最有效的傳輸資料
  • 交換機主要用於區域網內私有IP和MAC地址之間的對映關係,來處理資料傳輸
  • 交換機屬於資料鏈路層,路由器屬於網路層,資料在傳輸過程中不斷地進行封裝和解封裝的過程,每層裝置只能處理哪一層的資料,傳送方和接收方中間可能會有多個硬體中轉裝置,中間可能會增加交換機和路由器

資料封裝

模型資料處理過程

模型資料處理過程

結語: IT即網際網路技術,從事的工作和網路有很大的關係,前端要負責和後臺(伺服器)進行互動,其必然得經過網路,所以懂點網路知識有很大的幫助。接下來會介紹:

  1. 跨域和代理
  2. TCP
  3. HTTP
  4. HTTPS 本文參考:
  5. 圖解HTTP
  6. 計算機網路

相關文章