計算機網絡在IT行業的重要性
IT即互聯網技術,從事的工做和網絡有很大的關係,前端要負責和後臺(服務器)進行交互,其必然得通過網絡,因此懂點網絡知識有很大的幫助。前端
一道經典的面試題
問:在瀏覽器輸入網址到看到頁面經歷了哪些過程?面試
每一個人有每一個人的回答,先說下我對這道題的答案:算法
- 瀏覽器會訪問DNS服務器將輸入的域名對應的IP獲取到
- 瀏覽經過HTTP協議和IP協議處理髮送的創建鏈接的請求而後發送到互聯網
- 在互聯網中路由器根據目標IP地址,經過複雜的算法找出'最優路徑'來傳輸請求
- 找到目標IP計算機(服務器)的網卡經過三次握手創建鏈接
- 服務器對請求進行分析處理而後返回瀏覽器須要的頁面
- 瀏覽器拿到數據會對DOM結構和CSS進行分析造成renderTree而後渲染到頁面上
- 在渲染的過程當中有須要從服務器請求的資源,會重複1-6的過程
上面的回答就涉及到前端必須瞭解的網絡知識點,這個系列會持續介紹:跨域
網絡模型數據處理過程
DNS服務器、IP地址、MAC地址
MAC地址
- 在互聯網中,計算器和計算器之間發送和傳輸數據都是經過網卡進行的,因此計算機之間創建鏈接也就是兩個網卡之間創建鏈接。
- 網卡內的地址來標識計算機身份的每一個網卡都有一個全球惟一的地址來標識本身,不會重複
- MAC地址48位的二進制組成,一般分爲6段,用16進製表示
IP地址
什麼是IP地址
- 互聯網之因此有個網字,是由於它的組成結構就像一張無形的網將全世界的計算機鏈接在一塊兒,而路由器和計算機屬於這個網中的一個節點。
- IP地址的網絡部分是由Internet地址分配機構來統一分配的,這樣能夠保證IP的惟一性,用來肯定網絡中的一個節點。
- IP地址是由32位二進制(32bit)組成,將網絡分爲A、B、C三類,這樣就造成了類型郵編的東西來表示網絡和子網絡
- IP地址中全爲1即255.255.255.255,它稱爲限制廣播地址,若是將其做爲數據包的目標地址能夠理解爲發送到全部網絡的全部主機
- IP地址中全爲0即0.0.0.0,它表示啓動時的IP地址,其含義就是還沒有未分配時的IP地址
- 127是用來進行本機測試的,除了127.255.255.255外,其它的127開頭的地址都表明本機
網絡號和主機號
網絡號表示了網絡的範圍和大小,好比說: 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) 提供機械、電氣、功能和過程特性(網卡、網線、雙絞線、同軸電纜、中繼器)
TCP/IP參考模型
上面的模型只是一種理想和理論層面的,在現實中使用最多的仍是TCP/IP參考模型:cookie
爲何要進行分層
- 應用層:用戶使用的網絡軟件種類繁多,功能都不同,因此對數據的解析處理過程也不同,因此應用層提供網絡與用戶應用軟件之間的接口服務,適應差別性。
- 傳輸層:數據要進行網絡傳輸,必然就面臨不少問題,鏈接不持久、延遲、丟包等問題就會影響網絡傳輸的穩定性,因此傳輸層提供創建、維護和取消傳輸鏈接功能,負責可靠地傳輸數據
- 網絡層:數據在網絡上傳播,網絡的機構是複雜的,條條道路同羅馬,因此從發送地到接收地有不少可能的路線,怎樣選擇路線才能保證數據更快到達,這裏涉及到不少如'最短路徑'的算法問題,因此網絡層處理網絡間路由,確保數據及時傳送(路由器)
- 數據鏈路層:路由器在互聯網中負責IP地址的查找,可是在局域網內,使用的是私有IP,這個時候就須要處理局域網和私有IP之間查找和傳輸的問題,因此數據鏈路層負責無錯傳輸數據,確認幀、發錯重傳等(交換機)
- 物理層:網絡的傳輸總得經過媒介,因此物理層提網卡、網線、雙絞線、同軸電纜、中繼器等媒介
上面是TCP/IP參考模型分層緣由,可是它存在必定的缺點,因此在上面進行擴展:網絡
- 會話層:因爲基於TCP鏈接是不持久的,在應用層下面增長會話層提供包括訪問驗證和會話管理在內的創建和維護應用之間通訊的機制cookie、session等,
- 表示層:因爲TCP鏈接是不安全的,容易發生請求截取和篡改而致使密碼泄漏、注入攻擊等問題,因此在傳輸層之上增長了表示層提供格式化的表示和轉換數據服務,如加密和壓縮
路由器和交換機
- 路由器負責互聯網節點之間的路由和鏈接,它經過公網IP和路由器MAC地址之件的映射,經過算法保證最有效的傳輸數據
- 交換機主要用於局域網內私有IP和MAC地址之間的映射關係,來處理數據傳輸
- 交換機屬於數據鏈路層,路由器屬於網絡層,數據在傳輸過程當中不斷地進行封裝和解封裝的過程,每層設備只能處理哪一層的數據,發送方和接收方中間可能會有多個硬件中轉設備,中間可能會增長交換機和路由器
模型數據處理過程
結語: IT即互聯網技術,從事的工做和網絡有很大的關係,前端要負責和後臺(服務器)進行交互,其必然得通過網絡,因此懂點網絡知識有很大的幫助。接下來會介紹:session
- 跨域和代理
- TCP
- HTTP
- HTTPS 本文參考:
- 圖解HTTP
- 計算機網絡