網絡基礎之網絡通信的整個流程


網絡通信的整個流程

1. 客戶端\服務端架構(哪里用到了網絡通信)

客戶端英文名稱:Client,服務端英文名稱:Server,下面所說的C\S架構就是說的Client\Server架構。

  a.硬件C\S架構:打印機。

  b.軟件C\S架構:QQ、微信、優酷、暴風影音、瀏覽器(IE、火狐,360瀏覽器等)。

其中瀏覽器又比較特殊,很多網站是基於瀏覽器來進行訪問的,瀏覽器和各個網站服務端進行的通訊方式又常被成為B\S架構(瀏覽器英文名稱:Browser)

2. 網絡通信的整個流程

 網卡和mac地址

    你的電腦想要聯網,首先要有一個網卡,而且電腦要做好相關的網路配置(如何配置,在下面有介紹)

  電腦插網線的地方就做網卡,網卡提供了網絡的接口,這是硬件上面的,大家都是到網口是吧,我怎么找到電腦的網卡呢,有人說用IP地址,IP地址並不是,而是全球唯一的mac地址,專門給網絡設備設定的,是出廠的時候就給定好的,一個設備的mac地址號碼是全球唯一的。 head中包含的源和目標地址由來:ethernet規定接入internet的設備都必須具備網卡,發送端和接收端的地址便是指網卡的地址,即mac地址。   

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

  查看mac地址的方法:windows下在cmd窗口輸入ipconfig -all指令:下面顯示的這個物理地址就是mac地址。

  由於mac地址很難記憶,所以又出現了IP地址,在說IP地址之前,我們先說一下編碼,我們都是到一個字節等於8位對吧,8個2進制的數,那么8位是不是可以表示256個字節啊,由於全球有太多的機器需要聯網,那么網絡設備的編號應該長一些,對不對,由4個點分十進制組成,由點分割的四個十進制的數,而十進制的數是不是在計算機中也是由二進制表示的啊,那么就成了這個樣子:00000000.00000000.00000000.00000000 -- 11111111.11111111.11111111.11111111,0.0.0.0--255.255.255.255,也就是由4個8位的二進制數表示,這個表示就是我們的IP地址的形式。

  如果你用網線連網的,查看自己網絡的屬性,並且可以將ipv4版本的ip地址可以設置成靜態的、也可以自動獲取(動態分配的),配置好自己電腦的網絡信息之后,我們就有了身份證(mac地址)和名字(IP地址),通過他們,我們就在網絡中有了自己的身份,只要有網,我們就和別人進行通信了。

 

arp協議功能:廣播的方式發送數據包,獲取目標主機的mac地址

下面是網絡通信流程:

流程描述:

  第一步:打開瀏覽器,如請求訪問京東,欄輸入了網址:www.jd.com。(www.jd.com是域名就是一個IP地址的名稱,IP地址不好記,所有有了域名。)

  第二步:先將請求信息發給了交換機,然后交給了路由器,路由發給DNS服務器,通過DNS協議去找我們要訪問的京東的IP地址:

  第三步:查到的京東服務器對應的IP地址之后,路由器通過路由協議找到一個路由轉發的最優路徑,將你的請求信息還送給這個IP地址的京東的路由器

  第四步:京東的路由器發給了京東網站的服務器上

  第五步:京東網站服務器按照來的時候的路徑,在返回給你他自己的網站

  第六步:當你打開瀏覽器的時候,你的電腦給你的瀏覽器這個運行起來的程序給了一個編號,叫做端口號,當你的電腦收到京東發送過來的消息的時候,你的電腦通過端口號找到你的瀏覽器,你的瀏覽器拿到了京東的網站信息,然后將網站呈現在了自己的瀏覽器上

 

內網和外網:   

  所謂內網就是我們平常說的局域網。局域網就是在固定的一個地理區域內由2台以上的電腦用網線和其他網絡設備搭建而成的一個封閉的計算機組。它可以是鄰居之間的2台電腦,也可以是一幢100層大樓里的1000台電腦。局域網可以是獨立封閉運行的,也可以是和外網相連接的。
  所謂外網,也就是廣域網。是一種地域跨度非常大的網絡集合。它是由無數個局域網+獨立服務器構成的。注意,此處所說的局域網既可以是小型的廣域網,也可以是局域網。
  實際上,從規模上來看我們很難分辨局域網與廣域網,因為大小都是相對的。所以。真正局域網與廣域網的分別是通過IP地址來實現的。
  任何一台電腦要上網,都必須在網絡上有一個唯一的IP地址。在局域網內,這個IP地址是唯一的。但是在另外一個局域網,這個IP地址仍然能夠使用。
  網絡A里有一台IP地址為192.168.1.231的客戶端,網絡B里也可以有一台同樣IP的電腦。那么。我們就說這2台機器分別在2個局域網里。但是在廣域網內,所有的IP地址都是唯一的。山西電信的DNS服務器IP地址是61.134.1.4.那么,這個地址在全世界都是唯一的,不可重復的。這就是廣域網和局域網的區別。

  如果只有內網的ip地址你是不能上網的,你上網肯定要通過一個外網地址,這個外網地址又稱為公網地址,這個公網地址是全球唯一的,他在你的對外出口的路由器上,也就是你的外網網關地址。

 

三 DNS服務器

  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查詢過程

查詢步驟:

  1.本地查詢順序

    瀏覽器緩存: 瀏覽器會按照一定的頻率緩存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調出來。

  

 2.遞歸查詢

   第一步:在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再原路返回給請求查詢的主機

 3.迭代查詢:

   第一步:在hosts靜態文件、DNS解析器緩存中查找某主機的IP地址

   第二步:上一步無法找到,在DNS本地服務器(即域服務器)查找所有本層次的區域服務器

   第三步:本地DNS服務器查不到就向ISP是互聯網服務提供商(Internet Service Provider)的簡稱,ISP有專門的DNS服務器應對DNS查詢請求。再找不到就查詢上一層次的所有區域服務器,以此類推直至根域名DNS服務器‘.’

   第四步:到達根域名服務器后又向下查詢,直至查到結果為止。

 4.迭代查詢與遞歸查詢結合

  遞歸查詢需要經過逐層查詢才能獲得查詢結果,當查詢具有許多層次的DNS結構時效率很低,所以一般采用兩者相結合的查詢方式。

   第一步:在hosts靜態文件、DNS解析器緩存中查找某主機的ip地址

   第二步:上一步無法找到,去DNS本地服務器(即域服務器)查找,其本質是去區域服務器、服務器緩存中查找

   第三步:本地DNS服務器查不到就向ISP是互聯網服務提供商(Internet Service Provider)的簡稱,ISP有專門的DNS服務器應對DNS查詢請求。再找不到就根據‘根提示文件’向負責頂級域‘.com’的根DNS服務器查詢

   第四步:根DNS服務器直接將其區域DNS服務器的ip地址返回給本地服務器,而不用再向xyz.com的區域服務器查詢。

   第五步:(京東有自己DNS服務器)本地DNS服務器將結果返回給請求的主機

 

四 交換機、路由器和網關(含DHCP)

  通過路由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轉發數據包的過程也是如此。

例子解釋:

假設你的名字叫小不點,你住在一個大院子里,你的鄰居有很多小伙伴,在門口傳達室還有個看大門的李大爺,李大爺就是你的網關。當你想跟院子里的某個小伙伴玩,只要你在院子里大喊一聲他的名字,他聽到了就會回應你,並且跑出來跟你玩。

  但是你不被允許走出大門,你想與外界發生的一切聯系,都必須由門口的李大爺(網關)用電話幫助你聯系。假如你想找你的同學小明聊天,小明家住在很遠的另外一個院子里,他家的院子里也有一個看門的王大爺(小明的網關)。但是你不知道小明家的電話號碼,不過你的班主任老師有一份你們班全體同學的名單和電話號碼對照表,你的老師就是你的DNS服務器。於是你在家里撥通了門口李大爺的電話,有了下面的對話:

  小不點:李大爺,我想找班主任查一下小明的電話號碼行嗎?

  李大爺:好,你等着。(接着李大爺給你的班主任掛了一個電話,問清楚了小明的電話)問到了,他家的號碼是211.99.99.99

  小不點:太好了!李大爺,我想找小明,你再幫我聯系一下小明吧。

  李大爺:沒問題。(接着李大爺向電話局發出了請求接通小明家電話的請求,最后一關當然是被轉接到了小明家那個院子的王大爺那里,然后王大爺把電話給轉到小明家)

  就這樣你和小明取得了聯系。
View Code

  路由器對外部網絡的通信都是通過外網接口(wan口)去轉發出去的,也就是不管你是內網中的哪個電腦,你的請求都要通過路由的外網接口發送出去,別人對你的請求都是通過外網接口接收進來的,至於路由器上對內的lan口是怎么分配IP地址給內網的,要看路由器怎么設置划分vlan也就是子網(內部局域網),每個lan口的IP地址可以是靜態的,也可以是動態分配的(DHCP協議),而且可以划分網段,

  例如:我的1號lan口對接的網段是192.168.1.0-192.168.1.255,那么所有這個網段的電腦的信息進出都走這個lan口到路由器上,對於連接路由器的交換機來講,主要的作用就是搭橋用的,搭橋的意思就是讓連接該交換機的所有電腦都能夠連接起來,只要是同一個網段的互相都可以進行通信,當然這個也要看交換機怎么配置。

   DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工作, 主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段 交換機又分二層交換機和三層交換機,二層交換機主要就是個搭橋的作用,三層交換機還兼有路由的作用,一般現在的交換機都有DHCP功能,也就是說交換機下面連接的這些電腦的子網IP或者說是局域網IP也可以由交換機來動態生成和分配,路由器和交換機所生成的子網IP都是自己在路由器和交換機上設置的,和路由器上的外網IP沒有關系,具體的划分又分為24位的16位的等等,舉例:24位的就是10.11.1.0-10.11.1.255這256個IP地址,0表示后面的8bit是00000000,255表示后面的8bit是11111111

交換機和路由器的基本工作原理:

   路由器---所謂路由就是指通過相互連接的網絡把信息從源地點移動到目標地點的活動。一般來說,在路由過程中,信息至少會經過一個或多個中間節點。通常,人們會把路由和交換進行對比,這主要是因為在普通用戶看來兩者所實現的功能是完全一樣的。其實,路由和交換之間的主要區別就是交換發生在OSI參考模型的第二層(數據鏈路層),而路由發生在第三層,即網絡層。這一區別決定了路由和交換在移動信息的過程中需要使用不同的控制信息,所以兩者實現各自功能的方式是不同的。

  交換機---交換(switching)是按照通信兩端傳輸信息的需要,用人工或設備自動完成的方法,把要傳輸的信息送到符合要求的相應路由上的技術統稱。廣義的交換機(switch)就是一種在通信系統中完成信息交換功能的設備。

詳細工作原理,可參考博客:https://www.cnblogs.com/clschao/articles/9612944.html

  為了避免廣播風暴(以前通過mac地址就可以通信,mac地址通信是廣播的形式,如果世界上所有的電腦都通過這種形式通信,就會形成廣播風暴,堵塞網絡不說,全部信息都變得不安全了,因為所有人都可以收到你發的信息):分了多個局域網,然后通過路由器連起來了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM