應用請求web伺服器的過程詳解

來源:互聯網
上載者:User

標籤:網路訪問   請求過程   

我們在做滲透測試時,需要知道互連網中是如何處理用戶端與伺服器端之間的請求的。本文轉載一篇文章詳解介紹了一次web請求過程的處理。

我們要瞭解一下Internet中一台電腦訪問Web伺服器的全部過程,從中可以窺探Internet是如何工作的,本講主要是想讓大家明網路是怎樣交付資料、定址等,即Internet的基本工作原理。

一、網路環境說明


本次網路通訊實驗採用PacketTracer 5.0思科網路類比軟體。此次類比環境中使用5個路由器串連兩個乙太網路,其中192.168.2.0/24網段為伺服器,192.168.2.1為DNS伺服器,192.168.2.2為Web伺服器,網域名稱為www.senya.org.cn,192.168.2.3為TFTP伺服器,192.168.1.0/24網段為Client PC,其網關為192.168.1.254。每個路由器使用RIP路由協議發現路由。

  

二、PC0(IP地址為192.168.1.1)訪問www.senya.org.cn的過程詳解。

PC0要實現訪問,必須經過以下兩個大方向處理。

一、把網域名稱www.senya.org.cn解析為IP地址,這就要使用DNS協議,向DNS伺服器查詢域為www.senya.org.cn的IP地址。

實現過程如下:

  • 步驟1:PC0組裝成一個DNS資料包,該資料包包含了一條查詢網域名稱為www.senya.org.cn的IP是多少的問題,然後再把該DNS資料包加上一個UDP前序,在UDP前序的目的連接埠為53,源連接埠隨機播放,把UDP資料報交給IP層,加上目的地址即DNS伺服器的IP地址:192.168.2.1,源地址為本機IP地址,IP資料包交給網路介面層(也可以理解為資料連結層)準備發給本網段網關,由網路轉寄出去。在網路介面層又封閉為資料幀,幀頭的源MAC地址為本機網卡MAC地址,目的地址應該為網關的MAC地址,但此時PC0並不知道網關192.168.1.254的MAC地址,所以先在本網段發送ARP協議廣播資料包,請求網關192.168.1.254的MAC地址;
  • 步驟2:封裝ARP廣播資料包,請求網關192.168.1.254的MAC地址。廣播位址為FF:FF:FF:FF:FF:FF。該資料包會被交換器轉寄到本網段中除了自己的所有電腦(網路介面)上,意思:我的IP地址是192.168.1.1,MAC地址是0050.0FB8.E023,我想知道IP地址為192.168.1.254的MAC地址是多少?
  • 步驟3:交換器收到PC0發來的ARP廣播資料包。
  • 步驟4:交換器把收到的PC0發來的ARP資料包轉寄本網段中除了PC0之外的所有網路介面上(或電腦上),只有IP地址為192.168.1.254的電腦會回答這個資料包,其它的電腦將會將不予理睬。
  • 步驟5:關192.168.1.254把ARP應答資料包轉寄給交換器。
  • 步驟6:PC0收到了網關192.168.1.254的ARP應答資料包,這樣就知道了網關192.168.1.254的MAC地址,準備把DNS資料包發送給網關。
  • 步驟7:DNS查詢資料包先發送到交換器。
  • 步驟8:交換器再把接收到DNS查詢資料包轉寄給本網段的網關上,即圖中路由器Router0 的FastEthernet0/0介面上。
  • 步驟9:接下來路由器Router0該把DNS資料發向哪裡呢?它要查一下自己的路由表。我們先來看一下Router0的路由器,該路由器為Cisoc 2000系列的路由器,使用sh ip route查看路由表(這裡不講述路由處理過程)。Router0的路由表可以看出到192.168.2.0/24網段(要訪問的Web伺服器192.168.2.2在該網段)有兩條路可以走(我已經標為紅色):一條是經192.168.3.0/24網段、Router1的Serial0/0介面(IP地址192.168.3.2),由Router0的Serial0/0介面轉寄過去;另一條是經192.168.4.0/24網段、Router2路由器的Serial0/0介面,由Router0的Serial0/1介面轉寄過去。到底使用哪一條路呢,由網路的通訊狀況決定,如流量等。
  • 步驟10:走的是第一條路。路由器Router1接收到PC0的DNS查詢資料包又該把它轉寄到哪裡呢?同樣查看自己的路由表。
  • 步驟11DNS查詢資料包轉寄到Router5的Serial0/0介面,並同時新產生一個ARP請求廣播資料包,請求DNS伺服器192.168.2.1MAC地址由於要請求的MAC地址是192.168.2.1的,192.168.2.1與路由器Router5的FastEthernet0/0介面(IP地址192.168.2.254)處於同一個網段,因此只發給192.168.2.0/24網段。
  • 步驟12:把ARP資料包轉寄給交換器。
  • 步驟13:DNS伺服器應答ARP資料包發給Router5的FastEthernet0/0介面,該資料包的意思是:我的IP地址是192.168.2.1,我的MAC地址是0090.2142.0C79。
  • 步驟14:DNS伺服器收到PC0發送的DNS查詢資料包。
  • 步驟15:DNS伺服器會運行很多進程,根據UDP的目的連接埠是53,DNS伺服器就把此資料包交給DNS伺服器處理序,DNS伺服器處理序回答查詢內容,然後根據自己所知道的網域名稱記錄回答PC0,同樣也是一步步地轉寄到PC0的網卡上。應答PC0DNS查詢資料包的意思是你所查詢的網域名稱www.senya.org.cn的IP地址是192.168.2.2。

  二、PC0訪問Web伺服器192.168.2.2的詳細過程

  • 步驟1:PC0已經知道了www.senya.org.cn的IP地址為192.168.2.2,開始向web伺服器請求頁面。訪問Web伺服器是使用HTTP協議,在運輸層使用TCP協議,TCP協議通過三向交握串連伺服器。TCP的隨機產生一個序號(本例中為0,實際中是一個二進位32bit資料),在使用TCP時資料包中的每個位元組都會有一個序號,序號欄位的值是本報文段中第一個位元組的序號。SYN欄位為1,TCP隨機產生一個源連接埠號碼(本例中為1025),TCP目的連接埠為80,表示要串連伺服器的Web伺服器處理序。與轉寄DNS查詢資料包一樣,由路由器一段段地轉寄到Web伺服器192.168.2.2,由它的Web伺服器處理序接收到。
  • 步驟2:web伺服器處理序應答PC0的串連請求,TCP前序中序號隨機產生,ACK應答號為1,應答號(或確認號)表示期望收到對方的下一個報文段的資料的第一個位元組的序號。SYN與ACK域的值為1,TCP的源連接埠號碼為80,表示是Web進程發送的,目的連接埠號碼為1025,表示PC0的瀏覽器進程接收。同樣,一個網段一個網段地轉寄到PC0電腦。
  • 步驟3:電腦PC0應答Web伺服器應答自己的資料包,並發出請求網頁的資料包。此時PC0要連續發送兩個資料包,一個是TCP報文應答報文,這個先發送。一個是一個請求網頁的資料報文。
  • 步驟4:Web伺服器收到TCP資料包後,PC0與Web伺服器已經建立了串連。Web伺服器並且要響應PC0的網頁請求,把PC0請求的網頁發送給了PC0的瀏覽器進程,這時我們就看到了網頁內容。

以上就是一台電腦訪問Web伺服器某一個頁面的詳細全過程。在上面的敘述中引出了許多電腦網路的概念名詞,比如:TCP協議、UDP協議、DNS協議、連接埠號碼等等。當我們在瀏覽器的URL地址欄內輸入網址時,很快就看網頁的內容了,實際上電腦、網路裝置做了大量的工作來完成我們的任務。電腦之間通訊是複雜的,在通訊時各個電腦要遵守一些規則,這些規則就被稱為協議。我們當前的Internet使用的是TCP/IP協議套件。由於電腦通訊非常複雜,解決複雜的問題要採用分解法,把複雜的問題、按某種原則進行分類、分層次去解決,因此電腦網路通訊協定是分層次的。這樣就會形成一個協議集合,在這個協議集中每個協各施其職,互相協同完成電腦通訊。這樣就會更容易完成任。

三、電腦相互之間的通訊互連網的關鍵技術就是TCP/IP協議。兩台電腦之間的通訊是通過TCP/IP協議在網際網路上進行的。實際上這個是兩個協議:TCP : Transmission Control Protocol 傳輸控制協,IP協議: InternetProtocol  網際協議。IP協議負責電腦之間的通訊,是電腦用來相互識別的通訊的一種機制,每台電腦都有一個IP,用來在internet上標識這台電腦。 IP 負責在網際網路上發送和接收資料包。通過IP協議,訊息(或者其他資料)被分割為小的獨立的包,並通過網際網路在電腦之間傳送。IP 負責將每個包路由至它的目的地。IP協議僅僅是允許電腦相互發訊息,但它並不檢查訊息是否以發送的次序到達而且沒有損壞(只檢查關鍵的頭資料)。為了提供訊息檢驗功能,直接在IP協議上設計了傳輸控制通訊協定TCP。        TCP協議應用程式之間的通訊,TCP確保資料包以正確的次序到達,並且嘗試確認資料包的內容沒有改變。TCP在IP地址之上引連接埠(port),它允許電腦通過網路提供各種服務。一些連接埠號碼為不同的服務保留,而且這些連接埠號碼是眾所周知。

 服務或者守護進程:在提供服務的機器上,有程式監聽特定連接埠上的通訊流。例如大多數電子郵件通訊流出現在連接埠25上,用於wwww的HTTP通訊流出現在80連接埠上。

實際的運行流程:當應用程式希望通過TCP 與另一個應用程式通訊時,它會發送一個通訊請求。這個請求必須被送到一個確切的地址。在雙方“握手”之後,TCP 將在兩個應用程式之間建立一個全雙工系統 (full-duplex) 的通訊,佔用兩個電腦之間整個的通訊線路。TCP 用於從應用程式到網路的資料轉送控制。TCP 負責在資料傳送之前將它們分割為 IP 包,然後在它們到達的時候將它們重組。

 TCP/IP就是TCP 和 IP 兩個協議在一起協同工作,有上下層次的關係。TCP 負責應用軟體(比如你的瀏覽器)和網路軟體之間的通訊。IP 負責電腦之間的通訊。TCP 負責將資料分割並裝入 IP 包,IP 負責將包發送至接受者,傳輸過程要經IP路由器負責根據通訊量、網路中的錯誤或者其他參數來進行正確地定址,然後在它們到達的時候重新組合它們。

應用請求web伺服器的過程詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.