歡迎光臨
每天分享高質量文章

一個位元組的網路漫遊故事獨白

閱讀本文需要9分鐘。

大家好,給大家介紹一下,我是一個位元組。相比於你們人類據說即將達到的百歲人生的壽命,我的一生簡直不直一提(我只能存活零點幾個毫秒)。

也許只有那些碼農才會瞭解我,而且也只有一部分碼農。那些整天做業務的猿們想來也不會真正的瞭解我,更別提人類其他行業的人了。

我不甘心,雖然我微不足道,但是我對人類的貢獻實在是太大了。沒有我的世界根本無法想像:不能聽網易雲音樂,不能刷抖音,不能上拼多多,所有和網路相關的活動都無法進行。

所以,今天我要講講我的一生,讓更多的人知道我的存在,知道我的故事,也為證明自己曾經存在過吧。

1

誕生

我的主人是一個在西二旗知名網際網路公司上班的程式猿,過著1095(註:早10點晚9點,一週5天工作)的生活,很少能在晚霞中回家,自然也說不出“落霞與孤鶩齊飛”那樣的句子。

這一天,他9點半到家,第一件事開啟電腦,熟練地啟動chrome瀏覽器,在位址列敲下一個 z字元,我所有的故事就從這裡開始。

當主人按下鍵盤上的 z鍵時,系統了產生一個中斷訊號,通知CPU過來讀取鍵盤輸入,CPU讀取到 z後,將 z傳送給chrome瀏覽器, chrome收到後,將 z顯示到瀏覽器的位址列上,同時後臺搜尋主人平時訪問過的地址,排名第一的 https://www.zhihu.com/被快速補全了。

這時主人熟練地按下了回車鍵,chrome收到指令後,進行了一頓操作,在這電光火石之間,我誕生了,同時誕生的還有我的位元組兄弟們。

2

上路

話說 Chorme老大哥接收到了URL後,首先拆解成自己能看懂的東西。 https://www.zhihu.com會被拆解成三部分: httpswww.zhihu.com/

https表示協議型別,透過這個 Chorme老大哥知道他接下來該如何與遠方的網站伺服器通訊; www.zhihu.com表示主機名,就是Chorme老大哥要通訊的物件了;第三部分則是它要向伺服器要的內容(註:這裡表明是空,實際上隱含的表示主目錄檔案的概念)。

有了這三項, Chorme老大哥就能從伺服器那裡獲取它想要的內容了,從而展示給我的主人。

Chorme老大哥跑到 HTTP資料包生產車間,哼哧哼哧地倒騰半天,生產出了一個HTTP資料包(註:忽略https, 簡單起見我們當成http),這個資料包實際上就是我和我的一群位元組兄弟們,我們擠在一個集裝箱內,熙熙攘攘。

我們馬上就要搭乘 IP列車到遠方的伺服器,見識外面的世界了。集裝箱被裝上了 TCP專車,它將帶我們來到列車站。 TCP專車很安全也很舒適,我從集裝箱的縫隙中看到車前貼上了車牌: 80.

到了車站, TCP專車直接開到了列車上。這樣也好, IP列車上很臟,我們坐在專車上更好。 只是列車還不知道具體要去哪,所以我們就只能先在列車上等著了。

不對啊,列車應該去 www.zhihu.com這個網站,不是已經知道了嗎?對的,但是 IP列車挺笨的,也挺古板的,不認識這些字母。它只認識數字,人類稱之為ip.

Chorme老大哥也有點抱怨,人類真是笨,連個ip都記不住,非得用域名來上網。害我還得拿著這個域名去問 DNS老大爺,它知道所有域名對應的ip.

這不, Chorme老大哥又跑到另外一個車間—— DNS資料包生產車間裡倒騰出了一個DNS資料包,當然還是一群位元組兄弟們,不過這裡的兄弟就少一些了。它們在集裝箱裡嘰嘰喳喳,被裝上了 UDP敞篷車,車雖然很快,但不太安全,我這些兄弟們坐在上面,提心吊膽,生怕掉下去,因為掉下去,就永遠消失了。

UDP敞篷車也直接開到了 IP列車上,車前貼了車牌:53.

這回Chrome老大哥直接從 作業系統大佬那要到了 DNS老大爺的ip, 貼到了 IP列車的車頭, IP列車馬上全速啟動,載著我這些位元組兄弟,趕到了 DNS老大爺的城堡, UDP敞篷車開下列車,按照車牌號53找到了 DNS老大爺的住處。從它那拿到了 www.zhihu.com對應的ip.

DNS老大爺學問淵博,他也很仗義,從自己城堡裡的 DNS資料包生產車間造出了DNS響應包,包裡也是我這些位元組兄弟們,它們拿著重要的資料資料—— www.zhihu.com對應的ip, 坐上了另一趟返程的 IP列車,而列車的終點就是我現在所在的地方。當然了,他們是由另一輛 UDP敞篷車載著他們回來的。

Chorme老大哥在車間接見了這些兄弟,非常感動。因為他們帶回了 www.zhihu.com對應的ip. 那些兄弟爭先恐後的報告自己知道的東西,有些兄弟報告1, 有些兄弟報告0, Chorme老大哥非常有經驗,它把這些訊息合併起來了,最終得到了它想要的ip: 118.89.204.192.

Chorme老大哥拿著這個ip來到了我所在的列車前面,我激動地要叫起來了:終於我要出發了!它熟練地把 118.89.204.192貼到了列車的前面,馬上列車就開動了,我上路了。

IP列車的列車長在掌管著車頭的方向,決定著我們的命運走向。路網非常複雜,而車頭上只有一個ip地址,根本沒告訴列車長應該走哪條路。這不難,富有經驗的列車長根據車頭的ip地址查到了下一個大站(路由器)的地址,之後再根據這個大站地址查到(ARP協議)途經的下一個小站(交換機或集線器)應該走的軌道。在每個小站,對照這個大站地址,列車長就知道該走哪條路。搞定!

經過了很多的小站,我們終於到了下一個大站了。站點的工作人員看著我們車頭前的ip地址,查了下表(路由表)告訴我們下一個大站的地址,並且告訴我們途徑的下一個小站應該走哪條軌道。列車長就這樣,一路拿這張表,順利地把們帶到了終點: 118.89.204.192.

不過,剛剛就在到終點的前一刻,列車被攔住了,一群荷槍實彈的警衛衝上來了,一些膽小的位元組兄弟們都哭了,我也是屏氣凝聲。他們先是查看了車頭的ip地址,再查看了列車長手裡的表,還看了下我們的 TCP專車的車牌。很快就放行了,虛驚一場!

3

新生

到了終點站後,列車首先停下接受工作人員的檢查。列車長出示了他手裡的表,對了一下表上標註的下一站地址確實是:知乎。接著又看了下列車頭部標註的ip地址,就算檢查透過了,第一關很輕鬆。

接下來,我們坐的 TCP專車開下列車了。進了一個 TCP車牌檢查站,工作人員看了下車牌號80, 也揮手示意我們透過。

接著我們都下車走進了 主頁車間,進去後,我們先按我們身上的標號排好了位置,工作人員將我們每個人所代表的資訊進行了聚攏。得到了各種關於主人的資訊,比如他所用的瀏覽器的版本,cookie等等資訊,我知道,我們的使命完成了。果然,一道光閃過,我們都消失了,完成了我們光榮的一生。

主頁車間領導馬上下達生產命令:1組去倉庫拉取最新話題,2組去商業中心獲取今天的廣告主資訊……

很快,各組都完成了任務,車間在一陣轟鳴過後,新的一批位元組兄弟誕生了,他們帶著這些話題、廣告資訊,和我們當年出生的時候一樣,熙熙攘攘。但是我知道,我獲得了新生。

4

歸家

像我們當年一樣,這些新出生的位元組兄弟依次坐上了 TCP專車IP列車一路跋涉,去往我出發的地方,那是我夢開始的地方。

我所經歷的,他們未曾少過一分。

5

定格

Chrome老大哥終於等來了這些位元組兄弟,在他們排好隊後,老大哥看清了位元組兄弟們代表的內容:話題 如何在西二旗地鐵優雅地裝逼,熱度10w, 廣告 上午植髮,下午上班……

這些是 Chrome老大哥最擅長的事情,分分鐘將他們顯示在了網頁上。位元組兄弟們終於完成了使命,定格在了retina螢幕上。

我的主人點開第一話題後,看了一會兒。然後瞅到了到植髮廣告,他偷偷地開啟了隱身樣式,仔細地研究了起來……

6

後記

第一次嘗試這種題材的文章,供大家一樂!有寫得不到位的地方,歡迎探討!

另外,推薦大家去看《網路是怎樣連線的》這本書,看完可以形成對網路的整體印象,寫得非常好!

 

    贊(0)

    分享創造快樂