當前位置:
首頁 > 最新 > 訪問網頁之協議淺析

訪問網頁之協議淺析

今天我們來分析,整個訪問網頁的過程,在此之前,我們先來回顧一些基本的概念,大家可以邊看圖邊聽我說,結合圖會更容易理解一點。

第一部分,我們先來回顧一下IP地址和MAC地址,以及它們之間的區別和聯繫。

IP地址:

ip地址類型總共有五種,常見的有以上三種,就是我在表裡面畫了的三種,有a類,b類,還有c類。

最早的ip有4個位元組,一個位元組8位,總共是32位,所以被稱為ipv4,後來ip地址不夠用了,就出現了ipv6,總共是128位。

如圖中所示,ip地址是由網路號和主機號組合而成的,像a類的ip地址就是由8位的網路號和24位的主機號組合而來,b類的ip地址就是由16位的網路號和16位的主機號組合而來的,c類同理.

我們先來看a類ip,前八位表示網路號,第一位固定是零,b類前16位表示網路號,前兩位固定是10,對於c類ip地址來講,前24位表示網路號,然後前三位固定是,110. 這樣的話就可以把ip地址類型分為a類,b類還有c類.

看錶格的最後一列是子網掩碼,子網掩碼的作用是將ip地址劃分成網路地址和主機地址,用來指明一個ip地址處在哪個子網的具體哪台機器上。

簡單的理解就是,假設,你需要去判斷兩台計算機有沒有處在同一個區域網下,最簡單的判斷方法就是,將這兩台計算機,各自的ip地址,換算成二進位32位,然後分別與子網掩碼進行按位與的操作之後,如果得出的結果是相同的,那麼就說明這兩台計算機是處於同一個子網路上的,就是處在同一個區域網,可以直接進行通訊,以及數據的傳輸,如果說得出的結果是不同的,那麼就說明這兩台機器處於不同的區域網上,就不能進行直接的通訊,需要通過一些網路設備,比如說路由器,來進行數據的傳輸。

子網掩碼自己不能單獨的使用,必須配合ip一起使用,去劃分,ip地址的網路地址和主機地址.

ip地址,分為公有ip地址和私有ip地址,公有ip地址指的是,比如說北京的人民大會堂,這種全世界只有一個,所有人都是可以訪問的,而私有的ip地址是"組織"自己管理,和分配的地址,比如說你們公司,他就有自己私有的ip地址,需要去花錢買,ip地址,具有遠程定位的功能,它是可以改變的。

MAC地址:

接下來我們來講一下MAC地址,如果說ip地址相當於是門牌號的話,MIC地址就相當於是身份證,麥克地址是硬體地址,每一個網卡剛出廠的時候,都會有一個獨一無二的MAC地址,在同一個區域網中,注意注意是在同一個區域網中,MAC地址是絕對不會改變的。

通過ARP協議,可以找到某一個ip對應的MAC地址,查找的方式是廣播的形式,就是針對於這個區域網中所有的計算機發送一個廣播, 也就是找一個喇叭,大喊一聲,我想找的那個MAC地址在哪裡?對應的計算機就會站起來說,我是我是。這樣的話就找到了這個MAC地址,就可以進行數據的傳遞了。

MAC地址是針對於同一個區域網而言的,局限在一個子網之內,但是ip地址是針對於跨區域網而言的,如果說你要訪問同一個區域網中的機器的話,直接使用MAC地址就已經足夠了,不需要ip地址,但是如果要訪問其他子網的計算機,就必須用到ip地址。

這裡就是ip地址和mac地址,有問題的話可以給我留言,有什麼描述不合適的地方也歡迎大家留言指出。

接下來我們來看訪問網頁的一整個的流程,比如說你現在要訪問

https://www.csdn.net 這個網址,那麼你的目的肯定是想要瀏覽器返回給你csdn的主頁頁面,對吧?

那我們先來分析這個網址,https://www.csdn.net 是URL,即統一資源定位符,其中https指的是交互協議,常用的交互協議,還有http協議,兩者的區別是https是加密的協議。www.csdn.net指的是域名,也就是csdn伺服器在互聯網中所處的位置。

比方說你現在要找鹿晗這個人,但是知道這個人名字叫鹿晗,並不清楚他家是在哪裡,於是你上DNS伺服器上去找對應的的地址,最終去實現找到他這個人。

你現在看到的圖是我們常說的互聯網的五層協議的一個架構。

那麼我們從開始來講,從瀏覽器中輸入一個網址之後,到達了應用層,應用層發起一個http的請求。

如圖所示,http , https和DNS都是在應用層工作的協議,當瀏覽器發起一個http請求包之後,請求包會到達傳輸層,應用層到傳輸層傳遞數據的方式是socket編程的方式。

傳輸層用到的協議主要是tcp和udp,其中tcp是面向連接的,面向連接的意思是,保證數據包肯定能到達目的地,如果說沒有到達,中途丟失了,或者其他的原因沒有到達,則tcp會重新去發送數據包,而UDP是無連接的,他不保證數據包能否確定的到達目的地,數據包在傳輸層添加上tcp頭之後(這裡的tcp頭其實主要包括埠號),將數據包發送到網際層,也就是我們常說的ip層。

在ip層添加上ip頭,裡面有源ip地址和目標ip地址,然後將數據發送到數據鏈路層,也就是MAC層,在MAC層中給數據包添加上源MAC地址和目標MAC地址,如果目標伺服器和當前的客戶端在同一個區域網中,則直接通過ARP協議找到目標伺服器的MAC地址,將數據包發出去就可以了,如果說兩者不在同一個區域網中,只需要找到默認網關的麥克地址,將數據包發到默認網關,默認網關指的是192.168.1.1,當數據包發送到默認網關之後,再通過路由器去尋找目標的子網。

找到目標子網之後,再通過ARP協議,去找到目標MAC地址所在的那一台機器,當目標機器收到數據包之後,第一步,匹配MAC地址去掉MAC頭,第二步匹配ip地址,去掉ip頭,第三步,匹配TCP/UDP協議,在本層,匹配完之後,確認收到數據包,之後會返回給客戶端一個應答的消息。

接著,去掉tcp頭之後,找到裡面包裝的目標埠號,然後找到監聽該埠號的進程,將數據包交給這個進程去處理。

當進程處理完請求之後,又原路返回,將頁面返回給我們剛才最開始的瀏覽器客戶端。這樣的話其實就完成了一個請求跟應答的一個過程,我們在瀏覽器上就可以看到,我們需要請求的那個頁面了。

這裡有個概念需要需要給大家說一下,就是名字叫MTU,指的是最大傳輸單元,有大小限制,它必須小於1500個位元組,也就是說tcp頭加上http頭加上mac頭等,這些這些頭信息加起來不能超過1500個位元組,MTU是MAC層的一個概念。

我們再來說一下ARP協議,這個協議的全稱叫地址解析協議,主要的目的就是將ip地址解析成對應的MAC地址,所以如果說我們要查找MAC地址的話,就需要用到ARP協議,去查找的方式是廣播方式。

ip地址是可以改變的,所以我們可以自己去配置ip地址,但是配置ip地址又不能隨意配置,它是有一定的規則的,只有在同一個網段才可以配置ip地址。

假設我們帶著筆記本去公司,每天每天每天每天上班帶去公司下班帶回來,那麼每天去公司之後,都得重新去給我們的筆記本配置ip地址,而且每天的ip都不一樣,所以手動配置其實超級麻煩,然後就出現了dhcp協議,dhcp協議是為了實現自動配置ip的功能,它的過程如下,

(1)管理員分配一段共享的ip地址,

(2)新接入的筆記本,通過dhcp協議自動申請ip,

(3) 通過MAC地址去租用這個ip地址,

(4)需要提前續租,如果用完了就需要把這個ip地址還回去.

整個過程可以理解為租房子的過程。

以上就是簡單的一個訪問--應答請求的框架,接下來我們來分析,路由器,交換機,集線器的演變過程。

我們來模擬打遊戲的過程,最開始的時候只有兩台電腦,用一根網線就可以連接電腦a和電腦b,注意這裡的網線,兩頭都連的是電腦,給電腦a和電腦b配同一個網段的ip地址,就可以搭建出一個最小的區域網。

後來呢,兩個人覺得玩的不夠嗨,就想再找兩個人一起玩,於是一根網線就不能滿足了,出現了集線器這種設備,集線器有很多口,用來收發數據包,但是呢,它又笨又無腦,所有收到的數據,都會以廣播的形式再發送出去,明顯帶來的缺陷就是很不安全。

再後來呢,就出現了交換機這種設備,交換機和集線器最大的區別就在於它可以進行機器學習,他會維護一個轉發表,剛開始的時候表是空的,隨著數據轉發次數的改變,轉發表會將數據的轉發對應關係保存下來,慢慢就會形成一個表。這裡值得注意的是,因為ip會變,所以轉發表會過期,有過期時間。

我們繼續思考,交換機能解決集線器的缺點,那麼交換機自己有沒有局限性呢?當然是有的,假設兩個交換機連接了三個區域網,它會產生環路問題,這個我們下一節再詳細去解釋,現在只需要知道,我們需要採取某種方法去解決掉環路問題。

解決掉環路問題之後,我們思考一下,隨著計算機越來越多,交換機也越來越多,可以通過物理隔離或者虛擬隔離的方式隔離交換機。

交換機只工作在區域網內,只能處理數據鏈路層的問題,而一旦涉及到更上層,比如說ip層就不能用了,這時就需要其他的設備,比如路由器去處理了,路由器是主要工作在,網路層,也就是ip層,具有路由功能,一個路由器上有很多網口,每一個網口都相當於一個網關。

好了,第一篇文章就寫到這裡,會持續更新,希望大家多多支持關注,我是淺夢倩影。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

智慧故事—南轅北轍
世界上那些灰色的角落

TAG:全球大搜羅 |