我們要了解一下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要實現訪問,必須經過以下兩個大方向處理。
實現過程如下:步驟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。
以上就是一台計算機訪問web伺服器某乙個頁面的詳細全過程。在上面的敘述中引出了許多計算機網路的概念名詞,比如:tcp協議、udp協議、dns協議、埠號等等。當我們在瀏覽器的url位址列內輸入**時,很快就看網頁的內容了,實際上計算機、網路裝置做了大量的工作來完成我們的任務。計算機之間通訊是複雜的,在通訊時各個計算機要遵守一些規則,這些規則就被稱為協議。我們當前的internet使用的是tcp/ip協議套件。由於計算機通訊非常複雜,解決複雜的問題要採用分解法,把複雜的問題、按某種原則進行分類、分層次去解決,因此計算機網路協議是分層次的。這樣就會形成乙個協議集合,在這個協議集中每個協各施其職,互相協同完成計算機通訊。這樣就會更容易完成任。
服務或者守護程序:在提供服務的機器上,有程式監聽特定埠上的通訊流。例如大多數電子郵件通訊流出現在埠25上,用於wwww的http通訊流出現在80埠上。實際的執行流程:當應用程式希望通過tcp 與另乙個應用程式通訊時,它會傳送乙個通訊請求。這個請求必須被送到乙個確切的位址。在雙方「握手」之後,tcp 將在兩個應用程式之間建立乙個全雙工 (full-duplex) 的通訊,占用兩個計算機之間整個的通訊線路。tcp 用於從應用程式到網路的資料傳輸控制。tcp 負責在資料傳送之前將它們分割為 ip 包,然後在它們到達的時候將它們重組。
tcp/ip就是tcp 和 ip 兩個協議在一起協同工作,有上下層次的關係。
tcp 負責應用軟體(比如你的瀏覽器)和網路軟體之間的通訊。ip 負責計算機之間的通訊。tcp 負責將資料分割並裝入 ip 包,ip 負責將包傳送至接受者,傳輸過程要經ip路由器負責根據通訊量、網路中的錯誤或者其他引數來進行正確地定址,然後在它們到達的時候重新組合它們。
socket請求Web伺服器過程
socket 套接字 1.socket在 2.socket是什麼?socket是應用層與tcp ip協議族通訊的中間軟體抽象層,它是一組介面 socket是在應用層和傳輸層之間的乙個抽象層,它把tcp ip層複雜的操作抽象為幾個簡單的介面 用層呼叫已實現程序在網路中通訊。在設計模式中,socket其...
URL詳解 web伺服器和應用伺服器
scheme host port path query string anchor scheme 代表的是訪問協議,協議主要分兩種 http 和https host 主機名,網域名稱 比如 www.baidu.com port 埠號,當你訪問乙個 時,瀏覽器預設載入埠號 path 查詢的路徑,比如 ...
使用者請求伺服器資源過程
2 使用者如果請求web伺服器book 目錄下的index.php檔案,在客戶端瀏覽器的位址列中,輸入url為去請求伺服器。過程如下 第一步 尋找網域名稱伺服器dns,把網域名稱為www.baidu.com的主機解析成伺服器的ip位址。第三部 apache網頁伺服器收到客戶端請求的php檔案,自己不...