網路是怎樣聯通的 整體架構

2021-10-07 03:18:24 字數 2627 閱讀 1770

本文摘自《網路是怎樣連線的》一書

網路的全貌 讓我們先來看一下瀏覽器訪問 web 伺服器這一過程的全貌。

訪問 web 伺服器並顯示網頁這一過程包含了瀏 覽器和 web 伺服器之間的一系列互動,主要是下面這樣的互動。

(1) 瀏覽器:「請給我 ××× 網頁的資料。」

(2) web 伺服器:「好的,這就是你要的資料。」

在這一系列互動完成後,瀏覽器就會將從 web 伺服器接收到的資料顯示在螢幕上。雖然顯示網頁這個過程 非常複雜,但瀏覽器和伺服器之間通過網路進行的互動卻出乎意料地簡單。

雖然我們看到的很簡單,但是在內部還有分為幾個部分,如下圖所示

我們將首先探索瀏覽器的工作方式。大家可以認為我們的探索之旅是從在瀏覽器中輸入**(url)開始 的。例如,當我們輸入下面這樣的**時,瀏覽器就會按照一定的規則去分析這個**的含義,然後根據其 含義生成請求訊息。

在上面這個例子中,瀏覽器生成的請求訊息表示「請給我 sample1.html 這一檔案中儲存的網頁資料」,接著瀏 覽器會將請求訊息傳送給 web 伺服器。 當然,瀏覽器並不會親自負責資料的傳送。傳送訊息是搬運數字資訊的機制負責的工作,因此瀏覽器會委託 它將資料傳送出去。具體來說,就是委託作業系統中的網路控制軟體將訊息傳送給伺服器。

我們將探索搬運資料的機制。其中最先出場的是協議棧(網路控制軟體叫作協議棧)。這個軟體會**將 從瀏覽器接收到的訊息打包,然後加上目的位址等控制資訊。**如果拿郵局來比喻,就是把信裝進信封,然後 在信封上寫上收信人的位址。這個軟體還有其他一些功能,例如當發生通訊錯誤時重新傳送包,或者調節數 據傳送的速率等,或許我們可以把它當作一位幫我們寄信的小秘書。 接下來,協議棧會將包交給網絡卡(負責乙太網或無線網路通訊的硬體)。然後,網絡卡會將包轉換為電訊號並 通過網線傳送出去。這樣一來,包就進入到網路之中了。

接下來出場的物品會根據接入網際網路的形式不同而不同。客戶端計算機可以通過家庭或公司的區域網接入網際網路,也可以單獨直接接入網際網路。很遺憾,我們的探索之旅無法涵蓋所有這些可能性,因此只能以現在最 典型的場景為例,假設客戶端計算機是連線到家庭或公司的區域網中,然後再通過 adsl 和光纖到戶 (ftth)等寬頻線路接入網際網路。 在這樣的場景中,網絡卡傳送的包會經過交換機等裝置,到達用來接入網際網路的路由器。路由器的後面就是互 聯網,網路運營商會負責將包送到目的地,就好像我們把信投到郵筒中之後,郵遞員會負責把信送給收件人 一樣。

接下來,資料從用來接入網際網路的路由器出發,進入了網際網路的內部。網際網路的入口線路稱為接入網。一般 來說,我們可以用**線、isdn、 adsl、有線電視、光線、專線等多種通訊線路來接入網際網路,這些通 信線路統稱為接入網。接入網連線到簽約的網路運營商,並接入被稱為接入點(point of presence,pop)的 裝置。 接入點的實體是一台專為運營商設計的路由器,我們可以把它理解為離你家最近的郵局。從各個郵筒中收集 來的信件會在郵局進行分揀,然後被送往全國甚至全世界,網際網路也是一樣,網路包首先通過接入網被傳送 到接入點,然後再從這裡被傳送到全國甚至全世界。接入點的後面就是網際網路的骨幹部分了。 在骨幹網中存在很多運營商和大量的路由器,這些路由器相互連線,組成一張巨大的網,而我們的網路包就 在其中經過若干路由器的接力,最終被傳送到目標 web 伺服器上。其實它的基本原理和家庭、公司中的路由器是相同的。也就是說,無論是在網際網路中,還是在家庭、 公司的區域網中,包都是以相同的方式傳輸的,這也是網際網路的一大特徵。 不過,運營商使用的路由器可跟我們家用的小型路由器不一樣,它是一種可以連線幾十根網線的高速大型路 由器。在網際網路的骨幹部分,存在著大量的這種路由器,它們之間以複雜的形式連線起來,而網路包就在這 些路由器之間穿行。 此外,路由器不但在規模上存在差異,在路由器間的連線方式上也存在差異。家庭和公司區域網中一般採用 乙太網線進行連線,而網際網路中除了乙太網線連線之外,還會使用比較古老的**技術和最新的光通訊技術 來傳送網路包。這一部分所使用的技術是當今網路中最熱門的部分,可以說是最尖端技術的結晶。

通過骨幹網之後,網路包最終到達了 web 伺服器所在的區域網中。接著,它會遇到防火牆,**防火牆會對進 入的包進行檢查。**大家可以把防火牆想象成門口的保安,他會檢查所有進入的包,看看有沒有危險的包混在 裡面。檢查完之後,網路包接下來可能還會遇到快取伺服器。網頁資料中有一部分是可以重複利用的,這些 可以重複利用的資料就被儲存在快取伺服器中。如果要訪問的網頁資料正好在快取伺服器中能夠找到,那麼 就可以不用勞煩 web 伺服器,直接從快取伺服器讀出資料。此外,在大型**中,可能還會配備將訊息分 布到多台 web 伺服器上的負載均衡器,還有可能會使用通過分布在整個網際網路中的快取伺服器來分發內容 的服務。經過這些機制之後,網路包才會到達 web 伺服器

當網路包到達 web 伺服器後,資料會被解包並還原為原始的請求訊息,然後交給 web 伺服器程式。和客戶 端一樣,這個操作也是由作業系統中的協議棧(網路控制軟體)來完成的**。接下來,web 伺服器程式分析 請求訊息的含義,並按照其中的指示將資料裝入響應訊息中,然後發回給客戶端。響應訊息回到客戶端的過 程和之前我們介紹的過程正好相反。 當響應到達客戶端之後,瀏覽器會從中讀取出網頁的資料並在螢幕上顯示出來。到這裡,訪問 web 伺服器 的一系列操作就全部完成了,我們的探索之旅也到達了終點。

Tomcat是如何執行的?整體架構又是怎樣的?

在許多的高階開發的崗位中都會或多或少有要求面試人員要研究過一些常用中介軟體原始碼。這是因為一切的秘密都是藏在原始碼中,閱讀原始碼能夠讓我們對框架或者中介軟體的理解更加深刻,而我們也能夠在原始碼的研究中獲得其中一些優秀的設計方式。而我們的中介軟體和原始碼那麼多,我們該從何入手呢?其實大部分的中介軟體或...

網路是怎樣連線的

presence prezns n.出席 存在 到場 接近 point of presence,pop 接入點 入網點 瀏覽器 dns伺服器 查詢網域名稱對應的ip位址 瀏覽器 作業系統 網路控制軟體 協議棧 網絡卡 交換機 路由器 接入網 接入點 入網點 各網路運營商路由器群 防火牆 快取伺服器 ...

mysql網路架構 MySQL 整體架構一覽

mysql 在整體架構上分為 server 層和儲存引擎層。其中 server 層,包括聯結器 查詢快取 分析器 優化器 執行器等,儲存過程 觸發器 檢視和內建函式都在這層實現。資料引擎層負責資料的儲存和提取,如 innodb myisam memory 等引擎。在客戶端連線到 server 層後,...