网络是怎样连接的
最近無意中發現了一本有趣的書:《網絡是怎樣連接的》。
?
我記得之前網上看過比較火的一個問題:從輸入url到瀏覽器顯示頁面發生了什么?這本書很好的詮釋了這個問題。確切地說,應該是詳實的回答了這個問題。
一.瀏覽器生成消息
我們將首先探索瀏覽器的工作方式。大家可以認為我們的探索之旅是從瀏覽器中輸入網址開始的。比如我們輸入這樣的網址時,瀏覽器會按照一定的規則去分析這個網址的含義,然后根據其含義生成請求消息。
https://www.baidu.com/
在上面的這個栗子中,瀏覽器生成的請求消息表示:請給我該地址的數據。接著瀏覽器會將請求消息發給web服務器。
當然,瀏覽器并不會親自負責數據的傳送。傳送消息是搬運數字信息的機制負責的活。因此瀏覽器會委托他將數據發送出去。也就是拜托操作系統中的網絡控制軟件,就是協議棧大佬,將消息發給服務器。
二.用電信號傳輸TCP/IP數據
緊接著,我們將探索搬運數據的機制。其中最先出場的是協議棧。他會將從瀏覽器接收到的消息打包,然后加上目的地址等控制信息。好比郵局,就是把信裝進信封,然后在信封上寫上收件人的地址。協議棧還有其他的能耐呢?例如,當發生通信錯誤時,重新發送數據包或者調節數據發送的速率等等。
接下來,協議棧會將數據包交給網卡,網卡是這么一個人設哈:負責以太網或者無線網通信的硬件。然后,網卡會將數據包轉換為電信號并通過網線發送出去。這樣一來,數據包就進入到網絡中嘍。
三.從網線到網絡設備
接下來出場的物品會根據介入互聯網的形式不同而不同。客戶端計算機可以通過家庭或公司的局域網接入互聯網,也可以單獨直接接入互聯網。
我們以現在最典型的場景為例,假設客戶端計算機是連接到家庭或者公司的局域網中,然后再通過ADSL和光纖到戶等寬帶線路接入互聯網。
在這樣的場景中,網卡發送的包會經過交換機等設備,到達用來接入互聯網的路由器。路由器的后面就是互聯網,網絡運營商會負責把包送到目的地,就好像我們把信投到信筒中之后,郵遞員會負責把信送到收件人一樣。
四.通過接入網進入互聯網
接下來,數據從用來接入互聯網的路由器出發,進入了互聯網的內部。互聯網的入口線路稱為接入網。一般來說,我們可以用電話線,ISDN,ADSL,有線電視,光纖,專線等多種通信線路來接入互聯網,這些通信線路統稱為接入網。接入網連接到簽約的網絡運營商,并接入被稱為接入點的設備。
接入點的實體是一臺專為運營商設計的路由器,你就把他設想成距離你家最近的郵局。從各個郵筒中收集來的信件會在郵局進行分揀,然后被送往全國甚至全世界。互聯網也是一樣一樣的,網絡包首先通過接入網被發送到接入點,然后再從這里被發送到全國甚至全世界。接入點的后面就是互聯網的骨干部分了。
在骨干網中存在很多運營商和大量的路由器,這些路由器相互連接,組成一張巨大的網,而我們的網絡包就在其中,經過若干路由器的接力,最終被發送到目標Web服務器上。
五.服務器端的局域網有何玄機
通過骨干網之后,網絡包最終到達了Web服務器所在的局域網中了。接著,他會遇到防火墻,防火墻會對進入的包進行檢查。大家可以把防火墻想象成門口的保安,他會檢查所有進入的包,看看有沒有危險的包混在里面。檢查完之后,網絡包接下來可能還會遇到緩存服務器。網頁數據中有一部分是可以重復利用的,這些可以重復利用的數據就被保存在緩存服務器中了。
如果要訪問的網頁數據正好在緩存服務器中能夠找到,那么就可以不用勞煩Web服務器了,直接從緩存服務器讀出數據。此外,在大型網站中,可能還會配備將消息發布到多臺Web服務器上的負載均衡器,還有可能會使用通過分布在整個互聯網中的緩存服務器來分發內容的服務。經過這些機制之后,網絡包才會到達Web服務器。?
六.請求到達Web服務器,響應返回瀏覽器
當網絡包達到Web服務器后,數據會被解包并還原為原始的請求消息,然后交給Web服務器程序。和客戶端一樣,這個操作也是由操作系統中的協議棧來完成的。接下來,Web服務器程序分析請求消息的含義,并按照其中的指示將數據裝入響應消息中,然后發回給客戶端。響應消息回到客戶端的過程和我們介紹的過程正好相反。
當響應到達客戶端之后,瀏覽器會從中讀取網頁的數據并在屏幕上顯示出來。到這里,訪問Web服務器的一系列操作就全部完成了,我們的探索之旅也到達了終點嘍!
如果小伙伴看到這里還意猶未盡,那么這個電子書就是為你量身定做的:
《網絡是怎樣連接的》,感興趣的可以后臺回復:【網絡】,即可把她抱回家。
小伙伴們可抓緊時間卷起來,趁著春光年少,充實自己,讓自己變得越來越強
總結
- 上一篇: 读书笔记之《网络是怎样连接的》
- 下一篇: 《网络是怎样连接的》了解网络连接的全貌