小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

當(dāng)你登錄B站的0.5秒里,你的電腦背著你做了n件事

 網(wǎng)絡(luò)工程師老楊 2021-08-31

- 這是老楊的135文章 | 預(yù)計(jì)閱讀8min -

今天是星期二,你好不容易今天準(zhǔn)點(diǎn)下班,6點(diǎn)打卡。

心情因?yàn)橄掳嗟牡絹?lái)正美,恰好外賣小哥在小區(qū)門口遇見(jiàn)你,把你點(diǎn)的奢華外賣送到你手上。

哎呀,心情更美了。

進(jìn)門打開(kāi)電腦,把外賣放在桌上,極具儀式感準(zhǔn)備登錄b站開(kāi)一部快樂(lè)肥宅劇配飯時(shí),你發(fā)現(xiàn):

在瀏覽器網(wǎng)址框內(nèi)輸入www.bilibili.com之后,經(jīng)過(guò)0.5秒的反應(yīng)時(shí)間,就會(huì)看到b站的主頁(yè)。

這時(shí),你的筷子一頓,腦海里開(kāi)始不受控制的思考起一個(gè)神秘的問(wèn)題:

“這0.5秒的時(shí)間內(nèi),電腦是做了多少操作,才找到b站這個(gè)頁(yè)面的?”

這就是老楊今天要分析的問(wèn)題:

在這簡(jiǎn)單的2秒反應(yīng)時(shí)間的背后,為了找到b站這個(gè)頁(yè)面,你的電腦到底飛速干了多少活兒


01

分析這個(gè)問(wèn)題前

你需要了解的基礎(chǔ)問(wèn)題

 01  IP地址和域名有啥區(qū)別?

首先,我們要知道,平時(shí)我們?cè)谶@個(gè)瀏覽器搜索的網(wǎng)址并不是IP地址,而是域名。

www.bilibili.com,它就是一個(gè)典型的域名,圖上的知乎也是。

那B站的IP地址是啥?是110.76.40.240。

域名的出現(xiàn)主要是方便人們記憶,一大串?dāng)?shù)字對(duì)于你來(lái)說(shuō)記起來(lái)肯定不如bilibili快。

問(wèn)你百度的IP地址是啥,你不太清楚;

但問(wèn)你百度的網(wǎng)址是啥,你馬上就能想起www.baidu.com,就是這么個(gè)道理。

IP地址究竟是啥?

老楊再之前的文章里詳細(xì)分析過(guò):如何形象生動(dòng)的解釋IP地址、子網(wǎng)掩碼和網(wǎng)關(guān)?

簡(jiǎn)單來(lái)說(shuō),IP地址是人們?cè)贗nternet上為了區(qū)分?jǐn)?shù)以億計(jì)的主機(jī)而給每臺(tái)主機(jī)分配的一個(gè)專門的地址,通過(guò)IP地址就可以訪問(wèn)到每一臺(tái)主機(jī)。

IP本身沒(méi)有什么實(shí)際的意義,很難記憶,所以才有了域名。但是路由器只認(rèn)識(shí)二進(jìn)制的IP地址,所以,你記住了域名,電腦記不住,就會(huì)出現(xiàn)一個(gè)問(wèn)題:

當(dāng)你使用域名訪問(wèn)某一個(gè)網(wǎng)站時(shí),需要先將域名翻譯成對(duì)應(yīng)的IP地址,這個(gè)過(guò)程叫做“域名解析”。

但是……我平時(shí)輸入的時(shí)候可沒(méi)有翻譯過(guò)啊,這背后是誰(shuí)再操作?老楊第二點(diǎn)就給你說(shuō)明白。

補(bǔ)充一個(gè)小技巧:

如果你想查看某一個(gè)網(wǎng)站的IP地址,要咋整?老楊平時(shí)喜歡用ping來(lái)查看:通過(guò)win+R打開(kāi)cmd ,輸入ping+空格+域名就可以了。

 02  DNS又是啥?

DNS(Domain Name System)是指域名系統(tǒng),它主要是提供一種從主機(jī)名到IP地址的目錄服務(wù)。

而DNS協(xié)議是指將域名轉(zhuǎn)換為IP地址的一個(gè)規(guī)則。這就是第一點(diǎn)里提及的“域名解析”。

你平時(shí)輸入網(wǎng)址的時(shí)候,沒(méi)有人給你翻譯成IP地址,但是客戶端自動(dòng)就是可以跳轉(zhuǎn)到對(duì)應(yīng)的頁(yè)面去,就是DNS在后面的默默奉獻(xiàn)。

為啥要特地整一個(gè)DNS呢?

因?yàn)橐婚_(kāi)始,咱們的域名和IP的對(duì)應(yīng)關(guān)系都存在host的文件里。

如果一個(gè)新的計(jì)算機(jī)要接入網(wǎng)絡(luò),或者某個(gè)IP需要改改,都要去信息中心定期對(duì)文件里的內(nèi)容進(jìn)行更新,延遲了很久,操作起來(lái)也賊麻煩,所以才有了自動(dòng)翻譯機(jī)——DNS系統(tǒng)。

所以,當(dāng)你輸入www.bilibili.com時(shí),再你按下回車鍵后,停頓的1-2秒內(nèi),DNS系統(tǒng)已經(jīng)悄悄地幫你把這個(gè)b站的域名翻譯成110.76.40.240給路由器看,這才能跳到你想要看到的二次元頁(yè)面。

 03  HTTP是啥?

看到下面這張圖,你就會(huì)發(fā)現(xiàn)你幾乎時(shí)時(shí)刻刻都在能看到它:


但老楊這里想講的是HTTP協(xié)議。

HTTPHyper Text Transfer Protocol超文本傳輸協(xié)議是一個(gè)應(yīng)用層協(xié)議,也是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。

而HTTP報(bào)文是HTTP協(xié)議一種純文本的數(shù)據(jù)格式,分為請(qǐng)求報(bào)文和響應(yīng)報(bào)文,兩種報(bào)文都具有類似的結(jié)構(gòu),分別由三個(gè)部分構(gòu)成:起始行、首部、主體。

當(dāng)一個(gè)你用你的電腦登錄一個(gè)網(wǎng)站時(shí),通過(guò)HTTP協(xié)議將這個(gè)你請(qǐng)求的這個(gè)“內(nèi)容”封裝到HTTP請(qǐng)求報(bào)文之中。

然后,服務(wù)器收到這個(gè)請(qǐng)求報(bào)文之后,根據(jù)協(xié)議規(guī)范解析報(bào)文,然后給你返回相應(yīng)報(bào)文之后,你才能看到你想要看的網(wǎng)站頁(yè)面。

關(guān)于HTTP狀態(tài)碼的科普內(nèi)容,感興趣的小友可以戳這里:網(wǎng)絡(luò)狀態(tài)碼302和303的區(qū)別究竟是啥?

 04  TCP的三次握手

TCP的中文名叫做傳輸控制協(xié)議,是供已經(jīng)連接因特網(wǎng)的計(jì)算機(jī)進(jìn)行通信的通信協(xié)議。TCP是互聯(lián)網(wǎng)協(xié)議之一,也是主要的協(xié)議之一。

TCP/IP 定義了電子設(shè)備(比如計(jì)算機(jī))如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)。所以討論這個(gè)問(wèn)題,必須要涉及到TCP這個(gè)東西。

詳解TCP三次握手可以看這篇:如果TCP不握手三次,改成兩次或者四次會(huì)怎樣?


02

計(jì)算機(jī)怎么這么多設(shè)備里,

找到我要的網(wǎng)站?

說(shuō)完上面四個(gè)基礎(chǔ)概念,我們?cè)倮@回題目本身。

老楊首先要強(qiáng)調(diào)一點(diǎn),計(jì)算機(jī)本身是不會(huì)找到你想要的那個(gè)網(wǎng)站的,它只是了解到你的“需求”之后,再去找“別人”處理這件事。

這個(gè)“別人”就是路由器。

路由器的世界也是層級(jí)分明,計(jì)算機(jī)問(wèn)離它最近的路由器,這個(gè)村子里的路由器不知道的話,就會(huì)網(wǎng)上稟報(bào),報(bào)到縣里的、鎮(zhèn)里的、城里的、全國(guó)的,一個(gè)個(gè)往上稟報(bào),總有一個(gè)路由器會(huì)知道。

畢竟骨干的路由器知道網(wǎng)絡(luò)世界里的所有“路徑”,最后找到你需要的那個(gè)服務(wù)器,路由器發(fā)起了請(qǐng)求連接,你就能登錄上。

并且,IP地址并不是像大海撈針一樣的搜尋的。因?yàn)槿虻腎P地址都已經(jīng)是固定好且唯一的標(biāo)識(shí),這就和我們的世界地圖一樣, 具有唯一性。

地址們都在嗷嗷待哺的等待著人們的“需求”,這個(gè)“需求”不僅可以被動(dòng)的靠路由器一層一層傳輸,也可以靠0.0.0.0這個(gè)“萬(wàn)能喇叭”來(lái)實(shí)現(xiàn)。

一旦對(duì)應(yīng)的網(wǎng)站服務(wù)器能接收到你的請(qǐng)求,就會(huì)雙眼放光,開(kāi)始一番猛如虎的連接操作,在0.5秒內(nèi),你就能看到對(duì)應(yīng)的網(wǎng)站頁(yè)面。

那路由器,到底是怎么具體的找到我想要的那個(gè)網(wǎng)站的呢?


03

當(dāng)你在登錄網(wǎng)站的2秒內(nèi)

計(jì)算機(jī)到底做了啥?

根據(jù)前面兩個(gè)大點(diǎn),我們?cè)俎垡槐楸澈蟮恼麄€(gè)操作過(guò)程。(終于可以用上第一點(diǎn)里的知識(shí)了)

小楊下班回家打開(kāi)電腦,把外賣放在桌上,極具儀式感準(zhǔn)備登錄b站開(kāi)一部快樂(lè)肥宅劇配飯。

他在瀏覽器網(wǎng)址框內(nèi)輸入www.bilibili.com,

這里的網(wǎng)址是域名,所以需要“翻譯”成計(jì)算機(jī)能看懂的語(yǔ)言,就需要"DNS"出場(chǎng)。

所以,在你按下回車鍵enter之后:

你的瀏覽器會(huì)率先使用DNS獲得對(duì)應(yīng)的IP地址。

如果本地的DNS服務(wù)器沒(méi)有,就像更高級(jí)的DNS服務(wù)器求助,一直到你獲得了B站的IP地址:110.76.40.240。

獲取到了110.76.40.240之后,登錄這個(gè)IP地址的需求就變成了你的“請(qǐng)求”。瀏覽器會(huì)把你的這個(gè)“請(qǐng)求”變成HTTP請(qǐng)求報(bào)文發(fā)送給TCP。

在這個(gè)發(fā)送的過(guò)程里,就出現(xiàn)了最經(jīng)典的“TCP的三次握手”場(chǎng)景。

具體是咋握手的,我們看這里:

首先,TCP先收到了服務(wù)器發(fā)來(lái)的請(qǐng)求“有個(gè)用戶要登錄B站看番”。

這時(shí)候它有點(diǎn)慌,心里想:這個(gè)請(qǐng)求靠不靠譜?。勘仨氁獪y(cè)試一下,驗(yàn)證驗(yàn)證可不可靠。

所以,TCP設(shè)計(jì)的“三次握手”出現(xiàn)了,為的是讓這倆貨接觸一下,自證清白,獲取TCP的信任。

你的計(jì)算機(jī)給服務(wù)器發(fā)消息,“誒哥們,我能不能登個(gè)B站???”

服務(wù)器說(shuō):“可以啊大兄弟,這點(diǎn)小事算啥,你收得到我的信息嗎?”

計(jì)算機(jī)說(shuō):“收到了!真是太好了,感恩的心感謝有你,祝哥們發(fā)大財(cái)!”

通過(guò)這三次握手,TCP確認(rèn)了“我要登錄B站看番”是ok的,接下來(lái),它就會(huì)把你這個(gè)請(qǐng)求再次打包成一個(gè)IP報(bào)文,發(fā)送給B站的服務(wù)器。

在B站確認(rèn)你的請(qǐng)求之后,它也會(huì)發(fā)送一個(gè)IP報(bào)文給你,以此表示確認(rèn)建立鏈接。

經(jīng)歷上述幾個(gè)過(guò)程以后,(也就是你在輸入框里輸入網(wǎng)址并按回車后的0.5秒內(nèi))你順利打開(kāi)了B站,開(kāi)始看起快樂(lè)肥宅劇。

寫到這里,覺(jué)得用這句話結(jié)尾,應(yīng)該是最好的:哪有什么歲月靜好,不過(guò)是有人在替你負(fù)重前行


    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多