網際網路(Internet)是怎麼運作的?
前言
Internet到底要怎麼定義他呢,我覺得根據維基百科的說明作為開頭蠻有意思的:
小寫的網際網路(internet,開頭的「i」是小寫字母)為任何分離的實體網路之集合,這些網路以一組通用的協定相連,形成邏輯上的單一網路。而大寫的網際網路(Internet,開頭的「I」是大寫字母)專指前身為ARPANET,後使用IP協定將各種實體網路連結成此單一邏輯網路。—維基百科
Internet普及到已經將小寫作為一種抽象概念,按照這個定義,連家中兩台電腦互聯也可以被稱做internet。而Internet作為專有名詞,則用來指稱目前大家日常最常使用的網路網路的範圍,而這也是我今天會試著說明的範圍。
Internet的組成若講到細節相當複雜,但就我閱讀資料來看,為了幫助理解,我們可以試著一刀刀將Internet切開,最後就會切出一張複雜的樹狀圖。
但相信我,今天切不了太多刀就會停下來的XD而且切太多會卡到之後幾天的內容
第一刀:
我們可以將網際網路想像成寄送郵件的過程,郵件要能順利寄發,靠著是:
- 郵路開發-如何物理上將資料送過去
- 寄郵件的規則-要遵循一定的規則才有辦法把郵件好好送到
郵路開發-互聯網的基礎設施
前面曾提到,兩台電腦用網路線互聯也可以算是internet,而讓訊號能從一台電腦到另外一台的一切作為都可以稱做是互聯網的基礎設施。
於是包括wifi, 光纖網路, 電話線, 電源線…等有線無線的連線方式,都可以稱作是網路基礎建設的一部份。
根據2015年的文章,當時全世界就已經有20億左右的人在使用著Internet。
但我們現在一台電腦並沒有用幾萬幾億條線跟其他電腦作連結的狀況下,能夠在一台電腦上看到各式各樣的網站(主機)的方式是什麼呢?
這邊可以用一個情境去理解:
如果家裡跟中華電信買了寬頻,他們會到你家放一隻俗稱小烏龜的網路交換器,用一條線牽到小烏龜上,然後從小烏龜上再牽出多條線讓你可以多台電腦上網,甚至連到wifi上,可上網的設備就更多了。
這邊我們不談太多細節,要描述的情境僅是「用一個集中的運算中心作訊息的交換」這個概念,我們生活中充斥著這樣大大小小的交換點,小到小烏龜、社區的光纖交換點,大到遠傳電信、中華電信…等,都是一個個交換點,並把我們的郵件(資料)傳遞出去,並把接收到的資料再轉傳到下個交換點,這樣層層構成了這段「郵路」。
郵路我們應該大致理解是怎麼被建立的,接著要試著理解的是寄郵規則。
寄郵規則-協定疊(protocol stacks)
我們在寄送郵件時,得要遵守很多種不同類型的規則才有辦法讓郵件順利寄到對方的手中並且被讀懂。
舉些例子:
- (IP)想像跨國郵件,如何讓郵路過程中的郵差(資料交換點)理解下一段路要送到哪裡的規則。
- (TCP)想像IKEA的超大家具,為了運送方便,你的家具會先被拆解,並標上記號,隨信還會附上組裝指南,然後分開運送,直到目的地才會按照組裝指南被重新組裝,怎麼拆解怎麼標記。
- (SSL/TLS)寄送重要文件時先鎖上只有對方才明白怎麼開的鎖。
這些被簡化的範例也只提到少部分協定而已,但透過以上的範例可以說明協定如何讓溝通得以被進行,甚至我們現在習以為常的web(HTTP),也只是其中一種最常見的應用協定。
接著我們會在協定這裡切下第二刀。
第二刀: protocal layer
打個預防針,這邊我談不了OSI 7層模型,但會先聚焦在Internet Protocol Suite,也是跟後端網頁開發我覺得最有相關的部分之一。
IPS也被通稱為TCP/IP協定套組,被這麼稱呼是因為該協定的套組最早被通過的標準就是TCP及IP,但實際上它包含四個層級,每一抽象層建立在低一層之上,並服務更高一層,以下由上往下列出並舉例:
1. 應用(application): HTTP
2. 傳輸(transport): TCP
3. 網路互連(internet): IP
4. 網路存取(Network Access (link))。
跟後端工程師較相關的部分落在上三層。
要怎麼理解他們的差異呢?
有一個說法我看到也蠻喜歡的:
我們在傳輸數據時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別數據內容,如果想要使傳輸的數據有意義,則必須使用到應用層協議 – 原文
以我的理解來說,不同的應用協定就像是不同語言的使用者,他們寄了不同語言的郵件,若收件者無法理解這個語言(協定)、或是以錯誤的語言解讀了信件內容,就無法看懂信件內容。
而傳輸層的協定確保了設備到設備之間的可靠性(信到的了地方)及順序性(郵件完整且沒有被錯誤組裝)。
網路互連層則負責確保目的的正確性(信到達正確的地方)。
小結
切到這裡是我的極限了XD
我在寫這章時,把關注點放在理解HTTP, TCP/IP之間的差異讓我收穫良多~
若要思考這篇文章帶給我的益處,大概是能夠稍稍分辨不同IPS的層別的概要功能跟意義,讓我可以在遇到一些新的協定時或許能更快分類並應用。
明天就來深入一點看HTTP吧!
此文章同步發表於部落格,歡迎來逛逛~
參考資料
從歷史的角度作為開頭來說明Internet(英)
維基好朋友-TCP/IP協定套組
How Does the Internet Work?
網際網路運作原理