互聯網是如何鏈接的:計網概述

當你在瀏覽器輸入網址以後會發生什麼

最直觀的感覺固然是跳轉到網址所指向的頁面啦,但在網絡比較卡的時候,你可能注意到過,瀏覽器的左下角一般會有一些等待什麼什麼請求之類的小字。這時候,一個問題讓你搜索到了這篇博文,我輸入網址以後,瀏覽器到底幹了什麼?更要命的是,我想知道互聯網究竟是如何把每一個人鏈接起來的?css

咱們先來認識一下你的瀏覽器,雖然大多數時間你都在使用它愉快的網上衝浪。可能在你的印象裏,這個玩意兒就是隻能開開網頁,看看視頻,功能強大,但略顯單一。如今,隨便找個PDF文件而後打開,你的默認方式應該是你心愛的瀏覽器。若是不是,能夠右鍵選擇打開方式,再用瀏覽器打開。html

應該都能打開吧?這麼一說,好像咱們歷來沒注意過這傢伙竟然還有別的用處。爲何潛意思裏以爲它就是看看網頁呢?這裏要更新一下名詞,實際上咱們輸入的網址,更準確的叫法應該是URL。web

URL: Uniform Resource Locator,統一資源定位符。詞聽起來有點繞口,你能夠看看如今打開PDF標籤頁的地址欄,看看它的開頭是否是跟網址不同數據庫

URL有各類各樣的寫法「http:」、「https:"、「ftp:」、「file:」、「mailto:」,開頭部分表示了瀏覽器應當採起的訪問方式。那麼輸入網址以後,首先發生了什麼事就呼之欲出了。瀏覽器

瀏覽器先得解析URL

好比咱們要訪問博客園的首頁,那麼應該在地址欄輸入https://www.cnblogs.com。瀏覽器看到URL的開頭是https,就會明白這是一個web請求,後面的www.cnblogs.com指的是Web服務器域名。安全

域名能夠當作是IP地址的別名,你能夠在搜索引擎裏輸入IP,你會看到一連串的數字。沒有人會但願上個網還要先拿小本本把常常用到的IP地址記下來,再說,輸入這一連串的數字也很麻煩,一不當心就輸錯了。因此咱們使用域名來代替IP地址,幫助記憶。服務器

IP地址:你能夠類比於現實中的住房地址,因特網上的計算機也擁有一個唯一標識符來區別它的網上鄰居(其餘的電腦)。網絡

APP支持IPv6網絡是怎麼回事?你可能在APP啓動界面的底部看到過這行小字,實際上IPv6以前是IPv4(互聯網通訊協議第四版),就是一個給你們分配地址的協議,在這個版本里IP用32位的整數表示。32位?看起來很長的樣子,然而2011年的時候,IANA就宣佈IPv4地址43億IP地址已經分配完畢。分佈式

後續的IPv6可謂是超級增強版,32位擴展到了128位意味着能給地球上每一粒沙子編號,他能分配大約3.4×10^38個IP地址!搜索引擎

向DNS查詢Web服務器的IP地址

域名對應着IP地址,那麼如何才能知道這個域名對應的IP地址是什麼呢?天然是得問拿小本本記下這些東西的人啦。

DNS : 一個能夠將域名和IP地址相互映射的一個分佈式數據庫,可以令人更方便的訪問互聯網,而不用去記住可以被機器直接讀取的IP數串。

只用一臺DNS服務器去存儲數不勝數的IP地址是不可能的,因此在分散保存的狀況下,一臺DNS是如何處理它查詢不到的域名信息呢?

實際上,如同域名同樣,DNS也是分級的。域名的最左邊部分表示機器名字,它隨後的部分則是該計算機所屬的組織,可能還會有子組織。最右邊則表明頂級域名,指定該計算機所屬組織的類型。大部分的頂級域都被用於美國的公司和組織,其餘國家的計算機通常是用國家的特有頂級域,好比cn(中國)。

頂級域 主要應用
edu 教育機構
com 商業公司
org 非盈利組織
net 網絡供應商
cn 中國國家頂級域名

負責管理下級域的DNS服務器找不到該域名對應的IP地址就會發送一個請求到它們的上級DNS服務器中去尋找,而後上級DNS還找不到就到更上一級的DNS服務器中,以此類推。最上一級叫作根域,根域服務器的地址在配置DNS服務器的時候就已經寫入其配置文件裏面了。

分配給根域DNS服務器的IP地址在全世界僅有13個,很遺憾中國沒有。日本佔據一個,其餘的全是歐美。

雖然IP地址只有13個,但實際上服務器的數量遠遠多於13個,由於根域DNS是使用多臺服務器對應一個IP地址的。

不知道你是否有過瀏覽器忽然不能訪問網頁的經歷,更離譜的是QQ竟然能用,就他瀏覽器不行。這是爲何呢?多半是DNS服務器地址的問題,在 控制面板\網絡和 Internet\網絡鏈接 右鍵屬性選擇IPv4 改爲下圖通常就行了

爲何QQ沒問題呢?由於QQ是直接經過IP鏈接的。

你訪問的實際上是文件

如今不如點開一下我首頁的第一篇博客吧,或者直接訪問https://www.cnblogs.com/AD-milk/p/13171059.html而後按下F12打開開發者模式,讓咱們看看都有些什麼?

咱們請求了一個html文件,1317...好像就是輸入的網址裏的那個。這麼說的話,這一個一個斜杆好像確實是像文件路徑的結構!

但若是你訪問博客園的首頁,你會發現路徑名那裏只有一個/,這表示根目錄,好像並無指定文件呀。這種省略文件名的狀況下,通常是默認訪問根目錄下的index.html或者default.html這樣的文件。

html:超文本標記語言,你能夠簡單的認爲是能夠在文本中嵌入音頻,圖片和連接的語言

按理說咱們只是請求了13171059.html這個文件,但從圖中來看咱們好像請求了不止一個文件,這是爲何?回想一下,你會有過由於網卡而致使加載的頁面只有文字的狀況?這通常是由於網絡問題,css文件以及圖片沒有被傳輸過來。瀏覽器在加載文件以前並不知道這裏還須要什麼圖片或者文件,只有加載以後纔會繼續發送請求。

博文中圖片的源代碼

css文件是一種用來指定html樣式的文件。缺乏了它頁面就沒有好看的風格了。

1 條請求消息中只能寫 1 個 URI。若是須要獲取多個文件,必須對每一個文件單獨發送 1 條請求。

URI:Uniform Resource Identifier,統一資源標識符,URL是特殊的URI

眨眼間的旅途

你說的我都知道了,可你仍是沒有回答我,互聯網究竟是如何互聯的?

首先來考慮一個簡單的場景:兩臺電腦之間如何互相通信?固然是接跟線把兩個都連上啦,那再來五臺怎麼辦?往電腦上再打五個接口?這顯然不現實,咱們可讓集線器幫咱們的忙。它具備多個端口,能夠實現其內部全部網絡設備的連通。不過集線器是個榆木腦殼,它惟一知道的事情就是:當某一個端口發出數據時,它就把這個數據複製到與其鏈接的其餘端口,這樣全部鏈接到集線器的設備均可以得到這個數據包。這跟個大喇叭同樣,太煩人了,說點悄悄話都不行。

之因此電纜不如光纖通訊速率高,是由於電信號在提高通訊速率的同時,其衰減率也會提升(信號在傳播過程當中減弱),致使信號沒法傳到目的地。相對地,光信號原本的衰減率就很低,提升通訊速率也並不會提升衰減率。此外,光纖還不受電磁噪聲的影響,所以光纖可以進行高速通訊。

不是光信號原本就比電信號快啦!!!

爲了解決廣播所帶來的安全問題,以及減小沒必要要的流量,咱們能夠換個聰明點的傢伙:交換機。交換機比集線器智能的地方在於,它記下了與其相連的主機的物理地址MAC,他把這些存儲在地址表裏面。那麼如今,當數據報從一個端口發出時,它能根據數據報提供的目標MAC,直接將數據發往預期的目的端口。終於能夠和喜歡的女同窗說悄悄話了,呼~~。

但集線器和交換機只能在局域網中交換信息,沒法在外部網絡交換。由於要在互聯網上通信須要識別IP地址,顯然集線器和交換機沒有這個功能。因此咱們須要用到路由器:它是一個能根據IP地址,將數據報從一個路由轉發到另一個路由的設備。這意味着它具備過濾功能,但一個數據報達到該路由時,它會檢查這是不是發給本身的,若是不是的話就將它轉發給其餘路由。因此它至關於一個網絡的網關。

如今的路由器大多集成了三者的功能,成了「瑞士軍刀」。讓人想不到的是,儘管交換機比路由器簡單,但實際上路由器早於交換機問世。

如今從咱們電腦發出的請求數據報就沿着電路,被多個路由器轉發,最後到達目的地。

至此,這眨眼間的漫長旅途迎來了終點。但其實網絡通信遠不止這些,這裏省去了不少東西,其中最重要的就是各式各樣的協議了。缺乏協議會使得網絡世界通信困難,就比如現實生活中你以爲點頭表示OK,搖頭表示NO,但另一我的卻持相反的認識,這時候大家倆的交流就會趕上大麻煩!

協議:定義了在兩個或多個通訊實體之間交換的報文格式和順序,以及報文發送和接收一條報文或其餘事件採起的動做

相關文章
相關標籤/搜索