1. 程式人生 > >網路通訊的整個流程

網路通訊的整個流程

網路通訊的整個流程

1、網路通訊的支撐元件

  • 網絡卡

    電腦要想聯網,首先要有一個網絡卡,網絡卡提供了網路的介面,網絡卡上有全球唯一標識碼mac。

  • mac地址

    mac地址是出廠的時候就給定好的,一個裝置的mac地址號碼是全球唯一的。 head中包含的源和目標地址由來:ethernet規定接入internet的裝置都必須具備網絡卡,傳送端和接收端的地址便是指網絡卡的地址,即mac地址。

    mac地址:每塊網絡卡出廠時都被燒製上一個世界唯一的mac地址,長度為48位2進位制,通常由12位16進位制數表示(前六位是廠商編號,後六位是流水線號)

    檢視mac地址的方法:windows下在cmd視窗輸入ipconfig -all指令:下面顯示的這個實體地址就是mac地址。

  • IP地址

    IP地址分為IPV4和IPV6,而我們一般用IPV4即可。IPV4是用4個點分十進位制組成的,0.0.0.0-255.255.255.255,這就是我們的IP地址表示形式。

    一般情況下我們會把IP地址配製成自動獲取的方式,由路由器和交換機自動給你分配一個區域網IP地址。

    也可以自行設定一個IP地址,但是需要注意配置成當前子網的資訊。

  • 子網掩碼

    子網掩碼就是計算當前計算機是否屬於xx網段或xx子網

  • 閘道器

    閘道器就是進行NAT轉換,將區域網的地址轉換成公網地址。

  • DNS

    DNS是進行域名解析的,所謂的域名解析就是將域名與關聯的IP地址進行關聯,在一定程度上緩解了IP地址不夠用的情況

  • ARP協議

    通過IP地址獲取對應的mac地址

    以廣播的方式傳送資料包,獲取目標主機的mac地址

2、網路通訊的整個流程

流程描述

  • 第一步:開啟瀏覽器,想要請求訪問京東,在位址列輸入了網址:www.jd.com( www.jd.com是域名就是一個IP地址的名稱,IP地址不好記,所有有了域名。)
  • 第二步:先將請求資訊發給了交換機,然後交給了路由器,路由發給DNS伺服器,通過DNS協議去找我們要訪問的京東的IP地址:

  • 第三步:查到的京東伺服器對應的IP地址之後,路由器通過路由協議找到一個路由轉發的最優路徑,將你的請求資訊還送給這個IP地址的京東的路由器
  • 第四步:京東的路由器發給了京東網站的伺服器上
  • 第五步:京東網站伺服器按照來的時候的路徑,在返回給你他自己的網站
  • 第六步:當你開啟瀏覽器的時候,你的電腦給你的瀏覽器這個執行起來的程式給了一個編號,叫做埠號,當你的電腦收到京東傳送過來的訊息的時候,你的電腦通過埠號找到你的瀏覽器,你的瀏覽器拿到了京東的網站資訊,然後將網站呈現在了自己的瀏覽器上

3、DNS伺服器

當我們請求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伺服器將結果返回給請求的主機

4、交換機、路由器和閘道器

​ 然後通過路由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,就類似這麼個對映關係,具體情況看到時候路由器交換機怎麼設定