網卡chrome
電腦要想聯網,首先要有一個網卡,網卡提供了網絡的接口,網卡上有全球惟一標識碼mac。windows
mac地址瀏覽器
mac地址是出廠的時候就給定好的,一個設備的mac地址號碼是全球惟一的。 head中包含的源和目標地址由來:ethernet規定接入internet的設備都必須具有網卡,發送端和接收端的地址即是指網卡的地址,即mac地址。緩存
mac地址:每塊網卡出廠時都被燒製上一個世界惟一的mac地址,長度爲48位2進制,一般由12位16進制數表示(前六位是廠商編號,後六位是流水線號)服務器
查看mac地址的方法:windows下在cmd窗口輸入ipconfig -all指令:下面顯示的這個物理地址就是mac地址。網絡
IP地址dom
IP地址分爲IPV4和IPV6,而咱們通常用IPV4便可。IPV4是用4個點分十進制組成的,0.0.0.0-255.255.255.255,這就是咱們的IP地址表示形式。ide
通常狀況下咱們會把IP地址配製成自動獲取的方式,由路由器和交換機自動給你分配一個局域網IP地址。網站
也能夠自行設定一個IP地址,可是須要注意配置成當前子網的信息。url
子網掩碼
子網掩碼就是計算當前計算機是否屬於xx網段或xx子網
網關
網關就是進行NAT轉換,將局域網的地址轉換成公網地址。
DNS
DNS是進行域名解析的,所謂的域名解析就是將域名與關聯的IP地址進行關聯,在必定程度上緩解了IP地址不夠用的狀況
ARP協議
經過IP地址獲取對應的mac地址
以廣播的方式發送數據包,獲取目標主機的mac地址
20190108173417126_18228.png
流程描述
當咱們請求
https:\\www.jd.com
的時候,首先電腦會在本地的DNS緩存中找是否有這個DNS緩存(DNS(Domain Name Server,域名服務器)是進行域名(domain name)和與之相對應的IP地址 (IP address)轉換的服務器。DNS中保存了一張域名(domain name)和與之相對應的IP地址 (IP address)的表,以解析消息的域名。域名是Internet上某一臺計算機或計算機組的名稱,用於在數據傳輸時標識計算機的電子方位(有時也指地理位置)。域名是由一串用點分隔的名字組成的,一般包含組織名,並且始終包括兩到三個字母的後綴,以指明組織的類型或該域所在的國家或地區。 DNS是計算機域名系統 (Domain Name System 或Domain Name Service) 的縮寫,它是由域名解析器和域名服務器組成的。域名服務器是指保存有該網絡中全部主機的域名和對應IP地址,並具備將域名轉換爲IP地址功能的服務器。其中域名必須對應一個IP地址,一個IP地址能夠有多個域名,而IP地址不必定有域名。
域名系統採用相似目錄樹的等級結構。域名服務器一般爲客戶機/服務器模式中的服務器方,它主要有兩種形式:主服務器和轉發服務器。將域名映射爲IP地址的過程就稱爲「域名解析」。)本地的DNS緩存是在咱們訪問過一個網站以後,例如京東,那麼本地會保存一個京東域名和京東服務器IP地址的映射關係,未來再次請求的時候,就不用再到外部的DNS上查詢這個域名對應的IP地址了,提升了效率,若是是第一次請求,請看上面的DNS查詢過程
步驟
本地查詢順序:
瀏覽器緩存: 瀏覽器會按照必定的頻率緩存DNS記錄。chrome://net-internals/#dns 查看chormeDNS緩存。
操做系統緩存: 若是瀏覽器緩存中找不到須要的DNS記錄,那就去操做系統中找。cmd命令ipconfig /displaydns 用於查看操做系統dns緩存。
路由緩存: 路由器也有DNS緩存。 找本機的hosts文件 Windows host文件路徑: C:\WINDOWS\system32\drivers\etc\hosts (因爲直接修改以後不能保存,能夠copy一份到桌面,修改以後,在替換掉原路徑下的文件就能夠了),hosts文件以靜態映射的方式提供IP地址與主機名的對照表。
ISP(網絡服務提供商):若是仍是沒有,那麼就去檢查ISP有沒有吧~,每個ISP(網絡服務提供商),或一個大學,甚至是一個大學裏的系都會有一個本身的本地域名服務器,他會在url第一次訪問時緩存該域名的指向。下次再訪問時,他會從緩存裏把這個url曾經指向的IP調出來。
遞歸查詢
第一步:在hosts靜態文件、DNS解析器緩存中查找某主機的IP地址
第二步:上一步沒法找到,去DNS本地服務器(即域服務器)查找,其本質是去區域服務器、服務器緩存中查找
第三步:本地DNS服務器查不到就向ISP(ISP是互聯網服務提供商(Internet Service Provider))的簡稱,ISP有專門的DNS服務器應對DNS查詢請求。再找不到就根據‘根提示文件’向負責頂級域‘.com’的DNS服務器查詢
第四步:'根DNS服務器'根據查詢域名中的'xyz.com',再向xyz.com的區域服務器查詢
第五步:www.xyz.abc.com
的DNS服務器直接解析該域名,將查詢到的ip再原路返回給請求查詢的主機
迭代查詢:
第一步:在hosts靜態文件、DNS解析器緩存中查找某主機的IP地址
第二步:上一步沒法找到,在DNS本地服務器(即域服務器)查找全部本層次的區域服務器
第三步:本地DNS服務器查不到就向ISP是互聯網服務提供商(Internet Service Provider)的簡稱,ISP有專門的DNS服務器應對DNS查詢請求。再找不到就查詢上一層次的全部區域服務器,以此類推直至根域名DNS服務器‘.’
第四步:到達根域名服務器後又向下查詢,直至查到結果爲止。
迭代查詢與遞歸查詢結合
遞歸查詢須要通過逐層查詢才能得到查詢結果,當查詢具備許多層次的DNS結構時效率很低,因此通常採用二者相結合的查詢方式。
第一步:在hosts靜態文件、DNS解析器緩存中查找某主機的ip地址
第二步:上一步沒法找到,去DNS本地服務器(即域服務器)查找,其本質是去區域服務器、服務器緩存中查找
第三步:本地DNS服務器查不到就向ISP是互聯網服務提供商(Internet Service Provider)的簡稱,ISP有專門的DNS服務器應對DNS查詢請求。再找不到就根據‘根提示文件’向負責頂級域‘.com’的根DNS服務器查詢
第四步:根DNS服務器直接將其區域DNS服務器的ip地址返回給本地服務器,而不用再向xyz.com的區域服務器查詢。
第五步:(京東有本身DNS服務器)本地DNS服務器將結果返回給請求的主機
而後經過路由A轉發將消息發出去,消息中包含目標路由D的網關的IP地址,網關分不少的類型:傳輸網關、應用網關、協議網關等等,咱們常常說的網關是指的傳輸網關,簡稱網關,咱們主要就看它,網關在路由器這裏,當請求信息發送到了網關這裏的時候,咱們先到路由表裏面看看有沒有這個請求的目標地址的IP,若是沒有說明不是咱們本身網絡內部的IP地址,須要路由轉發出去,到internet網絡中,可是網絡這麼大,怎麼辦,那麼經過網關計算出一個最佳的傳輸路徑去找到對應的目標網關地址,在路由轉發的過程當中(當請求被路由B接收到了以後,路由B打開以後發現不是找本身的,就會把請求信息包繼續轉發)而後傳輸到這個網關地址的路由器上,目標網關路由器上設置了一些IP地址+端口和各個服務器上的映射關係,即使是全部的交換機都接收到了這個請求,可是仍是可以找到對應的服務器。在經過交換機發送到對應的服務器上
那麼網關究竟是什麼呢?網關實質上是一個網絡通向其餘網絡的IP地址。好比有網絡A和網絡B,網絡A的IP地址範圍爲 「192.168.1.1~192. 168.1.254」,子網掩碼爲255.255.255.0;網絡B的IP地址範圍爲「192.168.2.1~192.168.2.254」,子網掩碼爲255.255.255.0。在沒有路由器的狀況下,兩個網絡之間是不能進行TCP/IP通訊的,即便是兩個網絡鏈接在同一臺交換機(或集線器)上, TCP/IP協議也會根據子網掩碼(255.255.255.0)斷定兩個網絡中的主機處在不一樣的網絡裏。而要實現這兩個網絡之間的通訊,則必須經過網關。若是網絡A中的主機發現數據包的目的主機不在本地網絡中,就把數據包轉發給它本身的網關,再由網關轉發給網絡B的網關,網絡B的網關再轉發給網絡B的某個主機。網絡B向網絡A轉發數據包的過程也是如此。
京東的路由器幹了什麼呢:京東的路由器拿到請求消息以後,須要發給內網(局域網)中的對應的服務器上,這裏在路由器上作了一個映射關係也就是說只要訪問我這個192.168.3.0:443端口的請求,都去找京東的服務器A,就相似這麼個映射關係,具體狀況看到時候路由器交換機怎麼設置